:root{color:#1c1916;background:#f3eee6;font-family:"Source Sans 3",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:flex;flex-direction:column;height:100vh;background:#fff}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px 10px}.topbar-actions{display:flex;gap:8px}.topbar-lead{display:flex;align-items:center;gap:18px}.switches{display:flex;align-items:center;gap:8px}.event-switch{display:inline-flex;padding:3px;border-radius:999px;background:#e6dfd3;flex:none}.event-switch button{padding:6px 14px;border:0;border-radius:999px;background:transparent;color:#5d554b;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.event-switch button.active{background:#2b241e;color:#faf7f1}.plan-switch{background:#efe9df}.plan-switch button{padding:6px 11px;font-size:12px}.plan-switch button.active{background:#fffdf8;color:#2b241e;box-shadow:0 1px 2px #2b241e2e}.topbar h1{margin:0;font-family:Cormorant Garamond,serif;font-size:26px;font-weight:600}.topbar .sub{margin:2px 0 0;color:#6b6258;font-size:13px}.status{color:#8a8074}.status-offline,.status-unauthorized{color:#b5472a}.badge-view{margin-left:8px;padding:1px 7px;border:1px solid #d8cfc0;border-radius:999px;background:#f6f2ea;color:#6b6258;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.party-chip.static{cursor:default}.rsvp-modal{position:relative;width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:22px;background:#fffdf8;border:1px solid #e4dccf;border-radius:12px}.rsvp-modal h2{margin:0 0 8px;font-family:Cormorant Garamond,serif;font-size:24px;font-weight:600}.rsvp-modal .hint{margin-bottom:14px;line-height:1.45}.file-pick input{position:absolute;width:1px;height:1px;opacity:0}.file-pick .ghost{display:inline-block;cursor:pointer}.rsvp-plan{margin-top:14px}.rsvp-plan p{margin:0 0 8px}.rsvp-plan details{margin:6px 0}.rsvp-plan summary{cursor:pointer;font-weight:600}.rsvp-plan ul{margin:4px 0 0;padding-left:18px;max-height:160px;overflow:auto;font-size:14px}.rsvp-plan small{color:#6b6258}.merge-modal{width:min(680px,100%)}.rsvp-plan .merge-list{margin:4px 0 14px;padding:0 6px 0 0;max-height:46vh;font-size:inherit;list-style:none;border-bottom:1px solid #ece5da}.merge-row{padding:8px 0;border-top:1px solid #ece5da}.merge-row.off{opacity:.45}.merge-head{display:flex;gap:8px;align-items:baseline;cursor:pointer}.merge-options{margin:4px 0 0 22px}.merge-option{display:flex;gap:8px;align-items:baseline;font-size:14px;line-height:1.5;cursor:pointer}.merge-stale{margin-top:4px}.merge-conflict{margin:6px 0 0 22px;padding:6px 8px;background:#fbf1ec;border:1px solid #e8d3c8;border-radius:6px;font-size:13px}.rsvp{margin:-2px 0 6px;font-size:12px;color:#6b6258}.rsvp-pending,.rsvp-flag{color:#b5472a}.gate{min-height:100vh;display:grid;place-items:center;background:#f3eee6;padding:24px}.gate-panel{width:min(360px,100%);padding:28px}.gate-panel h1{margin:0;font-family:Cormorant Garamond,serif;font-size:30px;font-weight:600}.gate-panel .sub{margin:-4px 0 8px;color:#6b6258;font-size:13px}.gate-error{margin:0;color:#b5472a;font-size:13px}.workspace{display:flex;flex:1;min-height:0}.drawer{display:flex;flex-direction:column;gap:10px;width:300px;flex:0 0 auto;padding:4px 14px 14px 22px;border-right:1px solid #e4dccf;background:#fffdf8;min-height:0}.drawer.over{box-shadow:inset 0 0 0 2px #2b241e}.drawer-head{display:flex;align-items:baseline;gap:10px}.drawer-head h2{flex:1;margin:0;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600}.drawer-close{padding:2px 8px;line-height:1}.drawer-list{display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:0;flex:1}.drawer-section{margin:6px 0 0;padding:2px 0;background:none;border:0;color:#8a8074;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}.drawer-caret{display:inline-block;width:10px}.drawer-foot{position:sticky;bottom:0;padding-top:10px;border-top:1px solid #e4dccf;background:#fffdf8}.drawer-foot .ghost{width:100%}.ghost.danger{color:#b5472a;border-color:#e0b6a8}.ghost.active{background:#efe8dc;border-color:#c9bfae}.panel{display:flex;flex-direction:column;gap:10px;padding:14px;background:#fffdf8;border:1px solid #e4dccf;border-radius:10px}.panel h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#6b6258}.field{display:flex;flex-direction:column;gap:4px}.field label,.person-row span{font-size:12px;color:#6b6258}.field input,.field select,.person-row input,.person-row select{width:100%;padding:7px 8px;border:1px solid #d7cec0;border-radius:6px;background:#fff}.person-row{display:grid;grid-template-columns:1fr 110px;gap:8px;align-items:end}.primary,.ghost{border-radius:7px;padding:8px 12px}.primary{border:0;background:#2b241e;color:#faf7f1}.ghost{border:1px solid #d7cec0;background:transparent}.search{width:100%;padding:8px 10px;border:1px solid #d7cec0;border-radius:7px}.party-row{position:relative}.party-row .party-chip{width:100%}.party-row .party-chip small{padding-right:62px}.party-row.has-mark .party-chip strong{padding-right:22px}.party-mark{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:19px;height:19px;padding:0;background:#fffdf8;border:1px solid #d7cec0;border-radius:50%;color:#6b6258;font-size:13px;line-height:1;opacity:0;transition:opacity .12s}.party-row:hover .party-mark,.party-row:focus-within .party-mark{opacity:1}@media(hover:none){.party-mark{opacity:1}}.party-mark:hover{color:#b5472a;border-color:#e0b6a8}.party-ungroup{position:absolute;right:6px;bottom:6px;padding:2px 7px;border-radius:5px;font-size:11px;line-height:1.5;white-space:nowrap}.party-chip{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:#fff;border:1px solid #e4dccf;border-radius:8px;text-align:left}.party-chip-overlay{width:260px;border-color:#2b241e;box-shadow:0 10px 30px #1c191633;cursor:grabbing}.party-chip strong{font-size:14px}.party-chip small{color:#6b6258}.party-chip.muted{background:#f7f3ec;border-color:#e9e1d4}.party-chip.muted strong{color:#6b6258;font-weight:500}.party-chip.muted small{color:#8a8074}.party-chip.selected,.party-chip:focus-visible{border-color:#2b241e;box-shadow:0 0 0 2px #2b241e22}.empty{margin:0;color:#8a8074;font-size:13px}.canvas{flex:1;min-height:0;padding:0;overflow:hidden}.floor-viewport{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none;overscroll-behavior:none;container-type:size}.floor-world{position:absolute;inset:0;transform-origin:center center}@property --pt{syntax: "<length>"; inherits: true; initial-value: 1px;}.floor-wrap{--page-w: 612;--page-h: 792;--seat: 11.7;--page-px: min( calc(100cqw - 24px) , calc((100cqh - 24px) * var(--page-w) / var(--page-h)));--pt: calc(var(--page-px) / var(--page-w));position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--page-px);aspect-ratio:var(--page-w) / var(--page-h)}.floor-image{display:block;width:100%;height:100%}.table-node{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible}.table-node.rect{border-radius:calc(var(--pt) * 2)}.seat{position:absolute;width:calc(var(--pt) * var(--seat));height:calc(var(--pt) * var(--seat));padding:0;border:1px solid #b7b0a4;border-radius:50%;background:#fffdf8;display:grid;place-items:center;transform:translate(-50%,-50%)}.seat.filled{background:#efe8dc;border-color:#2b241e;cursor:grab;touch-action:none}.seat.over{box-shadow:0 0 0 2px #2b241e;background:#fff}.seat:hover{z-index:30}.table-node:hover{z-index:5}.seat.dragging{opacity:.35}.seat.dragging:after{display:none}.seat-overlay{padding:6px 10px;border-radius:999px;background:#2b241e;color:#faf7f1;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 8px 24px #1c191633;cursor:grabbing}.table-node .num{position:relative;cursor:default;-webkit-user-select:none;user-select:none}.table-node .num[data-theme]:hover:after{content:attr(data-theme);font-family:"Source Sans 3",sans-serif;position:absolute;left:50%;bottom:calc(100% + var(--pt) * 2);transform:translate(-50%);padding:calc(var(--pt) * 2.4) calc(var(--pt) * 4.4);border-radius:calc(var(--pt) * 2.4);background:#2b241e;color:#faf7f1;font-size:calc(var(--pt) * 5.8);font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;z-index:20}.seat[data-name]:hover:after{content:attr(data-name);position:absolute;left:50%;bottom:calc(100% + var(--pt) * 2);transform:translate(-50%);padding:calc(var(--pt) * 2) calc(var(--pt) * 3.4);border-radius:calc(var(--pt) * 2.4);background:#2b241e;color:#faf7f1;font-size:calc(var(--pt) * 5.3);font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;z-index:20}.seat-name{max-width:88%;overflow:hidden;color:#2b241e;font-size:calc(var(--pt) * 5.3);font-weight:600;line-height:1;text-align:center;text-overflow:ellipsis;white-space:nowrap}.table-node.over{box-shadow:inset 0 0 0 3px #2b241e}.table-node.warn{background:#f8ebe3;box-shadow:inset 0 0 0 2px #c07a4a}.table-node .num{display:flex;flex-direction:column;align-items:center;gap:calc(var(--pt) * 1.5);text-align:center;font-family:Cormorant Garamond,serif;font-size:calc(var(--pt) * 16.5);font-weight:600;line-height:1}.table-lock{display:block;flex:none;width:.46em;height:.54em}.table-node.locked .seat.filled{cursor:pointer}.table-card.locked{background:#f3eee6}.table-modal{width:min(1400px,100%);height:calc(100vh - 48px);overflow:auto;padding:24px 32px 32px;background:#fffdf8;border:1px solid #e4dccf;border-radius:12px}.table-modal-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:12px}.table-modal-title{display:flex;flex-direction:column;gap:6px}.table-theme{display:flex;align-items:center;gap:8px;font-size:13px;color:#6b6258}.switch{display:flex;align-self:flex-start;align-items:center;gap:8px;font-size:13px;color:#6b6258;cursor:pointer}.switch input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{position:relative;flex:none;width:34px;height:20px;background:#e4dccf;border-radius:10px;transition:background .15s}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fffdf8;border-radius:50%;box-shadow:0 1px 2px #1c191633;transition:transform .15s}.switch input:checked+.switch-track{background:#2b241e}.switch input:checked+.switch-track:after{transform:translate(14px)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 2px #2b241e33}.table-theme input{width:260px;padding:6px 8px;border:1px solid #d7cec0;border-radius:6px;background:#fff;font-size:14px;color:#1c1916}.zoom-table em{font-family:"Source Sans 3",sans-serif;font-size:14px;font-style:normal;font-weight:500;color:#2b241e;max-width:85%;text-align:center}.table-modal-head h2{margin:0;font-family:Cormorant Garamond,serif;font-size:28px;font-weight:600}.table-modal-spacer{flex:1}.table-number-edit input{width:3ch;margin-left:8px;padding:0 4px;border:0;border-bottom:2px solid #d7cec0;background:transparent;font:inherit;text-align:center}.table-number-edit input:focus{outline:none;border-bottom-color:#2b241e}.table-modal-body{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,560px);gap:40px;align-items:center;min-height:calc(100% - 64px)}@media(max-width:960px){.table-modal-body{grid-template-columns:1fr;min-height:0}.zoom-ring{width:min(100%,560px)}}.table-modal .index-card{width:100%;padding:44px 48px 36px;box-shadow:none}.table-modal .index-card h3{font-size:40px}.table-modal .index-card .head,.table-modal .index-card li,.table-modal .index-card .totals{font-size:21px}.zoom-pane{display:flex;flex-direction:column;align-self:stretch;min-width:0}.zoom-controls{display:flex;gap:8px;margin-top:auto;padding-top:12px}.table-move{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:#6b6258}.table-move select{min-width:10em;padding:7px 8px;border:1px solid #d7cec0;border-radius:6px;background:#fff}.table-note{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:13px;color:#6b6258}.table-note textarea{padding:7px 8px;border:1px solid #d7cec0;border-radius:6px;background:#fff;color:#1c1916;resize:vertical}.zoom-ring{position:relative;width:min(100%,calc(100vh - 260px));aspect-ratio:1;margin:0 auto;container-type:inline-size}.zoom-table{position:absolute;left:50%;top:50%;width:52%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#e9edf0;border:2px solid #77787a;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Cormorant Garamond,serif;font-size:32px;font-weight:600}.zoom-ring.sweetheart .zoom-table{width:56%;top:44%;border-radius:14px;aspect-ratio:3}.zoom-ring.rect .zoom-table{border-radius:14px;aspect-ratio:var(--aspect, 3);font-size:26px}.zoom-seat.locked .zoom-seat-chip{cursor:pointer}.zoom-table small{font-family:"Source Sans 3",sans-serif;font-size:12px;font-weight:400;color:#6b6258}.zoom-seat{position:absolute;width:19%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%}.zoom-seat.over{box-shadow:0 0 0 3px #2b241e}.zoom-seat-chip{width:100%;height:100%;padding:4px 6px;border:1px solid #b7b0a4;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:grab;touch-action:none}.zoom-seat.empty .zoom-seat-chip{border-style:dashed;background:#fffdf8;cursor:pointer}.zoom-seat.filled .zoom-seat-chip{background:#efe8dc;border-color:#2b241e}.zoom-seat-no{font-size:11px;color:#8a8074}.zoom-seat-name{max-width:100%;overflow:hidden;font-size:12px;font-weight:600;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap}.zoom-seat.filled:hover{z-index:30}.zoom-seat-chip[data-name]:hover:after{content:attr(data-name);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);padding:5px 9px;border-radius:6px;background:#2b241e;color:#faf7f1;font-size:13px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:30}.zoom-seat-chip{position:relative}.zoom-seat-name.muted{font-weight:400;color:#8a8074}.zoom-seat-meal{font-size:12px;color:#6b6258}.close-writein{margin-top:10px;width:100%}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:#1c191655;padding:24px;z-index:10}.writein-modal,.seat-modal{width:min(380px,100%)}.seat-modal{position:relative;padding:22px;background:#fffdf8;border:1px solid #e4dccf;border-radius:12px}.modal-x{position:absolute;top:12px;right:12px;width:32px;height:32px;padding:0;font-size:20px;line-height:1}.seat-modal h2{margin:0 0 14px;font-family:Cormorant Garamond,serif;font-size:24px;font-weight:600}.seat-options{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}.seat-options button{width:100%;display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid #e4dccf;border-radius:8px;background:#fff;text-align:left}.seat-options button:hover,.seat-options button:focus-visible{border-color:#2b241e}.seat-options button.seat-add{background:#efe8dc}.seat-options small{color:#6b6258}.seat-options .empty{padding:8px 2px}.seat-confirm p{margin:0 0 6px;line-height:1.45}.seat-modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.index-card{width:min(520px,100%);padding:36px 40px 28px;background:#fffdf6;border:1px solid #d7cec0;box-shadow:0 16px 40px #1c191622}.index-card h3{margin:0;font-family:Cormorant Garamond,serif;font-size:34px;font-weight:500;font-style:italic;text-align:center}.index-card .one{margin:0 0 22px;text-align:center;color:#6b6258}.index-card .head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:18px}.index-card ul{margin:0;padding:0;list-style:none}.index-card li,.index-card .totals{padding:8px 0;border-bottom:1px solid #1c1916;font-size:18px}.index-card .card-note{display:block;font-weight:600;font-size:.85em}.index-card .close{margin-top:18px}.hint{margin:0;color:#8a8074;font-size:12px}.menu{position:relative}.menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:15;display:flex;flex-direction:column;min-width:190px;padding:6px;background:#fffdf8;border:1px solid #e4dccf;border-radius:10px;box-shadow:0 10px 30px #1c191622}.menu-list button{padding:10px 12px;border:0;border-radius:6px;background:transparent;text-align:left}.menu-list button:hover{background:#efe8dc}.menu-list button small{display:block;color:#6b6258;font-size:12px}.phone-tabs{display:flex;gap:4px;padding:0 14px 8px}.phone-tabs button{flex:1;padding:8px;border:1px solid #d7cec0;border-radius:8px;background:transparent;font-weight:500}.phone-tabs button.active{background:#2b241e;border-color:#2b241e;color:#faf7f1}.canvas.list{overflow:auto;padding:0 14px 24px}.table-list{display:flex;flex-direction:column;gap:8px}.table-list-prompt{margin:0 0 4px;padding:10px 12px;background:#efe8dc;border-radius:8px;font-size:14px}.table-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid #e4dccf;border-radius:10px;background:#fffdf8;text-align:left}.table-card.target{border-color:#2b241e;border-style:dashed}.table-card-head{display:flex;justify-content:space-between;align-items:baseline}.table-card-head strong{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600}.table-card-head span{color:#6b6258;font-size:13px}.table-card em{font-style:normal;color:#6b6258;font-size:13px}.table-card-people{display:flex;flex-wrap:wrap;gap:4px}.table-card-person{min-width:30px;padding:4px 6px;border:1px solid #2b241e;border-radius:999px;background:#efe8dc;font-size:12px;font-weight:600;text-align:center}@media(max-width:720px){.topbar{padding:10px 14px 8px;align-items:flex-start}.topbar-lead{flex-direction:column;align-items:flex-start;gap:6px}.event-switch button{padding:4px 11px;font-size:12px}.topbar h1{font-size:22px}.topbar .sub{font-size:12px}.workspace{position:relative}.drawer{position:fixed;left:0;right:0;bottom:0;z-index:12;width:auto;height:72vh;padding:12px 14px 14px;border-right:0;border-top:1px solid #e4dccf;border-radius:16px 16px 0 0;box-shadow:0 -12px 40px #1c191633}.table-modal{width:100%;height:100%;max-height:none;padding:16px 14px 24px;border-radius:0}.modal-backdrop{padding:0}.modal-backdrop .seat-modal,.modal-backdrop .writein-modal{margin:16px}.table-modal-head{position:relative;padding-right:90px}.table-modal-head>.ghost{position:absolute;top:0;right:0}.table-theme input{width:180px}.zoom-ring{width:min(100%,92vw)}.table-modal .index-card{padding:28px 22px 22px}.table-modal .index-card h3{font-size:30px}.table-modal .index-card .head,.table-modal .index-card li,.table-modal .index-card .totals{font-size:17px}.seat[data-name]:hover:after,.table-node .num[data-theme]:hover:after{display:none}}input[readonly],textarea[readonly],select:disabled{background:#f4efe6;color:#4a443d;border-color:#e4dccf;cursor:default}
