/* =====================================================================
   ONALAJA AUCTION — "GILDED STAGE"
   An art-deco theatre programme for show night. Black house, gold leaf,
   ivory programme paper. Poiret One (headlines), Limelight (figures),
   Tenor Sans (text). Sunburst rays, spotlight, stepped deco frames.
   Base styles are always the final visual state; animations only add.
   ===================================================================== */
:root{
  --house:#070606; --house-2:#0E0B09; --velvet:#14100C; --box:#1A140F;
  --leaf:#CDA35E; --leaf-hi:#F3DFAE; --leaf-lo:#8E6B34; --leaf-dim:rgba(205,163,94,.38); --leaf-faint:rgba(205,163,94,.16);
  --ivory:#F6EFE2; --programme:#F4EAD2; --smoke:#B3A285; --mute:#7E705A;
  --ok:#9FE0B2; --ok-bg:rgba(60,140,90,.16); --warn:#F2CF7E; --warn-bg:rgba(205,163,94,.14);
  --bad:#F0A493; --bad-bg:rgba(200,70,50,.16); --info:#E9D9B4; --info-bg:rgba(246,239,226,.07);
  --display:'League Spartan','Tenor Sans',sans-serif; --figure:'Limelight','Tenor Sans',serif; --text:'Tenor Sans','Gill Sans','Trebuchet MS',serif;
  --gutter:16px; --cut:14px;
  --frame:polygon(var(--cut) 0,calc(100% - var(--cut)) 0,100% var(--cut),100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,var(--cut) 100%,0 calc(100% - var(--cut)),0 var(--cut));
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--house);color:var(--ivory);font-family:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:.01em}
body{min-height:100vh;overflow-x:hidden;position:relative}
body.modal-open{overflow:hidden}
a{color:var(--leaf-hi)}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
b,strong{font-weight:400;color:var(--leaf-hi)}
:focus-visible{outline:2px solid var(--leaf-hi);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--leaf);color:var(--house);padding:8px 12px;z-index:100}
.skip:focus{left:8px}
[hidden]{display:none!important}

/* ---------- the house: sunburst, spotlight, curtains ---------- */
.stage{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--house)}
.stage .sun{position:absolute;left:-60vmax;right:-60vmax;bottom:-30vh;height:150vh;transform-origin:50% 100%;
  background:repeating-conic-gradient(from 0deg at 50% 100%,rgba(205,163,94,.085) 0 1.6deg,transparent 1.6deg 6.5deg);
  animation:turn 240s linear infinite}
.stage .spot{position:absolute;inset:0;background:
  radial-gradient(60% 40% at 50% 18%,rgba(205,163,94,.16),transparent 70%),
  radial-gradient(120% 60% at 50% 115%,rgba(205,163,94,.12),transparent 60%),
  linear-gradient(180deg,rgba(7,6,6,.2),rgba(7,6,6,.75) 55%,rgba(7,6,6,.92))}
.curtain{position:fixed;top:0;bottom:0;width:50.5%;z-index:200;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 30%,rgba(0,0,0,.35) 60%,transparent),
  repeating-linear-gradient(90deg,#2a160c 0 16px,#3a2112 16px 26px,#1c0f07 26px 36px);
  box-shadow:inset 0 -40px 60px rgba(0,0,0,.6)}
.curtain::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:repeating-linear-gradient(90deg,var(--leaf-lo) 0 6px,var(--leaf) 6px 12px);opacity:.75}
.curtain.l{left:0;transform:translateX(-101%);animation:curtL 1.7s cubic-bezier(.7,0,.2,1) .15s both}
.curtain.r{right:0;transform:translateX(101%);animation:curtR 1.7s cubic-bezier(.7,0,.2,1) .15s both}
@keyframes curtL{from{transform:translateX(0)}}
@keyframes curtR{from{transform:translateX(0)}}
@keyframes turn{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes applause{0%{box-shadow:0 0 0 0 rgba(243,223,174,.55)}100%{box-shadow:0 0 0 18px rgba(243,223,174,0)}}
@keyframes jolt{0%,100%{transform:none}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes glint{0%,100%{opacity:.55}50%{opacity:1}}

/* ---------- typographic system ---------- */
h1,h2,h3{font-family:var(--display);font-weight:300;margin:0;color:var(--ivory);letter-spacing:-.005em}
h1{font-size:clamp(38px,9vw,60px);line-height:1}
h2{font-size:30px;line-height:1.05}
h3{font-size:24px;line-height:1.1}
.eyebrow{font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--leaf)}
.muted{color:var(--smoke)} .small{font-size:13px} .tiny{font-size:11.5px}
.num{font-variant-numeric:tabular-nums}
.serif-num,.price,.stat .v,.kpi .v,.clock{font-family:var(--figure);font-weight:400;letter-spacing:.02em}
.gild,.hero h1 .gild{background:linear-gradient(100deg,var(--leaf-lo) 15%,#FFF4D4 35%,var(--leaf) 55%,var(--leaf-lo) 80%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}
.orn{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--leaf);font-size:10.5px;letter-spacing:.34em;text-transform:uppercase}
.orn::before,.orn::after{content:"";height:1px;flex:0 1 64px;background:linear-gradient(90deg,transparent,var(--leaf))}
.orn::after{transform:scaleX(-1)}
.orn.left{justify-content:flex-start}.orn.left::before{display:none}

/* ---------- deco frames (the signature component) ---------- */
.frame,.panel,.dialog,.kpi,.table-wrap,.auth .card{position:relative;background:linear-gradient(180deg,rgba(26,20,15,.92),rgba(14,11,9,.94));clip-path:var(--frame);border:0;isolation:isolate}
.frame::before,.panel::before,.dialog::before,.kpi::before,.table-wrap::before,.auth .card::before{content:"";position:absolute;inset:0;z-index:-1;clip-path:var(--frame);
  background:linear-gradient(135deg,var(--leaf-hi),var(--leaf) 30%,var(--leaf-lo) 60%,var(--leaf) 85%,var(--leaf-hi));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px}
.frame::after,.panel::after,.auth .card::after{content:"";position:absolute;inset:6px;z-index:-1;pointer-events:none;border:1px solid var(--leaf-faint);clip-path:var(--frame)}

/* ---------- the proscenium (header) ---------- */
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;
  padding:12px var(--gutter) 8px;background:linear-gradient(180deg,rgba(7,6,6,.97),rgba(7,6,6,.86));backdrop-filter:blur(10px)}
.topbar::after{content:"";position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;height:3px;border-top:1px solid var(--leaf-dim);border-bottom:1px solid var(--leaf-faint)}
.brand{grid-column:2;display:flex;align-items:center;justify-content:center;text-decoration:none}
.brand img{height:17px;width:auto}
.top-actions{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.conn-slot{grid-column:1;display:flex;align-items:center;min-width:0;overflow:hidden}
.icon-btn{position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--leaf-dim);background:transparent;color:var(--leaf-hi);cursor:pointer;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px)}
.icon-btn svg{width:19px;height:19px}
.badge-dot{position:absolute;top:3px;right:3px;min-width:17px;height:17px;padding:0 4px;background:var(--leaf);color:var(--house);font-size:10px;display:grid;place-items:center;font-family:var(--figure)}
.conn{display:inline-flex;align-items:center;gap:7px;font-size:9.5px;letter-spacing:.24em;white-space:nowrap;text-transform:uppercase;padding:6px 0}
.conn::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.conn.live{color:var(--leaf-hi)}.conn.live::before{animation:glint 1.8s ease-in-out infinite;box-shadow:0 0 10px var(--leaf)}
.conn.down{color:var(--warn)} .conn.off{color:var(--bad)}
.sponsor{display:flex;align-items:center;justify-content:center;gap:9px;padding:9px var(--gutter) 10px;font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--smoke)}
.sponsor img{height:18px;width:18px;border-radius:4px}
.sponsor b{color:var(--ivory);letter-spacing:.16em;font-size:11px;text-transform:uppercase}
.demo-flag{margin:0 var(--gutter) 6px;text-align:center;font-size:11.5px;letter-spacing:.06em;color:var(--info);padding:7px 12px;border:1px dashed var(--leaf-dim)}
main{max-width:1180px;margin:0 auto;padding:0 var(--gutter) 120px}

/* ---------- the aisle (tab bar) ---------- */
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);
  background:linear-gradient(180deg,rgba(7,6,6,.86),rgba(7,6,6,.99) 40%);padding:8px 6px calc(8px + env(safe-area-inset-bottom))}
.tabbar::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:3px;border-top:1px solid var(--leaf-faint);border-bottom:1px solid var(--leaf-dim)}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;text-decoration:none;color:var(--mute);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;position:relative;min-height:50px}
.tabbar a svg{width:20px;height:20px}
.tabbar a[aria-current="page"]{color:var(--leaf-hi)}
.tabbar a[aria-current="page"]::after{content:"";position:absolute;bottom:2px;width:6px;height:6px;background:var(--leaf);transform:rotate(45deg)}
.tabbar .count{position:absolute;top:0;right:calc(50% - 24px);background:var(--leaf);color:var(--house);font-family:var(--figure);font-size:10px;padding:0 5px;min-width:16px;text-align:center}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 26px;border:1px solid var(--leaf-dim);background:transparent;color:var(--leaf-hi);
  font-family:var(--text);font-size:12px;letter-spacing:.26em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background .2s,color .2s,transform .08s;
  clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%)}
.btn:hover{background:var(--leaf-faint)}
.btn:active{transform:scale(.985)}
.btn.gold{background:linear-gradient(180deg,#F6E4B6,#C99D55 70%,#B08540);border-color:transparent;color:#1A1006}
.btn.gold:hover{background:linear-gradient(180deg,#FFF0C8,#D6AB63 70%,#B8904A)}
.btn.ghost{border-color:var(--leaf-faint);color:var(--smoke)}
.btn.danger{border-color:rgba(240,164,147,.5);color:var(--bad)}
.btn.block{width:100%}
.btn.sm{min-height:36px;padding:7px 16px;font-size:10px;letter-spacing:.2em}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.4;cursor:not-allowed;transform:none}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.field label{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--leaf)}
.input,select.input,textarea.input{width:100%;min-height:48px;padding:12px 2px;border:0;border-bottom:1px solid var(--leaf-dim);background:transparent;color:var(--ivory);border-radius:0;font-family:var(--text);font-size:16px}
select.input{padding:12px 8px;background:var(--house-2);border:1px solid var(--leaf-faint)}
textarea.input{min-height:110px;resize:vertical;border:1px solid var(--leaf-faint);padding:12px}
.input:focus{outline:none;border-color:var(--leaf-hi);box-shadow:0 1px 0 var(--leaf-hi)}
.input::placeholder{color:var(--mute)}
.input-money{position:relative}
.input-money span{position:absolute;left:4px;top:50%;transform:translateY(-50%);color:var(--leaf);font-family:var(--figure);font-size:24px}
.input-money input{padding-left:30px;font-family:var(--figure);font-size:30px;color:var(--leaf-hi)}
.hint{font-size:12.5px;color:var(--smoke)}
.error-text{color:var(--bad);font-size:13px}
.chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:8px 14px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--smoke);cursor:pointer;font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.chip[aria-pressed="true"]{color:var(--leaf-hi);border-bottom-color:var(--leaf)}
/* sizes as theatre seats */
.chip.size{min-width:62px;min-height:68px;padding:10px 8px 8px;border:1px solid var(--leaf-dim);border-radius:31px 31px 4px 4px;text-align:center;color:var(--ivory);letter-spacing:.06em;font-size:15px;text-transform:none;background:linear-gradient(180deg,rgba(205,163,94,.06),transparent)}
.chip.size[aria-checked="true"]{background:linear-gradient(180deg,#F6E4B6,#C99D55);color:#1A1006;border-color:transparent;animation:applause 1.4s ease-out 1}
.chip .sub{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-top:3px}
.chip[disabled]{opacity:.35;cursor:not-allowed}

/* ---------- pills (programme annotations) ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;padding:4px 10px;white-space:nowrap;border:1px solid currentColor}
.pill.ok{color:var(--ok);background:var(--ok-bg)}
.pill.warn{color:var(--warn);background:var(--warn-bg)}
.pill.bad{color:var(--bad);background:var(--bad-bg);animation:jolt .4s ease 1}
.pill.info{color:var(--info);background:var(--info-bg)}
.pill.gold{color:var(--leaf-hi);background:rgba(205,163,94,.1)}
.pill.plain{color:var(--smoke);border-color:var(--leaf-faint)}

/* ---------- programme (catalogue) ---------- */
.hero{padding:22px 0 8px;text-align:center}
.hero h1{margin:12px 0 10px}
.hero p{margin:10px auto 0;color:var(--smoke);max-width:56ch;font-size:14px}
.toolbar{position:sticky;top:64px;z-index:20;padding:8px 0 4px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,var(--house) 70%,transparent)}
.search{position:relative}
.search svg{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:17px;color:var(--leaf)}
.search input{padding-left:30px}
.grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:10px}
@media(min-width:760px){.grid{grid-template-columns:1fr 1fr;column-gap:28px}}
.card{position:relative;display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;padding:16px 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--leaf-faint);animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.card:nth-child(2){animation-delay:.08s}.card:nth-child(3){animation-delay:.16s}.card:nth-child(4){animation-delay:.24s}.card:nth-child(5){animation-delay:.32s}.card:nth-child(n+6){animation-delay:.4s}
.card:hover h3{color:var(--leaf-hi)}
.art{position:relative;aspect-ratio:4/5;background:radial-gradient(90% 70% at 50% 35%,#2a1d10,#0c0909 75%);overflow:hidden}
.card .art{width:104px;outline:1px solid var(--leaf-dim);outline-offset:3px}
.art img{width:100%;height:100%;object-fit:cover}
.art .sample{position:absolute;left:0;right:0;bottom:0;font-size:8px;letter-spacing:.16em;text-transform:uppercase;background:rgba(7,6,6,.78);color:var(--smoke);padding:3px 4px;text-align:center}
.card .art .status{display:none}
.card .body{display:flex;flex-direction:column;gap:3px;min-width:0;padding-right:46px}
.card .act-no{font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--leaf)}
.card h3{font-size:24px;transition:color .2s}
.card .row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-top:4px}
.card .status-line{margin-top:2px}
.price{font-size:22px;color:var(--leaf-hi);line-height:1.1}
.watch-btn{position:absolute;right:0;top:16px;width:44px;height:44px;border:1px solid var(--leaf-faint);background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--leaf);z-index:2;transform:rotate(45deg)}
.watch-btn svg{width:17px;height:17px;transform:rotate(-45deg)}
.watch-btn[aria-pressed="true"]{background:var(--leaf);color:var(--house)}
.watch-btn[aria-pressed="true"] svg{fill:currentColor}
.clock{color:var(--leaf-hi)}
.clock.urgent{color:var(--bad)}
.empty{padding:50px 10px;text-align:center;color:var(--smoke);grid-column:1/-1}
.empty h3{color:var(--ivory);margin-bottom:8px}

/* ---------- on stage (lot) ---------- */
.lot{display:grid;gap:22px;padding-top:6px}
@media(min-width:900px){.lot{grid-template-columns:1fr 1fr;align-items:start}.lot .gallery{position:sticky;top:120px}}
.gallery .main{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.gallery .art{aspect-ratio:4/5;background:radial-gradient(60% 55% at 50% 42%,rgba(205,163,94,.28),transparent 70%),radial-gradient(90% 70% at 50% 35%,#20160c,#090707 75%)}
.gallery .art img{-webkit-mask:radial-gradient(70% 65% at 50% 45%,#000 60%,transparent 100%);mask:radial-gradient(70% 65% at 50% 45%,#000 60%,transparent 100%)}
.thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto}
.thumbs button{width:60px;height:76px;overflow:hidden;border:1px solid var(--leaf-faint);padding:0;background:var(--house-2);cursor:pointer;flex:none}
.thumbs button[aria-current="true"]{border-color:var(--leaf)}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--leaf);text-decoration:none;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;margin-top:12px;min-height:44px}
.lot h1{font-size:clamp(34px,8vw,52px)}
.panel{padding:20px}
.bidbox{display:flex;flex-direction:column;gap:14px}
.bidbox h2{font-family:var(--display)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--leaf-faint);border-top:1px solid var(--leaf-faint);border-bottom:1px solid var(--leaf-faint)}
.stat{background:var(--house-2);padding:12px 10px;text-align:center}
.stat .k{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--smoke)}
.stat .v{font-size:22px;color:var(--ivory);line-height:1.25;font-variant-numeric:lining-nums}
.stat.hi .v{color:var(--leaf-hi)}
.standing{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.quick{display:flex;gap:6px;flex-wrap:wrap}
.quick .chip{min-height:38px;border:1px solid var(--leaf-faint);letter-spacing:.06em;font-family:var(--figure);text-transform:none;font-size:13px;color:var(--leaf-hi)}
.bid-state{padding:11px 14px;font-size:13.5px;display:block;border-left:2px solid currentColor}
.bid-state.sending{color:var(--info);background:var(--info-bg)}
.bid-state.accepted{color:var(--ok);background:var(--ok-bg);animation:applause 1.2s ease-out 1}
.bid-state.rejected{color:var(--bad);background:var(--bad-bg);animation:jolt .4s ease 1}
.bid-state.uncertain{color:var(--warn);background:var(--warn-bg)}
.note{font-size:12.5px;color:var(--smoke);border-left:1px solid var(--leaf);padding:2px 0 2px 12px}
details.spec{border-top:1px solid var(--leaf-faint);padding:12px 0}
details.spec summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;min-height:36px;align-items:center;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--leaf-hi)}
details.spec summary::after{content:"◆";color:var(--leaf);font-size:10px;transition:transform .2s}
details.spec[open] summary::after{transform:rotate(45deg)}
dl.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:8px 0 0;font-size:14px}
dl.kv dt{color:var(--smoke);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding-top:2px}
dl.kv dd{margin:0}
.history{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}
.history li{display:flex;justify-content:space-between;gap:10px;padding:9px 2px;border-bottom:1px dotted var(--leaf-faint);font-size:14px}
.history li .num{font-family:var(--figure)}
.history li.mine{color:var(--leaf-hi)}
.sticky-cta{position:fixed;left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));z-index:25;padding:10px var(--gutter);background:linear-gradient(180deg,transparent,rgba(7,6,6,.96) 40%);display:none}
@media(max-width:899px){.sticky-cta.show{display:block}}

/* ---------- tickets (orders) ---------- */
.order{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:start}
.order .thumb{width:72px;height:90px;overflow:hidden;outline:1px solid var(--leaf-dim);outline-offset:3px}
.order .thumb .art{height:100%}
.order .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.stack{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.deadline{display:flex;align-items:center;gap:10px;font-size:13px;flex-wrap:wrap}
.deadline .clock{font-size:22px}
.order.ticket{background:var(--programme);color:#1A120A;clip-path:none;
  -webkit-mask:radial-gradient(circle 11px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 11px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
  animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.order.ticket::before,.order.ticket::after{display:none}
.order.ticket h3,.order.ticket b{color:#1A120A}
.order.ticket .eyebrow{color:#7A5A26}
.order.ticket .banner.ok{background:transparent;color:#1A120A;border-top:2px dashed rgba(26,18,10,.35);border-left:0;padding:12px 0 0;margin-top:12px}
.order.ticket .pill{color:#1A120A;border-color:#1A120A;background:transparent}

/* ---------- dialogs & toasts ---------- */
.scrim{position:fixed;inset:0;z-index:80;background:rgba(3,2,2,.8);display:grid;place-items:end center;animation:rise .25s ease both}
@media(min-width:700px){.scrim{place-items:center;padding:20px}}
.dialog{width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:26px var(--gutter) calc(24px + env(safe-area-inset-bottom))}
@media(min-width:700px){.dialog{padding:30px}}
.dialog.wide{max-width:880px}
.dialog h2{margin-bottom:8px}
.dialog .close-x{float:right}
.zoom .dialog{max-width:900px;padding:12px}
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(92px + env(safe-area-inset-bottom));z-index:90;display:flex;flex-direction:column;gap:8px;width:min(92vw,440px)}
.toast{background:var(--velvet);border:1px solid var(--leaf-dim);padding:12px 16px;font-size:14px;box-shadow:0 14px 40px rgba(0,0,0,.6);animation:rise .35s ease both}
.toast.ok{border-color:var(--ok)}.toast.bad{border-color:var(--bad)}
.sim-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.sim-grid button{min-height:70px;flex-direction:column;gap:3px;clip-path:var(--frame);letter-spacing:.18em}
.sim-grid small{font-family:var(--text);letter-spacing:.04em;text-transform:none;font-size:11.5px;opacity:.8}
.banner{padding:12px 14px;font-size:13.5px;margin:12px 0;border-left:2px solid currentColor}
.banner.info{background:var(--info-bg);color:var(--info)}
.banner.warn{background:var(--warn-bg);color:var(--warn)}
.banner.bad{background:var(--bad-bg);color:var(--bad)}
.banner.ok{background:var(--ok-bg);color:var(--ok)}
#net-banner{margin:0;border-left:0;text-align:center}

/* ---------- box office (auth) ---------- */
.auth{max-width:440px;margin:0 auto;padding:26px 0 40px}
.auth .logo{display:flex;justify-content:center;margin:6px 0 22px;animation:rise .9s ease .9s both}
.auth .logo img{height:132px;width:auto}
.auth .card{display:block;padding:26px 22px;border:0;animation:rise .9s ease 1.05s both}
.auth .card h2{text-align:center;margin-bottom:18px}
.footer{padding:30px 0 10px;text-align:center;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute)}

/* ---------- the director's box (admin / organiser) ---------- */
.desk{display:grid;grid-template-columns:1fr;min-height:100vh}
@media(min-width:1000px){.desk{grid-template-columns:248px 1fr}}
.side{background:linear-gradient(180deg,rgba(14,11,9,.96),rgba(7,6,6,.98));border-right:1px solid var(--leaf-faint);padding:20px 14px;display:flex;flex-direction:column;gap:2px}
@media(max-width:999px){.side{flex-direction:row;overflow-x:auto;padding:10px;position:sticky;top:0;z-index:30;border-right:0;border-bottom:1px solid var(--leaf-faint)}.side .brand-block,.side .side-foot{display:none}}
.side a{display:flex;align-items:center;gap:10px;padding:11px 12px;color:var(--smoke);text-decoration:none;white-space:nowrap;min-height:44px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.side a[aria-current="page"]{color:var(--leaf-hi);background:linear-gradient(90deg,rgba(205,163,94,.14),transparent)}
.side a[aria-current="page"]::before{content:"";width:6px;height:6px;background:var(--leaf);transform:rotate(45deg)}
.brand-block{padding:6px 8px 18px;margin-bottom:12px;text-align:center;border-bottom:1px solid var(--leaf-faint)}
.brand-block img{height:15px;margin:0 auto}
.desk-main{padding:26px clamp(14px,3vw,38px) 70px;min-width:0}
.desk-head{display:flex;justify-content:space-between;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.desk-head h1{font-size:clamp(34px,4vw,50px)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{padding:16px 18px;text-align:center;animation:rise .6s ease both}
.kpi .k{font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--smoke)}
.kpi .v{font-size:30px;color:var(--ivory);line-height:1.3}
.kpi.gold .v{color:var(--leaf-hi)}
.kpi .s{font-size:11.5px;color:var(--smoke);line-height:1.45}
.table-wrap{overflow:auto;padding:2px}
table.t{width:100%;border-collapse:collapse;font-size:13.5px}
table.t th{position:sticky;top:0;background:#120E0B;text-align:left;font-weight:400;color:var(--leaf);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;padding:12px;border-bottom:1px solid var(--leaf-dim)}
table.t td{padding:11px 12px;border-bottom:1px solid var(--leaf-faint);vertical-align:top}
table.t td.num{font-family:var(--figure);font-size:13px}
table.t tr:last-child td{border-bottom:0}
table.t tr:hover td{background:rgba(205,163,94,.04)}
.units{display:flex;flex-direction:column;gap:5px}
.unit{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px}
.two-col{display:grid;gap:18px}
@media(min-width:1100px){.two-col{grid-template-columns:1fr 1fr}}
.form-grid{display:grid;gap:0 18px;grid-template-columns:1fr}
@media(min-width:700px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}}
.photo-list{display:flex;gap:12px;flex-wrap:wrap}
.photo-item{width:110px;border:1px solid var(--leaf-faint);background:var(--house-2)}
.photo-item img{width:110px;height:130px;object-fit:cover}
.photo-item .ctl{display:flex;justify-content:space-between;padding:4px}
.photo-item .ctl button{background:none;border:0;color:var(--leaf);cursor:pointer;min-width:32px;min-height:32px}
.locked{font-size:12.5px;color:var(--warn)}
.ro-flag{display:inline-flex;gap:6px;align-items:center;color:var(--info);border:1px solid var(--leaf-dim);padding:6px 14px;font-size:10px;letter-spacing:.26em;text-transform:uppercase}
code{font-family:'Courier New',monospace;color:var(--leaf-hi)}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}.curtain{display:none}}
@media print{*{animation:none!important}.curtain,.stage{display:none}}
.conn:empty{display:none}
.dialog{background:linear-gradient(180deg,#1C150F,#100C09)!important}
.scrim{animation:none}.scrim .dialog{animation:rise .3s cubic-bezier(.2,.7,.2,1) both}
.stat .v{overflow-wrap:anywhere}

/* League Spartan tuning: light weights for the deco feel, tight tracking at display sizes */
h1{font-weight:200;letter-spacing:-.02em;line-height:.98}
.hero h1{font-weight:200}
.card h3{font-weight:300;font-size:23px;letter-spacing:-.01em}
.desk-head h1{font-weight:200}
.auth .card h2,.dialog h2{font-weight:300}
.lot h1{font-weight:200}
.stat .v{font-size:21px}
