:root{color-scheme:light;--bg: #f4f6f9;--panel: #ffffff;--ink: #0b1220;--muted: #6b7280;--line: #e6eaf0;--line-strong: #d5dbe6;--accent: #0b84ff;--accent-soft: #e8f3ff;--accent-deep: #0066d6;--danger: #e11d48;--danger-soft: #fff1f2;--ok: #059669;--ok-soft: #ecfdf5;--warn: #d97706;--side: #111827;--side-2: #1f2937;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 10px 30px rgba(15, 23, 42, .08);--radius: 14px;--font: "IBM Plex Sans", "Noto Sans SC", "PingFang SC", "Segoe UI", sans-serif;font-family:var(--font);line-height:1.45;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.tiny{font-size:12px}.err{color:var(--danger);margin:.65rem 0;font-weight:500}.ok-msg{color:var(--ok);font-weight:600}.btn{border:0;border-radius:10px;padding:.55rem .9rem;cursor:pointer;font-weight:600;font-size:.9rem;white-space:nowrap}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px #0b84ff40}.btn.primary:hover:not(:disabled){background:var(--accent-deep)}.btn.ghost{background:#eef2f7;color:var(--ink)}.btn.ghost:hover:not(:disabled){background:#e4eaf2}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.danger:hover:not(:disabled){background:#ffe4e6}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn:active:not(:disabled){transform:translateY(1px)}a.btn{display:inline-flex;align-items:center;justify-content:center}.login-page{min-height:100%;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(900px 420px at 12% -10%,rgba(11,132,255,.28),transparent 55%),radial-gradient(700px 380px at 100% 100%,rgba(5,150,105,.12),transparent 50%),linear-gradient(165deg,#0b1220,#152238 48%,#0b1220)}.login-card{width:min(420px,100%);background:#fffffffa;border-radius:20px;padding:1.75rem 1.6rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:0 28px 70px #00000059;border:1px solid rgba(255,255,255,.2)}.login-card h1{margin:0;font-size:1.4rem;letter-spacing:-.02em}.login-card label,.panel label{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.88rem;font-weight:500}.login-card input,.panel input,.panel select,.toolbar select,.search-input{border:1px solid var(--line);border-radius:11px;padding:.72rem .9rem;outline:none;background:#f8fafc;color:var(--ink)}.login-card input:focus,.panel input:focus,.panel select:focus,.toolbar select:focus,.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0b84ff24;background:#fff}.brand-mark{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#4da3ff,#0b84ff 55%,#0066d6);color:#fff;font-weight:700;letter-spacing:.04em;box-shadow:0 10px 24px #0b84ff59}.brand-mark.sm{width:38px;height:38px;border-radius:11px;font-size:.72rem;box-shadow:none}.shell{display:grid;grid-template-columns:248px 1fr;height:100%;min-height:100%}.side{background:linear-gradient(180deg,#0f172a,#111827 55%,#0b1220);color:#e5e7eb;display:flex;flex-direction:column;padding:1.1rem .9rem;gap:1rem;border-right:1px solid rgba(255,255,255,.04)}.side-brand{display:flex;gap:.75rem;align-items:center;padding:.4rem .45rem .95rem;border-bottom:1px solid rgba(255,255,255,.08)}.side-brand strong{font-size:.98rem;letter-spacing:-.01em}.side-sub{color:#9ca3af;font-size:12px;margin-top:.1rem}.side-nav{display:flex;flex-direction:column;gap:.28rem;flex:1}.side-nav a{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;border-radius:11px;color:#9ca3af;font-weight:600;font-size:.92rem}.nav-ico{width:1.15rem;height:1.15rem;display:grid;place-items:center;opacity:.9}.nav-ico svg{width:1.05rem;height:1.05rem}.admin-chip{display:flex;align-items:center;gap:.65rem}.admin-avatar{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#4da3ff,#0b84ff);color:#fff;font-weight:700;font-size:.8rem;flex-shrink:0}.admin-name{font-size:.86rem;font-weight:600;color:#e5e7eb}.side-nav a:hover{background:#ffffff0d;color:#fff}.side-nav a.active{background:#0b84ff2e;color:#93c5fd;box-shadow:inset 3px 0 #0b84ff}.logout{width:100%;background:#ffffff0f!important;color:#e5e7eb!important}.logout:hover:not(:disabled){background:#ffffff1a!important}.side-footer{display:flex;flex-direction:column;gap:.55rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08)}.main{overflow:auto;padding:1.35rem 1.6rem 2.2rem;background:radial-gradient(900px 280px at 0% 0%,rgba(11,132,255,.05),transparent 55%),var(--bg)}.page{max-width:1120px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem}.page-head h1{margin:0;font-size:1.55rem;letter-spacing:-.03em;font-weight:700}.page-head p{margin:.3rem 0 0;font-size:.92rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.1rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--accent),#60a5fa);opacity:.85}.stat-card.tone-ok:before{background:linear-gradient(180deg,var(--ok),#34d399)}.stat-card.tone-danger:before{background:linear-gradient(180deg,var(--danger),#fb7185)}.stat-card.tone-warn:before{background:linear-gradient(180deg,var(--warn),#fbbf24)}.stat-card.tone-accent:before{background:linear-gradient(180deg,var(--accent),#60a5fa)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.stat-ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-deep);flex-shrink:0}.tone-ok .stat-ico{background:var(--ok-soft);color:var(--ok)}.tone-danger .stat-ico{background:var(--danger-soft);color:var(--danger)}.tone-warn .stat-ico{background:#fff7ed;color:var(--warn)}.stat-card strong{font-size:1.65rem;letter-spacing:-.03em;font-weight:700}.stat-card strong.ok{color:var(--ok)}.stat-card strong.bad{color:var(--danger);font-size:1.2rem}.icon-btn{display:inline-flex;align-items:center;gap:.4rem}.icon-btn svg{flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.dash-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:.9rem;margin-top:.9rem}.chart-panel{margin-top:0;min-height:280px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.chart-body{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center}.donut-wrap{position:relative;width:168px;height:168px;flex-shrink:0}.donut{display:block}.donut-seg{transition:stroke-dasharray .4s ease}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.donut-center strong{font-size:1.55rem;letter-spacing:-.03em;line-height:1.1}.donut-center span{color:var(--muted);font-size:.75rem;margin-top:.15rem}.bar-list{display:flex;flex-direction:column;gap:.7rem;min-width:0}.bar-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:.75rem;row-gap:.3rem;align-items:center}.bar-label{display:flex;align-items:center;gap:.45rem;font-size:.88rem;font-weight:600}.bar-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.bar-track{grid-column:1 / -1;height:8px;border-radius:999px;background:#eef2f7;overflow:hidden}.bar-fill{height:100%;border-radius:inherit;transition:width .45s ease}.bar-value{font-size:.95rem}.chart-empty{margin:0;padding:1.5rem .5rem;text-align:center}.meter{display:flex;flex-direction:column;gap:.65rem}.meter-head{display:flex;justify-content:space-between;gap:1rem;font-size:.88rem;color:var(--muted)}.meter-head span{display:inline-flex;align-items:center;gap:.4rem}.meter-head strong{color:var(--ink)}.meter-track{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#eef2f7}.meter-fill{height:100%;transition:width .45s ease}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.35rem}.insight{display:flex;align-items:center;gap:.65rem;padding:.85rem .9rem;border-radius:12px;background:#f8fafc;color:var(--accent-deep)}.insight>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}.insight strong{color:var(--ink);font-size:1.15rem;letter-spacing:-.02em}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;margin-top:.9rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:var(--shadow-sm)}.panel h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.01em}.toolbar{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-bottom:.15rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.search-input{flex:1;min-width:220px;background:#f8fafc}.check{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.88rem;font-weight:550;padding:.35rem .55rem;border-radius:999px;background:#f3f5f8}.table{display:flex;flex-direction:column;gap:.55rem}.table-row{display:flex;justify-content:space-between;align-items:center;gap:.9rem;padding:.85rem .9rem;border-radius:12px;background:#f8fafc;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.table-row:hover{background:#fff;border-color:var(--line);box-shadow:var(--shadow-sm)}.table-row.stack{flex-direction:column;align-items:stretch}.row-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.user-row{display:grid;grid-template-columns:44px 1fr auto;gap:.85rem;align-items:center}.user-panel{padding:.85rem 0 .35rem;gap:0;overflow:hidden}.user-panel .panel-head{padding:0 1.05rem .7rem}.user-panel .empty-hint{padding:1.2rem 1.05rem 1.4rem;margin:0}.user-table{display:flex;flex-direction:column}.user-thead,.user-tr{display:grid;grid-template-columns:minmax(220px,2.2fr) minmax(100px,1fr) 64px 84px 108px;gap:.75rem;align-items:center;padding:.55rem 1.05rem}.ticket-thead,.ticket-tr{grid-template-columns:minmax(200px,2fr) 88px minmax(120px,1.2fr) 84px 120px}a.ticket-tr{color:inherit;text-decoration:none}a.ticket-tr:hover{background:#f8fbff}.user-thead{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:none}.user-tr{border-bottom:1px solid #eef2f7;min-height:56px;transition:background .12s ease}.user-tr:last-child{border-bottom:0}.user-tr:hover{background:#f8fbff}.user-tr.is-banned{background:#fff8f8}.user-tr.is-banned:hover{background:#fff1f2}.user-cell{min-width:0}.user-cell-main{display:flex;align-items:center;gap:.7rem}.user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.72rem;flex-shrink:0;box-shadow:inset 0 -2px #00000014}.user-meta{min-width:0;display:flex;flex-direction:column;gap:.08rem}.user-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;font-size:.92rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.user-cell-id{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start}.pill.soft{font-size:.7rem;font-weight:700;padding:.12rem .45rem;border-radius:6px;background:#eef2f7;color:#475569}.dev-count{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}.user-cell-status{display:flex;justify-content:flex-start}.user-cell-actions{display:flex;justify-content:flex-end;gap:.55rem;align-items:center}.link-btn{border:0;background:none;padding:0;margin:0;font:inherit;font-size:.86rem;font-weight:600;color:var(--accent-deep);cursor:pointer;text-decoration:none}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn.danger{color:var(--danger)}.link-btn:disabled{opacity:.45;cursor:not-allowed}.badge{font-size:.72rem;font-weight:700;padding:.22rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);letter-spacing:.02em}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.tone-ok{background:var(--ok-soft);color:var(--ok)}.badge.tone-danger{background:var(--danger-soft);color:var(--danger)}.badge.tone-warn{background:#fff7ed;color:var(--warn)}.badge.tone-info{background:var(--accent-soft);color:var(--accent-deep)}.badge.tone-muted{background:#eef2f7;color:#64748b}.filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:.28rem .7rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.chip:hover{border-color:var(--line-strong);color:var(--ink)}.chip.active{background:var(--accent-soft);border-color:#bfdbfe;color:var(--accent-deep)}.audit-thead,.audit-tr{grid-template-columns:158px minmax(120px,1.1fr) 110px minmax(120px,1fr) minmax(140px,1.4fr)}button.audit-tr{width:100%;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}button.audit-tr:hover,.audit-row.open{background:#f8fbff}.audit-time{font-size:.78rem;color:var(--muted)}.audit-code{display:block;margin-top:.15rem}.audit-actor{font-size:.9rem;font-weight:650}.audit-target{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start}.audit-json{margin:0;padding:.65rem 1.05rem .9rem;border-bottom:1px solid #eef2f7;background:#f1f5f9;color:#334155;font-size:.72rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all}.user-link{color:var(--ink)}.user-link:hover{color:var(--accent-deep)}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem}.kv-grid>div{display:flex;flex-direction:column;gap:.28rem;padding:.75rem .85rem;background:#f8fafc;border-radius:12px}.kv-grid strong.ok{color:var(--ok)}.kv-grid strong.bad{color:var(--danger)}code.json{font-size:.75rem;word-break:break-all;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f5f9;padding:.45rem .55rem;border-radius:8px}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;align-items:center;padding:.8rem;gap:.65rem}.side-brand{border:0;padding:0}.side-nav{flex-direction:row;flex-wrap:wrap;width:100%}.side-nav a.active{box-shadow:none}.side-footer{border:0;padding:0;margin-left:auto;flex-direction:row;align-items:center}.logout{width:auto}.main{padding:1rem}.user-row{grid-template-columns:40px 1fr}.user-row .row-actions{grid-column:1 / -1;justify-content:flex-end}.user-thead{display:none}.user-tr{grid-template-columns:1fr auto;grid-template-areas:"main status" "id actions" "dev actions";gap:.35rem .75rem;padding:.75rem 1rem;align-items:start}.audit-thead{display:none}.audit-tr{grid-template-columns:1fr auto;grid-template-areas:"action time" "actor actor" "target detail";gap:.3rem .75rem}.audit-tr .audit-time{grid-area:time;text-align:right}.audit-tr .user-cell:nth-child(2){grid-area:action}.audit-tr .user-cell:nth-child(3){grid-area:actor}.audit-tr .audit-target{grid-area:target}.audit-tr .user-cell:nth-child(5){grid-area:detail}.user-cell-main{grid-area:main}.user-cell-id{grid-area:id}.user-cell-dev{grid-area:dev}.user-cell-dev:before{content:"设备 ";color:var(--muted);font-size:.75rem;font-weight:500}.user-cell-status{grid-area:status;justify-content:flex-end}.user-cell-actions{grid-area:actions;align-self:end}.dash-grid{grid-template-columns:1fr}.chart-body{grid-template-columns:1fr;justify-items:center}.bar-list{width:100%}}.sc-btn{border:0;border-radius:10px;padding:.55rem .9rem;cursor:pointer;font-weight:600;font-size:.9rem;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease}.sc-btn--primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px #0b84ff40}.sc-btn--primary:hover:not(:disabled){background:var(--accent-deep)}.sc-btn--ghost{background:#eef2f7;color:var(--ink)}.sc-btn--ghost:hover:not(:disabled){background:#e4eaf2}.sc-btn--danger{background:var(--danger-soft);color:var(--danger)}.sc-btn--danger:hover:not(:disabled){background:#ffe4e6}.sc-btn:disabled,.sc-btn.is-busy{opacity:.45;cursor:not-allowed;box-shadow:none}.sc-btn:active:not(:disabled){transform:translateY(1px)}.sc-btn--icon svg{flex-shrink:0}.sc-link-btn{border:0;background:none;padding:0;margin:0;font:inherit;font-size:.86rem;font-weight:600;color:var(--accent-deep);cursor:pointer;text-decoration:none}.sc-link-btn:hover:not(:disabled){text-decoration:underline}.sc-link-btn--danger,.sc-link-btn.danger{color:var(--danger)}.sc-link-btn:disabled{opacity:.45;cursor:not-allowed}.sc-input,.sc-textarea,.sc-select{--sc-control-bg: #f8fafc;--sc-control-radius: 11px}.sc-input,.sc-textarea,.sc-select__native{width:100%;border:1px solid var(--line);border-radius:var(--sc-control-radius);padding:.72rem .9rem;outline:none;background:var(--sc-control-bg);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.sc-textarea{resize:vertical;min-height:96px;line-height:1.45}.sc-input:hover:not(:disabled):not(:focus),.sc-textarea:hover:not(:disabled):not(:focus),.sc-select:hover:not(.is-invalid) .sc-select__native:not(:disabled):not(:focus){border-color:var(--line-strong)}.sc-input:focus,.sc-textarea:focus,.sc-select__native:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0b84ff24;background:#fff}.sc-input.is-invalid,.sc-textarea.is-invalid,.sc-select.is-invalid .sc-select__native{border-color:var(--danger)}.sc-input.is-invalid:focus,.sc-textarea.is-invalid:focus,.sc-select.is-invalid .sc-select__native:focus{box-shadow:0 0 0 4px #e11d4824}.sc-input:disabled,.sc-textarea:disabled,.sc-select__native:disabled{opacity:.55;cursor:not-allowed}.sc-input--search{flex:1;min-width:220px}.sc-select{position:relative;display:inline-flex;align-items:center;min-width:140px}.sc-select__native{appearance:none;-webkit-appearance:none;padding-right:2.2rem;cursor:pointer;background:var(--sc-control-bg)}.sc-select__native:focus{background:#fff}.sc-select__chevron{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:grid;place-items:center}.sc-select:focus-within .sc-select__chevron{color:var(--accent-deep)}.sc-field{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.88rem;font-weight:500}.sc-field__label{color:var(--muted)}.sc-field__hint{font-size:12px;font-weight:400;color:var(--muted)}.sc-field__error{font-size:12px;font-weight:500;color:var(--danger)}.sc-check{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.88rem;font-weight:550;padding:.35rem .55rem;border-radius:999px;background:#f3f5f8;cursor:pointer;user-select:none}.sc-check input{accent-color:var(--accent)}.sc-badge{font-size:.72rem;font-weight:700;padding:.22rem .55rem;border-radius:999px;letter-spacing:.02em;display:inline-flex;align-items:center;background:var(--accent-soft);color:var(--accent-deep)}.sc-badge--ok{background:var(--ok-soft);color:var(--ok)}.sc-badge--danger{background:var(--danger-soft);color:var(--danger)}.sc-badge--warn{background:#fff7ed;color:var(--warn)}.sc-badge--info{background:var(--accent-soft);color:var(--accent-deep)}.sc-badge--muted{background:#eef2f7;color:#64748b}.sc-pill{font-size:.7rem;font-weight:700;padding:.12rem .45rem;border-radius:6px;background:#eef2f7;color:#475569}.sc-chip{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:.28rem .7rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.sc-chip:hover{border-color:var(--line-strong);color:var(--ink)}.sc-chip.is-active{background:var(--accent-soft);border-color:#bfdbfe;color:var(--accent-deep)}.sc-alert{margin:.65rem 0;font-weight:500}.sc-alert--danger{color:var(--danger)}.sc-alert--ok{color:var(--ok)}.sc-alert--info{color:var(--accent-deep)}.sc-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem}.sc-page-head h1{margin:0;font-size:1.55rem;letter-spacing:-.03em;font-weight:700}.sc-page-head p{margin:.3rem 0 0;font-size:.92rem}.sc-toolbar{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-bottom:.15rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.sc-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;margin-top:.9rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:var(--shadow-sm)}.sc-panel--flush{padding:.85rem 0 .35rem;gap:0;overflow:hidden}.sc-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.sc-panel--flush .sc-panel__head{padding:0 1.05rem .7rem}.sc-field .sc-select{width:100%;display:block}.sc-form{display:flex;flex-direction:column;gap:.85rem}.sc-panel.chart-panel,.dash-grid .sc-panel{margin-top:0}.sc-panel.user-panel .empty-hint{padding:1.2rem 1.05rem 1.4rem;margin:0}.audit-toolbar{flex-direction:column;align-items:stretch}.logout.sc-btn{width:100%;background:#ffffff0f!important;color:#e5e7eb!important}.logout.sc-btn:hover:not(:disabled){background:#ffffff1a!important}.login-card .sc-btn--primary{width:100%}.sc-modal-root{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem}.sc-modal-backdrop{position:absolute;inset:0;border:0;padding:0;margin:0;background:#0f172a73;cursor:pointer}.sc-modal{position:relative;z-index:1;width:min(520px,100%);max-height:min(86vh,720px);display:flex;flex-direction:column;background:var(--panel);border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 64px #0f172a38;overflow:hidden;animation:sc-modal-in .18s ease}.sc-modal--wide{width:min(640px,100%)}@keyframes sc-modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.sc-modal__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.15rem;border-bottom:1px solid var(--line)}.sc-modal__head h2{margin:0;font-size:1.05rem;letter-spacing:-.02em}.sc-modal__close{width:32px;height:32px;border:0;border-radius:8px;background:#eef2f7;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer}.sc-modal__close:hover{background:#e4eaf2;color:var(--ink)}.sc-modal__body{padding:1.05rem 1.15rem;overflow:auto;display:flex;flex-direction:column;gap:.85rem}.sc-modal__foot{padding:.85rem 1.15rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;background:#f8fafc}.user-tr.is-clickable{cursor:pointer}.user-tr.is-clickable:hover{background:#f8fbff}.user-detail-hero{display:flex;align-items:center;gap:.85rem}.user-detail-hero .user-avatar{width:48px;height:48px;font-size:.9rem}.user-detail-hero strong{display:block;font-size:1.05rem}.user-detail-hero .mono{margin-top:.15rem}
