:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6fa;--surface:#fff;--surface-2:#f8f9fc;--surface-3:#eef0f6;--border:#e3e6ee;--border-strong:#cfd4df;--text:#151823;--text-2:#3d4354;--text-muted:#6b7285;--accent:#5b4cf0;--accent-hover:#4a3bd9;--accent-soft:#eeecff;--accent-text:#4636d6;--on-accent:#fff;--success:#117a3e;--success-soft:#e3f6ea;--danger:#c62b2b;--danger-hover:#a92222;--danger-soft:#fde8e8;--info-soft:#e8f0fd;--info:#1d5fb8;--grid:#eceef3;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 8px 24px #1018281f;--shadow-lg:0 24px 64px #10182838;--overlay:#0f121e73;--skeleton:#e9ecf2;--skeleton-hi:#f5f6f9;--heat-color:#2a78d6;--series-1:#2a78d6;--series-2:#eb6834;--reason-hungry:#eb6834;--reason-sleepy:#2a78d6;--reason-discomfort:#1baf7a;--reason-pain:#e34948;--reason-attention:#4a3aa7;--radius:12px;--radius-sm:8px;--sidebar-w:248px;--topbar-h:60px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1117;--surface:#181b24;--surface-2:#1d212c;--surface-3:#252a36;--border:#2a2f3c;--border-strong:#3a4050;--text:#eef0f6;--text-2:#c7cbd6;--text-muted:#949bad;--accent:#8b7ff9;--accent-hover:#9f95fb;--accent-soft:#2a2552;--accent-text:#b3abff;--on-accent:#0f1117;--success:#4cc783;--success-soft:#16301f;--danger:#f06a6a;--danger-hover:#f58585;--danger-soft:#3a1c1f;--info-soft:#172640;--info:#7fb1f5;--grid:#242936;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 24px 64px #0009;--overlay:#0009;--skeleton:#232733;--skeleton-hi:#2d3240;--heat-color:#3987e5;--series-1:#3987e5;--series-2:#d95926;--reason-hungry:#d95926;--reason-sleepy:#3987e5;--reason-discomfort:#199e70;--reason-pain:#e66767;--reason-attention:#9085e9}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1117;--surface:#181b24;--surface-2:#1d212c;--surface-3:#252a36;--border:#2a2f3c;--border-strong:#3a4050;--text:#eef0f6;--text-2:#c7cbd6;--text-muted:#949bad;--accent:#8b7ff9;--accent-hover:#9f95fb;--accent-soft:#2a2552;--accent-text:#b3abff;--on-accent:#0f1117;--success:#4cc783;--success-soft:#16301f;--danger:#f06a6a;--danger-hover:#f58585;--danger-soft:#3a1c1f;--info-soft:#172640;--info:#7fb1f5;--grid:#242936;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 24px 64px #0009;--overlay:#0009;--skeleton:#232733;--skeleton-hi:#2d3240;--heat-color:#3987e5;--series-1:#3987e5;--series-2:#d95926;--reason-hungry:#d95926;--reason-sleepy:#3987e5;--reason-discomfort:#199e70;--reason-pain:#e66767;--reason-attention:#9085e9}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:650;line-height:1.25}p{margin:0}a{color:var(--accent-text)}code{font-family:var(--mono);background:var(--surface-3);border-radius:5px;padding:1px 6px;font-size:.85em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-muted)}.small{font-size:12.5px}.mono{font-family:var(--mono);font-size:13px}.nowrap{white-space:nowrap}.strong{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{vertical-align:middle;flex-shrink:0}.stack{flex-direction:column;gap:16px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:40;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-head{height:var(--topbar-h);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--accent), #9b5cf6);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{font-size:15px}.brand-text small{color:var(--text-muted);font-size:12px}.nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.nav-link{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:12px;padding:9px 12px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link:hover{background:var(--surface-3);color:var(--text)}.nav-link.active{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.sidebar-foot{border-top:1px solid var(--border);padding:12px 14px}.sidebar-user{align-items:center;gap:10px;min-width:0;display:flex}.sidebar-user-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.sidebar-user-text strong,.sidebar-user-text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-user-text small{color:var(--text-muted)}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.avatar.lg{width:52px;height:52px;font-size:20px}.avatar.sm{width:28px;height:28px}.main{min-width:0;margin-left:var(--sidebar-w);flex-direction:column;flex:1;display:flex}.topbar{z-index:30;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-title{color:var(--text-2);font-weight:600}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.content{flex-direction:column;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:24px;display:flex}.only-mobile{display:none!important}.backdrop{background:var(--overlay);z-index:35;position:fixed;inset:0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header h1{font-size:24px}.page-subtitle{max-width:760px;margin-top:6px}.page-actions{gap:8px;display:flex}.fullscreen-center{place-items:center;min-height:100vh;display:grid}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:550;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{height:32px;padding:0 10px;font-size:13px}.btn-block{width:100%}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.btn-danger-outline:hover:not(:disabled){background:var(--danger-soft)}.btn-ghost{background:0 0;border-color:#0000}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.sm{width:28px;height:28px}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.play-btn{border-color:var(--border);width:32px;height:32px;color:var(--accent-text);border-radius:50%}.play-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:38px;padding:8px 12px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.5}select{cursor:pointer}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}input:disabled{opacity:.6}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:550;display:flex}.field-hint{color:var(--text-muted);font-size:12px}.field.inline{flex-direction:row;align-items:center;gap:8px}.field.inline select,.field.inline input{width:auto;min-width:140px}.field.inline .input-narrow{width:100px;min-width:0}.form{flex-direction:column;gap:16px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.lang-switch{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);align-items:center;gap:6px;padding-left:10px;display:inline-flex}.lang-switch select{width:auto;min-height:34px;box-shadow:none;background:0 0;border:none;padding:4px 8px 4px 2px}.lang-tag{letter-spacing:.04em;background:var(--surface-3);color:var(--text-muted);border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:700}.lang-tag.missing{color:var(--danger);background:var(--danger-soft);text-decoration:line-through}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.toggle.disabled{opacity:.6;cursor:not-allowed}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .2s;position:relative}.toggle-thumb{width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0;padding:20px}.card-flush{padding:0;overflow:hidden}.card-title{margin-bottom:14px;font-size:15px;font-weight:650}.card-subtitle{margin:-8px 0 14px;font-size:13px}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.kpi-grid-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.kpi{flex-direction:column;gap:8px;padding:16px 18px;display:flex}.kpi-top{justify-content:space-between;align-items:center;display:flex}.kpi-label{color:var(--text-muted);font-size:13px;font-weight:550}.kpi-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:8px;place-items:center;display:grid}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1}.kpi-value small{font-size:14px;font-weight:500}.kpi-hint{font-size:12px}.grid-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.chart-box{width:100%;height:300px}.chart-box .recharts-legend-item-text{color:var(--text-2)!important}.donut-wrap{flex-direction:column;gap:16px;display:flex}.donut-box{height:200px;position:relative}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center strong{font-variant-numeric:tabular-nums;font-size:24px}.legend-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.legend-list li{grid-template-columns:auto 1fr auto 52px;align-items:center;gap:10px;display:grid}.legend-value{font-variant-numeric:tabular-nums;font-weight:600}.legend-pct{text-align:right;font-variant-numeric:tabular-nums}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.search{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);max-width:420px;color:var(--text-muted);flex:1;align-items:center;gap:8px;padding-left:12px;display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.search input{color:var(--text);background:0 0;border:none;padding-left:0;box-shadow:none!important}.table-wrap{width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}.table thead th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);white-space:nowrap;font-size:12px;font-weight:600}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom:none}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table tr.selected td{background:var(--accent-soft)}.table tr.row-muted .tip-text{color:var(--text-muted)}.table-compact th,.table-compact td{padding:7px 10px}.table-compact tbody th{color:var(--text-2);font-weight:500}tbody.is-refreshing{opacity:.55;transition:opacity .2s}.row-chevron{color:var(--text-muted);width:32px}.row-actions{text-align:right;white-space:nowrap;width:90px}.col-order{width:80px}.col-status{width:160px}.col-actions{width:90px}.pagination{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.pagination-buttons{align-items:center;gap:8px;display:flex}.page-indicator{font-variant-numeric:tabular-nums;color:var(--text-2);text-align:center;min-width:56px}.matrix{border-collapse:separate;border-spacing:3px;width:100%;min-width:640px}.matrix th,.matrix td{text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;padding:10px 12px}.matrix thead th{color:var(--text-2);white-space:nowrap;font-size:12.5px;font-weight:600}.matrix tbody th,.matrix tfoot th{text-align:left;white-space:nowrap;color:var(--text-2);font-weight:600}.matrix-corner{flex-direction:column;display:flex;text-align:left!important;color:var(--text-muted)!important;font-size:11px!important;font-weight:500!important}.matrix td.heat{background:color-mix(in srgb, var(--heat-color) var(--heat,0%), var(--surface-2));min-width:64px;font-weight:600}.matrix td.diag{box-shadow:inset 0 0 0 2px var(--success)}.matrix .matrix-side{color:var(--text-muted);background:0 0;font-weight:600}.matrix tfoot th,.matrix tfoot td{border-top:1px solid var(--border)}.badge{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.reason-badge{background:color-mix(in srgb, var(--c) 14%, var(--surface));color:var(--text);border:1px solid color-mix(in srgb, var(--c) 35%, transparent)}.reason-badge .dot{background:var(--c)}.badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.fb{align-items:center;gap:4px;font-weight:600;display:inline-flex}.fb-ok{color:var(--success)}.fb-bad{color:var(--danger)}.cry-yes{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-weight:600;display:inline-flex}.prob-mini{background:var(--surface-2);border-radius:4px;align-items:flex-end;gap:2px;height:26px;padding:2px;display:inline-flex}.prob-mini-col{align-items:flex-end;width:7px;height:100%;display:flex}.prob-mini-bar{border-radius:2px 2px 0 0;width:100%}.prob-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.prob-row{grid-template-columns:minmax(110px,150px) 1fr 52px;align-items:center;gap:10px;display:grid}.prob-label{color:var(--text-2);font-size:13px}.prob-track{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.prob-fill{border-radius:999px;height:100%;transition:width .3s;display:block}.prob-value{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.overlay{z-index:100;background:var(--overlay);animation:.15s ease-out fade-in;display:flex;position:fixed;inset:0}.overlay-dialog{justify-content:center;align-items:center;padding:24px}.overlay-drawer{justify-content:flex-end}.panel{background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;max-height:100%;display:flex}.panel-dialog{border-radius:16px;width:100%;max-height:calc(100vh - 48px);animation:.18s ease-out pop-in}.panel-sm{max-width:440px}.panel-md{max-width:620px}.panel-lg{max-width:980px}.panel-drawer{width:min(480px,100%);height:100%;animation:.2s ease-out slide-in}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.panel-header h2{font-size:17px}.panel-body{flex:1;padding:20px;overflow-y:auto}.panel-footer{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 16px 16px;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.confirm-text{color:var(--text-2)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}.user-head{align-items:center;gap:14px;display:flex}.user-head h3{font-size:18px}.dl{grid-template-columns:minmax(120px,max-content) 1fr;gap:8px 16px;margin:0;display:grid}.dl dt{color:var(--text-muted)}.dl dd{min-width:0;margin:0}.mini-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mini-stats>div{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);flex-direction:column;padding:12px;display:flex}.mini-stats strong{font-variant-numeric:tabular-nums;font-size:20px}.mini-stats span{font-size:12px}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:18px 0 10px;font-size:12px;font-weight:650}section>.section-title:first-child{margin-top:0}.child-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.child-item{border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:10px 12px;display:flex}.child-info{flex-direction:column;flex:1;min-width:0;font-size:13px;display:flex}.action-grid{flex-direction:column;gap:8px;display:flex}.action-grid .btn{justify-content:flex-start}.detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;display:grid}.audio-block{margin-top:8px}.audio-player{width:100%}.tip-list{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.check-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.check-list li{color:var(--text-2);align-items:flex-start;gap:10px;display:flex}.check-list .icon{color:var(--accent-text);margin-top:2px}.code-chips{flex-wrap:wrap;gap:6px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:34px;color:var(--text-2);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-weight:550;display:inline-flex}.chip:hover{background:var(--surface-3)}.chip.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent-text)}.chip-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.tip-group-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.tip-empty{padding:16px}.tip-text{color:var(--text);max-width:760px}.tip-langs{gap:4px;margin-top:6px;display:flex}.settings-form{flex-direction:column;gap:14px;max-width:900px;display:flex}.setting{grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);align-items:center;gap:24px;display:grid}.setting-title{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:15px;font-weight:650;display:flex}.setting-text p{font-size:13px}.slider{flex-direction:column;gap:6px;display:flex}.slider-row{align-items:center;gap:14px;display:flex}.slider-value{text-align:center;font-variant-numeric:tabular-nums;background:var(--accent-soft);min-width:52px;color:var(--accent-text);border-radius:6px;padding:4px 8px;font-weight:700}.slider-scale{justify-content:space-between;display:flex}input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) var(--fill,50%), var(--surface-3) var(--fill,50%));cursor:pointer;border-radius:999px;flex:1;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:18px;height:18px}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.sticky-actions{background:linear-gradient(to top, var(--bg) 70%, transparent);padding:12px 0;position:sticky;bottom:0}.unsaved{align-items:center;gap:6px;margin-right:auto;display:inline-flex}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;animation:.7s linear infinite spin;display:inline-block}.btn-primary .spinner,.btn-danger .spinner{color:inherit}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--skeleton) 25%, var(--skeleton-hi) 50%, var(--skeleton) 75%);background-size:200% 100%;border-radius:6px;max-width:100%;animation:1.3s ease-in-out infinite shimmer;display:block}.card>.skeleton+.skeleton{margin-top:10px}.skeleton-row td{padding-top:15px;padding-bottom:15px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty-icon{background:var(--surface-3);width:48px;height:48px;color:var(--text-muted);border-radius:14px;place-items:center;display:grid}.empty-title{color:var(--text-2);font-weight:600}.error-state .empty-icon{background:var(--danger-soft);color:var(--danger)}.alert{border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:10px 14px;font-size:13.5px;display:flex}.alert .icon{margin-top:1px}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-info{background:var(--info-soft);color:var(--info)}.toasts{z-index:200;flex-direction:column;gap:10px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-left:4px solid var(--info);border-radius:10px;align-items:center;gap:10px;padding:10px 10px 10px 14px;animation:.2s ease-out pop-in;display:flex}.toast-success{border-left-color:var(--success)}.toast-success>.icon{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error>.icon{color:var(--danger)}.toast-msg{flex:1}.login-page{background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 45%), radial-gradient(circle at 85% 90%, #9b5cf624, transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-tools{gap:8px;display:flex;position:fixed;top:16px;right:16px}.login-card{width:100%;max-width:400px;box-shadow:var(--shadow-md);flex-direction:column;gap:18px;padding:32px;display:flex}.login-title{margin-bottom:4px;font-size:22px}@media (width<=1100px){.grid-2-1,.grid-2{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.detail-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.only-mobile{display:inline-grid!important}.backdrop.only-mobile{display:none!important}.menu-open .backdrop.only-mobile{display:block!important}.sidebar{visibility:hidden;transition:transform .22s,visibility .22s;transform:translate(-100%)}.menu-open .sidebar{visibility:visible;box-shadow:var(--shadow-lg);transform:none}.main{margin-left:0}.topbar{padding:0 16px}.content{padding:16px}.setting{grid-template-columns:minmax(0,1fr);gap:14px}}@media (width<=600px){.hide-sm{display:none}.page-header h1{font-size:20px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:22px}.form-row{grid-template-columns:minmax(0,1fr)}.field.inline{flex:100%}.field.inline select,.field.inline input,.field.inline .input-narrow{flex:1;width:auto}.overlay-dialog{align-items:flex-end;padding:0}.panel-dialog{border-radius:16px 16px 0 0;max-height:92vh}.panel-footer{border-radius:0}.topbar-title,.lang-switch .icon{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page-loader{min-height:40vh;color:var(--text-muted);place-items:center;display:grid}.model-badge{padding:4px 11px;font-size:12.5px;text-decoration:none}.model-badge:hover{filter:brightness(.97)}.model-badge code,.model-code{background:0 0;padding:0;font-size:12px}.model-code{color:var(--text-2)}.fb-soothed{color:var(--text-2);font-weight:500}.field-hint.is-error{color:var(--danger)}.model-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px 28px;display:grid}.model-hero-item{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;display:flex}.model-hero-value{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.model-hero-value code{padding:2px 8px;font-size:22px;font-weight:700}.model-hero-action{align-self:center;align-items:stretch}.model-hero-action .btn{justify-content:center}.model-progress{grid-column:1/-1}.progress-track{background:var(--surface-3);border-radius:999px;height:6px;margin-bottom:8px;position:relative;overflow:hidden}.progress-bar-indeterminate{background:var(--accent);border-radius:999px;width:35%;animation:1.4s ease-in-out infinite progress-slide;position:absolute;inset:0 auto 0 0}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}.alert-warn{background:color-mix(in srgb, var(--reason-hungry) 14%, var(--surface));color:var(--text);border:1px solid color-mix(in srgb, var(--reason-hungry) 35%, transparent)}.alert-close{flex:none;margin-left:auto}.delta{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:650;display:inline-block}.delta-up{color:var(--success);background:var(--success-soft)}.delta-down{color:var(--danger);background:var(--danger-soft)}.delta-flat{color:var(--text-muted);background:var(--surface-3)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.metric-grid>div{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);flex-direction:column;gap:2px;padding:12px;display:flex}.metric-grid strong{font-variant-numeric:tabular-nums;font-size:20px}.metric-grid strong .delta{font-size:15px}.metric-grid span,.metric-grid small{font-size:12px}.model-meta{align-items:center;margin:0 0 14px}.model-notes{margin-bottom:4px}.model-detail-grid{margin-top:4px}.model-confusion-hint{margin:-4px 0 10px}.footer-spacer{flex:1}@media (width<=860px){.model-hero{grid-template-columns:minmax(0,1fr)}}.model-active-badge{vertical-align:middle;margin-left:8px}.bar-list .prob-row{grid-template-columns:minmax(110px,170px) minmax(60px,1fr) auto}.bar-list .prob-value{white-space:nowrap;min-width:52px}.dash-model{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.dash-model .card-title{margin-bottom:2px}.table .model-code{background:var(--surface-3);border-radius:5px;padding:1px 5px;font-size:11px}
