:root{--sans:"Hanken Grotesk", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--esf-ink);background:var(--esf-ground);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--esf-ground)}body{min-width:320px;margin:0}button,input{font:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #52789459}img{max-width:100%}:root{--esf-ground:#f2f5f0;--esf-panel:#fbfcfa;--esf-panel-2:#eef3ed;--esf-ink:#17211d;--esf-muted:#5e6e64;--esf-hair:#dbe5dc;--esf-hair-2:#e7efe8;--esf-accent:#2f5d46;--esf-accent-ink:#fff;--esf-metal:#9a7b4f;--esf-blush:#e5efe7;--esf-ok:#2f5d46;--esf-warn:#8a5a14;--esf-danger:#ac4d43;--esf-shadow:23, 33, 29;--esf-radius:14px;--esf-radius-sm:10px;--esf-radius-pill:999px;--esf-display:"Spectral", Georgia, "Times New Roman", serif;--esf-ui:"Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--esf-g-bg:#131a28;--esf-g-panel:#1c2334;--esf-g-ink:#f3efe4;--esf-g-hair:#2e3a4f;--esf-g-muted:#9aa3b4;--esf-g-gold:#c0a063;--esf-g-glow:201, 168, 101}.app-shell{background:linear-gradient(180deg, #f7f9f7f0, #fffffffa), var(--esf-ground);min-height:100svh;padding:18px}.topbar,.summary-rail,.planner-grid{width:min(1680px,100%);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:20px;padding:4px 2px 14px;display:flex}.eyebrow,.section-label{color:var(--esf-muted);letter-spacing:.18em;text-transform:uppercase;margin:0 0 3px;font-size:11px;font-weight:600}.topbar h1{color:var(--esf-ink);margin:0;font-size:28px;font-weight:700;line-height:1.05}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.setup-actions{align-items:stretch;gap:8px;display:flex}.switch-control{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);color:#475d54;cursor:pointer;align-items:center;gap:8px;min-height:38px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.switch-control input{width:15px;height:15px;accent-color:var(--esf-accent)}.icon-button,.subtle-button,.wide-button{appearance:none;border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);min-height:38px;color:var(--esf-ink);font:700 13px/1 var(--sans);cursor:pointer;justify-content:center;align-items:center;gap:8px;transition:border-color .16s,background .16s,transform .16s,box-shadow .16s;display:inline-flex}.icon-button{padding:0 12px}.icon-button:hover,.subtle-button:hover,.wide-button:hover{border-color:var(--esf-muted);box-shadow:0 10px 28px rgba(var(--esf-shadow), .1);transform:translateY(-1px)}.icon-button.primary-action{background:var(--esf-accent);color:var(--esf-accent-ink);border-color:var(--esf-accent);box-shadow:0 12px 26px -14px rgba(var(--esf-shadow), .7)}.icon-button:disabled,.icon-button.is-disabled,.wide-button:disabled,.subtle-button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none;transform:none}.icon-button.is-disabled{background:var(--esf-ground)}.icon-button input{display:none}.subtle-button{min-height:34px;padding:0 10px}.wide-button{width:100%;min-height:40px}.wide-button.primary-action{background:var(--esf-accent);color:var(--esf-accent-ink);border-color:var(--esf-accent);box-shadow:0 12px 26px -14px rgba(var(--esf-shadow), .7)}.wide-button.danger-action{border-color:var(--esf-danger);color:var(--esf-danger);background:#fff1ef}.summary-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.metric{border:1px solid var(--esf-hair);border-radius:var(--esf-radius);background:var(--esf-panel);min-height:74px;box-shadow:0 24px 48px -32px rgba(var(--esf-shadow), .5);flex-direction:column;justify-content:space-between;padding:13px 14px;display:flex}.metric span{color:var(--esf-muted);font-size:12px;font-weight:700}.metric strong{color:var(--esf-ink);font-variant-numeric:lining-nums tabular-nums;font-size:26px;line-height:1}.metric-green{border-left:4px solid var(--esf-accent)}.metric-ink{border-left:4px solid var(--esf-ink)}.metric-blue{border-left:4px solid var(--esf-muted)}.metric-red{border-left:4px solid var(--esf-danger)}.notice{border-radius:var(--esf-radius);width:min(1680px,100%);color:var(--esf-warn);background:#fff8e5;border:1px solid #d8cfb2;justify-content:space-between;align-items:center;margin:0 auto 12px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.notice button{appearance:none;color:inherit;cursor:pointer;font:800 16px/1 var(--sans);background:0 0;border:0}.planner-grid{grid-template-columns:minmax(280px,360px) minmax(560px,1fr) minmax(320px,390px);align-items:start;gap:12px;display:grid}.panel,.floor-panel{border:1px solid var(--esf-hair);min-height:0;box-shadow:0 18px 50px rgba(var(--esf-shadow), .07);background:#fffffff5;border-radius:8px}.panel{flex-direction:column;min-height:calc(100svh - 156px);max-height:calc(100svh - 156px);display:flex;overflow:hidden}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;display:flex}.panel-heading h2{color:var(--esf-ink);margin:0;font-size:18px;font-weight:700;line-height:1.15}.floor-heading{align-items:center}.floor-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.search-box,.guest-search-box{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);color:#5d7169;align-items:center;gap:9px;display:flex}.search-box{min-height:40px;margin:0 16px 10px;padding:0 10px}.search-box input,.guest-search-box input{width:100%;min-width:0;color:var(--esf-ink);font:600 14px/1.2 var(--sans);background:0 0;border:0;outline:0}.search-box input::placeholder,.guest-search-box input::placeholder{color:var(--esf-muted)}.segmented-control{background:var(--esf-panel-2);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 16px 12px;padding:4px;display:grid}.segmented-control button{color:#5d7169;min-width:0;min-height:30px;font:700 11px/1 var(--sans);text-transform:capitalize;cursor:pointer;background:0 0;border:0;border-radius:6px}.segmented-control button.active{background:var(--esf-panel);color:var(--esf-ink);box-shadow:0 8px 18px rgba(var(--esf-shadow), .1)}.guest-list,.planner-panel{overflow:auto}.guest-list{gap:8px;padding:0 12px 14px;display:grid}.guest-row{border:1px solid var(--esf-hair);background:var(--esf-panel);cursor:pointer;border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;transition:border-color .16s,background .16s,box-shadow .16s;display:grid}.guest-row:hover,.guest-row.selected{border-color:var(--esf-muted);box-shadow:0 10px 24px rgba(var(--esf-shadow), .08)}.guest-row.selected,.guest-row.bulk-selected{background:var(--esf-blush)}.guest-row.bulk-selected{box-shadow:inset 3px 0 0 var(--esf-accent), 0 10px 24px rgba(var(--esf-shadow), .08)}.guest-select{place-items:center;width:38px;height:38px;display:grid;position:relative}.guest-select input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.guest-select span{background:var(--esf-ink);width:38px;height:38px;color:var(--esf-panel);border-radius:50%;place-items:center;font-size:12px;font-weight:800;transition:background .16s,box-shadow .16s,transform .16s;display:grid}.guest-select input:checked+span{background:var(--esf-accent);transform:scale(1.04);box-shadow:0 0 0 4px #5c8a7333}.guest-main{min-width:0}.guest-main strong,.suggestion-main strong,.seated-guest span,.guest-match-list span{color:var(--esf-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.guest-main span,.suggestion-main span,.seated-guest small,.guest-match-list small{color:var(--esf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;display:block;overflow:hidden}.guest-meta{justify-items:end;gap:5px;display:grid}.tag-chip,.table-pill,.unplaced-pill{border:0;border-radius:999px;align-items:center;min-height:20px;padding:0 8px;font-size:10px;font-weight:800;display:inline-flex}.tag-chip{background:var(--esf-blush);color:var(--esf-accent);cursor:pointer;text-transform:capitalize}.table-pill{background:var(--esf-ink);color:var(--esf-panel);cursor:pointer;border:0}.unplaced-pill{color:var(--esf-warn);background:#fff2d8}.floor-panel{min-height:auto;padding:0 14px 14px}.floor-plan-frame{aspect-ratio:2048/936;border:1px solid var(--esf-hair);background:var(--esf-panel);touch-action:none;border-radius:8px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff80}.floor-plan-frame img{object-fit:contain;width:100%;height:100%;display:block}.table-marker{border:1px solid var(--esf-hair);background:var(--esf-panel);width:30px;height:30px;color:var(--esf-ink);font:700 12px/1 var(--esf-display);font-variant-numeric:lining-nums tabular-nums;cursor:grab;box-shadow:0 5px 14px rgba(var(--esf-shadow), .18);border-radius:50%;place-items:center;transition:background .14s,border-color .14s,border-width .14s,box-shadow .14s,transform .14s;display:grid;position:absolute;transform:translate(-50%,-50%)}.table-marker:hover,.table-marker.selected,.table-marker.suggested,.table-marker.guest-highlight{z-index:2;transform:translate(-50%,-50%)scale(1.12)}.table-marker.selected{border-width:2px;border-color:var(--esf-metal);box-shadow:0 5px 14px rgba(var(--esf-shadow), .18), 0 0 34px 6px color-mix(in srgb, var(--esf-metal) 40%, transparent)}.table-marker.suggested{border-color:var(--esf-warn);background:color-mix(in srgb, var(--esf-warn) 14%, var(--esf-panel));animation:1.35s ease-in-out infinite suggestion-glow}.table-marker.over{border-color:var(--esf-danger);background:color-mix(in srgb, var(--esf-danger) 12%, var(--esf-panel))}.table-marker.full{border-color:color-mix(in srgb, var(--esf-metal) 60%, var(--esf-hair));background:var(--esf-panel-2)}.table-marker.guest-highlight{border-width:2px;border-color:var(--esf-metal);box-shadow:0 5px 14px rgba(var(--esf-shadow), .18), 0 0 34px 6px color-mix(in srgb, var(--esf-metal) 40%, transparent)}.table-marker.dragging{cursor:grabbing}.table-marker.not-viable{opacity:.34;filter:grayscale(.8)}.table-marker.not-viable.selected,.table-marker.not-viable.suggested{opacity:.82;filter:none}.table-marker.just-seated{animation:.65s cubic-bezier(.2,.8,.2,1) seat-pop}.floor-plan-frame.readonly{touch-action:auto}.floor-plan-frame.readonly .table-marker{cursor:default}.planner-panel{gap:0}.side-section{border-bottom:1px solid var(--esf-hair);padding-bottom:14px}.side-section:last-child{border-bottom:0}.action-grid{gap:8px;padding:0 16px;display:grid}.action-grid button,.table-editor-actions button{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-ground);min-height:36px;color:var(--esf-ink);cursor:pointer;justify-content:center;align-items:center;gap:7px;font-size:12px;font-weight:800;transition:border-color .16s,transform .16s,box-shadow .16s;display:inline-flex}.action-grid button:first-child{border-color:var(--esf-accent);background:var(--esf-ink);color:var(--esf-panel)}.action-grid button:hover,.table-editor-actions button:hover{border-color:var(--esf-muted);box-shadow:0 10px 24px rgba(var(--esf-shadow), .08);transform:translateY(-1px)}.action-grid button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.table-editor{gap:10px;padding:0 16px 12px;display:grid}.table-editor label{color:var(--esf-muted);gap:5px;font-size:11px;font-weight:700;display:grid}.table-editor input{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);width:100%;min-height:38px;color:var(--esf-ink);padding:0 10px;font-size:14px;font-weight:700}.table-editor-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.table-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px;display:grid}.table-detail-grid div,.table-detail-grid label{border:1px solid var(--esf-hair);border-radius:var(--esf-radius);background:var(--esf-panel);flex-direction:column;justify-content:space-between;min-height:64px;padding:10px;display:flex}.table-detail-grid span{color:var(--esf-muted);font-size:11px;font-weight:700}.table-detail-grid strong{color:var(--esf-ink);font-variant-numeric:lining-nums tabular-nums;font-size:22px}.table-detail-grid input{border:0;border-bottom:1px solid var(--esf-hair);width:100%;color:var(--esf-ink);font:700 20px/1 var(--sans);background:0 0;outline:0}.tag-toggle-grid{flex-wrap:wrap;gap:6px;padding:0 16px 12px;display:flex}.tag-toggle-grid label{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-pill);background:var(--esf-panel);color:#536b61;cursor:pointer;align-items:center;gap:5px;min-height:28px;padding:0 9px;font-size:11px;font-weight:800;display:inline-flex}.tag-toggle-grid input{width:13px;height:13px;accent-color:var(--esf-accent)}.seated-list,.suggestion-list{gap:8px;padding:0 16px;display:grid}.seated-guest,.suggestion-row{border:1px solid var(--esf-hair);background:var(--esf-panel);border-radius:8px}.seated-guest{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;display:flex}.suggestion-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid;overflow:hidden}.suggestion-main{text-align:left;cursor:pointer;background:0 0;border:0;min-width:0;padding:10px}.suggestion-actions{border-left:1px solid var(--esf-hair);grid-template-columns:1fr;display:grid}.suggestion-actions button{border:0;border-bottom:1px solid var(--esf-hair);background:var(--esf-ground);min-width:58px;color:var(--esf-ink);font:800 11px/1 var(--sans);cursor:pointer}.suggestion-actions button:last-child{border-bottom:0}.warning-panel,.guest-detail-editor{border-top:1px solid var(--esf-hair);gap:10px;padding:14px 16px;display:grid}.warning-panel h3,.guest-detail-editor h3{color:var(--esf-ink);margin:0;font-size:15px}.warning-list{gap:8px;display:grid}.warning-item{border:1px solid var(--esf-hair);background:var(--esf-panel);width:100%;min-height:50px;color:var(--esf-ink);text-align:left;cursor:pointer;border-radius:8px;gap:4px;padding:9px 10px;display:grid}.warning-item span{letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:800}.warning-item strong{font-size:13px;line-height:1.3}.warning-item.info{border-left:4px solid var(--esf-muted)}.warning-item.warning{border-left:4px solid var(--esf-warn);background:#fffaf0}.warning-item.critical{border-left:4px solid var(--esf-danger);background:#fff5f3}.empty-state{color:var(--esf-muted);margin:0;padding:0 16px 12px;font-size:13px;font-weight:600}.table-health-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:0 16px;display:grid}.health-cell{border:1px solid var(--esf-hair);background:var(--esf-panel);min-height:38px;color:var(--esf-ink);cursor:pointer;border-radius:6px;place-items:center;display:grid}.health-cell strong{font-size:11px;line-height:1}.health-cell span{color:var(--esf-muted);font-size:10px;font-weight:800;line-height:1}.health-cell.full{background:var(--esf-panel-2)}.health-cell.over{border-color:var(--esf-danger);background:#fff1ef}.qr-section img{border:1px solid var(--esf-hair);border-radius:8px;width:156px;max-width:calc(100% - 32px);margin:0 auto 12px;display:block}.qr-section .wide-button{width:calc(100% - 32px);margin:0 16px}.guest-lookup{background:linear-gradient(180deg, #f7f9f7f5, var(--esf-panel)), var(--esf-panel);grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-content:start;align-items:start;gap:18px;min-height:100svh;padding:18px;display:grid}.guest-search-panel,.guest-map-panel{border:1px solid var(--esf-hair);background:var(--esf-panel);min-width:0;box-shadow:0 18px 50px rgba(var(--esf-shadow), .07);border-radius:8px}.guest-search-panel{flex-direction:column;gap:16px;padding:18px;display:flex}.guest-mode-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.guest-updated{color:var(--esf-muted);margin-top:6px;font-size:12px;font-weight:700;display:block}.guest-refresh-line{border:1px solid var(--esf-hair);background:var(--esf-ground);color:#536b61;border-radius:8px;min-height:30px;padding:7px 10px;font-size:12px;font-weight:700}.guest-search-box{min-height:56px;padding:0 14px}.guest-search-box input{min-width:0;font-size:18px}.guest-result{border:1px solid var(--esf-hair);background:var(--esf-blush);border-radius:8px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:14px;min-height:96px;padding:14px;display:grid}.guest-result.pending{background:var(--esf-ground)}.guest-result-icon{background:var(--esf-ink);width:54px;height:54px;color:var(--esf-panel);border-radius:50%;place-items:center;display:grid}.guest-result span{color:var(--esf-muted);font-size:14px;font-weight:700;display:block}.guest-result strong{overflow-wrap:anywhere;color:var(--esf-ink);font-variant-numeric:lining-nums tabular-nums;font-size:32px;line-height:1.1;display:block}.guest-result-copy{color:var(--esf-muted);margin:6px 0 0;font-size:13px;font-weight:700;line-height:1.35}.guest-match-list{gap:8px;display:grid}.guest-match-heading{color:var(--esf-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.guest-match-list button{border:1px solid var(--esf-hair);background:var(--esf-panel);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 12px;display:flex}.guest-map-panel{align-items:center;padding:14px;display:flex}.guest-lookup{background:var(--esf-g-bg);color:var(--esf-g-ink)}.guest-lookup .eyebrow{color:var(--esf-g-muted)}.guest-lookup h1{color:var(--esf-g-ink)}.guest-lookup .guest-updated{color:var(--esf-g-muted)}.guest-lookup .subtle-button{border-color:var(--esf-g-hair);background:var(--esf-g-panel);color:var(--esf-g-ink)}.guest-lookup .subtle-button:hover{border-color:var(--esf-g-gold)}.guest-lookup .guest-search-panel,.guest-lookup .guest-map-panel{border-color:var(--esf-g-hair);background:var(--esf-g-panel);box-shadow:0 18px 50px #00000059}.guest-lookup .guest-refresh-line,.guest-lookup .guest-search-box{border-color:var(--esf-g-hair);background:var(--esf-g-bg);color:var(--esf-g-muted)}.guest-lookup .guest-search-box input{color:var(--esf-g-ink)}.guest-lookup .guest-search-box input::placeholder{color:var(--esf-g-muted)}.guest-lookup .guest-result{border-color:var(--esf-g-hair);background:var(--esf-g-panel)}.guest-lookup .guest-result.pending{background:var(--esf-g-bg)}.guest-lookup .guest-result-icon{background:var(--esf-g-ink);color:var(--esf-g-bg)}.guest-lookup .guest-result span{color:var(--esf-g-muted)}.guest-lookup .guest-result strong{color:var(--esf-g-ink)}.guest-lookup .guest-result-copy,.guest-lookup .guest-match-heading{color:var(--esf-g-muted)}.guest-lookup .guest-match-list button{border-color:var(--esf-g-hair);background:var(--esf-g-panel);color:var(--esf-g-ink)}.guest-lookup .guest-match-list small{color:var(--esf-g-muted)}.guest-lookup .floor-plan-frame{border-color:var(--esf-g-hair);background:var(--esf-g-bg);box-shadow:inset 0 0 0 1px #ffffff0f}.guest-lookup .floor-plan-frame.blank-canvas{background-color:var(--esf-g-bg);background-image:linear-gradient(var(--esf-g-hair) 1px, transparent 1px), linear-gradient(90deg, var(--esf-g-hair) 1px, transparent 1px);background-size:28px 28px}.guest-lookup .floor-plan-frame.has-image{background-color:var(--esf-g-bg)}.guest-lookup .table-marker{border-color:var(--esf-g-ink);background:var(--esf-g-panel);color:var(--esf-g-ink);opacity:.66;box-shadow:0 5px 14px #00000073}.guest-lookup .table-marker.guest-highlight{opacity:1;border-width:2px;border-color:var(--esf-g-gold);background:color-mix(in srgb, var(--esf-g-gold) 20%, var(--esf-g-panel));color:var(--esf-g-ink);box-shadow:0 5px 14px #00000073, 0 0 46px 10px rgba(var(--esf-g-glow), .72)}.workflow-app{background:var(--esf-ground);grid-template-columns:minmax(0,272px) minmax(0,1fr);padding:0;display:grid}.form-label{color:var(--esf-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.workflow-main{min-width:0;padding:18px}.workflow-topbar,.share-status-panel,.workflow-summary,.workflow-stage,.unseated-tray{width:min(1540px,100%);margin-inline:auto}.workflow-topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.guest-lookup h1,.workflow-topbar h1{font-family:var(--esf-display);letter-spacing:0;margin:0;font-size:clamp(24px,2.4vw,30px);font-weight:600;line-height:1.06}.workflow-topbar h1{color:var(--esf-ink)}.workflow-notice{width:min(1540px,100%)}.share-status-panel{border:1px solid var(--esf-hair);border-radius:var(--esf-radius);background:var(--esf-panel);box-shadow:0 24px 48px -32px rgba(var(--esf-shadow), .5);grid-template-columns:minmax(0,1.25fr) minmax(360px,.9fr);gap:12px;margin-bottom:12px;padding:12px;display:grid}.share-status-main{gap:10px;min-width:0;display:grid}.share-status-main h2{color:var(--esf-ink);margin:0;font-size:20px}.share-status-main p{color:var(--esf-muted);margin:4px 0 0;font-size:13px;font-weight:700}.share-status-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.share-step{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-pill);background:var(--esf-ground);min-width:0;color:var(--esf-muted);text-align:center;padding:7px 10px;font-size:11px;font-weight:800}.share-step.current{border-color:var(--esf-accent);background:var(--esf-accent);color:var(--esf-accent-ink);box-shadow:0 6px 14px -8px rgba(var(--esf-shadow), .6)}.share-step.done{border-color:color-mix(in srgb, var(--esf-accent) 45%, var(--esf-hair));color:var(--esf-accent)}.share-step.blocked{color:var(--esf-warn);background:#fffaf0;border-color:#eadfbd}.share-link-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.share-link-card{border:1px solid var(--esf-hair);background:var(--esf-panel);border-radius:8px;gap:6px;padding:10px;display:grid}.share-link-card strong{color:var(--esf-ink);align-items:center;gap:6px;font-size:13px;display:flex}.share-link-card span{color:var(--esf-muted);font-size:12px;font-weight:600;line-height:1.35}.share-link-card button{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);min-height:34px;color:var(--esf-ink);font:800 12px/1 var(--sans);cursor:pointer;justify-content:center;align-items:center;gap:7px;display:inline-flex}.share-link-card button:disabled{opacity:.48;cursor:not-allowed}.share-link-admin{border-color:color-mix(in srgb, var(--esf-metal) 55%, var(--esf-hair));background:color-mix(in srgb, var(--esf-warn) 10%, var(--esf-panel))}.share-link-admin strong{color:var(--esf-warn)}.share-link-admin button{border-color:color-mix(in srgb, var(--esf-metal) 60%, var(--esf-hair));color:var(--esf-warn)}.workflow-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.workflow-stage{grid-template-columns:260px minmax(520px,1fr) 340px;align-items:start;gap:12px;display:grid}.workflow-stage.stage-tables,.workflow-stage.stage-guests{grid-template-columns:260px minmax(0,1fr)}.workflow-stage.stage-print{grid-template-columns:minmax(0,1fr)}.wizard-actions{justify-content:space-between;gap:12px;margin:18px 0 0;display:flex}.wizard-actions>span{flex:1}.wizard-back,.wizard-next{justify-content:center;min-width:148px}.wizard-panel,.center-workspace,.table-inspector,.unseated-tray{border:1px solid var(--esf-hair);border-radius:var(--esf-radius);background:var(--esf-panel);box-shadow:0 24px 48px -32px rgba(var(--esf-shadow), .5)}.wizard-panel{overflow:hidden}.compact-heading{padding:14px 14px 10px}.quick-form{gap:10px;padding:0 14px 14px;display:grid}.quick-form label:not(.switch-control),.quick-form>div{gap:6px;display:grid}.quick-form label span:not(.form-label){color:var(--esf-muted);font-size:12px;font-weight:700}.quick-form input[type=number],.manual-guest-editor input[type=text],.manual-guest-editor select,.manual-guest-editor textarea{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);min-height:40px;font:700 16px/1 var(--sans);padding:0 10px}.manual-guest-editor{border-top:1px solid var(--esf-hair);gap:10px;padding-top:12px;display:grid}.manual-guest-editor h3{color:var(--esf-ink);margin:0;font-size:16px}.manual-guest-editor select{background:var(--esf-panel)}.manual-guest-editor textarea{resize:vertical;min-height:76px;padding-block:10px}.manual-guest-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.manual-guest-actions .primary-action,.manual-guest-actions .danger-action{grid-column:1/-1}.shape-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.shape-picker button,.view-toggle button{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);min-width:0;min-height:36px;color:var(--esf-ink);font:700 12px/1 var(--sans);cursor:pointer;justify-content:center;align-items:center;gap:6px;display:inline-flex}.shape-picker button.active,.view-toggle button.active{border-color:var(--esf-accent);color:var(--esf-accent);background:#edf6f0}.file-action{position:relative}.file-action input{display:none}.inline-switch{justify-content:flex-start}.wizard-copy{color:var(--esf-muted);margin:0;font-size:13px;line-height:1.45}.import-review-card{background:#fffaf0;border:1px solid #d8cfb2;border-radius:8px;gap:10px;padding:12px;display:grid}.import-review-card h3,.import-review-card p,.import-review-stats{margin:0}.import-review-card h3{color:var(--esf-ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.import-review-card p{color:#5f6f68;font-size:12px;font-weight:700;line-height:1.4}.import-review-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.import-review-stats div{border-radius:var(--esf-radius);background:var(--esf-panel);border:1px solid #eadfbd;gap:2px;padding:8px;display:grid}.import-review-stats dt{color:var(--esf-warn);text-transform:uppercase;font-size:10px;font-weight:800}.import-review-stats dd{color:var(--esf-ink);font-variant-numeric:lining-nums tabular-nums;margin:0;font-size:18px;font-weight:800}.import-review-card .import-review-warnings{color:var(--esf-danger);white-space:pre-line}.import-review-card .import-review-note{color:var(--esf-warn)}.import-review-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.center-workspace{min-width:0;padding:14px}.workspace-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.workspace-toolbar h2{color:var(--esf-ink);margin:0;font-size:20px}.view-toggle{background:var(--esf-panel-2);border-radius:8px;gap:6px;padding:4px;display:flex}.floor-plan-frame.blank-canvas{aspect-ratio:16/10;background-color:var(--esf-panel);background-image:linear-gradient(var(--esf-panel-2) 1px, transparent 1px), linear-gradient(90deg, var(--esf-panel-2) 1px, transparent 1px);background-size:28px 28px;min-height:520px}.floor-plan-frame.has-image{aspect-ratio:2048/936}.table-marker{border-width:1.5px;gap:2px;width:58px;height:58px;font-size:15px;line-height:1}.table-marker small{color:#53675e;font-variant-numeric:lining-nums tabular-nums;font-size:10px;font-weight:800}.table-marker.shape-square{border-radius:8px}.table-marker.shape-rectangle{border-radius:8px;width:82px}.table-marker.over{border-color:var(--esf-danger);background:color-mix(in srgb, var(--esf-danger) 12%, var(--esf-panel));color:var(--esf-danger);box-shadow:0 0 0 4px color-mix(in srgb, var(--esf-danger) 14%, transparent), 0 8px 18px rgba(var(--esf-shadow), .18)}.roster-board{gap:10px;min-height:0;display:grid}.roster-bulk-bar{border:1px solid var(--esf-hair);background:var(--esf-blush);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.roster-bulk-bar strong{color:var(--esf-ink);margin-right:auto;font-size:13px}.roster-bulk-bar button,.roster-move-button{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);min-height:30px;color:var(--esf-ink);cursor:pointer;padding:0 10px;font-size:12px;font-weight:800}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;max-height:620px;padding-right:4px;display:grid;overflow:auto}.roster-card{border:1px solid var(--esf-hair);background:var(--esf-panel);border-radius:8px;overflow:hidden}.roster-card.selected{border-color:var(--esf-accent);box-shadow:0 0 0 3px #426d5624}.roster-card.over{border-color:var(--esf-danger);background:#fff7f5}.roster-card-head{border-bottom:1px solid var(--esf-hair);text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;min-height:42px;padding:0;display:flex}.roster-table-select{cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:0 10px;display:flex}.roster-move-button{margin-right:8px}.roster-guest-list{gap:6px;min-height:86px;padding:8px;display:grid}.roster-guest-list p{color:var(--esf-muted);margin:auto;font-size:12px;font-weight:700}.roster-guest{border:1px solid var(--esf-hair);background:var(--esf-panel);text-align:left;cursor:grab;border-radius:7px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:38px;padding:4px;display:grid}.roster-guest.selected{border-color:var(--esf-muted);background:var(--esf-blush);box-shadow:inset 3px 0 0 var(--esf-accent)}.roster-guest-select{place-items:center;width:30px;height:30px;display:grid;position:relative}.roster-guest-select input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.roster-guest-select span{background:var(--esf-ink);width:28px;height:28px;color:var(--esf-panel);border-radius:50%;place-items:center;font-size:10px;font-weight:800;display:grid}.roster-guest-select input:checked+span{background:var(--esf-accent)}.roster-guest-name,.tray-guest strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roster-guest-name,.roster-unseat-button{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.roster-guest-name{color:var(--esf-ink);font-size:13px;font-weight:800}.roster-unseat-button{color:var(--esf-danger);font-size:11px;font-weight:800}.table-inspector{overflow:hidden}.inspector-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 10px;display:flex}.inspector-header h2{color:var(--esf-ink);margin:0;font-size:22px}.inspector-header span{color:var(--esf-muted);font-size:13px;font-weight:700}.capacity-badge{border-radius:var(--esf-radius-pill);background:var(--esf-blush);color:var(--esf-accent);padding:6px 10px;font-size:12px}.capacity-badge.over{color:var(--esf-danger);background:#fff0ee}.inspector-stats,.inspector-editor,.inspector-tags{padding-inline:16px}.inspector-roster{gap:8px;padding:0 16px 14px;display:grid}.inspector-roster h3,.qr-mini h3{color:var(--esf-ink);margin:0;font-size:15px}.guest-detail-form{gap:10px;display:grid}.guest-detail-form label,.guest-detail-form>div{gap:6px;display:grid}.guest-detail-form label span:not(.form-label){color:var(--esf-muted);font-size:12px;font-weight:700}.guest-detail-form input,.guest-detail-form textarea{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);width:100%;min-width:0;color:var(--esf-ink);font:700 13px/1.25 var(--sans)}.guest-detail-form input{min-height:38px;padding:0 10px}.guest-detail-form textarea{resize:vertical;min-height:72px;padding:9px 10px}.guest-tags{padding:0}.guest-detail-form .guest-tags input{width:13px;height:13px;min-height:0;padding:0}.advanced-toggle{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel);width:calc(100% - 32px);min-height:40px;color:var(--esf-ink);font:800 13px/1 var(--sans);cursor:pointer;justify-content:space-between;align-items:center;margin:0 16px 12px;padding:0 12px;display:flex}.qr-mini{border-top:1px solid var(--esf-hair);gap:10px;padding:14px 16px 16px;display:grid}.qr-status{background:var(--esf-ground);color:#536b61;border-radius:8px;margin:0;padding:8px 10px;font-size:12px;font-weight:700;line-height:1.35}.qr-status.unsaved{color:var(--esf-warn);background:#fff5ef}.qr-mini img{border:1px solid var(--esf-hair);border-radius:8px;width:124px}.qr-placeholder{border:1px dashed var(--esf-hair);background:var(--esf-ground);min-height:124px;color:var(--esf-muted);text-align:center;border-radius:8px;place-items:center;gap:8px;padding:12px;display:grid}.qr-placeholder p{margin:0;font-size:12px;font-weight:700;line-height:1.35}.unseated-tray{margin-top:12px;padding:12px}.tray-heading{grid-template-columns:minmax(180px,1fr) minmax(220px,360px) auto auto;align-items:center;gap:10px;margin-bottom:10px;display:grid}.tray-heading h2{color:var(--esf-ink);margin:0;font-size:18px}.tray-search{margin:0}.tray-list{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.tray-guest{border:1px solid var(--esf-hair);background:var(--esf-panel);cursor:grab;border-radius:8px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-width:180px;padding:8px;display:grid}.tray-guest.selected{border-color:var(--esf-accent);background:var(--esf-ground)}.tray-guest label{place-items:center;width:34px;height:34px;display:grid;position:relative}.tray-guest input{opacity:0;position:absolute;inset:0}.tray-guest label span{background:var(--esf-ink);width:34px;height:34px;color:var(--esf-panel);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.tray-guest small{color:var(--esf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;display:block;overflow:hidden}.print-reports{display:none}@media (width<=1280px){.workflow-app{grid-template-columns:minmax(0,1fr)}.workflow-stage{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.table-inspector{grid-column:1/-1}.setup-actions{grid-column:span 2}.planner-grid{grid-template-columns:minmax(260px,320px) minmax(480px,1fr)}.planner-panel{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));min-height:auto;max-height:none;display:grid}.side-section{border-right:1px solid var(--esf-hair)}.side-section:nth-child(2n){border-right:0}}@media (width<=900px){.app-shell,.guest-lookup{padding:12px}.workflow-app{padding:0}.workflow-main{padding:12px}.workflow-topbar{flex-direction:column;align-items:stretch}.workflow-topbar h1{font-size:24px;line-height:1.08}.workflow-topbar .topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.workflow-topbar .topbar-actions .icon-button{width:100%;min-width:0}.workflow-topbar .topbar-actions .primary-action{grid-column:1/-1}.workflow-summary,.share-status-panel,.share-link-grid,.workflow-stage,.tray-heading,.workflow-stage.stage-tables,.workflow-stage.stage-guests,.workflow-stage.stage-seat,.workflow-stage.stage-print{grid-template-columns:1fr}.share-status-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-plan-frame.blank-canvas{min-height:420px}.workspace-toolbar{flex-direction:column;align-items:stretch}.view-toggle{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:stretch}.topbar-actions .icon-button{flex:calc(50% - 8px)}.setup-actions{grid-column:1/-1}.setup-actions .icon-button{flex:1}.summary-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-grid,.guest-lookup{grid-template-columns:1fr;overflow-x:hidden}.panel,.floor-panel{min-height:auto;max-height:none}.planner-panel{display:flex}.side-section{border-right:0}.guest-map-panel{align-items:flex-start;overflow:hidden}.guest-map-panel .floor-plan-frame.blank-canvas{min-height:300px}}@media (width<=560px){.workflow-main{padding-inline:12px}.workflow-topbar h1{font-size:22px}.workflow-topbar .topbar-actions{grid-template-columns:1fr}.workflow-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.share-status-steps{grid-template-columns:1fr}.workflow-summary .metric{min-width:0;padding:11px 12px}.workflow-summary .metric strong{font-size:24px}.shape-picker{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.shape-picker button{white-space:nowrap;min-height:38px}.table-marker{width:46px;height:46px;font-size:12px}.table-marker.shape-rectangle{width:64px}.summary-rail,.table-detail-grid{grid-template-columns:1fr}.guest-row{grid-template-columns:34px minmax(0,1fr)}.guest-meta{grid-column:1/-1;grid-template-columns:repeat(2,max-content);justify-content:end}.table-health-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.guest-result strong{font-size:26px}.guest-lookup{padding:10px}.guest-search-panel{gap:12px;padding:14px}.guest-search-box{min-height:52px}.guest-result{grid-template-columns:46px minmax(0,1fr);gap:12px;min-height:86px;padding:12px}.guest-result-icon{width:46px;height:46px}}@keyframes suggestion-glow{0%,to{box-shadow:0 5px 14px rgba(var(--esf-shadow), .18)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--esf-warn) 22%, transparent), 0 12px 26px rgba(var(--esf-shadow), .2)}}@keyframes seat-pop{0%{transform:translate(-50%,-50%)scale(1)}38%{transform:translate(-50%,-50%)scale(1.38)}to{transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body{background:var(--esf-panel)!important}.workflow-main,.guest-lookup{display:none!important}.print-reports{color:#111;padding:0;font-family:Arial,sans-serif;display:block}.print-page{break-after:page;page-break-after:always}.print-page:last-child{break-after:auto;page-break-after:auto}.print-reports h1{margin:0 0 8px;font-size:22px}.print-page-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.print-page-head h1{margin:0}.print-tag{color:#111;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1px solid #111;border-radius:999px;flex:none;align-items:center;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.print-tag-planner{color:#8a5a14;border-color:#8a5a14}.print-tag-guest-safe{color:#2f5d46;border-color:#2f5d46}.print-summary{margin:0 0 16px;font-size:12px}.print-reports h2{break-after:avoid;margin:18px 0 8px;font-size:17px}.print-reports h3{margin:10px 0 4px;font-size:14px}.print-reports table{border-collapse:collapse;width:100%;font-size:12px}.print-reports th{text-align:left;border-bottom:2px solid #111;padding:5px 8px 5px 0}.print-reports td{vertical-align:top;border-bottom:1px solid #ddd;padding:5px 8px 5px 0}.print-grid.planner-list td:nth-child(3),.print-grid.planner-list th:nth-child(3),.print-grid.planner-table td:nth-child(3){width:90px}.print-grid.guest-safe td:last-child,.print-grid.guest-safe th:last-child{text-align:right;width:120px}.print-grid.planner-list td:last-child,.print-grid.planner-list th:last-child,.print-grid.planner-table td:last-child{width:220px}.print-grid.compact{margin-top:4px}.print-table{break-inside:avoid;border-bottom:1px solid #ddd;padding:4px 0 8px}.print-table p{margin:0;font-size:12px;line-height:1.4}.qr-sign{text-align:center;align-content:center;justify-items:center;min-height:95vh;display:grid}.qr-sign h1{margin:4px 0 18px;font-size:40px}.qr-sign img{width:260px;height:260px}.qr-sign p{max-width:420px;margin:18px 0 8px;font-size:18px}.qr-sign small{overflow-wrap:anywhere;max-width:520px;font-size:10px}.print-warning-list{margin:0 0 10px 18px;padding:0;font-size:12px;line-height:1.45}.print-dietary{color:#333;font-style:italic}}.event-name-input{border-radius:var(--esf-radius-sm);color:var(--esf-ink);font-family:var(--esf-display);background:0 0;border:1px solid #0000;width:100%;min-width:0;max-width:22ch;margin-top:2px;padding:2px 6px;font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.1}.event-name-input:hover{border-color:var(--esf-hair)}.event-name-input:focus-visible{border-color:var(--esf-accent);background:var(--esf-panel);outline:none}.workflow-app{display:block}.workflow-main{width:min(1180px,100%);margin:0 auto}.workflow-spine{border:1px solid var(--esf-hair);border-radius:var(--esf-radius);background:var(--esf-panel);box-shadow:0 24px 48px -32px rgba(var(--esf-shadow), .5);gap:14px;margin:0 0 18px;padding:16px;display:grid}.workflow-spine ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.spine-step button{border:1px dashed var(--esf-hair);border-radius:var(--esf-radius-sm);background:var(--esf-panel-2);width:100%;min-height:54px;color:var(--esf-muted);text-align:left;cursor:pointer;align-items:center;gap:10px;display:flex}.spine-num{border:1px solid var(--esf-hair);border-radius:var(--esf-radius-pill);background:var(--esf-panel);width:34px;height:34px;color:var(--esf-ink);font-family:var(--esf-display);font-variant-numeric:lining-nums tabular-nums;flex:0 0 34px;place-items:center;font-weight:600;display:grid}.spine-lab{gap:2px;display:grid}.spine-lab strong{color:var(--esf-ink);font-weight:600}.spine-lab small{color:var(--esf-muted)}.spine-step.is-active button{border-style:solid;border-color:var(--esf-accent);background:var(--esf-blush)}.spine-step.is-active .spine-num{border-color:var(--esf-accent);background:var(--esf-accent);color:var(--esf-accent-ink)}.spine-step.is-done button{border-style:solid;border-color:var(--esf-metal)}.spine-step.is-done .spine-num{border-color:var(--esf-metal);color:var(--esf-metal)}.spine-summary{color:var(--esf-muted);justify-content:space-between;gap:12px;font-size:.92rem;display:flex}.spine-summary strong{color:var(--esf-ink)}.spine-ready{color:var(--esf-ok)}.spine-dirty{color:var(--esf-warn)}@media (width<=640px){.workflow-main{width:100%;padding:0 14px 92px}.workflow-spine .spine-lab,.workflow-spine .spine-summary{display:none}.workflow-spine ol{justify-content:space-between}.workflow-topbar .topbar-actions .icon-button:not(.primary-action){display:none}.wizard-actions{background:var(--esf-ground);border-top:1px solid var(--esf-hair);box-shadow:0 -14px 24px -18px rgba(var(--esf-shadow), .5);margin:16px -14px 0;padding:12px 14px;position:sticky;bottom:0}.wizard-actions .icon-button{flex:1;min-width:0}}
