:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#223746;background:#eef2f4;font-synthesis:none;--line:#dce3e7;--muted:#647986;--house:#3d596d;--driveway:#b88a46;--walkpath:#b15d76;--terrace:#438c83}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{font-size:14px;color:#314b5e;background:#fff;border:1px solid #ccd7df;border-radius:5px;padding:8px 11px;cursor:pointer;white-space:nowrap}button:hover{background:#edf4f8}button:disabled{cursor:default;opacity:.38}button.active{background:#e6f0f6;border-color:#7da7bf;color:#134d70}.primary{background:#154e70;color:#fff;border-color:#154e70}.primary:hover{background:#103d58}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,#viewport:focus-visible{outline:3px solid #1b83b9;outline-offset:2px}.topbar{min-height:88px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:13px}.brandmark{width:40px;height:40px;background:#174e6b;color:#fff;font-size:36px;line-height:34px;text-align:center;border-radius:7px}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:700;color:#667e8c}h1{font-size:23px;font-weight:600;letter-spacing:-.04em;margin:2px 0 0}.file-actions{display:flex;align-items:center;gap:8px}.muted,.small{color:var(--muted);font-size:12px}.file-actions .muted{margin-right:8px}.workspace{display:grid;grid-template-columns:275px minmax(300px,1fr) 250px;min-height:calc(100dvh - 88px)}.sidebar,.inspector{background:#fff;padding:22px 18px;overflow:auto;max-height:calc(100dvh - 88px)}.sidebar{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}h2{font-size:14px;margin:0;font-weight:650}h3{font-size:13px;font-weight:650;margin:0 0 8px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:22px}.total{display:flex;align-items:baseline;gap:8px}.total strong{font-size:42px;font-weight:550;letter-spacing:-.065em;font-variant-numeric:tabular-nums}.total span{font-size:12px;color:var(--muted)}.meter{display:flex;height:7px;border-radius:6px;background:#e7ecef;overflow:hidden;margin:15px 0 10px}.meter div{height:100%;transition:width .12s}#house-bar{background:var(--house)}#paving-bar{background:var(--driveway)}#result{font-size:13px;font-weight:550;color:#267052;min-height:36px;margin:0 0 16px}#result.invalid{color:#b43f40}.figures{margin:0}.figures>div{display:flex;justify-content:space-between;gap:5px;align-items:flex-start;padding:10px 0;font-size:13px}.figures dt span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.figures dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.figures dd small{display:block;font-size:11px;margin-top:3px;color:var(--muted)}.figures .sum{border-top:1px solid var(--line);font-weight:650}.dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}.house{background:var(--house)}.driveway{background:var(--driveway)}.walkpath{background:var(--walkpath)}.terrace{background:var(--terrace)}.objects{margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.objects .section-top{margin-bottom:12px}.object-button{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;border-color:transparent;margin-bottom:4px;padding:10px 8px;font-size:13px}.object-button span:last-child{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.object-button.selected{background:#eef4f7;border-color:#ccdce5}.add-row{display:flex;gap:6px;margin-top:12px}select{width:100%;min-width:0;font-size:12px;border:1px solid var(--line);border-radius:4px;padding:8px;background:#fff;color:#314b5e}.notes{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;font-size:12px;color:var(--muted);line-height:1.6}.notes summary{cursor:pointer;font-size:13px}.notes a{color:#165d86}.drawing-panel{display:flex;flex-direction:column;min-width:0;min-height:500px;max-height:calc(100dvh - 88px)}.toolbar{background:#f8fafb;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;gap:10px}.tool-group{display:flex;align-items:center;gap:5px}.tool-group label{font-size:12px;display:flex;gap:3px;align-items:center;white-space:nowrap;margin-left:5px}.tool-group input{accent-color:#1d638b}.divider{height:18px;border-left:1px solid var(--line);margin:0 4px}#viewport{flex:1;min-height:350px;overflow:hidden;position:relative;touch-action:none;background:#f0f4f3;cursor:default}#viewport.pan{cursor:grab}#viewport.dragging{cursor:grabbing}#canvas{width:100%;height:100%;display:block;position:absolute;inset:0;user-select:none}.object-shape{cursor:move;stroke-width:1.6;vector-effect:non-scaling-stroke}.object-shape.selected{stroke:#1375a5;stroke-width:2.6}.shape-label{pointer-events:none;font-size:.55px;fill:#233c48;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:.08px;stroke-linejoin:round}.vertex{fill:#fff;stroke:#116b97;stroke-width:1.8;vector-effect:non-scaling-stroke;cursor:crosshair}.vertex.active{fill:#146b96}.midpoint{fill:#fff;stroke:#4f849d;stroke-width:1;vector-effect:non-scaling-stroke;cursor:copy}.edge-label{font-size:.4px;fill:#264f65;pointer-events:none;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:.12px}.canvas-badge{position:absolute;left:16px;bottom:15px;font-size:10px;letter-spacing:.08em;background:#ffffffde;border:1px solid #d6e0e2;padding:8px 10px;border-radius:4px;color:#607684;pointer-events:none}.canvas-badge span{padding:0 6px}.zoom-controls{position:absolute;right:14px;bottom:12px;display:flex;box-shadow:0 2px 8px #2442550c}.zoom-controls button{border-radius:0}.zoom-controls button:first-child{border-radius:5px 0 0 5px}.zoom-controls button:last-child{border-radius:0 5px 5px 0}.drawing-footer{background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;font-size:12px;color:var(--muted);min-height:55px}.drawing-footer button{border:none;font-size:11px;color:#6f808a;padding:7px}.inspector .section-top{flex-direction:column;align-items:flex-start;gap:5px}.inspector h2{font-size:17px}.inspector .small{color:#547889}.selection-area{font-size:29px;font-weight:550;letter-spacing:-.04em;margin:0 0 24px}.selection-area span{font-size:13px;font-weight:400;letter-spacing:0;color:var(--muted)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}.field-grid label,.rotation label,.vertex-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}input[type=number]{width:100%;min-width:0;border:1px solid #cfdbe2;border-radius:4px;padding:8px;color:#213e50;background:#fff;font-size:14px;font-variant-numeric:tabular-nums}input:disabled{background:#f4f6f7;color:#6f8390}.rotation{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.rotation label{grid-column:1 / -1}.inspector .explain{font-size:12px;line-height:1.6;color:#728692;margin-top:13px}.vertex-fields{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.vertex-fields .field-grid{margin:12px 0}.danger{color:#a74747;border-color:#e8caca;font-size:12px}.remove-surface{margin-top:20px;width:100%}.help{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;color:var(--muted);font-size:12px;line-height:1.6}.warnings p{background:#fff4e2;border-left:3px solid #d89c37;color:#825719;font-size:12px;padding:9px 10px;line-height:1.5;margin:8px 0}.warnings p.error{background:#fff0f0;color:#9d3737;border-color:#c85353}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 18px;border-radius:6px;background:#243f51;color:#fff;box-shadow:0 6px 24px #17304430;font-size:14px;z-index:5}#toast[hidden]{display:none}@media(min-width:1600px){.workspace{grid-template-columns:300px minmax(300px,1fr) 275px}.sidebar,.inspector{padding:26px 22px}}@media(max-width:1150px){.workspace{grid-template-columns:245px minmax(300px,1fr)}.inspector{grid-column:1 / -1;border-top:1px solid var(--line);display:grid;grid-template-columns:160px minmax(200px,400px) 1fr;gap:24px;max-height:none}.inspector .help{margin:0;border:0;padding:0}.drawing-panel,.sidebar{max-height:none;min-height:650px}.file-actions .muted{display:none}.drawing-panel{height:calc(100dvh - 88px)}.inspector .section-top{margin:0}}@media(max-width:700px){.topbar{padding:14px;flex-wrap:wrap;gap:14px}.file-actions{width:100%;justify-content:flex-end}.file-actions button{font-size:12px;padding:8px 10px}.workspace{display:flex;flex-direction:column}.drawing-panel{order:0;height:62dvh;min-height:430px}.sidebar{order:1;min-height:0;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:22px 16px}.coverage{min-width:0}.objects{margin:0;padding:0;border:0;min-width:0}.notes{grid-column:1 / -1;margin:0}.inspector{order:2;display:block;padding:22px 16px}.inspector .section-top{margin-bottom:16px}.inspector .help{margin-top:24px}.total{flex-wrap:wrap;gap:0}.total strong{font-size:36px}.total span{display:block;width:100%}.toolbar{padding:8px;gap:7px}.toolbar button{font-size:12px;padding:8px}.drawing-footer{align-items:flex-start;font-size:11px}#hint{max-width:65%}.figures>div{font-size:12px;flex-wrap:wrap}.section-top{gap:5px;flex-wrap:wrap}.sidebar h2{font-size:13px}.small{font-size:11px}.object-button{font-size:12px;padding:9px 3px}.object-button span:last-child{font-size:11px}.add-row select{font-size:11px}.inspector .field-grid,.rotation,.remove-surface{max-width:450px}}
