:root{color-scheme:dark;--bg:#0b0d12;--card:#141926;--muted:#8a94a6;--txt:#e6ecf8;--pri:#3949ff;--ok:#21d19f;--err:#ff5c7c}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font:14px/1.45 system-ui,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--txt)}
.hidden{display:none !important}
.topbar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #1f2637;background:rgba(10,12,18,.85);backdrop-filter:blur(12px);position:sticky;top:0}
.topbar .icon{background:none;border:0;color:var(--txt);font-size:20px;line-height:1;cursor:pointer}
.chip{padding:6px 10px;border-radius:999px;border:1px solid #2a3550;color:var(--txt);text-decoration:none}
.app-shell{display:flex;min-height:100vh;flex-direction:column}
.content{padding:14px;max-width:980px;margin:0 auto;width:100%}
.card{background:var(--card);border:1px solid #1f2637;border-radius:14px;padding:14px}
.muted{color:var(--muted)}.small{font-size:12px}.spacer{flex:1}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #20283b;text-align:left}
.btn{background:var(--pri);color:#fff;border:0;border-radius:10px;padding:8px 12px;cursor:pointer}
input,select{background:#0f1320;border:1px solid #28324a;color:var(--txt);border-radius:10px;padding:10px;width:100%}
.list{list-style:none;padding:0;margin:0}.list li{padding:10px 12px;border-bottom:1px solid #1f2637}.list a{color:var(--txt);text-decoration:none;display:block}.list a.active{font-weight:600}
.avatar.lg{font-size:28px}
.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--card);border-right:1px solid #1f2637;transform:translateX(-100%);transition:transform .25s ease;z-index:1000}
.drawer.open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid #1f2637}
.drawer-title .app{font-weight:700}.drawer-nav{padding:8px}.drawer-open{overflow:hidden}
.bg.bg-dash{background:linear-gradient(180deg,#0b0d12,#0b0d12 60%,#0c111a)}
