.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);height:100dvh;flex-shrink:0;display:flex;flex-direction:column;background:var(--chrome);border-right:1px solid var(--line);overflow:hidden}@media (max-width: 760px){.sidebar{border-right:none}}.sb-head{display:flex;align-items:center;gap:10px;padding:16px 16px 12px}.sb-logo{width:28px;height:28px;border-radius:8px;box-shadow:var(--shadow-sm);flex-shrink:0}.sb-wordmark{font-size:17px;font-weight:650;letter-spacing:-.01em;color:var(--ink)}.sb-import-wrap{padding:0 16px 12px}.sb-import{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;padding:0 14px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:14px;font-weight:600;box-shadow:var(--shadow-sm);transition:filter .12s ease,opacity .12s ease}.sb-import:hover:not(:disabled){filter:brightness(1.06)}.sb-import:disabled{opacity:.7;cursor:default}.sb-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sb-spin .7s linear infinite}@keyframes sb-spin{to{transform:rotate(360deg)}}.sb-list{flex:1;min-height:0;padding:4px 10px 10px;display:flex;flex-direction:column;gap:4px}.sb-empty{margin:18px 8px;font-size:13px;line-height:1.5;color:var(--ink-faint);text-align:center}.sb-doc{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;text-align:left;color:var(--ink);transition:background .12s ease,border-color .12s ease}.sb-doc:hover{background:var(--chrome-2)}.sb-doc.active{background:var(--accent-soft);border-color:var(--accent-soft)}.sb-thumb{width:40px;height:52px;flex-shrink:0;border-radius:6px;object-fit:cover;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.sb-thumb-fallback{display:flex;align-items:center;justify-content:center;color:var(--ink-faint)}.sb-doc-meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.sb-doc-name{font-size:13px;font-weight:550;line-height:1.25;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-doc.active .sb-doc-name{color:var(--accent)}.sb-doc-sub{font-size:11.5px;color:var(--ink-soft)}.sb-del{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:8px;background:var(--chrome);color:var(--ink-faint);box-shadow:var(--shadow-sm);opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.sb-doc:hover .sb-del,.sb-del:focus-visible{opacity:1}.sb-del:hover{color:var(--danger);background:var(--danger-soft)}.sb-foot{border-top:1px solid var(--line);padding:12px 16px 14px;display:flex;flex-direction:column;gap:10px}.sb-meter{display:flex;flex-direction:column;gap:6px}.sb-meter-bar{position:relative;width:100%;height:7px;border-radius:999px;background:var(--chrome-2);overflow:hidden}.sb-meter-fill{height:100%;border-radius:999px;transition:width .3s ease,background .2s ease}.sb-meter-line{font-size:12.5px;font-weight:550;color:var(--ink)}.sb-meter-cap{font-size:11.5px;line-height:1.4;color:var(--ink-soft)}.sb-meter-model{font-size:11px;color:var(--ink-faint)}.sb-askai{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--chrome);color:var(--ink);font-size:14px;font-weight:600;box-shadow:var(--shadow-sm);transition:background .12s ease,border-color .12s ease}.sb-askai:hover{background:var(--chrome-2);border-color:var(--accent-soft)}.tb{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:6px;max-width:calc(100% - 28px);padding:6px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto;overflow-y:visible;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tb::-webkit-scrollbar{display:none}.tb-group{display:flex;align-items:center;gap:4px;flex:0 0 auto}.tb-divider{flex:0 0 auto;width:1px;align-self:stretch;margin:4px;background:var(--line)}.tb .iconbtn.tb-sq{min-width:36px;padding:0 8px}.tb-swatch{flex:0 0 auto;width:24px;height:24px;padding:0;border:none;border-radius:50%;background:transparent;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s ease}.tb-swatch:hover{transform:scale(1.12)}.tb-swatch-dot{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}.tb-swatch.active{box-shadow:0 0 0 2px var(--chrome),0 0 0 4px var(--accent)}.tb-width{flex:0 0 auto;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.tb-width:hover{background:var(--chrome-2);color:var(--ink)}.tb-width.active{background:var(--accent-soft);color:var(--accent)}.tb-width-dot{border-radius:50%;background:currentColor}.tb-zoom{flex:0 0 auto;min-width:44px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-soft);user-select:none}@media (max-width: 760px){.tb{top:8px;max-width:calc(100% - 16px);gap:4px}}.ink-layer{position:absolute;top:0;left:0;touch-action:pan-y;z-index:2;image-rendering:auto}.pdf-stage{flex:1;min-height:0;background:var(--chrome-2);display:flex;flex-direction:column;align-items:center;gap:22px;padding:28px 24px 64px}.pdf-page{position:relative;background:var(--paper);border-radius:4px;box-shadow:var(--shadow);overflow:hidden;flex:0 0 auto}.pdf-page__canvas{display:block;position:relative;z-index:0}.pdf-page__text{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:1;line-height:1;pointer-events:none;--scale-factor: 1;--total-scale-factor: 1;forced-color-adjust:none}.pdf-page__text span,.pdf-page__text br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}.pdf-page__text mark.pdf-hl{color:transparent;background:color-mix(in srgb,var(--accent) 26%,transparent);border-radius:2px;padding:0;margin:0}.pdf-page__ink{position:absolute;inset:0;z-index:2}.pdf-page__num{position:absolute;right:8px;bottom:8px;z-index:3;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--ink-soft);background:color-mix(in srgb,var(--chrome) 80%,transparent);backdrop-filter:blur(4px);pointer-events:none}.pdf-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-faint);text-align:center;padding:40px}.pdf-empty__icon{font-size:40px;line-height:1;opacity:.7}.pdf-empty__title{font-size:16px;font-weight:600;color:var(--ink-soft)}.pdf-empty__sub{font-size:13px;max-width:280px}.pdf-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:13px}.pdf-search{position:absolute;top:76px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pdf-search__input{border:none;outline:none;background:transparent;color:var(--ink);font-family:inherit;font-size:14px;width:200px;padding:4px 6px}.pdf-search__input::placeholder{color:var(--ink-faint)}.pdf-search__count{font-size:12px;color:var(--ink-soft);min-width:64px;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.pdf-search__count.is-empty{color:var(--ink-faint)}.pdf-search__sep{width:1px;align-self:stretch;background:var(--line);margin:2px}.aipanel{width:var(--ai-w);height:100dvh;flex:0 0 var(--ai-w);display:flex;flex-direction:column;background:var(--chrome);border-left:1px solid var(--line);box-shadow:var(--shadow);animation:aipanel-in .18s ease;z-index:5}@keyframes aipanel-in{0%{transform:translate(12px);opacity:0}to{transform:translate(0);opacity:1}}.aipanel-header{display:flex;align-items:center;gap:8px;height:var(--toolbar-h);padding:0 10px 0 16px;border-bottom:1px solid var(--line);flex:0 0 auto}.aipanel-title{font-size:15px;font-weight:600;color:var(--ink);margin:0;flex:1;letter-spacing:.1px}.aipanel-settings{border-bottom:1px solid var(--line);background:var(--chrome-2);padding:14px 16px;display:flex;flex-direction:column;gap:12px;flex:0 0 auto}.aipanel-field{display:flex;flex-direction:column;gap:5px}.aipanel-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint)}.aipanel-row{display:flex;gap:8px}.aipanel-row>*{flex:1;min-width:0}.aipanel-input,.aipanel-select{height:38px;width:100%;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--chrome);color:var(--ink);font-family:inherit;font-size:13px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.aipanel-input:focus,.aipanel-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.aipanel-toggles{display:flex;gap:8px;flex-wrap:wrap}.aipanel-toggle{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--chrome);color:var(--ink-soft);font-size:13px;transition:background .12s ease,color .12s ease,border-color .12s ease}.aipanel-toggle:hover{color:var(--ink)}.aipanel-toggle.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}.aipanel-clear{align-self:flex-start;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--chrome);color:var(--danger);font-size:13px;transition:background .12s ease}.aipanel-clear:hover{background:var(--danger-soft)}.aipanel-budget{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:12px;color:var(--ink-soft);border-bottom:1px solid var(--line);flex:0 0 auto}.aipanel-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.aipanel-dot.green{background:var(--ok)}.aipanel-dot.yellow{background:var(--warn)}.aipanel-dot.red{background:var(--danger)}.aipanel-transcript{flex:1 1 auto;min-height:0;padding:16px;display:flex;flex-direction:column;gap:12px}.aipanel-empty{margin:auto;text-align:center;color:var(--ink-faint);font-size:13px;line-height:1.6;max-width:240px}.aipanel-bubble{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.aipanel-bubble.user{align-self:flex-end;background:var(--accent-soft);color:var(--ink);border-bottom-right-radius:5px}.aipanel-bubble.assistant{align-self:flex-start;background:var(--chrome-2);color:var(--ink);border-bottom-left-radius:5px}.aipanel-bubble code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em;background:#7f7f7f29;padding:1px 5px;border-radius:5px}.aipanel-bubble strong{font-weight:650}.aipanel-cursor{display:inline-block;width:7px;height:1em;margin-left:1px;vertical-align:text-bottom;background:var(--ink-faint);border-radius:1px;animation:aipanel-blink 1s steps(2,start) infinite}@keyframes aipanel-blink{to{opacity:0}}.aipanel-composer{flex:0 0 auto;border-top:1px solid var(--line);padding:12px;background:var(--chrome)}.aipanel-keyhint{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;margin-bottom:10px;font-size:12.5px;color:var(--ink-soft);background:var(--accent-soft);border-radius:var(--radius-sm)}.aipanel-inputwrap{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--chrome);padding:8px;transition:border-color .12s ease,box-shadow .12s ease}.aipanel-inputwrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.aipanel-textarea{flex:1;min-width:0;border:none;outline:none;resize:none;background:transparent;color:var(--ink);font-family:inherit;font-size:14px;line-height:1.45;max-height:160px;padding:4px}.aipanel-textarea::placeholder{color:var(--ink-faint)}.aipanel-send{flex:0 0 auto;height:38px;min-width:38px;padding:0 14px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:14px;font-weight:600;transition:opacity .12s ease,filter .12s ease}.aipanel-send:hover:not(:disabled){filter:brightness(1.05)}.aipanel-send:disabled{opacity:.5;cursor:default}.aipanel-send.stop{background:var(--danger)}.aipanel-error{margin-top:10px;padding:10px 12px;font-size:12.5px;line-height:1.45;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm)}@media (max-width: 760px){.aipanel{position:fixed;inset:0;width:100vw;flex-basis:100vw}}:root{--paper: #fbfaf7;--paper-line: #ece9e2;--chrome: #ffffff;--chrome-2: #f4f3ef;--ink: #1f2330;--ink-soft: #5b6072;--ink-faint: #9aa0b0;--line: #e6e3dc;--accent: #2f6df6;--accent-soft: #e7eefe;--danger: #e5484d;--danger-soft: #fde8e8;--ok: #2fa66a;--warn: #e9a23b;--shadow: 0 6px 24px rgba(34, 40, 60, .12), 0 1px 3px rgba(34, 40, 60, .08);--shadow-sm: 0 2px 8px rgba(34, 40, 60, .1);--radius: 14px;--radius-sm: 10px;--sidebar-w: 256px;--ai-w: 384px;--toolbar-h: 56px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, system-ui, sans-serif}[data-theme=dark]{--paper: #1b1c20;--paper-line: #26282e;--chrome: #232429;--chrome-2: #2b2d33;--ink: #e9eaee;--ink-soft: #a9adbb;--ink-faint: #6d7280;--line: #34363d;--accent: #5b8cff;--accent-soft: #25304a;--danger: #ff6b6f;--danger-soft: #3a2526;--shadow: 0 6px 24px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--chrome-2);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}.app{display:flex;height:100dvh;overflow:hidden}.stage{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--chrome-2)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;min-width:38px;padding:0 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);font-size:14px;transition:background .12s ease,color .12s ease}.iconbtn:hover{background:var(--chrome-2);color:var(--ink)}.iconbtn.active{background:var(--accent-soft);color:var(--accent)}.iconbtn.danger{color:var(--danger)}.iconbtn.danger:hover{background:var(--danger-soft)}.scroll{overflow:auto;scrollbar-width:thin}@media (max-width: 760px){:root{--sidebar-w: 0px;--ai-w: 100vw}}
