/*
 * The Deployment Masterclass — styles.css (SPEC §11, §11a; Dream Machine CD, Modernist DS not used).
 * Values are the reference dummy's inline styles lifted into classes. Terminal aesthetic: 2–6 px radii,
 * dashed --rule dividers, teal/nachtblau console chrome, ochre for pending/accent, red only for errors.
 * Fonts are self-hosted WOFF2 (§11) — no font service is ever requested.
 */

:root{--nachtblau:#254a4b;--teal:#358691;--teal-light:#6ab6c0;--ochre:#ae6434;--ochre-light:#e1885d;--sepia-900:#504335;--sepia-600:#7e7162;--sepia-400:#aea18a;--rule:#d5d2c3;--warm:#f2caaa;--ok:#2e7d4f;--ok-light:#8fd0a0;--err:#a23838;--paper:#fdfdfc;--white:#fff;}

/* ---- fonts (§11: 400/600/700 mono, 400/600/700/900 sans; 900 only for the wordmark) ---- */
@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/SourceCodePro-Regular.woff2) format('woff2');}
@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/SourceCodePro-Semibold.woff2) format('woff2');}
@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/SourceCodePro-Bold.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/SourceSans3-Regular.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/SourceSans3-Semibold.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/SourceSans3-Bold.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:900;font-display:swap;src:url(assets/fonts/SourceSans3-Black.woff2) format('woff2');}

/* ---- base ---- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--white);color:var(--sepia-900);font-family:'Source Sans 3',sans-serif;line-height:1.6;}
body.modal-open{overflow:hidden;}
a{color:var(--teal);}
a:hover{color:var(--ochre);}
input,textarea,button,select{font-family:inherit;}
button{cursor:pointer;}
button:disabled{cursor:not-allowed;opacity:.45;}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
::selection{background:rgba(53,134,145,.2);}
[hidden]{display:none !important;}
.mono{font-family:'Source Code Pro',monospace;}
.noscript{padding:24px;font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--err);}
@keyframes blink-opacity{50%{opacity:0}}

/* ---- header (§6 chrome) ---- */
.hdr{background:var(--nachtblau);color:var(--white);display:flex;align-items:stretch;justify-content:space-between;flex-wrap:wrap;min-height:50px;}
.hdr-brand{display:flex;align-items:center;gap:2px;padding:10px 24px;text-decoration:none;font-size:1.05rem;letter-spacing:-.02em;color:var(--white);}
.hdr-brand:hover{color:var(--white);}
.hdr-brand img{height:30px;width:auto;display:block;margin-right:12px;}
.wm-a{font-weight:900;color:var(--ochre-light);}
.wm-b{font-weight:900;color:var(--teal-light);}
.wm-c{font-weight:400;color:var(--teal-light);text-transform:uppercase;letter-spacing:.05em;font-size:.85em;white-space:pre;}
.hdr-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;padding:10px 20px 10px 24px;margin-left:auto;}
.hdr-strip{display:flex;align-items:center;flex-wrap:wrap;column-gap:18px;row-gap:6px;font-family:'Source Code Pro',monospace;font-size:.72rem;letter-spacing:.08em;color:var(--rule);text-transform:uppercase;}
.hdr-strip--login{padding:10px 24px;}
.hdr-strip>span,.hdr-strip>button{white-space:nowrap;}
.hdr-strip b{font-weight:400;}
.hdr-user b{color:var(--warm);}
.hdr-sync{color:var(--warm);font-weight:700;}
.hdr-server{color:var(--ochre-light);font-weight:700;} /* sprint 10 (§13e.2): SERVER: MAINTENANCE next to the SYNC field */
.dot-ok{color:var(--ok-light);}
.dot-wait{color:var(--ochre-light);animation:blink-opacity 1.4s infinite;}
.role-root{color:var(--ok-light);}
.role-guest{color:var(--ochre-light);}
.hdr-storage{background:transparent;border:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:underline dotted;text-underline-offset:3px;}
.hdr-storage:hover{color:var(--warm);}
.hdr-storage-warn{color:var(--ochre-light);font-weight:700;white-space:normal !important;}
.btn-logout{border:1px solid rgba(225,136,93,.7);background:transparent;color:var(--ochre-light);font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:8px 16px;border-radius:2px;white-space:nowrap;margin-left:auto;}
.btn-logout:hover{background:var(--ochre);color:var(--white);border-color:var(--ochre);}

/* ---- flash line (§6: one line, 4 s, newest replaces) ---- */
.flash{background:rgba(174,100,52,.06);border-bottom:1px solid rgba(174,100,52,.3);color:var(--ochre);font-family:'Source Code Pro',monospace;font-size:.78rem;font-weight:600;padding:9px 24px;letter-spacing:.04em;overflow-wrap:anywhere;}

/* ---- views ---- */
.view{flex:1;display:flex;flex-direction:column;}
.login-main{width:90%;max-width:760px;margin:0 auto;padding:56px 0 60px;text-align:center;}
.dash-main{width:90%;max-width:1000px;margin:0 auto;padding:44px 0 70px;text-align:left;}
.prompt{font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--ochre);margin-bottom:8px;text-align:left;overflow-wrap:anywhere;}
.login-h1{font-family:'Source Code Pro',monospace;font-size:clamp(.95rem,3.2vw,1.6rem);color:var(--nachtblau);letter-spacing:-.02em;margin:0 0 36px;text-align:left;overflow-wrap:anywhere;font-weight:700;}
.view-h2{font-family:'Source Code Pro',monospace;font-size:clamp(1.3rem,3vw,2rem);color:var(--nachtblau);letter-spacing:-.02em;margin:0 0 12px;overflow-wrap:anywhere;}
.crumb{font-family:'Source Code Pro',monospace;font-size:.72rem;letter-spacing:.08em;color:var(--sepia-600);text-transform:uppercase;margin-bottom:12px;}
.step-line{background:var(--teal);color:var(--white);font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:700;padding:10px 16px;border-radius:2px 2px 0 0;}

/* ---- login card (§6.1) ---- */
.login-card{border:1px solid var(--rule);background:var(--paper);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.05);overflow:hidden;text-align:left;margin:0;}
.login-card-hd{background:var(--nachtblau);padding:10px 16px;font-family:'Source Code Pro',monospace;font-size:.8rem;color:var(--white);display:flex;justify-content:space-between;}
.login-card-bd{padding:32px;}
.login-label{display:block;font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--teal);margin-bottom:10px;}
.login-row{display:flex;gap:12px;flex-wrap:wrap;}
.login-key{flex:1;min-width:220px;font-family:'Source Code Pro',monospace;font-size:1rem;padding:14px 16px;border:1px solid var(--rule);border-radius:2px;color:var(--nachtblau);background:var(--white);text-transform:uppercase;}
.login-key::placeholder{color:var(--sepia-400);text-transform:none;}
.btn-auth{background:var(--nachtblau);color:var(--white);font-family:'Source Code Pro',monospace;font-weight:700;font-size:.85rem;letter-spacing:1px;text-transform:uppercase;padding:14px 28px;border:none;border-radius:4px;}
.btn-auth:hover{background:var(--teal);}
.login-error{margin-top:12px;font-family:'Source Code Pro',monospace;font-size:.78rem;font-weight:700;color:var(--err);overflow-wrap:anywhere;}
.login-hint{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-top:14px;border:1px dashed var(--rule);border-radius:2px;padding:10px 14px;font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--sepia-600);}
.login-links{display:flex;gap:16px;flex-wrap:wrap;}
.login-links a{font-weight:700;text-decoration:none;}
.login-links a:hover{text-decoration:underline;text-underline-offset:3px;}
.link-guest{color:var(--teal);}
.link-procure{color:var(--ochre);}
.login-note{margin:18px 0 0;font-size:.9rem;color:var(--sepia-600);line-height:1.6;}
.login-note .mono{color:var(--teal);}
.login-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:20px;text-align:left;}
.info-card{border:1px solid var(--rule);border-radius:6px;background:var(--paper);padding:16px 18px;}
.info-card-hd{font-family:'Source Code Pro',monospace;font-weight:700;color:var(--nachtblau);font-size:1.05rem;}
.info-card-hd .accent{color:var(--ochre);}
.info-card-bd{font-size:.85rem;color:var(--sepia-600);margin-top:4px;line-height:1.5;}
.info-card-bd .mono{font-size:.8em;color:var(--sepia-600);}
.login-closing{margin-top:20px;font-family:'Source Code Pro',monospace;font-size:.72rem;letter-spacing:.08em;color:var(--sepia-600);text-transform:uppercase;}

/* ---- modals (§5 conflict, §10 shred, logout, storage info) ---- */
.overlay{position:fixed;inset:0;background:rgba(13,19,25,.85);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;}
.modal{background:var(--paper);border:1px solid var(--teal);border-radius:2px;width:min(92vw,480px);max-height:92vh;overflow:auto;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.modal--danger{border-color:var(--err);}
.modal-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--nachtblau);padding:10px 14px;}
.modal--danger .modal-hd{background:var(--err);}
.modal--warn .modal-hd{background:var(--ochre);}
.modal-title{font-family:'Source Code Pro',monospace;font-size:.7rem;font-weight:700;letter-spacing:.1em;color:#e6f6f8;overflow-wrap:anywhere;}
.modal--danger .modal-title,.modal--warn .modal-title{color:var(--white);}
.modal-esc{font-family:'Source Code Pro',monospace;font-size:.7rem;font-weight:700;color:#e6f6f8;background:transparent;border:1px solid rgba(230,246,248,.45);border-radius:2px;padding:4px 10px;white-space:nowrap;}
.modal-esc:hover{color:var(--nachtblau);background:#e6f6f8;}
.modal--danger .modal-esc{color:var(--white);border-color:rgba(255,255,255,.5);}
.modal--danger .modal-esc:hover{color:var(--err);background:var(--white);}
.modal-bd{padding:22px;}
.modal-lead{font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--teal);margin-bottom:12px;}
.modal--danger .modal-lead{color:var(--err);}
.modal-p{margin:0 0 14px;font-size:.95rem;color:var(--sepia-900);}
.modal-p--muted{margin:0 0 18px;font-size:.85rem;color:var(--sepia-600);}
.notice{border:1px solid rgba(174,100,52,.5);border-left:4px solid var(--ochre);background:rgba(174,100,52,.06);border-radius:2px;padding:12px 14px;margin-bottom:18px;font-size:.92rem;color:var(--sepia-900);}
.notice-tag{font-family:'Source Code Pro',monospace;font-weight:700;color:var(--ochre);}
.size-box{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--teal);background:var(--white);border:1px dashed var(--rule);border-radius:2px;padding:12px;margin-bottom:18px;line-height:1.8;}
.shred-ack{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:'Source Code Pro',monospace;font-size:.82rem;color:var(--sepia-900);cursor:pointer;}
.shred-ack input{width:16px;height:16px;margin:0;accent-color:var(--err);}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;}
.modal-actions--stack{flex-direction:column;align-items:stretch;}
.btn-ghost,.btn-primary,.btn-warn,.btn-danger{font-family:'Source Code Pro',monospace;font-size:.78rem;font-weight:700;padding:11px 18px;border-radius:2px;border:none;}
.btn-ghost{background:transparent;color:var(--teal);border:1px solid var(--teal);}
.btn-ghost:hover{background:var(--teal);color:var(--white);}
.btn-primary{background:var(--nachtblau);color:var(--white);}
.btn-primary:hover{background:var(--teal);}
.btn-warn{background:var(--ochre);color:var(--white);}
.btn-warn:hover{background:#6e3d20;}
.btn-danger{background:var(--err);color:var(--white);}
.btn-danger:hover:not(:disabled){background:#7f2626;}

/* ---- footer (§6 Chrome, sprint 15.G: the www.dreammachine.systems site footer; §11a local wave) ----
 * Values lifted from handoff 19's reference (its inline styles); #a5f3fc (group labels) is the site's colour. */
.ftr{background:var(--white);margin-top:auto;}
.ftr img{display:block;width:100%;height:auto;margin-bottom:-1px;}
.ftr-bar{background:var(--nachtblau);padding:0 0 80px;color:rgba(255,255,255,.4);font-family:'Source Code Pro',monospace;font-size:.9rem;text-align:center;text-transform:uppercase;letter-spacing:1px;}
.ftr-nav{width:90%;max-width:1000px;margin:0 auto 30px;padding:10px 0 30px;border-bottom:1px solid rgba(255,255,255,0.12);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;text-align:left;text-transform:none;letter-spacing:0;}
.ftr-group{display:flex;flex-direction:column;gap:10px;min-width:0;}
.ftr-group-l{color:#a5f3fc;font-weight:700;font-size:.9rem;}
.ftr-link{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:rgba(255,255,255,.9);}
.ftr-link:hover{color:var(--white);}
.ftr-link-l{font-weight:700;font-size:.85rem;overflow-wrap:anywhere;}
.ftr-link-n{font-family:'Source Sans 3',sans-serif;font-size:.85rem;color:rgba(255,255,255,.65);}
/* the site's breakpoints: 4 columns above 1000 px, 2 from 701 to 1000 px, 1 at ≤ 700 px */
@media (max-width:1000px){
  .ftr-nav{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .ftr-nav{grid-template-columns:1fr;}
}

/* ---- breakpoints (§11a: grids stack < 720 px, strip wraps) ---- */
@media (max-width:719px){
  .login-cards{grid-template-columns:1fr;}
  .login-row{flex-direction:column;}
  .login-key{min-width:0;}
  .login-card-bd{padding:20px;}
  .hdr-tools{width:100%;margin-left:0;}
  .hdr-brand{padding:10px 16px;}
  .hdr-strip--login,.hdr-tools{padding-left:16px;padding-right:16px;}
  .modal-actions{flex-direction:column;align-items:stretch;}
}

/* ==== sprint 2: dashboard (§6.2) — values lifted from the reference dummy's inline styles ==== */
.dash-intro{color:var(--sepia-600);font-size:1.02rem;margin:0 0 20px;max-width:68ch;}
.card{border:1px solid var(--rule);background:var(--paper);border-radius:6px;overflow:hidden;}
.card-hd{padding:8px 15px;font-family:'Source Code Pro',monospace;font-size:.8rem;color:var(--white);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.card-hd--nb{background:var(--nachtblau);}
.card-hd--b{padding:10px 16px;font-weight:700;}
.card-hd--sep{border-top:1px dashed rgba(242,202,170,.35);}
.card-hd--teal{background:var(--teal);font-size:.85rem;}
.card-hd--muted{background:var(--sepia-600);padding:10px 16px;font-weight:700;}
.card-hd .dim{opacity:.6;}
.card-hd--teal .dim,.card-hd--muted .dim{opacity:.7;}
.card-hd .dim--n{font-weight:400;}
.readme{margin:0 0 44px;}
.readme .card-hd{font-size:.78rem;}
.readme-grid{display:grid;grid-template-columns:1fr 1fr;}
.readme-cell{padding:16px 20px;}
.readme-cell--top{border-bottom:1px dashed var(--rule);}
.readme-tag{font-family:'Source Code Pro',monospace;font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--ochre);margin-bottom:6px;}
.readme-txt{font-size:.92rem;color:var(--sepia-900);line-height:1.6;}
.nb{color:var(--nachtblau);}
.b{font-weight:700;}
.mono.nb{font-size:.9em;}
.ex{font-family:'Source Code Pro',monospace;font-size:.8em;color:var(--sepia-600);}
.lnk{color:var(--teal);font-weight:700;text-decoration:underline dotted;text-underline-offset:3px;}
.lnk:hover{color:var(--ochre);}
.lnk-b{color:var(--teal);font-weight:700;text-decoration:none;}
.lnk-b:hover{color:var(--ochre);text-decoration:underline;text-underline-offset:3px;}
.sec-h{font-family:'Source Code Pro',monospace;font-size:1.05rem;color:var(--nachtblau);letter-spacing:.03em;border-bottom:1px solid var(--rule);padding-bottom:8px;margin:0 0 22px;}
.sec-h--gap{margin-top:48px;}
.sec-n{color:var(--ochre);margin-right:8px;}
.sec-sub{color:var(--sepia-600);font-weight:400;font-size:.85rem;}
.card--docs{margin-bottom:48px;}
.doc-grid{display:grid;grid-template-columns:auto 1fr;gap:26px;padding:24px;align-items:start;}
.doc-cover-link{display:block;}
.doc-cover{width:138px;height:auto;border:1px solid var(--rule);border-radius:2px;box-shadow:0 10px 24px rgba(0,0,0,.15);display:block;}
.doc-body{display:flex;flex-direction:column;gap:16px;min-width:220px;}
.doc-p{margin:0;font-size:.95rem;color:var(--sepia-900);}
.doc-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;border:1px dashed var(--rule);background:var(--white);border-radius:2px;padding:10px 14px;font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--sepia-900);}
.doc-meta .dim,.deck-hw,.gateway-hint{color:var(--sepia-600);}
.ok-dot{color:var(--ok);font-weight:700;}
.doc-ov-h{font-family:'Source Code Pro',monospace;font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--sepia-600);margin-bottom:8px;}
.doc-ov{display:grid;gap:6px;font-size:.9rem;color:var(--sepia-900);line-height:1.55;}
.doc-li{display:grid;grid-template-columns:auto 1fr;gap:10px;}
.star{font-family:'Source Code Pro',monospace;color:var(--ochre);}
.btn-nb{align-self:flex-start;display:inline-block;background:var(--nachtblau);color:var(--white);font-family:'Source Code Pro',monospace;font-weight:700;font-size:.8rem;letter-spacing:.05em;padding:12px 18px;border:none;border-radius:4px;text-decoration:none;text-align:left;cursor:pointer;}
.btn-nb:hover{background:var(--teal);color:var(--white);}
.dl-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.dl-sep{font-family:'Source Code Pro',monospace;color:var(--sepia-600);}
.gateway-hint{font-family:'Source Code Pro',monospace;font-size:.7rem;overflow-wrap:anywhere;}
.doc-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 24px;border-top:1px dashed var(--rule);font-family:'Source Code Pro',monospace;font-size:.72rem;color:var(--sepia-600);}
.doc-links a{color:var(--sepia-600);text-decoration:none;}
.doc-links a:hover{color:var(--teal);text-decoration:underline;text-underline-offset:3px;}
.dl-sep2{opacity:.5;}
.pipe-row{display:flex;flex-wrap:wrap;column-gap:16px;row-gap:6px;align-items:baseline;width:100%;padding:14px 18px;border:none;border-bottom:1px dashed var(--rule);background:transparent;text-decoration:none;text-align:left;font:inherit;color:inherit;cursor:default;}
a.pipe-row,button.pipe-row{cursor:pointer;}
a.pipe-row:hover,button.pipe-row:hover{background:rgba(53,134,145,.06);}
.pipe-row--pending{background:rgba(174,100,52,.06);}
.pipe-tag{font-family:'Source Code Pro',monospace;font-size:.75rem;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex:0 0 104px;}
.pipe-tag--ok{color:var(--ok);}
.pipe-tag--pending{color:var(--ochre);}
.pipe-tag--locked{color:var(--sepia-400);}
.pipe-tag--unauth{color:var(--ochre-light);}
.pipe-id{font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--nachtblau);white-space:nowrap;}
.pipe-title{font-size:.9rem;color:var(--sepia-600);flex:1 1 260px;min-width:0;}
.pipe-action{font-family:'Source Code Pro',monospace;font-size:.75rem;font-weight:700;color:var(--teal);white-space:nowrap;margin-left:auto;}
.pipe-action--exit{color:var(--ochre);}
.pipe-row--locked .pipe-id,.pipe-row--locked .pipe-title,.pipe-row--unauth .pipe-id,.pipe-row--unauth .pipe-title{opacity:.45;}
.pipe-row--unauth .pipe-action{color:var(--ochre-light);}
.deck-grid{display:grid;grid-template-columns:1fr auto;gap:28px;padding:24px;align-items:center;}
.deck-grid .doc-body{min-width:240px;}
.deck-auth{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--ok);font-weight:600;}
.deck-token{font-weight:700;color:var(--nachtblau);}
.btn-deck{align-self:flex-start;display:inline-block;background:var(--nachtblau);color:var(--ok-light);border:1px solid rgba(143,208,160,.45);font-family:'Source Code Pro',monospace;font-size:.82rem;font-weight:700;letter-spacing:.03em;padding:13px 18px;border-radius:4px;text-decoration:none;text-align:left;}
.btn-deck:hover{background:var(--teal);border-color:var(--ok-light);color:var(--ok-light);}
.deck-hw{font-family:'Source Code Pro',monospace;font-size:.75rem;}
.deck-img-link{display:block;}
.deck-img{width:230px;max-width:100%;height:auto;display:block;}
.p2p-bd{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.p2p-txt{flex:1;min-width:260px;}
.p2p-ping{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--teal);margin-bottom:8px;}
.p2p-p{max-width:70ch;}
.p2p-note{font-family:'Source Code Pro',monospace;font-size:.72rem;color:var(--sepia-600);margin-top:10px;}
.btn-outline{display:inline-block;background:transparent;color:var(--teal);border:1px solid var(--teal);font-family:'Source Code Pro',monospace;font-weight:700;font-size:.85rem;letter-spacing:.05em;padding:14px 22px;border-radius:4px;text-decoration:none;white-space:nowrap;}
.btn-outline:hover{background:var(--teal);color:var(--white);}
.status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:48px;}
.scard{border:1px solid var(--rule);border-radius:6px;background:var(--paper);padding:14px 18px;}
.scard-l{font-family:'Source Code Pro',monospace;font-size:.68rem;letter-spacing:.1em;color:var(--sepia-600);margin-bottom:4px;}
.scard-v{font-family:'Source Code Pro',monospace;font-weight:700;color:var(--nachtblau);overflow-wrap:anywhere;}
.scard-v--ok{color:var(--ok);}
.scard-v--key{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.btn-reveal{background:transparent;border:1px solid var(--rule);border-radius:2px;color:var(--teal);font-family:'Source Code Pro',monospace;font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:4px 8px;}
.btn-reveal:hover{border-color:var(--teal);}
.blink{animation:blink-opacity 1s infinite;}
.term-lines{font-family:'Source Code Pro',monospace;font-size:.8rem;line-height:1.7;color:var(--sepia-900);margin-bottom:16px;overflow-wrap:anywhere;}
.term-line--prompt{color:var(--teal);font-weight:700;}

/* ==== sprint 2: module template (§6.3) ==== */
.crumb{color:var(--ochre);font-size:.85rem;font-weight:700;letter-spacing:0;text-transform:none;margin-bottom:8px;}
.crumb-link{color:var(--teal);text-decoration:none;}
.crumb-link:hover{color:var(--ochre);}
.mod-h2{font-family:'Source Code Pro',monospace;font-size:clamp(1.6rem,3.4vw,2.4rem);color:var(--nachtblau);letter-spacing:-.02em;margin:0 0 6px;overflow-wrap:anywhere;}
.mod-sub{color:var(--sepia-600);font-size:1.02rem;margin-bottom:32px;}
.stepbox{background:var(--nachtblau);border:1px solid var(--rule);border-radius:6px;overflow:hidden;margin-bottom:36px;}
.stepbox-hd{background:var(--teal);padding:8px 15px;font-family:'Source Code Pro',monospace;font-size:.85rem;color:var(--white);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.stepbox-hd .dim{opacity:.7;}
.stepbar{display:flex;align-items:center;gap:10px;padding:16px 18px;overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;}
.step-cell{border:1px dashed rgba(213,210,195,.35);background:transparent;border-radius:4px;padding:10px 14px;text-align:left;font-family:'Source Code Pro',monospace;flex-shrink:0;}
.step-cell:hover{border-color:var(--teal-light);}
.step-cell[data-active="true"]{border:2px solid var(--ochre-light);box-shadow:0 0 0 1px rgba(225,136,93,.25),0 0 14px rgba(225,136,93,.35);}
.step-n{display:block;font-size:.62rem;font-weight:700;letter-spacing:.08em;color:var(--sepia-400);margin-bottom:3px;}
.step-cell[data-active="true"] .step-n{color:var(--ochre-light);}
.step-name{display:block;font-size:.72rem;font-weight:700;letter-spacing:.05em;color:var(--rule);white-space:nowrap;}
.step-cell[data-active="true"] .step-name{color:var(--white);}
.step-conn{flex:1;display:flex;align-items:center;min-width:16px;color:rgba(213,210,195,.35);}
.step-conn-line{flex:1;border-top:2px dashed rgba(213,210,195,.35);}
.step-conn--solid{color:var(--rule);}
.step-conn--solid .step-conn-line{border-top-style:solid;border-top-color:var(--rule);}
.step-conn-arrow{font-size:9px;line-height:1;}
.step-err{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--err);font-weight:600;margin:-24px 0 24px;overflow-wrap:anywhere;}
.step-body{margin-top:0;}
.sec-title{font-family:'Source Code Pro',monospace;color:var(--ochre);font-weight:700;font-size:1.1rem;text-transform:uppercase;margin-bottom:12px;}
.sec-title-hint{font-size:.68em;color:var(--sepia-600);font-weight:400;}
.sec-intro{color:var(--sepia-600);margin:0 0 24px;}
.con-line{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--teal);margin-bottom:10px;}
.tx-h{font-family:'Source Code Pro',monospace;color:var(--ochre);font-weight:700;font-size:.95rem;text-transform:uppercase;margin-bottom:12px;}
.tx-frame{margin-bottom:16px;}
.tx-body{background:var(--nachtblau);padding:14px;}
.tx-well{position:relative;background:#1a3536;border:1px solid rgba(242,202,170,.25);aspect-ratio:16/9;overflow:hidden;}
.tx-well iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.tx-meta{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:10px;font-family:'Source Code Pro',monospace;font-size:.72rem;color:var(--sepia-400);letter-spacing:.04em;}
.accordion{margin:0 0 28px;}
.acc-btn{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;width:100%;background:transparent;border:none;font-family:'Source Code Pro',monospace;font-size:.82rem;font-weight:700;letter-spacing:.04em;color:var(--teal);text-align:left;padding:14px 18px;}
.acc-btn:hover{background:rgba(53,134,145,.06);}
.acc-hint{font-weight:400;color:var(--sepia-600);}
.acc-body{background:var(--nachtblau);}
.tx-text{padding:18px 22px;font-family:'Source Code Pro',monospace;font-size:.88rem;line-height:1.7;color:var(--rule);display:flex;flex-direction:column;gap:12px;}
.tx-text p{margin:0;}
.tx-cat{color:var(--teal-light);}
.tx-lead{color:var(--warm);font-weight:700;}
.tx-text .hl{color:var(--ochre-light);font-weight:700;}
.tx-text .hl-white{color:var(--white);}
.tx-end{color:var(--sepia-400);font-size:.8rem;}
.console{background:var(--nachtblau);box-shadow:0 10px 30px rgba(0,0,0,.15);margin-bottom:28px;}
.console-bd{padding:22px;display:flex;flex-direction:column;gap:14px;}
.con-cmd{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--teal-light);line-height:1.6;}
.con-tail{font-weight:400;color:var(--rule);}
.con-p{margin:0;font-size:.95rem;color:var(--rule);}
.con-p .obj{font-family:'Source Code Pro',monospace;font-size:.9em;color:var(--ochre-light);}
.con-p .lnk{color:var(--teal-light);}
.con-p .lnk:hover{color:var(--warm);}
.con-input{display:grid;grid-template-columns:auto 1fr;gap:10px;border:1px dashed rgba(242,202,170,.4);border-radius:2px;background:rgba(0,0,0,.18);padding:12px 14px;}
.con-caret{font-family:'Source Code Pro',monospace;color:var(--ochre-light);font-weight:700;}
.con-ta{border:none;background:transparent;font-family:'Source Code Pro',monospace;font-size:.88rem;line-height:1.7;color:var(--warm);resize:vertical;outline-offset:-2px;width:100%;min-width:0;}
.con-ta::placeholder{color:rgba(242,202,170,.45);}
.con-status{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--sepia-400);}
.tldr{margin-bottom:16px;}
.tldr-bd{background:var(--nachtblau);padding:20px 22px;display:flex;flex-direction:column;gap:10px;}
.tldr-syn{font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--warm);}
.tldr-p{margin:0;font-size:.95rem;color:var(--rule);line-height:1.65;}
/* §6.5.1 (sprint 15.H) — the MOD 5 lure under SYNOPSIS, above a dashed rule (handoff 19 reference). */
.tldr-lure-box{margin-top:6px;padding-top:12px;border-top:1px dashed rgba(242,202,170,.3);display:flex;flex-direction:column;gap:8px;}
.tldr-lure-p{font-size:.92rem;}
.tldr-tool{font-family:'Source Code Pro',monospace;font-size:.85em;font-weight:700;color:var(--warm);}
.tldr-lure{align-self:flex-start;font-family:'Source Code Pro',monospace;font-size:.82rem;font-weight:700;color:var(--teal-light);text-decoration:none;overflow-wrap:anywhere;}
.tldr-lure:hover{color:var(--teal-light);text-decoration:underline;text-underline-offset:3px;}
.ref{font-family:'Source Code Pro',monospace;font-size:.85em;color:var(--sepia-400);}
.man-body{padding:6px 22px 22px;}
.man-body code{font-family:'Source Code Pro',monospace;font-size:.9em;color:var(--teal-light);background:rgba(106,182,192,.12);padding:0 5px;border-radius:2px;}
.man-h{font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--warm);margin:18px 0 8px;padding-bottom:6px;border-bottom:1px dashed rgba(242,202,170,.3);}
.man-p{margin:0 0 10px;font-size:.92rem;color:var(--rule);line-height:1.65;}
.man-ul{display:grid;gap:6px;margin:0 0 18px;}
.man-li{display:grid;grid-template-columns:auto 1fr;gap:10px;font-size:.92rem;color:var(--rule);line-height:1.65;}
.man-li b{color:var(--white);}
.man-star{color:var(--ochre-light);}
.man-quote{border-left:3px solid var(--teal-light);padding:8px 14px;font-family:'Source Code Pro',monospace;font-size:.88rem;color:var(--rule);line-height:1.65;background:rgba(106,182,192,.06);}
.man-by{color:var(--sepia-400);font-size:.85em;}
.man-foot{margin-top:16px;padding-top:12px;border-top:1px dashed rgba(242,202,170,.3);font-family:'Source Code Pro',monospace;font-size:.78rem;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:baseline;}
.man-k{color:var(--sepia-400);}
.man-v{color:var(--rule);line-height:1.7;}
.man-links{display:flex;gap:16px;flex-wrap:wrap;font-weight:700;}
.man-link{color:var(--teal-light);text-decoration:none;background:transparent;border:none;padding:0;font:inherit;text-align:left;}
.man-link:hover{color:var(--teal-light);text-decoration:underline;text-underline-offset:3px;}
.man-link--btn{cursor:pointer;}
.sandbox{background:var(--nachtblau);border-radius:6px;overflow:hidden;margin-bottom:28px;}
.sandbox-hd{padding:10px 16px;font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:700;color:var(--teal-light);border-bottom:1px dashed rgba(242,202,170,.25);}
.sandbox-bd{padding:22px;display:flex;flex-direction:column;gap:12px;}
.sandbox-inst{font-family:'Source Code Pro',monospace;font-size:.95rem;font-weight:700;letter-spacing:.04em;color:var(--ochre-light);}
.sandbox-p{margin:0;font-size:.95rem;color:var(--rule);line-height:1.6;}
.vm-link{display:block;border:1px solid rgba(242,202,170,.3);background:#1a3536;margin:0 0 14px;overflow:hidden;text-decoration:none;}
.vm-link:hover{border-color:var(--teal-light);}
.vm-link img{display:block;width:100%;height:auto;}
.vm-cap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 10px;font-family:'Source Code Pro',monospace;font-size:.7rem;color:var(--sepia-400);letter-spacing:.04em;border-top:1px dashed rgba(242,202,170,.25);}
.btn-spawn{align-self:flex-start;background:var(--ochre);color:var(--white);font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;letter-spacing:.05em;padding:13px 22px;border-radius:4px;text-decoration:none;}
.btn-spawn:hover{background:var(--ochre-light);color:var(--nachtblau);}
.btn-spawn-hint{font-weight:400;opacity:.8;}
.ref-box{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px dashed rgba(53,134,145,.4);background:var(--white);border-radius:2px;padding:12px 16px;margin:0 0 20px;}
.ref-tag{font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--ochre);padding-top:2px;}
.ref-label{font-family:'Source Code Pro',monospace;font-size:.65rem;font-weight:700;letter-spacing:.08em;color:var(--sepia-600);margin-bottom:4px;}
.ref-log{font-family:'Source Code Pro',monospace;font-size:.85rem;line-height:1.6;color:var(--nachtblau);white-space:pre-wrap;overflow-wrap:anywhere;}
.deploy-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;}
.col{border:1px solid var(--rule);background:var(--paper);border-radius:6px;overflow:hidden;min-width:0;}
.col--b{border-color:rgba(174,100,52,.35);}
.col-hd{padding:9px 14px;font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--white);}
.col--a .col-hd{background:var(--teal);}
.col--b .col-hd{background:var(--ochre);}
.col-bd{padding:12px 16px 16px;}
.field-title{font-family:'Source Code Pro',monospace;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--teal);margin:6px 0 8px;}
.col--b .field-title{color:var(--ochre);}
.field-hint{font-weight:400;color:var(--sepia-600);letter-spacing:0;}
.presets{display:flex;flex-direction:column;gap:4px;padding:0 0 2px;}
.preset{display:flex;gap:8px;align-items:flex-start;background:transparent;border:none;padding:1px 0;font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:600;color:var(--nachtblau);text-align:left;}
.preset:hover{color:var(--teal);}
.preset-box{color:var(--teal);white-space:nowrap;flex-shrink:0;}
.custom-label{padding:8px 0 0;font-family:'Source Code Pro',monospace;font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--sepia-600);}
.custom-ta{display:block;width:100%;margin:6px 0 0;border:1px solid var(--rule);border-radius:2px;background:var(--white);font-family:'Source Sans 3',sans-serif;font-size:.9rem;line-height:1.6;padding:10px 12px;color:var(--nachtblau);resize:vertical;outline-offset:-2px;}
.field-ok{font-family:'Source Code Pro',monospace;font-size:.7rem;color:var(--ok);padding:8px 0 0;}
.echo{margin:0 0 16px;}
/* §6.3 (sprint 15.F): one wrapping `echo-row` per pair (handoff 19 reference, MOD 4) — the value drops under its
   label once label + 220 px no longer fit; used by every module's echo card (plan decision 5). */
.echo-bd{background:var(--nachtblau);border-left:4px solid var(--teal-light);padding:18px 22px;font-family:'Source Code Pro',monospace;font-size:.85rem;line-height:1.8;color:var(--rule);display:flex;flex-direction:column;gap:6px;}
.echo-lead{color:var(--teal-light);font-weight:700;}
.echo-row{display:flex;flex-wrap:wrap;column-gap:14px;row-gap:0;}
.echo-k{color:var(--warm);font-weight:700;flex:0 1 auto;min-width:0;}
.echo-v{color:var(--white);flex:1 1 220px;min-width:0;overflow-wrap:anywhere;}
.sysnote{border-left:3px solid var(--ochre);background:rgba(174,100,52,.06);padding:12px 16px;margin:0 0 24px;font-size:.92rem;color:var(--sepia-900);line-height:1.65;font-style:italic;}
.sysnote-tag{font-family:'Source Code Pro',monospace;font-style:normal;font-weight:700;color:var(--ochre);}
.opts{display:grid;gap:10px;max-width:640px;margin-bottom:32px;}
.opt{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;border:1px solid var(--rule);background:var(--paper);border-radius:4px;font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--nachtblau);padding:14px 16px;text-align:left;}
.opt-hint{font-weight:400;color:var(--sepia-600);}
.opt--true .opt-box{color:var(--teal);}
.opt--partial .opt-box{color:var(--sepia-600);}
.opt--false .opt-box{color:var(--ochre);}
.opt--true:hover{border-color:var(--teal-light);}
.opt--partial:hover{border-color:var(--sepia-600);}
.opt--false:hover{border-color:var(--ochre);}
.opt--true[data-picked="true"]{border-color:var(--teal);background:rgba(53,134,145,.08);}
.opt--partial[data-picked="true"]{border-color:var(--sepia-600);background:rgba(126,113,98,.12);}
.opt--false[data-picked="true"]{border-color:var(--ochre);background:rgba(174,100,52,.08);}
.btn-commit{display:inline-block;background:var(--nachtblau);color:var(--white);font-family:'Source Code Pro',monospace;font-weight:700;font-size:.95rem;letter-spacing:.05em;text-align:left;padding:18px 24px;border:none;border-radius:4px;overflow-wrap:anywhere;}
.btn-commit:hover{background:var(--ochre);}
.commit-log{font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:600;color:var(--ok);border:1px dashed rgba(46,125,79,.5);background:rgba(46,125,79,.05);border-radius:2px;padding:12px 16px;margin-top:14px;overflow-wrap:anywhere;}
.commit-err{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--err);font-weight:600;margin-top:12px;overflow-wrap:anywhere;}
.notice-ok{border:1px solid rgba(46,125,79,.5);border-left:6px solid var(--ok);background:rgba(46,125,79,.05);border-radius:6px;padding:24px 28px;margin-bottom:28px;}
.notice-ok-h{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--ok);margin-bottom:14px;}
.notice-ok-p{margin:0 0 12px;font-size:.95rem;color:var(--sepia-900);}
.notice-ok-p:last-child{margin-bottom:0;}
.notice-ok .mono.ok{font-size:.9em;color:var(--ok);}
.docs{padding:24px;margin-bottom:28px;}
.docs-h{font-family:'Source Code Pro',monospace;font-size:.85rem;font-weight:700;color:var(--nachtblau);margin-bottom:14px;}
.docs-list{display:grid;gap:10px;font-family:'Source Code Pro',monospace;font-size:.85rem;color:var(--nachtblau);}
.docs-li{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px dashed var(--rule);border-radius:2px;background:var(--white);padding:11px 14px;}
.docs-n{color:var(--ochre);font-weight:700;}
.alias-row{display:grid;grid-template-columns:auto 1fr;gap:10px;border:1px dashed rgba(53,134,145,.4);border-radius:2px;background:var(--white);padding:12px 14px;max-width:560px;margin-bottom:32px;}
.alias-caret{font-family:'Source Code Pro',monospace;color:var(--ochre);font-weight:700;}
.alias-in{border:none;background:transparent;font-family:'Source Code Pro',monospace;font-size:.88rem;line-height:1.7;color:var(--nachtblau);outline-offset:-2px;min-width:0;width:100%;}
.alias-in::placeholder{color:var(--sepia-400);}
/* §6.3 (sprint 15.C): wrap-reverse on the row and the right group — when the footer wraps, the forward line
   sits above the back line (DOM and tab order stay back → forward); `nav-next` is the one filled nav button. */
.nav-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap-reverse;padding-top:18px;margin-top:8px;}
.nav-right{display:flex;gap:12px;align-items:center;flex-wrap:wrap-reverse;justify-content:flex-end;margin-left:auto;}
.btn-nav{display:inline-block;background:transparent;color:var(--teal);border:1px solid var(--teal);font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:700;letter-spacing:.05em;padding:11px 20px;border-radius:2px;text-decoration:none;cursor:pointer;}
.btn-nav:hover{background:var(--teal);color:var(--white);}
.btn-nav.nav-next{background:var(--teal);color:var(--white);border-color:var(--teal);}
.btn-nav.nav-next:hover{background:var(--nachtblau);border-color:var(--nachtblau);color:var(--white);}
.btn-continue{display:inline-block;background:var(--ochre);color:var(--white);border:none;font-family:'Source Code Pro',monospace;font-size:.8rem;font-weight:700;letter-spacing:.05em;padding:12px 22px;border-radius:2px;text-decoration:none;cursor:pointer;}
.btn-continue:hover{background:#6e3d20;color:var(--white);}

/* ---- sprint 3: MOD 2–5 two-field columns, §6.5 easter eggs ---- */
/* The reference copy reads "Target Metric (…)"; the reference dummy shows the title upper-case — CSS, not copy. */
.field-title{text-transform:uppercase;}
.field-hint{text-transform:none;}
/* §6.5.2 — the rejected time constraint: the only red outline in the module UI. */
.custom-ta[data-err="true"]{border-color:var(--err);box-shadow:0 0 0 3px rgba(162,56,56,.25);}
.overclock{border:1px solid var(--err);border-left:4px solid var(--err);background:var(--nachtblau);padding:16px 20px;margin:0 0 28px;font-family:'Source Code Pro',monospace;font-size:.85rem;line-height:1.7;color:var(--rule);}
.overclock-h{color:var(--ochre-light);font-weight:700;margin-bottom:6px;}
.overclock-p b{color:var(--warm);font-weight:700;}
/* MOD 5 commit button — the reference's "(final action, glowing accent)"; the glow is listed in §11. */
.btn-commit--accent{background:var(--ochre);box-shadow:0 0 0 3px rgba(174,100,52,.25),0 0 24px rgba(174,100,52,.45);animation:glow-pulse 1.8s ease-in-out infinite alternate;}
.btn-commit--accent:hover{background:var(--nachtblau);box-shadow:0 0 0 3px rgba(37,74,75,.25),0 0 24px rgba(53,134,145,.5);animation:none;}
@keyframes glow-pulse{from{box-shadow:0 0 0 3px rgba(174,100,52,.25),0 0 12px rgba(174,100,52,.3);}to{box-shadow:0 0 0 3px rgba(174,100,52,.25),0 0 24px rgba(174,100,52,.55);}}
/* §6.5.1 — honeypot: pure-black full-screen overlay, no chrome, click outside the card closes it. */
.overlay--honeypot{background:#000;backdrop-filter:none;z-index:60;padding:24px;cursor:pointer;}
.honeypot{width:min(92vw,720px);font-family:'Source Code Pro',monospace;color:var(--rule);font-size:.95rem;line-height:1.85;cursor:default;}
.honeypot-h{color:var(--ochre-light);font-weight:700;font-size:1.15rem;margin-bottom:22px;}
.honeypot-p{margin:0 0 18px;}
/* sprint 15.H — the sign-off above `> exit 0` (handoff 19 reference). */
.honeypot-sig{margin:0 0 28px;font-family:'Source Sans 3',sans-serif;font-style:italic;font-size:1.05rem;color:var(--warm);}
.btn-exit0{background:transparent;border:1px solid var(--rule);color:var(--rule);font-family:'Source Code Pro',monospace;font-size:.82rem;font-weight:700;letter-spacing:.05em;padding:10px 18px;cursor:pointer;}
.btn-exit0:hover{background:var(--rule);color:#000;}
/* §6.5.3 — SIGINT toast: bottom-right, non-blocking, above modals like the dummy (z 55), no shadow (§11). */
.toast{position:fixed;right:24px;bottom:24px;z-index:55;width:min(92vw,440px);background:var(--nachtblau);border:1px solid var(--teal-light);border-left:4px solid var(--ochre-light);padding:16px 20px;font-family:'Source Code Pro',monospace;font-size:.82rem;line-height:1.7;color:var(--rule);}
.toast-h{color:var(--ochre-light);font-weight:700;margin-bottom:6px;}
.toast-chip{color:var(--warm);font-weight:700;}

/* ==== sprint 4: SYS_EXIT (§6.4) — values lifted from the reference dummy's inline styles ==== */
.exit-sub{margin-bottom:36px;}
.sec-h--tight{margin-bottom:12px;}
/* [01] SYSTEM_AUDIT — the five [OK] lines inside the console (dummy: dashed warm box); timestamps are new chrome (§6.4). */
.audit-box{display:grid;gap:6px;font-family:'Source Code Pro',monospace;font-size:.85rem;color:var(--warm);border:1px dashed rgba(242,202,170,.4);border-radius:2px;background:rgba(0,0,0,.18);padding:14px 16px;overflow-wrap:anywhere;}
.audit-ok{color:var(--ok-light);font-weight:700;}
.audit-ts{color:var(--sepia-400);}
.exit-commit{margin:-14px 0 44px;}
/* [02] THE_COMPILER */
.compile-cmd{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--teal);margin-bottom:6px;}
.compile-intro{color:var(--sepia-600);font-size:.98rem;margin:0 0 22px;}
.compile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:44px;}
.compile-box{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--ochre);border-radius:6px;padding:26px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.compile-box--cert{border-left-color:var(--teal);}
.compile-tag{font-family:'Source Code Pro',monospace;font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--ochre);}
.compile-box--cert .compile-tag{color:var(--teal);}
.compile-title{font-family:'Source Code Pro',monospace;font-size:1.15rem;font-weight:700;color:var(--nachtblau);overflow-wrap:anywhere;}
.compile-example{font-family:'Source Code Pro',monospace;font-size:.75rem;font-weight:700;color:var(--teal);text-decoration:none;}
.compile-example:hover{text-decoration:underline;text-underline-offset:3px;}
.compile-p{margin:0;font-size:.95rem;color:var(--sepia-600);flex:1;}
.compile-list{margin:0;padding:0;list-style:none;font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--teal);display:flex;flex-direction:column;gap:6px;}
.compile-log{background:var(--nachtblau);border-radius:4px;padding:12px 14px;font-family:'Source Code Pro',monospace;font-size:.76rem;line-height:1.8;color:var(--rule);overflow-wrap:anywhere;}
.compile-log-cmd{color:var(--teal-light);}
.compile-status{font-weight:700;}
.compile-status--wait{color:var(--warm);}
.compile-status--done{color:var(--ok-light);}
.compile-warn{color:var(--ochre-light);}
.compile-err{color:var(--err);font-weight:700;}
/* The dummy's [ GET … ] button glow — static, listed in §11 (sprint 4). */
.btn-get{display:inline-block;align-self:flex-start;background:var(--ochre);color:var(--white);border:none;font-family:'Source Code Pro',monospace;font-weight:700;font-size:.85rem;letter-spacing:.05em;padding:14px 22px;border-radius:4px;text-align:left;cursor:pointer;box-shadow:0 0 0 3px rgba(174,100,52,.2),0 0 18px rgba(174,100,52,.35);}
.btn-get:hover{background:var(--nachtblau);}
.cert-preview{border:1px solid var(--rule);background:var(--white);border-radius:2px;padding:20px;text-align:center;}
.cert-wm{font-size:.9rem;letter-spacing:-.02em;}
.cert-wm-a{font-weight:900;color:var(--ochre);}
.cert-wm-b{font-weight:900;color:var(--teal);}
.cert-wm-c{color:var(--teal);font-size:.8em;white-space:pre;}
.cert-kicker{font-family:'Source Code Pro',monospace;font-size:.65rem;letter-spacing:.15em;color:var(--sepia-600);margin:10px 0 6px;}
.cert-name{font-weight:700;color:var(--nachtblau);overflow-wrap:anywhere;}
.cert-line{font-size:.8rem;color:var(--sepia-600);margin:4px 0 6px;}
.cert-date{font-family:'Source Code Pro',monospace;font-size:.62rem;letter-spacing:.08em;color:var(--sepia-600);margin:0 0 10px;}
.cert-hash{font-family:'Source Code Pro',monospace;font-size:.62rem;color:var(--teal);border-top:1px dashed var(--rule);padding-top:8px;overflow-wrap:anywhere;}
/* [03] SECURITY_PROTOCOL — the light red box (dummy); the button is the §10 entry point. */
.sec-box{border:1px solid rgba(162,56,56,.5);border-left:6px solid var(--err);background:rgba(162,56,56,.04);border-radius:6px;padding:24px 28px;margin-bottom:44px;}
.sec-box-h{font-family:'Source Code Pro',monospace;font-size:.9rem;font-weight:700;color:var(--err);margin-bottom:10px;}
.sec-box-p{margin:0 0 20px;font-size:.95rem;color:var(--sepia-900);}
.btn-wipe{background:var(--err);color:var(--white);border:none;font-family:'Source Code Pro',monospace;font-weight:700;font-size:.85rem;letter-spacing:.05em;padding:14px 22px;border-radius:4px;text-align:left;cursor:pointer;}
.btn-wipe:hover{background:#7f2626;}
/* [04] HARDWARE_UTILITIES (sprint 15.D) — the dashboard Debug Deck card; [05] NETWORK_CONNECTION; the back button. */
.card--exit-deck{margin-bottom:44px;}
.exit-back{display:flex;justify-content:center;margin:44px 0 0;}
.net-box{border:1px solid var(--rule);background:var(--paper);border-radius:6px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.net-box>div{flex:1;min-width:260px;}
.btn-outline-hint{font-weight:400;}

/* ---- sprint 2 breakpoints (§11a: grids stack < 720 px) ---- */
@media (max-width:719px){
  .readme-grid{grid-template-columns:1fr;}
  .readme-cell{border-bottom:1px dashed var(--rule);}
  .readme-cell:last-child{border-bottom:none;}
  .doc-grid,.deck-grid,.deploy-grid,.compile-grid{grid-template-columns:1fr;}
  .doc-cover{width:110px;}
  .deck-img{width:180px;}
  .stepbar{padding:12px 14px;}
  /* sprint 15.C (plan decision 6): full-width stacked buttons from wrap-reverse rows — forward on top. */
  .nav-right{margin-left:0;flex:1 1 100%;}
  .nav-row>.btn-nav,.nav-right>*{flex:1 1 100%;}
  .nav-row .btn-nav,.nav-row .btn-continue{text-align:center;}
}

/* ==== sprint 5: §8 paywall overlay — the dummy's Nachtblau card with the ochre header bar (:1483–1500), §11 tokens only ==== */
.modal--paywall{background:var(--nachtblau);border-color:var(--ochre-light);width:min(92vw,560px);box-shadow:0 24px 60px rgba(0,0,0,.35),0 0 0 4px rgba(225,136,93,.15);}
.modal--paywall .modal-hd{background:var(--ochre-light);}
.modal--paywall .modal-title,.modal--paywall .modal-esc{color:var(--nachtblau);}
.modal--paywall .modal-esc{border-color:rgba(37,74,75,.5);}
.modal--paywall .modal-esc:hover{background:var(--nachtblau);color:var(--white);}
.paywall-bd{font-family:'Source Code Pro',monospace;color:var(--rule);font-size:.9rem;line-height:1.8;}
.paywall-prompt{color:var(--sepia-400);font-size:.75rem;margin-bottom:10px;overflow-wrap:anywhere;}
.paywall-caret{color:var(--ochre-light);}
.paywall-target{color:var(--white);font-weight:700;}
.paywall-scope{margin:14px 0 18px;border:1px dashed rgba(242,202,170,.3);padding:10px 14px;font-size:.78rem;color:var(--sepia-400);}
.paywall-role{color:var(--warm);}
.btn-guest{background:transparent;color:var(--teal-light);border:1px solid var(--teal-light);font-family:'Source Code Pro',monospace;font-size:.78rem;font-weight:700;padding:11px 18px;border-radius:2px;cursor:pointer;}
.btn-guest:hover{background:var(--teal-light);color:var(--nachtblau);}
.btn-procure{display:inline-block;background:var(--ochre-light);color:var(--nachtblau);font-family:'Source Code Pro',monospace;font-size:.78rem;font-weight:700;padding:11px 18px;border-radius:2px;text-decoration:none;}
.btn-procure:hover{background:var(--warm);color:var(--nachtblau);}

/* ==== sprint 8a: two 375 px defects the mobile-375 Playwright project found (§14, tests/e2e/mobile.spec.js) ==== */
/* The honeypot card had no height cap: at 375 × 667 it was 681 px tall inside a fixed overlay — top and bottom cut off.
   The scroll container clips ink overflow, so 4 px of padding keep the `> exit 0` focus ring (2 px + 2 px offset) whole. */
.honeypot{max-height:100%;overflow-y:auto;padding:4px;}
@media (max-width:719px){
  /* SYS_EXIT [04]: `> ESTABLISH CONNECTION (Join the Community)` is 426 px on one line — the page scrolled sideways. */
  .btn-outline{white-space:normal;}
}

/* ==== sprint 10: §13f paywall partner suffix + the SYS_EXIT `[ BECOME A PARTNER ]` card — the 08 dummy's colours
   (Nachtblau card, --warm border and ring, --ochre-light button, --teal-light outline on dark), §11 tokens only ==== */
.paywall-partner{color:var(--warm);}
.card--partner{background:var(--nachtblau);border-color:var(--warm);box-shadow:0 0 0 4px rgba(242,202,170,.15);max-width:720px;margin-bottom:44px;}
.card--partner .card-hd--muted{background:transparent;color:var(--warm);font-size:1.1rem;font-weight:400;padding:24px 26px 0;}
.partner-bd{padding:12px 26px 26px;display:flex;flex-direction:column;gap:2px;font-family:'Source Code Pro',monospace;font-size:.85rem;line-height:1.8;color:var(--white);}
.partner-prompt{overflow-wrap:anywhere;}
.partner-user{color:var(--ochre-light);}
.partner-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.card--partner .btn-procure{font-size:.8rem;letter-spacing:.05em;padding:12px 18px;border-radius:4px;}
.card--partner .btn-outline{color:var(--teal-light);border-color:var(--teal-light);font-size:.8rem;padding:12px 18px;}
.card--partner .btn-outline:hover{background:var(--teal-light);color:var(--nachtblau);}
@media (max-width:719px){
  /* 375 px: the two buttons wrap onto their own full-width rows, the card keeps a phone-sized padding. */
  .card--partner .card-hd--muted{padding:18px 18px 0;}
  .partner-bd{padding:10px 18px 20px;}
  .partner-actions{flex-direction:column;align-items:stretch;}
  .partner-actions a{text-align:center;white-space:normal;}
}
