:root{color:#dce5eb;font-synthesis:none;text-rendering:optimizelegibility;background:#10171d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#10171d;margin:0}.app{max-width:1800px;margin:auto;padding:22px}.app-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.app-header h1{letter-spacing:-1.1px;color:#f2f6f8;margin:4px 0;font-size:clamp(26px,3vw,36px)}.app-header p{color:#93a2ad;margin:0;font-size:13px}.eyebrow{letter-spacing:1.8px;color:#64c4d9;font-size:10px;font-weight:800}.status{color:#f0c78e;white-space:nowrap;background:#2a241b;border:1px solid #735a35;border-radius:5px;padding:8px 11px;font-size:10px;font-weight:800}.notice{color:#e6d3b8;background:#29231b;border:1px solid #695034;border-radius:6px;margin-bottom:12px;padding:11px 14px;font-size:12px;line-height:1.5}.cad-toolbar{background:#1a242c;border:1px solid #2c3a44;border-radius:7px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:8px 10px;display:flex}.tool-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.toolbar-label{letter-spacing:1.1px;color:#81939f;margin:0 7px 0 3px;font-size:9px;font-weight:800}.tool-group button{color:#bdcbd3;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:7px 10px;font-size:11px}.tool-group button:hover{background:#273640}.tool-group button.tool-active{color:#f1fbff;background:#254d5a;border-color:#347687}.cad-layout{grid-template-columns:270px minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.panel,.workspace-area{background:#1a242c;border:1px solid #2b3943;border-radius:7px;min-width:0}.parameter-panel{padding:16px}.side-title{letter-spacing:1.3px;color:#dbe7ed;border-bottom:1px solid #2b3943;justify-content:space-between;align-items:center;padding-bottom:14px;font-size:10px;font-weight:800;display:flex}.tiny-tag{color:#82cddd;background:#263c46;border-radius:3px;padding:4px 6px;font-size:9px}.parameter-panel>label{color:#aebdc6;margin:13px 0;font-size:11px;font-weight:650;display:block}.parameter-panel input:not([type=checkbox]),.parameter-panel select{width:100%;font:inherit;color:#e3ebef;background:#111a20;border:1px solid #3a4b56;border-radius:4px;outline:none;margin-top:6px;padding:9px;font-size:12px;display:block}.parameter-panel input:focus,.parameter-panel select:focus{border-color:#48a7bf}.parameter-panel small{color:#e3b775;letter-spacing:.5px;margin-top:3px;font-size:8px;display:block}.check-options{border-top:1px solid #2c3942;border-bottom:1px solid #2c3942;margin:12px 0;padding:8px 0}.parameter-panel .check-row{color:#b5c2ca;align-items:center;gap:8px;margin:8px 0;font-size:11px;display:flex}.check-row input{accent-color:#55b7cb}.hardware{color:#d6e1e6;background:#202d35;border:1px solid #33434d;border-radius:5px;margin:14px 0;padding:11px;font-size:11px}.hardware p{color:#b6c4cb;margin:8px 0}.hardware small{color:#92a2ab;line-height:1.5}.parameter-panel>button{color:#f3fcff;cursor:pointer;background:#256174;border:1px solid #32758a;border-radius:4px;width:100%;margin-top:8px;padding:10px;font-size:11px;font-weight:750}.parameter-panel>button.secondary{color:#c8d4da;background:0 0;border-color:#42535e}.workspace-area{overflow:hidden}.workspace-title{border-bottom:1px solid #2d3a44;justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.workspace-title>div{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.workspace-title strong{letter-spacing:1.4px;font-size:10px}.workspace-title span{color:#91a2ad;font-size:10px}.view-indicator{background:#263a43;border-radius:3px;padding:5px 7px;color:#9ddbea!important}.view-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;display:grid}.view-2d-design,.view-3d-view{grid-template-columns:minmax(0,1fr)}.viewport{border-right:1px solid #2e3c45;min-width:0}.viewport:last-child{border-right:0}.viewport-head{background:#202b33;border-bottom:1px solid #2d3b45;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.viewport-head strong{letter-spacing:1.2px;color:#d5e1e7;font-size:9px}.viewport-head span{letter-spacing:.8px;color:#77c7d9;font-size:8px}.viewport-body{background:#f7f9fa;height:clamp(400px,48vw,620px);min-height:360px;position:relative;overflow:hidden}.cad-svg{width:100%;height:100%;min-height:360px;display:block}.draft-svg{touch-action:none;cursor:crosshair}.three-host{background:#f7f9fa;width:100%;height:100%;min-height:360px;position:relative}.three-host canvas{outline:none;width:100%;height:100%;display:block}.three-hint{z-index:2;color:#50616a;pointer-events:none;background:#ffffffd9;border:1px solid #d9e1e5;border-radius:4px;padding:6px 8px;font-size:9px;position:absolute;bottom:10px;left:10px}.cad-label{fill:#4a5b64;font-size:11px;font-weight:700}.cad-corner{fill:#81919a;letter-spacing:.8px;font-size:9px}.dimension-label{fill:#147c9b;font-size:11px;font-weight:700}.cad-warning{fill:#9a6025;font-size:11px;font-weight:700}.viewport-foot{color:#90a1ab;background:#1c272e;border-top:1px solid #2c3942;min-height:31px;padding:8px 10px;font-size:9px}.bottom-status{color:#91a1aa;background:#131c22;border-top:1px solid #2c3942;flex-wrap:wrap;align-items:center;gap:18px;padding:9px 13px;font-size:10px;display:flex}.bottom-status span:first-child{color:#9fe0bb}.status-dot{background:#6ed39c;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.bottom-status span+span{border-left:1px solid #35434c;padding-left:15px}footer{text-align:center;color:#667782;padding:18px;font-size:10px}@media (width<=1100px){.cad-layout{grid-template-columns:235px minmax(0,1fr)}.view-grid{grid-template-columns:minmax(0,1fr)}.viewport{border-bottom:1px solid #2e3c45;border-right:0}.viewport-body{height:480px}}@media (width<=700px){.app{padding:10px}.cad-layout{grid-template-columns:1fr}.app-header,.cad-toolbar{align-items:flex-start}.tool-group{width:100%}.toolbar-label{width:100%;margin:2px 3px}.parameter-panel{padding:13px}.viewport-body{height:390px;min-height:330px}.bottom-status{gap:9px}.bottom-status span+span{padding-left:8px}}
