:root{
  --page:#FDFBF7;--paper:#F2ECE1;--card:#FFFFFF;--tint:#E4EBF2;
  --ink:#171614;--ink-soft:#57524A;--ink-faint:#8A8378;
  --rule:rgba(23,22,20,.12);--rule-soft:rgba(23,22,20,.07);
  --navy:#102D4A;--navy-dk:#0A1D31;--navy-lt:#5B80A6;
  --ochre:#B8761C;--ochre-lt:#E8B25A;--ochre-bg:#FBF1DF;
  --red:#C43B23;--red-bg:#FDECE8;
  --amber:#D98A0B;--amber-bg:#FEF4E0;
  --green:#1B8055;--green-bg:#E7F5EE;
  --f-sans:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --f-serif:"Newsreader",Georgia,"Times New Roman",serif;
  --s-1:8px;--s-2:16px;--s-3:24px;--s-4:32px;--s-5:48px;--s-6:64px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
p{margin:0;}
h1,h2,h3{margin:0;color:var(--navy-dk);letter-spacing:-.02em;}
h1{font-size:34px;font-weight:600;line-height:1.1;}
h2{font-size:22px;font-weight:600;line-height:1.2;}
h3{font-size:17px;font-weight:600;}
.kicker{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ochre);margin-bottom:var(--s-2);display:block;}
.shell{max-width:920px;margin:0 auto;padding:var(--s-5) var(--s-3) var(--s-6);}
.sheet{background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--ochre);border-radius:4px;padding:var(--s-5);}

/* head */
.head{margin-bottom:var(--s-4);}
.meta{font-size:13px;color:var(--ink-faint);margin-top:8px;}
.meta b{color:var(--ink-soft);font-weight:600;}
.reeval-chip{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);background:var(--tint);border:1px solid var(--rule);border-radius:999px;padding:4px 12px;}

/* score dashboard */
.dash{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;}
.scorecard{background:var(--page);border:1px solid var(--rule);border-radius:4px;padding:16px 14px;text-align:center;border-top:3px solid var(--navy);}
.scorecard.b-good{border-top-color:var(--green);}
.scorecard.b-warn{border-top-color:var(--amber);}
.scorecard.b-low{border-top-color:var(--red);}
.sc-name{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);}
.sc-band{font-size:40px;font-weight:600;line-height:1.15;color:var(--navy-dk);font-family:var(--f-serif);}
.scorecard.b-good .sc-band{color:var(--green);}
.scorecard.b-warn .sc-band{color:var(--amber);}
.scorecard.b-low .sc-band{color:var(--red);}
.sc-verdict{font-size:12px;color:var(--ink-soft);line-height:1.45;margin-top:2px;}
.overallcard{background:var(--navy-dk);color:#F7F3EB;border-radius:4px;padding:20px var(--s-3);display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-bottom:12px;}
.ov-num{font-size:56px;font-weight:600;line-height:1;color:var(--ochre-lt);font-family:var(--f-serif);flex:none;}
.ov-body{flex:1;min-width:220px;}
.ov-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#B8C6D6;}
.ov-line{font-size:15px;line-height:1.5;margin-top:4px;}
.ov-calc{font-size:13px;color:#B8C6D6;margin-top:8px;font-family:var(--f-sans);}
.ov-calc b{color:var(--ochre-lt);}

/* ceiling strip */
.ceiling{background:var(--ochre-bg);border:1px solid rgba(184,118,28,.25);border-left:4px solid var(--ochre);border-radius:4px;padding:14px 18px;font-size:15px;color:var(--ink-soft);line-height:1.6;margin-bottom:var(--s-4);}
.ceiling b{color:var(--navy-dk);}

/* comparison (re-evaluation only) */
.cmp-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule-soft);font-size:14px;flex-wrap:wrap;}
.cmp-row:last-of-type{border-bottom:none;}
.cmp-name{font-weight:600;color:var(--navy-dk);flex:1;min-width:140px;}
.cmp-chip{font-size:13px;font-weight:700;padding:3px 10px;border-radius:4px;background:var(--tint);color:var(--navy);}
.cmp-arrow{color:var(--ink-faint);font-size:13px;}
.cmp-move{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;}
.cmp-move.up{background:var(--green-bg);color:var(--green);}
.cmp-move.same{background:var(--tint);color:var(--navy);}
.cmp-move.down{background:var(--red-bg);color:var(--red);}
.cmp-lists{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:var(--s-3);}
.cmp-col{background:var(--page);border:1px solid var(--rule);border-radius:4px;padding:14px;}
.cmp-col h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}
.cmp-col.fixed h3{color:var(--green);}
.cmp-col.persist h3{color:var(--amber);}
.cmp-col.newi h3{color:var(--red);}
.cmp-col ul{margin:0;padding-left:16px;font-size:13px;color:var(--ink-soft);line-height:1.6;}

/* section spacing + labels */
.section{margin-bottom:var(--s-4);}
.section-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;display:inline-block;padding:4px 12px;border-radius:4px;margin-bottom:12px;color:#fff;}
.green-label{background:var(--green);}
.red-label{background:var(--red);}
.navy-label{background:var(--navy);}
.ochre-label{background:var(--ochre);}
.teal-label{background:#0f6e6a;}

/* main task check + critical issue cards */
.section-card{border-radius:4px;padding:var(--s-3);border:1px solid rgba(27,128,85,.2);background:var(--green-bg);}
.section-card.red{background:var(--red-bg);border-color:rgba(196,59,35,.2);}
.section-card .card-title{font-size:15px;font-weight:600;color:var(--navy-dk);margin-bottom:8px;}
.section-card p{font-size:15px;color:var(--ink-soft);line-height:1.6;}
.section-card p+p{margin-top:8px;}

/* criterion deep dive */
.dive{border:1px solid var(--rule);border-radius:4px;padding:var(--s-3);margin-bottom:14px;background:#fff;}
.dive-h{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.dive-h h3{flex:1;}
.band{font-size:13px;font-weight:700;letter-spacing:.04em;padding:5px 12px;border-radius:4px;background:var(--tint);color:var(--navy);flex:none;}
.band.b-good{background:var(--green-bg);color:var(--green);}
.band.b-warn{background:var(--amber-bg);color:var(--amber);}
.band.b-low{background:var(--red-bg);color:var(--red);}
.dive-sub{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:14px 0 6px;}
.dive-sub.earn{color:var(--green);}
.dive-sub.block{color:var(--red);}
.ev{margin:0;padding-left:18px;font-size:14px;color:var(--ink-soft);line-height:1.7;}
.ev li{margin-bottom:5px;}
.ev q{font-family:var(--f-serif);color:var(--ink);quotes:"\201C" "\201D";}
.gap{margin-top:12px;padding:10px 14px;background:var(--page);border-left:3px solid var(--ochre);border-radius:0 4px 4px 0;font-size:13px;color:var(--ink-soft);line-height:1.6;}
.gap b{color:var(--navy-dk);}

/* error pattern summary */
.pat-head,.pat-row{display:grid;grid-template-columns:1.3fr .5fr .9fr 1.5fr .6fr;gap:10px;align-items:center;}
.pat-head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:0 12px 8px;}
.pat-row{background:var(--page);border:1px solid var(--rule);border-radius:4px;padding:12px;margin-bottom:8px;font-size:14px;}
.pat-type{font-weight:600;color:var(--navy-dk);}
.pat-count{font-weight:700;font-family:var(--f-serif);font-size:17px;color:var(--navy-dk);}
.sev{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:999px;text-align:center;}
.sev.block{background:var(--red-bg);color:var(--red);}
.sev.cost{background:var(--amber-bg);color:var(--amber);}
.sev.blem{background:var(--tint);color:var(--navy);}
.pat-ex{font-family:var(--f-serif);font-size:14px;color:var(--ink-soft);}
.pat-crit{font-size:12px;font-weight:700;color:var(--ink-faint);text-align:right;}
.dominant{margin-top:12px;padding:12px 16px;background:var(--navy-dk);color:#F7F3EB;border-radius:4px;font-size:14px;line-height:1.6;}
.dominant b{color:var(--ochre-lt);}

/* full annotation */
.cat-h{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy);margin:var(--s-3) 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule);}
.cat-h:first-of-type{margin-top:0;}
.fix{border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin-bottom:10px;}
.fix-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;background:#fff;user-select:none;border:none;width:100%;text-align:left;font-family:var(--f-sans);}
.fix-header:hover{background:var(--tint);}
.fix-num{width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;flex:none;font-family:var(--f-sans);}
.fix-issue{font-size:14px;font-weight:600;color:var(--navy-dk);flex:1;}
.fix-cat{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);background:var(--page);border:1px solid var(--rule);border-radius:999px;padding:3px 8px;flex:none;}
.fix-arrow{font-size:11px;color:var(--ink-faint);transition:transform .2s ease;display:inline-block;flex:none;}
.fix-body{display:none;padding:0 16px 16px 16px;border-top:1px solid var(--rule-soft);}
.fix-body.open{display:block;}
.fix-sublabel{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:14px 0 4px;color:var(--red);}
.fix-sublabel.green{color:var(--green);}
.fix-orig{font-family:var(--f-serif);font-size:15px;color:var(--ink);line-height:1.6;margin-bottom:2px;}
.fix-corr{font-family:var(--f-serif);font-size:15px;color:var(--ink);line-height:1.6;}
.fix-why{font-size:13px;color:var(--ink-soft);margin-top:12px;padding-top:12px;border-top:1px solid var(--rule-soft);line-height:1.6;}
.fix-why b{color:var(--navy-dk);}
del{color:var(--red);text-decoration:line-through;text-decoration-thickness:1px;}
ins{color:var(--green);text-decoration:none;border-bottom:1.5px solid var(--green);}
.fix-hint{font-size:12px;color:var(--ink-faint);margin-bottom:var(--s-2);}

/* paragraph architecture */
.para{border:1px solid var(--rule);border-radius:4px;padding:14px 16px;margin-bottom:10px;background:#fff;display:flex;gap:14px;align-items:flex-start;}
.para-label{flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--navy);color:#fff;border-radius:4px;padding:4px 10px;margin-top:2px;}
.para-body{flex:1;font-size:14px;color:var(--ink-soft);line-height:1.6;}
.para-body b{color:var(--navy-dk);}
.plan{margin:var(--s-2) 0 0;padding-left:20px;font-size:14px;color:var(--ink-soft);line-height:1.8;}
.plan li::marker{color:var(--ochre);font-weight:700;}
.plan b{color:var(--navy-dk);}

/* band-upgraded rewrite */
.rw-note{font-size:14px;color:var(--ink-soft);line-height:1.6;margin-bottom:12px;}
.rw-note b{color:var(--navy-dk);}
.tabs{display:flex;gap:8px;margin-bottom:0;}
.tab{font-family:var(--f-sans);font-size:13px;font-weight:600;color:var(--ink-soft);background:var(--page);border:1px solid var(--rule);border-bottom:none;border-radius:4px 4px 0 0;padding:9px 16px;cursor:pointer;}
.tab.active{background:#fff;color:var(--navy-dk);border-color:var(--rule);position:relative;top:1px;}
.pane{display:none;border:1px solid var(--rule);border-radius:0 4px 4px 4px;padding:var(--s-3);background:#fff;}
.pane.active{display:block;}
.rw-text{font-family:var(--f-serif);font-size:16px;line-height:1.85;color:var(--ink);}
.rw-text p+p{margin-top:14px;}

/* vocabulary + structure upgrades */
.vrow{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--rule);border-radius:4px;margin-bottom:8px;background:#fff;font-size:14px;}
.v-old{font-family:var(--f-serif);color:var(--red);}
.v-old small{font-family:var(--f-sans);color:var(--ink-faint);font-size:11px;}
.v-arrow{color:var(--ink-faint);font-size:13px;}
.v-new{font-family:var(--f-serif);color:var(--green);}
.v-when{grid-column:1/-1;font-size:12px;color:var(--ink-faint);line-height:1.5;}
.scard{border:1px solid var(--rule);border-radius:4px;padding:14px 16px;margin-bottom:10px;background:var(--page);font-size:14px;color:var(--ink-soft);line-height:1.65;}
.scard b{color:var(--navy-dk);}
.scard .tmpl{font-family:var(--f-serif);color:var(--ink);display:block;margin:6px 0;}
.scard .ex{font-family:var(--f-serif);color:var(--green);display:block;}

/* revision brief */
.next{padding-top:var(--s-4);border-top:1px solid var(--rule);}
.steps{margin:var(--s-3) 0 0;padding-left:20px;}
.steps li{margin-bottom:10px;font-size:15px;color:var(--ink-soft);}
.steps li::marker{color:var(--ochre);font-weight:700;}
.forward{margin-top:var(--s-4);padding:16px 20px;border-radius:4px;background:var(--navy-dk);color:#F7F3EB;font-size:15px;line-height:1.6;}
.forward b{color:var(--ochre-lt);}

/* progress tracking */
.prog-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--rule-soft);flex-wrap:wrap;font-size:13px;}
.prog-row:last-of-type{border-bottom:none;}
.prog-label{font-weight:600;color:var(--navy-dk);flex:1;min-width:130px;}
.mini{font-size:12px;font-weight:700;padding:3px 8px;border-radius:4px;background:var(--tint);color:var(--navy);}
.mini.b-good{background:var(--green-bg);color:var(--green);}
.mini.b-warn{background:var(--amber-bg);color:var(--amber);}
.mini.b-low{background:var(--red-bg);color:var(--red);}
.mini.ov{background:var(--navy-dk);color:var(--ochre-lt);}
.prog-note{margin-top:12px;font-size:14px;color:var(--ink-soft);line-height:1.6;}
.prog-note b{color:var(--navy-dk);}

/* disclaimer */
.disclaimer{margin-top:var(--s-3);font-size:12px;color:var(--ink-faint);text-align:center;line-height:1.6;}

/* responsive */
@media(max-width:900px){
  .dash{grid-template-columns:repeat(2,1fr);}
  .cmp-lists{grid-template-columns:1fr;}
  .sheet{padding:var(--s-4);}
}
@media(max-width:640px){
  .sheet{padding:var(--s-3);}
  h1{font-size:26px;}
  .ov-num{font-size:44px;}
  .pat-head{display:none;}
  .pat-row{grid-template-columns:1fr auto;row-gap:6px;}
  .pat-ex{grid-column:1/-1;}
  .pat-crit{text-align:left;}
  .vrow{grid-template-columns:1fr;}
  .v-arrow{display:none;}
  .para{flex-direction:column;gap:8px;}
}
@media(max-width:420px){
  .dash{gap:8px;}
  .sc-band{font-size:32px;}
  .scorecard{padding:12px 8px;}
  .fix-cat{display:none;}
}
</style>
