:root{color:#493522;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#493522;--muted:#7e6b57;--faint:#9a8978;--line:#a7742f40;--line-strong:#a7742f75;--surface:#fffdf8;--surface-soft:#f8f1e5;--green:#476f5d;--green-dark:#335447;--green-soft:#edf4ef;--red:#a84950;--red-soft:#faeceb;--gold:#b17a32;--gold-soft:#fbf1df;--bride:#a45564;--groom:#39748a;--shared:#7a638e;--other:#6f736c;letter-spacing:0;background:#f4ead8;font-family:Noto Serif TC,PingFang TC,Microsoft JhengHei,serif}*{box-sizing:border-box;letter-spacing:0}html{background:#f4ead8;min-width:320px}body{background:linear-gradient(90deg,#faf4e7e0,#fffaf0b8 50%,#faf4e7e0),url(https://li-han-wedding.pages.dev/assets/photos/live/wedding-live-bg.webp) 50%/cover fixed;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.38}.app-shell{min-height:100vh;overflow-x:clip}.app-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffbf2f0;grid-template-columns:minmax(230px,1fr) auto minmax(340px,1fr);align-items:center;gap:24px;min-height:82px;padding:11px 22px;display:grid;position:relative;box-shadow:0 8px 28px #603e1a14}.brand-block{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{border:1px solid var(--gold);color:#8b5c22;background:#fffdf8b8;border-radius:4px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-family:Cormorant Garamond,Georgia,serif;font-size:13px;font-weight:700;display:grid}.brand-block h1,.brand-block p,.workspace-heading h2,.sidebar-heading h2,.report-heading h2,.party-inspector h2{margin:0}.brand-block h1{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:600;line-height:1.3;overflow:hidden}.brand-block p{color:var(--gold);margin-top:2px;font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:12px;font-weight:600}.brand-mascots{object-fit:contain;filter:drop-shadow(0 7px 7px #462c1326);flex:0 0 62px;width:62px;height:50px;margin-left:4px;display:block}.header-stats{border:1px solid var(--line);background:#fffdf8b3;border-radius:6px;align-items:stretch;display:flex}.header-stats div{text-align:center;min-width:76px;padding:7px 14px;display:grid}.header-stats div+div{border-left:1px solid var(--line)}.header-stats strong{color:var(--ink);font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:20px;line-height:1.1}.header-stats span{color:var(--muted);margin-top:3px;font-size:11px}.header-stats .stat-alert strong{color:var(--red)}.header-stats .stat-muted strong{color:var(--muted)}.header-actions{justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.icon-button,.command-button,.view-tabs button,.side-filter button,.stepper button,.large-stepper button{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.icon-button{border-radius:5px;flex:0 0 36px;width:36px;height:36px;padding:0}.icon-button:hover:not(:disabled),.command-button.secondary:hover:not(:disabled){border-color:var(--gold);background:var(--gold-soft)}.icon-button.subtle{width:30px;height:30px;color:var(--muted);background:0 0;border-color:#0000;flex-basis:30px}.command-button{white-space:nowrap;border-radius:5px;gap:7px;min-height:36px;padding:0 12px;font-size:13px;font-weight:700}.command-button.primary{border-color:var(--green);background:var(--green);color:#fff}.command-button.primary:hover{border-color:var(--green-dark);background:var(--green-dark)}.command-button.secondary{color:var(--ink)}.command-button.full{width:100%;min-height:42px}.action-divider{background:var(--line);width:1px;height:24px;margin:0 2px}.view-tabs{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf5eb;justify-content:center;align-items:flex-end;gap:4px;min-height:48px;padding:7px 18px 0;display:flex}.view-tabs button{min-height:40px;color:var(--muted);border:0;border-radius:0;gap:7px;padding:0 18px;font-size:13px;font-weight:650;position:relative}.view-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.view-tabs button:hover,.view-tabs button.active{color:#8b5c22}.view-tabs button.active:after{background:var(--gold)}.cloud-sync-bar{min-height:44px;color:var(--green-dark);background:#edf4eff2;border-bottom:1px solid #c9d9d0;align-items:center;gap:10px;padding:6px 18px;display:flex}.cloud-sync-bar.cloud-offline,.cloud-sync-bar.cloud-conflict{background:var(--gold-soft);color:#6a4b16;border-bottom-color:#ead29f}.cloud-sync-icon{background:#fffdf8cc;border-radius:50%;flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid}.cloud-sync-copy{min-width:150px;line-height:1.15;display:grid}.cloud-sync-copy strong{font-size:12px}.cloud-sync-copy small{color:currentColor;opacity:.72;margin-top:3px;font-size:10px}.editor-name-field{white-space:nowrap;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:flex}.editor-name-field input{background:var(--surface);width:106px;min-height:28px;color:var(--ink);border:1px solid #b8cbc4;border-radius:4px;padding:3px 7px;font-size:11px}.cloud-sync-actions{align-items:center;gap:7px;display:flex}.cloud-sync-bar .command-button{min-height:30px;font-size:11px}.sync-spinning{animation:1s linear infinite sync-spin}@keyframes sync-spin{to{transform:rotate(360deg)}}.issue-bar{background:var(--gold-soft);color:#6a4b16;border-bottom:1px solid #ead29f;justify-content:center;align-items:center;gap:12px;min-height:36px;padding:7px 20px;font-size:12px;display:flex}.issue-bar button{color:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.planner-layout{grid-template-columns:340px minmax(0,1fr);min-height:calc(100vh - 124px);display:grid}.guest-sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f2;flex-direction:column;height:calc(100vh - 124px);min-height:540px;padding:18px 16px 0;display:flex}.cloud-enabled .planner-layout{min-height:calc(100vh - 168px)}.cloud-enabled .guest-sidebar{height:calc(100vh - 168px)}.sidebar-heading,.workspace-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.sidebar-heading{margin-bottom:14px}.sidebar-heading h2,.workspace-heading h2{color:var(--ink);font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:16px;font-weight:600;line-height:1.3}.sidebar-heading span,.workspace-heading span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.search-field{border:1px solid var(--line-strong);background:var(--surface);height:38px;color:var(--faint);border-radius:5px;flex:0 0 38px;align-items:center;gap:8px;padding:0 11px;display:flex}.search-field:focus-within{border-color:var(--gold);box-shadow:0 0 0 2px #b17a321f}.search-field input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:13px}.attendance-filter,.side-filter{border:1px solid var(--line);border-radius:5px;flex:none;display:grid;overflow:hidden}.attendance-filter{grid-template-columns:repeat(2,1fr);margin:10px 0 7px}.side-filter{grid-template-columns:repeat(4,1fr);margin:0 0 12px}.attendance-filter button{min-width:0;height:34px;color:var(--muted);border:0;border-radius:0;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:11px;display:flex}.attendance-filter button+button{border-left:1px solid var(--line)}.attendance-filter button.active{background:var(--green-soft);color:var(--green-dark);font-weight:750}.side-filter button{min-width:0;height:31px;color:var(--muted);border:0;border-radius:0;padding:0 6px;font-size:11px}.side-filter button+button{border-left:1px solid var(--line)}.side-filter button.active{background:var(--gold-soft);color:#7a511f;font-weight:750}.unassigned-list{flex:auto;min-height:240px;margin:0 -4px;padding:0 4px 24px;transition:background-color .12s;overflow-y:auto}.unassigned-list.drop-target{background:var(--green-soft)}.not-attending-list{flex:auto;min-height:240px;margin:0 -4px;padding:0 4px 24px;overflow-y:auto}.not-attending-item{border:1px solid var(--line);width:100%;min-height:58px;color:var(--muted);cursor:pointer;text-align:left;background:#faf8f3;border-left:3px solid #a98f88;border-radius:5px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:7px;padding:8px 10px;display:grid}.not-attending-item:hover,.not-attending-item:focus-visible{background:var(--red-soft);border-color:#b69c94}.not-attending-item>span{gap:3px;min-width:0;display:grid}.not-attending-item strong,.not-attending-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.not-attending-item strong{color:var(--ink);font-size:12px}.not-attending-item small{color:var(--muted);font-size:9px}.not-attending-item b{color:#8f6f68;white-space:nowrap;font-size:10px}.empty-list,.empty-table{border:1px dashed var(--line-strong);min-height:86px;color:var(--faint);border-radius:5px;place-items:center;font-size:12px;display:grid}.guest-token{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:58px;color:var(--muted);cursor:grab;text-align:left;touch-action:none;border-left-width:3px;border-radius:5px;align-items:center;gap:8px;margin-bottom:7px;padding:8px 9px 8px 7px;transition:border-color .12s,box-shadow .12s,opacity .12s;display:flex}.guest-token:hover{border-color:var(--line-strong);box-shadow:0 3px 10px #603e1a17}.guest-token.dragging{opacity:.48}.drag-overlay-token{border:1px solid #8fb1a4;border-left:4px solid var(--green);background:var(--surface);min-width:150px;max-width:230px;color:var(--ink);pointer-events:none;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:10px 13px;font-size:12px;font-weight:750;overflow:hidden;box-shadow:0 12px 30px #603e1a33}.guest-token.side-bride{border-left-color:var(--bride)}.guest-token.side-groom{border-left-color:var(--groom)}.guest-token.side-shared{border-left-color:var(--shared)}.guest-token.side-other{border-left-color:var(--other)}.guest-token-copy{flex:auto;gap:2px;min-width:0;display:grid}.guest-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;line-height:1.35;overflow:hidden}.guest-relation{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.35;overflow:hidden}.guest-count{color:#5d4a38;flex:none;align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.guest-count.count-warning{color:var(--red)}.guest-tag{flex:none}.guest-tag.child{color:var(--groom)}.guest-tag.vegetarian{color:var(--green)}.guest-token.table-token{background:#fffaf2;min-height:38px;margin-bottom:5px;padding:5px 7px 5px 5px}.guest-token.table-token .guest-name{font-size:12px}.table-workspace{background:#f9f4eac7;min-width:0;padding:22px}.workspace-heading{margin-bottom:17px}.tables-grid{grid-template-columns:repeat(auto-fill,minmax(460px,1fr));align-items:start;gap:18px;display:grid}.visual-table-card{border:1px solid var(--line-strong);background:#fffdf8f2;border-radius:8px;min-width:0;padding:12px 14px 10px;box-shadow:0 7px 24px #603e1a14}.visual-table-card.over-capacity{border-color:#c76b70}.visual-table-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px;min-height:36px;padding-bottom:8px;display:grid}.table-title-editor{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.table-title-editor>strong{color:var(--ink);white-space:nowrap;font-size:14px}.table-alias-input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fffdf8d9;border-radius:3px;padding:4px 6px;font-size:11px}.table-alias-input:hover,.table-alias-input:focus{border-color:var(--line-strong)}.table-alias-input::placeholder{color:var(--faint)}.occupancy-badge{background:var(--green-soft);min-width:45px;min-height:25px;color:var(--green-dark);border-radius:4px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.over-capacity .occupancy-badge{background:var(--red-soft);color:var(--red)}.stepper{border:1px solid var(--line);border-radius:4px;grid-template-columns:25px 28px 25px;align-items:center;display:grid;overflow:hidden}.stepper button{width:25px;height:24px;color:var(--muted);border:0;border-radius:0;padding:0}.stepper button:hover:not(:disabled){background:var(--surface-soft)}.stepper output{color:var(--ink);text-align:center;font-size:11px;font-weight:750}.table-remove{flex-basis:26px;width:26px;height:26px}.visual-table-stage{aspect-ratio:1;width:calc(100% - 88px);max-width:430px;margin:12px auto 6px;position:relative;overflow:visible}.round-table,.static-round-table{z-index:1;aspect-ratio:1;color:#805526;background:#f8edd9;border:2px solid #c59451;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:43%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 7px #fffdf8,0 7px 18px #603e1a21}.round-table:after,.static-round-table:after{content:"";background:#d8bb8c;width:70%;height:1px;position:absolute;bottom:26%}.round-table strong{max-width:80%;color:var(--ink);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:16px;overflow:hidden}.round-table span{color:#8a704f;font-size:11px;font-weight:700}.round-table small,.static-round-table small{color:#7b6244;overflow-wrap:anywhere;text-align:center;max-width:76%;font-size:9px;font-weight:700;line-height:1.15}.seat-spot{z-index:3;top:var(--seat-y);left:var(--seat-x);border-radius:50%;width:48px;height:48px;position:absolute;transform:translate(-50%,-50%)}.seat-spot:before{content:"";pointer-events:none;border:2px solid #0000;border-radius:50%;transition:border-color .12s,background-color .12s,transform .12s;position:absolute;inset:-6px}.seat-spot.drop-target:before{border-color:var(--gold);background:#b17a321f;transform:scale(1.08)}.empty-chair,.person-avatar{border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.empty-chair{color:#a79682;background:#fffdf9;border:2px solid #d7c9b4;box-shadow:0 2px 7px #603e1a0f}.empty-chair span{font-size:10px;font-weight:750}.seat-person{width:48px;height:48px;color:var(--group-color);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:50%;padding:0;display:block;position:relative}.seat-person.dragging{opacity:.42}.person-avatar{border:3px solid var(--group-color);background:#fffdf9;animation:.18s ease-out sit-down;box-shadow:0 3px 9px #603e1a21}.seat-person:hover .person-avatar,.seat-person:focus-visible .person-avatar{box-shadow:0 0 0 4px color-mix(in srgb, var(--group-color) 18%, transparent), 0 4px 9px #1d362b24}.person-name,.static-name{z-index:5;width:88px;min-height:18px;color:var(--ink);white-space:nowrap;font-size:10px;font-weight:700;line-height:1.25;display:grid;position:absolute;overflow:visible}.person-name>span,.static-name>span{text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.person-name>small,.static-name>small{min-width:0;color:var(--gold);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;font-size:.82em;font-weight:600;display:block;overflow:visible}.label-top .person-name,.label-top .static-name{text-align:center;bottom:54px;left:50%;transform:translate(-50%)}.label-bottom .person-name,.label-bottom .static-name{text-align:center;top:54px;left:50%;transform:translate(-50%)}.label-left .person-name,.label-left .static-name{text-align:right;top:50%;right:55px;transform:translateY(-50%)}.label-right .person-name,.label-right .static-name{text-align:left;top:50%;left:55px;transform:translateY(-50%)}.seat-status{z-index:6;color:#fff;border:1px solid #fff;border-radius:50%;place-items:center;width:17px;height:17px;display:grid;position:absolute;bottom:-2px;right:-3px}.seat-status.child{background:var(--groom)}.seat-status.vegetarian{background:var(--green)}.seat-status.child+.seat-status.vegetarian{right:11px}.dense-seats .seat-spot,.dense-seats .empty-chair,.dense-seats .seat-person,.dense-seats .person-avatar{width:41px;height:41px}.dense-seats .person-name{width:72px;font-size:9px}.seat-roster{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;margin:8px 2px 0;padding-top:9px;display:grid}.seat-roster-row{border:0;border-bottom:1px solid var(--line);min-width:0;min-height:43px;color:var(--ink);text-align:left;background:0 0;border-radius:0;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;padding:5px 3px;display:grid}.seat-roster-row:hover,.seat-roster-row:focus-visible{background:var(--gold-soft)}.seat-roster-row i,.static-seat-roster i{border:1px solid var(--line-strong);width:22px;height:22px;color:var(--muted);border-radius:50%;place-items:center;font-size:9px;font-style:normal;font-weight:750;display:grid}.seat-roster-row>span,.static-seat-roster>div>span{gap:2px;min-width:0;display:grid}.seat-roster-row strong,.seat-roster-row small,.static-seat-roster strong,.static-seat-roster small{overflow-wrap:anywhere;white-space:normal}.seat-roster-row strong{font-size:10px;line-height:1.35}.seat-roster-row small{color:var(--gold);font-size:9px;line-height:1.3}.planner-event-meta{border:1px solid var(--line);background:#fffdf8c7;border-radius:5px;align-items:stretch;min-width:0;display:flex}.planner-event-meta>span{min-width:85px;color:var(--gold);grid-template-columns:17px minmax(0,1fr);align-content:center;gap:1px 6px;padding:6px 9px;display:grid}.planner-event-meta>span+span{border-left:1px solid var(--line)}.planner-event-meta svg{grid-row:1/3;align-self:center}.planner-event-meta i,.planner-event-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planner-event-meta i{color:var(--muted);font-size:8px;font-style:normal}.planner-event-meta strong{color:var(--ink);font-size:10px}.combined-seating-workspace{grid-template-columns:minmax(520px,1fr) minmax(430px,480px);align-items:start;gap:18px;display:grid}.venue-floor-tool,.selected-table-workbench{min-width:0}.venue-floor-tool{border:1px solid var(--line-strong);background:#fffdf8f2;border-radius:6px;overflow:hidden;box-shadow:0 7px 24px #603e1a14}.venue-floor-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:8px 13px;display:flex}.venue-floor-heading>div{gap:3px;display:grid}.venue-floor-heading strong{color:var(--ink);font-size:13px}.venue-floor-heading span{color:var(--muted);font-size:9px}.venue-floor-heading>span{color:var(--green);text-align:right}.venue-floor-scroll{overscroll-behavior-inline:contain;width:100%;min-width:0;overflow-x:auto}.venue-floor-canvas{aspect-ratio:790/955;isolation:isolate;background:#fffdf9;width:min(100%,680px);margin:0 auto;position:relative;overflow:hidden}.floor-plan-shell{z-index:0;width:100%;height:100%;position:absolute;inset:0}.floor-plan-room-fill{fill:#fbf7efb8}.floor-plan-corridor-fill{fill:#fffdf9f5}.floor-plan-walls,.floor-plan-doors,.floor-plan-fixtures{fill:none;stroke:#908577;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.floor-plan-walls{stroke-width:2.4px}.floor-plan-doors{stroke-width:1.7px}.floor-plan-fixtures{fill:#eef0ef;stroke:#a59d92;stroke-width:1.4px}.floor-plan-fixtures .floor-plan-fixture-mark{fill:#d6d4cf}.floor-plan-carpet{fill:#c75268;stroke:#7e253757;stroke-width:1px;vector-effect:non-scaling-stroke}.floor-table{z-index:3;top:var(--venue-y);left:var(--venue-x);width:58px;height:58px;color:var(--green-dark);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;transform:translate(-50%,-50%)}.floor-table.dragging{z-index:6;cursor:grabbing;opacity:.35}.floor-table-chairs,.floor-table-chairs i,.floor-table-core{pointer-events:none;position:absolute}.floor-table-chairs{inset:0}.floor-table-chairs i{width:7px;height:10px;transform:translate(-50%, -50%) rotate(var(--chair-angle)) translateY(-25px);background:#fffdf8;border:1px solid #8fa399;border-radius:3px 3px 2px 2px;top:50%;left:50%}.floor-table-core{z-index:2;border:2px solid var(--green);background:#fffdf8;border-radius:50%;place-content:center;gap:1px;display:grid;inset:10px;box-shadow:0 3px 8px #363f3824}.floor-table-core strong{font-size:11px;line-height:1}.floor-table-core small{font-size:7px;font-weight:700;line-height:1}.floor-table:hover,.floor-table.selected,.floor-table.drop-target{z-index:5}.floor-table:hover .floor-table-core,.floor-table.selected .floor-table-core{border-color:var(--gold);box-shadow:0 0 0 4px #b17a3238,0 4px 11px #363f382e}.floor-table.drop-target .floor-table-core{border-color:var(--green-dark);background:var(--green-soft);box-shadow:0 0 0 6px #476f5d38}.floor-table.main-table .floor-table-core{color:#fff;background:#bd5267;border-color:#a74256}.floor-table.full:not(.main-table) .floor-table-core{background:var(--green);color:#fff}.floor-table-alias{z-index:6;border:1px solid var(--line-strong);width:max-content;max-width:94px;color:var(--ink);overflow-wrap:anywhere;text-align:center;white-space:normal;background:#fffdf8;border-radius:3px;padding:3px 5px;font-size:8px;font-weight:700;line-height:1.2;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);box-shadow:0 3px 8px #603e1a1f}.floor-empty-slot{z-index:2;top:var(--venue-y);left:var(--venue-x);border:1px dashed var(--faint);width:38px;height:38px;color:var(--faint);border-radius:50%;place-items:center;font-size:9px;display:grid;position:absolute;transform:translate(-50%,-50%)}.selected-table-workbench{gap:8px;display:grid}.selected-table-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:38px;padding:0 3px;display:flex}.selected-table-toolbar>span{color:var(--muted);font-size:11px;font-weight:700}.selected-table-toolbar label{min-width:0;color:var(--gold);align-items:center;gap:6px;display:flex}.selected-table-toolbar select{border:1px solid var(--line-strong);background:var(--surface);min-width:150px;max-width:220px;height:32px;color:var(--ink);border-radius:4px;padding:0 8px;font-size:11px}.visual-table-card.no-remove .visual-table-header{grid-template-columns:minmax(0,1fr) auto auto}.selected-table-workbench .visual-table-card{width:100%}@keyframes sit-down{0%{opacity:.4;transform:scale(.76)}to{opacity:1;transform:scale(1)}}.report-view{width:min(1180px,100% - 40px);margin:0 auto;padding:42px 0 80px}.report-heading{border-bottom:2px solid var(--gold);margin-bottom:28px;padding-bottom:18px}.report-heading p{color:var(--green);margin:0 0 9px;font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:11px;font-weight:700}.report-heading h2{color:var(--ink);font-family:Cormorant Garamond,Noto Serif TC,serif;font-size:30px;font-weight:600;line-height:1.25}.report-heading span{color:var(--muted);margin-top:8px;font-size:12px;display:block}.report-tables-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.static-table-card{break-inside:avoid;border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:8px}.static-seat-roster{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;margin:3px 5px 5px;padding-top:7px;display:grid}.static-seat-roster>div{border-bottom:1px solid var(--line);grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px;min-height:34px;padding:3px 1px;display:grid}.static-seat-roster strong{color:var(--ink);font-size:9px;line-height:1.3}.static-seat-roster small{color:var(--gold);font-size:8px;line-height:1.25}.unassigned-report h3{color:var(--ink);margin:0;font-size:14px}.static-table-stage{aspect-ratio:1;width:calc(100% - 72px);max-width:390px;margin:8px auto;position:relative;overflow:visible}.static-seat{z-index:3;top:var(--seat-y);left:var(--seat-x);width:34px;height:34px;position:absolute;transform:translate(-50%,-50%)}.static-avatar{border:2px solid var(--group-color);width:34px;height:34px;color:var(--group-color);background:#fffdf9;border-radius:50%;place-items:center;display:grid}.static-seat:not(.occupied) .static-avatar{color:#9da7a1;border-color:#c4ccc7}.static-avatar small{font-size:8px}.static-name{width:78px;font-size:9px}.static-seat.label-top .static-name{bottom:39px}.static-seat.label-bottom .static-name{top:39px}.static-seat.label-left .static-name{right:40px}.static-seat.label-right .static-name{left:40px}.static-round-table{gap:3px;width:42%;box-shadow:inset 0 0 0 5px #fffdf8}.static-round-table strong{max-width:78%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.static-round-table span{color:#8a704f;font-size:9px}.unassigned-report{background:var(--red-soft);border:1px solid #d99da1;border-radius:5px;margin-top:20px;padding:16px}.unassigned-report p{color:#684145;margin:8px 0 0;font-size:12px;line-height:1.7}.lookup-list{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;display:grid}.lookup-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:38px;font-size:12px;display:grid}.lookup-row span{overflow-wrap:anywhere}.lookup-row strong{color:var(--green-dark);font-size:11px}.lookup-row.unassigned-row strong{color:var(--red)}.party-inspector{z-index:70;border-left:1px solid var(--line-strong);background:var(--surface);flex-direction:column;width:min(370px,100vw - 24px);height:100vh;display:flex;position:fixed;top:0;right:0;box-shadow:-12px 0 34px #603e1a29}.party-inspector>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:80px;padding:16px 18px;display:flex}.party-inspector header span{color:var(--muted);font-size:11px}.party-inspector h2{color:var(--ink);margin-top:3px;font-size:18px}.inspector-body{flex-direction:column;flex:auto;gap:18px;padding:20px 18px 28px;display:flex;overflow-y:auto}.field-label{gap:7px;display:grid}.field-label>span,.relation-block>span{color:var(--muted);font-size:11px;font-weight:700}.field-label input,.field-label select{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:40px;color:var(--ink);border-radius:5px;padding:0 10px;font-size:13px}.attendance-toggle{border:1px solid var(--line-strong);border-radius:5px;grid-template-columns:repeat(2,1fr);display:grid;overflow:hidden}.attendance-toggle button{min-height:40px;color:var(--muted);border:0;border-radius:0;justify-content:center;align-items:center;gap:7px;font-size:12px;display:flex}.attendance-toggle button+button{border-left:1px solid var(--line-strong)}.attendance-toggle button.active{background:var(--green-soft);color:var(--green-dark);font-weight:750}.attendance-toggle button:last-child.active{background:var(--red-soft);color:#7f4f54}.attendance-hint{color:#8b6863;font-size:10px;line-height:1.55}.member-picker{gap:7px;display:grid}.member-picker>span{color:var(--muted);font-size:11px;font-weight:700}.member-picker>div{gap:5px;display:grid}.member-picker button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);cursor:pointer;text-align:left;border-radius:5px;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:8px;padding:4px 9px;display:grid}.member-picker button:hover,.member-picker button.active{border-color:var(--group-color);background:var(--gold-soft)}.member-picker i{border:2px solid var(--group-color);width:24px;height:24px;color:var(--group-color);border-radius:50%;place-items:center;font-size:10px;font-style:normal;font-weight:800;display:grid}.member-picker button span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.large-stepper{border:1px solid var(--line-strong);border-radius:5px;grid-template-columns:42px 1fr 42px;min-height:42px;display:grid;overflow:hidden}.large-stepper button{color:var(--green-dark);border:0;border-radius:0;font-size:19px}.large-stepper button:hover:not(:disabled){background:var(--green-soft)}.large-stepper output{border-right:1px solid var(--line);border-left:1px solid var(--line);color:var(--ink);place-items:center;font-size:16px;font-weight:800;display:grid}.attribute-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.attribute-grid>div{border:1px solid var(--line);background:var(--surface-soft);border-radius:5px;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:0 12px;display:flex}.attribute-grid span{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.attribute-grid strong{color:var(--ink);font-size:14px}.relation-block{padding-top:2px}.relation-block p{color:#5d4a38;margin:6px 0 0;font-size:12px;line-height:1.65}.toast{z-index:100;color:#fff;background:#5b4028;border-radius:5px;max-width:calc(100vw - 32px);padding:10px 15px;font-size:12px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #462c1333}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1300px){.combined-seating-workspace{grid-template-columns:1fr}.selected-table-workbench{width:min(100%,560px);margin:0 auto}}@media (width<=1120px){.app-header{grid-template-columns:minmax(220px,1fr) auto}.header-stats{display:none}.planner-layout{grid-template-columns:310px minmax(0,1fr)}.report-tables-grid,.lookup-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=780px){.app-header{grid-template-columns:1fr;gap:10px;padding:12px 14px}.brand-mark{flex-basis:38px;width:38px;height:38px}.header-actions{justify-content:flex-start;padding-bottom:2px;overflow-x:auto}.cloud-sync-bar{grid-template-columns:28px minmax(0,1fr);padding:8px 14px;display:grid}.cloud-sync-copy{min-width:0}.editor-name-field{grid-column:2;margin-left:0}.editor-name-field input{flex:1;width:auto;min-width:0}.cloud-sync-actions{grid-column:2;justify-content:stretch}.cloud-sync-actions .command-button{flex:1;min-width:0}.action-divider{display:none}.view-tabs{justify-content:flex-start;overflow-x:auto}.view-tabs button{min-width:105px}.issue-bar{flex-wrap:wrap;justify-content:flex-start}.planner-layout{display:block}.guest-sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;min-height:0;padding:16px 14px}.cloud-enabled .guest-sidebar{height:auto}.unassigned-list{max-height:310px;padding-bottom:4px;display:block}.guest-token{margin-bottom:7px}.table-workspace{padding:17px 14px 30px}.combined-table-workspace .workspace-heading{align-items:stretch}.planner-event-meta{width:100%;overflow-x:auto}.planner-event-meta>span{flex:1 0 90px}.combined-seating-workspace{gap:14px}.venue-floor-canvas{width:560px;max-width:none;margin-left:0}.selected-table-workbench{width:100%}.tables-grid{grid-template-columns:1fr}.visual-table-card{padding-inline:10px}.visual-table-stage{width:calc(100% - 42px)}.person-name{width:68px;font-size:9px}.report-view{width:min(100% - 28px,680px);padding-top:28px}.report-tables-grid,.lookup-list{grid-template-columns:1fr}}@media (width<=520px){.brand-block h1{font-size:16px}.command-button{padding:0 10px}.unassigned-list{display:block}.unassigned-list .guest-token{margin-bottom:7px}.workspace-heading{flex-wrap:wrap;align-items:flex-end}.venue-floor-heading>span{display:none}.selected-table-toolbar{flex-direction:column;align-items:stretch}.selected-table-toolbar label,.selected-table-toolbar select{width:100%;max-width:none}.report-heading h2{font-size:25px}.visual-table-header{flex-wrap:wrap;gap:7px;display:flex}.visual-table-header .table-title-editor{flex:1 0 100%;width:100%}.visual-table-header .occupancy-badge{margin-left:auto}.visual-table-header .table-remove{display:none}.visual-table-stage{width:calc(100% - 72px)}.seat-roster,.static-seat-roster{grid-template-columns:1fr}.seat-spot,.empty-chair,.seat-person,.person-avatar{width:43px;height:43px}.person-name{width:48px;font-size:8px}.label-top .person-name{bottom:49px}.label-bottom .person-name{top:49px}.label-left .person-name{right:45px}.label-right .person-name{left:45px}}@page{size:A4 portrait;margin:11mm}@media print{:root,html,body{background:#fff}.app-header,.view-tabs,.cloud-sync-bar,.issue-bar,.party-inspector,.toast{display:none!important}.report-view{width:100%;margin:0;padding:0}.report-heading{margin-bottom:7mm;padding-bottom:4mm}.report-heading h2{font-size:21pt}.report-tables-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm}.static-table-card{box-shadow:none;border-color:#777;padding:1.5mm}.static-table-stage{width:calc(100% - 14mm);margin:2mm auto}.static-name{font-size:7pt}.lookup-list{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:7mm}.lookup-row{min-height:7.2mm;font-size:8.5pt}.lookup-row strong{font-size:8pt}.unassigned-report{break-inside:avoid}}@media (prefers-reduced-motion:reduce){.person-avatar{animation:none}}
