.experience{color:var(--text-primary,#f4f1ec)}
.experience h3{font-family:var(--font-display,serif);font-size:24px;margin:0 0 8px}
.exp-muted{color:var(--text-muted,#aaa);font-size:13px;line-height:1.6;margin-bottom:16px}
.exp-toolbar,.exp-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.experience button,.experience .exp-link{min-height:44px;border:1px solid #ffffff30;border-radius:10px;background:#ffffff0b;color:inherit;padding:10px 14px;cursor:pointer;font:inherit;text-decoration:none}
.experience button:hover,.experience .exp-link:hover{border-color:var(--rosa,#dcbd93)}
.experience button:focus-visible,.experience input:focus-visible,.experience select:focus-visible{outline:3px solid #d8b77b;outline-offset:3px}
.experience button:disabled{opacity:.45;cursor:wait}
.experience label{display:grid;gap:6px;font-size:13px;min-width:0}
.experience input,.experience select,.experience textarea{width:100%;min-width:0;min-height:44px;border:1px solid #ffffff30;border-radius:8px;background:#202326;color:#fff;padding:10px;font:inherit;box-sizing:border-box}
.exp-error,.exp-notice{border:1px solid #d8b77b70;background:#d8b7710c;border-radius:10px;padding:12px;margin:12px 0;line-height:1.5}
.exp-error{border-color:#ef9e9e;color:#ffd2d2}
.exp-board-wrap{overflow:auto;border:1px solid #ffffff20;border-radius:16px;background:radial-gradient(#ffffff12 1px,transparent 1px);background-size:20px 20px}
.exp-board{position:relative;width:900px;min-width:900px;height:650px}
.exp-table{position:absolute;width:142px;height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#22282c!important;border-radius:45px!important;box-shadow:0 5px 15px #0004}
.exp-table small{font-size:12px;margin-top:6px;color:#e3cba6}.exp-table.selected{border:2px solid #dfb781}.exp-table.full{background:#3b3030!important}
.exp-table[draggable=true]{cursor:grab}.exp-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.exp-card{padding:16px;border:1px solid #ffffff20;border-radius:12px;min-width:0;background:#ffffff04}
.exp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.exp-wide{grid-column:1/-1}
.exp-guest{padding:10px 0;border-bottom:1px solid #ffffff16;display:flex;gap:10px;align-items:center;justify-content:space-between}.exp-guest>span{min-width:0;overflow-wrap:anywhere}.exp-guest select{width:140px;flex-shrink:0}
.exp-program{margin:14px 0;padding:16px;border:1px solid #ffffff20;border-left:3px solid #d8b77b;border-radius:10px}.exp-program h4{font-size:17px;margin:8px 0}.exp-program.completed{opacity:.7;border-left-color:#8ac5a3}.exp-program.in_progress{border-left-color:#8fbedc}
.exp-status{font-size:12px;letter-spacing:.04em;color:#dfc498}.exp-camera{width:100%;max-height:260px;background:#111;border-radius:12px}
@media(max-width:600px){.exp-columns{grid-template-columns:1fr}.exp-form{grid-template-columns:1fr}.exp-wide{grid-column:auto}.exp-board-wrap{max-width:100%}.exp-guest{align-items:flex-start}.experience h3{font-size:22px}.exp-toolbar button{flex:1}.exp-table{touch-action:pan-x pan-y}}
/* Seating plan: the salon seen from above. Square tables, round people, room drawn after the Villaverde render. */
#S2:has(#p-mesas.active) main{max-width:1280px;width:100%;box-sizing:border-box}
body:has(#p-mesas.active) #wF{display:none!important}
/* The active panel keeps transform:translateY(0), which would anchor the fixed move bar to the panel instead of the screen. */
#p-mesas.pn.active{transform:none;animation:none}
/* With someone picked, keyboard focus scrolls clear of the fixed move bar. */
html:has(#p-mesas.active #tB.has-pick){scroll-padding-bottom:260px}
.exp-plan-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:24px 0 12px}.exp-plan-heading h3{font-size:32px;margin:6px 0 8px}.exp-eyebrow{font-size:10px;letter-spacing:.18em;color:#ddc49c}.exp-plan-heading .exp-muted{max-width:640px}.exp-plan-count{font-size:12px;color:#ddc49c;text-align:right;max-width:220px;padding-top:26px;line-height:1.5}
.exp-seating-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.exp-plan-surface{min-width:0;background:#f3efe5;color:#393c31;border-radius:16px;overflow:hidden;border:1px solid #cfbea0}
.exp-plan-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border-bottom:1px solid #d8d1c2;background:#faf7ef}.exp-plan-tools button{background:#faf7ef;color:#444737;border-color:#c8c5b4;min-height:44px;padding:7px 12px}.exp-plan-tools label{display:flex;align-items:center;gap:7px}.exp-plan-tools select{width:110px;background:#fffdf6;color:#393c31;border-color:#c8c5b4;min-height:44px}
.exp-zoom{display:flex;align-items:center;gap:6px;margin-left:auto}.exp-zoom output{width:44px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}.exp-zoom button[aria-label]{width:44px;font-size:18px;line-height:1}
/* The notice floats over the top of the plan: showing it never pushes the board down. */
.exp-plan-stage{position:relative}
#seat-message{position:absolute;left:10px;right:10px;top:10px;z-index:8;margin:0;border-radius:10px;border:1px solid #d8c79f;background:#f7efdbf2;color:#4a4331;font-size:13px;box-shadow:0 6px 16px #5a472833;pointer-events:none}#seat-message.exp-error{background:#fbe3dff2;color:#8a2c22;border-color:#e7b6ad}#seat-message[hidden]{display:none}
.exp-plan-viewport{overflow:auto;max-height:70vh;min-height:360px;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#e8e1d3;scrollbar-color:#c8bd9e #eee9dc}.exp-plan-size{position:relative;margin:0 auto}
.exp-board.exp-floor{position:relative;transform-origin:0 0;background:#e8e1d3}
.exp-room{position:absolute;box-sizing:content-box;border-style:solid;border-color:#fbf8f1;background-color:#efe8da;background-image:linear-gradient(#e3dac8 1px,transparent 1px),linear-gradient(90deg,#e3dac8 1px,transparent 1px);background-size:50px 50px;box-shadow:0 0 0 1px #d6cbb5,0 22px 44px #5a47282e}
.exp-room-window,.exp-room-door{position:absolute;top:-12px;height:12px;width:48px;transform:translateX(-50%);background:linear-gradient(#dfe8eb,#c5d3d8);box-shadow:inset 0 0 0 2px #fbf8f1}.exp-room-door{left:50%;width:96px;background:linear-gradient(#e7eef0,#cbd8dc)}
.exp-room-screen{position:absolute;left:-12px;top:33%;width:12px;height:18%;background:#2d2e31;box-shadow:inset 0 0 0 2px #454649}
.exp-room-drapes{position:absolute;right:-12px;top:50%;width:12px;height:24%;background:repeating-linear-gradient(180deg,#ecdcb4 0 6px,#d7bd8b 6px 9px)}
.exp-room-opening{position:absolute;left:40%;bottom:-12px;width:20%;height:12px;background:#efe8da}
.exp-pista{position:absolute;display:grid;place-items:center;background:#e6dac1;border:2px solid #d4c29d;box-shadow:inset 0 0 0 8px #ebe1cc,inset 0 0 0 9px #d9c9a6;z-index:0}.exp-pista span{font-size:15px;letter-spacing:.34em;color:#665838;font-weight:600;text-align:center;transform:scale(max(1,calc(.45 / var(--z,1))))}
.exp-chandelier{position:absolute;left:50%;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff8e2 0 25%,#e4bf6c 55%,#bf8f3f 100%);box-shadow:0 0 22px 10px #f4d88c4d;z-index:0;pointer-events:none}
.exp-stairs{position:absolute;width:200px;transform:translateX(-50%);background:repeating-linear-gradient(180deg,#f7f2e8 0 10px,#d9cfbb 10px 12px);border-left:7px solid #f3e8cd;border-right:7px solid #f3e8cd;box-shadow:0 8px 16px #5a472820}
.exp-board-label{position:absolute;transform:translateX(-50%) scale(max(1,calc(.45 / var(--z,1))));transform-origin:50% 0;font-size:13px;letter-spacing:.3em;color:#5e5340;font-weight:600;pointer-events:none}.exp-board-label-vertical{writing-mode:vertical-rl;transform:translate(-50%,-50%) rotate(180deg) scale(max(1,calc(.45 / var(--z,1))));transform-origin:50% 50%}
.exp-table-group{position:absolute;width:0;height:0;transform:scale(var(--s,1));transform-origin:0 0;z-index:2}
.experience .exp-table-group .exp-table{position:absolute;left:0;top:0;transform:translate(-50%,-50%);min-height:0;padding:0;display:grid;place-items:center;border-radius:8px!important;background:linear-gradient(145deg,#fdfaf3,#efe5cf)!important;color:#3b2d17;border:1px solid #d3c29c;box-shadow:0 12px 20px #5a472824,0 2px 4px #5a47281f,inset 0 0 0 6px #f8f2e5,inset 0 0 0 7px #e0d2b1;cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.exp-table-plate{min-width:36px;height:26px;padding:0 9px;border-radius:6px;background:linear-gradient(135deg,#ecd394,#c3964d 55%,#e6c77f);color:#3b2d17;font:600 15px/26px var(--font-display,serif);box-shadow:0 1px 3px #6a4d2240,inset 0 1px 0 #fff7;transform:scale(max(1,calc(.5 / var(--z,1))))}
.exp-table-group.full .exp-table-plate{background:linear-gradient(135deg,#b9d4b5,#6f9a6e 55%,#a9c9a4);color:#12261a}
.experience .exp-table-group.selected .exp-table{outline:3px dashed #9c7b3e;outline-offset:6px}
.experience .exp-table-group.clash .exp-table{box-shadow:0 0 0 3px #c0504d,0 12px 20px #5a472824}
.exp-clash-note{font-size:12px;line-height:1.5;color:#ffd2d2;background:#c0504d22;border:1px solid #ef9e9e66;border-radius:8px;padding:8px 10px;margin:0 0 10px}
.experience .exp-table-group.drop-ready .exp-table{outline:4px solid #6c8556;outline-offset:6px;background:linear-gradient(145deg,#f1f7e8,#dfead0)!important}
.experience .exp-table-group.drop-bad .exp-table{outline:4px solid #c0504d;outline-offset:6px}
.experience .exp-table.lifted{box-shadow:0 22px 40px #5a472855!important}
.experience button.exp-person,.experience button.exp-empty-seat{position:absolute;width:26px;height:26px;min-height:0;padding:0;border-radius:50%;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.exp-person::after,.exp-empty-seat::after{content:'';position:absolute;inset:-4px;border-radius:50%}
.experience button.exp-person{background:var(--person-color);border:2px solid #fffdf8;box-shadow:0 3px 5px #4a3b2240,inset 0 -3px 5px #0000001f,inset 0 2px 3px #ffffff59;cursor:grab;z-index:3;transition:transform .12s ease}
.experience button.exp-person.companion::before{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:#fffdf8}
.experience button.exp-person:hover,.experience button.exp-person:focus-visible,.experience button.exp-person.picked{transform:translate(-50%,-50%) scale(1.25);z-index:6}
.experience button.exp-person.picked{outline:3px solid #c92f70;outline-offset:2px}
.experience button.exp-person.match{outline:3px solid #c92f70;outline-offset:3px;animation:expPulse 1.4s ease-in-out infinite}
.experience button.exp-person.lifted{transform:translate(-50%,-50%) scale(1.5);box-shadow:0 10px 18px #4a3b2266}
@keyframes expPulse{50%{outline-offset:7px;outline-color:#c92f7055}}
.experience button.exp-empty-seat{background:#efe8da;border:2px solid #857960;box-shadow:none;z-index:2;cursor:pointer;font-size:10px;font-weight:600;color:#3f4a32}
.exp-empty-seat span{display:none}
.exp-board.is-moving .exp-empty-seat{background:#e8f0dc;border-color:#6c8556}.exp-board.is-moving .exp-empty-seat span{display:block}
.exp-board.is-moving .exp-table-group.no-fit .exp-empty-seat{background:#e5ddcd;border-color:#b3a88f;opacity:.55}.exp-board.is-moving .exp-table-group.no-fit .exp-empty-seat span{display:none}.exp-table-group.no-fit .exp-table{opacity:.7}
.experience button.exp-empty-seat:hover,.experience button.exp-empty-seat.drop-ready{background:#cfe2b8;outline:3px solid #6c8556;outline-offset:1px}
.experience button.exp-person.drop-ready{outline:3px solid #6c8556;outline-offset:3px}
.experience button.exp-empty-seat.drop-bad,.experience button.exp-person.drop-bad{outline:3px solid #c0504d;outline-offset:2px}
.exp-plan-legend{display:flex;gap:8px 16px;padding:12px;font-size:11px;color:#716952;border-top:1px solid #dbd3c2;flex-wrap:wrap;align-items:center}.exp-plan-legend>span{display:inline-flex;align-items:center;gap:5px}
.exp-dot{position:relative;display:inline-block;width:11px;height:11px;border-radius:50%;background:#a6a2e2;border:1px solid #fffdf8;box-shadow:0 1px 2px #4a3b2240}.exp-dot.companion::before{content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#fffdf8}.exp-dot.empty{background:#efe8da;border:1.5px solid #857960;box-shadow:none}
.exp-plate-mini{display:inline-block;width:16px;height:11px;border-radius:3px;background:linear-gradient(135deg,#ecd394,#c3964d 55%,#e6c77f)}.exp-plate-mini.full{background:linear-gradient(135deg,#b9d4b5,#6f9a6e 55%,#a9c9a4)}
.exp-seat-card{position:fixed;z-index:10000;pointer-events:none;min-width:150px;max-width:240px;background:#2b2724;color:#f6efe3;border-radius:12px;padding:10px 14px 11px;box-shadow:0 12px 30px #0006;transform:translate(-50%,calc(-100% - 14px));font-family:inherit}.exp-seat-card.below{transform:translate(-50%,14px)}.exp-seat-card[hidden]{display:none}
.exp-seat-card strong{display:block;font-family:var(--font-display,serif);font-size:16px;font-weight:600;line-height:1.25}.exp-seat-card small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#d8b77b;margin-top:4px}.exp-seat-card span{display:block;font-size:12px;color:#d5ccbc;margin-top:6px}
.exp-sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px}.exp-sidebar-heading h4{font-size:17px;margin:0}.exp-sidebar-heading>span{font-size:12px;color:#cbbca1}
.exp-unassigned,.exp-table-inspector{padding:17px;border:1px solid #ffffff24;border-radius:12px;background:#ffffff04}.exp-table-inspector{margin-top:16px}.exp-unassigned.drop-ready{border-color:#b4c88f;background:#82985c22}
.exp-search-label{margin-bottom:8px}.exp-search-hint{font-size:12px;color:#e3b3c6;margin:0 0 10px}.exp-free-list{max-height:300px;overflow:auto}.exp-drop-hint{font-size:11px;color:#b9ae9c;margin-top:16px}
.exp-seat-sidebar .exp-guest{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 0}
.experience .exp-guest-pick{display:flex;align-items:center;gap:9px;flex:1;text-align:left;border:0;background:transparent;padding:0;min-width:0;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.exp-guest-pick b{background:var(--person-color);color:#2b2724;border-radius:50%;min-width:34px;height:34px;display:grid;place-items:center;font-size:12px}
.exp-guest-pick span{font-size:13px;overflow-wrap:anywhere;min-width:0}.exp-guest-pick small{display:block;font-size:11px;color:#bdb6a7;margin-top:3px}
.experience .exp-guest-pick.lifted{opacity:.6}
.exp-seat-sidebar .exp-guest select{width:100%;font-size:12px;min-height:44px;padding:6px}
.exp-table-inspector details{margin-top:15px;border-top:1px solid #ffffff20;padding-top:14px}.exp-table-inspector summary{cursor:pointer;font-size:13px;padding:5px 0;color:#d7c2a0}.exp-table-inspector .exp-form{grid-template-columns:1fr;margin-top:14px}
.exp-move-bar{position:fixed;left:50%;bottom:calc(var(--nav-height,64px) + env(safe-area-inset-bottom,0px) + 8px);transform:translateX(-50%);width:min(760px,calc(100% - 16px));box-sizing:border-box;z-index:120;background:#f0e5cc;color:#333e2c;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px 12px;padding:14px;border:1px solid #d6bd8f;border-radius:12px;margin:0;box-shadow:0 10px 30px #0005}
#tB.has-pick{padding-bottom:130px}
/* The global toast only shows text: it never takes taps (visible or fading), is wide enough to read on a
   phone, and moves to the top of the screen while the move bar is open so it never covers Mover/Cancelar. */
.toast{pointer-events:none;width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box}
body:has(#p-mesas.active #tB.has-pick) .toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 12px);transform:translateX(-50%) translateY(-80px)}
body:has(#p-mesas.active #tB.has-pick) .toast.show{transform:translateX(-50%) translateY(0)}
.exp-move-title{align-self:center;min-width:0}.exp-move-title strong{display:block;font-size:15px;overflow-wrap:anywhere}.exp-move-title span{display:block;font-size:12px;margin-top:3px;color:#5b5a46}
.exp-move-bar label{font-size:12px;color:#4a4a37}.exp-move-bar select{background:#fffcf3;color:#333e2c;border-color:#bdb294;width:100%}
.exp-move-actions{display:flex;gap:8px}.exp-move-bar button{color:#333e2c;border-color:#bdb294;background:#fffaf0}.exp-move-bar #move-picked{background:#526c48;color:#fffaf0;border-color:#526c48}
.exp-drag-ghost{position:fixed;z-index:99999;pointer-events:none;transform:translate(-50%,-140%);max-width:220px;background:#365337;color:#fff9ed;padding:10px 14px;border-radius:12px;box-shadow:0 6px 24px #0003;font:13px sans-serif}
.exp-guest[hidden]{display:none}.experience textarea:focus-visible{outline:3px solid #d8b77b;outline-offset:3px}
.exp-reception-table{margin:12px 0 0;padding:14px 16px;border-radius:12px;background:#1f3a2b;border:1px solid #6fae84;color:#e9fbef;font-size:20px;font-weight:700;letter-spacing:.04em;line-height:1.35}.exp-reception-table.exp-reception-missing{background:#3d2e14;border-color:#d8a24a;color:#ffe4b0;font-size:16px}.exp-reception-table[hidden]{display:none}
@media(max-width:900px){.exp-seating-layout{grid-template-columns:1fr}.exp-seat-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px}.exp-table-inspector{margin-top:0}.exp-plan-count{display:none}.exp-move-bar{grid-template-columns:1fr 1fr}.exp-move-title,.exp-move-actions{grid-column:1/-1}.exp-move-actions button{flex:1}#tB.has-pick{padding-bottom:230px}}
@media(max-width:600px){.exp-plan-heading h3{font-size:27px}.exp-plan-heading{margin-top:16px}.exp-seat-sidebar{grid-template-columns:1fr}.exp-plan-tools{gap:8px}.exp-plan-tools label{flex:1}.exp-plan-tools select{width:100%}.exp-zoom{width:100%;justify-content:flex-end}.exp-plan-viewport{max-height:62vh;min-height:340px}.exp-move-bar{padding:10px;gap:8px}.exp-move-title strong{font-size:14px}.exp-move-title span{margin-top:1px}.exp-plan-legend{line-height:1.5}.exp-free-list{max-height:230px}}
/* Focus ring readable on the cream floor (dark ring, light halo), also on the selected table. */
.experience .exp-plan-surface button:focus-visible{outline:3px solid #2b2724;outline-offset:3px;box-shadow:0 0 0 3px #fffdf8}
.experience .exp-table-group.selected .exp-table:focus-visible{outline:3px solid #2b2724}
@media(prefers-reduced-motion:reduce){.experience button.exp-person{transition:none}.experience button.exp-person.match{animation:none}}
