:root{--paper: #faf7f2;--surface: #f3ede4;--card: #ffffff;--ink: #221f1c;--muted: #7d766d;--faint: #a49c92;--line: #e4dcd1;--line-strong: #d3c8ba;--accent: #7a4b5e;--accent-soft: #f2e9ec;--warn: #a8563a;--warn-soft: #f9ede7;--ok: #4e7a4a;--radius: 8px;--serif: Georgia, "Iowan Old Style", "Times New Roman", serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overscroll-behavior:none}h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.01em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}.app{display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);height:100%}.topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--paper);flex-wrap:wrap}.topbar h1{font-size:17px}.topbar .sub{color:var(--muted);font-size:12px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.spacer{flex:1}.stats{display:flex;gap:14px;align-items:center;flex-wrap:wrap;min-width:0}.stat{display:flex;align-items:baseline;gap:5px}.stat b{font-size:15px;font-variant-numeric:tabular-nums}.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.btn{border:1px solid var(--line-strong);background:var(--card);padding:6px 11px;border-radius:var(--radius);font-size:13px;transition:background .12s,border-color .12s}.btn:hover{background:var(--surface)}.btn:active{background:var(--line)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#663f4f}.btn.ghost{border-color:transparent;background:none}.btn.ghost:hover{background:var(--surface)}.btn.danger{color:var(--warn);border-color:#e6cec2}.btn.danger:hover{background:var(--warn-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{padding:3px 8px;font-size:12px}.main{display:grid;grid-template-columns:310px minmax(0,1fr);min-height:0}.sidebar{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--paper)}.sidebar-head{padding:10px 12px;border-bottom:1px solid var(--line);display:grid;gap:8px}.search{width:100%;padding:7px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card)}.search:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.tabs{display:flex;gap:2px;background:var(--surface);padding:2px;border-radius:var(--radius)}.tabs button{flex:1;padding:5px 6px;border-radius:6px;font-size:12.5px;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--card);color:var(--ink);font-weight:600}.party-list{overflow-y:auto;padding:8px;display:grid;gap:6px;align-content:start;min-height:0}.party{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:8px 10px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color .12s,box-shadow .12s;display:flex;align-items:flex-start;gap:8px}.party-body{flex:1;min-width:0}.party-edit{flex:none;width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:13px;line-height:1;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.party-edit:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.party-edit:active{background:var(--line)}.party:hover{border-color:var(--line-strong)}.party[data-selected=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.party[data-seated=true]{opacity:.62}.party-name{font-size:13px;line-height:1.3}.party-meta{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}.pill{font-size:10.5px;padding:1px 6px;border-radius:999px;background:var(--surface);color:var(--muted);white-space:nowrap}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:4px;vertical-align:.5px}.empty{padding:24px 12px;text-align:center;color:var(--faint);font-size:13px}.canvas-wrap{position:relative;overflow:hidden;background:var(--surface);min-height:0;touch-action:none}.canvas-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(circle,#ded4c6 1px,transparent 1px);background-size:28px 28px;opacity:.5}.canvas{position:absolute;top:0;left:0;transform-origin:0 0}.room{position:absolute;background:var(--paper);border:1px solid var(--line-strong);border-radius:4px}.node{position:absolute;transform:translate(-50%,-50%)}.plate{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--card);border:2px solid var(--line-strong);display:grid;place-content:center;text-align:center;gap:2px;cursor:grab;touch-action:none}.plate.circle{border-radius:50%}.plate.rect{border-radius:6px}.plate[data-over=true]{border-color:var(--accent);background:var(--accent-soft)}.plate[data-full=true]{border-color:var(--warn)}.plate-label{font-family:var(--serif);font-size:20px;line-height:1.1}.plate-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.plate-count b{color:var(--ink);font-weight:600}.plate-count.over{color:var(--warn)}.decor{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#e8e0d4;border:1px dashed var(--line-strong);display:grid;place-content:center;color:var(--muted);font-family:var(--serif);cursor:grab;touch-action:none}.decor .plate-label{color:inherit;font-size:inherit}.decor.circle{border-radius:50%}.decor.rect{border-radius:4px}.chip{position:absolute;width:92px;height:19px;transform:translate(-50%,-50%);background:var(--card);border:1px solid var(--line);border-left-width:3px;border-radius:3px;display:flex;align-items:center;padding:0 4px;font-size:9.5px;line-height:1;white-space:nowrap;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.chip span{overflow:hidden;text-overflow:ellipsis}.chip:hover{border-color:var(--accent);z-index:5}.chip[data-selected=true]{background:var(--accent-soft);border-color:var(--accent);z-index:5}.chip[data-child=true]{font-style:italic}.controls{position:absolute;right:12px;bottom:12px;display:grid;gap:5px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px}.controls button{width:30px;height:28px;border-radius:5px;font-size:14px}.controls button:hover{background:var(--surface)}.hint{position:absolute;left:12px;bottom:12px;max-width:380px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 10px;font-size:11.5px;color:var(--muted)}.hint kbd{font:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:3px;padding:0 4px}.drag-ghost{position:fixed;z-index:200;pointer-events:none;background:var(--card);border:1px solid var(--accent);border-radius:var(--radius);padding:5px 9px;font-size:12.5px;box-shadow:0 4px 14px #221f1c29;transform:translate(10px,10px)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#221f1c2e;z-index:100}.drawer{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100vw;background:var(--paper);border-left:1px solid var(--line-strong);z-index:101;display:flex;flex-direction:column;overflow-y:auto}.drawer-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px;position:sticky;top:0;background:var(--paper)}.drawer-head h2{font-size:18px;line-height:1.25}.drawer-head>.btn{flex:none;margin-left:auto}.drawer-body{padding:14px 16px;display:grid;gap:16px;align-content:start}.field{display:grid;gap:5px}.field>label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field input,.field select,.field textarea{padding:7px 9px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);width:100%}.field textarea{resize:vertical;min-height:68px;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.size-row{display:flex;align-items:center;gap:9px}.size-row>span{font-size:12px;color:var(--muted);width:58px;flex:none}.size-row input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.size-row input[type=number]{width:76px;flex:none;text-align:right;font-variant-numeric:tabular-nums;padding:5px 7px}.menu-picker{display:grid;gap:4px}.menu-opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);text-align:left;font-size:13px}.menu-opt:hover{border-color:var(--line-strong)}.menu-opt[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.swatch{width:10px;height:10px;border-radius:3px;flex:none}.note{border-left:3px solid var(--line-strong);padding:6px 0 6px 10px;font-size:12.5px;color:var(--muted);line-height:1.45}.note.warn{border-color:var(--warn);color:var(--warn)}.divider{height:1px;background:var(--line)}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.mini-list{display:grid;gap:3px}.mini-list button{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:6px;font-size:12.5px;text-align:left;width:100%}.mini-list button:hover{background:var(--surface)}.mini-list button[aria-current=true]{background:var(--accent-soft)}.review{display:grid;gap:8px;padding:8px;overflow-y:auto;min-height:0;align-content:start}.review-item{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--card);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;line-height:1.45}.review-item[data-resolved=true]{opacity:.45;border-left-color:var(--ok)}.review-item .who{font-weight:600;display:block;margin-bottom:2px}.review-item[data-kind=mesaj]{border-left-color:var(--line-strong)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#221f1c47;z-index:150;display:grid;place-items:center;padding:20px}.modal{background:var(--paper);border-radius:10px;padding:20px;width:100%;max-width:420px;display:grid;gap:14px;border:1px solid var(--line-strong)}.modal h2{font-size:19px}.modal p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:300;background:var(--ink);color:var(--paper);padding:9px 15px;border-radius:999px;font-size:13px}.toast[data-kind=error]{background:var(--warn)}.print-root{display:none}@media print{@page{size:A4;margin:14mm}body{background:#fff;font-size:10.5pt}.app,.drawer,.drawer-backdrop,.modal-backdrop,.toast{display:none!important}.print-root{display:block}}.sheet{break-after:page;page-break-after:always}.sheet:last-child{break-after:auto;page-break-after:auto}.sheet h1{font-size:26pt;margin-bottom:4pt}.sheet h2{font-size:14pt;margin:0 0 6pt;padding-bottom:3pt;border-bottom:1px solid #999}.sheet .lead{color:#555;font-size:11pt;margin:0 0 18pt}.cover-totals{display:grid;grid-template-columns:repeat(2,1fr);gap:10pt 26pt;margin:20pt 0}.cover-totals div{display:flex;justify-content:space-between;border-bottom:1px dotted #bbb;padding-bottom:3pt}.cover-totals b{font-variant-numeric:tabular-nums}.table-grid{display:grid;grid-template-columns:1fr 1fr;gap:16pt;break-inside:avoid}.table-card{break-inside:avoid;border:1px solid #bbb;border-radius:4pt;padding:9pt 11pt}.table-card h3{font-size:13pt;display:flex;justify-content:space-between;align-items:baseline}.table-card h3 small{font-family:var(--sans);font-size:8.5pt;color:#666;font-weight:400}.table-card ol{margin:6pt 0 0;padding-left:15pt}.table-card li{font-size:9.5pt;line-height:1.5;break-inside:avoid}.table-card li .m{color:#666;font-size:8pt}.table-card li .n{display:block;color:#444;font-size:8pt;font-style:italic}.index-cols{column-count:3;column-gap:16pt;font-size:9pt}.index-cols div{break-inside:avoid;display:flex;justify-content:space-between;gap:6pt;padding:1.5pt 0;border-bottom:1px dotted #ddd}.index-cols b{font-weight:600;font-variant-numeric:tabular-nums}.kitchen{width:100%;border-collapse:collapse;font-size:9.5pt}.kitchen th,.kitchen td{border:1px solid #ccc;padding:4pt 6pt;text-align:right}.kitchen th:first-child,.kitchen td:first-child{text-align:left}.kitchen thead th{background:#f0ece6}.kitchen tfoot td{font-weight:700;background:#f7f4f0}.mobile-only{display:none}@media (max-width: 900px){.mobile-only{display:block}.topbar{gap:8px 12px;padding:8px 12px}.brand,.actions{width:100%}.stats{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.spacer{display:none}.main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:300px;z-index:90;border-right:1px solid var(--line-strong);transform:translate(-100%);transition:transform .18s}.sidebar[data-open=true]{transform:none}.drawer{width:100%}.hint{display:none}}.board{position:relative;box-sizing:border-box;padding:var(--pad);overflow:hidden;background:var(--m-bg);color:var(--m-ink);font-family:var(--m-body);display:flex;flex-direction:column;-webkit-print-color-adjust:exact;print-color-adjust:exact}.board-head{text-align:center;flex:none}.board-eyebrow{font-size:var(--eyebrow);line-height:1.2;letter-spacing:calc(1.3mm * var(--sh));text-transform:uppercase;color:var(--m-muted);margin-bottom:calc(4mm * var(--sh));text-indent:calc(-.65mm * var(--sh))}.board-couple{font-family:var(--m-display);font-size:var(--couple);line-height:1.06;font-weight:var(--m-display-weight, 400);letter-spacing:calc(var(--m-display-tracking, 0mm) * var(--sh));text-indent:calc(var(--m-display-tracking, 0mm) * var(--sh) / -2);text-transform:var(--m-couple-transform, none);color:var(--m-ink)}.board-sub{font-size:var(--sub);color:var(--m-muted);margin-top:calc(3mm * var(--sh));letter-spacing:calc(.28mm * var(--sh));text-transform:var(--m-sub-transform, none);font-variant-numeric:lining-nums}.board-rule{margin:calc(9mm * var(--sh)) auto calc(11mm * var(--sh));color:var(--m-accent)}.board-rule.hair{width:calc(38mm * var(--sh));border-top:.25mm solid var(--m-rule)}.board-rule.bar{width:calc(30mm * var(--sh));border-top:calc(1.6mm * var(--sh)) solid var(--m-accent)}.board-rule.double{width:calc(78mm * var(--sh));border-top:.5mm solid var(--m-accent);border-bottom:.2mm solid var(--m-accent);height:calc(1.4mm * var(--sh))}.board-rule.pip{width:calc(74mm * var(--sh));display:flex;align-items:center;gap:calc(3.4mm * var(--sh))}.board-rule.pip span{flex:1;border-top:.35mm solid var(--m-rule)}.board-rule.pip i{flex:none;width:calc(1.9mm * var(--sh));height:calc(1.9mm * var(--sh));background:currentColor;transform:rotate(45deg)}.board-body{flex:1;min-height:0;display:flex;flex-direction:column}.board-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:var(--m-accent);pointer-events:none}.board-head,.board-body{position:relative}.t-name{font-family:var(--m-display);font-size:var(--tname);color:var(--m-accent);letter-spacing:calc(.5mm * var(--s));text-transform:var(--m-tname-transform, none);margin-bottom:calc(2mm * var(--s));white-space:nowrap;font-variant-numeric:lining-nums}.board ul{list-style:none;margin:0;padding:0}.board li{font-size:var(--name);line-height:1.42;color:var(--m-ink);break-inside:avoid}.room-wrap{flex:1;display:flex;min-height:0}.room-inner{position:relative;width:100%;height:100%}.room-card{position:absolute;transform:translate(-50%,-50%);text-align:center;padding:0 calc(1.5mm * var(--s))}.room-card[data-head=true] .t-name{font-weight:700}.room-card .t-name{margin-bottom:calc(1.4mm * var(--s))}.room-card li{white-space:nowrap}.room-decor{position:absolute;border:.3mm dashed var(--m-rule);display:grid;place-content:center;color:var(--m-muted);font-size:calc(3.4mm * var(--s));letter-spacing:calc(.4mm * var(--s));text-align:center}.tables-grid{display:grid;gap:calc(11mm * var(--s)) calc(9mm * var(--s));align-content:space-between;flex:1}.t-card{break-inside:avoid;text-align:center}.t-card[data-head=true] .t-name{font-weight:700}.t-card[data-head=true]{grid-column:1 / -1}.alpha-wrap{flex:1;display:flex;flex-direction:column;min-height:0;gap:calc(8mm * var(--s))}.alpha-cols{column-gap:calc(9mm * var(--s));flex:1;min-height:0;column-fill:auto}.alpha-row{display:flex;align-items:baseline;gap:calc(1.5mm * var(--s));font-size:var(--name);line-height:1.55;break-inside:avoid}.alpha-row .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alpha-row .dots{flex:1;border-bottom:.18mm dotted var(--m-rule);transform:translateY(-.6mm);min-width:calc(3mm * var(--s))}.alpha-row .t{color:var(--m-accent);font-weight:600;white-space:nowrap;font-variant-numeric:lining-nums}.mini-plan{flex:none;align-self:center;height:var(--planH);width:auto;max-width:100%;color:var(--m-accent);opacity:.85}.board[data-theme=clasic]{--m-wash: .085;--m-bg: #fbf8f3;--m-ink: #1d1815;--m-muted: #7c6f63;--m-accent: #6e4b2a;--m-rule: #cbbca9;--m-display: Georgia, "Iowan Old Style", "Times New Roman", serif;--m-body: Georgia, "Times New Roman", serif;--m-tname-transform: uppercase;--m-sub-transform: uppercase}.board[data-theme=lut]{--m-wash: .095;--m-bg: #f3ebe1;--m-ink: #392a20;--m-muted: #8b7060;--m-accent: #ad5029;--m-rule: #d8c2ac;--m-display: "Palatino Linotype", "Book Antiqua", Constantia, Georgia, serif;--m-body: Constantia, Georgia, serif;--m-display-tracking: .25mm;--m-tname-transform: uppercase;--m-sub-transform: uppercase}.board[data-theme=smarald]{--m-wash: .13;--m-bg: #0e2a23;--m-ink: #f0e9da;--m-muted: #93aba1;--m-accent: #c9a961;--m-rule: #2b4c42;--m-display: Constantia, Georgia, "Palatino Linotype", serif;--m-body: Constantia, Georgia, serif;--m-display-tracking: .3mm;--m-tname-transform: uppercase;--m-sub-transform: uppercase}.board[data-theme=tipar]{--m-wash: .05;--m-bg: #f7f5f1;--m-ink: #14110d;--m-muted: #6f675c;--m-accent: #14110d;--m-rule: #cbc4b8;--m-display: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;--m-body: Georgia, "Iowan Old Style", "Times New Roman", serif;--m-display-weight: 700;--m-display-tracking: -.55mm;--m-couple-transform: uppercase;--m-tname-transform: uppercase;--m-sub-transform: uppercase}.board[data-theme=ceramica]{--m-wash: .1;--m-bg: #f2f5f6;--m-ink: #1c2c34;--m-muted: #78909b;--m-accent: #3d6c80;--m-rule: #c4d2d8;--m-display: Corbel, Candara, "Segoe UI", system-ui, sans-serif;--m-body: Corbel, Candara, "Segoe UI", system-ui, sans-serif;--m-display-tracking: 1.4mm;--m-couple-transform: uppercase;--m-tname-transform: uppercase;--m-sub-transform: uppercase}.mirror-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:160;background:var(--surface);display:grid;grid-template-columns:290px minmax(0,1fr)}.mirror-controls{background:var(--paper);border-right:1px solid var(--line);padding:14px;overflow-y:auto;display:grid;gap:14px;align-content:start}.mirror-controls h2{font-size:17px}.mirror-stage{overflow:auto;padding:26px;display:grid;place-items:start center;background:repeating-conic-gradient(#eee9e1,#eee9e1 25%,#f4efe7 0%,#f4efe7 50%) 50% / 22px 22px}.mirror-frame{flex:none;overflow:hidden}.mirror-scaler{transform-origin:top left;width:max-content}.mirror-frame .board{box-shadow:0 3px 18px #221f1c2e}.opt-grid{display:grid;gap:4px}.opt{display:flex;align-items:baseline;gap:7px;padding:7px 9px;text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);font-size:13px}.opt:hover{border-color:var(--line-strong)}.opt[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.opt small{color:var(--muted);font-weight:400;font-size:11px}.swatch-row{display:flex;gap:3px;flex:none}.swatch-row i{width:9px;height:14px;border-radius:2px;border:1px solid rgb(0 0 0 / .12)}.spec{font-size:11.5px;color:var(--muted);line-height:1.5}.spec b{color:var(--ink);font-variant-numeric:tabular-nums}@media print{body.print-mirror .app,body.print-mirror .print-root,body.print-mirror .mirror-controls,body.print-mirror .drawer,body.print-mirror .drawer-backdrop{display:none!important}body.print-mirror .mirror-modal{position:static;display:block;background:none;padding:0;inset:auto}body.print-mirror .mirror-stage{overflow:visible;padding:0;display:block;background:none}body.print-mirror .mirror-frame{width:auto!important;height:auto!important;overflow:visible}body.print-mirror .mirror-scaler{transform:none!important;width:auto}body.print-mirror .mirror-frame .board{box-shadow:none}}@media (max-width: 900px){.mirror-modal{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.mirror-controls{border-right:none;border-bottom:1px solid var(--line);max-height:46vh}}
