:root{--ink:#18211d;--ink-2:#29352f;--paper:#efede5;--paper-2:#e3e0d6;--line:#c9c4b6;--signal:#df5b32;--mint:#b6d3c2;--white:#faf9f4;--muted:#72776f;--ok:#3f765d;--warn:#a64b2b;--shadow:0 18px 50px rgba(22,30,26,.16)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:"Bahnschrift","DIN Alternate","Aptos Narrow",sans-serif;overflow:hidden}.hidden{display:none!important}.grain{position:fixed;inset:0;pointer-events:none;opacity:.055;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}
button,input,select,textarea{font:inherit}button{cursor:pointer}.eyebrow{letter-spacing:.16em;font-size:11px;font-weight:700;color:var(--signal);margin:0 0 12px}.primary{border:0;background:var(--signal);color:#fff;padding:13px 18px;font-weight:700;letter-spacing:.02em;box-shadow:4px 4px 0 var(--ink);transition:.18s transform,.18s box-shadow}.primary:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.primary span{margin-left:18px}.wide{width:100%}.ghost{border:1px solid #526158;background:transparent;color:#edf0eb;padding:9px 12px}.icon-button{border:0;background:transparent;font-size:22px;color:inherit}.login-shell{min-height:100%;display:grid;grid-template-columns:minmax(420px,620px) 1fr;background:var(--ink)}.login-card{background:var(--paper);padding:clamp(44px,8vh,90px) clamp(44px,7vw,100px);position:relative}.index-mark{position:absolute;right:32px;top:28px;border-top:2px solid var(--signal);padding-top:6px;font-size:11px;letter-spacing:.14em}.login-card h1{font:700 clamp(54px,7vw,88px)/.9 Georgia,serif;letter-spacing:-.07em;margin:0 0 30px}.login-card h1 span{color:var(--signal)}.login-copy{font:20px/1.45 Georgia,serif;max-width:440px;margin-bottom:42px;color:#46514a}.login-card label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;margin:18px 0}.login-card input{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid #918f86;background:transparent;padding:10px 2px;font-size:18px;outline:none}.login-card input:focus{border-color:var(--signal)}.form-error{color:var(--warn);min-height:20px;font-size:13px}.security-note{position:absolute;bottom:28px;font-size:12px;color:var(--muted)}.security-note i{display:inline-block;width:7px;height:7px;background:var(--ok);border-radius:50%;margin-right:8px}.login-drawing{position:relative;overflow:hidden;background:linear-gradient(135deg,#1e2923,#101713)}.login-drawing:before,.canvas-wrap:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(182,211,194,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(182,211,194,.08) 1px,transparent 1px);background-size:44px 44px}.orbital{position:absolute;border:1px solid rgba(182,211,194,.38);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.o1{width:22vw;height:22vw}.o2{width:38vw;height:38vw}.o3{width:58vw;height:58vw}.orbital:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--signal);left:50%;top:-6px}.cross{position:absolute;width:70px;height:70px}.cross:before,.cross:after{content:"";position:absolute;background:rgba(239,237,229,.5)}.cross:before{width:100%;height:1px;top:50%}.cross:after{height:100%;width:1px;left:50%}.x1{left:15%;top:23%}.x2{right:12%;bottom:20%}.dimension{position:absolute;right:15%;top:22%;color:var(--paper);font:28px Georgia,serif;border-bottom:1px solid var(--signal);padding:0 18px 7px}
.app-shell{height:100%;display:grid;grid-template-rows:66px 1fr}.topbar{background:var(--ink);color:var(--white);display:flex;align-items:center;padding:0 20px;border-bottom:1px solid #35433c;gap:30px}.brand{color:inherit;text-decoration:none;font:25px Georgia,serif;letter-spacing:-.04em}.brand b{color:var(--signal)}.brand small{font:9px Bahnschrift,sans-serif;letter-spacing:.14em;border:1px solid #536158;padding:3px 5px;margin-left:9px;vertical-align:middle}.system-state{margin-right:auto;font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#abb4ad}.system-state span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#79b28f;box-shadow:0 0 0 4px rgba(121,178,143,.12);margin-right:9px}.top-actions{display:flex;align-items:center;gap:9px}.user-chip{display:flex;gap:9px;align-items:center;margin-left:10px}.user-chip>span{display:grid;place-items:center;width:32px;height:32px;background:var(--mint);color:var(--ink);font-weight:800}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:12px}.user-chip small{font-size:9px;text-transform:uppercase;color:#9ba69e}.workspace{display:grid;grid-template-columns:276px minmax(460px,1fr) 390px;min-height:0}.history-panel,.result-panel{background:var(--paper);min-width:0;overflow:auto}.history-panel{border-right:1px solid var(--line);padding:18px 14px 14px}.result-panel{border-left:1px solid var(--line);padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-heading>div{display:flex;align-items:center;gap:9px}.panel-heading h2{font:25px Georgia,serif;margin:0}.section-index{font-size:10px;color:var(--signal);border-top:2px solid var(--signal);padding-top:4px}.square-button{width:34px;height:34px;background:var(--ink);color:white;border:0;font-size:20px}.search-box{display:flex;border-bottom:1px solid var(--line);gap:8px;padding:8px 2px;margin-bottom:11px}.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:12px}.history-list{display:flex;flex-direction:column;gap:6px}.history-item{border:1px solid transparent;background:transparent;text-align:left;padding:12px;position:relative}.history-item:hover{background:#e8e5dc}.history-item.active{background:var(--white);border-color:var(--line);box-shadow:3px 3px 0 var(--mint)}.history-item b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item small{display:flex;justify-content:space-between;color:var(--muted);margin-top:7px;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a7aaa4;margin-right:5px}.status-dot.complete{background:var(--ok)}.status-dot.analyzing{background:var(--signal);animation:pulse 1.2s infinite}.status-dot.error{background:#bd3d32}.upload-zone{border:1px dashed #a8a497;margin-top:14px;padding:16px;text-align:center;transition:.2s}.upload-zone.drag{border-color:var(--signal);background:#f8e4dc}.upload-zone b,.upload-zone span{display:block}.upload-zone b{font-size:11px}.upload-zone span{font-size:9px;color:var(--muted);margin-top:5px}.upload-glyph{font-size:22px;color:var(--signal)}
.viewer-panel{background:#222a26;position:relative;min-width:0;overflow:hidden}.empty-state{height:100%;display:grid;place-content:center;justify-items:center;text-align:center;color:#eef0ea;padding:40px}.empty-state h2{font:42px Georgia,serif;margin:3px}.empty-state>p:not(.eyebrow){color:#9eaaa2;max-width:480px;line-height:1.5}.radar{width:190px;height:190px;border:1px solid #516159;border-radius:50%;position:relative;margin-bottom:30px}.radar span{position:absolute;border:1px solid #3d4b44;border-radius:50%;inset:25px}.radar span+span{inset:58px}.radar:before,.radar:after{content:"";position:absolute;background:#46544d}.radar:before{width:1px;height:100%;left:50%}.radar:after{height:1px;width:100%;top:50%}.radar i{position:absolute;left:50%;top:50%;width:50%;height:1px;background:var(--signal);transform-origin:left;animation:sweep 3.5s linear infinite}.document-view{height:100%;display:grid;grid-template-rows:54px 1fr 72px}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;background:#1a211e;color:white;padding:0 15px;border-bottom:1px solid #3a4640}.document-title{display:flex;align-items:center;min-width:0;gap:10px}.document-title span{font-size:8px;letter-spacing:.12em;background:var(--signal);padding:4px 6px}.document-title b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-controls{display:flex;align-items:center;gap:6px}.switch{font-size:9px;text-transform:uppercase;display:flex;align-items:center;gap:6px;margin-right:6px}.switch input{display:none}.switch span{width:27px;height:15px;border:1px solid #718078;position:relative}.switch span:after{content:"";position:absolute;width:9px;height:9px;left:2px;top:2px;background:#7d8982;transition:.2s}.switch input:checked+span:after{left:14px;background:var(--signal)}.tool-button{border:1px solid #516159;background:transparent;color:white;width:26px;height:26px}.viewer-controls output{font-size:9px;width:34px;text-align:center}.viewer-controls select{background:#29332e;color:#fff;border:1px solid #516159;padding:5px;font-size:9px}.canvas-wrap{position:relative;overflow:auto;display:grid;place-items:center;padding:22px}.canvas-wrap img{position:relative;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 14px 36px rgba(0,0,0,.5);transition:.2s width}.pipeline-strip{display:flex;align-items:center;background:#18201c;color:#fff;border-top:1px solid #3d4943;padding:10px 14px;gap:14px}.pipeline-strip>div{display:flex;align-items:center;gap:7px;min-width:100px;color:#7f8d85}.pipeline-strip i{font-style:normal;border:1px solid #59665f;width:25px;height:25px;display:grid;place-items:center;font-size:9px}.pipeline-strip b,.pipeline-strip small{display:block}.pipeline-strip b{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.pipeline-strip small{font-size:8px}.pipeline-strip .done{color:#dce3de}.pipeline-strip .done i{border-color:var(--ok);color:#9dceb3}.pipeline-strip .active-step{color:#fff}.pipeline-strip .active-step i{background:var(--signal);border-color:var(--signal)}.pipeline-strip .primary{margin-left:auto;padding:10px 13px;font-size:10px;box-shadow:none}
.result-heading{position:sticky;top:-18px;background:var(--paper);z-index:2;padding-top:18px}.confidence{font:700 12px Georgia,serif;border:1px solid var(--line);padding:7px}.result-empty{height:70%;display:grid;place-content:center;text-align:center;color:var(--muted)}.result-empty span{font-size:42px;color:var(--line)}.result-empty p{max-width:190px;font:16px/1.45 Georgia,serif}.summary-card{border-left:3px solid var(--signal);padding:4px 0 4px 13px}.summary-card small{font-size:9px;color:var(--signal);letter-spacing:.09em}.summary-card h3{font:24px/1.05 Georgia,serif;margin:5px 0}.summary-card p{font-size:11px;line-height:1.5;color:#59625d}.tabs{display:flex;border-bottom:1px solid var(--line);margin:17px 0}.tabs button{border:0;background:transparent;padding:9px 10px 8px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--ink);border-color:var(--signal)}.result-section{margin:17px 0}.result-section h4{font-size:10px;text-transform:uppercase;letter-spacing:.11em;margin:0 0 9px;display:flex;justify-content:space-between}.result-section h4 span{color:var(--signal)}.fact-row{background:rgba(255,255,255,.45);border:1px solid #d4d0c5;padding:9px 10px;margin-bottom:5px;font-size:10px}.fact-row .fact-top{display:flex;justify-content:space-between;gap:9px}.fact-row b{font-size:11px}.fact-row small{display:block;color:var(--muted);margin-top:5px;line-height:1.35}.confidence-bar{width:35px;height:3px;background:#dad6cb;margin-top:5px}.confidence-bar i{display:block;height:100%;background:var(--ok)}.empty-list{font:italic 12px Georgia,serif;color:var(--muted)}.warning-card{border-left:2px solid #c88139;background:#f3e7d6;padding:9px;margin-bottom:6px;font-size:10px}.warning-card.critical{border-color:#b53d34;background:#f3dbd7}.warning-card b{display:block;margin-bottom:4px}.feedback-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.feedback-label textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);background:var(--white);padding:9px;resize:vertical;font-size:11px}.review-actions{display:flex;gap:7px;margin-top:9px}.review-actions button{flex:1;padding:9px;font-size:9px;text-transform:uppercase;font-weight:700}.secondary{border:1px solid var(--ink);background:transparent}.accept{border:0;background:var(--ok);color:white}
dialog{border:0;padding:0;background:var(--paper);color:var(--ink);width:min(650px,90vw);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(13,19,16,.72)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px;border-bottom:1px solid var(--line)}.dialog-head h2{font:32px Georgia,serif;margin:0}.dialog-head .eyebrow{margin-bottom:5px}#dialogContent{padding:22px;max-height:65vh;overflow:auto}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.admin-grid label{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.admin-grid input,.admin-grid select{display:block;width:100%;border:1px solid var(--line);background:var(--white);padding:9px;margin-top:5px}.admin-grid .primary{align-self:end}.admin-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:10px 2px;font-size:11px}.admin-row small{color:var(--muted)}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:20;display:grid;gap:8px}.toast{background:var(--ink);color:white;padding:12px 15px;min-width:260px;box-shadow:var(--shadow);font-size:11px;border-left:3px solid var(--mint)}.toast.error{border-color:var(--signal)}@keyframes pulse{50%{opacity:.25}}@keyframes sweep{to{transform:rotate(360deg)}}
.top-actions .ghost span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:5px;background:var(--signal);color:#fff;font-size:9px}.learn-check{display:grid;grid-template-columns:20px 1fr;column-gap:8px;margin-top:11px;padding:10px;background:#dfe9e1;border-left:3px solid var(--ok);cursor:pointer}.learn-check input{display:none}.learn-check span{width:17px;height:17px;border:1px solid var(--ok);grid-row:1/3;position:relative}.learn-check input:checked+span:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:var(--ok);font-weight:900}.learn-check b{font-size:9px;text-transform:uppercase;letter-spacing:.05em}.learn-check small{color:var(--muted);font-size:8px;margin-top:3px}.json-editor{margin-top:9px;border:1px solid var(--line);background:#e8e5dc;padding:8px}.json-editor summary{cursor:pointer;font-size:9px;text-transform:uppercase;font-weight:700}.json-editor textarea{width:100%;margin-top:8px;background:#15201b;color:#d6e2da;border:0;padding:9px;font:9px/1.45 Consolas,monospace;resize:vertical}.json-editor p{font-size:8px;color:var(--muted);margin:5px 0 0}.learning-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:17px}.learning-stat{background:var(--ink);color:white;padding:14px}.learning-stat b{font:27px Georgia,serif;color:var(--mint);display:block}.learning-stat small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#a9b5ae}.example-row{display:grid;grid-template-columns:1fr 90px 90px;gap:10px;align-items:center;border-top:1px solid var(--line);padding:11px 2px}.example-row b,.example-row small{display:block}.example-row small{color:var(--muted);margin-top:3px}.score-pill{font:18px Georgia,serif;text-align:center}.toggle-example{border:1px solid var(--ink);background:transparent;padding:7px;font-size:9px}.toggle-example.active{background:var(--ok);color:#fff;border-color:var(--ok)}dialog{width:min(760px,92vw)}
@media(max-width:1180px){.workspace{grid-template-columns:235px minmax(430px,1fr) 330px}.result-panel{padding:14px}.history-panel{padding:14px 10px}.top-actions .ghost{display:none}}@media(max-width:900px){body{overflow:auto}.app-shell{height:auto;min-height:100%}.workspace{grid-template-columns:220px 1fr;grid-template-rows:calc(100vh - 66px) auto}.result-panel{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.login-shell{grid-template-columns:1fr}.login-drawing{display:none}}@media(max-width:650px){.workspace{display:block}.history-panel{height:auto}.viewer-panel{height:75vh}.topbar{padding:0 10px}.system-state,.user-chip div{display:none}.login-card{padding:55px 28px}.security-note{position:static;margin-top:25px}}
