/* Shared visual system for the existing, local-only check-in prototype. */
:root{--paper:var(--horizon-bg);--surface:var(--horizon-text);--band:var(--horizon-raised);--ink:var(--horizon-text);--muted:var(--horizon-muted);--sea:var(--horizon-gold);--sea-hover:#e5c58e;--line:var(--horizon-line);--gold:var(--horizon-gold);--gold-soft:var(--horizon-gold);--danger:#ffb9a8;--band-ink:var(--horizon-text);--warn:#f1cc8b;--field-bg:var(--horizon-text);color-scheme:dark}
body{background:var(--horizon-bg);color:var(--horizon-text)}.site-header{background:rgba(9,19,27,.97);border-bottom:1px solid var(--horizon-line);backdrop-filter:blur(12px)}h1,h2,h3{font-weight:400;letter-spacing:-.025em}h1{font-size:clamp(2.4rem,5vw,4.3rem);max-width:17ch}h1 em,h2 em{color:var(--horizon-gold)}.wrap.narrow{max-width:1000px}.brand b{font-weight:400;letter-spacing:.17em}.brand span{font-size:.64rem;letter-spacing:.15em}.role-nav{display:flex;gap:26px;border-bottom:1px solid var(--horizon-line);margin-bottom:24px;padding:24px 0 12px}.role-nav a{font-size:.98rem;padding:7px 0;border-bottom:2px solid transparent}.role-nav a:hover{border-color:var(--horizon-gold)}.proto{background:var(--horizon-panel);border:1px solid var(--horizon-line);border-left:3px solid var(--horizon-gold);box-shadow:none;padding:18px 22px;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;gap:24px}.proto p{font-size:.85rem;max-width:67ch}.proto .textlink{white-space:normal;text-align:left;line-height:1.5}.ci-head{padding-top:45px;padding-bottom:30px}.ci-head>.lead{font-size:1.05rem;max-width:60ch}.ci-head .eyebrow{color:var(--horizon-muted);font-size:.75rem;letter-spacing:0;text-transform:none}.horizon{display:none}.panel{background:var(--horizon-text);border:1px solid var(--horizon-line);border-radius:2px;box-shadow:none;padding:28px}.panel h2{font-size:2rem;margin-bottom:22px}.panel h3{font-size:1.25rem}.btn{border-radius:2px;letter-spacing:0;text-transform:none;min-height:48px;font-weight:500}.btn.primary{background:var(--horizon-gold);color:var(--horizon-text)}.btn.primary:hover{background:#e5c58e}.btn.ghost{color:var(--horizon-gold);border-color:var(--horizon-gold)}.field label{font-size:.88rem;letter-spacing:0;text-transform:none}.field input,.field select,.field textarea{border:1px solid var(--horizon-line);min-height:48px;background:var(--horizon-text);border-radius:2px}.steps{border-top:1px solid var(--horizon-line);border-bottom:1px solid var(--horizon-line);background:none;padding-block:20px}.steps li{font-size:.88rem;text-transform:none;letter-spacing:0}.steps li::before{background:var(--horizon-panel);color:var(--horizon-text);border:0}.steps li[aria-current]::before{background:var(--horizon-gold);color:var(--horizon-text)}.apts{gap:12px}.apt{border:1px solid var(--horizon-line);border-radius:2px;background:var(--horizon-bg)}.apt.active{background:var(--horizon-raised);border-color:var(--horizon-gold)}.host{background:var(--horizon-raised);color:var(--horizon-text);border-block:1px solid var(--horizon-line);margin-top:0;padding-block:40px}.host h2 em{color:var(--horizon-gold)}.host .eyebrow{color:var(--horizon-muted)}.host .panel{background:var(--horizon-text);border-color:var(--horizon-line);color:var(--horizon-text)}.host input,.host textarea,.host select{background:var(--horizon-bg);color:var(--horizon-text);border-color:var(--horizon-line)}.host .field>label,.host .hint,.host .note{color:var(--horizon-muted)}.host .btn.primary{background:var(--horizon-gold);color:var(--horizon-text)}.host .btn.primary:hover{background:#e5c58e}.host .btn.ghost{color:var(--horizon-gold);border-color:var(--horizon-gold)}.host-grid{gap:20px}.host .codes{font-size:.83rem}.host .codes input{max-width:100%;min-width:0}.codes>span{overflow-wrap:anywhere}.report-wrap{max-width:100%;overflow:auto}.summary dd{overflow-wrap:anywhere}.xml{background:var(--horizon-bg)!important;color:var(--horizon-text);border:1px solid var(--horizon-line);max-width:100%;overflow:auto}.msgbox{background:var(--horizon-raised);border:1px solid var(--horizon-line)}.msgbox textarea{background:var(--horizon-text);max-width:100%;overflow-wrap:anywhere}.legal{background:var(--horizon-bg);font-size:.84rem}.pending{color:#f1cc8b}.steps li.done::before{color:var(--horizon-text);background:var(--horizon-gold)}.skip-ci{position:fixed;top:12px;left:20px;z-index:100;background:var(--horizon-bg);padding:12px 18px;transform:translateY(-200%)}.skip-ci:focus{transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--horizon-gold);outline-offset:4px}main{padding-bottom:40px}.host h2{font-size:2.3rem}.howto{font-size:.87rem}.label{text-transform:none;letter-spacing:0}.footer{border-color:var(--horizon-line)}.verdict{background:var(--horizon-raised);color:var(--horizon-text)}.verdict.bad{background:#3d2428;color:#ffc5b8}.steps li{min-width:0}.steps span{overflow-wrap:anywhere}.head-actions{gap:16px}
@media(max-width:46em){.wrap.narrow{width:calc(100% - 36px);margin-inline:auto}.proto{flex-direction:column;align-items:start;gap:12px}.ci-head{padding-block:30px 20px}.panel{padding:22px 18px}.host h2{font-size:1.9rem}.role-nav{padding-top:18px}.brand span{font-size:.55rem}.head-actions{gap:10px}.head-actions .back{font-size:.83rem}.host-grid{grid-template-columns:minmax(0,1fr)}.apts{grid-template-columns:minmax(0,1fr)}.apt{padding:14px 16px}.apt input{flex-shrink:0}.codes{grid-template-columns:minmax(70px,1fr) minmax(60px,1fr) 46px 32px!important}.codes input{width:100%;padding-inline:5px;font-size:.82rem}.steps{gap:6px}.steps li{font-size:.79rem}.steps li::before{width:27px;height:27px}.panel h2{font-size:1.6rem}.ci-head .lead{font-size:.96rem}.host .note{font-size:.8rem}.summary{grid-template-columns:minmax(80px,.7fr) minmax(0,1.3fr)}.site-header>.wrap{width:calc(100% - 30px)}.brand b{font-size:1.1rem}.lang-select{font-size:.8rem;max-width:110px}}
@media(max-width:46em){.steps li::before{width:100%;height:2px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Same typography and palette as the main Demo 4. */
:root{--paper:var(--horizon-bg);--surface:var(--horizon-panel);--ink:var(--horizon-text);--ink-2:var(--horizon-muted);--sea:var(--horizon-gold);--gold:var(--horizon-gold);--gold-soft:var(--horizon-gold);--line:var(--horizon-line);--wash:var(--horizon-panel);--band:var(--horizon-raised);--band-ink:var(--horizon-text);--focus:var(--horizon-gold);--danger:#ffb9a8;--danger-wash:#3d2428;--warn:#f1cc8b;--warn-wash:#352d21;--ok:#bce0cd;--ok-wash:#183431;--font-display:'Bodoni Moda',Georgia,serif;--field-bg:var(--horizon-bg)}
.panel,.guest,.host .panel{background:var(--horizon-panel);color:var(--horizon-text);border-color:var(--horizon-line)}
.panel,.guest{padding:26px}.grid{gap:22px 18px}.ci-head{padding-block:30px 20px}.role-nav{margin-bottom:18px}
.field input,.field select,.field textarea,.host input,.host textarea,.host select,.msgbox textarea{background:var(--horizon-bg);color:var(--horizon-text);border-color:var(--horizon-line);padding:12px;min-width:0}
.btn.primary,.host .btn.primary{background:var(--horizon-gold);color:var(--horizon-bg)}
.btn.primary:hover,.host .btn.primary:hover{background:#e5c58e;color:var(--horizon-bg)}
.btn.ghost{color:var(--horizon-text)}.textlink{color:var(--horizon-text)}
.apt:has(input:checked){background:#d2ae6e18;border:2px solid var(--horizon-gold);box-shadow:inset 0 0 0 1px var(--horizon-gold)}
.apt:has(input:checked)::after{content:'✓';color:var(--horizon-gold);position:absolute;right:12px;top:12px}.apt{position:relative;padding-right:32px}
.steps li::before{background:var(--horizon-line)}.steps li.done::before,.steps li[aria-current]::before{background:var(--horizon-gold)}
.xml{background:var(--horizon-bg)!important;color:var(--horizon-text)}
.host{--danger:#ffb9a8;--warn:#f1cc8b;--ok:#bce0cd}
.report th,.report td{border-color:var(--horizon-line)}.report .err,.err,.form-error{color:#ffb9a8}.warnmsg{color:#f1cc8b}.hint,.note,.lead{color:var(--horizon-muted)}
.birth-fields{display:grid;grid-template-columns:.8fr .8fr 1.3fr;gap:8px}.birth-fields input{width:100%;padding:12px 8px;text-align:center}.birth-fields label{display:block;font-size:.75rem;color:var(--horizon-muted);margin-bottom:6px}.birth-fields input[type=number]{appearance:textfield}.birth-fields input::-webkit-inner-spin-button{appearance:none}
.field label .required-mark{color:var(--horizon-gold)}.role-nav a[aria-current=page]{border-bottom-color:var(--horizon-gold);color:var(--horizon-gold)}
.summary dt{letter-spacing:.08em}.summary dd{min-width:0}.steps li[aria-current]{color:var(--horizon-gold)}
.field input::placeholder{color:#a1b0bc;opacity:1}.legal{color:var(--horizon-muted)}.msgbox,.verdict{color:var(--horizon-text)}
@media(max-width:620px){.panel,.guest{padding:20px 16px}.grid{gap:20px}.birth-fields{max-width:360px}.apts{gap:8px}.ci-head h1{font-size:2.5rem}.head-actions .back{display:none}}
@media(max-width:520px){.summary{grid-template-columns:1fr;gap:4px}.summary dd{margin-bottom:14px}.proto{padding:16px}.codes{font-size:.75rem}.panel h2{overflow-wrap:anywhere}}

.birth-fields[aria-invalid="true"] input{border-color:var(--danger)}
.field label .requirement{display:block;margin-top:3px;color:var(--horizon-muted);font-size:.72rem;font-weight:400}
