:root{--brand-slate:#2a3f27;--brand-deep:#46603f;--brand-mid:#5e7550;--brand-steel:#5c5d48;--brand-light-green:#c3d5ac;--brand-mist:#dee6d2;--brand-paper:#f4f3ea;--brand-ok:#3e7048;--brand-flag:#8c4a3b;--brand-flag-on-dark:#e8a08f;--brand-tile-border:#dad6c2;--brand-ok-bg:#e1eedd;--brand-flag-bg:#f1e1da;--brand-amber:#b8863b;--brand-amber-bg:#fbf1e1;--brand-band-rail:#e1ddc8;--brand-row-line:#efedde;--brand-selection:#e6eedc;--brand-group-header:#eae8d8;--cad-ground:#1a1a1a;--cad-measure:#d9a75a;--cad-markup:#e8a08f;--cad-select:#c3d5ac;--cad-select-halo:#46603f}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;padding:0}body{background:var(--brand-paper);color:var(--brand-slate);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.toolbar{background:linear-gradient(180deg, var(--brand-mist) 0%, var(--brand-paper) 100%);border-bottom:1px solid var(--brand-tile-border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex;box-shadow:inset 0 1px #fff9}.brand{flex-shrink:0;align-items:center;gap:8px;margin-right:4px;display:flex}.brand-logo{border-radius:8px;display:block;box-shadow:0 1px 3px #2a3f274d}.app-title{color:var(--brand-slate);letter-spacing:-.01em;font-weight:700;line-height:1.1}.app-title-sub{color:var(--brand-mid);font-weight:600}.toolbar button,.empty-actions button{color:var(--brand-deep);border:1px solid var(--brand-tile-border);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600}.toolbar button:hover,.empty-actions button:hover{border-color:var(--brand-steel)}.toolbar button:active{opacity:.85}.toolbar button.active{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}.toolbar button.markup-active{background:var(--brand-flag);border-color:var(--brand-flag);color:#fff}.content{flex:1;min-height:0;position:relative}.viewer-wrap{background:var(--cad-ground);position:absolute;inset:0}.viewer-canvas{touch-action:none;display:block}.viewer-3d canvas{display:block}.measure-label-3d{background:var(--brand-slate);color:#fff;border:1px solid var(--brand-slate);white-space:nowrap;pointer-events:none;border-radius:8px;padding:5px 10px;font:12px/1.5 system-ui,sans-serif;position:absolute;transform:translate(-50%,-130%);box-shadow:0 2px 12px #2a3f2747}.measure-label-3d b{font-size:14px}.toolbar .constraint-btn{opacity:.75;padding:6px 10px;font-size:13px}.toolbar .constraint-btn.active{opacity:1}.empty-state{height:100%;color:var(--brand-steel);text-align:center;background-color:var(--brand-paper);background-image:radial-gradient(circle at 50% 30%, #c3d5ac59 0%, transparent 60%), linear-gradient(to right, var(--brand-grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--brand-grid-line) 1px, transparent 1px);background-size:100% 100%,28px 28px,28px 28px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty-logo{filter:drop-shadow(0 3px 8px #2a3f2740);margin-bottom:4px}.empty-state h2{color:var(--brand-slate);margin:0}.empty-actions{gap:12px;margin-top:8px;display:flex}.layer-panel{border:1px solid var(--brand-tile-border);background:#fff;border-radius:10px;width:220px;max-height:60%;padding:10px;position:absolute;top:12px;right:12px;overflow-y:auto;box-shadow:0 2px 12px #2a3f2726}.layer-panel-header{letter-spacing:.04em;text-transform:uppercase;color:var(--brand-steel);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.link-btn{color:var(--brand-deep);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.layer-row{cursor:pointer;color:var(--brand-slate);border-radius:6px;align-items:center;gap:8px;padding:5px 4px;font-size:14px;display:flex}.layer-row:hover{background:var(--brand-paper)}.layer-row-selected{background:var(--brand-selection);box-shadow:inset 0 0 0 1px var(--brand-deep)}.layer-swatch{border:1px solid var(--brand-tile-border);border-radius:4px;flex-shrink:0;width:14px;height:14px}.layer-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layer-empty{color:var(--brand-steel);font-size:13px}.statusbar{background:var(--brand-paper);border-top:1px solid var(--brand-tile-border);color:var(--brand-mid);white-space:nowrap;text-overflow:ellipsis;padding:6px 12px;font-size:11.5px;overflow:hidden}.statusbar .error{color:var(--brand-flag);font-weight:600}.statusbar .busy{color:var(--brand-deep);font-weight:600}.recent{flex-direction:column;gap:6px;width:min(400px,90vw);margin-top:20px;display:flex}.recent h3{color:var(--brand-steel);letter-spacing:.04em;text-transform:uppercase;text-align:left;margin:0 0 4px;font-size:11px;font-weight:700}.recent-row{color:var(--brand-slate);border:1px solid var(--brand-tile-border);cursor:pointer;text-align:left;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.recent-row:hover{border-color:var(--brand-steel);background:var(--brand-selection)}.recent-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-meta{color:var(--brand-steel);flex-shrink:0;font-family:Consolas,ui-monospace,monospace;font-size:12px}@media (pointer:coarse){.app-title{font-size:14px}.toolbar button,.empty-actions button{padding:10px 16px;font-size:15px}.layer-row{padding:9px 4px}.layer-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-deep)}}.layer-row input[type=checkbox]{accent-color:var(--brand-deep)}
