/* Adatbekérő UI v13 — közös, mobilra optimalizált megjelenés. A márkaszínek a :root tokenekben vannak. */
:root{--brand:#0D6EFD;--brand-strong:#0A56C9;--brand-deep:#0A2550;--brand-bright:#7DBBFF;--brand-soft:#EAF3FF;--brand-tint:#CFE0F7;--brand-ring:rgba(13,110,253,.16);--ink:#12233F;--ink-2:#33445E;--muted:#5E6E86;--line:#DCE6F2;--line-strong:#C5D5E8;--paper:#F1F5FA;--ok:#11703D;--ok-soft:#EAF7EF;--ok-line:#C3E6D1;--danger:#B42318;--danger-soft:#FEF1EF;--danger-line:#F6CBC5;--warn:#8A5D00;--warn-soft:#FFF4D9;color-scheme:light}
@font-face{font-family:"Label Cn";src:url("/assets/fonts/label-cn-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;background:var(--paper);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:var(--brand-strong)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--brand-bright);outline-offset:2px}
.vh{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;padding:0!important;margin:-1px!important}
[hidden]{display:none!important}

/* ---------- Fejléc sáv ---------- */
.band{position:relative;overflow:hidden;color:#fff;background:linear-gradient(165deg,var(--brand-deep) 0%,var(--brand-strong) 72%,var(--brand) 118%);padding:calc(14px + env(safe-area-inset-top)) 0 76px}
.band-inner{position:relative;z-index:1;width:min(680px,100% - 32px);margin:0 auto}
.route{position:absolute;inset:auto -40px -10px auto;width:min(560px,120vw);height:auto;opacity:.5;pointer-events:none;z-index:0}
.route path{fill:none;stroke:var(--brand-bright);stroke-width:3;stroke-linecap:round;stroke-dasharray:2 12}
.route circle{fill:var(--brand-bright)}
.route .pin{fill:none;stroke:var(--brand-bright);stroke-width:3}
@media (prefers-reduced-motion:no-preference){
  .route path{animation:route-draw 1.6s cubic-bezier(.2,.7,.2,1) both}
  .route .end{animation:route-pop .5s 1.35s cubic-bezier(.2,.9,.3,1.4) both;transform-origin:center;transform-box:fill-box}
}
@keyframes route-draw{from{stroke-dashoffset:520}to{stroke-dashoffset:0}}
@keyframes route-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}

.label-chip{display:inline-flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:8px 12px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.label-chip img{height:34px;width:auto;object-fit:contain}
.label-chip .co{max-width:170px}
.label-chip .co-square{height:52px;margin:-9px -2px}
.label-chip .kifli{height:48px;margin:-8px -4px}
.label-chip .sep{width:1px;align-self:stretch;background:#e2e6ea}
.band h1{font-family:"Label Cn","Arial Narrow","Roboto Condensed",sans-serif;font-weight:700;font-size:clamp(38px,10.5vw,58px);line-height:.98;letter-spacing:-.005em;margin:26px 0 10px;max-width:14ch}
.band .lede{margin:0;max-width:34ch;font-size:17px;line-height:1.45;color:rgba(255,255,255,.86)}
.band-small{padding-bottom:88px}
.band-small h1{font-size:clamp(32px,8vw,44px);margin-top:22px}

/* ---------- Lap (űrlap kártya) ---------- */
.sheet{position:relative;z-index:2;width:min(680px,100% - 20px);margin:-48px auto 0;background:#fff;border-radius:22px;box-shadow:0 1px 0 var(--line),0 24px 60px -28px rgba(10,20,30,.35);padding:26px 22px 8px}
.sheet-tight{padding-bottom:22px}

fieldset{border:0;margin:0;padding:0;min-width:0}
.block+.block{margin-top:30px;padding-top:26px;border-top:1.5px dashed var(--line)}
legend{float:left;width:100%}
legend+*{clear:both}
legend,.block-title{font-family:"Label Cn","Arial Narrow",sans-serif;font-weight:700;font-size:24px;line-height:1.1;margin:0 0 4px;padding:0;color:var(--ink)}
.block-sub{margin:0 0 2px;color:var(--muted);font-size:14.5px}

.field{margin-top:18px}
.field label,.lbl{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-weight:650;font-size:15px;margin-bottom:7px;color:var(--ink)}
.opt{font-weight:500;font-size:13px;color:var(--muted)}
.control{position:relative}
.control .ico{position:absolute;left:15px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.control input,.input{width:100%;height:56px;border:1.5px solid var(--line-strong);border-radius:14px;background:#fff;padding:0 16px 0 46px;font-size:17px;outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.input{padding-left:16px}
.control input::placeholder,.input::placeholder,textarea::placeholder{color:#9aa4b0}
.control input:focus,.input:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring)}
.control input:focus+.ico,.control:focus-within .ico{color:var(--brand)}
.field.invalid input{border-color:var(--danger)}
.field.invalid .ico{color:var(--danger)}
textarea{width:100%;min-height:104px;border:1.5px solid var(--line-strong);border-radius:14px;padding:13px 16px;font-size:16px;resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s}
.help{margin:7px 0 0;font-size:13.5px;color:var(--muted);line-height:1.4}
.field-msg,.error{display:none;margin:8px 0 0;font-size:14px;line-height:1.4;color:var(--danger);font-weight:600}
.field-msg.show,.error.show{display:block}
.field-msg:empty{display:none!important}
.field-msg.info{color:var(--brand-strong)}

/* ---------- Fotó választó ---------- */
.photo{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:start}
.photo-frame{position:relative;width:104px;height:130px;border-radius:16px;background:var(--brand-soft);border:1.5px dashed var(--brand-tint);overflow:hidden;display:grid;place-items:center;color:var(--brand)}
.photo-frame svg{width:58px;height:58px;opacity:.75}
.photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-frame.has-img{border-style:solid;border-color:var(--brand)}
.photo-frame .busy{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.75);font-size:13px;font-weight:700;color:var(--brand-strong)}
.photo-title{margin:2px 0 4px;font-weight:650}
.photo .help{margin-top:0}
.photo-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.btn-soft{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border-radius:12px;border:1.5px solid var(--brand-tint);background:var(--brand-soft);color:var(--brand-strong);font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent}
.btn-soft:hover{border-color:var(--brand)}
.btn-soft svg{width:18px;height:18px}
.photo-name{margin:10px 0 0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-name.ok{color:var(--ok);font-weight:650}
.photo.invalid .photo-frame{border-color:var(--danger)}

/* ---------- Jelölőnégyzet ---------- */
.check{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.45;color:var(--ink-2);cursor:pointer}
.check input{flex:0 0 auto;width:22px;height:22px;margin:1px 0 0;accent-color:var(--brand)}

/* ---------- Beküldés ---------- */
.submit-bar{position:sticky;bottom:0;z-index:5;margin:26px -22px 0;padding:14px 22px calc(14px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);border-radius:0 0 22px 22px}
.hint{display:block;min-height:0;margin:0 0 8px;font-size:13.5px;color:var(--muted);text-align:center}
.hint:empty{display:none}
.btn-primary,#submitBtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;border:0;border-radius:15px;background:var(--brand);color:#fff;font-size:17px;font-weight:750;letter-spacing:.005em;cursor:pointer;box-shadow:0 10px 22px -10px var(--brand);transition:transform .08s ease,filter .15s;-webkit-tap-highlight-color:transparent;text-decoration:none}
.btn-primary:hover,#submitBtn:hover{filter:brightness(1.06)}
.btn-primary:active,#submitBtn:active{transform:translateY(1px)}
.btn-primary[disabled],#submitBtn[disabled]{background:#b9c2cc;box-shadow:none;cursor:not-allowed}
.btn-primary .spin,#submitBtn .spin{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-alert{display:none;margin:12px 0 0;padding:12px 14px;border-radius:12px;font-size:14.5px;line-height:1.45}
.form-alert.show{display:block}
.form-alert.bad{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-line)}
.form-alert.good{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-line)}

form:has(input:not([type=checkbox]):not([type=file]):focus,textarea:focus) .submit-bar{position:static}
.control input,.input,textarea{scroll-margin:120px 0 140px}

/* ---------- Értesítő sáv (újbóli megerősítés) ---------- */
.callout{display:flex;gap:12px;margin:0 0 22px;padding:14px 16px;border-radius:14px;background:var(--brand-soft);border:1px solid var(--brand-tint);color:var(--ink);font-size:14.5px;line-height:1.5}
.callout svg{flex:0 0 22px;width:22px;height:22px;color:var(--brand)}
.callout strong{display:block;margin-bottom:2px}

/* ---------- Lábléc ---------- */
.foot{width:min(680px,100% - 32px);margin:22px auto 0;padding:0 0 calc(30px + env(safe-area-inset-bottom));color:var(--muted);font-size:13px;line-height:1.5;text-align:center}

/* ---------- Köszönő / 404 ---------- */
.done{text-align:center;padding:34px 22px 30px}
.done-mark{width:76px;height:76px;margin:-72px auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;border:6px solid #fff;box-shadow:0 10px 24px -8px var(--brand)}
.done-mark svg{width:34px;height:34px}
.done h2{font-family:"Label Cn","Arial Narrow",sans-serif;font-size:32px;line-height:1.05;margin:0 0 10px}
.done p{margin:0 auto 10px;max-width:38ch;color:var(--muted)}
.done .btn-soft{margin-top:14px}
.next{margin:22px 0 0;padding:16px;border-radius:14px;background:var(--paper);text-align:left;font-size:14.5px;color:var(--ink-2)}
.next ul{margin:0;padding-left:20px}
.next li+li{margin-top:6px}

/* ---------- Asztali nézet ---------- */
@media (min-width:760px){
  .band{padding-top:30px;padding-bottom:96px}
  .band .lede{font-size:18px}
  .sheet{margin-top:-64px;padding:36px 40px 10px;border-radius:26px}
  .submit-bar{position:static;margin:30px -40px 0;padding:20px 40px 26px;background:transparent;border-top:1.5px dashed var(--line);backdrop-filter:none;-webkit-backdrop-filter:none}
  .btn-primary,#submitBtn{width:auto;min-width:260px;margin-left:auto;padding:0 28px}
  .hint{text-align:right}
  .row-2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
  .row-2 .field{margin-top:18px}
  .photo{grid-template-columns:120px 1fr;gap:20px}
  .photo-frame{width:120px;height:150px}
}
@media (max-width:380px){
  .band h1{font-size:36px}
  .sheet{padding-left:16px;padding-right:16px}
  .submit-bar{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .photo{grid-template-columns:86px 1fr;gap:12px}
  .photo-frame{width:86px;height:108px}
  .label-chip img{height:28px}.label-chip .co-square{height:38px}.label-chip .kifli{height:42px}
}

/* ---------- Dokumentumportál ---------- */
body.portal .band{padding-bottom:84px}
body.portal .band h1{max-width:18ch}
.portal-main{position:relative;z-index:2;width:min(980px,100% - 20px);margin:-60px auto 0}
.portal-main.loading,.portal-main.error-card{background:#fff;border-radius:22px;padding:34px 22px;box-shadow:0 24px 60px -28px rgba(10,20,30,.35);text-align:center;color:var(--muted)}
.portal-main.error-card{text-align:left}
.portal-main.error-card h1{font-family:"Label Cn","Arial Narrow",sans-serif;font-size:30px;margin:6px 0 8px;color:var(--ink)}
.portal-main .hero{background:#fff;border-radius:22px;padding:24px 22px;box-shadow:0 24px 60px -28px rgba(10,20,30,.35)}
.portal-main .eyebrow{font-size:14px;font-weight:700;color:var(--brand-strong)}
.portal-main .hero h1{font-family:"Label Cn","Arial Narrow",sans-serif;font-size:clamp(30px,7vw,42px);line-height:1.02;margin:4px 0 10px}
.portal-main .lead{margin:0;color:var(--muted);max-width:62ch}
.portal-main .hero-grid{display:grid;gap:18px;margin-top:20px}
.portal-main .progress-line{height:10px;border-radius:99px;background:var(--brand-soft);overflow:hidden}
.portal-main .progress-line>span{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .4s ease}
.portal-main .progress-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:14px;color:var(--muted)}
.portal-main .progress-meta strong{color:var(--ink)}
.portal-main .summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.portal-main .summary-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:12px;border:1px solid var(--line);font-size:13px;font-weight:650;color:var(--ink-2);min-width:0}
.portal-main .summary-item span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal-main .summary-item.done{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}
.portal-main .tick{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--paper);font-size:12px}
.portal-main .summary-item.done .tick{background:var(--ok);color:#fff}
.portal-main .contract{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding:20px 22px;border-radius:20px;background:var(--brand-deep);color:#fff}
.portal-main .contract-copy{display:flex;gap:14px}
.portal-main .contract-icon{flex:0 0 44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:22px}
.portal-main .contract h2{font-family:"Label Cn","Arial Narrow",sans-serif;font-size:22px;margin:0 0 4px}
.portal-main .contract p{margin:0;color:rgba(255,255,255,.8);font-size:14.5px}
.portal-main .contract-btn{display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:13px;background:#fff;color:var(--brand-deep);font-weight:750;text-decoration:none}
.portal-main .section-title{margin:28px 4px 12px}
.portal-main .section-title h2{font-family:"Label Cn","Arial Narrow",sans-serif;font-size:24px;margin:0 0 4px}
.portal-main .section-title p{margin:0;color:var(--muted);font-size:14.5px}
.portal-main .grid{display:grid;gap:12px}
.portal-main .card{background:#fff;border-radius:18px;padding:18px;border:1px solid var(--line);min-width:0}
.portal-main .doc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.portal-main .doc-title{display:flex;gap:12px;min-width:0}
.portal-main .doc-icon{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-strong);font-weight:800}
.portal-main .doc-head h3{margin:0 0 3px;font-size:17px}
.portal-main .doc-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}
.portal-main .state{flex:0 0 auto;font-size:12.5px;font-weight:700;padding:5px 10px;border-radius:99px;white-space:nowrap}
.portal-main .state.done{background:var(--ok-soft);color:var(--ok)}
.portal-main .state.open{background:var(--warn-soft);color:var(--warn)}
.portal-main .saved{margin-top:14px;padding:11px 13px;border-radius:12px;background:var(--ok-soft);color:var(--ok);font-size:13.5px;word-break:break-word}
.portal-main .saved strong{display:block}
.portal-main .locked-note{margin-top:12px;font-size:13.5px;color:var(--muted)}
.portal-main .upload-zone{display:block;margin-top:14px;padding:16px;border:1.5px dashed var(--brand-tint);border-radius:14px;background:var(--brand-soft);cursor:pointer}
.portal-main .upload-zone input{width:100%;font-size:14px}
.portal-main .upload-zone input::file-selector-button{margin-right:10px;border:0;border-radius:10px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:700;cursor:pointer}
.portal-main .file-meta{margin-top:8px;font-size:13px;color:var(--muted);word-break:break-word}
.portal-main .actions{display:flex;gap:10px;margin-top:12px}
.portal-main .btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 18px;border:0;border-radius:13px;background:var(--paper);color:var(--ink);font-weight:700;cursor:pointer;width:100%}
.portal-main .btn.primary{background:var(--brand);color:#fff}
.portal-main .btn:disabled{opacity:.55;cursor:not-allowed}
.portal-main .input{margin-top:14px;padding-left:16px}
.portal-main .help{font-size:13px}
.portal-main .footer{margin:26px 4px 0;padding:16px 0 calc(28px + env(safe-area-inset-bottom));border-top:1.5px dashed var(--line);color:var(--muted);font-size:13.5px}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,100% - 28px);padding:14px 16px;border-radius:14px;background:var(--brand-deep);color:#fff;font-size:15px;box-shadow:0 18px 40px rgba(0,0,0,.25);display:none;z-index:50}
@media (min-width:760px){
  .portal-main .hero{padding:32px 36px}
  .portal-main .hero-grid{grid-template-columns:1fr 330px;align-items:end}
  .portal-main .contract{flex-direction:row;align-items:center;justify-content:space-between}
  .portal-main .contract-btn{padding:0 20px;white-space:nowrap}
  .portal-main .grid{grid-template-columns:1fr 1fr}
  .portal-main .card.full{grid-column:1/-1}
  .portal-main .btn{width:auto}
}

/* ---------- Koordinátori dokumentumbekérő ---------- */
.inline-msg{margin:0 0 12px;padding:12px 14px;border-radius:12px;background:var(--brand-soft);color:var(--ink-2);font-size:14.5px;line-height:1.45}
.inline-msg:empty{display:none}
.doc-progress-wrap{margin:0 0 22px}
.doc-progress{height:10px;border-radius:99px;background:var(--brand-soft);overflow:hidden}
.doc-progress span{display:block;height:100%;width:0;background:var(--brand);border-radius:inherit;transition:width .3s ease}
.doc-progress-text{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:14px;color:var(--muted)}
.doc-progress-text strong{color:var(--ink)}
.doc-upload-grid{display:grid;gap:12px}
.upload-card{position:relative;display:flex;flex-direction:column;gap:4px;min-height:132px;padding:16px;border:1.5px dashed var(--brand-tint);border-radius:16px;background:var(--brand-soft);cursor:pointer;margin:0}
.upload-card:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring)}
.upload-card input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.upload-kicker{font-size:13px;font-weight:700;color:var(--brand-strong)}
.upload-card strong{font-size:18px}
.upload-card small{color:var(--muted);font-size:13.5px;line-height:1.4}
.upload-state{align-self:flex-start;margin-top:auto;padding:6px 11px;border-radius:99px;background:#fff;color:var(--brand-strong);font-size:13px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-card.selected{border-style:solid;border-color:var(--brand)}
.upload-card.uploaded{border-style:solid;border-color:var(--ok-line);background:var(--ok-soft)}
.upload-card.uploaded .upload-state{color:var(--ok)}
@media (min-width:760px){.doc-upload-grid{grid-template-columns:1fr 1fr}}
