:root{--bg:#f7f8fa;--surface:#ffffff;--surface-2:#fbfcfd;--border:#e5e8ee;--border-strong:#d3d9e2;--text:#0f1722;--text-2:#5b6b7f;--text-3:#8595ab;--primary:#2563eb;--primary-hover:#1d4fd7;--primary-soft:#eaf1fe;--ok:#15803d;--ok-soft:#e8f6ee;--warn:#b45309;--warn-soft:#fdf3e3;--bad:#b91c1c;--bad-soft:#fdeeee;--stage-submissions-bg:#e0e7ff;--stage-submissions-fg:#3730a3;--stage-reviewed-bg:#e0f2fe;--stage-reviewed-fg:#075985;--stage-approved-bg:#dcfce7;--stage-approved-fg:#166534;--stage-contracts_requested-bg:#fef9c3;--stage-contracts_requested-fg:#854d0e;--stage-docs_out-bg:#ffedd5;--stage-docs_out-fg:#9a3412;--stage-dlogic_sent-bg:#f3e8ff;--stage-dlogic_sent-fg:#6b21a8;--stage-in_final-bg:#fce7f3;--stage-in_final-fg:#9d174d;--stage-funded-bg:#bbf7d0;--stage-funded-fg:#14532d;--stage-killed_in_final-bg:#fee2e2;--stage-killed_in_final-fg:#991b1b;--stage-declined-bg:#fecaca;--stage-declined-fg:#7f1d1d;--stage-incomplete-bg:#fef3c7;--stage-incomplete-fg:#92400e;--stage-resolution-bg:#e9d5ff;--stage-resolution-fg:#581c87;--stage-legal-bg:#e5e7eb;--stage-legal-fg:#374151;--font-sans:"Inter",ui-sans-system,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:6px;--r-md:10px;--r-full:999px;--shadow-card:0 1px 2px rgb(15 23 34/0.05);--shadow-pop:0 8px 24px rgb(15 23 34/0.12);--dur-1:150ms;--dur-2:200ms;--ease-out:cubic-bezier(0.2,0.7,0.3,1);--nav-width:232px;--row-h:44px;--control-h:36px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.kpi-value,.num,td.money{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:var(--nav-width) 1fr;min-height:100vh}.side-nav{background:var(--surface);border-right:1px solid var(--border);padding:var(--sp-5) var(--sp-3);display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side-nav .brand{font-size:var(--fs-lg);font-weight:650;padding:0 var(--sp-3) var(--sp-5)}.side-nav a{color:var(--text-2);padding:8px var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500;display:block}.side-nav a:hover{background:var(--surface-2);text-decoration:none;color:var(--text)}.side-nav a.active{background:var(--primary-soft);color:var(--primary)}.side-nav .nav-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:var(--sp-4) var(--sp-3) var(--sp-1)}.main{padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5);min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.page-head h1{font-size:var(--fs-2xl);margin:0;letter-spacing:-.01em}.page-head .sub{color:var(--text-2);font-size:var(--fs-sm);margin-top:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:var(--sp-5)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.card-head h2{font-size:var(--fs-lg);margin:0;font-weight:600}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.kpi-label{color:var(--text-2);font-size:var(--fs-sm)}.kpi-value{font-size:var(--fs-3xl);font-weight:650;letter-spacing:-.02em;margin-top:var(--sp-1)}.kpi-context{color:var(--text-3);font-size:var(--fs-xs);margin-top:2px}.btn{height:var(--control-h);padding:0 var(--sp-4);border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:500 var(--fs-sm) var(--font-sans);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2)}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--bad);border-color:var(--bad);background:var(--surface)}.btn.ghost{border-color:transparent}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field label{font-size:var(--fs-sm);font-weight:500}.field .help{font-size:var(--fs-xs);color:var(--text-3)}.field .error{font-size:var(--fs-xs);color:var(--bad)}.input,.select{height:var(--control-h);padding:0 var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--r-sm);font:400 var(--fs-md) var(--font-sans);background:var(--surface);color:var(--text)}textarea.input{height:auto;padding:var(--sp-2) var(--sp-3)}.input:focus,.select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:end;padding:var(--sp-4)}.filter-bar,.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card)}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data th{text-align:left;font-weight:600;color:var(--text-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--sp-3) var(--sp-4);position:-webkit-sticky;position:sticky;top:0;background:var(--surface)}table.data td,table.data th{border-bottom:1px solid var(--border)}table.data td{padding:0 var(--sp-4);height:var(--row-h);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-2)}table.data td.money,table.data th.money{text-align:right}.pagination{display:flex;align-items:center;gap:var(--sp-3);justify-content:flex-end;padding:var(--sp-3) var(--sp-4);color:var(--text-2);font-size:var(--fs-sm)}.badge{display:inline-flex;align-items:center;height:22px;padding:0 var(--sp-2);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge[data-stage=submissions]{background:var(--stage-submissions-bg);color:var(--stage-submissions-fg)}.badge[data-stage=reviewed]{background:var(--stage-reviewed-bg);color:var(--stage-reviewed-fg)}.badge[data-stage=approved]{background:var(--stage-approved-bg);color:var(--stage-approved-fg)}.badge[data-stage=contracts_requested]{background:var(--stage-contracts_requested-bg);color:var(--stage-contracts_requested-fg)}.badge[data-stage=docs_out]{background:var(--stage-docs_out-bg);color:var(--stage-docs_out-fg)}.badge[data-stage=dlogic_sent]{background:var(--stage-dlogic_sent-bg);color:var(--stage-dlogic_sent-fg)}.badge[data-stage=in_final]{background:var(--stage-in_final-bg);color:var(--stage-in_final-fg)}.badge[data-stage=funded]{background:var(--stage-funded-bg);color:var(--stage-funded-fg)}.badge[data-stage=killed_in_final]{background:var(--stage-killed_in_final-bg);color:var(--stage-killed_in_final-fg)}.badge[data-stage=declined]{background:var(--stage-declined-bg);color:var(--stage-declined-fg)}.badge[data-stage=incomplete]{background:var(--stage-incomplete-bg);color:var(--stage-incomplete-fg)}.badge[data-stage=resolution]{background:var(--stage-resolution-bg);color:var(--stage-resolution-fg)}.badge[data-stage=legal]{background:var(--stage-legal-bg);color:var(--stage-legal-fg)}.badge[data-status=completed]{background:var(--ok-soft);color:var(--ok)}.badge[data-status=sent]{background:var(--primary-soft);color:var(--primary)}.badge[data-status=viewed]{background:var(--stage-docs_out-bg);color:var(--stage-docs_out-fg)}.badge[data-status=pending]{background:var(--warn-soft);color:var(--warn)}.badge[data-status=not_configured]{background:var(--stage-legal-bg);color:var(--stage-legal-fg)}.badge[data-status=declined],.badge[data-status=failed]{background:var(--bad-soft);color:var(--bad)}.status-ok{color:var(--ok)}.status-warn{color:var(--warn)}.status-bad{color:var(--bad)}.banner{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);font-size:var(--fs-sm)}.banner.ok{background:var(--ok-soft)}.banner.ok,.banner.warn{border-color:transparent}.banner.warn{background:var(--warn-soft)}.tabs{display:flex;gap:var(--sp-5);border-bottom:1px solid var(--border)}.tabs a,.tabs button{background:none;cursor:pointer;font:500 var(--fs-md) var(--font-sans);color:var(--text-2);padding:var(--sp-2) 0;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs .active{color:var(--text);border-bottom-color:var(--primary)}.detail-grid{display:grid;grid-template-columns:220px 1fr;grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}.rail{display:flex;flex-direction:column;gap:2px}.rail a{color:var(--text-2);padding:8px var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500}.rail a.active{background:var(--primary-soft);color:var(--primary)}.empty-state{padding:var(--sp-8);text-align:center;color:var(--text-2)}.empty-state .title{color:var(--text);font-weight:600;margin-bottom:var(--sp-1)}.btn,.rail a,.side-nav a,.tabs a,.tabs button,table.data tbody tr{transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.toast-stack{position:fixed;right:var(--sp-5);bottom:var(--sp-5);flex-direction:column;z-index:50}.toast,.toast-stack{display:flex;gap:var(--sp-2)}.toast{background:var(--text);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);align-items:center;animation:toast-in var(--dur-2) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--border) 25%,var(--surface-2) 50%,var(--border) 75%);background-size:200% 100%;animation:sk 1.2s infinite}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.side-nav{overflow-y:auto}.timeline{display:flex;flex-direction:column}.timeline .t-item{display:grid;grid-template-columns:28px 1fr;grid-gap:var(--sp-3);gap:var(--sp-3);padding:var(--sp-2) 0}.timeline .t-dot{width:9px;height:9px;border-radius:var(--r-full);background:var(--primary);margin:5px auto 0}.timeline .t-meta{color:var(--text-3);font-size:var(--fs-xs)}.global-search{height:var(--control-h);min-width:280px}.top-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.top-header-context{color:var(--text-3);font-size:var(--fs-sm);white-space:nowrap}.main-column{display:flex;flex-direction:column;min-width:0;min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.chip{display:inline-flex;align-items:center;height:28px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.chip:hover{text-decoration:none;background:var(--surface-2);color:var(--text)}.chip-active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.sort-link{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit}.sort-link:hover{color:var(--text);text-decoration:none}.header-user{display:flex;align-items:center;gap:var(--sp-3)}.header-user-meta{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.header-user-name{font-size:var(--fs-sm);font-weight:600;color:var(--text);white-space:nowrap}.header-user-sub{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap}.banner.bad{background:var(--bad-soft);border-color:transparent;color:var(--bad)}.toast-success{background:var(--ok)}.toast-error{background:var(--bad)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);background:var(--bg)}.login-card{width:100%;max-width:400px;padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-4)}.login-brand{font-size:var(--fs-lg);font-weight:650;color:var(--primary)}.login-title{font-size:var(--fs-2xl);margin:0;letter-spacing:-.01em}.login-sub{margin:0;color:var(--text-2);font-size:var(--fs-sm)}.login-form{display:flex;flex-direction:column;gap:var(--sp-4)}.login-submit{width:100%;justify-content:center;margin-top:var(--sp-1)}.login-submit:disabled{opacity:.6;cursor:wait}.login-hint{font-size:var(--fs-xs);color:var(--text-3);border-top:1px solid var(--border);padding-top:var(--sp-3)}.login-hint code{font-size:var(--fs-xs);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 4px}.back-link{font-size:var(--fs-sm);font-weight:500}.highlights-card{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-5);flex-wrap:wrap}.highlights-main{flex:1 1;min-width:280px}.highlights-title-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.highlights-title{font-size:var(--fs-2xl);margin:0;letter-spacing:-.01em}.highlights-sub{color:var(--text-2);font-size:var(--fs-sm);margin-top:var(--sp-1)}.highlights-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);margin:var(--sp-5) 0 0}.highlights-fields dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:600}.highlights-fields dd{margin:2px 0 0;font-size:var(--fs-md);font-weight:550}.tab-stack{display:flex;flex-direction:column;gap:var(--sp-5)}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);margin:0}.kv-item dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:600}.kv-item dd{margin:2px 0 0;font-size:var(--fs-md)}.notes-body{margin:0;white-space:pre-wrap;color:var(--text);font-size:var(--fs-md)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}.form-actions{display:flex;align-items:flex-end;grid-column:1/-1}.btn:disabled{opacity:.6;cursor:wait}.skeleton-stack{display:flex;flex-direction:column;gap:var(--sp-5)}.skeleton-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}