:root{--ink:#102a3a;--muted:#647783;--line:#dbe4e7;--bg:#f4f7f8;--panel:#fff;--teal:#0b6967;--teal2:#148c88;--gold:#c9922a;--red:#b6473a;--nav:#0c2433}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}a{color:var(--teal);text-decoration:none}small{display:block;color:var(--muted);margin-top:3px}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:white;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;margin-bottom:28px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--teal2),#74c0ba);font-weight:800;color:white}.brand strong{display:block;font-size:15px}.brand small{color:#a9bac4}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{color:#c5d1d8;padding:10px 12px;border-radius:9px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:#17384a;color:white}.nav-label{font-size:10px;letter-spacing:.15em;color:#7f99a8;margin:20px 12px 4px}.sidebar-footer{margin-top:auto;display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;border-top:1px solid #294553;padding-top:16px}.sidebar-footer a{color:#9bb0ba;font-size:12px}.avatar{height:36px;width:36px;border-radius:50%;display:grid;place-items:center;background:#315568;font-weight:700}.main-content{padding:32px;max-width:1700px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:24px}.page-header h1{font-size:30px;margin:3px 0 6px}.page-header p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:800;color:var(--teal);margin:0 0 6px}.button{border:0;border-radius:9px;padding:10px 15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.button.primary{background:var(--teal);color:white}.button.secondary{background:#e1efef;color:#0a5b5a}.button.ghost{border:1px solid var(--line);background:white;color:var(--ink)}.button.danger{background:#f4dfdc;color:#8f3026}.button.full{width:100%}.button-row{display:flex;gap:8px;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:14px;margin-bottom:20px}.kpi-grid.compact{grid-template-columns:repeat(6,minmax(140px,1fr))}.kpi-card{background:white;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:0 3px 16px rgba(16,42,58,.04)}.kpi-card span{color:var(--muted);font-size:12px}.kpi-card strong{display:block;font-size:23px;margin-top:7px}.kpi-card .small-value{font-size:15px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:20px;box-shadow:0 3px 16px rgba(16,42,58,.035)}.panel h2{font-size:18px;margin:0 0 14px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.panel-head h2{margin-bottom:3px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.two-column{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.two-column.wide-left{grid-template-columns:2fr 1fr}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6f818a;background:#f5f8f9;padding:10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid #edf1f2;vertical-align:top}tr:last-child td{border-bottom:0}.pill{display:inline-block;background:#eef4f5;border:1px solid #d6e2e4;border-radius:20px;padding:4px 8px;font-size:11px;font-weight:700}.score{display:inline-grid;place-items:center;min-width:42px;padding:5px 7px;border-radius:9px;background:#fff0cc;color:#77500b;font-weight:800}.score.good{background:#dcefe7;color:#126442}.score.low{background:#f6dfdb;color:#933528}.missing{color:var(--red)}.row-warning{background:#fffdf7}.deal-list{display:flex;flex-direction:column}.deal-row{display:grid;grid-template-columns:1fr 180px;gap:16px;padding:13px 0;border-bottom:1px solid #edf1f2}.progress-wrap{text-align:right}.progress{height:8px;background:#e4ecee;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#48a9a4)}.progress.large{height:14px}.property-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.property-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;color:var(--ink)}.property-icon{width:44px;height:44px;border-radius:10px;background:#e5f0f0;display:grid;place-items:center;color:var(--teal);font-weight:800}.property-metric{text-align:right}.property-metric span{font-weight:800}.stacked-form{display:flex;flex-direction:column;gap:13px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.filter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:end}.inline-form,.upload-inline{display:flex;gap:10px;align-items:end}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#536873}input,select,textarea{font:inherit;color:var(--ink);border:1px solid #cfdadd;border-radius:8px;padding:9px 10px;background:white;min-width:0}select[multiple]{padding:4px}textarea{resize:vertical}.full-span{grid-column:1/-1}.field-missing input{border-color:#d56558;background:#fff1ef}.field-missing:after{content:'Required for one or more calculations';font-size:10px;color:var(--red)}.detail-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(300px,.9fr);gap:20px}.metric-list{margin:0}.metric-list div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf1f2}.metric-list dt{color:var(--muted)}.metric-list dd{margin:0;font-weight:700}.rent-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf1f2}.score-banner{background:linear-gradient(120deg,#0d3848,#0b6967);color:white;padding:18px 22px;border-radius:14px;margin-bottom:16px;display:grid;grid-template-columns:160px 1fr 2fr;gap:18px;align-items:center}.score-banner strong{font-size:40px}.score-banner p{color:#d0e5e4;margin:0}.score-banner .score-bar{background:#1f5662;height:12px;border-radius:99px;overflow:hidden}.score-banner .score-bar span{display:block;height:100%;background:#78d0c8}.missing-box,.warning-box,.info-box{border-radius:12px;padding:14px 17px;margin-bottom:18px}.missing-box{background:#fff0ed;border:1px solid #efc2ba;color:#83382d}.missing-box ul{margin:6px 0 0}.warning-box{background:#fff8e8;border:1px solid #ecd69f}.info-box{background:#eaf3f8;border:1px solid #c9dde8}.group-card{padding:14px 0;border-bottom:1px solid #edf1f2}.chip-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chip-list span{font-size:11px;background:#edf3f4;border-radius:20px;padding:5px 8px}.funding-hero{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:20px}.funding-hero strong{font-size:34px;display:block}.funding-meta{display:flex;justify-content:space-between;color:var(--muted);margin-top:8px}.empty-state{padding:28px;text-align:center;color:var(--muted)}.alert{border-radius:10px;padding:12px 15px;margin-bottom:16px;transition:.4s}.alert-success{background:#dff1e7;color:#185c3e}.alert-danger{background:#f8dfdc;color:#8a3127}.alert-info{background:#e7f1f6;color:#245b72}.alert.floating{position:fixed;top:18px;right:18px;z-index:20}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-hero{background:linear-gradient(145deg,#0a2636,#0b6967);color:white;padding:55px;display:flex;flex-direction:column;justify-content:space-between}.brand-light small{color:#b7d0d2}.login-hero h1{font-size:48px;max-width:650px;line-height:1.08;margin:8px 0 18px}.login-hero>div>p:last-child{font-size:17px;line-height:1.6;color:#c8dddf;max-width:650px}.hero-stats{display:flex;gap:55px}.hero-stats strong{font-size:30px;display:block}.hero-stats span{color:#b9d0d2}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%);background:white;border:1px solid var(--line);border-radius:18px;padding:34px;display:flex;flex-direction:column;gap:16px;box-shadow:0 18px 50px rgba(16,42,58,.12)}.login-card h2{font-size:30px;margin:0}.demo-credentials{background:#f3f7f8;padding:12px;border-radius:10px;display:flex;flex-direction:column;gap:5px}.demo-credentials code{font-size:11px}.commit-page{min-height:100vh;background:linear-gradient(145deg,#0b2535,#0b6967);padding:40px;display:grid;place-items:center}.commit-card{background:white;border-radius:18px;padding:32px;width:min(760px,100%);box-shadow:0 24px 70px rgba(0,0,0,.25)}.commit-card h1{font-size:32px;margin:5px 0}.commit-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.commit-summary div{padding:14px;background:#f3f7f8;border-radius:10px}.commit-summary span{color:var(--muted);font-size:12px}.commit-summary strong{display:block;font-size:21px;margin-top:5px}.fully-funded{background:#dff1e7;border:1px solid #b9ddc9;border-radius:12px;padding:18px;margin-top:20px}.legal-note{font-size:11px;color:var(--muted);line-height:1.5;margin-top:22px}.bar-chart{height:280px;display:flex;align-items:flex-end;gap:5px;padding:20px 5px 0;border-bottom:1px solid var(--line)}.bar-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bar-item span{width:100%;max-width:25px;background:linear-gradient(#49aaa5,#0b6967);border-radius:5px 5px 0 0;min-height:3px}.bar-item small{font-size:8px;transform:rotate(-60deg);transform-origin:center;white-space:nowrap;margin-bottom:-24px}.text-link{font-weight:700}.status-committed{background:#dff1e7;color:#185c3e}.status-declined{background:#f8dfdc;color:#8a3127}.fully-funded{color:#185c3e}
@media(max-width:1200px){.kpi-grid,.kpi-grid.compact{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:repeat(3,1fr)}.score-banner{grid-template-columns:150px 1fr}.score-banner p{grid-column:1/-1}.detail-layout,.two-column{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-footer{margin-top:20px}.main-content{padding:20px}.page-header{flex-direction:column}.kpi-grid,.kpi-grid.compact,.property-cards,.form-grid,.filter-grid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh}.funding-meta{flex-direction:column;gap:5px}.score-banner{grid-template-columns:1fr}.commit-page{padding:15px}.commit-summary{grid-template-columns:1fr}table{min-width:750px}.panel{overflow-x:auto}}

/* v11 — frozen detail header, edit-lock, comps, calc history, data viewer */
.sticky-detail-header{position:sticky;top:0;z-index:30;background:linear-gradient(120deg,#0d3848,#0b6967);color:#fff;border-radius:14px;padding:14px 18px;margin-bottom:16px;box-shadow:0 6px 24px rgba(16,42,58,.18)}
.sticky-detail-header .sdh-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.sticky-detail-header h1{font-size:21px;margin:2px 0}
.sticky-detail-header p,.sticky-detail-header small{color:#cfe6e4;margin:0}
.sticky-detail-header .sdh-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sticky-detail-header select{background:#0a2c38;color:#fff;border-color:#1f5662}
.sticky-detail-header .kpi-strip{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #1f5662}
.sticky-detail-header .kpi-strip div{font-size:12px;color:#bcdedb}
.sticky-detail-header .kpi-strip strong{display:block;font-size:17px;color:#fff}
.locked-fields input:disabled,.locked-fields select:disabled,.locked-fields textarea:disabled{background:#f1f5f6;color:#46555c;cursor:not-allowed}
.comp-good{color:#126442;font-weight:700}.comp-bad{color:#933528;font-weight:700}
.data-search{margin-bottom:12px;width:100%;max-width:420px}
.kv-section{margin-bottom:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.kv-section>summary{cursor:pointer;padding:10px 14px;background:#f5f8f9;font-weight:700}
.kv-table{width:100%}.kv-table td{padding:7px 14px;border-bottom:1px solid #f0f4f5}.kv-table td:first-child{color:var(--muted);width:40%;font-weight:600}
.kv-row.hidden{display:none}
.calc-row td{font-size:12px}
.dropdown{position:relative;display:inline-block}
.dropdown-menu{display:none;position:absolute;right:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.15);min-width:200px;z-index:40;overflow:hidden}
.dropdown-menu a{display:block;padding:10px 14px;color:var(--ink);border-bottom:1px solid #f0f4f5}.dropdown-menu a:hover{background:#f5f8f9}
.dropdown.open .dropdown-menu{display:block}

/* v12 — location autocomplete */
.loc-auto{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.12);z-index:50;max-height:260px;overflow:auto;margin-top:2px}
.loc-opt{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f0f4f5;display:flex;justify-content:space-between;gap:10px;align-items:center}
.loc-opt:hover{background:#f5f8f9}
.loc-name{font-weight:600;color:var(--ink)}
.loc-type{font-size:11px;color:#9aa7ad}

/* v13 — sort icons, sidebar, calc-info */
.th-sort{position:relative;display:inline-block;padding-right:14px;text-decoration:none}
.sort-ico{position:absolute;right:0;bottom:-2px;font-size:9px;color:#9aa7ad}
.sort-ico.active{color:var(--accent, #0b6967);font-weight:700}
.side-layout{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:start}
.side-nav{position:sticky;top:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.side-nav a{color:var(--ink);text-decoration:none}.side-nav a:hover{color:#0b6967}
.side-nav hr{border:0;border-top:1px solid var(--line);margin:6px 0}
@media (max-width:900px){.side-layout{grid-template-columns:1fr}.side-nav{position:static;flex-direction:row;flex-wrap:wrap}}
.section-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--line);padding-bottom:6px;margin-bottom:10px}
.section-head h3{margin:0;font-size:16px}
.vh-box{background:#f5f8f9;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:13px}
.vh-box ul{margin:0;padding-left:1.1rem}
label.has-info{position:relative}
.calc-info{position:absolute;top:0;right:0;width:16px;height:16px;border-radius:50%;border:1px solid #0b6967;background:#e7f4f3;color:#0b6967;font-size:10px;font-weight:700;line-height:1;cursor:pointer;font-style:italic}
.calc-pop{position:absolute;z-index:60;top:20px;right:0;background:#0d3848;color:#e7f4f3;padding:10px 12px;border-radius:8px;font-size:12px;max-width:300px;box-shadow:0 8px 24px rgba(0,0,0,.25)}

/* v14 — Excel-sheet-style sub-tabs */
.subtab-bar{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:-6px 0 18px;padding:0}
.subtab{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border:1px solid var(--line);border-bottom:none;border-radius:10px 10px 0 0;background:#eef3f4;color:#5a6b72;font-weight:600;font-size:13px;text-decoration:none;position:relative;top:2px;transition:background .12s}
.subtab:hover{background:#e2ebec;color:#0b6967}
.subtab.active{background:#fff;color:#0b3c40;border-color:var(--line);border-bottom:2px solid #fff;box-shadow:0 -2px 8px rgba(13,56,64,.06)}
.subtab-ico{font-size:15px;line-height:1}
@media (max-width:700px){.subtab{padding:8px 12px;font-size:12px}}

/* v14 — ensure the detail summary ribbon truly freezes; tables scroll horizontally on their own */
.panel{overflow-x:auto}
.sticky-detail-header{position:-webkit-sticky;position:sticky;top:0}
