:root{color-scheme:light;--bg:#f4f7f6;--ink:#172126;--muted:#64727a;--soft:#8b9aa2;--paper:#ffffff;--paper-soft:#f9fbfa;--mist:#e8f0ef;--line:#d7e1df;--blue:#286182;--blue-dark:#19455f;--blue-soft:#d9eaf1;--sage:#6f856f;--sage-soft:#e5ece4;--gold:#aa7b32;--blush:#b56d69;--danger:#ad4242;--warning:#c99233;--shadow:0 18px 55px rgba(27,55,67,.10)}*{box-sizing:border-box}html{min-width:320px}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(180deg,rgba(244,247,246,.94),rgba(250,250,247,.98)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='760' viewBox='0 0 1200 760'%3E%3Crect width='1200' height='760' fill='%23f3f7f6'/%3E%3Cpath d='M0 118h1200M0 254h1200M0 390h1200M0 526h1200M0 662h1200M140 0v760M316 0v760M492 0v760M668 0v760M844 0v760M1020 0v760' stroke='%23d8e3e1' stroke-opacity='.45'/%3E%3Cpath d='M0 680c180-54 322-22 464-52 180-38 318-118 736-72v204H0z' fill='%23e4ece7' fill-opacity='.75'/%3E%3Cpath d='M0 704c270-42 396 12 610-38 154-36 316-42 590 0v94H0z' fill='%23d8e8ee' fill-opacity='.65'/%3E%3C/svg%3E");background-size:cover;background-attachment:fixed}button,input,select,textarea{font:inherit}button{min-height:38px;border:0;border-radius:7px;padding:9px 12px;background:var(--blue);color:#fff;font-weight:760;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}button:hover{background:var(--blue-dark)}button:disabled{opacity:.55;cursor:default}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:9px 10px;outline-color:var(--blue)}textarea{min-height:72px;resize:vertical;line-height:1.4}label{display:block;margin:14px 0 6px;color:var(--blue-dark);font-size:12px;font-weight:800;text-transform:uppercase}p{color:var(--muted);line-height:1.45}b,strong{color:var(--ink)}.app-shell{width:min(100%,1720px);min-height:100vh;margin:0 auto;padding:18px;display:grid;grid-template-columns:236px minmax(0,1fr);gap:18px}.app-shell.sidebar-closed{grid-template-columns:72px minmax(0,1fr)}.sidebar{position:sticky;top:18px;height:calc(100vh - 36px);border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.92);box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:12px}.brand-block{min-height:54px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}.brand-mark{width:38px;height:38px;border-radius:7px;display:grid;place-items:center;color:#fff;background:var(--blue);flex:0 0 auto}.brand-block strong{display:block;font-size:14px}.brand-block span{display:block;margin-top:2px;color:var(--muted);font-size:12px}.sidebar nav{display:grid;gap:6px}.secondary,.sidebar nav button,.sidebar-link,.sidebar-toggle{background:#fff;color:var(--ink);border:1px solid var(--line)}.sidebar nav button,.sidebar-link{justify-content:flex-start;min-height:42px}.sidebar-link{border-radius:7px;padding:9px 12px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:760}.sidebar-link:hover{background:var(--paper-soft)}.sidebar nav button.active{background:var(--blue-soft);border-color:#b9d2dc;color:var(--blue-dark)}.sidebar-toggle{margin-top:auto;width:100%}.workspace{min-width:0;display:grid;gap:14px;align-content:start}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,430px);border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.96);box-shadow:var(--shadow);padding:28px}.auth-card h1{margin-top:5px;font-size:34px}.auth-card form{margin-top:18px}.auth-mode{margin-top:8px;color:var(--muted);font-size:13px}.auth-message{margin:14px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper-soft);color:var(--blue-dark);font-weight:700}.security-card{width:min(100%,520px)}.mfa-setup{display:grid;gap:12px}.mfa-setup img{width:190px;height:190px}.mfa-setup code,.mfa-setup img{border:1px solid var(--line);border-radius:7px}.mfa-setup code{padding:9px 10px;background:var(--paper-soft);overflow-wrap:anywhere}.security-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.security-section h2{font-size:18px}.security-section p{margin:6px 0 0}.topbar{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);padding:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.eyebrow{color:var(--blue);font-size:12px;font-weight:850;text-transform:uppercase}h1,h2,h3{margin:0;color:var(--ink);letter-spacing:0}h1{margin-top:3px;font-size:clamp(28px,3vw,44px);line-height:1.03}.topbar p{max-width:760px;margin:7px 0 0;font-size:14px}.save-card{display:flex;align-items:center;gap:10px;white-space:nowrap}.save-card span{font-weight:760}.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.search-box,.toolbar{gap:10px;align-items:center}.search-box{height:44px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.9);padding:0 12px;display:flex;color:var(--blue)}.search-box input{border:0;background:transparent;padding:0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.link-card,.panel,.stat{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.stat{min-height:118px;padding:15px;display:grid;gap:8px;align-content:space-between}.stat-label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--blue);font-size:12px;font-weight:850;text-transform:uppercase}.stat strong{font-size:28px}.stat p{margin:0;font-size:12px}.command-grid,.section-grid{display:grid;gap:14px;align-items:start}.command-grid,.section-grid,.section-grid.filters-collapsed{grid-template-columns:minmax(0,1fr)}.seating-shell.filters-collapsed .seating-panel,.section-grid.filters-collapsed .side-panel{display:none}.command-grid{grid-template-columns:minmax(0,1fr) 340px}.panel{min-width:0;padding:16px}.wide-panel{grid-column:1/-1}.panel-head{margin-bottom:14px;justify-content:space-between;gap:12px}.panel-head,.panel-head>div{display:flex;align-items:center}.panel-head>div{min-width:0;gap:9px}.panel-head span{color:var(--blue);display:inline-flex}h2{font-size:17px}.side-panel{position:static}.side-panel .panel-head{margin-bottom:10px}.side-panel input,.side-panel select{max-width:280px}.side-panel textarea{max-width:720px}.top-filter-panel{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.top-filter-panel .panel-head{margin:0 10px 0 0;min-width:160px}.filter-field{display:flex;align-items:center;gap:6px}.top-filter-panel label{margin:0}.top-filter-panel .full-width{width:auto;margin-top:0}.guest-filter-panel .filter-field{margin-left:auto}.guest-filter-panel select{min-width:180px}.guest-filter-panel .filter-stack{flex:1 1 520px}.task-filter-panel .task-summary{margin:0 0 0 auto;order:10;display:flex;gap:8px}.task-filter-panel .filter-stack{align-items:flex-end}.task-filter-panel .task-summary span{min-height:38px;min-width:128px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px}.task-filter-panel .task-summary b{margin:0;font-size:16px}.budget-filter-panel .mini-total{min-width:180px}.filter-stack{display:flex;flex-wrap:wrap;gap:7px}.filter-stack button{justify-content:space-between;background:var(--paper-soft);color:var(--ink);border:1px solid var(--line);min-height:32px;padding:6px 10px}.filter-stack button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.snapshot-grid,.task-summary{display:grid;gap:10px}.task-summary{grid-template-columns:repeat(2,minmax(120px,170px));margin-bottom:12px}.count-pill,.mini-total,.snapshot-grid span,.task-summary span{border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);padding:8px 10px;color:var(--muted);font-size:12px}.mini-total strong,.snapshot-grid b,.task-summary b{display:block;color:var(--ink);font-size:17px;margin-bottom:2px}.naughty-list{overflow:auto;padding-right:4px}.naughty-list,.table-scroll.naughty-list{height:270px;max-height:270px}.naughty-table{min-width:820px}.freshness-table-wrap{margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:8px}.freshness-table{min-width:0!important;width:100%;table-layout:fixed;border:0;border-radius:0;font-size:12px}.freshness-table td,.freshness-table th{min-width:0;padding:7px 8px;white-space:normal;overflow-wrap:anywhere}.freshness-table th{resize:none;overflow:hidden}.freshness-table td:first-child,.freshness-table th:first-child{width:42%}.freshness-table td:last-child,.freshness-table th:last-child{width:58%}.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-list,.guest-list,.mini-list,.person-list,.task-board,.timeline-list,.vendor-list{display:grid;gap:10px}.mini-list{max-height:360px;overflow:auto}.mini-list button,.mini-list span{width:100%;justify-content:flex-start;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);color:var(--ink);padding:11px}.mini-list b,.mini-list span{display:block}.mini-list span{color:var(--muted);font-size:12px}.table-panel{overflow:hidden}.table-scroll{width:100%;max-height:calc(100vh - 220px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.top-tasks-table td:first-child,.top-tasks-table th:first-child{width:58%}.top-tasks-table td:nth-child(2),.top-tasks-table td:nth-child(3),.top-tasks-table td:nth-child(4),.top-tasks-table th:nth-child(2),.top-tasks-table th:nth-child(3),.top-tasks-table th:nth-child(4){width:14%}.top-tasks-table td{overflow-wrap:anywhere}.ops-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;font-size:13px}.ops-table td,.ops-table th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}.ops-table td:last-child,.ops-table th:last-child{border-right:0}.ops-table th{position:sticky;top:0;z-index:2;background:var(--mist);color:var(--blue-dark);font-size:11px;font-weight:850;text-transform:uppercase;resize:horizontal;overflow:auto;min-width:82px}.sort-header{width:100%;min-height:0;padding:0;border:0;background:transparent;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:8px;font:inherit;text-transform:inherit}.sort-header span{margin:0;color:var(--blue);font-size:10px;font-weight:900}.sort-header.active{color:var(--blue-dark)}.ops-table tbody tr:hover{background:var(--paper-soft)}.ops-table tbody tr.owner-kelly,.ops-table tbody tr.owner-kelly:hover{background:#f3f1ff}.ops-table tbody tr.owner-graysen,.ops-table tbody tr.owner-graysen:hover{background:#eff7fc}.ops-table tbody tr.owner-both,.ops-table tbody tr.owner-both:hover{background:#f5f9f0}.ops-table tbody tr.owner-other,.ops-table tbody tr.owner-other:hover{background:#fafafa}.category-chip,.owner-chip{width:max-content;max-width:100%;border-radius:999px;padding:3px 8px;border:1px solid var(--line);font-size:11px!important;font-weight:850;line-height:1.25;white-space:nowrap}.category-select{appearance:none;cursor:pointer;min-height:26px;padding-right:22px}.owner-chip{margin:0 0 6px!important}.owner-chip.owner-kelly{border-color:#cbc6f1;background:#ebe8ff;color:#504995}.owner-chip.owner-graysen{border-color:#bed8e8;background:#e4f3fb;color:#194f76}.owner-chip.owner-both{border-color:#cbdcbe;background:#eef7e7;color:#4f6f40}.owner-chip.owner-other{background:#f4f6f6;color:var(--muted)}.ops-table tbody tr[class*=timeline-category-] td:first-child{border-left:5px solid transparent}.ops-table tbody tr.timeline-category-bride-bridesmaids,.ops-table tbody tr.timeline-category-bride-bridesmaids:hover{background:#fff4f7}.ops-table tbody tr.timeline-category-groom-groomsmen,.ops-table tbody tr.timeline-category-groom-groomsmen:hover{background:#eef7fd}.ops-table tbody tr.timeline-category-ceremony,.ops-table tbody tr.timeline-category-ceremony:hover{background:#fff9ec}.ops-table tbody tr.timeline-category-photos-video,.ops-table tbody tr.timeline-category-photos-video:hover{background:#f3f1ff}.ops-table tbody tr.timeline-category-reception,.ops-table tbody tr.timeline-category-reception:hover{background:#eef7ee}.ops-table tbody tr.timeline-category-logistics-vendors,.ops-table tbody tr.timeline-category-logistics-vendors:hover{background:#f6f8f8}.ops-table tbody tr.timeline-category-bride-bridesmaids td:first-child{border-left-color:#d990ad}.ops-table tbody tr.timeline-category-groom-groomsmen td:first-child{border-left-color:#4d92bc}.ops-table tbody tr.timeline-category-ceremony td:first-child{border-left-color:#c89b45}.ops-table tbody tr.timeline-category-photos-video td:first-child{border-left-color:#8a82d8}.ops-table tbody tr.timeline-category-reception td:first-child{border-left-color:#78a66a}.ops-table tbody tr.timeline-category-logistics-vendors td:first-child{border-left-color:#8fa0a3}.category-chip.timeline-category-bride-bridesmaids{border-color:#e5b5c5;background:#fde8f0;color:#994966}.category-chip.timeline-category-groom-groomsmen{border-color:#b7d6e8;background:#e3f2fb;color:#1d5b83}.category-chip.timeline-category-ceremony{border-color:#dfc58d;background:#fff1cc;color:#7d5b16}.category-chip.timeline-category-photos-video{border-color:#cbc6f1;background:#ebe8ff;color:#504995}.category-chip.timeline-category-reception{border-color:#c0d9b8;background:#e8f5e5;color:#486d3f}.category-chip.timeline-category-logistics-vendors{border-color:#cfd9da;background:#f1f5f5;color:#52666b}.category-select{background-image:linear-gradient(45deg,transparent 50%,currentColor 0),linear-gradient(135deg,currentColor 50%,transparent 0);background-position:calc(100% - 12px) 10px,calc(100% - 8px) 10px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.ops-table tr[draggable=true]{cursor:grab}.ops-table tr.dragging-row{opacity:.55;background:var(--mist)}.ops-table td b,.ops-table td span{display:block}.ops-table td span{margin-top:2px;color:var(--muted);font-size:12px}.ops-table input,.ops-table select,.ops-table textarea{min-height:34px;padding:7px 8px;font-size:13px}.ops-table textarea{min-width:220px;min-height:52px}.standby-table{min-width:1180px}.danger-button{min-height:34px;border-color:#e4b9b9;color:#a94444;background:#fff8f8}.inline-field-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:6px;margin-top:6px}.compact-table{max-height:none;overflow-x:auto;overflow-y:visible}.compact-table .ops-table{min-width:0;table-layout:fixed}.compact-table tr{cursor:pointer}.guest-table{min-width:1260px}.timeline-table{min-width:1250px}.vendor-table{min-width:1180px}.budget-table{min-width:1240px}.task-table{min-width:1260px}.task-table td:first-child,.task-table th:first-child{width:56px;text-align:center}.task-table td:nth-child(2),.task-table th:nth-child(2){width:92px}.guest-table td:nth-child(8),.guest-table th:nth-child(8),.vendor-table td:nth-child(7),.vendor-table th:nth-child(7){min-width:320px}.budget-table td:nth-child(8),.budget-table th:nth-child(8),.timeline-table td:nth-child(7),.timeline-table th:nth-child(7){min-width:280px}.timeline-table td:nth-child(8),.timeline-table th:nth-child(8){width:112px;text-align:center}.timeline-table td:first-child,.timeline-table th:first-child{width:72px;text-align:center}.timeline-table td:nth-child(4),.timeline-table th:nth-child(4){min-width:320px}.timeline-delete-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;width:96px;padding:0 10px}.notes-list{margin:0;padding-left:18px;color:var(--muted);line-height:1.35}.notes-list li{margin:0 0 4px}.status-chip{display:inline-flex!important;width:max-content;border:1px solid var(--line);border-radius:999px;background:var(--paper-soft);padding:4px 8px;color:var(--muted);font-weight:760}.status-chip.good{border-color:#c8d7c7;background:var(--sage-soft);color:var(--sage)}.status-chip.bad{border-color:#e1c2c2;background:#fff1f1;color:var(--danger)}.row-move-buttons{display:grid;grid-template-columns:repeat(2,28px);gap:5px;justify-content:center}.icon-button{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;display:grid;place-items:center}.budget-list,.guest-list,.task-board,.timeline-list,.vendor-list{max-height:calc(100vh - 210px);overflow:auto;padding-right:4px}.task-group{border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);overflow:hidden}.task-group header{min-height:44px;padding:10px 12px;background:var(--mist);display:flex;align-items:center;justify-content:space-between;gap:10px}.task-group h3{font-size:14px}.task-group header span{min-width:30px;min-height:26px;border-radius:999px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--blue-dark);font-size:12px;font-weight:850}.task-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:12px;border-top:1px solid var(--line);background:#fff}.check-button{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border:1px solid var(--line);background:#fff;color:var(--sage)}.check-button.checked{background:var(--sage);border-color:var(--sage);color:#fff}.task-main{min-width:0;display:grid;gap:8px}.title-input{font-weight:780;color:var(--ink)}.task-fields{display:grid;grid-template-columns:130px 150px 150px minmax(170px,1fr);gap:8px}.budget-row,.guest-card,.timeline-row,.vendor-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;min-width:0}.guest-card{display:grid;gap:10px}.budget-row span,.guest-card span,.vendor-card small,.vendor-card span{color:var(--muted);font-size:12px;line-height:1.35}.people-line,.pill-row{display:flex;flex-wrap:wrap;gap:7px}.seating-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.print-run-sheet{display:none}.seating-actions button{width:100%}.pill{border:1px solid var(--line);border-radius:999px;background:var(--paper-soft);padding:5px 9px;color:var(--muted);font-size:12px}.pill.good{color:var(--sage);background:var(--sage-soft);border-color:#c8d7c7}.people-line span{border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:var(--paper-soft);color:var(--muted);font-size:12px}.seating-shell{grid-template-columns:minmax(0,1fr);align-items:start}.rehearsal-grid,.rehearsal-shell,.seating-shell{display:grid;gap:14px}.calculator-panel{overflow:visible}.calculator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;align-items:end}.rehearsal-cost-inputs{grid-template-columns:repeat(8,minmax(104px,1fr))}.number-field label{margin-top:0;white-space:nowrap}.number-field input{min-width:0}.calculator-check{min-height:38px;align-self:end;border:1px solid var(--line);border-radius:7px;background:var(--paper-soft);padding:8px 10px}.cost-note{margin:10px 0 0;line-height:1.45}.cost-note,.seated-counts{color:var(--muted);font-size:12px}.seated-counts{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);padding:8px 10px}.seated-counts b{color:var(--ink)}.cost-summary{display:grid;grid-template-columns:repeat(4,minmax(132px,1fr));gap:8px;margin-top:12px}.cost-summary span{border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);padding:9px 10px;color:var(--muted);font-size:12px}.cost-summary b{display:block;color:var(--ink);font-size:16px}.cost-summary .total{border-color:#b9d2dc;background:var(--blue-soft);color:var(--blue-dark)}.rehearsal-room{min-width:1040px;background:linear-gradient(90deg,rgba(18,83,112,.05) 1px,transparent 0),linear-gradient(rgba(18,83,112,.05) 1px,transparent 0),#fff;background-size:32px 32px}.street-label{position:absolute;color:var(--ink);font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}.street-label.west{left:455px;top:15px}.street-label.julian{left:468px;bottom:13px}.street-label.barnard{right:8px;top:360px;writing-mode:vertical-rl}.fixed-zone{position:absolute;left:18px;top:50px;width:155px;height:700px;border:2px solid rgba(16,41,52,.62);background:rgba(255,255,255,.78);pointer-events:none;display:grid;grid-template-rows:82px 82px 82px 110px 110px 1fr}.fixed-zone b,.fixed-zone span{border-bottom:1px solid rgba(16,41,52,.5);place-items:center;padding:5px;color:var(--ink);font-size:10px;line-height:1.15}.fixed-zone b,.fixed-zone span,.venue-zone{display:grid;text-align:center;text-transform:uppercase}.venue-zone{position:absolute;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.82);color:var(--blue-dark);place-items:center;font-size:11px;font-weight:850;pointer-events:none;line-height:1.2}.venue-zone.entrance{left:205px;top:130px;width:140px;height:92px}.venue-zone.entrance,.venue-zone.service-entrance{border-color:rgba(16,41,52,.45);border-radius:2px;background:rgba(255,255,255,.58)}.venue-zone.service-entrance{left:196px;top:705px;width:172px;height:48px}.venue-zone.cocktail-zone{left:365px;top:104px;width:170px;height:110px;border-style:dashed;background:rgba(255,255,255,.48)}.venue-zone.bar-zone{left:260px;top:270px;width:158px;height:220px;border-radius:2px;background:rgba(255,255,255,.7)}.venue-zone.buffet-zone{left:238px;top:540px;width:180px;height:86px;border-style:dashed;background:rgba(255,255,255,.48)}.venue-zone.divider-zone{width:28px;height:130px;border:0;border-left:5px solid rgba(16,41,52,.7);border-radius:0;background:transparent;writing-mode:vertical-rl;text-orientation:mixed}.venue-zone.divider-one{left:590px;top:252px}.venue-zone.divider-two{left:590px;top:504px}.fixed-column{position:absolute;width:16px;height:16px;border:2px solid rgba(16,41,52,.62);background:rgba(255,255,255,.9);pointer-events:none}.movable-floor{cursor:grab;z-index:2;touch-action:none}.movable-floor:active{cursor:grabbing}.movable-floor svg{color:var(--blue-dark)}.seat-dot.allergy-seat{background:var(--warning);border-color:var(--warning);color:#fff}.wedding-harbor-room{min-width:0;background:linear-gradient(90deg,rgba(18,83,112,.05) 1px,transparent 0),linear-gradient(rgba(18,83,112,.05) 1px,transparent 0),#fff;background-size:32px 32px}.room-fixture{position:absolute;border:1px solid rgba(16,41,52,.46);border-radius:4px;background:rgba(255,255,255,.82);color:var(--blue-dark);display:grid;place-items:center;text-align:center;text-transform:uppercase;font-size:10px;font-weight:850;line-height:1.15;pointer-events:none;z-index:0}.room-fixture.wall{border-radius:0;border-width:2px;border-color:rgba(16,41,52,.55);background:rgba(255,255,255,.58)}.room-fixture.station{background:#fff;border-color:rgba(126,61,54,.45);color:#7e3d36}.room-fixture.bar,.room-fixture.dj{border-color:rgba(31,95,127,.58);background:rgba(225,240,247,.9)}.room-fixture.zone{border-style:dashed;background:rgba(255,255,255,.42);color:var(--muted);z-index:-1}.room-fixture.column{border-width:2px;background:#fff}.room-fixture.scale{border:0;border-bottom:3px solid rgba(16,41,52,.72);border-radius:0;background:transparent;color:var(--ink);align-items:end;padding-bottom:5px}.room-fixture.scale:after,.room-fixture.scale:before{content:"";position:absolute;bottom:-4px;width:2px;height:10px;background:rgba(16,41,52,.72)}.room-fixture.scale:before{left:0}.room-fixture.scale:after{right:0}.print-rehearsal-list p{margin:0 0 10px}.print-rehearsal-list tr.highlight-allergy td{background:#fff4d9}@media (max-width:1450px){.rehearsal-cost-inputs{grid-template-columns:repeat(5,minmax(104px,1fr))}.cost-summary{grid-template-columns:repeat(4,minmax(120px,1fr))}}@media (max-width:900px){.seated-counts{align-items:flex-start;flex-direction:column}.cost-summary,.rehearsal-cost-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}}.seating-shell.filters-collapsed{grid-template-columns:minmax(0,1fr)}.seating-main{min-width:0;display:grid;gap:14px}.seating-panel{position:static;padding:10px 12px}.seating-panel .panel-head{margin-bottom:8px;align-items:center}.seating-head-actions{display:flex;align-items:center;gap:10px}.seating-head-actions .inline-check{margin:0;white-space:nowrap}.seating-control-row{display:grid;grid-template-columns:minmax(240px,.68fr) minmax(440px,1fr) minmax(430px,auto);gap:10px;align-items:end}.seat-search-box{position:relative;display:grid;gap:6px}.seat-search-box input{min-height:38px}.guest-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:6px;display:grid;gap:5px}.guest-search-results button,.guest-search-results span{width:100%;border:1px solid var(--line);border-radius:7px;background:var(--paper-soft);padding:8px 9px;text-align:left;justify-content:flex-start}.guest-search-results b,.guest-search-results span span{display:block}.guest-search-results button span{margin-top:2px;color:var(--muted);font-size:12px}.quick-assign-box{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(120px,.68fr) minmax(92px,.52fr) auto;gap:8px;align-items:end;min-width:0}.quick-assign-box>span{min-height:38px;border:1px solid var(--line);border-radius:7px;background:var(--paper-soft);padding:9px 10px;color:var(--blue-dark);font-weight:800;display:flex;align-items:center;overflow-wrap:anywhere}.seating-control-row .seating-actions{display:grid;grid-template-columns:repeat(4,minmax(108px,1fr));gap:6px;align-items:end}.seating-control-row .seating-actions button{min-height:34px;min-width:0;padding:7px 9px;font-size:13px}@media (max-width:1420px){.seating-control-row{grid-template-columns:minmax(240px,.8fr) minmax(390px,1fr) minmax(240px,.85fr)}.seating-control-row .seating-actions{grid-template-columns:repeat(2,minmax(112px,1fr))}}.export-message{margin:8px 0 0;color:var(--sage);font-size:12px;font-weight:760}.venue-panel{overflow:hidden}.print-seating-list{display:none}.count-pill{min-width:38px;padding:6px 10px;text-align:center;font-weight:850;color:var(--blue-dark)}.inline-check{display:flex;align-items:center;gap:8px;margin:12px 0;color:var(--ink);font-size:13px;text-transform:none}.inline-check input{width:auto}.person-list{max-height:150px;overflow:auto;padding-right:4px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.person-chip{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;cursor:grab}.person-chip b,.person-chip span{display:block}.person-chip span{margin-top:3px;color:var(--muted);font-size:12px}.room{position:relative;overflow:visible;min-width:0;transform-origin:top left;background:linear-gradient(90deg,rgba(40,97,130,.06) 1px,transparent 0),linear-gradient(180deg,rgba(40,97,130,.06) 1px,transparent 0),#fbfcfb;background-size:40px 40px}.room,.room-viewport{border:1px solid var(--line);border-radius:8px}.room-viewport{width:100%;overflow:hidden;background:#fff;display:flex;justify-content:center}.room-viewport .room{border:0;border-radius:0}.room-scale-frame{position:relative;overflow:hidden}.dance-floor{position:absolute;border:2px solid #b6cfd9;border-radius:8px;background:rgba(217,234,241,.7);color:var(--blue-dark);display:grid;place-items:center;align-content:center;gap:4px;font-weight:850;text-transform:uppercase;font-size:12px;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.venue-table{position:absolute;transform:translate(0);overflow:visible;cursor:pointer;z-index:2}.dance-floor{z-index:1}.table-body{position:relative;width:100%;height:100%;border:2px solid #b9c9c6;background:#fff;box-shadow:0 8px 22px rgba(23,33,38,.08);display:grid;place-items:center;align-content:center;gap:2px;text-align:center;padding:8px;color:var(--muted);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.table-body>:not(.connected-table-segments){position:relative;z-index:1}.venue-table.selected .table-body{border-color:var(--gold);box-shadow:0 0 0 3px rgba(170,123,50,.16),0 10px 24px rgba(23,33,38,.1)}.venue-table.round .table-body{border-radius:999px}.venue-table.rectangle .table-body{border-radius:7px}.venue-table.sweetheart .table-body{border-color:var(--blush);background:#fff7f6}.venue-table.wedding-party .table-body{border-color:#aabfcb;background:#f5fbfd}.connected-table-segments{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--table-segments,4),1fr);z-index:0;pointer-events:none}.connected-table-segments i{display:block;background:rgba(244,251,253,.94);border-right:2px solid rgba(76,112,130,.32)}.connected-table-segments i:last-child{border-right:0}.venue-table.warn .table-body{border-color:var(--warning)}.venue-table.over .table-body{border-color:var(--danger)}.table-body strong{font-size:12px}.table-body em{display:block;color:var(--muted);font-size:10px;font-style:normal;font-weight:750;line-height:1.1}.table-body span{color:var(--muted);font-size:11px}.seat-dot{position:absolute;width:20px;min-width:20px;height:20px;min-height:20px;padding:0;transform:translate(-50%,-50%);border-radius:999px;border:1px solid #b7c6c4;background:#fff;color:var(--muted);font-size:9px;font-weight:800;z-index:3}.seat-dot.filled{background:var(--blue);border-color:var(--blue);color:#fff}.seat-dot span{width:max-content;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;padding:0 4px}.table-editor{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.table-editor>div{border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);padding:10px;display:grid;grid-template-columns:minmax(0,1fr) 76px auto;gap:7px}.table-drawer{max-height:none;overflow:visible}.drawer-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start}.seat-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:12px 0}.seat-controls span{min-height:38px;border:1px solid var(--line);border-radius:7px;background:var(--paper-soft);padding:9px 10px;color:var(--blue-dark);font-weight:850;text-align:center}.table-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.table-meta span{border:1px solid var(--line);border-radius:8px;background:var(--paper-soft);padding:9px;color:var(--muted);font-size:12px}.table-meta b{display:block;font-size:15px}.seat-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.seat-assignment-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:center}.seat-assignment-row>span{color:var(--blue-dark);font-size:12px;font-weight:850}.danger{color:var(--danger);border-color:#e0bfc0;background:#fff7f7}.timeline-row{display:grid;grid-template-columns:110px minmax(220px,1.3fr) minmax(160px,.8fr) minmax(160px,.8fr);gap:8px}.timeline-row textarea{grid-column:1/-1}.budget-row{display:grid;grid-template-columns:minmax(250px,1.2fr) 130px 130px 110px 130px;gap:10px;align-items:center}.budget-row b{color:var(--gold);text-align:right}.vendor-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.vendor-card{display:grid;gap:8px}.vendor-card p,.vendor-card small{margin:0}.link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.link-card{min-height:190px;padding:16px;display:flex;flex-direction:column;gap:9px}.link-card span{color:var(--blue);font-size:12px;font-weight:850;text-transform:uppercase}.link-card p{margin:0;font-size:13px}.link-card em{align-self:flex-start;border:1px solid var(--line);border-radius:999px;background:var(--paper-soft);padding:5px 9px;color:var(--muted);font-size:12px;font-style:normal}.link-card a{margin-top:auto;color:var(--blue-dark);font-weight:800;display:inline-flex;align-items:center;gap:6px}.full-width{width:100%;margin-top:10px}.empty-state{border:1px dashed var(--line);border-radius:8px;background:var(--paper-soft);padding:24px;margin:0;text-align:center}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1120px){.app-shell,.app-shell.sidebar-closed{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sidebar-toggle{display:none}.command-grid,.seating-shell,.section-grid,.stats-grid,.topbar{grid-template-columns:1fr}.seating-panel,.side-panel{position:static}.budget-list,.guest-list,.person-list,.task-board,.timeline-list,.vendor-list{max-height:none}.seating-control-row{grid-template-columns:1fr}.seating-control-row .seating-actions{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media (max-width:760px){.app-shell{padding:10px}.budget-row,.drawer-layout,.save-card,.snapshot-grid,.table-editor>div,.task-fields,.task-summary,.timeline-row,.toolbar{grid-template-columns:1fr}.topbar{padding:14px}h1{font-size:30px}.save-card{display:grid}.task-filter-panel .task-summary,.top-filter-panel{align-items:stretch}.task-filter-panel .task-summary{width:100%;margin-left:0}.task-filter-panel .task-summary span{min-width:0;flex:1 1 140px}.compact-table .ops-table{min-width:520px}.seating-head-actions{flex-wrap:wrap;justify-content:flex-start}.quick-assign-box,.seating-control-row .seating-actions{grid-template-columns:1fr}.quick-assign-box button,.quick-assign-box select,.seat-search-box input,.seating-control-row .seating-actions button{width:100%}}@media print{@page{size:landscape;margin:.22in}body{background:#fff}.save-card,.seating-panel,.side-panel,.sidebar,.table-drawer,.table-editor,.toolbar{display:none!important}.app-shell,.seating-shell,.section-grid,.workspace{display:block;width:100%;padding:0}.link-card,.panel,.stat{box-shadow:none}body.printing-run-sheet .app-shell{display:none!important}body.printing-run-sheet .print-run-sheet{display:block;color:#172126;background:#fff;padding:0;font-size:10px}body.printing-run-sheet .print-run-sheet-header{border:1px solid #ccd8da;border-radius:6px;padding:12px 14px;margin-bottom:10px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}body.printing-run-sheet .print-run-sheet-header span{display:block;color:#19455f;font-size:9px;font-weight:850;text-transform:uppercase}body.printing-run-sheet .print-run-sheet-header h1{margin:3px 0;font-size:24px;line-height:1}body.printing-run-sheet .print-run-sheet-header p{margin:0;color:#33454d;font-size:10px}body.printing-run-sheet .print-run-sheet-meta{min-width:250px;display:grid;gap:4px;text-align:right}body.printing-run-sheet .run-sheet-legend{margin:0;padding:7px 9px;border:1px solid #ccd8da;border-bottom:0;background:#fbfdfc;display:flex;flex-wrap:wrap;gap:5px}body.printing-run-sheet .run-sheet-day{break-inside:auto;page-break-inside:auto;break-before:page;page-break-before:always;margin-bottom:0}body.printing-run-sheet .run-sheet-day:first-of-type{break-before:auto;page-break-before:auto}body.printing-run-sheet .run-sheet-day-head{break-after:avoid;page-break-after:avoid}body.printing-run-sheet .run-sheet-day h2{margin:0;padding:7px 9px;border:1px solid #ccd8da;border-bottom:0;border-radius:6px 6px 0 0;background:#edf4f3;color:#103d5a;font-size:13px;break-after:avoid;page-break-after:avoid}body.printing-run-sheet .run-sheet-day table{width:100%;border-collapse:collapse;table-layout:fixed}body.printing-run-sheet .run-sheet-day thead{display:table-header-group}body.printing-run-sheet .run-sheet-day tfoot{display:table-footer-group}body.printing-run-sheet .run-sheet-day tr{break-inside:avoid;page-break-inside:avoid}body.printing-run-sheet .run-sheet-day td,body.printing-run-sheet .run-sheet-day th{border:1px solid #ccd8da;padding:5px 6px;text-align:left;vertical-align:top}body.printing-run-sheet .run-sheet-day th{background:#f5f9f8;color:#103d5a;font-size:8px;text-transform:uppercase}body.printing-run-sheet .run-sheet-day tfoot td{background:#f7faf9;color:#52656d;font-size:8px;font-weight:850;text-align:right;text-transform:uppercase;letter-spacing:.03em}body.printing-run-sheet .run-sheet-day td:first-child,body.printing-run-sheet .run-sheet-day th:first-child{width:.62in;font-weight:850}body.printing-run-sheet .run-sheet-day td:nth-child(2),body.printing-run-sheet .run-sheet-day th:nth-child(2){width:1.1in}body.printing-run-sheet .run-sheet-day td:nth-child(3),body.printing-run-sheet .run-sheet-day th:nth-child(3){width:2.25in}body.printing-run-sheet .run-sheet-day td:nth-child(4),body.printing-run-sheet .run-sheet-day th:nth-child(4){width:1.35in}body.printing-run-sheet .run-sheet-day td:nth-child(5),body.printing-run-sheet .run-sheet-day th:nth-child(5){width:1.25in}body.printing-run-sheet .run-sheet-day ul{margin:0;padding-left:13px}body.printing-run-sheet .run-sheet-day li{margin:0 0 2px}body.printing-run-sheet .category-chip{display:inline-block;padding:2px 6px;font-size:8px!important}.room-viewport,.venue-panel{overflow:visible}.room-viewport{border:0;height:auto!important}.print-seating-list{display:block;break-before:page;page-break-before:always;padding-top:20px}.print-seating-list h2{margin:0 0 12px;font-size:20px}.print-seating-list table{width:100%;border-collapse:collapse;font-size:10px}.print-seating-list td,.print-seating-list th{border:1px solid #ccd8da;padding:4px 6px;text-align:left}.print-seating-list th{background:#edf4f3;color:#103d5a}body.printing-seating-chart .app-shell{padding:0!important}body.printing-seating-chart .workspace{gap:4px}body.printing-seating-chart .topbar{padding:3px 6px;border:0;box-shadow:none}body.printing-seating-chart .topbar h1{font-size:20px}body.printing-seating-chart .topbar p{margin-top:2px;font-size:9px}body.printing-seating-chart .venue-panel{break-after:page;page-break-after:always;border:0;padding:0;overflow:visible}body.printing-seating-chart .venue-panel .panel-head{margin-bottom:3px}body.printing-seating-chart .room-viewport{width:100%!important;height:6.55in!important;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;border:0}body.printing-seating-chart .room-scale-frame{width:10.35in!important;height:5.3in!important;overflow:visible}body.printing-seating-chart .room-viewport .room{border:0;transform:scale(.95)!important;transform-origin:top left}body.printing-seating-chart .print-seating-list tr.highlight-allergy td{background:#fff4cf}body.printing-rehearsal-chart .app-shell{padding:0!important}body.printing-rehearsal-chart .workspace{gap:4px}body.printing-rehearsal-chart .topbar{padding:5px 8px;border:0;box-shadow:none}body.printing-rehearsal-chart .topbar h1{font-size:24px}body.printing-rehearsal-chart .topbar p{margin-top:3px;font-size:10px}body.printing-rehearsal-chart .calculator-panel,body.printing-rehearsal-chart .rehearsal-panel,body.printing-rehearsal-chart .table-drawer{display:none!important}body.printing-rehearsal-chart .rehearsal-grid,body.printing-rehearsal-chart .rehearsal-shell{display:block}body.printing-rehearsal-chart .rehearsal-venue-panel{break-after:page;page-break-after:always;border:0;padding:4px;overflow:visible}body.printing-rehearsal-chart .rehearsal-venue-panel .panel-head{margin-bottom:3px}body.printing-rehearsal-chart .room-viewport{width:100%!important;height:6.35in!important;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;border:0}body.printing-rehearsal-chart .room-scale-frame{width:8.55in!important;height:6.25in!important;overflow:visible}body.printing-rehearsal-chart .room-viewport .room{border:0;transform:scale(.76)!important;transform-origin:top left}body.printing-rehearsal-chart .print-rehearsal-list{display:block;padding-top:8px}body.printing-rehearsal-chart .print-rehearsal-list h2{font-size:18px}body.printing-rehearsal-chart .print-rehearsal-list table{font-size:8.5px;table-layout:fixed}body.printing-rehearsal-chart .print-rehearsal-list td:first-child,body.printing-rehearsal-chart .print-rehearsal-list th:first-child{width:.82in}body.printing-rehearsal-chart .print-rehearsal-list td:nth-child(2),body.printing-rehearsal-chart .print-rehearsal-list th:nth-child(2){width:.38in}body.printing-rehearsal-chart .print-rehearsal-list td:nth-child(5),body.printing-rehearsal-chart .print-rehearsal-list td:nth-child(6),body.printing-rehearsal-chart .print-rehearsal-list td:nth-child(7),body.printing-rehearsal-chart .print-rehearsal-list th:nth-child(5),body.printing-rehearsal-chart .print-rehearsal-list th:nth-child(6),body.printing-rehearsal-chart .print-rehearsal-list th:nth-child(7){width:.65in}}