:root{--bg:#f4f5f7;--card:#fff;--text:#1d2330;--muted:#5d6576;--accent:#1f5fbf;--error:#b42318;--ok:#067647;--border:#d6d9e0;--user-bg:#e6eefb;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#14171c;--card:#1d2128;--text:#e6e8ec;--muted:#a0a7b4;--accent:#6ea3f5;--error:#f97066;--ok:#47cd89;--border:#353b46;--user-bg:#1f2b3f}}body{background:var(--bg);margin:0}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;max-width:720px;margin:48px auto;padding:24px 28px}.card.narrow{max-width:380px}h1{margin:0 0 8px;font-size:1.4rem}h2{margin:24px 0 8px;font-size:1.1rem}form{flex-direction:column;gap:6px;display:flex}label{margin-top:8px;font-size:.9rem}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:8px 10px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;margin-top:12px;padding:8px 14px}button:disabled{opacity:.6;cursor:default}button.secondary{color:var(--accent);border:1px solid var(--border);background:0 0;margin-top:0}button.danger{color:var(--error)}.row{justify-content:space-between;align-items:center;display:flex}.muted{color:var(--muted)}.error{color:var(--error)}.ok{color:var(--ok)}.center{text-align:center;margin-top:64px}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.8rem}:root{--code-bg:#eef0f4;--warn:#b54708;--info:#1f5fbf;--paused:#a15c07;--completed:#667085}@media (prefers-color-scheme:dark){:root{--code-bg:#262b34;--warn:#fdb022;--info:#6ea3f5;--paused:#f5b546;--completed:#98a2b3}}.card.wide{max-width:1100px;margin:24px auto}.card.wide.app-shell{box-sizing:border-box;border-top:0;border-bottom:0;border-radius:0;flex-direction:column;width:90vw;max-width:none;height:100dvh;margin:0 auto;display:flex}.app-shell>.app-head{flex:none}.app-body{flex:1;min-height:0;overflow-y:auto}.app-body.fill{flex-direction:column;display:flex}.page-fill{flex-direction:column;flex:1;min-height:0;display:flex}.page-fill>*{flex:none}.page-fill>.table-wrap{border:1px solid var(--border);border-radius:8px;flex:0 auto;min-height:0;overflow:auto}.page-fill>.table-wrap tbody tr:last-child td{border-bottom:0}.page-fill>.table-wrap thead th{z-index:1;background:var(--card);position:sticky;top:0}.session-toolbar{border-bottom:1px solid var(--border);margin:12px 0 0;padding-bottom:12px}.session-toolbar button{margin-top:0}.page-fill>.session-top{margin:0;padding:8px 0;position:static}.page-fill>.session-details{border-bottom:1px solid var(--border);flex:0 auto;min-height:0;max-height:40vh;padding-bottom:8px;overflow-y:auto}.page-fill.draft>.session-details{flex:auto;max-height:none}.page-fill.draft>.conversation{flex:none;min-height:0}.session-details>h3:first-of-type{margin-top:8px}.page-fill>.conversation{flex:1 1 0;gap:8px;min-height:160px;margin-top:8px;display:flex}.conversation>.messages{flex:1;min-width:0;max-height:none}.conversation-nav{flex-direction:column;flex:none;justify-content:space-between;display:flex}.conversation-nav button{white-space:nowrap;margin-top:0}.app-version{white-space:nowrap;color:var(--muted);vertical-align:middle;margin-left:10px;font-size:.8rem;font-weight:400}.app-head h1 a.plain-link:hover{text-decoration:underline}@media (width<=720px){.card,.card.wide{border-left:0;border-right:0;border-radius:0;margin:0;padding:16px}.card.wide.app-shell{width:auto}.page-fill>.session-details{max-height:35vh}}h3{margin:20px 0 8px;font-size:1rem}a{color:var(--accent)}a.plain-link{color:inherit;text-decoration:none}.app-head{border-bottom:1px solid var(--border);grid-template-columns:minmax(max-content,1fr) minmax(0,auto) minmax(max-content,1fr);grid-template-areas:"title meter actions";align-items:center;gap:8px 16px;padding-bottom:12px;display:grid}.app-head h1{grid-area:title;margin:0}.app-head>.storage{text-align:center;grid-area:meter;justify-content:center;max-width:520px;margin:0}.app-head>.actions{white-space:nowrap;flex-wrap:nowrap;grid-area:actions;justify-self:end}.app-head>.actions button{margin-top:0}@media (width<=720px){.app-head{grid-template-columns:1fr auto;grid-template-areas:"title actions""meter meter"}.app-head>.storage{text-align:left;justify-content:flex-start;max-width:none}.app-head>.actions{white-space:normal;flex-wrap:wrap}}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions button,button.inline{margin-top:0}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:16px;display:flex}.toolbar-end{margin-left:auto}button.small{padding:4px 10px;font-size:.85rem}button.link{color:var(--accent);background:0 0;border:0;margin:0;padding:0;text-decoration:underline}textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:6px;padding:8px 10px}input[readonly],textarea[readonly]{color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.align-right{text-align:right}.align-center{text-align:center}.align-left{text-align:left}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.badge.status-draft{color:var(--muted)}.badge.status-preparing,.badge.status-uploading,.badge.status-processing,.badge.status-queued,.badge.status-tool-running{color:var(--warn);border-color:var(--warn)}.badge.status-active,.badge.status-ready,.badge.status-uploaded,.badge.status-tool-done{color:var(--ok);border-color:var(--ok)}.badge.status-failed,.badge.status-error,.badge.status-tool-error{color:var(--error);border-color:var(--error)}.badge.status-paused,.badge.status-tool-waiting{color:var(--paused);border-color:var(--paused)}.badge.status-completed{color:var(--completed);border-color:var(--completed);border-style:dashed}.table-wrap{margin:8px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px}th{color:var(--muted);font-weight:600}table.data th.align-right,table.data td.align-right{text-align:right}td.path{word-break:break-all;min-width:16rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.8rem}.dropzone{text-align:center;border:2px dashed var(--border);color:var(--muted);cursor:pointer;border-radius:8px;margin:4px 0;padding:24px;display:block}.dropzone.over{border-color:var(--accent);color:var(--accent)}.dropzone.disabled{cursor:default;opacity:.6}.upload-queue,.uploads{margin:8px 0;padding:0;list-style:none}.upload-queue li,.uploads li{border-bottom:1px solid var(--border);padding:8px 0}.upload-queue .actions,.uploads .upload-actions{justify-content:flex-end}.upload-queue .actions:empty{display:none}.file-name{text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}progress{width:100%;height:8px;accent-color:var(--accent)}.add-files{margin:8px 0}.session-head{justify-content:flex-start;gap:12px}.session-head h2{margin:0}.session-head h2.untitled{color:var(--muted);font-style:italic}.title-edit{flex-flow:wrap;flex:320px;align-items:center;gap:8px;display:flex}.title-edit input{flex:240px;min-width:0;margin:0}.title-edit button{margin-top:0}details>summary{cursor:pointer}details.goal,.uploads .package{margin-top:4px}.uploads .package-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.uploads .package-notes summary{cursor:pointer}.uploads .package-notes ul{margin:4px 0 0;padding-left:18px}details.files .held-back{margin:8px 0;display:block}details.files tr.held td{color:var(--muted)}.file-rules .draft-bar{z-index:2;background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex;position:sticky;top:0}.file-rules section{margin-top:16px}.file-rules table.rules td{vertical-align:top}.file-rules tr.off td{color:var(--muted)}.file-rules .patterns code{word-break:break-all;margin:0 6px 2px 0;display:inline-block}.file-rules .rule-form{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px;margin:8px 0 16px;padding:12px;display:grid}.file-rules .rule-form label{flex-direction:column;gap:4px;display:flex}.file-rules .rule-form label.checkbox{flex-direction:row;align-items:center}.file-rules .rule-form .wide{grid-column:1/-1}.file-rules .rule-form textarea{font-family:var(--mono,monospace)}.file-rules .preview tr.changed td{font-weight:600}.file-rules .rule-hits{padding-left:18px}.code-lists .draft-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.code-lists section{margin-top:16px}.code-lists .title-row{justify-content:flex-start;gap:12px}.code-lists .code-list-form{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px;margin:8px 0 16px;padding:12px;display:grid}.code-lists .code-list-form label{flex-direction:column;gap:4px;display:flex}.code-lists .code-list-form .wide{grid-column:1/-1}.code-lists .warnings{color:var(--warn);padding-left:18px}.code-lists .entries-bar{flex-wrap:wrap;align-items:center;gap:8px}.code-lists table.codes td.text{white-space:pre-line;min-width:12rem}details.files{margin:12px 0}details.files .files-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0;display:flex}details.files .files-bar .held-back{margin:0}table.file-tree tr.folder td{font-weight:600}table.file-tree tr.folder td.muted{font-weight:400}table.file-tree button.tree-toggle{color:inherit;font:inherit;text-align:left;word-break:break-all;cursor:pointer;background:0 0;border:0;margin:0;padding:0}table.file-tree button.tree-toggle:hover,table.file-tree button.tree-toggle:focus-visible{text-decoration:underline}table.file-tree .tree-mark{width:1.1em;color:var(--muted);display:inline-block}.plain{white-space:pre-wrap;overflow-wrap:anywhere}.messages{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-height:65vh;padding:8px 12px;overflow-y:auto}.message{border-bottom:1px solid var(--border);padding:10px 0}.message:last-child{border-bottom:0}.message.user{background:var(--user-bg);border:0;border-left:3px solid var(--accent);border-radius:6px;margin:8px 0;padding:10px 12px}.message.queued{opacity:.7}.message-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.message-head time{color:var(--muted);font-size:.8rem}.message-head .badge{margin-left:0}.reasoning{margin:4px 0;font-size:.85rem;font-style:italic}.tools{margin:4px 0;padding:0;font-size:.85rem;list-style:none}.tool{align-items:baseline;gap:8px;padding:2px 0;display:flex}.tool-details pre{margin:4px 0 8px}.tool-name{flex:none}.tool-summary{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.status-line{align-items:center;gap:8px;min-height:1.4em;margin:8px 0 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.composer{margin-top:4px}.composer-input{align-items:flex-end;gap:8px;display:flex}.composer-input textarea{flex:1;min-width:0}.composer-input button{flex:none}.composer button{margin-top:0}.markdown{overflow-wrap:anywhere}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:6px 0}.markdown li>p{margin:0}.markdown ul,.markdown ol{margin:6px 0;padding-left:24px}.markdown blockquote{border-left:3px solid var(--border);color:var(--muted);margin:6px 0;padding-left:12px}code,pre{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.85em}code{background:var(--code-bg);border-radius:4px;padding:1px 4px}pre{background:var(--code-bg);border-radius:6px;padding:8px 10px;overflow-x:auto}pre code{background:0 0;padding:0}.session-head{flex-wrap:wrap}.session-head .session-actions{margin-left:auto}.session-top{z-index:5;background:var(--card);border-bottom:1px solid var(--border);margin:0 -28px;padding:10px 28px 8px;position:sticky;top:0}.session-top .session-head button{margin-top:0}.session-goal{align-items:baseline;gap:8px;margin-top:6px;display:flex}.session-goal .goal-text{flex:1;min-width:0;max-height:40vh;overflow-y:auto}.session-goal .goal-text.clamped{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.session-goal button.link{white-space:nowrap;margin-top:0}@media (width<=720px){.session-top{margin:0 -16px;padding:8px 16px}}.lifecycle{margin:4px 0;padding:0;list-style:none}label.checkbox{cursor:pointer;align-items:center;gap:6px;margin:8px 0 0;display:inline-flex}label.checkbox input{margin:0;padding:0}table.data button.sort{color:inherit;font:inherit;font-weight:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}table.data button.sort:hover,table.data button.sort:focus-visible{text-decoration:underline}table.data .sort-mark{font-size:.75em}table.sessions .select{width:1%;padding-right:0}table.sessions .select input{margin:0}table.sessions tr.completed td{color:var(--muted);opacity:.75}.composer-hint{margin:0}.message.summary{border:1px dashed var(--border);color:var(--muted);border-radius:6px;margin:8px 0;padding:8px 12px}.message.summary:last-child{border-bottom:1px dashed var(--border)}.message.summary .message-head{margin-bottom:0;display:list-item}.message.summary .message-head time{margin-left:8px}.message.summary .markdown{margin-top:6px}.tools .ask-card{background:var(--card);border:1px solid var(--accent);border-left-width:4px;border-radius:6px;margin:8px 0;padding:10px 12px;font-size:.9rem}.ask-card .ask-title{margin:0 0 4px;font-weight:600}.ask-card .ask-options{margin:8px 0 4px}.ask-card p{margin:6px 0 0}.upload-progress{margin-top:4px}.upload-progress progress{width:100%;display:block}.progress-current{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.draft-goal textarea{width:100%}.draft-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.draft-actions button{margin-top:0}details.notes,details.reports{margin:12px 0}.report-list{margin:8px 0;padding:0;list-style:none}.report-list li{overflow-wrap:anywhere;padding:4px 0}.note-list{margin:8px 0;padding:0;list-style:none}.note-list li{border-bottom:1px solid var(--border);padding:6px 0}.note-list time{color:var(--muted);font-size:.8rem;display:block}.storage{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin:12px 0 16px;display:flex}.storage-bar{width:160px;max-width:100%;height:10px}.storage-low{color:var(--warn)}.work-steps{border-bottom:1px solid var(--border);padding:6px 0;font-size:.9rem}.work-steps>summary{cursor:pointer;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;list-style:none;display:flex}.work-steps>summary::-webkit-details-marker{display:none}.work-steps>summary:before{content:"▸";flex:none;width:1em}.work-steps[open]>summary:before{content:"▾"}.work-steps-title{flex:none}.work-steps-tools{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.work-steps-body{border-left:2px solid var(--border);margin:4px 0 0 12px;padding-left:12px}.work-steps-body .message:last-child{border-bottom:0}:root{--mark:#fff1a8;--warn-bg:#fdf0e1}@media (prefers-color-scheme:dark){:root{--mark:#5c4d0a;--warn-bg:#3a2c19}}.page-fill>.library-results{flex:1 1 0;min-height:160px;overflow-y:auto}.library-results.stale{opacity:.6}.library-search{gap:4px;margin:16px 0 4px}.library-search h2{margin:0 0 4px;font-size:1.1rem}.library-search .search-count{text-align:right;min-height:1.2em;color:var(--muted);margin:0;font-size:.85rem}.library-search .search-count.error{color:var(--error)}.library-search .search-help{color:var(--muted);margin:0;padding-left:1.25rem;font-size:.85rem}.library-search .search-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.library-search .search-controls .spacer{flex:auto}.library-search select{font:inherit;border:1px solid var(--border);background:var(--bg);max-width:100%;color:var(--text);border-radius:6px;padding:8px 10px}.library-search .search-controls button{margin-top:0}.library-search .search-controls button.secondary{border-color:var(--accent)}@media (width<=520px){.library-search .search-controls>select,.library-search .search-controls>button{flex:100%}.library-search .search-controls .spacer{display:none}}.library .hint,.library .count,.library .meta,.library .crumb{color:var(--muted);margin:4px 0;font-size:.85rem}.library div.count{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.library .hit,.library .chunk{border-top:1px solid var(--border);padding:12px 0}.library .hit h3{overflow-wrap:anywhere;margin:0 0 2px;font-size:1.05rem}.library .score{color:var(--muted);white-space:nowrap;margin-left:6px;font-size:.8rem;font-weight:400}.library .warn{background:var(--warn-bg);border-radius:4px;margin-left:4px;padding:0 6px}.library .ranges{flex-wrap:wrap;align-items:flex-start;gap:6px;margin:8px 0;display:flex}.library .ranges details{flex:none}.library .ranges details[open]{border-left:3px solid var(--accent);flex-basis:100%;padding:2px 0 2px 10px}.library .ranges summary{border:1px solid var(--border);color:var(--accent);border-radius:12px;padding:1px 10px;font-size:.85rem;list-style:none;display:inline-block}.library .ranges summary::-webkit-details-marker{display:none}.library .ranges summary:before{content:"▸ "}.library .ranges details[open] summary{border-color:var(--accent)}.library .ranges details[open] summary:before{content:"▾ "}.library .ranges summary .kind{color:var(--muted)}.library .snippet{overflow-wrap:anywhere;margin:4px 0}.library .hit-actions{flex-wrap:wrap;gap:4px 16px;margin:4px 0;font-size:.85rem;display:flex}.library .folders{color:var(--muted);margin:6px 0 0;padding-left:18px;font-size:.8rem}.library .chunk-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.library .pager{flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:12px 0;display:flex}.library .pager.pager-top{padding:0;display:inline-flex}.library .pager .button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:2px 10px;font-size:.85rem;text-decoration:none}.library .pager .button[aria-disabled=true]{border-color:var(--border);color:var(--muted);cursor:default;background:0 0}.library mark{background:var(--mark);color:inherit;padding:0 1px}:root{--scrollbar-room:14px;--focus-room:4px}.app-body,.page-fill>.session-details,.page-fill>.library-results{margin-right:calc(-1 * var(--scrollbar-room));padding-right:var(--scrollbar-room)}.app-body{margin-left:calc(-1 * var(--focus-room));padding-left:var(--focus-room)}.session-goal .goal-text{padding-right:var(--scrollbar-room)}.messages{padding-right:calc(4px + var(--scrollbar-room))}textarea{padding-right:calc(10px + var(--scrollbar-room))}.page-fill>.table-wrap :is(th,td):last-child{padding-right:calc(8px + var(--scrollbar-room))}.badge.kind-library{color:var(--accent);border-color:var(--accent);white-space:nowrap}
