/* =====================================================================
   Consignment — booths, consignor portal, barcode tags.
   Built on the platform tokens in app.css (glass surfaces, cyan/violet
   light, Archivo display numerals). Loaded after app.css.
   Label + statement pages load this file on its own, so the few tokens
   they need have fallbacks.
   ===================================================================== */

/* ---------- Layout helpers ---------- */
.cn-gap{margin-top:var(--gap,14px)}
.cn-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap,14px);margin-top:var(--gap,14px)}
.cn-two>div>.panel{height:100%}
.cn-metric-sub .metric-card>strong{font-size:26px}
.cn-metric-sub .metric-card small a{color:var(--cyan)}
.cn-section-title{margin:26px 0 12px!important;font-family:var(--display);font-stretch:112%;font-size:11px!important;font-weight:500!important;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.cn-wrap{white-space:normal!important;min-width:220px}
.cn-inline{display:inline}
.cn-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;color:var(--ink)}
.cn-details>summary::-webkit-details-marker{display:none}
.cn-details>summary::before{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--surface-3);color:var(--cyan);font-weight:600}
.cn-details[open]>summary::before{content:"–"}
.cn-details[open]>summary{margin-bottom:16px}
details.panel.cn-details>summary small{font-weight:400}
.cn-fieldset{border:0;margin:0;padding:0;min-width:0}
.cn-fieldset[disabled]{opacity:.65}
.cn-check,.cn-check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;color:var(--ink-2)!important;font-size:13px!important;cursor:pointer}
.cn-check-row{min-height:40px}
.help-text code,.cn-batch code,.form-section-head code{padding:1px 6px;border-radius:6px;background:rgba(0,0,0,.35);color:#a8f0ff}

/* ---------- Status additions ---------- */
.status-label.cn-status{height:22px;padding:0 10px;font-size:12px}
.status-label.low{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-line)}
.status-label.info{background:var(--info-tint);color:var(--info);border-color:var(--info-line)}
.status-label.sold{background:linear-gradient(120deg,rgba(94,231,255,.16),rgba(155,123,255,.16));color:#fff;border-color:rgba(155,123,255,.4)}
h1 .status-label{vertical-align:middle;margin-left:6px;font-family:var(--font)}
.cn-booth-chip{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:7px;background:rgba(155,123,255,.12);box-shadow:inset 0 0 0 1px rgba(155,123,255,.32);color:#cbbcff;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.02em;white-space:nowrap}
.cn-was{text-decoration:line-through;color:var(--subtle)!important}
.cn-unprinted{color:var(--warn)!important}
.cn-hold{color:var(--warn)!important}
.cn-reversal td{opacity:.75}
.cn-reversal td strong{color:var(--bad)}
.cn-total-row td{font-weight:600;color:var(--ink);background:rgba(255,255,255,.03)}
.cn-ledger-type{display:inline-flex;height:20px;align-items:center;padding:0 8px;border-radius:6px;font-size:11.5px;background:var(--surface-3);color:var(--ink-2)}
.cn-ledger-type.t-sale{background:var(--ok-tint);color:var(--ok)}
.cn-ledger-type.t-refund,.cn-ledger-type.t-rent,.cn-ledger-type.t-fee{background:var(--warn-tint);color:var(--warn)}
.cn-ledger-type.t-payout{background:rgba(155,123,255,.14);color:#cbbcff}
.cn-ledger-type.t-payout_void{background:var(--bad-tint);color:var(--bad)}

/* ---------- Trend chart ---------- */
.cn-trend{display:flex;align-items:flex-end;gap:10px;height:230px;padding:12px 4px 0;border-bottom:1px solid var(--line);background-image:linear-gradient(to top,rgba(255,255,255,.05) 1px,transparent 1px);background-size:100% 25%}
.cn-trend-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0}
.cn-trend-col i{position:relative;display:flex;flex-direction:column;justify-content:flex-end;width:min(22px,100%);border-radius:7px 7px 3px 3px;overflow:hidden;background:linear-gradient(to top,rgba(94,231,255,.05),rgba(94,231,255,.5));transition:box-shadow .2s,filter .2s}
.cn-trend-col i b{display:block;width:100%;background:linear-gradient(to top,rgba(155,123,255,.5),rgba(155,123,255,.95))}
.cn-trend-col:hover i{box-shadow:0 0 22px rgba(94,231,255,.45);filter:brightness(1.15)}
.cn-trend-col:last-child i{box-shadow:0 0 22px rgba(94,231,255,.4)}
.cn-trend-col span{font-family:var(--display);font-stretch:112%;font-size:10px;color:var(--subtle);letter-spacing:.08em}
.cn-legend{display:flex;gap:18px;margin-top:12px;font-size:12px;color:var(--muted)}
.cn-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.cn-legend .sw-sales{background:rgba(94,231,255,.6)}
.cn-legend .sw-comm{background:rgba(155,123,255,.9)}
.cn-top>div>b{font-family:var(--display);font-stretch:125%;font-weight:300;font-size:16px;color:var(--ink)}
.cn-top .module-icon{width:auto;min-width:40px;padding:0 8px;font-family:var(--mono)!important}

/* ---------- Booth floor grid ---------- */
.cn-booth-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--gap,14px)}
.cn-booth{display:flex;flex-direction:column;gap:6px;padding:18px;color:inherit;transition:transform .15s}
.cn-booth:hover{transform:translateY(-2px)}
.cn-booth-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cn-booth-top strong{font-family:var(--display);font-stretch:125%;font-weight:400;font-size:24px;letter-spacing:-.02em;color:var(--ink)}
.cn-booth-name{font-size:12.5px;color:var(--muted)}
.cn-booth-renter{margin-top:4px;font-size:13.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-booth-renter b{font-family:var(--mono);font-weight:500;color:var(--cyan);margin-right:4px}
.cn-booth dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--hair)}
.cn-booth dt{font-family:var(--display);font-stretch:112%;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle)}
.cn-booth dd{margin:2px 0 0;font-size:13px;color:var(--ink)}
.cn-booth.state-occupied{box-shadow:var(--edge),inset 3px 0 0 rgba(92,242,168,.65)}
.cn-booth.state-available{box-shadow:var(--edge),inset 3px 0 0 rgba(94,231,255,.7)}
.cn-booth.state-maintenance,.cn-booth.state-reserved{box-shadow:var(--edge),inset 3px 0 0 rgba(255,195,92,.6)}
.cn-booth.state-inactive{opacity:.5}

/* ---------- Intake (add items) ---------- */
.cn-intake-who{margin-bottom:var(--gap,14px)}
.cn-intake-who label{max-width:640px}
.cn-intake-who .help-text{margin:8px 0 0}
.cn-intake-table td{vertical-align:top;padding:10px 8px;white-space:normal}
.cn-intake-table th{padding:10px 8px}
.cn-intake-table td:first-child{padding-left:20px;min-width:240px}
.cn-intake-table input,.cn-intake-table select{height:38px;font-size:13.5px}
.cn-intake-table .money-input{min-width:104px}
.cn-intake-table .cn-qty{width:68px}
.cn-intake-table select{min-width:120px}
.cn-intake-table .cart-remove{margin-top:4px}
.cn-more{margin-top:6px}
.cn-more>summary{cursor:pointer;font-size:12px;color:var(--muted);list-style:none}
.cn-more>summary::-webkit-details-marker{display:none}
.cn-more>summary::before{content:"▸ ";color:var(--cyan)}
.cn-more[open]>summary::before{content:"▾ "}
.cn-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.cn-more-grid label{font-size:11.5px}
.cn-more-grid textarea{min-height:60px}
.cn-intake-foot{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:16px 20px;border-top:1px solid var(--hair)}
.cn-intake-foot>div{margin-right:auto;display:flex;flex-direction:column}
.cn-intake-foot strong{font-family:var(--display);font-stretch:125%;font-weight:400;font-size:20px}
.cn-intake-foot small{color:var(--muted)}

/* ---------- Item tables + bulk bar ---------- */
.cn-col-check{width:36px;padding-right:0!important}
.cn-items-table td{vertical-align:middle}
.cn-bulk-form{position:relative}
.cn-bulkbar{position:sticky;bottom:var(--gap,14px);z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px;padding:10px 12px 10px 18px;border-radius:999px;background:var(--glass-strong,rgba(10,13,20,.85));backdrop-filter:saturate(160%) blur(24px);-webkit-backdrop-filter:saturate(160%) blur(24px);box-shadow:var(--pop)}
.cn-bulkbar[hidden]{display:none}
.cn-bulkbar>strong{margin-right:auto;font-size:13px;color:var(--cyan)}
.cn-bulkbar select,.cn-bulkbar input{height:30px;font-size:13px;width:auto}
.cn-bulk-move{display:inline-flex;gap:6px}
.cn-filters{flex-wrap:wrap}
.cn-filters select{width:auto;min-width:150px;height:40px}

/* ---------- Batch forms / inline pay ---------- */
.cn-batch{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.cn-batch>div{margin-right:auto;display:flex;flex-direction:column}
.cn-batch>div small{color:var(--muted)}
.cn-batch select,.cn-batch input{width:auto;min-width:180px}
.cn-batch label{min-width:150px}
.cn-inline-pay{display:flex;align-items:center;gap:6px}
.cn-inline-pay .money-input{width:120px}
.cn-inline-pay input,.cn-inline-pay select{height:32px;font-size:13px}
.cn-inline-pay input[name=reference]{width:90px}
.cn-owed-section td{white-space:nowrap}
.cn-inline-pay select{width:auto}

/* ---------- Settings ---------- */
.cn-settings .panel+.panel{margin-top:var(--gap,14px)}
.cn-settings .form-actions{margin-top:var(--gap,14px)}
.cn-markdowns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.cn-markdowns>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-radius:12px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--hair)}

/* ---------- Tag preview ---------- */
.cn-tag-card{display:flex;flex-direction:column;align-items:center;gap:4px;width:min(320px,100%);margin:0 auto 18px;padding:16px 18px 12px;border-radius:12px;background:#fff;color:#000;box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.4);font-family:var(--font)}
.cn-tag-card span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#444}
.cn-tag-card strong{font-size:14px;text-align:center;line-height:1.25}
.cn-tag-card b{font-size:24px;font-weight:700}
.cn-tag-card svg{width:100%;height:56px}
.cn-tag-card code{font-family:var(--mono);font-size:12px;color:#000;letter-spacing:.06em}
.cn-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0}
.cn-facts div{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.03)}
.cn-facts dt{font-family:var(--display);font-stretch:112%;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle)}
.cn-facts dd{margin:3px 0 0;color:var(--ink)}

/* ---------- Portal ---------- */
.cn-steps{margin:0;padding-left:18px;color:var(--ink-2);font-size:13px;line-height:1.9}
.cn-steps b{color:var(--ink)}
.cn-agreement{box-shadow:var(--edge),inset 0 0 0 1px rgba(255,195,92,.3)}
.cn-agreement-text{max-height:220px;overflow:auto;margin:0 0 14px;padding:14px;border-radius:12px;background:rgba(0,0,0,.25);font-size:13px;color:var(--ink-2);line-height:1.6}

/* ---------- POS: booth tag on tiles + cart ---------- */
.pos-booth-tag{display:inline-flex;align-items:center;gap:4px;margin-top:4px;height:18px;padding:0 7px;border-radius:6px;background:rgba(155,123,255,.14);box-shadow:inset 0 0 0 1px rgba(155,123,255,.3);color:#cbbcff;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;white-space:nowrap;width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cart-item-info .pos-booth-tag{margin:3px 0 0}

/* ---------- Responsive ---------- */
@media (max-width:1100px){.cn-markdowns{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.cn-two{grid-template-columns:1fr}.cn-more-grid{grid-template-columns:1fr}.cn-facts{grid-template-columns:repeat(2,1fr)}.cn-inline-pay{flex-wrap:wrap}}
@media (max-width:640px){.cn-intake-foot{flex-wrap:wrap}.cn-bulkbar{border-radius:18px}}

/* =====================================================================
   Printable pages (labels + statements) — standalone documents
   ===================================================================== */
@font-face{font-family:"Instrument Sans";src:url("../../assets/fonts/inst-sans-400.woff2") format("woff2");font-weight:300 400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../../assets/fonts/inst-sans-600.woff2") format("woff2");font-weight:500 800;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("../../assets/fonts/plex-mono-500.woff2") format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"Archivo";src:url("../../assets/fonts/archivo-var.woff2") format("woff2-variations"),url("../../assets/fonts/archivo-var.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}

.label-print-page,.cn-statement-page{margin:0;min-height:100vh;background:#04060a radial-gradient(ellipse 80% 50% at 50% -10%,rgba(63,140,255,.35),transparent 70%) no-repeat;color:#eef6fb;font-family:"Instrument Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.label-toolbar{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:14px;padding:12px 16px;border-radius:20px;background:rgba(10,13,20,.78);backdrop-filter:saturate(160%) blur(28px);-webkit-backdrop-filter:saturate(160%) blur(28px);box-shadow:0 30px 80px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.08)}
.label-toolbar label{display:flex;flex-direction:column;gap:5px;font-family:"Archivo",sans-serif;font-stretch:112%;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8392a1}
.label-toolbar select,.label-toolbar input{height:38px;padding:0 12px;border:0;border-radius:12px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);color:#eef6fb;font:14px "Instrument Sans",sans-serif;letter-spacing:0;text-transform:none}
.label-toolbar select option{background:#10141c}
.label-toolbar input[type=number]{width:90px}
.label-back{align-self:center;padding:8px 12px;border-radius:999px;color:#c3cdd6;text-decoration:none;background:rgba(255,255,255,.05)}
.label-back:hover{background:rgba(255,255,255,.1);color:#fff}
.label-toolbar-title{align-self:center;display:flex;flex-direction:column;margin-right:auto}
.label-toolbar-title strong{font-family:"Archivo",sans-serif;font-stretch:125%;font-weight:400;font-size:20px;letter-spacing:-.01em}
.label-toolbar-title small{color:#8392a1;font-size:12px}
.label-print-btn{height:40px;padding:0 22px;border:0;border-radius:12px;background:linear-gradient(120deg,#5ee7ff 0%,#3f8cff 55%,#8a6dff 100%);color:#021019;font:600 14px "Instrument Sans",sans-serif;cursor:pointer;box-shadow:0 6px 24px rgba(63,140,255,.35),inset 0 1px 0 rgba(255,255,255,.45)}
.label-print-btn:hover{filter:brightness(1.08)}
.label-hint{margin:0 18px 10px;color:#8392a1;font-size:12.5px}
.label-hint b{color:#c3cdd6}
.label-empty{text-align:center;color:#8392a1;padding:60px}

/* sheets on screen look like paper */
.label-pages{display:flex;flex-direction:column;align-items:center;gap:24px;padding:10px 14px 60px}
.label-sheet{position:relative;box-sizing:border-box;background:#fff;color:#000;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.55)}
.label-sheet.is-sheet{padding:var(--top) var(--left) 0}
.label-sheet.is-roll{border-radius:4px}
.label-grid{display:grid;grid-template-columns:repeat(var(--cols),var(--lw));grid-auto-rows:var(--lh);column-gap:var(--gap)}
.label-cell{box-sizing:border-box;width:var(--lw);height:var(--lh);padding:.05in .09in .04in;display:flex;flex-direction:column;overflow:hidden;font-family:"Instrument Sans",Arial,sans-serif;color:#000;line-height:1.1}
.label-pages:not(.is-printing) .label-sheet.is-sheet .label-cell{outline:1px dashed #d6dbe0;outline-offset:-1px;border-radius:.06in}
.label-cell.is-blank{background:repeating-linear-gradient(45deg,#f5f6f7,#f5f6f7 6px,#fff 6px,#fff 12px)}
.lb-top{display:flex;justify-content:space-between;gap:4px;font-size:5.6pt;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#333}
.lb-store{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-booth{white-space:nowrap;font-family:"Plex Mono",monospace;color:#000}
.lb-name{font-size:7pt;font-weight:500;margin-top:1px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.lb-price-row{display:flex;align-items:baseline;justify-content:space-between;gap:4px}
.lb-price{font-size:12.5pt;font-weight:800;letter-spacing:-.01em}
.lb-price s{font-size:6.5pt;font-weight:500;color:#555;margin-right:3px}
.lb-meta{font-size:5.6pt;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-code{flex:1;display:flex;flex-direction:column;justify-content:flex-end;min-height:0}
.lb-barcode{display:block;width:100%;height:100%;min-height:.2in;max-height:.42in}
.lb-tag{display:block;text-align:center;font-family:"Plex Mono",monospace;font-size:6.2pt;letter-spacing:.08em;margin-top:1px}
.lb-footer{font-size:6pt;text-align:center;color:#444;margin-top:2px}
/* medium + large stock */
.size-md .lb-top{font-size:6.2pt}.size-md .lb-name{font-size:8pt;-webkit-line-clamp:2}.size-md .lb-price{font-size:15pt}.size-md .lb-barcode{max-height:.5in}.size-md .lb-tag{font-size:7pt}
.size-lg .label-cell{padding:.14in .18in .1in}
.size-lg .lb-top{font-size:8pt}.size-lg .lb-name{font-size:12pt;-webkit-line-clamp:2;margin-top:4px}.size-lg .lb-price{font-size:26pt}.size-lg .lb-price s{font-size:10pt}.size-lg .lb-meta{font-size:8pt}.size-lg .lb-barcode{max-height:.75in}.size-lg .lb-tag{font-size:10pt}.size-lg .lb-footer{font-size:8pt}

@media print{
  .label-print-page,.cn-statement-page{background:#fff!important;color:#000}
  .label-toolbar,.label-hint{display:none!important}
  .label-pages{display:block;padding:0;gap:0}
  .label-sheet{box-shadow:none;border-radius:0;page-break-after:always;break-after:page}
  .label-sheet:last-child{page-break-after:auto;break-after:auto}
  .label-sheet .label-cell{outline:0!important}
  .label-cell.is-blank{background:none}
}

/* ---------- Statement ---------- */
.cn-statement{box-sizing:border-box;width:min(8.5in,calc(100% - 28px));margin:10px auto 60px;padding:.6in .6in .5in;background:#fff;color:#111;box-shadow:0 20px 60px rgba(0,0,0,.55);font-size:10.5pt}
.cn-statement header{display:flex;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:2px solid #111}
.cn-statement h1{margin:0;font-family:"Archivo",sans-serif;font-stretch:125%;font-weight:500;font-size:20pt;letter-spacing:-.01em}
.cn-statement header p{margin:2px 0 0;color:#555;text-transform:uppercase;letter-spacing:.14em;font-size:8pt}
.cn-st-who{display:flex;flex-direction:column;text-align:right;font-size:9.5pt;color:#333}
.cn-st-who strong{color:#000;font-size:11pt}
.cn-st-period{margin:14px 0;font-weight:600}
.cn-st-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.cn-st-summary div{padding:8px 10px;border:1px solid #ddd;border-radius:6px}
.cn-st-summary span{display:block;font-size:7.5pt;text-transform:uppercase;letter-spacing:.1em;color:#666}
.cn-st-summary strong{font-size:12pt}
.cn-st-summary .is-total{background:#111;color:#fff;border-color:#111}
.cn-st-summary .is-total span{color:#bbb}
.cn-statement h2{margin:20px 0 6px;font-size:11pt}
.cn-statement table{width:100%;border-collapse:collapse;font-size:9pt}
.cn-statement th,.cn-statement td{padding:5px 6px;border-bottom:1px solid #e5e5e5;text-align:left;white-space:normal;color:#111;background:none;font-family:inherit;letter-spacing:0;text-transform:none}
.cn-statement th{font-size:7.5pt!important;text-transform:uppercase!important;letter-spacing:.08em;color:#666;border-bottom:1px solid #999}
.cn-statement .r{text-align:right}
.cn-statement tfoot td{font-weight:700;border-top:1px solid #111}
.cn-statement footer{margin-top:24px;font-size:8pt;color:#777}
@media print{.cn-statement{width:auto;margin:0;padding:0;box-shadow:none}@page{margin:.5in}}

/* =====================================================================
   Floor plan — designer + live maps
   Rented = red, open = green, reserved/maintenance = amber.
   ===================================================================== */
:root{--fp-open:#5cf2a8;--fp-open-fill:rgba(92,242,168,.2);--fp-rent:#ff5f7a;--fp-rent-fill:rgba(255,95,122,.24);--fp-hold:#ffc35c;--fp-hold-fill:rgba(255,195,92,.18)}
.fp-red{color:var(--fp-rent)}.fp-green{color:var(--fp-open)}
.fp-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted);align-items:center}
.fp-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-2px}
.lg-available{background:var(--fp-open-fill);box-shadow:inset 0 0 0 1.5px var(--fp-open)}
.lg-rented{background:var(--fp-rent-fill);box-shadow:inset 0 0 0 1.5px var(--fp-rent)}
.lg-hold{background:var(--fp-hold-fill);box-shadow:inset 0 0 0 1.5px var(--fp-hold)}
.lg-mine{background:rgba(94,231,255,.35);box-shadow:inset 0 0 0 1.5px var(--cyan)}
.lg-other{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}

/* shared shape styling (inline SVG views + editor) */
.fp-view,#fpCanvas{font-family:var(--display,"Archivo",sans-serif)}
.fp-floor{fill-opacity:1;stroke:rgba(94,231,255,.35);stroke-width:.12}
.fp-view .fp-floor{fill:rgba(255,255,255,.015)}
#fpCanvas .fp-floor{stroke-width:.1;filter:drop-shadow(0 0 1.2px rgba(94,231,255,.25))}
.fp-area rect{fill:rgba(255,255,255,.025);stroke:rgba(255,255,255,.28);stroke-dasharray:.6 .35;stroke-width:.08}
.fp-area text{fill:rgba(195,205,214,.75);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.fp-wall rect{fill:#c3cdd6}
.fp-counter rect{fill:rgba(155,123,255,.22);stroke:#9b7bff;stroke-width:.1}
.fp-register rect{fill:rgba(94,231,255,.2);stroke:var(--cyan,#5ee7ff);stroke-width:.1}
.fp-entrance rect{fill:rgba(255,195,92,.25);stroke:var(--fp-hold);stroke-width:.08}
.fp-counter text,.fp-register text,.fp-entrance text{fill:#eef6fb;font-weight:500}
.fp-label text,.fp-view .fp-label{fill:#c3cdd6;font-weight:500;letter-spacing:.04em}
.fp-booth rect,.fp-shape.fp-booth rect{stroke-width:.14;transition:fill .15s}
.st-available rect{fill:var(--fp-open-fill);stroke:var(--fp-open)}
.st-rented rect{fill:var(--fp-rent-fill);stroke:var(--fp-rent)}
.st-reserved rect,.st-maintenance rect{fill:var(--fp-hold-fill);stroke:var(--fp-hold)}
.st-mine rect{fill:rgba(94,231,255,.35);stroke:var(--cyan,#5ee7ff);stroke-width:.22}
.st-other rect{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.25)}
.fp-booth text,.fp-shape.fp-booth text{fill:#fff;pointer-events:none}
.fp-code{font-weight:600;font-stretch:112%}
.fp-size{fill:rgba(238,246,251,.75)!important;font-family:var(--mono,"Plex Mono",monospace);font-weight:500}
.st-mine .fp-size{fill:#fff!important;letter-spacing:.1em}
.fp-view a .fp-booth:hover rect{filter:brightness(1.5) drop-shadow(0 0 .6px currentColor)}
.fp-view .is-focus rect{stroke-width:.35;stroke:#fff}
.fp-live .fp-view{display:block;width:100%;height:auto;max-height:70vh}
.fp-portal .fp-view{max-height:360px}

/* editor */
.fp-editor{display:flex;flex-direction:column;gap:var(--gap,14px)}
.fp-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 14px;position:sticky;top:calc(var(--topbar,60px) + var(--gap,14px)*2);z-index:6;background:var(--glass-strong,rgba(10,13,20,.85))!important;backdrop-filter:saturate(160%) blur(24px);-webkit-backdrop-filter:saturate(160%) blur(24px)}
.fp-tool-group{display:flex;align-items:center;gap:6px}
.fp-tool-label{font-family:var(--display);font-stretch:112%;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--subtle);margin-right:2px}
.fp-tool{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:0;border-radius:10px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:var(--ink);font-size:13px;cursor:pointer;transition:background .15s,box-shadow .15s}
.fp-tool svg{width:16px;height:16px;color:var(--muted)}
.fp-tool:hover{background:rgba(94,231,255,.12);box-shadow:inset 0 0 0 1px rgba(94,231,255,.4)}
.fp-tool.is-booth{background:rgba(92,242,168,.12);box-shadow:inset 0 0 0 1px rgba(92,242,168,.35)}
.fp-tool.is-booth svg{color:var(--fp-open)}
.fp-icon{display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border:0;border-radius:10px;background:rgba(255,255,255,.05);color:var(--ink);font-size:17px;cursor:pointer}
.fp-icon:hover{background:rgba(255,255,255,.1)}
.fp-fit{font-size:12px}
.fp-renters{margin-left:auto}
.fp-dirty{align-self:center;font-size:12px;color:var(--warn)}
.fp-dirty::before{content:"●  "}
.fp-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--gap,14px);align-items:start}
.fp-stage{padding:0!important;overflow:auto;height:calc(100vh - 290px);min-height:460px;background:rgba(4,6,10,.55)!important;cursor:default;touch-action:none}
#fpCanvas{display:block;margin:16px;user-select:none;-webkit-user-select:none}
#fpCanvas .fp-shape{cursor:move}
#fpCanvas .fp-hit{fill:transparent}
#fpCanvas .fp-shape.is-sel rect:not(.fp-hit){stroke:#fff!important;filter:drop-shadow(0 0 .5px rgba(255,255,255,.9))}
#fpCanvas .fp-shape.is-new rect{stroke-dasharray:.5 .3}
#fpCanvas .fp-shape.is-sel.fp-label .fp-hit{stroke:#fff;stroke-width:.08;stroke-dasharray:.4 .3}
.fp-handle{fill:#04060a;stroke:var(--cyan,#5ee7ff)}
.h-nw,.h-se{cursor:nwse-resize}.h-ne,.h-sw{cursor:nesw-resize}.h-n,.h-s{cursor:ns-resize}.h-e,.h-w{cursor:ew-resize}
.fp-dim{fill:var(--cyan,#5ee7ff);font-family:var(--mono,monospace);pointer-events:none}
.fp-ruler{fill:var(--subtle,#55636f);font-family:var(--mono,monospace);pointer-events:none}
.fp-marquee{fill:rgba(94,231,255,.08);stroke:var(--cyan,#5ee7ff);stroke-width:.08;stroke-dasharray:.4 .3}
.fp-panel{position:sticky;top:calc(var(--topbar,60px) + var(--gap,14px)*2 + 70px);max-height:calc(100vh - 220px);overflow:auto;padding:0!important}
.fp-panel-sec{padding:16px 18px;border-bottom:1px solid var(--hair)}
.fp-panel-sec:last-child{border-bottom:0}
.fp-panel-sec h3{margin:0 0 12px;font-family:var(--display);font-stretch:112%;font-size:10.5px!important;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}
.fp-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fp-fields .span-2{grid-column:1/-1}
.fp-fields input,.fp-fields select{height:36px;font-size:13.5px}
.fp-invalid{border-color:var(--bad)!important;box-shadow:0 0 0 3px var(--bad-tint)!important}
.fp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fp-stats div{padding:10px;border-radius:10px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--hair)}
.fp-stats b{display:block;font-family:var(--display);font-stretch:125%;font-weight:300;font-size:20px;color:var(--ink)}
.fp-stats span{font-size:11px;color:var(--muted)}
.fp-stats .st-rented b{color:var(--fp-rent)}.fp-stats .st-available b{color:var(--fp-open)}
.fp-unplaced{display:flex;flex-wrap:wrap;gap:6px}
.fp-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 10px;border:0;border-radius:9px;color:#fff;font:600 13px var(--mono,monospace);cursor:pointer}
.fp-chip small{font:400 10.5px var(--font);color:var(--ink-2)}
.fp-chip.st-available{background:var(--fp-open-fill);box-shadow:inset 0 0 0 1px var(--fp-open)}
.fp-chip.st-rented{background:var(--fp-rent-fill);box-shadow:inset 0 0 0 1px var(--fp-rent)}
.fp-chip.st-reserved,.fp-chip.st-maintenance{background:var(--fp-hold-fill);box-shadow:inset 0 0 0 1px var(--fp-hold)}
.fp-sel-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.fp-type-chip{font-family:var(--display);font-stretch:112%;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.fp-state{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:500}
.fp-state.st-available{background:var(--fp-open-fill);color:var(--fp-open)}
.fp-state.st-rented{background:var(--fp-rent-fill);color:var(--fp-rent)}
.fp-state.st-reserved,.fp-state.st-maintenance{background:var(--fp-hold-fill);color:var(--fp-hold)}
.fp-sqft{margin-top:10px;font-size:12px;color:var(--muted);font-family:var(--mono)}
.fp-renter{display:flex;flex-direction:column;gap:2px;margin-top:12px;padding:12px;border-radius:12px;background:var(--fp-rent-fill);box-shadow:inset 0 0 0 1px rgba(255,95,122,.35)}
.fp-renter span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fp-rent);font-family:var(--display);font-stretch:112%}
.fp-renter strong{color:#fff;font-weight:500}
.fp-renter small{color:var(--ink-2)}
.fp-renter .text-btn{margin-top:4px;color:#fff;font-size:13px;justify-content:flex-start}
.fp-open{margin-top:12px;width:100%}
.fp-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.fp-btns .danger-btn{height:30px;min-height:30px;padding:0 12px;font-size:13px}
.fp-help ul{margin:0;padding-left:16px;color:var(--ink-2);font-size:12.5px;line-height:1.9}
.fp-help kbd{padding:1px 5px;border-radius:5px;background:rgba(255,255,255,.08);box-shadow:inset 0 -1px 0 rgba(255,255,255,.12);font:500 11px var(--mono)}
#fpModal .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
@media (max-width:1100px){.fp-body{grid-template-columns:1fr}.fp-panel{position:static;max-height:none}.fp-renters{margin-left:0}}
#fpCanvas{max-width:none;flex:none}

/* ---------- Owed to the store ---------- */
.cn-owes{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:24px;box-shadow:var(--edge),inset 0 0 0 1px rgba(255,95,122,.4)!important;background:linear-gradient(120deg,rgba(255,95,122,.14),rgba(16,20,28,.62) 60%)!important}
.cn-owes-main span{font-family:var(--display);font-stretch:112%;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bad)}
.cn-owes-main strong{display:block;margin:6px 0 8px;font-family:var(--display);font-stretch:125%;font-weight:300;font-size:44px;line-height:1;color:#fff;text-shadow:0 0 30px rgba(255,95,122,.45)}
.cn-owes-main p{color:var(--ink-2);max-width:560px}
.cn-owes-list h3{margin:0 0 8px;font-family:var(--display);font-stretch:112%;font-size:10.5px!important;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}
.cn-owes-list>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:13px}
.cn-owes-list>div:last-child{border-bottom:0}
.cn-owes-list small{display:block;color:var(--muted);font-size:11.5px}
.cn-owes-list b{color:var(--bad);font-weight:500;white-space:nowrap}
.cn-receive{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.cn-receive .money-input{width:140px}.cn-receive select,.cn-receive input[name=reference]{width:auto}
.cn-owed-total{margin-left:8px;padding:2px 10px;border-radius:999px;background:var(--bad-tint);color:var(--bad);font-size:13px;font-family:var(--font)}
.cn-ledger-type.t-payment{background:var(--ok-tint);color:var(--ok)}
.metric-card .qty-minus{font-weight:300!important}
@media (max-width:900px){.cn-owes{grid-template-columns:1fr}}
.cn-terms{display:block;color:var(--cyan)!important;margin-top:2px}
.fp-terms{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(94,231,255,.07);box-shadow:inset 0 0 0 1px rgba(94,231,255,.2);font-size:13px;color:var(--ink-2)}
.fp-terms b{color:#fff;font-weight:500}.fp-terms span{color:var(--cyan);margin:0 2px}
.fp-terms small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
