:root{
  --navy:#22405c; --navy-dark:#16283a; --accent:#3ba0e8; --accent-ink:#1f7fc4;
  --ink:#1f1f1f; --body:#333; --muted:#5a5a5a; --rule:#d4d8dc; --side-text:#dfe7ee; --side-rule:#6d8399;
  --sidebar-w:320px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--body);background:#eef1f4;line-height:1.55}
a{color:inherit}
.layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;max-width:1180px;margin:40px auto;background:#fff;box-shadow:0 2px 24px rgba(22,40,58,.12)}
.sidebar{background:var(--navy);color:#fff;border-top:14px solid var(--navy-dark)}
.sidebar-inner{padding:44px 32px 48px}
.name{font-size:2.6rem;font-weight:700;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;margin:0 0 36px}
.sb-section{margin-bottom:30px}
.sb-h{font-size:.95rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--side-rule)}
.skills{margin:0}
.skills dt{font-weight:600;font-size:.86rem;margin-top:12px}
.skills dd{margin:2px 0 0;font-size:.84rem;color:var(--side-text)}
.sb-strong{font-weight:600;font-size:.88rem;margin:0 0 3px}
.sb-text{font-size:.84rem;color:var(--side-text);margin:0}
.sb-list{list-style:none;margin:0;padding:0}
.sb-list li{font-size:.84rem;color:var(--side-text);margin-bottom:8px}
.main{padding:48px clamp(24px,4vw,56px) 40px;min-width:0}
.role{font-size:1.6rem;color:var(--accent-ink);margin:0 0 6px;font-weight:500}
.contact{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0;font-size:.92rem;color:var(--muted)}
.contact a{text-decoration:none}
.contact a:hover{color:var(--accent-ink);text-decoration:underline}
.contact .dl{color:#fff;background:var(--navy);padding:3px 12px;border-radius:4px}
.contact .dl:hover{background:var(--accent-ink);color:#fff;text-decoration:none}
.block{margin-top:34px}
.m-h{font-size:1.15rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#333;margin:0 0 14px;padding-bottom:7px;border-bottom:1px solid var(--rule)}
.summary{margin:0;font-size:.98rem}
.job{margin-bottom:26px}
.job-head{display:grid;grid-template-columns:1fr auto;column-gap:16px;align-items:baseline}
.job-title{font-size:1.18rem;font-weight:500;color:var(--ink);margin:0}
.job-emp{font-size:1rem;color:var(--accent-ink);margin:2px 0 0}
.job-date,.job-loc{font-size:.86rem;color:var(--muted);text-align:right;white-space:nowrap}
.job ul{margin:10px 0 0;padding-left:18px}
.job li{font-size:.94rem;margin-bottom:6px}
.name-mobile{display:none}
.footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--rule);font-size:.8rem;color:var(--muted)}
@media (max-width:1220px){.layout{margin:0 auto}}
@media (max-width:860px){
  .layout{grid-template-columns:1fr;box-shadow:none}
  body{background:#fff}
  .sidebar-inner{padding:32px 22px 20px}
  .name{font-size:2.1rem;margin-bottom:24px}
  .main{padding:32px 22px 32px}
  .main{order:-1}
  .layout{display:flex;flex-direction:column}
  .sidebar{order:1;border-top:none}
  .main{order:0;border-top:10px solid var(--navy)}
  .role{font-size:1.15rem}
  .name-mobile{display:block;font-size:2rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--navy);margin:0 0 4px;line-height:1.1}
  .sidebar .name{display:none}
}
@media (max-width:480px){
  .job-head{grid-template-columns:1fr}
  .job-date,.job-loc{text-align:left}
}
@media print{.contact .dl{display:none}}
