*{box-sizing:border-box}body{margin:0;background:#f4f4ef;color:#1b352b;font:13px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{height:68px;background:#113e31;padding:0 26px;display:flex;gap:10px;align-items:center;color:#f8faf4}.brand{color:inherit;text-decoration:none;letter-spacing:2px;font-size:15px}.brand span{font-size:10px;color:#a6c0b0;margin-left:12px}.privacy{margin-left:auto;font-size:11px;color:#b4d1be;margin-right:18px}button{font:inherit;cursor:pointer;padding:9px 11px;border:1px solid #d4ddd0;border-radius:5px;background:#fff;color:#234b38;white-space:nowrap}button:hover{background:#e7eddf}button:disabled{opacity:.4;cursor:default}button.primary{background:#d5ed8d;border-color:#d5ed8d;color:#173c2b;font-weight:650}button.selected{background:#e1eccb;border-color:#aabd8a}.intro{display:flex;align-items:center;justify-content:space-between;padding:25px 26px 18px}.eyebrow{font-size:10px;letter-spacing:2px;color:#6b7d70;font-weight:650}h1{font-weight:450;font-size:30px;letter-spacing:-1px;margin:8px 0 0}h2{font-size:21px;font-weight:500;letter-spacing:-.6px}.badge{padding:8px 12px;border-radius:30px;background:#ece6d3;color:#80713e;font-size:11px}#message{margin:0 26px 16px;font-size:12px;min-height:18px;color:#66785e}.workspace{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(430px,1.25fr) 248px;gap:1px;background:#dce2d8;border:1px solid #dce2d8;margin:0 26px;min-height:640px;height:calc(100vh - 240px)}section{min-width:0;background:#fafbf7}.reference,.model-panel{display:flex;flex-direction:column;overflow:hidden}.panel-title{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #e2e7dd;font-size:11px}.panel-title b{font-weight:650}.panel-title span{color:#7b8b7e;font-size:10px}.source-controls,.view-controls{padding:10px;display:flex;gap:5px;flex-wrap:wrap;min-height:53px}.source-controls button,.view-controls button{font-size:11px;padding:7px 9px}#source-scroll{flex:1;overflow:auto;display:block;padding:14px;background:#e5e7df}#source-sheet{position:relative;background:white;box-shadow:0 4px 15px #26372814;margin:auto;max-width:none}#source-canvas{display:block;width:100%;height:auto}#trace{position:absolute;inset:0;width:100%;height:100%}#trace line{cursor:pointer;pointer-events:stroke}#trace line:hover{stroke:#b8460d;stroke-width:5}#scene{position:relative;flex:1;min-height:380px;overflow:hidden;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.gesture{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:10px;color:#627769;pointer-events:none}#room-labels{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.room-label{position:absolute;font-size:8px;letter-spacing:1px;color:#314b3a;transform:translate(-50%,-50%);white-space:nowrap;background:#ffffffe3;border:1px solid #ffffff88;padding:4px 6px;border-radius:3px}.caption{min-height:40px;padding:12px;font-size:10px;color:#74816c;border-top:1px solid #e2e7dd}.dot{display:inline-block;background:#d28536;border-radius:50%;width:6px;height:6px;margin-right:4px}.properties{padding:23px 16px;overflow:auto}label{display:block;margin:17px 0 7px;font-size:11px;color:#405c48}label strong{float:right;font-weight:500}input[type=range]{width:100%;accent-color:#50795b}.assumed{font-size:8px;letter-spacing:.6px;color:#9a804a;margin-top:6px}hr{border:0;border-top:1px solid #e0e4d9;margin:24px 0}select,input[type=number]{width:100%;background:#fff;border:1px solid #ced8c8;border-radius:4px;padding:8px;color:#244a35;font:inherit;min-width:0}p{font-size:11px;line-height:1.6;color:#7c876f}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coordinates label{margin:5px 0 8px;font-size:9px}.coordinates input{margin-top:5px}.properties>button{width:100%;font-size:11px;margin-top:7px}.actions{display:flex;gap:7px;margin:16px 0 0}.actions button{flex:1;font-size:11px}details{font-size:10px;margin-top:25px;color:#738267;line-height:1.6}summary{cursor:pointer}#metrics{font-size:9px;color:#8d9984;margin-top:20px}footer{display:flex;justify-content:space-between;margin:15px 26px;font-size:10px;color:#77866f}@media(max-width:1200px){.workspace{grid-template-columns:minmax(250px,.8fr) minmax(340px,1.1fr) 220px;margin:0 12px}.view-controls{gap:3px}.view-controls button{padding:6px}.brand span{display:none}}@media(max-width:950px){.workspace{grid-template-columns:1fr 1fr;height:auto;min-height:0}.reference,.model-panel{height:520px}.properties{grid-column:1/-1;display:block}.coordinates{max-width:450px}.properties>button,.properties>select,.properties>input{max-width:450px}.actions{max-width:450px}.privacy{display:none}header .brand{margin-right:auto}.intro{padding:20px 14px}h1{font-size:24px}.badge{display:none}footer{margin:14px}}@media(max-width:620px){.workspace{grid-template-columns:1fr}.model-panel{grid-row:1;height:520px}.reference{height:350px}.properties{grid-column:1}.intro{padding:18px 14px}header{padding:0 12px;gap:6px}.brand{font-size:12px;letter-spacing:1px}header button{font-size:10px;padding:8px}h1{font-size:23px}#message{margin:0 14px 14px}footer span{max-width:50%;text-align:right}}

#message[data-error=true]{color:#ae3b28}

.file-button{display:inline-block;margin:0;padding:8px;border:1px solid #aabbad;border-radius:5px;cursor:pointer;font-size:11px;color:inherit;white-space:nowrap}.file-button input{display:none}.properties .file-button{margin-top:12px;width:100%;text-align:center}.trace-tools{padding:8px 12px;display:flex;gap:6px;flex-wrap:wrap;background:#edf0e6;align-items:end}.trace-tools label{margin:0;max-width:95px;font-size:9px}.trace-tools input{width:100%;padding:5px;border:1px solid #bccbb6;border-radius:3px}.trace-tools button{font-size:10px;padding:6px}.source-controls select{width:95px;font-size:11px}.reference{min-height:420px}#review-result p{padding:6px;background:#f1ebda;border-radius:4px}#review-result p[tabindex]{cursor:pointer}#trace{touch-action:manipulation}@media(max-width:620px){header{height:auto;min-height:68px;flex-wrap:wrap;padding:10px}.reference{height:510px}.brand{margin-right:0!important}.trace-tools{gap:5px}}
