/* Salão novo (salon-plan.js): abas sublinhadas, planta por ambiente, recepção por mesa livre, garçom e editor da planta.
   Cores da casa pelas variáveis do theme.css; as cores fixas são só as dos estados das mesas. */
.sn-tabs{display:flex;gap:22px;flex-wrap:wrap;margin:6px 0 18px;border-bottom:1px solid var(--line,#e2e6df)}
.sn-tabs button{position:relative;display:inline-flex;align-items:baseline;gap:6px;padding:10px 0 12px;border:0;background:none;font-size:14px;font-weight:600;color:var(--muted,#6a776e);cursor:pointer}
.sn-tabs button small{font-size:12px;font-weight:600;opacity:.75}
.sn-tabs button[aria-selected=true]{font-weight:800;color:var(--brand-primary)}
.sn-tabs button[aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px;background:var(--brand-primary)}
.sn-tabs.is-spaces{margin-top:0;gap:18px}.sn-tabs.is-spaces button{font-size:13px}
.sn-tab-add{padding:10px 0 12px;border:0;background:none;font-size:13px;font-weight:700;color:var(--brand-primary);cursor:pointer}
.sn-dot{display:inline-block;width:7px;height:7px;margin-left:2px;border-radius:50%;background:#2f6da3;align-self:center}
.sn-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.sn-layout.is-editor{grid-template-columns:minmax(0,1fr) 280px}
.sn-main{min-width:0}.sn-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.sn-side-box{padding:16px;border:1px solid var(--line,#e2e6df);border-radius:14px;background:#fff}
.sn-side-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.sn-side-head h2{margin:0;font-size:16px}.sn-side-head span{font-size:12px;color:var(--muted,#7b857e)}
.sn-muted{margin:0;font-size:13px;line-height:1.5;color:var(--muted,#7b857e)}.sn-hint{margin:0 0 10px;font-size:13px;color:var(--muted,#7b857e)}
.sn-warn{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:#fbefd9;color:#6e4e10;font-size:13px}
.sn-link{padding:0;border:0;background:none;font-size:13px;font-weight:600;color:var(--brand-primary);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.sn-link.is-danger{color:#9b2c1f}.sn-link:disabled{opacity:.45;cursor:not-allowed}
.sn-diff{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.sn-diff.is-more{background:#f9deda;color:#9b2c1f}.sn-diff.is-less{background:#fbefc8;color:#6e4e10}
.button.is-setup{background:#1f4566}
.sn-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.sn-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line,#e2e6df);border-radius:14px;background:#fff}
.sn-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.sn-card h3{margin:0;font:800 17px var(--font-display),sans-serif}.sn-card h3 small{font-weight:600;color:var(--muted,#7b857e)}.sn-card-head span{font-size:12px;color:var(--muted,#7b857e)}
.sn-card ul{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.sn-card li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px}.sn-card li.is-sug{background:#f1f7ef}
.sn-card li p{margin:0;font-size:14px}.sn-card li small{font-size:12px;color:var(--muted,#7b857e)}.sn-card li .button{padding:8px 12px;font-size:12px;flex-shrink:0}
.sn-card .sn-link{align-self:flex-start;margin-top:2px}
.sn-keys{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted,#7b857e)}.sn-keys .sn-diff{margin:0 4px 0 0}
.sn-empty{padding:22px;border:1px dashed var(--line,#d8dfd6);border-radius:14px;background:#fff}.sn-empty p{margin:6px 0 0;font-size:13px;color:var(--muted,#7b857e)}
.sn-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line,#e2e6df);border-radius:12px;background:#fff}
.sn-bar p{margin:0;font-size:14px}.sn-bar small{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--muted,#7b857e)}.sn-bar>div{display:flex;gap:8px;flex-wrap:wrap}.sn-bar .button{padding:9px 14px;font-size:13px}
.sn-bar.is-ready{border-color:#bcd8c4;background:#f1f8f3}.sn-bar.is-join{border-color:#c9d6e6;background:#eef3f9}
/* Planta: as medidas vêm do desenho (unidades) e encolhem para caber na largura da tela */
.sn-plan-wrap{container-type:inline-size;width:100%;margin:0 auto 10px}
.sn-plan{--u:calc(100cqw / var(--pw));position:relative;width:100%;height:calc(var(--u) * var(--ph));touch-action:manipulation}
.sn-plan.is-edit{border-radius:6px;outline:1px dashed var(--line,#d8dcd4);outline-offset:4px;background-image:radial-gradient(circle,rgba(0,0,0,.08) 1px,transparent 1px);background-size:calc(var(--u) * 20) calc(var(--u) * 20);touch-action:none}
/* Piso (formas somadas) e paredes, desenhados em SVG na escala do ambiente */
.sn-floor{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.sn-floor-line path{fill:none;stroke:#d6d3c8;stroke-width:6;stroke-linejoin:round}.sn-floor-fill{fill:#fbfaf6;stroke:#fbfaf6;stroke-width:2;stroke-linejoin:round}
.sn-floor-on{fill:none;stroke:var(--brand-primary);stroke-width:2;stroke-dasharray:6 4;pointer-events:none}
.sn-floor-fill.is-each{stroke:none}.sn-floor-each path{fill:none;stroke:#bdb9ab;stroke-width:1.5;pointer-events:none}
.sn-plan.is-bare{border:1px solid var(--line,#e2e6df);border-radius:14px;background-color:#fbfaf6}.sn-plan.is-edit.is-bare{background-color:transparent}
.sn-wall{fill:none;stroke:#4d544f;stroke-linecap:square}.sn-wall.is-wall{stroke-width:8}.sn-wall.is-half{stroke-width:5;stroke:#8f948d}
.sn-wall.is-glass{stroke-width:7;stroke:#8fbad0}.sn-wall-glass{stroke:#fff;stroke-width:2}.sn-wall.is-on{stroke:var(--brand-primary)}
.sn-wall-hit{stroke:transparent;stroke-width:22;stroke-linecap:round}
.sn-plan.is-step-plan .sn-floor-fill path,.sn-plan.is-step-plan .sn-wall-hit{pointer-events:auto;cursor:grab}
.sn-plan.is-step-plan .sn-piece{opacity:.35;pointer-events:none}.sn-plan.is-step-tables .sn-fix{pointer-events:none;opacity:.8}
.sn-plan.is-draw,.sn-plan.is-draw *{cursor:crosshair!important}
.sn-handle{position:absolute;z-index:3;left:calc(var(--u) * var(--x));top:calc(var(--u) * var(--y));width:18px;height:18px;margin:-9px 0 0 -9px;box-sizing:border-box;border:3px solid var(--brand-primary);border-radius:50%;background:#fff;cursor:nwse-resize;touch-action:none}
.sn-handle[data-end]{cursor:move}.sn-handle.is-rot{cursor:grab;border-radius:50%;background:var(--brand-primary)}
.sn-piece.is-out{outline:2px dashed #b3412e;outline-offset:3px}.sn-warn{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#fbeee9;color:#8a2a1a;font-size:13px;line-height:1.45}
.sn-plan-empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-size:13px;color:var(--muted,#7b857e)}
.sn-piece,.sn-fix{position:absolute;left:calc(var(--u) * var(--x));top:calc(var(--u) * var(--y));width:calc(var(--u) * var(--w));height:calc(var(--u) * var(--h));box-sizing:border-box}
.sn-piece{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u) * 1);padding:calc(var(--u) * 4);border:2px solid #7fb38a;border-radius:calc(var(--u) * 14);background:#fff;color:#1e4a2a;font-size:calc(var(--u) * 11);line-height:1.1;text-align:center;cursor:pointer;overflow:hidden}
.sn-piece b{font:800 calc(var(--u) * 22) var(--font-display),sans-serif;line-height:1}.sn-piece small{font-size:calc(var(--u) * 10);opacity:.8}.sn-piece span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.sn-piece.is-round{border-radius:50%}
.sn-piece.is-setup{border-style:dashed;border-color:#a992d6;background:#ece6f7;color:#4a2f7a}.sn-piece.is-ready{border-color:#2f7d45;background:#cdebd3;color:#1e4a2a}
.sn-piece.is-reserved{border-color:#7fa3c6;background:#d9e6f4;color:#173a5a}.sn-piece.is-occupied{border-color:#d9b977;background:#f6e3b8;color:#5a3f0c}
.sn-piece.is-cleaning{border-color:#bdbfb6;background:#ebebe6;color:#3e423a}.sn-piece.is-blocked{border-color:#6b6e66;background:#cfd0cb;color:#2b2e29}
.sn-piece.is-joined{box-shadow:0 0 0 calc(var(--u) * 3) rgba(31,69,102,.18)}
.sn-piece.is-picked{border:3px solid #1f4566;background:#1f4566;color:#fff}.sn-piece.is-on{outline:3px solid var(--brand-primary);outline-offset:2px}
.sn-piece.is-dim{opacity:.45;cursor:default}
.sn-chain{position:absolute;top:calc(var(--u) * 3);right:calc(var(--u) * 4);font-style:normal;font-size:calc(var(--u) * 9);font-weight:700;opacity:.8}
.sn-fix{display:grid;place-items:center;border:1px solid #cfcdc2;border-radius:calc(var(--u) * 8);background:#efede6;color:#5e6660;font-size:calc(var(--u) * 12);font-weight:700;text-align:center;line-height:1.1;overflow:hidden;transform:rotate(calc(var(--r,0) * 1deg))}
.sn-fix.is-text{border-color:transparent;background:none;color:#4d544f;font-size:calc(var(--u) * var(--h) * .55);white-space:nowrap;overflow:visible}
.sn-plan.is-edit .sn-piece,.sn-plan.is-edit .sn-fix{cursor:grab;touch-action:none;user-select:none}.sn-fix.is-on{outline:3px solid var(--brand-primary);outline-offset:2px}
.sn-legend{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted,#6a776e)}.sn-legend li{display:flex;align-items:center;gap:5px}
.sn-legend i{width:12px;height:12px;border-radius:4px;border:2px solid #7fb38a;background:#fff}.sn-legend i.is-setup{border:2px dashed #a992d6;background:#ece6f7}.sn-legend i.is-ready{border-color:#2f7d45;background:#cdebd3}.sn-legend i.is-reserved{border-color:#7fa3c6;background:#d9e6f4}.sn-legend i.is-occupied{border-color:#d9b977;background:#f6e3b8}.sn-legend i.is-cleaning{border-color:#bdbfb6;background:#ebebe6}.sn-legend i.is-blocked{border-color:#6b6e66;background:#cfd0cb}
/* Fila e quadros da recepção */
.sn-queue,.sn-flow{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.sn-queue li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px;border-radius:10px}.sn-queue li.is-on{background:#1f4566}.sn-queue li.is-on *{color:#fff}
.sn-q-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:4px;border:0;background:none;text-align:left;cursor:pointer;color:inherit}.sn-q-main b{font-size:14px}.sn-q-main small{display:block;font-size:12px;color:var(--muted,#7b857e)}
.sn-q-pos{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--line,#edf0e9);font-weight:800;font-size:13px}
.sn-queue li .button{padding:7px 10px;font-size:12px}.sn-queue li .button .sn-diff{margin:0 6px 0 0}.sn-q-out{margin-left:auto;font-size:12px}
.sn-flow li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line,#edf0e9)}.sn-flow li:first-child{border-top:0}
.sn-flow p{margin:0;font-size:14px}.sn-flow small{font-size:12px;color:var(--muted,#7b857e)}
.sn-acts{display:flex;gap:6px;flex-wrap:wrap}.sn-acts .button{padding:8px 12px;font-size:12px}.sn-acts.is-col{flex-direction:column;align-items:stretch;margin-top:10px}
/* Garçom */
.sn-todo{margin:0 0 16px;padding:14px 16px;border:1px solid #c9d6e6;border-radius:14px;background:#eef3f9}.sn-todo h2{margin:0 0 8px;font-size:16px;color:#173a5a}
.sn-todo ul{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.sn-todo li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sn-todo p{margin:0}.sn-todo small{font-size:12px;color:#3b5875}
.sn-panel p{margin:4px 0;font-size:14px}.sn-close{width:32px;height:32px;border:1px solid var(--line,#e2e6df);border-radius:8px;background:#fff;cursor:pointer}
.sn-st{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#fff;border:1px solid #7fb38a;color:#1e4a2a}
.sn-st.is-setup{background:#ece6f7;border-color:#a992d6;color:#4a2f7a}.sn-st.is-ready{background:#cdebd3;border-color:#2f7d45}.sn-st.is-reserved{background:#d9e6f4;border-color:#7fa3c6;color:#173a5a}.sn-st.is-occupied{background:#f6e3b8;border-color:#d9b977;color:#5a3f0c}.sn-st.is-cleaning{background:#ebebe6;border-color:#bdbfb6;color:#3e423a}.sn-st.is-blocked{background:#cfd0cb;border-color:#6b6e66;color:#2b2e29}
.sn-history{margin-top:22px}.sn-history summary{cursor:pointer;font-weight:700;color:var(--brand-primary)}
/* Editor da planta: etapas, ferramentas e lista de peças */
.sn-steps{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.sn-steps button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border:1px solid var(--line,#d8dfd6);border-radius:999px;background:#fff;font-size:13px;font-weight:700;color:var(--muted,#5f6a62);cursor:pointer}
.sn-steps button b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--line,#edf0e9);font-size:12px}
.sn-steps button[aria-selected=true]{border-color:var(--brand-primary);color:var(--brand-primary)}.sn-steps button[aria-selected=true] b{background:var(--brand-primary);color:var(--brand-on-primary,#fff)}
.sn-tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.sn-tools .button{padding:8px 12px;font-size:12px}
.sn-tools.is-plan{flex-direction:column;gap:8px}.sn-tool-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sn-tool-row>span{flex:0 0 150px;font-size:12px;font-weight:700;color:var(--muted,#6a776e)}
.sn-deg{display:inline-flex;align-items:center;gap:2px;margin:0;font-size:13px;font-weight:700}.sn-deg input{width:58px;min-height:36px;padding:0 6px;text-align:right}
.sn-field.is-col{flex-direction:column;align-items:stretch;gap:6px}.sn-seg.is-wrap{flex-wrap:wrap}.sn-seg.is-wrap button{min-height:32px;font-size:12px}
.sn-pieces>span{display:block;margin:0 0 6px;font-size:13px;font-weight:700}.sn-pieces div{display:flex;flex-wrap:wrap;gap:6px}
.sn-pieces button{padding:5px 10px;border:1px solid var(--line,#d8dfd6);border-radius:999px;background:#fff;font-size:12px;cursor:pointer}.sn-pieces button:hover{border-color:var(--brand-primary)}
.sn-ed-panel{display:flex;flex-direction:column;gap:12px}.sn-ed-panel h3{margin:0;font-size:16px}.sn-ed-panel label{margin:0}
.sn-field{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.sn-seg{display:flex;gap:4px}.sn-seg button{min-width:40px;min-height:36px;padding:0 10px;border:1px solid var(--line,#d8dfd6);border-radius:8px;background:#fff;font-weight:700;cursor:pointer}
.sn-seg button[aria-pressed=true]{border-color:var(--brand-primary);background:var(--brand-primary);color:var(--brand-on-primary,#fff)}.sn-seg button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1000px){.sn-layout,.sn-layout.is-editor{grid-template-columns:1fr}.sn-side{order:2}}
@media(max-width:650px){.sn-tabs{gap:16px}.sn-cards{grid-template-columns:1fr}.sn-card li{padding:8px}.sn-bar{align-items:flex-start}.sn-layout{gap:14px}.sn-tool-row>span{flex-basis:100%}}
/* Editor: ícones das ferramentas, vazios e zoom */
.sn-tools.is-icons{flex-direction:row;flex-wrap:wrap;gap:10px 18px}.sn-tool-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.sn-tool-group>span{width:100%;margin:0 0 2px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#6a776e)}
.sn-ico-btn{display:grid;place-items:center;width:44px;height:38px;padding:0;border:1px solid var(--line,#d8dfd6);border-radius:9px;background:#fff;color:#5e6660;cursor:pointer}
.sn-ico-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.sn-ico-btn[aria-pressed=true]{border-color:var(--brand-primary);background:var(--brand-primary);color:var(--brand-on-primary,#fff)}
.sn-ico{width:30px;height:22px;overflow:visible}.sn-ico path{fill:#efede6;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.sn-ico.is-hole path{fill:rgba(179,65,46,.08);stroke:#b3412e;stroke-dasharray:3 2}.sn-ico.is-wall line{stroke:currentColor;stroke-width:3.5;stroke-linecap:round}.sn-ico.is-wall circle{fill:#fff;stroke:currentColor;stroke-width:1.5}
.sn-ico.is-text text{fill:currentColor;font:800 15px var(--font-body),sans-serif}
.sn-seg.is-icons button{min-width:44px;padding:0 6px;color:#5e6660}.sn-seg.is-icons button[aria-pressed=true] .sn-ico path{fill:rgba(255,255,255,.25);stroke:currentColor}
.sn-hole path{fill:rgba(179,65,46,.07);stroke:#b3412e;stroke-width:2;stroke-dasharray:8 5}.sn-plan.is-step-plan .sn-hole path{pointer-events:auto;cursor:grab}
.sn-plan:not(.is-edit) .sn-hole path{fill:#fff;stroke:#c9c6bb;stroke-dasharray:6 4}.sn-hole-line path{fill:none;stroke:#d6d3c8;stroke-width:2.5}
.sn-zoom{display:flex;align-items:center;gap:4px;margin:0 0 8px}.sn-zoom button{min-width:36px;height:32px;padding:0 10px;border:1px solid var(--line,#d8dfd6);border-radius:8px;background:#fff;font-weight:700;cursor:pointer}.sn-zoom button:disabled{opacity:.4;cursor:not-allowed}
.sn-zoom small{margin-left:8px;font-size:12px;color:var(--muted,#7b857e)}
.sn-zoom-scroll{overflow:auto;max-height:78vh;padding:12px;border-radius:10px;background:rgba(0,0,0,.02)}.sn-zoom-scroll .sn-plan-wrap{min-width:0;margin:0}
.sn-num{width:76px;min-height:36px;padding:0 6px;text-align:right}
@media(max-width:1200px){.sn-layout.is-editor{grid-template-columns:1fr}}
/* Etapa 1: folha com espaço livre e o tracejado do retângulo das mesas. Etapa 2: grade só no piso, fora dele nada aceita mesa. */
.sn-zoom-scroll.is-sheet{height:min(70vh,640px);max-height:none;padding:0}
.sn-plan.is-step-plan{outline:0}
.sn-sheet{position:absolute;left:calc(var(--u) * var(--x));top:calc(var(--u) * var(--y));width:calc(var(--u) * var(--w));height:calc(var(--u) * var(--h));outline:1.5px dashed rgba(31,69,102,.35);border-radius:4px}
.sn-plan.is-step-tables{background-image:none}
.sn-plan.is-step-tables:not(.is-bare) .sn-floor-fill path{fill:#fbfaf6}
.sn-ico.is-table rect,.sn-ico.is-table circle{fill:currentColor;stroke:none;opacity:.55}.sn-ico.is-table .sn-ico-tb{fill:#fff;stroke:currentColor;stroke-width:1.6;opacity:1}
.sn-seg.is-icons button[aria-pressed=true] .sn-ico.is-table .sn-ico-tb{fill:transparent}
/* Barra de ferramentas dentro do quadro do desenho; arrastar um botão até a planta cria a peça onde soltar */
.sn-canvas{border:1px solid var(--line,#e2e6df);border-radius:14px;background:#fff;overflow:hidden}
.sn-canvas-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 18px;padding:10px 12px;border-bottom:1px solid var(--line,#e2e6df);background:#fbfbf8}
.sn-canvas-bar .sn-tools{margin:0;flex:1 1 auto}.sn-canvas-bar .sn-zoom{margin:0 0 0 auto}
.sn-canvas .sn-zoom-scroll{border-radius:0;background:#fdfdfb}.sn-canvas .sn-zoom-scroll:not(.is-sheet){padding:12px}
.sn-ico-btn{touch-action:none;cursor:grab}.sn-ico-btn:active{cursor:grabbing}
.sn-plan.is-drop{box-shadow:inset 0 0 0 3px rgba(31,69,102,.25)}
.sn-ghost{position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-50%);opacity:.85;box-sizing:border-box}
.sn-ghost svg{display:block;width:100%;height:100%;overflow:visible}.sn-ghost svg path{fill:#fbfaf6;stroke:#8f948d;stroke-width:2;vector-effect:non-scaling-stroke}
.sn-ghost.is-hole svg path{fill:rgba(179,65,46,.12);stroke:#b3412e;stroke-dasharray:6 4}
.sn-ghost.is-table{border:2px solid #7fb38a;border-radius:12px;background:#fff}.sn-ghost.is-table.is-round{border-radius:50%}
.sn-ghost.is-text{display:grid;place-items:center;font-weight:700;color:#4d544f;white-space:nowrap}
.sn-ghost.is-wall{background:#4d544f;border-radius:2px}
