/* ===== CV Forge: print shop, bold blocks ===== */
@font-face { font-family:'Space Grotesk'; font-weight:500; font-display:swap; src:url(fonts/space-grotesk-latin-500.woff2) format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-weight:700; font-display:swap; src:url(fonts/space-grotesk-latin-700.woff2) format('woff2'); }
@font-face { font-family:'Courier Prime'; font-weight:400; font-display:swap; src:url(fonts/courier-prime-latin-400.woff2) format('woff2'); }
@font-face { font-family:'Courier Prime'; font-weight:700; font-display:swap; src:url(fonts/courier-prime-latin-700.woff2) format('woff2'); }
@font-face { font-family:'Forge Sans'; font-weight:400; font-display:swap; src:url(fonts/inter-latin-400.woff2) format('woff2'); }
@font-face { font-family:'Forge Sans'; font-weight:500; font-display:swap; src:url(fonts/inter-latin-500.woff2) format('woff2'); }
@font-face { font-family:'Forge Sans'; font-weight:600; font-display:swap; src:url(fonts/inter-latin-600.woff2) format('woff2'); }
@font-face { font-family:'Forge Sans'; font-weight:700; font-display:swap; src:url(fonts/inter-latin-700.woff2) format('woff2'); }

:root {
  --paper:#F3EEE2; --card:#FFFDF6; --ink:#141414; --ink2:#4A463E; --line:#141414;
  --accent:#FF4B1F; --accent-ink:#141414; --blue:#2742F5; --yellow:#FFD43B; --green:#128A4A; --red:#D42A1E;
  --shadow:4px 4px 0 var(--ink); --shadow-sm:3px 3px 0 var(--ink);
  --display:'Space Grotesk', 'Forge Sans', system-ui, sans-serif;
  --mono:'Courier Prime', 'Courier New', monospace;
  --body:'Forge Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
html, body { height:100%; }
body { margin:0; font-family:var(--body); color:var(--ink); background:var(--paper);
  background-image:radial-gradient(rgba(20,20,20,.07) 1px, transparent 1px); background-size:18px 18px; }
* { box-sizing:border-box; }

/* ---- the CV page itself (kept plain) ---- */
.resume-page { width:210mm; min-height:297mm; padding:0.75in; background:#FDFCF9; color:#1a1a1a; position:relative;
  border:2px solid var(--ink); box-shadow:8px 8px 0 rgba(20,20,20,.9); font-family:'Inter','Forge Sans',sans-serif; }
.us .resume-page { width:8.5in; min-height:11in; }
#print-src .resume-page { border:0; box-shadow:none; }
.resume-page section, .resume-page .exp-block, .resume-page li, .resume-page h1, .resume-page h2, .resume-page h3 { page-break-inside:avoid; break-inside:avoid; }
.resume-page * { box-sizing:border-box; }
.banner-header { background:#E8E8E8; text-align:center; letter-spacing:0.3em; text-transform:uppercase; font-size:11pt; font-weight:600; padding:6px 0; margin:18px 0 12px; width:100%; }
.name-big { letter-spacing:0.3em; text-transform:uppercase; font-weight:500; }
.contact-line { text-align:center; font-size:10pt; letter-spacing:0.05em; }
.exp-title { font-weight:700; font-size:11pt; }
.exp-date { font-size:10pt; }
.exp-company { font-style:italic; font-size:10.5pt; color:#333; }
ul.bullets { list-style:none; padding-left:0; margin-top:4px; }
ul.bullets li { font-size:10.5pt; margin-bottom:2px; line-height:1.45; padding-left:1em; position:relative; }
ul.bullets li::before { content:'•'; position:absolute; left:0; top:0; line-height:1.45; }
.dash-skills { font-size:10.5pt; }
.corner-quarter { position:absolute; width:90px; height:90px; top:0; right:0; }
.corner-bar { position:absolute; width:90px; height:6px; top:30px; right:30px; }
.left-stripe { border-left:3px solid currentColor; padding-left:10px; }
.smallcap-header { text-transform:uppercase; letter-spacing:0.25em; font-size:10.5pt; font-weight:600; border-bottom:1px solid #999; padding-bottom:8px; margin:16px 0 8px; }
.rule-header { text-transform:uppercase; letter-spacing:0.2em; font-size:10.5pt; font-weight:600; margin:16px 0 6px; padding-bottom:2px; }
#print-src { position:fixed; left:-12000px; top:0; pointer-events:none; }

/* ---- shell ---- */
.shell { display:grid; grid-template-columns:228px 1fr; height:100vh; }
.rail { background:var(--ink); color:#F3EEE2; display:flex; flex-direction:column; padding:18px 14px; overflow-y:auto; }
.logo { display:flex; align-items:stretch; border:2px solid #F3EEE2; margin-bottom:22px; font-family:var(--display); font-weight:700; font-size:22px; letter-spacing:.02em; }
.logo span { background:var(--accent); color:var(--ink); padding:6px 10px; }
.logo b { padding:6px 10px; font-weight:700; letter-spacing:.14em; }
.rail nav { display:flex; flex-direction:column; gap:6px; }
.nav-btn { display:flex; align-items:center; gap:10px; text-align:left; padding:9px 10px; font-family:var(--display); font-weight:500; font-size:15px; color:#F3EEE2; border:2px solid transparent; background:transparent; cursor:pointer; }
.nav-btn i { font-family:var(--mono); font-style:normal; font-size:11px; opacity:.55; }
.nav-btn:hover:not(:disabled) { border-color:#F3EEE2; }
.nav-btn.on { background:var(--yellow); color:var(--ink); border-color:var(--yellow); font-weight:700; }
.nav-btn.on i { opacity:.8; }
.nav-btn:disabled { opacity:.32; cursor:not-allowed; }
.rail-foot { margin-top:auto; padding-top:18px; }
.rail-foot .label { color:#CFC8B8; }
.rail-foot .hint { color:#A39C8C; margin-top:8px; }
.seg { display:grid; grid-template-columns:1fr 1fr; border:2px solid #F3EEE2; margin-top:6px; }
.seg button { padding:7px 4px; font-family:var(--mono); font-size:12px; color:#F3EEE2; background:transparent; cursor:pointer; }
.seg button.on { background:#F3EEE2; color:var(--ink); font-weight:700; }

.shell > main { display:flex; flex-direction:column; min-width:0; height:100vh; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 20px; border-bottom:2px solid var(--ink); background:var(--card); }
.top-left { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.top-name { font-family:var(--display); font-weight:700; font-size:18px; background:transparent; border:0; border-bottom:2px dashed transparent; padding:2px 0; min-width:0; flex:1; max-width:460px; color:var(--ink); }
.top-name:hover, .top-name:focus { border-bottom-color:var(--ink); outline:0; }
.top-none { font-family:var(--mono); color:var(--ink2); }
.save { font-family:var(--mono); font-size:12px; color:var(--ink2); white-space:nowrap; }
.save.ok::before { content:'● '; color:var(--green); }
.view { flex:1; overflow:auto; }
.view-pad { padding:26px 28px 60px; max-width:1240px; margin:0 auto; }

/* ---- type & atoms ---- */
.kicker, .label { font-family:var(--mono); text-transform:uppercase; letter-spacing:.12em; font-size:11px; color:var(--ink2); }
.label { display:block; margin:10px 0 4px; }
.page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:22px; border-bottom:2px solid var(--ink); padding-bottom:14px; }
.page-head h2 { font-family:var(--display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; margin:4px 0 0; }
.page-head p { max-width:520px; margin:0; font-size:14.5px; line-height:1.5; color:var(--ink2); }
.body { font-size:14.5px; line-height:1.55; margin:0 0 10px; }
.hint { font-size:12.5px; line-height:1.45; color:var(--ink2); margin:6px 0 0; }
.err { margin-top:12px; padding:10px 12px; border:2px solid var(--red); background:#FFF1EE; font-size:14px; }
.row { display:flex; align-items:center; gap:10px; }
.row.wrap { flex-wrap:wrap; }
.sep { width:2px; align-self:stretch; background:var(--ink); margin:0 4px; }
.link { font-size:12.5px; text-decoration:underline; color:var(--ink2); cursor:pointer; background:none; border:0; }
.mono { font-family:var(--mono); }

.btn { font-family:var(--display); font-weight:700; font-size:15px; padding:10px 16px; border:2px solid var(--ink); background:var(--card); color:var(--ink); box-shadow:var(--shadow-sm); cursor:pointer; transition:transform .06s, box-shadow .06s; white-space:nowrap; }
.btn:hover:not(:disabled) { transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--ink); }
.btn:active:not(:disabled) { transform:translate(3px,3px); box-shadow:0 0 0 var(--ink); }
.btn:focus-visible, .nav-btn:focus-visible, .tab:focus-visible, .inp:focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
.btn.accent { background:var(--accent); }
.btn.sm { font-size:13px; padding:6px 11px; box-shadow:2px 2px 0 var(--ink); }
.btn:disabled { opacity:.45; cursor:not-allowed; }

.card { background:var(--card); border:2px solid var(--ink); box-shadow:var(--shadow); padding:18px 20px; margin-bottom:22px; }
.card-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; }
.card-head h3 { font-family:var(--display); font-weight:700; font-size:20px; margin:0; }
.tag { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; border:2px solid var(--ink); padding:2px 7px; background:var(--yellow); white-space:nowrap; }

.inp { width:100%; font-family:var(--body); font-size:14px; padding:8px 10px; border:2px solid var(--ink); background:#fff; color:var(--ink); border-radius:0; }
textarea.inp { resize:vertical; line-height:1.45; }
.inp.mono { font-family:var(--mono); font-size:13.5px; }
.paper { font-family:var(--mono); font-size:13.5px; line-height:1.55; background:#fff; border:2px dashed var(--ink); padding:12px 14px; white-space:pre-wrap; word-break:break-word; margin:0 0 10px; }
.paper.ats { max-height:640px; overflow:auto; }

.chip { display:inline-flex; align-items:center; gap:4px; font-family:var(--mono); font-size:12px; padding:3px 8px; border:2px solid var(--ink); background:#fff; }
.chip.ok { background:#CFF3DC; }
.chip.miss { background:#FFD9CF; }
.chip.mut { background:#EFE9DA; }
.chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }

.stamp { display:inline-flex; flex-direction:column; align-items:center; padding:9px 16px 7px; border:4px double currentColor; font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; }
.stamp b { font-size:19px; font-weight:700; }
.stamp span { font-size:10.5px; letter-spacing:.2em; }
.stamp.good { color:var(--green); } .stamp.mid { color:#B36A00; } .stamp.bad { color:var(--red); }
.score-card { display:flex; align-items:center; justify-content:space-around; gap:12px; min-height:130px; background:#fff; }
.score-num { font-family:var(--display); font-weight:700; font-size:76px; line-height:1; letter-spacing:-.04em; }
.score-num small { font-size:22px; letter-spacing:0; color:var(--ink2); }

.split { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr); gap:24px; align-items:start; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.grid4 { display:grid; grid-template-columns:1.2fr 1.2fr .8fr 1.4fr; gap:10px; }

/* ---- home ---- */
.cv-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:20px; margin-bottom:26px; }
.cv-card { background:var(--card); border:2px solid var(--ink); box-shadow:var(--shadow); padding:12px; }
.cv-card.on { background:#FFF6CF; }
.cv-thumb { background:#fff; border:2px solid var(--ink); padding:14px 14px 18px; height:150px; cursor:pointer; overflow:hidden; }
.cv-thumb .t-name { font-family:var(--display); font-weight:700; font-size:15px; }
.cv-thumb .t-title { font-family:var(--mono); font-size:11px; color:var(--ink2); margin-bottom:10px; }
.cv-thumb i { display:block; height:6px; background:#DDD6C5; margin-top:8px; }
.cv-name { width:100%; margin-top:10px; font-family:var(--display); font-weight:700; font-size:15px; border:0; border-bottom:2px dashed transparent; background:transparent; padding:2px 0; }
.cv-name:hover, .cv-name:focus { border-bottom-color:var(--ink); outline:0; }
.cv-meta { font-family:var(--mono); font-size:11px; color:var(--ink2); margin:2px 0 10px; }
.cv-actions { display:flex; gap:7px; flex-wrap:wrap; }
.start-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.start { text-align:left; padding:16px; border:2px solid var(--ink); background:#fff; cursor:pointer; box-shadow:var(--shadow-sm); }
.start b { display:block; font-family:var(--display); font-size:19px; }
.start span { font-family:var(--mono); font-size:12px; color:var(--ink2); }
.start:hover { background:#FFF6CF; }
.start.on { background:var(--yellow); }
.drop { margin-top:16px; border:3px dashed var(--ink); background:#fff; padding:38px 20px; text-align:center; cursor:pointer; }
.drop b { display:block; font-family:var(--display); font-size:20px; margin-bottom:6px; }
.drop span { font-family:var(--mono); font-size:12.5px; color:var(--ink2); }
.drop.over { background:var(--yellow); }

/* ---- editor ---- */
.edit { display:grid; grid-template-columns:400px 1fr; height:100%; }
.edit-form { border-right:2px solid var(--ink); background:var(--card); padding:16px; overflow-y:auto; }
.edit-form input, .edit-form textarea { border-radius:0 !important; border:1.5px solid var(--ink) !important; }
.edit-form summary { font-family:var(--display); font-size:16px; color:var(--ink) !important; padding:6px 0; border-top:2px solid var(--ink); margin-top:6px; }
.edit-main { display:flex; flex-direction:column; min-width:0; min-height:0; }
.tpl-bar { padding:10px 16px; border-bottom:2px solid var(--ink); background:var(--card); }
.tab { font-family:var(--display); font-weight:500; font-size:13.5px; padding:5px 11px; border:2px solid var(--ink); background:#fff; cursor:pointer; }
.tab.on { background:var(--ink); color:#F3EEE2; }
.tab.tpl.on { background:var(--accent); color:var(--ink); font-weight:700; }
.swatch { width:22px; height:22px; border:2px solid var(--ink); cursor:pointer; }
.swatch.on { outline:3px solid var(--accent); outline-offset:1px; }
.preview-scroll { flex:1; overflow:auto; padding:26px 24px 80px; }

/* ---- health ---- */
.finding { display:grid; grid-template-columns:104px 1fr auto; gap:14px; align-items:start; padding:12px 0; border-top:2px solid #E3DCCB; }
.finding:first-of-type { border-top:0; }
.finding .sev { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; padding:3px 6px; border:2px solid var(--ink); text-align:center; }
.finding.high .sev { background:var(--accent); } .finding.med .sev { background:var(--yellow); } .finding.low .sev { background:#EFE9DA; }
.f-body b { font-family:var(--display); font-size:15.5px; }
.f-body p { margin:3px 0 0; font-size:13.5px; line-height:1.5; color:var(--ink2); }
.ticks { list-style:none; margin:0; padding:0; font-size:14px; }
.ticks li { padding:5px 0 5px 26px; position:relative; }
.ticks li::before { content:'✓'; position:absolute; left:0; top:4px; width:18px; height:18px; line-height:16px; text-align:center; font-size:12px; font-weight:700; border:2px solid var(--ink); background:#CFF3DC; }
.ticks li.no::before { content:'!'; background:#FFD9CF; }
.buzz { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; padding:7px 0; font-size:13.5px; line-height:1.45; border-top:1px dashed #C9C1AE; }
.buzz em { font-style:normal; font-family:var(--mono); font-size:12px; color:var(--ink2); }

/* ---- coach ---- */
.bullet-row { display:grid; grid-template-columns:26px 1fr auto; gap:10px; margin-bottom:12px; align-items:start; }
.b-num { font-family:var(--mono); font-weight:700; border:2px solid var(--ink); text-align:center; padding:4px 0; background:var(--yellow); }
.b-main { display:flex; flex-direction:column; gap:6px; }
.b-acts { display:grid; grid-template-columns:28px 28px; gap:4px; }
.b-acts button { width:28px; height:28px; border:2px solid var(--ink); background:#fff; cursor:pointer; font-size:14px; line-height:1; }
.b-acts button:hover:not(:disabled) { background:var(--yellow); }
.b-acts button:disabled { opacity:.3; cursor:not-allowed; }
.levers { list-style:none; margin:0; padding:0; font-size:13.5px; line-height:1.45; }
.levers li { padding:7px 0; border-top:1px dashed #C9C1AE; }
.levers li:first-child { border-top:0; }
.levers b { font-family:var(--display); display:block; }

/* ---- misc views ---- */
.line-opt { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:9px 0; border-top:1px dashed #C9C1AE; font-size:14.5px; }
.line-opt:first-of-type { border-top:0; }
.line-opt em { font-style:normal; font-family:var(--mono); font-size:12px; color:var(--ink2); }
.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
.stat { border:2px solid var(--ink); background:var(--card); box-shadow:var(--shadow); padding:12px 16px; }
.stat b { display:block; font-family:var(--display); font-size:38px; line-height:1; }
.stat span { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink2); }
.stat:nth-child(2) { background:#DCE2FF; } .stat:nth-child(3) { background:#CFF3DC; } .stat:nth-child(4) { background:var(--yellow); }
.table-wrap { overflow-x:auto; }
.tbl { width:100%; border-collapse:collapse; font-size:13.5px; }
.tbl th { text-align:left; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; padding:6px 8px; border-bottom:2px solid var(--ink); white-space:nowrap; }
.tbl td { padding:7px 8px; border-bottom:1px dashed #C9C1AE; vertical-align:middle; }
.tbl .inp { padding:5px 7px; font-size:13px; min-width:110px; }
.st-Interview { background:#DCE2FF; } .st-Offer { background:#CFF3DC; } .st-Rejected { background:#FFD9CF; }
.nudge { font-family:var(--mono); font-size:12px; padding:2px 6px; border:2px solid var(--ink); white-space:nowrap; }
.nudge.accent { background:var(--accent); } .nudge.warn { background:var(--yellow); } .nudge.muted { background:#EFE9DA; }
.qa { padding:12px 0; border-top:2px solid #E3DCCB; }
.qa:first-of-type { border-top:0; padding-top:0; }
.qa .q { font-family:var(--display); font-weight:700; font-size:16px; display:flex; gap:10px; align-items:baseline; }
.qa .q span { font-family:var(--mono); font-size:12px; background:var(--ink); color:#F3EEE2; padding:1px 6px; }
.qa .hint { margin:4px 0 8px; }
.toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:var(--ink); color:#F3EEE2; font-family:var(--mono); font-size:13.5px; padding:11px 18px; border:2px solid var(--yellow); box-shadow:4px 4px 0 var(--accent); z-index:50; max-width:90vw; }

@media (max-width: 1000px) {
  .shell { grid-template-columns:1fr; grid-template-rows:auto 1fr; height:auto; min-height:100vh; }
  .rail { flex-direction:row; align-items:center; gap:10px; padding:10px; overflow-x:auto; }
  .logo { margin:0; font-size:16px; flex:none; }
  .rail nav { flex-direction:row; }
  .nav-btn { white-space:nowrap; padding:6px 9px; font-size:13.5px; }
  .nav-btn i { display:none; }
  .rail-foot { margin:0; padding:0; flex:none; }
  .rail-foot .label, .rail-foot .hint { display:none; }
  .seg { margin:0; width:170px; }
  .shell > main { height:auto; }
  .split, .edit { grid-template-columns:1fr; }
  .edit { height:auto; }
  .edit-form { border-right:0; border-bottom:2px solid var(--ink); max-height:none; }
  .page-head { flex-direction:column; align-items:flex-start; gap:8px; }
  .page-head h2 { font-size:34px; }
  .start-grid, .stat-row, .grid4 { grid-template-columns:1fr 1fr; }
  .topbar { flex-wrap:wrap; }
  .view-pad { padding:18px 14px 50px; }
}
@media (max-width: 560px) {
  .start-grid, .grid2, .grid4 { grid-template-columns:1fr; }
  .finding { grid-template-columns:1fr; gap:6px; }
  .finding .sev { justify-self:start; }
}
@media (max-width: 1000px) { .top-left { flex-basis:100%; } }
/* bullets drawn as text so they sit on the line in the PDF picture */
.resume-page ul.disc { list-style:none; }
.resume-page ul.disc li { position:relative; }
.resume-page ul.disc li::before { content:'•'; position:absolute; left:-13px; top:0; line-height:inherit; }
