
:root{
  color-scheme:light;
  --bg:#F3F8F8; --surface:#FFFFFF; --ink:#0B2426; --ink2:#3F5A5B; --muted:#7A9091; --line:#DFEAEA;
  --brand:#17B9B6; --brand-ink:#0A7D7B; --brand-soft:#E2F7F6; --brand-deep:#0B3B3D;
  --amber:#D98A1F; --amber-soft:#FDF1DD; --red:#D14B45; --red-soft:#FCEBEA; --violet:#6D4FE8; --violet-soft:#F0ECFF; --green:#178A5B; --green-soft:#E4F6EE;
  --r-card:20px; --r-btn:14px;
  --sh:0 1px 2px rgba(11,36,38,.04),0 10px 28px -14px rgba(11,36,38,.16);
  --sh-lg:0 2px 4px rgba(11,36,38,.05),0 24px 48px -20px rgba(11,36,38,.28);
  --font:'Vazirmatn',Tahoma,'Segoe UI',sans-serif; --display:'Lalezar','Vazirmatn',Tahoma,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.75;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance;line-height:1.4}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
:focus-visible{outline:2.5px solid var(--brand-ink);outline-offset:2px;border-radius:8px}
svg.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrap{max-width:1080px;margin-inline:auto;padding-inline:16px}
main{overflow-x:clip;padding-bottom:120px}main.has-bar.has-nav{padding-bottom:200px}

/* ---------- header ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:12px;height:64px}
.logo img{height:46px;width:auto;display:block}
.hdr-nav{display:none;gap:4px;margin-inline-start:12px}
.hdr-nav a{white-space:nowrap;padding:8px 12px;border-radius:10px;font-weight:600;color:var(--ink2);font-size:14px}
.hdr-nav a:hover{background:var(--brand-soft);color:var(--brand-ink)}
.hdr-sp{flex:1}
.hdr-search{display:none;flex:1;max-width:360px;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:0 12px;height:42px;color:var(--muted);white-space:nowrap;overflow:hidden;font-size:13.5px}
.hdr-links{display:none;gap:4px;align-items:center}
.hdr-links a{white-space:nowrap;display:flex;gap:6px;align-items:center;padding:8px 10px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.hdr-links a:hover{background:var(--brand-soft);color:var(--brand-ink)}
.city-chip{display:flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);font-weight:700;font-size:13.5px}
.city-chip svg{width:18px;height:18px;color:var(--brand-ink)}
.city-chip .cv{width:14px;height:14px}

.sub{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.sub-in{display:flex;align-items:center;gap:8px;height:58px}
.sub h1{font-size:16px;font-weight:800;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibtn{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--ink)}
.ibtn:hover{background:var(--bg)}
.timer{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--amber-soft);color:#8A5508;font-weight:800;font-size:13px}
.timer svg{width:16px;height:16px}
.timer.urgent{background:var(--red-soft);color:var(--red)}

/* ---------- bottom nav ---------- */
.bnav{position:fixed;bottom:0;inset-inline:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.bnav-in{display:grid;grid-template-columns:repeat(4,1fr);max-width:520px;margin-inline:auto}
.bnav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;font-size:11.5px;font-weight:600;color:var(--muted);position:relative}
.bnav a.on{color:var(--brand-deep)}
.bnav a.on::before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 4px 4px;background:var(--brand)}
.bnav a.on svg{color:var(--brand-ink)}

/* ---------- buttons, pills ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border-radius:var(--r-btn);font-weight:800;font-size:15px;background:var(--brand);color:var(--ink);box-shadow:0 8px 20px -10px rgba(23,185,182,.9);transition:transform .15s,filter .15s;white-space:nowrap}
.btn:hover{filter:brightness(1.05)} .btn:active{transform:scale(.98)}
.btn[disabled]{background:#DCE7E7;color:#8FA3A4;box-shadow:none;cursor:not-allowed}
.btn.dark{background:var(--ink);color:#fff;box-shadow:none}
.btn.ghost{background:var(--surface);border:1.5px solid var(--line);box-shadow:none;color:var(--ink)}
.btn.sm{height:42px;padding:0 16px;font-size:13.5px;border-radius:12px}
.btn.block{width:100%}
.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--green-soft);color:var(--green)}
.pill.lim{background:var(--amber-soft);color:#8A5508}
.pill.out{background:#ECF0F0;color:#6B7F80}
.pill.vip{background:var(--violet-soft);color:var(--violet)}
.pill.plain::before{display:none}

/* ---------- motifs from the logo ---------- */
.stripes{position:absolute;pointer-events:none;background:repeating-linear-gradient(115deg,var(--brand) 0 9px,transparent 9px 22px);-webkit-mask-image:linear-gradient(90deg,#000,transparent);mask-image:linear-gradient(90deg,#000,transparent);opacity:.9}

/* ---------- posters (generated art) ---------- */
.pwrap{position:relative;border-radius:inherit;overflow:hidden;container-type:inline-size;display:block}
.pwrap.sold .poster{filter:grayscale(1) contrast(.92);opacity:.78}
.sold-tag{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-10deg);background:#fff;color:#D14B45;font-style:normal;font-weight:900;font-size:clamp(11px,9cqw,20px);padding:.35em 1.1em;border-radius:999px;border:2px solid #D14B45;box-shadow:0 10px 24px -8px rgba(0,0,0,.6);letter-spacing:.02em;white-space:nowrap}
.pill.out{background:#FCEBEA!important;color:#B3261E!important;font-weight:800}
.pc-btn.off,.pcard:hover .pc-btn.off{border-color:#F3C9C6;color:#B3261E;background:#FCEBEA;font-weight:800}
.sold-chip{background:#D14B45!important;color:#fff!important;font-weight:800!important}
.poster{position:relative;overflow:hidden;container-type:inline-size;aspect-ratio:3/4;width:100%;border-radius:inherit;background:var(--c1);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate}
.poster .pt{font-family:var(--display);font-size:14cqw;line-height:1.15;padding:0 8cqw;text-wrap:balance}
.poster .ps{font-size:6cqw;font-weight:600;opacity:.85;padding:2cqw 8cqw 8cqw;line-height:1.5}
.poster .pk{position:absolute;top:7cqw;inset-inline-start:8cqw;font-size:5cqw;font-weight:800;letter-spacing:.04em;opacity:.9}
.p-spot{background:radial-gradient(ellipse 70% 55% at 50% 18%,var(--c2) 0,transparent 70%),linear-gradient(180deg,var(--c1),#050D12)}
.p-spot::before{content:"";position:absolute;z-index:-1;top:-10%;left:50%;width:120%;height:90%;transform:translateX(-50%);background:conic-gradient(from 160deg at 50% 0,transparent 0 8deg,rgba(255,255,255,.16) 12deg,transparent 18deg 24deg,rgba(255,255,255,.1) 30deg,transparent 38deg)}
.p-spot .pt{color:var(--c3)}
.p-sun{background:linear-gradient(170deg,var(--c1) 0 55%,var(--c2) 55%)}
.p-sun::before{content:"";position:absolute;z-index:-1;top:12%;left:50%;width:62%;aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:var(--c3)}
.p-blob{background:var(--c1);color:var(--c3)}
.p-blob::before{content:"";position:absolute;z-index:-1;top:9%;left:14%;width:72%;aspect-ratio:1;border-radius:46% 54% 58% 42%/52% 44% 56% 48%;background:radial-gradient(circle at 35% 35%,var(--c2),color-mix(in srgb,var(--c2) 70%,#000))}
.p-bars{background:var(--c1)}
.p-bars::before{content:"";position:absolute;z-index:-1;inset:0 0 38% 0;background:repeating-linear-gradient(115deg,var(--c2) 0 7cqw,transparent 7cqw 14cqw)}
.p-bars::after{content:"";position:absolute;z-index:-1;top:40%;inset-inline-end:10%;width:14cqw;height:14cqw;background:var(--c3);box-shadow:-18cqw 12cqw 0 var(--c3)}
.p-grid{background:var(--c1);color:var(--c3)}
.p-grid::before{content:"";position:absolute;z-index:-1;inset:0 0 40% 0;background:linear-gradient(var(--c2) 0 0) 10% 20%/30% 30% no-repeat,linear-gradient(var(--c3) 0 0) 46% 20%/30% 30% no-repeat,radial-gradient(circle,var(--c2) 0 70%,transparent 71%) 84% 22%/22% 30% no-repeat,radial-gradient(circle,var(--c3) 0 70%,transparent 71%) 12% 78%/22% 30% no-repeat,linear-gradient(var(--c2) 0 0) 60% 80%/50% 30% no-repeat}

/* ---------- hero ---------- */
.hero{padding-block:16px 8px}
.hero-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
.hero-rail::-webkit-scrollbar{display:none}
.slide{position:relative;flex:0 0 100%;min-width:100%;scroll-snap-align:center;overflow:hidden;height:clamp(200px,56vw,280px);display:flex;align-items:flex-end;justify-content:space-between;gap:12px;color:#fff;isolation:isolate;padding:18px 18px 30px}
.slide-bg{position:absolute;inset:0;z-index:-2}
.slide-bg .poster{height:100%;aspect-ratio:auto;border-radius:0}
.slide-bg .poster .pt,.slide-bg .poster .ps,.slide-bg .poster .pk{display:none}
.slide::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,16,18,0) 25%,rgba(5,16,18,.86) 78%)}
.slide.bare::after{display:none}
.slide-c{display:flex;flex-direction:column;gap:4px;min-width:0}
.slide-b{flex:none;height:38px;box-shadow:none}
.slide-k{font-size:12px;font-weight:700;color:var(--brand)}
.slide h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,4.2vw,40px);line-height:1.2}
.slide-s{font-size:14px;opacity:.9}
.slide-m{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:12.5px;opacity:.9}
.slide-m span{display:inline-flex;gap:5px;align-items:center}
.slide-m svg{width:16px;height:16px}
.slide-f{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.slide-f .price{font-size:13px;color:rgba(255,255,255,.85)}.slide-f .price b{font-size:20px;font-weight:800;color:#fff}
/* phones: banner slides (uploaded banners and event banners, both 1048×331) keep that shape, so the whole image shows instead of a cover crop */
@media (max-width:719px){
  .ban{border-radius:16px}
  .ban .slide{height:auto;aspect-ratio:1048/331;min-height:0;padding:10px 12px 18px;gap:8px}
  .ban .slide h2{font-size:17px}
  .ban .slide-k{font-size:10.5px}
  .ban .slide-m{display:none}
  .ban .slide-b{height:28px;padding:0 10px;font-size:11.5px;border-radius:9px}
  .ban .dots{bottom:5px;gap:5px;padding:3px 7px}
  .ban .dots button{width:6px;height:6px}.ban .dots button.on{width:16px}
}

/* ---------- home banner + poster cards ---------- */
.ban{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--sh)}
.ban-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ban-rail::-webkit-scrollbar{display:none}
.dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:8px;direction:rtl;padding:6px 10px;border-radius:99px;background:rgba(6,20,22,.22);backdrop-filter:blur(6px)}
.dots button{position:relative;width:8px;height:8px;border-radius:99px;background:rgba(255,255,255,.55);transition:.25s}
.dots button::before{content:"";position:absolute;inset:-9px}
.dots button:hover{background:rgba(255,255,255,.85)}
.dots button.on{width:24px;background:#fff}
.ban-arr{display:none;position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.88);color:var(--ink);box-shadow:var(--sh-lg);place-items:center;opacity:0;transition:opacity .2s,background .2s;z-index:2}
.ban-arr svg{width:22px;height:22px}
.ban-arr.prev{right:14px}.ban-arr.next{left:14px}
.ban:hover .ban-arr,.ban-arr:focus-visible{opacity:1}
.ban-arr:hover{background:#fff}
@media (min-width:960px){.dots button{width:10px;height:10px}.dots button.on{width:30px}}
.pcard{display:flex;flex:0 0 150px;scroll-snap-align:start;min-width:0}
.pc-box{flex:1;min-width:0;margin-top:34px;background:var(--surface);border-radius:18px;box-shadow:var(--sh);padding:0 10px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;transition:box-shadow .2s}
.pcard:hover .pc-box{box-shadow:var(--sh-lg)}
.pc-box .ph{width:calc(100% - 14px);margin-top:-34px;margin-bottom:10px;border-radius:13px;overflow:hidden;box-shadow:0 10px 22px -12px rgba(11,36,38,.45);transition:transform .2s}
.pcard:hover .ph{transform:translateY(-3px)}
.pc-box .pk,.pc-box .ps{display:none}
.pc-box h3{font-size:14px;font-weight:800;line-height:1.5;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-box p{font-size:11.5px;color:var(--muted);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:10px}
.pc-btn{margin-top:auto;width:100%;height:38px;border-radius:12px;border:1.5px solid var(--brand);color:var(--brand-ink);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:6px;transition:.15s}
.pc-btn svg{width:17px;height:17px}
.pcard:hover .pc-btn{background:var(--brand);color:var(--ink)}
.pc-btn.off,.pcard:hover .pc-btn.off{border-color:var(--line);color:var(--muted);background:var(--bg)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:18px 12px}
.pgrid .pcard{flex:none}
.cat.on{color:var(--ink)}
.cat.on i{background:var(--brand);border-color:var(--brand);color:var(--ink)}
.sec-h .cnt{font-size:12.5px;font-weight:500;color:var(--muted);margin-inline-start:6px}

/* ---------- sections ---------- */
.sec{padding-block:18px 4px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.sec-h h2{font-size:17px;font-weight:900}
.sec-h p{font-size:13px;color:var(--muted)}
.more{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:700;color:var(--brand-ink);white-space:nowrap}
.more svg{width:16px;height:16px}
.cats{display:flex;gap:6px;overflow-x:auto;margin-inline:-16px;padding:18px 16px 4px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;width:68px;font-size:12px;font-weight:700;color:var(--ink2)}
.cat i{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--brand-deep);box-shadow:var(--sh);transition:.2s}
.cat:hover i{background:var(--brand);border-color:var(--brand);transform:translateY(-2px)}
.cat i svg{width:22px;height:22px}
.rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;margin-inline:-16px;padding:4px 16px 18px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail .ecard{flex:0 0 150px;scroll-snap-align:start}

.ecard{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--sh);overflow:hidden;transition:transform .2s,box-shadow .2s}
.ecard:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.ecard-p{position:relative;border-radius:var(--r-card) var(--r-card) 0 0;overflow:hidden}
.ecard-p .pk,.erow .pk{display:none}
.ecard-p .badge{position:absolute;top:10px;inset-inline-end:10px;background:rgba(255,255,255,.92);color:var(--ink);padding:1px 10px;border-radius:999px;font-size:11px;font-weight:800}
.ecard-b{padding:12px 12px 14px;display:flex;flex-direction:column;gap:3px;flex:1}
.ecard h3{font-size:14px;font-weight:800;line-height:1.5}
.ecard-v,.ecard-d{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px;line-height:1.6}
.ecard-d{color:var(--ink2);font-weight:600}
.ecard-d svg,.ecard-v svg{width:14px;height:14px}
.ecard-f{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.price{font-size:11.5px;color:var(--muted)}.price b{font-size:14.5px;color:var(--ink);font-weight:800}

.elist{display:grid;gap:12px;grid-template-columns:1fr}
.erow{display:grid;grid-template-columns:104px 1fr;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--sh);overflow:hidden;transition:.2s}
.erow:hover{box-shadow:var(--sh-lg)}
.erow .poster{height:100%;aspect-ratio:auto;min-height:150px;border-radius:0}
.erow .ecard-b{padding:12px 14px}
.erow .go{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;font-weight:800;color:var(--brand-ink)}
.erow .go svg{width:15px;height:15px}

.steps{position:relative;overflow:hidden;background:var(--ink);color:#fff;border-radius:24px;padding:22px 20px;display:grid;gap:16px}
.steps .stripes{inset:-20px auto -20px -30px;width:48%;opacity:.5;transform:scaleX(-1)}
.steps h2{font-size:18px;font-weight:900;position:relative}
.steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;position:relative;counter-reset:s}
.steps li{display:flex;gap:10px;align-items:center;font-size:13.5px;font-weight:600;counter-increment:s}
.steps li::before{content:counter(s,persian);width:30px;height:30px;flex:none;border-radius:10px;background:var(--brand);color:var(--ink);display:grid;place-items:center;font-weight:900}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding:2px 16px 8px;scrollbar-width:none}
.chips.scroll::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink2)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip small{color:var(--muted);font-weight:600}.chip.on small{color:#B9CCCD}
.empty{text-align:center;padding:48px 16px;color:var(--ink2);display:grid;gap:12px;justify-items:center}
.empty i{width:72px;height:72px;border-radius:24px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center}
.empty i svg{width:32px;height:32px}
.empty h3{font-size:17px;font-weight:800;color:var(--ink)}

/* ---------- footer ---------- */
.ftr{position:relative;margin-top:56px;background:var(--surface);border-top:1px solid var(--line);color:var(--ink2)}
.ftr::before{content:"";position:absolute;inset:-1px 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--brand) 25%,var(--brand) 75%,transparent);opacity:.55}
.ftr-main{display:grid;gap:32px 48px;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr) minmax(0,1.15fr) auto;padding-block:44px 36px}
.ftr-brand{display:grid;grid-template-areas:"logo" "about" "soc";justify-items:start;align-content:start;gap:16px;min-width:0}
.ftr-logo{grid-area:logo;display:inline-flex}
.ftr-logo img{height:48px;width:auto;display:block}
.ftr-about{grid-area:about;font-size:13.5px;color:var(--ink2);line-height:2;max-width:44ch}
.ftr-soc{grid-area:soc;display:flex;gap:8px;flex:none}
.ftr-soc a{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);color:var(--ink2);transition:background .15s,color .15s,border-color .15s,transform .15s}
.ftr-soc a svg{width:19px;height:19px}
.ftr-soc a:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px)}
.ftr-col{min-width:0}
.ftr-col h4{position:relative;font-size:14.5px;font-weight:800;color:var(--ink);margin:6px 0 18px;padding-bottom:10px}
.ftr-col h4::after{content:"";position:absolute;inset-inline-start:0;bottom:0;width:22px;height:3px;border-radius:3px;background:var(--brand)}
.ftr-col ul{list-style:none;padding:0;margin:0;display:grid;gap:12px;font-size:13.5px}
.ftr-col li{display:flex;align-items:center;gap:10px;min-width:0}.ftr-col li span{line-height:1.85}
.ftr-col li a{color:var(--ink2);font-weight:600;transition:color .15s}.ftr-col li a:hover{color:var(--brand-ink)}
.ftr-links li svg{width:14px;height:14px;color:var(--brand);flex:none;transition:transform .15s}
.ftr-links li:hover svg{transform:translateX(-3px)}
.ftr-contact li>svg{width:34px;height:34px;padding:8px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);flex:none}
.ftr-contact li.ftr-addr{align-items:flex-start}
.ftr-contact li.ftr-addr span{padding-top:4px}
.ftr-col-badges{align-self:start;margin-top:6px}
.ftr-badges{display:grid;grid-template-columns:repeat(2,104px);gap:12px}
.ftr-badges a,.ftr-badges span{display:flex;align-items:center;justify-content:center;height:104px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh);transition:transform .15s,box-shadow .15s,border-color .15s}
.ftr-badges a:hover{transform:translateY(-3px);border-color:#BFE6E5;box-shadow:var(--sh-lg)}
.ftr-badges img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.ftr-bottom{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;justify-content:space-between;padding-block:18px 22px;border-top:1px solid var(--line);padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
@media (min-width:960px){.ftr-bottom{padding-bottom:22px}}
.ftr small{color:var(--muted);font-size:12.5px}
.ftr-by{font-weight:600}.ftr-by b{color:var(--brand-ink);font-weight:800}
@media (max-width:959px){.ftr-main{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:28px 32px;padding-block:36px 30px}.ftr-brand{grid-column:1/-1}
 .ftr-brand{grid-template-areas:"logo soc" "about about";grid-template-columns:1fr auto;align-items:center}.ftr-about{max-width:none}}
.ftr-qc{display:none!important}
@media (max-width:719px){.ftr{margin-top:28px}
 .ftr-main{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-block:16px 12px}
 .ftr-brand{display:contents}
 .ftr-logo{order:1;flex:none}.ftr-logo img{height:30px}
 .ftr-about{order:2;flex:1 1 0;min-width:0;max-width:none;font-size:11.5px;line-height:1.75;color:var(--ink2);padding-inline-start:12px;border-inline-start:1px solid var(--line);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .ftr-links{order:3;flex:0 0 calc(100% + 32px);margin-inline:-16px;min-width:0}
 .ftr-contact,.ftr-col h4{display:none}
 .ftr-soc{order:4;flex:none;gap:5px}.ftr-qc{display:grid!important}.ftr-soc a{width:32px;height:32px;border-radius:10px}.ftr-soc a svg{width:16px;height:16px}
 .ftr-links ul{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;padding-inline:16px;font-size:12px}.ftr-links ul::-webkit-scrollbar{display:none}
 .ftr-links li{flex:none}.ftr-links li svg{display:none}
 .ftr-links li a{display:block;padding:3px 11px;border-radius:99px;background:var(--bg);border:1px solid var(--line);line-height:1.7}
 .ftr-col-badges{order:5;flex:1 1 0;min-width:0;margin:0}
 .ftr-badges{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none}.ftr-badges::-webkit-scrollbar{display:none}.ftr-badges>:first-child{margin-inline-start:auto}
 .ftr-badges a,.ftr-badges span{flex:0 1 40px;min-width:32px;height:auto;aspect-ratio:1;padding:3px;border-radius:9px;box-shadow:none}
 .ftr-bottom{flex-wrap:nowrap;padding-top:10px;gap:10px}.ftr small{font-size:11px;white-space:nowrap}.ftr-bottom small:first-child{overflow:hidden;text-overflow:ellipsis;min-width:0}}

/* ---------- event detail ---------- */
.ev-hero{position:relative;isolation:isolate;overflow:hidden;color:#fff}
.ev-hero-bg{position:absolute;inset:-40px;z-index:-2;filter:blur(30px) saturate(1.2);transform:scale(1.2)}
.ev-hero-bg .poster{height:100%;aspect-ratio:auto}
.ev-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,20,22,.45),rgba(6,20,22,.82))}
.ev-hero-in{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:end;padding-block:22px 26px}
.ev-hero .ph{border-radius:16px;overflow:hidden;box-shadow:0 16px 40px -12px rgba(0,0,0,.6)}
.ev-hero h1{font-size:24px;font-weight:900;line-height:1.35}
.ev-hero-in>div{min-width:0}
.ev-hero .cast{display:none}
.cast-m{padding:14px 16px 0}.cast-m .cast{margin:0;padding:0 2px}.cast-m .cast-i img,.cast-m .cast-i i{border-color:var(--surface);box-shadow:var(--sh);background:var(--brand-soft);color:var(--brand-ink);backdrop-filter:none}.cast-m .cast-i b{color:var(--ink)}.cast-m .cast-i small{color:var(--muted);opacity:1}
.cast-m+.ev-grid{margin-top:10px}
.cast{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 -4px 12px;padding:2px 4px;-webkit-overflow-scrolling:touch}.cast::-webkit-scrollbar{display:none}
.cast-i{flex:none;display:flex;flex-direction:column;align-items:center;width:74px;text-align:center;line-height:1.45}
.cast-i img,.cast-i i{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.75);box-shadow:0 6px 16px rgba(0,0,0,.35);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:18px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px)}
.cast-i b{font-size:11px;font-weight:700;margin-top:5px;max-width:100%;overflow-wrap:anywhere}
.cast-i small{font-size:10px;opacity:.82;max-width:100%;margin-top:1px;overflow-wrap:anywhere}
.ev-hero .sub-t{font-size:13.5px;opacity:.88;margin-top:2px}
.ev-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ev-meta span{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}
.ev-meta svg{width:14px;height:14px}
.ev-grid{display:grid;gap:16px;margin-top:-12px;position:relative;grid-template-columns:minmax(0,1fr)}.ev-grid>*,.ev-grid .col,.ev-grid .col>*{min-width:0;max-width:100%}
.card{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--sh);padding:18px}
.card>h2{font-size:16px;font-weight:900;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card>h2 svg{color:var(--brand-ink)}
.days{display:flex;gap:8px;overflow-x:auto;margin-inline:-18px;padding:2px 18px 12px;scrollbar-width:none}
.days::-webkit-scrollbar{display:none}
.day{flex:none;width:66px;padding:8px 0 9px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;line-height:1.35}
.day small{font-size:11px;color:var(--muted);font-weight:600}
.day b{font-size:21px;font-weight:900}
.day.on{background:var(--ink);border-color:var(--ink);color:#fff}.day.on small{color:#B9CCCD}
.sess{display:grid;gap:8px}
.ses{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;text-align:start;padding:12px 14px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);transition:.15s}
.ses:hover:not([disabled]){border-color:var(--brand)}
.ses .tm{font-size:20px;font-weight:900;letter-spacing:.02em;min-width:58px}
.ses .hl{font-size:13px;font-weight:700;display:block}
.ses .pr{font-size:12px;color:var(--muted);display:block}
.ses.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px rgba(23,185,182,.18)}
.ses[disabled]{opacity:.55;cursor:not-allowed;background:var(--bg)}
.ses[disabled] .tm{text-decoration:line-through;text-decoration-thickness:1.5px}
.vph{display:block;position:relative;overflow:hidden;aspect-ratio:16/10;border-radius:12px;background:radial-gradient(ellipse 70% 40% at 50% 8%,hsl(var(--h) 70% 80%/.55),transparent 70%),repeating-linear-gradient(180deg,hsl(var(--h) 42% 30%) 0 13%,hsl(var(--h) 45% 16%) 13% 25%) bottom/100% 56% no-repeat,linear-gradient(180deg,hsl(var(--h) 40% 10%),hsl(var(--h) 45% 18%))}
.vph::before{content:"";position:absolute;top:10%;left:16%;right:16%;height:26%;border-radius:3px;background:linear-gradient(180deg,#fff,#DDEBEB);box-shadow:0 0 30px 6px hsl(var(--h) 80% 85%/.5)}
.vph.th{width:78px;aspect-ratio:4/5;flex:none;border-radius:12px}
.ven-one{margin-top:14px}
.ven-one .vph{border-radius:14px}
.ven-cap{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.vens{display:grid;gap:10px}
.ven{border:1.5px solid var(--line);border-radius:16px;overflow:hidden;transition:border-color .15s}
.ven.open{border-color:var(--brand)}
.ven-h{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:start;width:100%;text-align:start;padding:12px}
.ven-h i{width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center}
.ven-t{min-width:0}
.ven-t b{display:block;font-size:14.5px;font-weight:800;line-height:1.5}
.ven-t small{font-size:12px;color:var(--muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ven-h .vph{grid-row:span 2}
.ven-n{grid-column:2;justify-self:end;align-self:end;display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:800;color:var(--brand-deep);white-space:nowrap;background:var(--brand-soft);padding:3px 12px 3px 8px;border-radius:99px}
.ven-n svg{width:16px;height:16px;transition:transform .2s}
.ven.open .ven-n svg{transform:rotate(180deg)}
.ven-s{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;padding:4px 12px 14px}
.stile{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 6px 9px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);line-height:1.5;transition:.15s}
.stile:hover:not([disabled]){border-color:var(--brand)}
.stile b{font-size:18px;font-weight:900;letter-spacing:.02em}
.stile span{font-size:11.5px;color:var(--ink2);font-weight:600}
.stile .sp{color:var(--muted);font-weight:500}
.stile em{font-style:normal;font-size:10.5px;font-weight:800;margin-top:3px;padding:0 8px;border-radius:99px}
.stile em.lim{background:var(--amber-soft);color:#8A5508}
.stile em.out{background:#FCEBEA;color:#B3261E}
.stile.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px rgba(23,185,182,.18)}
.stile[disabled]{opacity:.55;cursor:not-allowed;background:var(--bg)}
.stile[disabled] b{text-decoration:line-through;text-decoration-thickness:1.5px}
.prose{font-size:14px;color:var(--ink2);max-width:65ch;overflow-wrap:anywhere;word-break:break-word;line-height:1.9}
.prose p{margin:0 0 8px}.prose p:last-child{margin-bottom:0}.prose ul,.prose ol{padding-inline-start:22px;margin:6px 0}.prose h3,.prose h4{color:var(--ink);margin:10px 0 4px;font-weight:800}.prose a{color:var(--brand-ink);text-decoration:underline}.prose blockquote{border-inline-start:3px solid var(--brand);margin:8px 0;padding:2px 12px;color:var(--ink)}.prose img{max-width:100%}
.card,.kv dd,.ven-t,.ses,.stile{min-width:0;overflow-wrap:anywhere}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13.5px}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}
.map-ph{margin-top:12px;height:150px;border-radius:16px;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(23,185,182,.12) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(rgba(23,185,182,.12) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(115deg,transparent 46%,#fff 46% 54%,transparent 54%),linear-gradient(20deg,transparent 60%,#fff 60% 66%,transparent 66%),#E6F2F1;display:grid;place-items:center}
.map-emb{margin-top:12px;height:210px;border-radius:16px;overflow:hidden;background:var(--surface2,#EEF3F3)}.map-emb iframe{width:100%;height:100%;border:0;display:block}
.map-ph span{display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:#fff;padding:5px 12px 5px 14px;border-radius:999px;font-size:12.5px;font-weight:700;box-shadow:var(--sh-lg)}
.map-ph svg{width:16px;height:16px;color:var(--brand)}
.rules{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:13.5px;color:var(--ink2)}
.rules li{display:flex;gap:8px}.rules svg{width:18px;height:18px;color:var(--brand-ink);margin-top:3px}

/* ---------- fixed action bar ---------- */
.bar.over-nav{bottom:calc(58px + env(safe-area-inset-bottom,0px));padding-bottom:12px;border-bottom:1px solid var(--line)}@media (min-width:960px){.bar.over-nav{bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-bottom:0}}
.bar{position:fixed;bottom:0;inset-inline:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 30px -18px rgba(11,36,38,.25)}
.bar-in{display:flex;align-items:center;gap:12px;justify-content:space-between}
.bar-t{min-width:0;line-height:1.45}
.bar-t small{display:block;font-size:12px;color:var(--muted)}
.bar-t b{font-size:17px;font-weight:900}
.bar-t b i{font-style:normal;font-size:12px;font-weight:600;color:var(--muted)}
.picked{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}
.picked::-webkit-scrollbar{display:none}
.pk-c{flex:none;display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;border-radius:999px;background:var(--brand-soft);font-size:12.5px;font-weight:700;color:var(--brand-deep)}
.pk-c button{width:20px;height:20px;border-radius:50%;background:#fff;display:grid;place-items:center}
.pk-c button svg{width:12px;height:12px}

/* ---------- seat map ---------- */
.legend{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);padding-block:12px 4px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:16px;height:16px;border-radius:5px 5px 6px 6px;display:inline-block}
.tiers{display:flex;gap:6px;overflow-x:auto;padding-block:8px;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
.tiers::-webkit-scrollbar{display:none}
.tier{flex:none;font-size:12px;font-weight:700;padding:3px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);color:var(--ink2)}
.tier b{color:var(--ink)}
.mapbox{position:relative;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--sh);overflow:hidden}
.mapscroll{overflow:auto;max-height:min(62vh,640px);touch-action:pan-x pan-y;direction:ltr;overscroll-behavior:contain}
.mapsizer{margin-inline:auto}
.smap{direction:ltr;width:max-content;padding:26px 22px 30px;transform-origin:0 0}
.stage{width:62%;margin:0 auto 34px;height:34px;border-radius:8px 8px 60% 60%/8px 8px 100% 100%;background:linear-gradient(180deg,var(--ink),#1D4346);color:#fff;font-size:12px;font-weight:800;letter-spacing:.2em;display:grid;place-items:center;box-shadow:0 18px 30px -12px rgba(23,185,182,.55)}
.ssec-t{text-align:center;font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.08em;margin:26px 0 10px;display:flex;align-items:center;gap:10px}
.ssec-t::before,.ssec-t::after{content:"";flex:1;height:1px;background:var(--line)}
.srow{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:8px}.arena{display:grid;gap:12px;justify-items:center;direction:ltr}.ar-top,.ar-bottom{display:flex;flex-direction:column;align-items:center}.ar-top{flex-direction:column-reverse}.ar-top .ssec>div{display:flex;flex-direction:column-reverse}.ar-mid{display:flex;align-items:center;justify-content:center;gap:12px}.ar-side{display:flex;gap:4px}.ar-left{writing-mode:vertical-rl}.ar-right{writing-mode:vertical-lr}.ar-side .ssec>div{display:flex;flex-direction:column;gap:6px}.ar-side .srow{margin:0}.ar-side .seat,.ar-side .rl,.ar-side .ssec-t{writing-mode:horizontal-tb}.ar-side .ssec-t{text-align:center}.ar-center .stage{margin:0;width:200px;height:130px;border-radius:18px}
.rl{width:22px;text-align:center;font-size:12px;font-weight:800;color:var(--muted)}
.gap{width:22px;flex:none}
.seat{width:30px;height:30px;flex:none;border-radius:8px 8px 11px 11px;font-size:10.5px;font-weight:700;display:grid;place-items:center;background:#fff;border:1.5px solid #8ED3D1;color:var(--brand-deep);transition:background .12s,transform .12s}
.seat:hover:not([disabled]){background:var(--brand-soft);transform:translateY(-1px)}
.seat.vip{border-color:var(--violet);color:var(--violet);background:var(--violet-soft)}
.seat.sold{background:#DDE6E6;border-color:#DDE6E6;color:transparent;cursor:not-allowed}
.seat.held{border-color:#E9B766;color:transparent;cursor:not-allowed;background:repeating-linear-gradient(135deg,#FBE3B8 0 4px,#FFF6E6 4px 8px)}
.seat.off{border-color:#C5D2D2;color:#8FA3A4;cursor:not-allowed;background:repeating-linear-gradient(135deg,#E3EAEA 0 4px,#F4F7F7 4px 8px)}
.seat.dead{visibility:hidden}
/* seat hover card (desktop) */
.stip{--acc:var(--brand);position:fixed;top:0;left:0;z-index:60;width:212px;padding:14px 14px 12px;border-radius:18px;background:rgba(255,255,255,.97);backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(11,36,38,.07);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 2px 6px rgba(11,36,38,.06),0 22px 48px -18px rgba(11,36,38,.38);color:var(--ink);font-size:12.5px;line-height:1.6;pointer-events:none;opacity:0;visibility:hidden;translate:0 4px;scale:.97;transition:opacity .14s ease,translate .18s cubic-bezier(.2,.8,.2,1),scale .18s cubic-bezier(.2,.8,.2,1),visibility .14s}
.stip.on{opacity:1;visibility:visible;translate:0 0;scale:1}
.stip.below{translate:0 -4px}.stip.below.on{translate:0 0}
.stip::before{content:"";position:absolute;inset:0 18px auto;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,transparent,var(--acc),transparent)}
.stip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-6px;width:12px;height:12px;background:#fff;border:1px solid rgba(11,36,38,.07);border-width:0 1px 1px 0;border-radius:0 0 3px 0;transform:translateX(-50%) rotate(45deg)}
.stip.below::after{bottom:auto;top:-6px;border-width:1px 0 0 1px;border-radius:3px 0 0 0}
.stip.vip{--acc:#C9A24A}
.stip-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.stip-sec{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12.5px;font-weight:800;color:var(--brand-deep);background:var(--brand-soft);padding:3px 10px 3px 12px;border-radius:99px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stip-sec svg{width:15px;height:15px;color:var(--brand-ink)}
.stip-vip{flex:none;font-size:10.5px;font-weight:900;letter-spacing:.08em;padding:2px 9px;border-radius:99px;color:#4A3508;background:linear-gradient(135deg,#F6E3A8,#D9B25A 55%,#F3DA92);box-shadow:0 4px 10px -4px rgba(201,162,74,.8)}
.stip.vip .stip-sec{background:#FBF4E2;color:#6B4E12}.stip.vip .stip-sec svg{color:#B98F33}
.stip-id{display:flex;align-items:stretch;background:linear-gradient(180deg,#F7FBFB,#EEF5F5);border:1px solid var(--line);border-radius:13px;padding:7px 4px}
.stip-id div{flex:1;display:grid;justify-items:center;gap:0}
.stip-id small{font-size:10.5px;font-weight:700;color:var(--muted)}
.stip-id b{font-size:22px;line-height:1.25;font-weight:900;color:var(--ink)}
.stip-id i{width:1px;margin-block:4px;background:var(--line)}
.stip-f{margin-top:10px}
.stip-p{display:flex;align-items:center;justify-content:space-between;gap:8px}
.stip-p small{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--muted)}
.stip-p small svg{width:14px;height:14px}
.stip.is-sel .stip-p small{color:var(--brand-ink)}
.stip-p span{display:inline-flex;align-items:baseline;gap:4px;font-size:11px;font-weight:600;color:var(--ink2)}
.stip-p b{font-size:17px;font-weight:900;color:var(--acc);filter:saturate(1.1)}
.stip:not(.vip) .stip-p b{color:var(--brand-ink)}.stip.vip .stip-p b{color:#95701F}
.stip-s{display:flex;align-items:center;gap:8px;font-weight:700;color:#9A6A12;background:var(--amber-soft);border-radius:10px;padding:6px 10px}
.stip-s i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px rgba(217,138,31,.18)}
.stip.is-off .stip-id b{color:var(--muted)}
.seat.sel,.seat.sel.vip{background:var(--brand);border-color:var(--brand-ink);color:var(--ink);transform:scale(1.08);box-shadow:0 6px 14px -6px rgba(23,185,182,.9)}
.zoom{position:absolute;bottom:12px;left:12px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh);overflow:hidden}
.zoom button{width:42px;height:42px;display:grid;place-items:center}
.zoom button+button{border-top:1px solid var(--line)}
.hint{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:rgba(11,36,38,.86);color:#fff;font-size:12px;font-weight:600;padding:4px 14px;border-radius:999px;white-space:nowrap;pointer-events:none;transition:opacity .4s}

/* ---------- qty ---------- */
.ttype{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:16px 0}
.ttype+.ttype{border-top:1px dashed var(--line)}
.ttype h3{font-size:15px;font-weight:800}
.ttype p{font-size:12.5px;color:var(--muted)}
.ttype .p{font-size:14px;font-weight:800;margin-top:2px;color:var(--ink)}
.stp{display:flex;align-items:center;gap:4px;background:var(--bg);border-radius:14px;padding:4px}
.stp button{width:40px;height:40px;border-radius:11px;background:var(--surface);display:grid;place-items:center;box-shadow:var(--sh)}
.stp button[disabled]{opacity:.35;cursor:not-allowed;box-shadow:none}
.stp output{min-width:30px;text-align:center;font-weight:900;font-size:17px}

/* ---------- checkout ---------- */
.stack{display:grid;gap:14px;padding-top:16px}
.mini{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.mini .ph{border-radius:12px;overflow:hidden}
.mini h2{font-size:16px;font-weight:900}
.mini p{font-size:13px;color:var(--ink2)}
.items{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px dashed var(--line);display:grid;gap:8px;font-size:13.5px}
.items li{display:flex;justify-content:space-between;gap:10px;align-items:center}
.items li span:first-child{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fld{display:grid;gap:6px;margin-bottom:12px}
select.inp{appearance:none;-webkit-appearance:none;cursor:pointer;padding-inline-start:38px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A7D7B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:left 14px center;background-size:18px}
select.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,185,182,.18)}
select.inp:invalid,select.inp option[value=""]{color:var(--muted)}
/* profile card: locked fields read like plain info until "ویرایش" is tapped */
.prof-edit{flex:none;height:38px;padding:0 14px;gap:6px}.prof-edit svg{width:17px;height:17px;color:var(--brand-ink)}
.prof-card .inp:disabled{background:var(--bg);border-color:transparent;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1;cursor:default}
.prof-card select.inp:disabled{background-image:none;padding-inline-start:14px}
.prof-card.editing .inp{border-color:#BFE6E5}
.prof-acts{display:grid;grid-template-columns:1fr auto;gap:8px}.prof-acts .btn.ghost{padding-inline:20px}
.fld label{font-size:13px;font-weight:700;color:var(--ink2)}
.inp{height:50px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);padding:0 14px;font-size:15px;width:100%;outline:none;transition:.15s}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,185,182,.16)}
.inp.ltr{direction:ltr;text-align:left;letter-spacing:.06em}
.inp.err{border-color:var(--red)}
.msg{font-size:12.5px;font-weight:600;margin-top:-4px;margin-bottom:10px}
.msg.e{color:var(--red)}.msg.k{color:var(--green)}.msg.n{color:var(--muted)}
.otp{display:flex;gap:8px;direction:ltr;justify-content:center;margin:6px 0 14px}
.otp input{width:48px;height:56px;text-align:center;font-size:22px;font-weight:900;border-radius:14px;border:1.5px solid var(--line);outline:none;background:var(--surface)}
.otp input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,185,182,.16)}
.row2{display:flex;gap:8px}.row2 .inp{flex:1;min-width:0}
.verified{display:flex;align-items:center;gap:12px}
.verified i{width:44px;height:44px;border-radius:14px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex:none}
.verified b{display:block;font-size:14.5px}.verified small{color:var(--muted);font-size:12.5px;direction:ltr;display:inline-block}
.link{color:var(--brand-ink);font-weight:700;font-size:13px}
.gws{display:grid;gap:8px}
.gw{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1.5px solid var(--line);cursor:pointer;transition:.15s}
.gw:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.gw input{accent-color:var(--brand-ink);width:18px;height:18px}
.gw i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:13px;color:#fff;flex:none}
.gw b{font-size:14px;display:block;line-height:1.4}.gw small{font-size:12px;color:var(--muted)}
.sum{display:grid;gap:8px;font-size:13.5px}
.sum div{display:flex;justify-content:space-between;gap:12px}
.sum .d{color:var(--green);font-weight:700}
.sum .t{border-top:1px dashed var(--line);padding-top:12px;margin-top:4px;font-size:15px;font-weight:900}
.sum .t b{font-size:19px}
.note{font-size:12.5px;color:var(--muted);display:flex;gap:8px}
.note svg{width:17px;height:17px;margin-top:3px}
.alert{display:flex;gap:10px;padding:12px 14px;border-radius:16px;background:var(--red-soft);color:#8E2A25;font-size:13.5px;font-weight:600}
.alert svg{margin-top:2px}

/* ---------- mock gateway ---------- */
.gate{max-width:440px;margin:28px auto 0;display:grid;gap:14px}
.gate-h{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink2)}
.gate .amt{text-align:center;padding:18px 0;border-block:1px dashed var(--line);margin-block:6px}
.gate .amt small{display:block;color:var(--muted);font-size:12.5px}.gate .amt b{font-size:28px;font-weight:900}
.demo-tag{display:inline-block;background:var(--amber-soft);color:#8A5508;font-size:12px;font-weight:800;padding:2px 10px;border-radius:8px}

/* ---------- ticket ---------- */
.tk-wrap{filter:drop-shadow(0 18px 28px rgba(11,36,38,.16));max-width:400px;margin-inline:auto;width:100%}
.tk{background:var(--surface);border-radius:24px;overflow:hidden}
.tk-top{position:relative;padding:18px 18px 16px;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.tk-top .stripes{inset:-10px auto -10px -20px;width:55%;opacity:.55;z-index:-1;transform:scaleX(-1)}
.tk-top small{font-size:11.5px;font-weight:700;color:var(--brand);letter-spacing:.06em}
.tk-top h3{font-size:19px;font-weight:900;line-height:1.4}
.tk-top p{font-size:12.5px;opacity:.85}
.tk-mid{padding:16px 18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 10px}
.tk-mid div{min-width:0}
.tk-mid dt,.tk-mid small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.tk-mid b{font-size:14px;font-weight:800;display:block;line-height:1.5}
.tk-mid .w2{grid-column:span 2}.tk-mid .w3{grid-column:span 3}
.tk-cut{position:relative;border-top:2px dashed var(--line);margin-inline:18px}
.tk-cut::before,.tk-cut::after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--bg)}
.tk-cut::before{right:-31px}.tk-cut::after{left:-31px}
.tk-qr{padding:18px;display:grid;justify-items:center;gap:10px}
.qr{width:190px;height:190px;padding:10px;background:#fff;border-radius:16px;border:1px solid var(--line)}
.qr svg{width:100%;height:100%;display:block}
.tk-id{font-size:15px;font-weight:900;letter-spacing:.12em;direction:ltr}
.tk-used{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.82);font-weight:900;color:var(--muted);font-size:15px;border-radius:16px}
.ok-h{text-align:center;display:grid;justify-items:center;gap:6px;padding-block:26px 8px}
.ok-h i{width:68px;height:68px;border-radius:50%;background:var(--brand);color:var(--ink);display:grid;place-items:center;box-shadow:0 0 0 10px var(--brand-soft)}
.ok-h i svg{width:34px;height:34px;stroke-width:2.6}
.ok-h h1{font-size:22px;font-weight:900;margin-top:12px}
.ok-h p{font-size:13.5px;color:var(--ink2);max-width:40ch}
.ok-h .rn{margin-top:6px;background:var(--surface);border:1px dashed var(--brand);border-radius:14px;padding:6px 18px;font-weight:900;letter-spacing:.1em;direction:ltr;font-size:17px}
.tk-rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:12px 16px 30px;scrollbar-width:none}
.tk-rail::-webkit-scrollbar{display:none}
.tk-rail .tk-wrap{flex:0 0 min(86%,360px);scroll-snap-align:center;margin:0}
.tk-rail.one{justify-content:center}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#E4EDED;border-radius:14px;padding:4px;margin-block:16px}
.tabs button{height:40px;border-radius:11px;font-size:13.5px;font-weight:700;color:var(--ink2)}
.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh)}
.trow{display:grid;grid-template-columns:72px 1fr;gap:14px;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--sh);padding:12px;align-items:center}
.trow .ph{border-radius:12px;overflow:hidden}
.trow h3{font-size:15px;font-weight:800}
.trow p{font-size:12.5px;color:var(--ink2)}
.trow .ac{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}

/* ---------- sheet, modal, toast ---------- */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(6,20,22,.5);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
.sheet{background:var(--surface);width:100%;max-width:520px;max-height:82%;border-radius:26px 26px 0 0;display:flex;flex-direction:column;animation:up .28s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom,0px)}
.sheet-h{padding:10px 18px 12px;border-bottom:1px solid var(--line)}
.sheet-h::before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 12px}
.sheet-h div{display:flex;align-items:center;justify-content:space-between}
.sheet-h h2{font-size:17px;font-weight:900}
.sheet-b{overflow:auto;padding:12px 18px 22px}
.prov{font-size:12px;font-weight:800;color:var(--muted);margin:14px 0 8px;letter-spacing:.04em}
.cbtn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 14px;border-radius:14px;font-weight:700;font-size:14.5px;text-align:start}
.cbtn:hover{background:var(--bg)}
.cbtn.on{background:var(--brand-soft);color:var(--brand-deep)}
.cbtn small{color:var(--muted);font-weight:600;font-size:12px}
.qrfull{position:fixed;inset:0;z-index:70;background:#fff;display:grid;place-items:center;align-content:center;gap:16px;padding:24px;text-align:center;animation:fade .2s}
.qrfull .qr{width:min(78vw,340px);height:min(78vw,340px);border:0}
.qrfull p{color:var(--ink2);font-size:13.5px}
.toast{position:fixed;z-index:80;bottom:calc(96px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:14px;font-size:13.5px;font-weight:600;box-shadow:var(--sh-lg);max-width:calc(100% - 32px);text-align:center;animation:up .25s}
@keyframes fade{from{opacity:0}}
@keyframes up{from{transform:translateY(30px);opacity:0}}
.toast{animation-name:tup}@keyframes tup{from{transform:translate(-50%,20px);opacity:0}}

.scan-cta{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--r-card);padding:16px;box-shadow:var(--sh)}
.scan-cta i{width:48px;height:48px;border-radius:15px;background:var(--brand);color:var(--ink);display:grid;place-items:center}
.scan-cta b{display:block;font-size:16px;font-weight:900;line-height:1.5}.scan-cta small{font-size:12.5px;color:#B9CCCD}

.poster.has-img{background-size:cover;background-position:center}
.vph.img{background-size:cover;background-position:center}.vph.img::before{display:none}
.remote p:has(>.demo-tag):not(.dev-code){display:none}

/* ---------- search ---------- */
.sbox{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:0 14px;height:54px;margin-block:16px;box-shadow:var(--sh)}
.sbox:focus-within{border-color:var(--brand)}
.sbox input{flex:1;border:0;outline:0;background:none;font-size:15px;min-width:0}
.sbox svg{color:var(--muted)}

/* ---------- desktop ---------- */
@media (min-width:720px){
  .elist{grid-template-columns:repeat(2,1fr)}
  .slide{height:320px;padding:26px 28px 34px}
  /* banners (uploaded and event) are 1048×331; the frame keeps exactly that shape so nothing is cut */
  .ban .slide{height:auto;aspect-ratio:1048/331;min-height:0}
  .pcard{flex-basis:176px}
  .pgrid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:22px 16px}
  .rail{gap:16px}
  .steps ol{grid-template-columns:repeat(4,1fr)}
  .ev-hero-in{grid-template-columns:200px 1fr;gap:28px;padding-block:36px 44px}
  .ev-hero h1{font-size:34px}
  .cast-m{display:none}.ev-hero .cast{display:flex}.ev-hero-in{align-items:stretch}.ev-hero-t{display:flex;flex-direction:column;justify-content:flex-end}.ev-hero-t .cast{margin-bottom:auto;padding-bottom:26px}
  .cast{gap:16px;margin-bottom:16px}.cast-i{width:88px}.cast-i img,.cast-i i{width:66px;height:66px;font-size:24px}.cast-i b{font-size:12.5px}.cast-i small{font-size:11px}
  .scrim{align-items:center}.sheet{border-radius:26px}
}
@media (min-width:960px){
  .hdr-in{height:76px}.logo img{height:56px}
  .hdr-nav,.hdr-search,.hdr-links{display:flex}
  .hdr-sp{display:none}
  .bnav{display:none}
  main{padding-bottom:60px}
  main.has-bar{padding-bottom:130px}
  .elist{grid-template-columns:repeat(3,1fr)}
  .vph.th{width:92px}
  .cats{justify-content:center;gap:18px;overflow:visible}
  .ev-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}
  .ev-grid .col{display:grid;gap:16px}
  .toast{bottom:40px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

html,body{margin:0}img{max-width:100%}[hidden]{display:none!important}/* dropdowns: styled button + list (the native <select> stays hidden underneath) — same component as the admin */
.dd-native{display:none!important}
.dd-btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer;min-width:0;color:var(--ink);background:var(--surface)}
.dd-btn .dd-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-btn>svg{width:18px;height:18px;color:var(--brand-ink);flex:none;transition:transform .15s}
.dd-btn.open{border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,185,182,.18)}.dd-btn.open>svg{transform:rotate(180deg)}
.dd-btn.ph .dd-val{color:var(--muted)}
.dd-btn:disabled{cursor:default}
.prof-card .dd-btn:disabled>svg{display:none}
.dd-pop{position:fixed;z-index:90;display:flex;flex-direction:column;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-lg);animation:ddIn .14s ease-out;outline:none}
@keyframes ddIn{from{opacity:0;transform:translateY(-4px)}}
.ms-search{flex:none;display:flex;align-items:center;gap:6px;height:42px;padding:0 12px;margin-bottom:6px;border-radius:12px;background:var(--bg);border:1px solid var(--line);min-width:0;overflow:hidden;transition:border-color .15s,box-shadow .15s,background .15s}
.ms-search svg{width:18px;height:18px;color:var(--muted);flex:none}
.ms-q{flex:1;width:100%;min-width:0;border:0;background:none;outline:none;font:inherit;font-size:16px;color:var(--ink)}
.ms-search input:focus,.ms-search input:focus-visible,.dd-pop:focus,.dd-pop:focus-visible{outline:none;box-shadow:none}
.ms-search:focus-within{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px rgba(23,185,182,.14)}
.dd-list{overflow:auto;display:grid;align-content:start;gap:2px;overscroll-behavior:contain;min-height:0}
.dd-opt{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border-radius:10px;text-align:start;font-size:14.5px;color:var(--ink);line-height:1.6}
.dd-opt span{flex:1;min-width:0}
.dd-opt:hover:not(:disabled),.dd-opt.act{background:var(--bg)}
.dd-opt.on{background:var(--brand-soft);color:var(--brand-ink);font-weight:800}
.dd-opt.ph{color:var(--muted)}
.dd-opt svg{width:18px;height:18px;flex:none}
.dd-opt:disabled{opacity:.45;cursor:not-allowed}
.dd-empty{padding:12px;font-size:13px;color:var(--muted)}
/* automatic discount: struck original price + tag */
s.was{color:var(--muted);font-weight:500;font-size:.86em;text-decoration-thickness:1.5px;margin-inline-end:2px}
.off-tag{display:inline-flex;align-items:center;padding:0 8px;border-radius:99px;background:#FDEBEA;color:#C0392B;font-size:11px;font-weight:800;line-height:1.8;white-space:nowrap;vertical-align:middle}
/* checkout note (text from the admin settings) */
.co-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:#FFF8DC;border:1px solid #F0DE97;color:#5E4A0E;font-size:13.5px;line-height:1.95}
.co-note svg{flex:none;width:20px;height:20px;margin-top:2px;color:#B8901A}
/* the VIP seats have their own automatic discount */
.tier.vip-off{background:#FDEBEA;color:#C0392B;border-color:#F6C9C4}

/* header on mid-size screens: the search box keeps a usable width; the three links drop to icons (names stay as tooltips) */
.hdr-search{flex:1 1 220px;min-width:170px}
.hdr-search span{overflow:hidden;text-overflow:ellipsis}
@media (min-width:1280px){.hdr .wrap{max-width:1248px}}
@media (min-width:960px) and (max-width:1279px){
  .hdr-links .hl-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hdr-links a{padding:9px}
  .hdr-nav{margin-inline-start:4px}.hdr-nav a{padding:8px 9px}
}

/* a session that has already started: greyed out, "برگزار شد", nothing to click */
.ses.past[disabled],.stile.past[disabled]{opacity:.6;background:var(--bg);border-style:dashed}
.ses.past[disabled] .tm,.stile.past[disabled] b{text-decoration:none;color:var(--muted)}
.pill.past{background:#ECF0F0!important;color:#6B7F80!important}
.stile em.past{background:#ECF0F0;color:#6B7F80}
.ses.closed[disabled],.stile.closed[disabled]{opacity:.7;background:var(--bg)}
.ses.closed[disabled] .tm,.stile.closed[disabled] b{text-decoration:none;color:var(--muted)}
.pill.closed{background:#FFF4E0!important;color:#9A5B00!important}
.stile em.closed{background:#FFF4E0;color:#9A5B00}
.day.past:not(.on){opacity:.55}
.day.past:not(.on) b{color:var(--muted)}

/* scan staff: ticket report card + picker sheet (events → sessions, with search) */
.rpt-cta{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;width:100%;text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;box-shadow:var(--sh)}
.rpt-cta:hover{border-color:var(--brand)}
.rpt-cta i{width:48px;height:48px;border-radius:15px;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center}
.rpt-cta b{display:block;font-size:16px;font-weight:900;line-height:1.5}.rpt-cta small{font-size:12.5px;color:var(--muted)}
.rpt-cta>svg{color:var(--muted)}
.sheet.rpt{max-height:88%}
.rpt-hint{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.8}
.rpt-q{display:flex;align-items:center;gap:8px;height:44px;margin-top:10px;padding:0 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.rpt-q:focus-within{border-color:var(--brand);background:var(--surface)}
.rpt-q input{flex:1;min-width:0;border:0;background:none;outline:0;font:inherit;font-size:16px;color:var(--ink)}
.rpt-ev{border:1px solid var(--line);border-radius:14px;margin-bottom:8px;overflow:hidden}
.rpt-ev.open{border-color:var(--brand)}
.rpt-evh{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;text-align:start}
.rpt-evh span{flex:1;display:grid;min-width:0;line-height:1.6}
.rpt-evh b{font-size:14.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rpt-evh small,.rpt-row small{font-size:12px;color:var(--muted)}
.rpt-evh>svg{color:var(--muted);transition:transform .15s}.rpt-ev.open .rpt-evh>svg{transform:rotate(180deg)}
.rpt-ses{border-top:1px solid var(--line);padding:6px;display:grid;gap:2px}
.rpt-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:10px;text-align:start}
.rpt-row:hover{background:var(--bg)}
.rpt-row span{flex:1;display:grid;min-width:0;line-height:1.6}.rpt-row b{font-size:13.5px;font-weight:700}
.rpt-row>svg{color:var(--brand-ink);flex:none}
.rpt-row.all{background:var(--brand-soft)}.rpt-row.all b{color:var(--brand-deep)}
.rpt-row.busy{opacity:.5;pointer-events:none}
.rpt-empty{padding:24px 8px;text-align:center;color:var(--muted);font-size:13.5px}

/* partnership request page */
.hdr-nav a.hdr-partner{color:var(--brand-ink)}
.prt-login{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink2);line-height:1.9;margin-bottom:14px;padding:12px 14px;border-radius:14px;background:var(--brand-soft)}
.prt-login svg{color:var(--brand-ink);flex:none;margin-top:3px}
.prt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.prt-grid .fld.full{grid-column:1/-1}
.req{color:var(--red);font-style:normal}
textarea.inp.area{height:auto;min-height:92px;padding:12px 14px;line-height:1.9;resize:vertical;font:inherit;font-size:15px}
.pf-pick{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:58px;border-radius:14px;border:1.5px dashed var(--line);color:var(--brand-ink);font-weight:700;font-size:14px;background:var(--bg)}
.pf-pick:hover{border-color:var(--brand)}
.pf-file.has{display:flex;align-items:center;gap:12px;padding:10px;border:1.5px solid var(--line);border-radius:14px}
.pf-file img,.pf-file i{width:56px;height:56px;border-radius:10px;object-fit:cover;flex:none;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.pf-file span{flex:1;display:grid;min-width:0;line-height:1.6}.pf-file b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-file small{font-size:12px;color:var(--muted)}
.prt-err{margin:0}
.prt-done{text-align:center;display:grid;gap:10px;justify-items:center;padding:28px 18px}
.prt-done>i{width:64px;height:64px;border-radius:22px;background:var(--green-soft);color:var(--green);display:grid;place-items:center}
.prt-done h3{font-size:18px;font-weight:900}.prt-done p{font-size:14px;color:var(--ink2);line-height:2}
.prt-mine{display:grid}.prt-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.prt-row:first-child{border-top:0}
.prt-row span:first-child{flex:1;display:grid;min-width:0;line-height:1.6}.prt-row b{font-size:14px}.prt-row small{font-size:12px;color:var(--muted)}
@media (max-width:640px){.prt-grid{grid-template-columns:minmax(0,1fr)}}
.city-chip{white-space:nowrap;flex:none}
@media (min-width:960px) and (max-width:1279px){.hdr-nav a{padding:8px 7px;font-size:13.5px}}
.pf-pick.err{border-color:var(--red);color:var(--red)}
/* partnership form: tabs + ticket menu */
.pf-card{padding:0;overflow:visible}
.pf-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:12px;border-bottom:1px solid var(--line);background:var(--bg);border-radius:var(--r-card) var(--r-card) 0 0}
.pf-st{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border-radius:12px;color:var(--muted);font-size:12.5px;font-weight:700;text-align:start;line-height:1.5;transition:.15s}
.pf-st:hover{background:var(--surface)}
.pf-st i{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12.5px;font-weight:800;background:var(--surface);border:1.5px solid var(--line);color:var(--muted)}
.pf-st i svg{width:14px;height:14px}
.pf-st span{min-width:0}
.pf-st.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh)}
.pf-st.on i{background:var(--brand);border-color:var(--brand);color:#fff}
.pf-st.done i{background:var(--brand-soft);border-color:var(--brand-soft);color:var(--brand-ink)}
.pf-st.bad i{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.pf-h{padding:16px 18px 4px}.pf-h small{font-size:12px;color:var(--brand-ink);font-weight:700}.pf-h h2{font-size:17px;font-weight:900;margin-top:2px}
.pf-card .prt-grid{padding:8px 18px 0}
.pf-card .prt-err{margin:0 18px 6px}
.pf-nav{display:flex;justify-content:space-between;gap:10px;padding:14px 18px 18px;border-top:1px solid var(--line);margin-top:8px}
.pf-nav .btn{min-width:140px}
.tk-menu{position:relative;min-width:0}.tk-rows{min-width:0}
.prt-grid>.fld{min-width:0}
.tk-btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer;font-size:14.5px}
.tk-btn span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-btn .ph{color:var(--muted)}
.tk-btn>svg{flex:none;color:var(--muted);transition:transform .15s}.tk-btn[aria-expanded="true"]>svg{transform:rotate(180deg)}
.tk-btn[aria-expanded="true"]{border-color:var(--brand)}
.tk-pop{position:absolute;inset-inline:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px rgba(11,36,38,.16);padding:8px;display:grid;gap:4px}
.tk-gh{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:12px;text-align:start}
.tk-gh:hover,.tk-grp.open .tk-gh{background:var(--bg)}
.tk-gh>i{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.tk-gh span{flex:1;display:grid;line-height:1.6;min-width:0}.tk-gh b{font-size:14px}.tk-gh small{font-size:12px;color:var(--muted)}
.tk-gh em{font-style:normal;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center}
.tk-gh>svg{flex:none;color:var(--muted);transition:transform .15s}.tk-grp.open .tk-gh>svg{transform:rotate(180deg)}
.tk-sub{display:grid;gap:2px;padding:4px 0 6px;margin-inline-start:28px;border-inline-start:2px solid var(--line);padding-inline-start:10px}
.tk-it{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:14px;font-weight:600;color:var(--ink2);text-align:start}
.tk-it:hover{background:var(--bg)}
.tk-it i{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;background:var(--surface)}
.tk-it i svg{width:13px;height:13px}
.tk-it.on{color:var(--ink)}.tk-it.on i{background:var(--brand);border-color:var(--brand);color:#fff}
.tk-it.all{font-weight:800;color:var(--brand-ink)}
.tk-hint{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.8;padding:6px 8px}.tk-hint svg{flex:none;width:15px;height:15px;margin-top:3px}
.tk-rows{display:grid;gap:8px;margin-top:10px}
.tk-row{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 8px;padding-inline-start:14px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg)}
.tk-row>span{flex:1;font-size:14px;font-weight:700}
.tk-row>em{font-style:normal;font-size:13px;font-weight:700;color:var(--green);padding:0 10px}
.tk-pr{display:flex;align-items:center;gap:6px;width:200px}.tk-pr .inp{height:42px;font-size:14.5px;min-width:0;flex:1}.tk-pr small{font-size:12px;color:var(--muted);white-space:nowrap}
@media (max-width:640px){
 .pf-steps{padding:10px 8px;gap:2px;position:relative}
 .pf-st{flex-direction:column;justify-content:center;padding:6px 2px;font-size:10.5px;text-align:center;gap:4px}
 .pf-st span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
 .pf-st.on{box-shadow:none;background:transparent}
 .pf-h{padding:14px 14px 2px}.pf-card .prt-grid{padding:8px 14px 0}.pf-card .prt-err{margin:0 14px 6px}.pf-nav{padding:12px 14px 14px}
 .pf-nav .btn{min-width:0;flex:1}.pf-nav>span{display:none}
 .tk-pr{width:160px}.tk-row{padding-inline-start:12px}
}
.prt-share{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,var(--brand-soft),#F3FBFB);border:1px solid #C9EEEC}
.prt-share>b{flex:none;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:21px;font-weight:900;box-shadow:0 8px 18px -8px rgba(23,185,182,.7)}
.prt-share span{display:grid;gap:2px;font-size:13px;line-height:1.9;color:var(--ink2)}.prt-share strong{font-size:14.5px;font-weight:800;color:var(--brand-deep)}
.prt-done-a{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.prt-ct{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--brand-ink);padding:4px 8px;border-radius:8px}.prt-ct:hover{background:var(--brand-soft)}.prt-ct svg{width:15px;height:15px}
.pwrap.past .sold-tag{color:#5E7273;border-color:#8FA2A3}.pwrap.closed .sold-tag{color:#9A5B00;border-color:#D9A54A}
.sold-chip.past{background:#6B7F80!important}.sold-chip.closed{background:#B26A00!important}
/* partner form: date + time picker */
.dp{position:relative;min-width:0}
.dp-btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer;font-size:14.5px}
.dp-btn>svg{color:var(--brand-ink);flex:none}.dp-btn span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-btn .ph{color:var(--muted)}
.dp-btn[aria-expanded="true"]{border-color:var(--brand)}
.dp-pop{position:absolute;top:calc(100% + 6px);inset-inline-start:0;z-index:40;width:540px;max-width:calc(100vw - 16px);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 50px rgba(11,36,38,.2);padding:14px;display:grid;gap:12px}
.dp-main{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px}
.dp-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dp-h b{font-size:15px;font-weight:800}
.dp-h .ibtn{width:34px;height:34px;border-radius:10px;color:var(--brand-ink)}.dp-h .ibtn:hover{background:var(--brand-soft)}.dp-h .ibtn:disabled{opacity:.3;cursor:default;background:none}
.dp-w,.dp-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.dp-w span{font-size:12px;color:var(--muted);font-weight:700;padding:4px 0}
.dp-d{height:38px;border-radius:10px;border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink);transition:.12s}
.dp-d:hover:not(:disabled){border-color:var(--brand);color:var(--brand-ink)}
.dp-d.today{border-color:var(--brand);color:var(--brand-ink);font-weight:800}
.dp-d.on{background:var(--brand);border-color:var(--brand);color:#fff}
.dp-d:disabled{opacity:.3;cursor:not-allowed}
.dp-time{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-inline-start:1px solid var(--line);padding-inline-start:14px}
.tp-col{display:grid;grid-template-rows:auto 1fr;gap:6px;min-height:0}.tp-col small{text-align:center;font-size:12px;color:var(--muted);font-weight:700}
.tp-l{height:262px;overflow:auto;display:grid;gap:3px;align-content:start;padding:3px;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin;position:relative}
.tp-l button{height:32px;border-radius:8px;font-size:14px;font-weight:600;color:var(--ink)}.tp-l button:hover{background:var(--bg)}.tp-l button.on{background:var(--brand);color:#fff}
.dp-f{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:12px}.dp-f span{flex:1}
@media (max-width:640px){
 .dp-pop{width:100%;padding:12px}
 .dp-main{grid-template-columns:minmax(0,1fr)}
 .dp-time{border-inline-start:0;padding-inline-start:0;border-top:1px solid var(--line);padding-top:10px}
 .tp-l{height:128px}.dp-d{height:36px}
}
