/* ============================================================
   ELEVATED — FLOOR & TABLE MANAGEMENT · STYLES
   Dark/pink Elevated visual language. Shared tokens + components
   for the private manager and the public customer view.
   ============================================================ */
:root{
  --ink:#06060A; --ink-2:#0b0b11; --ink-3:#14141c; --ink-4:#1c1c26;
  --bone:#f6f0e6; --bone-2:#cfc8b8; --bone-mute:#8a8478;
  --gold:#E8267C; --gold-hot:#FF2E86; --accent-rgb:232,38,124;
  --line:rgba(246,240,230,0.08); --line-2:rgba(246,240,230,0.16);
  --f-display:'Unbounded','Inter',system-ui,sans-serif;
  --f-body:'DM Sans',system-ui,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --r-sm:8px; --r-md:14px; --r-lg:20px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  /* status tones */
  --st-open:#5b6472;
  --st-held:#d8a12e;
  --st-deposit:#2f9ee0;
  --st-paid:#3ac47d;
  --st-comp:#a06ce0;
  --st-reserved:#2bb8a3;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--f-body); color:var(--bone); background:var(--ink);
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;letter-spacing:-.01em;margin:0;line-height:1.05;}
em{font-style:italic;font-weight:900;color:var(--gold);font-family:'Playfair Display',var(--f-display),serif;letter-spacing:-.02em;}
button{font:inherit;background:none;border:none;color:inherit;cursor:pointer;}
input,select,textarea{font:inherit;color:inherit;}
a{color:inherit;}
::selection{background:var(--gold);color:var(--ink);}
.mono{font-family:var(--f-mono);font-feature-settings:"tnum";}
.eyebrow{font-family:var(--f-body);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--bone-mute);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  padding:10px 16px;border-radius:999px;border:1px solid var(--line-2);
  background:rgba(246,240,230,.03);color:var(--bone);
  font-size:12px;font-weight:600;letter-spacing:.02em;
  transition:.2s var(--ease-out);white-space:nowrap;
}
.btn:hover{border-color:var(--bone-mute);background:rgba(246,240,230,.07);}
.btn--primary{background:var(--gold);border-color:var(--gold);color:#fff;}
.btn--primary:hover{background:var(--gold-hot);border-color:var(--gold-hot);}
.btn--ghost{background:transparent;}
.btn--sm{padding:7px 12px;font-size:11px;}
.btn--danger:hover{border-color:#e0342c;color:#ff6a5d;background:rgba(224,52,44,.08);}
.btn[disabled]{opacity:.4;pointer-events:none;}

/* ---------- Login overlay ---------- */
.lg-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;
  background:radial-gradient(70% 60% at 50% 0%,rgba(232,38,124,.10),transparent 70%),var(--ink);}
.lg-card{width:min(400px,92vw);padding:40px 34px;border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--ink-2);text-align:center;
  box-shadow:0 40px 120px rgba(0,0,0,.6);}
.lg-h{font-size:26px;margin-bottom:8px;}
.lg-sub{color:var(--bone-mute);font-size:13px;margin:0 0 22px;}
.lg-input{width:100%;padding:13px 15px;border-radius:var(--r-sm);border:1px solid var(--line-2);
  background:var(--ink);color:var(--bone);margin-bottom:12px;outline:none;}
.lg-input:focus{border-color:var(--gold);}
.lg-err{color:#ff6a5d;font-size:12px;min-height:16px;margin-bottom:6px;}
.lg-btn{width:100%;padding:13px;border-radius:999px;background:var(--gold);color:#fff;font-weight:700;
  border:1px solid var(--gold);transition:.2s;}
.lg-btn:hover{background:var(--gold-hot);}
.lg-hint{margin-top:16px;font-size:11px;color:var(--bone-mute);}

/* ---------- App shell ---------- */
.app{display:none;min-height:100vh;flex-direction:column;}
.app.is-on{display:flex;}
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:18px;
  padding:calc(12px + env(safe-area-inset-top)) 22px 12px;border-bottom:1px solid var(--line);background:rgba(6,6,10,.86);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.topbar__brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;}
.topbar__brand img{height:20px;width:auto;display:block;}
.topbar__brand b{color:var(--gold);font-weight:600;}
.topbar__crumb{color:var(--bone-mute);font-size:12px;letter-spacing:.04em;display:flex;align-items:center;gap:8px;}
.topbar__crumb .sep{opacity:.4;}
.topbar__spacer{flex:1;}
.pill{white-space:nowrap;}
.reload-ico{display:inline-block;line-height:1;}
.reload-btn.is-spinning{opacity:.85;pointer-events:none;}
.reload-btn.is-spinning .reload-ico{animation:rel-spin .7s linear infinite;}
@keyframes rel-spin{to{transform:rotate(360deg);}}
@media (max-width:720px){
  .topbar{flex-wrap:wrap;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 14px 12px;}
  .topbar__spacer{display:none;}
  .topbar__brand{flex:1 1 100%;}
  .topbar .pill,.topbar .btn--sm{margin-left:0!important;}
}

/* ---------- Metric cards ---------- */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.metric{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);}
.metric__k{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-mute);}
.metric__v{font-family:var(--f-mono);font-size:26px;font-weight:600;margin-top:6px;letter-spacing:-.01em;}
.metric__sub{font-size:11px;color:var(--bone-mute);margin-top:3px;}
.metric--accent .metric__v{color:var(--gold);}
.metric--good .metric__v{color:var(--st-paid);}
.metric--due .metric__v{color:var(--st-held);}

/* ---------- Page frame ---------- */
.page{flex:1;padding:26px 22px 60px;max-width:1500px;width:100%;margin:0 auto;}
.page__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.page__title{font-size:30px;}
.page__title em{font-size:1.02em;}
.page__sub{color:var(--bone-mute);font-size:13px;margin-top:6px;}
.section-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-mute);
  margin:30px 0 14px;display:flex;align-items:center;gap:10px;}
.section-label::after{content:"";flex:1;height:1px;background:var(--line);}

/* ---------- Event cards ---------- */
.metrics-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.metrics-head .section-label::after{display:none;}
.metrics-scope{padding:8px 12px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--ink-2);
  color:var(--bone);font-size:13px;outline:none;max-width:min(360px,70vw);}
.metrics-scope:focus{border-color:var(--gold);}
.evt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;}

/* Event groups: one collapsible section per event, room cards inside */
.evt-group{margin-bottom:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:rgba(246,240,230,.015);overflow:hidden;}
.evt-group__head{width:100%;display:flex;align-items:center;gap:16px;padding:16px 20px;text-align:left;cursor:pointer;background:none;transition:.15s;}
.evt-group__head:hover{background:rgba(246,240,230,.03);}
.evt-group__chev{font-size:20px;color:var(--bone-mute);line-height:1;transition:transform .18s var(--ease-out);flex:0 0 auto;}
.evt-group.is-open .evt-group__chev{transform:rotate(90deg);color:var(--gold);}
.evt-group__name{font-family:var(--f-display);font-size:17px;line-height:1.2;}
.evt-group__meta{font-size:12px;color:var(--bone-mute);margin-top:4px;}
.evt-group__stats{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end;}
.evt-group__body{padding:2px 16px 16px;}
.evt-card--compact .evt-card__top{padding:13px 18px;}
@media (max-width:720px){
  .evt-group__head{flex-wrap:wrap;gap:10px;padding:14px 16px;}
  .evt-group__stats{margin-left:34px;width:100%;justify-content:flex-start;}
  .evt-group__body{padding:0 12px 12px;}
}
.evt-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);overflow:hidden;
  transition:.2s var(--ease-out);cursor:pointer;display:flex;flex-direction:column;}
.evt-card:hover{border-color:var(--line-2);transform:translateY(-2px);}
.evt-card__top{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;}
.evt-card__room{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.evt-card__name{font-family:var(--f-display);font-size:19px;margin:6px 0 8px;line-height:1.18;
  min-height:calc(1.18em * 2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.evt-card__meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--bone-mute);}
.evt-card__meta .dot{opacity:.4;}
.evt-card__body{padding:14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.evt-card__stat .k{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-mute);}
.evt-card__stat .v{font-family:var(--f-mono);font-size:17px;margin-top:2px;}
.evt-card__bar{height:5px;background:var(--ink-4);display:flex;}
.evt-card__bar i{display:block;height:100%;}
.evt-card__foot{padding:11px 18px;display:flex;align-items:center;justify-content:space-between;
  font-size:11px;color:var(--bone-mute);border-top:1px solid var(--line);}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-2);}
.pill--live{color:var(--st-paid);border-color:rgba(58,196,125,.4);}
.pill--live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--st-paid);box-shadow:0 0 8px var(--st-paid);}
.pill--draft{color:var(--bone-mute);}
.pill--todo{color:var(--gold);border-color:rgba(var(--accent-rgb),.4);}
.pill--todo::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);}

/* ---------- Editor layout ---------- */
.ed{display:grid;grid-template-columns:210px 1fr 300px;gap:0;height:calc(100vh - 49px);}
.ed__rail{border-right:1px solid var(--line);background:var(--ink-2);overflow-y:auto;padding:16px 14px;}
.ed__stage-wrap{position:relative;overflow:hidden;background:
  radial-gradient(60% 60% at 50% 40%,rgba(232,38,124,.05),transparent 70%),var(--ink);}
.ed__panel{border-left:1px solid var(--line);background:var(--ink-2);overflow-y:auto;}
.rail-h{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-mute);margin:14px 4px 8px;}
.rail-h:first-child{margin-top:0;}
.palette{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.pal-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 6px;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--ink-3);
  font-size:10px;color:var(--bone-2);text-align:center;transition:.15s;}
.pal-item:hover{border-color:var(--gold);color:var(--bone);background:var(--ink-4);}
.pal-item svg{width:30px;height:26px;stroke:var(--bone-2);fill:none;stroke-width:1.5;}
.pal-item:hover svg{stroke:var(--gold);}
.pal-item--wide{grid-column:span 2;flex-direction:row;justify-content:flex-start;gap:10px;padding:9px 12px;}

/* ---------- Canvas / stage (blueprint aesthetic, matches venue plans) ---------- */
:root{
  --plan-bg:#c4c4cd; --plan-line:#5c6068; --plan-table:#ffffff;
  --plan-ink:#20222a; --plan-fix:#6c6f79; --plan-dark:#26262c;
}
.stage{position:absolute;top:0;left:0;transform-origin:top left;
  width:1200px;height:760px;background:var(--plan-bg);
  border:1px solid rgba(0,0,0,.25);box-shadow:0 24px 70px rgba(0,0,0,.5);}
.stage__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.85;pointer-events:none;}
.stage.is-locked .obj--table,.stage.is-locked .obj--decor{cursor:pointer;}
.obj.is-multi{outline:2.5px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 5px rgba(var(--accent-rgb),.22),0 10px 24px rgba(0,0,0,.45);}

/* objects */
.obj{position:absolute;display:flex;align-items:center;justify-content:center;
  border:2px solid var(--plan-line);background:var(--plan-table);color:var(--plan-ink);
  font-size:14px;font-weight:600;user-select:none;-webkit-user-select:none;touch-action:none;transition:box-shadow .15s,border-color .15s;}
.obj--table{cursor:grab;}
.obj--table.is-selected{border-color:var(--gold)!important;box-shadow:0 0 0 3px rgba(232,38,124,.45),0 10px 26px rgba(0,0,0,.4);z-index:20;}
.obj--dragging{cursor:grabbing;z-index:30;opacity:.92;}
.obj.shape-circle,.obj.shape-hightop,.obj.shape-standing{border-radius:50%;}
.obj.shape-square{border-radius:3px;}
.obj.shape-rect{border-radius:3px;}
.obj.shape-couch{border-radius:22px 22px 5px 5px;}
.obj.shape-standing{border-style:dashed;}
.obj__num{pointer-events:none;font-size:20px;font-weight:700;letter-spacing:.01em;}
.obj__cap{position:absolute;bottom:4px;font-size:9px;color:var(--plan-fix);font-family:var(--f-mono);pointer-events:none;}
.obj__price{position:absolute;top:-13px;right:-10px;font-size:16px;font-family:var(--f-mono);font-weight:700;
  background:#17181f;border:1.5px solid var(--gold);padding:3px 10px;border-radius:999px;color:#fff;
  letter-spacing:.01em;box-shadow:0 2px 7px rgba(0,0,0,.4);pointer-events:none;z-index:2;white-space:nowrap;}
/* status tint on tables (white = available, colored fills when booked) */
.obj[data-status="held"]{background:#fdf1d5;border-color:var(--st-held);}
.obj[data-status="deposit"]{background:#daecfb;border-color:var(--st-deposit);}
.obj[data-status="paid"]{background:#d5f4e2;border-color:var(--st-paid);}
.obj[data-status="comp"]{background:#eaddfa;border-color:var(--st-comp);}
.obj[data-status="reserved"]{background:#d6f3ee;border-color:var(--st-reserved);}
.obj__dot{position:absolute;top:6px;left:6px;width:9px;height:9px;border-radius:50%;pointer-events:none;box-shadow:0 0 0 1.5px rgba(255,255,255,.6);}

/* ---------- In-app public preview overlay ---------- */
.pubprev{position:fixed;inset:0;z-index:400;display:flex;flex-direction:column;
  background:rgba(6,6,10,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.pubprev__bar{display:flex;align-items:center;gap:10px;padding:11px 16px;
  border-bottom:1px solid var(--line);background:var(--ink-2);}
.pubprev__title{font-size:12px;letter-spacing:.03em;color:var(--bone-mute);}
.pubprev__title b{color:var(--gold);font-weight:600;}
.pubprev__stage{flex:1;width:100%;max-width:430px;margin:16px auto;min-height:0;
  overflow:hidden;border-radius:20px;border:1px solid var(--line-2);background:#0b0b0d;
  box-shadow:0 24px 70px rgba(0,0,0,.55);}
[data-status="held"] .obj__dot{background:var(--st-held);}
[data-status="deposit"] .obj__dot{background:var(--st-deposit);}
[data-status="paid"] .obj__dot{background:var(--st-paid);}
[data-status="comp"] .obj__dot{background:var(--st-comp);}
[data-status="reserved"] .obj__dot{background:var(--st-reserved);}
[data-status="available"] .obj__dot{background:var(--st-open);}

/* decor / fixtures */
.obj--decor{background:transparent;border:1.5px dotted var(--plan-fix);
  color:#3a3c44;font-size:13px;letter-spacing:.02em;text-transform:uppercase;font-weight:500;
  cursor:grab;text-align:center;line-height:1.15;padding:2px;}
.obj--decor.is-selected{border-color:var(--gold)!important;border-style:solid;box-shadow:0 0 0 3px rgba(232,38,124,.4);z-index:20;}
.obj--decor.decor-dancefloor{background:repeating-linear-gradient(45deg,rgba(0,0,0,.05),rgba(0,0,0,.05) 8px,transparent 8px,transparent 16px);border-style:solid;border-color:var(--plan-line);}
.obj--decor.decor-stage{background:var(--plan-dark);border:none;color:#e8e8ec;}
.obj--decor.decor-bar{border:2px solid var(--plan-line);border-style:solid;background:rgba(255,255,255,.35);}
.obj--decor.decor-tv{border:2px solid var(--plan-line);border-style:solid;background:#fff;}

/* resize handle */
.obj__resize{position:absolute;right:-7px;bottom:-7px;width:15px;height:15px;border-radius:50%;
  background:var(--gold);border:2px solid #fff;cursor:nwse-resize;display:none;box-shadow:0 2px 6px rgba(0,0,0,.4);}
.is-selected .obj__resize{display:block;}

/* stage toolbar (zoom, mode) */
.stage-toolbar{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:40;
  display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--line-2);
  border-radius:999px;background:rgba(11,11,17,.9);backdrop-filter:blur(10px);}
.stage-toolbar button{padding:6px 11px;border-radius:999px;font-size:11px;color:var(--bone-2);}
.stage-toolbar button:hover{background:rgba(246,240,230,.08);color:var(--bone);}
.stage-toolbar button.is-active{background:var(--gold);color:#fff;}
.stage-toolbar .z-val{font-family:var(--f-mono);font-size:11px;min-width:42px;text-align:center;color:var(--bone-mute);}
.stage-toolbar .div{width:1px;height:18px;background:var(--line-2);margin:0 2px;}

/* mode toggle */
.mode-tabs{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;}
.mode-tabs button{padding:8px 16px;font-size:11px;font-weight:600;color:var(--bone-mute);letter-spacing:.04em;}
.mode-tabs button.is-active{background:var(--gold);color:#fff;}

/* ---------- Property / booking panel ---------- */
.panel{padding:18px 16px;}
.panel__empty{padding:60px 20px;text-align:center;color:var(--bone-mute);font-size:13px;}
.panel__empty svg{width:40px;height:40px;stroke:var(--line-2);fill:none;stroke-width:1.2;margin-bottom:12px;}
.panel h3{font-size:16px;margin-bottom:2px;}
.panel__tag{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-mute);}
.fld{margin-top:14px;}
.fld__l{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-mute);margin-bottom:6px;display:block;}
.fld input,.fld select,.fld textarea{width:100%;padding:10px 11px;border-radius:var(--r-sm);
  border:1px solid var(--line-2);background:var(--ink);color:var(--bone);outline:none;transition:.15s;}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--gold);}
.fld textarea{resize:vertical;min-height:54px;}
.fld--row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;}
.fld--row > div{display:flex;flex-direction:column;}
.fld--row > div > .fld__l{margin-top:auto;}
/* Room multi-pick chips (new-event modal) */
.roomchips{display:flex;flex-wrap:wrap;gap:6px;}
.roomchip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line-2);border-radius:999px;
  background:var(--ink);cursor:pointer;font-size:12px;color:var(--bone-mute);transition:.15s;user-select:none;}
.roomchip input{accent-color:var(--gold);margin:0;width:13px;height:13px;cursor:pointer;}
.roomchip:has(input:checked){border-color:var(--gold);color:var(--bone);background:rgba(var(--accent-rgb),.08);}
.roomchip--all{font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;}
.fld--row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.inline-num{display:flex;align-items:stretch;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;}
.inline-num button{width:38px;background:var(--ink-3);color:var(--bone-2);font-size:16px;}
.inline-num button:hover{background:var(--ink-4);color:var(--gold);}
.inline-num input{border:0;border-radius:0;text-align:center;background:var(--ink);}
.seg{display:flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;}
.seg button{flex:1;padding:9px;font-size:11px;font-weight:600;color:var(--bone-mute);}
.seg button.is-active{background:var(--gold);color:#fff;}
.status-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.status-seg button{padding:9px;border:1px solid var(--line-2);border-radius:var(--r-sm);font-size:11px;font-weight:600;
  color:var(--bone-2);display:flex;align-items:center;gap:7px;}
.status-seg button .d{width:8px;height:8px;border-radius:50%;}
.status-seg button.is-active{border-color:var(--bone);background:rgba(246,240,230,.06);color:var(--bone);}
.panel__money{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-3);}
.mrow{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:13px;}
.mrow .k{color:var(--bone-mute);}
.mrow .v{font-family:var(--f-mono);font-weight:600;}
.mrow--total{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:15px;}
.mrow--due .v{color:var(--st-held);}
.mrow--paid .v{color:var(--st-paid);}
.panel__actions{display:flex;gap:8px;margin-top:16px;}
/* ---- at-a-glance facts card + bulk selection list ---- */
.panel__facts{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-3);}
.facts__t{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-mute);margin-bottom:4px;}
.facts__src{font-size:11px;line-height:1.5;color:var(--bone-mute);margin:8px 0 0;border-top:1px solid var(--line);padding-top:8px;}
.facts__note{font-size:12px;line-height:1.5;color:var(--bone);margin:8px 0 0;font-style:italic;}
.blk-list{margin:12px 0 2px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-3);max-height:224px;overflow:auto;}
.blk-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);font-size:12px;}
.blk-item:last-child{border-bottom:0;}
.blk-item__num{font-family:var(--f-mono);font-weight:700;min-width:34px;color:var(--bone);}
.blk-item__info{flex:1;color:var(--bone-mute);line-height:1.4;}
.blk-item__info b{color:var(--bone);font-family:var(--f-mono);font-weight:600;}
.blk-item__x{background:none;border:0;color:var(--bone-mute);font-size:16px;line-height:1;cursor:pointer;padding:2px 4px;}
.blk-item__x:hover{color:var(--st-held);}
.link--danger{color:var(--st-held) !important;}
/* guest-link share rows */
.share-row{display:flex;align-items:center;gap:8px;margin-top:6px;}
.share-row__info{display:flex;align-items:center;gap:8px;min-width:130px;font-size:12px;color:var(--bone);}
.share-row input{flex:1;min-width:0;font-family:var(--f-mono);font-size:11px;padding:8px 10px;background:var(--ink-3);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--bone-2);}
.share-row .btn{flex:0 0 auto;}
.pay-ledger{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-3);padding:10px 12px;}
.pay-row{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px;}
.pay-row:last-of-type{border-bottom:0;margin-bottom:8px;}
.pay-row__amt{font-family:var(--f-mono);font-weight:700;color:var(--st-paid);min-width:56px;}
.pay-row__meta{color:var(--bone-mute);line-height:1.45;flex:1;}
.tbl-photo{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-2);background:var(--ink);aspect-ratio:16/10;}
.tbl-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- Table roster (list view under editor) ---------- */
.roster{width:100%;border-collapse:collapse;font-size:13px;}
.roster th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-mute);
  padding:10px 12px;border-bottom:1px solid var(--line);font-weight:500;}
.roster td{padding:11px 12px;border-bottom:1px solid var(--line);}
.roster tr:hover td{background:rgba(246,240,230,.02);}
.roster .num{font-family:var(--f-mono);font-weight:600;}
.roster .st{display:inline-flex;align-items:center;gap:7px;font-size:12px;}
.roster .st .d{width:8px;height:8px;border-radius:50%;}
.roster .r-money{font-family:var(--f-mono);text-align:right;}

/* ---------- Modal ---------- */
.modal-scrim{position:fixed;inset:0;z-index:200;background:rgba(6,6,10,.7);backdrop-filter:blur(6px);
  display:none;place-items:center;padding:20px;}
.modal-scrim.is-on{display:grid;}
.modal{width:min(460px,94vw);border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--ink-2);
  padding:26px;box-shadow:0 40px 120px rgba(0,0,0,.6);max-height:90vh;overflow-y:auto;}
.modal h2{font-size:22px;margin-bottom:4px;}
.modal__sub{color:var(--bone-mute);font-size:13px;margin-bottom:18px;}
.modal__actions{display:flex;gap:10px;margin-top:22px;}

/* ---------- Staff app on phones ---------- */
@media (max-width:860px){
  .ed{grid-template-columns:1fr;grid-template-rows:auto minmax(340px,56vh) auto;height:auto;min-height:calc(100vh - 49px);}
  .ed__rail{border-right:0;border-bottom:1px solid var(--line);max-height:200px;}
  .ed__panel{border-left:0;border-top:1px solid var(--line);max-height:none;}
  .modal__actions{flex-wrap:wrap;}
  .modal__actions .btn{flex:1 1 auto;}
  .share-row{flex-wrap:wrap;}
  .share-row__info{min-width:100%;}
  .share-row input{flex:1 1 60%;}
}
.modal__actions .btn{flex:1;}
.rp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.rp-cell{position:relative;aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-2);background:var(--ink);}
.rp-cell img{width:100%;height:100%;object-fit:cover;display:block;}
.rp-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(6,6,10,.8);
  border:1px solid var(--line-2);color:#fff;font-size:15px;line-height:1;display:grid;place-items:center;transition:.15s;}
.rp-del:hover{background:#e0342c;border-color:#e0342c;}
.rp-badge{position:absolute;bottom:4px;left:4px;font-size:8px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--gold);color:#fff;padding:2px 6px;border-radius:999px;font-weight:700;}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);z-index:400;
  padding:12px 20px;border-radius:999px;background:var(--bone);color:var(--ink);font-weight:600;font-size:13px;
  opacity:0;pointer-events:none;transition:.25s var(--ease-out);box-shadow:0 20px 50px rgba(0,0,0,.5);}
.toast.is-on{opacity:1;transform:translate(-50%,0);}

/* legend */
.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--bone-mute);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend .d{width:9px;height:9px;border-radius:50%;}

/* utility */
.row{display:flex;align-items:center;gap:10px;}
.wrap{flex-wrap:wrap;}
.spacer{flex:1;}
.hide{display:none!important;}
.muted{color:var(--bone-mute);}
.link{color:var(--gold);cursor:pointer;font-weight:600;}
.link:hover{color:var(--gold-hot);text-decoration:underline;}
