:root{--bg:#f6f5f2;--surface:#ffffff;--ink:#1c2430;--muted:#6b7484;--line:#e3e1da;--accent:#14563f;--accent-soft:#e4efe9;--danger:#a3332c;--danger-soft:#f9e9e7;--warn:#8a6110;--warn-soft:#f8f0dd;--ok:#14563f;--ok-soft:#e4efe9;--radius:10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}.page{transition:margin-right .25s ease}@media (min-width:1340px){.page.chat-docked{margin-right:var(--chat-width,440px)}}.shell{max-width:860px;margin:0 auto;padding:32px 20px 80px}.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}.masthead h1{font-size:26px;font-weight:700;letter-spacing:-.02em;margin:0}.masthead .sub{color:var(--muted);margin:4px 0 0;font-size:14px}.badge{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap}.badge .dot{width:8px;height:8px;border-radius:50%;background:#c9c5bb}.badge.ready .dot{background:#2c9463}.badge.error .dot{background:var(--danger)}.stepper{display:flex;gap:4px;margin:26px 0 22px}.stepper button{flex:1 1;border:0;background:none;padding:0 0 10px;font:inherit;font-size:13px;color:var(--muted);border-bottom:3px solid var(--line);cursor:pointer;text-align:left;transition:color .15s,border-color .15s}.stepper button .num{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.stepper button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.stepper button.done{color:var(--ink);border-bottom-color:#9db8ab}.stepper button:disabled{cursor:default}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.panel h2{margin:0 0 4px;font-size:19px}.panel>.hint{margin:0 0 20px;color:var(--muted);font-size:13.5px}.card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;background:#fcfbf9}.card.fixed{background:var(--accent-soft);border-color:#cfe0d7}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.card-head strong{font-size:14.5px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px 16px;gap:14px 16px}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1/-1}.field label{font-size:12.5px;font-weight:600;color:#3d4653}.field input[type=date],.field input[type=number],.field input[type=text],.field select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid #9db8ab;outline-offset:0;border-color:var(--accent)}.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px}.check{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check input{width:15px;height:15px;accent-color:var(--accent)}details.advanced{margin-top:12px;font-size:13px}details.advanced summary{cursor:pointer;color:var(--muted);font-weight:600}details.advanced .checks{margin-top:10px}.btn{font:inherit;font-size:14px;font-weight:600;padding:9px 18px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .15s}.btn:hover{background:#f1efe9}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#0f4632}.btn.subtle{border:1px dashed #b9b4a7;background:none;color:var(--accent);width:100%;padding:10px}.btn.subtle:hover{background:var(--accent-soft)}.btn.danger-link{border:0;background:none;color:var(--danger);font-size:13px;padding:4px 6px}.btn:disabled{opacity:.5;cursor:default}.nav-row{display:flex;justify-content:space-between;margin-top:22px}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{font:inherit;font-size:13px;padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:all .12s}.pill.on{background:var(--accent);border-color:var(--accent);color:#fff}.witness-add{display:flex;gap:8px;margin-top:10px}.witness-add input{flex:1 1;font:inherit;font-size:13.5px;padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}.witness-add input:focus{outline:2px solid #9db8ab;border-color:var(--accent)}.result-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-top:8px}@media (max-width:700px){.result-grid{grid-template-columns:1fr}}.result-card{border:1px solid var(--line);border-radius:var(--radius);background:#fcfbf9;padding:18px}.result-card h3{margin:0 0 2px;font-size:16px}.result-card .subtitle{color:var(--muted);font-size:12.5px;margin:0 0 14px}.verdict{display:inline-block;font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:999px;margin-bottom:12px}.verdict.ok{background:var(--ok-soft);color:var(--ok)}.verdict.bad{background:var(--danger-soft);color:var(--danger)}.share-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.share-row:last-child{border-bottom:0}.share-row .frac{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.result-section{margin-top:14px}.result-section h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.msg{display:flex;gap:9px;align-items:flex-start;font-size:13px;padding:8px 11px;border-radius:7px;margin-bottom:6px}.msg.block{background:var(--danger-soft);color:#7c2721}.msg.warn{background:var(--warn-soft);color:#6d4d0d}.msg .code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px;opacity:.65;white-space:nowrap;padding-top:2px}.error-box{background:var(--danger-soft);border:1px solid #ecc8c4;color:#7c2721;border-radius:var(--radius);padding:14px 16px;font-size:13.5px;overflow-wrap:anywhere}.empty-note{color:var(--muted);font-size:13.5px;font-style:italic}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-3px;margin-right:8px}@keyframes spin{to{transform:rotate(1turn)}}.footnote{margin-top:26px;color:var(--muted);font-size:12.5px;text-align:center}.footnote a{color:var(--accent)}.chat-fab{position:fixed;right:22px;bottom:22px;z-index:40;display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;font-weight:600;padding:12px 18px;border-radius:999px;border:0;background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(20,86,63,.35)}.chat-fab:hover{background:#0f4632}.chat-panel{position:fixed;top:0;right:0;bottom:0;z-index:50;width:min(var(--chat-width,440px),100vw);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line);box-shadow:-12px 0 32px rgba(28,36,48,.12)}.chat-resize{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;touch-action:none;z-index:1}.chat-resize:hover{background:linear-gradient(to right,var(--accent),transparent);opacity:.35}body.chat-resizing{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}body.chat-resizing .page{transition:none}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.chat-head strong{display:block;font-size:15px}.chat-close{border:0;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 8px}.chat-close:hover{color:var(--ink)}.chat-log{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.chat-empty{color:var(--muted);font-size:13.5px}.chat-empty p{margin:0 0 12px}.chat-suggestion{display:block;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin-bottom:8px;cursor:pointer}.chat-suggestion:hover{background:var(--accent-soft)}.chat-bubble{max-width:88%;padding:9px 13px;border-radius:12px;font-size:13.5px;overflow-wrap:anywhere}.chat-bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}.chat-bubble.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.chat-bubble.assistant.error{background:var(--danger-soft);border-color:#ecc8c4;color:#7c2721}.chat-status,.chat-typing{color:var(--muted)}.chat-status{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;font-style:italic}.chat-status .spinner{width:12px;height:12px;margin-right:0}.tool-checks{margin-top:8px}.tool-line{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.tool-tick{color:var(--accent);font-weight:700}.tool-inspect{margin-left:auto;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:var(--muted);padding:2px 8px;cursor:pointer}.tool-inspect:hover{background:var(--accent-soft);color:var(--accent)}.json-inspector{margin-top:8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);padding:10px 12px;max-height:280px;overflow:auto;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;line-height:1.6}.json-call+.json-call{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.json-call-name{font-weight:700;color:var(--ink);margin-bottom:4px}.json-section{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:6px 0 2px}.json-node summary{cursor:pointer;list-style:none}.json-node summary:before{content:"▸ ";color:var(--muted)}.json-node[open]>summary:before{content:"▾ "}.json-children{padding-left:16px}.json-key{color:#7c5814}.json-preview{color:var(--muted)}.json-val.json-string{color:#14563f}.json-val.json-number{color:#1d4ed8}.json-val.json-boolean,.json-val.json-null{color:#a3332c}.json-muted{color:var(--muted);font-style:italic}.chat-bubble.assistant>:first-child{margin-top:0}.chat-bubble.assistant>:last-child{margin-bottom:0}.chat-bubble.assistant blockquote,.chat-bubble.assistant ol,.chat-bubble.assistant p,.chat-bubble.assistant pre,.chat-bubble.assistant table,.chat-bubble.assistant ul{margin:8px 0}.chat-bubble.assistant ol,.chat-bubble.assistant ul{padding-left:20px}.chat-bubble.assistant li{margin:3px 0}.chat-bubble.assistant h1,.chat-bubble.assistant h2,.chat-bubble.assistant h3,.chat-bubble.assistant h4{font-size:13.5px;margin:12px 0 5px}.chat-bubble.assistant code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;background:var(--accent-soft);border-radius:4px;padding:1px 5px}.chat-bubble.assistant pre{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:10px 12px;overflow-x:auto}.chat-bubble.assistant pre code{background:none;padding:0}.chat-bubble.assistant table{border-collapse:collapse;font-size:12.5px;display:block;overflow-x:auto}.chat-bubble.assistant td,.chat-bubble.assistant th{border:1px solid var(--line);padding:4px 8px;text-align:left}.chat-bubble.assistant th{background:var(--bg)}.chat-bubble.assistant blockquote{border-left:3px solid var(--line);padding-left:10px;color:var(--muted)}.chat-bubble.assistant a{color:var(--accent)}.chat-bubble.assistant hr{border:0;border-top:1px solid var(--line);margin:10px 0}.chat-bubble-attach{display:block;font-size:12px;opacity:.85;margin-bottom:4px}.chat-attach{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;background:var(--accent-soft);border:1px solid #cfe0d7;border-radius:999px;padding:4px 8px 4px 12px;margin-bottom:8px}.chat-attach button{border:0;background:none;font-size:16px;line-height:1;color:var(--muted);cursor:pointer;padding:0 3px}.chat-attach button:hover{color:var(--danger)}.chat-clip{border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:15px;padding:0 11px;cursor:pointer}.chat-clip:hover{background:var(--accent-soft)}.chat-clip:disabled{opacity:.5;cursor:default}.extract-card{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px solid #cfe0d7;background:var(--accent-soft);border-radius:8px;font-size:13px}.extract-card .btn{padding:6px 14px;font-size:13px}.extract-done{font-weight:700;color:var(--accent)}.extract-card .tool-inspect{margin-left:8px}.chat-foot{border-top:1px solid var(--line);padding:10px 14px 14px}.chat-context{font-size:12.5px;color:var(--muted);margin-bottom:8px}.chat-input-row{display:flex;align-items:flex-end;gap:8px}.chat-input-row textarea{flex:1 1;min-width:0;font:inherit;font-size:14px;line-height:1.45;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);resize:none;overflow-y:hidden;max-height:160px}.chat-input-row textarea:focus{outline:2px solid #9db8ab;border-color:var(--accent)}.chat-input-row .btn,.chat-input-row .chat-clip{height:40px}