:root{--bg: #f5f5f7;--surface: #ffffff;--ink: #1d1d1f;--muted: #6e6e73;--faint: #9c9686;--border: #e2e0da;--border-strong: #cfccc4;--hover: #f3f2ee;--accent: #1d1d1f;--focus: #0071e3;--focus-ring: rgba(0, 113, 227, .18);--danger: #c0392b;--danger-bg: #fdf1ef;--chip-on: #f0eee6;--radius: 10px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}h1{font-size:26px;letter-spacing:-.01em}h3{margin:0 0 12px;font-size:17px}.center{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.container{max-width:1000px;margin:0 auto;padding:24px}.muted{color:var(--muted)}.hint{font-size:12px;color:var(--faint);margin:8px 0 0}.intro{font-size:13.5px;color:var(--muted);margin:0 0 16px;line-height:1.55}.error{color:var(--danger);font-size:13.5px}.card{background:var(--surface);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:0 1px 3px #00000012}.badge{display:inline-block;font-size:11px;font-weight:600;background:#e5ebf1;color:#3c5a78;padding:2px 8px;border-radius:12px;margin-left:8px;vertical-align:middle}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 15px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}button:hover,.btn:hover{background:#3a3a3c;border-color:#3a3a3c}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}button:disabled{opacity:.45;cursor:default}.btn-secondary,button.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover,button.btn-secondary:hover{background:var(--hover);border-color:var(--border-strong)}.btn-ghost,button.btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.btn-ghost:hover,button.btn-ghost:hover{background:var(--hover);color:var(--ink);border-color:transparent}.btn-danger,button.btn-danger{background:var(--surface);color:var(--danger);border-color:#ecc9c4}.btn-danger:hover,button.btn-danger:hover{background:var(--danger-bg);border-color:#e3b1aa}.btn-sm,button.btn-sm{padding:5px 11px;font-size:13px;border-radius:7px}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.page-header h1{margin:0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}input,textarea,select{font:inherit;color:var(--ink)}.card input:not([type=checkbox]):not([type=radio]):not([type=file]),.card textarea,.field,select{display:block;width:100%;padding:9px 11px;margin-bottom:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-size:14px;transition:border-color .15s,box-shadow .15s}.card textarea{min-height:80px;resize:vertical;line-height:1.5}select{width:auto;margin-bottom:0;padding-right:32px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%236e6e73' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--focus)!important;box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder,textarea::placeholder{color:#a5a29b}input[type=file]{display:block;margin-bottom:10px;font-size:13.5px;color:var(--muted)}input[type=file]::file-selector-button{font:inherit;font-size:13.5px;padding:7px 13px;margin-right:10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer}input[type=file]::file-selector-button:hover{background:var(--hover)}.inline-field{display:flex;align-items:center;gap:10px;font-size:13.5px;margin-bottom:12px}.inline-field select{flex:0 1 auto}.segmented{display:inline-flex;background:var(--hover);border-radius:9px;padding:3px;margin-bottom:12px;gap:2px}.segmented label{padding:6px 12px;border-radius:7px;font-size:13px;cursor:pointer;color:var(--muted)}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented label:has(input:checked){background:var(--surface);color:var(--ink);font-weight:500;box-shadow:0 1px 2px #0000001a}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.list-item{background:var(--surface);border-radius:var(--radius);padding:14px 16px;box-shadow:0 1px 3px #0000000f;display:flex;justify-content:space-between;align-items:center;gap:12px}a.list-item{color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}a.list-item:hover{box-shadow:0 3px 10px #00000017}.list-item .title{font-weight:600}.list-item .desc{margin:4px 0 0;font-size:13px;color:var(--muted)}.row-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.row-list>li{padding:10px 0;border-bottom:1px solid #efede8}.row-list>li:last-child{border-bottom:none}.row{display:flex;justify-content:space-between;align-items:center;gap:8px}.switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}.switch input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:20px;background:#d5d2ca;position:relative;cursor:pointer;transition:background .15s;margin:0}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s}.switch input:checked{background:#2e7d32}.switch input:checked:after{transform:translate(14px)}.grid{display:grid;grid-template-columns:320px 1fr;gap:16px}.grid>*{min-width:0}.chat-panel{background:var(--surface);border-radius:12px;padding:14px 16px 16px;display:flex;flex-direction:column;height:78vh;box-shadow:0 1px 3px #00000012}.chat-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid #efede8}.chat-header h3{margin:0;font-size:15px}.messages{flex:1;overflow-y:auto;margin-bottom:12px;padding:8px 8px 0}.empty-chat{color:var(--faint);font-size:14px;text-align:center;margin-top:18%}.composer-settings{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--border-strong);border-radius:999px;font-size:12.5px;color:var(--muted);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,color .15s}.chip input{position:absolute;opacity:0;pointer-events:none}.chip:before{content:"";width:7px;height:7px;border-radius:50%;background:#cfccc4;transition:background .15s}.chip:has(input:checked){background:var(--chip-on);border-color:#d9d4c6;color:var(--ink)}.chip:has(input:checked):before{background:#2e7d32}.chip:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.setting{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.setting select,.setting input{padding:5px 28px 5px 10px;font-size:12.5px;border-radius:999px;border:1px solid var(--border-strong);background-color:var(--surface);background-position:right 8px center;margin:0;width:auto}.setting input[type=number]{width:92px;padding-right:10px}.chat-input{display:flex;gap:8px;align-items:flex-end;border:1px solid var(--border-strong);border-radius:14px;padding:8px 8px 8px 14px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.chat-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}.chat-input textarea{flex:1;border:none;resize:none;min-height:44px;max-height:200px;padding:6px 0;font-size:15px;line-height:1.45;background:transparent}.chat-input textarea:focus{box-shadow:none}.chat-input button{border-radius:10px}.msg{margin-bottom:22px}.msg.user{display:flex;justify-content:flex-end}.msg.user .bubble{max-width:80%;background:var(--chip-on);color:var(--ink);padding:10px 14px;border-radius:14px;font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.msg.assistant{max-width:760px}.typing{color:#8a8580;font-size:14px;font-style:italic}.ctx{position:relative;align-self:center}.ctx-ring,button.ctx-ring{background:transparent;border:none;padding:4px;border-radius:50%;line-height:0}.ctx-ring:hover,button.ctx-ring:hover{background:var(--hover);border:none}.ctx-track{fill:none;stroke:#e5e2da;stroke-width:2.6}.ctx-value{fill:none;stroke:#8a8580;stroke-width:2.6;stroke-linecap:round;transition:stroke-dashoffset .4s,stroke .2s}.ctx-ring.mid .ctx-value{stroke:#c77d1a}.ctx-ring.high .ctx-value{stroke:var(--danger)}.ctx-ring.unknown .ctx-value{stroke:transparent}.ctx-pop{position:absolute;bottom:calc(100% + 10px);right:-60px;width:290px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000024;padding:12px 14px;font-size:12.5px;color:var(--muted);z-index:20;text-align:left}.ctx-pop strong{display:block;color:var(--ink);font-size:13px;margin-bottom:4px}.ctx-pop p{margin:8px 0 0;line-height:1.45}.ctx-numbers{color:var(--ink)}.ctx-bar{position:relative;height:6px;background:#eeebe4;border-radius:6px;margin-top:8px}.ctx-bar span{display:block;height:100%;border-radius:6px;background:#8a8580}.ctx-bar span.mid{background:#c77d1a}.ctx-bar span.high{background:var(--danger)}.ctx-bar i{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);opacity:.45}.ctx-busy{color:var(--ink);font-style:italic}@media (max-width: 800px){.ctx-pop{right:-40px;width:260px}}.msg.compacted{opacity:.62}.compact-marker{margin:4px 0 22px;text-align:center}.compact-marker>summary{display:inline-block;cursor:pointer;list-style:none;font-size:12px;color:var(--muted);background:var(--hover);border:1px dashed var(--border-strong);border-radius:999px;padding:4px 12px;-webkit-user-select:none;user-select:none}.compact-marker>summary::-webkit-details-marker{display:none}.compact-marker[open]>summary{color:var(--ink)}.compact-marker>.hint,.compact-marker>.markdown{text-align:left}.compact-summary{margin-top:8px;padding:12px 14px;background:#faf9f6;border:1px solid #efede8;border-radius:10px;font-size:13.5px}.thinking{margin:0 0 10px;font-size:13px;color:var(--muted)}.thinking summary{cursor:pointer;-webkit-user-select:none;user-select:none}.thinking-body{margin-top:8px;padding-left:12px;border-left:2px solid #e5e2da;font-size:13px}.markdown{font-size:15px;line-height:1.65;color:var(--ink);overflow-wrap:anywhere}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 12px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{line-height:1.3;margin:22px 0 10px;font-weight:650}.markdown h1{font-size:1.35em}.markdown h2{font-size:1.2em}.markdown h3{font-size:1.07em}.markdown h4{font-size:1em}.markdown ul,.markdown ol{margin:0 0 12px;padding-left:1.5em}.markdown li{margin:4px 0}.markdown li>p{margin:0 0 4px}.markdown li>ul,.markdown li>ol{margin:4px 0 0}.markdown strong{font-weight:650}.markdown a{color:var(--focus)}.markdown blockquote{margin:0 0 12px;padding:2px 0 2px 14px;border-left:3px solid #d8d4ca;color:#55524d}.markdown hr{border:none;border-top:1px solid #e5e2da;margin:18px 0}.markdown code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em;background:#f3f1ec;padding:1px 5px;border-radius:4px}.markdown pre{background:#f6f5f1;border:1px solid #e8e5dd;border-radius:8px;padding:12px 14px;overflow-x:auto;margin:0 0 12px}.markdown pre code{background:none;padding:0;font-size:13px;line-height:1.5}.md-table-wrap{overflow-x:auto;margin:0 0 12px}.md-image-blocked{color:var(--faint);font-style:italic;font-size:.92em}.markdown table{border-collapse:collapse;font-size:14px;min-width:50%}.markdown th,.markdown td{border:1px solid #e5e2da;padding:6px 10px;text-align:left;vertical-align:top}.markdown th{background:#f6f5f1;font-weight:650}.markdown input[type=checkbox]{margin:0 6px 0 0;display:inline;width:auto}.dropzone{border:2px dashed #c7c7cc;border-radius:10px;padding:24px 12px;text-align:center;color:var(--muted);font-size:13px;cursor:pointer;margin-bottom:12px;transition:border-color .15s,background .15s}.dropzone:hover{background:#fafaf8}.dropzone.dragover{border-color:var(--focus);background:#f0f7ff;color:var(--focus)}.file-meta{color:var(--faint);font-size:12px}.tag{font-size:10px;font-weight:700;color:#3c5a78;background:#e5ebf1;padding:2px 6px;border-radius:4px;margin-left:6px}.notice{margin-top:8px;padding:10px;background:#fff8e6;border:1px solid #f0dca0;border-radius:8px;font-size:12.5px}.notice p{margin:0 0 8px}.selection-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.selection-row input{flex:1;min-width:110px;margin:0!important;padding:6px 9px!important;font-size:12.5px!important}details.guide{background:var(--surface);border-radius:12px;box-shadow:0 1px 3px #00000012;margin-bottom:16px}details.guide>summary{padding:14px 18px;cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}details.guide>summary::-webkit-details-marker{display:none}details.guide>summary:after{content:"▾";color:var(--muted);transition:transform .15s}details.guide[open]>summary:after{transform:rotate(180deg)}details.guide>.markdown{padding:0 18px 18px;font-size:14.5px}.intro-card{font-size:13.5px;line-height:1.55;color:#3a3a3c}.intro-card p{margin:0 0 8px}.intro-card ul{margin:0;padding-left:1.3em}.intro-card li{margin:4px 0}.mem-group{margin-bottom:22px}.mem-group h3{font-size:15px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.mem-list{list-style:none;margin:0;padding:0;background:var(--surface);border-radius:var(--radius);box-shadow:0 1px 3px #0000000f;overflow:hidden}.mem-item+.mem-item{border-top:1px solid #efede8}.mem-summary{width:100%;display:grid;grid-template-columns:minmax(120px,220px) 1fr auto auto;align-items:center;gap:12px;padding:11px 14px;background:transparent;border:none;border-radius:0;color:var(--ink);font-weight:400;text-align:left}.mem-summary:hover{background:#faf9f6;border:none}.mem-title{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mem-preview{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.mem-date{color:var(--faint);font-size:12px}.mem-chevron{color:var(--muted);transition:transform .15s}.mem-item.open .mem-chevron{transform:rotate(180deg)}.mem-item.open .mem-summary{background:#faf9f6}.mem-editor{padding:4px 14px 14px;background:#faf9f6}.mem-editor textarea{width:100%;padding:10px 12px;margin-bottom:10px;border:1px solid var(--border-strong);border-radius:8px;font-size:13.5px;line-height:1.55;resize:vertical;background:var(--surface)}@media (max-width: 800px){.mem-summary{grid-template-columns:1fr auto}.mem-preview{grid-column:1 / -1;grid-row:2}.mem-date{display:none}}.promote-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#f4f7fb;border:1px solid #dbe4ee;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px;color:#3c5a78}.promote-box p{margin:0;flex:1;min-width:220px}.promote-form{background:var(--surface);border:1px solid #dbe4ee;border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 1px 3px #0000000f}.promote-form h3{margin-bottom:6px}.help-toc{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.help-section{scroll-margin-top:16px}.help-section .markdown{font-size:14.5px}.table-card{padding:0;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;background:#f7f6f3;padding:10px 16px;font-weight:600}.data-table td{padding:10px 16px;border-top:1px solid #efede8}@media (max-width: 800px){.container{padding:16px}h1{font-size:22px}.grid{grid-template-columns:1fr}.chat-panel{height:75vh}}
