:root{--bg: #f6f4f0;--surface: #ffffff;--text: #24221f;--muted: #6f6a62;--border: #ddd7cd;--accent: #3f6b5c;--accent-text: #ffffff;--error: #a23b2a;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #171614;--surface: #211f1c;--text: #ece8e1;--muted: #a39d93;--border: #3a3631;--accent: #7fb3a0;--accent-text: #10201a;--error: #f08a76}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.center{min-height:100dvh;display:grid;place-items:center;padding:16px}.card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px;padding:32px 28px;background:var(--surface);border:1px solid var(--border);border-radius:14px}h1{margin:0;font-size:1.6rem;letter-spacing:.01em}.muted{margin:0 0 8px;color:var(--muted)}label{font-size:.9rem;color:var(--muted)}input{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;padding:10px 14px;border:0;border-radius:8px;background:var(--accent);color:var(--accent-text);cursor:pointer}button:disabled{opacity:.55;cursor:default}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.error{margin:0;color:var(--error);font-size:.9rem}:root{--sidebar-w: 270px;--user-bg: #e9e4da;--hover: #ece7de}@media (prefers-color-scheme: dark){:root{--user-bg: #2c2925;--hover: #29261f}}html,body,#root{height:100%}body{line-height:1.55}.layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100dvh}.sidebar{display:flex;flex-direction:column;gap:8px;min-height:0;padding:14px 10px;border-right:1px solid var(--border);background:var(--surface)}.sidebar-head{display:flex;flex-direction:column;gap:10px;padding:0 4px 6px}.brand{font-weight:650;font-size:1.15rem;padding-left:2px}.conv-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.conv{display:flex;align-items:center;border-radius:8px}.conv:hover,.conv.active{background:var(--hover)}.conv.active .conv-title{font-weight:600}.conv-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:7px 8px;background:transparent;color:var(--text);text-align:left;border-radius:8px}.conv-title{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.93rem}.conv-date{font-size:.75rem;color:var(--muted)}.conv-actions{display:flex;opacity:0;transition:opacity .1s}.conv:hover .conv-actions,.conv.active .conv-actions,.conv:focus-within .conv-actions{opacity:1}button.icon{background:transparent;color:var(--muted);padding:4px 7px;font-size:.9rem}button.icon:hover{color:var(--text)}button.small{padding:7px 10px;font-size:.9rem}button.link{background:none;color:var(--accent);padding:0;text-decoration:underline;font-size:inherit}.logout{font-size:.88rem;padding:7px 10px}.pad{padding:8px;font-size:.9rem}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--border)}.topbar .menu{display:none}.topbar-title{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-switch{display:inline-flex;flex-shrink:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.mode-switch button{background:transparent;color:var(--muted);border:0;border-radius:0;padding:4px 10px;font-size:.85rem}.mode-switch button+button{border-left:1px solid var(--border)}.mode-switch button.on{background:var(--user-bg);color:var(--text);font-weight:600}.phase{margin-left:10px;font-size:.9rem}.thread{flex:1;overflow-y:auto}.thread-inner{max-width:760px;margin:0 auto;padding:28px 20px 12px;display:flex;flex-direction:column;gap:22px}.empty{display:grid;place-items:center;min-height:40vh;color:var(--muted);font-size:1.1rem}.msg.user{align-self:flex-end;max-width:85%}.bubble{background:var(--user-bg);padding:10px 14px;border-radius:14px 14px 4px;white-space:pre-wrap;overflow-wrap:anywhere}.msg.assistant{align-self:stretch}.md{overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .8em}.md ul,.md ol{margin:0 0 .8em;padding-left:1.4em}.md li{margin:.2em 0}.md blockquote{margin:0 0 .8em;padding-left:12px;border-left:3px solid var(--border);color:var(--muted)}.md code{font-size:.9em;background:var(--user-bg);padding:1px 5px;border-radius:4px}.md pre{background:var(--user-bg);padding:12px;border-radius:8px;overflow-x:auto}.md pre code{background:none;padding:0}.md table{border-collapse:collapse;margin:0 0 .8em;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:5px 9px}.md a{color:var(--accent)}.msg-foot{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:.78rem;color:var(--muted);min-height:1em}.tag{border:1px solid var(--border);border-radius:999px;padding:0 8px}.alert{border:1px solid var(--error);color:var(--error);border-radius:10px;padding:10px 14px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.typing{display:inline-flex;gap:5px;padding:6px 0}.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion: reduce){.typing i{animation:none;opacity:.6}}.composer{padding:10px 20px 18px}.composer-inner{max-width:760px;margin:0 auto;display:flex;gap:8px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:8px}.composer textarea{flex:1;resize:none;border:0;background:transparent;color:var(--text);font:inherit;padding:6px 8px;max-height:240px;outline:none}.composer-inner:focus-within{border-color:var(--accent)}.backdrop{display:none}@media (max-width: 760px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(85vw,var(--sidebar-w));z-index:20;transform:translate(-100%);transition:transform .2s}.sidebar-open .sidebar{transform:none}.sidebar-open .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:10}.topbar{padding:8px 12px}.topbar .menu{display:inline-flex}.mode-switch button{padding:4px 7px}.conv-actions{opacity:1}.thread-inner{padding:18px 16px 8px}.composer{padding:8px 12px 12px}.msg.user{max-width:92%}}.sidebar-foot{display:flex;flex-direction:column;gap:6px}.budget-banner{padding:6px 16px;font-size:.88rem;background:var(--user-bg);border-bottom:1px solid var(--border)}.settings{max-width:900px;margin:0 auto;padding:20px 20px 48px;min-height:100dvh}.settings-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.settings-head h1{font-size:1.4rem}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}.tabs button{background:transparent;color:var(--muted);border-radius:0;border-bottom:2px solid transparent;padding:8px 12px;white-space:nowrap}.tabs button.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.settings-body{display:flex;flex-direction:column;gap:14px}.stack{display:flex;flex-direction:column;gap:16px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}.panel h2{margin:0;font-size:1.05rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.small-text{font-size:.85rem}p.small-text{margin:0}.field{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--border);min-width:0}.panel>h2+.field,.panel>.muted+.field,.panel>.error+.field{border-top:0;padding-top:0}.field-label{font-weight:600;color:var(--text);font-size:.95rem}.field.readonly{gap:2px}.picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.picker input{flex:1 1 180px;min-width:0}.picker select{flex:2 1 280px;min-width:0}select{font:inherit;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);max-width:100%}select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.model-info{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.model-info code,.data code{font-size:.85em;overflow-wrap:anywhere}input.num{max-width:160px}.check{display:flex;gap:10px;align-items:flex-start;color:var(--text);font-size:.95rem}.check input{margin-top:4px}.check small{display:block;font-size:.82rem}.test-report{list-style:none;margin:4px 0 0;padding:8px 12px;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:2px}.test-report .ok span{color:var(--accent)}.test-report .ko{color:var(--error)}.savebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.savebar input[type=text]{flex:1 1 220px;min-width:0}.prompt-edit{width:100%;min-height:55vh;resize:vertical;font:.88rem/1.5 ui-monospace,Cascadia Mono,Consolas,monospace;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.prompt-preview{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.82rem;max-height:50vh;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}.tile-label{font-size:.85rem;color:var(--muted)}.tile-value{font-size:1.5rem;font-weight:650;font-variant-numeric:tabular-nums}.tile-sub{font-size:.78rem;color:var(--muted)}.data{width:100%;border-collapse:collapse;font-size:.9rem}.panel{overflow-x:auto}.data th{text-align:left;font-weight:600;color:var(--muted);font-size:.8rem}.data th,.data td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}.data .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data .actions{white-space:nowrap;text-align:right}.data .actions button+button{margin-left:10px}.data a{color:var(--accent)}a.button-link{color:var(--accent);font-size:.9rem}@media (max-width: 760px){.settings{padding:14px 16px 40px}.tile-value{font-size:1.25rem}}.end-btn{flex-shrink:0;padding:4px 10px;font-size:.85rem}.session-status{max-width:760px;width:calc(100% - 40px);margin:0 auto;padding:8px 12px;font-size:.88rem;color:var(--muted);border:1px solid var(--border);border-radius:10px;background:var(--surface)}.session-status.ko{color:var(--error);border-color:var(--error)}.mode-switch.wrap{flex-wrap:wrap;flex-shrink:1}.intro{margin:-4px 0 12px}.mem-item{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.panel-head+.mem-item,.panel-head+.muted+.mem-item{border-top:0;padding-top:0}.mem-row{display:flex;gap:6px;align-items:flex-start}.auto-text{width:100%;resize:vertical;font:inherit;font-size:.95rem;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);min-width:0}.hyp{display:grid;grid-template-columns:1fr;gap:8px;padding-left:14px;border-left:3px solid var(--border)}.hyp select{max-width:180px}.panel label{display:flex;flex-direction:column;gap:4px}.panel label.check{flex-direction:row}.savebar.sticky{position:sticky;bottom:0;padding:12px 0;background:var(--bg);border-top:1px solid var(--border)}.changes{margin:0;padding-left:1.2em;font-size:.92rem;display:flex;flex-direction:column;gap:4px}.chg{font-size:.75rem;font-weight:600;border:1px solid var(--border);border-radius:999px;padding:0 7px;margin-right:2px}.chg.add{color:var(--accent);border-color:var(--accent)}.chg.del{color:var(--error);border-color:var(--error)}.reason{color:var(--muted);font-size:.85rem}.first-cap:first-letter{text-transform:uppercase}.episode-resume{margin:0}.episode-fields{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 18px}.episode-fields dt{font-size:.8rem;font-weight:600;color:var(--muted)}.episode-fields dd{margin:0}.episode-fields ul{margin:2px 0 0;padding-left:1.1em;font-size:.92rem}@media (max-width: 760px){.session-status{width:calc(100% - 24px)}.end-btn{padding:4px 7px}}.memory-debug{margin-top:6px;border:1px dashed var(--border);border-radius:8px;padding:6px 10px;color:var(--muted)}.memory-debug summary{cursor:pointer}.memory-debug dl{margin:8px 0 0;display:flex;flex-direction:column;gap:4px;color:var(--text)}.memory-debug dt{font-weight:600;color:var(--muted);margin-top:6px}.memory-debug dd{margin:0}.memory-debug ul,.memory-debug ol{margin:2px 0;padding-left:1.2em}.memory-debug p{margin:2px 0}.debug-table-wrap{overflow-x:auto;max-width:100%}.debug-table{border-collapse:collapse;font-size:.82rem;margin:4px 0;font-variant-numeric:tabular-nums}.debug-table th,.debug-table td{padding:3px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.debug-table th:first-child,.debug-table td:first-child{text-align:left;white-space:normal;min-width:160px}.debug-table th{color:var(--muted);font-weight:600}.debug-table tr.muted td{color:var(--muted)}.search-form{display:flex;gap:8px}.search-form input{flex:1;min-width:0}.search-hit{padding-top:8px;border-top:1px solid var(--border)}.search-hit a{color:var(--accent);font-weight:600}.history-search{padding:0 4px}.history-search input{width:100%;padding:7px 10px;font-size:.92rem}.search-results{gap:10px}.result-group{display:flex;flex-direction:column;gap:2px}.result-title{font-size:.85rem;font-weight:600;padding:2px 8px;overflow-wrap:anywhere}button.result-hit{display:block;width:100%;text-align:left;background:transparent;color:var(--text);padding:6px 8px;font-size:.85rem;line-height:1.4;border-radius:8px;overflow-wrap:anywhere}button.result-hit:hover{background:var(--hover)}.result-role{font-size:.72rem;font-weight:600;color:var(--muted);margin-right:6px;text-transform:uppercase;letter-spacing:.03em}mark{background:color-mix(in srgb,var(--accent) 28%,transparent);color:inherit;border-radius:3px;padding:0 1px}.msg.found{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:6px;border-radius:6px}a.button{display:inline-block;padding:10px 14px;border-radius:8px;background:var(--accent);color:var(--accent-text);text-decoration:none}.panel.danger{border-color:color-mix(in srgb,var(--error) 55%,var(--border))}button.danger{background:var(--error);color:#fff}.composer{padding-bottom:max(18px,env(safe-area-inset-bottom))}.sidebar{padding-bottom:max(14px,env(safe-area-inset-bottom))}@media (max-width: 760px){.topbar{flex-wrap:wrap;row-gap:6px;padding-top:max(8px,env(safe-area-inset-top))}.topbar .mode-switch{order:3;width:100%}.topbar .mode-switch button{flex:1;padding:6px 4px}.composer{padding-bottom:max(12px,env(safe-area-inset-bottom))}input,select,textarea,.composer textarea,.history-search input,.auto-text{font-size:16px}.tabs{flex-wrap:wrap;overflow-x:visible}.tabs button,button.icon{padding:8px 10px}.conv-open{padding:9px 8px}button.result-hit{padding:8px}.search-form{flex-wrap:wrap}.data .actions button+button{margin-left:14px}}@media (hover: none){.conv-actions{opacity:1}}
