/* Odvozeno z GLASS: field, card, readsec a tlačítka schváleného prototypu v3. */
body{display:block;padding:0 0 env(safe-area-inset-bottom);font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.candidate-header,main,.contact,.actions,.save-bar{position:relative;z-index:1;width:min(100%,680px);margin-inline:auto;box-sizing:border-box}
.candidate-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--glass-border);color:var(--text-secondary)}
.brand-logo{width:109px;height:45px;object-fit:contain;padding:var(--sp-2);background:white;border-radius:var(--radius-sm)} /* bílý podklad dodaného loga */
.candidate-header .icon-btn{width:48px;height:48px;font-size:1.5rem;color:var(--text)}
main{padding:var(--sp-6) var(--sp-5);min-height:200px}
html.is-4k main{max-width:680px}
h1{font-size:clamp(1.5rem,4vw,1.9rem);line-height:1.25;margin-bottom:var(--sp-5);letter-spacing:-.02em}
h2{font-size:1.2rem;text-transform:none;letter-spacing:normal;color:var(--text);margin-block:var(--sp-4) var(--sp-3)}
h3{font-size:1rem;line-height:1.5;margin-bottom:var(--sp-2)}
p{margin:0 0 var(--sp-4)}
.sub,.field-hint,.contact,.muted{font-size:1rem;color:var(--text-secondary);line-height:1.6}
.eyebrow{color:var(--text-secondary);font-size:1rem;margin-bottom:var(--sp-4)}
.intro-steps{list-style:none;counter-reset:steps;margin:var(--sp-6) 0;padding:0}
.intro-steps li{counter-increment:steps;display:flex;gap:var(--sp-3);align-items:flex-start;margin-block:var(--sp-3)}
.intro-steps li::before{content:counter(steps);display:grid;place-items:center;border:1px solid var(--glass-border);border-radius:var(--radius-pill);min-width:28px;height:28px;color:var(--accent)}
.preparation,.upload-card,.notice,.repeated{padding:var(--sp-4);background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);margin-block:var(--sp-5)}
.preparation h2{font-size:1rem;margin:0 0 var(--sp-2)}
.preparation p:last-child,.notice p:last-child{margin-bottom:0}
.field{min-width:0;margin:0 0 var(--sp-5);padding:0;border:0}
.field label:not(.choice),.field legend{display:block;font-size:1rem;font-weight:650;color:var(--text);padding:0;margin-bottom:var(--sp-2)}
.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea,.plan-reason{display:block;width:100%;min-width:0;max-width:100%;min-height:48px;font:inherit;color:var(--text);background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--sp-3);box-sizing:border-box}
.field textarea,.plan-reason{min-height:100px;resize:vertical}
select{color-scheme:dark}select option{background:var(--bg-base);color:var(--text)}[data-theme=light] select{color-scheme:light}
.field-hint{margin:var(--sp-2) 0 0}.field-hint:empty{display:none}
.field-error,.error{color:var(--red);font-size:1rem;margin:var(--sp-2) 0}.field-error:empty,.error:empty{display:none}
[aria-invalid=true]{border-color:var(--red)!important}
.choice,.field .choice{display:flex;gap:var(--sp-3);align-items:flex-start;font-size:1rem;line-height:1.6;padding:var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-md);margin:var(--sp-2) 0;cursor:pointer;min-height:48px;color:var(--text)}
.choice:has(:checked){border-color:var(--accent);background:var(--accent-bg)}
.choice input{width:20px;height:20px;flex:0 0 20px;margin-top:3px;accent-color:var(--accent)}
.choice:has(:disabled){opacity:.65;cursor:default}
.btn{min-height:48px;font-size:1rem;white-space:normal;justify-content:center;line-height:1.4}
.btn:disabled{cursor:default}
.contact{padding:var(--sp-5);border-top:1px solid var(--border);font-size:1rem}.contact p{margin:var(--sp-1) 0}.contact a{color:var(--accent);display:inline-block;min-height:44px;padding-block:var(--sp-2)}
.actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-4) var(--sp-5) var(--sp-6);border-top:1px solid var(--glass-border)}
.candidate-dock{position:sticky;bottom:0;z-index:5;width:min(100%,680px);margin-inline:auto;background:var(--bg-base);padding-bottom:env(safe-area-inset-bottom)}
/* The dock keeps its place in document flow. The final line remains scrollable above it. */
.candidate-dock .actions{margin-bottom:0}
.actions .btn-primary{flex:1}.save-bar{padding:var(--sp-3) var(--sp-5);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.save-bar p{margin:0;flex:1;font-size:1rem;color:var(--text-secondary)}
.save-bar.problem{background:var(--orange-bg)}.save-bar.problem p{color:var(--text)}
.overview-list{display:grid;gap:var(--sp-3);margin-block:var(--sp-5)}.overview-list .btn{justify-content:space-between;text-align:left}
.readsec,.policy-chapter{margin-block:var(--sp-4);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--bg-surface)}
summary{padding:var(--sp-4);cursor:pointer;font-weight:650;min-height:48px}
.readsec>div,.policy-chapter>div{padding:0 var(--sp-4) var(--sp-4)}.policy-text{white-space:pre-wrap;line-height:1.8}
.values{margin:0}.values>div{padding-block:var(--sp-3);border-bottom:1px solid var(--border)}.values dt{color:var(--text-secondary)}.values dd{margin:var(--sp-1) 0 0;white-space:pre-wrap}
.repeated legend{padding-inline:var(--sp-2);font-weight:650}.repeat-block{margin-bottom:var(--sp-5)}
.doc-status{font-weight:650;color:var(--green)}.upload-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.upload-actions .btn{flex:1}.file-preview{max-width:100%;max-height:280px;object-fit:contain;border-radius:var(--radius-sm)}
.upload-card{position:relative;margin-block:var(--sp-4)}
.upload-card h2{margin-top:0}
.file-pick{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.file-button{display:flex;width:100%;min-height:48px;box-sizing:border-box;cursor:pointer}
.file-pick:focus-visible + .file-button{outline:3px solid var(--accent);outline-offset:3px}
.doc-pending{color:var(--text-secondary)}
.upload-card details{margin-top:var(--sp-2)}
.upload-card summary{padding:var(--sp-3) 0;font-weight:400}
.selected-file{margin-top:var(--sp-3)}
.selected-name{margin-bottom:var(--sp-2);overflow-wrap:anywhere}
.signature{width:100%;height:auto;aspect-ratio:700/240;display:block;background:white;border:2px solid var(--accent);border-radius:var(--radius-md);touch-action:none} /* bílá podpisová plocha: kontrakt A */
.signature.locked{opacity:.4;touch-action:auto}.signature-tools{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-block:var(--sp-3)}
.error-list{padding:var(--sp-4);border:1px solid var(--red);border-radius:var(--radius-md);margin-block:var(--sp-4)}.error-list ul{padding-left:var(--sp-5)}
.skip-link{position:absolute;left:var(--sp-4);top:-100px;z-index:10;background:var(--bg-base);padding:var(--sp-3)}.skip-link:focus{top:var(--sp-2)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
@media(min-width:860px){body{padding-top:var(--sp-6)}.candidate-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.candidate-header,main,.contact,.save-bar,.actions{background:var(--bg-surface)}.actions{border-radius:0 0 var(--radius-lg) var(--radius-lg);margin-bottom:var(--sp-8)}}
@media(max-width:480px){main{padding-top:var(--sp-5)}.candidate-header{padding:var(--sp-3) var(--sp-5)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
