:root{
  --navy:#071b35;
  --navy2:#0c2d56;
  --navy3:#153f70;
  --cream:#f4efe2;
  --paper:#fbf8ef;
  --gold:#d4ad4d;
  --gold2:#f2d77e;
  --red:#7e1f2b;
  --ink:#10213b;
  --muted:#627089;
  --line:#cfbb83;
  --white:#fff;
  --shadow:0 18px 50px rgba(6,19,37,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:linear-gradient(180deg,#eee8d8 0,#f7f3e9 380px,#f7f3e9 100%);
  color:var(--ink);
  font-family:Georgia,"Times New Roman",serif;
}
button{font:inherit}
.masthead{
  position:relative;
  min-height:330px;
  overflow:hidden;
  background:var(--navy);
  border-bottom:1px solid #020812;
}
.masthead-photo{
  position:absolute;inset:0;
  background:url("/assets/photos/welsh-line.png") center 43%/cover no-repeat;
  transform:scale(1.015);
}
.masthead-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(3,13,27,.91) 0%,rgba(3,13,27,.74) 42%,rgba(3,13,27,.34) 69%,rgba(3,13,27,.62) 100%),
    linear-gradient(0deg,rgba(3,13,27,.73),transparent 70%);
}
.masthead-content{
  width:min(1500px,calc(100% - 48px));
  min-height:330px;
  margin:auto;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:2;
}
.identity{display:flex;align-items:center;gap:26px;max-width:950px}
.identity-mark{
  width:126px;height:126px;object-fit:cover;
  border:1px solid var(--gold);
  box-shadow:0 0 0 8px rgba(4,18,36,.58),0 14px 30px rgba(0,0,0,.25);
}
.eyebrow,.kicker,.card-label{
  font:700 12px/1.2 Arial,sans-serif;
  letter-spacing:.18em;
  color:var(--gold2);
}
.identity h1{
  margin:8px 0 8px;
  color:#fff;
  font-size:clamp(38px,5vw,72px);
  line-height:.96;
  text-shadow:0 3px 15px rgba(0,0,0,.45);
}
.identity p{
  margin:0;color:#f8e8b4;font-style:italic;font-size:17px;
}
.masthead-ranker{
  align-self:flex-end;height:310px;width:260px;position:relative;flex:0 0 260px;
}
.masthead-ranker img{
  position:absolute;bottom:-4px;right:0;height:305px;width:auto;
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.35));
}
.regimental-trim{
  height:12px;background:var(--navy);position:relative;overflow:hidden;
}
.regimental-trim:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--navy) 0 9%,#f1eee4 9% 14%,var(--red) 14% 20%,#f1eee4 20% 25%,var(--navy) 25% 75%,#f1eee4 75% 80%,var(--red) 80% 86%,#f1eee4 86% 91%,var(--navy) 91%);
}
.regimental-trim:after{
  content:"";position:absolute;left:0;right:0;top:5px;height:2px;background:rgba(212,173,77,.85)
}
.primary-nav{
  background:var(--navy);
  border-bottom:3px solid var(--gold);
  position:sticky;top:0;z-index:20;
  box-shadow:0 8px 20px rgba(3,16,34,.12);
}
.nav-inner{
  width:min(1500px,calc(100% - 32px));
  margin:auto;display:flex;gap:6px;overflow:auto;padding:10px 0;
}
.nav-link{
  appearance:none;border:1px solid #55708f;background:#0b284c;color:#fff;
  padding:12px 17px;font-weight:700;white-space:nowrap;cursor:pointer;
}
.nav-link:hover,.nav-link.active{background:var(--gold);color:#0b1d36;border-color:#f0d785}
.nav-link.staff{margin-left:auto}
main{width:min(1500px,calc(100% - 32px));margin:18px auto 50px}
.statusbar{
  background:#fffaf0;border:1px solid var(--line);padding:11px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  box-shadow:0 4px 18px rgba(32,45,59,.06);font-family:Arial,sans-serif;font-size:12px;
}
.statusbar strong{color:var(--red);letter-spacing:.12em;margin-right:12px}
.statusbar span{color:#56647a}
.status-pill{display:flex;align-items:center;gap:7px}
.status-pill i{width:8px;height:8px;background:#39845c;border-radius:50%;box-shadow:0 0 0 3px #d8eadf}
.view{display:none}
.view.active{display:block}
.section-heading{
  margin:22px 0 14px;padding:34px 36px;
  background:linear-gradient(105deg,#0a2749,#123e70);
  border-top:4px solid var(--gold);box-shadow:var(--shadow);
  color:#fff;
}
.section-heading h2{margin:8px 0 8px;font-size:36px}
.section-heading p{max-width:920px;margin:0;color:#dce6f4;line-height:1.55}
.section-heading.compact{padding:22px 26px;box-shadow:none}
.section-heading.compact h2{font-size:27px;margin-bottom:0}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.feature-card{
  background:var(--paper);border:1px solid #d4c28f;border-top:4px solid var(--gold);
  padding:25px;min-height:225px;box-shadow:0 8px 24px rgba(26,36,49,.07);
}
.feature-card .card-label{color:#8f6720}
.feature-card h3{margin:8px 0 10px;font-size:25px}
.feature-card p{color:#56647a;line-height:1.48}
.feature-card button{
  margin-top:8px;padding:9px 12px;border:1px solid #a88a48;background:#efe7d4;color:#657084;font-weight:700;
}
.photo-band{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin:18px 0}
.photo-main,.photo-stack{min-height:310px}
.photo-main{position:relative;overflow:hidden;border:1px solid #b39a5d;background:#081a33}
.photo-main img{width:100%;height:100%;min-height:430px;object-fit:cover;object-position:center 45%;display:block}
.photo-caption{
  position:absolute;left:0;right:0;bottom:0;padding:21px 24px;
  background:linear-gradient(0deg,rgba(3,15,31,.96),rgba(3,15,31,.08));color:#fff;
}
.photo-caption span{display:block;color:var(--gold2);font:700 10px Arial,sans-serif;letter-spacing:.18em;margin-bottom:5px}
.photo-stack{display:grid;grid-template-rows:1fr 1fr;gap:12px}
.photo-stack img{width:100%;height:100%;object-fit:cover;border:1px solid #b39a5d;min-height:209px}
.formation-preview{margin-top:20px;background:#f7f3e9;border:1px solid #d5c59d;padding:14px}
.formation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.formation-grid article{
  background:#0b284c;color:#fff;border:1px solid #4d698b;padding:12px;
  display:flex;align-items:center;gap:14px;min-height:110px;
}
.formation-grid img,.wales-placeholder{
  width:78px;height:78px;object-fit:cover;border:1px solid var(--gold);flex:0 0 78px;
}
.wales-placeholder{display:grid;place-items:center;background:#eee;font-size:34px;color:#111}
.formation-grid small{display:block;font:700 9px Arial,sans-serif;letter-spacing:.12em;color:#e9cf78}
.formation-grid strong{display:block;margin:6px 0 3px;font-size:17px}
.formation-grid span{font-size:12px;color:#cbd7e6}
.placeholder{
  margin-top:24px;padding:90px 40px;text-align:center;background:var(--paper);
  border:1px solid #d1bd85;border-top:4px solid var(--gold);
}
.placeholder>span{font:700 11px Arial,sans-serif;letter-spacing:.2em;color:#9b772c}
.placeholder h2{font-size:34px;margin:8px}
.placeholder p{color:#637089}
footer{
  background:var(--navy);color:#fff;border-top:3px solid var(--gold);padding:22px max(24px,calc((100% - 1500px)/2));
  display:flex;justify-content:space-between;gap:16px;font-size:13px
}
footer span{color:#c8d2df}
@media(max-width:980px){
  .masthead{min-height:280px}.masthead-content{min-height:280px}
  .masthead-ranker{width:180px;flex-basis:180px;height:270px}.masthead-ranker img{height:265px}
  .identity-mark{width:96px;height:96px}.dashboard-grid{grid-template-columns:1fr}
  .formation-grid{grid-template-columns:1fr 1fr}.photo-band{grid-template-columns:1fr}.photo-stack{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .nav-link.staff{margin-left:0}
}
@media(max-width:650px){
  .masthead-content{width:calc(100% - 28px);min-height:250px}.masthead-ranker{display:none}
  .identity{gap:15px}.identity-mark{width:74px;height:74px}.identity h1{font-size:37px}
  .eyebrow{font-size:9px}.identity p{font-size:13px}
  main,.nav-inner{width:calc(100% - 20px)}.section-heading{padding:25px 20px}.section-heading h2{font-size:29px}
  .formation-grid,.photo-stack{grid-template-columns:1fr}.statusbar,footer{align-items:flex-start;flex-direction:column}
  .photo-main img{min-height:300px}
}


.api-diagnostic{
  margin:14px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 18px;
  background:#f9f3df;
  border:1px solid #d5bd77;
  border-left:5px solid #d4ad4d;
  box-shadow:0 5px 16px rgba(26,36,49,.05);
}
.api-diagnostic>div{display:grid;gap:3px}
.api-diagnostic strong{font-size:17px;color:#10213b}
.api-diagnostic small{color:#637089}
.api-diagnostic code{
  padding:7px 9px;
  background:#071b35;
  color:#f2d77e;
  border:1px solid #183f6c;
  font:700 12px/1.2 Consolas,monospace;
  white-space:nowrap;
}
.status-pill.error i{background:#a62e38;box-shadow:0 0 0 3px #f0d5d7}
.status-pill.error #api-status-text{color:#8e2530}
.status-pill.ok i{background:#39845c;box-shadow:0 0 0 3px #d8eadf}
.api-diagnostic.error{border-left-color:#9f2d37;background:#fbefef}
.api-diagnostic.error code{background:#51151b;color:#ffd7da;border-color:#7a2630}
@media(max-width:650px){
  .api-diagnostic{align-items:flex-start;flex-direction:column}
}


.live-metric{
  display:flex;align-items:baseline;gap:12px;
  margin:12px 0 8px;
  padding:12px 14px;
  background:#0a284b;color:#fff;border-left:4px solid #d4ad4d;
}
.live-metric strong{font-size:34px;color:#f2d77e;line-height:1}
.live-metric span{font:700 11px/1.3 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#d9e3ef}
.company-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
.company-metrics span{
  display:flex;flex-direction:column;gap:2px;
  padding:9px 8px;text-align:center;background:#efe6d0;border:1px solid #d0bb80;
  font:700 10px/1.25 Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#44536b
}
.company-metrics b{font:700 22px Georgia,serif;color:#10213b}


.jump-nav{cursor:pointer!important;background:#0b284c!important;color:#fff!important;border-color:#526f92!important}
.jump-nav:hover{background:#d4ad4d!important;color:#10213b!important;border-color:#d4ad4d!important}

.oob-summary{
  display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin:16px 0;
}
.oob-summary>div{
  background:#fffaf0;border:1px solid #d0bc83;border-top:4px solid #d4ad4d;
  padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px
}
.oob-summary span{font:700 10px/1.2 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#66738a}
.oob-summary strong{font-size:29px;color:#10213b}

.oob-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.oob-company{
  background:#fbf8ef;border:1px solid #d0bc83;box-shadow:0 8px 24px rgba(20,30,44,.06);
}
.oob-company.fencible{grid-column:1/-1}
.oob-company>header{
  min-height:105px;padding:13px 16px;display:flex;align-items:center;gap:15px;
  background:linear-gradient(105deg,#081f3c,#123f71);color:#fff;border-bottom:3px solid #d4ad4d
}
.oob-company>header img,.oob-wales{
  width:76px;height:76px;object-fit:cover;flex:0 0 76px;border:1px solid #d4ad4d;background:#f6f2e7
}
.oob-wales{display:grid;place-items:center;font-size:34px;color:#222}
.oob-company small{font:700 9px Arial,sans-serif;letter-spacing:.15em;color:#f2d77e}
.oob-company h3{margin:5px 0 0;font-size:20px;line-height:1.1}
.oob-members{padding:8px 14px 14px}
.oob-member{
  min-height:54px;padding:9px 7px;border-bottom:1px solid #e0d6bd;
  display:flex;align-items:center;justify-content:space-between;gap:16px
}
.oob-member:last-child{border-bottom:0}
.oob-member strong{font-size:16px;color:#10213b}
.oob-member span{
  font:700 10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;
  color:#6a7487;background:#eee5d2;border:1px solid #d4c291;padding:5px 7px;white-space:nowrap
}
.oob-empty,.oob-loading{padding:25px 7px;color:#707b8d;font-style:italic}
.oob-footnote{
  margin-top:14px;padding:12px 15px;background:#efe8d7;border-left:4px solid #d4ad4d;
  color:#56647a;font-size:12px;line-height:1.5
}
.oob-footnote span{display:block;margin-top:4px;font-style:italic}
@media(max-width:800px){
  .oob-summary{grid-template-columns:1fr 1fr}
  .oob-grid{grid-template-columns:1fr}
  .oob-company.fencible{grid-column:auto}
}
@media(max-width:520px){
  .oob-summary{grid-template-columns:1fr}
  .oob-member{align-items:flex-start;flex-direction:column;gap:5px}
}


.auth-button{
  appearance:none;
  margin-left:auto;
  border:1px solid #627c99;
  background:#152f52;
  color:#fff;
  padding:10px 14px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  white-space:nowrap;
}
.auth-button:hover{background:#23476f}
.auth-button.signed-in{border-color:#d4ad4d;background:#0d3a4a}
.auth-dot{
  width:8px;height:8px;border-radius:50%;
  background:#9a4350;box-shadow:0 0 0 3px rgba(154,67,80,.18)
}
.auth-button.signed-in .auth-dot{
  background:#4ca36f;box-shadow:0 0 0 3px rgba(76,163,111,.18)
}

.identity-state{
  display:flex;align-items:center;gap:12px;
  margin:12px 0;padding:11px 12px;
  background:#f1e8d4;border:1px solid #d3bd83
}
.identity-avatar{
  width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;overflow:hidden;flex:0 0 46px;
  background:#0a284b;color:#f2d77e;border:2px solid #d4ad4d;
  font-weight:700;font-size:20px
}
.identity-avatar img{width:100%;height:100%;object-fit:cover}
.identity-state>div:last-child{display:grid;gap:2px;min-width:0}
.identity-state strong{font-size:16px;color:#10213b}
.identity-state span{font-size:12px;line-height:1.3;color:#657087}
.identity-action{
  appearance:none;cursor:pointer;
  margin-top:4px;padding:9px 12px;
  border:1px solid #526f92!important;
  background:#0b284c!important;color:#fff!important;font-weight:700
}
.identity-action:hover{background:#d4ad4d!important;color:#10213b!important}
.identity-action.logout{
  background:#f0e5cf!important;color:#6b2730!important;border-color:#c78a91!important
}
.auth-error{
  margin-top:8px;padding:8px 10px;
  background:#fbefef;border-left:4px solid #9f2d37;color:#7d2730;font-size:12px
}
@media(max-width:980px){
  .auth-button{margin-left:0}
}


.private-gate{
  margin-top:16px;padding:58px 32px;text-align:center;
  background:#fbf8ef;border:1px solid #d0bc83;border-top:4px solid #d4ad4d
}
.private-gate>span{
  font:700 10px Arial,sans-serif;letter-spacing:.18em;color:#9a7124
}
.private-gate h3{margin:8px auto 8px;max-width:760px;font-size:26px}
.private-gate p{max-width:760px;margin:0 auto 18px;color:#657087;line-height:1.5}
.private-gate button{
  appearance:none;border:1px solid #526f92;background:#0b284c;color:#fff;
  padding:10px 14px;font-weight:700;cursor:pointer
}
.private-gate button:hover{background:#d4ad4d;color:#10213b}

.service-hero{
  margin-top:16px;padding:28px 30px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  color:#fff;background:linear-gradient(105deg,#081f3c,#164777);
  border-top:4px solid #d4ad4d
}
.service-hero h2{margin:5px 0 3px;font-size:38px}
.service-hero p{margin:0;color:#dce7f3}
.service-verified{
  border:1px solid #d4ad4d;color:#f2d77e;padding:9px 11px;
  font:700 10px Arial,sans-serif;letter-spacing:.12em;white-space:nowrap
}

.service-metrics{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0
}
.service-metrics article{
  padding:17px;background:#fffaf0;border:1px solid #d0bc83;border-left:4px solid #d4ad4d
}
.service-metrics small{
  display:block;font:700 9px Arial,sans-serif;letter-spacing:.12em;color:#657087
}
.service-metrics strong{display:block;margin-top:5px;font-size:28px;color:#10213b}

.service-details{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px
}
.service-details>div{
  padding:14px 16px;background:#f6f0e3;border:1px solid #d7c69b;
  display:flex;justify-content:space-between;gap:16px
}
.service-details span{
  font:700 10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#657087
}
.service-details strong{text-align:right;color:#10213b}

.private-note{
  margin-top:12px;padding:12px 14px;border-left:4px solid #d4ad4d;background:#efe8d7;
  color:#56647a;font-size:12px;line-height:1.5
}
.private-note span{display:block;margin-top:4px;font-style:italic}
@media(max-width:700px){
  .service-hero{align-items:flex-start;flex-direction:column}
  .service-metrics{grid-template-columns:1fr 1fr}
  .service-details{grid-template-columns:1fr}
}


/* ===================== V19.1 integrated dossier ===================== */
.identity-state{position:relative}
.identity-text{display:grid;gap:2px;min-width:0;flex:1}
.identity-rank-icon{width:42px;height:42px;object-fit:contain;flex:0 0 42px}
.mini-medal-rack{display:flex;gap:5px;flex-wrap:wrap;min-height:0;margin:7px 0}
.mini-medal-rack img{width:28px;height:28px;object-fit:contain}

.service-hero-id{display:flex;align-items:center;gap:18px}
.service-rank-icon{width:78px;height:78px;object-fit:contain;background:rgba(255,255,255,.07);border:1px solid #d4ad4d;padding:5px}

.dossier-block{
  margin-top:14px;padding:18px;
  background:#fbf8ef;border:1px solid #d1bd85;border-top:3px solid #d4ad4d
}
.subheading-row{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:12px}
.subheading-row h3{margin:0;font-size:20px}
.subheading-row span{font:700 9px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8b723a}
.two-col-dossier{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.chip-rack,.duty-list{display:flex;gap:7px;flex-wrap:wrap}
.record-chip{
  padding:7px 9px;background:#efe5c9;border:1px solid #ccb16b;
  color:#142641;font-size:12px;font-weight:700
}
.record-chip small{display:block;margin-top:2px;font:400 9px Arial,sans-serif;color:#6b7587}

.medal-rack{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.medal-item{
  width:84px;min-height:96px;text-align:center;padding:8px 5px;
  background:#f4ecd8;border:1px solid #d0ba7f
}
.medal-item img{width:52px;height:52px;object-fit:contain;display:block;margin:0 auto 5px}
.medal-item strong{display:block;font-size:10px;line-height:1.15}
.medal-rack.large .medal-item{width:105px}
.medal-rack.large .medal-item img{width:64px;height:64px}

.activity-list{display:grid;gap:6px}
.activity-row{
  display:grid;grid-template-columns:110px 70px 1fr 100px;gap:10px;align-items:center;
  padding:9px 10px;background:#f5efdf;border:1px solid #ded0ad
}
.activity-row strong{color:#10213b}
.activity-row span{font-size:11px;color:#637089}
.activity-row .activity-result{text-align:right;font-weight:700}

.citation-list{display:grid;gap:8px}
.citation-card{
  padding:11px 12px;background:#f5edda;border-left:4px solid #d4ad4d
}
.citation-card header{display:flex;justify-content:space-between;gap:12px;align-items:center}
.citation-card strong{font-size:14px}
.citation-card em{
  font:700 9px Arial,sans-serif;font-style:normal;letter-spacing:.08em;text-transform:uppercase;
  color:#765c25;background:#ead9ad;padding:4px 6px
}
.citation-card p{margin:6px 0 3px;font-size:12px;line-height:1.4;color:#55647b}
.citation-card small{color:#7a8494}

.empty-state,.muted{color:#748092;font-style:italic;font-size:12px}

.progression-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.career-panel{background:#fbf8ef;border:1px solid #d0bc83;border-top:4px solid #d4ad4d;padding:22px}
.career-panel h3{font-size:27px;margin:6px 0 13px}
.progress-track{height:14px;background:#e1dac8;border:1px solid #cdbb8e;overflow:hidden}
.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#b88a29,#e7c866);transition:width .4s ease}
.progress-copy{display:flex;justify-content:space-between;margin-top:7px;color:#536078;font-size:12px}
.gate-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #ded3b7}
.gate-row strong.met{color:#26704d}
.gate-row strong.not-met{color:#9d3440}
.retired-merit-note{margin-top:14px;padding:13px 15px;background:#efe8d6;border-left:4px solid #7d2330;color:#56647a;font-size:12px;line-height:1.45}
.retired-merit-note strong{color:#7d2330}

.ledger-row{
  padding:10px 11px;background:#f6efdf;border:1px solid #d9caa7;margin-bottom:7px
}
.ledger-row strong{display:block}
.ledger-row span{display:block;margin-top:3px;font-size:11px;color:#687487}

.public-roll{display:grid;gap:8px}
.public-medal-row{
  display:grid;grid-template-columns:minmax(190px,1fr) 2fr;gap:16px;align-items:center;
  padding:10px 12px;background:#f5efdf;border:1px solid #d9caa7
}
.public-medal-name{display:flex;align-items:center;gap:10px}
.public-medal-name img{width:34px;height:34px;object-fit:contain}
.public-medal-name strong{display:block}
.public-medal-name small{display:block;color:#6a7486;margin-top:2px}
.public-medal-icons{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.public-medal-icons img{width:34px;height:34px;object-fit:contain}
.honours-policy-note{margin-top:12px;padding:12px 15px;background:#efe8d7;border-left:4px solid #d4ad4d;color:#5e6878;font-size:12px}

.legion-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.legion-summary article{background:#0a284b;color:#fff;border-top:3px solid #d4ad4d;padding:15px}
.legion-summary span{font:700 9px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#d8c174}
.legion-summary strong{display:block;font-size:28px;margin-top:4px}
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.course-card{padding:14px;background:#fbf8ef;border:1px solid #d0bc83}
.course-card header{display:flex;justify-content:space-between;gap:10px}
.course-card h4{margin:0;font-size:15px}
.course-card .course-status{font:700 9px Arial,sans-serif;padding:4px 6px;background:#eee3c5;color:#715b28;height:max-content}
.course-card .course-status.passed{background:#dcebdc;color:#2c6842}
.course-card p{font-size:11px;color:#687487;margin:7px 0 0}

.staff-directory{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}
.staff-section{background:#fbf8ef;border:1px solid #d0bc83;border-top:3px solid #d4ad4d}
.staff-section h3{margin:0;padding:12px 14px;background:#0a284b;color:#fff;font-size:17px}
.staff-appointment{display:grid;grid-template-columns:1.2fr 1fr auto;gap:10px;padding:9px 12px;border-bottom:1px solid #e1d5b8;align-items:center}
.staff-appointment:last-child{border-bottom:0}
.staff-appointment span{font-size:11px;color:#607087}
.staff-appointment strong{font-size:13px}
.staff-appointment em{font-size:10px;font-style:normal;color:#7a8494}
.staff-appointment.vacant strong{color:#9a6270;font-style:italic}
.staff-migration-note{margin-top:14px;padding:14px 16px;background:#f1e7d4;border-left:4px solid #7d2330;color:#56647a;font-size:12px;line-height:1.5}

@media(max-width:850px){
  .two-col-dossier,.progression-grid,.staff-directory,.course-grid{grid-template-columns:1fr}
  .activity-row{grid-template-columns:100px 60px 1fr}
  .activity-row .activity-result{display:none}
  .public-medal-row{grid-template-columns:1fr}
  .public-medal-icons{justify-content:flex-start}
}
