@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--bg: #f8fafc;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--text-3: #64748b;--navy: #0f172a;--primary: #1e40af;--primary-hover: #1e3a8a;--primary-soft: #eff6ff;--primary-border: #bfdbfe;--primary-ring: rgba(30, 64, 175, .2);--success: #15803d;--success-soft: #f0fdf4;--warning: #b45309;--warning-soft: #fffbeb;--danger: #b91c1c;--danger-soft: #fef2f2;--violet: #334155;--violet-soft: #f1f5f9;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 1px 3px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 30px rgba(15, 23, 42, .12);--sidebar-w: 240px;--topbar-h: 52px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.011em}p{margin:0}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.mono{font-family:var(--mono)}.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}svg.i{width:18px;height:18px;flex:none;fill:currentColor}svg.i.sm{width:16px;height:16px}svg.i.lg{width:22px;height:22px}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .2s ease}.app.collapsed{--sidebar-w: 72px}.sidebar{position:sticky;top:0;height:100vh;background:var(--bg);color:var(--text-2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;z-index:40}.brand{display:flex;align-items:center;gap:10px;height:var(--topbar-h);padding:0 16px;border-bottom:1px solid var(--border);flex:none}.brand-mark{width:28px;height:28px;border-radius:6px;background:var(--primary);display:grid;place-items:center;color:#fff;flex:none}.brand-mark svg.i{width:16px;height:16px}.brand-text{line-height:1.2;white-space:nowrap}.brand-text b{color:var(--text);font-size:14px;font-weight:600;display:block}.brand-text span{font-size:10.5px;letter-spacing:.08em;color:var(--text-3);font-weight:500}.nav{padding:12px 10px;flex:1;overflow-y:auto;overflow-x:hidden}.nav-group+.nav-group{margin-top:16px}.nav-label{font-size:12px;font-weight:500;color:var(--text-3);padding:0 10px 6px;white-space:nowrap}.nav-item{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:6px;color:var(--text-2);font-weight:500;white-space:nowrap;position:relative;transition:background .12s,color .12s}.nav-item svg.i{color:var(--text-3)}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item.active{background:var(--border);color:var(--text)}.nav-item.active svg.i,.nav-item:hover svg.i{color:var(--text)}.nav-item .nav-badge{margin-left:auto;font-size:12px;font-weight:600;font-style:normal;color:var(--text-3);font-variant-numeric:tabular-nums}.nav-item .nav-badge.alert{color:var(--danger)}.sidebar-foot{padding:10px;border-top:1px solid var(--border);flex:none}.usage{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px;white-space:nowrap}.usage-top{display:flex;justify-content:space-between;color:var(--text);font-size:12.5px;font-weight:500}.usage-bar{height:4px;background:var(--border);border-radius:4px;margin:8px 0 6px;overflow:hidden}.usage-bar i{display:block;height:100%;background:var(--text-3);border-radius:4px}.usage small{font-size:12px;color:var(--text-3)}.user{display:flex;align-items:center;gap:10px;padding:8px 6px 2px;white-space:nowrap}.avatar{width:30px;height:30px;border-radius:50%;background:var(--border);color:var(--text);display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}.user b{color:var(--text);font-size:13px;font-weight:500;display:block;line-height:1.2}.user span{font-size:12px;color:var(--text-3)}.app.collapsed .brand-text,.app.collapsed .nav-label,.app.collapsed .nav-item span,.app.collapsed .nav-badge,.app.collapsed .usage,.app.collapsed .user>div{display:none}.app.collapsed .nav-item,.app.collapsed .brand{justify-content:center;padding:0}.app.collapsed .user{justify-content:center}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:30}.crumbs{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:13.5px;min-width:0}.crumbs b{color:var(--text);font-weight:600;white-space:nowrap}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.search-btn{display:flex;align-items:center;gap:8px;height:32px;width:260px;padding:0 8px 0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text-3);cursor:pointer;font-size:13px}.search-btn:hover{border-color:var(--border-strong)}.search-btn .kbd{margin-left:auto}.kbd{font-family:var(--mono);font-size:11px;padding:0 5px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text-3)}.mock-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:6px;background:var(--surface-3);color:var(--text-2);font-size:12px;font-weight:500;border:1px solid var(--border);cursor:help;white-space:nowrap}.mock-pill i{width:6px;height:6px;border-radius:50%;background:#d97706}.icon-btn{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--text-2);cursor:pointer;position:relative}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn .dot{position:absolute;top:6px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface)}.menu-btn{display:none}.content{padding:24px 28px 40px;flex:1;min-width:0}.content.flush{padding:0;display:flex;flex-direction:column}body.fixed .main{height:100vh;overflow:hidden}body.fixed .content.flush{min-height:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:20px}.page-head p{color:var(--text-2);margin-top:4px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.page-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:18px 28px 0}.page-bar .page-head{margin-bottom:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 12px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:500;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s,color .12s}.btn:hover{background:var(--surface-2);border-color:#94a3b8}.btn:focus-visible,.input:focus,.select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px var(--primary-ring);border-color:var(--primary)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.soft{background:var(--primary-soft);border-color:transparent;color:var(--primary)}.btn.soft:hover{background:#dbeafe}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-3);color:var(--text)}.btn.danger{color:var(--danger)}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:6px;gap:6px}.btn.lg{height:40px;padding:0 16px;font-size:14px}.btn.icon{width:34px;padding:0}.btn.sm.icon{width:28px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-group{display:inline-flex;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden;background:var(--surface)}.btn-group .btn{border:0;border-radius:0;height:28px}.btn-group .btn+.btn{border-left:1px solid var(--border)}.btn-group .btn.active{background:var(--primary-soft);color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.card-head h3{font-size:14px}.card-head p{font-size:12.5px;color:var(--text-3);margin-top:2px}.card-body{padding:18px}.card-foot{padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.section-label{font-size:12px;font-weight:500;color:var(--text-3)}.grid{display:grid;gap:16px}.grid>*{min-width:0}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{padding:14px 16px}.kpi-label{font-size:13px;color:var(--text-3);display:flex;align-items:center;gap:8px}.kpi-value{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}.kpi-value small{font-size:14px;color:var(--text-3);font-weight:500}.kpi-delta{font-size:12px;font-weight:500;margin-top:2px}.kpi-delta.up{color:var(--success)}.kpi-delta.down{color:var(--danger)}.kpi-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:4px;font-size:12px;font-weight:500;background:var(--surface-3);color:var(--text-2);white-space:nowrap}.badge.blue{background:var(--primary-soft);color:var(--primary)}.badge.green{background:var(--success-soft);color:var(--success)}.badge.amber{background:var(--warning-soft);color:var(--warning)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.violet{background:var(--violet-soft);color:var(--violet)}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tag{font-family:var(--mono);font-size:11.5px;background:var(--surface-3);border:1px solid var(--border);padding:1px 6px;border-radius:5px;color:var(--text-2)}.field{display:flex;flex-direction:column;gap:6px}.field+.field{margin-top:14px}.field label,.label{font-size:12.5px;font-weight:500;color:var(--text-2)}.field .hint{font-size:12px;color:var(--text-3)}.input,.select,textarea.input{height:34px;width:100%;padding:0 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);transition:border-color .15s,box-shadow .15s}textarea.input{height:auto;padding:9px 11px;resize:vertical;min-height:80px}.select{appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23647489' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.input.sm,.select.sm{height:30px;font-size:13px}.row{display:flex;gap:12px}.row>*{flex:1;min-width:0}.row>.field+.field{margin-top:0}.input-group{display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:6px;background:#fff;height:34px;overflow:hidden}.input-group span{padding:0 10px;color:var(--text-3);font-size:13px;background:var(--surface-2);height:100%;display:flex;align-items:center;border-right:1px solid var(--border)}.input-group input{border:0;height:100%;flex:1;padding:0 10px;min-width:0;background:transparent;outline:none}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:var(--surface-3);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--primary);cursor:pointer;box-shadow:var(--shadow-sm)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--primary);cursor:pointer}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13.5px}.switch input{position:absolute;opacity:0}.switch .track{width:34px;height:20px;border-radius:20px;background:var(--border-strong);position:relative;transition:background .15s;flex:none}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.switch input:checked+.track{background:var(--primary)}.switch input:checked+.track:after{transform:translate(14px)}.switch input:focus-visible+.track{box-shadow:0 0 0 3px var(--primary-ring)}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px}.checkbox input{width:16px;height:16px;accent-color:var(--primary)}.choice{display:flex;gap:12px;padding:14px;border:1px solid var(--border-strong);border-radius:8px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s,background .15s}.choice:hover{border-color:#94a3b8}.choice input{margin-top:3px;accent-color:var(--primary)}.choice.selected{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);background:#fbfdff}.choice b{display:block;font-weight:600}.choice small{color:var(--text-2);font-size:12.5px;display:block;margin-top:2px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tab{padding:10px 12px;border:0;background:none;color:var(--text-2);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:8px}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-color:var(--primary)}.tab .count{font-size:11px;background:var(--surface-3);color:var(--text-2);padding:0 6px;border-radius:8px}.page-bar .tabs{border:0}.seg{display:inline-flex;padding:3px;border-radius:9px;background:var(--surface-3);gap:2px}.seg button{border:0;background:transparent;height:28px;padding:0 12px;border-radius:7px;font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:6px;transition:background .15s,color .15s,box-shadow .15s}.seg button:hover:not(.active){color:var(--text)}.seg button.active{background:#fff;color:var(--text);box-shadow:var(--shadow-sm)}.stepper{display:flex;align-items:center;gap:0}.step{display:flex;align-items:center;gap:10px;padding:12px 4px 14px;background:none;border:0;cursor:pointer;color:var(--text-3);font-weight:500;position:relative}.step .num{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;font-size:12px;font-weight:600;background:#fff}.step.active{color:var(--text)}.step.active .num{border-color:var(--primary);background:var(--primary);color:#fff}.step.done .num{border-color:var(--success);background:var(--success-soft);color:var(--success)}.step.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary)}.step-sep{width:40px;height:1px;background:var(--border-strong);margin:0 12px}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:12px;font-weight:500;color:var(--text-3);padding:9px 16px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.table td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.progress{height:6px;background:var(--surface-3);border-radius:6px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--primary);border-radius:6px;transition:width .3s ease}.divider{height:1px;background:var(--border);margin:16px 0}.empty{text-align:center;padding:48px 24px;color:var(--text-2)}.empty .empty-icon{width:44px;height:44px;border-radius:8px;background:var(--surface-3);color:var(--text-3);display:grid;place-items:center;margin:0 auto 12px}.empty h3{font-size:15px;color:var(--text);margin-bottom:4px}.callout{display:flex;gap:10px;padding:10px 12px;border-radius:6px;background:var(--primary-soft);border:1px solid var(--primary-border);color:#1e3a8a;font-size:13px}.callout.amber{background:var(--warning-soft);border-color:#fde68a;color:#78350f}.callout.red{background:var(--danger-soft);border-color:#fecaca;color:#7f1d1d}.callout.green{background:var(--success-soft);border-color:#bbf7d0;color:#14532d}.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px}.kv+.kv{border-top:1px dashed var(--border)}.kv span:first-child{color:var(--text-2)}.kv span:last-child{font-weight:500;text-align:right}.spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--success)}.status-dot.amber{background:#d97706}.status-dot.red{background:var(--danger)}.status-dot.gray{background:var(--border-strong)}.scroll{overflow-y:auto}.scroll::-webkit-scrollbar,.nav::-webkit-scrollbar{width:8px;height:8px}.scroll::-webkit-scrollbar-thumb,.nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;border:2px solid transparent;background-clip:padding-box}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:200}.toast{min-width:280px;max-width:380px;background:var(--navy);color:#fff;border-radius:8px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;box-shadow:var(--shadow-lg);font-size:13.5px;animation:toastIn .25s ease}.toast .t-icon{color:#93c5fd;margin-top:1px}.toast.success .t-icon{color:#86efac}.toast.warning .t-icon{color:#fcd34d}.toast.error .t-icon{color:#fca5a5}.toast small{display:block;color:#94a3b8;font-size:12.5px;margin-top:2px}@keyframes toastIn{0%{transform:translateY(8px);opacity:0}}.overlay{position:fixed;inset:0;background:#0f172a66;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.modal{width:min(520px,calc(100vw - 32px));background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-head{padding:18px 20px 6px;display:flex;justify-content:space-between;align-items:flex-start}.modal-head h3{font-size:17px}.modal-body{padding:8px 20px 18px;color:var(--text-2)}.modal-foot{padding:14px 20px;display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2);border-top:1px solid var(--border)}.drawer-overlay{position:fixed;inset:0;background:#0f172a4d;z-index:100;animation:fade .15s}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(420px,100vw);background:#fff;z-index:101;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideIn .22s ease}@keyframes slideIn{0%{transform:translate(30px);opacity:0}}.drawer-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-body{padding:20px;overflow-y:auto;flex:1}.guide-step{display:flex;gap:14px;padding:12px 0}.guide-step .n{width:24px;height:24px;border-radius:50%;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;font-weight:600;font-size:12.5px;flex:none}.guide-step b{display:block;margin-bottom:2px}.guide-step p{color:var(--text-2);font-size:13px}.palette{width:min(560px,calc(100vw - 32px));background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}.palette-input{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--border);color:var(--text-3)}.palette-input input{flex:1;border:0;height:52px;outline:none;font-size:15px;color:var(--text)}.palette-list{max-height:340px;overflow-y:auto;padding:8px}.palette-group{font-size:12px;font-weight:500;color:var(--text-3);padding:8px 10px 4px}.palette-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--text)}.palette-item small{margin-left:auto;color:var(--text-3);font-size:12px}.palette-item.active,.palette-item:hover{background:var(--surface-3)}.dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);z-index:50;overflow:hidden}.dropdown-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-weight:600}.notif{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;text-align:left}.notif:last-child{border-bottom:0}.notif .ni{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}.notif small{color:var(--text-3);display:block;margin-top:2px}@media(max-width:1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.search-btn{width:200px}}@media(max-width:860px){.app,.app.collapsed{grid-template-columns:1fr;--sidebar-w: 240px}.sidebar{position:fixed;left:0;top:0;width:240px;transform:translate(-100%);transition:transform .2s ease}.app.mobile-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}.app.collapsed .brand-text,.app.collapsed .nav-label,.app.collapsed .nav-item span,.app.collapsed .usage,.app.collapsed .user>div{display:revert}.menu-btn{display:grid}.collapse-btn{display:none}.search-btn{width:36px;padding:0;justify-content:center}.search-btn span,.search-btn .kbd,.mock-pill span{display:none}.topbar{padding:0 16px}.content{padding:18px 16px 32px}.page-bar{padding:16px 16px 0}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}body.fixed .main{height:auto;overflow:visible}.grid[style*=grid-template-columns]{grid-template-columns:1fr!important}.crumbs>span,.crumbs>svg{display:none}.page-actions{width:100%}}.ir-layout{display:grid;grid-template-columns:var(--queue-w, 290px) minmax(0,1fr) var(--panel-w, 340px);height:100%;min-height:0;flex:1}.ir-queue{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.ir-queue-head{padding:14px;border-bottom:1px solid var(--border)}.ir-queue-list{flex:1;padding:8px}.q-item{display:flex;gap:10px;align-items:center;padding:9px;border-radius:10px;cursor:pointer;border:1px solid transparent}.q-item:hover{background:var(--surface-2)}.q-item.active{background:var(--primary-soft);border-color:var(--primary-border)}.q-item img{width:64px;height:36px;border-radius:5px;object-fit:cover;flex:none}.q-info{flex:1;min-width:0}.q-info b{display:block;font-size:12.5px;font-weight:600}.q-info small{display:block;font-size:11.5px;color:var(--text-3)}.score-pill{min-width:34px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}.score-pill.red{background:var(--danger-soft);color:var(--danger)}.score-pill.amber{background:var(--warning-soft);color:var(--warning)}.score-pill.green{background:var(--success-soft);color:var(--success)}.ir-viewer{display:flex;flex-direction:column;min-width:0;min-height:0;background:#0f172a;position:relative}.ir-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.ir-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ir-stage-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px}.ir-stage{position:relative;width:100%;max-height:100%;aspect-ratio:16 / 9;max-width:calc((100vh - 230px) * 16 / 9);border-radius:6px;overflow:hidden;box-shadow:0 10px 40px #0006}.ir-stage canvas,.ir-stage img{width:100%;height:100%;display:block}.ir-box{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #0006,inset 0 0 0 1px #00000040;cursor:pointer;transition:box-shadow .15s}.ir-box span{position:absolute;left:-2px;top:-22px;background:#fff;color:#0b1424;font-family:var(--mono);font-size:11px;font-weight:600;padding:2px 7px;white-space:nowrap;border-radius:3px 3px 3px 0;text-transform:uppercase}.ir-box.hl{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa66}.ir-box.hl span{background:#60a5fa;color:#0f172a}.ir-loading{position:absolute;inset:0;background:#0b142499;color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13.5px}.ir-loading .spinner{border-color:#ffffff4d;border-top-color:#fff}.ir-legend span.mono{white-space:nowrap}.ir-legend{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--surface);border-top:1px solid var(--border);font-size:11.5px;color:var(--text-2)}.ir-scale{width:200px;height:8px;border-radius:4px}.ir-legend-note{margin-left:auto;color:var(--text-3)}.ir-panel{background:var(--surface);border-left:1px solid var(--border);min-height:0}.ir-sec{padding:16px 18px;border-bottom:1px solid var(--border)}.gauge{width:190px;display:block;margin:0 auto 6px}.region{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.region+.region{margin-top:8px}.region:hover{border-color:var(--border-strong)}.region.hl{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-ring)}.region .r-num{width:24px;height:24px;border-radius:4px;background:var(--surface-3);color:var(--text-2);font-family:var(--mono);font-size:11px;display:grid;place-items:center;flex:none}.region b{display:block;font-size:13px;font-weight:600}.region small{display:block;font-size:12px;color:var(--text-2);margin-top:2px}.manifest-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0}.manifest-row+.manifest-row{border-top:1px dashed var(--border)}.manifest-row b{display:block;font-size:13px;font-weight:500}.manifest-row small{font-size:12px;color:var(--text-3)}.decisions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.decision{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;cursor:pointer;color:var(--text-2);transition:all .15s}.decision b{font-size:13px;color:var(--text);font-weight:600}.decision small{font-size:12px;color:var(--text-3)}.decision:hover{border-color:#94a3b8}.decision.sel[data-d=clear]{border-color:var(--success);background:var(--success-soft);color:var(--success)}.decision.sel[data-d=inspect]{border-color:#d97706;background:var(--warning-soft);color:var(--warning)}.decision.sel[data-d=escalate]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet)}.hello{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.hello h1{font-size:20px;letter-spacing:-.015em}.hello p{color:var(--text-2);margin-top:4px}.act-row{display:flex;gap:12px;padding:12px 18px;align-items:center;border-bottom:1px solid var(--border)}.act-row:last-child{border-bottom:0}.act-row .a-icon{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;flex:none;background:var(--surface-3);color:var(--text-2)}.act-row .a-text{flex:1;min-width:0;font-size:13.5px}.act-row .a-text small{display:block;color:var(--text-3);font-size:12px}.tone-blue{background:var(--primary-soft);color:var(--primary)}.tone-red{background:var(--danger-soft);color:var(--danger)}.tone-green{background:var(--success-soft);color:var(--success)}.tone-violet{background:var(--violet-soft);color:var(--violet)}.tone-amber{background:var(--warning-soft);color:var(--warning)}.svc{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--border);font-size:13.5px}.svc:last-child{border-bottom:0}.svc .s-logo{width:30px;height:30px;border-radius:6px;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;font-size:10px;font-weight:700;font-family:var(--mono);flex:none}.svc small{display:block;color:var(--text-3);font-size:12px}.bars{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:10px}.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bars .b .stack{width:100%;max-width:36px;display:flex;flex-direction:column-reverse;border-radius:5px 5px 0 0;overflow:hidden}.bars .b small{font-size:11px;color:var(--text-3)}.bars .b .v{font-size:11px;color:var(--text-2);font-variant-numeric:tabular-nums}.legend{display:flex;gap:14px;font-size:12px;color:var(--text-2)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.dropzone{display:block;border:1.5px dashed var(--border-strong);border-radius:8px;padding:28px;text-align:center;color:var(--text-2);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--primary);background:var(--primary-soft)}.dropzone .empty-icon{width:40px;height:40px;border-radius:8px;background:#fff;color:var(--text-2);display:grid;place-items:center;margin:0 auto 10px;box-shadow:var(--shadow-sm)}.result{padding:12px 14px;border:1px solid var(--border);border-radius:8px}.result+.result{margin-top:8px}.result p{font-size:13px;color:var(--text-2);margin-top:6px;line-height:1.6}.file-icon{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2);font-size:10px;font-weight:600;font-family:var(--mono);flex:none}.file-icon.docx{background:var(--surface-3);color:var(--text-2)}.settings-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;max-width:1080px}.settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(var(--topbar-h) + 24px);align-self:start}.settings-nav a{padding:7px 10px;border-radius:6px;white-space:nowrap;color:var(--text-2);font-weight:500;display:flex;align-items:center;gap:10px}.settings-nav a:hover{background:var(--surface-3);color:var(--text)}.settings-nav a.active{background:var(--border);color:var(--text)}@media(max-width:1200px){.ir-legend-note{display:none}}@media(max-width:860px){.ir-layout{grid-template-columns:1fr;height:auto}.ir-queue{border-right:0;border-bottom:1px solid var(--border);max-height:280px}.ir-stage{max-width:100%}.ir-panel{border-left:0}.settings-grid{grid-template-columns:1fr}.settings-nav{position:static;flex-direction:row;overflow-x:auto}}.chat-layout{display:grid;grid-template-columns:var(--hist-w, 228px) minmax(0,1fr) auto;height:100%;min-height:0;flex:1}.chat-layout .details{width:var(--det-w, 380px);transition:width var(--slide),border-left-width var(--slide)}.chat-layout.is-resizing .details{transition:none}.chat-layout.no-details .details{width:0;border-left-width:0;visibility:hidden;transition:width var(--slide),border-left-width var(--slide),visibility 0s var(--slide-ms)}.history{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.history-top{padding:14px;border-bottom:1px solid var(--border)}.history-list{flex:1;padding:10px}.h-group{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:10px 8px 6px}.h-item{display:flex;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;align-items:flex-start}.h-item:hover{background:var(--surface-2)}.h-item.active{background:var(--primary-soft)}.h-item .h-icon{width:28px;height:28px;border-radius:7px;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;flex:none;overflow:hidden}.h-item .h-icon img{width:100%;height:100%;object-fit:cover}.h-item b{display:block;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h-item small{display:block;font-size:11.5px;color:var(--text-3);font-family:var(--mono)}.h-item>div{min-width:0}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;background:var(--bg)}.chat-head{height:60px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border)}.chat-title{display:flex;align-items:center;gap:12px}.chat-title b{display:block;font-size:14.5px}.chat-title small{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px}.chat-title .status-dot{width:7px;height:7px}.assistant-mark{width:32px;height:32px;border-radius:6px;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;flex:none}.chat-head-actions{display:flex;gap:6px}.thread{flex:1;min-height:0}.thread-inner{max-width:820px;margin:0 auto;padding:28px 24px 16px;display:flex;flex-direction:column;gap:22px}.msg{display:flex;gap:12px;animation:msgIn .25s ease}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}}.msg.user{justify-content:flex-end}.msg .avatar-a{width:28px;height:28px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--text-2);display:grid;place-items:center;flex:none}.msg .avatar-a svg{width:16px;height:16px;fill:currentColor}.msg-body{min-width:0;flex:1}.msg.user .msg-body{flex:0 1 auto;max-width:75%}.bubble-user{background:var(--surface-3);color:var(--text);border:1px solid var(--border);padding:9px 13px;border-radius:10px 10px 2px;font-size:14px;white-space:pre-wrap;word-wrap:break-word}.bubble-img{background:var(--surface);border:1px solid var(--border);border-radius:10px 10px 2px;padding:6px;width:240px}.bubble-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:var(--surface-3)}.bubble-img div{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-3);padding:6px 4px 2px;font-family:var(--mono)}.msg-meta{font-size:11.5px;color:var(--text-3);margin-top:6px;display:flex;gap:10px;align-items:center}.msg.user .msg-meta{justify-content:flex-end}.a-text{font-size:14px;line-height:1.6;color:var(--text)}.a-text b{font-weight:600}.a-text ul{margin:8px 0 0;padding-left:18px}.a-text li{margin:4px 0}.steps{display:flex;flex-direction:column;gap:7px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:13px;max-width:420px}.steps .st{display:flex;align-items:center;gap:10px;color:var(--text-3)}.steps .st.done{color:var(--text-2)}.steps .st.done svg{color:var(--success)}.steps .st.active{color:var(--text);font-weight:500}.steps .st svg{width:16px;height:16px;fill:currentColor}.steps .spinner{width:14px;height:14px}.pcard{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:10px}.pcard-top{display:flex;gap:14px;padding:16px}.pcard-info{flex:1;min-width:0}.pcard-info h4{font-size:15px;margin-bottom:4px}.ptile{width:64px;height:64px;border-radius:6px;flex:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.ptile svg.i{width:24px;height:24px}.ptile small{font-family:var(--mono);font-size:11px;color:var(--text-3)}.ptile.lg{width:100%;height:auto;aspect-ratio:16 / 9;gap:8px}.ptile.lg svg.i{width:40px;height:40px}.ptile.lg small{font-size:12px}.ptile.xs{width:28px;height:28px;border-radius:6px;gap:0}.ptile.xs svg.i{width:16px;height:16px}.pcard-codes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.pcard-desc{font-size:13px;color:var(--text-2);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.conf{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--text-2)}.conf .progress{width:120px;height:5px}.conf .progress i{background:var(--success)}.pcard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);gap:1px;background:var(--border)}.pstat{padding:12px 14px;background:var(--surface);min-width:0}.pstat small{display:block;font-size:11.5px;color:var(--text-3)}.pstat b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.pstat em{font-style:normal;font-size:11.5px;color:var(--text-3);display:block}.pstat.total b{color:var(--text)}.pstat.total{background:var(--surface-2)}.pcard-alerts{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px}.pcard-actions{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}.pcard-actions .spacer{flex:1}.alts{margin-top:10px;font-size:12.5px;color:var(--text-2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.alt-chip{border:1px solid var(--border-strong);background:var(--surface);border-radius:20px;padding:3px 10px;font-size:12px;cursor:pointer}.alt-chip:hover{border-color:var(--primary);color:var(--primary)}.cites{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.cite{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 9px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--text-2);cursor:pointer}.cite:hover{border-color:var(--primary);color:var(--primary)}.cite svg{width:14px;height:14px;fill:currentColor}.followups{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.chip{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;padding:5px 10px;font-size:12.5px;cursor:pointer;color:var(--text-2);display:inline-flex;align-items:center;gap:6px;transition:all .12s;font-family:inherit}.chip:hover{border-color:#94a3b8;color:var(--text);background:var(--surface-2)}.chip svg{width:14px;height:14px;fill:currentColor}.welcome{padding:8vh 0 10px;max-width:560px}.welcome h2{font-size:20px;letter-spacing:-.015em}.welcome>p{color:var(--text-2);margin-top:4px}.welcome .examples{margin-top:20px}.welcome .examples .section-label{display:block;margin-bottom:8px}.welcome .examples .followups{margin-top:0}.welcome .chip .mono{font-size:12px}.composer-wrap{padding:8px 24px 14px;flex:none}.composer{max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.composer:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring),var(--shadow)}.composer textarea{width:100%;border:0;resize:none;padding:14px 16px 6px;outline:none;font-size:14.5px;max-height:160px;background:transparent;line-height:1.5}.composer-bar{display:flex;align-items:center;gap:4px;padding:6px 8px 8px}.composer-hint{margin-left:auto;margin-right:8px;font-size:11.5px;color:var(--text-3)}.send-btn{border-radius:6px}.attach-preview{display:flex;gap:8px;padding:12px 12px 0}.att{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 6px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);font-size:12.5px}.att img{width:40px;height:40px;border-radius:6px;object-fit:cover}.att small{display:block;color:var(--text-3);font-size:11px}.disclaimer{text-align:center;font-size:11.5px;color:var(--text-3);margin-top:8px}.drop-overlay{position:absolute;inset:0;background:#eff6fff0;border:2px dashed var(--primary);border-radius:8px;margin:10px;display:grid;place-items:center;z-index:5;color:var(--primary);text-align:center}.drop-overlay b{display:block;font-size:16px;margin-top:8px}.drop-overlay small{color:var(--text-2)}.details{background:var(--surface);border-left:1px solid var(--border);min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.details-body{flex:1;min-height:0;display:flex;flex-direction:column;width:var(--det-w, 380px)}.d-head{padding:16px 18px 0}.d-head-top{display:flex;gap:12px;align-items:flex-start}.d-head h3{font-size:16px;line-height:1.3}.d-head .tabs{margin-top:14px;margin-left:-4px}.d-head .tab{padding:9px 8px;font-size:13px}.d-content{flex:1;overflow-y:auto;padding:18px}.d-section+.d-section{margin-top:20px}.d-section>.section-label{display:block;margin-bottom:8px}.range-track{position:relative;height:6px;background:var(--border);border-radius:4px;margin:26px 0 6px}.range-track i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--primary);transform:translate(-50%,-50%)}.range-track span{position:absolute;bottom:14px;transform:translate(-50%);font-size:11.5px;font-weight:600;color:var(--primary);white-space:nowrap}.range-labels{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-3);font-family:var(--mono)}.calc-inputs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.calc-inputs .field{min-width:0}.input-group input{width:100%}.calc-inputs .field+.field{margin-top:0}.calc-inputs .full{grid-column:1 / -1}.breakdown{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:16px}.bd-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13.5px;border-bottom:1px solid var(--border);gap:10px}.bd-row:last-child{border-bottom:0}.bd-row span:first-child{color:var(--text-2)}.bd-row span:first-child em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--text-3);display:block}.bd-row span:last-child{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.bd-row.sub{background:var(--surface-2)}.bd-row.total{background:var(--surface-3)}.bd-row.total span{color:var(--text)!important;font-weight:600}.bd-row.zero span:last-child{color:var(--text-3)}.formula{font-family:var(--mono);font-size:11.5px;color:var(--text-3);margin-top:10px;line-height:1.7}.permit{display:flex;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px}.permit+.permit{margin-top:8px}.permit .p-icon{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;flex:none;background:var(--surface-3);color:var(--text-2)}.permit b{display:block;font-size:13.5px;font-weight:500}.permit small{color:var(--text-3);font-size:12px}.check-row{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:13.5px;border-bottom:1px dashed var(--border)}.check-row:last-child{border-bottom:0}.source{display:flex;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;align-items:flex-start}.source+.source{margin-top:8px}.source .s-icon{width:32px;height:32px;border-radius:6px;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;flex:none}.source b{font-size:13.5px;font-weight:500;display:block}.source small{font-size:12px;color:var(--text-3)}.details-empty{padding:40px 28px;text-align:center;color:var(--text-2);margin:auto}.details-empty .empty-icon{width:44px;height:44px;border-radius:8px;background:var(--surface-3);color:var(--text-3);display:grid;place-items:center;margin:0 auto 14px}.details-empty h3{font-size:15px;color:var(--text);margin-bottom:4px}.d-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px}.d-foot .btn{flex:1}@media(max-width:1320px){.chat-layout{grid-template-columns:0 minmax(0,1fr) auto}.chat-layout .history{display:none}.chat-layout.no-details{grid-template-columns:var(--hist-w, 220px) minmax(0,1fr) auto}.chat-layout:not(.no-details) .resizer.at-left{display:none}.chat-layout.no-details .history{display:flex}}@media(max-width:1100px){.chat-layout,.chat-layout.no-details{grid-template-columns:minmax(0,1fr)}.chat-layout .history,.chat-layout.no-details .history{display:none}.chat-layout .details,.chat-layout.no-details .details{position:fixed;right:0;top:var(--topbar-h);bottom:0;width:min(400px,100vw);border-left-width:1px;z-index:35;box-shadow:var(--shadow-lg);transition:transform var(--slide)}.details-body{width:100%}.chat-layout.no-details .details{transform:translate(100%);transition:transform var(--slide),visibility 0s var(--slide-ms)}}@media(max-width:860px){.chat-layout{height:calc(100vh - var(--topbar-h))}.pcard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.thread-inner{padding:18px 14px}.composer-wrap{padding:8px 12px 12px}.composer-hint{display:none}.send-btn{margin-left:auto}}.page-bar .stepper{margin-top:2px}.page-bar.compact{padding:0 24px}.page-bar.compact .page-head{margin:0;min-height:60px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;column-gap:20px}.page-bar.compact .title-block{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:8px 0}.page-bar.compact h1{font-size:17px;line-height:1.3}.page-bar.compact .ds-picker{display:flex;align-items:center;gap:2px;margin-top:1px;font-size:12.5px;color:var(--text-2);white-space:nowrap;min-width:0}.page-bar.compact .ds-picker>span{overflow:hidden;text-overflow:ellipsis}.page-bar.compact .ds-picker>span:before{content:"·";margin:0 6px 0 2px}.select.inline{height:24px;width:auto;max-width:240px;padding:0 22px 0 6px;margin-left:-6px;font-size:12.5px;font-weight:500;color:var(--text);border-color:transparent;background-color:transparent;background-position:right 4px center;transition:border-color .12s,background-color .12s}.select.inline:hover{border-color:var(--border-strong);background-color:#fff}.page-bar.compact .stepper{margin:0;align-self:stretch;justify-self:center}.page-bar.compact .step{padding:0 4px;align-self:stretch;font-size:13.5px}.page-bar.compact .step .num{width:22px;height:22px;font-size:11.5px}.page-bar.compact .step-sep{width:16px;margin:0 6px}.page-bar.compact .page-actions{align-self:center;justify-self:end;padding:8px 0;flex-wrap:nowrap}@media(max-width:1320px){.page-bar.compact .page-head{grid-template-columns:minmax(0,1fr) auto}.page-bar.compact .stepper{grid-column:1 / -1;grid-row:2;justify-self:center;height:44px}}.step-panel{flex:1;min-height:0;overflow:auto}.annotate{display:grid;grid-template-columns:var(--thumbs-w, 200px) minmax(0,1fr) var(--insp-w, 300px);height:100%;min-height:480px}.thumbs{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}.thumbs-head{padding:12px;border-bottom:1px solid var(--border)}.thumbs-head .seg{width:100%}.thumbs-head .seg button{flex:1;padding:0 4px}.thumbs-list{flex:1;padding:10px;display:flex;flex-direction:column;gap:8px}.thumb{position:relative;border-radius:8px;overflow:hidden;border:2px solid transparent;cursor:pointer;background:var(--surface-3);flex:none;aspect-ratio:1280 / 860}.thumb img{width:100%;height:100%;object-fit:cover}.thumb:hover{border-color:var(--border-strong)}.thumb.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.thumb .t-num{position:absolute;left:6px;bottom:6px;font-family:var(--mono);font-size:10.5px;background:#0f172acc;color:#fff;padding:1px 6px;border-radius:4px}.thumb .t-status{position:absolute;right:6px;top:6px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center}.thumb .t-status.done{background:var(--success);color:#fff}.thumb .t-status.auto{background:var(--violet);color:#fff}.thumb .t-status svg{width:12px;height:12px;fill:currentColor}.thumbs-foot{padding:12px;border-top:1px solid var(--border)}.canvas-area{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface-3);position:relative}.canvas-toolbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.canvas-nav{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12.5px}.stage-wrap{flex:1;overflow:auto;display:flex;padding:24px;min-height:0}.stage{position:relative;margin:auto;box-shadow:var(--shadow);background:#fff;-webkit-user-select:none;user-select:none;flex:none}.stage img{width:100%;height:100%;display:block;pointer-events:none}.stage.draw{cursor:crosshair}.boxes{position:absolute;inset:0}.bbox{position:absolute;border:2px solid var(--c, #2f6fe0);background:color-mix(in srgb,var(--c) 10%,transparent);cursor:move}.bbox.auto{border-style:dashed}.bbox.selected{background:color-mix(in srgb,var(--c) 18%,transparent);box-shadow:0 0 0 1px #fff,0 0 0 3px var(--c);z-index:2}.bbox .b-label{position:absolute;left:-2px;top:-22px;height:20px;padding:0 7px;background:var(--c);color:#fff;font-family:var(--mono);font-size:11px;font-weight:500;display:flex;align-items:center;gap:6px;white-space:nowrap;border-radius:4px 4px 4px 0;pointer-events:none;text-transform:uppercase;letter-spacing:.02em}.bbox .handle{position:absolute;width:10px;height:10px;background:#fff;border:2px solid var(--c);border-radius:2px;display:none}.bbox.selected .handle{display:block}.handle.nw{left:-6px;top:-6px;cursor:nwse-resize}.handle.ne{right:-6px;top:-6px;cursor:nesw-resize}.handle.sw{left:-6px;bottom:-6px;cursor:nesw-resize}.handle.se{right:-6px;bottom:-6px;cursor:nwse-resize}.stage.draw .bbox{pointer-events:none}.draft{position:absolute;border:2px dashed var(--c, #2f6fe0);background:#2f6fe014;pointer-events:none}.hint-bar{display:flex;gap:16px;align-items:center;padding:8px 14px;background:var(--surface);border-top:1px solid var(--border);font-size:12px;color:var(--text-3);flex-wrap:wrap}.hint-bar .kbd{margin-right:4px}.hint-right{margin-left:auto}.inspector{border-left:1px solid var(--border);background:var(--surface);min-height:0}.insp-section{padding:14px 16px;border-bottom:1px solid var(--border)}.insp-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;min-height:30px}.class-list{display:flex;flex-direction:column;gap:2px}.class-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:7px;cursor:pointer;border:1px solid transparent;font-size:13px}.class-item:hover{background:var(--surface-2)}.class-item.active{background:var(--primary-soft);border-color:var(--primary-border)}.class-row{position:relative}.class-row .class-item{width:100%;padding-left:34px}.class-row .swatch-btn{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:6px;background:transparent;display:grid;place-items:center;cursor:pointer;transition:background .12s}.class-row .swatch-btn:hover,.class-row .swatch-btn:focus-visible{background:var(--surface-3)}.class-row .swatch{width:12px;height:12px;border-radius:3px;background:var(--c);box-shadow:inset 0 0 0 1px #0f172a1f;transition:transform .12s}.class-row .swatch-btn:hover .swatch{transform:scale(1.2)}.class-item .cname{font-family:var(--mono);font-size:12.5px;flex:1}.class-item .ccount{font-size:11.5px;color:var(--text-3)}.class-item .kbd{font-size:10px;padding:0 5px}.ann-list{display:flex;flex-direction:column;gap:6px}.ann-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px}.ann-item:hover{border-color:var(--border-strong)}.ann-item.selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary-ring)}.ann-item .idx{width:22px;height:22px;border-radius:5px;background:var(--c);color:#fff;font-size:11px;font-family:var(--mono);display:grid;place-items:center;flex:none}.ann-item .aname{font-family:var(--mono);font-size:12.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ann-item .conf{font-size:11.5px;color:var(--text-3);font-family:var(--mono)}.ann-item .del{opacity:0}.ann-item:hover .del{opacity:1}.ann-empty{border:1.5px dashed var(--border-strong);border-radius:8px;padding:16px;text-align:center;font-size:12.5px;color:var(--text-3)}.config-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;padding:24px 28px 40px;max-width:1280px}.config-main{display:flex;flex-direction:column;gap:16px}.config-side{align-self:start;position:sticky;top:0}.split-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;gap:2px}.split-bar i{display:block;height:100%;transition:width .2s}.s-train{background:var(--primary)}.s-val{background:#60a5fa}.s-test{background:#bfdbfe}.split-legend{display:flex;gap:20px;margin-top:10px;font-size:12.5px;color:var(--text-2);flex-wrap:wrap}.split-legend span{display:flex;align-items:center;gap:6px}.split-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.class-dist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}.cd-row{display:grid;grid-template-columns:130px 1fr 34px;align-items:center;gap:10px;font-size:12.5px}.cd-row .mono{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cd-row .bar{height:6px;background:var(--surface-3);border-radius:4px;overflow:hidden}.cd-row .bar i{display:block;height:100%;background:var(--c);border-radius:4px}.cd-row b{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}.aug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}.job-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.job-head h3{font-size:16px}.job-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}.job-stat{padding:14px 18px;border-right:1px solid var(--border)}.job-stat:last-child{border-right:0}.job-stat small{color:var(--text-3);font-size:12px;display:block}.job-stat b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.chart{width:100%;height:220px;display:block}.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--text-2)}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:14px;height:3px;border-radius:2px;display:inline-block}.console{background:#0f172a;color:#cbd5e1;font-family:var(--mono);font-size:12px;line-height:1.7;padding:14px 16px;height:240px;overflow-y:auto;border-radius:0 0 8px 8px}.console .ts{color:#64748b;margin-right:10px}.console .ok{color:#86efac}.metric-bar{display:flex;align-items:center;gap:8px}.metric-bar .bar{flex:1;height:6px;background:var(--surface-3);border-radius:4px;overflow:hidden;min-width:60px}.metric-bar .bar i{display:block;height:100%;background:var(--primary)}.cm{display:grid;gap:2px;font-size:10.5px;font-family:var(--mono)}.cm div{aspect-ratio:1;display:grid;place-items:center;border-radius:3px}.cm .lbl{background:none;color:var(--text-3);aspect-ratio:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.preds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pred{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.pred img{width:100%;aspect-ratio:1280/860;object-fit:cover}.pred .pb{position:absolute;border:2px solid var(--c)}.deploy-steps{display:flex;flex-direction:column;gap:10px;margin-top:12px}.deploy-step{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-3)}.deploy-step.done{color:var(--success)}.deploy-step.active{color:var(--text)}@media(max-width:1200px){.config-layout,.class-dist{grid-template-columns:1fr}}@media(max-width:860px){.annotate{grid-template-columns:1fr;height:auto}.thumbs{border-right:0;border-bottom:1px solid var(--border)}.thumbs-list{flex-direction:row;overflow-x:auto;max-height:120px}.thumb{width:130px}.stage-wrap{min-height:360px;padding:12px}.inspector{border-left:0;border-top:1px solid var(--border)}.config-layout{padding:16px}.job-stats{grid-template-columns:repeat(2,1fr)}.preds{grid-template-columns:1fr 1fr}.stepper{overflow-x:auto}.step-sep{width:16px;margin:0 6px}}.field-label{font-size:12.5px;font-weight:500;color:var(--text-2)}.color-picker{display:flex;flex-direction:column;gap:10px}.swatches{display:grid;grid-template-columns:repeat(6,32px);gap:8px}.swatch-choice{width:32px;height:32px;border-radius:8px;border:0;background:var(--c);color:#fff;display:grid;place-items:center;cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px #0f172a1f;transition:transform .12s,box-shadow .12s}.swatch-choice:hover{transform:scale(1.08)}.swatch-choice.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c)}.swatch-choice.taken:after{content:"";position:absolute;right:3px;bottom:3px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #0f172a40}.swatch-choice svg{width:16px;height:16px}.custom-color{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.custom-color .field-note{margin-top:0}.swatch-choice.native{background:conic-gradient(from 90deg,#dc2626,#d97706,#65a30d,#0891b2,#2563eb,#7c3aed,#db2777,#dc2626);overflow:hidden}.swatch-choice.native.selected{background:var(--c)}.swatch-choice.native input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}.swatch-choice.native:focus-within{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--primary)}.class-preview{margin-top:14px;height:54px;border-radius:8px;background:var(--surface-3);position:relative}.class-preview:before{content:"";position:absolute;left:18px;top:26px;width:120px;height:20px;border:2px solid var(--c);border-bottom:0;background:color-mix(in srgb,var(--c) 10%,transparent);transition:border-color .15s}.class-preview .b-label{position:absolute;left:16px;top:6px;height:20px;padding:0 7px;background:var(--c);color:#fff;font-family:var(--mono);font-size:11px;font-weight:500;display:flex;align-items:center;border-radius:4px 4px 4px 0;text-transform:uppercase;letter-spacing:.02em;transition:background .15s;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-back{margin:-6px 0 10px}.crumb-back a{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--text-2);padding:4px 6px 4px 2px;border-radius:6px;transition:color .12s,background .12s}.crumb-back a:hover{color:var(--text);background:var(--surface-3)}.page-head h1 .tag{font-size:11.5px;vertical-align:3px;margin-left:4px;font-weight:500}.g-stats{display:flex;flex-wrap:wrap;margin-bottom:16px}.g-stat{padding:14px 20px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px;justify-content:center}.g-stat small{font-size:12px;color:var(--text-3)}.g-stat b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.g-stat.g-classes{border-right:0;flex:1 1 320px;min-width:0}.g-class-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.g-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-family:var(--mono);font-size:11.5px;color:var(--text-2);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.g-chip:hover{border-color:var(--border-strong);color:var(--text)}.g-chip.active{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);color:var(--text)}.g-chip .dot{width:8px;height:8px;border-radius:2px;background:var(--c)}.g-chip .n{color:var(--text-3);font-variant-numeric:tabular-nums}.g-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.seg-count{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.seg button.active .seg-count{color:var(--text-2)}.g-search{width:240px;height:34px}.g-search>span{background:#fff;border:0;padding-right:0}.g-clear{border:0;background:transparent;color:var(--text-3);display:grid;place-items:center;width:30px;cursor:pointer}.g-clear:hover{color:var(--text)}.g-count{margin-left:auto;font-size:12.5px}.g-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding-bottom:80px}.g-card{position:relative;border-radius:8px;background:var(--surface);border:1px solid var(--border);overflow:hidden;transition:border-color .15s,box-shadow .15s;animation:gIn .22s ease-out both}@keyframes gIn{0%{opacity:0;transform:translateY(4px)}}.g-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.g-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.g-open{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;color:inherit;font:inherit}.g-grid.selecting .g-open{cursor:pointer}.g-thumb{aspect-ratio:16 / 10;background:var(--surface-3);display:grid;place-items:center;overflow:hidden}.g-frame{position:relative;display:flex}.g-frame img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .25s ease}.g-card:hover .g-frame img{transform:scale(1.015)}.g-card.selected .g-thumb{background:var(--primary-soft)}.g-boxes{position:absolute;inset:0;pointer-events:none}.g-box{position:absolute;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 8%,transparent)}.g-box.auto{border-style:dashed}.g-box span{position:absolute;left:-1.5px;bottom:100%;padding:1px 6px;background:var(--c);color:#fff;font-family:var(--mono);font-size:10.5px;white-space:nowrap;border-radius:3px 3px 3px 0;text-transform:uppercase;letter-spacing:.02em}.g-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px}.g-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.g-status{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:11.5px;font-weight:500;height:20px;padding:0 6px;border-radius:4px;font-variant-numeric:tabular-nums}.g-status svg{width:12px;height:12px}.g-status.todo{background:var(--surface-3);color:var(--text-2)}.g-status.labelled{background:var(--success-soft);color:var(--success)}.g-status.auto{background:var(--violet-soft);color:var(--violet)}.g-check{position:absolute;top:8px;left:8px;width:24px;height:24px;cursor:pointer;opacity:0;transform:scale(.9);transition:opacity .12s,transform .12s}.g-card:hover .g-check,.g-check:focus-within,.g-grid.selecting .g-check{opacity:1;transform:none}.g-check input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.g-check span{position:absolute;inset:0;border-radius:6px;background:#ffffffeb;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:transparent;box-shadow:var(--shadow-sm);transition:background .12s,border-color .12s,color .12s;pointer-events:none}.g-check span svg{width:14px;height:14px}.g-check input:checked+span{background:var(--primary);border-color:var(--primary);color:#fff}.g-check input:focus-visible+span{box-shadow:0 0 0 3px var(--primary-ring)}.g-card.uploading{animation:none}.g-empty{width:100%;border:1.5px dashed var(--border-strong);border-radius:10px;background:var(--surface);padding:56px 24px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:var(--text-2);font:inherit;transition:border-color .15s,background .15s}.g-empty:hover,.g-empty.over{border-color:var(--primary);background:var(--primary-soft)}.g-empty b{color:var(--text);font-weight:600;margin-top:6px}.g-empty .subtle{font-size:12.5px}.g-drop{position:fixed;inset:0;z-index:90;background:#1e40af0f;border:2px dashed var(--primary);pointer-events:none;display:grid;place-items:center;animation:fade .12s ease}.g-drop>div{background:#fff;border-radius:10px;padding:18px 24px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;color:var(--primary)}.g-drop b{color:var(--text);font-weight:600}.g-selbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:6px;padding:8px 10px 8px 16px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);animation:barIn .18s ease-out}.g-selbar.leaving{animation:barOut .16s ease-in forwards}@keyframes barIn{0%{opacity:0;transform:translate(-50%,10px)}}@keyframes barOut{to{opacity:0;transform:translate(-50%,10px)}}.g-selbar b{font-weight:600;font-size:13px;margin-right:6px;font-variant-numeric:tabular-nums}.g-selbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.dropdown.menu{width:200px;padding:4px}.dropdown.menu button{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;border:0;background:none;border-radius:6px;font:inherit;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.dropdown.menu button:hover,.dropdown.menu button:focus-visible{background:var(--surface-3)}.dropdown.menu button.danger{color:var(--danger)}.dropdown.menu button.danger:hover{background:var(--danger-soft)}.viewer-backdrop{position:fixed;inset:0;z-index:95;background:#0f172ab8;display:grid;place-items:center;padding:24px;animation:fade .15s ease}.viewer{width:min(1320px,100%);height:min(860px,100%);background:#0b1220;border-radius:10px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 300px;box-shadow:var(--shadow-lg);animation:viewerIn .18s ease-out}@keyframes viewerIn{0%{opacity:0;transform:scale(.985)}}.viewer-stage{position:relative;display:grid;place-items:center;padding:40px 64px;min-width:0;min-height:0}.viewer-frame{position:relative;aspect-ratio:var(--r);width:min(100%,calc((min(860px,100vh - 48px) - 80px) * var(--r)));animation:fade .16s ease}.viewer-frame img{display:block;width:100%;height:100%;object-fit:contain;border-radius:4px}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:#ffffff1a;color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .12s}.viewer-nav:hover:not(:disabled){background:#ffffff38}.viewer-nav:disabled{opacity:.3;cursor:default}.viewer-nav.prev{left:12px}.viewer-nav.next{right:12px}.viewer-side{background:#fff;padding:14px 18px 18px;display:flex;flex-direction:column;min-height:0;overflow:auto}.viewer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.viewer-facts{margin:14px 0 0;display:flex;flex-direction:column;gap:8px}.viewer-facts div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.viewer-facts dt{color:var(--text-3)}.viewer-facts dd{margin:0;text-align:right}.viewer-classes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.viewer-classes li{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 8px;border-radius:6px;background:var(--surface-2)}.viewer-classes .dot{width:10px;height:10px;border-radius:3px;background:var(--c);flex:none}.viewer-classes .mono{flex:1}.viewer-actions{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:8px}.viewer-keys{font-size:11.5px;margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}tr.row-link{cursor:pointer}tr.row-link:hover td{background:var(--surface-2)}tr.row-link a.row-title{color:var(--text)}tr.row-link:hover a.row-title{color:var(--primary)}@media(max-width:860px){.viewer{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;height:100%}.viewer-stage{padding:16px 52px}.viewer-side{max-height:45vh}.g-stat{border-right:0;padding:12px 16px}.g-search{width:100%}.g-count{margin-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.kb-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;border:1px solid;margin-bottom:16px;animation:bannerIn .2s ease-out}@keyframes bannerIn{0%{opacity:0;transform:translateY(-4px)}}.kb-banner.info{background:var(--primary-soft);border-color:var(--primary-border);color:#1e3a8a}.kb-banner.warn{background:var(--warning-soft);border-color:#fde68a;color:#78350f}.kb-banner.danger{background:var(--danger-soft);border-color:#fecaca;color:#7f1d1d}.kb-banner-text{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;font-size:13px}.kb-banner-text b{font-weight:600}.kpi-of{font-size:15px;color:var(--text-3);font-weight:500}.kb-docs{position:relative;transition:border-color .15s,box-shadow .15s}.kb-docs.over{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.kb-docs-head{flex-wrap:wrap;gap:10px}.kb-location{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;padding:8px 18px;border-bottom:1px solid var(--border);font-size:12px;background:var(--surface-2)}.kb-location .mono{font-size:11.5px}.kb-table td{padding-top:9px;padding-bottom:9px}.kb-table tr{transition:background .12s}.kb-table tbody tr:hover td{background:var(--surface-2)}.kb-table tr.selected td{background:var(--primary-soft)}.kb-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.kb-name{display:flex;align-items:center;gap:12px;min-width:0}.kb-name b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.kb-uploading{animation:gIn .2s ease-out}.kb-uploading td{color:var(--text-2)}.row-actions{display:flex;gap:2px;justify-content:flex-end;opacity:.55;transition:opacity .12s}.kb-table tr:hover .row-actions,.row-actions:focus-within{opacity:1}.btn.ghost.danger:hover{background:var(--danger-soft);color:var(--danger)}.kb-empty{border:0;border-radius:0;margin:0}.kb-drop{position:absolute;inset:0;z-index:2;border-radius:inherit;background:#eff6ffeb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--primary);pointer-events:none;animation:fade .12s ease}.kb-drop b{color:var(--text);font-weight:600}.kb-results{margin-top:14px}.kb-result{animation:gIn .2s ease-out both}.kb-result-title{font-size:13px;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.kb-result-title:hover{color:var(--primary);text-decoration:underline}.kb-score{display:inline-flex;align-items:center;gap:6px;flex:none}.kb-score .track{display:block;width:44px;height:4px;border-radius:4px;background:var(--surface-3);overflow:hidden}.kb-score .track i{display:block;height:100%;background:var(--primary);border-radius:4px;transition:width .3s ease}.kb-score .mono{font-size:11.5px;color:var(--text-2)}.result p.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.link-btn{border:0;background:none;padding:0;margin-top:4px;font:inherit;font-size:12.5px;color:var(--primary);cursor:pointer}.link-btn:hover{text-decoration:underline}.kb-facts{margin:0;padding:4px 18px 12px;display:flex;flex-direction:column}.kb-facts div{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px;font-size:13px;border-bottom:1px solid var(--border)}.kb-facts div:last-child{border-bottom:0}.kb-facts dt{color:var(--text-3);flex:none}.kb-facts dd{margin:0;display:flex;align-items:center;gap:2px;text-align:right;min-width:0}.kb-facts dd .mono{font-size:12px}.kb-history{list-style:none;margin:0;padding:0 18px 16px;display:flex;flex-direction:column;gap:8px}.kb-history li{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:12.5px}.kb-history-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.kb-history-top .subtle{font-size:12px}.kb-history-sum{margin-top:6px;color:var(--text-2)}.kb-history-err{margin-top:6px;color:var(--danger);overflow-wrap:anywhere}.select.select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;background-image:none;padding-right:10px;font:inherit;color:var(--text)}.select.select-trigger:disabled{cursor:not-allowed;opacity:.6}.select.select-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-chevron{width:16px;height:16px;flex:none;fill:none;stroke:var(--text-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s cubic-bezier(.2,.8,.2,1),stroke .12s}.select-trigger:hover .select-chevron{stroke:var(--text-2)}.select-trigger.open .select-chevron{transform:rotate(180deg);stroke:var(--primary)}.select.inline.select-trigger{gap:4px;padding:0 4px 0 6px}.select.inline.select-trigger.open{box-shadow:none;border-color:var(--border-strong);background-color:#fff}.select.inline .select-chevron{width:14px;height:14px}.select-menu{position:fixed;z-index:200;margin:0;padding:4px;list-style:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #0f172a24,0 2px 6px #0f172a0f;transform-origin:top center;animation:menuIn .14s cubic-bezier(.2,.8,.2,1)}.select-menu.up{translate:0 -100%;transform-origin:bottom center;animation-name:menuInUp}.select-menu.leaving{animation:menuOut .1s ease-in forwards;pointer-events:none}.select-menu.up.leaving{animation-name:menuOutUp}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@keyframes menuInUp{0%{opacity:0;transform:translateY(4px) scale(.98)}}@keyframes menuOut{to{opacity:0;transform:translateY(-4px) scale(.98)}}@keyframes menuOutUp{to{opacity:0;transform:translateY(4px) scale(.98)}}.select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:6px 10px;border-radius:6px;font-size:13.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .08s}.select-option.active{background:var(--surface-3)}.select-option.selected{color:var(--primary);font-weight:500}.select-option.disabled{color:var(--text-3);cursor:not-allowed}.select-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-check{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}body.resize-easing .annotate,body.resize-easing .ir-layout,body.resize-easing .chat-layout{transition:grid-template-columns var(--slide)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.q-info small,.h-item small,.msg-meta,.disclaimer,.composer-hint,.ir-legend,.pstat small,.pstat em,.badge{font-size:12px}.kpi-value,.job-stat b,.table .num{font-variant-numeric:tabular-nums}button.q-item,button.h-item,button.region,button.mode,button.palette-item,button.nav-item,button.ir-box,button.thumb,button.class-item,button.ann-select{font:inherit;color:inherit;text-align:left;background:none;width:100%}button.q-item,button.h-item,button.mode{border:1px solid transparent}button.mode{background:var(--surface);border-color:var(--border)}button.region{background:var(--surface)}button.q-item.active{background:var(--primary-soft);border-color:var(--primary-border)}button.h-item.active{background:var(--primary-soft)}button.h-item:disabled{opacity:.6;cursor:default}button.nav-item{border:0;cursor:pointer}button.palette-item{border:0}button.ir-box{width:auto;background:transparent;padding:0}button.thumb{padding:0}.cite{font:inherit;font-size:12px}.q-item+.q-item{margin-top:2px}.notif .ni{background:var(--surface-3);color:var(--text-2)}button.h-item{align-items:center}.ann-item:focus-within .del{opacity:1}.ann-select{border:0;padding:0;display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:pointer}.state{display:flex;align-items:center;justify-content:center;gap:10px;padding:64px 24px;color:var(--text-2)}.boot{min-height:100vh;display:grid;place-items:center}.split-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.split-grid-wide{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}a.act-row:hover{background:var(--surface-2)}.ir-panel-wrap{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.ir-panel-wrap .ir-panel{flex:1;border-left:0}.ir-decide{flex:none;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}.factor-list{display:flex;flex-direction:column;gap:8px}.factor-list .checkbox{font-size:13px;align-items:flex-start}.factor-list input{margin-top:2px;flex:none}.field-note{font-size:12px;color:var(--danger);margin-top:8px}.decision{padding:8px 6px}.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.doc-check{border:1px solid var(--border);border-radius:8px;margin-top:10px;overflow:hidden}.doc-check-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2)}.doc-check-head b{display:block;font-size:13px}.doc-check-head small{display:block;font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-table{width:100%;border-collapse:collapse;font-size:12.5px}.doc-table th{text-align:left;font-weight:600;color:var(--text-3);padding:6px 12px;border-top:1px solid var(--border);font-size:12px}.doc-table td{padding:7px 12px;border-top:1px solid var(--border)}.doc-table td{vertical-align:top}.doc-table .doc-ok{color:var(--success);margin-left:6px;vertical-align:-2px}.doc-table .doc-flag{display:flex;width:fit-content;margin-top:3px;background:#fff}.doc-table tr.bad td{background:var(--danger-soft)}.case-row{padding:14px 18px;border-bottom:1px solid var(--border)}.case-row:last-child{border-bottom:0}.case-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.case-top b{display:block;font-size:13.5px}.case-top small{color:var(--text-2);font-size:13px}.case-trail{margin:10px 0 0;display:grid;gap:4px;font-size:13px}.case-trail>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px}.case-trail dt{color:var(--text-3)}.case-trail dd{margin:0}.case-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;flex-wrap:wrap}.case-actions{display:flex;gap:6px}.stage-empty{margin:auto;text-align:center;color:var(--text-2)}:root{--slide-ms: .2s;--slide: .2s cubic-bezier(.2, .8, .2, 1)}.main>main{animation:pageIn .18s ease-out}@keyframes pageIn{0%{opacity:0;transform:translateY(4px)}}.skeleton-page{animation:none}.skel{display:block;flex:none;background:linear-gradient(90deg,#eef2f6 25%,#f7f9fb 37%,#eef2f6 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skel-workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;flex:1;min-height:0;height:100%}.skel-side{background:var(--surface);border-right:1px solid var(--border)}.skel-side:last-child{border-right:0;border-left:1px solid var(--border)}.skel-center{display:flex;padding:20px}.dropdown{transform-origin:top right;animation:popIn .14s ease-out}.dropdown.leaving{animation:popOut .12s ease-in forwards;pointer-events:none}@keyframes popIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@keyframes popOut{to{opacity:0;transform:translateY(-4px) scale(.98)}}.resizer{position:absolute;top:0;bottom:0;width:8px;z-index:6;cursor:col-resize;touch-action:none;outline:none}.resizer.at-left{left:-4px}.resizer.at-right{right:-4px}.resizer:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:transparent;transition:background .12s}.resizer:hover:after{background:var(--border-strong);transition-delay:.15s}.resizer:focus-visible:after,.resizer.active:after{background:var(--primary);transition-delay:0s}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.resizing *{cursor:col-resize!important}.brand .collapse-btn{margin-left:auto;color:var(--text-3)}.app.collapsed .brand .collapse-btn{display:none}.brand-toggle{border:0;padding:0;cursor:pointer;position:relative}.brand-toggle .expand{display:none}.brand-toggle:hover,.brand-toggle:focus-visible{background:var(--surface-3);color:var(--text)}.brand-toggle:hover .logo,.brand-toggle:focus-visible .logo{display:none}.brand-toggle:hover .expand,.brand-toggle:focus-visible .expand{display:block}.sidebar{overflow:visible}.sidebar .nav{overflow-x:hidden}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip) "  " attr(data-kbd);position:absolute;left:calc(100% + 8px);top:50%;transform:translate(-2px,-50%);white-space:pre;font-size:12px;font-weight:500;color:#fff;background:var(--navy);padding:5px 8px;border-radius:6px;pointer-events:none;z-index:60;opacity:0;transition:opacity .12s,transform .12s}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translateY(-50%);transition-delay:.4s}.settings-section{scroll-margin-top:calc(var(--topbar-h) + 16px);transition:border-color .3s,box-shadow .3s}.settings-section.flash{border-color:var(--primary-border);box-shadow:0 0 0 3px var(--primary-ring)}.settings-nav a{transition:background .15s,color .15s}@media(max-width:1100px){.resizer{display:none}}@media(max-width:860px){.split-grid,.split-grid-wide,.skel-workspace{grid-template-columns:1fr}.skel-side{display:none}.ir-panel-wrap{border-left:0}.ir-decide{position:sticky;bottom:0}.case-trail>div{grid-template-columns:1fr;gap:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}}
