/*
 * The blueprint drafting sheet (shared/blueprint-sheet.js): blue paper, a tile grid,
 * white line work, door swings, window panes, stairs, room labels, dimensions, the
 * title block, and the cursor and drag previews. Used by the house editor and the
 * blueprint proposal page.
 */
.sheet { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 0 0 4px #fff, 0 14px 30px rgba(29, 78, 137, 0.3); touch-action: none; user-select: none; -webkit-user-select: none; cursor: crosshair; }
.sheet:focus-visible { outline: 3px solid var(--primary-color); outline-offset: 6px; }
.sheet .paper { fill: #1D4E89; }
.sheet .grid-minor { fill: none; stroke: rgba(255, 255, 255, 0.1); stroke-width: 1; }
.sheet .grid-major { fill: none; stroke: rgba(255, 255, 255, 0.24); stroke-width: 1.2; }
.sheet .cells { fill: rgba(255, 255, 255, 0.13); }
.sheet .cells--bad { fill: rgba(255, 110, 90, 0.35); }
.sheet .cells--air { fill: url(#hatch); }
.sheet .hatch { stroke: #FFB347; stroke-width: 2.5; }
.sheet .ghost line { stroke: rgba(255, 255, 255, 0.45); stroke-width: 2; stroke-dasharray: 6 5; }
.sheet .wall-outer { stroke: #fff; stroke-width: 5; stroke-linecap: square; }
.sheet .wall-inner { stroke: #fff; stroke-width: 3; stroke-linecap: square; }
.sheet .win line { stroke: #9FE3FF; stroke-width: 1.6; }
.sheet .door line, .sheet .door path { fill: none; stroke: #fff; stroke-width: 1.6; }
.sheet .door path { stroke-dasharray: 3 3; }
.sheet .door--front line { stroke: #FFD25A; stroke-width: 2.4; }
.sheet .stairs rect { fill: rgba(255, 255, 255, 0.12); stroke: #fff; stroke-width: 1.6; }
.sheet .stairs line { stroke: rgba(255, 255, 255, 0.7); stroke-width: 1; }
.sheet .stairs--down rect { stroke-dasharray: 5 4; fill: none; }
.sheet .stairs text { fill: #fff; font: 700 10px/1 Lexend, sans-serif; text-anchor: middle; dominant-baseline: middle; }
.sheet .room-label { fill: #fff; font: 600 10px/1 Lexend, sans-serif; letter-spacing: 1px; text-anchor: middle; pointer-events: none; }
.sheet .room-label tspan { font-weight: 400; opacity: 0.8; letter-spacing: 0; }
.sheet .dim line { stroke: rgba(255, 255, 255, 0.85); stroke-width: 1.2; }
.sheet .dim text { fill: #fff; font: 600 11px/1 Lexend, sans-serif; text-anchor: middle; }
.sheet .title rect { fill: rgba(255, 255, 255, 0.06); stroke: #fff; stroke-width: 1.6; }
.sheet .title line { stroke: #fff; stroke-width: 1.2; }
.sheet .title text { fill: #fff; font: 500 11px/1 Lexend, sans-serif; }
.sheet .title .title__name { font: 400 19px/1 'Cherry Bomb One', sans-serif; fill: #FFD25A; }
.sheet .north { fill: rgba(255, 255, 255, 0.75); font: 600 11px/1 Lexend, sans-serif; letter-spacing: 1px; }
.sheet .cursor { fill: none; stroke: #FFD25A; stroke-width: 2.5; stroke-dasharray: 5 3; }
.sheet .pick { stroke-width: 2; }
.sheet .pick--floor { fill: rgba(255, 255, 255, 0.3); stroke: #fff; }
.sheet .pick--carve { fill: rgba(255, 110, 90, 0.35); stroke: #FF8A7A; }
.sheet .pick-line { stroke: #FFD25A; stroke-width: 4; stroke-linecap: round; }
.sheet .pick-line--unwall { stroke: #FF8A7A; }
.sheet .pick-edge { stroke: #FFD25A; stroke-width: 6; stroke-linecap: round; }
