:root{--film:#a5cddf;--panel:#fff;--ink:#1a1a1a;--graphite:#63798a;--rule:#d3e1e9;--brand:#3a72a6;--brand-dark:#2f5d89;--brand-tint:#e7f0f7;--marker:var(--brand-tint);--marker-edge:var(--brand);--grip:#3a72a6;--link:#15c;--danger:#b3261e;--font:"Barlow Semi Condensed", "Arial Narrow", sans-serif;--step-0:.875rem;--step-1:1rem;--step-2:1.25rem;--radius:3px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:var(--step-1);color:var(--ink);background:var(--film)}button,input{font:inherit}:focus-visible{outline:2px solid var(--grip);outline-offset:2px}.shell{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid;position:relative}.topbar{background:var(--panel);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:1rem;padding:.625rem 1rem;display:flex}.title{min-width:0}.title h1{font-size:var(--step-2);margin:0;font-weight:600;line-height:1.2}.title .title-button,.title .title-input,.title .title-edit:after{border-radius:var(--radius);color:inherit;font:inherit;font-size:var(--step-2);text-align:left;cursor:text;background:0 0;border:1px solid #0000;margin:0 0 0 -.35rem;padding:.1rem .35rem;font-weight:600;line-height:1.2;display:block}.title .title-button:hover:not(:disabled){background:var(--brand-tint);border-color:var(--rule);color:inherit}.title .title-edit{max-width:100%;display:inline-grid}.title .title-edit:after{content:attr(data-value);visibility:hidden;white-space:pre;grid-area:1/1}.title .title-input{border-color:var(--brand);background:var(--panel);outline:none;grid-area:1/1;width:100%;min-width:8ch}.title .meta{font-size:var(--step-0);color:var(--graphite);margin:.125rem 0 0}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}button{border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);color:var(--ink);cursor:pointer;align-items:center;gap:.4rem;padding:.4rem .85rem;font-weight:500;display:inline-flex}button:hover:not(:disabled){border-color:var(--brand);color:var(--brand-dark)}button:disabled{color:var(--graphite);cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:var(--panel)}button.primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark);color:var(--panel)}button.primary:disabled{background:var(--rule);border-color:var(--rule);color:var(--graphite)}button.danger{color:var(--danger);border-color:currentColor}.tools{display:inline-flex}.icon{flex:none}.map-tools button,.zoom-controls button,.stepper button{justify-content:center}.tools button{border-radius:0}.tools button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.tools button:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.tools button.active{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-dark);position:relative}.status{z-index:1;max-width:min(40rem,100% - 20rem);font-size:var(--step-0);border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);padding:.4rem .75rem;line-height:1.4;position:absolute;top:4.25rem;left:1rem}.status-error{color:var(--danger)}.status-busy{color:var(--graphite)}a{color:var(--link)}.workspace{grid-template-columns:minmax(0,1fr) 18rem;min-height:0;display:grid;overflow:hidden}.canvas{touch-action:none;cursor:default;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.canvas.is-panning{cursor:grabbing}.canvas.tool-add{cursor:crosshair}.canvas.tool-pan,.canvas.tool-pan .stall{cursor:grab}.canvas.tool-pan.is-panning,.canvas.tool-pan.is-panning .stall{cursor:grabbing}.canvas-wrap{min-width:0;min-height:0;position:relative;overflow:hidden}.zoom-controls{flex-direction:column;gap:.25rem;display:flex;position:absolute;bottom:1rem;right:1rem}.zoom-controls button{background:var(--panel);min-width:2.5rem;padding:.4rem .5rem;font-weight:600;box-shadow:0 1px 3px #0000001f}.canvas{background:#fff}.canvas .fill{stroke:none;fill-rule:evenodd;pointer-events:none}.canvas .fill.pattern{fill-opacity:.3}.canvas .line{fill:none;stroke-width:.6px;pointer-events:none}.canvas .stall{fill:#0000;stroke-width:1px;cursor:move}.canvas.tool-add .stall{cursor:crosshair}.canvas .stall:hover{fill:var(--grip);fill-opacity:.1}.canvas .label{pointer-events:none;font-family:Arial,Helvetica Neue,sans-serif}.canvas .label.note{pointer-events:bounding-box;cursor:move}.canvas.tool-text,.canvas.tool-text .stall,.canvas.tool-text .label.note{cursor:text}.canvas .note-selection{fill:var(--marker);fill-opacity:.12;stroke:var(--grip);stroke-dasharray:4 3;pointer-events:none}.canvas .selection polygon{fill:var(--grip);fill-opacity:.12;stroke:var(--grip);stroke-width:2px;pointer-events:none}.canvas .grip{fill:var(--panel);stroke:var(--grip);stroke-width:1.5px;pointer-events:none}.canvas .handle{fill:var(--panel);stroke:var(--grip);stroke-width:1.5px;pointer-events:all}.canvas .handle:hover{fill:var(--grip)}.canvas .handle-e,.canvas .handle-w{cursor:ew-resize}.canvas .handle-n,.canvas .handle-s{cursor:ns-resize}.canvas .draft{fill:var(--marker);fill-opacity:.4;stroke:var(--grip);stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.sidebar{background:var(--panel);border-left:1px solid var(--rule);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.sidebar h2{font-size:var(--step-1);margin:0 0 .5rem;font-weight:600}.inspector{border-bottom:1px solid var(--rule);padding:1rem}.inspector-empty p{color:var(--graphite);margin:0;line-height:1.45}.field{gap:.25rem;display:grid}.field span{font-size:var(--step-0);color:var(--graphite)}.inspector .check{cursor:pointer;align-items:center;gap:.5rem;display:flex}.inspector .check input{width:1rem;height:1rem;accent-color:var(--brand);margin:0}.inspector .hint{font-size:var(--step-0);color:var(--graphite);margin:-.25rem 0 0}.field input{border:1px solid var(--rule);border-radius:var(--radius);background:var(--brand-tint);width:100%;min-width:0;color:var(--ink);padding:.4rem .5rem;font-size:1.5rem;font-weight:700}.facts{grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin:1rem 0;display:grid}.facts dt{font-size:var(--step-0);color:var(--graphite)}.facts dd{overflow-wrap:anywhere;margin:.1rem 0 0;font-weight:600}.layers{min-height:0;padding:1rem;overflow-y:auto}.layers ul{margin:0;padding:0;list-style:none}.layers label{font-size:var(--step-0);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.2rem 0;display:grid}.layers input{accent-color:var(--ink)}.layer-name{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.swatch{border:1px solid var(--rule);border-radius:2px;flex:none;width:.7rem;height:.7rem}.layer-count{color:var(--graphite);font-variant-numeric:tabular-nums}.empty{grid-column:1/-1;place-self:center;max-width:28rem;padding:2rem}.empty h2{margin:0 0 .5rem;font-size:2rem;font-weight:600}.empty p{color:var(--graphite);margin:0 0 1.25rem;line-height:1.45}@media (width<=760px){.workspace{grid-template-rows:1fr auto;grid-template-columns:1fr}.sidebar{border-left:0;border-top:1px solid var(--rule);max-height:40vh}.topbar{flex-direction:column;align-items:flex-start}}.size-fields{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.stepper{min-width:0;display:flex}.stepper input{text-align:center;border-radius:0;width:100%;min-width:0;font-size:1rem}.stepper button{padding:.3rem .55rem}.stepper button:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-right:-1px}.stepper button:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.hall-view{--floor:#a5cddf;--shell:#fff;--ink:#1a1a1a;--quiet:#63798a;--hair:#d3e1e9;--jade:#3a72a6;--jade-dark:#2f5d89;background:var(--floor);height:100vh;color:var(--ink);font-variant-numeric:tabular-nums;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 20rem;display:grid}.viewer-empty{text-align:center;align-content:center;justify-items:center;gap:.5rem;max-width:34rem;height:100vh;margin:0 auto;padding:2rem;display:grid}.hall-head{border-bottom:1px solid var(--hair);background:var(--shell);grid-column:1/-1;align-items:baseline;gap:1rem;padding:.9rem 1.25rem;display:flex}.hall-head h1{letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:700}.hall-head p{color:var(--quiet);margin:0}.hall-map{min-width:0;min-height:0;position:relative;overflow:hidden}.hall-canvas{background:var(--shell);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;display:block}.hall-canvas.panning{cursor:grabbing}.hall-canvas .stand{cursor:pointer;transition:filter .12s}.hall-canvas .stand.booked,.hall-canvas .stand.held,.hall-canvas .stand.filtered{cursor:default}.hall-canvas .stand.available:hover,.hall-canvas .stand.marked:hover{filter:brightness(1.12)}.hall-canvas .stand:focus{outline:none}.hall-canvas .stand:focus-visible{stroke:#fff;stroke-width:4px}.stand-labels text{font-family:var(--font);letter-spacing:-.01em}.hover-chip{background:var(--shell);border-left:3px solid var(--jade);flex-direction:column;gap:.1rem;max-width:22rem;margin:0;padding:.6rem .85rem;display:flex;position:absolute;top:1rem;left:1.25rem;box-shadow:0 2px 10px #14201b1a}.hover-chip strong{font-size:1.1rem}.hover-chip span{color:var(--quiet);font-size:var(--step-0)}.hover-chip .price{color:var(--jade-dark);font-weight:600}.hover-chip .price.booked,.hover-chip .price.held{color:var(--quiet);font-weight:500}.map-tools{flex-direction:column;gap:.25rem;display:flex;position:absolute;top:1rem;right:1rem}.map-tools button{background:var(--shell);border:1px solid var(--hair);min-width:2.4rem;padding:.35rem .5rem;font-weight:600}.filter-bar{background:var(--shell);border-top:1px solid var(--hair);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;padding:.6rem 1.25rem;display:flex;position:absolute;bottom:0;left:0;right:0}.filter-bar .key{color:var(--quiet);font-size:var(--step-0);align-items:center;gap:.4rem;display:flex}.filter-bar .key i{border-radius:2px;width:.85rem;height:.85rem;margin-left:.6rem}.filter-bar .key i:first-child{margin-left:0}.filter-bar .controls{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.chip{border:1px solid var(--hair);background:var(--shell);color:var(--quiet);border-radius:999px;padding:.3rem .7rem;font-weight:500}.chip.on{background:var(--jade);border-color:var(--jade);color:#fff}.range{font-size:var(--step-0);color:var(--quiet);white-space:nowrap;align-items:center;gap:.4rem;display:flex}.range input[type=range]{width:7rem;accent-color:var(--jade)}.rail{background:var(--shell);border-left:1px solid var(--hair);flex-direction:column;gap:.75rem;min-height:0;padding:1.1rem 1.25rem;display:flex;overflow-y:auto}.rail h2{margin:0;font-size:1.05rem;font-weight:700}.rail .empty{color:var(--quiet);margin:0;line-height:1.5}.picked{gap:.1rem;margin:0;padding:0;list-style:none;display:grid}.picked li{border-bottom:1px solid var(--hair);grid-template-columns:1fr auto auto 1.25rem;align-items:baseline;gap:.5rem;padding:.45rem 0;display:grid}.picked .no{font-weight:600}.picked .sz,.picked .fee{color:var(--quiet);font-size:var(--step-0)}.picked .fee{color:var(--ink)}.drop{color:var(--quiet);background:0 0;border:0;padding:0;font-size:1.1rem;line-height:1}.drop:hover{color:var(--ink)}.total{justify-content:space-between;align-items:baseline;margin:.25rem 0 0;display:flex}.total span{color:var(--quiet)}.total strong{font-size:1.25rem}.act{background:var(--jade);border:1px solid var(--jade);border-radius:var(--radius);color:#fff;justify-content:center;width:100%;padding:.65rem 1rem;font-weight:600}.act:hover:not(:disabled){background:var(--jade-dark);border-color:var(--jade-dark);color:#fff}.act:disabled{background:var(--quiet);border-color:var(--quiet)}.details,.confirmed{align-content:start;gap:.65rem;display:grid}.details .summary{color:var(--quiet);margin:0}.details input{border:1px solid var(--hair);border-radius:var(--radius);background:var(--shell);width:100%;min-width:0;padding:.5rem;font-size:1rem;font-weight:400}.details .row{gap:.5rem;display:flex}.details .row button:not(.act){flex:none}.fine{color:var(--quiet);font-size:var(--step-0);margin:0;line-height:1.45}.error{color:var(--danger);margin:0;line-height:1.45}@media (prefers-reduced-motion:reduce){.hall-canvas .stand{transition:none}}@media (width<=60rem){.hall-view{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.rail{border-left:0;border-top:1px solid var(--hair);max-height:45vh}}.field.company input{background:var(--panel);font-size:1rem;font-weight:500}.field.company input::placeholder{color:var(--graphite);font-weight:400}
