:root{--bg:#f6f1e7;--bg-sunken:#efe8da;--panel:#fbf8f1;--panel-hover:#f3ede1;--border:#3c302024;--border-strong:#3c302047;--text:#2b2620;--text-secondary:#5d5347;--text-muted:#8d8271;--accent:#a63d33;--accent-hover:#8c3129;--accent-soft:#a63d331a;--accent-border:#a63d3357;--accent-2:#4a6b6a;--accent-2-soft:#4a6b6a1f;--success:#4a6b4e;--warning:#a07225;--warning-soft:#a0722521;--danger:#a63d33;--danger-soft:#a63d331c;--info:#4a6b6a;--info-soft:#4a6b6a1f;--shadow-sm:0 1px 2px #3c30200f;--shadow-md:0 2px 10px #3c302014;--shadow-lg:0 20px 56px #3c30202e;--ring:0 0 0 3px #a63d3329;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:22px;--s6:28px;--s8:38px;--s10:48px;--s12:64px;--r-sm:2px;--r:3px;--r-lg:4px;--r-full:999px;--font:"Noto Serif SC", "Songti SC", "STSong", "SimSun", "Source Han Serif SC", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs:11px;--fs-sm:12.5px;--fs-base:14px;--fs-md:15.5px;--fs-lg:18px;--fs-xl:23px;--fs-2xl:30px;--lh-tight:1.45;--lh:1.75;--lh-loose:2.05;--tracking-mono:.02em;--t-fast:.13s cubic-bezier(.4, 0, .2, 1);--t:.2s cubic-bezier(.4, 0, .2, 1);--w-read:680px;--w-work:1120px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh);margin:0}table,.tabular{font-variant-numeric:tabular-nums}code,.mono{font-family:var(--font-mono);font-size:.92em}h1,h2,h3,h4{font-weight:600;line-height:var(--lh-tight);letter-spacing:.02em;margin:0}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft)}.muted{color:var(--text-muted);font-size:var(--fs-sm)}.secondary{color:var(--text-secondary)}.err{color:var(--danger);font-size:var(--fs-sm)}.err.small{font-size:var(--fs-xs);margin-top:var(--s1)}.app{min-height:100vh}.app.boot{place-items:center;display:grid}.topbar{z-index:20;align-items:center;gap:var(--s5);height:54px;padding:0 var(--s6);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--accent-soft);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--s3);font-size:var(--fs-md);letter-spacing:.14em;white-space:nowrap;font-weight:600;display:flex}.seal{background:var(--accent);color:#fdf9f2;border-radius:2px;place-items:center;width:26px;height:26px;font-size:15px;font-weight:600;line-height:1;display:grid;box-shadow:0 0 0 1px #a63d3340,0 1px 3px #a63d334d}.topbar nav{gap:var(--s1);display:flex}.topbar nav button,.topbar nav a{color:var(--text-secondary);padding:var(--s2) var(--s3);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-base);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;text-decoration:none;position:relative}.topbar nav button:hover,.topbar nav a:hover{color:var(--text);background:var(--panel-hover)}.topbar nav button.on,.topbar nav a.on{color:var(--text);background:#ffffff0d;font-weight:550}.topbar nav button.on:after,.topbar nav a.on:after{content:"";left:var(--s3);right:var(--s3);background:var(--accent);height:1px;position:absolute;bottom:-13px}.account{align-items:center;gap:var(--s3);font-size:var(--fs-sm);margin-left:auto;display:flex}.pulse{background:var(--accent);opacity:.7;border-radius:50%;flex:none;width:5px;height:5px}main{padding:var(--s8) var(--s6) var(--s12)}.read-width{max-width:var(--w-read);margin:0 auto}.work-width{max-width:var(--w-work);margin:0 auto}.page-head{align-items:flex-end;gap:var(--s4);margin-bottom:var(--s5);display:flex}.page-head h2{font-size:var(--fs-xl)}.page-head .actions{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.btn{justify-content:center;align-items:center;gap:var(--s2);height:34px;padding:0 var(--s4);border-radius:var(--r);font-size:var(--fs-base);white-space:nowrap;cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), opacity var(--t-fast);border:1px solid #0000;font-weight:500;display:inline-flex}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn-primary{background:var(--accent);color:#fdf9f2;letter-spacing:.06em;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--panel);border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-hover)}.btn-danger{background:var(--danger);color:#fdf9f2;font-weight:500}.btn:disabled{opacity:.45;cursor:not-allowed}.link{color:var(--text-muted);padding:var(--s1) var(--s2);border-radius:var(--r-sm);font-size:var(--fs-sm);cursor:pointer;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none}.link:hover{color:var(--accent);background:var(--accent-soft)}.link.danger:hover{color:var(--danger);background:var(--danger-soft)}.link.accent{color:var(--accent)}.link:disabled{opacity:.4;cursor:not-allowed}.field{gap:var(--s2);flex-direction:column;display:flex}.field>span{font-size:var(--fs-sm);color:var(--text-secondary)}input[type=text],input[type=email],input[type=password],input[type=search],select{height:36px;padding:0 var(--s3);border:1px solid var(--border);border-radius:var(--r);background:var(--panel);color:var(--text);font-size:var(--fs-base);transition:border-color var(--t-fast), box-shadow var(--t-fast)}input:focus,select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}input::placeholder{color:var(--text-muted)}.checkbox{align-items:center;gap:var(--s2);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.checkbox input{accent-color:var(--accent)}.badge{height:20px;padding:0 var(--s2);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.badge.warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.badge.info{background:var(--info-soft);color:var(--info);border-color:#0000}.dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.dot.live{box-shadow:0 0 0 3px color-mix(in srgb, currentcolor 18%, transparent)}.card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);transition:border-color var(--t-fast), box-shadow var(--t-fast)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);overflow:hidden}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-base)}table.data th{text-align:left;font-weight:500;font-size:var(--fs-sm);letter-spacing:.14em;color:var(--text-muted);padding:var(--s3) var(--s4);background:var(--bg-sunken);border-bottom:1px solid var(--border-strong);white-space:nowrap}table.data td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--t-fast)}table.data tbody tr:hover{background:var(--panel-hover)}table.data tr.dimmed td{opacity:.62}.row-ops{gap:var(--s1);opacity:0;transition:opacity var(--t-fast);justify-content:flex-end;display:flex}tr:hover .row-ops,.row-ops:focus-within{opacity:1}@media (hover:none){.row-ops{opacity:1}}.empty-state{align-items:center;gap:var(--s3);padding:var(--s12) var(--s6);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty-state svg{color:var(--border-strong)}.empty-state strong{color:var(--text-secondary);font-weight:550;font-size:var(--fs-md)}.scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;animation:fade-in var(--t) both;background:#1412106b;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg);border-left:1px solid var(--border);width:min(660px,94vw);height:100%;box-shadow:var(--shadow-lg);animation:slide-in var(--t) both;flex-direction:column;display:flex}.drawer>header{align-items:center;gap:var(--s3);padding:var(--s4) var(--s6);border-bottom:1px solid var(--border);display:flex}.drawer>header h3{font-size:var(--fs-md)}.drawer>header .link{margin-left:auto}.drawer-body{padding:var(--s5) var(--s6) var(--s12);overflow-y:auto}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);width:min(440px,92vw);box-shadow:var(--shadow-lg);padding:var(--s6);animation:fade-up var(--t) both;margin:auto}.dialog h3{font-size:var(--fs-lg);margin-bottom:var(--s2)}.dialog-ops{justify-content:flex-end;gap:var(--s2);margin-top:var(--s6);display:flex}.auth{width:min(360px,92vw);animation:fade-up var(--t) both;margin:14vh auto 0}.auth .brand{font-size:var(--fs-lg);margin-bottom:var(--s6)}.auth h2{font-size:var(--fs-xl);margin-bottom:var(--s2)}.auth form{gap:var(--s4);margin-top:var(--s6);flex-direction:column;display:flex}.auth .btn{height:38px;margin-top:var(--s1)}.auth .switch{margin-top:var(--s5);text-align:center;width:100%;display:block}@keyframes fade-in{0%{opacity:0}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}}@keyframes blink{50%{opacity:.15}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite spin}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.chat{padding-bottom:104px}.chat-intro{padding:var(--s12) 0 var(--s8);animation:fade-up var(--t) both}.chat-intro h2{font-size:var(--fs-2xl);letter-spacing:.06em;margin-bottom:var(--s4);font-weight:600}.chat-intro p{color:var(--text-secondary);max-width:46ch;line-height:var(--lh-loose)}.samples{margin-top:var(--s8);border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}.samples button{align-items:center;gap:var(--s3);width:100%;padding:var(--s4) var(--s2);border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);font-family:inherit;font-size:var(--fs-base);text-align:left;cursor:pointer;transition:color var(--t-fast), padding-left var(--t-fast);background:0 0;display:flex}.samples button:hover{color:var(--accent);padding-left:var(--s4)}.samples button:before{content:"·";color:var(--accent);opacity:.5;flex:none}.turns{gap:var(--s12);flex-direction:column;display:flex}.turn{gap:var(--s5);animation:fade-up var(--t) both;flex-direction:column;display:flex}.ask{gap:var(--s3);font-size:var(--fs-sm);color:var(--text-muted);letter-spacing:.04em;word-break:break-word;display:flex}.ask:before{content:"問";color:var(--accent);font-size:var(--fs-xs);border:1px solid var(--accent-border);border-radius:var(--r-sm);flex:none;height:fit-content;padding:1px 5px;line-height:1.5}.answer{font-size:var(--fs-md);line-height:var(--lh-loose);color:var(--text);white-space:pre-wrap;word-break:break-word;text-wrap:pretty;min-height:24px}.answer.failed{color:var(--danger)}.cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:1.05em;margin-left:2px;animation:1.1s ease-in-out infinite blink;display:inline-block}.sources-toggle{align-items:center;gap:var(--s2);color:var(--text-muted);font-family:inherit;font-size:var(--fs-sm);letter-spacing:.1em;cursor:pointer;transition:color var(--t-fast);background:0 0;border:none;align-self:flex-start;padding:0;display:inline-flex}.sources-toggle:hover{color:var(--accent)}.sources-toggle .chev{transition:transform var(--t-fast)}.sources-toggle[aria-expanded=true] .chev{transform:rotate(90deg)}.sources{gap:var(--s5);padding:var(--s5) var(--s5) var(--s5) var(--s6);background:var(--bg-sunken);border-left:2px solid var(--accent-border);animation:fade-up var(--t-fast) both;flex-direction:column;margin:0;list-style:none;display:flex}.sources li{padding-left:var(--s4);border-left:1px solid var(--border-strong)}.sources li:first-child{border-left-color:var(--accent)}.source-head{align-items:baseline;gap:var(--s3);flex-wrap:wrap;display:flex}.source-head code{font-family:inherit;font-size:var(--fs-sm);color:var(--text-secondary);letter-spacing:.04em;font-weight:500}.source-head .path{color:var(--text-muted);font-size:var(--fs-xs)}.sources p{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh);margin-top:var(--s2);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.score{align-items:center;gap:var(--s2);font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;display:inline-flex}.score-bar{background:var(--border-strong);width:64px;height:1px;overflow:hidden}.score-bar i{background:var(--accent);height:100%;display:block}.score-bar.weak i{background:var(--text-muted)}.turn-meta{gap:var(--s5);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:.06em;font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.turn-meta .sep{display:none}.composer{padding:var(--s4) var(--s6) var(--s5);background:linear-gradient(to top, var(--bg) 62%, color-mix(in srgb, var(--bg) 0%, transparent));position:fixed;bottom:0;left:0;right:0}.composer form{gap:var(--s2);max-width:var(--w-read);margin:0 auto;display:flex}.composer input{border-radius:var(--r);background:var(--panel);height:42px;font-family:inherit;font-size:var(--fs-base);flex:1}.composer .btn{border-radius:var(--r);width:42px;height:42px;padding:0}.chat-layout{gap:var(--s8);max-width:calc(var(--w-read) + 220px);grid-template-columns:auto 1fr;margin:0 auto;display:grid}.chat-layout>.chat{min-width:0}.conv-list{width:210px;padding-top:var(--s4);border-right:1px solid var(--border);padding-right:var(--s5);align-self:start;max-height:calc(100vh - 120px);position:sticky;top:70px;overflow-y:auto}.conv-list .new-conv{text-align:left;width:100%;color:var(--accent);margin-bottom:var(--s3);display:block}.conv-list ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.conv-list li{align-items:center;display:flex}.conv-list li>button:not(.conv-del){align-items:baseline;gap:var(--s2);width:100%;min-width:0;padding:var(--s2) var(--s2);color:var(--text-muted);font-family:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;transition:color var(--t-fast), border-color var(--t-fast);background:0 0;border:none;border-left:2px solid #0000;flex:1;display:flex;overflow:hidden}.conv-list li>button:not(.conv-del):hover{color:var(--text)}.conv-list li>button.on{color:var(--accent);border-left-color:var(--accent)}.conv-list li .conv-del{width:auto;padding:0 var(--s1);color:var(--text-muted);font-size:var(--fs-base);cursor:pointer;opacity:0;transition:opacity var(--t-fast), color var(--t-fast);background:0 0;border:none;flex:none;line-height:1}.conv-list li:hover .conv-del,.conv-list li .conv-del:focus-visible{opacity:.55}.conv-list li .conv-del:hover{opacity:1;color:var(--accent)}@media (width<=900px){.chat-layout{grid-template-columns:1fr}.conv-list{display:none}}.conv-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.conv-when{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none}.ask-shot{margin-bottom:var(--s2);border:1px solid var(--border);align-self:flex-start;line-height:0;position:relative}.ask-shot .ask-image{border:none;margin:0;display:block}.crop-box{pointer-events:none;border:1.5px dashed #fffffff2;position:absolute;box-shadow:0 0 0 1.5px #00000073}.shot-note{padding:1px var(--s2);color:#fff;font-size:var(--fs-xs);background:#0000008c;line-height:1.6;position:absolute;bottom:0;left:0}.viewfinder video.mirrored{transform:scaleX(-1)}.shoot-hint{left:50%;bottom:var(--s3);padding:2px var(--s3);color:#fff;font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;background:#0000008c;margin:0;position:absolute;transform:translate(-50%)}.kb-stats{gap:var(--s6);padding:var(--s4) var(--s5);margin-bottom:var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat b{font-size:var(--fs-xl);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600}.stat span{font-size:var(--fs-xs);color:var(--text-muted)}.stat-divider{background:var(--border);width:1px}.kb-tabs{gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.kb-tab{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border:1px solid var(--border);border-radius:var(--r);background:var(--panel);font-size:var(--fs-sm);cursor:default;display:inline-flex}.kb-tab b{font-weight:550}.doc-name{align-items:center;gap:var(--s2);font-weight:500;display:flex}.doc-name .rev{color:var(--text-muted);font-size:var(--fs-xs);font-weight:400}.doc-status{align-items:center;gap:var(--s2);display:flex}.doc-status .stage{color:var(--text-muted);font-size:var(--fs-sm)}.serving-on{color:var(--accent)}.serving-off{color:var(--text-muted)}.progress{background:var(--border);border-radius:2px;width:54px;height:3px;overflow:hidden}.progress i{background:var(--accent);height:100%;transition:width var(--t);border-radius:2px;display:block}.chunks{margin:var(--s5) 0 0;gap:var(--s3);counter-reset:none;flex-direction:column;padding:0;list-style:none;display:flex}.chunks li{padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r);background:var(--panel);transition:border-color var(--t-fast)}.chunks li:hover{border-color:var(--accent-border)}.chunk-head{align-items:center;gap:var(--s2);margin-bottom:var(--s2);flex-wrap:wrap;display:flex}.chunk-head .ord{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs)}.chunk-head .path{color:var(--text-secondary);font-size:var(--fs-sm)}.chunk-head .len{color:var(--text-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;margin-left:auto}.chunks p{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh);white-space:pre-wrap}.version-chips{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.probe-box{gap:var(--s2);margin:var(--s4) 0 var(--s5);display:flex}.probe-box input{flex:1}.upload-note{align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);margin-bottom:var(--s4);border:1px solid var(--accent-border);border-radius:var(--r);background:var(--accent-soft);font-size:var(--fs-sm);animation:fade-up var(--t) both;display:flex}.upload-note.warn{border-color:color-mix(in srgb, var(--warning) 35%, transparent);background:var(--warning-soft)}.upload-note .sample{margin-top:var(--s1);color:var(--text-secondary);font-size:var(--fs-xs);line-height:var(--lh);max-height:3.4em;display:block;overflow:hidden}.upload-note button{margin-left:auto}.file-btn input{display:none}.module-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.module-card{padding:var(--s4) var(--s5)}.module-card header{align-items:center;gap:var(--s2);margin-bottom:var(--s3);display:flex}.module-card h3{font-size:var(--fs-md);font-family:var(--font-mono)}.module-row{gap:var(--s3);margin-top:var(--s3);font-size:var(--fs-sm);display:flex}.module-row .label{color:var(--text-muted);font-size:var(--fs-xs);flex:0 0 34px;padding-top:3px}.cap-list{gap:var(--s2);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.cap-list li{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.cap-list code{color:var(--text)}.chips{gap:var(--s1);flex-wrap:wrap;flex:1;display:flex}.chip{padding:1px var(--s2);border:1px solid var(--border);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary)}.chip.event{border-style:dashed}.chunks li.disabled{opacity:.5}.chunk-editor{gap:var(--s3);padding:var(--s3) 0;flex-direction:column;display:flex}.chunk-editor textarea{width:100%;padding:var(--s3);border:1px solid var(--accent-border);border-radius:var(--r);background:var(--panel);color:var(--text);font-family:inherit;font-size:var(--fs-sm);line-height:var(--lh);resize:vertical}.chunk-editor textarea:focus{box-shadow:var(--ring);outline:none}.editor-ops{align-items:center;gap:var(--s2);justify-content:flex-end;display:flex}.editor-ops .muted{margin-right:auto}.pager{justify-content:center;align-items:center;gap:var(--s4);margin-top:var(--s5);display:flex}.drawer.wide{width:min(920px,96vw)}.split-settings{gap:var(--s6);grid-template-columns:260px 1fr;align-items:start;display:grid}.settings-col{gap:var(--s5);flex-direction:column;display:flex;position:sticky;top:0}.settings-col input[type=range]{accent-color:var(--accent);width:100%}.preview-col{border-left:1px solid var(--border);padding-left:var(--s6);min-height:300px}.preview-head{align-items:center;gap:var(--s3);margin-bottom:var(--s3);display:flex}.queue-list{margin:var(--s2) 0 0;gap:var(--s1);font-size:var(--fs-sm);flex-direction:column;padding:0;list-style:none;display:flex}.queue-list li{align-items:baseline;gap:var(--s2);display:flex}.ok-mark{color:var(--success)}.ops-section{font-size:var(--fs-md);margin:var(--s6) 0 var(--s3);letter-spacing:.06em}.ops-section-row{align-items:baseline;gap:var(--s4);margin:var(--s6) 0 var(--s3);display:flex}.ops-section-row .ops-section{margin:0}.stat-bad{color:var(--danger)}.delta-up,.delta-down{margin-left:var(--s2);font-size:var(--fs-sm);font-weight:500}.delta-up{color:var(--success)}.delta-down{color:var(--danger)}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--panel-hover)}.mini-hits{margin:var(--s2) 0 0;padding:0 0 0 var(--s3);border-left:1px solid var(--border-strong);gap:var(--s2);font-size:var(--fs-xs);flex-direction:column;list-style:none;display:flex}.mini-hits p{line-height:var(--lh);margin-top:2px}.quota-rows{gap:var(--s3);padding:var(--s4) var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);flex-direction:column;display:flex}.quota-row{align-items:center;gap:var(--s4);font-size:var(--fs-sm);grid-template-columns:90px 1fr auto;display:grid}.quota-track{background:var(--bg-sunken);border:1px solid var(--border);height:3px;overflow:hidden}.quota-track i{background:var(--accent-2);height:100%;transition:width var(--t);display:block}.quota-track i.hot{background:var(--accent)}.prompt-editor{width:100%;padding:var(--s4);border:1px solid var(--border-strong);border-radius:var(--r);background:var(--panel);color:var(--text);font-family:inherit;font-size:var(--fs-base);line-height:var(--lh-loose);resize:vertical}.prompt-editor:focus{border-color:var(--accent-border);box-shadow:var(--ring);outline:none}.skill-grid{gap:var(--s5) var(--s6);padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.skill-grid input[type=range]{accent-color:var(--accent);width:100%}.save-bar{gap:var(--s2);margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--border);align-items:center;display:flex}.save-bar input{flex:1}.plan-select{padding:2px var(--s2);font-size:var(--fs-xs);min-width:92px}.kb-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.kb-card{gap:var(--s2);padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:inherit;transition:border-color var(--t-fast), transform var(--t-fast);flex-direction:column;text-decoration:none;display:flex}.kb-card:hover{border-color:var(--accent-border);transform:translateY(-1px)}.kb-card h3{font-size:var(--fs-md);font-weight:600}.kb-card p{font-size:var(--fs-sm);min-height:2.6em}.kb-card-stats{gap:var(--s4);font-size:var(--fs-sm);padding-top:var(--s3);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;display:flex}.kb-card.new{cursor:pointer;color:var(--text-muted);font-family:inherit;font-size:var(--fs-sm);border-style:dashed;justify-content:center;align-items:center}.kb-card.new .plus{font-size:var(--fs-2xl);color:var(--accent)}.crumbs{align-items:baseline;gap:var(--s2);font-size:var(--fs-lg);flex-wrap:wrap;font-weight:600;display:flex}.crumbs a{color:var(--text-muted);font-weight:400;font-size:var(--fs-base);text-decoration:none}.crumbs a:hover{color:var(--accent)}.crumbs span{color:var(--border-strong);font-weight:400}.subtabs{gap:var(--s5);margin-bottom:var(--s5);border-bottom:1px solid var(--border);display:flex}.subtabs button{padding:var(--s2) 0 var(--s3);color:var(--text-muted);font-family:inherit;font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.subtabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.wizard-steps{gap:var(--s6);margin:0 0 var(--s6);padding:0 0 var(--s4);border-bottom:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);list-style:none;display:flex}.wizard-steps li{align-items:center;gap:var(--s2);display:flex}.wizard-steps li.on{color:var(--accent)}.wizard-steps li.done{color:var(--text-secondary)}.wizard-steps .n{width:20px;height:20px;font-size:var(--fs-xs);border:1px solid;border-radius:50%;place-items:center;display:grid}.wizard-steps li.on .n{background:var(--accent);color:var(--panel);border-color:var(--accent)}.wizard-body{gap:var(--s5);flex-direction:column;display:flex}.dropzone{align-items:center;gap:var(--s2);padding:var(--s10) var(--s5);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--panel);text-align:center;cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);flex-direction:column;display:flex}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone input{display:none}.dropzone span{font-size:var(--fs-sm);line-height:var(--lh)}.file-list{border:1px solid var(--border);border-radius:var(--r);margin:0;padding:0;list-style:none}.file-list li{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);font-size:var(--fs-sm);display:flex}.file-list li:last-child{border-bottom:none}.file-list li span:first-child{flex:1}.queue-list.big{font-size:var(--fs-base);gap:var(--s3)}.warn-note{padding:var(--s3) var(--s4);background:var(--warning-soft);border-left:3px solid var(--warning);font-size:var(--fs-sm);line-height:var(--lh)}.doc-split{gap:var(--s6);grid-template-columns:1fr 1fr;align-items:start;display:grid}.pane-head{justify-content:space-between;align-items:baseline;gap:var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--border-strong);margin-bottom:var(--s4);display:flex}.pane-head h3{font-size:var(--fs-md);font-weight:600}.doc-source,.doc-chunks{max-height:calc(100vh - 220px);overflow-y:auto}.source-body{flex-direction:column;display:flex}.src-block{padding:var(--s3) var(--s4) var(--s3) var(--s6);border-top:1px dashed var(--border-strong);cursor:pointer;transition:background var(--t-fast);position:relative}.src-block:hover{background:var(--panel-hover)}.src-block.on{background:var(--accent-soft)}.src-block .src-ord{left:0;top:var(--s3);font-size:var(--fs-xs);color:var(--accent);font-variant-numeric:tabular-nums;position:absolute}.src-block .src-ord em{color:var(--text-muted);font-size:10px;font-style:normal;display:block}.src-block.off{opacity:.4}.src-block p{white-space:pre-wrap;line-height:var(--lh);font-size:var(--fs-sm)}.src-gap{padding:var(--s2) var(--s4) var(--s2) var(--s6);color:var(--text-muted);font-size:var(--fs-xs);opacity:.55}.orphan-note{padding:var(--s3) var(--s4);background:var(--warning-soft);border-left:3px solid var(--warning);font-size:var(--fs-sm);margin-bottom:var(--s3)}.chunks li.focused{border-color:var(--accent);box-shadow:var(--ring)}.summary{text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:var(--fs-sm);overflow:hidden}.settings-stack{gap:var(--s10);flex-direction:column;display:flex}.settings-stack section{gap:var(--s3);flex-direction:column;display:flex}@media (width<=900px){.doc-split{grid-template-columns:1fr}.doc-source,.doc-chunks{max-height:none}}.src-overlap{color:var(--text-muted);opacity:.6;border-left:2px solid var(--border-strong);padding-left:var(--s3);margin-bottom:var(--s2);font-size:var(--fs-xs)!important}.processing-note{align-items:center;gap:var(--s2);color:var(--accent);font-size:var(--fs-sm);display:flex}.commit-bar{align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);margin-bottom:var(--s5);border:1px solid var(--accent-border);border-left:3px solid var(--accent);background:var(--accent-soft);animation:fade-up var(--t) both;display:flex}.commit-bar b{margin-bottom:2px;display:block}.commit-bar p{font-size:var(--fs-sm)}.commit-bar.embedding{border-left-color:var(--accent-2);border-color:color-mix(in srgb, var(--accent-2) 30%, transparent);background:var(--accent-2-soft)}.progress.wide{width:100%;max-width:420px;height:4px;margin-top:var(--s2);display:block}.chapter-nav{gap:var(--s1) var(--s3);padding:var(--s3) var(--s4);margin-bottom:var(--s4);background:var(--paper-sunken,var(--bg-sunken));border-left:2px solid var(--accent-border);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.chapter-nav .link{color:var(--text-secondary)}.chapter-nav .link:hover{color:var(--accent)}.outline-tree{margin-bottom:var(--s4);padding:var(--s3) var(--s4);background:var(--paper-sunken,var(--bg-sunken));border-left:2px solid var(--accent-border);font-size:var(--fs-sm)}.outline-tree>summary{align-items:center;gap:var(--s2);cursor:pointer;color:var(--text-secondary);display:flex}.outline-list{margin:var(--s3) 0 0;max-height:20rem;padding:0;list-style:none;overflow-y:auto}.outline-list li{align-items:baseline;gap:var(--s2);padding:2px 0;display:flex}.outline-list .lv1{color:var(--text);font-weight:600}.outline-list .lv2{color:var(--text)}.outline-list .lv3,.outline-list .lv4{color:var(--text-secondary)}.outline-list .link.danger{opacity:0;color:var(--danger)}.outline-list li:hover .link.danger,.outline-list .link.danger:focus-visible{opacity:1}.outline-ops{align-items:center;gap:var(--s3);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--border);display:flex}.outline-ops>span:first-child{flex:1}.mode-pick{margin:0 0 var(--s4);border:0;padding:0}.mode-pick>legend{margin-bottom:var(--s2);font-size:var(--fs-sm);padding:0}.seg{border:1px solid var(--border);display:flex;overflow:hidden}.seg>button{padding:var(--s2) var(--s3);border:0;border-right:1px solid var(--border);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;flex:1}.seg>button:last-child{border-right:0}.seg>button:hover{background:var(--accent-soft)}.seg>button.on{background:var(--accent);color:var(--bg)}.pending-list .outline-note{margin:var(--s2) 0 0;font-size:var(--fs-sm)}.pending-box{margin-bottom:var(--s6);border:1px solid var(--accent-border);border-left:3px solid var(--accent);background:var(--accent-soft)}.pending-box>header{align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);display:flex}.pending-box>header b{margin-bottom:2px;display:block}.pending-box>header p{font-size:var(--fs-sm);max-width:62ch}.pending-box>.warn-note,.pending-box>.err{margin:0 var(--s5) var(--s3)}.pending-list{border-top:1px solid var(--accent-border);margin:0;padding:0;list-style:none}.pending-list>li{border-bottom:1px solid var(--border);background:var(--panel)}.pending-list>li:last-child{border-bottom:none}.pending-head{align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);cursor:pointer;font-size:var(--fs-sm);display:flex}.pending-head:hover{background:var(--panel-hover)}.pending-head .chev{color:var(--accent);flex:none;width:12px}.pending-head .name{flex:1;font-weight:500}.pending-head .metrics{white-space:nowrap}.pending-head .strategy{font-size:var(--fs-xs);white-space:nowrap}.badge.warn{border-color:color-mix(in srgb, var(--warning) 45%, transparent);color:var(--warning)}.badge.ok{border-color:var(--border);color:var(--text-muted)}.pending-body{padding:0 var(--s5) var(--s4) calc(var(--s5) + 20px);border-top:1px dashed var(--border)}.chunks.compact{margin-top:var(--s3);gap:var(--s2)}.chunks.compact li{padding:var(--s2) var(--s3)}.chunks.compact p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chunks.compact li.tiny{border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.chunks.compact li.tiny .len{color:var(--warning)}.pending-ops{align-items:center;gap:var(--s4);margin-top:var(--s3);display:flex}.pending-ops .btn{margin-left:auto}.model-grid{gap:var(--s3);margin-bottom:var(--s6);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}.model-card{gap:var(--s2);padding:var(--s4);background:var(--panel);border:1px solid var(--border);border-left:2px solid var(--accent-border);flex-direction:column;display:flex}.model-card.locked{border-left-color:var(--border);background:var(--bg-sunken)}.model-head{align-items:center;gap:var(--s2);display:flex}.model-card .purpose{font-size:var(--fs-sm);margin:0}.model-card .small{font-size:var(--fs-xs);margin:0}.model-name{align-items:baseline;gap:var(--s2);display:flex}.model-name code{font-size:var(--fs-sm);color:var(--accent);word-break:break-all;flex:1}.model-edit{gap:var(--s2);flex-direction:column;display:flex}.model-edit input{width:100%}.model-ops{justify-content:flex-end;gap:var(--s3);align-items:center;display:flex}.model-usage{gap:var(--s4);padding-top:var(--s2);border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-secondary);margin-top:auto;display:flex}.ops-section .muted{margin-left:var(--s3);font-size:var(--fs-sm);font-weight:400}.composer .pick-image{padding-inline:var(--s3);white-space:nowrap}.ask-image{max-width:180px;max-height:180px;margin-bottom:var(--s2);border:1px solid var(--border);display:block}.vision-box{margin:var(--s2) 0 var(--s3);padding:var(--s2) var(--s3);background:var(--accent-2-soft);border-left:2px solid var(--accent-2);font-size:var(--fs-sm)}.vision-box>summary{cursor:pointer;color:var(--text-secondary)}.vision-box pre{margin:var(--s2) 0;white-space:pre-wrap;font:inherit;color:var(--text)}.vision-box p{font-size:var(--fs-xs);margin:0}.preset-row{gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.preset-row>button{padding:var(--s2) var(--s3);border:1px solid var(--border);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0}.preset-row>button:hover{background:var(--accent-soft)}.preset-row>button.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.preset-detail{margin:0 0 var(--s3);font-size:var(--fs-sm);white-space:pre-line}.node-list{margin:0 0 var(--s3);padding:var(--s3) var(--s4);background:var(--bg-sunken);border-left:2px solid var(--accent-border);font-size:var(--fs-sm);list-style:none}.node-list li{align-items:center;gap:var(--s2);padding:3px 0;display:flex}.node-list .ord{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:0 0 1.4rem}.node-list code{color:var(--accent)}.node-list .tail{margin-left:auto}.raw-edit{margin-top:var(--s2)}.raw-edit textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-sm)}.raw-edit p{margin:var(--s2) 0;font-size:var(--fs-xs)}.raw-ops{justify-content:flex-end;gap:var(--s3);align-items:center;display:flex}.drawer.capture{max-width:26rem}.viewfinder{aspect-ratio:3/4;background:#000;position:relative;overflow:hidden}.viewfinder video{object-fit:cover;width:100%;height:100%}.overlay-msg{padding:var(--s3);color:#fff;text-align:center;background:#0009;margin:0;position:absolute;inset:auto 0 0}.capture-tips{margin:var(--s3) 0;padding-left:var(--s5);font-size:var(--fs-sm);color:var(--text-secondary)}.capture-tips li{padding:2px 0}.capture-ops{justify-content:center;gap:var(--s3);padding-bottom:var(--s3);display:flex}.capture-ops .btn{min-width:7rem}.vision-failed{margin:var(--s2) 0;padding:var(--s2) var(--s3);border-left:3px solid var(--warn,#b0763a);background:var(--bg-sunken);font-size:var(--fs-sm)}.vision-dims{margin:var(--s2) 0 0;font-size:var(--fs-sm);padding:0;list-style:none}.vision-dims li{gap:var(--s2);grid-template-columns:1fr auto 3.5rem;padding:2px 0;display:grid}.vision-dims .num{text-align:right;font-variant-numeric:tabular-nums}.vision-dims li.unsure{color:var(--text-muted)}.vision-head{align-items:baseline;gap:var(--s2);margin:var(--s2) 0 0;display:flex}.vision-head .label{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.06em}.vision-head b{font-size:var(--fs-md);font-weight:600}.vision-dims-box>summary{font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer}.load-earlier{margin-bottom:var(--s3);font-size:var(--fs-sm);align-self:center}
