:root{--c-bg:#0b1220;--c-bg-elevated:#0f1a2b;--c-surface:#13213a;--c-surface-hover:#1b2d4d;--c-border:#223a5e;--c-text:#e8eef7;--c-text-muted:#9fb0c9;--c-text-faint:#6b7d99;--c-tui-red:#e40f26;--c-accent:#2f6df6;--c-accent-hover:#4880ff;--sidebar-w:260px;--topbar-h:48px;--radius:10px;--radius-sm:6px;--gap:16px;--font:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3{color:var(--c-text);font-weight:600}button{font-family:inherit;font-size:inherit}.app{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"topbar topbar""sidebar content";height:100vh;display:grid}.topbar{background:var(--c-bg-elevated);border-bottom:1px solid var(--c-border);grid-area:topbar;align-items:center;gap:12px;padding:0 14px;display:flex}.topbar__brand{letter-spacing:.2px;align-items:center;gap:8px;font-weight:700;display:flex}.topbar__brand-sep{color:var(--c-text-faint);margin:0 2px}.topbar__spacer{flex:1}.topbar__actions{color:var(--c-text-muted);align-items:center;gap:10px;display:flex}.iconbtn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--c-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover{background:var(--c-surface-hover);color:var(--c-text)}.sidebar{background:var(--c-bg-elevated);border-right:1px solid var(--c-border);flex-direction:column;grid-area:sidebar;padding:12px;display:flex;overflow-y:auto}.sidebar__primary{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);width:100%;color:var(--c-text);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex}.sidebar__primary:hover{background:var(--c-surface-hover)}.sidebar__group-label{text-transform:uppercase;letter-spacing:.6px;color:var(--c-text-faint);margin:18px 6px 6px;font-size:11px}.navlink{border-radius:var(--radius-sm);color:var(--c-text-muted);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.navlink:hover{background:var(--c-surface-hover);color:var(--c-text)}.navlink--active{background:var(--c-surface);color:var(--c-text)}.navlink__icon{text-align:center;flex:none;width:18px}.navlink__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.navlink__row{align-items:center;display:flex}.navlink--grow{flex:auto;min-width:0}.navlink__chevron{border-radius:var(--radius-sm);width:26px;height:30px;color:var(--c-text-faint);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.navlink__chevron:hover{background:var(--c-surface-hover);color:var(--c-text)}.sidebar__subnav{margin:2px 0}.navlink--sub{padding:6px 10px 6px 22px;font-size:13px}.navlink--muted{color:var(--c-text-faint);cursor:default}.navlink--muted:hover{color:var(--c-text-faint);background:0 0}.sidebar__section{margin-bottom:4px}.sidebar__footer{border-top:1px solid var(--c-border);margin-top:auto;padding-top:12px}.sidebar__version{text-align:center;color:var(--c-text-faint);margin-top:8px;font-size:11px}.content{grid-area:content;padding:28px 32px;overflow-y:auto}.userchip{color:var(--c-text-muted);align-items:center;gap:8px;display:flex}.userchip__avatar{background:var(--c-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.btn-ghost{border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text-muted);cursor:pointer;background:0 0;padding:6px 10px}.btn-ghost:hover{background:var(--c-surface-hover);color:var(--c-text)}.devswitch{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text-muted);z-index:9999;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;position:fixed;bottom:12px;right:12px}.devswitch strong{color:var(--c-tui-red)}.devswitch label{align-items:center;gap:4px;display:inline-flex}.page-head{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.page-head h1{margin:0;font-size:24px}.page-head__sub{color:var(--c-text-muted);margin:4px 0 0}.page-head__spacer{flex:1}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.input,.select,.textarea{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);width:100%;color:var(--c-text);padding:9px 11px;font-family:inherit;font-size:14px}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-accent);outline:none}.textarea{resize:vertical;min-height:72px}.field{margin-bottom:14px;display:block}.field__label{color:var(--c-text-muted);margin-bottom:6px;font-size:13px;display:block}.field__hint{color:var(--c-text-faint);margin-top:4px;font-size:12px}.field__error{color:var(--c-tui-red);margin-top:4px;font-size:12px}.btn{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-text);cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--c-surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.btn--primary:hover{background:var(--c-accent-hover)}.btn--danger{border-color:var(--c-tui-red);color:var(--c-tui-red);background:0 0}.btn--danger:hover{background:#e40f261f}.btn--fav-on{color:var(--c-accent);border-color:var(--c-accent)}.card-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:16px;display:block}.card:hover{background:var(--c-surface-hover)}.card--fav{position:relative}.card__link{display:block}.card__fav{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--c-text-faint);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex;position:absolute;top:10px;right:10px}.card__fav:hover{background:var(--c-bg-elevated);color:var(--c-text)}.card__fav--on{color:var(--c-accent)}.card__fav--on:hover{color:var(--c-accent-hover)}.card__title{padding-right:28px;font-size:15px;font-weight:600}.card__desc{color:var(--c-text-muted);margin:6px 0 12px;font-size:13px}.card__meta{color:var(--c-text-faint);font-size:12px}.tags{flex-wrap:wrap;gap:6px;margin:8px 0 0;display:flex}.tag{background:var(--c-bg-elevated);border:1px solid var(--c-border);color:var(--c-text-muted);border-radius:999px;padding:2px 8px;font-size:11px}.tag--active{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.tag--button{cursor:pointer}.banner{border-radius:var(--radius-sm);align-items:center;gap:12px;margin:0 0 16px;padding:10px 14px;font-size:13px;display:flex}.banner--info{border:1px solid var(--c-accent);color:var(--c-text);background:#2f6df61f}.banner--warn{color:var(--c-text);background:#e49d0f1f;border:1px solid #e49d0f}.banner--error{border:1px solid var(--c-tui-red);color:var(--c-text);background:#e40f261f}.emptystate{border:1px dashed var(--c-border);border-radius:var(--radius);text-align:center;color:var(--c-text-muted);padding:28px}.viewer{flex-direction:column;height:100%;display:flex}.viewer__head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.viewer__head h2{margin:0}.viewer__meta{color:var(--c-text-muted);font-size:13px}.viewer__actions{flex-wrap:wrap;gap:8px;display:flex}.vtable{border-collapse:collapse;width:100%;font-size:13px}.vtable th,.vtable td{text-align:left;border-bottom:1px solid var(--c-border);padding:10px 12px}.vtable th{color:var(--c-text-faint);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.vtable tr:hover td{background:var(--c-surface)}.audit{font-size:13px}.audit__item{border-bottom:1px solid var(--c-border);padding:10px 0}.preview-pane{height:420px;margin-top:8px}.help-subnav{border-bottom:1px solid var(--c-border);flex-wrap:wrap;gap:6px;margin-bottom:20px;padding-bottom:10px;display:flex}.help-subnav__link{border-radius:var(--radius-sm);color:var(--c-text-muted);padding:7px 12px;font-size:13px;font-weight:600}.help-subnav__link:hover{background:var(--c-surface-hover);color:var(--c-text)}.help-subnav__link--active{background:var(--c-surface);color:var(--c-text)}.help-article{color:var(--c-text)}.help-article h3{margin:26px 0 8px;font-size:17px}.help-article h4{color:var(--c-text);margin:18px 0 6px;font-size:14px}.help-article p{color:var(--c-text-muted);margin:10px 0}.help-article ul{color:var(--c-text-muted);margin:10px 0;padding-left:22px}.help-article li{margin:4px 0}.help-article code{background:var(--c-bg-elevated);border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text);padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.help-deflist{margin:10px 0}.help-deflist dt{color:var(--c-text);margin-top:12px;font-weight:600}.help-deflist dd{color:var(--c-text-muted);margin:4px 0 0}.help-note{border-left:3px solid var(--c-accent);padding-left:12px}.help-code{background:var(--c-bg-elevated);border:1px solid var(--c-border);border-radius:var(--radius-sm);margin:10px 0;padding:14px 16px;overflow-x:auto}.help-code code{color:var(--c-text);white-space:pre;background:0 0;border:none;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6}
