/* Prototype 06 rev.2 production-scoped stylesheet */
/* ============ House tokens (identical to Prototypes 01–05) ============ */
.requirements-v2{
  --paper:#F6F5F1; --ink:#162321; --text:#263230; --muted:#56625F; --rule:#CCD3CE; --rule-soft:#E1E5E0;
  --teal:#0F4C47; --orange:#E07A3F; --orange-ink:#A24A18;
  --band:#ECEEE8; --form:#FFFFFF;
  --serif:"Source Serif 4","Source Serif Pro","Charter","Bitstream Charter","Cambria",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans","Segoe UI","Helvetica Neue",Arial,system-ui,sans-serif;
  --main:680px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) .requirements-v2{
    --paper:#141D1B; --ink:#EEF1EC; --text:#D6DCD7; --muted:#9BA7A3; --rule:#3A4744; --rule-soft:#27322F;
    --teal:#86C7BD; --orange:#F0935B; --orange-ink:#F2A574; --band:#1A2422; --form:#1B2624;
  }
}
html[data-theme="dark"] .requirements-v2{
  --paper:#141D1B; --ink:#EEF1EC; --text:#D6DCD7; --muted:#9BA7A3; --rule:#3A4744; --rule-soft:#27322F;
  --teal:#86C7BD; --orange:#F0935B; --orange-ink:#F2A574; --band:#1A2422; --form:#1B2624;
}
.requirements-v2 *,.requirements-v2 *::before,.requirements-v2 *::after{box-sizing:inherit}
html .requirements-v2{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 24px);-webkit-text-size-adjust:100%}
.requirements-v2{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.62;font-optical-sizing:auto;font-kerning:normal;text-rendering:optimizeLegibility}
.requirements-v2 a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--teal) 45%,transparent)}
.requirements-v2 a:hover{text-decoration-color:currentColor}
.requirements-v2 .sources a,.requirements-v2 .colophon a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.requirements-v2 :focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}
.requirements-v2 .skip{position:absolute;left:-9999px}
.requirements-v2 .skip:focus{position:static;display:inline-block;margin:10px 20px;font-family:var(--sans);font-size:14px}

/* ============ Header / footer stand-ins (unchanged) ============ */
.requirements-v2 .site-head{border-bottom:1px solid var(--rule-soft)}
.requirements-v2 .site-head__in{max-width:1232px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;font-family:var(--sans)}
.requirements-v2 .site-head__mark{font-weight:600;color:var(--teal);text-decoration:none;font-size:17px;letter-spacing:-.005em}
.requirements-v2 .site-head__mark span{font-weight:400}
.requirements-v2 .site-head__menu{font-size:14px;color:var(--ink);text-decoration:none}
.requirements-v2 .site-foot{border-top:1px solid var(--rule-soft);font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted)}
.requirements-v2 .site-foot__in{max-width:1232px;margin:0 auto;padding:36px 20px 48px;display:grid;gap:28px;grid-template-columns:1fr}
.requirements-v2 .site-foot h2{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);margin:0 0 8px}
.requirements-v2 .site-foot ul{list-style:none;margin:0;padding:0}
.requirements-v2 .site-foot li{margin:0 0 5px}
.requirements-v2 .site-foot a{color:var(--muted)}
.requirements-v2 .site-foot__brand strong{display:block;color:var(--teal);font-weight:600;font-size:16px;margin-bottom:4px}
.requirements-v2 .site-foot__legal{grid-column:1/-1;border-top:1px solid var(--rule-soft);padding-top:16px;font-size:13px}
@media (min-width:720px){.requirements-v2 .site-foot__in{grid-template-columns:2fr 1fr 1fr 1fr}}

/* ============ Grid ============ */
.requirements-v2 .feature{display:grid;grid-template-columns:[full-start] minmax(20px,1fr) [main-start] minmax(0,var(--main)) [main-end] minmax(20px,1fr) [full-end]}
.requirements-v2 .feature > *{grid-column:main}

/* ============ Opening ============ */
.requirements-v2 .opening{padding:40px 0 4px}
.requirements-v2 .rubric{font-style:italic;font-size:17px;color:var(--orange-ink);margin:0 0 12px}
.requirements-v2 h1{font-weight:700;font-variation-settings:"opsz" 60;color:var(--ink);font-size:clamp(40px,9.6vw,78px);line-height:1.02;letter-spacing:-.022em;margin:0 0 20px;text-wrap:balance}
.requirements-v2 .standfirst{font-size:clamp(20px,4.6vw,24px);line-height:1.4;color:var(--ink);margin:0 0 20px;max-width:40ch}
.requirements-v2 .byline{font-family:var(--sans);font-size:14px;line-height:1.55;color:var(--muted);margin:0;padding-top:12px;border-top:1px solid var(--rule);max-width:62ch}
.requirements-v2 .byline strong{color:var(--ink);font-weight:600}
@media (min-width:1100px){
  .requirements-v2 .opening{grid-column:full;width:1060px;justify-self:center;padding-top:72px}
  .requirements-v2 .opening .lead{display:grid;grid-template-columns:1fr 330px;column-gap:56px;align-items:start}
  .requirements-v2 .opening .byline{border-top:1px solid var(--rule);padding-top:10px}
}

/* ============ Body ============ */
.requirements-v2 .body{padding-top:26px}
.requirements-v2 .body p{margin:0 0 1.05em}
.requirements-v2 h2{font-weight:700;color:var(--ink);font-size:clamp(25px,5.6vw,33px);line-height:1.14;letter-spacing:-.012em;margin:2em 0 .5em;font-variation-settings:"opsz" 40;text-wrap:balance}
.requirements-v2 sup.ref{font-family:var(--sans);font-size:.62em;line-height:0;font-weight:500;margin-left:.08em;vertical-align:.62em}
.requirements-v2 sup.ref a{text-decoration:none;color:var(--teal);padding:0 .08em}

/* ============ The builder ============ */
.requirements-v2 .tool{grid-column:full;width:min(100% - 24px,1180px);justify-self:center;margin:1.2em 0 1em}
.requirements-v2 .tool__bar{display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--sans);font-size:15px;margin:0 0 14px}
.requirements-v2 .tool__bar button{font:inherit;color:var(--teal);background:none;border:0;padding:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;cursor:pointer}
.requirements-v2 .copy-status{font-family:var(--sans);font-size:13px;color:var(--muted)}
.requirements-v2 .tool__grid{display:grid;gap:30px}
@media (min-width:1000px){.requirements-v2 .tool__grid{grid-template-columns:1fr 1fr;align-items:start}}

/* the form: a working surface */
.requirements-v2 .panel{background:var(--band);padding:4px 18px 20px;font-family:var(--sans)}
.requirements-v2 .fg{margin:22px 0 6px}
.requirements-v2 .fg:first-child{margin-top:12px}
.requirements-v2 .fg__h{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink);margin:0;padding-bottom:5px;border-bottom:1.5px solid var(--ink)}
.requirements-v2 .fg__n{font-size:13px;line-height:1.5;color:var(--muted);margin:7px 0 0}
.requirements-v2 .fr{padding:10px 0;border-bottom:1px solid var(--rule-soft);display:grid;gap:5px}
.requirements-v2 .fr label,.requirements-v2 .fr legend{font-size:14.5px;color:var(--ink);line-height:1.35;padding:0}
.requirements-v2 .fhint{display:block;font-size:12.5px;color:var(--muted);line-height:1.45;margin-top:2px}
.requirements-v2 .fin{display:flex;align-items:center;gap:7px}
.requirements-v2 .fr input[type=text],.requirements-v2 .fr input[type=number],.requirements-v2 .fr textarea{flex:1 1 auto;min-width:0;font:400 15px var(--sans);padding:7px 9px;border:1px solid var(--rule);background:var(--form);color:var(--ink);border-radius:2px}
.requirements-v2 .fr input[type=number]{flex:0 0 130px;text-align:right;font-variant-numeric:tabular-nums}
.requirements-v2 .fr textarea{width:100%;min-height:76px;resize:vertical;line-height:1.45}
.requirements-v2 .fr input::placeholder{color:color-mix(in srgb,var(--muted) 72%,transparent)}
.requirements-v2 .fr input:focus,.requirements-v2 .fr textarea:focus{outline:2px solid var(--orange);outline-offset:1px}
.requirements-v2 .funit{font-size:12.5px;color:var(--muted)}
.requirements-v2 .fr--opt{border:0;border-bottom:1px solid var(--rule-soft);margin:0;padding:10px 0}
.requirements-v2 .opt{display:flex;align-items:flex-start;gap:8px;font-size:14.5px;color:var(--text);margin:6px 0 0;cursor:pointer}
.requirements-v2 .opt input{margin:.25em 0 0;accent-color:var(--teal);flex:0 0 auto}
.requirements-v2 .fr.bad input{border-color:var(--orange-ink);background:color-mix(in srgb,var(--orange) 10%,var(--form))}

/* the brief: a document */
.requirements-v2 .out{position:sticky;top:18px}
.requirements-v2 .doc{background:var(--form);border:1px solid var(--rule);padding:22px 24px 24px;box-shadow:0 1px 2px rgba(22,35,33,.05),0 12px 30px rgba(22,35,33,.06)}
.requirements-v2 .doc__k{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 3px}
.requirements-v2 .doc__h{font-weight:700;font-size:26px;line-height:1.1;color:var(--ink);margin:0 0 4px;letter-spacing:-.01em}
.requirements-v2 .doc__d{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin:0 0 16px;padding-bottom:12px;border-bottom:1.5px solid var(--ink)}
.requirements-v2 .bl{padding:11px 0;border-bottom:1px solid var(--rule-soft)}
.requirements-v2 .bl__h{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--teal);margin-bottom:2px}
.requirements-v2 .bl__t{margin:0;font-size:17px;line-height:1.5;color:var(--ink)}
.requirements-v2 .brief__empty{font-family:var(--sans);font-size:14px;color:var(--muted);margin:10px 0}

.requirements-v2 .ask{margin-top:26px}
.requirements-v2 .ask__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 4px;padding-bottom:6px;border-bottom:1.5px solid var(--ink)}
.requirements-v2 .ask__h h3{font-weight:700;font-size:21px;color:var(--ink);margin:0}
.requirements-v2 .ask__n{font-family:var(--sans);font-size:13px;color:var(--orange-ink);font-weight:600;white-space:nowrap}
.requirements-v2 .ask ol{list-style:none;margin:0;padding:0}
.requirements-v2 .q{padding:13px 0;border-bottom:1px solid var(--rule-soft)}
.requirements-v2 .q__t{font-weight:600;font-size:17px;line-height:1.35;color:var(--ink);margin:0 0 3px}
.requirements-v2 .q__a{font-size:16px;line-height:1.5;margin:0 0 3px}
.requirements-v2 .q__w{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--muted);margin:0}
.requirements-v2 .q__r{font-weight:500;white-space:nowrap}
.requirements-v2 .q__none{font-family:var(--sans);font-size:14.5px;color:var(--teal);margin:12px 0}
.requirements-v2 .evidence-list{margin-top:26px;padding-top:12px;border-top:1.5px solid var(--ink)}
.requirements-v2 .evidence-list h3{font-weight:700;font-size:21px;color:var(--ink);margin:0 0 8px}
.requirements-v2 .evidence-list ul{margin:0;padding-left:1.2em}
.requirements-v2 .evidence-list li{margin:.35em 0;font-size:15px;line-height:1.45}

.requirements-v2 .noscript{font-family:var(--sans);font-size:14.5px;line-height:1.55;background:color-mix(in srgb,var(--orange) 12%,transparent);border-left:3px solid var(--orange);padding:12px 14px;margin:0 0 16px}
.requirements-v2 .noscript p{margin:0 0 .5em}
.requirements-v2 .noscript p:last-child{margin:0}

/* sticky count on small screens */
.requirements-v2 .peek{display:none}
@media (max-width:999px){
  .requirements-v2 .out{position:static}
  .requirements-v2 .peek{display:flex;justify-content:space-between;align-items:baseline;gap:12px;position:sticky;bottom:0;z-index:2;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));margin-top:-1px}
  .requirements-v2 .peek b{font-weight:600}
  .requirements-v2 .peek a{color:var(--paper);font-size:13px}
}

/* ============ Sources ============ */
.requirements-v2 .sources{margin-top:56px;padding-top:18px;border-top:1.5px solid var(--ink)}
.requirements-v2 .sources h2{font-size:22px;margin:0 0 14px}
.requirements-v2 .notes{list-style:none;counter-reset:n;margin:0;padding:0;font-family:var(--sans);font-size:14.5px;line-height:1.5}
.requirements-v2 .notes li{counter-increment:n;position:relative;padding:0 0 12px 34px}
.requirements-v2 .notes li::before{content:counter(n);position:absolute;left:0;top:0;width:24px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--teal)}
.requirements-v2 .notes li:target{background:color-mix(in srgb,var(--orange) 12%,transparent)}
.requirements-v2 .notes .kind{color:var(--muted)}
.requirements-v2 .colophon{font-family:var(--sans);font-size:14px;color:var(--muted);margin:20px 0 70px}
.requirements-v2 .next{font-size:19px;margin:1.8em 0 0}
.requirements-v2 .next a{font-weight:600}

@media (min-width:720px){.requirements-v2{font-size:19px}}

/* ============ Print ============ */
.requirements-v2 .printsheet{display:none}
@media print{
  .requirements-v2 .site-head,.requirements-v2 .site-foot,.requirements-v2 .tool__bar,.requirements-v2 .peek,.requirements-v2 .noscript{display:none!important}
  body.print-brief .requirements-v2 .feature > *:not(.tool){display:none}
  body.print-brief .requirements-v2 .tool__grid{display:block}
  body.print-brief .requirements-v2 .panel{display:none}
  body.print-brief .requirements-v2 .doc{border:0;box-shadow:none;padding:0}
  body.print-brief .requirements-v2 .out{position:static}
  body.print-blank .requirements-v2 .feature > *:not(.printsheet){display:none}
  body.print-blank .requirements-v2 .printsheet{display:block;grid-column:full}
  .requirements-v2 .printsheet h2{font-size:19px;margin:0 0 2px}
  .requirements-v2 .printsheet p{font-family:var(--sans);font-size:10.5px;margin:0 0 8px;color:#333}
  .requirements-v2 .printsheet table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:10px}
  .requirements-v2 .printsheet td{border-bottom:1px solid #bbb;padding:5.5px 4px;vertical-align:bottom;line-height:1.2}
  .requirements-v2 .printsheet td.pn{width:46%}
  .requirements-v2 .printsheet td.pb{border-bottom:1px solid #333}
  .requirements-v2 .printsheet td.po{color:#333;font-size:9.5px}
  .requirements-v2 .printsheet .pc{display:inline-block;margin:0 14px 1px 0;white-space:nowrap}
  .requirements-v2 .printsheet tr.pw td{height:22px}
  .requirements-v2 .printsheet tr.pg td{border-bottom:1.4px solid #000;font-weight:700;font-family:var(--serif);font-size:11px;padding-top:7px}
  @page{size:A4;margin:11mm}
  .requirements-v2{font-size:11px}
}
