@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400..800&family=Hanken+Grotesk:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap");:root{--sage:#CCD67F;--cream:#F3E4C9;--clay:#A77F60;--cocoa:#8A5F41;--sage-soft:#E6EBC4;--sage-deep:#76823A;--clay-soft:#E4D3C2;--cocoa-deep:#6B4730;--cocoa-ink:#4A3526;--bg:#F4EADA;--surface:#FCF7EE;--surface-2:#FBF3E6;--sunken:#EEE1CD;--overlay:rgba(74,53,38,0.32);--ink:#382A1E;--ink-2:#6E5A48;--ink-3:#9C8975;--ink-on-dark:#FBF3E6;--success:#5E7A2E;--success-fill:#E6EBC4;--warning:#B47D33;--warning-fill:#F3E2C2;--danger:#B0503A;--danger-fill:#F1D8CF;--info:#5E7E84;--info-fill:#DCE7E6;--viz-broker:#8A5F41;--viz-web:#76823A;--viz-agent:#B47D33;--viz-user:#B0503A;--viz-band:rgba(138,95,65,0.10);--asking:#A77F60;--transacted:#5E7A2E;--r-xs:6px;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:30px;--r-pill:999px;--shadow-xs:0 1px 2px rgba(56,42,30,0.05);--shadow-sm:0 1px 2px rgba(56,42,30,0.05),0 2px 6px rgba(56,42,30,0.05);--shadow-md:0 2px 6px rgba(56,42,30,0.05),0 10px 24px rgba(56,42,30,0.07);--shadow-lg:0 4px 12px rgba(56,42,30,0.06),0 20px 48px rgba(56,42,30,0.10);--ring-inset:inset 0 1px 0 rgba(255,255,255,0.6);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--font-display:"Bricolage Grotesque","Hanken Grotesk",system-ui,sans-serif;--font-sans:"Hanken Grotesk",system-ui,-apple-system,sans-serif;--font-mono:"Spline Sans Mono",ui-monospace,"SF Mono",Menlo,monospace;--text-display:700 clamp(40px,6vw,64px)/1.04 var(--font-display);--text-h1:700 34px/1.1 var(--font-display);--text-h2:700 26px/1.18 var(--font-display);--text-h3:600 20px/1.25 var(--font-sans);--text-h4:600 16px/1.3 var(--font-sans);--text-body:400 16px/1.55 var(--font-sans);--text-body-sm:400 14px/1.5 var(--font-sans);--text-caption:500 12px/1.4 var(--font-sans);--text-mono:500 14px/1.45 var(--font-mono);--text-mono-lg:600 22px/1.2 var(--font-mono);--tracking-tight:-0.02em;--tracking-label:0.08em}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);font:var(--text-body);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--cocoa);text-decoration:none}a:hover{color:var(--cocoa-deep);text-decoration:underline}button{font-family:inherit}.app{width:100%;max-width:1320px;margin:0 auto;padding:24px clamp(16px,3vw,32px) 80px}.app:has(>.ingest-workspace){height:100dvh;min-height:0;padding-bottom:24px;overflow:hidden;display:flex;flex-direction:column}.app:has(>.ingest-workspace) .topbar{flex:none}.app>main{animation:page-enter .22s cubic-bezier(.2,.7,.3,1) both}.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:30px;animation:topbar-enter .24s cubic-bezier(.2,.7,.3,1) both}.topbar-spacer{flex:1 1}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand,.topbar .btn{transition:transform .16s cubic-bezier(.2,.7,.3,1),opacity .16s,box-shadow .16s}.brand:hover{text-decoration:none;transform:translateY(-1px)}.brand img{width:34px;height:34px;display:block}.brand .wm{font:var(--text-h3);font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--ink)}.brand .wm small{display:block;font:var(--text-caption);font-weight:600;color:var(--ink-3);letter-spacing:0;margin-top:-2px}.nav{display:flex;gap:4px;background:var(--surface);padding:5px;border-radius:var(--r-pill);box-shadow:var(--shadow-sm),var(--ring-inset);overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:7px;font:var(--text-body-sm);font-weight:600;color:var(--ink-2);padding:8px 15px;border:none;background:transparent;border-radius:var(--r-pill);cursor:pointer;transition:background-color .18s cubic-bezier(.2,.7,.3,1),color .18s,box-shadow .18s,transform .16s cubic-bezier(.2,.7,.3,1);white-space:nowrap}.tab,.tab:hover{text-decoration:none}.tab:hover{color:var(--ink);background:var(--sunken);transform:translateY(-1px)}.tab.active{box-shadow:var(--shadow-sm)}.tab.active,.tab.active:hover{background:var(--cocoa);color:var(--ink-on-dark)}.tab svg{width:16px;height:16px;stroke-width:1.75}.tab .count{font:var(--text-mono);font-size:11px;background:rgba(0,0,0,.1);padding:1px 7px;border-radius:var(--r-pill)}.tab.active .count{background:rgba(255,255,255,.18)}.topbar .btn:hover{transform:translateY(-1px)}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes topbar-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.page-head{margin-bottom:22px}.eyebrow{font:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--sage-deep);margin-bottom:8px}.page-head h1{font:var(--text-h1);letter-spacing:var(--tracking-tight);color:var(--ink);margin:0 0 6px}.page-head p{font:var(--text-body-sm);color:var(--ink-2);margin:0;max-width:62ch}.section{margin-top:30px}.section>h2{font:var(--text-h3);color:var(--ink);margin:0 0 13px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 13px;flex-wrap:wrap}.section-head h2{font:var(--text-h3);color:var(--ink);margin:0}.muted{color:var(--ink-3);font:var(--text-body-sm)}.stack{display:grid;grid-gap:12px;gap:12px}.card-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start}.card{background:var(--surface);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-sm),var(--ring-inset)}.card.interactive{display:block;cursor:pointer;transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s;text-decoration:none}.card.interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-md),var(--ring-inset);text-decoration:none}.card.interactive:active{transform:scale(.99);box-shadow:var(--shadow-sm),var(--ring-inset)}.card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font:var(--text-h4);color:var(--ink)}.card-sub{font:var(--text-body-sm);color:var(--ink-3);margin-top:3px}.card-sub .mono{color:var(--ink-2)}.btn{font:var(--text-body-sm);font-weight:600;border:none;cursor:pointer;border-radius:var(--r-sm);padding:10px 18px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;transition:all .18s cubic-bezier(.2,.7,.3,1)}.btn svg{width:16px;height:16px;stroke-width:1.9}.btn:active{transform:scale(.97)}.btn.primary{background:var(--cocoa);color:var(--ink-on-dark);box-shadow:var(--shadow-sm)}.btn.primary:hover{background:var(--cocoa-deep);box-shadow:var(--shadow-md)}.btn.secondary{background:var(--sage);color:var(--cocoa-ink)}.btn.secondary:hover{filter:brightness(.96)}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:var(--sunken)}.btn.danger{background:transparent;color:var(--danger)}.btn.danger:hover{background:var(--danger-fill)}.btn.sm{padding:6px 13px;font-size:13px;border-radius:var(--r-xs)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--sage)}.field label{display:block;font:var(--text-caption);color:var(--ink-2);margin-bottom:6px}input.input,select.input,textarea.input{width:100%;font:var(--text-body-sm);color:var(--ink);font-family:var(--font-sans);background:var(--sunken);border:none;border-radius:var(--r-md);padding:13px 15px;box-shadow:var(--ring-inset);outline:none;resize:vertical;transition:box-shadow .18s,background .18s}input.input::placeholder,textarea.input::placeholder{color:var(--ink-3)}input.input:focus,select.input:focus,textarea.input:focus{background:var(--surface-2);box-shadow:0 0 0 2px var(--sage),var(--ring-inset)}.form-actions{display:flex;gap:12px;align-items:center}.form-msg{font:var(--text-body-sm);color:var(--ink-2)}.form-msg.ok{color:var(--success)}.form-msg.err{color:var(--danger)}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:14px;color:var(--ink-3);pointer-events:none}.search input{padding-left:40px}.search input,.seg-ctrl{border-radius:var(--r-pill)}.seg-ctrl{display:inline-flex;background:var(--sunken);padding:3px;box-shadow:var(--ring-inset);gap:2px;overflow-x:auto;scrollbar-width:none}.seg-ctrl::-webkit-scrollbar{display:none}.seg-ctrl button{border:none;background:transparent;cursor:pointer;font:var(--text-caption);font-weight:600;color:var(--ink-2);padding:6px 13px;border-radius:var(--r-pill);white-space:nowrap;transition:all .16s}.seg-ctrl button:hover{color:var(--ink)}.seg-ctrl button.on{background:var(--surface);color:var(--cocoa);box-shadow:var(--shadow-xs)}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.fchip{border:none;cursor:pointer;font:var(--text-caption);font-weight:600;padding:7px 14px;border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow-xs),var(--ring-inset);transition:all .16s;display:inline-flex;align-items:center;gap:6px}.fchip:hover{color:var(--ink);transform:translateY(-1px)}.fchip.on{background:var(--cocoa);color:var(--ink-on-dark);box-shadow:var(--shadow-sm)}.fchip .fc-ico{width:14px;height:14px}.fchip .fc-n{font:var(--text-mono);font-size:11px;opacity:.6;margin-left:1px}.fchip.on .fc-n{opacity:.75}.filter-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;background:var(--surface);border-radius:var(--r-lg);padding:15px 18px;box-shadow:var(--shadow-sm),var(--ring-inset);transition:opacity .15s}.filter-bar[data-pending]{opacity:.6}.fb-group{display:grid;grid-gap:7px;gap:7px}.fb-lbl{font:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:600;color:var(--ink-3)}.fb-types{flex:1 1;min-width:260px}.fb-right{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}.fb-select{padding:7px 12px;border-radius:var(--r-pill);width:auto;min-width:130px;max-width:220px;background:var(--sunken);font-weight:500;cursor:pointer}.fb-select:disabled{opacity:.5;cursor:not-allowed}.delta{display:inline-flex;align-items:center;gap:3px;font:var(--text-caption);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.delta svg{width:13px;height:13px;stroke-width:2.4}.delta.up{color:var(--success)}.delta.down{color:var(--danger)}.delta.flat{color:var(--ink-3)}.kpi .kpi-sub{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.chart-card{padding:18px}.chart-card .cc-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}.chart-card .cc-head h3{font:var(--text-h4);color:var(--ink);margin:0}.chart-2col{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.rbars{display:grid;grid-gap:11px;gap:11px}.rbar{display:grid;grid-template-columns:128px 1fr auto;align-items:center;grid-gap:12px;gap:12px}.rb-label{display:grid;grid-gap:1px;gap:1px;min-width:0}.rb-name{font:var(--text-body-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb-track{height:30px;display:flex;align-items:center}.rb-fill{height:30px;border-radius:var(--r-sm);min-width:3px;transition:width .5s cubic-bezier(.2,.7,.3,1)}.rb-end{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:64px}.rb-val{font:600 15px/1 var(--font-mono);color:var(--ink);white-space:nowrap}.rb-val small{font-size:10px;color:var(--ink-3);font-weight:500}.rb-n{font-size:11px;color:var(--ink-3)}@media (max-width:920px){.chart-2col{grid-template-columns:1fr}}.badge{font:var(--text-caption);font-weight:600;padding:4px 11px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.extracted,.badge.open{background:var(--sage-soft);color:var(--sage-deep)}.badge.review,.badge.warning{background:var(--warning-fill);color:var(--warning)}.badge.committed,.badge.transacted{background:var(--success-fill);color:var(--success)}.badge.asking{background:var(--clay-soft);color:var(--cocoa-deep)}.badge.abandoned,.badge.failed{background:var(--danger-fill);color:var(--danger)}.badge.neutral{background:var(--sunken);color:var(--ink-2)}.chip{font:var(--text-mono);font-size:12px;padding:4px 10px;background:var(--sunken);color:var(--ink-2);gap:5px}.chip,.src-chip{border-radius:var(--r-pill);display:inline-flex;align-items:center;white-space:nowrap}.src-chip{font:var(--text-caption);font-weight:600;padding:3px 9px;gap:6px}.src-chip .dot{width:7px;height:7px;border-radius:50%}.src-broker{background:rgba(138,95,65,.12);color:var(--viz-broker)}.src-web{background:rgba(118,130,58,.14);color:var(--viz-web)}.src-agent{background:rgba(180,125,51,.14);color:var(--viz-agent)}.src-user{background:rgba(176,80,58,.12);color:var(--viz-user)}.mono{font:var(--text-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.num{font:var(--text-mono-lg);color:var(--cocoa);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-row{display:flex;gap:28px;flex-wrap:wrap;align-items:baseline}.stat{display:flex;flex-direction:column;gap:2px}.stat .num{color:var(--ink)}.stat .lbl{font:var(--text-caption);color:var(--ink-3)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.kpi{background:var(--surface);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-sm),var(--ring-inset);display:grid;grid-gap:6px;gap:6px}.kpi .kpi-top{display:flex;align-items:center;gap:8px;color:var(--ink-3)}.kpi .kpi-lbl{font:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:600}.kpi .kpi-val{font:600 30px/1 var(--font-mono);color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0}.kpi .kpi-val .unit{font-size:15px;color:var(--ink-3);margin-left:3px}.kpi .kpi-sub{font:var(--text-caption);color:var(--ink-3)}.kpi.accent{background:linear-gradient(180deg,var(--sage-soft),var(--surface))}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font:var(--text-mono);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data th{font:var(--text-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);text-align:right;padding:0 12px 11px;font-weight:600;white-space:nowrap}table.data td.l,table.data th.l{text-align:left}table.data td{padding:10px 12px;color:var(--ink);border-top:1px solid var(--clay-soft);white-space:nowrap}table.data tr.under td{opacity:.5}table.data tbody tr{transition:background .14s}table.data tbody tr:hover{background:var(--surface-2)}.seg{font-family:var(--font-sans)}.notice{display:flex;gap:9px;align-items:flex-start;background:var(--warning-fill);color:var(--warning);border-radius:var(--r-md);padding:11px 14px;font:var(--text-body-sm)}.notice svg{width:17px;height:17px;flex:none;margin-top:1px;stroke-width:2}.notice.info{background:var(--info-fill);color:var(--info)}.notice.danger{background:var(--danger-fill);color:var(--danger)}.toast-stack{position:fixed;bottom:20px;right:20px;z-index:1000;flex-direction:column;max-width:min(380px,calc(100vw - 40px))}.toast,.toast-stack{display:flex;gap:10px}.toast{align-items:flex-start;background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:11px 12px 11px 14px;box-shadow:var(--shadow-lg),var(--ring-inset);font:var(--text-body-sm);border-left:3px solid var(--ink-3);animation:toast-in .18s ease-out}.toast svg{flex:none;margin-top:1px}.toast.success{border-left-color:var(--success);color:var(--success)}.toast.error{border-left-color:var(--danger);color:var(--danger)}.toast.info{border-left-color:var(--info,var(--cocoa))}.toast .toast-msg{color:var(--ink);flex:1 1;word-break:break-word}.toast-x{background:none;border:none;cursor:pointer;color:var(--ink-3);padding:0;display:inline-flex;flex:none}.toast-x:hover{color:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty{text-align:center;color:var(--ink-3);padding:40px 0;font:var(--text-body-sm)}.empty svg{width:30px;height:30px;display:block;margin:0 auto 10px;color:var(--sage-deep);stroke-width:1.6}.review-item{display:grid;grid-gap:11px;gap:11px}.review-extract{font:var(--text-body-sm);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.review-extract strong{color:var(--ink)}.review-hierarchy{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:8px;gap:8px}.review-kv{background:var(--sunken);border-radius:var(--r-xs);padding:7px 9px;display:grid;grid-gap:2px;gap:2px;min-width:0}.review-kv span{font:var(--text-caption);color:var(--ink-3)}.review-kv b{font:var(--text-body-sm);color:var(--ink);overflow-wrap:anywhere}.review-hierarchy-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(92px,.42fr)}.review-hierarchy-edit .review-kv{gap:6px;padding:9px 10px 10px}.review-combobox{position:relative;min-width:0}.review-hierarchy-control{min-width:0;height:38px;border-radius:var(--r-xs)!important;padding:8px 34px 8px 10px!important;overflow:hidden;text-overflow:ellipsis}.review-combobox-toggle{position:absolute;top:0;right:0;width:34px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:0 var(--r-xs) var(--r-xs) 0;background:transparent;color:var(--ink-3);cursor:pointer}.review-combobox-toggle:hover{color:var(--cocoa);background:rgba(255,255,255,.35)}.review-combobox-toggle:focus-visible{outline:2px solid var(--sage);outline-offset:-2px}.review-combobox-toggle:disabled{opacity:.45;cursor:not-allowed}.review-combobox-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.review-combobox-list{position:absolute;z-index:20;top:calc(100% + 5px);left:0;width:max(100%,230px);max-width:min(360px,calc(100vw - 48px));max-height:240px;overflow-y:auto;padding:5px;background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--shadow-lg)}.review-combobox-list button{width:100%;min-height:36px;padding:8px 9px;display:flex;align-items:center;gap:7px;border:none;border-radius:var(--r-xs);background:transparent;color:var(--ink);font:var(--text-body-sm);text-align:left;cursor:pointer}.review-combobox-list button.active,.review-combobox-list button:hover{background:var(--sunken)}.review-combobox-list button[aria-selected=true]{color:var(--cocoa-deep);font-weight:600}.review-combobox-list button span{overflow-wrap:anywhere}.review-combobox-empty{padding:9px;color:var(--ink-3);font:var(--text-caption)}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions .review-create{white-space:normal;text-align:left;max-width:100%}.raw{color:var(--ink);margin:0;white-space:pre-wrap;line-height:1.5}.back-link,.raw{font:var(--text-body-sm)}.back-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--clay);background:none;border:none;cursor:pointer;padding:0;text-decoration:none}.back-link:hover{color:var(--cocoa);text-decoration:none}.back-link svg{width:15px;height:15px;stroke-width:2}.scatter-wrap{background:var(--surface);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm),var(--ring-inset)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}.legend .li{display:flex;align-items:center;gap:6px;font:var(--text-caption);color:var(--ink-2)}.legend .dot{width:9px;height:9px;border-radius:50%}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.toolbar .search{flex:1 1;min-width:220px}.prop-list{display:grid;grid-gap:12px;gap:12px}.card.interactive.prop-card{display:grid;grid-template-columns:auto 1fr auto;grid-gap:18px;gap:18px;align-items:center;padding:16px 18px;color:inherit}.prop-ico{width:46px;height:46px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--ring-inset)}.prop-ico svg{width:24px;height:24px;stroke-width:1.7}.prop-ico.apartment{background:var(--sage-soft);color:var(--sage-deep)}.prop-ico.house,.prop-ico.project{background:var(--clay-soft);color:var(--cocoa)}.prop-ico.land{background:var(--warning-fill);color:var(--warning)}.prop-ico.unknown{background:var(--sunken);color:var(--ink-3)}.prop-main{min-width:0}.prop-name{font:var(--text-h4);color:var(--ink);gap:8px}.prop-addr,.prop-name{display:flex;align-items:center}.prop-addr{font:var(--text-body-sm);color:var(--ink-3);margin-top:2px;gap:5px}.prop-tags{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.prop-metrics{display:flex;align-items:center;gap:22px;flex:none}.prop-metric{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.prop-metric .pm-val{font:600 19px/1 var(--font-mono);color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.prop-metric .pm-lbl{font:var(--text-caption);color:var(--ink-3);white-space:nowrap}.prop-chev{color:var(--ink-3);flex:none}.range-mini{width:130px}.range-mini .rm-bar{position:relative;height:7px;border-radius:99px;background:var(--sunken);margin-top:6px}.range-mini .rm-iqr{position:absolute;height:100%;border-radius:99px;background:var(--viz-band)}.range-mini .rm-med{position:absolute;top:50%;width:3px;height:11px;border-radius:2px;background:var(--clay);transform:translate(-50%,-50%)}.range-mini .rm-scale{display:flex;justify-content:space-between;font:var(--text-mono);font-size:10px;color:var(--ink-3);margin-top:5px}.detail-hero{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:16px;gap:16px}.hero-stat{background:linear-gradient(160deg,var(--sage-soft),var(--surface) 70%);border-radius:var(--r-lg);padding:22px 24px;box-shadow:var(--shadow-sm),var(--ring-inset);display:grid;grid-gap:14px;gap:14px;align-content:start}.hero-stat .hs-lbl{font:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:600;color:var(--sage-deep)}.hero-stat .hs-big{font:700 clamp(36px,6vw,52px)/1 var(--font-mono);color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0}.hero-stat .hs-big .unit{font-size:20px;color:var(--ink-2);font-weight:600;margin-left:4px}.hero-stat .hs-meta{display:flex;gap:24px;flex-wrap:wrap}.hero-side{display:grid;grid-gap:12px;gap:12px;align-content:start}.mini-stat{background:var(--surface);border-radius:var(--r-md);padding:13px 15px;box-shadow:var(--shadow-sm),var(--ring-inset);justify-content:space-between;gap:10px}.mini-stat,.mini-stat .ms-l{display:flex;align-items:center}.mini-stat .ms-l{gap:9px;color:var(--ink-2);font:var(--text-body-sm);font-weight:500}.mini-stat .ms-v{font:600 17px/1 var(--font-mono);color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.reliability{display:flex;align-items:center;gap:8px}.rel-dots{display:flex;gap:3px}.rel-dots i{width:7px;height:7px;border-radius:50%;background:var(--sunken)}.rel-dots i.on{background:var(--success)}.rel-dots i.warn{background:var(--warning)}.src-break{display:grid;grid-gap:9px;gap:9px}.src-row{display:grid;grid-template-columns:88px 1fr auto;align-items:center;grid-gap:10px;gap:10px}.src-row .sr-lbl{font:var(--text-caption);font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}.src-row .sr-lbl .dot{width:8px;height:8px;border-radius:50%}.src-row .sr-track{height:9px;border-radius:99px;background:var(--sunken);overflow:hidden}.src-row .sr-fill{height:100%;border-radius:99px;display:block}.src-row .sr-n{font:var(--text-mono);font-size:12px;color:var(--ink-3)}.analytics-group{background:var(--surface);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm),var(--ring-inset)}.ag-head{justify-content:space-between;gap:12px;margin-bottom:6px}.ag-head,.ag-head .ag-title{display:flex;align-items:center}.ag-head .ag-title{font:var(--text-h4);color:var(--ink);gap:9px}.ag-head .pico{width:30px;height:30px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:var(--sunken);color:var(--clay)}.iqr-chart{display:grid;grid-gap:2px;gap:2px;margin-top:14px}.iqr-axis{display:flex;justify-content:space-between;font:var(--text-mono);font-size:11px;color:var(--ink-3);padding-left:160px;margin-bottom:8px}.iqr-row{display:grid;grid-template-columns:160px 1fr;align-items:center;grid-gap:14px;gap:14px;padding:9px 0;border-top:1px solid var(--clay-soft)}.iqr-row:first-of-type{border-top:none}.iqr-row.under{opacity:.55}.iqr-label{display:flex;flex-direction:column;gap:3px}.iqr-label .il-deal{font:var(--text-body-sm);font-weight:600;color:var(--ink);display:flex;align-items:center;gap:7px}.iqr-label .dot{width:9px;height:9px;border-radius:50%}.iqr-label .il-n{font:var(--text-caption);color:var(--ink-3);display:flex;align-items:center;gap:5px}.iqr-track{position:relative;height:34px}.iqr-band{height:16px;border-radius:99px}.iqr-band,.iqr-band .whisker{position:absolute;top:50%;transform:translateY(-50%)}.iqr-band .whisker{left:0;right:0;height:1.5px;background:var(--ink-3);opacity:.45}.iqr-box{position:absolute;top:50%;transform:translateY(-50%);height:16px;border-radius:6px}.iqr-median{width:3px;height:22px;border-radius:2px}.iqr-cap,.iqr-median{position:absolute;top:50%;transform:translate(-50%,-50%)}.iqr-cap{width:2px;height:11px;background:var(--ink-3);opacity:.5}.iqr-val{position:absolute;top:50%;transform:translateY(-50%);font:var(--text-mono);font-size:11px;color:var(--ink-2);white-space:nowrap;font-weight:600}.legend-bar{gap:18px;flex-wrap:wrap;margin:4px 0 16px}.legend-bar,.legend-bar .lb{display:flex;align-items:center}.legend-bar .lb{gap:7px;font:var(--text-caption);color:var(--ink-2)}.legend-bar .swatch{width:22px;height:12px;border-radius:5px}.legend-bar .medline{width:3px;height:14px;border-radius:2px;background:var(--ink)}.ingest-workspace{display:flex;flex:1 1;min-height:0;gap:16px;align-items:stretch;position:relative;overflow:hidden}.ingest-workspace .chat-grid{flex:1 1;min-width:0;min-height:0;height:100%;align-self:stretch}.sessions-rail{flex:none;width:260px;height:100%;min-height:0;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm),var(--ring-inset);display:flex;flex-direction:column;overflow:hidden;align-self:stretch}.sr-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 12px}.sr-title{font:var(--text-h4);color:var(--ink)}.sr-list{display:flex;flex:1 1;min-height:0;flex-direction:column;gap:4px;padding:0 8px 10px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.sr-item{text-align:left;border:none;background:transparent;cursor:pointer;border-radius:var(--r-md);padding:11px 12px;display:grid;grid-gap:5px;gap:5px;transition:background .14s;color:inherit;text-decoration:none}.sr-item:hover{background:var(--sunken);text-decoration:none}.sr-item.on{background:var(--sage-soft)}.sr-item-top{display:flex;align-items:center;gap:8px;justify-content:space-between}.sr-item-title{font:var(--text-body-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-item.on .sr-item-title{color:var(--cocoa-deep)}.sr-dot{width:8px;height:8px;border-radius:50%;flex:none}.sr-dot.open{background:var(--sage-deep)}.sr-dot.committed{background:var(--success)}.sr-dot.abandoned{background:var(--ink-3)}.sr-item-meta{display:flex;align-items:center;gap:6px;font:var(--text-caption);color:var(--ink-3);white-space:nowrap;overflow:hidden}.sr-empty{padding:12px;color:var(--ink-3);font:var(--text-body-sm)}.chat-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,390px);grid-gap:20px;gap:20px;align-items:stretch}.chat-panel{height:100%;min-height:0;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm),var(--ring-inset);display:flex;flex-direction:column;min-width:0;overflow:hidden}.chat-topbar{gap:12px;padding:13px 16px;border-bottom:1px solid var(--clay-soft)}.chat-topbar,.icon-btn{display:flex;align-items:center}.icon-btn{flex:none;width:36px;height:36px;border-radius:var(--r-sm);border:none;background:var(--sunken);color:var(--ink-2);cursor:default;justify-content:center;transition:all .14s}.ct-title{font:var(--text-h4);color:var(--ink);gap:9px;overflow:hidden;text-overflow:ellipsis}.ct-meta,.ct-title{display:flex;align-items:center;white-space:nowrap}.ct-meta{font:var(--text-caption);color:var(--ink-3);gap:8px;flex-wrap:wrap;margin-top:2px}.ct-meta .sep{width:3px;height:3px;border-radius:50%;background:var(--ink-3);opacity:.5}.chat-log{display:flex;flex:1 1;min-height:0;flex-direction:column;gap:14px;padding:20px;overflow-y:auto;overflow-x:hidden}.day-sep{display:flex;align-items:center;gap:12px;color:var(--ink-3);font:var(--text-caption);font-weight:600}.day-sep:after,.day-sep:before{content:"";height:1px;flex:1 1;background:var(--clay-soft)}.chat-empty{margin:auto;text-align:center;max-width:380px;padding:30px 16px;display:grid;grid-gap:10px;gap:10px;justify-items:center}.chat-empty .ce-mark{width:56px;height:56px;border-radius:var(--r-lg);background:var(--cream);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm),var(--ring-inset)}.chat-empty .ce-mark img{width:34px;height:34px}.chat-empty h3{font:var(--text-h3);color:var(--ink);margin:4px 0 0}.chat-empty p{font:var(--text-body-sm);color:var(--ink-2);margin:0;text-wrap:pretty}.msg{display:flex;gap:10px;max-width:88%}.msg.user{align-self:flex-end;flex-direction:row-reverse}.msg .avatar{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs),var(--ring-inset);overflow:hidden}.msg.assistant .avatar{background:var(--cream)}.msg.assistant .avatar img{width:20px;height:20px}.msg.user .avatar{background:var(--clay);color:var(--ink-on-dark);font:var(--text-caption);font-weight:700}.msg .bubble-wrap{display:flex;flex-direction:column;gap:3px;min-width:0}.msg.user .bubble-wrap{align-items:flex-end}.bubble{padding:10px 14px;border-radius:var(--r-md);white-space:pre-wrap;font:var(--text-body-sm);word-break:break-word}.bubble.user{background:var(--cocoa);color:var(--ink-on-dark);border-bottom-right-radius:var(--r-xs)}.bubble.assistant{background:var(--surface-2);color:var(--ink);box-shadow:var(--shadow-xs),var(--ring-inset);border-bottom-left-radius:var(--r-xs)}.msg .time{font:var(--text-caption);font-size:11px;color:var(--ink-3);padding:0 4px}.extracted-line{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font:var(--text-caption);font-weight:600;color:var(--sage-deep);background:var(--sage-soft);padding:3px 9px;border-radius:var(--r-pill)}.attachment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.attachment-list.composer{margin-top:0}.attachment-chip{max-width:220px;min-height:28px;display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--r-xs);border:0;background:rgba(255,255,255,.14);color:inherit;font:var(--text-caption);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip svg{flex:0 0 auto}.attachment-chip.removable{cursor:pointer;background:var(--surface-2);color:var(--ink-2);box-shadow:var(--ring-inset)}.composer{border-top:1px solid var(--clay-soft);padding:14px 16px 16px;display:grid;grid-gap:10px;gap:10px;background:var(--surface)}.composer .examples{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.composer .examples .lbl{font:var(--text-caption);color:var(--ink-3)}.ex-chip{border:none;cursor:pointer;font:var(--text-caption);font-weight:500;padding:5px 11px;border-radius:var(--r-pill);background:var(--sunken);color:var(--ink-2);transition:all .16s;display:inline-flex;align-items:center;gap:5px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-chip:hover{background:var(--sage-soft);color:var(--sage-deep)}.composer-field{position:relative}.composer-field textarea{padding-right:54px;background:var(--sunken);min-height:58px}.composer-send{position:absolute;right:8px;bottom:8px;width:38px;height:38px;border-radius:var(--r-sm);background:var(--cocoa);color:var(--ink-on-dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .16s;box-shadow:var(--shadow-sm)}.composer-send:hover{background:var(--cocoa-deep)}.composer-send:disabled{opacity:.4;cursor:not-allowed}.composer .hint{display:flex;align-items:center;justify-content:space-between;gap:10px;font:var(--text-caption);color:var(--ink-3)}.composer .hint kbd{font-family:var(--font-mono);font-size:11px;background:var(--sunken);padding:1px 6px;border-radius:5px;box-shadow:var(--ring-inset);color:var(--ink-2)}.composer-actions{flex-wrap:wrap}.composer-actions,.composer-locked{display:flex;gap:8px;align-items:center}.composer-locked{justify-content:center;padding:16px;border-top:1px solid var(--clay-soft);color:var(--ink-3);font:var(--text-body-sm);font-weight:500}.typing-dots{display:inline-flex;gap:4px;align-items:center;height:1em}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--ink-2);opacity:.4;animation:typing-blink 1.2s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:.9;transform:translateY(-2px)}}.draft-panel{gap:12px}.draft-card,.draft-panel{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.draft-card{border-radius:var(--r-lg);box-shadow:var(--shadow-sm),var(--ring-inset)}.draft-card,.side-tabs{background:var(--surface)}.side-tabs{flex:none;display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;padding:10px;border-bottom:1px solid var(--clay-soft)}.side-tabs .tab{justify-content:center;border:0;cursor:pointer;min-width:0}.draft-head{padding:15px 16px 14px;display:grid;grid-gap:11px;gap:11px}.draft-head .dh-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.draft-head .dh-top strong{font:var(--text-h4);color:var(--ink);white-space:nowrap}.progress-track{height:8px;border-radius:99px;background:var(--sunken);overflow:hidden;box-shadow:var(--ring-inset)}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sage-deep),var(--sage));transition:width .4s cubic-bezier(.2,.7,.3,1)}.progress-label{display:flex;align-items:center;justify-content:space-between;font:var(--text-caption);color:var(--ink-2);white-space:nowrap;gap:8px}.progress-label .ok{color:var(--success);font-weight:600;display:inline-flex;align-items:center;gap:4px}.draft-items{display:flex;flex:1 1;min-height:0;flex-direction:column;gap:9px;padding:0 12px 12px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.draft-item{background:var(--surface-2);border-radius:var(--r-md);padding:12px 13px;font:var(--text-body-sm);display:grid;grid-gap:8px;gap:8px;box-shadow:var(--ring-inset);position:relative}.draft-item .di-top{display:flex;align-items:flex-start;gap:9px}.di-ico{flex:none;width:30px;height:30px;border-radius:var(--r-sm);background:var(--sunken);color:var(--clay);display:flex;align-items:center;justify-content:center}.di-name{font:var(--text-h4);font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.di-loc{font:var(--text-caption);color:var(--ink-3);margin-top:1px;display:flex;align-items:center;gap:4px}.di-fields{display:flex;flex-wrap:wrap;gap:5px}.di-field{font:var(--text-mono);font-size:11px;background:var(--sunken);color:var(--ink-2);padding:2px 8px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.di-field.price{background:var(--sage-soft);color:var(--sage-deep);font-weight:600}.di-field.missing{background:var(--danger-fill);color:var(--danger)}.di-conf{display:flex;align-items:center;gap:7px;font:var(--text-caption);color:var(--ink-3)}.conf-meter{flex:1 1;height:5px;border-radius:99px;background:var(--sunken);overflow:hidden;max-width:90px}.conf-meter i{display:block;height:100%;border-radius:99px;background:var(--clay)}.draft-item .dt{font-weight:600;color:var(--ink)}.draft-item .dmeta{color:var(--ink-2);font-size:13px}.draft-item .dsub{color:var(--ink-3);font-size:11px;font-family:var(--font-mono)}.draft-flag{font:var(--text-caption);margin-top:2px;display:inline-flex;align-items:center;gap:5px}.draft-flag.needs{color:var(--danger)}.draft-flag.ok{color:var(--success)}.draft-flag svg{width:13px;height:13px;stroke-width:2}.commit-zone{padding:14px 16px 16px;border-top:1px solid var(--clay-soft);display:grid;grid-gap:9px;gap:9px}.debug-panel{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:12px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.debug-panel>.muted{margin:4px;font:var(--text-body-sm)}.debug-event{background:var(--surface-2);border-radius:var(--r-md);box-shadow:var(--ring-inset);overflow:hidden}.debug-event summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(82px,auto) minmax(0,1fr) auto;align-items:center;grid-gap:7px;gap:7px;padding:10px 11px;font:var(--text-caption);color:var(--ink-2)}.debug-event summary::-webkit-details-marker{display:none}.debug-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.debug-dot.started{background:var(--clay)}.debug-dot.ok{background:var(--success)}.debug-dot.warning{background:var(--warning)}.debug-dot.error{background:var(--danger)}.debug-phase{font:var(--text-mono);font-size:11px;color:var(--ink);white-space:nowrap}.debug-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.debug-time{color:var(--ink-3);white-space:nowrap}.debug-json,.debug-time{font:var(--text-mono);font-size:11px}.debug-json{margin:0;padding:0 11px 11px 26px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--ink-2)}.commit-summary{background:var(--success-fill);border-radius:var(--r-md);padding:13px 14px;display:grid;grid-gap:9px;gap:9px}.commit-summary .cs-head{font:var(--text-h4);color:var(--success);display:flex;align-items:center;gap:7px}.cs-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.cs-stat{display:flex;flex-direction:column}.cs-stat b{font:600 20px/1 var(--font-mono);color:var(--ink)}.cs-stat span{font:var(--text-caption);color:var(--ink-2);margin-top:2px}.btn.block{width:100%}.prov{background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--ring-inset)}.prov .raw{font-size:13px;color:var(--ink-2)}@media (max-width:920px){.detail-hero{grid-template-columns:1fr}.app:has(>.ingest-workspace){height:auto;min-height:100dvh;padding-bottom:40px;overflow:visible}.ingest-workspace{flex:none;flex-direction:column;overflow:visible}.ingest-workspace .chat-grid{height:auto}.sessions-rail{width:100%;height:240px;max-height:240px}}@media (max-width:720px){.topbar-spacer{display:none}.nav{order:3;width:100%;flex-basis:100%}.iqr-axis{padding-left:0}.iqr-row{grid-template-columns:1fr;gap:8px}.iqr-label{flex-direction:row;align-items:center;justify-content:space-between}.card.interactive.prop-card{grid-template-columns:auto 1fr;grid-template-areas:"ico main" "metrics metrics";row-gap:14px}.prop-ico{grid-area:ico}.prop-main{grid-area:main}.prop-metrics{grid-area:metrics;justify-content:space-between;width:100%;gap:12px;padding-top:14px;border-top:1px solid var(--clay-soft)}.prop-chev{display:none}.range-mini{width:auto;flex:1 1}.hero-stat{padding:18px}.chat-grid{grid-template-columns:1fr}.chat-panel,.draft-card,.draft-panel{height:auto}.chat-log{flex:none;min-height:340px;max-height:48vh}.msg{max-width:94%}.composer .hint{align-items:flex-start;flex-direction:column}.review-hierarchy-edit{grid-template-columns:1fr}}@media (max-width:480px){.app{padding-left:14px;padding-right:14px}.prop-metrics{flex-wrap:wrap}.brand .wm{font-size:18px}}@media (prefers-reduced-motion:reduce){.app>main,.topbar{animation:none}.brand,.tab,.topbar .btn{transition:none}.brand:hover,.tab:hover,.topbar .btn:hover{transform:none}}