@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#12231f;--muted:#64736e;--line:#dbe4de;--paper:#f7f8f4;--panel:#fff;--forest:#0f5d45;--lime:#b8dd69;--amber:#e49c3e;--rose:#c95d4f;--soft-green:#e8f3e9}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:Manrope,sans-serif;color:var(--ink)}.shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.rail{background:#112a23;color:#eaf3ec;padding:34px 24px;display:flex;flex-direction:column}.brand{color:white;text-decoration:none;display:flex;gap:10px;line-height:1.03;font-size:16px;letter-spacing:.3px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--lime);color:#16342a;display:grid;place-items:center;font:bold 21px 'Playfair Display'}.rail nav{margin-top:76px;display:grid;gap:10px}.rail nav a{color:#aabbb5;text-decoration:none;padding:11px 9px;border-radius:8px;font-size:13px}.rail nav a span{font:11px 'DM Mono';margin-right:12px}.rail nav a.active,.rail nav a:hover{color:white;background:#234238}.rail-bottom{margin-top:auto;color:#b6c7bf;font-size:12px;line-height:1.7}.pulse{display:inline-block;width:8px;height:8px;border-radius:9px;background:var(--lime);margin-right:6px}.workspace{padding:42px clamp(28px,5vw,84px);max-width:1480px;width:100%}header{display:flex;justify-content:space-between;gap:24px;align-items:start;margin-bottom:32px}.eyebrow{font:500 11px 'DM Mono';letter-spacing:.1em;color:var(--forest);margin:0 0 8px}h1{font:700 clamp(29px,3.2vw,47px)/1.14 'Playfair Display';margin:0;max-width:670px}h2{font-size:20px;margin:0 0 7px;letter-spacing:-.5px}.hero-card{background:var(--forest);color:#fff;padding:27px 30px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 14px 28px #15312621}.hero-card .eyebrow{color:#b5d985}.hero-card h2{font-size:25px}.hero-card p:not(.eyebrow){margin:0;color:#d4e5db;font-size:14px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}button,.upload{border:1px solid #c8d6ce;background:white;color:#16342a;font:600 12px Manrope;padding:11px 15px;border-radius:8px;cursor:pointer;transition:.2s}.upload input{display:none}.hero-card button,.upload{background:transparent;color:#fff;border-color:#6b9280}.hero-card button:hover,.upload:hover{background:#ffffff1a}.secondary:hover{background:#edf4ef}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.metrics article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}.metrics article{padding:18px}.metrics p{font:500 10px 'DM Mono';letter-spacing:.08em;color:var(--muted);margin:0 0 11px}.metrics strong{font:700 28px 'Playfair Display';display:block}.metrics span{font-size:11px;color:var(--muted)}.panel{padding:26px;margin-top:18px}.section-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.source-badge{font:500 10px 'DM Mono';color:var(--forest);background:var(--soft-green);border-radius:20px;padding:6px 9px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:680px}th{text-align:left;font:500 10px 'DM Mono';color:var(--muted);letter-spacing:.07em;padding:11px 9px;border-bottom:1px solid var(--line)}td{font-size:13px;padding:14px 9px;border-bottom:1px solid #edf1ee}tr:last-child td{border-bottom:0}.plot-id{font-weight:700}.plot-sub{display:block;color:var(--muted);font-size:11px;margin-top:2px}.status{display:inline-flex;border-radius:20px;padding:5px 8px;font:500 10px 'DM Mono';white-space:nowrap}.pass{background:#e5f4e9;color:#16714d}.review{background:#fff2d9;color:#9b6516}.fail{background:#fbe6e3;color:#a74337}.data{background:#eef0ef;color:#5f6c67}.detail-btn{padding:6px 8px;font-size:11px}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.split .panel{min-height:267px}.empty-state{color:var(--muted);font-size:13px;line-height:1.7;border:1px dashed var(--line);padding:26px;border-radius:8px}.evidence-list{display:grid;gap:11px}.evidence-row{padding:12px;background:#f8faf8;border-radius:8px;font-size:12px}.evidence-row strong{display:block;margin-bottom:4px}.evidence-meta{font:10px 'DM Mono';color:var(--muted)}.dds-card p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.65}.dds-status{font-size:12px;padding:10px;border-radius:7px;background:#f4f6f4;margin:17px 0}.primary{background:var(--forest);border-color:var(--forest);color:white;width:100%}.primary:not(:disabled):hover{background:#0a4836}.primary:disabled{opacity:.45;cursor:not-allowed}.dds-card small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:12px}footer{font:11px 'DM Mono';color:var(--muted);padding:27px 0 5px}@media(max-width:850px){.shell{display:block}.rail{display:none}.workspace{padding:25px 18px}.metrics{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.hero-card,header{align-items:start;flex-direction:column}}@media(max-width:460px){.metrics{grid-template-columns:1fr}.hero-actions{width:100%}.hero-actions>*{flex:1;text-align:center}}
.gpt-note{font-size:13px;color:var(--muted);line-height:1.65;margin:0 0 14px;max-width:760px}.gpt-controls{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.gpt-controls input{flex:1;min-width:220px;border:1px solid var(--line);border-radius:8px;padding:11px 13px;font:500 12px 'DM Mono';color:var(--ink);background:#fbfcfa}.gpt-controls input:focus{outline:2px solid var(--forest)}.insight-output{white-space:pre-wrap;font-size:13px;line-height:1.7;background:#f8faf8;border:1px solid var(--line);border-radius:8px;padding:18px}.map-canvas{height:85vh;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;color:var(--muted);font-size:13px;overflow:hidden;z-index:0}.draw-controls{margin-top:14px}.draw-controls input{font-family:Manrope}.draw-steps{display:flex;gap:16px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 14px;font-size:12px;color:var(--muted)}.draw-steps span{font:500 10px 'DM Mono';color:var(--forest);background:var(--soft-green);border-radius:20px;padding:3px 8px;margin-right:7px}.map-wrap{position:relative}.map-search{position:absolute;top:10px;right:10px;z-index:500;width:min(320px,72%)}.map-search input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:500 12px Manrope;background:#fffffff2;box-shadow:0 6px 16px #12231f14}.map-search input:focus{outline:2px solid var(--forest)}.map-search ul{list-style:none;margin:6px 0 0;padding:4px;background:#fff;border:1px solid var(--line);border-radius:8px;max-height:190px;overflow:auto;box-shadow:0 10px 22px #12231f1c}.map-search li{padding:8px 9px;border-radius:6px;font-size:12px;line-height:1.45;cursor:pointer}.map-search li:hover{background:var(--soft-green)}.vertex-dot{width:14px;height:14px;border-radius:50%;background:var(--lime);border:2px solid #16342a;box-shadow:0 1px 4px #0006;cursor:grab}.concepts{display:grid;gap:8px}.concept{border:1px solid var(--line);border-radius:8px;background:#fbfcfa}.concept summary{cursor:pointer;padding:13px 15px;font-size:13px;font-weight:700;list-style:none;display:flex;justify-content:space-between;align-items:center}.concept summary::after{content:'+';font:500 14px 'DM Mono';color:var(--forest)}.concept[open] summary::after{content:'−'}.concept p{margin:0;padding:0 15px 14px;font-size:13px;line-height:1.7;color:var(--muted)}.decision-info{background:var(--soft-green)}.decision-action{margin-top:6px;font-size:12px;font-weight:600;color:var(--forest)}.gpt-note a{color:var(--forest)}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.detail-btn.danger{color:var(--rose);border-color:#eccfca}.detail-btn.danger:hover{background:#fbe6e3}.check-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:13px 14px}.edge-pass{border-left-color:#16714d}.edge-review{border-left-color:var(--amber)}.edge-fail{border-left-color:var(--rose)}.edge-data{border-left-color:#9aa7a1}.check-head{display:flex;align-items:center;gap:10px}.check-titles{flex:1;display:grid}.check-titles strong{font-size:13px}.check-question{font-size:11px;color:var(--muted)}.check-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 13px 'DM Mono';flex:none}.check-icon.pass{background:#e5f4e9;color:#16714d}.check-icon.review{background:#fff2d9;color:#9b6516}.check-icon.fail{background:#fbe6e3;color:#a74337}.check-icon.data{background:#eef0ef;color:#5f6c67}.check-detail{margin:9px 0 8px;font-size:12px;line-height:1.6}.source-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.source-chip{font:500 10px 'DM Mono';background:#eef0ef;color:#5f6c67;border-radius:20px;padding:4px 8px}
.legal-checklist{display:grid;gap:6px;margin:2px 0 10px}.legal-checklist label{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.5;cursor:pointer}.legal-checklist input{accent-color:var(--forest);margin-top:2px;flex:none}

.map-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:11px;color:var(--muted)}.map-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.map-legend em{font-style:normal;opacity:.8}

.map-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:0 0 10px}.filter-label{font:500 10px "DM Mono";letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:3px}.filter-sep{width:1px;height:18px;background:var(--line);margin:0 4px}.chip{border:1px solid var(--line);background:#fbfcfa;color:var(--ink);border-radius:20px;padding:6px 12px;font:600 12px Manrope;cursor:pointer;transition:background .15s,border-color .15s}.chip:hover{background:var(--soft-green)}.chip.active{background:var(--forest);border-color:var(--forest);color:#fff}.chip-cutoff.active{background:#1d4ed8;border-color:#1d4ed8}.chip-loss.active{background:#a74337;border-color:#a74337;color:#fff}.layer-info{margin-top:8px;font-size:11px;line-height:1.6;color:var(--muted);background:#f8faf8;border:1px solid var(--line);border-radius:8px;padding:8px 11px}

.chip-radd.active{background:#6d4fc4;border-color:#6d4fc4;color:#fff}

.map-resizer{height:15px;display:grid;place-items:center;cursor:ns-resize;color:var(--muted);font:700 9px "DM Mono";letter-spacing:3px;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;background:#fbfcfa;user-select:none;touch-action:none}.map-resizer:hover{background:var(--soft-green);color:var(--forest)}.map-wrap .map-canvas{border-radius:10px 10px 0 0}

.map-chat{position:absolute;top:58px;right:10px;z-index:450;width:min(340px,80%)}
.map-chat-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:700 12px Manrope;color:var(--ink);background:#ffffffd9;backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 6px 16px #12231f14;text-align:left}
.map-chat-head:hover{background:#fffffff2}
.chat-caret{font-size:10px;color:var(--forest)}
.map-chat-body{margin-top:6px;border:1px solid var(--line);border-radius:10px;background:#ffffffd6;backdrop-filter:blur(8px);padding:10px;display:grid;gap:8px;box-shadow:0 10px 22px #12231f1c}
.chat-plots{display:flex;gap:5px;flex-wrap:wrap}
.chat-chip{padding:4px 9px;font-size:11px}
.chat-log{max-height:36vh;overflow:auto;display:grid;gap:6px}
.chat-msg{padding:7px 10px;border-radius:9px;font-size:12px;line-height:1.55;white-space:pre-wrap}
.chat-msg.user{background:var(--forest);color:#fff;justify-self:end;max-width:88%}
.chat-msg.assistant{background:#f4f7f3;border:1px solid var(--line);justify-self:start;max-width:92%}
.chat-note{font-size:11px;color:var(--muted);line-height:1.5}
.chat-form{display:flex;gap:6px}
.chat-form input{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:500 12px Manrope;background:#fffffff2}
.chat-form input:focus{outline:2px solid var(--forest)}

.chat-quick{display:flex;gap:5px;flex-wrap:wrap}

.map-tools{position:absolute;left:10px;bottom:24px;z-index:450;display:flex;gap:6px}
.map-tools button{border:1px solid var(--line);border-radius:8px;padding:8px 11px;font:600 12px Manrope;color:var(--ink);background:#ffffffd9;backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 6px 16px #12231f14}
.map-tools button:hover{background:#fffffff2}
.whisp-inline{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.case-bar{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.case-bar .eyebrow{margin-bottom:5px}.case-status{font:500 11px 'DM Mono';color:var(--muted);line-height:1.6}.case-actions{display:flex;gap:10px;flex-wrap:wrap}.case-bar .upload{background:#fff;color:#16342a;border-color:#c8d6ce}.case-bar .upload:hover{background:#edf4ef}
.legal-item{display:grid;gap:3px}.doc-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:22px}.doc-chip{font:500 10px 'DM Mono';background:#eef0ef;color:#5f6c67;border-radius:20px;padding:4px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-chip.missing{background:#fff2d9;color:#9b6516}.doc-attach{font:600 10px Manrope;color:var(--forest);cursor:pointer;border:1px dashed #c8d6ce;border-radius:6px;padding:3px 7px}.doc-attach:hover{background:var(--soft-green)}.doc-attach input{display:none}
.detail-btn:disabled{opacity:.45;cursor:not-allowed}
.geom-qa{background:#fff8ec}.geom-qa div{font-size:12px;margin-top:4px}
.hosting-notice{background:#fff8ec;border:1px solid #f0dcb8;border-left:4px solid var(--amber);border-radius:10px;padding:18px 20px;margin-bottom:22px}.hosting-notice strong{font-size:13px}.hosting-notice p{margin:8px 0 0;font-size:12.5px;line-height:1.7;color:#6b5a3e;max-width:900px}.hosting-notice code{font:500 11px 'DM Mono';background:#f4e9d5;border-radius:5px;padding:2px 6px}
