*{box-sizing:border-box}body{margin:0;background:#d6dee1;color:#18282d;font-family:Arial,sans-serif}#view{position:fixed;inset:0 0 0 354px}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:fixed;top:0;left:354px;right:0;padding:26px 30px;display:flex;justify-content:space-between;gap:12px;pointer-events:none}.brand{font-size:16px;font-weight:800;letter-spacing:.12em}.brand span{display:block;font-size:12px;letter-spacing:.15em;font-weight:400;margin-top:8px;color:#4e6269}.badge{font-size:12px;background:#fff9;border:1px solid #fff;padding:10px 14px;border-radius:30px;height:fit-content}aside{position:fixed;inset:0 auto 0 0;width:354px;background:#f9fbfc;padding:28px 25px;overflow:auto;border-right:1px solid #c9d3d7}h1{font-size:35px;line-height:1.08;letter-spacing:-1.2px;margin:8px 0 14px;font-weight:500}.intro{font-size:14px;line-height:1.6;color:#63737a}button,select{font:inherit;cursor:pointer;border:1px solid #ccd6db;background:white;color:#243e46;border-radius:7px;padding:10px 12px}button:hover{background:#edf3f5}button.active,.primary{background:#163e4a;color:white;border-color:#163e4a}.tabs{display:flex;margin:22px 0 15px;gap:5px}.tabs button{flex:1;font-size:14px}.row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:14px}input[type=checkbox]{accent-color:#20627a;width:18px;height:18px}section{border-top:1px solid #dce3e6;margin-top:18px;padding-top:18px}h2{font-size:12px;letter-spacing:.13em;text-transform:uppercase;margin:0 0 15px;color:#627780}dl{font-size:13px;display:grid;grid-template-columns:1fr auto;gap:12px 4px}dd{margin:0;font-weight:bold}dt{color:#51646c}.assumptions h2{color:#91611e}.assumptions p,details p{font-size:13px;line-height:1.6;color:#68787e}section>label{display:block;font-size:14px;margin:18px 0}output{float:right;font-weight:bold}input[type=range]{display:block;width:100%;margin-top:12px;accent-color:#bb8533}select{display:block;width:100%;font-size:14px;margin-top:10px}details{margin:20px 0;font-size:14px}summary{cursor:pointer}#save{width:100%;margin-bottom:8px}#reset{width:100%;font-size:14px}footer{position:fixed;bottom:0;left:354px;right:0;background:#f9fbfce8;border-top:1px solid #d1dcdf;display:flex;justify-content:space-between;padding:15px 25px;font-size:12px;color:#546b75;gap:12px}#labelsLayer{position:fixed;inset:0;pointer-events:none;overflow:hidden}.label{position:absolute;background:#fffE;border:1px solid #c0d1d6;padding:6px 9px;border-radius:4px;font-size:12px;white-space:nowrap;color:#234653;box-shadow:0 2px 10px #243e4610}.label.uncertain{border-color:#d9a54f;color:#815417;background:#fff7e9ef}#walkpad{position:fixed;bottom:70px;right:30px;text-align:center}#walkpad button{background:#ffffffe0;width:42px;margin:2px}@media(max-width:800px){#view{inset:0 0 45% 0}aside{top:55%;bottom:0;width:100%;padding:20px;display:block;border-top:1px solid #bccbd1}h1{font-size:25px}h1 br{display:none}header{left:0;padding:15px}.badge{display:none}footer{left:0;bottom:45%;padding:9px;font-size:11px}#status{display:none}#walkpad{bottom:49%}.brand span{font-size:10px}#labelsLayer .label{font-size:10px}section{margin-top:12px}}
.cutrow{padding:12px 0;border-bottom:1px solid #dce3e6;font-size:14px;display:grid;gap:7px}.cutrow small{font-size:12px;color:#91611e;line-height:1.5}#materialsPanel p{font-size:14px;line-height:1.6;color:#536871}[hidden]{display:none!important}

#pieceDetail{position:fixed;right:18px;top:90px;width:315px;max-height:70vh;overflow:auto;background:#f9fbfcfa;border:1px solid #b9c9d0;border-radius:10px;padding:20px;box-shadow:0 12px 40px #20374030;font-size:14px;line-height:1.5}#pieceDetail h2{font-size:20px;color:#223e48}#pieceDetail button{margin:5px 0;width:100%}.verify{color:#896022}@media(max-width:800px){#pieceDetail{top:auto;bottom:0;right:0;width:100%;max-height:45vh}}

#stairGuide{position:fixed;inset:20px 20px 20px auto;width:420px;max-width:95vw;background:#f9fbfc;z-index:20;overflow:auto;padding:24px;border:1px solid #b7cbd1;border-radius:10px;font-size:14px;line-height:1.6}#stairGuide label{display:block;margin:15px 0}#stairGuide input{display:block;width:100%;padding:10px;font-size:16px;border:1px solid #b7cbd1;border-radius:5px}#stairGuide svg{width:100%}

.label{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#123d4a!important;text-shadow:0 0 3px #fff,0 0 5px #fff;padding:2px;font-weight:600}

.shopping-table table{width:100%;border-collapse:collapse;font-size:15px}.shopping-table th,.shopping-table td{text-align:left;padding:12px 7px;border-bottom:1px solid #cedade}.shopping-table td:first-child{font-size:22px;color:#164f63}.shopping-table th{font-size:13px}
