/* Article 20 Signature Suite v1.0.5 — namespaced, article-local only */
.a20ss-process,
.a20ss-chain,
.a20ss-tool,
.a20ss-downloads,
.a20ss-record,
.a20ss-boundary-note,
.a20ss-rule-reference,
.a20ss-process-companion {
  --a20ss-deep: #081421;
  --a20ss-panel: #0d1b2a;
  --a20ss-raised: #13263a;
  --a20ss-input: #0b1724;
  --a20ss-text: #f4f8fb;
  --a20ss-heading: #ffffff;
  --a20ss-label: #e6f0f7;
  --a20ss-muted: #b8c7d6;
  --a20ss-help: #c1ced9;
  --a20ss-placeholder: #9fb0bf;
  --a20ss-border: #526f8b;
  --a20ss-accent: #2dd4bf;
  --a20ss-link: #67e8f9;
  --a20ss-focus: #facc15;
  --a20ss-warning: #fbbf24;
  --a20ss-warning-bg: #3c2b0a;
  --a20ss-error: #ffb4c0;
  --a20ss-error-bg: #3b1018;
  --a20ss-success: #5eead4;
  --a20ss-success-bg: #0b302b;
  --a20ss-disabled: #8293a5;
  --a20ss-disabled-bg: #1b2937;
  color: var(--a20ss-text);
  color-scheme: dark;
}
.a20ss-tech-id { display:block; margin-top:.22rem; color:var(--a20ss-muted); font:600 .76rem/1.35 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing:.01em; }
.ri2-decision-rule .a20ss-tech-id, .a20ss-process-warning .a20ss-tech-id { display:inline; margin-left:.25rem; }
.a20ss-process { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; padding:0; list-style:none; counter-reset:a20-process; }
.a20ss-process > li { min-width:0; grid-column:span 3; }
.a20ss-process > li:nth-child(n+5) { grid-column:span 4; }
.a20ss-process section { height:100%; padding:1rem; border:1px solid var(--a20ss-border); border-radius:.9rem; background:linear-gradient(145deg,var(--a20ss-raised),var(--a20ss-panel)); box-shadow:0 .5rem 1.3rem rgba(0,0,0,.18); }
.a20ss-process__number { margin:0 0 .4rem; color:var(--a20ss-accent); font-weight:800; text-transform:uppercase; letter-spacing:.05em; font-size:.78rem; }
.a20ss-process h3 { margin:.15rem 0 .5rem; color:var(--a20ss-heading); font-size:1.05rem; line-height:1.3; overflow-wrap:anywhere; }
.a20ss-process p { color:var(--a20ss-muted); line-height:1.55; overflow-wrap:anywhere; }
.a20ss-process-warning { margin:1.25rem 0; padding:1rem 1.1rem; border:1px solid var(--a20ss-warning); border-left-width:.4rem; border-radius:.8rem; background:var(--a20ss-warning-bg); color:var(--a20ss-text); }
.a20ss-process-warning h3 { color:#fff; margin-top:0; }
.a20ss-process-companion { margin:1.25rem 0 2rem; border:1px solid var(--a20ss-border); border-radius:.85rem; background:var(--a20ss-panel); }
.a20ss-process-companion summary, .a20ss-rule-reference summary, .a20ss-manual-rules summary { padding:1rem; color:var(--a20ss-heading); font-weight:800; cursor:pointer; }
.a20ss-chain { margin:0; padding:1rem; border-top:1px solid var(--a20ss-border); background:var(--a20ss-deep); }
.a20ss-chain img { display:block; width:100%; height:auto; margin:0 auto 1rem; }
.a20ss-chain figcaption { color:var(--a20ss-muted); line-height:1.55; }
.a20ss-tool { margin:2.5rem 0; padding:clamp(1rem,2.4vw,1.8rem); border:1px solid var(--a20ss-border); border-top:4px solid var(--a20ss-accent); border-radius:1rem; background:linear-gradient(180deg,var(--a20ss-deep),var(--a20ss-panel)); box-shadow:0 1rem 2rem rgba(0,0,0,.24); }
.a20ss-tool h2, .a20ss-tool h3, .a20ss-tool h4, .a20ss-tool legend { color:var(--a20ss-heading); }
.a20ss-tool__intro { max-width:72ch; color:var(--a20ss-help); }
.a20ss-stage-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin:1.25rem 0; padding:0; list-style:none; }
.a20ss-stage-nav button { width:100%; min-height:3.4rem; display:flex; align-items:center; gap:.55rem; text-align:left; background:var(--a20ss-panel); color:var(--a20ss-muted); border:1px solid var(--a20ss-border); }
.a20ss-stage-nav button span { display:inline-grid; place-items:center; flex:0 0 1.8rem; width:1.8rem; height:1.8rem; border-radius:50%; border:1px solid currentColor; }
.a20ss-stage-nav button[aria-current="step"] { color:#fff; border-color:var(--a20ss-accent); box-shadow:inset 0 0 0 1px var(--a20ss-accent); background:var(--a20ss-raised); }
.a20ss-stage-nav button[data-complete="true"] { color:var(--a20ss-success); border-color:var(--a20ss-success); }
.a20ss-tool fieldset { min-width:0; margin:1.2rem 0; padding:clamp(.85rem,2vw,1.2rem); border:1px solid var(--a20ss-border); border-radius:.85rem; background:var(--a20ss-panel); }
.a20ss-tool legend { padding:0 .5rem; font-weight:800; font-size:1.18rem; }
.a20ss-stage-help, .a20ss-stage-summary, .a20ss-help, .a20ss-test p { color:var(--a20ss-help); line-height:1.5; }
.a20ss-stage-summary { padding:.7rem .8rem; border-left:3px solid var(--a20ss-accent); background:var(--a20ss-deep); border-radius:.35rem; }
.a20ss-tool__grid, .a20ss-tool__tests, .a20ss-tool__checks, .a20ss-result__grid, .a20ss-downloads { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.a20ss-tool__field, .a20ss-test { min-width:0; display:flex; flex-direction:column; gap:.35rem; }
.a20ss-test { padding:.9rem; border:1px solid var(--a20ss-border); border-radius:.7rem; background:var(--a20ss-raised); }
.a20ss-tool label, .a20ss-tool .a20ss-label { color:var(--a20ss-label); font-weight:750; }
.a20ss-tool input[type="text"], .a20ss-tool input[type="date"], .a20ss-tool textarea, .a20ss-tool select { width:100%; min-height:2.85rem; padding:.65rem .75rem; border:1px solid var(--a20ss-border); border-radius:.5rem; background:var(--a20ss-input); color:#f7fbff; font:inherit; }
.a20ss-tool textarea { min-height:7rem; resize:vertical; }
.a20ss-tool ::placeholder { color:var(--a20ss-placeholder); opacity:1; }
.a20ss-tool input:hover, .a20ss-tool select:hover, .a20ss-tool textarea:hover { border-color:var(--a20ss-accent); }
.a20ss-tool input[aria-invalid="true"], .a20ss-tool select[aria-invalid="true"], .a20ss-tool textarea[aria-invalid="true"] { border-color:var(--a20ss-error); box-shadow:0 0 0 1px var(--a20ss-error); }
.a20ss-tool input:focus-visible, .a20ss-tool textarea:focus-visible, .a20ss-tool select:focus-visible, .a20ss-tool button:focus-visible, .a20ss-tool a:focus-visible, .a20ss-process-companion summary:focus-visible, .a20ss-rule-reference summary:focus-visible { outline:3px solid var(--a20ss-focus); outline-offset:3px; }
.a20ss-tool__checks { gap:.75rem; }
.a20ss-check { display:flex; gap:.7rem; align-items:flex-start; padding:.8rem; border:1px solid var(--a20ss-border); border-radius:.65rem; background:var(--a20ss-raised); font-weight:400!important; }
.a20ss-check input { width:1.25rem; height:1.25rem; margin-top:.15rem; flex:0 0 auto; accent-color:var(--a20ss-accent); }
.a20ss-check span, .a20ss-check small { display:block; }
.a20ss-check small { margin-top:.25rem; color:var(--a20ss-muted); line-height:1.4; }
.a20ss-check--boundary { margin-top:1rem; }
.a20ss-tool__actions, .a20ss-tool__stage-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; }
.a20ss-tool__stage-actions { display:none; }
.a20ss-tool[data-progressive="true"] .a20ss-tool__stage-actions { display:flex; }
.a20ss-tool button { min-height:2.85rem; min-width:2.85rem; padding:.65rem 1rem; border:2px solid var(--a20ss-accent); border-radius:.55rem; background:var(--a20ss-accent); color:#071820; font:inherit; font-weight:800; cursor:pointer; }
.a20ss-tool button[data-stage-action="back"], .a20ss-tool button[type="reset"], .a20ss-copy { background:transparent; color:var(--a20ss-link); border-color:var(--a20ss-border); }
.a20ss-tool button:disabled, .a20ss-copy:disabled { color:var(--a20ss-disabled); background:var(--a20ss-disabled-bg); border-color:var(--a20ss-border); cursor:not-allowed; opacity:1; }
.a20ss-tool__error { margin:1rem 0; padding:1rem; border:1px solid var(--a20ss-error); border-left-width:.4rem; border-radius:.7rem; background:var(--a20ss-error-bg); color:var(--a20ss-text); }
.a20ss-tool__error a { color:var(--a20ss-link); }
.a20ss-result { margin-top:1.5rem; padding:1.1rem; border:1px solid var(--a20ss-border); border-radius:.85rem; background:var(--a20ss-raised); }
.a20ss-result[hidden], .a20ss-tool__error[hidden], .a20ss-tool__stage[hidden] { display:none!important; }
.a20ss-result__headline { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.a20ss-result__headline h3 { margin:0 auto 0 0; }
.a20ss-badge { display:inline-flex; align-items:center; min-height:1.9rem; padding:.25rem .6rem; border:1px solid currentColor; border-radius:999px; font-weight:800; font-size:.88rem; }
.a20ss-badge--ready, .a20ss-badge--core { color:var(--a20ss-success); background:var(--a20ss-success-bg); }
.a20ss-badge--review, .a20ss-badge--context { color:var(--a20ss-warning); background:var(--a20ss-warning-bg); }
.a20ss-badge--refused, .a20ss-badge--exclude { color:var(--a20ss-error); background:var(--a20ss-error-bg); }
.a20ss-result__panel { padding:.9rem; border:1px solid var(--a20ss-border); border-radius:.65rem; background:var(--a20ss-deep); min-width:0; }
.a20ss-result__panel h4 { margin-top:0; }
.a20ss-result__panel li, .a20ss-result p { overflow-wrap:anywhere; }
.a20ss-result__technical { margin-top:1rem; border-top:1px solid var(--a20ss-border); padding-top:.75rem; }
.a20ss-result__technical summary { color:var(--a20ss-link); cursor:pointer; font-weight:700; }
.a20ss-record { min-height:12rem!important; background:var(--a20ss-input)!important; color:var(--a20ss-help)!important; font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important; font-size:.88rem!important; }
.a20ss-record-field { margin-top:1rem; }
.a20ss-boundary-note, .a20ss-manual-rules, .a20ss-rule-reference, .a20ss-download { border:1px solid var(--a20ss-border); border-radius:.75rem; background:var(--a20ss-panel); color:var(--a20ss-text); }
.a20ss-boundary-note { padding:1rem; }
.a20ss-manual-rules ol { padding:0 2rem 1rem; }
.a20ss-manual-rules li { margin:.65rem 0; color:var(--a20ss-help); }
.a20ss-downloads { margin:1rem 0; }
.a20ss-download { min-width:0; padding:1rem; }
.a20ss-download h3 { color:var(--a20ss-heading); }
.a20ss-download p { color:var(--a20ss-muted); }
.a20ss-download a { color:var(--a20ss-link); font-weight:800; overflow-wrap:anywhere; }
.a20ss-rule-reference { margin:1.5rem 0; }
.a20ss-rule-reference__intro { margin:0; padding:0 1rem 1rem; color:var(--a20ss-muted); }
.a20ss-rule-reference__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:0 1rem 1rem; }
.a20ss-rule-reference__grid section { min-width:0; padding:.8rem; border:1px solid var(--a20ss-border); border-radius:.6rem; background:var(--a20ss-deep); }
.a20ss-rule-reference__grid h4 { color:var(--a20ss-heading); }
.a20ss-rule-reference__grid code { color:var(--a20ss-accent); }
.a20ss-plain-table .a20ss-tech-id { white-space:nowrap; }
@media (max-width:1279px) and (min-width:1024px) { .a20ss-process > li { grid-column:span 4; } .a20ss-process > li:nth-child(n+4) { grid-column:span 3; } }
@media (max-width:1023px) and (min-width:768px) { .a20ss-process > li { grid-column:span 6!important; } .a20ss-process > li:last-child { grid-column:1 / -1!important; } .a20ss-stage-nav { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) { .a20ss-process { grid-template-columns:1fr; } .a20ss-process > li { grid-column:1!important; } .a20ss-tool__grid, .a20ss-tool__tests, .a20ss-tool__checks, .a20ss-result__grid, .a20ss-downloads, .a20ss-rule-reference__grid { grid-template-columns:1fr; } .a20ss-stage-nav { grid-template-columns:1fr; } .a20ss-stage-nav button { min-height:3rem; } .a20ss-tool { padding:1rem; } }
@media (max-width:420px) { .a20ss-tool__actions button, .a20ss-tool__stage-actions button, .a20ss-copy { width:100%; } }
@media (prefers-reduced-motion:reduce) { .a20ss-tool *, .a20ss-process * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media (forced-colors:active) { .a20ss-tool, .a20ss-tool fieldset, .a20ss-test, .a20ss-check, .a20ss-result, .a20ss-process section, .a20ss-download, .a20ss-rule-reference { border:1px solid CanvasText; background:Canvas; color:CanvasText; } .a20ss-tool button, .a20ss-stage-nav button { border:2px solid ButtonText; } .a20ss-tool input, .a20ss-tool select, .a20ss-tool textarea { border:1px solid FieldText; background:Field; color:FieldText; } }
.a20ss-process-download { margin:1.25rem 0 2rem; padding:1rem 1.1rem; border:1px solid var(--a20ss-border); border-radius:.85rem; background:var(--a20ss-panel); color:var(--a20ss-muted); }
.a20ss-process-download a { color:var(--a20ss-link); font-weight:800; }
.a20ss-technical-record { margin-top:1rem; padding:.9rem 0 0; }
.a20ss-technical-record textarea { margin-top:.75rem; min-height:12rem; }

.a20ss-context-check { margin:2rem 0; padding:1.2rem; border:1px solid var(--a20ss-border); border-radius:1rem; background:linear-gradient(145deg,var(--a20ss-raised),var(--a20ss-panel)); color:var(--a20ss-text); }
.a20ss-context-check > h2 { margin-top:0; color:var(--a20ss-heading); }
.a20ss-context-check > p { color:var(--a20ss-muted); max-width:72ch; }
.a20ss-context-check__grid { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.a20ss-context-check__grid article { min-width:0; grid-column:span 2; padding:1rem; border:1px solid var(--a20ss-border); border-radius:.8rem; background:var(--a20ss-panel); }
.a20ss-context-check__grid h3 { margin:.1rem 0 .55rem; color:var(--a20ss-heading); font-size:1rem; line-height:1.35; }
.a20ss-context-check__grid p { margin:0; color:var(--a20ss-muted); line-height:1.55; overflow-wrap:anywhere; }
@media (max-width:1100px) { .a20ss-context-check__grid article { grid-column:span 5; } .a20ss-context-check__grid article:last-child { grid-column:1 / -1; } }
@media (max-width:700px) { .a20ss-context-check__grid { grid-template-columns:1fr; } .a20ss-context-check__grid article { grid-column:1!important; } }
/* A20 STRATA process contrast */
.a20ss-process-contrast{margin:1.75rem 0 2rem;padding:clamp(1rem,2.5vw,1.5rem);border:1px solid var(--a20ss-border);border-radius:1.1rem;background:linear-gradient(145deg,var(--a20ss-raised),var(--a20ss-panel));color:var(--a20ss-text)}
.a20ss-process-contrast figcaption{max-width:72ch;margin:0 0 1.15rem;color:var(--a20ss-muted);line-height:1.65}
.a20ss-process-contrast figcaption strong{color:var(--a20ss-heading)}
.a20ss-process-contrast__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.a20ss-process-contrast__lane{min-width:0;padding:1rem;border:1px solid var(--a20ss-border);border-radius:1rem;background:var(--a20ss-deep);box-shadow:0 .65rem 1.4rem rgba(0,0,0,.2)}
.a20ss-process-contrast__lane--risk{border-top:.3rem solid var(--a20ss-warning)}
.a20ss-process-contrast__lane--method{border-top:.3rem solid var(--a20ss-accent)}
.a20ss-process-contrast__label{margin:0 0 .9rem;color:var(--a20ss-heading);font-size:1.05rem;font-weight:850}
.a20ss-process-contrast__lane ol{display:flex;flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none}
.a20ss-process-contrast__lane li{position:relative;padding:.8rem .9rem;border:1px solid var(--a20ss-border);border-radius:.78rem;background:var(--a20ss-panel);color:var(--a20ss-text);text-align:left;overflow-wrap:anywhere}
.a20ss-process-contrast__lane--risk li{background:var(--a20ss-warning-bg)}
.a20ss-process-contrast__lane li strong,.a20ss-process-contrast__lane li span{display:block}
.a20ss-process-contrast__lane li span{margin-top:.3rem;color:var(--a20ss-muted);font-size:.93rem;line-height:1.5}
.a20ss-process-contrast__lane li:not(:last-child)::after{content:'\2193';position:absolute;left:50%;bottom:-1.08rem;transform:translateX(-50%);color:var(--a20ss-accent);font-size:1rem;font-weight:900;z-index:2}
.a20ss-process-contrast__lane--risk li:not(:last-child)::after{color:var(--a20ss-warning)}
.a20ss-process-contrast__outcome{margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--a20ss-border);color:var(--a20ss-muted);line-height:1.55}
.a20ss-process-contrast__outcome strong{color:var(--a20ss-heading)}
.a20ss-process-contrast__note{margin:1rem 0 0;padding:1rem 1.1rem;border:1px solid var(--a20ss-warning);border-left-width:.4rem;border-radius:.8rem;background:var(--a20ss-warning-bg);color:var(--a20ss-text);line-height:1.55}
@media(max-width:820px){.a20ss-process-contrast__grid{grid-template-columns:1fr}.a20ss-process-contrast__lane{box-shadow:none}}
@media(forced-colors:active){.a20ss-process-contrast,.a20ss-process-contrast__lane,.a20ss-process-contrast__lane li,.a20ss-process-contrast__note{border:1px solid CanvasText;background:Canvas;color:CanvasText}.a20ss-process-contrast__lane li:not(:last-child)::after{color:CanvasText}}
@media print{.a20ss-process-contrast{break-inside:avoid;box-shadow:none}.a20ss-process-contrast__lane,.a20ss-process-contrast__lane li{break-inside:avoid}}

