*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}button{font:inherit;color:inherit}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root,[data-theme=matcha]{--bg:#f1f6ee;--surface:#fff;--surface-2:#f4f8f1;--sidebar-bg:#fbfdf9;--ink:#2c382a;--ink-soft:#6c7c66;--line:#e1e9dc;--accent:#5b8c4f;--accent-ink:#fff;--accent-soft:#e8f1e3;--accent-2:#e8a26a;--ok:#4f9d69;--warn:#d99a3c;--bad:#d96a5b;--radius:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(40,60,30,.06);--shadow-md:0 8px 24px -10px rgba(40,60,30,.22);--shadow-lg:0 20px 48px -18px rgba(40,60,30,.3);--font-head:"Nunito",system-ui,sans-serif;--font-body:"Nunito",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:hsla(94,33%,96%,.82);--deco:rgba(91,140,79,.1);--deco-style:radial-gradient(var(--deco) 1.4px,transparent 1.4px);--deco-size:22px;color-scheme:light}[data-theme=ink]{--bg:#14161b;--surface:#1e2128;--surface-2:#262a33;--sidebar-bg:#191c22;--ink:#eef1f5;--ink-soft:#9aa3b0;--line:#2c313b;--accent:#e8643c;--accent-ink:#1a120c;--accent-soft:#34221b;--accent-2:#f0a93b;--ok:#57b87a;--warn:#e0a74a;--bad:#e0685a;--radius:8px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 12px 30px -14px rgba(0,0,0,.6);--shadow-lg:0 24px 60px -22px rgba(0,0,0,.7);--font-head:"Space Grotesk",system-ui,sans-serif;--font-body:"Space Grotesk",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:rgba(13,15,19,.8);--deco:rgba(232,100,60,.07);--deco-style:linear-gradient(var(--deco) 1px,transparent 1px),linear-gradient(90deg,var(--deco) 1px,transparent 1px);--deco-size:30px;color-scheme:dark}[data-theme=sakura]{--bg:#fdf3f7;--surface:#fff;--surface-2:#fdf0f5;--sidebar-bg:#fff6fa;--ink:#583a45;--ink-soft:#9c7c87;--line:#f3dde4;--accent:#e87aa0;--accent-ink:#fff;--accent-soft:#fce6ee;--accent-2:#f3b8cd;--ok:#5aa97f;--warn:#dca24f;--bad:#dd7268;--radius:22px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(180,80,120,.08);--shadow-md:0 10px 26px -12px rgba(180,80,120,.28);--shadow-lg:0 22px 50px -20px rgba(180,80,120,.34);--font-head:"Quicksand",system-ui,sans-serif;--font-body:"Quicksand",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:rgba(253,243,247,.84);--deco:rgba(232,122,160,.12);--deco-style:radial-gradient(var(--deco) 1.6px,transparent 1.6px);--deco-size:24px;color-scheme:light}[data-theme=deepsea]{--bg:#0c1a29;--surface:#122a3e;--surface-2:#163251;--sidebar-bg:#0e2030;--ink:#dceaf5;--ink-soft:#8fb0c7;--line:#1f3a52;--accent:#38bdf8;--accent-ink:#04263a;--accent-soft:#0f2f44;--accent-2:#5eead4;--ok:#4cc7a0;--warn:#e6b455;--bad:#e0796c;--radius:10px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 12px 32px -16px rgba(0,0,0,.55);--shadow-lg:0 24px 60px -22px rgba(0,0,0,.65);--font-head:"DM Sans",system-ui,sans-serif;--font-body:"DM Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--scrim:rgba(8,18,28,.8);--deco:rgba(56,189,248,.1);--deco-style:radial-gradient(40% 50% at 85% 0%,var(--deco) 0%,transparent 60%);--deco-size:auto;color-scheme:dark}[data-theme=kraft]{--bg:#ece2cd;--surface:#f6efde;--surface-2:#efe4cc;--sidebar-bg:#f1e6cf;--ink:#3f3526;--ink-soft:#7c6e54;--line:#ddcfb2;--accent:#b5732e;--accent-ink:#fff7ec;--accent-soft:#ecdcc2;--accent-2:#c98a3c;--ok:#6f8b46;--warn:#c79a3e;--bad:#bd5f4c;--radius:6px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(80,60,30,.12);--shadow-md:0 8px 22px -12px rgba(80,60,30,.3);--shadow-lg:0 18px 44px -20px rgba(80,60,30,.38);--font-head:"Fraunces",Georgia,serif;--font-body:"Fraunces",Georgia,serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:hsla(41,45%,86%,.85);--deco:transparent;--deco-style:none;--deco-size:auto;color-scheme:light}[data-theme=mint]{--bg:#ecfaf5;--surface:#fff;--surface-2:#eaf7f2;--sidebar-bg:#f4fdfa;--ink:#214a41;--ink-soft:#5d8a7d;--line:#d2ece3;--accent:#14b8a6;--accent-ink:#fff;--accent-soft:#d9f3ee;--accent-2:#34d399;--ok:#2fae7e;--warn:#d9a23c;--bad:#df6f60;--radius:12px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(20,120,100,.08);--shadow-md:0 10px 28px -14px rgba(20,120,100,.26);--shadow-lg:0 22px 52px -22px rgba(20,120,100,.32);--font-head:"Space Grotesk",system-ui,sans-serif;--font-body:"Space Grotesk",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:rgba(236,250,245,.84);--deco:rgba(20,184,166,.1);--deco-style:linear-gradient(var(--deco) 1px,transparent 1px),linear-gradient(90deg,var(--deco) 1px,transparent 1px);--deco-size:28px;color-scheme:light}[data-theme=twilight]{--bg:#181330;--surface:#221a40;--surface-2:#2b2150;--sidebar-bg:#1d1638;--ink:#ece8ff;--ink-soft:#a99fd6;--line:#352b58;--accent:#a78bfa;--accent-ink:#1a1230;--accent-soft:#2c2152;--accent-2:#f0abfc;--ok:#5fcf9b;--warn:#e6b455;--bad:#ec7d8f;--radius:18px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 14px 34px -16px rgba(20,10,50,.6);--shadow-lg:0 26px 64px -24px rgba(20,10,50,.7);--font-head:"Poppins",system-ui,sans-serif;--font-body:"Poppins",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--scrim:rgba(16,12,32,.8);--deco:rgba(167,139,250,.14);--deco-style:radial-gradient(50% 45% at 15% 0%,var(--deco) 0%,transparent 60%);--deco-size:auto;color-scheme:dark}[data-theme=terracotta]{--bg:#faf0e7;--surface:#fff;--surface-2:#fbece0;--sidebar-bg:#fdf4ec;--ink:#4a3228;--ink-soft:#8c6a5a;--line:#f0dccb;--accent:#c8612f;--accent-ink:#fff6ef;--accent-soft:#f6e1d4;--accent-2:#e0a458;--ok:#6f9a55;--warn:#cf9a3a;--bad:#c85f4c;--radius:14px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(120,60,30,.1);--shadow-md:0 10px 26px -14px rgba(120,60,30,.28);--shadow-lg:0 22px 50px -20px rgba(120,60,30,.34);--font-head:"Fraunces",Georgia,serif;--font-body:"Fraunces",Georgia,serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:hsla(28,66%,94%,.84);--deco:rgba(200,97,47,.1);--deco-style:radial-gradient(var(--deco) 1.5px,transparent 1.5px);--deco-size:24px;color-scheme:light}[data-theme=mono]{--bg:#fff;--surface:#fff;--surface-2:#fafafa;--sidebar-bg:#fff;--ink:#14171c;--ink-soft:#6b7280;--line:#ececec;--accent:#14171c;--accent-ink:#fff;--accent-soft:#f3f3f3;--accent-2:#2563eb;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--radius:4px;--radius-pill:999px;--shadow-sm:0 0 0 1px var(--line);--shadow-md:0 0 0 1px var(--line);--shadow-lg:0 0 0 1px var(--line);--font-head:"Inter",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:hsla(0,0%,100%,.88);--deco:transparent;--deco-style:none;--deco-size:auto;color-scheme:light}[data-theme=terminal]{--bg:#0a0e0a;--surface:#0f150f;--surface-2:#131c13;--sidebar-bg:#0c110c;--ink:#c8f7c5;--ink-soft:#6fae6a;--line:#1c2a1c;--accent:#4ade80;--accent-ink:#061406;--accent-soft:#102410;--accent-2:#86efac;--ok:#4ade80;--warn:#e6c34a;--bad:#f0726a;--radius:3px;--radius-pill:6px;--shadow-sm:0 0 0 1px var(--line);--shadow-md:0 0 0 1px var(--line);--shadow-lg:0 0 0 1px var(--line);--font-head:"JetBrains Mono",ui-monospace,monospace;--font-body:"JetBrains Mono",ui-monospace,monospace;--font-mono:"JetBrains Mono",ui-monospace,monospace;--scrim:rgba(6,10,6,.82);--deco:rgba(74,222,128,.05);--deco-style:linear-gradient(var(--deco) 1px,transparent 1px),linear-gradient(90deg,var(--deco) 1px,transparent 1px);--deco-size:26px;color-scheme:dark}[data-theme=lemon]{--bg:#fbfae2;--surface:#fff;--surface-2:#f8f6d8;--sidebar-bg:#fdfce9;--ink:#2a2a16;--ink-soft:#6c6c45;--line:#ebe8c4;--accent:#eab308;--accent-ink:#2a2406;--accent-soft:#fbf2c4;--accent-2:#f59e0b;--ok:#5aa55f;--warn:#d99a2e;--bad:#d9635a;--radius:20px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(120,100,10,.1);--shadow-md:0 10px 26px -14px rgba(120,100,10,.26);--shadow-lg:0 22px 50px -20px rgba(120,100,10,.32);--font-head:"Poppins",system-ui,sans-serif;--font-body:"Poppins",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:hsla(58,76%,94%,.85);--deco:rgba(234,179,8,.12);--deco-style:radial-gradient(var(--deco) 1.6px,transparent 1.6px);--deco-size:24px;color-scheme:light}[data-theme=celadon]{--bg:#ecf3f1;--surface:#fff;--surface-2:#e6efec;--sidebar-bg:#f3f8f6;--ink:#2c3a37;--ink-soft:#617a73;--line:#d7e3df;--accent:#4a8c82;--accent-ink:#fff;--accent-soft:#dcebe7;--accent-2:#7bb0a3;--ok:#4f9d7d;--warn:#cf9a3c;--bad:#d96a5b;--radius:8px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(40,80,70,.08);--shadow-md:0 10px 26px -14px rgba(40,80,70,.24);--shadow-lg:0 22px 50px -20px rgba(40,80,70,.3);--font-head:"Lora",Georgia,serif;--font-body:"Lora",Georgia,serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--scrim:rgba(236,243,241,.85);--deco:rgba(74,140,130,.1);--deco-style:radial-gradient(45% 50% at 90% 5%,var(--deco) 0%,transparent 60%);--deco-size:auto;color-scheme:light}html.has-bg body{background-image:linear-gradient(180deg,color-mix(in srgb,var(--bg) 3%,transparent) 0,color-mix(in srgb,var(--bg) 11%,transparent) 100%),var(--user-bg);background-size:cover;background-position:50%}html.has-bg body,html:not(.has-bg) body{background-color:var(--bg);background-attachment:fixed}html:not(.has-bg) body{background-image:var(--deco-style);background-size:var(--deco-size)}body{font-family:var(--font-body);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;transition:background-color .35s ease,color .35s ease}h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.2;margin:0}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-soft)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-aside{position:relative;overflow:hidden;background:radial-gradient(60% 60% at 30% 20%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 60%),radial-gradient(50% 50% at 80% 90%,color-mix(in srgb,var(--accent-2) 35%,transparent),transparent 60%),linear-gradient(140deg,var(--accent),var(--accent-2));color:var(--accent-ink);display:flex;flex-direction:column;justify-content:space-between;padding:56px}.login-aside .brand{display:flex;align-items:center;gap:14px;font-family:var(--font-head);font-weight:800;font-size:22px}.login-aside .lede{font-family:var(--font-head);font-size:34px;line-height:1.25;font-weight:700;max-width:16ch}.login-aside .sub{opacity:.9;margin-top:14px;max-width:32ch;line-height:1.6}.login-aside .blob{position:absolute;right:-80px;bottom:-80px;width:280px;height:280px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent-ink) 40%,transparent);opacity:.5}.login-card-wrap{display:flex;align-items:center;justify-content:center;padding:32px}.login-card{width:min(420px,100%)}.login-card .brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.login-card .brand .word{font-family:var(--font-head);font-weight:800;font-size:20px}.login-card h1{font-size:26px;margin-bottom:6px}.login-card .tip{color:var(--ink-soft);margin-bottom:26px}.login-card .demo-hint{margin-top:18px;font-size:13px;color:var(--ink-soft);background:var(--accent-soft);border-radius:var(--radius);padding:10px 14px}.form-error{margin-top:16px;font-size:13px;color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent);border:1px solid color-mix(in srgb,var(--bad) 30%,transparent);border-radius:var(--radius);padding:10px 14px}@media (max-width:860px){.login{grid-template-columns:1fr}.login-aside{display:none}}.app-shell{display:grid;grid-template-columns:256px 1fr;min-height:100vh}.sidebar{background:color-mix(in srgb,var(--sidebar-bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-right:1px solid color-mix(in srgb,var(--line) 65%,transparent);padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:4px 8px 18px}.sidebar .brand .word{font-family:var(--font-head);font-weight:800;font-size:19px;letter-spacing:.2px}.sidebar .nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);padding:16px 12px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius);color:var(--ink-soft);font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .18s ease,color .18s ease;width:100%;text-align:left;background:none}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.nav-item .ico{width:20px;height:20px;flex:none}.nav-item .count{margin-left:auto;font-size:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:1px 8px;color:var(--ink-soft)}.sidebar .spacer{flex:1}.sidebar .user-card{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer}.sidebar .user-card .avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;background:var(--accent-soft);flex:none;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;color:var(--accent)}.sidebar .user-card .meta{min-width:0}.sidebar .user-card .meta .nm{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .user-card .meta .rl{font-size:12px;color:var(--ink-soft)}.main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:14px 28px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent)}.topbar .title{font-family:var(--font-head);font-weight:700;font-size:18px}.topbar .sub{font-size:13px;color:var(--ink-soft)}.topbar .grow{flex:1}.topbar .icon-btn{width:40px;height:40px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:background .18s ease,transform .18s ease}.topbar .icon-btn:hover{background:var(--surface-2);transform:translateY(-1px)}.topbar .me{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 6px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:inherit;transition:background .18s ease}.topbar .me:hover{background:var(--surface-2)}.topbar .me .avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);font-weight:800;font-family:var(--font-head)}.view{padding:28px;max-width:1180px;width:100%;margin:0 auto}.sidebar-scrim{display:none}@media (max-width:920px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;z-index:60;width:268px;transform:translateX(-100%);transition:transform .28s ease;box-shadow:var(--shadow-lg)}body.nav-open .sidebar{transform:translateX(0)}body.nav-open .sidebar-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}.topbar .menu-btn{display:grid}.view{padding:18px}}.menu-btn{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:700;font-size:14px;padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background .18s ease,transform .12s ease,box-shadow .18s ease,border-color .18s ease;background:var(--surface-2);color:var(--ink);border-color:var(--line);white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-sm)}.btn--primary:hover{box-shadow:var(--shadow-md);filter:brightness(1.04)}.btn--ghost{background:transparent;border-color:var(--line)}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{background:var(--bad);color:#fff;border-color:transparent}.btn--sm{padding:7px 13px;font-size:13px}.btn--block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:13px;font-weight:700;color:var(--ink)}.field .hint{font-size:12px;color:var(--ink-soft);font-weight:400}.input,.select,.textarea{font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px;width:100%;transition:border-color .18s ease,box-shadow .18s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.textarea{resize:vertical;min-height:90px}.input.mono{font-family:var(--font-mono)}.search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 16px;transition:border-color .18s ease,box-shadow .18s ease;min-width:240px}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent)}.search svg{width:18px;height:18px;color:var(--ink-soft);flex:none}.search input{border:none;background:none;outline:none;width:100%;font-family:var(--font-body);font-size:14px;color:var(--ink);padding:2px 0}.search input::placeholder{color:var(--ink-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.card--pad{padding:22px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge--ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.badge--warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.badge--bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.badge--accent{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:all .16s ease}.chip:hover{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.chip.active{background:var(--accent);color:var(--accent-ink);border-color:transparent}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}table.list{width:100%;border-collapse:collapse}table.list th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700}table.list td,table.list th{padding:14px 16px;border-bottom:1px solid var(--line)}table.list td{vertical-align:middle;font-size:14px}table.list tr:last-child td{border-bottom:none}table.list tbody tr{transition:background .15s ease}table.list tbody tr:hover{background:var(--surface-2)}.cell-title{font-weight:700}.cell-sub{font-size:12px;color:var(--ink-soft);font-family:var(--font-mono)}.row-actions{display:flex;gap:8px;justify-content:flex-end}.id-pill{font-family:var(--font-mono);font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px 9px;display:inline-block}.empty,.id-pill{color:var(--ink-soft)}.empty{text-align:center;padding:60px 20px}.empty .em-ico{width:54px;height:54px;margin:0 auto 14px;color:var(--accent);opacity:.7}.empty h3{color:var(--ink);margin-bottom:6px}.toolbar{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.toolbar .grow{flex:1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.stat .k{font-size:13px;color:var(--ink-soft);font-weight:600}.stat .v{font-family:var(--font-head);font-weight:800;font-size:30px;margin-top:6px}.stat .v .unit{font-size:15px;color:var(--ink-soft);font-weight:600;margin-left:3px}.stat .spark{height:4px;border-radius:4px;margin-top:12px;background:color-mix(in srgb,var(--accent) 22%,transparent);overflow:hidden}.stat .spark i{display:block;height:100%;background:var(--accent);border-radius:4px}.section-head{display:flex;align-items:center;gap:12px;margin:26px 0 14px}.section-head h2{font-size:18px}.section-head .grow{flex:1}.section-head .ln{height:1px;background:var(--line);flex:1}.req-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:10px;box-shadow:var(--shadow-sm)}.req-row .grow{flex:1;min-width:0}.req-row .nm{font-weight:700}.req-row .meta{font-size:12px;color:var(--ink-soft)}.avatar{border-radius:50%;object-fit:cover}.avatar-fallback{display:grid;place-items:center;font-family:var(--font-head);font-weight:800}.toast-wrap{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow-md);font-size:14px;font-weight:600;animation:toastIn .25s ease;max-width:320px}.toast--ok{border-left-color:var(--ok)}.toast--bad{border-left-color:var(--bad)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.pop{position:relative}.pop-panel{position:absolute;right:0;z-index:30;margin-top:8px;width:30rem;max-width:92vw;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:16px}.drawer-root:empty,.modal-root:empty{display:none}.modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:grid;place-items:center;padding:20px;animation:fade .2s ease}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(520px,100%);max-height:88vh;overflow:auto;box-shadow:var(--shadow-lg);animation:pop .22s ease}.modal-head{display:flex;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h3{font-size:18px}.modal-head .x{margin-left:auto;cursor:pointer;color:var(--ink-soft);background:none;border:none;font-size:22px;line-height:1}.modal-body{padding:22px}.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--line)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.drawer-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:120;animation:fade .2s ease}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(420px,92vw);z-index:121;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideIn .26s ease}@keyframes slideIn{0%{transform:translateX(100%)}to{transform:none}}.drawer-head{display:flex;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.drawer-head h3{font-size:18px}.drawer-head .x{margin-left:auto;cursor:pointer;background:none;border:none;font-size:22px;color:var(--ink-soft)}.drawer-body{padding:20px 22px;overflow:auto}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.theme-card{border:1.5px solid var(--line);border-radius:var(--radius);padding:12px;cursor:pointer;background:var(--surface);transition:border-color .16s ease,transform .16s ease;text-align:left}.theme-card:hover{transform:translateY(-2px)}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.theme-card .sw{height:46px;border-radius:10px;margin-bottom:9px;display:flex;gap:6px;padding:9px;align-items:flex-end;overflow:hidden}.theme-card .sw i{width:16px;height:16px;border-radius:5px}.theme-card .sw i.b{width:26px;height:26px;border-radius:8px}.theme-card .nm{font-weight:700;font-size:14px}.theme-card .ds{font-size:12px;color:var(--ink-soft)}.profile-head{display:flex;align-items:center;gap:20px;margin-bottom:24px}.profile-head .big-avatar{width:84px;height:84px;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);font-family:var(--font-head);font-weight:800;font-size:30px;border:2px solid var(--line)}.pop-panel .profile-head{margin-bottom:16px}.pop-panel .big-avatar{width:56px;height:56px;font-size:22px}.profile-info{display:flex;flex-direction:column;gap:8px}.profile-info .row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);font-size:13px}.profile-info .row span{color:var(--ink-soft);flex:none}.profile-info .row b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:640px){.grid-2,.stat-grid{grid-template-columns:1fr}}.logo-mark{width:34px;height:34px;flex:none;display:block}.view>*{animation:viewIn .22s ease}@keyframes viewIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width:800px){.tool-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.tool-grid{grid-template-columns:1fr}}.tool-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.tool-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:var(--shadow-md)}.tool-card.disabled{opacity:.55;pointer-events:none}.tool-card .ic{font-size:30px;margin-bottom:12px}.tool-card .nm{font-weight:700}.tool-card .ds{font-size:13px;color:var(--ink-soft);margin-top:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}