@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Newsreader:opsz,wght@6..72,500;6..72,600;6..72,700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&display=swap');

:root{
  --bg:#f7f5ef;
  --surface:#fffdf7;
  --surface2:#f0f5fa;
  --surface3:#e7eef6;
  --border:#d7dde2;
  --border-strong:#a9b7c6;
  --accent:#f97316;
  --accent-dim:#c95f15;
  --blue:#315f86;
  --blue-dark:#14324a;
  --green:#188f55;
  --score-deep-green:#12632b;
  --score-light-green:#6ead55;
  --score-yellow:#d8a51d;
  --score-red:#c2413f;
  --amber:#b77906;
  --red:#c2413f;
  --text:#111a21;
  --muted:#66727d;
  --label:#87939f;
  --font:'Source Serif 4',Georgia,'Times New Roman',serif;
  --display:'Newsreader','Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',monospace;
}

html,body{background:var(--bg);color:var(--text);font-family:var(--font);letter-spacing:0}
body{
  opacity:1;transform:translateY(0);
  transition:opacity .22s ease,transform .22s ease,filter .22s ease;
}
body.page-enter{animation:page-enter .28s cubic-bezier(.2,.8,.2,1) both}
body.page-leaving{opacity:0;transform:translateY(8px);filter:blur(2px)}
@keyframes page-enter{
  from{opacity:0;transform:translateY(8px);filter:blur(2px)}
  to{opacity:1;transform:translateY(0);filter:blur(0)}
}
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:
    linear-gradient(90deg,rgba(20,50,74,.022) 1px,transparent 1px),
    linear-gradient(180deg,rgba(20,50,74,.018) 1px,transparent 1px),
    linear-gradient(118deg,rgba(49,95,134,.055),transparent 36%,rgba(249,115,22,.045) 100%);
  background-size:96px 96px;
}
body::after{
  content:'';position:fixed;left:0;right:0;top:0;height:5px;z-index:50;
  background:linear-gradient(90deg,var(--blue-dark),var(--blue) 58%,var(--accent));
}

.topbar,#sidebar{
  background:rgba(255,253,247,.92);border-color:var(--border);
  box-shadow:0 18px 45px rgba(20,50,74,.08);backdrop-filter:blur(14px);
}
.topbar{
  width:100%;margin:5px 0 0;border:0;border-bottom:1px solid var(--border);
  border-radius:0;padding:12px max(22px,calc((100vw - 1180px)/2 + 22px));
  position:sticky;top:5px;
}
.topbar .brand,#sidebar-header .logo{
  color:var(--blue-dark);font-family:var(--mono);font-weight:600;letter-spacing:.18em;
}
.topbar .nav{gap:6px}
.topbar .nav a,#sidebar-header .nav-links a{
  color:var(--muted);border:1px solid transparent;background:transparent;border-radius:999px;
}
.topbar .nav a:hover,#sidebar-header .nav-links a:hover{
  color:var(--blue-dark);background:var(--surface2);border-color:var(--border);
}
.topbar .nav a.active,#sidebar-header .nav-links a.active{
  color:var(--blue-dark);background:#fff;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(49,95,134,.08);
}

.wrap{max-width:1192px;padding-top:44px}.wrap h1,#header .h-name,.input-card h1{
  color:var(--blue-dark);font-family:var(--display);font-weight:700;letter-spacing:0;font-size:28px;line-height:1.02;
}
.sub,.hint,#sidebar-header .count,#header .h-sub,.section-sub,.team-section-intro{color:var(--muted)}

.input-card,.results,.card,.field,.funding-card,.tier-chip,.dim-bar,.signal-list,
.partner-form,.verify-panel,.team-component,.tm-cell,.founder-card,.accomp-block,
table,details.profile-details summary,.profile-dump{
  background:rgba(255,253,247,.94);border:1px solid var(--border);border-radius:8px;
  box-shadow:0 12px 30px rgba(20,50,74,.06);
}
.input-card{
  border-top:0;padding:34px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:12px 42px;
}
.input-card::before{
  content:'';position:absolute;inset:0 auto 0 0;width:6px;background:var(--blue);
}
.input-card::after{
  content:'';position:absolute;right:22px;top:22px;width:96px;height:96px;
  border:1px solid rgba(49,95,134,.2);border-radius:50%;box-shadow:inset 0 0 0 18px rgba(49,95,134,.035);
}
.input-card h1,.input-card .sub{grid-column:1;max-width:260px}
.input-card .form-row,.input-card #founder-rows,.input-card .form-actions,.input-card .hint,
.input-card .status-feed,.input-card .err-banner,
.input-card > div[style*="display:flex"]{grid-column:2}
.results{border-top:4px solid var(--accent)}

input,select,textarea,.filter,.form-field input,.founder-row input,#sidebar-search,#gen-form input,
.verify-panel .vp-control input,.verify-panel .vp-control select,.verify-panel .vp-control textarea,
.notes-area{
  background:#fff;border:1px solid var(--border);color:var(--text);
  border-radius:6px;box-shadow:inset 0 1px 0 rgba(17,26,33,.03);font-family:var(--font);
}
input:focus,select:focus,textarea:focus,.filter:focus,.form-field input:focus,
.founder-row input:focus,#sidebar-search:focus,#gen-form input:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(49,95,134,.12);outline:none;
}
input::placeholder,textarea::placeholder{color:#9aa5af}

.btn,#gen-form button,.verify-panel .vp-btn-apply,.vmodal-primary{
  background:var(--blue-dark);color:white;border:1px solid var(--blue-dark);
  border-radius:6px;font-family:var(--font);font-weight:700;box-shadow:0 10px 22px rgba(20,50,74,.18);
}
.btn:hover,#gen-form button:hover,.verify-panel .vp-btn-apply:hover,.vmodal-primary:hover{
  background:var(--blue);border-color:var(--blue);transform:translateY(-1px);
}
.btn.ghost,.row-remove,.verify-panel .vp-reset,.vmodal-skip{
  color:var(--blue-dark);background:#fff;border:1px solid var(--border);box-shadow:none;
}
.btn.ghost:hover,.row-remove:hover,.verify-panel .vp-reset:hover,.vmodal-skip:hover{
  border-color:var(--blue);background:var(--surface2);color:var(--blue-dark);
}

.section-title{
  color:var(--blue-dark);font-family:var(--mono);font-size:11px;letter-spacing:.13em;
}
.section-title::before{content:'';width:22px;height:2px;background:var(--accent);display:inline-block}
.section-title::after{background:var(--border)}

.composite .num,.team-header .team-num,.funding-amount,.founder-card .fc-score,
.dim-score,.tier-chip .tscore,.pctl.high,.pctl.top{
  color:var(--blue-dark);
}
.badge,.chip,.pctl{
  border-radius:999px;background:var(--surface2);border-color:var(--border);color:var(--blue-dark);
}
.badge.archetype,.badge.prov,.chip:not(.neutral),.profile-item.active,.q-opt.selected,
.verify-panel .vp-radio button.selected,.vmodal-bool-selected,.vmodal-canonical{
  color:var(--accent);background:rgba(249,115,22,.09);border-color:rgba(249,115,22,.38);
}

.team-header{
  background:linear-gradient(135deg,#fffdf7 0%,#edf5fb 100%);
  border:1px solid var(--border);border-left:0;border-radius:14px;padding:30px 34px;
  box-shadow:0 24px 60px rgba(20,50,74,.12);
}
.team-header .team-title,.founder-row .row-title,.accomp-block .accomp-founder{color:var(--accent)}
.team-component .tc-label,.tier-chip .tlabel,.field-label,.funding-label,thead th{
  color:var(--label);font-family:var(--mono);letter-spacing:.12em;
}

#main{background:transparent}
#header{
  background:rgba(247,245,239,.82);border-bottom:1px solid var(--border);
  backdrop-filter:blur(12px);padding:22px 32px;
}
#sidebar{
  width:292px;min-width:292px;border-right:1px solid var(--border);padding-top:16px;
}
#content{padding:30px 32px 64px}
#content .section{max-width:1180px}
#content .grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.profile-item{border:1px solid transparent;border-radius:6px}
.profile-item:hover{background:#fff;border-color:var(--border)}
.profile-item.active{background:#fff;border-color:var(--accent);box-shadow:0 8px 20px rgba(249,115,22,.08)}
.profile-item .p-company,.card-title{color:var(--blue-dark);font-weight:600}
.composite-meta .name,.founder-card .fc-name,.team-header .arch-name,.card-title,
.profile-item .p-company{font-family:var(--display);letter-spacing:0}

thead th{background:var(--surface2);color:var(--blue-dark)}
thead th.sorted{color:var(--accent)}
tbody tr{background:#fff}
tbody tr:hover{background:#f8fbfd}
tbody td{border-color:var(--border)}
.score-cell.score-band-deep-green{color:var(--score-deep-green)}
.score-cell.score-band-light-green{color:var(--score-light-green)}
.score-cell.score-band-yellow{color:var(--score-yellow)}
.score-cell.score-band-red{color:var(--score-red)}
.score-cell,.dim-score,.tier-chip .tscore,.team-component .tc-value,.founder-card .fc-score,
.composite .num,.team-header .team-num{font-family:var(--display);font-weight:700}

/* Score workbench layout */
.headline{
  display:grid;grid-template-columns:190px minmax(0,1fr);align-items:stretch;gap:22px;
  border-radius:14px;padding:0;overflow:hidden;border-top:0;
}
.headline .composite{
  background:var(--blue-dark);color:#fff;padding:28px 20px;display:flex;
  flex-direction:column;justify-content:center;align-items:center;min-height:170px;
}
.headline .composite .num,.headline .composite .max,.headline .composite .label{color:#fff}
.headline .composite .label{opacity:.62}.headline .composite-meta{padding:28px 28px 26px 0}
.headline .composite.score-band-deep-green{background:var(--score-deep-green)}
.headline .composite.score-band-light-green{background:var(--score-light-green)}
.headline .composite.score-band-yellow{background:var(--score-yellow)}
.headline .composite.score-band-red{background:var(--score-red)}
.headline .composite.score-band-yellow .num,
.headline .composite.score-band-yellow .max,
.headline .composite.score-band-yellow .label{color:#2b2110}
.founder-card .fc-score.score-band-deep-green{color:var(--score-deep-green)}
.founder-card .fc-score.score-band-light-green{color:var(--score-light-green)}
.founder-card .fc-score.score-band-yellow{color:var(--score-yellow)}
.founder-card .fc-score.score-band-red{color:var(--score-red)}
.headline .badge-row{gap:8px}
.team-breakdown,.tier-row{gap:14px}
.dim-bar,.signal-list,.tier-chip,.team-component,.founder-card{border-radius:10px}
.dim-bar{
  display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr);gap:14px 22px;
  align-items:center;padding:18px 20px;
}
.dim-head{margin-bottom:0}.dim-track{margin:0}.dim-just{grid-column:2;margin-top:0}
.two-col{gap:18px}

/* Dashboard becomes a quiet data room: filters float beside the table. */
.wrap:has(#scores-table){
  max-width:1230px;display:grid;grid-template-columns:260px minmax(0,1fr);
  gap:18px 24px;align-items:start;
}
.wrap:has(#scores-table) h1{grid-column:1/-1;font-size:26px;margin-bottom:0}
.wrap:has(#scores-table) .sub{grid-column:1/-1;margin-bottom:8px;max-width:620px}
.filters{
  position:sticky;top:92px;display:flex;flex-direction:column;gap:10px;margin:0;
  background:rgba(255,253,247,.92);border:1px solid var(--border);border-radius:10px;
  padding:12px;box-shadow:0 18px 45px rgba(20,50,74,.08);backdrop-filter:blur(14px);
}
.filters .filter{width:100%;min-width:0!important}
#scores-table{border-radius:12px;overflow:hidden}
#scores-table tbody td{padding:14px 16px}
#scores-table thead th{padding:14px 16px}

body.vmodal-open{overflow:hidden}
.vmodal-overlay{
  align-items:flex-start;overflow-y:auto;padding:clamp(12px,3vh,28px);
  background:rgba(17,26,33,.42);backdrop-filter:blur(8px)
}
.vmodal-card{
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  max-height:calc(100vh - 32px);overflow-y:auto;
  box-shadow:0 24px 80px rgba(17,26,33,.24);
}
.vmodal-multi{
  display:grid!important;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));
  max-width:100%;
}
.vmodal-multi button{min-width:0;white-space:normal;overflow-wrap:anywhere}
.vmodal-title,.vmodal-fieldlabel{color:var(--blue-dark)}
.vmodal-progress-fill,.dim-fill,#loading-bar-fill{background:var(--accent)}
#loading-overlay{background:rgba(247,245,239,.96)}

@media (max-width:760px){
  .topbar{width:100%;margin-top:5px;padding:10px 12px;border-radius:0}
  .topbar .brand{max-width:128px;line-height:1.35}.topbar .nav{gap:2px}
  .topbar .nav a{padding:6px 8px}.wrap{padding:22px 14px 60px}
  .input-card{padding:24px 20px;display:block}.input-card::after{display:none}
  .input-card h1,.input-card .sub{max-width:none}.team-header .team-num,.composite .num{font-size:42px}
  #sidebar{width:220px;min-width:220px}
  .headline{display:block}.headline .composite{min-height:120px}.headline .composite-meta{padding:22px}
  .dim-bar{display:block}.dim-track{margin:8px 0}.dim-just{margin-top:8px}
  .wrap:has(#scores-table){display:block}.filters{position:static;margin-bottom:14px}
  #scores-table{display:block;width:100%;max-width:100%;overflow-x:auto;white-space:nowrap}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    scroll-behavior:auto!important;transition-duration:.001ms!important;
  }
  body.page-leaving{opacity:1;transform:none;filter:none}
}
