html,body{height:100%;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base:#25282c;--bg-panel:#2c3035;--bg-panel-alt:#353a40;--bg-hover:#3c4249;--bg-active:#454d56;--border:#4c545e;--border-focus:#6893c9;--accent:#5d8fc7;--accent-light:#8bb4e8;--accent-hover:#74a3d6;--text-primary:#e4e8ec;--text-secondary:#b2bac4;--text-muted:#7f8892;--danger:#b85d5d;--danger-hover:#d97676;--success:#63a87a;--warning:#c8a25b;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius:6px;--radius-sm:4px;--shadow:0 2px 12px #0006;--toolbar-h:46px}html,body,#root{background:var(--bg-base);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-sans);font-size:13px;overflow:hidden}.app-layout{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;min-width:0;display:flex;overflow:hidden}.toolbar{height:var(--toolbar-h);background:var(--bg-panel);border-bottom:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:center;gap:4px;padding:0 12px;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.toolbar-group{flex-shrink:0;align-items:center;gap:3px;display:flex}.toolbar-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;margin-right:2px;font-size:10px}.toolbar-divider{background:var(--border);flex-shrink:0;width:1px;height:22px;margin:0 6px}.btn-tool{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel-alt);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:4px 9px;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn-tool:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-focus)}.btn-tool.active{background:var(--bg-active);color:var(--accent-light);border-color:var(--accent)}.toolbar-inline-label{color:var(--text-muted);margin:0 2px 0 6px;font-size:10px}.toolbar-range{width:70px;accent-color:var(--accent)}.btn-primary{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;padding:5px 10px;font-size:12px;transition:background .12s}.btn-primary:hover{background:var(--accent-hover)}.btn-sm{padding:3px 8px;font-size:11px}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel-alt);color:var(--text-secondary);cursor:pointer;padding:4px 8px;font-size:11px;transition:background .12s}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{border-radius:var(--radius-sm);color:#d78a8a;cursor:pointer;background:#41292b;border:1px solid #704242;padding:4px 8px;font-size:11px;transition:background .12s}.btn-danger:hover{color:var(--danger-hover);background:#513235}.btn-icon-danger{color:#d78a8a}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:stretch;gap:8px;width:248px;min-width:0;padding:10px 8px;transition:width .18s,padding .18s,border-color .18s;display:flex;overflow-y:auto}.right-sidebar{border-right:none;border-left:1px solid var(--border);padding-bottom:18px}.right-sidebar>:last-child{margin-bottom:8px}.sidebar.is-collapsed{border-color:#0000;width:0;padding-left:0;padding-right:0;overflow:hidden}.panel{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--radius);flex:none;min-width:0;height:auto;padding:10px;overflow:visible}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600}.panel-header{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:8px;display:flex}.panel-header .panel-title{min-width:0;margin-bottom:0}.palette-hint{color:var(--text-muted);margin-bottom:8px;font-size:10px;line-height:1.4}.palette-grid{flex-direction:column;gap:4px;display:flex}.palette-row{align-items:center;gap:4px;min-width:0;display:flex}.palette-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel);width:100%;min-width:0;color:var(--text-secondary);cursor:pointer;text-align:left;flex:1;align-items:center;gap:8px;padding:7px 10px;font-size:12px;transition:all .12s;display:flex}.palette-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-focus)}.palette-btn.active{background:var(--bg-active);color:var(--accent-light);border-color:var(--accent)}.palette-icon{text-align:center;flex-shrink:0;width:20px;font-size:16px}.palette-label{flex:1;min-width:0;font-size:12px}.palette-delete{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);cursor:pointer;min-width:48px;height:32px;color:var(--text-secondary);flex-shrink:0;padding:0 8px;font-size:11px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.properties-panel.empty .empty-hint{color:var(--text-muted);text-align:center;padding:16px 0;font-size:11px;font-style:italic}.empty-hint.compact{color:var(--text-muted);text-align:center;padding:8px 0;font-size:11px;font-style:italic}.prop-group{align-items:center;gap:6px;min-width:0;margin-bottom:6px;display:flex}.prop-group label{color:var(--text-muted);white-space:normal;overflow-wrap:anywhere;flex-shrink:0;width:74px;font-size:11px;line-height:1.25}.prop-group input[type=number],.prop-group input[type=text],.prop-group input[type=range]{flex:1;min-width:0;max-width:100%}.prop-group input[type=number]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;font-family:var(--font-mono);outline:none;padding:3px 6px;transition:border-color .12s}.prop-group input[type=text]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);outline:none;flex:1;padding:3px 6px;font-size:12px}.prop-group input[type=text]:focus,.prop-group input[type=number]:focus{border-color:var(--border-focus)}.prop-group .unit{color:var(--text-muted);flex-shrink:0;width:20px;font-size:10px}.prop-group .unit.wide{text-align:right;width:42px}.panel-select{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);outline:none;flex:1;padding:4px 6px;font-size:12px}.panel-select:focus{border-color:var(--border-focus)}.toggle-row{min-width:0;color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.toggle-row span{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.3}.toggle-row input[type=checkbox]{accent-color:var(--accent)}.prop-value{color:var(--accent-light);font-size:12px}.type-badge{background:var(--bg-active);border:1px solid var(--accent);color:var(--accent-light);font-size:11px;font-family:var(--font-mono);border-radius:3px;padding:1px 6px;display:inline-block}.prop-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:8px;display:flex}.configs-list{flex-direction:column;gap:4px;max-height:280px;display:flex;overflow-y:auto}.config-item{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel);cursor:pointer;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;transition:all .12s;display:flex}.config-item:hover{background:var(--bg-hover);border-color:var(--border-focus)}.config-item.active{background:var(--bg-active);border-color:var(--accent)}.config-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex-direction:column;flex:1;gap:2px;font-size:12px;display:flex;overflow:hidden}.config-meta{color:var(--text-muted);font-size:10px}.config-rename-input{background:var(--bg-panel);border:1px solid var(--border-focus);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);outline:none;flex:1;padding:2px 5px;font-size:12px}.config-actions{flex-shrink:0;gap:2px;display:flex}.config-actions button{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:3px;padding:2px 3px;font-size:13px;transition:opacity .1s}.config-actions button:hover{opacity:1}.config-actions button:disabled{opacity:.2;cursor:not-allowed}.camera-views-list{flex-direction:column;gap:6px;display:flex}.camera-view-item{align-items:center;gap:6px;min-width:0;display:flex}.camera-view-apply{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);min-width:0;color:var(--text-secondary);cursor:pointer;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.camera-view-apply:hover{background:var(--bg-hover);border-color:var(--border-focus);color:var(--text-primary)}.camera-view-label{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.camera-view-meta{color:var(--text-muted);flex-shrink:0;font-size:10px}.camera-view-delete{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text-muted);cursor:pointer;flex-shrink:0;padding:6px 8px;font-size:11px}.camera-view-delete:hover{color:var(--danger-hover);background:#513235;border-color:#704242}.camera-views-footer{color:var(--text-muted);margin-top:8px;font-size:10px}.measurements-list{max-height:220px}.annotations-list,.history-list{max-height:220px;overflow-y:auto}.measurement-editor{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.panel-subtools{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.compact-group label{width:52px}.compact-group input[type=range]{accent-color:var(--accent);flex:1}.inline-actions{flex-wrap:wrap;gap:4px;display:flex}.history-item{border-bottom:1px solid #ffffff0a;justify-content:space-between;gap:8px;padding:6px 2px;display:flex}.history-label{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.history-time{color:var(--text-muted);white-space:nowrap;font-size:10px}.canvas-container{flex:1;min-width:0;position:relative;overflow:hidden}.canvas-container canvas{display:block;width:100%!important;height:100%!important}.placement-hint{border:1px solid var(--accent);color:var(--accent-light);pointer-events:none;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a2f35f0;border-radius:20px;padding:6px 16px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.shortcuts-hint{border:1px solid var(--border);color:var(--text-muted);pointer-events:none;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#262a2fe6;border-radius:20px;padding:5px 14px;font-size:11px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.sidebar-handle{z-index:8;border:1px solid var(--border);width:28px;height:72px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#2c3035eb;position:absolute;top:50%;transform:translateY(-50%)}.sidebar-handle:hover{color:var(--text-primary);background:#3c4249f5}.sidebar-handle-left{border-radius:8px 0 0 8px;left:10px}.sidebar-handle-right{border-radius:0 8px 8px 0;right:10px}.history-overlay-shell{z-index:9;pointer-events:none;position:absolute;inset:0}.history-overlay-backdrop{pointer-events:auto;background:#0a0c1047;position:absolute;inset:0}.history-overlay-panel{pointer-events:auto;width:min(360px,100% - 32px);max-height:min(48vh,420px);position:absolute;bottom:16px;right:16px}.history-panel{max-height:inherit}.history-panel .history-list{max-height:min(36vh,320px)}kbd{background:var(--bg-panel-alt);border:1px solid var(--border);font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);border-radius:3px;padding:0 4px;display:inline-block}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (width<=640px){.sidebar{display:none}}
