/* GP LIVE — DESIGN SYSTEM v2
   Black + green GP branding for both dark (default) and light themes.
   Theme driven by CSS custom properties on :root / [data-theme="light"].
   Mono = labels, numbers, terminal moments. Inter = body. Never mono for paragraphs.
   No text below 13px on mobile; body ≥ 7:1, secondary ≥ 4.5:1 contrast.
*/
:root{
  --bg:#030806;
  --bg-elev:#071009;
  --panel:#0a1610;
  --panel-hi:#0e1e16;
  --line:#123a24;
  --line-hi:#1a5c38;
  --green:#39ff88;
  --green-hi:#7dffb1;
  --green-dim:#0a8a48;
  --text:#f0fff5;
  --text-muted:#a8c4b4;
  --text-dim:#6a8a7a;
  --danger:#ff2f52;
  --amber:#ffb800;
  --shadow:0 1px 3px rgba(0,0,0,.5);

  --green-glow:rgba(57,255,136,.27);
  --green-glow-strong:rgba(57,255,136,.55);
  --amber-glow:rgba(255,184,0,.4);
  --red-glow:rgba(255,47,82,.4);
  --inline-focus:rgba(57,255,136,.25);

  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --font-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ease:cubic-bezier(0.4,0,0.2,1);

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  --rad:8px;
  --gutter:24px;
  --maxw:1200px;
}
[data-theme="light"]{
  --bg:#f5f7f4;
  --bg-elev:#ffffff;
  --panel:#ffffff;
  --panel-hi:#eef3ee;
  --line:#d6e0d8;
  --line-hi:#a8c4b4;
  --green:#00a84f;
  --green-hi:#008a40;
  --green-dim:#4dbf7f;
  --text:#0a1a12;
  --text-muted:#3d5546;
  --text-dim:#6a8a7a;
  --danger:#d81e3f;
  --amber:#c98800;
  --shadow:0 1px 3px rgba(0,0,0,.08);

  --green-glow:rgba(0,168,79,.18);
  --green-glow-strong:rgba(0,168,79,.38);
  --amber-glow:rgba(201,136,0,.3);
  --red-glow:rgba(216,30,63,.3);
  --inline-focus:rgba(0,168,79,.22);
}
/* legacy aliases used inline across pages (kept theme-safe) */
:root{
  --white:var(--text);
  --muted:var(--text-muted);
  --dim:var(--text-dim);
  --red:var(--danger);
  --panel2:var(--panel-hi);
  --line-active:var(--line-hi);
  --mono:var(--font-mono);
}
*{box-sizing:border-box;margin:0;padding:0}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line-hi);border-radius:6px}
::-webkit-scrollbar-track{background:var(--bg-elev)}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--green);color:var(--bg)}
a{color:var(--green);text-decoration:none}
a:hover{color:var(--green-hi)}
button{font-family:inherit}

/* ─── TYPE SCALE ─── */
.display{                 /* Display XL (bid hero) */
  font-family:var(--font-mono);font-size:clamp(40px,8vw,72px);font-weight:700;
  letter-spacing:.04em;color:var(--green);line-height:1.02;
  text-shadow:0 0 24px var(--green-glow);
}
.display-l{               /* Display L (page headers) */
  font-family:var(--font-mono);font-size:clamp(28px,5vw,44px);font-weight:700;
  letter-spacing:.04em;color:var(--green);line-height:1.1;
  text-shadow:0 0 20px var(--green-glow);
}
.head{                    /* Heading — mono label */
  font-family:var(--font-mono);font-size:15px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);
}
.micro{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-dim);
}
h1,h2,h3,h4{font-family:var(--font-mono);font-weight:600;letter-spacing:.06em;line-height:1.28}

/* ─── LAYOUT ─── */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) var(--sp-8)}
.row{display:flex;gap:var(--sp-3);flex-wrap:wrap}
.col{flex:1;min-width:200px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}
.hr{border:0;border-top:1px solid var(--line);margin:var(--sp-5) 0}
.center{text-align:center}
.mono{font-family:var(--font-mono)}
.muted{color:var(--text-muted)}
.dim{color:var(--text-dim)}
.tag{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-dim);
  text-transform:uppercase;border:1px solid var(--line);
}
.tiny{font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}
.sub{color:var(--text-muted);font-size:13px;font-family:var(--font-mono);letter-spacing:.04em}

/* ─── HEADER / NAV ─── */
.top{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:var(--sp-4) 0;border-bottom:1px solid var(--line);margin-bottom:var(--sp-6);
  flex-wrap:wrap;
}
.brand{
  display:inline-flex;align-items:center;gap:var(--sp-3);
  font-family:var(--font-mono);letter-spacing:.18em;font-weight:700;color:var(--green);
  font-size:14px;white-space:nowrap;line-height:1;
}
.brand:hover{color:var(--green-hi)}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}
.brand .sk{font-size:18px;line-height:1}
.gpnav{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.gpnav a{
  font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-muted);padding:8px 12px;border:1px solid transparent;border-radius:6px;
  min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;
  transition:color .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease);
}
.gpnav a:hover{color:var(--green);border-color:var(--line-hi)}
.gpnav a.on{color:var(--green);border-color:var(--line-hi);background:var(--panel)}
.hdr-right{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.hdr-user{
  font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;color:var(--text-muted);
  min-height:44px;display:inline-flex;align-items:center;padding:0 10px;white-space:nowrap;
}
.theme-toggle{
  width:44px;height:44px;min-height:44px;flex:none;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  border:1px solid var(--line-hi);background:var(--panel);color:var(--green);
  font-size:18px;line-height:1;transition:background .16s var(--ease),border-color .16s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.theme-toggle:hover{background:var(--panel-hi);border-color:var(--green)}
.theme-toggle .ico-sun{display:none}
.theme-toggle .ico-moon{display:block}
[data-theme="light"] .theme-toggle .ico-sun{display:block}
[data-theme="light"] .theme-toggle .ico-moon{display:none}

/* ─── CARDS ─── */
.card{
  background:var(--panel);
  border:1px solid var(--line);border-radius:var(--rad);
  padding:var(--sp-5);margin:var(--sp-3) 0;
  box-shadow:var(--shadow);
  transition:border-color .16s var(--ease);
}
.card.accent:hover,.card.accent:focus-within{border-color:var(--line-hi)}
.card.lotcard{position:relative}

/* ─── FORMS ─── */
label{
  display:block;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);
  margin:var(--sp-3) 0 6px;
}
input,select,textarea{
  width:100%;min-height:48px;padding:12px 14px;
  background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;
  color:var(--text);font-family:var(--font-mono);font-size:14px;
  -webkit-appearance:none;appearance:none;transition:border-color .16s var(--ease);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--line-hi);box-shadow:0 0 0 3px var(--inline-focus)}
input::placeholder,textarea::placeholder{color:var(--text-dim)}
textarea{min-height:88px;resize:vertical}

/* ─── BUTTONS ─── */
.btn,.btn:link{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:48px;padding:14px 24px;border-radius:6px;border:1px solid var(--line-hi);
  font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:.02em;
  text-transform:uppercase;cursor:pointer;color:var(--green);background:var(--panel);
  text-align:center;transition:background .16s var(--ease),border-color .16s var(--ease),
    color .16s var(--ease),transform .1s var(--ease);
  -webkit-tap-highlight-color:transparent;text-decoration:none;
}
.btn.primary{background:var(--green);border-color:var(--green);color:var(--bg);font-weight:700}
.btn.primary:hover{background:var(--green-hi);border-color:var(--green-hi);color:var(--bg)}
.btn.primary:disabled{background:var(--green-dim);border-color:var(--green-dim);color:var(--bg);cursor:not-allowed;opacity:.75}
.btn.secondary{border-color:var(--line-hi);color:var(--green);background:transparent}
.btn.secondary:hover,.btn.outline:hover{background:var(--panel-hi);border-color:var(--green);color:var(--green)}
.btn.ghost{border-color:transparent;color:var(--text-muted)}
.btn.ghost:hover{color:var(--green)}
.btn.danger{color:var(--danger);border-color:var(--danger);background:transparent}
.btn.danger:hover{background:var(--danger);border-color:var(--danger);color:var(--text)}
.btn.inline{width:auto}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn[hidden]{display:none}

/* ─── STATUS BADGES / PILLS ─── */
.badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 12px;border-radius:999px;border:1px solid var(--line-hi);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);background:var(--panel);line-height:1;white-space:nowrap;
}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;flex:none}
.badge.live,.badge.s-live{background:var(--danger);border-color:var(--danger);color:#fff}
.badge.live::before,.badge.s-live::before{background:#fff;box-shadow:0 0 8px #fff;animation:pulse 1.2s infinite}
.badge.sched,.badge.s-sched{border-color:var(--line-hi);color:var(--green)}
.badge.sched::before,.badge.s-sched::before{background:var(--green)}
.badge.s-closed{border-color:var(--line);color:var(--text-dim)}
.badge.s-closed::before{background:var(--text-dim)}
.badge.pend,.badge.s-pend,.badge.warn{border-color:var(--amber);color:var(--amber)}
.badge.pend::before,.badge.s-pend::before,.badge.warn::before{background:var(--amber);box-shadow:0 0 8px var(--amber-glow)}
.badge.s-ok{background:var(--green);border-color:var(--green);color:var(--bg);font-weight:700}
.badge.s-ok::before{background:var(--bg)}
.badge.s-rej{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:700}
.badge.s-rej::before{background:#fff}
.badge.gray{border-color:var(--line);color:var(--text-dim)}
.badge.gray::before{background:var(--text-dim)}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:999px;border:1px solid var(--line);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-muted);background:var(--panel);
}
.pill.live{color:var(--danger);border-color:var(--danger)}
.pill.live::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--danger);box-shadow:0 0 10px var(--red-glow);animation:pulse 1.2s infinite}

/* ─── HERO / BID AMOUNT ─── */
.hero{text-align:center;padding:var(--sp-5) 0 var(--sp-2)}
.hero .big{
  font-family:var(--font-mono);font-weight:700;letter-spacing:.04em;
  font-size:clamp(40px,8vw,64px);line-height:1.1;color:var(--green);
  text-shadow:0 0 24px var(--green-glow);
  transition:color .16s var(--ease);word-break:break-word;
}
.hero .big.flash{animation:bidFlash .3s var(--ease)}
@keyframes bidFlash{
  0%{color:var(--text);text-shadow:0 0 44px var(--green-glow-strong)}
  100%{color:var(--green);text-shadow:0 0 24px var(--green-glow)}
}
.hero .reserve{font-family:var(--font-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-top:var(--sp-3)}
.hero .reserve b{color:inherit}
.hero .reserve.met{color:var(--green);font-weight:700}
.hero .reserve.glow{animation:reserveGlow 1s var(--ease)}
@keyframes reserveGlow{
  0%{color:var(--text);text-shadow:0 0 30px var(--green-glow-strong)}
  100%{color:var(--green);text-shadow:0 0 18px var(--green-glow)}
}
.hero .display{display:block;margin:0 auto;word-break:break-word}

/* ─── COUNTDOWN ─── */
.countdown{
  display:block;font-family:var(--font-mono);font-weight:700;letter-spacing:.06em;
  font-size:clamp(30px,6vw,44px);color:var(--green);text-align:center;margin:6px 0 2px;
  text-shadow:0 0 18px var(--green-glow);
}
.countdown.warn{color:var(--amber);text-shadow:0 0 18px var(--amber-glow)}
.countdown.urgent{color:var(--danger);text-shadow:0 0 18px var(--red-glow)}
.countdown.extend{animation:cdExtend .5s var(--ease)}
@keyframes cdExtend{
  0%{color:var(--amber);text-shadow:0 0 30px var(--amber-glow)}
  100%{color:var(--green);text-shadow:0 0 18px var(--green-glow)}
}
.extmsg{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--amber);text-align:center;min-height:16px;opacity:0;transition:opacity .16s}
.extmsg.show{opacity:1}

/* ─── BID FEED ─── */
.bidfeed{max-height:340px;overflow-y:auto;border-top:1px solid var(--line);margin-top:var(--sp-3)}
.bid{
  display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline;
  padding:11px 2px;border-bottom:1px solid var(--line);
  animation:bidIn .2s var(--ease);
}
@keyframes bidIn{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
.bid .who{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bid .amt{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--text);white-space:nowrap}
.bid .t{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);text-align:right;white-space:nowrap}

/* ─── GALLERY ─── */
.gallery{display:grid;grid-template-columns:1fr;gap:10px;margin-top:var(--sp-3)}
.gallery img{width:100%;height:190px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}

/* ─── TABS ─── */
.tab{
  border:1px solid var(--line);background:var(--panel);color:var(--text-muted);
  border-radius:6px;cursor:pointer;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;min-height:44px;padding:8px 16px;
  transition:border-color .16s var(--ease),color .16s var(--ease);
}
.tab:hover{border-color:var(--line-hi);color:var(--green)}
.tab.active{border-color:var(--green);color:var(--green)}

/* ─── STICKY BID BAR (mobile) ─── */
.bidbar{display:none}
.bidform{display:block;max-width:420px;margin:var(--sp-4) auto 0}
.bidnotice{
  border:1px solid var(--line-hi);border-radius:6px;padding:16px 14px;text-align:center;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-muted);max-width:520px;margin:0 auto;background:var(--panel);
}
.bidbar .bidnotice{margin-top:2px;max-width:none}
@media(max-width:768px){
  .bidform{display:none}
  .bidbar{
    display:block;position:sticky;bottom:0;z-index:20;
    background:var(--bg);border-top:1px solid var(--line);padding:var(--sp-3) var(--gutter) calc(var(--sp-3) + env(safe-area-inset-bottom));
    box-shadow:0 -4px 20px var(--shadow);
  }
  .bidbar .row{gap:var(--sp-2)}
  .bidbar input{min-height:48px}
  .bidbar .btn{width:auto;flex:0 1 auto;min-width:0;padding:14px 16px}
  .hero .big{font-size:clamp(40px,12vw,56px)}
}

/* ─── ROOM PAGE ─── */
.room .lotcard{padding:var(--sp-6) var(--sp-5)}
.room .meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}
.room .meta .micro{color:var(--text-dim)}
.stat{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.val{font-family:var(--font-mono);font-size:22px;color:var(--green);letter-spacing:.06em}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}
.statrow .box{border-top:1px solid var(--line);padding-top:var(--sp-3)}
.insp{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}
.insp .box{border-top:1px solid var(--line);padding-top:10px}
.insp .box .micro{color:var(--text-dim)}
.insp .box p{font-size:13px;line-height:1.6;margin-top:6px;color:var(--text)}

/* ─── TABLES (admin) ─── */
.tablewrap{overflow-x:auto;margin-top:var(--sp-3)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);text-align:left;padding:10px 10px 10px 2px;border-bottom:1px solid var(--line-hi);white-space:nowrap}
td{font-family:var(--font-mono);font-size:12px;color:var(--text);padding:10px 10px 10px 2px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
td.mute{color:var(--text-dim)}
td .mono{word-break:break-all}

/* ─── MISC ─── */
.card + .card{margin-top:var(--sp-3)}
.box{background:var(--panel)}
.num{font-family:var(--font-mono);font-weight:700;color:var(--green)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:720px){
  :root{--gutter:16px}
  .wrap{padding-bottom:40px}
  .top{margin-bottom:var(--sp-5);gap:var(--sp-2)}
  .card{padding:var(--sp-4)}
  .grid{grid-template-columns:1fr}
  .btn{width:100%}
  .btn.inline{width:auto}
  .bidfeed{max-height:260px}
  .bid{grid-template-columns:auto 1fr auto;gap:10px}
  .bid .who{font-size:12px;letter-spacing:.08em}
  .bid .amt{font-size:13px}
  .bid .t{display:none}
  .room .lotcard{padding:var(--sp-4)}
  .hero .big{font-size:clamp(38px,11vw,54px)}
  .gpnav{order:3;width:100%}
  .gpnav a{flex:1;justify-content:center}
}
@media(max-width:560px){
  .head{font-size:14px}
  .micro,.sub,.tiny,.tag,.stat,.badge,.pill,.tab,.nextlot,.chatline .who,.chatline .t,.bid .who,.bid .t,.label,.extmsg,.reserve,.banner-inner,.hdr-user{font-size:13px}
  .btn{font-size:13px}
  th,td{font-size:13px}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
}
/* ─── GP LIVE HALL ─── */
.hall .hallgrid{display:grid;grid-template-columns:1.65fr 1fr;gap:18px;align-items:start}
.hall .lotwrap{position:relative}
.hall .lotcard{animation:lotIn .6s var(--ease)}
@keyframes lotIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hall .meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:var(--sp-3)}
.hall .meta .micro{color:var(--text-dim)}
.hall .gallery{grid-template-columns:repeat(3,1fr)}
.hall .gallery img{height:150px}
#banner{overflow:hidden;border-top:1px solid var(--line-hi);border-bottom:1px solid var(--line-hi);padding:9px 0;margin-bottom:var(--sp-5)}
.banner-inner{display:inline-flex;gap:0;white-space:nowrap;animation:marquee 32s linear infinite;font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.banner-inner span{display:inline-flex;align-items:center;gap:64px;padding-right:64px}
.banner-inner b{color:var(--text-dim);font-weight:400}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.hall .reactionbar{display:flex;gap:8px;position:absolute;left:0;right:0;bottom:14px;justify-content:center;z-index:5}
.hall .reactionbar button{
  width:46px;height:46px;border-radius:999px;border:1px solid var(--line-hi);
  background:var(--bg);color:var(--text);font-size:20px;cursor:pointer;
  transition:transform .12s var(--ease),border-color .12s var(--ease);
}
.hall .reactionbar button:hover{transform:scale(1.16) translateY(-3px);border-color:var(--green);box-shadow:0 0 18px var(--green-glow)}
#reactionLayer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4;border-radius:var(--rad)}
.remoji{position:absolute;bottom:4%;font-size:26px;animation:floatUp 2.4s ease-out forwards;text-shadow:0 0 12px rgba(0,0,0,.7)}
@keyframes floatUp{0%{transform:translateY(0) scale(.6);opacity:0}12%{opacity:1}100%{transform:translateY(-360px) translateX(34px) rotate(14deg) scale(1);opacity:0}}
.sidestat{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin:var(--sp-3) 0}
.sidestat .box{border:1px solid var(--line);border-radius:6px;padding:var(--sp-3);text-align:center}
.sidestat .num{font-family:var(--font-mono);font-weight:700;font-size:30px;color:var(--green);text-shadow:0 0 18px var(--green-glow)}
.nextlotlist{margin-top:var(--sp-1)}
.nextlot{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;color:var(--text-muted)}
.chatlist{max-height:240px;overflow-y:auto;border-top:1px solid var(--line);margin-top:10px}
.chatline{padding:9px 2px;border-bottom:1px solid var(--line)}
.chatline .who{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.chatline .t{color:var(--text-dim);font-size:12px;font-family:var(--font-mono)}
.chatline p{font-size:14px;margin-top:3px;color:var(--text);word-break:break-word}
.chatrow{display:flex;gap:8px;margin-top:10px}
.chatrow input{flex:1}
#hallAdmin .row{margin-top:var(--sp-1)}
#hallAdmin table td{font-size:12px}
@media(max-width:920px){
  .hall .hallgrid{grid-template-columns:1fr}
  .hall .gallery{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .hall .gallery{grid-template-columns:1fr}
  .hall .gallery img{height:200px}
}