* { box-sizing: border-box; }

:root {
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-2: #eef2f7;
  --text: #172033;
  --muted: #667085;
  --border: #dce2ea;
  --accent: #2457ff;
  --accent-soft: #e8edff;
  --danger: #c62828;
  --shadow: 0 14px 40px rgba(18, 31, 53, 0.10);
}

body.dark {
  --bg: #0d1117;
  --surface: #151b23;
  --surface-2: #1d2631;
  --text: #edf2f7;
  --muted: #98a2b3;
  --border: #2a3543;
  --accent: #7d9cff;
  --accent-soft: #202b4d;
  --shadow: 0 14px 40px rgba(0, 0, 0, 0.30);
}

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--text);
}

button, input, select { font: inherit; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 5vw;
  background: color-mix(in srgb, var(--surface) 90%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}

.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: var(--accent);
  color: white;
  font-weight: 800;
  font-size: 22px;
}
.brand h1 { margin: 0; font-size: 18px; }
.brand p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }

.icon-btn, .close-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 10px;
  cursor: pointer;
}
.icon-btn { width: 40px; height: 40px; font-size: 18px; }
.close-btn { width: 38px; height: 38px; font-size: 24px; }

.container { width: min(1180px, 92vw); margin: 0 auto; padding: 46px 0 64px; }

.hero {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 26px;
  align-items: end;
  margin-bottom: 30px;
}
.eyebrow {
  display: inline-block;
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.hero h2 { font-size: clamp(34px, 5vw, 58px); line-height: 1.02; margin: 10px 0; }
.hero p { color: var(--muted); max-width: 700px; margin: 0; line-height: 1.6; }

.search-wrap {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 54px;
  padding: 0 16px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.search-wrap span { color: var(--muted); font-size: 22px; }
.search-wrap input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
}

.tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.tab {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--muted);
  padding: 10px 14px;
  border-radius: 999px;
  cursor: pointer;
}
.tab.active { color: var(--accent); background: var(--accent-soft); border-color: color-mix(in srgb, var(--accent) 25%, var(--border)); }

.tool-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.tool-card {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 18px;
  padding: 20px;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.tool-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--accent); }
.tool-icon { font-size: 26px; margin-bottom: 15px; }
.tool-card h3 { margin: 0 0 7px; font-size: 17px; }
.tool-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.tool-meta { margin-top: 14px; font-size: 11px; color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

.empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--muted);
}
.empty-icon { font-size: 42px; }
.hidden { display: none !important; }

.modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 20px;
}
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.modal-card {
  position: relative;
  width: min(680px, 96vw);
  max-height: 90vh;
  overflow: auto;
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 30px 80px rgba(0,0,0,.25);
  padding: 24px;
}
.modal-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 22px; }
.modal-head h3 { margin: 7px 0 0; font-size: 28px; }

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.field { display: flex; flex-direction: column; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 12px; font-weight: 700; color: var(--muted); }
.field input, .field select {
  width: 100%;
  padding: 12px 13px;
  border-radius: 11px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  outline: 0;
}
.field input:focus, .field select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }

.calc-actions { display: flex; gap: 10px; margin-top: 18px; }
.btn {
  border: 0;
  border-radius: 11px;
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 700;
}
.btn-primary { background: var(--accent); color: white; }
.btn-secondary { background: var(--surface-2); color: var(--text); }

.result {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
}
.result-label { color: var(--muted); font-size: 12px; }
.result-value { margin-top: 4px; font-size: 28px; font-weight: 800; }
.result-sub { margin-top: 6px; color: var(--muted); font-size: 13px; }
.formula {
  margin-top: 14px;
  padding: 12px 14px;
  background: var(--accent-soft);
  border-radius: 11px;
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  overflow-x: auto;
}

.footer {
  border-top: 1px solid var(--border);
  padding: 20px 5vw 36px;
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .container { padding-top: 30px; }
  .tool-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
}

.unit-control{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:6px}.unit-control select,.result-output select{padding:12px 9px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.result-output{display:flex;gap:10px;align-items:center}.result-output .result-value{flex:1}.result-output select{width:105px}

.unit-control{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:6px}
.unit-control input,.unit-control select,.result-output select{min-width:0}
.result-output{display:flex;gap:10px;align-items:center}
.result-output .result-value{flex:1}
.result-output select{width:110px;padding:12px 9px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text)}

.tab-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%;margin-bottom:8px}
.tab-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-width:70px}
.priority-badge{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);color:var(--muted)}
.priority-badge.most-used{background:var(--accent-soft);color:var(--accent)}
.priority-badge.core{color:var(--accent)}

/* ===== V12 WORKSPACE ===== */
.v12-nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 8px}
.v12-nav button,.mini-btn{border:1px solid var(--border,rgba(255,255,255,.12));background:var(--surface,rgba(255,255,255,.05));color:inherit;border-radius:10px;padding:9px 13px;cursor:pointer;font-weight:700}
.workspace-section{margin:28px 0;padding:22px;border:1px solid var(--border,rgba(255,255,255,.12));border-radius:18px;background:var(--surface,rgba(255,255,255,.03))}
.workspace-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.workspace-head h2{margin:0 0 5px}.workspace-head p,.empty-note{opacity:.72;margin:0}
.workspace-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.workspace-card,.ref-card{padding:16px;border:1px solid var(--border,rgba(255,255,255,.1));border-radius:14px;background:var(--surface-2,rgba(255,255,255,.025))}
.workspace-card h3,.ref-card h3{margin:0 0 12px}.workspace-tool{display:block;width:100%;text-align:left;padding:9px 10px;margin:6px 0;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}.workspace-tool:hover{background:var(--accent-soft,rgba(100,150,255,.12))}
.card-row{display:flex;justify-content:space-between;align-items:center}.v12-search{min-width:240px;padding:10px;border-radius:10px;border:1px solid var(--border,rgba(255,255,255,.15));background:transparent;color:inherit}
.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:10px;text-align:left;border-bottom:1px solid var(--border,rgba(255,255,255,.1));white-space:nowrap}th{opacity:.75}.reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.ref-card table{font-size:13px}
@media(max-width:700px){.workspace-grid{grid-template-columns:1fr}.workspace-head{align-items:flex-start;flex-direction:column}.v12-search{min-width:0;width:100%}}

.ref-count{font-size:12px;opacity:.6;display:block;margin-top:-7px;margin-bottom:10px}.v13-ref-card{overflow:auto}.v13-ref-card table{min-width:100%}

/* ===== V14 CALCULATION DETAILS ===== */
.v14-details{margin-top:16px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:14px;background:var(--surface,rgba(255,255,255,.035));overflow:hidden}
.v14-details summary{cursor:pointer;padding:14px 16px;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:12px}
.v14-details summary span{font-weight:500;opacity:.65;font-size:.9em}
.v14-steps{padding:4px 16px 16px}
.v14-step{padding:13px 0;border-top:1px solid var(--border,rgba(255,255,255,.09));animation:v14fade .35s ease both}
.v14-step:nth-child(2){animation-delay:.08s}.v14-step:nth-child(3){animation-delay:.16s}.v14-step:nth-child(4){animation-delay:.24s}
.v14-step p{margin:7px 0 0;opacity:.78}.v14-formula{font-size:1.12em;font-family:ui-monospace,Consolas,monospace;margin-top:9px;padding:10px;border-radius:9px;background:rgba(127,127,127,.08)}
.v14-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.v14-row span{opacity:.75}.v14-final div{font-size:1.08em;margin-top:7px}.v14-note{font-size:.82em;opacity:.62;margin:14px 0 0}
@keyframes v14fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.v14-details summary{flex-direction:column}.v14-row{flex-direction:column;gap:2px}}

/* ===== BEAM VISUALISATION ===== */
.beam-viz{margin-top:18px;padding:16px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:14px;background:var(--surface,rgba(255,255,255,.035))}
.beam-viz-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.beam-viz-head span{font-size:.8em;opacity:.62}
.beam-viz svg{width:100%;height:auto;overflow:visible}.beam-wall{stroke:currentColor;stroke-width:6;opacity:.55;fill:none}.beam-ghost{stroke:currentColor;stroke-width:3;stroke-dasharray:8 7;opacity:.25;fill:none}.beam-line{stroke:currentColor;stroke-width:8;fill:none;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:beamBend 1.2s cubic-bezier(.2,.8,.2,1) forwards}.load-arrow{stroke:currentColor;stroke-width:3;opacity:.9;animation:beamLoad .65s ease-out forwards}.beam-label{font-size:16px;fill:currentColor;opacity:.82}.beam-defl{font-weight:700;animation:beamFade .8s .7s both}.beam-dim{stroke:currentColor;stroke-width:2;opacity:.35}.beam-viz-legend{display:flex;gap:18px;font-size:.82em;opacity:.65;flex-wrap:wrap;margin-top:5px}
@keyframes beamBend{to{stroke-dashoffset:0}}@keyframes beamLoad{from{transform:translateY(-25px);opacity:0}to{transform:translateY(0);opacity:.9}}@keyframes beamFade{from{opacity:0;transform:translateY(-5px)}to{opacity:.82;transform:translateY(0)}}
@media(max-width:600px){.beam-viz-head{align-items:flex-start;flex-direction:column}.beam-label{font-size:13px}}

/* ===== V15 VISUAL ENGINE ===== */
.eng-viz{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.eng-viz-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.eng-viz-head span{font-size:.8em;opacity:.62}
.eng-viz svg{width:100%;height:auto;color:var(--text);overflow:visible}.eng-viz-label{fill:currentColor;font-size:15px;opacity:.82}
.heat-wave{stroke-dasharray:14 10;animation:flowMove 1.5s linear infinite}.heat-dot{animation:heatPulse 1.2s ease-in-out infinite}.d2{animation-delay:.15s}.d3{animation-delay:.3s}.d4{animation-delay:.45s}
.gear-spin{animation:gearTurn 3.5s linear infinite}.gear-spin.reverse{animation-direction:reverse}
.flow-arrows{animation:flowSlide 1.2s linear infinite}.eng-viz .beam-stress-shape{animation:stressPulse 1.6s ease-in-out infinite}
@keyframes flowMove{to{stroke-dashoffset:-48}}@keyframes heatPulse{50%{opacity:.15;transform:scale(.65);transform-box:fill-box;transform-origin:center}}@keyframes gearTurn{to{transform:rotate(360deg)}}@keyframes flowSlide{to{transform:translateX(30px)}}@keyframes stressPulse{50%{opacity:.35}}
@media(max-width:600px){.eng-viz-head{align-items:flex-start;flex-direction:column}.eng-viz-label{font-size:13px}}

.beam-type-picker{margin-bottom:14px}.beam-type-picker label{display:block;font-weight:700;margin-bottom:6px}.beam-type-picker select{width:100%;padding:12px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text)}
.beam-viz{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.beam-viz-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.beam-viz-head span{font-size:.8em;opacity:.62}.beam-viz svg{width:100%;height:auto;color:var(--text)}.beam-label{font-size:14px;fill:currentColor;opacity:.82}.beam-ghost{stroke:currentColor;stroke-width:3;stroke-dasharray:8 7;opacity:.22;fill:none}.beam-line{stroke:currentColor;stroke-width:8;fill:none;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:beamDraw 1s cubic-bezier(.2,.8,.2,1) forwards}.support-wall{stroke:currentColor;stroke-width:6;opacity:.7}.ground,.groundline{stroke:currentColor;stroke-width:2;opacity:.45;fill:none}.support-tri{fill:none;stroke:currentColor;stroke-width:3;opacity:.75}.load-arrow{stroke:currentColor;stroke-width:3}.load-line{stroke:currentColor;stroke-width:3;opacity:.7}.udl-arrows{animation:udlPulse 1.2s ease-in-out infinite}.beam-viz .eng-viz-label{fill:currentColor}
@keyframes beamDraw{to{stroke-dashoffset:0}}@keyframes udlPulse{50%{opacity:.45}}

.beam-analysis{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.beam-analysis-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.beam-analysis-head span{font-size:.8em;opacity:.62}
.beam-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chart-title{font-size:.82em;font-weight:800;opacity:.7;margin:0 0 4px}.beam-analysis svg{width:100%;height:auto;color:var(--text)}.chart-line{stroke:currentColor;stroke-width:5;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:chartDraw .95s ease-out forwards}.moment-line{stroke:currentColor;stroke-width:5;fill:none;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:chartDraw 1.1s .1s ease-out forwards}.chart-label{fill:currentColor;font-size:15px;opacity:.78}
@keyframes chartDraw{to{stroke-dashoffset:0}}
@media(max-width:700px){.beam-chart-grid{grid-template-columns:1fr}.beam-analysis-head{align-items:flex-start;flex-direction:column}}


.result-actions{margin-top:10px;display:flex;justify-content:flex-end}.design-check{margin-top:14px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.design-check-main{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.status-pill{padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.05em}.design-check.pass .status-pill{background:rgba(46,180,100,.15)}.design-check.fail .status-pill{background:rgba(220,70,70,.15)}.design-check-row{display:flex;justify-content:space-between;padding:5px 0;border-top:1px solid var(--border);font-size:13px}.design-check-row span{opacity:.7}

.field-help{font-size:11px;opacity:.62;margin-top:5px}.material-preview{margin-top:10px}.material-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.material-preview-grid div{border:1px solid var(--border);border-radius:10px;padding:9px}.material-preview-grid span{display:block;font-size:11px;opacity:.62;margin-bottom:3px}.material-preview-grid b{font-size:13px}

.custom-material-form{margin-bottom:16px}.custom-material-list{display:grid;gap:8px}.custom-material-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px}.custom-material-row span{display:block;font-size:12px;opacity:.65;margin-top:3px}

.v22-report-actions{display:flex;justify-content:flex-end;margin-top:10px}.v22-report-actions .mini-btn{cursor:pointer}

.v22-print-surface{display:none}
@media print{
  body.printing-report > *:not(#v22PrintSurface){display:none !important}
  body.printing-report #v22PrintSurface{display:block !important;position:static;background:#fff;color:#111;font-family:Arial,sans-serif}
  body.printing-report #v22PrintSurface .report-sheet{max-width:900px;margin:30px auto;padding:0 20px}
  body.printing-report #v22PrintSurface .report-brand{font-weight:800;letter-spacing:.12em;font-size:12px;opacity:.6}
  body.printing-report #v22PrintSurface h1{font-size:30px;margin:8px 0}
  body.printing-report #v22PrintSurface .report-meta{color:#666;margin-bottom:28px}
  body.printing-report #v22PrintSurface h2{margin-top:28px;font-size:18px;border-bottom:1px solid #ddd;padding-bottom:7px}
  body.printing-report #v22PrintSurface table{border-collapse:collapse;width:100%}
  body.printing-report #v22PrintSurface td{padding:9px;border-bottom:1px solid #eee}
  body.printing-report #v22PrintSurface td:last-child{text-align:right;font-weight:700}
  body.printing-report #v22PrintSurface .report-formula,
  body.printing-report #v22PrintSurface .report-result{background:#f6f6f6;border-radius:8px;padding:14px}
  body.printing-report #v22PrintSurface .report-formula{font-family:Consolas,monospace}
  body.printing-report #v22PrintSurface .report-result{white-space:pre-wrap;font-family:Consolas,monospace}
  body.printing-report{background:#fff}
}

.v22-report-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}.v22-report-actions .mini-btn{cursor:pointer}

.v22-report-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}

.workflow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.workflow-card{border:1px solid var(--border);border-radius:15px;padding:16px;background:var(--surface)}.workflow-card-title{display:flex;gap:11px;align-items:flex-start}.workflow-icon{font-size:25px}.workflow-card-title h3{margin:0 0 4px}.workflow-card-title p{margin:0;opacity:.65;font-size:13px}.workflow-steps{display:grid;gap:7px;margin-top:14px}.workflow-step{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;text-align:left;border:1px solid var(--border);background:transparent;color:inherit;border-radius:10px;padding:9px;cursor:pointer}.workflow-step span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:12px;font-weight:800}.workflow-step strong{font-size:13px}.workflow-step em{font-style:normal;font-size:10px;opacity:.55;text-transform:uppercase}.workflow-step:hover{background:var(--accent-soft)}.workflow-progress{margin-bottom:13px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface);display:flex;justify-content:space-between;gap:12px;align-items:center}.workflow-progress>div:first-child{display:flex;flex-direction:column;gap:2px}.workflow-progress>div:first-child span{font-size:11px;opacity:.6}.workflow-progress-actions{display:flex;gap:7px;flex-wrap:wrap}@media(max-width:650px){.workflow-progress{align-items:flex-start;flex-direction:column}.workflow-step{grid-template-columns:28px 1fr}.workflow-step em{grid-column:2}}

.workflow-inherited{margin-bottom:12px;padding:9px 11px;border:1px dashed var(--border);border-radius:10px;display:flex;justify-content:space-between;gap:10px;font-size:12px;background:var(--surface)}.workflow-inherited span{opacity:.72}.workflow-inherited strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.7}

.workflow-inherited{margin-bottom:12px;padding:9px 11px;border:1px dashed var(--border);border-radius:10px;display:flex;justify-content:space-between;gap:10px;font-size:12px;background:var(--surface)}.workflow-inherited span{opacity:.72}.workflow-inherited strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.v27-dashboard-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:99999;display:grid;place-items:center;padding:20px}.v27-overlay-panel{width:min(1000px,96vw);max-height:90vh;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:18px}.v27-dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px;margin-bottom:14px}.v27-dash-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.v27-dash-head>div:first-child{display:flex;flex-direction:column;gap:3px}.v27-dash-head span{font-size:11px;opacity:.6}.v27-counts{display:flex;gap:10px;flex-wrap:wrap;font-weight:800}.v27-table-wrap{overflow:auto}.v27-table-wrap table{width:100%;border-collapse:collapse}.v27-table-wrap th,.v27-table-wrap td{padding:9px;border-bottom:1px solid var(--border);text-align:left}.v27-status{display:inline-block;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;background:var(--surface-2)}.v27-status.pass{background:rgba(50,170,90,.14)}.v27-status.skipped{background:rgba(150,150,150,.14)}.v27-status.review{background:rgba(220,170,50,.14)}.v27-status.fail{background:rgba(220,70,70,.14)}.v27-note{font-size:11px;opacity:.6;margin-bottom:0}

.workflow-progress{display:flex;justify-content:space-between;gap:14px;align-items:center}.workflow-progress-actions{display:flex;gap:7px;flex-wrap:wrap}.workflow-inherited{margin-bottom:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;display:flex;justify-content:space-between;gap:12px;font-size:12px;background:var(--surface)}.workflow-inherited span{opacity:.72}.workflow-inherited strong{font-size:10px;letter-spacing:.06em;opacity:.68}.v27-dashboard-overlay{z-index:100000}.v27-overlay-panel{width:min(1060px,95vw);background:var(--bg);border-radius:16px;padding:20px}

.v29-completion-overlay{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:22px}.v29-completion-card{width:min(720px,95vw);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.v29-completion-kicker{font-size:11px;font-weight:900;letter-spacing:.14em;opacity:.62}.v29-completion-card h2{margin:8px 0 8px;font-size:28px}.v29-completion-sub{opacity:.7;line-height:1.5}.v29-completion-stats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.v29-completion-stats span{padding:9px 12px;border:1px solid var(--border);border-radius:10px;font-size:12px}.v29-completion-stats b{margin-right:4px}.v29-completion-actions{display:flex;gap:9px;flex-wrap:wrap}.v29-completion-note{font-size:11px;opacity:.55;line-height:1.5;margin:18px 0 0}

.v31-completion-overlay{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:22px}.v31-completion-card{width:min(720px,95vw);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.v31-kicker{font-size:11px;font-weight:900;letter-spacing:.14em;opacity:.62}.v31-completion-card h2{margin:8px 0;font-size:28px}.v31-completion-card p{opacity:.7;line-height:1.5}.v31-stats{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.v31-stats span{padding:9px 11px;border:1px solid var(--border);border-radius:10px;font-size:12px}.v31-actions{display:flex;gap:8px;flex-wrap:wrap}.v31-note{margin-top:17px;font-size:11px;opacity:.55}

/* V33 workflow result capture */

.v34-validation{margin-bottom:12px}.v34-block{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5}.v34-block strong{display:block;margin-bottom:5px;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.v34-error{background:rgba(210,70,70,.08)}.v34-warning{background:rgba(220,175,50,.09);margin-top:7px}.v34-block div+div{margin-top:2px}


/* V39 Projects — additive overlay */
.v39-overlay{position:fixed;inset:0;z-index:10000;background:rgba(10,16,28,.56);display:none;place-items:center;padding:20px}
.v39-modal{position:relative;width:min(920px,96vw);max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.v39-close{position:absolute;right:16px;top:10px;border:0;background:transparent;color:inherit;font-size:28px;cursor:pointer}
.v39-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-right:38px}.v39-header h2{margin:5px 0}.v39-header p,.v39-muted{opacity:.7}.v39-kicker{font-size:11px;letter-spacing:.14em;font-weight:800}
.v39-project-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;margin-top:18px}
.v39-project-card{border:1px solid var(--border);border-radius:14px;background:transparent;color:inherit;padding:16px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:7px;transition:transform .15s ease}.v39-project-card:hover{transform:translateY(-2px)}
.v39-project-card span,.v39-project-card small{font-size:12px;opacity:.7}.v39-project-card em{font-style:normal;font-size:12px;font-weight:700;margin-top:4px}
.v39-empty{border:1px dashed var(--border);border-radius:14px;padding:28px;opacity:.7}
.v39-back{border:0;background:transparent;color:inherit;cursor:pointer;opacity:.72;padding:0;margin-bottom:14px}.v39-top-actions{display:flex;gap:8px;flex-wrap:wrap}
.v39-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.v39-stats>div,.v39-detail-grid section{border:1px solid var(--border);border-radius:14px;padding:15px;background:rgba(255,255,255,.015)}
.v39-stats b{display:block;font-size:24px}.v39-stats span{font-size:11px;opacity:.7}.v39-detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}.v39-detail-grid h3{margin-top:0}
.v39-detail-grid textarea{width:100%;min-height:145px;resize:vertical;margin-bottom:9px}.v39-info-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}.v39-info-row span{opacity:.65}.v39-bottom-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.v39-delete{opacity:.72}
@media(max-width:680px){.v39-detail-grid,.v39-stats{grid-template-columns:1fr}.v39-header{flex-direction:column}.v39-modal{padding:20px}}

/* V40 report polish */
.v22-report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.v22-report-actions .mini-btn{min-width:120px}

/* V41 release footer */
.site-footer{max-width:1180px;margin:28px auto 0;padding:20px 24px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1.5fr;gap:24px;color:var(--muted)}
.site-footer strong{color:var(--text)}.site-footer p{font-size:12px;line-height:1.55;margin:5px 0}.engineering-disclaimer{padding-left:18px;border-left:3px solid var(--border)}
@media(max-width:700px){.site-footer{grid-template-columns:1fr;padding:18px}}
.site-footer{max-width:1180px;margin:30px auto 0;padding:22px 24px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1.5fr;gap:24px}.site-footer p{font-size:12px;line-height:1.55;opacity:.72}@media(max-width:700px){.site-footer{grid-template-columns:1fr}}.suggestion-section{max-width:1180px;margin:26px auto;padding:0 18px}.suggestion-card{border:1px solid var(--border);border-radius:18px;padding:22px;background:var(--surface);display:grid;grid-template-columns:1fr 1.15fr;gap:26px}.suggestion-kicker{font-size:10px;font-weight:800;letter-spacing:.14em;opacity:.65}.suggestion-copy h2{margin:7px 0 8px}.suggestion-copy p,.suggestion-note{font-size:12px;line-height:1.55;opacity:.68}.suggestion-form{display:flex;flex-direction:column;gap:10px}.suggestion-form label{font-size:11px;font-weight:700;display:flex;flex-direction:column;gap:5px}.suggestion-form input,.suggestion-form select,.suggestion-form textarea{font:inherit;border:1px solid var(--border);border-radius:9px;background:transparent;color:inherit;padding:9px}.suggestion-form textarea{min-height:105px;resize:vertical}.suggestion-form .btn{align-self:flex-start}.suggestion-note{margin:0}@media(max-width:720px){.suggestion-card{grid-template-columns:1fr}.suggestion-section{padding:0 12px}}

/* V44 suggestion improvements */
.suggestion-types{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.suggestion-types span{font-size:10px;padding:5px 8px;border:1px solid var(--border);border-radius:999px;opacity:.7}.suggestion-form button:disabled{opacity:.55;cursor:wait}.suggestion-note{min-height:18px}

/* V46 SEO calculator landing pages */
.seo-tool-intro{max-width:900px;margin:28px auto 0;padding:0 18px}.seo-tool-intro-card{border:1px solid var(--border);border-radius:18px;padding:24px;background:var(--surface)}.seo-tool-intro-card h2{margin:6px 0 8px}.seo-tool-intro-card p{font-size:13px;line-height:1.6;opacity:.72}.seo-tool-back{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;text-decoration:none;color:inherit}
