:root{--bg:#040711;--surface:#0a0e1a;--surface-2:#111726;--surface-3:#182032;--line:#1a2233;--line-soft:#121927;--fg:#eceff5;--fg-2:#a9b2c4;--muted:#6f7a90;--accent:#e87b35;--accent-hi:#f2914f;--accent-ink:#1a0d04;--accent-wash:#e87b351f;--accent-line:#e87b3559;--held:#64748b;--danger:#e5484d;--r-sm:8px;--r:12px;--r-lg:16px;--maxw:1240px;--ease:cubic-bezier(.22, .61, .36, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{height:100%}body{background:var(--bg);color:var(--fg);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-synthesis-weight:none;min-height:100dvh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}img{max-width:100%;display:block}input,select,textarea{font:inherit}.tnum,.price-tag,.time-pill .t,.pay-line,.sel-seats,.admin-table td{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent);color:var(--accent-ink)}.container{max-width:var(--maxw);margin:0 auto;padding:2rem 1.5rem 5rem}.footer{border-top:1px solid var(--line-soft);color:var(--muted);text-align:center;padding:1.5rem;font-size:.78rem}.muted{color:var(--muted)}.small{font-size:.8rem}.pad{padding:3rem 0}.break{word-break:break-all}.nav{z-index:40;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line-soft);position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;gap:1rem;height:60px;margin:0 auto;padding:0 1.5rem;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:.55rem;font-size:1.02rem;font-weight:700;display:inline-flex}.brand-mark{color:var(--accent);flex:none;place-items:center;display:grid}.brand-dim{color:var(--muted);font-weight:500}.nav-right{align-items:center;gap:.25rem;display:flex}.nav-link{border-radius:var(--r-sm);color:var(--fg-2);transition:color .15s var(--ease), background .15s var(--ease);padding:.45rem .7rem;font-size:.875rem;font-weight:500}.nav-link:hover{color:var(--fg);background:var(--surface-2)}.nav-link.active{color:var(--fg)}.nav-link.primary{background:var(--accent);color:var(--accent-ink);font-weight:600}.nav-link.primary:hover{background:var(--accent-hi);color:var(--accent-ink)}.user-menu{position:relative}.user-btn{border:1px solid var(--line);transition:border-color .15s var(--ease), background .15s var(--ease);border-radius:999px;align-items:center;gap:.5rem;padding:.28rem .6rem .28rem .3rem;font-size:.85rem;font-weight:500;display:flex}.user-btn:hover{background:var(--surface-2);border-color:var(--surface-3)}.avatar-sm{background:var(--accent);width:26px;height:26px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.menu{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);min-width:232px;animation:pop .14s var(--ease);padding:.3rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #0000008c}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}}.menu-head{color:var(--muted);border-bottom:1px solid var(--line-soft);word-break:break-all;flex-direction:column;gap:.4rem;margin-bottom:.3rem;padding:.6rem .65rem;font-size:.78rem;display:flex}.menu-item{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--fg-2);transition:background .12s var(--ease), color .12s var(--ease);padding:.5rem .65rem;font-size:.855rem;font-weight:500;display:block}.menu-item:hover{background:var(--surface-3);color:var(--fg)}.menu-item.danger{color:var(--danger)}.role{letter-spacing:.07em;text-transform:uppercase;background:var(--surface-3);color:var(--fg-2);border-radius:4px;align-self:flex-start;padding:.16rem .42rem;font-size:.62rem;font-weight:700}.role.admin{background:var(--accent-wash);color:var(--accent-hi)}.role.mall_manager{color:#93aaf3;background:#6386eb29}.hero{justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0 1.5rem;display:flex}.hero h1{letter-spacing:-.035em;font-size:1.4rem;font-weight:650}.eyebrow{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:600}.grid{grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:1.5rem 1.15rem;display:grid}.card{min-width:0;display:block}.poster{aspect-ratio:2/3;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-soft);transition:border-color .2s var(--ease), transform .25s var(--ease);position:relative;overflow:hidden;transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.poster img{object-fit:cover;width:100%;height:100%;transition:transform .45s var(--ease);backface-visibility:hidden}.card:hover .poster{border-color:var(--accent-line);transform:translateY(-3px)}.card:hover .poster img{transform:scale(1.045)}.rating{z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--fg);letter-spacing:-.01em;background:#040711c7;border-radius:6px;padding:.2rem .4rem;font-size:.7rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.book-hint{color:var(--fg);opacity:0;transition:opacity .2s var(--ease), transform .2s var(--ease);background:linear-gradient(#0000,#040711eb);padding:2.2rem .7rem .65rem;font-size:.78rem;font-weight:600;position:absolute;inset:auto 0 0;transform:translateY(6px)}.card:hover .book-hint{opacity:1;transform:translateY(0)}.card-body{padding:.65rem .1rem 0}.card-title{letter-spacing:-.017em;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.885rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.card-meta{color:var(--muted);margin-top:.2rem;font-size:.775rem}.chips{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.chip{color:var(--fg-2);border:1px solid var(--line);border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:500}.booking{grid-template-columns:264px 1fr;align-items:start;gap:2.75rem;display:grid}.booking-poster{position:sticky;top:84px}.booking-poster img{aspect-ratio:2/3;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--line);width:100%}.booking-info{min-width:0}.back{color:var(--muted);transition:color .15s var(--ease);margin-bottom:1rem;font-size:.82rem;font-weight:500;display:inline-block}.back:hover{color:var(--fg)}.booking-info h1{letter-spacing:-.038em;font-size:2rem;font-weight:680;line-height:1.1}.big-rating{color:var(--accent-hi);margin-top:.7rem;font-size:.875rem;font-weight:600}.desc{max-width:62ch;color:var(--fg-2);margin-top:1.1rem;line-height:1.65}.showtimes{border-top:1px solid var(--line-soft);margin-top:2.5rem;padding-top:1.75rem}.showtimes h2{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;font-size:.7rem;font-weight:600}.dates{scrollbar-width:none;gap:.4rem;margin-bottom:1.4rem;padding-bottom:.4rem;display:flex;overflow-x:auto}.dates::-webkit-scrollbar{display:none}.date-pill{border-radius:var(--r-sm);border:1px solid var(--line);color:var(--fg-2);white-space:nowrap;transition:all .15s var(--ease);flex:none;padding:.5rem .85rem;font-size:.815rem;font-weight:550}.date-pill:hover{border-color:var(--surface-3);color:var(--fg)}.date-pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}.mall-card{border-bottom:1px solid var(--line-soft);padding:1.1rem 0}.mall-card:last-child{border-bottom:0}.mall-name{letter-spacing:-.018em;font-size:.95rem;font-weight:600}.times{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.time-pill{border-radius:var(--r-sm);border:1px solid var(--line);min-width:82px;transition:all .15s var(--ease);flex-direction:column;align-items:center;gap:.1rem;padding:.5rem .7rem;display:flex}.time-pill:hover{border-color:var(--accent);background:var(--accent-wash)}.time-pill .t{letter-spacing:-.01em;font-size:.875rem;font-weight:650}.time-pill .f{color:var(--muted);letter-spacing:.02em;font-size:.66rem}.btn{border-radius:var(--r-sm);background:var(--accent);height:40px;color:var(--accent-ink);letter-spacing:-.01em;transition:background .15s var(--ease), opacity .15s var(--ease);justify-content:center;align-items:center;gap:.4rem;padding:0 1.15rem;font-size:.875rem;font-weight:650;display:inline-flex}.btn:hover:not(:disabled){background:var(--accent-hi)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.danger{border:1px solid var(--line);color:var(--fg-2);background:0 0}.btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:0 0}.link{color:var(--accent-hi);font-weight:550;font-size:inherit}.link:hover{text-underline-offset:2px;text-decoration:underline}.error{color:#ff9ea1;border-radius:var(--r-sm);background:#e5484d1a;border:1px solid #e5484d4d;margin-bottom:1rem;padding:.6rem .8rem;font-size:.83rem}.notice{background:var(--surface-2);border:1px solid var(--line);color:var(--fg-2);border-radius:var(--r-sm);margin-bottom:1.1rem;padding:.65rem .85rem;font-size:.84rem}.notice a{color:var(--accent-hi);font-weight:600}.auth-wrap{place-items:center;min-height:68vh;padding:2rem 0;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:372px;padding:2rem 1.75rem}.auth-card h1{letter-spacing:-.032em;font-size:1.35rem;font-weight:650}.auth-form{flex-direction:column;gap:.6rem;margin-top:1.5rem;display:flex}.row2{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.auth-form input{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);height:42px;color:var(--fg);transition:border-color .15s var(--ease);padding:0 .85rem;font-size:.885rem}.auth-form input::placeholder{color:var(--muted)}.auth-form input:focus{border-color:var(--accent);outline:none}.auth-form .btn{height:42px;margin-top:.35rem}.switch{color:var(--muted);text-align:center;margin-top:1.1rem;font-size:.82rem}.seatspage{max-width:920px;margin:0 auto;padding:2rem 1.5rem 8rem}.show-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.show-head h1{letter-spacing:-.035em;margin-bottom:.3rem;font-size:1.5rem;font-weight:650}.price-legend{flex-wrap:wrap;gap:.4rem;display:flex}.price-tag{color:var(--fg-2);border:1px solid var(--line);border-radius:6px;padding:.28rem .55rem;font-size:.72rem;font-weight:600}.seatmap{padding:0 0 1rem}.screen{letter-spacing:.28em;width:min(78%,520px);height:46px;color:var(--muted);text-align:center;margin:0 auto 2.75rem;font-size:.62rem;font-weight:700;position:relative}.screen:before{content:"";border-top:2px solid var(--accent);opacity:.5;filter:blur(.2px);border-radius:50%/100% 100% 0 0;height:34px;position:absolute;inset:0 0 auto}.screen:after{content:"SCREEN";position:absolute;inset:auto 0 0}.cat-label{letter-spacing:.14em;color:var(--muted);text-align:center;margin:1.5rem 0 .75rem;font-size:.63rem;font-weight:700}.cat-label:first-child{margin-top:0}.seat-row{justify-content:center;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.row-label{text-align:center;width:1rem;color:var(--muted);flex:none;font-size:.66rem;font-weight:600}.row-seats{gap:.3rem;display:flex}.seat{border:1px solid var(--line);width:1.85rem;height:1.7rem;color:var(--muted);transition:transform .12s var(--ease), background .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease);background:0 0;border-radius:5px 5px 3px 3px;font-size:.6rem;font-weight:600}.seat.couple{border-radius:9px 9px 3px 3px}.seat.pair-end{margin-right:.55rem}.seat.pair-end:last-child{margin-right:0}.seat.available:hover{border-color:var(--accent);color:var(--fg);transform:translateY(-2px)}.seat.locked-by-me{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.seat.locked-by-others{background:color-mix(in srgb, var(--held) 26%, transparent);border-color:color-mix(in srgb, var(--held) 55%, transparent);color:#93a0b5}.seat.booked{background:var(--surface-2);border-color:var(--surface-2);color:#3a4356}.seat:disabled{pointer-events:none}.legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:1.15rem;margin-top:2.25rem;font-size:.74rem;display:flex}.legend span{align-items:center;gap:.4rem;display:flex}.seat-dot{border:1px solid;border-radius:4px 4px 2px 2px;width:.8rem;height:.75rem;display:inline-block}.seat-dot.available{border-color:var(--line);background:0 0}.seat-dot.locked-by-me{background:var(--accent);border-color:var(--accent)}.seat-dot.locked-by-others{background:color-mix(in srgb, var(--held) 26%, transparent);border-color:color-mix(in srgb, var(--held) 55%, transparent)}.seat-dot.booked{background:var(--surface-2);border-color:var(--surface-2)}.summary-bar{z-index:30;background:var(--surface-2);border:1px solid var(--line);width:min(600px,100% - 2rem);animation:rise .22s var(--ease);border-radius:14px;justify-content:space-between;align-items:center;gap:1.25rem;padding:.7rem .7rem .7rem 1.15rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 18px 48px #0009}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}}.sel-seats{letter-spacing:-.015em;font-size:.9rem;font-weight:650}.overlay{z-index:60;-webkit-backdrop-filter:blur(6px);animation:fade .16s var(--ease);background:#040711b8;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.paymodal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:384px;animation:pop .18s var(--ease);padding:1.65rem}.paymodal h2{letter-spacing:-.028em;font-size:1.1rem;font-weight:650}.paymodal code{color:var(--fg-2);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.pay-lines{margin:1.25rem 0 1.4rem}.pay-line{color:var(--fg-2);border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:.85rem;display:flex}.pay-line.total{color:var(--fg);border-bottom:0;padding-top:.8rem;font-size:.95rem;font-weight:700}.pay-actions{flex-direction:column;gap:.5rem;display:flex}.pay-actions .btn{width:100%}.admin{padding-top:.5rem}.admin-head{margin-bottom:1.75rem}.admin-head h1{letter-spacing:-.035em;margin-top:.3rem;font-size:1.5rem;font-weight:650}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:1.25rem;padding:1.5rem}.panel h2{letter-spacing:-.022em;align-items:center;gap:.5rem;margin-bottom:1.1rem;font-size:.95rem;font-weight:650;display:flex}.count{color:var(--muted);background:var(--surface-2);border-radius:5px;padding:.13rem .42rem;font-size:.7rem;font-weight:600}.table-wrap{margin:0 -.35rem;padding:0 .35rem;overflow-x:auto}.admin-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.83rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line-soft);padding:.62rem .75rem .62rem 0}.admin-table th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:500}.admin-table tr:last-child td{border-bottom:0}.admin-form{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.admin-form .f{flex-direction:column;gap:.35rem;min-width:0;display:flex}.admin-form .f.full,.admin-form .full{grid-column:1/-1}.admin-form label{color:var(--muted);font-size:.75rem;font-weight:500}.admin-form input,.admin-form select,.admin-form textarea{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);height:38px;color:var(--fg);transition:border-color .15s var(--ease);min-width:0;padding:0 .7rem;font-size:.855rem}.admin-form textarea{resize:vertical;height:auto;min-height:76px;padding:.55rem .7rem;line-height:1.55}.admin-form input::placeholder,.admin-form textarea::placeholder{color:var(--muted)}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:var(--accent);outline:none}.admin-form select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 15px) 17px,calc(100% - 10px) 17px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2rem}.admin-form input[type=date],.admin-form input[type=time]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.admin-movies{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:1rem;display:grid}.admin-movie{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);overflow:hidden}.admin-movie img{aspect-ratio:2/3;object-fit:cover;width:100%}.am-body{padding:.6rem .65rem .7rem}.am-title{letter-spacing:-.015em;font-size:.8rem;font-weight:600;line-height:1.3}.remove{color:var(--muted);border:1px solid var(--line);transition:all .15s var(--ease);border-radius:6px;margin-top:.5rem;padding:.25rem .5rem;font-size:.74rem;font-weight:550}.remove:hover:not(:disabled){color:var(--danger);border-color:#e5484d66}.remove:disabled{opacity:.35;cursor:not-allowed}.blocks{flex-direction:column;gap:.5rem;display:flex}.layout-block{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);grid-template-columns:4.75rem 5.75rem minmax(0,1fr) auto auto auto;align-items:end;gap:.6rem;padding:.7rem;display:grid}.lb-f{flex-direction:column;gap:.3rem;min-width:0;display:flex}.lb-f label{color:var(--muted);font-size:.68rem}.lb-check{color:var(--muted);white-space:nowrap;cursor:pointer;align-items:center;gap:.35rem;padding-bottom:.5rem;font-size:.75rem;display:flex}.lb-check input{accent-color:var(--accent);width:14px;height:14px}.lb-range{color:var(--accent-hi);white-space:nowrap;font-variant-numeric:tabular-nums;padding-bottom:.55rem;font-size:.7rem;font-weight:700}.lb-foot{justify-content:space-between;align-items:center;gap:1rem;margin-top:.6rem;display:flex}.price-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);grid-template-columns:minmax(0,1fr) auto 6.5rem;align-items:center;gap:.75rem;padding:.5rem .7rem;display:grid}.pr-name{font-size:.82rem;font-weight:600}@media (width<=860px){.booking{grid-template-columns:1fr;gap:1.75rem}.booking-poster{max-width:210px;position:static}.booking-info h1{font-size:1.6rem}}@media (width<=720px){.container{padding:1.5rem 1rem 4rem}.user-name{display:none}.admin-form{grid-template-columns:1fr}.layout-block{grid-template-columns:1fr 1fr;row-gap:.7rem}.grid{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:1.25rem .85rem}.seat{width:1.5rem;height:1.45rem;font-size:.54rem}.row-seats{gap:.22rem}.seatspage{padding:1.25rem .85rem 7rem}.show-head h1{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
