:root{--bg: #141412;--panel: #20201d;--panel-2: #292823;--canvas: #ebe7dc;--line: #3d3a33;--text: #f6f3e9;--muted: #b8b0a0;--accent: #f2d34d;--accent-2: #54b6b2;--danger: #df604d;--shadow: 0 18px 54px rgba(0, 0, 0, .32);color:var(--text);font-family:Aptos,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#2e3029,var(--bg) 42%)}button,input,select,textarea{font:inherit}button,.button-like{align-items:center;background:#2f2d28;border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:8px;min-height:34px;padding:8px 10px}button:disabled{cursor:not-allowed;opacity:.5}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}button:hover:not(:disabled),.button-like:hover{border-color:var(--accent)}.app-shell{display:grid;grid-template-rows:auto auto 1fr;min-height:100vh}.topbar{align-items:center;background:#141412eb;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;min-height:46px;padding:6px 12px}.brand{align-items:center;display:flex;gap:14px;font-size:15px;font-weight:800;letter-spacing:0;text-transform:uppercase}.brand img{height:24px;width:auto}.menu-strip,.topbar-status{align-items:center;display:flex;gap:6px}.menu-strip{flex:1;justify-content:start;min-width:0}.topbar-status{justify-content:flex-end}.status{color:var(--muted);font-size:12px;min-width:84px;text-align:right}.menu{position:relative}.menu-trigger{background:transparent;border-color:transparent;min-height:30px;padding:5px 9px}.menu-panel{background:#20201dfa;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:7px;left:0;min-width:220px;padding:8px;position:absolute;top:calc(100% + 7px);z-index:20}.recent-projects{border-bottom:1px solid var(--line);display:grid;gap:5px;margin-bottom:2px;padding-bottom:8px}.recent-projects>span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.recent-projects button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-panel button{justify-content:start;width:100%}.menu-field{color:var(--muted);display:grid;font-size:11px;font-weight:800;gap:5px}.hidden-file-input{display:none}.save-state,.zoom-readout{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;font-weight:800;gap:5px;min-height:34px;padding:0 4px}.workspace{display:grid;grid-template-columns:minmax(260px,310px) minmax(420px,1fr) minmax(300px,380px);min-height:calc(100vh - 46px)}.workspace.left-collapsed{grid-template-columns:48px minmax(420px,1fr) minmax(300px,380px)}.sidebar{background:#20201df0;border-right:1px solid var(--line);overflow:auto;padding:14px}.inspector{border-left:1px solid var(--line);border-right:0}.project-panel.collapsed{overflow:hidden;padding:8px 6px}.collapse-rail{align-content:center;display:grid;gap:8px;height:100%;justify-items:center;min-height:140px;padding:8px 4px;writing-mode:vertical-rl}.panel-collapse-button{justify-content:center;margin-bottom:10px;width:100%}section+section{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}h2{align-items:center;display:flex;font-size:13px;gap:8px;letter-spacing:0;margin:0 0 12px;text-transform:uppercase}.field{display:grid;gap:6px;margin-bottom:10px}.field span,.check-row{color:var(--muted);font-size:12px;font-weight:700}input,select,textarea{background:#151512;border:1px solid var(--line);border-radius:5px;color:var(--text);min-height:34px;padding:7px 9px;width:100%}textarea{resize:vertical}.date-grid,.split-controls{display:grid;gap:8px;grid-template-columns:1fr 1fr}.layout-list{display:grid;gap:6px;margin-bottom:10px}.layout-row{align-items:start;display:grid;gap:3px;justify-items:start;text-align:left;width:100%}.layout-row small{color:var(--muted);font-size:11px}.active,.selected{border-color:var(--accent)!important}.wide{justify-content:center;width:100%}.editor{display:grid;grid-template-rows:auto 1fr;min-width:0}.editor-zoom-bar{align-items:center;background:#292823eb;border-bottom:1px solid var(--line);display:flex;gap:8px;justify-content:center;min-height:42px;padding:6px 10px}.button-like input{display:none}.canvas-stage{align-items:center;background:linear-gradient(45deg,rgba(255,255,255,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.04) 75%),var(--canvas);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0;display:flex;justify-content:center;overflow:hidden;padding:28px;position:relative;touch-action:none;cursor:grab}.canvas-stage.panning{cursor:grabbing}.canvas-frame{box-shadow:var(--shadow);line-height:0;max-height:calc(100vh - 134px);max-width:100%;position:relative;transform-origin:center center;transition:transform .12s ease}.canvas-frame img{display:block;max-height:calc(100vh - 134px);max-width:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.marker-layer{top:0;right:0;bottom:0;left:0;position:absolute}.camera-marker{background:#111;border:3px solid var(--accent);border-radius:999px;height:36px;justify-content:center;line-height:1;min-height:36px;padding:0;position:absolute;touch-action:none;width:36px;z-index:2}.camera-marker:after{border-bottom:8px solid transparent;border-left:18px solid var(--accent);border-top:8px solid transparent;content:"";left:27px;position:absolute;top:8px}.camera-marker span{color:var(--accent);font-size:13px;font-weight:900;transform:rotate(var(--counter-rotation, 0deg));z-index:1}.camera-label{align-items:start;background:#fffffff2;border:2px solid #111;border-radius:6px;color:#111;display:grid;gap:3px;line-height:1.25;min-height:unset;min-width:0;overflow:hidden;padding:7px 9px;position:absolute;text-align:left;touch-action:none;max-width:240px;width:210px;z-index:3}.camera-label.selected{z-index:6}.camera-label strong,.camera-label span{display:block;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal}.camera-label strong{font-size:12px;line-height:1.2}.camera-label span{color:#4f4a40;font-size:11px;font-weight:700}.label-field-picker{border:1px solid var(--line);border-radius:6px;display:grid;gap:2px;margin:10px 0;padding:8px}.label-field-picker>span{color:var(--muted);font-size:12px;font-weight:800;margin-bottom:4px}.compact-check{margin:3px 0}.empty-canvas,.loading-state{align-items:center;color:#4a453c;display:grid;gap:12px;justify-items:center;min-height:320px;text-align:center}.access-denied{color:var(--text);min-height:calc(100vh - 80px);padding:32px}.access-denied p{color:var(--muted);max-width:520px}.camera-table{display:grid;gap:6px}.camera-table-head,.camera-row{display:grid;grid-template-columns:34px minmax(80px,1fr) minmax(70px,1fr) 52px;gap:6px}.camera-table-head{color:var(--muted);font-size:11px;font-weight:800;padding:0 8px;text-transform:uppercase}.camera-row{align-items:center;background:#181815;padding:6px;text-align:left}.camera-row input{min-height:28px;padding:5px 6px}.row-number{color:var(--accent);font-weight:900;text-align:center}.presence{color:var(--accent-2);font-size:10px;font-weight:800;text-transform:uppercase}.presence.off{color:var(--muted)}.check-row{align-items:center;display:flex;gap:8px;margin:10px 0}.check-row input{min-height:unset;width:auto}.danger{border-color:#df604da6;color:#ffd5cf}.error-banner{background:#4b1f19;border-bottom:1px solid var(--danger);color:#ffe7e3;padding:10px 16px}.muted{color:var(--muted)}.compact{font-size:11px;margin:4px 0 10px}.operational-ranges{margin:4px 0 12px}.share-form{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 86px}.share-form button{grid-column:1 / -1;justify-content:center}.member-list{display:grid;gap:6px;margin-top:10px}.member-row{align-items:center;background:#181815;border:1px solid var(--line);border-radius:6px;display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 84px 34px;padding:7px}.member-row strong,.member-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row small{color:var(--muted);font-size:10px}.member-row select,.icon-button{min-height:30px}.icon-button{justify-content:center;padding:6px;width:34px}.field-label-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.field-label-row>span{color:var(--muted);font-size:12px;font-weight:700}.field-label-row button,.range-row button{min-height:28px;padding:5px 7px}.range-row{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;margin-bottom:6px}.range-row input{min-height:30px;padding:5px 7px}.modal-backdrop{align-items:center;background:#0000009e;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed}.modal{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:320px;padding:18px}.repository-modal{max-height:min(760px,calc(100vh - 56px));max-width:min(1040px,calc(100vw - 40px));overflow:hidden;width:92vw}.share-modal,.admin-users-modal{max-height:min(780px,calc(100vh - 56px));max-width:min(1120px,calc(100vw - 40px));overflow:hidden;width:92vw}.modal-title-row,.repository-tools,.repository-actions{align-items:center;display:flex;gap:8px}.modal-title-row{justify-content:space-between;margin-bottom:12px}.modal-title-row h2{margin:0}.repository-tools{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:12px}.repository-tools .field{flex:1;margin:0}.repository-body{display:grid;gap:12px;grid-template-columns:210px minmax(0,1fr);min-height:440px}.repository-folders,.repository-list{overflow:auto}.repository-folders{border-right:1px solid var(--line);display:grid;align-content:start;gap:6px;padding-right:12px}.repository-folders button{justify-content:start;width:100%}.repository-list{display:grid;align-content:start;gap:8px;padding-right:4px}.repository-project{align-items:center;background:#181815;border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) minmax(160px,240px) auto;padding:10px}.repository-project.archived{opacity:.74}.repository-project strong,.repository-project span,.repository-project small,.repository-folder-field span{display:block}.repository-project span,.repository-project small,.repository-folder-field span{color:var(--muted);font-size:11px}.repository-folder-field{display:grid;gap:4px}.repository-folder-field input{min-height:30px}.share-overview-list,.admin-user-table{display:grid;gap:10px;max-height:calc(100vh - 170px);overflow:auto;padding-right:4px}.share-project-card{background:#181815;border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;padding:10px}.share-project-title,.share-member-row,.admin-user-head,.admin-user-row{align-items:center;display:grid;gap:10px}.share-project-title{grid-template-columns:minmax(0,1fr) auto}.share-member-table{display:grid;gap:6px}.share-member-row{background:#11110f;border:1px solid rgba(61,58,51,.7);border-radius:6px;grid-template-columns:minmax(180px,1fr) minmax(130px,180px) 104px auto;padding:8px}.admin-user-head,.admin-user-row{grid-template-columns:minmax(220px,1fr) 170px 90px 90px}.admin-user-head{color:var(--muted);font-size:11px;font-weight:800;padding:0 10px;text-transform:uppercase}.admin-user-row{background:#181815;border:1px solid var(--line);border-radius:8px;padding:10px}.share-project-title strong,.share-project-title span,.share-member-row strong,.share-member-row small,.admin-user-row strong,.admin-user-row small{display:block}.share-project-title span,.share-member-row small,.admin-user-row small,.admin-user-row>span{color:var(--muted);font-size:11px}.modal-actions{display:flex;gap:8px;justify-content:flex-end}@media(max-width:1180px){.workspace{grid-template-columns:250px minmax(360px,1fr)}.workspace.left-collapsed{grid-template-columns:48px minmax(360px,1fr)}.inspector{border-left:0;border-top:1px solid var(--line);grid-column:1 / -1}}@media(max-width:760px){.topbar{align-items:stretch;flex-direction:column}.menu-strip,.topbar-status{justify-content:start;flex-wrap:wrap}.workspace,.workspace.left-collapsed{grid-template-columns:1fr}.project-panel.collapsed{display:none}.sidebar,.inspector{max-height:unset}.canvas-stage{padding:14px}.repository-body,.repository-project,.share-member-row,.admin-user-head,.admin-user-row{grid-template-columns:1fr}.repository-folders{border-right:0;border-bottom:1px solid var(--line);max-height:160px;padding:0 0 12px}}
