:root{--bg:#0b0d10;--panel:#11161c;--surface:#151b22;--text:#e8eef5;--muted:#a7b0ba;--accent:#37b679;--danger:#ef5b5b;--border:#27313d;--grid:#1e2630;--seat-bg:#0f141a;--seat-border:#32414f;--c1:#2ecc71;--c2:#3498db;--c3:#9b59b6;--c4:#e67e22;--c5:#e74c3c;--c6:#f1c40f;--c7:#1abc9c;--c8:#95a5a6;--c9:#f5f5f5}[data-theme=light]{--bg:#f6f7f9;--panel:#ffffff;--surface:#f0f3f7;--text:#1b232b;--muted:#5c6b77;--border:#d5dde6;--grid:#e4eaf1;--seat-bg:#edf1f6;--seat-border:#c4ced9;--c9:#111111}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:var(--accent);text-decoration:none}button{cursor:pointer}button,input,select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px}input[type=number],input[type=text]{width:100%}.muted{color:var(--muted)}.small{font-size:12px;color:var(--muted)}.hero-top{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.hero-top h1{text-align:center}.hero-top .theme-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%)}.hero h1{margin:0 0 10px;font-size:clamp(36px, 5vw, 56px);letter-spacing:-.02em}.hero-copy{margin:0 auto 18px;max-width:52ch;color:var(--muted);font-size:16px}.cta-row{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.cta{align-items:center;justify-content:center;background:var(--accent)}.cta-secondary{display:inline-flex;align-items:center;color:var(--text);border:1px solid var(--border);padding:10px 14px;border-radius:10px}.hero-note{margin-top:10px;color:var(--muted);font-size:13px;text-align:center}.theme-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.theme-toggle input{display:none}.theme-toggle .toggle-track{width:40px;height:22px;border-radius:999px;background:var(--border);position:relative;display:inline-flex;align-items:center;transition:background .2s}.theme-toggle .toggle-thumb{width:18px;height:18px;border-radius:50%;background:var(--surface);position:absolute;left:2px;transition:transform .2s,background .2s;box-shadow:0 2px 6px rgba(0,0,0,.2)}.theme-toggle input:checked+.toggle-track{background:var(--accent)}.theme-toggle input:checked+.toggle-track .toggle-thumb{transform:translateX(18px);background:#fff}.usp-callout{padding:12px 16px;border:1px solid var(--border);border-radius:12px;background:rgba(17,22,28,.65);text-align:center;color:var(--text)}.usp-callout strong{color:var(--accent)}.features{margin-top:24px;padding:18px;border:1px solid var(--border);border-radius:16px;background:rgba(17,22,28,.55)}.features h2{margin:0 0 12px;font-size:18px}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feature-card{position:relative;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px 14px 14px 18px;background:rgba(17,22,28,.35);border-top:2px solid var(--feature-accent,var(--accent))}.feature-card::before{content:"";position:absolute;top:12px;left:12px;width:8px;height:8px;border-radius:50%;background:var(--feature-accent,var(--accent))}.feature-card h3{margin:0 0 6px;font-size:14px;color:var(--feature-accent,var(--accent))}.feature-card p{margin:0;color:var(--muted);font-size:13px}.features[data-expanded=false] .feature-card:nth-child(n+7){display:none}.feature-card:first-child{--feature-accent:var(--c1)}.feature-card:nth-child(2){--feature-accent:var(--c2)}.feature-card:nth-child(3){--feature-accent:var(--c3)}.feature-card:nth-child(4){--feature-accent:var(--c4)}.feature-card:nth-child(5){--feature-accent:var(--c5)}.feature-card:nth-child(6){--feature-accent:var(--c6)}.feature-card:nth-child(7){--feature-accent:var(--c7)}.feature-card:nth-child(8){--feature-accent:var(--c8)}.feature-card:nth-child(9){--feature-accent:var(--accent)}.toggle{margin-top:12px;background:0 0;border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:10px}.preview{margin-top:24px;padding:18px;border:1px solid var(--border);border-radius:16px;background:rgba(17,22,28,.55)}.preview h2{margin:0 0 12px;font-size:18px}.screenshot-frame{border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(180deg,rgba(20,26,34,.9),rgba(15,20,26,.6));height:500px;display:grid;place-items:center;color:var(--muted);font-size:13px;overflow:hidden;position:relative}.carousel-track{width:100%;height:100%;position:relative;touch-action:pan-y;user-select:none}.carousel-slide{position:absolute;inset:0;opacity:0;pointer-events:none;display:grid;grid-template-rows:1fr auto;gap:8px;padding:16px;transition:opacity .2s}.carousel-slide.is-active{opacity:1;pointer-events:auto}.carousel-slide img{width:100%;height:100%;object-fit:contain;display:block;border-radius:12px;pointer-events:none;user-select:none}.carousel-slide figcaption{text-align:center;color:var(--muted);font-size:13px}.carousel-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;padding:0 8px}.carousel-btn{pointer-events:auto;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:rgba(20,26,34,.7);color:var(--text);font-size:18px;display:inline-flex;align-items:center;justify-content:center}.carousel-dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:6px}.carousel-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--border);background:0 0;padding:0}.carousel-dot.is-active{background:var(--accent);border-color:var(--accent)}[data-theme=light] .carousel-btn{background:rgba(255,255,255,.9);color:#1b232b;border-color:#cfd8e3;box-shadow:0 6px 14px rgba(15,23,42,.12)}[data-theme=light] .carousel-dot{border-color:#c0c9d6;background:rgba(27,35,43,.15)}[data-theme=light] .carousel-dot.is-active{background:#1b232b;border-color:#1b232b}.preview-note{margin:10px 0 0;color:var(--muted);font-size:13px}.faq{margin-top:24px;padding:18px;border:1px solid var(--border);border-radius:16px;background:rgba(17,22,28,.55)}.faq h2{margin:0 0 12px;font-size:18px}.faq details{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel);margin-bottom:10px}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:8px 0 0;color:var(--muted)}.footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);color:var(--muted)}.footer-note{margin:10px 0 6px}.theme-toggle-footer{display:none}[data-theme=light] .faq,[data-theme=light] .features,[data-theme=light] .preview,[data-theme=light] .usp-callout{background:rgba(255,255,255,.8)}[data-theme=light] .feature-card{border-color:rgba(0,0,0,.08);background:#fff}[data-theme=light] .screenshot-frame{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(240,243,247,.9));color:#5c6b77}@media (max-width:900px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screenshot-frame{height:260px}}@media (max-width:640px){.landing-wrap{padding:40px 0 56px}.cta-row{flex-direction:column;align-items:stretch}.cta,.cta-secondary{width:100%}.feature-grid{grid-template-columns:1fr}.screenshot-frame{height:220px}.hero-top .theme-toggle-hero{display:none}.theme-toggle-footer{display:inline-flex}.footer{display:flex;flex-direction:column;gap:8px}}.toolbar{position:sticky;top:0;z-index:50;display:flex;gap:8px;align-items:center;padding:10px;background:linear-gradient(180deg,rgba(10,12,15,.9),rgba(10,12,15,.6));border-bottom:1px solid var(--border);backdrop-filter:blur(6px)}[data-theme=light] .toolbar{background:linear-gradient(180deg,rgba(246,247,249,.95),rgba(246,247,249,.75))}.toolbar .spacer{flex:1}.wrap{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 52px)}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:12px;overflow:hidden}.section+.section{margin-top:16px}.section h2{margin:0 0 8px;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.main{position:relative;overflow:auto;background:var(--bg)}.room{position:relative;width:100%;height:100%;min-height:520px;background:repeating-linear-gradient(0deg,var(--grid) 0 1px,transparent 1px 20px),repeating-linear-gradient(90deg,var(--grid) 0 1px,var(--bg) 1px 20px);border-left:1px solid var(--border)}.room-inner{position:relative;width:100%;height:100%;transform-origin:0 0;will-change:transform}.table{position:absolute;background:var(--surface);border:2px solid var(--border);color:var(--text);user-select:none;box-shadow:0 4px 10px rgba(0,0,0,.25);display:flex;flex-direction:column;border-radius:10px;min-width:90px;min-height:90px;--table-color:var(--c1);overflow:visible}.table.round{border-radius:999px}.table.dragging{opacity:.9;box-shadow:0 10px 18px rgba(0,0,0,.4);border-color:var(--table-color)}.table .hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-bottom:1px dashed var(--border)}.table .hdr .title{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.table .hdr .controls{display:flex;align-items:center;gap:6px}.table .hdr .name{font-weight:600;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table .hdr .del{border:none;background:0 0;color:var(--muted);font-size:16px;line-height:1;padding:2px 6px}.table .hdr .del:hover{color:var(--danger)}.table .meta{display:flex;align-items:center;gap:8px;padding:6px 8px}.capacity{font-size:12px;color:var(--muted)}.capacity.ok{color:var(--accent)}.capacity.full{color:var(--danger)}.table .assignees{margin:0;padding:6px 8px 10px;list-style:none;overflow:auto;flex:1}.table .assignees li{padding:4px 6px;border:1px solid var(--border);border-radius:6px;margin:4px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface)}.table .assignees .unseat{background:0 0;border:none;color:var(--muted)}.table.drop-hint{outline:2px dashed var(--accent);outline-offset:2px}.table .color-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--border);background:var(--table-color)}.seat-mode .table .hdr{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px dashed var(--border);border-radius:12px;padding:8px 10px;background:var(--panel);box-shadow:0 8px 18px rgba(0,0,0,.25);flex-direction:column;gap:8px;text-align:center;max-width:calc(100% - 24px);border-bottom:none}.seat-mode .table .hdr .title{justify-content:center}.seat-mode .table .hdr .controls{justify-content:center;flex-wrap:wrap}.rotate-handle{position:absolute;top:-12px;right:-12px;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:grab;z-index:5}.prop .prop-controls{position:absolute;top:4px;right:4px;display:flex;gap:4px}.prop .rotate-handle{position:static;width:18px;height:18px;font-size:11px}.prop .del,.prop .edit-prop{width:18px;height:18px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer}.seats{position:absolute;inset:0;pointer-events:none;overflow:visible}.seat{position:absolute;border-radius:50%;border:1px solid var(--seat-border);background:var(--seat-bg);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--muted);pointer-events:auto}.seat.empty{color:transparent}.seat.occupied{background:var(--table-color);border-color:rgba(0,0,0,.3)}.seat.highlight{box-shadow:0 0 0 2px var(--accent)}.seat .seat-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translate(var(--lx,0),var(--ly,0));pointer-events:none;z-index:2}.seat .seat-pill{display:inline-block;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:2px 6px;font-size:11px;white-space:nowrap;box-shadow:0 6px 14px rgba(0,0,0,.35);transform:rotate(calc(-1 * var(--table-rot,0deg)))}.seat-chip{position:fixed;left:0;top:0;transform:translate(-50%,-50%);z-index:2100;pointer-events:none;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:4px 8px;box-shadow:0 12px 26px rgba(0,0,0,.45);white-space:nowrap}.palette{display:inline-flex;gap:6px}.palette .sw{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);cursor:pointer}.palette .sw[data-c="var(--c1)"]{background:var(--c1)}.palette .sw[data-c="var(--c2)"]{background:var(--c2)}.palette .sw[data-c="var(--c3)"]{background:var(--c3)}.palette .sw[data-c="var(--c4)"]{background:var(--c4)}.palette .sw[data-c="var(--c5)"]{background:var(--c5)}.palette .sw[data-c="var(--c6)"]{background:var(--c6)}.palette .sw[data-c="var(--c7)"]{background:var(--c7)}.palette .sw[data-c="var(--c8)"]{background:var(--c8)}.palette .sw[data-c="var(--c9)"]{background:var(--c9)}.palette .sw.sel{box-shadow:0 0 0 2px var(--accent)}#guestList{list-style:none;margin:8px 0 0;padding:0}.guest-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);margin:6px 0}.guest-item.dragging{opacity:.8;border-color:var(--accent);box-shadow:0 6px 12px rgba(0,0,0,.35)}.guest-item .name{flex:1;overflow:hidden;text-overflow:ellipsis}.guest-item .badge{font-size:11px;color:var(--muted);user-select:none}.row{display:flex;gap:8px;align-items:center}.row>*{flex:0 0 auto}.row .grow{flex:1 1 auto}.bad{color:var(--danger)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;background:var(--panel);border:1px solid var(--border);padding:10px 14px;border-radius:10px;box-shadow:0 12px 26px rgba(0,0,0,.4)}.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.55);z-index:1000}.modal-card{width:min(420px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 18px 40px rgba(0,0,0,.5)}.modal-card h3{margin:0 0 6px}.modal-card p{margin:0 0 12px;color:var(--muted)}.modal-card .row{justify-content:flex-end}@media (max-width:900px){.wrap{grid-template-columns:1fr}.sidebar{order:2;border-right:none;border-top:1px solid var(--border)}}@media (max-width:720px){.toolbar{flex-wrap:wrap;align-items:center;gap:6px;padding:8px}.toolbar .row{flex-wrap:wrap}.toolbar .row.grow{flex:1 1 100%;min-width:100%}#eventName{width:100%}.toolbar .row>*{flex:0 1 auto}.toolbar a,.toolbar button,.toolbar input,.toolbar select{font-size:12px;padding:6px 8px}.modal-card{width:min(520px,94vw);max-height:90vh;overflow:auto;padding:14px}.modal-card .row{flex-wrap:wrap}.modal-card .grid{grid-template-columns:1fr!important}.palette{flex-wrap:wrap}}.table{border-color:var(--table-color)!important}.table .tint{position:absolute;inset:0;border-radius:inherit;background:var(--table-color);opacity:.12;pointer-events:none}.seat{width:28px;height:28px;font-weight:600}.seat.occupied{background:var(--table-color);color:#061611}.seat-mode .table .assignees{display:none}body.read-only .hdr button{opacity:0;pointer-events:none}body.read-only .assignees .drag-handle,body.read-only .unseat{visibility:hidden}body.read-only .prop-controls,body.read-only .rotate-handle{display:none!important}body.read-only #addTable,body.read-only #openAddGuest,body.read-only #resetBtn{opacity:.5;pointer-events:none}body.read-only .guest-item,body.read-only .table{cursor:default!important}.no-select,.no-select *{user-select:none!important;-webkit-user-select:none!important;-ms-user-select:none!important}.guest-item,.guest-item *{user-select:none;-webkit-user-select:none;-moz-user-select:none}body.read-only .reorder{display:none!important}.assignees li.assignee{cursor:grab;display:flex;align-items:center;gap:8px}.assignees li.assignee .drag-handle{cursor:grab;opacity:.7}.assignees li.assignee.dragging{opacity:.6}.assignees li.placeholder{border:1px dashed var(--border);border-radius:6px;margin:4px 0}body.landing{display:block}.landing-wrap{width:min(980px,92vw);margin:0 auto;padding:0 0 64px;text-align:left}.hero{text-align:center;padding:10px 16px 20px}.landing h1{margin:0 0 10px;font-size:clamp(34px, 5vw, 54px);letter-spacing:-.02em}.tagline{margin:0 auto 18px;max-width:56ch;color:var(--muted);font-size:16px}.cta{display:inline-block;background:var(--accent);color:#051b10;padding:12px 16px;border-radius:10px;font-weight:700}.cta:hover{filter:brightness(1.05)}.note{margin-top:10px;color:var(--muted);font-size:13px}