@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{color-scheme:dark;--font: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--bg: #0c0d11;--glow-1: rgba(124, 92, 255, .2);--glow-2: rgba(34, 211, 238, .12);--glow-3: rgba(244, 114, 182, .1);--surface: #17181d;--surface-2: #1e1f25;--surface-3: #111216;--surface-glass: rgba(23, 24, 29, .78);--border: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .14);--text: #f6f6f4;--text-2: #c3c2b7;--text-3: #8d8b85;--grid: #26272c;--axis: #3a3b41;--hover: rgba(255, 255, 255, .05);--active: rgba(255, 255, 255, .09);--shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 12px 32px -12px rgba(0, 0, 0, .6);--shadow-pop: 0 24px 60px -12px rgba(0, 0, 0, .7), 0 0 0 1px var(--border-strong);--accent: #8b5cf6;--accent-soft: color-mix(in oklab, var(--accent) 18%, transparent);--accent-text: color-mix(in oklab, var(--accent) 70%, white);--on-accent: #ffffff;--good: #0ca30c;--good-text: #3ecf3e;--warning: #fab219;--serious: #ec835a;--critical: #d03b3b;--critical-text: #f07c7c;--radius: 16px;--radius-sm: 10px;--radius-xs: 7px;--gap: 14px;--header-h: 60px;--ease: cubic-bezier(.22, 1, .36, 1)}@media(prefers-color-scheme:light){:root:where(:not([data-theme=dark])){color-scheme:light;--bg: #f3f3f0;--glow-1: rgba(139, 92, 246, .13);--glow-2: rgba(14, 165, 233, .1);--glow-3: rgba(236, 72, 153, .07);--surface: #fcfcfb;--surface-2: #f4f4f1;--surface-3: #ffffff;--surface-glass: rgba(252, 252, 251, .82);--border: rgba(11, 11, 11, .085);--border-strong: rgba(11, 11, 11, .16);--text: #0b0b0b;--text-2: #52514e;--text-3: #7c7a74;--grid: #e7e6e0;--axis: #c3c2b7;--hover: rgba(11, 11, 11, .04);--active: rgba(11, 11, 11, .07);--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 10px 30px -14px rgba(11, 11, 11, .18);--shadow-pop: 0 24px 60px -12px rgba(11, 11, 11, .25), 0 0 0 1px var(--border-strong);--accent-text: color-mix(in oklab, var(--accent) 80%, black);--good-text: #006300;--critical-text: #b42323}}:root[data-theme=light]{color-scheme:light;--bg: #f3f3f0;--glow-1: rgba(139, 92, 246, .13);--glow-2: rgba(14, 165, 233, .1);--glow-3: rgba(236, 72, 153, .07);--surface: #fcfcfb;--surface-2: #f4f4f1;--surface-3: #ffffff;--surface-glass: rgba(252, 252, 251, .82);--border: rgba(11, 11, 11, .085);--border-strong: rgba(11, 11, 11, .16);--text: #0b0b0b;--text-2: #52514e;--text-3: #7c7a74;--grid: #e7e6e0;--axis: #c3c2b7;--hover: rgba(11, 11, 11, .04);--active: rgba(11, 11, 11, .07);--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 10px 30px -14px rgba(11, 11, 11, .18);--shadow-pop: 0 24px 60px -12px rgba(11, 11, 11, .25), 0 0 0 1px var(--border-strong);--accent-text: color-mix(in oklab, var(--accent) 80%, black);--good-text: #006300;--critical-text: #b42323}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}body:before{content:"";position:fixed;top:-20vmax;right:-20vmax;bottom:-20vmax;left:-20vmax;z-index:-1;pointer-events:none;background:radial-gradient(40vmax 30vmax at 12% 8%,var(--glow-1),transparent 60%),radial-gradient(36vmax 28vmax at 88% 12%,var(--glow-2),transparent 60%),radial-gradient(40vmax 30vmax at 70% 95%,var(--glow-3),transparent 60%);animation:drift 40s var(--ease) infinite alternate}@keyframes drift{to{transform:translate3d(2vmax,-1.5vmax,0) rotate(3deg)}}@media(prefers-reduced-motion:reduce){body:before{animation:none}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:14px}p{margin:0}code,.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--text-3)}.soft{color:var(--text-2)}.num{font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.grow{flex:1;min-width:0}.spacer{flex:1}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.hide-sm{display:none!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;height:var(--header-h);display:flex;align-items:center;gap:14px;padding:0 20px;background:color-mix(in oklab,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:-.01em}.brand-mark{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,#a78bfa,#6d5ef6 55%,#22d3ee);box-shadow:0 6px 18px -6px #6d5ef6cc}.brand-mark svg{width:16px;height:16px;color:#fff}.brand small{font-weight:500;color:var(--text-3);font-size:12px;margin-left:2px}.nav{display:flex;gap:2px;margin-left:10px}.nav a{padding:7px 12px;border-radius:9px;color:var(--text-2);font-weight:500;display:flex;align-items:center;gap:7px;transition:background .15s,color .15s}.nav a:hover{background:var(--hover);color:var(--text)}.nav a.active{background:var(--active);color:var(--text)}.nav svg{width:16px;height:16px;opacity:.8}.search-trigger{display:flex;align-items:center;gap:8px;min-width:240px;padding:7px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text-3);cursor:pointer;transition:border-color .15s}.search-trigger:hover{border-color:var(--border-strong)}.search-trigger kbd{margin-left:auto}kbd{font-family:var(--font);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--border-strong);color:var(--text-3);background:var(--surface-2)}.page{width:100%;max-width:1480px;margin:0 auto;padding:28px 24px 60px}.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{font-size:26px}.page-head p{color:var(--text-2);margin-top:4px}@media(max-width:760px){.topbar{padding:0 12px;gap:8px}.nav{margin-left:0}.nav a span{display:none}.page{padding:18px 14px 40px}.search-trigger{min-width:0}.search-trigger span,.search-trigger kbd{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-weight:550;font-size:13.5px;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,transform .08s,box-shadow .15s}.btn:hover{background:color-mix(in oklab,var(--surface-2) 80%,var(--text) 6%)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px;flex:none}.btn.primary{background:var(--accent);border-color:transparent;color:var(--on-accent);box-shadow:0 8px 22px -10px var(--accent)}.btn.primary:hover{background:color-mix(in oklab,var(--accent) 88%,white)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--hover);color:var(--text)}.btn.danger{color:var(--critical-text)}.btn.danger.solid{background:var(--critical);color:#fff;border-color:transparent}.btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:8px}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:28px}.btn.on{background:var(--accent-soft);border-color:color-mix(in oklab,var(--accent) 45%,transparent);color:var(--accent-text)}.input,.select,.textarea{width:100%;height:34px;padding:0 11px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);transition:border-color .15s,box-shadow .15s}.textarea{height:auto;padding:9px 11px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238d8b85' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}button.select{display:block;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.input.sm,.select.sm{height:28px;font-size:12.5px;border-radius:7px}.field{display:flex;flex-direction:column;gap:6px}.field>label,.label{font-size:12px;font-weight:600;color:var(--text-2);letter-spacing:.01em}.hint{font-size:12px;color:var(--text-3)}.error-text{color:var(--critical-text);font-size:12.5px}.input-icon{position:relative}.input-icon svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-3);pointer-events:none}.input-icon .input{padding-left:32px}.toggle{position:relative;width:34px;height:20px;border-radius:20px;background:var(--border-strong);border:none;cursor:pointer;transition:background .2s;flex:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s var(--ease);box-shadow:0 1px 3px #0000004d}.toggle.on{background:var(--accent)}.toggle.on:after{transform:translate(14px)}.seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--surface-3);border:1px solid var(--border);gap:2px}.seg button{border:none;background:transparent;padding:5px 11px;border-radius:7px;color:var(--text-2);font-weight:550;font-size:12.5px;cursor:pointer;display:flex;align-items:center;gap:6px}.seg button svg{width:14px;height:14px}.seg button:hover{color:var(--text)}.seg button.on{background:var(--surface-2);color:var(--text);box-shadow:0 1px 3px #0000002e,0 0 0 1px var(--border)}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);font-size:12.5px;color:var(--text-2);white-space:nowrap}.chip button{border:none;background:none;padding:0;margin-right:-4px;color:var(--text-3);cursor:pointer;display:grid;place-items:center}.chip button:hover{color:var(--text)}.chip svg{width:13px;height:13px}.chip.accent{background:var(--accent-soft);color:var(--accent-text);border-color:color-mix(in oklab,var(--accent) 35%,transparent)}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.02em;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.badge svg{width:11px;height:11px}.badge.accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}.badge.good{color:var(--good-text);background:color-mix(in oklab,var(--good) 14%,transparent);border-color:transparent}.badge.warn{color:var(--warning);background:color-mix(in oklab,var(--warning) 14%,transparent);border-color:transparent}.badge.bad{color:var(--critical-text);background:color-mix(in oklab,var(--critical) 14%,transparent);border-color:transparent}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px}.divider{height:1px;background:var(--border);margin:12px 0;border:none}.empty{display:grid;place-items:center;text-align:center;gap:10px;padding:48px 20px;color:var(--text-2)}.empty .empty-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.empty .empty-icon svg{width:24px;height:24px}.empty h3{color:var(--text);font-size:16px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:650;color:#fff;flex:none;background:linear-gradient(135deg,#7c5cff,#22d3ee)}.avatar.sm{width:24px;height:24px;font-size:10.5px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2),color-mix(in oklab,var(--surface-2) 70%,var(--text) 6%),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pop{position:fixed;z-index:1000;min-width:200px;max-width:min(580px,calc(100vw - 16px));background:var(--surface);border-radius:12px;box-shadow:var(--shadow-pop);padding:5px;animation:pop-in .14s var(--ease);max-height:min(70vh,520px);overflow:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border:none;background:none;border-radius:8px;text-align:left;cursor:pointer;color:var(--text);font-size:13.5px}.menu-item:hover,.menu-item.hl{background:var(--hover)}.menu-item svg{width:15px;height:15px;color:var(--text-3);flex:none}.menu-item.danger{color:var(--critical-text)}.menu-item.danger svg{color:currentColor}.menu-item .check{margin-left:auto;color:var(--accent-text)}.menu-item .meta{margin-left:auto;color:var(--text-3);font-size:12px}.fpop{padding:0!important;overflow:hidden;display:flex;flex-direction:column;max-height:min(520px,70vh)}.fhead{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--border);cursor:pointer;font-size:13.5px;-webkit-user-select:none;user-select:none}.fhead:hover{background:var(--hover)}.fhead .cnt-h{color:var(--text-3);font-size:12px;font-weight:600}.fsearch{padding:8px 8px 6px;border-bottom:1px solid var(--border)}.flist{overflow:auto;padding:4px;flex:1;min-height:0}.fopt{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13.5px;color:var(--text);min-height:32px}.fopt:hover,.fopt:focus-visible{background:var(--hover);outline:none}.fopt .cnt{color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}.fopt .only{display:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);border-radius:6px;font-size:11px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;cursor:pointer}.fopt .only:hover{color:var(--accent-text);border-color:var(--accent)}.fopt:hover .only,.fopt:focus-within .only{display:inline-flex}.fopt:hover .cnt,.fopt:focus-within .cnt{display:none}@media(hover:none){.fopt .only{display:inline-flex}}.fcheck{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border-strong);display:grid;place-items:center;flex:none;transition:background .12s,border-color .12s}.fcheck.on,.fcheck.some{background:var(--accent);border-color:var(--accent)}.fcheck svg{width:11px;height:11px;color:#fff}.fcheck i{width:8px;height:2px;border-radius:1px;background:#fff}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.menu-label{padding:7px 10px 4px;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#05060a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.modal{width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--surface);border-radius:18px;box-shadow:var(--shadow-pop);animation:modal-in .22s var(--ease);overflow:hidden}.modal.wide{width:min(880px,100%)}.modal.full{width:min(1400px,100%);height:calc(100vh - 40px)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.985)}}.modal-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-head h2{flex:1}.modal-body{padding:18px;overflow:auto;flex:1}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--border);background:var(--surface-2)}.toasts{position:fixed;bottom:18px;right:18px;z-index:2000;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow-pop);min-width:260px;max-width:420px;animation:toast-in .25s var(--ease);font-size:13.5px}.toast svg{width:17px;height:17px;flex:none}.toast.good svg{color:var(--good-text)}.toast.bad svg{color:var(--critical-text)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}.tabs button{border:none;background:none;padding:10px 14px;color:var(--text-2);font-weight:550;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:7px;align-items:center;white-space:nowrap}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.tabs button svg{width:15px;height:15px}.tabs .count{font-size:11px;padding:0 6px;border-radius:10px;background:var(--surface-2);color:var(--text-3)}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.tbl th{text-align:left;font-weight:600;font-size:12px;color:var(--text-3);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:1}.tbl td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:var(--hover)}.tbl .r{text-align:right}.tbl-wrap{overflow:auto}.login{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr}.login-hero{position:relative;overflow:hidden;padding:48px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border)}.login-hero h1{font-size:44px;line-height:1.08;letter-spacing:-.03em;max-width:540px}.login-hero h1 em{font-style:normal;background:linear-gradient(90deg,#a78bfa,#22d3ee 60%,#f472b6);-webkit-background-clip:text;background-clip:text;color:transparent}.login-hero p{color:var(--text-2);font-size:16px;max-width:480px;margin-top:16px}.login-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:560px}.login-feat{padding:14px;border-radius:14px;background:var(--surface-glass);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-feat b{display:flex;gap:8px;align-items:center;font-size:13.5px}.login-feat b svg{width:16px;height:16px;color:var(--accent-text)}.login-feat span{color:var(--text-3);font-size:12.5px;display:block;margin-top:4px}.login-panel{display:grid;place-items:center;padding:32px}.login-box{width:min(380px,100%);display:flex;flex-direction:column;gap:16px}.login-links{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.link-btn{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--accent-text);cursor:pointer;text-align:left}.link-btn:hover{text-decoration:underline}.ms-btn{height:44px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .15s,transform .1s}.ms-btn:hover{background:var(--surface-2)}.ms-btn svg{width:18px;height:18px}.or{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:12px}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--border)}.notice{padding:11px 13px;border-radius:11px;font-size:13px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);display:flex;gap:9px}.notice svg{width:16px;height:16px;flex:none;margin-top:1px}.notice.bad{background:color-mix(in oklab,var(--critical) 12%,var(--surface));border-color:color-mix(in oklab,var(--critical) 30%,transparent);color:var(--text)}.notice.warn{background:color-mix(in oklab,var(--warning) 10%,var(--surface));border-color:color-mix(in oklab,var(--warning) 30%,transparent);color:var(--text)}.notice.accent{background:var(--accent-soft);border-color:color-mix(in oklab,var(--accent) 30%,transparent);color:var(--text)}@media(max-width:900px){.login{grid-template-columns:1fr}.login-hero{padding:28px 20px;border-right:none;border-bottom:1px solid var(--border);gap:24px}.login-hero h1{font-size:30px}.login-feats{grid-template-columns:1fr}}.greet{font-size:28px;letter-spacing:-.02em}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:16px}.dash-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .25s var(--ease),border-color .2s,box-shadow .25s}.dash-card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow),0 20px 40px -20px color-mix(in oklab,var(--card-accent, var(--accent)) 50%,transparent)}.dash-thumb{aspect-ratio:320 / 188;width:100%;position:relative;background:radial-gradient(120% 90% at 0% 0%,color-mix(in oklab,var(--card-accent, var(--accent)) 26%,transparent),transparent 60%),var(--surface-3);border-bottom:1px solid var(--border);overflow:hidden}.dash-thumb svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:transform .5s var(--ease)}.dash-card:hover .dash-thumb svg{transform:scale(1.04)}.dash-meta{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.dash-meta h3{font-size:15px}.dash-meta .muted{font-size:12.5px}.dash-card .fav{position:absolute;top:10px;right:10px;z-index:2}.new-card{display:grid;place-items:center;min-height:250px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-2);cursor:pointer;transition:border-color .2s,background .2s,color .2s;background:transparent}.new-card:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.new-card svg{width:26px;height:26px}.dash{display:flex;flex-direction:column;min-height:calc(100vh - var(--header-h))}.dash-head{display:flex;align-items:center;gap:12px;padding:16px 22px 0;flex-wrap:wrap}.dash-title{display:flex;flex-direction:column;min-width:0}.dash-title h1{font-size:21px;display:flex;align-items:center;gap:10px}.dash-title input{font-size:21px;font-weight:650;background:transparent;border:1px dashed var(--border-strong);border-radius:8px;padding:2px 8px;color:var(--text);width:min(520px,60vw)}.dash-title .muted{font-size:12.5px;margin-top:2px}.page-tabs{display:flex;gap:4px;padding:14px 22px 0;overflow-x:auto;align-items:center}.page-tab{display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-2);font-weight:550;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.page-tab svg{width:15px;height:15px}.page-tab:hover{background:var(--hover);color:var(--text)}.page-tab.on{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:var(--shadow)}.filterbar{position:sticky;top:var(--header-h);z-index:30;display:flex;align-items:center;gap:8px;padding:12px 22px;flex-wrap:wrap;background:color-mix(in oklab,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.filter-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-weight:500;transition:border-color .15s;max-width:320px}.filter-btn:hover{border-color:var(--border-strong)}.filter-btn svg{width:15px;height:15px;color:var(--text-3);flex:none}.filter-btn .flabel{color:var(--text-3);font-weight:500}.filter-btn.active{border-color:color-mix(in oklab,var(--accent) 50%,transparent);background:color-mix(in oklab,var(--accent) 8%,var(--surface))}.canvas-wrap{flex:1;padding:4px 12px 40px;transition:margin-right .25s var(--ease)}.canvas-measure{width:100%;min-width:0}.filterbar.unpinned{position:static}.filter-drawer{display:flex;flex-wrap:wrap;gap:8px;width:100%;order:10;animation:fade-in .15s ease}.filter-btn .badge{height:18px;padding:0 6px;font-size:11px}@media(max-width:760px){.dash-head{padding:12px 14px 0;gap:8px}.dash-title{flex:1 1 100%}.dash-title h1{font-size:19px}.dash-title .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-head>.row{width:100%;justify-content:flex-end}.page-tabs{padding:10px 14px 0;scrollbar-width:none}.page-tabs::-webkit-scrollbar{display:none}.filterbar{position:static;padding:10px 14px}.filterbar .spacer{display:none}.filter-btn{max-width:100%}.canvas-wrap{padding:2px 4px 32px}}.editing .canvas-wrap,.editing .dash-head,.editing .page-tabs,.editing .filterbar{margin-right:360px}@media(max-width:1100px){.editing .canvas-wrap,.editing .dash-head,.editing .page-tabs,.editing .filterbar{margin-right:0}}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .22s var(--ease);transition-property:left,top,width,height}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing,.react-grid-item.react-draggable-dragging{transition:none;z-index:3}.react-grid-item.react-draggable-dragging .widget{box-shadow:var(--shadow-pop);transform:rotate(.4deg)}.react-grid-item.react-grid-placeholder{background:var(--accent-soft);border:1.5px dashed var(--accent);border-radius:var(--radius);opacity:1;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:2px;right:2px;cursor:se-resize;z-index:5}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:6px;bottom:6px;width:8px;height:8px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);border-radius:0 0 3px;opacity:0;transition:opacity .15s}.editing .react-grid-item:hover>.react-resizable-handle:after,.editing .react-grid-item.selected>.react-resizable-handle:after{opacity:.9}.widget{position:relative;height:100%;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:border-color .15s,box-shadow .2s}.widget.transparent{background:transparent;border-color:transparent;box-shadow:none}.editing .widget:hover{border-color:var(--border-strong)}.widget.selected{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft),var(--shadow)}.w-head{display:flex;align-items:flex-start;gap:8px;padding:13px 14px 0 16px;min-height:22px}.w-titles{flex:1;min-width:0}.w-title{font-size:13.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-kpi .w-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.w-sub{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.w-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s;margin:-4px -4px 0 0}.widget:hover .w-actions,.widget.selected .w-actions,.w-actions.open{opacity:1}.w-badges{display:flex;gap:4px;margin-top:-1px}.w-body{position:relative;flex:1;min-height:0;padding:8px 10px 10px;transition:opacity .25s}.w-body.refreshing{opacity:.5}.w-drag,.editing .w-head{cursor:grab}.editing .w-head:active{cursor:grabbing}.w-error{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:grid;place-items:center;text-align:center;color:var(--text-3);font-size:12.5px;padding:12px}.w-error b{color:var(--critical-text);display:block;margin-bottom:4px;font-size:13px}.w-empty{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:grid;place-items:center;text-align:center;color:var(--text-3);font-size:13px}.chart{position:absolute;top:4px;right:6px;bottom:6px;left:6px}.kpi{position:absolute;top:0;right:0;bottom:0;left:0;padding:4px 16px 12px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px}.kpi-value{font-size:clamp(22px,2.3vw,32px);font-weight:650;letter-spacing:-.02em;line-height:1.05;color:var(--text);white-space:nowrap}.kpi-row{display:flex;align-items:center;gap:8px;min-height:20px}.delta{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:600;white-space:nowrap}.delta svg{width:13px;height:13px}.delta.good{color:var(--good-text)}.delta.bad{color:var(--critical-text)}.delta.flat{color:var(--text-3)}.kpi-vs{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-main{display:flex;align-items:flex-end;gap:12px;min-width:0}.kpi-spark{flex:1;min-width:40px;max-width:150px;height:34px;margin-left:auto;margin-bottom:3px}.kpi.compact .kpi-spark{display:none}.dt{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.dt-scroll{flex:1;overflow:auto}.dt table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.dt th{position:sticky;top:0;z-index:1;background:var(--surface);text-align:left;font-weight:600;font-size:11.5px;color:var(--text-3);padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.dt th.r{text-align:right}.dt th:hover{color:var(--text)}.dt th .sort{display:inline-block;width:10px;color:var(--accent-text)}.dt td{padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.dt td.r{text-align:right}.dt-wrap table{width:max-content;min-width:100%}.dt-wrap th{white-space:normal;vertical-align:bottom;max-width:140px}.dt-wrap td{white-space:normal;overflow-wrap:break-word;vertical-align:top;max-width:260px}.dt-wrap td.r{white-space:nowrap}.dt tbody tr{cursor:pointer;transition:background .1s}.dt tbody tr:hover{background:var(--hover)}.dt tbody tr.dim{opacity:.45}.dt tbody tr.tone-good td{background:color-mix(in oklab,var(--good) 17%,transparent)}.dt tbody tr.tone-warning td{background:color-mix(in oklab,var(--warning) 18%,transparent)}.dt tbody tr.tone-critical td{background:color-mix(in oklab,var(--critical) 16%,transparent)}.dt tbody tr.tone-accent td{background:var(--accent-soft)}.dt tbody tr.tone-muted td{color:var(--text-3)}.dt td.t-good{color:var(--good-text);font-weight:600}.dt td.t-warning{color:var(--warning);font-weight:600}.dt td.t-critical{color:var(--critical-text);font-weight:600}.dt td.t-accent{color:var(--accent-text);font-weight:600}.dt td.t-muted{color:var(--text-3)}.dt a.cell-link{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}.dt a.cell-link:hover{text-decoration-thickness:2px}.dt tfoot td{position:sticky;bottom:0;background:var(--surface-2);font-weight:650;border-top:1px solid var(--border-strong);border-bottom:none}.dt .bar-cell{position:relative}.dt .bar-cell .bar{position:absolute;left:10px;bottom:4px;height:3px;border-radius:3px;background:var(--s1);opacity:.9}.dt .heat{border-radius:6px;padding:2px 6px;margin:-2px -6px;display:inline-block}.dt-foot{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:6px 8px 0;font-size:12px;color:var(--text-3)}.dt-foot>span:first-child{margin-right:8px}.dt-page{display:inline-flex;align-items:center;gap:6px}.dt-page input{height:26px;padding:0 6px;text-align:center;font-variant-numeric:tabular-nums}.dt-loading .dt-scroll{opacity:.55;transition:opacity .15s}.pvt .pvt-caption th>span{position:sticky;left:12px;right:12px}.pvt .pvt-caption th{position:static;text-align:left;font-size:12px;font-weight:650;color:var(--accent-text);background:var(--accent-soft);border-bottom:1px solid var(--border);cursor:default}.pvt th{cursor:default}.pvt th.pvt-colh{text-align:right}.pvt .pvt-rowh{text-align:left}.pvt tbody td.pvt-rowh:first-child,.pvt thead th.pvt-rowh:first-child,.pvt tfoot td.pvt-rowh{position:sticky;left:0;background:var(--surface);z-index:1;border-right:1px solid var(--border)}.pvt thead th.pvt-rowh:first-child{z-index:2}.pvt tbody tr{cursor:default}.pvt td.pvt-total{font-weight:600}.ptip{font-family:var(--font);font-size:12.5px;color:var(--text);min-width:150px}.ptip-h{font-weight:600;color:var(--text-2);margin-bottom:6px;font-size:12px}.ptip-r{display:flex;align-items:center;gap:8px;padding:2px 0}.ptip-r i{width:12px;height:3px;border-radius:2px;flex:none}.ptip-r i.box{height:10px;width:10px;border-radius:3px}.ptip-r b{font-weight:650;font-variant-numeric:tabular-nums}.ptip-r span{color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.ptip-r em{font-style:normal;margin-left:auto;padding-left:10px;font-size:11.5px}.md{position:absolute;top:0;right:0;bottom:0;left:0;padding:4px 18px 14px;overflow:auto;color:var(--text-2);font-size:14px}.md h1,.md h2,.md h3{color:var(--text);margin:8px 0 6px}.md h1{font-size:22px}.md p{margin:6px 0}.md a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}.md .md-accent{color:color-mix(in oklab,var(--accent) 82%,var(--text));font-weight:450}.md ul{padding-left:20px;margin:6px 0}.inspector{position:fixed;top:var(--header-h);right:0;bottom:0;width:360px;z-index:35;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:slide-in .25s var(--ease);box-shadow:-20px 0 40px -30px #00000080}@keyframes slide-in{0%{transform:translate(30px);opacity:0}}.insp-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.insp-head h3{flex:1;font-size:14px}.insp-tabs{display:flex;padding:0 10px;border-bottom:1px solid var(--border)}.insp-tabs button{flex:1;border:none;background:none;padding:10px 6px;color:var(--text-2);font-weight:600;font-size:12.5px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.insp-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.insp-body{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:16px}.insp-sec{display:flex;flex-direction:column;gap:8px}.insp-sec>.label{display:flex;align-items:center;gap:6px}.insp-sec>.label .spacer{flex:1}.insp-row{display:flex;align-items:center;gap:8px;justify-content:space-between;min-height:30px;font-size:13px;color:var(--text-2)}.insp-row .select,.insp-row .input{width:auto;max-width:170px}@media(max-width:1100px){.inspector{width:min(360px,100%);box-shadow:var(--shadow-pop)}}.fchip{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;min-height:34px}.fchip .ftype{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;flex:none;font-size:10px;font-weight:700}.fchip .ftype.dim{background:color-mix(in oklab,#3987e5 20%,transparent);color:#7fb0ef}.fchip .ftype.met{background:color-mix(in oklab,#199e70 22%,transparent);color:#45c79a}.fchip .ftype svg{width:12px;height:12px}.fchip .fname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.fchip select{background:transparent;border:none;color:var(--text-3);font-size:12px;cursor:pointer;max-width:90px}.fchip .x{border:none;background:none;color:var(--text-3);cursor:pointer;padding:2px;display:grid;place-items:center;border-radius:5px}.fchip .x:hover{color:var(--text);background:var(--hover)}.fchip .x svg{width:13px;height:13px}.add-field{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:9px;border:1px dashed var(--border-strong);background:none;color:var(--text-3);cursor:pointer;font-size:12.5px}.add-field:hover{border-color:var(--accent);color:var(--accent-text)}.add-field svg{width:14px;height:14px}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.type-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;color:var(--text-2);font-size:11.5px;font-weight:550;transition:border-color .15s,background .15s,color .15s}.type-opt svg{width:20px;height:20px}.type-opt:hover{border-color:var(--border-strong);color:var(--text)}.type-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.gal-item{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;text-align:left;transition:border-color .15s,transform .15s var(--ease);color:var(--text)}.gal-item:hover{border-color:var(--accent);transform:translateY(-2px)}.gal-item .gi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.gal-item .gi svg{width:18px;height:18px}.gal-item b{font-size:13.5px}.gal-item span{font-size:12px;color:var(--text-3)}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:24px;height:24px;border-radius:7px;border:2px solid transparent;cursor:pointer}.swatch.on{border-color:var(--text)}.palette-strip{display:flex;gap:2px;height:14px;border-radius:5px;overflow:hidden}.palette-strip i{flex:1}.dp{display:flex;flex-direction:column;gap:14px;width:292px;max-width:100%;padding:12px}.formula{font-family:var(--mono);font-size:13px;line-height:1.6;min-height:110px}.fn-list{max-height:200px;overflow:auto;border:1px solid var(--border);border-radius:10px}.fn-list button{display:flex;width:100%;gap:8px;padding:6px 10px;border:none;background:none;text-align:left;cursor:pointer;color:var(--text-2);font-size:12.5px}.fn-list button:hover{background:var(--hover);color:var(--text)}.fn-list code{color:var(--accent-text)}.check-ok{color:var(--good-text);display:flex;gap:6px;align-items:center;font-size:13px}.check-ok svg,.check-bad svg{width:15px;height:15px}.check-bad{color:var(--critical-text);display:flex;gap:6px;align-items:center;font-size:13px}.fields-tbl td{padding:6px 8px}.fields-tbl td select.select.sm{min-width:104px}.fields-tbl .input.sm,.fields-tbl .select.sm{background:transparent;border-color:transparent}.fields-tbl .input.sm:hover,.fields-tbl .select.sm:hover{border-color:var(--border-strong)}.fields-tbl .input.sm:focus,.fields-tbl .select.sm:focus{border-color:var(--accent);background:var(--surface-3)}.mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{padding:14px;border-radius:14px;border:1.5px solid var(--border);background:var(--surface-2);cursor:pointer;text-align:left;color:var(--text);display:flex;flex-direction:column;gap:6px;transition:border-color .15s}.mode-card:hover{border-color:var(--border-strong)}.mode-card.on{border-color:var(--accent);background:var(--accent-soft)}.mode-card b{display:flex;align-items:center;gap:8px}.mode-card b svg{width:16px;height:16px;color:var(--accent-text)}.mode-card span{font-size:12.5px;color:var(--text-2)}@media(max-width:700px){.mode-cards{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:13.5px}.kv dt{color:var(--text-3)}.kv dd{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.stat{padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.stat .label{font-size:12px}.stat .v{font-size:24px;font-weight:650;margin-top:4px;letter-spacing:-.02em}.conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.list-pick{max-height:340px;overflow:auto;border:1px solid var(--border);border-radius:12px}.list-pick button{display:flex;width:100%;align-items:center;gap:10px;padding:9px 12px;border:none;border-bottom:1px solid var(--border);background:none;color:var(--text);cursor:pointer;text-align:left}.list-pick button:last-child{border-bottom:none}.list-pick button:hover{background:var(--hover)}.list-pick button.on{background:var(--accent-soft)}.list-pick svg{width:15px;height:15px;color:var(--text-3)}.pill-steps{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--text-3)}.pill-steps b{color:var(--text)}.presenting .topbar,.presenting .dash-head,.presenting .page-tabs{display:none}.presenting .filterbar{top:0}.present-bar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:60;display:flex;gap:6px;align-items:center;padding:6px;border-radius:14px;background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-pop);opacity:.25;transition:opacity .2s}.present-bar:hover{opacity:1}.fade-page{animation:page-in .35s var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}:root{--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767}@media(prefers-color-scheme:light){:root:where(:not([data-theme=dark])){--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #4a3aa7;--s8: #e34948}}:root[data-theme=light]{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #4a3aa7;--s8: #e34948}.cal{position:relative}.cal-months{display:flex;gap:18px}.cal-month{flex:1;min-width:0}.cal-title{text-align:center;font-weight:600;font-size:13px;height:28px;line-height:28px;margin-bottom:4px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}.cal-dow{text-align:center;font-size:11px;color:var(--text-3, var(--muted, #888));padding:4px 0}.cal-day{height:30px;border:0;background:none;color:var(--text);font:inherit;font-size:12.5px;font-variant-numeric:tabular-nums;cursor:pointer;position:relative;border-radius:0}.cal-day:hover{background:var(--hover);border-radius:var(--radius-xs)}.cal-day.today{font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent)}.cal-day.in{background:var(--accent-soft)}.cal-day.first{border-radius:var(--radius-xs) 0 0 var(--radius-xs)}.cal-day.last{border-radius:0 var(--radius-xs) var(--radius-xs) 0}.cal-day.first,.cal-day.last{background:var(--accent-soft)}.cal-day.edge{background:var(--accent);color:var(--on-accent);font-weight:600;border-radius:var(--radius-xs)}.cal-day.edge.first{border-radius:var(--radius-xs) 0 0 var(--radius-xs)}.cal-day.edge.last{border-radius:0 var(--radius-xs) var(--radius-xs) 0}.cal-nav{position:absolute;top:0;width:28px;height:28px;border:0;background:none;color:var(--text);border-radius:var(--radius-xs);cursor:pointer;display:grid;place-items:center;z-index:1}.cal-nav:hover{background:var(--hover)}.cal-nav.prev{left:0;transform:rotate(90deg)}.cal-nav.next{right:0;transform:rotate(-90deg)}.cal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.cal-range{font-size:12.5px;font-weight:500}.dp-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:26px;padding:0 10px;border-radius:13px;border:1px solid var(--border-strong);background:none;color:var(--text);font:inherit;font-size:12px;cursor:pointer}.chip:hover{background:var(--hover)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text);font-weight:600}select.chip.more{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:auto;min-width:0;flex:0 0 auto;padding:0 10px;background-image:none}.cal-foot{padding-top:10px;border-top:1px solid var(--border)}.pw-field{position:relative}.pw-field .input{padding-right:40px}.pw-field>.btn{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.pw-field>.btn[aria-pressed=true]{color:var(--accent)}.pw-meter{display:flex;gap:4px}.pw-meter span{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background .2s}.pw-meter[data-score="1"] span:nth-child(-n+1){background:var(--critical)}.pw-meter[data-score="2"] span:nth-child(-n+2){background:var(--warning)}.pw-meter[data-score="3"] span:nth-child(-n+3){background:var(--good)}.pw-meter[data-score="4"] span{background:var(--good)}.pw-rules{display:grid;gap:4px;margin:0;padding:0;list-style:none;font-size:12.5px;color:var(--text-3)}.pw-rules li{display:flex;gap:6px;align-items:center}.pw-rules li svg{width:13px;height:13px}.pw-rules li.ok{color:var(--good-text)}.session-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.session-row:last-child{border-bottom:0}.session-row>svg{flex:none;width:18px;height:18px;color:var(--text-3)}.dash-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}.sel-box{position:absolute;top:10px;left:10px;z-index:2;width:22px;height:22px;border-radius:7px;border:1.5px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--on-accent)}.sel-box svg{width:14px;height:14px}.sel-box.on{background:var(--accent);border-color:var(--accent)}.sel-box.off{opacity:.35}.bulk-bar{position:sticky;bottom:16px;margin:20px auto 0;width:min(640px,100%);display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow),0 16px 40px -12px #0006;z-index:20}
