:root,:root[data-theme=light]{color-scheme:light;--bg: #f6f5f0;--panel: #ffffff;--border: #d8d6cf;--border-soft: #e7e5dd;--text: #1f1f1f;--muted: #6c6c6c;--accent: #2056d3;--active: #1f4cba;--accent-tint: rgba(32, 86, 211, .1);--focus-ring: rgba(32, 86, 211, .35);--error: #b00020;--ink: #1a1a1a;--viewport-bg: #fafaf7;--btn-bg: #f0efe9;--btn-bg-hover: #e6e4dc;--code-bg: #e8e6dd;--status-bar-bg: #ffffff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}:root[data-theme=dark]{color-scheme:dark;--bg: #1a1d24;--panel: #232730;--border: #383d48;--border-soft: #2d313b;--text: #e2e4e8;--muted: #8a8f99;--accent: #4a8cff;--active: #6ba0ff;--accent-tint: rgba(74, 140, 255, .16);--focus-ring: rgba(107, 160, 255, .45);--error: #ff5252;--ink: #e8e8e8;--viewport-bg: #15171c;--btn-bg: #2a2e38;--btn-bg-hover: #353a47;--code-bg: #2a2e38;--status-bar-bg: #1f2229;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 2px 8px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.seo-fallback{max-width:760px;margin:40px auto;padding:0 24px;line-height:1.55;color:var(--text)}.seo-fallback header{margin-bottom:24px}.seo-fallback h1{font-size:28px;font-weight:700;letter-spacing:-.01em;margin:0 0 10px;line-height:1.25}.seo-fallback .lead{font-size:16px;color:var(--muted);margin:0}.seo-fallback h2{font-size:18px;font-weight:600;margin:28px 0 10px}.seo-fallback ul{padding-left:22px;margin:8px 0}.seo-fallback li{margin:6px 0}.seo-fallback dl{margin:8px 0}.seo-fallback dt{font-weight:600;margin-top:14px}.seo-fallback dd{margin:4px 0 0;color:var(--muted)}.seo-fallback a{color:var(--accent)}.seo-fallback code{background:var(--code-bg);padding:1px 5px;border-radius:3px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:13px}.app{display:grid;grid-template-rows:auto auto 1fr auto auto;height:100%}.app-embed{grid-template-rows:auto 1fr auto}.brand-header{display:flex;align-items:center;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border)}.brand-header .brand-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);transition:opacity .12s ease}.brand-header .brand-link:hover{opacity:.78}.brand-header .brand-logo{height:22px;width:auto}.brand-header .brand-name{font-weight:600;font-size:14px}.brand-header .brand-tagline{font-size:12px;color:var(--muted);margin-left:8px;padding-left:8px;border-left:1px solid var(--border)}.brand-footer{padding:6px 12px;background:var(--panel);border-top:1px solid var(--border);font-size:11px;color:var(--muted);text-align:center}.brand-footer a{color:var(--accent);text-decoration:none}.brand-footer a:hover{text-decoration:underline}.toolbar{display:flex;align-items:center;gap:4px;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);position:relative;z-index:2}.toolbar button{padding:5px 11px;background:var(--btn-bg);border:1px solid var(--border);border-radius:5px;cursor:pointer;color:var(--text);font-size:13px;line-height:1.4;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.toolbar button:hover:not(:disabled){background:var(--btn-bg-hover);border-color:var(--muted)}.toolbar button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-color:var(--accent)}.toolbar button:active:not(:disabled){transform:translateY(.5px)}.toolbar button.active{background:var(--accent);color:#fff;border-color:var(--active);box-shadow:0 1px 3px #00000026,inset 0 1px #ffffff1f}.toolbar button.active:hover:not(:disabled){background:var(--active);border-color:var(--active)}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.toolbar .sep{width:1px;height:20px;background:var(--border);margin:0 6px}.camera-toggle{display:inline-flex}.camera-toggle button{border-radius:0}.camera-toggle button:first-child{border-radius:5px 0 0 5px}.camera-toggle button:last-child{border-radius:0 5px 5px 0;margin-left:-1px}.camera-toggle button:focus-visible{z-index:1;position:relative}.main{display:flex;min-height:0}.panel{flex:0 0 240px;background:var(--panel);border-right:1px solid var(--border);overflow:auto;padding:12px 14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.panel::-webkit-scrollbar{width:10px;height:10px}.panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px;border:2px solid var(--panel)}.panel::-webkit-scrollbar-thumb:hover{background:var(--muted)}.panel::-webkit-scrollbar-track{background:transparent}.panel.info{flex:0 0 280px}.panel.info{border-right:none;border-left:1px solid var(--border)}.panel h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px}.panel h4{font-size:12px;font-weight:600;margin:10px 0 4px;color:var(--text)}.panel .muted{color:var(--muted);font-size:12px}.layer-actions{display:flex;gap:6px;margin-bottom:10px}.layer-actions button{flex:1;font-size:11px;padding:4px 8px;background:var(--btn-bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--text);transition:background-color .12s ease,border-color .12s ease}.layer-actions button:hover{background:var(--btn-bg-hover);border-color:var(--muted)}.layer-actions button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring);border-color:var(--accent)}.panel.layers ul{list-style:none;margin:0;padding:0}.panel.layers li{padding:1px 0;border-radius:4px}.panel.layers li:hover{background:var(--btn-bg)}.panel.layers label{display:grid;grid-template-columns:auto 14px 1fr auto;align-items:center;gap:8px;cursor:pointer;padding:3px 6px}.panel.layers .layer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel.layers .layer-count{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.swatch{display:inline-block;width:14px;height:14px;border:1px solid rgba(0,0,0,.18);border-radius:3px;vertical-align:middle;box-shadow:var(--shadow-sm)}.panel.info dl{display:grid;grid-template-columns:110px 1fr;gap:3px 10px;margin:0 0 10px;font-size:12px}.panel.info dt{color:var(--muted)}.panel.info dd{margin:0;word-break:break-word;font-variant-numeric:tabular-nums}.viewport-host{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.viewport{position:absolute;top:0;right:0;bottom:0;left:0}.drop-zone{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;background:var(--bg);z-index:5;text-align:center;color:var(--text);gap:4px}.drop-zone a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .12s ease}.drop-zone a:hover{border-bottom-color:var(--accent)}.drop-zone h2{margin:0 0 10px;font-weight:600;font-size:18px;letter-spacing:-.01em}.drop-zone p{margin:4px 0;max-width:540px;line-height:1.55}.drop-zone code{background:var(--code-bg);padding:1px 6px;border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}.privacy-note{margin-top:28px;display:inline-flex;align-items:flex-start;gap:14px;max-width:540px;text-align:left;padding:14px 18px;background:var(--accent-tint);border:1px solid var(--border-soft);border-radius:8px;box-shadow:var(--shadow-sm)}.privacy-icon{font-size:22px;line-height:1.2;flex-shrink:0}.privacy-note strong{display:block;margin-bottom:2px;font-weight:600}.privacy-note p{margin:0;color:var(--muted);line-height:1.45;font-size:12.5px;max-width:100%}.status-bar{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:12px;padding:5px 12px;background:var(--status-bar-bg);border-top:1px solid var(--border);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.status-bar .file{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-bar .hint{text-align:center;color:var(--muted);font-family:inherit}.status-bar .coords{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.error-banner{position:fixed;bottom:32px;left:50%;transform:translate(-50%);max-width:560px;background:var(--error);color:#fff;padding:10px 16px;border-radius:6px;z-index:100;box-shadow:0 4px 16px #00000040;font-size:13px;line-height:1.4}.unsupported-help{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#f5f5f0f2;z-index:6;overflow:auto}.unsupported-card{position:relative;max-width:560px;width:100%;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:28px 32px 24px;box-shadow:0 8px 32px #00000014}.unsupported-close{position:absolute;top:8px;right:8px;width:28px;height:28px;border:none;background:transparent;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;border-radius:4px}.unsupported-close:hover{background:var(--btn-bg);color:var(--text)}.unsupported-icon{font-size:32px;margin-bottom:8px}.unsupported-card h2{margin:0 0 4px;font-size:20px;font-weight:600}.unsupported-card h2 code{background:var(--code-bg);padding:1px 6px;border-radius:3px;font-size:.9em}.unsupported-filename{margin:0 0 14px;color:var(--muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.unsupported-card p{margin:0 0 14px;line-height:1.5}.unsupported-steps{margin:0 0 18px;padding-left:22px;line-height:1.7}.unsupported-steps a{color:var(--accent)}.unsupported-steps code{background:var(--btn-bg);padding:1px 5px;border-radius:3px;font-size:.9em}.unsupported-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.btn-primary{display:inline-block;padding:9px 16px;background:var(--accent);color:#fff;text-decoration:none;border-radius:5px;font-weight:500;font-size:13px;border:1px solid var(--active)}.btn-primary:hover{background:var(--active)}.btn-secondary{padding:9px 16px;background:var(--btn-bg);color:var(--text);border:1px solid var(--border);border-radius:5px;font-size:13px;cursor:pointer}.btn-secondary:hover{background:var(--btn-bg-hover)}.unsupported-note{margin:0;font-size:12px;color:var(--muted);font-style:italic}.dxf-label{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:10px;pointer-events:none;white-space:nowrap;text-shadow:0 0 3px var(--viewport-bg),0 0 3px var(--viewport-bg),0 0 3px var(--viewport-bg)}.survey-overlay-panel{position:absolute;top:12px;right:12px;z-index:4;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;min-width:220px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:saturate(1.1);backdrop-filter:saturate(1.1)}.survey-overlay-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:13px}.survey-overlay-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:4px;transition:background-color .12s ease,color .12s ease}.survey-overlay-close:hover{color:var(--text);background:var(--btn-bg)}.survey-overlay-stats{display:flex;flex-direction:column;gap:2px;font-size:11px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-soft);color:var(--text)}.survey-overlay-stats .muted{color:var(--muted);font-size:11px}.survey-overlay-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;padding:3px 0}.survey-overlay-toggle:hover{color:var(--accent)}.survey-label{font-size:9px!important;opacity:.85;color:var(--text)}.measure-label{background:#ff5722f2;color:#fff;padding:2px 6px;border-radius:3px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 1px 3px #00000040}
