/* Operations screens of the light family: Resumen (replica S-FV-02) and Reservas del evento (S-FV-03).
   Sizes follow the mobile references at 390 CSS px width; colours are CL's own. */
:root{--fv-card:var(--panel);--fv-field:#202024;--fv-line:#303036;--fv-zone:#18181b;--fv-tile:#2a2a30;--fv-sel:#ffd08a1f;--fv-sel-line:#ffd08aa0;--fv-sel-ink:#ffd08a;--fv-cal:#3a3328;--fv-cal-ink:#f2dba4;--fv-mod:#2d2640;--fv-mod-in:#3b3157;--fv-mod-ink:#d8cdff;--fv-in:#f0b400}
body.light{--fv-card:var(--panel);--fv-field:#f4f4f6;--fv-line:#d8d8da;--fv-zone:#fafafa;--fv-tile:#d4d3d8;--fv-sel:#f1ebe1;--fv-sel-line:#836b48;--fv-sel-ink:#684d24;--fv-cal:#ffe9a8;--fv-cal-ink:#7a5a12;--fv-mod:#f1eafe;--fv-mod-in:#e2d6fb;--fv-mod-ink:#4d3a86;--fv-in:#e7b307}

.fv-head{display:none}
.fv-modules{display:none}

/* S-FV-02 */
.fv-tabs{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--fv-line)}
.fv-tabs button{position:relative;height:41.2px;padding:0 12px;border:0;background:none;color:var(--muted);font-size:14.5px}
.fv-tabs button.on{color:var(--fv-sel-ink)}
.fv-tabs button.on::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:currentColor}
.fv-title{margin:11.5px 0 0;font-size:17px;font-weight:500;line-height:22px}
.fv-filters{display:flex;align-items:center;gap:8.4px;margin-top:23.7px;max-width:620px}
.fv-period{position:relative;display:inline-flex;align-items:center}
.fv-period select{appearance:none;width:192.6px;height:28px;min-height:0;padding:0 30px 0 12px;border:1px solid var(--fv-sel-line);border-radius:7px;background:var(--fv-sel);color:var(--fv-sel-ink);font-size:13.5px}
.fv-period .icon{position:absolute;right:10px;width:14px;height:14px;color:var(--fv-sel-ink);pointer-events:none}
.fv-filter-wrap{position:relative;margin-left:auto}
.fv-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:80.3px;height:28px;padding:0;border:1px solid var(--fv-line);border-radius:7px;background:var(--fv-card);color:var(--text);font-size:13.5px}
.fv-btn .icon{width:15px;height:15px}
.fv-btn.on{border-color:var(--fv-sel-line);color:var(--fv-sel-ink)}
.fv-icon{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:none;color:var(--text)}
.fv-icon .icon{width:17px;height:17px}
.fv-active{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--fv-sel-ink)}
.fv-active .icon{width:14px;height:14px}
.fv-kpi{display:block;max-width:620px;height:81px;margin-top:17px;padding:13px 16px 0 15.2px;border:1px solid var(--fv-line);border-radius:14px;background:var(--fv-card)}
.fv-filters+.fv-kpi,.fv-active+.fv-kpi{margin-top:16.3px}
.fv-kpi span{display:flex;align-items:center;gap:8px;font-size:13.5px;line-height:19px;color:var(--muted)}
.fv-kpi strong{display:block;margin-top:6.4px;font-size:22px;line-height:28px;font-weight:700;letter-spacing:-.01em}
.fv-info{display:grid;place-items:center;width:24px;height:24px;margin:-2px;padding:0;border:0;border-radius:50%;background:none;color:var(--text)}
.fv-info .icon{width:15px;height:15px}
.fv-chart{max-width:620px;margin-top:17px;border:1px solid var(--fv-line);border-radius:14px;background:var(--fv-card);overflow:hidden}
.fv-chart h2{display:flex;align-items:center;height:57px;padding:0 15.2px;border-bottom:1px solid var(--fv-line);font-size:17px;font-weight:500}
.fv-chart .chart{height:auto;aspect-ratio:620/235;padding:12px 10px 8px}
.fv-chart .muted{padding:0 15px 14px;font-size:12px}

/* S-FV-03 */
.bk{max-width:720px}
.bk-event-row{display:flex;align-items:center;gap:8.4px}
.bk-back{flex:none;display:grid;place-items:center;width:35.5px;height:35.5px;padding:0;border:0;background:none;color:var(--text)}
.bk-back .icon{width:19px;height:19px}
.bk-event{flex:1;min-width:0;display:flex;align-items:center;height:35.4px;padding:0 7.5px 0 14.7px;border:1px solid var(--fv-line);border-radius:7px;background:var(--fv-field)}
.bk-event>div{flex:1;min-width:0;display:grid;gap:1px}
.bk-event strong{font-size:12.5px;font-weight:700;line-height:15px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-event small{font-size:11.5px;line-height:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-nav{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:none;color:var(--text)}
.bk-nav .icon{width:15px;height:15px;stroke-width:2}
.bk-event i{width:1px;height:14.8px;margin:0 5px;background:var(--fv-line)}
.bk-tools{display:flex;gap:8.4px;margin-top:8.1px}
.bk-tools .search{flex:1;min-width:0}
.bk-tools .search .icon{left:8.5px}
.bk-tools .search input{height:35px;min-height:0;padding-left:34px;border-color:var(--field-line);border-radius:7px;background:var(--fv-field)}
.bk-square{flex:none;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--fv-line);border-radius:7px;background:var(--fv-card);color:var(--text)}
.bk-tools .bk-square{width:35.5px;height:35px}
.bk-square .icon{width:17px;height:17px}
.bk-square.on,.bk-square[aria-pressed=true]{border-color:var(--fv-sel-line);background:var(--fv-sel);color:var(--fv-sel-ink)}
.bk-filters{display:flex;justify-content:space-between;margin-top:12.3px}
.bk-states{display:flex;gap:7.5px}
.bk-sort-wrap{position:relative}
.bk-plan{display:grid;gap:12px;margin-top:12px;padding:12px;border:1px solid var(--fv-line);border-radius:10px}
.bk-plan-zone small{display:block;margin-bottom:6px;font-size:11px;color:var(--muted)}
.bk-plan-zone>div{display:flex;flex-wrap:wrap;gap:6px}
.bk-seat{width:38px;height:30px;padding:0;border:1.5px solid var(--zone);border-radius:6px;background:none;color:var(--text);font-size:12px;font-weight:600}
.bk-seat.busy{background:var(--zone);color:#141416}
.bk-zones{margin-top:7.5px;border-top:1px solid var(--fv-line)}
.bk-zone{display:flex;align-items:center;justify-content:space-between;width:100%;height:33.8px;padding:0 6px 0 15.2px;border:0;border-bottom:1px solid var(--fv-line);background:var(--fv-zone);color:var(--text);font-size:13px;text-align:left}
.bk-zone:disabled{opacity:1;cursor:default}
.bk-zone.empty{color:var(--muted)}
.bk-zone-info{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.bk-zone-info>span{display:inline-flex;align-items:center;gap:3px}
.bk-zone-info .icon{width:13px;height:13px}
.bk-zone-info>.icon{width:16px;height:16px;color:var(--text)}
.bk-row{display:grid;grid-template-columns:39.8px minmax(0,1fr) auto 48.6px;column-gap:7.6px;width:calc(100% - 9.7px);height:64.7px;margin:0 5.1px 9.7px 4.6px;padding:0;border:0;background:none;color:var(--text);text-align:left}
.bk-zone+.bk-row{margin-top:5px}
.bk-row:last-child{margin-bottom:5.1px}
.bk-row.off{opacity:.5}
.bk-type{display:grid;place-items:center;border-radius:3px;background:var(--fv-tile)}
.bk-type>span{display:grid;place-items:center;width:26.6px;height:26.6px;border-radius:50%;background:color-mix(in srgb,var(--zone) 70%,var(--fv-card));color:#141416}
.bk-type .icon{width:13px;height:13px}
.bk-main{display:grid;align-content:space-between;min-width:0}
.bk-main small{display:block;font-size:11.5px;line-height:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-main small b{font-weight:500;color:var(--accent)}
.bk-main strong{font-size:14px;font-weight:600;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-amount{font-size:14px;line-height:17px;color:var(--muted)}
.bk-amount b{font-weight:500;color:var(--accent)}
.bk-seller{display:flex!important;align-items:center;gap:6px}
.bk-seller .icon{width:12px;height:12px}
.bk-side{display:flex;align-items:flex-start;gap:9px;padding-top:0;font-size:12.5px;font-weight:600}
.bk-pay .icon{width:16px;height:16px;color:var(--muted)}
.bk-pay.on .icon{color:var(--accent)}
.bk-people{display:inline-flex;align-items:center;gap:3px;line-height:16px}
.bk-people .icon{width:13px;height:13px;color:var(--muted)}
.bk-tile{display:grid;place-items:center;border:3px solid transparent;border-radius:3px;background:color-mix(in srgb,var(--zone) 70%,var(--fv-card));color:#141416;font-size:12px;font-weight:700}
.bk-tile.in{border-color:var(--fv-in)}
body.light .bk-tile,body.light .bk-type>span{background:var(--zone)}
.bk-empty{padding:28px 16px;text-align:center;font-size:13px;color:var(--muted)}

/* Guest lists (W-017) */
.ls{max-width:720px}
.ls-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}
.ls-totals div{padding:10px 12px;border:1px solid var(--fv-line);border-radius:10px;background:var(--fv-card)}
.ls-totals dt,.ls-stats dt{font-size:10.5px;color:var(--muted)}
.ls-totals dd{margin:2px 0 0;font-size:20px;font-weight:700}
.ls-live{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--muted)}
.ls-live i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent);animation:ls-pulse 2s infinite}
@keyframes ls-pulse{50%{opacity:.35}}
.ls-card{margin-top:14px;padding:12px 12px 4px;border:1px solid var(--fv-line);border-left:4px solid var(--list);border-radius:12px;background:var(--fv-card)}
.ls-card header{display:flex;align-items:flex-start;gap:10px}
.ls-dot{flex:none;width:12px;height:12px;margin-top:4px;border-radius:50%;background:var(--list)}
.ls-card header>div{flex:1;min-width:0}
.ls-card h3{font-size:15px;font-weight:600}
.ls-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.ls-badges span{padding:1px 7px;border-radius:999px;background:var(--fv-field);color:var(--muted);font-size:10.5px}
.ls-add{flex:none;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--fv-line);border-radius:999px;background:none;color:var(--text);font-size:12px}
.ls-add .icon{width:14px;height:14px}
.ls-meter{height:6px;margin-top:10px;border-radius:999px;background:var(--fv-field);overflow:hidden}
.ls-meter span{display:block;height:100%;background:var(--list)}
.ls-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 0}
.ls-stats dd{margin:1px 0 0;font-size:15px;font-weight:600}
.ls-rules{margin-top:8px;font-size:11.5px;color:var(--muted)}
.ls-guests{margin:8px 0 0;padding:0;list-style:none}
.ls-guest{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--fv-line)}
.ls-guest>div{flex:1;min-width:0}
.ls-guest strong{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-guest small{display:block;font-size:11px;color:var(--muted)}
.ls-state{font-size:11px;color:var(--muted);white-space:nowrap}
.ls-state.in{color:var(--accent);font-weight:600}
.ls-qr{flex:none;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--fv-line);border-radius:8px;background:none;color:var(--text)}
.ls-qr .icon{width:16px;height:16px}
.ls-none{padding:10px 0 8px;font-size:12px;color:var(--muted)}
.ls-empty{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:14px;border:1px dashed var(--fv-line);border-radius:12px;color:var(--muted);font-size:13px}
.qr-box{width:200px;margin:14px auto 0}
.qr-box.small{width:140px}
.qr{display:block;width:100%;height:auto;border-radius:6px}
.config-windows{display:grid;gap:6px}
.config-window{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;color:var(--muted);font-size:12px}
@media(prefers-reduced-motion:reduce){.ls-live i{animation:none}}

/* Door (R-030, W-021) */
.dr{max-width:720px}
.dr-device{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:var(--muted)}
.dr-device b{color:var(--text);font-weight:600}
.dr-edit{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted)}
.dr-edit .icon{width:14px;height:14px}
.dr-camera{display:grid;gap:8px;margin-top:10px}
.dr-camera video{width:100%;aspect-ratio:4/3;border-radius:12px;background:#000;object-fit:cover}
.dr-start{width:100%;min-height:48px}
.dr-nocam{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed var(--fv-line);border-radius:12px;color:var(--muted);font-size:12.5px}
.dr-nocam .icon{flex:none;width:22px;height:22px}
/* Tracking and cookies (W-020) */
.tr{max-width:720px}
.tr-state p{margin-top:6px;font-size:13px;color:var(--muted)}
.tr-state p b{color:var(--text)}
.tr-state .btn{margin-top:10px}
#tracking-form .btn{margin-top:10px}
#tracking-form .zn-check{margin-top:10px;color:var(--muted)}
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:45;max-width:560px;margin:0 auto;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 10px 30px #0006}
.consent p{font-size:13px;line-height:1.5}
.consent-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
@media(max-width:640px){.consent{bottom:96px}}
/* While the banner is shown, a focused control scrolls clear of it and the page can scroll above it (WCAG 2.4.11). */
html:has(.consent){scroll-padding-bottom:200px}
body:has(.consent) .content{padding-bottom:240px}
@media(max-width:640px){html:has(.consent){scroll-padding-bottom:330px}body:has(.consent) .content{padding-bottom:360px}}
/* Teams (W-014) */
.tm{max-width:720px}
.tm-card{margin-top:12px;padding:12px 14px;border:1px solid var(--fv-line);border-radius:12px;background:var(--fv-card)}
.tm-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tm-top h3{font-size:14.5px;font-weight:600}
.tm-kind{padding:2px 8px;border-radius:999px;background:var(--raised);font-size:11.5px;font-weight:600}
.tm-card p{margin-top:4px;font-size:12px;color:var(--muted)}
.tm-report{margin-top:18px}
.tm-report-head{display:flex;align-items:center;justify-content:space-between}
.tm-report-head h3{font-size:15px;font-weight:600}
.tm-report .field{margin-top:8px}
.tm-member-actions{display:flex;gap:6px}
/* Box office (W-019) */
.bo{max-width:720px}
.bo-card{margin-top:14px;padding:12px 14px;border:1px solid var(--fv-line);border-radius:12px;background:var(--fv-card)}
.bo-card h2{font-size:15px;font-weight:600}
.bo-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:end;margin-top:8px}
#bo-list-form{grid-template-columns:minmax(0,1fr) 110px}
#bo-list-form .btn{grid-column:1/-1}
.bo-price{margin-top:10px;font-size:13px}
.bo-pay{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.bo-total{margin-top:6px;font-size:13px;color:var(--muted)}
.bo-total b{color:var(--text)}
.bo-sales{margin:8px 0 0;padding:0;list-style:none}
.bo-sale{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:9px 0;border-top:1px solid var(--fv-line)}
.bo-sale-main strong,.bo-sale-main small{display:block}
.bo-sale-main small{font-size:11.5px;color:var(--muted)}
.bo-sale-actions{grid-column:1/-1;display:flex;gap:6px;align-items:center}
.bo-sale.off .bo-sale-main strong{text-decoration:line-through}
.bo-tag{font-size:12px;font-weight:600;color:var(--muted)}
.dr-bo{margin-left:auto}
/* Revoked codes (U-022) */
.cr-title{margin:18px 0 6px;font-size:13px}
.cr-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cr-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.cr-list small{display:block;color:var(--muted)}
.print-ticket{text-align:center}
.print-ticket h3{margin-top:4px;font-size:18px}
.print-ticket p{margin-top:4px;font-size:13px}
.pt-brand{font-size:11px;letter-spacing:.12em;color:var(--muted)}
.pt-item{font-weight:600}
.pt-void{font-weight:700;color:var(--danger)}
.dr-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
/* Entry ticket links */
.tk-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0 0}
/* Backup */
.st-backup{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.st-backup h3{margin:0;font-size:14px}
.st-auto code{overflow-wrap:anywhere;font-size:12px}
.st-auto-error{margin:6px 0;color:var(--danger);font-weight:600}
/* Activity (A-12) */
.ac-filters{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin-top:10px}
.ac-filters .field{min-width:130px;flex:1}
.ac-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.ac-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:12.5px}
.ac-row small{display:block;color:var(--muted)}
.ac-row p{margin:4px 0 0;color:var(--muted);overflow-wrap:anywhere}
.ac-row.off strong{color:var(--text)}
.ac-row time{flex:none;color:var(--muted);font-size:11.5px}
/* RRPP commissions (C-06) */
.cm-wrap{overflow-x:auto;margin-top:12px}
.cm-table{width:100%;border-collapse:collapse;font-size:13px}
.cm-table th,.cm-table td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cm-table small{display:block;color:var(--muted);font-weight:400}
.cm-table tfoot th,.cm-table tfoot td{border-bottom:0}
.cm-plans .help-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cm-period{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin-top:14px}
.cm-period h4{flex-basis:100%;margin:0;font-size:13px}
.cm-table td .btn{margin-top:4px}
.cm-month{margin:12px 0 0;font-size:13px}
.cm-goal{margin-top:2px}
.cm-actions{margin:10px 0 0}
.cm-table th .btn{margin-top:4px}
/* Table tab (F-04) */
.tb{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.tb h4{margin:0;font-size:13px}
.tb-sum{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.tb-sum b{color:var(--text)}
.tb-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.tb-list li{display:flex;align-items:center;gap:8px;font-size:12.5px}
.tb-list li span{flex:1}
.tb-list small{display:block;color:var(--muted)}
.tb-void b{text-decoration:line-through}
.tb-form{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin-top:8px}
.tb-close,.tb-closed{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;font-size:12.5px}
.tb-close small{color:var(--muted)}
/* Owner view (U-027) */
.ow-totals{margin:4px 0 0;font-size:14px}
.ow-stamp{margin:4px 0 0;font-size:12px;color:var(--muted)}
.ow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}
.ow-card{padding:12px 14px;border:1px solid var(--fv-line);border-radius:12px;background:var(--fv-card)}
.ow-head{display:flex;align-items:center;gap:8px}
.ow-head h2{margin:0;font-size:16px}
.ow-dot{width:10px;height:10px;border-radius:50%;background:var(--club)}
.ow-badge{margin-left:auto;padding:2px 8px;border:1px solid var(--line);border-radius:999px;font-size:11px;color:var(--muted)}
.ow-badge.live{border-color:var(--accent);color:var(--text)}
.ow-event{margin:6px 0 0;font-size:12px;color:var(--muted)}
.ow-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:10px 0 0}
.ow-stats div{min-width:0}
.ow-stats dt{font-size:11px;color:var(--muted)}
.ow-stats dd{margin:2px 0 0;font-size:15px;font-weight:600;color:var(--text)}
.ow-last{margin:10px 0 0;font-size:12px;color:var(--muted)}
/* Access export (U-024) */
.dr-export{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
/* Access point of the device (U-023) */
.dr-point{margin-top:10px}
.dr-zone-help{margin:8px 0 0;font-size:12px;color:var(--muted)}
.dr-mode-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;border:1px solid var(--fv-line);border-radius:10px;background:none;color:var(--text);font-size:14px;font-weight:600}
.dr-mode-btn .icon{width:15px;height:15px}
.dr-mode-btn.on{border-color:var(--fv-sel-line);background:var(--fv-sel);color:var(--fv-sel-ink)}
.dr-totals{grid-template-columns:repeat(4,minmax(0,1fr))}
.dr-form{display:grid;grid-template-columns:minmax(0,1fr) 92px auto;align-items:end;gap:8px;margin-top:10px}
.dr-code input{width:100%;height:44px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.dr-people{display:grid;gap:3px;font-size:10.5px;color:var(--muted)}
.dr-people input{width:100%;height:44px}
.dr-form .btn{height:44px}
.dr-result{display:grid;gap:3px;margin-top:12px;padding:14px 16px;border:2px solid;border-radius:14px;font-size:13px}
.dr-result strong{font-size:19px;font-weight:700;letter-spacing:-.01em}
.dr-result .dr-name{font-size:15px;font-weight:600}
.dr-result small{color:var(--muted);letter-spacing:.06em}
.dr-result.ok{border-color:#3fbf7f;background:color-mix(in srgb,#3fbf7f 12%,var(--fv-card))}
.dr-result.warn{border-color:#e7b307;background:color-mix(in srgb,#e7b307 12%,var(--fv-card))}
.dr-result.bad{border-color:#e5484d;background:color-mix(in srgb,#e5484d 12%,var(--fv-card))}
.dr-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.dr-log{margin-top:14px}
.dr-log h2{font-size:14px;font-weight:600}
.dr-log ul{margin:6px 0 0;padding:0;list-style:none}
.dr-log li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--fv-line);font-size:12px}
.dr-log li>div{flex:1;min-width:0}
.dr-log strong{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-log small{display:block;color:var(--muted)}
.dr-log li>span:last-child{color:var(--muted);white-space:nowrap}
.dr-dot{flex:none;width:9px;height:9px;border-radius:50%}
.dr-dot.ok{background:#3fbf7f}.dr-dot.warn{background:#e7b307}.dr-dot.bad{background:#e5484d}
.dr-note{margin-top:14px}

/* Sales links (S-FV-04), event comparison (S-FV-05) and organizations (S-FV-06) */
.fl,.fc,.og{max-width:720px}
.fl{--fl-band:#33291b;--fl-ink:#ffd08a}
body.light .fl{--fl-band:#fbeedc;--fl-ink:#7a4100}
.fl-module,.fl-card,.fl-row{display:block;width:100%;margin-top:9.3px;padding:0;border:1px solid var(--fv-line);border-radius:14px;background:var(--fv-card);color:var(--text);text-align:left;overflow:hidden}
.fl-band{display:flex;align-items:center;height:50.3px;padding:0 12.7px;background:var(--fl-band);color:var(--fl-ink);font-size:14.5px;font-weight:600}
.fl-body{display:flex;align-items:center;min-height:55.8px;padding:8px 12.7px;font-size:11.5px;line-height:15px;color:var(--muted)}
.fl-module.off,.fl-row.off{opacity:.6}
.fl-card{padding:12px 12.7px 9px}
.fl-card h2{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:14.5px;font-weight:600}
.fl-card h2 small{font-size:10.5px;font-weight:400;color:var(--muted)}
.fl-bar{height:7.2px;margin-top:13.5px;border-radius:999px;background:var(--fv-field);overflow:hidden}
.fl-bar span{display:block;height:100%;background:var(--fl-ink)}
.fl-center{margin-top:15px;text-align:center;font-size:14px;color:var(--muted)}
.fl-row+.fl-card{margin-top:11px}
.fl-row{display:flex;align-items:center;justify-content:space-between;height:38.9px;margin-top:11.8px;padding:0 12px;font-size:14px}
.fl-row small{font-size:11px;color:var(--muted)}
.fl-links{padding:8px 9.5px 14px 10px}
.fl-iframe{width:100%;height:28.3px;margin-top:6px;border:0;border-radius:7px;background:var(--fv-field);color:var(--text);font-size:14px}
.fl-iframe:disabled{opacity:.6;cursor:not-allowed}
.fl-card h3{margin-top:13.5px;font-size:13.5px;font-weight:700}
.fl-share{display:flex;gap:7.6px;margin-top:7px}
.fl-share input{flex:1;min-width:0;height:35.9px;min-height:0;padding:0 10px;border:1px solid var(--field-line);border-radius:7px;background:var(--fv-field);color:var(--muted);font-size:12px}
.fl-sq{flex:none;display:grid;place-items:center;width:36px;height:35.9px;padding:0;border:0;border-radius:7px;background:var(--fv-field);color:var(--text)}
.fl-sq .icon{width:16px;height:16px}
.fl-visits{margin:22px -9.5px 0 -10px;padding:10px 17.6px 0;border-top:1px solid var(--fv-line)}
.fl-visits h3{display:flex;align-items:center;gap:4px;margin:0;font-size:15px;font-weight:500;color:var(--muted)}
.fl-visits .fv-info{color:var(--fl-ink)}
.fl-visits strong{display:block;margin-top:13px;font-size:23px;line-height:30px;font-weight:700}
.fl-visits small{display:block;font-size:14.5px;color:var(--muted)}
.fl-table{width:100%;margin-top:14px;border-collapse:collapse;font-size:12px}
.fl-table th,.fl-table td{padding:6px 4px;border-top:1px solid var(--fv-line);text-align:right}
.fl-table th:first-child,.fl-table td:first-child{text-align:left}
.fl-table th{font-weight:500;color:var(--muted)}
.fc-head{display:flex;align-items:center;gap:5px;height:28px;margin-top:10px}
.fc-head h2{flex:1;min-width:0;font-size:15.5px;font-weight:700;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-report{display:grid;place-items:center;width:28.7px;height:28.7px;padding:0;border:0;border-radius:7px;background:var(--fv-field);color:var(--text)}
.fc-report .icon{width:15px;height:15px}
.fc-filters{display:flex;gap:8px;margin-top:12px}
.fc-select{position:relative;display:inline-flex;align-items:center;width:146px}
.fc-select select{appearance:none;width:100%;height:28.3px;min-height:0;padding:0 28px 0 10px;border:1px solid var(--field-line);border-radius:4px;background:var(--fv-card);color:var(--muted);font-size:13px}
.fc-select .icon{position:absolute;right:8px;width:14px;height:14px;color:var(--muted);pointer-events:none}
.fc-fees{display:inline-flex;align-items:center;gap:5px;height:28.3px;padding:0 11px;border:1px solid var(--fv-line);border-radius:4px;background:var(--fv-card);color:var(--text);font-size:13.5px}
.fc-fees.on{border-color:var(--fv-sel-line);background:var(--fv-sel);color:var(--fv-sel-ink)}
.fc-fees .icon{width:13px;height:13px}
.fc-event{display:flex;align-items:flex-start;gap:14px;margin-top:17.2px;padding:13.8px 14px 0;overflow:hidden;border:1px solid var(--fv-line);border-radius:10px;background:var(--fv-card)}
.fc-flyer,.fc-mini{flex:none;display:grid;place-items:center;border-radius:6px;color:#141416;font-weight:800}
.fc-flyer{width:51.1px;height:63.4px;border-radius:6px 6px 0 0;font-size:15px}
.fc-mini{width:25.7px;height:29.1px;font-size:9px}
.fc-flyer.theme-mint,.fc-mini.theme-mint{background:linear-gradient(135deg,#e4f5d9,#79b25f)}
.fc-flyer.theme-violet,.fc-mini.theme-violet{background:linear-gradient(135deg,#c4bcff,#7d6ad6)}
.fc-flyer.theme-amber,.fc-mini.theme-amber{background:linear-gradient(135deg,#ffe2a6,#d39a3f)}
.fc-flyer.theme-blue,.fc-mini.theme-blue{background:linear-gradient(135deg,#bfe3ff,#4f8fca)}
.fc-event p{font-size:13.5px;line-height:17px}
.fc-event p span{color:var(--muted)}
.fc-chips span{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:0 7px;line-height:17.7px;border-radius:4px;background:var(--fv-field);font-size:12px}
.fc-chips .icon{width:12px;height:12px}
.fc-event .fc-money{margin-top:2px;font-size:12px;color:var(--muted)}
.fc-title{margin-top:12.4px;font-size:14.5px;font-weight:700}
.fc-other{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 6.7px;margin-top:6px;padding:6px 14px 7px;border:1px solid var(--fv-line);border-radius:7px}
.fc-other strong{display:block;line-height:16px;font-size:13px;font-weight:500;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-other small{display:block;line-height:15px;font-size:12px;color:var(--muted)}
.fc-change{grid-column:1/-1;height:28.7px;border:0;border-radius:7px;background:var(--fv-field);color:var(--text);font-size:14px}
.fc-card{--c1:#7a4a00;--c2:#ffc46b;margin-top:11.4px;border-radius:12px;background:var(--fv-card);overflow:hidden}
.fc-other+.fc-card{margin-top:15.2px}
.fc-card.tables{--c1:#4a5d12;--c2:#b5d36b}
.fc-card.lists{--c1:#5b2a7a;--c2:#c9a0e8}
.fc-card h2{display:flex;align-items:center;height:32.5px;padding:0 14.4px;background:color-mix(in srgb,var(--c2) 14%,var(--fv-card));color:var(--c2);font-size:14.5px;font-weight:700;text-transform:uppercase}
body.light .fc-card h2{color:var(--c1)}
.fc-grid{display:grid;grid-template-columns:minmax(0,1fr) 72px 116.2px;padding:4.6px 14.3px 5.4px 7.2px;border-left:7.2px solid var(--c1);border-image:linear-gradient(var(--c1) 50%,var(--c2) 50%) 1;font-size:13.5px;line-height:18.2px}
.fc-grid>*{text-align:right}
.fc-grid [role=rowheader]{text-align:left;font-weight:600;text-transform:uppercase;white-space:nowrap}
.fc-grid [role=columnheader]{line-height:14.4px;font-size:12px;color:var(--muted)}
.fc-grid .sub{font-weight:400;color:var(--muted)}
.fc-grid .gap{padding-top:11px}
.fc-note{margin-top:14px}
.fc-pick{display:grid;gap:6px}
.fc-pick-row{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--fv-line);border-radius:8px;background:none;color:var(--text);text-align:left}
.fc-pick-row[aria-pressed=true]{border-color:var(--fv-sel-line);background:var(--fv-sel)}
.fc-pick-row span{flex:1;min-width:0}
.fc-pick-row strong,.fc-pick-row small{display:block}
.fc-pick-row small{color:var(--muted);font-size:12px}
.og-head{display:flex;align-items:center;gap:8px;margin-top:20px}
.og-head h2{flex:1;font-size:19px;font-weight:600}
.og-tools-wrap{position:relative}
.og-sq{position:relative;top:2.3px;display:grid;place-items:center;width:28.3px;height:28.3px;padding:0;border:0;border-radius:7px;background:var(--fv-field);color:var(--text)}
.og-add{background:var(--accent);color:var(--ink)}body.light .og-add{background:#ffd08a}
.og-sq .icon{width:16px;height:16px}
.og-search{margin-top:17.4px}
.og-search input{height:28.3px;min-height:0;padding-left:32.8px;border:1px solid var(--field-line);border-radius:7px;background:var(--fv-card);font-size:13px}
.og-search .icon{left:11.1px;width:15px}
.og-card{margin-top:15.2px;border:1px solid var(--fv-line);border-radius:14px;background:var(--fv-card);overflow:hidden}.og-card:has(>.og-body:focus-visible){outline:3px solid var(--accent);outline-offset:3px}
.og-cover{position:relative;display:grid;place-items:center;height:87.5px;background:linear-gradient(135deg,color-mix(in srgb,var(--club) 70%,#141416),#141416);overflow:hidden}
.og-cover>span{font-size:34px;font-weight:900;text-transform:uppercase;letter-spacing:-.02em;color:var(--club);opacity:.85;white-space:nowrap}
.og-more-wrap{position:absolute;top:6.2px;right:5.7px}
.og-more{display:grid;place-items:center;width:28.8px;height:28.3px;padding:0;border:0;border-radius:7px;background:#ffffff99;color:#141416}
.og-more .icon{width:16px;height:16px}
.og-body{display:flex;align-items:center;gap:14.8px;width:100%;height:85.4px;padding:0 14px 0 14.2px;border:0;background:none;color:var(--text);text-align:left}
.og-avatar{flex:none;display:grid;place-items:center;width:57.9px;height:57.9px;border-radius:50%;background:color-mix(in srgb,var(--club) 22%,#141416);color:var(--club);font-size:17px;font-weight:800}
body.light .og-avatar{background:color-mix(in srgb,var(--club) 60%,#fff);color:#141416}
.og-id{flex:1;min-width:0}
.og-id small{display:block;line-height:16px;font-size:13px;color:var(--muted)}
.og-id strong{display:block;line-height:19.5px;font-size:15.5px;font-weight:600;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.og-venues{display:flex}
.og-venues i{display:grid;place-items:center;width:23px;height:23px;margin-left:-6px;border:1.5px solid var(--fv-card);border-radius:50%;background:var(--fv-tile);font-size:8px;font-style:normal;font-weight:700}
.fv-brand{gap:10px}
.fv-mark{--club:#ffd08a}

/* Zones and reservations (W-012) */
.zn{max-width:720px}
.zn-head{display:flex;align-items:center;gap:6px;margin-top:10px}
.zn-head h2{font-size:17px;font-weight:600}
.zn-lead{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.zn-card{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 12px 12px 14px;border:1px solid var(--fv-line);border-radius:12px;background:var(--fv-card)}
.zn-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--zone)}
.zn-body{flex:1;min-width:0}
.zn-body h3{font-size:14.5px;font-weight:600}
.zn-body p{margin-top:2px;font-size:12px;color:var(--muted)}
.zn-body .zn-rules{color:var(--text)}
.zn-edit{flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--fv-line);border-radius:8px;background:none;color:var(--text);font-size:12.5px}
.zn-edit .icon{width:14px;height:14px}
.zn-check{display:flex;align-items:center;gap:8px;font-size:13px}
.zn-check input{width:18px;height:18px;accent-color:var(--accent)}
.zn-channels{display:grid;gap:8px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.zn-channels legend{padding:0 4px;font-size:12px;color:var(--muted)}
.zn-head .zn-add{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:0;border-radius:8px;background:var(--accent);color:var(--ink);font-size:13px;font-weight:600}
.zn-head .zn-add .icon{width:14px;height:14px}
body.light .zn-head .zn-add{background:#ffd08a}
/* The plan stays dark in both themes: a light focus ring keeps 3:1 against it (WCAG 1.4.11). */
.zn-map .zn-spot:focus-visible{outline:3px solid #f4f4f5;outline-offset:2px}
.zn-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.zn-card{align-items:flex-start}
.zn-plan{margin-top:18px}
.zn-plan h3{font-size:15px;font-weight:600}
.zn-plan .rv-map-wrap{margin-top:8px}
.zn-spot{cursor:grab;touch-action:none}
.zn-spot:active{cursor:grabbing}
.zn-combos{display:grid;gap:6px;margin:12px 0;padding:0;list-style:none}
.zn-combos li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.zn-combos strong,.zn-combos small{display:block}
.zn-combos small{font-size:12px;color:var(--muted)}
.dt-state{display:inline-block;margin-top:10px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600}
.dt-state.on{background:var(--fv-sel);color:var(--fv-sel-ink)}
.dt-state.off{background:var(--raised);color:var(--muted)}

@media(max-width:640px){
 .page-summary .topbar,.page-bookings .topbar,.page-lists .topbar,.page-door .topbar,.page-links .topbar,.page-compare .topbar,.page-orgs .topbar,.page-zones .topbar,.page-boxoffice .topbar,.page-teams .topbar,.page-tracking .topbar{display:none}
 .page-summary .content,.page-bookings .content,.page-lists .content,.page-door .content,.page-links .content,.page-compare .content,.page-orgs .content,.page-zones .content,.page-boxoffice .content,.page-teams .content,.page-tracking .content{padding:0 0 125px}
 .page-summary .page-heading,.page-bookings .page-heading,.page-lists .page-heading,.page-door .page-heading,.page-links .page-heading,.page-compare .page-heading,.page-orgs .page-heading,.page-zones .page-heading,.page-boxoffice .page-heading,.page-teams .page-heading,.page-tracking .page-heading{display:none}
 .fl,.fc,.og{background:var(--fv-zone)}
 .fv-sheet.fc,.fv-sheet.og{margin-top:18.4px}
 .fv-head{display:flex;align-items:center;gap:9.8px;height:35px;margin:37.4px 15.2px 0}
 .fv-club{flex:none;display:flex;align-items:center;gap:12px;width:203px;padding:0;border:0;background:none;color:var(--text);text-align:left}
 .fv-avatar{flex:none;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:color-mix(in srgb,var(--club) 22%,#141416);color:var(--club);font-size:12px;font-weight:800}
 body.light .fv-avatar{background:color-mix(in srgb,var(--club) 60%,#fff);color:#141416}
 .fv-club strong{flex:1;min-width:0;font-size:13px;font-weight:700;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .fv-club .icon{width:15px;height:15px;color:var(--muted)}
 .fv-head>.fv-circle{margin-left:auto}
 .fv-circle{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:var(--fv-card);color:var(--text)}
 .fv-circle .icon{width:15px;height:15px}
 .fv-more-wrap{position:relative}
 .fv-sheet{min-height:calc(100dvh - 73px);margin-top:.7px;padding:7.2px 15.3px 24px 14.8px;border-radius:26px 26px 0 0;background:var(--fv-card)}
 .fv-summary{margin-top:18.8px;padding:14.2px 15px 24px 14.8px}
 .fv-modules{display:flex;align-items:center;gap:10px;margin-left:1.5px}
 .fv-module-cal{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--fv-card);box-shadow:0 0 0 1px var(--fv-line)}
 .fv-module-cal>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--fv-cal);color:var(--fv-cal-ink)}
 .fv-module-cal .icon{width:14px;height:14px}
 .fv-module{display:inline-flex;align-items:center;gap:15px;height:39.3px;padding:0 8.3px 0 5px;border-radius:999px;background:var(--fv-mod);color:var(--text);font-size:13.5px;font-weight:600}
 .fv-module>span{display:grid;place-items:center;width:28.7px;height:28.7px;border-radius:50%;background:var(--fv-mod-in);color:var(--fv-mod-ink)}
 .fv-module .icon{width:14px;height:14px}
 .fv-tabs{margin-top:49.4px}
 .fv-tabs button{padding:0 13px}
 .bk-filters{margin-left:-7.6px;margin-right:-7.6px}
 .bk-zones{margin-left:-14.8px;margin-right:-15.3px}
 .fv-summary .summary-columns{gap:17px}
}
/* Floors (F-001) and moving tables between floors (F-002). */
.fl-head{display:flex;align-items:center;gap:10px}
.fl-head h3{margin:0}
.fl-tabs{display:flex;gap:6px;margin:12px 0;overflow-x:auto;padding:2px}
.fl-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.fl-tab small{font-size:11px;font-weight:400;color:var(--muted)}
.fl-tab.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.fl-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fl-sub{margin:16px 0 6px;font-size:13px}
.fl-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.fl-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.fl-list li span{display:flex;flex-direction:column}
.fl-list small{font-size:11.5px;color:var(--muted)}
.fl-history{margin-top:20px}
.fl-history h3{margin:0 0 8px;font-size:14px}
.fl-history ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.fl-history li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.fl-history time,.fl-history small{color:var(--muted);font-size:11.5px}
.fl-history li.denied span{color:var(--danger)}
.fl-impact{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:12.5px}
.fl-impact ul{margin:6px 0 10px;padding-left:18px}
.fl-notice{display:flex;align-items:center;gap:6px;margin:8px 0;padding:6px 10px;border-radius:8px;background:var(--raised);font-size:12.5px}
.fl-notice .icon{width:14px;height:14px;flex:none}
@media(max-width:640px){.fl-history li{grid-template-columns:1fr}.fl-list li{flex-wrap:wrap}}
.fl-add{margin-left:auto}
/* Team assistant (U-003). */
.as-form{display:flex;gap:10px;align-items:flex-end;margin-top:14px}
.as-form .field{flex:1;margin:0}
.as-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.as-chip{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text);font-size:12.5px;text-align:left;cursor:pointer}
.as-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.as-log{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.as-turn{display:grid;gap:6px}
.as-q{justify-self:end;max-width:85%;margin:0;padding:8px 12px;border-radius:12px 12px 2px 12px;background:var(--raised);font-size:13.5px}
.as-a{max-width:95%;padding:10px 12px;border:1px solid var(--line);border-radius:12px 12px 12px 2px;font-size:13.5px}
.as-a p{margin:0}
.as-rows{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}
.as-rows small{display:block;color:var(--muted);font-size:12px}
.as-src{margin-top:8px!important;color:var(--muted);font-size:11.5px}
.as-error{color:var(--danger)}
@media(max-width:640px){.as-form{flex-direction:column;align-items:stretch}}
/* Offline door mode (W-021b). */
.dr-offline{margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:12.5px}
.dr-offline.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.dr-offline p{margin:0;line-height:1.45}
.dr-offline small{color:var(--muted)}
.dr-offline-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
.dr-conflicts{margin-top:10px}
.dr-conflicts h3{margin:0 0 6px;font-size:13px}
.dr-conflicts ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dr-conflicts li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.dr-conflicts li span{display:flex;flex-direction:column}
.dr-conflicts small{color:var(--muted);font-size:11.5px}
.as-hint{margin:4px 0 0;font-size:12px;color:var(--muted)}
.as-proposal{margin-top:10px;padding:8px 10px;border:1px dashed var(--accent);border-radius:8px}
.as-proposal p{margin:0}
.as-actions{display:flex;gap:8px;margin-top:8px}
/* Destination preview of a floor move (F-002). */
.fl-pos{margin:12px 0 0;padding:0;border:0}
.fl-pos legend{font-size:13px;font-weight:600;margin-bottom:4px}
.fl-mini{position:relative;width:100%;aspect-ratio:3/2;margin:6px 0 10px;border:1px solid var(--line);border-radius:8px;background:var(--raised);cursor:crosshair;overflow:hidden}
.fl-mini-t,.fl-mini-new{position:absolute;display:grid;place-items:center;width:8%;height:5%;min-width:18px;min-height:14px;border-radius:3px;font-size:10px;font-weight:600}
.fl-mini-t{background:var(--line);color:var(--text)}
.fl-mini-new{background:var(--accent);color:var(--bg);outline:2px solid var(--text);outline-offset:1px}
/* Event report (U-007). */
.rp-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}
@media(min-width:851px){.rp-kpis{grid-template-columns:repeat(4,1fr)}}
.rp-kpis div{padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.rp-kpis dt{font-size:12px;color:var(--muted)}
.rp-kpis dd{margin:4px 0 0;font-size:22px;font-weight:700}
.rp-kpis small{font-size:13px;font-weight:400;color:var(--muted)}
.rp-floors h2,.rp-head h2{margin:14px 0 8px;font-size:14px}
.rp-floors ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rp-floors li{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:center;font-size:12.5px}
.rp-floors meter{width:100%;height:10px}
.rp-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rp-items{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rp-items li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.rp-items small{display:block;color:var(--muted);font-size:12px}
.rp-sev{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--raised)}
.rp-items .sev-high{border-left:4px solid var(--danger)}
.rp-items .sev-medium{border-left:4px solid var(--accent)}
@media(max-width:640px){.rp-items li{grid-template-columns:1fr}.rp-floors li{grid-template-columns:1fr auto}.rp-floors meter{grid-column:1/-1}}
/* Sign-in, first account and team accounts (U-008) */
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}
.auth-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:28px}
.auth-card .brand{padding:0 0 24px}
.auth-card h1{font-size:26px;letter-spacing:-.6px}
.auth-lead{color:var(--muted);font-size:13px;margin-top:8px}
.auth-note{margin-top:14px;font-size:12px;padding:10px 12px;border-radius:7px;background:var(--raised)}
.auth-form{display:grid;gap:14px;margin-top:22px}
.auth-form .form-error{margin:0;min-height:0}
.auth-form .form-error:empty{display:none}
.auth-foot{color:var(--muted);font-size:12px;margin-top:18px}
.auth-alt{margin:12px 0 0}
.auth-alt .btn{display:flex;justify-content:center;text-decoration:none}
.auth-code[hidden]{display:none}
.bo-warn{color:var(--danger)}
/* Online prepayment */
.py{margin-top:14px}
.py h4 small{color:var(--muted);font-weight:400}
.py-rows{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:4px;font-size:13px}
.py-rows li{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
.py-rows small{flex-basis:100%;color:var(--muted)}
.py-url{font-size:12px;overflow-wrap:anywhere}
/* E-mail outbox */
.ml-banner{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:var(--raised);font-size:13px}
.ml-banner.warn{border:1px solid var(--line)}
.ml-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ml-row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.ml-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ml-row pre{white-space:pre-wrap;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;margin:6px 0 0;color:var(--text)}
.ml-row summary{font-size:12px;cursor:pointer;margin-top:4px}
/* Many guests at once (N-01) */
.gb-title{font-size:14px;margin:12px 0 6px}
.gb-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px;max-height:40vh;overflow:auto}
.gb-list li{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.gb-list li>strong{flex:1}
.gb-list small{color:var(--muted);font-size:12px}
/* The club's menu (F-02) */
.rp-consumo{margin-top:18px}
.rp-consumo-sum{font-size:13px;color:var(--muted);margin:4px 0 10px}
.rp-products{width:100%;border-collapse:collapse;font-size:13px}
.rp-products th,.rp-products td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.rp-products td{text-align:right;white-space:nowrap}
.rp-products thead th:not(:first-child){text-align:right}
.rp-products tbody th small{display:block;color:var(--muted);font-weight:400;font-size:12px}
.mn-group{margin-top:18px}
.mn-title{font-size:15px;margin:0 0 8px}
.mn-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.mn-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.mn-row small{display:block;color:var(--muted);font-size:12px}
.mn-row.off strong{color:var(--muted)}
.ss-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.ss-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.ss-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ss-current{font-size:12px;color:var(--muted);white-space:nowrap}
.cu-2fa{color:var(--muted);font-size:12px;margin-top:4px}
.tf-steps{margin:0 0 12px;padding-left:20px;font-size:13px;display:grid;gap:4px}
.tf-secret{font-size:12px;color:var(--muted);text-align:center;overflow-wrap:anywhere}
.tf-secret code,.tf-codes code{font:600 13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text)}
.tf-codes{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tf-codes li{padding:8px 10px;border:1px solid var(--line);border-radius:8px;text-align:center}
.auth-check{display:flex;align-items:center;gap:10px;font-size:13px;min-height:44px}
.auth-check input{width:20px;height:20px;accent-color:var(--accent)}
.cu-session{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:24px}
.cu-session h2{font-size:16px}
.cu-session p{color:var(--muted);font-size:12px;margin-top:2px}
.cu-session>div:nth-child(2){flex:1;min-width:160px}
.cu-session-actions{display:flex;gap:8px;flex-wrap:wrap}
.cu-me{--club:var(--accent);width:44px;height:44px;font-size:14px;flex:none}
body.light .cu-me{background:#f5efe7;color:#684d24}
.st-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.st-row{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.st-row.off{border-style:dashed}
.st-row>div{flex:1;min-width:0;display:grid;gap:2px}
.st-row small{overflow-wrap:anywhere}
.st-off{color:var(--danger);font-weight:600}
.st-roles{display:grid;gap:8px;margin:22px 0 0;font-size:12px}
.st-roles div{display:grid;grid-template-columns:120px 1fr;gap:10px}
.st-roles dt{font-weight:600}
.st-roles dd{margin:0;color:var(--muted)}
.st-clubs{border:1px solid var(--line);border-radius:9px;padding:6px 14px 2px;margin:18px 0 0}
.st-clubs legend{font-size:11px;color:var(--muted);padding:0 6px}
.form-grid .help-inline.full{grid-column:1/-1;margin-top:-8px}
@media(max-width:560px){.st-roles div{grid-template-columns:1fr;gap:0}.form-grid .help-inline.full{margin-top:0}}
.light .auth-card .brand-mark{background:#ffd08a;color:#141416}
/* Door opened with no network (U-009) */
.dr-started{margin:10px 0;padding:10px 12px;border:1px solid var(--accent);border-radius:10px;font-size:12.5px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dr-started p{flex:1;min-width:200px}
.dt-answers{display:grid;gap:6px;margin:14px 0 0;font-size:12px}
.dt-answers div{display:flex;justify-content:space-between;gap:12px}
.dt-answers dt{color:var(--muted)}
.dt-answers dd{margin:0;text-align:right;overflow-wrap:anywhere}
.fl-plan-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.fl-plan-tools small{color:var(--muted);flex-basis:100%}
.fl-plan-upload{cursor:pointer;position:relative}
.fl-plan-upload:focus-within{outline:3px solid var(--accent);outline-offset:3px}
.fl-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* Lists report and printable list (W-017, U-014) */
.ls-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ls-report{width:100%;margin-top:14px;font-size:12px}
.ls-report caption{text-align:left;font-weight:600;padding-bottom:6px;color:var(--text)}
.ls-report th,.ls-report td{padding:7px 6px 7px 0}
.ls-report td{text-align:right}
.ls-print h3{font-size:14px;margin:14px 0 6px}
.ls-print table{font-size:11px}
.ls-print{max-height:50vh;overflow:auto}
@media print{.ls-print{max-height:none;overflow:visible}.ls-print,.ls-print *{color:#000!important;background:#fff!important}}
/* Business sign-up in three steps (W-003, U-015) */
.wz-steps{display:flex;gap:6px;list-style:none;margin:-6px 0 18px;padding:0;font-size:11px;color:var(--muted);flex-wrap:wrap}
.wz-steps li{padding:4px 9px;border:1px solid var(--line);border-radius:999px}
.wz-steps li.on{border-color:var(--accent);color:var(--text);font-weight:600}
.wz-steps li.done{color:var(--text)}
.wz-summary{display:grid;gap:8px;margin:0 0 16px;font-size:12px}
.wz-summary div{display:grid;grid-template-columns:120px 1fr;gap:10px}
.wz-summary dt{color:var(--muted)}
.wz-summary dd{margin:0;overflow-wrap:anywhere}
.wz-terms{border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:12px}
.wz-terms h3{font-size:13px;margin-bottom:6px}
.wz-terms ul{margin:0;padding-left:18px;display:grid;gap:4px}
@media(max-width:560px){.wz-summary div{grid-template-columns:1fr;gap:0}}
/* Cash close per box-office point (W-019, U-017) */
.bo-close{width:100%;font-size:12px;margin:10px 0}
.bo-close th,.bo-close td{padding:7px 6px 7px 0}
.bo-close td{text-align:right;white-space:nowrap}
.bo-close tr.mine th{color:var(--accent)}
@media(max-width:560px){.bo-close{display:block;overflow-x:auto}}
/* Table blocked for an event (U-018) */
.bk-seat.blocked{background:#3a3a40;color:#f4f4f5;border:1px dashed #a1a1aa}
.light .bk-seat.blocked{background:#e4e4e7;color:#18181b;border-color:#52525b}
/* Waitlist (U-019) */
.wl{margin-top:22px}
.wl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.wl-head h2{font-size:16px}
.wl-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wl-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.wl-row>div{flex:1;min-width:0;display:grid;gap:2px}
.wl-row small{color:var(--muted);overflow-wrap:anywhere}
.wl-pos{min-width:24px;font-weight:700;color:var(--accent);text-align:center}
.wl-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* Cash session of a point (U-020) */
.cs p{margin:6px 0 12px}
.cs-diff{color:var(--danger)}
/* Drink vouchers (U-021) */
.pt-vouchers{margin-top:12px;border-top:1px dashed #999;padding-top:10px}
.pt-voucher{display:flex;gap:10px;align-items:center;margin-top:8px}
.pt-voucher .qr-box{margin:0}
.vc .dr-result{margin-top:12px}

/* In-app notices (N-06): the bell's count and the «Avisos» list. */
.notice-bell{position:relative}
.notice-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--ink);font-size:11px;font-weight:700;line-height:18px;text-align:center}
.notice-count[hidden]{display:none}
.nt-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.nt-row{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.nt-row p{margin:2px 0;font-size:13px}
.nt-row small{color:var(--muted);font-size:12px}
.nt-new{border-color:var(--accent)}
.nt-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--raised)}
.nt-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:6px;background:var(--raised);font-size:11px;font-weight:600}
.light .notice-count{background:#ffd08a;color:#141416}
/* The bell takes the free space of the mobile header; the theme button sits right after it. */
.notice-bell.fv-circle + .fv-circle{margin-left:0}

/* The RRPP's home (N-07, N-08). */
.ri-month{display:flex;align-items:center;gap:10px;margin:4px 0 8px}
.ri-month .ri-prev .icon{transform:rotate(90deg)}
.ri-month .ri-next .icon{transform:rotate(-90deg)}
.ri-kpis small.up{display:block;color:var(--muted);font-size:12px}
.ri-kpis small.down{display:block;color:var(--muted);font-size:12px}
.ri-kpis > div > small{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.ri-types,.ri-types + section{margin-top:18px}
.ri-types h2,#ri-recent-title{font-size:16px;margin:0 0 8px}

/* Count and ranking of an event (N-04, V-10). */
.ct-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.ct-tools .ev-search{flex:1 1 180px}
.ct-cols summary{cursor:pointer;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px}
.ct-cols [role=group]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ct-chip{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.ct-chip[aria-pressed=true]{border-color:var(--fv-sel-line);background:var(--fv-sel);color:var(--fv-sel-ink)}
.ct-teams{margin-top:18px}
.ct-teams h2{font-size:16px;margin:0 0 8px}

/* The public menu's QR on the Carta page (V-01); printing it leaves only the QR and its link. */
.mn-public{display:grid;gap:12px;margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.mn-public h2{margin:0 0 4px;font-size:16px}
.mn-qr{display:grid;justify-items:start;gap:8px}
.mn-qr svg{width:180px;height:auto;padding:10px;background:#fff;border-radius:10px}
.mn-qr p{margin:0;font-size:13px;overflow-wrap:anywhere}
.mn-qr p a{display:inline-block;padding:4px 0}
.mn-qr-actions{display:flex;flex-wrap:wrap;gap:8px}
@media print{body.print-menu-qr *{visibility:hidden}body.print-menu-qr .mn-qr,body.print-menu-qr .mn-qr *{visibility:visible}body.print-menu-qr .mn-qr{position:fixed;inset:0;justify-items:center;align-content:center}body.print-menu-qr .mn-qr svg{width:70mm}body.print-menu-qr .mn-qr-actions{display:none}}

/* The change of each summary figure against the period before (N-05). */
.fv-kpi .fv-change{display:block;margin-top:4px;font-size:12px;color:var(--muted)}

/* Attendee responses (V-11). */
.as-tools{display:flex;justify-content:flex-end;margin:12px 0}
.as-card{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.as-card header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.as-card h2{margin:0;font-size:16px}
.as-card header small{color:var(--muted);font-size:12px}
.as-values{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}
.as-values li{position:relative;display:flex;justify-content:space-between;gap:10px;padding:6px 10px;border-radius:8px;overflow:hidden;font-size:13px}
.as-values li i{position:absolute;inset:0 auto 0 0;width:var(--share);background:var(--raised);z-index:0}
.as-values li span,.as-values li b{position:relative;z-index:1}
.as-card summary{cursor:pointer;font-size:13px}
/* While the cookie notice is up, the page can scroll everything above it: nothing stays unreachable underneath. */
#app:has(> .consent) .content{padding-bottom:380px}
.as-tools{gap:10px;align-items:center}
.as-tools span{margin-right:auto;font-size:13px;color:var(--muted)}

/* The organization's calendar (S-FV-01). */
.cf .cf-modules{display:flex;margin:4px 0 12px}
.cf-cal{background:var(--fv-cal)}
.cf-cal>span{background:transparent;color:var(--fv-cal-ink)}
.cf-sales>span{background:var(--fv-mod-in);color:var(--fv-mod-ink)}
.cf-tabs{display:flex;gap:4px;margin:8px 0 14px;border-bottom:1px solid var(--fv-line)}
.cf-tabs button{flex:1;padding:10px 4px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit;font-size:15px;cursor:pointer}
.cf-tabs button.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}
.cf-month h2{margin:14px 0 10px;font-size:17px}
.cf-card{margin:0 0 14px;border:1px solid var(--fv-line);border-radius:14px;background:var(--fv-card);overflow:hidden}
.cf-top{display:grid;grid-template-columns:96px 1fr;gap:12px}
.cf-art{position:relative;min-height:120px;background:var(--raised)}
.cf-art img,.cf-art .cf-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:grid;place-items:center;font-weight:700;font-size:22px}
.cf-date{position:absolute;top:0;right:0;display:grid;justify-items:center;padding:6px 8px;background:#141416;color:#fff;line-height:1.1}
.cf-date small{font-size:10px;font-weight:600}
.cf-date b{font-size:18px}
.cf-info{padding:10px 12px 12px 0;min-width:0}
.cf-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:0;color:var(--muted);font-size:12px}
.cf-meta .icon{width:13px;height:13px}
.cf-info h3{margin:6px 0 10px;font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.cf-new{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;min-height:40px;border:0;border-radius:10px;background:var(--raised);color:var(--text);font:inherit;cursor:pointer}
.cf-new:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cf-counts{display:flex;gap:8px;margin:0;padding:8px}
.cf-counts div{flex:1;padding:6px;border-radius:8px;background:var(--raised);text-align:center}
.cf-counts dt{font-size:11px;color:var(--muted)}
.cf-counts dd{margin:2px 0 0;font-weight:700}
.cf-counts .icon{width:13px;height:13px;vertical-align:-2px}

/* Customer support cases (soporte.mjs). */
.sp-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.sp-filters button[aria-pressed=true]{border-color:var(--fv-sel-line);background:var(--fv-sel);color:var(--fv-sel-ink);font-weight:600}
.sp-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sp-row{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--raised)}
.sp-row small{display:block;color:var(--muted);margin-top:2px}
.sp-high{margin-left:6px;color:var(--danger);font-size:12px}
.sp-message{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.sp-actions{display:flex;flex-wrap:wrap;gap:8px}
