:root {
  --ink: #172a34;
  --ink-soft: #49606b;
  --muted: #73868f;
  --line: #d6e0e4;
  --line-strong: #b9c9d0;
  --paper: #f5f8f8;
  --surface: #ffffff;
  --surface-blue: #edf3f5;
  --surface-deep: #dce8ed;
  --navy: #294f61;
  --navy-dark: #193b4a;
  --blue: #537b8d;
  --cyan: #9bbbc6;
  --green: #587c6b;
  --green-soft: #e7f0eb;
  --amber: #986e37;
  --amber-soft: #f7eedf;
  --red: #995d5b;
  --red-soft: #f6e7e6;
  --virtual: #557c94;
  --real: #667f68;
  --combined: #756f83;
  --shadow: 0 15px 42px rgba(27, 58, 71, .08);
  --radius: 17px;
  --sidebar-width: 250px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; overflow-x: hidden; color: var(--ink); background: radial-gradient(circle at 91% 7%, rgba(145,180,192,.16), transparent 26%), linear-gradient(145deg,#f2f6f7,#fbfcfc 55%,#edf3f5); font-family: "Avenir Next", "Trebuchet MS", sans-serif; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.app-shell { display: flex; min-height: 100vh; }

.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; width: var(--sidebar-width); flex-direction: column; padding: 22px 16px 16px; color: #edf5f7; border-right: 1px solid rgba(255,255,255,.12); background: linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(170deg,#284d5d,#1d3f4d 67%,#173540); background-size: 28px 28px,28px 28px,auto; }
.brand-row { display: flex; align-items: center; gap: 12px; padding: 0 6px 20px; }
.brand-mark { display: grid; width: 50px; height: 54px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.5); border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(6,27,36,.2); }
.brand-mark img { display: block; width: 46px; height: 49px; object-fit: contain; }
.brand-name { font-size: 15px; font-weight: 700; letter-spacing: .1em; }
.brand-product { color: #b9cdd5; font-size: 10px; }
.sidebar-close { display: none !important; margin-left: auto; color: white; }
.eyebrow { display: block; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; line-height: 1.4; text-transform: uppercase; }
.sidebar .eyebrow { color: #a9c0ca; }
.project-switcher { padding: 0 4px 18px; }
.project-button { display: grid; width: 100%; grid-template-columns: 34px 1fr auto; gap: 9px; align-items: center; margin-top: 8px; padding: 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; color: white; text-align: left; background: rgba(255,255,255,.07); cursor: pointer; }
.project-button:hover { background: rgba(255,255,255,.11); }
.project-avatar { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; color: var(--navy-dark); background: #dce9ed; font-size: 10px; font-weight: 800; }
.project-button strong,.project-button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-button strong { font-size: 11px; }
.project-button small { margin-top: 2px; color: #b7cbd3; font-size: 8px; }
.chevron { color: #a9c0ca; }
.primary-nav { display: flex; flex-direction: column; gap: 3px; }
.nav-item { display: flex; width: 100%; min-height: 43px; align-items: center; gap: 11px; padding: 8px 10px; border: 0; border-radius: 11px; color: #bdd0d7; font-size: 11px; text-align: left; background: transparent; cursor: pointer; transition: .18s; }
.nav-item:hover { color: white; background: rgba(255,255,255,.07); transform: translateX(2px); }
.nav-item.active { color: white; background: rgba(221,237,242,.14); box-shadow: inset 3px 0 #afc9d2; }
.nav-icon { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.17); border-radius: 7px; font-size: 7px; }
.nav-item.active .nav-icon { color: var(--navy-dark); border-color: #dce9ed; background: #dce9ed; }
.nav-count { display: grid; min-width: 20px; height: 20px; place-items: center; margin-left: auto; padding: 0 6px; border-radius: 10px; color: #d6e7ec; background: rgba(255,255,255,.09); font-size: 8px; }
.sidebar-phase { margin-top: auto; padding: 15px 13px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(5,24,32,.17); }
.sidebar-label-row { display: flex; justify-content: space-between; color: #b6cbd3; font-size: 8px; }
.phase-progress { height: 4px; margin: 10px 0 11px; overflow: hidden; border-radius: 9px; background: rgba(255,255,255,.11); }
.phase-progress span { display: block; height: 100%; border-radius: inherit; background: #a9c8d3; }
.sidebar-phase strong { display: block; font-family: "Iowan Old Style",Georgia,serif; font-size: 14px; line-height: 1.25; }
.sidebar-phase small { display: block; margin-top: 6px; color: #aac1ca; font-size: 8px; }
.text-button { padding: 0; border: 0; color: var(--blue); font-size: 10px; font-weight: 700; background: none; cursor: pointer; }
.text-button:hover { color: var(--navy-dark); }
.sidebar .text-button { margin-top: 12px; color: #c4d7de; }
.sidebar-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 4px 0; color: #9fb7c0; font-size: 7px; }
.sync-indicator { display: flex; align-items: center; gap: 5px; }
.sync-indicator span { width: 6px; height: 6px; border-radius: 50%; background: #82aa99; box-shadow: 0 0 0 3px rgba(130,170,153,.14); }
.sidebar-footer .text-button { margin: 0; color: #8faab5; font-size: 7px; }

.page-column { width: calc(100% - var(--sidebar-width)); margin-left: var(--sidebar-width); }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; height: 68px; align-items: center; justify-content: space-between; padding: 0 32px; border-bottom: 1px solid rgba(189,203,210,.75); background: rgba(248,250,250,.88); backdrop-filter: blur(18px); }
.breadcrumbs { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.breadcrumbs strong { color: var(--ink); }
.topbar-actions,.heading-actions,.toolbar-right { display: flex; align-items: center; gap: 8px; }
.global-search { display: flex; width: 230px; height: 36px; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: rgba(255,255,255,.72); }
.global-search input { width: 100%; border: 0; outline: 0; color: var(--ink); font-size: 10px; background: transparent; }
.member-chip { display: flex; align-items: center; gap: 8px; padding-right: 5px; }
.member-chip > span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: white; background: var(--blue); font-size: 8px; font-weight: 800; }
.member-chip strong,.member-chip small { display: block; }
.member-chip strong { font-size: 9px; }
.member-chip small { color: var(--muted); font-size: 7px; }
.button { min-height: 36px; padding: 0 14px; border: 1px solid transparent; border-radius: 10px; font-size: 10px; font-weight: 700; cursor: pointer; transition: .18s; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: white; background: var(--navy); box-shadow: 0 6px 16px rgba(40,78,96,.17); }
.button.primary:hover { background: var(--navy-dark); }
.button.secondary { border-color: var(--line-strong); color: var(--navy); background: white; }
.button.quiet { color: var(--navy); background: var(--surface-blue); }
.button.small { min-height: 29px; padding: 0 10px; font-size: 8px; }
.icon-button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 9px; background: transparent; cursor: pointer; }
.mobile-menu { display: none; }

.main-content { padding: 34px 32px 56px; }
.view { display: none; animation: viewIn .3s ease both; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 23px; }
.page-heading h1 { margin: 4px 0 5px; font-family: "Iowan Old Style",Georgia,serif; font-size: clamp(30px,3.3vw,44px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; }
.page-heading p { max-width: 740px; margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.87); box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 19px 20px 14px; }
.panel h2 { margin: 4px 0 0; font-family: "Iowan Old Style",Georgia,serif; font-size: 19px; font-weight: 600; letter-spacing: -.02em; }
.badge { display: inline-flex; min-height: 22px; align-items: center; padding: 0 8px; border-radius: 20px; font-size: 8px; font-weight: 700; white-space: nowrap; }
.badge.neutral { color: var(--navy); background: var(--surface-blue); }
.badge.success { color: #3e6858; background: var(--green-soft); }
.badge.warning { color: #805d2d; background: var(--amber-soft); }
.badge.danger { color: #824b49; background: var(--red-soft); }
.badge.virtual { color: #45677c; background: #e5eff4; }
.badge.real { color: #506a52; background: #e8efe8; }
.badge.combined { color: #5d586a; background: #eceaf0; }

.project-thread { display: grid; grid-template-columns: 1.1fr 32px 1.1fr 32px 1.1fr 32px 1.1fr; align-items: center; margin-bottom: 14px; padding: 13px 16px; border: 1px solid #cad9df; border-radius: 14px; background: linear-gradient(92deg,#e8f0f3,#f6f9f9); }
.thread-step { min-width: 0; }
.thread-step span { display: block; color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.thread-step strong { display: block; margin-top: 3px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.thread-step.active strong { color: var(--navy); }
.thread-arrow { color: var(--line-strong); text-align: center; }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.metric-card { position: relative; min-height: 104px; overflow: hidden; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.82); }
.metric-card::after { content: ""; position: absolute; right: -22px; bottom: -42px; width: 90px; height: 90px; border: 1px solid var(--surface-deep); border-radius: 50%; }
.metric-label { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.metric-value { display: block; margin: 8px 0 4px; font-family: "Iowan Old Style",Georgia,serif; font-size: 27px; line-height: 1; }
.metric-detail { color: var(--ink-soft); font-size: 8px; }
.today-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.66fr); gap: 14px; }
.today-main,.today-rail,.knowledge-side { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.active-session-panel { overflow: hidden; }
.session-empty { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; padding: 22px; background: linear-gradient(115deg,#eef4f6,#fbfcfc); }
.session-empty h2,.session-content h2 { margin: 5px 0 6px; font-family: "Iowan Old Style",Georgia,serif; font-size: 21px; }
.session-empty p,.session-content p { margin: 0; color: var(--ink-soft); font-size: 9px; line-height: 1.5; }
.session-content { padding: 20px; border-left: 4px solid var(--blue); background: linear-gradient(115deg,#e9f1f4,#fbfcfc); }
.session-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.session-meta,.context-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }
.context-pill { padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-soft); background: rgba(255,255,255,.7); font-size: 7px; }
.session-actions { display: flex; gap: 7px; margin-top: 15px; }
.assignment-list,.attention-list,.activity-list { padding: 0 20px 12px; }
.assignment { display: grid; grid-template-columns: 38px 1fr auto; gap: 11px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.assignment:first-child { border-top: 0; }
.task-state { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; color: var(--navy); background: var(--surface-blue); font-size: 8px; font-weight: 800; }
.task-state.risk { color: var(--red); background: var(--red-soft); }
.assignment strong { display: block; font-size: 10px; }
.assignment small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }
.assignment-actions { display: flex; gap: 5px; }
.attention-item { padding: 11px 0; border-top: 1px solid var(--line); }
.attention-item.risk { margin: 8px -10px 0; padding: 11px 10px; border: 1px solid #e0b9b7; border-left: 4px solid var(--red); border-radius: 10px; background: var(--red-soft); }
.attention-item strong { display: block; font-size: 9px; }
.attention-item p { margin: 4px 0 8px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.attention-meta { display: flex; align-items: center; justify-content: space-between; }
.activity-item { position: relative; width: 100%; padding: 10px 0 10px 18px; border: 0; border-left: 1px solid var(--line); text-align: left; background: transparent; cursor: pointer; }
.activity-item::before { content: ""; position: absolute; top: 14px; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
.activity-item strong { display: block; font-size: 9px; }
.activity-item small { display: block; margin-top: 3px; color: var(--muted); font-size: 7px; line-height: 1.4; }
.phase-path { display: flex; gap: 7px; overflow-x: auto; padding: 0 20px 19px; }
.phase-node { min-width: 61px; padding: 11px 7px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); text-align: center; background: var(--paper); cursor: pointer; }
.phase-node strong { display: block; margin-bottom: 4px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }
.phase-node span { font-size: 7px; }
.phase-node.complete { color: var(--green); border-color: #bdd2c8; background: var(--green-soft); }
.phase-node.active { color: white; border-color: var(--navy); background: var(--navy); }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; padding: 10px; box-shadow: none; }
.segmented { display: flex; gap: 3px; padding: 3px; border-radius: 9px; background: var(--surface-blue); }
.segmented button { min-height: 28px; padding: 0 11px; border: 0; border-radius: 7px; color: var(--muted); font-size: 8px; font-weight: 700; background: transparent; cursor: pointer; }
.segmented button.active { color: var(--navy); background: white; box-shadow: 0 2px 8px rgba(33,67,82,.08); }
select,input,textarea { border: 1px solid var(--line-strong); border-radius: 9px; color: var(--ink); background: white; }
select,input { min-height: 34px; padding: 0 9px; font-size: 9px; }
textarea { padding: 9px; font-size: 9px; line-height: 1.5; }
.toolbar-note { color: var(--muted); font-size: 8px; }
.gantt-panel { overflow: hidden; }
.gantt-summary { display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid var(--line); }
.gantt-summary-item { padding: 14px 18px; border-right: 1px solid var(--line); }
.gantt-summary-item:last-child { border-right: 0; }
.gantt-summary-item strong { display: block; font-family: "Iowan Old Style",Georgia,serif; font-size: 19px; }
.gantt-summary-item span { color: var(--muted); font-size: 7px; }
.gantt-scroll { overflow-x: auto; }
.gantt { min-width: 950px; }
.gantt-row { display: grid; grid-template-columns: 285px repeat(12,minmax(54px,1fr)); min-height: 52px; border-bottom: 1px solid var(--line); }
.gantt-row:last-child { border-bottom: 0; }
.gantt-row.at-risk-row { background: #fff8f2; box-shadow: inset 4px 0 var(--red); }
.gantt-row.at-risk-row .gantt-task { background: #fbefec; }
.gantt-row.locked-row { opacity: .78; background: #f2f6f7; }
.gantt-row.locked-row .gantt-task { cursor: pointer; }
.gantt-cell { position: relative; display: flex; align-items: center; justify-content: center; border-right: 1px solid #e8edef; color: var(--muted); font-size: 7px; }
.gantt-task { justify-content: flex-start; gap: 10px; padding: 8px 13px; text-align: left; background: rgba(249,251,251,.85); cursor: pointer; }
.gantt-task:hover { background: var(--surface-blue); }
.gantt-task strong { display: block; font-size: 9px; }
.gantt-task small { display: block; margin-top: 3px; color: var(--muted); font-size: 7px; }
.task-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--line-strong); }
.task-dot.complete { background: var(--green); }.task-dot.in-progress { background: var(--blue); }.task-dot.at-risk { background: var(--red); }
.gantt-header { min-height: 39px; color: var(--ink-soft); font-weight: 700; background: var(--surface-blue); }
.gantt-bar { position: absolute; z-index: 2; right: 4px; left: 4px; height: 17px; border-radius: 6px; background: var(--blue); }
.gantt-bar.complete { background: var(--green); }.gantt-bar.at-risk { background: var(--red); }.gantt-bar.planned { background: #9cafb7; }
.gantt-bar.milestone { right: auto; left: 50%; width: 15px; height: 15px; border-radius: 3px; transform: translateX(-50%) rotate(45deg); background: var(--amber); }

.notebook-layout { display: grid; grid-template-columns: minmax(310px,.72fr) minmax(0,1.28fr); gap: 14px; align-items: start; }
.notebook-list-panel { max-height: calc(100vh - 210px); overflow-y: auto; box-shadow: none; }
.notebook-list { padding: 7px; }
.entry-card { width: 100%; padding: 13px; border: 0; border-bottom: 1px solid var(--line); border-radius: 10px; text-align: left; background: transparent; cursor: pointer; }
.entry-card:hover,.entry-card.active { background: var(--surface-blue); }
.entry-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.entry-card strong { display: block; margin: 8px 0 4px; font-family: "Iowan Old Style",Georgia,serif; font-size: 14px; }
.entry-card p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.entry-card footer { display: flex; justify-content: space-between; margin-top: 10px; color: var(--muted); font-size: 7px; }
.notebook-preview { position: sticky; top: 84px; min-height: 530px; overflow: hidden; }
.entry-paper-head { padding: 23px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg,#edf3f5,#fbfcfc); }
.entry-paper-head h2 { margin: 7px 0 8px; font-size: 25px; }
.entry-paper-head p { margin: 0; color: var(--ink-soft); font-size: 9px; }
.entry-context { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.entry-sections { padding: 3px 23px 22px; }
.entry-section { padding: 15px 0; border-bottom: 1px solid var(--line); }
.entry-section:last-child { border-bottom: 0; }
.entry-section h3 { margin: 0 0 6px; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.entry-section p { margin: 0; color: var(--ink-soft); font-family: "Iowan Old Style",Georgia,serif; font-size: 13px; line-height: 1.55; white-space: pre-wrap; }
.entry-footer { display: flex; align-items: center; justify-content: space-between; padding: 14px 23px; border-top: 1px solid var(--line); background: var(--paper); }
.signature { color: var(--green); font-size: 8px; }

.experiment-layout { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 14px; align-items: start; margin-bottom: 14px; }
.protocol-column { display: flex; flex-direction: column; gap: 9px; }
.protocol-card { width: 100%; padding: 15px; border: 1px solid var(--line); border-radius: 14px; text-align: left; background: rgba(255,255,255,.8); cursor: pointer; }
.protocol-card:hover,.protocol-card.active { border-color: #9db6c0; background: white; box-shadow: var(--shadow); }
.protocol-card header { display: flex; justify-content: space-between; gap: 8px; }
.protocol-card strong { display: block; margin: 9px 0 5px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }
.protocol-card p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.protocol-card footer { display: flex; justify-content: space-between; margin-top: 12px; color: var(--muted); font-size: 7px; }
.protocol-detail { min-height: 360px; overflow: hidden; }
.protocol-hero { padding: 22px; color: white; background: linear-gradient(135deg,#2b5567,#1b3c4a); }
.protocol-hero h2 { margin: 6px 0 7px; font-size: 25px; }
.protocol-hero p { max-width: 720px; margin: 0; color: #d1e0e5; font-size: 9px; line-height: 1.55; }
.protocol-body { display: grid; grid-template-columns: 1fr 1fr; }
.protocol-section { padding: 18px 20px; border-right: 1px solid var(--line); }
.protocol-section:last-child { border-right: 0; }
.protocol-section h3 { margin: 0 0 10px; font-size: 10px; }
.protocol-section ol { margin: 0; padding-left: 18px; color: var(--ink-soft); font-size: 8px; line-height: 1.65; }
.run-launch { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 0 20px 20px; }
.mode-launch { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.mode-launch.virtual { border-top: 3px solid var(--virtual); }.mode-launch.real { border-top: 3px solid var(--real); }
.mode-launch strong,.mode-launch small { display: block; }.mode-launch small { min-height: 31px; margin: 4px 0 10px; color: var(--muted); font-size: 7px; line-height: 1.45; }
.legend { color: var(--muted); font-size: 8px; }.legend i { display: inline-block; width: 7px; height: 7px; margin: 0 4px 0 9px; border-radius: 50%; }.virtual-dot { background: var(--virtual); }.real-dot { background: var(--real); }
.runs-panel { overflow: hidden; }
.data-table-wrap { overflow-x: auto; border-top: 1px solid var(--line); }
.data-table { width: 100%; border-collapse: collapse; font-size: 8px; }
.data-table th { padding: 10px 13px; color: var(--muted); font-size: 7px; letter-spacing: .08em; text-align: left; text-transform: uppercase; background: var(--surface-blue); }
.data-table td { padding: 12px 13px; border-top: 1px solid var(--line); vertical-align: middle; }
.data-table tbody tr { cursor: pointer; }.data-table tbody tr:hover { background: #f7fafb; }
.data-table tbody tr.selected-row { background: #edf4f6; box-shadow: inset 3px 0 var(--blue); }
.table-title strong,.table-title small { display: block; }.table-title strong { font-size: 9px; }.table-title small { margin-top: 3px; color: var(--muted); font-size: 7px; }

.phase-review-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 14px; align-items: start; }
.phase-menu { position: sticky; top: 84px; max-height: calc(100vh - 105px); overflow-y: auto; padding: 8px; box-shadow: none; }
.phase-menu-group { margin: 10px 8px 5px; color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.phase-menu-item { display: grid; width: 100%; grid-template-columns: 29px 1fr auto; gap: 8px; align-items: center; min-height: 48px; padding: 7px 8px; border: 0; border-radius: 10px; text-align: left; background: transparent; cursor: pointer; }
.phase-menu-item:hover { background: var(--surface-blue); }.phase-menu-item.active { color: white; background: var(--navy); }
.phase-number { display: grid; width: 29px; height: 29px; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--navy); background: white; font-size: 8px; font-weight: 800; }
.phase-menu-item strong { font-size: 8px; line-height: 1.3; }.phase-menu-item small { display: block; margin-top: 2px; color: var(--muted); font-size: 6px; }.phase-menu-item.active small { color: #bed1d8; }
.phase-state { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); }.phase-state.complete { background: var(--green); }.phase-state.active { background: #a8c9d5; box-shadow: 0 0 0 4px rgba(168,201,213,.15); }
.phase-review-main { min-width: 0; }
.phase-hero { position: relative; overflow: hidden; padding: 25px; color: white; background: linear-gradient(135deg,#2b5567,#1b3c4a); }
.phase-hero::after { content: ""; position: absolute; right: -60px; top: -90px; width: 240px; height: 240px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.02); }
.phase-hero-content { position: relative; z-index: 1; }.phase-hero .eyebrow { color: #b9ced6; }.phase-hero h2 { margin: 7px 0 8px; font-size: 28px; }.phase-hero p { max-width: 780px; margin: 0; color: #d2e1e6; font-family: "Iowan Old Style",Georgia,serif; font-size: 13px; line-height: 1.5; }
.phase-hero-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }.phase-hero-meta span { padding: 6px 9px; border: 1px solid rgba(255,255,255,.16); border-radius: 20px; color: #d9e8ec; font-size: 7px; background: rgba(255,255,255,.06); }
.dual-evidence { display: grid; grid-template-columns: 1fr 42px 1fr; margin-top: 14px; }
.evidence-column { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.86); box-shadow: var(--shadow); }.evidence-column.virtual { border-top: 4px solid var(--virtual); }.evidence-column.real { border-top: 4px solid var(--real); }
.evidence-head { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 1px solid var(--line); }.evidence-head h3 { margin: 3px 0 0; font-family: "Iowan Old Style",Georgia,serif; font-size: 17px; }
.evidence-list { min-height: 158px; padding: 7px 15px 12px; }.evidence-row { display: grid; width: 100%; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); text-align: left; background: transparent; cursor: pointer; }.evidence-row:last-child { border-bottom: 0; }.evidence-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; color: var(--blue); background: var(--surface-blue); font-size: 7px; font-weight: 800; }.evidence-row strong,.evidence-row small { display: block; }.evidence-row strong { font-size: 8px; }.evidence-row small { margin-top: 2px; color: var(--muted); font-size: 7px; }
.evidence-bridge { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: var(--muted); font-size: 7px; text-transform: uppercase; }.evidence-bridge span { width: 1px; flex: 1; background: var(--line-strong); }.evidence-bridge strong { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--paper); font-size: 7px; }
.phase-bottom-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; margin-top: 14px; }.phase-work-list,.readiness-list { padding: 0 20px 16px; }.phase-work-item,.readiness-item { display: grid; width: 100%; grid-template-columns: 1fr auto; gap: 10px; padding: 11px 0; border: 0; border-top: 1px solid var(--line); text-align: left; background: transparent; }.phase-work-item { cursor: pointer; }.phase-work-item strong,.readiness-item strong { display: block; font-size: 9px; }.phase-work-item small,.readiness-item small { display: block; margin-top: 3px; color: var(--muted); font-size: 7px; }.readiness-mark { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: var(--muted); background: var(--surface-blue); font-size: 8px; }.readiness-mark.met { color: white; background: var(--green); }.readiness-score { display: flex; align-items: center; gap: 10px; }.score-ring { --score: 0deg; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: conic-gradient(var(--navy) var(--score),var(--surface-deep) 0); }.score-ring::before { content: ""; grid-area: 1/1; width: 44px; height: 44px; border-radius: 50%; background: white; }.score-ring strong { z-index: 1; grid-area: 1/1; font-family: "Iowan Old Style",Georgia,serif; font-size: 14px; }

.knowledge-stats { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; margin-bottom: 13px; }.knowledge-stat { padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.76); cursor: pointer; }.knowledge-stat strong { display: block; font-family: "Iowan Old Style",Georgia,serif; font-size: 20px; }.knowledge-stat span { color: var(--muted); font-size: 7px; }
.trace-panel { margin-bottom: 14px; overflow: hidden; }.trace-flow { display: grid; grid-template-columns: repeat(6,1fr); padding: 0 10px 14px; }.trace-node { position: relative; min-height: 88px; padding: 12px; border-right: 1px solid var(--line); }.trace-node:last-child { border-right: 0; }.trace-node:not(:last-child)::after { content: ">"; position: absolute; top: 34px; right: -6px; z-index: 2; display: grid; width: 12px; height: 20px; place-items: center; color: var(--line-strong); background: white; }.trace-node strong { display: block; margin: 6px 0 3px; font-family: "Iowan Old Style",Georgia,serif; font-size: 17px; }.trace-node p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.4; }
.knowledge-layout { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.55fr); gap: 14px; align-items: start; }.table-panel { overflow: hidden; box-shadow: none; }.table-search { display: flex; gap: 6px; }.table-search input { width: 175px; }.record-context { min-width: 160px; }.record-context span { display: block; margin-bottom: 3px; }.side-list { padding: 0 19px 14px; }.side-item { padding: 11px 0; border-top: 1px solid var(--line); cursor: pointer; }.side-item strong,.side-item small { display: block; }.side-item strong { font-size: 9px; }.side-item small { margin-top: 3px; color: var(--muted); font-size: 7px; line-height: 1.4; }.side-item footer { display: flex; justify-content: space-between; margin-top: 7px; }

.drawer-backdrop { position: fixed; inset: 0; z-index: 80; display: none; justify-content: flex-end; background: rgba(15,35,44,.37); backdrop-filter: blur(3px); }.drawer-backdrop.open { display: flex; }.work-drawer { width: min(570px,100%); height: 100%; overflow-y: auto; background: var(--surface); box-shadow: -24px 0 70px rgba(17,42,53,.25); animation: drawerIn .25s ease both; }.drawer-backdrop.open .work-drawer { display: block; }@keyframes drawerIn { from { transform: translateX(30px); opacity: .5; } to { transform: none; opacity: 1; } }
.drawer-head { position: sticky; top: 0; z-index: 2; padding: 21px 22px 17px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); backdrop-filter: blur(12px); }.drawer-head.locked { background: #f6faf9; box-shadow: inset 4px 0 var(--green); }.drawer-head-top { display: flex; justify-content: space-between; }.drawer-head h2 { margin: 8px 0 6px; font-family: "Iowan Old Style",Georgia,serif; font-size: 25px; }.drawer-head p { margin: 0; color: var(--muted); font-size: 8px; }.drawer-actions { display: flex; gap: 7px; margin-top: 15px; }.locked-note { display: flex; align-items: center; gap: 9px; margin-top: 15px; padding: 10px 12px; border: 1px solid #bfd5ca; border-radius: 10px; background: var(--green-soft); }.locked-note small { color: var(--green); font-size: 8px; }.drawer-body { padding: 18px 22px 28px; }.drawer-section { margin-bottom: 20px; }.drawer-section h3 { margin: 0 0 9px; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }.drawer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.drawer-link { min-height: 74px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); cursor: pointer; }.drawer-link strong,.drawer-link small { display: block; }.drawer-link strong { font-size: 9px; }.drawer-link small { margin-top: 5px; color: var(--muted); font-size: 7px; line-height: 1.4; }.progress-track { height: 7px; overflow: hidden; border-radius: 10px; background: var(--surface-deep); }.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--blue); }.drawer-timeline { padding-left: 9px; border-left: 1px solid var(--line); }.drawer-event { position: relative; padding: 0 0 14px 15px; }.drawer-event::before { content: ""; position: absolute; top: 3px; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }.drawer-event strong,.drawer-event small { display: block; }.drawer-event strong { font-size: 8px; }.drawer-event small { margin-top: 3px; color: var(--muted); font-size: 7px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(16,37,46,.55); backdrop-filter: blur(5px); }.modal-backdrop.open { display: flex; }.modal { width: min(720px,100%); max-height: calc(100vh - 40px); overflow-y: auto; border: 1px solid rgba(255,255,255,.45); border-radius: 20px; background: var(--surface); box-shadow: 0 32px 80px rgba(12,34,43,.3); animation: modalIn .22s ease both; }@keyframes modalIn { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }.modal-heading { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 20px 22px 15px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); backdrop-filter: blur(10px); }.modal-heading h2 { margin: 3px 0 0; font-family: "Iowan Old Style",Georgia,serif; font-size: 23px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 20px 22px; }.field { display: flex; flex-direction: column; gap: 6px; }.field.full { grid-column: 1/-1; }.field label { color: var(--ink-soft); font-size: 8px; font-weight: 700; }.field input,.field textarea,.field select { width: 100%; }.field textarea { min-height: 78px; resize: vertical; }.field-help { color: var(--muted); font-size: 7px; line-height: 1.4; }.modal-actions { display: flex; justify-content: flex-end; gap: 8px; grid-column: 1/-1; padding-top: 8px; }.form-divider { grid-column: 1/-1; padding-top: 6px; border-top: 1px solid var(--line); color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 120; max-width: 320px; padding: 12px 15px; border-radius: 11px; color: white; background: var(--navy-dark); box-shadow: 0 15px 35px rgba(14,40,50,.3); font-size: 9px; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s; }.toast.show { opacity: 1; transform: none; }
.empty-state { padding: 27px 19px; color: var(--muted); font-size: 9px; text-align: center; }.empty-state strong { display: block; margin-bottom: 5px; color: var(--ink); }

/* Connected capture, research intelligence, and project orientation */
.intro-view { max-width: 1500px; margin: 0 auto; }.intro-hero { position: relative; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(310px,.55fr); min-height: 420px; margin: -36px -38px 0; padding: 70px 58px 50px; overflow: hidden; color: white; background: radial-gradient(circle at 78% 18%,rgba(162,199,211,.24),transparent 23%),linear-gradient(135deg,#173846 0%,#28566a 58%,#3d6d7e 100%); }.intro-hero::before { content: ""; position: absolute; right: -110px; bottom: -190px; width: 500px; height: 500px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018); }.intro-hero-copy,.intro-hero-aside { position: relative; z-index: 1; }.intro-hero .eyebrow { color: #c5d9df; }.intro-hero h1 { max-width: 800px; margin: 12px 0 18px; font-size: clamp(39px,5vw,72px); line-height: .98; letter-spacing: -.04em; }.intro-hero-copy > p { max-width: 730px; margin: 0; color: #d7e5e9; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; line-height: 1.6; }.intro-actions { display: flex; gap: 9px; margin-top: 28px; }.intro-hero-aside { align-self: end; padding: 23px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }.intro-hero-aside > strong { display: block; margin: 10px 0 8px; font-family: "Iowan Old Style",Georgia,serif; font-size: 24px; line-height: 1.1; }.intro-hero-aside p { margin: 0; color: #d5e3e7; font-size: 9px; line-height: 1.55; }.intro-scope-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 16px; }.intro-scope-tags span { padding: 5px 8px; border-radius: 20px; color: #183d4c; background: #d5e5e9; font-size: 7px; font-weight: 800; }
.intro-subnav { position: sticky; top: 69px; z-index: 15; display: flex; justify-content: center; gap: 3px; width: fit-content; margin: -20px auto 70px; padding: 5px; border-radius: 14px; box-shadow: 0 12px 30px rgba(24,54,67,.13); }.intro-subnav a { padding: 9px 15px; border-radius: 9px; color: var(--ink-soft); font-size: 8px; font-weight: 800; text-decoration: none; }.intro-subnav a:hover { color: white; background: var(--navy); }
.intro-section { scroll-margin-top: 135px; margin-bottom: 88px; }.section-lead { max-width: 820px; margin-bottom: 28px; }.section-lead h2 { margin: 7px 0 10px; font-size: clamp(29px,3.2vw,46px); line-height: 1.03; letter-spacing: -.025em; }.section-lead > p,.section-lead.split p { margin: 0; color: var(--muted); font-family: "Iowan Old Style",Georgia,serif; font-size: 13px; line-height: 1.55; }.section-lead.split { display: grid; max-width: none; grid-template-columns: 1fr minmax(320px,.72fr); gap: 50px; align-items: end; }.section-lead.split .text-button { margin-top: 12px; }
.use-flow { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: white; box-shadow: var(--shadow); }.use-flow button { min-height: 245px; padding: 24px; border: 0; border-right: 1px solid var(--line); text-align: left; background: white; cursor: pointer; }.use-flow button:last-child { border-right: 0; }.use-flow button:hover { color: white; background: var(--navy); }.use-flow span,.use-flow strong,.use-flow b { display: block; }.use-flow span { color: var(--blue); font-size: 9px; font-weight: 900; }.use-flow strong { margin: 30px 0 10px; font-family: "Iowan Old Style",Georgia,serif; font-size: 21px; }.use-flow p { min-height: 78px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }.use-flow b { margin-top: 20px; color: var(--blue); font-size: 8px; }.use-flow button:hover span,.use-flow button:hover p,.use-flow button:hover b { color: #c8dce2; }
.vip-section { position: relative; }.vip-figure { margin: 0 0 18px; overflow: hidden; box-shadow: 0 20px 55px rgba(26,57,69,.13); }.vip-image-wrap { position: relative; background: white; }.vip-image-wrap img { display: block; width: 100%; height: auto; }.vip-highlight { position: absolute; border: 4px solid #e4a83a; background: rgba(245,194,71,.08); box-shadow: inset 0 0 0 2px rgba(255,255,255,.7),0 0 25px rgba(177,123,29,.22); pointer-events: none; }.vip-highlight span { position: absolute; top: -17px; left: 10px; padding: 5px 8px; border-radius: 7px 7px 0 0; color: #3c2b0d; background: #f2c15a; font-size: 7px; font-weight: 900; white-space: nowrap; }.vip-highlight.materials { top: 17.1%; left: 27%; width: 25%; height: 63.2%; }.vip-highlight.design { top: 17.1%; left: 52.3%; width: 24.2%; height: 63.2%; }.vip-highlight.crosscut { top: 80.5%; left: 27%; width: 72.8%; height: 5.6%; border-color: #70a1b1; background: rgba(83,123,141,.12); }.vip-highlight.crosscut span { top: auto; bottom: -17px; color: white; background: var(--blue); }.vip-figure figcaption { display: grid; grid-template-columns: 190px 1fr; gap: 20px; padding: 18px 22px; border-top: 1px solid var(--line); background: white; }.vip-figure figcaption strong { font-family: "Iowan Old Style",Georgia,serif; font-size: 16px; }.vip-figure figcaption span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.dashboard-portfolio { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }.dashboard-portfolio article { position: relative; min-height: 205px; padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.8); }.dashboard-portfolio article.selected { color: white; border-color: var(--navy); background: var(--navy); box-shadow: var(--shadow); transform: translateY(-4px); }.dashboard-portfolio article > span { color: var(--blue); font-size: 7px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.dashboard-portfolio article.selected > span { color: #bad2da; }.dashboard-portfolio h3 { margin: 15px 0 8px; font-family: "Iowan Old Style",Georgia,serif; font-size: 17px; line-height: 1.15; }.dashboard-portfolio p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }.dashboard-portfolio .selected p { color: #d2e2e6; }.dashboard-portfolio small { position: absolute; right: 19px; bottom: 16px; left: 19px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 7px; font-weight: 800; }.dashboard-portfolio .selected small { color: #d7e6e9; border-color: rgba(255,255,255,.17); }
.market-arena-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }.market-arena-grid article { position: relative; min-height: 245px; padding: 26px 26px 22px 82px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.84); }.arena-code { position: absolute; top: 0; bottom: 0; left: 0; display: grid; width: 58px; place-items: center; color: #89a9b5; background: var(--surface-blue); font-family: "Iowan Old Style",Georgia,serif; font-size: 30px; }.market-arena-grid h3 { margin: 0 0 9px; font-size: 20px; }.market-arena-grid p { min-height: 66px; margin: 0 0 20px; color: var(--muted); font-family: "Iowan Old Style",Georgia,serif; font-size: 11px; line-height: 1.5; }.market-arena-grid strong,.market-arena-grid small { display: block; }.market-arena-grid strong { margin-bottom: 5px; color: var(--blue); font-size: 7px; text-transform: uppercase; }.market-arena-grid small { font-size: 8px; line-height: 1.45; }.market-decision { display: grid; grid-template-columns: minmax(230px,.7fr) 1fr auto; gap: 30px; align-items: center; margin-top: 12px; padding: 21px 24px; border-left: 4px solid var(--blue); }.market-decision strong { display: block; margin-top: 5px; font-family: "Iowan Old Style",Georgia,serif; font-size: 17px; }.market-decision p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.pitch-shell { overflow: hidden; background: #173846; box-shadow: 0 25px 65px rgba(18,44,55,.2); }.pitch-stage { min-height: 510px; color: white; }.pitch-slide { display: grid; min-height: 510px; grid-template-columns: 180px 1fr; background: radial-gradient(circle at 86% 18%,rgba(160,202,214,.18),transparent 25%),linear-gradient(135deg,#173846,#244f61); }.pitch-slide-number { display: grid; place-items: center; color: #8eafb9; border-right: 1px solid rgba(255,255,255,.12); font-family: "Iowan Old Style",Georgia,serif; font-size: 75px; }.pitch-slide-copy { display: flex; max-width: 950px; flex-direction: column; justify-content: center; padding: 55px 70px; }.pitch-slide-copy .eyebrow { color: #b8d0d8; }.pitch-slide-copy h3 { max-width: 850px; margin: 15px 0 22px; font-size: clamp(31px,4vw,56px); line-height: 1.02; letter-spacing: -.03em; }.pitch-slide-copy p { max-width: 780px; margin: 0; color: #d1e1e5; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; line-height: 1.55; }.pitch-slide-copy footer { max-width: 780px; margin-top: 35px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.18); color: #a9c7d0; font-size: 9px; font-weight: 800; }.pitch-controls { display: grid; grid-template-columns: 40px 1fr auto 40px; gap: 12px; align-items: center; padding: 12px 16px; border-top: 1px solid rgba(255,255,255,.12); background: #102e3a; }.pitch-controls .icon-button { color: white; border-color: rgba(255,255,255,.18); }.pitch-controls > span { color: #a9c2ca; font-size: 8px; }.pitch-dots { display: flex; gap: 5px; }.pitch-dots button { width: 30px; height: 5px; overflow: hidden; padding: 0; border: 0; border-radius: 9px; color: transparent; background: rgba(255,255,255,.18); cursor: pointer; }.pitch-dots button.active { width: 55px; background: #9fc5d0; }
.intake-strip { display: grid; grid-template-columns: minmax(260px,1fr) repeat(3,130px) auto; gap: 14px; align-items: center; margin-bottom: 14px; padding: 15px 18px; border-left: 4px solid var(--blue); box-shadow: none; }
.intake-strip > div:first-child strong,.intake-stat b,.intake-stat span { display: block; }.intake-strip > div:first-child strong { margin-top: 4px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }.intake-stat { padding-left: 14px; border-left: 1px solid var(--line); }.intake-stat b { font-size: 14px; }.intake-stat span { margin-top: 2px; color: var(--muted); font-size: 7px; }
.entry-data-context { padding: 18px 23px; border-top: 1px solid var(--line); background: #f5f9fa; }.entry-data-context > div:first-child strong,.entry-data-context > div:first-child small { display: block; }.entry-data-context > div:first-child strong { margin: 4px 0; font-size: 10px; }.entry-data-context > div:first-child small { color: var(--muted); font-size: 7px; }
.tag-cloud { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px; }.tag-cloud > small { width: 100%; color: var(--muted); font-size: 7px; }.tag-cloud span { padding: 4px 7px; border: 1px solid #c8d8de; border-radius: 20px; color: #315666; background: #edf4f6; font-size: 7px; }
.file-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; margin-top: 12px; }.file-chip { padding: 9px; border: 1px solid var(--line); border-radius: 9px; background: white; }.file-chip b,.file-chip small { display: block; }.file-chip b { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.file-chip small { margin-top: 3px; color: var(--muted); font-size: 6px; }
.upload-field { padding: 14px; border: 1px dashed #aabfc7; border-radius: 12px; background: #f7fafb; }.upload-field input[type="file"] { padding: 9px; background: white; }.pending-files { display: grid; gap: 5px; }.pending-files > div { display: flex; justify-content: space-between; padding: 7px 9px; border-radius: 7px; background: white; font-size: 7px; }.pending-files span { color: var(--muted); }

.phase-sections-panel { margin-top: 14px; overflow: hidden; }.phase-sections { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }.phase-section-card { min-height: 128px; padding: 16px; border: 0; border-right: 1px solid var(--line); text-align: left; background: white; cursor: pointer; }.phase-section-card:last-child { border-right: 0; }.phase-section-card:hover { background: var(--surface-blue); }.phase-section-card .section-index,.phase-section-card strong,.phase-section-card small,.phase-section-card > span:last-child { display: block; }.phase-section-card .section-index { color: var(--blue); font-size: 8px; font-weight: 800; }.phase-section-card strong { margin: 15px 0 5px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }.phase-section-card small { min-height: 28px; color: var(--muted); font-size: 7px; line-height: 1.4; }.phase-section-card > span:last-child { margin-top: 10px; color: var(--blue); font-size: 7px; font-weight: 800; }

.research-tabs { display: inline-flex; margin-bottom: 14px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: white; }.research-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 14px; }.research-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.55fr); gap: 14px; align-items: start; }.research-table-panel { overflow: hidden; }.research-table td { max-width: 270px; line-height: 1.5; }.research-table small { color: var(--muted); font-size: 7px; }.opportunity-score { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: white; background: var(--navy); font-size: 11px; font-weight: 800; }.research-rail { display: grid; gap: 14px; }.theme-list,.coverage-list { padding: 0 18px 18px; }.theme-list > div { display: grid; grid-template-columns: 90px 1fr 18px; gap: 8px; align-items: center; padding: 7px 0; font-size: 7px; }.theme-list b { position: relative; height: 6px; border-radius: 8px; background: var(--surface-deep); }.theme-list b::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--width); border-radius: inherit; background: var(--blue); }.coverage-list button { display: grid; width: 100%; grid-template-columns: 1fr auto; gap: 8px; padding: 10px 0; border: 0; border-top: 1px solid var(--line); text-align: left; background: transparent; cursor: pointer; font-size: 7px; }.coverage-list strong { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--surface-blue); }

.map-hero { margin-bottom: 14px; overflow: hidden; }.scope-map { display: flex; align-items: center; padding: 12px 18px 22px; overflow-x: auto; }.scope-node { min-width: 102px; padding: 13px 9px; border: 1px solid var(--line); border-radius: 12px; text-align: left; background: white; cursor: pointer; }.scope-node:hover,.scope-node.current { color: white; border-color: var(--navy); background: var(--navy); }.scope-node i,.scope-node strong,.scope-node span { display: block; }.scope-node i { color: var(--blue); font-size: 7px; font-style: normal; font-weight: 800; }.scope-node.current i,.scope-node:hover i { color: #bcd3dc; }.scope-node strong { margin: 12px 0 3px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }.scope-node span { color: var(--muted); font-size: 6px; }.scope-node.current span,.scope-node:hover span { color: #c8d9df; }.scope-arrow { flex: 0 0 22px; color: var(--line-strong); text-align: center; }
.visual-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 14px; }.visual-card { min-height: 310px; padding: 19px; overflow: hidden; }.visual-title h2 { margin: 4px 0 0; font-size: 18px; }.donut-wrap { display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: center; min-height: 225px; }.evidence-donut { display: grid; width: 145px; height: 145px; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) 0 var(--signed),var(--virtual) var(--signed) calc(var(--signed) + var(--virtual)),var(--real) 0); }.evidence-donut::before { content: ""; grid-area: 1/1; width: 92px; height: 92px; border-radius: 50%; background: white; }.evidence-donut strong,.evidence-donut span { z-index: 1; grid-area: 1/1; }.evidence-donut strong { transform: translateY(-8px); font-family: "Iowan Old Style",Georgia,serif; font-size: 26px; }.evidence-donut span { transform: translateY(15px); color: var(--muted); font-size: 6px; }.visual-legend { display: grid; gap: 9px; color: var(--muted); font-size: 7px; }.visual-legend i { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; }.visual-legend .signed { background: var(--green); }.visual-legend .virtual { background: var(--virtual); }.visual-legend .real { background: var(--real); }
.phase-orbit { position: relative; width: 225px; height: 225px; margin: 20px auto 0; border: 1px solid var(--line); border-radius: 50%; box-shadow: inset 0 0 0 35px #f5f8f9,inset 0 0 0 36px var(--line); }.orbit-core { position: absolute; inset: 76px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--navy); font-family: "Iowan Old Style",Georgia,serif; font-size: 13px; }.orbit-core span { display: block; margin-top: -16px; color: #bcd0d8; font-family: sans-serif; font-size: 6px; }.phase-orbit > button { position: absolute; top: 50%; left: 50%; display: grid; width: var(--size); height: 20px; place-items: center; border: 0; border-radius: 9px; color: white; background: var(--blue); cursor: pointer; transform: rotate(var(--angle)) translateX(76px) rotate(calc(var(--angle) * -1)); transform-origin: 0 0; }.phase-orbit > button span { font-size: 6px; font-weight: 800; }
.coverage-gauge { display: grid; width: 170px; height: 170px; margin: 26px auto 15px; place-items: center; border-radius: 50%; background: conic-gradient(var(--blue) var(--coverage),var(--surface-deep) 0); }.coverage-gauge::before { content: ""; grid-area: 1/1; width: 125px; height: 125px; border-radius: 50%; background: white; }.coverage-gauge strong,.coverage-gauge span { z-index: 1; grid-area: 1/1; }.coverage-gauge strong { transform: translateY(-10px); font-family: "Iowan Old Style",Georgia,serif; font-size: 27px; }.coverage-gauge span { max-width: 80px; transform: translateY(18px); color: var(--muted); font-size: 6px; text-align: center; }.coverage-chips { display: flex; justify-content: center; gap: 5px; }.coverage-chips span { padding: 4px 6px; border-radius: 12px; color: var(--muted); background: var(--surface-deep); font-size: 6px; }.coverage-chips .covered { color: white; background: var(--green); }
.map-task-list { overflow: hidden; }.role-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }.role-grid button { min-height: 155px; padding: 16px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; background: white; cursor: pointer; }.role-grid button:hover { background: var(--surface-blue); }.role-grid .role-id,.role-grid strong,.role-grid small { display: block; }.role-grid .role-id { color: var(--blue); font-size: 7px; font-weight: 800; }.role-grid strong { margin: 12px 0 10px; font-family: "Iowan Old Style",Georgia,serif; font-size: 15px; }.role-grid small { margin-top: 5px; color: var(--muted); font-size: 7px; line-height: 1.45; }.role-grid small b { color: var(--ink-soft); }
.task-role-flow { display: grid; grid-template-columns: 1fr 18px 1fr 18px 1fr; gap: 5px; align-items: stretch; }.task-role-flow > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: white; }.task-role-flow > div.current { color: white; border-color: var(--navy); background: var(--navy); }.task-role-flow span,.task-role-flow strong { display: block; }.task-role-flow span { margin-bottom: 7px; color: var(--muted); font-size: 6px; text-transform: uppercase; }.task-role-flow .current span { color: #bdd0d7; }.task-role-flow strong { font-size: 8px; line-height: 1.4; }.task-role-flow i { align-self: center; color: var(--line-strong); font-style: normal; text-align: center; }

.template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.template-card { display: flex; min-height: 150px; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.84); box-shadow: var(--shadow); }
.template-card h2 { margin: 5px 0 7px; font-size: 18px; }
.template-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.template-card footer { display: flex; justify-content: flex-end; gap: 7px; margin-top: 16px; }
.submission-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 14px; align-items: start; }
.submission-detail { position: sticky; top: 84px; overflow: hidden; }
.submission-detail-head { padding: 21px; color: white; background: linear-gradient(135deg,#2b5567,#1b3c4a); }
.submission-detail-head .eyebrow { color: #bfd4db; }
.submission-detail-head h2 { margin: 6px 0 0; font-size: 24px; }
.submission-detail-body { display: grid; gap: 16px; padding: 19px 21px; }
.submission-detail-body section { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.submission-detail-body section:last-child { padding-bottom: 0; border-bottom: 0; }
.submission-detail-body h3 { margin: 0 0 8px; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.submission-detail-body p { margin: 0; color: var(--ink-soft); font-size: 9px; line-height: 1.55; white-space: pre-wrap; }
.submission-detail-body .drawer-link { display: block; text-decoration: none; }
.submission-detail-actions { display: flex; justify-content: space-between; gap: 8px; padding: 14px 21px; border-top: 1px solid var(--line); background: var(--paper); }

.cad-studio-view .page-heading { align-items: center; }
.cad-open-link { display: inline-flex; align-items: center; text-decoration: none; }
.cad-frame-panel { overflow: hidden; padding: 0; background: var(--paper); }
.cad-frame { display: block; width: 100%; height: min(1080px, calc(100vh - 170px)); min-height: 760px; border: 0; background: white; }

@media (max-width: 1180px) {
  .member-chip { display: none; }.today-grid,.knowledge-layout,.research-layout,.submission-layout { grid-template-columns: 1fr; }.submission-detail { position: static; }.today-rail { display: grid; grid-template-columns: 1fr 1fr; }.metric-grid { grid-template-columns: repeat(2,1fr); }.phase-bottom-grid { grid-template-columns: 1fr; }.trace-flow { grid-template-columns: repeat(3,1fr); }.trace-node:nth-child(3) { border-right: 0; }.intake-strip { grid-template-columns: 1fr repeat(3,110px); }.intake-strip .button { grid-column: 1/-1; }.visual-grid { grid-template-columns: 1fr 1fr; }.visual-card:last-child { grid-column: 1/-1; }.intro-hero { grid-template-columns: 1fr; }.intro-hero-aside { max-width: 520px; margin-top: 40px; }.use-flow,.dashboard-portfolio { grid-template-columns: repeat(2,1fr); }.use-flow button:nth-child(2) { border-right: 0; }.use-flow button:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}
@media (max-width: 900px) {
  :root { --sidebar-width: 0px; }.sidebar { width: 270px; transform: translateX(-100%); transition: transform .25s; box-shadow: 20px 0 45px rgba(19,49,61,.22); }.sidebar.open { transform: none; }.sidebar-close,.mobile-menu { display: grid !important; }.page-column { width: 100%; margin-left: 0; }.topbar { padding: 0 18px; }.mobile-menu { margin-right: 7px; }.breadcrumbs { margin-right: auto; }.global-search { display: none; }.main-content { padding: 28px 20px 48px; }.phase-review-layout,.experiment-layout,.notebook-layout { grid-template-columns: 1fr; }.phase-menu { position: static; display: flex; max-height: none; gap: 6px; overflow-x: auto; }.phase-menu-group { display: none; }.phase-menu-item { min-width: 185px; }.notebook-list-panel { max-height: 360px; }.notebook-preview { position: static; }.dual-evidence { grid-template-columns: 1fr; gap: 12px; }.evidence-bridge { display: none; }.knowledge-stats { grid-template-columns: repeat(3,1fr); }.phase-sections { grid-template-columns: repeat(2,1fr); }.phase-section-card:nth-child(2) { border-right: 0; }.visual-grid { grid-template-columns: 1fr; }.visual-card:last-child { grid-column: auto; }.role-grid { grid-template-columns: repeat(2,1fr); }.intro-hero { margin: -28px -20px 0; padding: 55px 35px 45px; }.intro-subnav { top: 62px; max-width: 100%; overflow-x: auto; }.section-lead.split { grid-template-columns: 1fr; gap: 16px; }.market-decision { grid-template-columns: 1fr; gap: 15px; }.pitch-slide { grid-template-columns: 115px 1fr; }.pitch-slide-copy { padding: 45px 38px; }
}
@media (max-width: 640px) {
  .topbar { height: 62px; }.topbar-actions .button { min-height: 33px; padding: 0 10px; }.main-content { padding: 23px 14px 42px; }.page-heading { display: block; margin-bottom: 19px; }.page-heading h1 { font-size: 32px; }.page-heading .heading-actions,.page-heading > .button { margin-top: 14px; }.project-thread { grid-template-columns: 1fr 18px 1fr; }.project-thread .thread-step:nth-of-type(n+3),.project-thread .thread-arrow:nth-of-type(n+3) { display: none; }.metric-grid,.research-metrics { grid-template-columns: 1fr 1fr; }.template-grid { grid-template-columns: 1fr; }.template-card footer,.submission-detail-actions { flex-wrap: wrap; }.today-rail { display: flex; }.assignment { grid-template-columns: 35px 1fr; }.assignment-actions { grid-column: 2; }.toolbar { display: block; }.toolbar-right { flex-wrap: wrap; margin-top: 8px; }.segmented { overflow-x: auto; }.segmented button { min-width: max-content; }.gantt-summary { grid-template-columns: 1fr 1fr; }.gantt-summary-item:nth-child(2) { border-right: 0; }.gantt-summary-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.protocol-body,.run-launch,.drawer-grid { grid-template-columns: 1fr; }.protocol-section { border-right: 0; border-bottom: 1px solid var(--line); }.knowledge-stats { grid-template-columns: 1fr 1fr; }.trace-flow { grid-template-columns: 1fr; }.trace-node { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.trace-node:not(:last-child)::after { top: auto; right: 50%; bottom: -11px; transform: rotate(90deg); }.table-search { display: block; }.table-search input { width: 100%; margin-bottom: 5px; }.form-grid { grid-template-columns: 1fr; }.field.full,.form-divider { grid-column: 1; }.modal-actions { grid-column: 1; flex-wrap: wrap; }.session-head { display: block; }.session-head .badge { margin-top: 8px; }.intake-strip { grid-template-columns: 1fr 1fr; }.intake-strip > div:first-child,.intake-strip .button { grid-column: 1/-1; }.phase-sections { grid-template-columns: 1fr; }.phase-section-card { border-right: 0; border-bottom: 1px solid var(--line); }.role-grid { grid-template-columns: 1fr; }.donut-wrap { grid-template-columns: 1fr; justify-items: center; }.file-grid { grid-template-columns: 1fr; }.task-role-flow { grid-template-columns: 1fr; }.task-role-flow i { transform: rotate(90deg); }.cad-frame { height: 760px; min-height: 760px; }.intro-hero { margin: -23px -14px 0; padding: 45px 22px 38px; }.intro-hero h1 { font-size: 42px; }.intro-hero-copy > p { font-size: 13px; }.intro-hero-aside { padding: 18px; }.intro-actions { flex-wrap: wrap; }.intro-subnav { justify-content: flex-start; margin-bottom: 55px; }.intro-section { margin-bottom: 65px; }.use-flow,.dashboard-portfolio,.market-arena-grid { grid-template-columns: 1fr; }.use-flow button { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.use-flow p { min-height: auto; }.dashboard-portfolio article.selected { transform: none; }.vip-figure { overflow-x: auto; }.vip-image-wrap { width: 820px; }.vip-figure figcaption { width: 820px; grid-template-columns: 1fr; }.vip-highlight span { display: none; }.market-arena-grid article { min-height: auto; }.pitch-stage,.pitch-slide { min-height: 570px; }.pitch-slide { grid-template-columns: 1fr; }.pitch-slide-number { min-height: 100px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 45px; }.pitch-slide-copy { padding: 35px 24px; }.pitch-slide-copy h3 { font-size: 34px; }.pitch-slide-copy p { font-size: 13px; }.pitch-controls { grid-template-columns: 36px 1fr auto 36px; }.pitch-dots button { width: 16px; }.pitch-dots button.active { width: 30px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
