*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
button, input, select, textarea { font-family: inherit; }
a { color: inherit; text-decoration: none; }
:root {
  --red:#9f1d2e; --red-hover:#b02233; --red-light:#f9eaec; --red-border:#f0c4ca;
  --gold:#c89b3c; --bg:#f7f4ef; --bg-card:#fff; --bg-subtle:#faf8f5;
  --text-1:#1a1a1a; --text-2:#5a5a5a; --text-3:#8d8579; --border:#ddd8d0; --border-lt:#ede9e2;
  --sb-bg:#1a1410; --sb-muted:#998a78;
  --s-green:#15803d; --s-green-bg:#dcfce7; --s-amber:#b45309; --s-amber-bg:#fef3c7;
  --s-red:#dc2626; --s-red-bg:#fee2e2; --s-blue:#1d4ed8; --s-blue-bg:#dbeafe;
  --s-gray:#4b5563; --s-gray-bg:#f3f4f6; --s-orange:#c2410c; --s-orange-bg:#ffedd5;
  --s-purple:#6d28d9; --s-purple-bg:#ede9fe; --font:'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:'Courier New', Courier, monospace; --r-sm:6px; --r-md:10px; --r-lg:14px; --tb-h:60px;
  --sh-sm:0 1px 4px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
}
body { background:var(--bg); color:var(--text-1); font:14px/1.55 var(--font); -webkit-font-smoothing:antialiased; }
.app-shell { min-height:100vh; display:flex; flex-direction:column; }
.topbar { height:var(--tb-h); background:var(--sb-bg); color:#fff; display:flex; align-items:center; gap:18px; padding:0 20px; }
.topbar-logo { display:flex; align-items:center; gap:12px; }
.topbar-logo-mark { width:32px; height:32px; border-radius:6px; display:block; object-fit:contain; }
.topbar-logo-text { font-size:16px; font-weight:800; }
.topbar-logo-sub { font-size:10px; color:var(--sb-muted); letter-spacing:.04em; text-transform:uppercase; }
.topbar-spacer { flex:1; }
.role-switcher { display:flex; gap:4px; padding:3px; border:1px solid rgba(255,255,255,.1); border-radius:14px; background:rgba(255,255,255,.06); }
.role-btn { border:0; background:transparent; color:rgba(255,255,255,.62); padding:5px 11px; border-radius:10px; font-size:12px; font-weight:700; }
.role-btn.active, .role-btn:hover { background:var(--red); color:#fff; }
.navbar { height:44px; background:#fff; border-bottom:1px solid var(--border-lt); display:flex; align-items:stretch; overflow-x:auto; padding:0 20px; }
.nav-tab { display:inline-flex; align-items:center; padding:0 14px; color:var(--text-3); border-bottom:2px solid transparent; font-weight:700; font-size:13px; white-space:nowrap; }
.nav-tab.active, .nav-tab:hover { color:var(--red); border-bottom-color:var(--red); }
.main { flex:1; padding:24px; }
.main:has(.sticky-form-actions) { padding-bottom:96px; }
.main-inner { max-width:1200px; width:100%; }
.page-header { display:flex; justify-content:space-between; gap:16px; margin-bottom:24px; align-items:flex-start; }
.page-title { margin:0 0 4px; font-size:22px; line-height:1.2; letter-spacing:-.02em; }
.page-subtitle { margin:0; color:var(--text-2); font-size:13.5px; }
.card { background:var(--bg-card); border:1px solid var(--border-lt); border-radius:var(--r-lg); box-shadow:var(--sh-sm); overflow:hidden; }
.card-header { padding:16px 20px; border-bottom:1px solid var(--border-lt); font-weight:800; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.card-body { padding:20px; }
.card-footer { padding:12px 20px; background:var(--bg-subtle); border-top:1px solid var(--border-lt); }
.showtime-days { display:flex; gap:8px; padding:14px 20px; border-bottom:1px solid var(--border-lt); overflow-x:auto; background:var(--bg-subtle); }
.showtime-day-input { position:absolute; opacity:0; pointer-events:none; }
.showtime-day { flex:0 0 auto; min-width:68px; padding:7px 10px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--text-2); text-align:center; }
.showtime-day span, .showtime-day strong { display:block; line-height:1.25; }
.showtime-day span { font-size:11.5px; font-weight:800; color:var(--text-3); text-transform:uppercase; }
.showtime-day strong { margin-top:2px; font-size:13px; color:var(--text-1); }
.showtime-day:hover, .showtime-day-input:focus-visible + .showtime-day { border-color:var(--red); color:var(--red); outline:none; }
.showtime-day-input:checked + .showtime-day { background:var(--red); border-color:var(--red); color:#fff; }
.showtime-day-input:checked + .showtime-day span, .showtime-day-input:checked + .showtime-day strong { color:#fff; }
.showtime-day.muted { opacity:.58; }
.showtime-day-input:checked + .showtime-day.muted { opacity:1; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.movie-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; }
.movie-card { position:relative; background:#fff; border:1px solid var(--border-lt); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm); display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.movie-card:hover, .movie-card:focus-visible { transform:translateY(-4px); border-color:var(--red-border); box-shadow:0 10px 24px rgba(31,28,24,.14),0 2px 8px rgba(31,28,24,.08); }
.movie-card:focus-visible { outline:3px solid rgba(159,29,46,.22); outline-offset:3px; }
.movie-poster { position:relative; min-height:245px; background:linear-gradient(160deg,#2d2520,#1a1410); color:#fff; display:grid; place-items:center; text-align:center; padding:20px; overflow:hidden; }
.movie-card-poster { min-height:auto; aspect-ratio:2/3; }
.movie-poster-has-image { padding:0; background:#1a1410; }
.movie-poster-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.movie-poster-title { font-family:Georgia,serif; font-size:20px; font-weight:800; }
.movie-poster-genre { color:var(--gold); font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; }
.movie-detail-layout { display:grid; grid-template-columns:minmax(240px,360px) minmax(0,1fr); gap:20px; align-items:start; }
.movie-detail-poster-card { overflow:hidden; }
.movie-detail-poster { min-height:auto; aspect-ratio:2/3; }
.movie-detail-content { min-width:0; display:grid; gap:16px; }
.movie-detail-synopsis { color:var(--text-2); font-size:15px; line-height:1.7; }
.movie-card-body { padding:16px; flex:1; }
.movie-card-footer { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:center; min-height:40px; padding:9px 14px; background:var(--red); color:#fff; font-size:13px; font-weight:900; opacity:0; transform:translateY(100%); transition:opacity .18s ease, transform .18s ease; pointer-events:none; }
.movie-card:hover .movie-card-footer, .movie-card:focus-visible .movie-card-footer { opacity:1; transform:translateY(0); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:8px 16px; border-radius:var(--r-sm); border:1.5px solid transparent; font-weight:800; font-size:13.5px; cursor:pointer; }
.button-primary { background:var(--red); color:#fff; border-color:var(--red); }
.button-primary:hover { background:var(--red-hover); }
.button-secondary { background:#fff; color:var(--text-1); border-color:var(--border); }
.button-danger { background:var(--s-red); color:#fff; border-color:var(--s-red); }
.button-gold { background:var(--gold); color:#fff; border-color:var(--gold); }
.button-success { background:var(--s-green); color:#fff; border-color:var(--s-green); }
.button-warning { background:var(--s-amber); color:#fff; border-color:var(--s-amber); }
.button-full { width:100%; }
.manager-row-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.manager-movie-row td { padding-top:16px; padding-bottom:16px; }
.manager-movie-row .table-row-link { margin:-16px -14px; padding:16px 14px; min-height:100px; display:flex; align-items:center; }
.manager-movie-link { gap:16px; min-width:320px; }
.manager-movie-thumb { flex:0 0 58px; width:58px; aspect-ratio:2/3; border-radius:var(--r-sm); overflow:hidden; background:#1a1410; box-shadow:var(--sh-sm); }
.manager-movie-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.manager-movie-thumb-fallback { width:100%; height:100%; display:grid; place-items:center; padding:6px; background:linear-gradient(160deg,#2d2520,#1a1410); color:#fff; text-align:center; }
.manager-movie-thumb-fallback span { font-family:Georgia,serif; font-size:9.5px; font-weight:800; line-height:1.15; overflow-wrap:anywhere; }
.manager-movie-copy { min-width:0; display:flex; flex-direction:column; gap:5px; }
.manager-movie-copy strong { font-size:15px; line-height:1.2; overflow-wrap:anywhere; }
.manager-movie-copy span { color:var(--text-3); font-size:12.5px; line-height:1.35; overflow-wrap:anywhere; }
.manager-product-row td { padding-top:16px; padding-bottom:16px; }
.manager-product-row .table-row-link { margin:-16px -14px; padding:16px 14px; min-height:92px; display:flex; align-items:center; }
.manager-product-link { gap:16px; min-width:280px; }
.manager-product-thumb { flex:0 0 64px; width:64px; aspect-ratio:1; border-radius:var(--r-sm); overflow:hidden; background:var(--bg-subtle); box-shadow:var(--sh-sm); }
.manager-product-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.manager-product-thumb-fallback { width:100%; height:100%; display:grid; place-items:center; padding:6px; background:var(--bg-subtle); color:var(--text-2); text-align:center; }
.manager-product-thumb-fallback span { font-size:10px; font-weight:900; line-height:1.15; overflow-wrap:anywhere; }
.toggle-switch-form { display:inline-flex; margin:0; }
.toggle-switch { display:inline-flex; align-items:center; gap:8px; cursor:pointer; user-select:none; }
.toggle-switch-input { position:absolute; opacity:0; pointer-events:none; }
.toggle-switch-track { position:relative; width:42px; height:24px; flex:0 0 42px; border-radius:999px; border:1.5px solid var(--border); background:var(--s-gray-bg); transition:background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.toggle-switch-thumb { position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.24); transition:transform .16s ease; }
.toggle-switch-input:checked + .toggle-switch-track { background:var(--s-green); border-color:var(--s-green); }
.toggle-switch-input:checked + .toggle-switch-track .toggle-switch-thumb { transform:translateX(18px); }
.toggle-switch-input:focus-visible + .toggle-switch-track { box-shadow:0 0 0 3px rgba(159,29,46,.16); }
.toggle-switch-text { min-width:52px; color:var(--text-2); font-size:12.5px; font-weight:800; }
.toggle-switch-input:checked ~ .toggle-switch-text-off { display:none; }
.toggle-switch-input:not(:checked) ~ .toggle-switch-text-on { display:none; }
.choice-pool { display:flex; flex-wrap:wrap; gap:8px; }
.choice-pool-item { position:relative; display:inline-flex; align-items:center; min-height:38px; padding:8px 13px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--text-2); font-size:13px; font-weight:900; cursor:pointer; transition:background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease; }
.choice-pool-input { position:absolute; opacity:0; pointer-events:none; }
.choice-pool-item:has(.choice-pool-input:checked) { background:var(--red-light); border-color:var(--red); color:var(--red); }
.choice-pool-item:has(.choice-pool-input:focus-visible) { box-shadow:0 0 0 3px rgba(159,29,46,.12); }
.image-widget { display:flex; flex-direction:column; width:min(100%, 360px); border:1.5px solid var(--border); border-radius:var(--r-md); background:#fff; overflow:hidden; box-shadow:var(--sh-sm); }
.image-widget-stage { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:2/3; overflow:hidden; background:#1a1410; color:#fff; cursor:pointer; }
.image-widget-stage::after { content:""; position:absolute; inset:0; background:rgba(26,20,16,.38); opacity:0; transition:opacity .16s ease; }
.image-widget-stage:hover::after, .image-widget-stage:focus-within::after { opacity:1; }
.image-widget-stage img { width:100%; height:100%; object-fit:cover; display:block; }
.image-widget-stage img[hidden] { display:none; }
.image-widget-stage-empty { background:var(--bg-subtle); color:var(--text-3); border-bottom:1px dashed var(--border); }
.image-widget-stage-empty::after { display:none; }
.image-widget-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:24px; color:var(--text-3); font-weight:900; text-align:center; }
.image-widget-has-image .image-widget-placeholder, .image-widget-placeholder[hidden] { display:none; }
.image-widget-placeholder-icon { width:42px; height:42px; padding:9px; border:1.5px dashed var(--border); border-radius:50%; color:var(--red); }
.image-widget-placeholder-icon path { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.image-widget-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 12px; background:#fff; }
.image-widget-empty { color:var(--text-3); font-weight:800; }
.image-widget-file { min-height:20px; color:var(--text-1); font-weight:900; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.image-widget-actions { display:flex; align-items:center; gap:6px; }
.image-widget-change { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:6px 10px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--text-1); font-size:12.5px; font-weight:900; cursor:pointer; white-space:nowrap; }
.image-widget-change:hover { border-color:var(--red-border); color:var(--red); }
.image-widget-remove { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border:1.5px solid transparent; border-radius:var(--r-sm); background:var(--s-red-bg); color:var(--s-red); cursor:pointer; font-size:20px; line-height:1; font-weight:900; }
.image-widget-remove:hover { border-color:var(--s-red); background:#fff; }
.image-widget-clear-input { position:absolute; opacity:0; pointer-events:none; }
.manager-detail-grid { display:grid; grid-template-columns:minmax(180px,260px) minmax(0,1fr); gap:24px; align-items:start; }
.manager-detail-media { border-radius:var(--r-sm); overflow:hidden; background:#1a1410; }
.manager-detail-media img { display:block; width:100%; aspect-ratio:2/3; object-fit:cover; }
.manager-detail-media .movie-poster { min-height:auto; aspect-ratio:2/3; }
.manager-detail-media-widget { overflow:visible; background:transparent; }
.manager-detail-media-widget .image-widget { width:100%; min-height:100%; }
.manager-product-media, .manager-product-media-widget { aspect-ratio:1; }
.manager-product-media img { width:100%; height:100%; aspect-ratio:1; object-fit:cover; }
.manager-product-media-widget .image-widget-stage { aspect-ratio:1; }
.manager-product-picture-fallback { width:100%; height:100%; min-height:180px; display:grid; place-items:center; padding:18px; background:var(--bg-subtle); color:var(--text-2); text-align:center; }
.manager-product-picture-fallback span { font-weight:900; overflow-wrap:anywhere; }
.manager-detail-content { min-width:0; }
.manager-detail-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.manager-detail-title-row h2 { margin:0; font-size:24px; line-height:1.2; overflow-wrap:anywhere; }
.manager-detail-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.manager-detail-form-fields .form-group { margin-bottom:0; }
.manager-detail-synopsis-field { grid-column:1 / -1; }
.manager-detail-synopsis-field textarea { min-height:140px; }
.manager-detail-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.manager-detail-fields div { padding:12px; border:1px solid var(--border-lt); border-radius:var(--r-sm); background:var(--bg-subtle); }
.manager-detail-fields span { display:block; color:var(--text-3); font-size:11.5px; font-weight:900; text-transform:uppercase; }
.manager-detail-fields strong { display:block; margin-top:3px; overflow-wrap:anywhere; }
.studio-form-fields { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:16px; margin-bottom:18px; align-items:start; }
.studio-layout-builder { display:grid; gap:10px; padding:14px; border:1px solid var(--border-lt); border-radius:var(--r-md); background:var(--bg-subtle); overflow:hidden; }
.studio-layout-top-action, .studio-layout-bottom-action { display:flex; justify-content:center; }
.studio-layout-main { display:grid; grid-template-columns:auto minmax(max-content,1fr) auto; gap:10px; align-items:center; overflow-x:auto; padding-bottom:2px; }
.studio-layout-side-action { writing-mode:vertical-rl; min-height:158px; padding:12px 8px; }
.studio-layout-stage { width:max-content; overflow:visible; padding:14px; border:1px solid var(--border-lt); border-radius:var(--r-sm); background:#fff; }
.studio-seat-worksheet { display:grid; grid-template-columns:24px repeat(var(--studio-seat-cols), 38px); gap:7px; align-items:center; width:max-content; }
.studio-worksheet-corner { width:24px; height:24px; }
.studio-delete-control { width:24px; height:24px; display:inline-grid; place-items:center; padding:0; border:1.5px solid var(--red-border); border-radius:var(--r-sm); background:var(--red-light); color:var(--red); font-size:17px; line-height:1; font-weight:900; cursor:pointer; }
.studio-delete-control:hover, .studio-delete-control:focus-visible { background:#fff; border-color:var(--red); outline:none; box-shadow:0 0 0 3px rgba(159,29,46,.10); }
.studio-delete-control:disabled { opacity:.35; cursor:not-allowed; background:var(--s-gray-bg); border-color:var(--border); color:var(--text-3); box-shadow:none; }
.studio-delete-col { justify-self:center; align-self:end; }
.studio-delete-row { justify-self:end; align-self:center; }
.studio-seat-choice { width:38px; height:34px; }
.studio-seat-choice .seat { width:38px; height:34px; font-size:9px; }
.studio-layout-readonly { margin-top:4px; }
.studio-layout-readonly-main { grid-template-columns:minmax(max-content,1fr); }
.studio-readonly-seat-grid { display:grid; grid-template-columns:repeat(var(--studio-seat-cols), 38px); gap:7px; width:max-content; }
.studio-readonly-cell { width:38px; height:34px; border-radius:5px 5px 3px 3px; display:grid; place-items:center; font:800 9px var(--mono); user-select:none; }
.studio-readonly-cell-seat { background:var(--red); color:#fff; }
.studio-readonly-cell-empty { background:#e0dbd2; color:transparent; }
.studio-layout-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.studio-layout-summary div { padding:12px; border:1px solid var(--border-lt); border-radius:var(--r-sm); background:var(--bg-subtle); }
.studio-layout-summary strong { display:block; margin-top:3px; font-size:18px; color:var(--red); }
.studio-layout-note { margin-top:12px; padding:12px 14px; border:1px solid #f6d36b; border-radius:var(--r-sm); background:#fff7d6; color:#7a4b00; font-size:12.5px; font-weight:800; line-height:1.45; }
.studio-layout-lock { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:4px; }
.studio-layout-lock div { padding:12px; border:1px solid var(--border-lt); border-radius:var(--r-sm); background:var(--bg-subtle); }
.studio-layout-lock strong { display:block; margin-top:3px; font-size:16px; }
.form-group { display:flex; flex-direction:column; gap:4px; margin-bottom:14px; }
.form-label { font-size:12.5px; font-weight:800; color:var(--text-2); }
.form-help { color:var(--text-3); font-size:12px; line-height:1.45; }
.form-help-warning { padding:10px 12px; border:1px solid #f6d36b; border-radius:var(--r-sm); background:#fff7d6; color:#7a4b00; font-weight:700; }
.form-control, input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=datetime-local], select, textarea { width:100%; padding:9px 12px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--text-1); }
.form-control:focus, input:focus, select:focus, textarea:focus { outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(159,29,46,.10); }
.sticky-form-actions { position:fixed; left:0; right:0; bottom:0; z-index:40; display:flex; justify-content:flex-end; padding:12px 24px; border-top:1px solid var(--border-lt); background:rgba(255,255,255,.96); box-shadow:0 -8px 22px rgba(31,28,24,.10); }
.sticky-form-actions .button { width:min(220px, 100%); }
table { width:100%; border-collapse:collapse; font-size:13.5px; }
th { text-align:left; color:var(--text-3); text-transform:uppercase; font-size:11.5px; letter-spacing:.06em; padding:10px 14px; background:var(--bg-subtle); }
td { padding:12px 14px; border-bottom:1px solid var(--border-lt); vertical-align:middle; }
.table-wrapper { overflow-x:auto; }
.table-row-link { display:block; margin:-12px -14px; padding:12px 14px; color:inherit; text-decoration:none; }
.table-row-linkable:hover { background:var(--bg-subtle); }
.table-row-linkable:focus-within { outline:2px solid var(--gold); outline-offset:-2px; }
.scheduler-showtime-tabs { display:grid; }
.scheduler-showtime-tab-input { position:absolute; opacity:0; pointer-events:none; }
.scheduler-showtime-tab-list { display:flex; gap:4px; padding:10px 10px 0; border-bottom:1px solid var(--border-lt); overflow-x:auto; background:var(--bg-subtle); }
.scheduler-showtime-tab-label { flex:0 0 auto; min-width:156px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; border:1px solid transparent; border-bottom:0; border-radius:var(--r-sm) var(--r-sm) 0 0; color:var(--text-3); cursor:pointer; font-weight:900; }
.scheduler-showtime-tab-label span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scheduler-showtime-tab-label strong { min-width:26px; min-height:22px; display:grid; place-items:center; padding:2px 7px; border-radius:999px; background:#fff; color:var(--text-2); font-size:12px; }
.scheduler-showtime-tab-panel { display:none; }
#scheduler-showtime-tab-ongoing:checked ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-ongoing"],
#scheduler-showtime-tab-scheduled:checked ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-scheduled"],
#scheduler-showtime-tab-ended:checked ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-ended"] { border-color:var(--border-lt); background:#fff; color:var(--red); }
#scheduler-showtime-tab-ongoing:focus-visible ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-ongoing"],
#scheduler-showtime-tab-scheduled:focus-visible ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-scheduled"],
#scheduler-showtime-tab-ended:focus-visible ~ .scheduler-showtime-tab-list label[for="scheduler-showtime-tab-ended"] { outline:3px solid rgba(159,29,46,.18); outline-offset:-3px; }
#scheduler-showtime-tab-ongoing:checked ~ .scheduler-showtime-tab-panel-ongoing,
#scheduler-showtime-tab-scheduled:checked ~ .scheduler-showtime-tab-panel-scheduled,
#scheduler-showtime-tab-ended:checked ~ .scheduler-showtime-tab-panel-ended { display:block; }
.status-badge { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:3px 9px; font-size:11.5px; font-weight:900; white-space:nowrap; }
.status-badge::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
.badge-pending,.badge-held,.badge-unpaid,.badge-waiting_payment { background:var(--s-amber-bg); color:var(--s-amber); }
.badge-confirmed,.badge-paid,.badge-refunded,.badge-active { background:var(--s-green-bg); color:var(--s-green); }
.badge-used { background:var(--s-purple-bg); color:var(--s-purple); }
.badge-expired,.badge-canceled_before_paid,.badge-cancelled,.badge-inactive { background:var(--s-gray-bg); color:var(--s-gray); }
.badge-canceled { background:var(--s-red-bg); color:var(--s-red); }
.badge-refund_pending { background:var(--s-orange-bg); color:var(--s-orange); }
.badge-online { background:var(--s-blue-bg); color:var(--s-blue); }
.badge-onsite { background:var(--s-purple-bg); color:var(--s-purple); }
.orders-wide { width:calc(100vw - 48px); max-width:none; }
.order-filter { display:grid; grid-template-columns:1fr 1.4fr minmax(180px,.65fr); gap:14px; align-items:end; margin-bottom:16px; padding:14px; border:1px solid var(--border-lt); border-radius:var(--r-md); background:#fff; box-shadow:var(--sh-sm); }
.order-filter .form-group { margin-bottom:0; }
.order-list { display:grid; background:#fff; border:1px solid var(--border-lt); border-radius:var(--r-md); box-shadow:var(--sh-sm); overflow:hidden; }
.order-list-card { min-height:176px; display:grid; grid-template-columns:118px minmax(0,1fr) 140px; gap:22px; align-items:center; padding:24px; background:#fff; border-bottom:1px solid var(--border-lt); transition:background .16s ease; }
.order-list-card:last-of-type { border-bottom:0; }
.order-list-card:hover, .order-list-card:focus-visible { background:var(--bg-subtle); outline:none; }
.order-list-card:focus-visible { box-shadow:inset 0 0 0 3px rgba(159,29,46,.16); }
.order-list-poster { width:118px; aspect-ratio:2/3; border-radius:var(--r-sm); overflow:hidden; background:#1a1410; }
.order-list-poster img { width:100%; height:100%; object-fit:cover; display:block; }
.order-list-poster-fallback { width:100%; height:100%; display:grid; place-items:center; padding:10px; background:linear-gradient(160deg,#2d2520,#1a1410); color:#fff; text-align:center; }
.order-list-poster-fallback span { font-family:Georgia,serif; font-size:13px; font-weight:800; line-height:1.25; }
.order-list-main { min-width:0; }
.order-list-main h2 { margin:0; font-size:24px; line-height:1.2; letter-spacing:0; overflow-wrap:anywhere; text-transform:uppercase; }
.order-list-subtitle { margin-top:10px; color:var(--text-2); font-size:16px; font-weight:800; }
.order-list-details { margin-top:16px; display:flex; flex-wrap:wrap; gap:8px 14px; color:var(--text-3); font-size:12.5px; font-weight:800; }
.order-list-details strong { color:var(--text-1); }
.order-list-status { justify-self:end; align-self:center; }
.empty-state { padding:22px; border:1px solid var(--border-lt); border-radius:var(--r-md); background:#fff; color:var(--text-2); box-shadow:var(--sh-sm); }
.toast-region { position:fixed; right:22px; bottom:22px; z-index:1000; display:flex; flex-direction:column-reverse; gap:10px; width:min(350px, calc(100vw - 32px)); pointer-events:none; }
.toast { display:flex; align-items:center; gap:12px; min-height:66px; padding:14px 16px; border:1px solid rgba(255,255,255,.55); border-radius:14px; background:rgba(248,246,242,.82); color:var(--text-1); box-shadow:0 14px 38px rgba(31,28,24,.13), inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); pointer-events:auto; transform-origin:100% 100%; animation:toast-in .38s cubic-bezier(.16,1,.3,1) both; }
.toast-stripe { flex:0 0 3px; width:3px; height:38px; border-radius:2px; background:linear-gradient(to bottom, var(--toast-top,#60a5fa), var(--toast-bottom,#1d4ed8)); }
.toast-body { flex:1; min-width:0; line-height:1.32; overflow-wrap:anywhere; }
.toast-title { color:#111; font-size:13px; font-weight:900; }
.toast-text { margin-top:1px; color:#555; font-size:12.5px; font-weight:500; }
.toast-close { flex:0 0 26px; width:26px; height:26px; border:0; border-radius:7px; background:rgba(0,0,0,.06); color:#6b7280; cursor:pointer; font-size:17px; line-height:1; opacity:1; }
.toast-close:hover { background:rgba(0,0,0,.12); color:#111; }
.toast-success { --toast-top:#22c55e; --toast-bottom:#16a34a; }
.toast-error { --toast-top:#f87171; --toast-bottom:#dc2626; }
.toast-warning { --toast-top:#fbbf24; --toast-bottom:#b45309; }
.toast-info { --toast-top:#60a5fa; --toast-bottom:#1d4ed8; }
.toast-exit { animation:toast-out .26s cubic-bezier(.7,0,.84,0) both; }
@keyframes toast-in { from { opacity:0; transform:translate3d(26px,16px,0) scale(.96); filter:blur(6px); } 70% { opacity:1; transform:translate3d(-2px,-1px,0) scale(1.01); filter:blur(0); } to { opacity:1; transform:translate3d(0,0,0) scale(1); filter:blur(0); } }
@keyframes toast-out { from { opacity:1; transform:translate3d(0,0,0) scale(1); filter:blur(0); } to { opacity:0; transform:translate3d(26px,14px,0) scale(.96); filter:blur(5px); } }
.ss-confirm-backdrop { position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(26,20,16,.46); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); opacity:0; transition:opacity .18s ease; }
.ss-confirm-backdrop[hidden] { display:none; }
.ss-confirm-backdrop.ss-confirm-open { opacity:1; }
.ss-confirm-dialog { position:relative; width:min(420px, 100%); background:var(--bg-card); border:1px solid var(--border-lt); border-radius:var(--r-lg); box-shadow:0 24px 60px rgba(31,28,24,.28); overflow:hidden; transform:translateY(12px) scale(.97); opacity:0; transition:transform .22s cubic-bezier(.16,1,.3,1), opacity .22s ease; }
.ss-confirm-open .ss-confirm-dialog { transform:translateY(0) scale(1); opacity:1; }
.ss-confirm-stripe { height:4px; background:var(--red); }
.ss-confirm-dialog[data-mode="danger"] .ss-confirm-stripe { background:var(--s-red); }
.ss-confirm-dialog[data-mode="success"] .ss-confirm-stripe { background:var(--s-green); }
.ss-confirm-dialog[data-mode="warning"] .ss-confirm-stripe { background:var(--s-amber); }
.ss-confirm-dialog[data-mode="neutral"] .ss-confirm-stripe { background:var(--s-gray); }
.ss-confirm-body { padding:22px 24px 4px; }
.ss-confirm-title { margin:0 0 8px; font-size:17px; font-weight:900; color:var(--text-1); }
.ss-confirm-message { margin:0; color:var(--text-2); font-size:13.5px; line-height:1.55; }
.ss-confirm-actions { display:flex; justify-content:flex-end; gap:10px; padding:18px 24px 22px; }
.seat-screen { background:linear-gradient(to bottom,#d0cec8,#e8e6e0); border-radius:6px 6px 0 0; padding:8px; text-align:center; font-size:11px; font-weight:900; color:var(--text-2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:16px; }
.seat-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(42px, 1fr)); gap:7px; max-width:760px; }
.seat-grid-actual { grid-template-columns:repeat(var(--studio-seat-cols), 38px); width:max-content; max-width:100%; overflow-x:auto; }
.seat-choice { position:relative; }
.seat-choice input { position:absolute; opacity:0; pointer-events:none; }
.seat { width:38px; height:34px; border-radius:5px 5px 3px 3px; border:0; background:#e0dbd2; color:#7a7062; display:grid; place-items:center; font:800 10px var(--mono); cursor:pointer; }
.seat-map-empty-cell { width:38px; height:34px; border-radius:5px 5px 3px 3px; background:#e0dbd2; opacity:.38; }
.seat-choice input:checked + .seat { background:var(--red); color:#fff; transform:scale(1.05); }
.seat.selection-limit { opacity:.55; cursor:not-allowed; }
.seat.unavailable { background:#fbbf24; color:#78350f; opacity:.75; cursor:not-allowed; }
.seat.disabled { background:#d1d5db; color:#9ca3af; opacity:.5; cursor:not-allowed; }
.seat-legend { display:flex; gap:14px; flex-wrap:wrap; margin-top:16px; padding:12px; border:1px solid var(--border-lt); border-radius:var(--r-md); background:var(--bg-subtle); color:var(--text-2); font-size:12px; }
.seat-legend-item { display:inline-flex; align-items:center; gap:7px; font-weight:800; }
.seat-legend-item::before { content:""; width:18px; height:15px; border-radius:4px 4px 2px 2px; display:inline-block; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
.legend-available::before { background:#e0dbd2; }
.legend-selected::before { background:var(--red); }
.legend-taken::before { background:#fbbf24; }
.addon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; }
.addon-card { border:1.5px solid var(--border-lt); border-radius:var(--r-md); padding:12px; background:#fff; }
.order-summary-row, .order-summary-total { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--border-lt); }
.order-summary-total { border-top:2px solid var(--text-1); border-bottom:0; margin-top:8px; font-weight:900; font-size:16px; color:var(--red); }
.payment-instruction { margin:14px 0; padding:12px; border:1px solid var(--border-lt); border-radius:var(--r-sm); background:var(--bg-subtle); line-height:1.45; }
.summary-table { display:grid; gap:0; margin-bottom:12px; border:1px solid var(--border-lt); border-radius:var(--r-sm); overflow:hidden; }
.summary-table-head, .summary-table-row { display:grid; grid-template-columns:minmax(72px, 1fr) 34px minmax(64px, .7fr) minmax(74px, .8fr); gap:8px; align-items:center; padding:9px 10px; border-bottom:1px solid var(--border-lt); }
.summary-table-head { background:var(--bg-subtle); color:var(--text-3); font-size:11px; font-weight:900; text-transform:uppercase; }
.summary-table-row:last-child { border-bottom:0; }
.summary-table-row span:nth-child(n+2), .summary-table-row strong, .summary-table-head span:nth-child(n+2) { text-align:right; }
.summary-table-row strong { font-size:13px; }
.order-summary-total + .button { margin-top:12px; }
.stepper { display:flex; align-items:center; margin-bottom:24px; overflow-x:auto; padding-bottom:4px; }
.stepper-step { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.stepper-circle { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-weight:900; font-size:13px; border:2px solid var(--border); background:#fff; color:var(--text-3); }
.stepper-label { font-size:12px; font-weight:800; white-space:nowrap; color:var(--text-3); }
.stepper-line { height:2px; min-width:28px; max-width:64px; flex:1; background:var(--border); margin:0 8px; }
.stepper-step.completed .stepper-circle { background:var(--red); border-color:var(--red); color:#fff; }
.stepper-step.completed .stepper-label { color:var(--red); }
.stepper-step.active .stepper-circle { border-color:var(--red); color:var(--red); box-shadow:0 0 0 3px rgba(159,29,46,.12); }
.stepper-step.active .stepper-label { color:var(--text-1); }
.stepper-line.completed { background:var(--red); }
.pos-form { padding-bottom:76px; }
.pos-order-area[hidden] { display:none; }
.pos-customer-combobox { position:relative; z-index:4; }
.pos-customer-dropdown { position:absolute; left:0; right:0; top:100%; z-index:20; max-height:240px; overflow-y:auto; margin-top:4px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; box-shadow:0 12px 28px rgba(31,28,24,.14); }
.pos-customer-option { width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:10px 12px; border:0; border-bottom:1px solid var(--border-lt); background:#fff; color:var(--text-1); text-align:left; cursor:pointer; }
.pos-customer-dropdown[hidden], .pos-customer-option[hidden], .pos-customer-empty[hidden] { display:none; }
.pos-customer-option:last-of-type { border-bottom:0; }
.pos-customer-option:hover, .pos-customer-option:focus { background:var(--bg-subtle); outline:none; }
.pos-customer-option strong { font-size:13px; }
.pos-customer-option span { color:var(--text-3); font-size:12px; }
.pos-customer-empty { padding:10px 12px; color:var(--text-3); font-size:12.5px; }
.pos-showtime-carousel { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x proximity; padding:2px 2px 10px; }
.pos-showtime-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; }
.pos-showtime-input { position:absolute; opacity:0; pointer-events:none; }
.pos-showtime-tile { min-height:112px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; padding:14px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:#fff; box-shadow:var(--sh-sm); transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.pos-showtime-tile strong { line-height:1.25; overflow-wrap:anywhere; }
.pos-showtime-tile span { color:var(--text-2); font-size:12.5px; font-weight:800; }
.pos-showtime-card:hover .pos-showtime-tile, .pos-showtime-input:focus-visible + .pos-showtime-tile { border-color:var(--red-border); box-shadow:0 8px 20px rgba(31,28,24,.10); transform:translateY(-2px); }
.pos-showtime-input:checked + .pos-showtime-tile { border-color:var(--red); background:var(--red-light); box-shadow:0 0 0 3px rgba(159,29,46,.10); }
.pos-layout { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:20px; align-items:start; }
.pos-seat-map { min-width:0; position:sticky; top:16px; }
.pos-summary-card { position:sticky; top:16px; }
.pos-addon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.pos-submit-bar { position:fixed; left:0; right:0; bottom:0; z-index:30; padding:12px 24px; border-top:1px solid var(--border-lt); background:rgba(255,255,255,.96); box-shadow:0 -8px 22px rgba(31,28,24,.10); }
.pos-submit-bar .button { width:min(1200px, 100%); margin:0 auto; }
.ticket-card { max-width:520px; border-radius:18px; background:#fff; border:1px solid var(--border-lt); overflow:hidden; box-shadow:var(--sh-sm); }
.ticket-card-header { background:#1a1410; color:#fff; padding:20px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.ticket-card-header .status-badge { flex:0 0 auto; align-self:flex-end; margin-bottom:1px; border:1px solid rgba(255,255,255,.16); }
.ticket-card-header .badge-confirmed { background:rgba(21,128,61,.24); color:#c7f2d2; border-color:rgba(134,239,172,.28); }
.ticket-card-header .badge-used { background:rgba(109,40,217,.24); color:#ddd2fe; border-color:rgba(196,181,253,.30); }
.ticket-card-header .badge-held { background:rgba(180,83,9,.24); color:#fde6b0; border-color:rgba(252,211,77,.28); }
.ticket-card-header .badge-expired { background:rgba(75,85,99,.34); color:#e5e7eb; border-color:rgba(209,213,219,.20); }
.ticket-card-header .badge-canceled { background:rgba(127,29,29,.42); color:#fecaca; border-color:rgba(248,113,113,.30); }
.ticket-red-stripe { height:6px; background:var(--red); }
.ticket-body { padding:20px; }
.ticket-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 136px; gap:14px; align-items:center; }
.ticket-detail-main { min-width:0; }
.ticket-code { font:900 18px var(--mono); letter-spacing:.04em; }
.ticket-qr { display:flex; align-items:center; justify-content:flex-end; padding:0; border:0; background:transparent; }
.ticket-qr img { width:136px; height:136px; display:block; background:transparent; border:0; border-radius:0; padding:0; }
.ticket-seat-badge { display:inline-flex; padding:4px 12px; border:1.5px solid var(--red-border); border-radius:6px; background:var(--red-light); color:var(--red); font:900 22px var(--mono); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.stat-card { background:#fff; border:1.5px solid var(--border-lt); border-radius:var(--r-lg); padding:20px; box-shadow:var(--sh-sm); }
.stat-value { font-size:28px; font-weight:900; }
.text-muted { color:var(--text-3); } .font-mono { font-family:var(--mono); } .mt-4 { margin-top:16px; } .mb-4 { margin-bottom:16px; }
.user-menu { display:flex; align-items:center; gap:10px; }
.user-menu-name { color:#fff; font-size:13px; font-weight:800; }
.user-menu-role { padding:3px 9px; border-radius:999px; background:rgba(255,255,255,.1); color:rgba(255,255,255,.78); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.user-menu-form { margin:0; }
.user-menu .role-btn { border:0; cursor:pointer; font:inherit; }
.auth-body { background:var(--bg); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.auth-shell { width:100%; max-width:420px; display:flex; flex-direction:column; gap:24px; align-items:center; }
.auth-brand { display:flex; align-items:center; gap:12px; color:var(--text-1); }
.auth-card { width:100%; background:var(--bg-card); border:1px solid var(--border-lt); border-radius:var(--r-lg); box-shadow:var(--sh-sm); padding:28px 24px; }
.auth-title { margin:0 0 4px; font-size:22px; letter-spacing:-.02em; }
.auth-subtitle { margin:0 0 18px; color:var(--text-2); font-size:13.5px; }
.auth-form .form-group:last-of-type { margin-bottom:18px; }
.auth-error { color:var(--s-red); font-size:12.5px; margin-top:4px; }
.auth-help { color:var(--text-3); font-size:11.5px; margin-top:4px; }
.auth-alt { margin:14px 0 0; text-align:center; font-size:12.5px; color:var(--text-2); }
.auth-alt a { color:var(--red); font-weight:800; }
.auth-guest { margin-top:8px; }
.button-lg { min-height:42px; padding:10px 18px; }
.scheduler-wizard { display:grid; gap:22px; }
.scheduler-native-fields { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.scheduler-error-panel { padding:14px 16px; border:1.5px solid var(--s-red); border-radius:var(--r-md); background:var(--s-red-bg); color:var(--s-red); font-weight:700; }
.scheduler-error-panel strong { display:block; margin-bottom:6px; color:#7f1d1d; }
.scheduler-error-panel ul { margin:4px 0 0; padding-left:18px; }
.scheduler-stepper { display:flex; align-items:center; width:100%; overflow-x:auto; padding-bottom:2px; }
.scheduler-step { flex:0 0 auto; display:flex; align-items:center; gap:8px; border:0; background:transparent; color:var(--text-3); font-weight:800; cursor:pointer; }
.scheduler-step span { width:28px; height:28px; display:grid; place-items:center; border:2px solid var(--border); border-radius:50%; background:#fff; color:var(--text-3); font-size:12px; font-weight:900; }
.scheduler-step strong { font-size:13px; white-space:nowrap; }
.scheduler-step.is-active span, .scheduler-step.is-complete span { border-color:var(--red); background:var(--red); color:#fff; }
.scheduler-step.is-active strong, .scheduler-step.is-complete strong { color:var(--text-1); }
.scheduler-step-line { flex:1 1 80px; min-width:34px; height:2px; margin:0 10px; border-radius:999px; background:var(--border-lt); }
.scheduler-panel { display:none; }
.scheduler-panel.is-active { display:block; }
.scheduler-panel-heading { margin-bottom:20px; }
.scheduler-panel-heading h2 { margin:0 0 4px; font-size:20px; line-height:1.2; }
.scheduler-panel-heading p { margin:0; color:var(--text-3); font-size:13px; }
.scheduler-movie-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:12px; }
.scheduler-movie-card { position:relative; aspect-ratio:2/3; min-height:0; display:flex; align-items:flex-end; overflow:hidden; padding:0; border:1.5px solid transparent; border-radius:12px; background:linear-gradient(160deg, color-mix(in srgb, var(--scheduler-movie-bg,#1a1410) 78%, white), var(--scheduler-movie-bg,#1a1410)); box-shadow:var(--sh-sm); cursor:pointer; text-align:left; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.scheduler-movie-card:hover, .scheduler-movie-card:focus-visible, .scheduler-movie-card.is-selected { transform:translateY(-3px); border-color:var(--gold); box-shadow:0 10px 24px rgba(31,28,24,.16); outline:none; }
.scheduler-movie-card-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.scheduler-movie-card-mark { position:absolute; inset:0; display:grid; place-items:center; opacity:.08; }
.scheduler-movie-card-mark::before { content:""; width:74px; height:74px; border:5px solid #fff; border-radius:14px; box-shadow:inset 22px 0 0 rgba(255,255,255,.45), inset -22px 0 0 rgba(255,255,255,.45); }
.scheduler-movie-card-body { position:relative; z-index:1; width:100%; display:grid; gap:6px; padding:52px 14px 14px; background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,0)); color:#fff; }
.scheduler-movie-theme { color:var(--gold); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.scheduler-movie-card strong { font-size:15px; line-height:1.2; overflow-wrap:anywhere; }
.scheduler-movie-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.scheduler-movie-meta span { padding:2px 7px; border-radius:4px; background:rgba(255,255,255,.17); color:rgba(255,255,255,.86); font-size:10px; font-weight:800; }
.scheduler-date-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:32px; align-items:start; }
.scheduler-calendar { width:100%; padding:20px; border:1px solid var(--border-lt); border-radius:14px; background:#fff; box-shadow:var(--sh-sm); }
.scheduler-calendar-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.scheduler-calendar-header .button { width:34px; height:34px; padding:0; }
.scheduler-weekdays, .scheduler-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
.scheduler-weekdays { margin-bottom:6px; color:var(--text-3); font-size:10px; font-weight:900; }
.scheduler-calendar-day { min-height:34px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--text-1); font-weight:700; cursor:pointer; }
.scheduler-calendar-day:hover, .scheduler-calendar-day:focus-visible { border-color:var(--red-border); background:var(--red-light); outline:none; }
.scheduler-calendar-day.is-today { border-color:var(--red-border); color:var(--red); }
.scheduler-calendar-day.is-selected { background:var(--red); border-color:var(--red); color:#fff; }
.scheduler-calendar-day:disabled { cursor:default; opacity:.36; background:transparent; border-color:transparent; }
.scheduler-selection-card { display:grid; gap:12px; padding-top:52px; }
.scheduler-selection-card > span { color:var(--text-3); font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.scheduler-selection-row { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:12px; align-items:center; padding:16px; border:1px solid var(--border-lt); border-radius:12px; background:#fff; box-shadow:var(--sh-sm); }
.scheduler-selection-row p { margin:3px 0 0; color:var(--text-3); font-size:12px; }
.scheduler-selection-media { width:72px; aspect-ratio:2/3; border-radius:8px; overflow:hidden; background:linear-gradient(160deg,#2d2520,#1a1410); box-shadow:var(--sh-sm); }
.scheduler-selection-media::before { content:""; display:block; width:100%; height:100%; opacity:.18; background:linear-gradient(90deg,transparent 28%,#fff 28% 34%,transparent 34% 66%,#fff 66% 72%,transparent 72%); }
.scheduler-selection-media.has-image::before { display:none; }
.scheduler-selection-media img { display:block; width:100%; height:100%; object-fit:cover; }
.scheduler-help { margin:0; padding:12px 14px; border:1px solid var(--s-blue-bg); border-radius:var(--r-sm); background:#eff6ff; color:var(--s-blue); font-size:12.5px; font-weight:800; }
.scheduler-timeline-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.scheduler-picks { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.scheduler-picks button { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--border-lt); border-radius:10px; background:#fff; color:var(--text-2); cursor:pointer; box-shadow:var(--sh-sm); }
.scheduler-picks strong { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-1); font-size:13px; }
.scheduler-picks span { color:var(--text-3); font-size:11px; font-weight:900; text-transform:uppercase; }
.scheduler-timeline-card { padding:20px; border:1px solid var(--border-lt); border-radius:var(--r-lg); background:#fff; box-shadow:var(--sh-sm); overflow-x:auto; }
.scheduler-legend { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:16px; color:var(--text-3); font-size:11px; font-weight:800; }
.scheduler-legend span { display:inline-flex; align-items:center; gap:6px; }
.scheduler-legend i { width:12px; height:12px; border-radius:3px; }
.scheduler-legend .is-booked { background:#1a1410; }
.scheduler-legend .is-new { background:var(--red); }
.scheduler-legend .is-conflict { background:var(--s-red); }
.scheduler-danger-info { margin:-4px 0 14px; padding:10px 12px; border:1.5px solid var(--s-red); border-radius:var(--r-sm); background:var(--s-red-bg); color:var(--s-red); font-size:12.5px; font-weight:900; }
.scheduler-danger-info[hidden] { display:none; }
.scheduler-ruler, .scheduler-timeline-row { min-width:760px; display:grid; grid-template-columns:128px minmax(520px,1fr) 64px; gap:12px; align-items:center; }
.scheduler-ruler { margin-bottom:4px; }
.scheduler-ruler div:nth-child(2) { display:flex; justify-content:space-between; color:var(--text-3); font:900 9px var(--mono); }
.scheduler-timeline-row { margin-bottom:10px; }
.scheduler-timeline-label strong, .scheduler-timeline-label span, .scheduler-timeline-capacity strong, .scheduler-timeline-capacity span { display:block; }
.scheduler-timeline-label strong { font-size:12px; }
.scheduler-timeline-label span, .scheduler-timeline-capacity span { color:var(--text-3); font-size:10px; }
.scheduler-timeline-track { position:relative; height:48px; overflow:hidden; border:2px solid var(--border-lt); border-radius:8px; background:var(--bg); cursor:crosshair; }
.scheduler-timeline-track.is-selected { border-color:var(--red); }
.scheduler-hour-line { position:absolute; top:0; bottom:0; width:1px; background:var(--border-lt); pointer-events:none; }
.scheduler-past-zone { position:absolute; left:0; top:0; bottom:0; z-index:1; background:repeating-linear-gradient(135deg, rgba(141,133,121,.18) 0, rgba(141,133,121,.18) 7px, rgba(141,133,121,.08) 7px, rgba(141,133,121,.08) 14px); border-right:1px dashed rgba(141,133,121,.55); pointer-events:none; }
.scheduler-time-block { position:absolute; z-index:2; top:5px; bottom:5px; display:flex; align-items:center; min-width:10px; overflow:hidden; padding:0 7px; border-radius:5px; color:#fff; font-size:9px; font-weight:900; white-space:nowrap; pointer-events:none; }
.scheduler-time-block.is-booked { background:#1a1410; color:rgba(255,255,255,.68); }
.scheduler-time-block.is-ghost { background:var(--red); opacity:.22; }
.scheduler-time-block.is-ghost.is-disabled { background:var(--s-gray); opacity:.32; }
.scheduler-time-block.is-new { z-index:3; background:var(--red); box-shadow:0 2px 8px rgba(159,29,46,.35); }
.scheduler-time-block.is-conflict { background:var(--s-red); }
.scheduler-timeline-capacity { text-align:right; }
.scheduler-timeline-capacity strong { color:var(--text-2); font-size:12px; }
.scheduler-summary { position:sticky; bottom:16px; z-index:20; display:grid; grid-template-columns:minmax(0,1fr) 180px auto; gap:18px; align-items:center; margin-top:16px; padding:20px; border:2px solid var(--red); border-radius:var(--r-lg); background:#fff; box-shadow:0 12px 30px rgba(31,28,24,.16), var(--sh-sm); }
.scheduler-summary[hidden] { display:none; }
.scheduler-summary.has-conflict { border-color:var(--s-red); }
.scheduler-summary-copy > span:first-child { display:block; margin-bottom:6px; color:var(--text-3); font-size:10px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.scheduler-summary-copy strong { display:flex; align-items:center; gap:10px; margin-bottom:4px; font-size:26px; line-height:1.15; }
.scheduler-time-arrow { width:28px; height:28px; flex:0 0 28px; color:var(--text-3); }
.scheduler-time-arrow path { fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.scheduler-summary-copy p { margin:0; color:var(--text-2); font-size:13px; }
.scheduler-conflict { margin-top:8px !important; color:var(--s-red) !important; font-weight:900; }
.scheduler-price-field { display:grid; gap:6px; }
.scheduler-price-field label { color:var(--text-3); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width: 800px) {
  .user-menu-name, .user-menu-role { display:none; }
  .main { padding:16px 16px 76px; }
  .main:has(.sticky-form-actions) { padding-bottom:140px; }
  .orders-wide { width:calc(100vw - 32px); }
  .order-filter { grid-template-columns:1fr; gap:10px; padding:12px; }
  .order-list-card { min-height:136px; grid-template-columns:82px minmax(0,1fr); gap:14px; padding:16px; align-items:start; position:relative; }
  .order-list-poster { width:82px; }
  .order-list-main h2 { padding-right:74px; font-size:17px; }
  .order-list-subtitle { margin-top:7px; font-size:13px; }
  .order-list-details { margin-top:10px; gap:5px 10px; font-size:11.5px; }
  .order-list-status { position:absolute; right:16px; top:16px; }
  .navbar { position:fixed; left:0; right:0; bottom:0; height:60px; z-index:10; justify-content:space-around; padding:0; box-shadow:0 -2px 12px rgba(0,0,0,.07); }
  .toast-region { right:16px; bottom:76px; width:calc(100vw - 32px); }
  .nav-tab { flex:1; justify-content:center; font-size:11px; border-bottom:0; border-top:2px solid transparent; }
  .nav-tab.active { border-top-color:var(--red); }
  .grid-2,.grid-3,.grid-4,.movie-detail-layout,.pos-layout,.stats-grid,.manager-detail-grid,.manager-detail-fields,.manager-detail-form-fields,.studio-form-fields,.studio-layout-summary,.studio-layout-lock { grid-template-columns:1fr; }
  .movie-detail-poster-card { width:min(100%,360px); justify-self:center; }
  .studio-layout-main { grid-template-columns:1fr; }
  .studio-layout-side-action { writing-mode:horizontal-tb; min-height:0; }
  .manager-detail-synopsis-field { grid-column:auto; }
  .pos-showtime-card { flex-basis:220px; }
  .pos-seat-map { position:static; }
  .pos-summary-card { position:static; }
  .pos-form { padding-bottom:136px; }
  .pos-submit-bar { bottom:60px; padding:12px 16px; }
  .ticket-detail-grid { grid-template-columns:1fr; }
  .ticket-qr { justify-content:flex-start; }
  .ticket-qr img { width:124px; height:124px; }
  .movie-grid { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .image-widget { width:100%; }
  .image-widget-footer { grid-template-columns:1fr; align-items:stretch; }
  .image-widget-actions { justify-content:space-between; }
  .sticky-form-actions { bottom:60px; padding:12px 16px; }
  .sticky-form-actions .button { width:100%; }
  .stepper-label { font-size:10px; }
  .stepper-circle { width:24px; height:24px; font-size:11px; }
  .scheduler-stepper { padding-bottom:6px; }
  .scheduler-date-layout, .scheduler-summary { grid-template-columns:1fr; }
  .scheduler-selection-card { padding-top:0; }
  .scheduler-timeline-header { flex-direction:column; }
  .scheduler-picks { justify-content:flex-start; }
  .scheduler-timeline-card { padding:14px; }
  .scheduler-ruler, .scheduler-timeline-row { min-width:680px; grid-template-columns:112px minmax(480px,1fr) 54px; }
  .scheduler-summary-copy strong { font-size:22px; }
  .scheduler-summary .button { width:100%; }
  .scheduler-summary { bottom:76px; }
}
