/* Ghaat layout designer — builds on admin-ghaat-planner.css tokens (body.ghaat-planner). Desktop first:
   the two frames sit side by side and each canvas is capped by the viewport height so the whole venue is
   visible without scrolling; on phones the frames stack and the canvas fills the width. */
body.ghaat-designer .wrap{max-width:1500px}
.gd-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px}
.gd-bar-main{min-width:0;flex:1 1 360px}
.gd-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gd-title h1{margin:0;font:800 1.25rem/1.2 'Playfair Display',Georgia,serif;color:var(--ink)}
.gd-state{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.22rem .65rem;border-radius:999px;border:1px solid;background:#fff;color:var(--muted);border-color:var(--line)}
.gd-state[data-state=draft]{background:var(--part-bg);color:var(--part-ink);border-color:var(--part-line)}
.gd-state[data-state=published]{background:var(--paid-bg);color:var(--paid-ink);border-color:var(--paid-line)}
.gd-state[data-dirty=true]::after{content:' · unsaved';text-transform:none;letter-spacing:0}
.gd-plan{margin:6px 0 0;color:var(--ink-2);font-size:.9rem}
.gd-plan b{color:var(--ink)}
.gd-plan .ok{color:var(--paid-ink);font-weight:700}
.gd-plan .warn{color:var(--unpaid-ink);font-weight:700}
.gd-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.gd-actions[hidden],.gd-actions [hidden]{display:none!important}
body.ghaat-designer .notice{margin:0 0 12px}

.gd-frames{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:960px){.gd-frames{grid-template-columns:1fr 1fr}}
.gd-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 14px 14px;min-width:0}
.gd-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.gd-card-head h2{margin:0;font:800 1.05rem/1.2 'DM Sans',sans-serif;color:var(--ink)}
.gd-card-head small{display:block;color:var(--muted);font-weight:600;font-size:.78rem;margin-top:2px}
.gd-steppers{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.gd-step{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--ink-2)}
.gd-step button{width:44px;height:44px;border-radius:12px;border:1px solid #dcc3a2;background:var(--cream);color:var(--ink);font:800 1.25rem/1 'DM Sans',sans-serif;cursor:pointer}
.gd-step button:hover:not(:disabled){background:#fff1da}
.gd-step button:disabled{opacity:.45;cursor:not-allowed}
.gd-step output{min-width:1.6ch;text-align:center;font:800 1.15rem/1 'DM Sans',sans-serif;color:var(--ink)}
.gd-autospace{min-height:44px;padding:0 .8rem;border-radius:12px;border:1px solid #dcc3a2;background:var(--cream);color:#5b2a1a;font:700 .8rem/1 'DM Sans',sans-serif;cursor:pointer}
.gd-autospace:hover:not(:disabled){background:#fff1da}
.gd-autospace:disabled{opacity:.45;cursor:not-allowed}

.gd-canvas{display:block;width:min(100%,calc(100vh - 340px));min-width:300px;max-width:100%;margin:0 auto;aspect-ratio:1/1;border-radius:12px;background:#efe3cf;touch-action:pan-y;user-select:none;-webkit-user-select:none}
@media(max-width:959px){.gd-canvas{width:100%;min-width:0}}
.gd-canvas.hit .gd-pipe{stroke:#d6453a}
.gd-floor{fill:#e9dcc4}
.gd-pipe{fill:none;stroke:#2f78ae;stroke-width:.25;transition:stroke .2s}
.gd-clear{fill:rgba(31,122,69,.06);stroke:#1f7a45;stroke-width:.05;stroke-dasharray:.3 .25;pointer-events:none}
.gd-clear-note{font:700 .42px 'DM Sans',sans-serif;fill:#1f7a45;pointer-events:none;opacity:.85}
.gd-dim{font:700 .46px 'DM Sans',sans-serif;fill:#6d5240;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.gd-dim.aisle{font-size:.52px;fill:#8a6a50}
.gd-box{cursor:grab;touch-action:none;outline:none}
.gd-box.dragging{cursor:grabbing}
.gd-box rect.body{fill:#fff;stroke:#5b2a1a;stroke-width:.08;transition:stroke .15s,fill .15s}
.gd-box:hover rect.body,.gd-box:focus-visible rect.body{stroke:var(--saffron);stroke-width:.14}
.gd-box:focus-visible rect.body{stroke:var(--ring)}
.gd-box.used rect.body{fill:#fff8ea}
.gd-box line{stroke:#d8c3a5;stroke-width:.05}
.gd-cap{cursor:pointer;outline:none}
.gd-cap circle{fill:var(--maroon);stroke:#fff;stroke-width:.06}
.gd-cap text{font:800 .55px 'DM Sans',sans-serif;fill:#fff9ef;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.gd-cap.one circle{fill:#fff;stroke:var(--maroon);stroke-width:.08}
.gd-cap.one text{fill:var(--maroon)}
.gd-cap:hover circle,.gd-cap:focus-visible circle{stroke:var(--saffron);stroke-width:.12}
body.ghaat-designer[data-locked] .gd-cap{cursor:default}
.gd-letter{font:900 1px 'Playfair Display',Georgia,serif;fill:var(--maroon);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.gd-slot{font:700 .5px 'DM Sans',sans-serif;fill:#a8957e;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.gd-slot.filled{fill:var(--ink);font-weight:800}
body.ghaat-designer[data-locked] .gd-box{cursor:default}
.gd-readout{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 2px 0;font-size:.8rem;color:var(--ink-2)}
.gd-readout b{color:var(--ink)}
.gd-readout .gd-valid{font-weight:800}
.gd-valid.ok{color:var(--paid-ink)}
.gd-valid.bad{color:var(--unpaid-ink)}
.gd-help{margin:14px 2px 0;color:var(--muted);font-size:.84rem;max-width:80ch}
@media(max-width:600px){.gd-actions .btn{flex:1 1 calc(50% - 8px)}.gd-title h1{font-size:1.1rem}}
