:root{--bg:#0a0a0f;--bg-soft:#121219;--surface:#16161f;--surface-2:#1d1d28;--border:#26263300;--border-solid:#262633;--fg:#f4f4f6;--muted:#9b9ba8;--accent:#e11d48;--accent-soft:#f43f5e;--radius:14px;--maxw:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:radial-gradient(1200px 600px at 80% -10%, #e11d482e, transparent 60%), radial-gradient(900px 500px at 0% 0%, #6366f11f, transparent 55%), var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:Inter,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{display:block}.nav{z-index:50;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-solid);position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;height:64px;margin:0 auto;padding:0 1.5rem;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:flex}.brand-mark{color:var(--accent);font-size:1.1rem}.brand-dim{color:var(--muted);font-weight:600}.nav-right{align-items:center;gap:.5rem;display:flex}.nav-link{color:var(--muted);border-radius:9px;padding:.5rem .85rem;font-size:.9rem;font-weight:500;transition:color .15s,background .15s}.nav-link:hover{color:var(--fg);background:var(--surface-2)}.nav-link.active{color:var(--fg)}.nav-link.primary{color:#fff;background:var(--accent)}.nav-link.primary:hover{background:var(--accent-soft)}.user-menu{position:relative}.user-btn{background:var(--surface-2);border:1px solid var(--border-solid);color:var(--fg);border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .7rem .35rem .4rem;font-size:.875rem;font-weight:500;display:flex}.user-btn:hover{background:var(--surface)}.avatar-sm{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.8rem;font-weight:600;display:grid}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.menu{background:var(--surface);border:1px solid var(--border-solid);border-radius:12px;width:230px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px #00000080}.menu-head{color:var(--muted);border-bottom:1px solid var(--border-solid);word-break:break-all;justify-content:space-between;align-items:center;gap:.5rem;padding:.8rem .9rem;font-size:.8rem;display:flex}.role{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);color:var(--fg);border-radius:999px;flex-shrink:0;padding:.12rem .45rem;font-size:.65rem;font-weight:600}.role.admin{background:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent-soft)}.role.mall_manager{color:#a5b4fc;background:#6366f147}.menu-item{text-align:left;width:100%;color:var(--fg);background:0 0;border:none;padding:.7rem .9rem;font-size:.875rem;display:block}.menu-item:hover{background:var(--surface-2)}.menu-item.danger{color:var(--accent-soft)}.container{max-width:var(--maxw);margin:0 auto;padding:2rem 1.5rem 4rem}.muted{color:var(--muted)}.pad{padding:2rem 0}.footer{max-width:var(--maxw);color:var(--muted);border-top:1px solid var(--border-solid);margin:0 auto;padding:2rem 1.5rem;font-size:.8rem}.hero{max-width:640px;padding:2.5rem 0 2rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-soft);margin-bottom:.75rem;font-size:.75rem;font-weight:600;display:inline-block}.hero h1{letter-spacing:-.03em;font-size:2.4rem;font-weight:700;line-height:1.1}.hero p{color:var(--muted);margin-top:.75rem;font-size:1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem;display:grid}.card{background:var(--surface);border:1px solid var(--border-solid);border-radius:var(--radius);transition:transform .18s,border-color .18s,box-shadow .18s;overflow:hidden}.card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border-solid));transform:translateY(-4px);box-shadow:0 18px 40px #00000073}.poster{aspect-ratio:2/3;background:var(--surface-2);position:relative;overflow:hidden}.poster img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.card:hover .poster img{transform:scale(1.06)}.rating{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fbbf24;background:#000000b3;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600;position:absolute;top:.6rem;right:.6rem}.book-hint{text-align:center;color:#fff;opacity:0;background:linear-gradient(#0000,#e11d48f2);padding:.6rem;font-size:.8rem;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.card:hover .book-hint{opacity:1;transform:translateY(0)}.card-body{padding:.85rem .9rem 1rem}.card-title{font-size:.95rem;font-weight:600;line-height:1.3}.card-meta{color:var(--muted);margin-top:.25rem;font-size:.78rem}.chips{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;display:flex}.chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--border-solid);border-radius:999px;padding:.2rem .5rem;font-size:.68rem}.booking{grid-template-columns:300px 1fr;gap:2.5rem;padding-top:1rem;display:grid}.booking-poster img{border-radius:var(--radius);border:1px solid var(--border-solid);aspect-ratio:2/3;object-fit:cover;width:100%}.booking-info{min-width:0}.back{color:var(--muted);font-size:.85rem}.back:hover{color:var(--fg)}.booking-info h1{letter-spacing:-.02em;margin:.75rem 0 .4rem;font-size:2rem}.big-rating{color:#fbbf24;margin:.6rem 0;font-weight:600}.desc{color:#d7d7df;max-width:60ch;margin-top:1rem;line-height:1.65}.wip{border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border-solid);margin-top:2rem;padding:1.5rem}.wip h2{font-size:1.1rem}.wip p{margin-top:.5rem}.btn{background:var(--accent);color:#fff;border:none;border-radius:10px;height:2.6rem;margin-top:1rem;padding:0 1.4rem;font-size:.9rem;font-weight:600;transition:background .15s,opacity .15s}.btn:hover:not(:disabled){background:var(--accent-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.auth-wrap{place-items:center;padding:3rem 0;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border-solid);border-radius:18px;width:100%;max-width:400px;padding:2rem;box-shadow:0 20px 50px #0006}.auth-card h1{letter-spacing:-.02em;font-size:1.5rem}.auth-card>.muted{margin-top:.35rem;font-size:.9rem}.auth-form{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.row2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.auth-form input{background:var(--bg-soft);border:1px solid var(--border-solid);width:100%;height:2.6rem;color:var(--fg);border-radius:10px;outline:none;padding:0 .85rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.auth-form input::placeholder{color:var(--muted)}.error{color:#fecaca;background:color-mix(in srgb, var(--accent) 16%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:10px;padding:.6rem .75rem;font-size:.82rem}.switch{color:var(--muted);text-align:center;margin-top:1rem;font-size:.85rem}.link{color:var(--accent-soft);font-weight:600;font-size:inherit;background:0 0;border:none}.link:hover{text-decoration:underline}.admin{padding-top:1rem}.admin-head{margin-bottom:1.5rem}.admin-head h1{letter-spacing:-.02em;margin-top:.3rem;font-size:1.8rem}.panel{background:var(--surface);border:1px solid var(--border-solid);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.5rem}.panel h2{align-items:center;gap:.5rem;font-size:1.05rem;display:flex}.count{color:var(--muted);background:var(--surface-2);border:1px solid var(--border-solid);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600}.small{font-size:.82rem}.panel .small{margin-top:.25rem;margin-bottom:1rem}.table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border-solid);padding:.65rem .6rem}.admin-table th{color:var(--muted);font-weight:500}.admin-table td.break{word-break:break-all}.admin-form{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.admin-form .f{flex-direction:column;gap:.35rem;display:flex}.admin-form .f.full{grid-column:1/-1}.admin-form label{color:var(--muted);font-size:.8rem;font-weight:500}.admin-form input,.admin-form textarea{background:var(--bg-soft);border:1px solid var(--border-solid);height:2.5rem;color:var(--fg);border-radius:10px;outline:none;padding:0 .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.admin-form textarea{resize:vertical;height:auto;min-height:70px;padding:.6rem .75rem}.admin-form select{border:1px solid var(--border-solid);background:var(--bg-soft);height:38px;color:var(--fg);border-radius:9px;padding:0 .75rem;font-family:inherit;font-size:.88rem}.admin-form select:focus{border-color:var(--accent);outline:none}.admin-form input[type=date],.admin-form input[type=time]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.blocks{flex-direction:column;gap:.5rem;display:flex}.layout-block{border:1px solid var(--border-solid);background:var(--bg-soft);border-radius:10px;grid-template-columns:5.5rem 6.5rem 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:.72rem}.lb-check{color:var(--muted);white-space:nowrap;align-items:center;gap:.4rem;padding-bottom:.55rem;font-size:.78rem;display:flex}.lb-check input{accent-color:var(--accent)}.lb-range{color:var(--accent-soft);white-space:nowrap;padding-bottom:.55rem;font-size:.72rem;font-weight:600}.lb-foot{justify-content:space-between;align-items:center;margin-top:.6rem;display:flex}.price-row{border:1px solid var(--border-solid);background:var(--bg-soft);border-radius:10px;grid-template-columns:1fr auto 7rem;align-items:center;gap:.75rem;padding:.55rem .7rem;display:grid}.pr-name{font-size:.85rem;font-weight:600}.admin-form input:focus,.admin-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.admin-movies{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.admin-movie{background:var(--bg-soft);border:1px solid var(--border-solid);border-radius:12px;overflow:hidden}.admin-movie img{aspect-ratio:2/3;object-fit:cover;width:100%}.am-body{padding:.65rem}.am-title{font-size:.85rem;font-weight:600;line-height:1.3}.remove{width:100%;height:1.9rem;color:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:0 0;border-radius:9px;margin-top:.55rem;font-size:.78rem;font-weight:600}.remove:hover{background:color-mix(in srgb, var(--accent) 14%, transparent)}.showtimes{margin-top:2rem}.showtimes h2{margin-bottom:.9rem;font-size:1.1rem}.dates{flex-wrap:wrap;gap:.5rem;margin-bottom:1.1rem;display:flex}.date-pill{background:var(--surface);color:var(--muted);border:1px solid var(--border-solid);border-radius:999px;padding:.45rem .9rem;font-size:.83rem;font-weight:600;transition:all .15s}.date-pill:hover{color:var(--fg)}.date-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.mall-card{background:var(--surface);border:1px solid var(--border-solid);border-radius:var(--radius);margin-bottom:.9rem;padding:1.1rem 1.25rem}.mall-name{font-size:.95rem;font-weight:600}.times{flex-wrap:wrap;gap:.6rem;margin-top:.8rem;display:flex}.time-pill{background:var(--bg-soft);border:1px solid var(--border-solid);border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;min-width:92px;padding:.5rem .9rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.time-pill:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.time-pill .t{color:var(--fg);font-size:.92rem;font-weight:700}.time-pill .f{color:var(--muted);font-size:.68rem}.seatspage{max-width:880px;margin:0 auto;padding:2rem 1.5rem 7rem}.show-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.show-head h1{letter-spacing:-.02em;margin:.35rem 0 .25rem;font-size:1.6rem}.price-legend{flex-wrap:wrap;gap:.5rem;display:flex}.price-tag{color:var(--muted);background:var(--surface);border:1px solid var(--border-solid);border-radius:999px;padding:.25rem .6rem;font-size:.72rem;font-weight:600}.notice{background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:10px;margin-bottom:1rem;padding:.7rem 1rem;font-size:.85rem}.notice a{color:var(--accent-soft)}.seatmap{background:var(--surface);border:1px solid var(--border-solid);border-radius:var(--radius);padding:1.75rem 1.25rem}.screen{text-align:center;letter-spacing:.35em;max-width:420px;height:2rem;color:var(--muted);background:var(--bg-soft);border:1px solid var(--border-solid);border-bottom-width:4px;border-radius:50% 50% 8px 8px/90% 90% 8px 8px;margin:0 auto 1.75rem;font-size:.68rem;font-weight:700;line-height:1.9rem}.cat-label{text-align:center;letter-spacing:.2em;color:var(--muted);margin:.9rem 0 .5rem;font-size:.66rem;font-weight:700}.seat-row{justify-content:center;align-items:center;gap:.6rem;margin-bottom:.45rem;display:flex}.row-label{text-align:center;width:1.2rem;color:var(--muted);font-size:.7rem;font-weight:600}.row-seats{gap:.32rem;display:flex}.seat{cursor:pointer;border:1px solid;border-radius:7px 7px 4px 4px;width:1.9rem;height:1.75rem;font-size:.62rem;font-weight:600;transition:transform .1s,background .15s}.seat.couple{border-radius:10px 10px 5px 5px}.seat.available{color:var(--muted);border-color:color-mix(in srgb, var(--fg) 28%, transparent);background:0 0}.seat.available:hover{border-color:var(--accent);color:var(--fg);transform:scale(1.12)}.seat.locked-by-me{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}.seat.locked-by-others{color:#eab308;cursor:not-allowed;background:#eab30838;border-color:#eab3088c}.seat.booked{background:var(--surface-2);border-color:var(--border-solid);color:color-mix(in srgb, var(--muted) 45%, transparent);cursor:not-allowed}.seat:disabled{pointer-events:none}.legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:1.25rem;margin-top:1.5rem;font-size:.75rem;display:flex}.legend span{align-items:center;gap:.4rem;display:flex}.seat-dot{border:1px solid;border-radius:4px;width:.85rem;height:.8rem;display:inline-block}.seat-dot.available{border-color:color-mix(in srgb, var(--fg) 28%, transparent);background:0 0}.seat-dot.locked-by-me{background:var(--accent);border-color:var(--accent)}.seat-dot.locked-by-others{background:#eab30838;border-color:#eab308}.seat-dot.booked{background:var(--surface-2);border-color:var(--border-solid)}.summary-bar{background:var(--surface);border:1px solid var(--border-solid);z-index:40;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;width:min(560px,100% - 2rem);padding:.8rem 1.1rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.sel-seats{font-size:.92rem;font-weight:700}.overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.paymodal{background:var(--surface);border:1px solid var(--border-solid);border-radius:var(--radius);width:min(430px,100%);padding:1.75rem}.paymodal h2{margin-bottom:.4rem;font-size:1.15rem}.paymodal code{color:var(--accent-soft);word-break:break-all;font-size:.72rem}.pay-lines{margin:1.1rem 0 1.4rem}.pay-line{border-bottom:1px dashed var(--border-solid);justify-content:space-between;padding:.45rem 0;font-size:.85rem;display:flex}.pay-line.total{border-bottom:none;padding-top:.7rem;font-weight:700}.pay-actions{flex-direction:column;gap:.6rem;display:flex}.pay-actions .btn{text-align:center;text-decoration:none}.btn.danger{color:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:0 0}.btn.danger:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}@media (width<=720px){.hero h1{font-size:1.9rem}.booking{grid-template-columns:1fr}.booking-poster{max-width:240px}.user-name{display:none}.admin-form{grid-template-columns:1fr}.seat{width:1.5rem;height:1.45rem;font-size:.55rem}.row-seats{gap:.22rem}.seatspage{padding:1.25rem .75rem 7rem}}
