/* ============================================================
   Videó projektek — csapat felület és ügyfélportál
   ============================================================ */
.v-ell{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* lista */
.v-shoots{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:20px}
.v-shoot{display:flex;align-items:center;gap:12px;cursor:pointer;padding:14px}
.v-shoot b{font-size:14px}
.v-shoot .muted{font-size:12.5px;margin-top:2px}
.v-date{flex:none;width:48px;height:52px;border-radius:14px;background:var(--forest);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.v-date b{font-size:20px;font-weight:800}
.v-date span{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;opacity:.75;margin-top:3px}
.v-crew{display:flex;flex:none}
.v-crew .avatar{margin-left:-6px;box-shadow:0 0 0 2px var(--surface)}
.v-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px}
.v-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.v-card{cursor:pointer;display:flex;flex-direction:column;gap:10px}
.v-card:hover{transform:translateY(-2px)}
.v-card-h{display:flex;align-items:center;gap:8px;font-size:12.5px;min-width:0}
.v-card h3{font-size:17px;font-weight:800;letter-spacing:-.3px;line-height:1.25}
.v-dots{display:flex;gap:4px}
.v-dots i{flex:1;height:6px;border-radius:99px;background:var(--surface-3)}
.v-dots i.ok{background:var(--green)}
.v-dots i.cur{background:var(--client)}
.v-now{font-size:13px;font-weight:700;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.v-now .muted{font-weight:500}
.v-flags{display:flex;flex-wrap:wrap;gap:5px}

/* részletek: lépések */
.v-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:16px;background:var(--surface);border-radius:18px;padding:6px;box-shadow:var(--tile-shadow)}
.v-step{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:13px;font-size:13px;font-weight:600;color:var(--muted);min-width:0;text-align:left}
.v-step:hover{background:var(--surface-2)}
.v-step.on{background:var(--text);color:var(--bg)}
.v-step-n{flex:none;width:24px;height:24px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;background:var(--surface-3);color:var(--muted)}
.v-step.ok .v-step-n{background:var(--green);color:#fff}
.v-step.cur .v-step-n{background:var(--client);color:#fff}
.v-step-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v-badge{display:inline-flex;min-width:18px;height:18px;border-radius:99px;background:var(--danger);color:#fff;font-size:10.5px;align-items:center;justify-content:center;padding:0 5px}
.v-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.v-side{position:sticky;top:16px}
.v-main > .tile + .tile, .v-main > .tile{margin-bottom:14px}
.v-kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:7px 0;border-top:1px solid var(--border)}
.v-kv span{color:var(--muted)}
.v-sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.v-sec-h h2{font-size:18px;font-weight:800;letter-spacing:-.3px;display:flex;align-items:center;gap:9px}
.v-sec-h h2 i{color:var(--green)}
.v-saved{font-size:12px;color:var(--muted);white-space:nowrap}
.v-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.v-linkrow{display:flex;gap:6px}
.v-linkrow .input{flex:1;min-width:0}
.v-check{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer;padding:10px 12px;border-radius:12px;background:var(--surface-2);margin-top:6px}
.v-check input{accent-color:var(--green);width:18px;height:18px;flex:none}
.v-check.sm{background:none;padding:3px 0;font-size:13px;margin:0}
.v-check.sm input{width:15px;height:15px}
.v-check.sm input:checked + span{text-decoration:line-through;color:var(--muted)}
.v-hint{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border-radius:12px;background:var(--plan-bg);color:var(--text-2);font-size:13px;margin:4px 0 14px}
.v-hint i{color:var(--plan)}
.v-hint.warn{background:var(--client-bg)}
.v-hint.warn i{color:var(--client)}
.v-internal{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface-2);padding:8px 12px;border-radius:10px}
.v-next{display:flex;justify-content:flex-end;margin-top:16px}
.owner-tag{background:var(--surface-3);color:var(--muted)}
.sb .owner-tag{background:rgba(255,255,255,.12);color:rgba(255,255,255,.7)}

/* brand */
.v-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.v-color{border-radius:14px;background:var(--surface-2);padding:8px;display:flex;flex-direction:column;gap:6px}
.v-swatch{height:64px;border-radius:10px;cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.v-swatch input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.v-cname{height:32px;font-weight:700}
.v-hex{display:flex;gap:4px;align-items:center}
.v-hex .input{height:32px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;flex:1;min-width:0}
.v-fonts{display:flex;flex-direction:column;gap:10px}
.v-font{border-radius:14px;background:var(--surface-2);padding:12px}
.v-font-prev{font-size:26px;line-height:1.2;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v-font-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.v-font-meta .input{flex:1;min-width:160px;height:32px}

/* scriptek, leadás */
.v-video{margin-bottom:14px}
.v-video-h{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.v-num{flex:none;width:28px;height:28px;border-radius:9px;background:var(--forest);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.v-title{flex:1;min-width:160px;font-weight:700;height:36px}
.vpill[data-phase="late"]{background:var(--danger-bg);color:var(--danger)}
.v-video textarea{font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.55}
.v-script-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 10px;font-size:12.5px;flex-wrap:wrap}
.v-fb{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.v-fb-i{padding:9px 12px;border-radius:12px;background:var(--surface-2);font-size:13px}
.v-fb-i.cl.changes{background:var(--client-bg)}
.v-fb-i .flag{margin-left:4px}
.v-fb-i p{margin-top:4px;white-space:pre-wrap;color:var(--text-2)}
.v-reply{display:flex;gap:6px;margin-top:6px}
.v-reply .input{height:34px;flex:1}
.v-acts{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;font-size:13px}
.v-ok{color:var(--ok);font-weight:700}
.v-done{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.v-done .em{font-size:30px}
.v-done b{display:block}

/* forgatás */
.v-pack{padding:0 2px}
.v-cal{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px;border-radius:14px;background:var(--green-50);margin:6px 0 10px}
.v-cal > div:first-child{display:flex;flex-direction:column;gap:3px;font-size:12.5px;flex:1;min-width:220px}
.v-cal b{font-size:14px}
.v-cal-btns{display:flex;gap:6px}
[data-theme="dark"] .v-cal{background:color-mix(in srgb,var(--green) 12%,transparent)}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .v-cal{background:color-mix(in srgb,var(--green) 12%,transparent)} }

/* feladatok */
.v-task{display:flex;align-items:center;gap:10px;padding:9px 6px;border-radius:12px;cursor:pointer}
.v-task:hover{background:var(--surface-2)}
.v-task b{font-size:13.5px}
.v-task .muted{font-size:12px}

@media (max-width:1100px){
  .v-layout{grid-template-columns:1fr}
  .v-side{position:static}
  .v-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  .v-steps{display:flex;overflow-x:auto;scrollbar-width:none}
  .v-step{flex:none}
  .v-step:not(.on) .v-step-l{display:none}
  .v-cal-btns{width:100%}
  .v-cal-btns .btn-primary{flex:1}
}

/* ── ügyfélportál ─────────────────────────────────────────── */
.p-vnudge{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;text-align:left;cursor:pointer;color:var(--text)}
.p-vnudge b{display:block;font-size:14.5px}
.p-vnudge small{color:var(--muted);font-size:12.5px}
.p-vnudge-ic{flex:none;width:40px;height:40px;border-radius:13px;background:var(--client-bg);color:var(--client);display:flex;align-items:center;justify-content:center;font-size:17px}
.p-vproj .p-body{padding-bottom:14px}
.p-vsteps{display:flex;gap:4px;margin-bottom:14px}
.p-vsteps span{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted);text-align:center;min-width:0}
.p-vsteps span > i{width:26px;height:26px;border-radius:99px;display:flex;align-items:center;justify-content:center;background:var(--surface-3);font-style:normal;font-weight:800;font-size:11.5px}
.p-vsteps span.ok > i{background:var(--green);color:#fff}
.p-vsteps span.cur{color:var(--text)}
.p-vsteps span.cur > i{background:var(--brand,var(--client));color:#fff}
.p-vshoot{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border-radius:14px;background:var(--surface-2);font-size:13.5px}
.p-vshoot > i{color:var(--brand,var(--green));margin-top:3px}
.p-vshoot span{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.p-vmeta{font-size:12.5px;color:var(--muted);margin-top:10px}
.p-vvid{border-top:1px solid var(--border);padding:14px 18px 4px}
.p-vvid-h{display:flex;align-items:center;gap:8px;font-size:15px;margin-bottom:10px}
.p-vvid-h i{color:var(--muted)}
.p-vwait{font-size:13px;color:var(--muted);padding:0 0 12px}
.p-vblk{margin-bottom:12px}
.p-vblk-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.p-vscript{white-space:pre-wrap;font-size:14px;line-height:1.6;background:var(--surface-2);border-radius:14px;padding:12px 14px;margin:8px 0;max-height:420px;overflow:auto}
.p-vscript ins{background:var(--ok-bg);color:var(--ok);text-decoration:none;border-radius:4px;padding:0 2px}
.p-vscript del{color:var(--danger);opacity:.7}
.p-vreq{font-size:13px;background:var(--client-bg);border-radius:12px;padding:9px 12px;margin-bottom:8px}
.p-vplayer{aspect-ratio:9/16;max-height:520px;width:100%;border-radius:14px;overflow:hidden;background:#000;margin:6px 0 8px}
.p-vplayer iframe{width:100%;height:100%;border:0}
.p-vteam{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.p-vteam > div{font-size:12.5px;color:var(--muted);background:var(--surface-2);border-radius:12px;padding:8px 12px}
.p-vteam p{color:var(--text);font-size:13.5px;margin-top:2px}
.p-vform{margin-top:8px}
.p-vblk .p-acts{padding:12px 0 4px}
.p-vblk .p-rounds{margin:6px 0 0}
/* négy fül telefonon: vízszintesen görgethető, nem vágódik le */
@media (max-width:520px){
  .p-tabs{overflow-x:auto;scrollbar-width:none}
  .p-tabs::-webkit-scrollbar{display:none}
  .p-tabs button{flex:1 0 auto;padding:0 10px}
}
.p-vmore summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);padding:2px 0}

/* ── snittlista ─────────────────────────────────────────── */
.v-shots{margin:10px 0;border-radius:14px;background:var(--surface-2);padding:10px 12px}
.v-shots summary{cursor:pointer;font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:8px}
.v-shots summary .muted{font-weight:500;font-size:12.5px}
.v-shot-h,.v-shot{display:grid;grid-template-columns:52px minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 30px;gap:6px;align-items:center}
.v-shot-h{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:10px 0 4px}
.v-shot{margin-bottom:6px}
.v-shot .input{height:34px;font-size:13px}
.v-shot.done .input{color:var(--muted);text-decoration:line-through}
.v-shot-ok{display:flex;align-items:center;gap:6px;font-size:12.5px;cursor:pointer}
.v-shot-ok input{accent-color:var(--green);width:17px;height:17px}
.v-shot-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
@media (max-width:820px){
  .v-shot-h{display:none}
  .v-shot{grid-template-columns:44px minmax(0,1fr) 30px;padding:8px 0;border-top:1px solid var(--border)}
  .v-shot .input:nth-of-type(n+2){grid-column:2}
}

/* ── „Változtatva” pipák ─────────────────────────────────── */
.v-note{display:flex;align-items:flex-start;gap:8px;margin-top:6px;cursor:pointer;color:var(--text-2)}
.v-note input{accent-color:var(--green);margin-top:3px;flex:none}
.v-note span:last-of-type{flex:1;white-space:pre-wrap}
.v-note em{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);opacity:0;white-space:nowrap}
.v-note:hover em,.v-note input:checked ~ em{opacity:1}
.v-note input:checked ~ em{color:var(--ok)}
.v-note input:checked ~ span{text-decoration:line-through;color:var(--muted)}
.v-tc,.p-tc{flex:none;font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700;background:var(--text);color:var(--bg);border-radius:6px;padding:1px 6px;height:fit-content}
.v-daybtn{width:100%;justify-content:flex-start;margin-bottom:14px}

/* ── forgatási nap (telefonra) ───────────────────────────── */
.vd{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.vd > .btn-subtle{align-self:flex-start}
.vd-hero{background:var(--forest);color:#fff;border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:6px}
.vd-client{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.85}
.vd-hero h2{font-size:24px;font-weight:900;letter-spacing:-.6px;line-height:1.1}
.vd-when{font-size:14px;opacity:.9;display:flex;flex-direction:column}
.vd-when b{font-size:30px;font-weight:900;letter-spacing:-.8px;opacity:1}
.vd-where{font-size:14px;opacity:.9}
.vd-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.vd-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:78px;border-radius:18px;background:var(--surface);box-shadow:var(--tile-shadow);color:var(--text);font-size:13px;font-weight:700;text-decoration:none;padding:8px;text-align:center}
.vd-act i{font-size:22px;color:var(--green)}
.vd-act span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vd-note{background:var(--client-bg);border-radius:16px;padding:12px 14px;font-size:14px;display:flex;gap:10px}
.vd-note i{color:var(--client);margin-top:3px}
.vd-crew{display:flex;flex-wrap:wrap;gap:8px}
.vd-crew span{display:flex;align-items:center;gap:6px;background:var(--surface);box-shadow:var(--tile-shadow);border-radius:99px;padding:4px 12px 4px 4px;font-size:13px;font-weight:600}
.vd-sec{background:var(--surface);box-shadow:var(--tile-shadow);border-radius:20px;padding:14px}
.vd-sec-h{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:8px}
.vd-sec-h span{font-size:13px;font-weight:700;color:var(--muted)}
.vd-sec-h i{color:var(--green);margin-right:4px}
.vd-bar{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin-bottom:8px}
.vd-bar i{display:block;height:100%;background:var(--green);border-radius:99px;transition:width .3s}
.vd-group{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
.vd-item{display:flex;gap:12px;align-items:flex-start;padding:11px 4px;border-top:1px solid var(--border);cursor:pointer;min-height:48px}
.vd-item input{accent-color:var(--green);width:22px;height:22px;flex:none;margin-top:1px}
.vd-item span{display:flex;flex-direction:column;gap:2px;font-size:15px}
.vd-item small{font-size:12.5px;color:var(--muted)}
.vd-item.done b{text-decoration:line-through;color:var(--muted)}
.vd-script{border-top:1px solid var(--border);padding:10px 0}
.vd-script summary{cursor:pointer;font-weight:700;font-size:14.5px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.vd-script pre{white-space:pre-wrap;font-family:inherit;font-size:14.5px;line-height:1.6;margin:10px 0}
.vd-p{font-size:14px;color:var(--text-2)}
.vd-colors{display:flex;gap:6px;margin-top:10px}
.vd-colors span{width:34px;height:34px;border-radius:10px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.vd-done{height:52px;font-size:15px;border-radius:16px}

/* ── ügyfélportál: időkódok ─────────────────────────────── */
.p-tchint{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.p-tclist{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.p-tcrow{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:12px;padding:6px 6px 6px 10px;font-size:13.5px}
.p-tcrow span:nth-child(2){flex:1}
.p-tcadd{display:flex;gap:6px;margin-bottom:14px}
.p-tcadd .input{height:42px}
.p-tcadd .input:nth-child(2){flex:1;min-width:0}
.p-tcin{width:72px;flex:none;text-align:center;font-family:ui-monospace,Menlo,monospace}
.p-tcdone{display:flex;gap:8px;align-items:flex-start;margin-top:6px;font-size:13px}
.p-tcdone > i{color:var(--muted);margin-top:3px;font-size:11px}
.p-tcdone.ok > i{color:var(--ok);font-size:13px}
.v-video textarea.v-shotlist{font-family:inherit;font-size:14px;line-height:1.6;margin-top:10px}
.v-shot-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:12px}
.vd-group span{float:right;letter-spacing:0}

/* ── fontos kérések ─────────────────────────────────────── */
.v-req{border-radius:14px;padding:12px 14px;margin:0 0 14px;background:var(--danger-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 25%,transparent)}
.v-req-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;font-size:13.5px}
.v-req-h b{color:var(--danger)}
.v-req-h .muted{font-size:12px}
.v-req-i{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:center;padding:7px 0;border-top:1px solid color-mix(in srgb,var(--danger) 15%,transparent);font-size:14px;font-weight:600}
.v-req-i small{grid-column:1;font-size:11.5px;font-weight:500;color:var(--muted)}
.v-req-i .btn{grid-row:1/3;grid-column:2}
.v-req .v-reply .input{background:var(--surface)}
.vd-req{background:var(--danger);color:#fff;border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.vd-req b{font-size:14px;letter-spacing:.3px;text-transform:uppercase}
.vd-req div{font-size:15.5px;font-weight:700;line-height:1.35}
.vd-req small{display:block;font-size:11.5px;font-weight:500;opacity:.8;margin-top:2px}

/* ── időpont-felajánlás ─────────────────────────────────── */
.v-offer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--surface-2);margin-bottom:14px;font-size:13px}
.v-offer > div:first-child{display:flex;flex-direction:column;gap:4px}
.v-offer.hot{background:var(--client-bg);box-shadow:inset 0 0 0 1px var(--client)}
.v-offer-btns{display:flex;gap:6px}
.v-days{display:flex;gap:5px;flex-wrap:wrap}
.v-daychip{font-size:12px;font-weight:700;background:var(--surface);border-radius:8px;padding:3px 8px;box-shadow:inset 0 0 0 1px var(--border)}
.v-picked{color:var(--client);font-size:14px}
.v-nofit{color:var(--danger);font-size:14px}
.v-ocal{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.v-ocal > i{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);text-align:center}
.v-oday{height:52px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;background:var(--green-50);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 30%,transparent)}
.v-oday b{font-size:16px}
.v-oday span{font-size:10.5px;color:var(--muted)}
.v-oday.soft{background:var(--client-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--client) 40%,transparent)}
.v-oday.busy{background:var(--surface-3);box-shadow:none;opacity:.45;cursor:not-allowed}
.v-oday.on{background:var(--green);color:#fff;box-shadow:none}
.v-oday.on span{color:rgba(255,255,255,.8)}
.v-okeys{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--muted)}
.v-okeys span{display:flex;align-items:center;gap:5px}
.v-okeys i{width:12px;height:12px;border-radius:4px;display:inline-block}
.k-free{background:var(--green-50);box-shadow:inset 0 0 0 1px var(--green)}
.k-soft{background:var(--client-bg);box-shadow:inset 0 0 0 1px var(--client)}
.k-busy{background:var(--surface-3)}
.k-shoot{background:var(--danger)}
.k-hold{background:var(--client)}
.k-block{background:repeating-linear-gradient(45deg,var(--surface-3),var(--surface-3) 3px,var(--border-strong) 3px,var(--border-strong) 5px)}

/* ── foglaltsági naptár ─────────────────────────────────── */
.vc-h{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.vc-h b{font-size:17px;min-width:150px;text-align:center}
.vc-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
.vc{border-collapse:separate;border-spacing:3px;min-width:100%}
.vc th{font-size:11px;font-weight:700;color:var(--muted);text-align:center;padding:2px 0;min-width:26px}
.vc thead th span{display:block;font-size:9.5px;font-weight:600;opacity:.8}
.vc thead th.we{opacity:.5}
.vc thead th.td{color:var(--green)}
.vc tbody th{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;padding-right:10px;min-width:150px}
.vc tbody th{display:flex;align-items:center;gap:8px}
.vc tbody th span{display:flex;flex-direction:column;line-height:1.2}
.vc tbody th b{font-size:13px;color:var(--text)}
.vc tbody th small{font-size:11px;font-weight:500}
.vc-c{height:34px;border-radius:7px;cursor:pointer;text-align:center;font-size:11px;font-weight:800;color:var(--muted)}
.vc-free{background:var(--green-50)}
.vc-free:hover{box-shadow:inset 0 0 0 2px var(--green)}
.vc-we{background:var(--surface-2);opacity:.6}
.vc-shoot span{display:flex;align-items:center;justify-content:center;width:100%;height:34px;border-radius:7px;color:#fff;font-size:10px}
.vc-hold{background:var(--client);color:#fff}
.vc-block{background:repeating-linear-gradient(45deg,var(--surface-3),var(--surface-3) 4px,var(--surface-2) 4px,var(--surface-2) 8px);color:var(--muted)}
.vc-offer{background:var(--client-bg);box-shadow:inset 0 0 0 1px var(--client)}
.vc-today{outline:2px solid var(--text);outline-offset:1px}
.v-chk-in{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.v-chk{display:grid;grid-template-columns:150px 1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border);font-size:13px}
.v-whos{display:flex;gap:6px;flex-wrap:wrap}
.v-who{font-size:12px;font-weight:700;padding:3px 9px;border-radius:99px}
.v-who.ok{background:var(--ok-bg);color:var(--ok)}
.v-who.no{background:var(--danger-bg);color:var(--danger)}
@media (max-width:820px){ .v-chk{grid-template-columns:1fr auto} .v-chk .v-whos,.v-chk .muted{grid-column:1} }

/* ── portál: időpontválasztás, kérések ──────────────────── */
.p-vpick{margin-top:12px;padding:14px;border-radius:16px;background:var(--client-bg);display:flex;flex-direction:column;gap:10px}
.p-vpick > b{font-size:15px}
.p-vpick-note{font-size:13px;color:var(--text-2)}
.p-vpick.done{flex-direction:row;align-items:center;gap:12px;background:var(--surface-2)}
.p-vpick.done > i{font-size:22px;color:var(--brand,var(--green))}
.p-vpick.done b{display:block;font-size:14.5px}
.p-vpick.done span{font-size:12.5px;color:var(--muted)}
.p-vdays{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.p-vday{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border-radius:14px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.08);color:var(--text)}
.p-vday span{font-size:11.5px;color:var(--muted);font-weight:600}
.p-vday b{font-size:16px}
.p-vday small{font-size:11px;color:var(--muted)}
.p-vday:active{transform:scale(.97)}
.p-vpick > .btn-subtle{align-self:flex-start}
.p-vreqs{margin-top:12px;border-radius:14px;background:var(--surface-2);padding:12px 14px}
.p-vreqs summary{cursor:pointer;font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px}
.p-vreqs summary i{color:var(--danger)}
.p-vreqs summary .num{background:var(--danger);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px}
.p-vreqs p{font-size:12.5px;color:var(--muted);margin:8px 0}
.p-vreq-i{display:flex;gap:9px;align-items:flex-start;font-size:14px;padding:6px 0}
.p-vreq-i > i{color:var(--ok);margin-top:3px}
.p-vreq-i small{display:block;font-size:11.5px;color:var(--muted)}
.p-vreqs .p-tcadd{margin:8px 0 0}
@media (max-width:820px){
  .vc tbody th{min-width:84px;padding-right:4px}
  .vc tbody th .avatar{display:none}
  .vc tbody th small{font-size:10px}
}
/* A10: mobilon minden fázis neve látszik (kicsi címke a szám alatt), a sáv görgethető */
@media (max-width:820px){
  .v-step{flex-direction:column;gap:3px;padding:7px 8px;min-width:66px;align-items:center;text-align:center}
  .v-step:not(.on) .v-step-l{display:block;font-size:10.5px;font-weight:600}
  .v-step-l{max-width:92px;white-space:normal;line-height:1.15}
  .v-steps{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
  .v-steps.at-end{-webkit-mask-image:none;mask-image:none}
}
/* C1: portál fülsáv — jelzés, hogy jobbra van még */
@media (max-width:820px){
  .p-tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
  .p-tabs.at-end{-webkit-mask-image:none;mask-image:none}
  .p-tabs button{flex:none}
}
/* A14: a fontos kérés sáv kontrasztja — sötétebb piros háttér fehér szöveggel (~6:1) */
.vd-req{background:#b42318}
.vd-req small{opacity:.9}
/* A9: a közelgő forgatás adatai törhetnek, a rendelkezésre álló szélességet kihasználva */
.v-shoot > div{min-width:0}
.v-shoot b,.v-shoot .muted{white-space:normal;overflow:visible;text-overflow:clip}
