*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:#111;background:#fff}.layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}aside{position:sticky;top:0;max-height:100vh;overflow-y:auto;padding:16px;border-right:1px solid #ddd;background:#fafafa}main{padding:16px 24px 64px 0;display:flex;flex-direction:column;gap:20px;min-width:0}h1{font-size:20px;margin:0 0 8px}h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#555;margin:0 0 10px}h3{font-size:16px;margin:0}.panel{border:1px solid #ddd;background:#fff;padding:12px;margin-top:16px}.field{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:8px}.field.wide{grid-template-columns:110px minmax(0,1fr)}.field>span:first-child{color:#444}.field input,.field select,textarea{font:inherit;padding:4px 6px;border:1px solid #bbb;background:#fff;min-width:0}.unit{color:#777;font-size:13px}textarea{width:100%;font:inherit;padding:6px;border:1px solid #bbb}.choices{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 12px}.choices label{display:flex;align-items:center;gap:5px}.hint{color:#666;font-size:13px;margin:6px 0}.problem{color:#a11;font-size:13px;margin:6px 0}.muted{color:#888}button{font:inherit;padding:6px 14px;border:1px solid #333;background:#333;color:#fff;cursor:pointer;margin-right:8px}button:disabled{border-color:#bbb;background:#ddd;color:#777;cursor:default}button.quiet{background:#fff;color:#333}button.quiet:disabled{background:#fff;color:#bbb;border-color:#ddd}.summary{border-left:3px solid #333;padding-left:12px}.diagnostics{margin-top:8px;font-size:13px;color:#666}.candidate{border:1px solid #ddd;padding:14px}.candidate.baseline{border-color:#333;border-width:2px}.candidate>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.tag{margin-left:8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;border:1px solid #333;padding:1px 6px}.tag.small{font-size:10px;border-color:#176;color:#176}.metrics .keepable dd{color:#176}.cutting-list tr.scrap td{color:#999}h4{font-size:13px;margin:16px 0 0;color:#444}.comparison{font-size:13px}.comparison.better{color:#176}.comparison.worse{color:#a11}.comparison.same{color:#666}.metrics{display:flex;flex-wrap:wrap;gap:20px;margin:12px 0;padding:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.metrics dt{font-size:12px;color:#777}.metrics dd{margin:0;font-size:17px;font-variant-numeric:tabular-nums}.roll{margin:0 0 16px}.roll figcaption{font-size:12px;color:#777;margin-top:4px}.room-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.room-plans figure{margin:0}.room-plans figcaption{font-size:12px;color:#666;margin-top:4px;line-height:1.35}.room-list{list-style:none;margin:0 0 10px;padding:0}.room-list li{display:flex;align-items:stretch;gap:4px;margin-bottom:4px}.room-list li.selected .room-pick{border-color:#333;background:#f0f0f0}.room-pick{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;font:inherit;padding:6px 8px;border:1px solid #ccc;background:#fff;color:#111;margin:0}.room-pick .muted{font-size:12px}.room-list .remove{padding:0 10px;margin:0;font-size:16px;line-height:1}.room-editor{border-top:1px solid #ddd;margin-top:12px;padding-top:12px}.checkbox{display:flex;align-items:center;gap:6px;margin:10px 0 0}.headline{border-left:3px solid #176;padding-left:10px;color:#176}.modes{display:flex;gap:0;margin-bottom:10px}.modes button{margin:0;flex:1}.modes button.quiet{border-color:#bbb}.saved-count{color:#176;font-size:13px;margin:0}.views{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.views figure{margin:0}.views figcaption{font-size:12px;color:#777;margin-top:4px}details summary{cursor:pointer;font-size:13px;color:#444;margin-top:12px}.rationale{font-size:13px;color:#444}.cutting-list{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;margin-top:8px}.cutting-list th,.cutting-list td{text-align:left;padding:4px 8px;border-bottom:1px solid #eee}.cutting-list th{color:#777;font-weight:500}.verdict{margin-top:14px;padding-top:12px;border-top:1px solid #eee}.verdict .best{display:flex;align-items:center;gap:6px;margin-top:8px;font-weight:500}.save{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.save .field{width:100%;align-items:start}.saved{color:#176;font-size:13px;border:1px solid #176;padding:10px 12px;margin:0}.saved button{margin-left:6px;padding:3px 10px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:24px;z-index:10;overflow-y:auto}.welcome{background:#fff;border:1px solid #333;padding:24px 28px;max-width:620px;max-height:calc(100vh - 48px);overflow-y:auto}.welcome h2{font-size:20px;text-transform:none;letter-spacing:0;color:#111;margin:0 0 4px}.welcome h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#555;margin:20px 0 6px}.welcome p{margin:6px 0}.welcome ol{margin:6px 0;padding-left:20px}.welcome li{margin-bottom:6px}.welcome .warn{border-left:3px solid #a11;padding-left:10px}.welcome button{margin-top:22px}@media (max-width: 1100px){.layout{grid-template-columns:1fr}aside{position:static;max-height:none;border-right:0;border-bottom:1px solid #ddd}main{padding:16px}.views{grid-template-columns:1fr}}
