.rlp{--bg:var(--page-bg);--panel:var(--page-surface);--field:oklch(17.5% 0 0);--fg:var(--page-ink);--muted:var(--page-muted);--line:var(--page-line-strong);--accent:var(--brand-blue);--accent-fg:var(--page-bg);--grid:oklch(27.5% 0 0);--grid-strong:oklch(32% 0 0);--room:var(--page-surface);--wall:var(--page-ink);--bad:var(--brand-red);--warn:var(--brand-amber);--ok:var(--brand-green);--c1:#6fa3ee;--c2:#43c2b2;--c3:#85c566;--c4:#e8b947;--c5:#f0955a;--c6:#ec7392;--c7:#ae8ceb;--c8:#9badb6;--font-ui:"Geist Sans", ui-sans-serif, system-ui, sans-serif;--font-head:var(--font-ui);--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color:var(--fg);font:14px/1.45 var(--font-ui)}.rlp .print-palette{--bg:#fff;--fg:#172126;--muted:#55656c;--line:#d2dadc;--accent:#1b6e8c;--accent-fg:#fff;--grid:#e3e9ea;--grid-strong:#cad4d7;--room:#fbfcfc;--wall:#172126;--bad:#c23b3b;--warn:#b07a14;--ok:#2b8a57;--c1:#3b7dd8;--c2:#1e9e8f;--c3:#5ba23c;--c4:#d49a1a;--c5:#e0732b;--c6:#d2486a;--c7:#8a5fd0;--c8:#6b7c85}.rlp button,.rlp input,.rlp select,.rlp textarea{font:inherit;color:inherit}.rlp h2{font-family:var(--font-head);margin:0;font-weight:600}.rlp .top{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin:0 0 20px;display:flex}.rlp .top-actions{flex-wrap:wrap;gap:8px;display:flex}.rlp .app{grid-template-columns:minmax(300px,360px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.rlp .panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;min-width:0}.rlp .stage{min-width:0;position:sticky;top:4.5rem}@media (width<=860px){.rlp .app{grid-template-columns:minmax(0,1fr)}.rlp .stage{order:-1;position:static}}.rlp .block{border-top:1px solid var(--line);padding:16px}.rlp .block:first-child{border-top:0}.rlp .block>h2,.rlp .io>summary{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.rlp .io>summary{cursor:pointer;margin-bottom:0;list-style-position:inside}.rlp .io[open]>summary{margin-bottom:12px}.rlp .count{font-family:var(--font-mono);letter-spacing:0;text-transform:none;font-size:12px}.rlp label{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12.5px;font-weight:500;display:flex}.rlp label .hint{opacity:.85;font-weight:400}.rlp input[type=text],.rlp input[type=number],.rlp select,.rlp textarea{background:var(--field);width:100%;min-width:0;height:34px;color:var(--fg);border:1px solid var(--line);font-family:var(--font-mono);border-radius:4px;padding:0 10px;font-size:13px}.rlp select,.rlp input[type=text]#edName,.rlp input[type=text]#cName{font-family:var(--font-ui);font-size:13.5px}.rlp textarea{resize:vertical;height:auto;padding:8px 10px;line-height:1.4}.rlp input.invalid{border-color:var(--bad)}.rlp :focus-visible{outline:2px solid color-mix(in oklch, var(--page-ink) 60%, transparent);outline-offset:1px}.rlp .row2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.rlp .full{margin-bottom:10px}.rlp .note{color:var(--muted);margin:0 0 10px;font-size:12.5px}.rlp .note.err{color:var(--bad)}.rlp .chk{color:var(--fg);flex-direction:row;align-items:center;gap:8px;font-size:13px;font-weight:400}.rlp .chk input{width:16px;height:16px;accent-color:var(--accent);margin:0}.rlp .checks{gap:6px;margin-top:4px;display:grid}.rlp .walls{border:0;grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;gap:4px 12px;margin:0 0 10px;padding:0;display:grid}.rlp .walls legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:12.5px;font-weight:500}.rlp .btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:4px;height:34px;padding:0 14px;font-size:13px;font-weight:500}.rlp .btn:hover:not(:disabled){border-color:var(--page-line-hover);background:var(--page-panel)}.rlp .btn:disabled{opacity:.45;cursor:default}.rlp .btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.rlp .btn.primary:hover:not(:disabled){background:var(--fg);color:var(--bg);border-color:var(--fg);filter:brightness(1.08)}.rlp .btn.armed{border-color:var(--bad);color:var(--bad)}.rlp .btnrow{flex-wrap:wrap;gap:8px;display:flex}.rlp .btngroup{display:flex}.rlp .btngroup .btn{border-radius:0;margin-left:-1px;padding:0 12px}.rlp .btngroup .btn:first-child{border-radius:4px 0 0 4px;margin-left:0}.rlp .btngroup .btn:last-child{border-radius:0 4px 4px 0}.rlp .btngroup .btn:hover:not(:disabled){z-index:1;position:relative}.rlp .addrow{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px;display:grid}.rlp .custom{border-top:1px dashed var(--line);padding-top:10px}.rlp .custom>summary{cursor:pointer;color:var(--fg);margin-bottom:10px;font-weight:500}.rlp .custom[open]>summary{margin-bottom:12px}.rlp .swatches{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.rlp .sw{background:var(--sw);cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.rlp .sw[aria-pressed=true]{border-color:var(--fg);box-shadow:0 0 0 2px var(--panel) inset}.rlp .list{gap:2px;margin:0 -8px;display:grid}.rlp .li{border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px;display:grid}.rlp .liMain{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:7px 8px;display:grid}.rlp .liDel{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;margin-right:4px;font-size:20px;line-height:1}.rlp .liDel:hover{color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, transparent)}.rlp .li:hover{background:var(--page-panel)}.rlp .li.on{background:color-mix(in oklch, var(--fg) 12%, transparent)}.rlp .li .dot{background:var(--ic);border-radius:3px;width:12px;height:12px}.rlp .li .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.rlp .li .sz{font-family:var(--font-mono);color:var(--muted);font-size:12px;display:block}.rlp .chip{white-space:nowrap;border:1px solid;border-radius:10px;padding:1px 7px;font-size:11.5px;font-weight:600}.rlp .chip.bad{color:var(--bad)}.rlp .chip.warn{color:var(--warn)}.rlp .chip.lock{color:var(--muted);border-style:dashed}.rlp .empty{color:var(--muted);margin:0;font-size:13px}.rlp .keys{grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:12px 0 0;font-size:13px;display:grid}.rlp .keys dt{font-family:var(--font-mono);color:var(--fg);white-space:nowrap;font-size:12px}.rlp .keys dd{color:var(--muted);margin:0}.rlp .stagehead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 18px;margin-bottom:8px;display:flex}.rlp .stats{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.rlp .stats b{color:var(--fg);font-weight:500}.rlp .issues{font-size:13px;font-weight:600}.rlp .issues.ok{color:var(--ok)}.rlp .issues.bad{color:var(--bad)}.rlp .banner{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);margin:0 0 8px;padding:6px 10px;font-size:13px}.rlp .banner.err{border-left-color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, transparent);color:var(--bad)}.rlp .canvaswrap{background:var(--bg);justify-content:center;min-width:0;display:flex}.rlp #plan{-webkit-user-select:none;user-select:none;max-width:100%;display:block}.rlp .selbar{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:8px;padding:8px 0;display:flex}.rlp .selinfo{min-width:0;font-size:13px}.rlp .selinfo .mono{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.rlp .selbtns{flex-wrap:wrap;gap:6px;display:flex}.rlp .selbtns .btn{height:30px;padding:0 10px}.rlp .legend{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:4px 0 0;font-size:12px;display:flex}.rlp .legend i{vertical-align:-1px;border:1.5px solid;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.rlp .hintline{color:var(--muted);max-width:90ch;margin:8px 0 0;font-size:12px}.rlp #msg{color:var(--ok);min-height:18px;margin:8px 0 0;font-size:12.5px}.rlp .tabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.rlp .tab{border:1px solid var(--line);background:var(--panel);border-radius:4px;align-items:stretch;gap:4px;display:inline-flex}.rlp .tab.on{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg) inset}.rlp .tbtn{cursor:pointer;color:var(--fg);white-space:nowrap;background:0 0;border:0;padding:6px 12px;font-size:13px;font-weight:500}.rlp .tab.on .tbtn{color:var(--fg)}.rlp .tab.newbtn{border-style:dashed}.rlp .tab.newbtn .tbtn{color:var(--muted);height:auto}.rlp .tab.newbtn:hover .tbtn{color:var(--fg)}.rlp .x{color:var(--muted);cursor:pointer;border:0;border-left:1px solid var(--line);background:0 0;padding:0 8px;font-size:17px;line-height:1}.rlp .x.armed{color:var(--bad)}.rlp .tab input{width:110px;height:26px;margin:3px 8px;padding:0 6px}.rlp .room{fill:var(--room)}.rlp .grid line{stroke:var(--grid);stroke-width:1px;vector-effect:non-scaling-stroke}.rlp .grid line.strong{stroke:var(--grid-strong)}.rlp .wall{fill:none;stroke:var(--wall);stroke-width:3px;vector-effect:non-scaling-stroke}.rlp .dim line{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.rlp .dimtext{fill:var(--muted);font-family:var(--font-mono);paint-order:stroke;stroke:var(--bg);stroke-linejoin:round}.rlp .gap line{stroke:var(--accent);stroke-width:1.25px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.rlp .gaptext{fill:var(--accent);font-family:var(--font-mono);paint-order:stroke;stroke:var(--room);stroke-linejoin:round;font-weight:500}.rlp .halo{fill:none;stroke:var(--warn);stroke-opacity:.2;stroke-linejoin:round;pointer-events:none}.rlp .item{cursor:grab;touch-action:none}.rlp .item.locked{cursor:default}.rlp .item .body{fill:color-mix(in srgb, var(--ic) 24%, var(--room));stroke:var(--ic);stroke-width:1.5px;vector-effect:non-scaling-stroke}.rlp .item.flat .body{fill:color-mix(in srgb, var(--ic) 13%, var(--room));stroke-dasharray:6 3}.rlp .item.locked .body{fill:color-mix(in srgb, var(--ic) 42%, var(--room))}.rlp .item.bad .body{stroke:var(--bad);fill:color-mix(in srgb, var(--bad) 28%, var(--room))}.rlp .item.warn .body{stroke:var(--warn);fill:color-mix(in srgb, var(--warn) 26%, var(--room))}.rlp .item .tick{stroke:var(--ic);stroke-width:3px;stroke-linecap:round;opacity:.85;vector-effect:non-scaling-stroke}.rlp .item text{fill:var(--fg);font-family:var(--font-ui);pointer-events:none;font-weight:500}.rlp .item text.dims{font-family:var(--font-mono);fill:var(--muted);font-weight:400}.rlp .selbox{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.rlp .frame{fill:var(--room);stroke:none}.rlp .jamb{stroke:var(--wall);stroke-width:2px;vector-effect:non-scaling-stroke}.rlp .swing{fill:color-mix(in srgb, var(--ic) 14%, transparent);stroke:var(--ic);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.rlp .item.warn .swing{fill:color-mix(in srgb, var(--warn) 32%, transparent);stroke:var(--warn)}.rlp .leaf{stroke:var(--ic);stroke-width:2.5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.rlp .winline{stroke:var(--ic);stroke-width:3px;vector-effect:non-scaling-stroke}.rlp .hit{fill:#0000}.rlp .wallline{stroke:var(--wall);stroke-width:1.5px;vector-effect:non-scaling-stroke}.rlp .winlabel{fill:var(--muted);font-family:var(--font-mono);letter-spacing:.15em;pointer-events:none}.rlp .item.area .body{fill:color-mix(in srgb, var(--ic) 7%, transparent);stroke:var(--ic);stroke-dasharray:7 5}.rlp .item.area text{fill:var(--muted)}.rlp .bandrect{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
