*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg2: #f5f4f0;--bg3: #efede8;--border: rgba(0, 0, 0, .12);--border2: rgba(0, 0, 0, .22);--text: #1a1a18;--text2: #6b6a64;--text3: #9c9a93;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--green: #3b6d11;--green-light: #eaf3de;--amber: #e65100;--amber-light: #fffde7;--blue: #1565c0;--blue-light: #e3f2fd}@media (prefers-color-scheme: dark){:root{--bg: #1c1c1a;--bg2: #252522;--bg3: #2e2e2a;--border: rgba(255, 255, 255, .1);--border2: rgba(255, 255, 255, .2);--text: #e8e6df;--text2: #9c9a92;--text3: #6b6a63}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg2);color:var(--text);min-height:100vh;padding:24px 20px}h1{font-size:18px;font-weight:500;color:var(--text);margin-bottom:20px}.layout{display:grid;grid-template-columns:230px 1fr;gap:16px;align-items:start;max-width:1100px;margin:0 auto}@media (max-width: 700px){.layout{grid-template-columns:1fr}}.panel{background:var(--bg);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem}.sec{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 6px}.sec:first-child{margin-top:0}.r2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px}.field{display:flex;flex-direction:column;gap:3px}.field label{font-size:11px;color:var(--text2)}.field input,.field select{font-size:13px;padding:6px 8px;width:100%;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color .15s}.field input:focus,.field select:focus{border-color:var(--border2)}.orow{display:flex;gap:5px;margin-bottom:8px}.oo{flex:1;border:.5px solid var(--border);border-radius:var(--radius-sm);padding:6px 4px;text-align:center;cursor:pointer;font-size:12px;color:var(--text2);background:var(--bg2);transition:all .15s;-webkit-user-select:none;user-select:none}.oo:hover{background:var(--bg3)}.oo.on{border-color:var(--border2);color:var(--text);background:var(--bg3);font-weight:600}.divider{border:none;border-top:.5px solid var(--border);margin:10px 0}.house-card{border:.5px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:6px;background:var(--bg2)}.house-title{font-size:11px;font-weight:600;color:var(--text);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.house-card .r2{margin-bottom:4px}.house-card .field label{font-size:10px}.house-card .field input,.house-card .field select{font-size:12px;padding:5px 7px}.rm-btn{background:none;border:none;cursor:pointer;color:var(--text3);font-size:16px;line-height:1;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s}.rm-btn:hover{color:#c0392b;background:#fdecea}.add-btn{background:none;border:.5px solid var(--border);border-radius:var(--radius-sm);padding:5px 10px;font-size:12px;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .15s}.add-btn:hover{background:var(--bg2)}.gen-btn{width:100%;margin-top:12px;padding:9px;font-size:14px;font-weight:600;cursor:pointer;background:var(--bg);border:.5px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);transition:background .15s}.gen-btn:hover{background:var(--bg3)}.rhs{display:flex;flex-direction:column;gap:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--bg);border:.5px solid var(--border);border-radius:var(--radius-md);padding:10px 12px}.stat .sv{font-size:17px;font-weight:600;color:var(--text)}.stat .sk{font-size:11px;color:var(--text2);margin-top:2px}.canvas-wrap{background:var(--bg);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;min-height:440px;display:flex;align-items:center;justify-content:center}.canvas-wrap.filled{align-items:flex-start;justify-content:flex-start}.placeholder{text-align:center;color:var(--text3)}.placeholder svg{display:block;margin:0 auto 10px;opacity:.2}.placeholder p{font-size:13px;line-height:1.6}@media (prefers-color-scheme: dark){#canvas-output text{fill:#c2c0b6!important}}
