@font-face{font-family:Michroma;src:url('/Michroma-Regular.ttf') format('truetype');font-display:swap}:root{--desk:#d8d2dc;--paper:#fbfafc;--paper-2:#f5f3f7;--ink:#18181b;--muted:#66616a;--line:#d8d2dc;--line-strong:#8b858e;--accent:#641e82;--kernel:#247a52;--computed:#2f6384;--suggested:#a05a00;--danger:#a23b3b;--shadow:0 22px 60px rgba(49,28,58,.18);--sans:"Space Grotesk",Arial,"Microsoft YaHei",sans-serif;--display:Michroma,Arial,sans-serif;--serif:"Iowan Old Style",Georgia,"Times New Roman",serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--desk);color:var(--ink)}body{font:15px/1.45 var(--sans);overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;min-height:40px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{height:66px;padding:0 clamp(16px,3vw,40px);display:flex;align-items:center;justify-content:space-between;background:var(--paper-2);border-bottom:3px solid var(--accent);gap:20px}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px}.brand-mark img{display:block;width:42px;height:42px;object-fit:contain}.brand strong{display:block;font:400 16px/1 var(--display);letter-spacing:-.015em}.brand small{display:block;margin-top:5px;color:var(--accent);font:700 8px/1 var(--mono);text-transform:uppercase;letter-spacing:.14em}.system-state{display:flex;align-items:center;gap:7px;color:var(--muted);font:600 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.dot{width:8px;height:8px;border:1px solid var(--ink);border-radius:50%;background:var(--danger)}.dot.online{background:var(--kernel)}.divider{width:1px;height:14px;background:var(--line)}
.workbench{padding:20px clamp(12px,3vw,42px) 84px;position:relative;min-height:calc(100vh - 102px)}.paper-toolbar{max-width:1500px;margin:0 auto 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.tool-group{display:flex;gap:6px;flex-wrap:wrap}.tool,.sample-row select{min-height:38px;border:1px solid var(--line-strong);border-radius:4px;background:rgba(247,244,235,.7);padding:0 13px;font-weight:650;font-size:12px}.tool:hover,.tool.active{background:var(--ink);color:var(--paper)}.tool.quiet{border-color:transparent;color:var(--muted)}kbd{font:9px var(--mono);color:inherit;opacity:.65;margin-right:4px}.sample-row{display:flex;align-items:center;gap:8px;color:var(--muted);font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.07em}.sample-row select{background:var(--paper-2);text-transform:none;letter-spacing:0;min-width:150px}
.paper-frame{max-width:1500px;margin:0 auto;border:1px solid #aaa295;background:#c9c4b9;padding:clamp(8px,1.5vw,20px);box-shadow:inset 0 1px rgba(255,255,255,.45)}.paper-page{position:relative;width:100%;aspect-ratio:16/10;min-height:440px;background-color:var(--paper);background-image:linear-gradient(rgba(42,39,34,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(42,39,34,.035) 1px,transparent 1px);background-size:40px 40px;box-shadow:var(--shadow);overflow:hidden;touch-action:none}#ink,#overlay{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#overlay{pointer-events:none}.annotation-layer{position:absolute;inset:0;pointer-events:none}.page-heading{position:absolute;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;color:var(--muted);font:600 9px var(--mono);letter-spacing:.12em;pointer-events:none}.canvas-hint{position:absolute;left:24px;bottom:16px;margin:0;color:#807a6e;font:10px var(--mono);pointer-events:none}
.problem-card{position:absolute;z-index:5;top:54px;left:24px;width:min(690px,55%);background:rgba(247,244,235,.94);border-left:4px solid var(--accent);border-bottom:1px solid var(--line);padding:9px 11px;touch-action:pan-y}.problem-label{display:flex;align-items:center;gap:9px;margin-bottom:5px}.problem-label strong{font:700 11px var(--mono);letter-spacing:.05em}.problem-label span{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.problem-card textarea{display:block;width:100%;resize:vertical;min-height:47px;max-height:110px;border:0;background:transparent;padding:2px 0;font:600 14px/1.35 var(--serif)}.problem-card textarea:focus{outline:1px solid var(--accent);outline-offset:3px}.problem-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:5px}.image-button,.problem-tools button{min-height:24px;border:0;border-bottom:1px solid var(--line-strong);background:transparent;padding:1px 2px;color:var(--muted);font:700 8px var(--mono);text-transform:uppercase;cursor:pointer}#problem-ocr-state{margin-left:auto;color:var(--muted);font:700 8px var(--mono);text-transform:uppercase}.problem-image-preview{margin-top:7px}.problem-image-preview img{display:block;max-width:100%;max-height:110px;border:1px solid var(--line);object-fit:contain;background:white}
.agent-popover{position:absolute;z-index:8;left:52%;top:12%;width:min(520px,45%);min-width:360px;max-height:76%;overflow:auto;background:rgba(247,244,235,.98);border:1px solid var(--ink);border-top:4px solid var(--accent);box-shadow:0 16px 40px rgba(32,29,24,.24);padding:16px;touch-action:pan-y}.agent-popover[hidden]{display:none}.popover-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.eyebrow{margin:0 0 6px;color:var(--muted);font:700 9px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em}.formula-summary{display:flex;align-items:center;gap:10px}.formula-summary code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 clamp(18px,2vw,25px)/1.2 var(--serif)}.edit-button{min-height:30px;border:0;border-bottom:1px solid var(--accent);background:transparent;color:var(--accent);padding:0 2px;font:700 9px var(--mono);text-transform:uppercase;white-space:nowrap}.badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border:1px solid var(--line-strong);border-radius:99px;white-space:nowrap;font:700 9px var(--mono);text-transform:uppercase}.badge.good{color:var(--kernel);border-color:var(--kernel)}.badge.warn{color:var(--suggested);border-color:var(--suggested)}.badge.muted{color:var(--muted)}.icon-button{width:32px;min-height:32px;border:0;background:transparent;font-size:24px;line-height:1;color:var(--muted)}.microcopy{margin:9px 0 11px;color:var(--muted);font-size:11px}.candidates{display:flex;gap:5px;flex-wrap:wrap}.candidate{min-height:30px;border:1px solid var(--line);background:transparent;padding:3px 8px;font:600 11px var(--mono)}
.recognition-popover{position:absolute;z-index:12;left:50%;top:10%;transform:translateX(-50%);width:min(640px,76%);min-width:420px;background:#fbf8ef;border:1px solid var(--ink);border-top:5px solid var(--computed);box-shadow:0 24px 64px rgba(29,27,23,.28);padding:18px;touch-action:pan-y}.recognition-popover[hidden]{display:none}.recognition-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.recognition-head h2{margin:0;font:600 24px/1.1 var(--serif)}.recognition-lead{margin:10px 0 14px;color:var(--muted);font-size:12px}.source-label{display:block;margin-bottom:6px;color:var(--muted);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.08em}#recognition-editor{display:block;width:100%;resize:vertical;min-height:92px;border:1px solid var(--line-strong);border-left:4px solid var(--computed);background:#fffdf6;padding:12px;font:600 18px/1.45 var(--mono)}#recognition-editor:focus{outline:2px solid var(--computed);outline-offset:2px}.recognition-preview{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:10px;margin-top:10px;padding:9px 12px;background:var(--paper-2);border:1px solid var(--line)}.recognition-preview > span{color:var(--muted);font:700 9px var(--mono);text-transform:uppercase}.recognition-preview output{overflow-wrap:anywhere;font:600 20px var(--serif)}.recognition-meta{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--muted);font-size:10px}.recognition-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.secondary-button,.confirm-button{border:1px solid var(--ink);padding:0 14px;font-weight:700}.secondary-button{background:transparent}.confirm-button{background:var(--ink);color:var(--paper)}.confirm-button span{margin-left:8px}.shortcut-hint{margin:7px 0 0;text-align:right;color:var(--muted);font:8px var(--mono);text-transform:uppercase}
.quick-actions{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line-strong);margin:12px 0}.quick-actions button{border:0;border-right:1px solid var(--line);background:transparent;padding:8px 4px;font-size:11px;font-weight:700}.quick-actions button:last-child{border-right:0}.quick-actions button:hover{background:var(--ink);color:var(--paper)}.quick-actions span{display:block;color:var(--muted);font:8px var(--mono);margin-bottom:2px}.continue-review{margin:0 0 12px;padding:12px;border:1px solid var(--line-strong);border-left:4px solid var(--suggested);background:#f4efe3}.continue-review[hidden]{display:none}.continue-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.continue-head h3{margin:0;font:600 20px/1.2 var(--serif)}.continue-review>p{margin:8px 0 10px;color:var(--muted);font-size:11px}.continue-review textarea{display:block;width:100%;min-height:70px;resize:vertical;border:1px solid var(--line-strong);background:#fffdf6;padding:10px;font:600 16px/1.45 var(--mono)}.continue-review textarea:focus{outline:2px solid var(--suggested);outline-offset:2px}.continue-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.continuation-block{position:absolute;z-index:6;transform:translateY(-50%);pointer-events:auto;min-height:36px;max-width:42%;overflow-wrap:anywhere;border:1px solid var(--suggested);border-left:4px solid var(--suggested);background:rgba(255,252,242,.96);padding:6px 10px;color:var(--ink);box-shadow:0 4px 14px rgba(45,40,32,.12);font:600 18px/1.3 var(--serif);text-align:left}.continuation-block:hover{background:var(--paper-2)}.thread{display:grid;gap:8px;max-height:230px;overflow:auto;padding-right:3px}.thread:empty{display:none}.message{border-left:3px solid var(--suggested);background:#eee8da;padding:9px 11px}.message.user{border-color:var(--ink);background:transparent}.message.kernel-verified{border-color:var(--kernel)}.message.kernel-rejected{border-color:var(--danger)}.message.computed,.message.python-checked{border-color:var(--computed)}.message-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;font:700 9px var(--mono);text-transform:uppercase;color:var(--muted)}.message p{margin:0;white-space:pre-wrap;font:14px/1.45 var(--serif)}.message ul{margin:6px 0 0;padding-left:18px;font-size:12px}.message pre{max-height:160px;overflow:auto;background:#23231f;color:#f1ecdf;padding:10px;margin:8px 0 0;font:11px/1.45 var(--mono);white-space:pre-wrap}
.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.composer textarea{resize:none;border:1px solid var(--line-strong);background:transparent;padding:8px;min-width:0;font-size:12px}.send-button{align-self:stretch;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:0 13px;font-weight:700}.send-button span{margin-left:4px}.quick-actions button:disabled,.send-button:disabled,.action-rail button:disabled{opacity:.45;cursor:wait}.trust-key{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font:8px var(--mono);text-transform:uppercase}.trust-key i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.trust-key .kernel{background:var(--kernel)}.trust-key .computed{background:var(--computed)}.trust-key .suggested{background:var(--suggested)}.annotation-pin{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;background:var(--paper);font:700 9px var(--mono);box-shadow:0 3px 10px rgba(0,0,0,.14)}
.action-rail{position:fixed;z-index:20;left:50%;bottom:20px;transform:translateX(-50%);display:flex;background:var(--ink);color:var(--paper);border:1px solid #000;box-shadow:0 10px 30px rgba(20,18,15,.25)}.action-rail button{width:78px;border:0;border-right:1px solid #4e4c46;background:transparent;color:inherit;padding:6px 8px}.action-rail button:last-child{border-right:0}.action-rail button:hover{background:#3b3933}.action-rail b{display:block;font:600 14px var(--serif)}.action-rail span{display:block;margin-top:2px;color:#d8d1c2;font:8px var(--mono);text-transform:uppercase;letter-spacing:.06em}footer{min-height:36px;background:var(--paper-2);border-top:1px solid var(--line-strong);padding:8px clamp(16px,3vw,40px);display:flex;justify-content:space-between;gap:16px;color:var(--muted);font:9px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.paper-toolbar{display:grid;grid-template-columns:auto minmax(420px,1fr) auto;align-items:center}.document-row{min-width:0;display:flex;align-items:center;justify-content:center;gap:6px}.document-row input[type="text"]{width:min(260px,32vw);min-height:38px;border:0;border-bottom:1px solid var(--line-strong);background:transparent;padding:0 8px;font:600 15px var(--serif)}.document-row input[type="text"]:focus{outline:1px solid var(--accent);outline-offset:2px}.document-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--line-strong);border-radius:4px;background:rgba(247,244,235,.72);padding:0 11px;font:700 10px var(--mono);text-transform:uppercase;cursor:pointer;white-space:nowrap}.document-button:hover{background:var(--ink);color:var(--paper)}.document-button.primary{background:var(--ink);color:var(--paper)}.document-button.primary:hover{background:var(--accent);border-color:var(--accent)}#document-status{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font:700 8px var(--mono);text-transform:uppercase;letter-spacing:.05em}.quick-actions button.recommended{background:var(--accent);color:var(--paper);box-shadow:inset 0 -3px #fff}.quick-actions button.recommended span{color:#eadcf0}.action-rail button.recommended{background:var(--accent)}
@media(max-width:1180px){.paper-toolbar{grid-template-columns:auto 1fr}.document-row{justify-content:flex-end}.sample-row{grid-column:1/-1;justify-content:flex-end}.document-row input[type="text"]{width:min(260px,35vw)}}
@media(max-width:800px){.system-state .divider,.system-state #server-state{display:none}.workbench{padding-left:8px;padding-right:8px}.paper-frame{padding:6px}.paper-page{min-height:600px;aspect-ratio:auto}.problem-card{left:14px;right:14px;width:auto}.agent-popover{left:3%!important;top:14%!important;width:94%;min-width:0;max-height:78%}.recognition-popover{left:3%;top:8%;transform:none;width:94%;min-width:0}.page-heading{left:14px;right:14px}.action-rail{width:calc(100% - 16px);bottom:8px}.action-rail button{flex:1;width:auto}.paper-toolbar{grid-template-columns:1fr;align-items:stretch}.document-row{justify-content:flex-start;flex-wrap:wrap}.document-row input[type="text"]{width:min(100%,280px)}.sample-row{grid-column:auto;width:100%;justify-content:flex-start}.sample-row label{display:none}.continuation-block{max-width:62%;font-size:16px}}@media(max-width:520px){.topbar{height:auto;min-height:66px;padding:10px 12px;align-items:flex-start}.system-state{padding-top:8px}.system-state #recognizer-state{max-width:110px;overflow:hidden;text-overflow:ellipsis}.tool{min-height:44px;padding:0 9px}.document-row{display:grid;grid-template-columns:repeat(3,1fr)}.document-row input[type="text"]{grid-column:1/-1;width:100%;min-height:44px}.document-button{min-height:44px}.document-row #document-status{grid-column:1/-1;max-width:none}.sample-row select{width:100%;min-height:44px}.recognition-preview{grid-template-columns:1fr}.recognition-controls,.continue-controls{display:grid;grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(3,1fr)}.quick-actions button{font-size:9px;padding:7px 1px}.action-rail span{display:none}.action-rail button{min-height:48px}.canvas-hint{left:14px;max-width:80%}footer{flex-direction:column}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
