.mapbox-gl-draw_ctrl-bottom-left,.mapbox-gl-draw_ctrl-top-left{margin-left:0;border-radius:0 4px 4px 0}.mapbox-gl-draw_ctrl-top-right,.mapbox-gl-draw_ctrl-bottom-right{margin-right:0;border-radius:4px 0 0 4px}.mapbox-gl-draw_ctrl-draw-btn{border-color:#000000e6;color:#ffffff80;width:30px;height:30px}.mapbox-gl-draw_ctrl-draw-btn.active,.mapbox-gl-draw_ctrl-draw-btn.active:hover{background-color:#0000000d}.mapbox-gl-draw_ctrl-draw-btn{background-repeat:no-repeat;background-position:center}.mapbox-gl-draw_point{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>')}.mapbox-gl-draw_polygon{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>')}.mapbox-gl-draw_line{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>')}.mapbox-gl-draw_trash{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>')}.mapbox-gl-draw_uncombine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>')}.mapbox-gl-draw_combine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>')}.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:pointer}.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive{cursor:crosshair}.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:cell}.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.mapbox-gl-draw_boxselect{pointer-events:none;position:absolute;top:0;left:0;width:0;height:0;background:#0000001a;border:2px dotted #fff;opacity:.5}.clerk-sign-in-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:#0a0e17f2}.clerk-sign-in-branding{display:flex;flex-direction:column;align-items:center;gap:12px}.sign-in-logo{height:80px;width:auto;object-fit:contain}.sign-in-title{font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-end) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.clerk-sign-in-overlay.hidden,.clerk-sign-in-overlay.sso-ui-hidden [class*=cl-socialButtons],.clerk-sign-in-overlay.sso-ui-hidden [class*=cl-divider]{display:none!important}:root{--bg-dark: #0a0e17;--bg-card: #151922;--bg-elevated: #1a1f2e;--border-subtle: #2a3142;--border-bright: #3a4252;--text-primary: #ffffff;--text-secondary: #a0aec0;--text-muted: #718096;--accent-cyan: #00d9ff;--accent-magenta: #ff0080;--accent-green: #00ff9f;--gradient-start: #34d399;--gradient-end: #3b82f6;--danger: #ff4757;--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5);--navbar-height: 56px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-dark);color:var(--text-primary);height:100vh;overflow:hidden}.app-container{display:flex;flex-direction:column;height:100vh}.top-navbar{height:var(--navbar-height);background:var(--bg-card);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;padding:0 20px;gap:24px;z-index:30;flex-shrink:0}.storage-usage-bar{display:flex;flex-direction:column;gap:6px;padding:12px 20px;border-top:1px solid var(--border-subtle);background:none;cursor:pointer;flex-shrink:0;transition:background .15s ease}.storage-usage-bar:hover{background:var(--bg-elevated)}.storage-usage-bar.hidden{display:none}.storage-usage-label{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-usage-track{width:100%;height:6px;border-radius:3px;background:var(--bg-elevated);border:1px solid var(--border-subtle);overflow:hidden}.storage-usage-fill{height:100%;background:var(--accent-cyan);border-radius:2px;transition:width .2s ease}.storage-usage-fill.storage-usage-warning{background:orange}.storage-usage-fill.storage-usage-danger{background:var(--danger)}.navbar-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.navbar-logo-img{height:32px!important;max-height:32px;width:auto;object-fit:contain;display:block}.navbar-logo{font-size:20px;font-weight:700;background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-end) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-subtitle{font-size:12px;color:var(--text-muted);white-space:nowrap}.navbar-nav{display:flex;align-items:center;gap:4px;flex-shrink:0}.navbar-link{display:flex;align-items:center;gap:6px;padding:8px 14px;background:none;border:1px solid transparent;border-radius:8px;color:var(--text-secondary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.navbar-link:hover{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--border-subtle)}.navbar-link.active{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--border-bright)}.navbar-search-wrapper{flex:1;max-width:640px;position:relative}.navbar-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:default}.navbar-search-close{display:none;background:none;border:none;color:var(--text-secondary);font-size:22px;line-height:1;padding:4px 8px;cursor:pointer}.navbar-search{width:100%;padding:8px 12px 8px 36px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:13px;font-family:inherit;transition:all .15s ease}.navbar-search:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 2px #00d9ff1a}.navbar-search::placeholder{color:var(--text-muted)}.navbar-actions{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-left:auto}.navbar-user{width:36px;height:36px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--border-bright);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;font-family:inherit}.navbar-user:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.map-area{flex:1;position:relative;overflow:hidden}#map{width:100%;height:100%}.floating-btn{position:absolute;display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;z-index:10;transition:all .15s ease;box-shadow:0 2px 8px #0000004d}.floating-btn:hover{background:var(--bg-elevated);border-color:var(--border-bright);box-shadow:0 4px 12px #0006}.floating-btn.hidden{display:none}.projects-btn{top:12px;left:12px}.layer-btn-floating{top:12px;right:12px}.layer-count-badge{background:var(--accent-cyan);color:var(--bg-dark);font-size:11px;font-weight:700;padding:0 5px;border-radius:10px;min-width:18px;text-align:center;line-height:18px}.layer-count-badge.hidden{display:none}.layer-dropdown{position:absolute;top:48px;right:12px;width:320px;max-height:330px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;box-shadow:var(--shadow-lg);z-index:15;overflow-y:auto;padding:12px}.layer-dropdown.hidden{display:none}.layer-dropdown-content{display:flex;flex-direction:column;gap:4px}.layer-dropdown-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.help-anchor-btn{flex-shrink:0;width:18px;height:18px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-subtle);border-radius:50%;color:var(--text-muted);font-size:11px;font-weight:600;line-height:1;cursor:pointer;transition:all .15s ease}.help-anchor-btn:hover{color:var(--accent-cyan);border-color:var(--accent-cyan);background:var(--bg-elevated)}.help-anchor-btn.hidden{display:none}.ui-dialog-title{display:flex;align-items:center;gap:8px}.ui-dialog-title .help-anchor-btn{margin-left:auto}.modal-header>.modal-title{margin-right:8px}.modal-header>.modal-close-btn{margin-left:auto}.notifications-panel-header h4,.admin-panel-header h3{flex:1}.boundary-edit-modal-header>span:first-child{flex:1}.tag-modal-header{display:flex;align-items:center;gap:8px}.tag-modal-title{flex:1}.layer-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.projects-panel{position:absolute;top:0;left:0;bottom:0;width:340px;background:var(--bg-card);border-right:1px solid var(--border-subtle);z-index:15;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 16px #0000004d}.projects-panel.open{transform:translate(0)}.projects-panel.explorer-expanded{width:560px}.panel-expand-btn{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1;transition:all .15s ease}.panel-expand-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.panel-expand-btn.active{color:var(--accent-cyan);background:#00d9ff1a}.explorer-tree{font-size:13px}.tree-row{display:flex;align-items:center;gap:4px;padding-top:4px;padding-bottom:4px;padding-right:6px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.tree-row:hover{background:var(--bg-elevated)}.tree-row.tree-row-drag-over{background:#00d9ff1f;box-shadow:inset 0 0 0 1px var(--accent-cyan)}.tree-row--selected{background:#4cc9f014}.tree-caret{flex-shrink:0;width:12px;text-align:center;font-size:9px;color:var(--text-muted);transition:transform .12s ease}.tree-caret.open{transform:rotate(90deg)}.tree-icon{flex-shrink:0;font-size:14px;line-height:1}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.tree-file .tree-name{color:var(--text-secondary)}.tree-date{flex-shrink:0;margin-left:8px;font-size:11px;color:var(--text-muted);text-align:right;white-space:nowrap}.tree-file-menu,.tree-folder-menu{flex-shrink:0;margin-left:4px;opacity:0;transition:opacity .12s ease}.tree-row:hover .tree-file-menu,.tree-row:hover .tree-folder-menu{opacity:1}.file-target-flash{animation:file-target-flash 2.2s ease}@keyframes file-target-flash{0%,25%{background:#00d9ff29;box-shadow:0 0 0 6px #00d9ff29}to{background:transparent;box-shadow:none}}.projects-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.projects-panel-title-group{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.projects-panel-header h3{font-size:16px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-close-btn{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1;transition:all .15s ease}.panel-close-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.projects-panel-body{flex:1;overflow-y:auto;padding:16px 20px}.panel-project-item{display:flex;align-items:center;padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease;margin-bottom:8px}.panel-project-item:hover{border-color:var(--accent-cyan);background:#00d9ff0d}.panel-project-icon{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-end) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:14px;margin-right:12px;flex-shrink:0}.panel-project-info{flex:1;min-width:0}.panel-project-name{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:2px}.panel-project-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.panel-back-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;font-size:16px;line-height:1;border-radius:4px;transition:all .15s ease}.panel-back-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.panel-back-btn.hidden{display:none}.panel-detail-title{font-size:15px;font-weight:600;color:var(--text-primary)}.panel-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.panel-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 8px}.panel-boundaries{display:flex;flex-direction:column;gap:4px;padding:8px 0 4px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.panel-boundary-group{display:flex;align-items:stretch;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden;transition:all .15s ease}.panel-boundary-group:hover{border-color:var(--accent-cyan, #4cc9f0)}.panel-boundary-group--hidden{opacity:.55}.panel-boundary-eye,.panel-boundary-main,.panel-boundary-add{background:transparent;border:none;color:var(--text-secondary);font-family:inherit;font-size:11px;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.panel-boundary-eye{min-width:24px;border-right:1px solid var(--border-subtle)}.panel-boundary-eye.on{color:var(--accent-cyan, #4cc9f0)}.panel-boundary-eye:hover,.panel-boundary-main:hover,.panel-boundary-add:hover{background:#4cc9f014;color:var(--text-primary)}.panel-boundary-main{flex:1;gap:8px;padding:7px 10px;justify-content:flex-start;text-align:left}.panel-boundary-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-boundary-main svg{flex-shrink:0}.panel-boundary-add{min-width:48px;padding:6px 10px;font-size:11px;font-weight:500;border-left:1px solid var(--border-subtle);white-space:nowrap}.toolbar-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:11px;cursor:pointer;font-family:inherit;transition:all .15s ease}.toolbar-btn:hover{border-color:var(--border-bright);color:var(--text-primary)}.toolbar-btn svg{flex-shrink:0}.panel-view-tabs{display:flex;gap:4px;padding:8px 0;border-bottom:1px solid var(--border-subtle);margin-bottom:8px}.panel-view-tab{flex:1;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s ease}.panel-view-tab:hover{border-color:var(--border-bright);color:var(--text-primary)}.panel-view-tab.active{background:var(--accent-cyan);border-color:var(--accent-cyan);color:var(--bg-dark);font-weight:600}.panel-view-tabs--segmented{gap:3px}.panel-view-tabs--segmented .panel-view-tab{padding:5px 4px;font-size:11px;letter-spacing:-.01em;white-space:nowrap}.panel-view-tabs--six .panel-view-tab{padding:5px 2px;font-size:10.5px}.project-sheets{display:flex;flex-direction:column;gap:10px}.sheets-card{display:flex;align-items:center;gap:10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px}.sheets-card--warn{border-color:#f59e0b;background:#f59e0b14}.sheets-card-text{flex:1;font-size:12px;line-height:1.45;color:var(--text-secondary)}.sheets-actions{display:flex;justify-content:flex-end}.sheets-list{display:flex;flex-direction:column;gap:4px}.sheets-row{display:flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-elevated)}.sheets-row:hover{border-color:var(--border-bright)}.sheets-row-name{flex:1;min-width:0;text-align:left;background:none;border:none;padding:0;font-family:inherit;font-size:13px;color:var(--text-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheets-row-name:hover{color:var(--accent-cyan);text-decoration:underline}.sheets-notice{margin-top:2px;font-size:11px;line-height:1.45;color:var(--text-muted)}.sheets-picker-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border-subtle)}.sheets-picker-row:last-child{border-bottom:none}.sheets-picker-meta{flex:1;min-width:0}.sheets-picker-name{font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheets-picker-sub{margin-top:2px;font-size:11px;color:var(--text-muted)}.sheets-linked-chip{flex-shrink:0;padding:3px 8px;border-radius:10px;background:var(--bg-dark);border:1px solid var(--border-subtle);font-size:11px;color:var(--text-muted)}.sheets-row-meta{flex:1;min-width:0;display:flex;flex-direction:column}.activity-feed{display:flex;flex-direction:column;gap:8px}.activity-stat-tiles{margin-bottom:8px}.activity-list{display:flex;flex-direction:column;gap:4px}.activity-row{padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;font-size:12px;line-height:1.4;color:var(--text-secondary)}.activity-line{word-break:break-word}.activity-actor{color:var(--text-primary);font-weight:600}.activity-target{color:var(--accent-cyan)}.activity-time{margin-top:2px;font-size:11px;color:var(--text-muted)}.activity-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.activity-load-more{align-self:center;padding:6px 16px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s ease}.activity-load-more:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.panel-prompt{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:13px}.panel-prompt button{margin-top:12px}.upload-feedback{margin-top:10px;padding:10px 14px;border-radius:8px;font-size:13px;word-break:break-word;display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px}.upload-feedback>span{flex:1;min-width:0}.upload-cancel-btn{background:none;border:1px solid currentColor;border-radius:4px;color:inherit;cursor:pointer;font-size:12px;padding:2px 10px;white-space:nowrap;flex-shrink:0}.upload-cancel-btn:hover{color:#f55;border-color:#f55}.upload-feedback.hidden{display:none}.upload-feedback-info{background:#00d9ff1a;border:1px solid var(--accent-cyan);color:var(--accent-cyan)}.upload-feedback-success{background:#00ff9f1a;border:1px solid var(--accent-green);color:var(--accent-green)}.upload-feedback-error{background:#ff47571a;border:1px solid var(--danger);color:var(--danger)}.upload-feedback-warning{background:#ffa5001a;border:1px solid #ffa500;color:orange}.feedback-action-btn{margin-left:8px;padding:4px 10px;background:#ffa50040;border:1px solid #ffa500;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;transition:background .2s;white-space:nowrap;flex-shrink:0}.feedback-action-btn:hover{background:#ffa50073}.feedback-dismiss-btn{margin-left:8px;padding:2px 6px;background:transparent;border:none;color:inherit;cursor:pointer;font-size:16px;opacity:.7}.feedback-dismiss-btn:hover{opacity:1}.panel-drop-zone{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:8px 12px;margin-bottom:10px;border:2px dashed var(--border-subtle);border-radius:8px;color:var(--text-muted);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease,color .15s ease;-webkit-user-select:none;user-select:none}.panel-drop-zone:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00d9ff0a}.panel-drop-zone.drag-active{border-color:var(--accent-cyan);background:#00d9ff1a;color:var(--accent-cyan);box-shadow:0 0 12px #00d9ff26}.panel-drop-zone.uploading{opacity:.5;cursor:not-allowed;pointer-events:none}.panel-drop-zone-icon{font-size:16px;line-height:1}.panel-drop-zone-text{font-size:12px;font-weight:500}.panel-drop-zone-sub{font-size:11px;opacity:.7}.panel-drop-zone-folder-btn{margin-top:0;padding:4px 12px;font-size:11px;font-weight:500;color:var(--accent-cyan);background:#00d9ff0f;border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.panel-drop-zone-folder-btn:hover{border-color:var(--accent-cyan);background:#00d9ff1f}.file-list-section{margin-top:8px}.file-list-section.hidden{display:none}.file-list-header{display:flex;align-items:center;gap:6px;padding:8px 0;cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:500;-webkit-user-select:none;user-select:none}.file-list-header:hover{color:var(--text-primary)}.file-list-chevron{font-size:12px;transition:transform .2s ease;transform:rotate(-90deg)}.file-list-chevron.open{transform:rotate(0)}.file-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.file-list.hidden{display:none}.file-list-empty{padding:12px 0;color:var(--text-muted);font-size:13px;text-align:center}.file-item{display:flex;align-items:center;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;gap:8px;cursor:grab}.file-item--selected{border-color:var(--accent-cyan, #4cc9f0);background:#4cc9f014}.file-item-checkbox{margin:0;flex-shrink:0;cursor:pointer}.file-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;margin:6px 0;background:#4cc9f014;border:1px solid var(--accent-cyan, #4cc9f0);border-radius:6px;font-size:12px}.file-selection-count{color:var(--text-primary);font-weight:500}.file-selection-actions{display:flex;gap:4px}.file-selection-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer}.file-selection-btn:hover{border-color:var(--accent-cyan, #4cc9f0)}.file-selection-btn--danger:hover{border-color:#ef476f;color:#ef476f}.file-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-item-top-row{display:flex;align-items:center;gap:4px}.file-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.file-item-meta-row{display:flex;align-items:center;gap:6px}.file-item:active{cursor:grabbing}.file-item.file-item-no-drag,.file-item.file-item-no-drag:active{cursor:default}.file-item-thumb{width:32px;height:32px;border-radius:4px;object-fit:cover;flex-shrink:0}.file-item-thumb-placeholder{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;color:var(--text-muted)}.file-item-name{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.file-item-name--openable{cursor:pointer;-webkit-user-select:none;user-select:none}.file-item-name--openable:hover{text-decoration:underline;text-decoration-color:var(--accent, #4cc9f0);text-underline-offset:2px}.file-item-date{font-size:10px;color:var(--text-muted);white-space:nowrap}.file-item-office{background:none;border:none;cursor:pointer;padding:2px 4px;flex-shrink:0;line-height:1;opacity:.85;transition:opacity .2s ease;display:flex;align-items:center}.file-item-office:hover{opacity:1}.file-item-download{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0 4px;flex-shrink:0;line-height:1;transition:color .2s ease}.file-item-download:hover{color:var(--accent-cyan)}.file-item-delete{background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:0 4px;flex-shrink:0;line-height:1;transition:color .2s ease}.file-item-delete:hover{color:var(--danger)}.folder-item{display:flex;align-items:center;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;gap:8px;cursor:pointer;transition:border-color .2s ease}.folder-item:hover{border-color:var(--border-bright)}.folder-item--has-boundary{border-left:3px solid #f5a623}.folder-item--shared-external{border-left:3px solid #9b59b6}.folder-item--has-boundary.folder-item--shared-external{border-left:3px solid #f5a623;border-top:2px solid #9b59b6}.folder-shared-badge{font-size:12px;opacity:.7;flex-shrink:0}.folder-item--protected .folder-name:after,.tree-folder--protected .tree-name:after{content:" 🔒";font-size:10px;opacity:.55}.folder-icon{font-size:16px;flex-shrink:0}.folder-name{font-size:13px;color:var(--text-primary);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-rename-input{flex:1;min-width:0;background:var(--bg-elevated);border:1px solid var(--accent-cyan);border-radius:4px;color:var(--text-primary);font-size:13px;padding:2px 6px;margin:-3px 0;outline:none;box-shadow:0 0 0 2px #00d9ff26}.inline-rename-input:focus{border-color:var(--accent-cyan)}.folder-item--renaming,.file-item--renaming{cursor:default}.folder-menu-btn,.file-menu-btn{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;flex-shrink:0;transition:color .2s ease,background .2s ease}.folder-menu-btn:hover,.file-menu-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.folder-menu-dropdown{display:none;position:fixed;min-width:140px;background:var(--bg-elevated);border:1px solid var(--border-bright);border-radius:6px;padding:4px 0;z-index:1000;box-shadow:0 4px 12px #0006}.folder-menu-dropdown.open{display:block}.folder-menu-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text-primary);font-size:13px;padding:6px 12px;cursor:pointer;transition:background .15s ease;white-space:nowrap}.folder-menu-item:hover{background:var(--bg-hover)}.folder-menu-item--danger{color:var(--danger)}.folder-menu-item--danger:hover{background:#ef444426}.folder-menu-divider{height:1px;background:var(--border-subtle);margin:4px 0}.move-lot-options{display:flex;flex-direction:column;gap:4px}.move-lot-option{display:block;width:100%;text-align:left;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:13px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:border-color .2s ease,background .2s ease}.move-lot-option:hover:not(:disabled){border-color:var(--accent-cyan);background:#00d9ff14}.move-lot-option--current{color:var(--text-muted);cursor:default;opacity:.6}.folder-item.folder-drag-over{border-color:var(--accent-cyan);background:#00d9ff1a;box-shadow:0 0 8px #00d9ff33}.folder-go-up-drop{display:flex;align-items:center;justify-content:center;padding:10px 12px;margin-bottom:6px;border:2px dashed var(--border-subtle);border-radius:6px;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.folder-go-up-drop:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00d9ff0d}.folder-go-up-drop.folder-go-up-active{border-color:var(--accent-cyan);background:#00d9ff14;color:var(--accent-cyan)}.breadcrumb{display:flex;align-items:center;gap:4px;padding:6px 0;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.breadcrumb-segment{background:none;border:none;color:var(--accent-cyan);font-size:12px;cursor:pointer;padding:2px 4px;border-radius:4px}.breadcrumb-segment:hover{background:var(--bg-elevated)}.breadcrumb-segment--drag-over{background:#4cc9f02e!important;outline:1px dashed var(--accent-cyan, #4cc9f0)}.breadcrumb-current{color:var(--text-primary);font-weight:500;padding:2px 4px}.breadcrumb-separator{color:var(--text-muted)}.feature-meta{display:flex;flex-direction:column;gap:6px;padding:8px 0 10px;margin-bottom:8px;border-bottom:1px solid var(--border-subtle)}.feature-meta-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.feature-meta-title{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feature-meta-toggle{background:none;border:none;color:var(--text-secondary);font-size:11px;line-height:1;cursor:pointer;padding:2px;flex-shrink:0}.feature-meta-toggle:hover{color:var(--text-primary)}.feature-meta-head .feature-meta-title{cursor:pointer;flex:1}.feature-meta--collapsed{padding-bottom:6px}.feature-meta-type{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-left:4px}.feature-meta-color{display:inline-flex;align-items:center;flex-shrink:0;cursor:pointer}.feature-meta-color input[type=color]{width:24px;height:24px;padding:0;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-elevated);cursor:pointer}.feature-meta-color input[type=color]:disabled{cursor:default;opacity:.6}.feature-meta-status{display:flex;align-items:center;gap:8px;margin:6px 0}.feature-meta-status-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.feature-meta-status-select{flex:1;background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);padding:5px 8px;font-size:12px;font-family:inherit}.feature-meta-status-select:focus{outline:none;border-color:var(--accent-cyan)}.feature-meta-grid{display:flex;flex-direction:column;gap:4px;max-height:168px;overflow-y:auto;padding-right:2px}.feature-meta-row{display:grid;grid-template-columns:1fr 1fr auto;gap:4px;align-items:center}.feature-meta-input{width:100%;padding:5px 8px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:inherit;transition:border-color .15s ease}.feature-meta-input.feature-meta-label{color:var(--text-secondary);font-weight:500}.feature-meta-input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 2px #00d9ff1a}.feature-meta-remove{background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;width:22px;height:22px;border-radius:4px;cursor:pointer}.feature-meta-remove:hover{color:#f55;background:var(--bg-elevated)}.feature-meta-add{align-self:flex-start;background:none;border:none;color:var(--accent-cyan);font-size:12px;cursor:pointer;padding:2px 4px;border-radius:4px}.feature-meta-add:hover{background:var(--bg-elevated)}.create-folder-inline{display:flex;gap:6px;align-items:center;margin-bottom:8px}.create-folder-inline input{flex:1;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:13px}.create-folder-inline input:focus{outline:none;border-color:var(--accent-cyan)}.create-folder-inline button{padding:6px 12px;font-size:12px;border-radius:6px;cursor:pointer;border:none;flex-shrink:0}.create-folder-ok{background:var(--accent-cyan);color:var(--bg-dark);font-weight:600}.create-folder-cancel{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle)!important}.btn{padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none;font-family:inherit}.btn-primary{background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-end) 100%);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover{border-color:var(--border-bright);background:var(--bg-card)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-text{background:transparent;border:none;color:var(--accent-cyan);font-size:13px;cursor:pointer;padding:0}.btn-text:hover{text-decoration:underline}.full-width{width:100%}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-overlay.hidden{display:none}.modal-content{background:var(--bg-card);border:1px solid var(--border-bright);border-radius:16px;width:90%;max-width:480px;max-height:80vh;overflow:hidden;box-shadow:var(--shadow-lg)}.modal-header{padding:24px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:20px;font-weight:600;color:var(--text-primary)}.modal-close-btn{background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:0 4px;line-height:1}.modal-close-btn:hover{color:var(--text-primary)}.modal-body{padding:24px;overflow-y:auto;max-height:60vh}.selection-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.selection-item{display:flex;align-items:center;padding:16px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:10px;cursor:pointer;transition:all .2s ease}.selection-item:hover{border-color:var(--accent-cyan);background:#00d9ff0d;transform:translate(4px)}.selection-icon{width:40px;height:40px;border-radius:8px;background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-end) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;margin-right:14px;flex-shrink:0}.selection-info{flex:1;min-width:0}.selection-name{font-size:15px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.selection-meta{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rename-btn{background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:4px 6px;flex-shrink:0;opacity:0;transition:opacity .2s ease,color .2s ease}.selection-item:hover .rename-btn,.panel-project-item:hover .rename-btn{opacity:1}.rename-btn:hover{color:var(--accent-cyan)}.current-context{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-elevated);border-radius:8px;margin-bottom:16px}.context-label{font-size:13px;color:var(--text-secondary)}.context-value{font-size:14px;font-weight:500;color:var(--accent-cyan)}.empty-state{text-align:center;padding:32px 16px}.empty-state p{color:var(--text-secondary);margin-bottom:16px}.create-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--text-secondary)}.form-input{padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:14px;font-family:inherit;transition:all .15s ease}.form-input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 2px #00d9ff1a}.form-input::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-error{padding:12px 16px;background:#ff47571a;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:14px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px}.spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-loading{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.map-loading.hidden{display:none}.map-loading p{color:var(--text-secondary);font-size:14px}.map-style-switcher{position:absolute;bottom:32px;left:12px;z-index:10;transition:left .25s ease}.map-style-switcher.panel-open{left:352px}.map-style-switcher.panel-open.explorer-expanded{left:572px}.map-style-switcher.expanded .style-grid{display:grid}.style-grid{display:none;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;box-shadow:var(--shadow-lg)}.style-thumb{position:relative;width:80px;height:56px;border-radius:6px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .15s ease}.style-thumb:hover{border-color:var(--text-secondary)}.style-thumb.active{border-color:var(--accent-cyan);cursor:default}.style-thumb img{width:100%;height:100%;object-fit:cover;display:block}.style-thumb-label{position:absolute;bottom:0;left:0;right:0;padding:2px 4px;background:#000000b3;color:#fff;font-size:10px;font-weight:500;text-align:center;line-height:1.3}.style-collapsed{position:relative;width:80px;height:56px;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid var(--border-subtle);box-shadow:0 2px 8px #0006;transition:border-color .15s ease}.style-collapsed:hover{border-color:var(--text-secondary)}.style-collapsed img{width:100%;height:100%;object-fit:cover;display:block}.style-collapsed-label{position:absolute;bottom:0;left:0;right:0;padding:2px 4px;background:#000000b3;color:#fff;font-size:10px;font-weight:600;text-align:center;line-height:1.3}.map-style-switcher.expanded .style-collapsed{display:none}.mapboxgl-ctrl-top-right{top:172px!important}.mapboxgl-ctrl-group{background:var(--bg-card)!important;border:1px solid var(--border-subtle)!important}.mapboxgl-ctrl-group button{background-color:transparent!important}.mapboxgl-ctrl-group button:hover{background-color:var(--bg-elevated)!important}.mapboxgl-ctrl-group button span{filter:invert(1)}.drop-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0a0e17d9;border:3px dashed var(--accent-cyan);display:flex;align-items:center;justify-content:center;z-index:20;pointer-events:none;transition:left .25s ease}.drop-overlay.panel-open{left:340px}.drop-overlay.panel-open.explorer-expanded{left:560px}.drop-overlay.hidden{display:none}.drop-overlay-text{font-size:20px;font-weight:600;color:var(--accent-cyan);letter-spacing:.5px}.conversion-overlay{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 16px;z-index:20;box-shadow:var(--shadow-lg);font-size:13px;color:var(--text-muted)}.conversion-overlay.hidden{display:none}.conversion-overlay .spinner{width:16px;height:16px;border-width:2px}.conversion-cancel-btn{background:none;border:1px solid var(--text-muted);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:12px;padding:3px 10px;margin-left:4px}.conversion-cancel-btn:hover{color:#f55;border-color:#f55}.layer-item{display:flex;align-items:center;flex-wrap:wrap;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;gap:6px 8px;margin-bottom:4px}.layer-item:hover{border-color:var(--border-bright)}.layer-item.dragging{opacity:.5}.layer-item.drop-before{box-shadow:inset 0 2px 0 0 var(--accent-cyan)}.layer-item.drop-after{box-shadow:inset 0 -2px 0 0 var(--accent-cyan)}.layer-drag-handle{flex-shrink:0;cursor:grab;color:var(--text-muted);font-size:13px;line-height:1;-webkit-user-select:none;user-select:none}.layer-drag-handle:active{cursor:grabbing}.layer-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.layer-item .file-item-name{flex:1;min-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-secondary)}.layer-extras{display:flex;align-items:center;gap:8px;flex-shrink:0}.layer-opacity-slider{width:50px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border-subtle);border-radius:2px;outline:none;flex-shrink:0;cursor:pointer}.layer-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-cyan);cursor:pointer}.layer-opacity-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent-cyan);cursor:pointer;border:none}.layer-btn{background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:2px 4px;flex-shrink:0;border-radius:3px;line-height:1}.layer-btn:hover{color:var(--text-primary);background:var(--border-subtle)}.layer-btn.active{color:var(--accent-cyan)}.layer-btn.saved{color:var(--accent-green)}.layer-btn.remove:hover{color:#f55}.layer-btn.georef-done{color:#4f4}.layer-btn.georef-cancel{color:#f55}.georef-corner-handle{width:14px;height:14px;border-radius:50%;border:2px solid white;cursor:grab;box-shadow:0 0 4px #00000080}.georef-corner-handle:active{cursor:grabbing}.georef-center-handle{width:20px;height:20px;border-radius:50%;background:#fffc;border:2px solid #00d9ff;cursor:move;box-shadow:0 0 6px #0006}.georef-rotation-handle{width:16px;height:16px;border-radius:50%;background:#f80;border:2px solid white;cursor:alias;box-shadow:0 0 4px #00000080}.georef-resize-handle{width:16px;height:16px;border-radius:3px;background:#00d9ff;border:2px solid white;cursor:nwse-resize;box-shadow:0 0 4px #00000080}.layer-processing{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--text-muted);font-size:12px}.layer-processing .spinner{width:14px;height:14px;border-width:2px}.cancel-conversion-btn{margin-left:auto;background:none;border:1px solid var(--text-muted);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 6px}.cancel-conversion-btn:hover{color:#f55;border-color:#f55}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:380px;background:var(--bg-card);border:1px solid var(--border-bright);border-radius:10px;box-shadow:var(--shadow-lg);z-index:200;max-height:420px;overflow-y:auto}.search-dropdown.hidden{display:none}.search-section-header{padding:10px 14px 4px;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;border-top:1px solid var(--border-subtle)}.search-section-header:first-child{border-top:none}.search-result-item{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;transition:background .1s ease}.search-result-item:hover{background:var(--bg-elevated)}.search-result-item:last-child{border-radius:0 0 10px 10px}.search-show-more{padding:8px 14px;font-size:12px;color:var(--accent-cyan);cursor:pointer;text-align:center;border-top:1px solid var(--border-subtle);transition:background .15s ease}.search-show-more:hover{background:var(--bg-elevated)}.search-result-icon{font-size:15px;flex-shrink:0;width:20px;text-align:center;color:var(--text-muted)}.search-result-text{flex:1;min-width:0}.search-result-name{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-sub{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.search-result-snippet mark{background:#00d9ff38;color:var(--text-primary);border-radius:2px;padding:0 1px}.search-loading{display:flex;justify-content:center;padding:20px}.search-loading .spinner{width:20px;height:20px;border-width:2px}.search-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}.ref-layers-section{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.ref-layers-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;padding:0 2px}.ref-layer-item{display:flex;align-items:center;justify-content:space-between;padding:5px 2px}.ref-layer-label{font-size:12px;color:var(--text-secondary)}.ref-layer-toggle{position:relative;width:32px;height:18px;background:var(--border-subtle);border:none;border-radius:9px;cursor:pointer;flex-shrink:0;transition:background .2s ease;padding:0}.ref-layer-toggle.on{background:var(--accent-cyan)}.ref-toggle-knob{position:absolute;top:3px;left:3px;width:12px;height:12px;background:#fff;border-radius:50%;transition:left .2s ease;pointer-events:none;display:block}.ref-layer-toggle.on .ref-toggle-knob{left:17px}.project-search-row{display:flex;align-items:center;gap:6px;padding:6px 0 4px}.project-search-input{flex:1;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:5px 10px;font-size:12px;color:var(--text-primary);outline:none}.project-search-input:focus{border-color:var(--accent-cyan)}.project-search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 6px;flex-shrink:0;line-height:1}.project-search-clear:hover{color:var(--text-primary)}.file-item-path-label{font-size:10px;color:var(--text-muted);grid-column:1 / -1;padding:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-tag-btn{background:none;border:1px solid transparent;border-radius:4px;color:var(--text-muted);font-size:13px;cursor:pointer;padding:2px 6px;flex-shrink:0;line-height:1;display:inline-flex;align-items:center;gap:3px;transition:color .15s ease,border-color .15s ease}.file-item-tag-btn:hover{color:var(--accent-cyan);border-color:#00d9ff59}.file-item-tag-btn.has-tags{color:var(--accent-cyan)}.file-item-tag-count{font-size:10px;font-weight:600;background:#00d9ff26;border-radius:8px;padding:0 4px;min-width:14px;text-align:center;line-height:14px}.tag-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center}.tag-modal-overlay.hidden{display:none}.tag-modal-box{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:var(--shadow-lg);width:340px;max-height:80vh;display:flex;flex-direction:column;overflow:visible}.tag-modal-header{padding:16px 20px 12px;border-bottom:1px solid var(--border-subtle)}.tag-modal-title{font-size:14px;font-weight:600;color:var(--text-primary)}.tag-modal-body{padding:12px 20px;overflow:visible;flex:1}.tag-selected-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;min-height:28px}.tag-selected-empty{font-size:12px;color:var(--text-muted)}.tag-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#00d9ff1f;border:1px solid rgba(0,217,255,.3);border-radius:12px;font-size:12px;color:var(--accent-cyan)}.tag-pill-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 1px;transition:color .15s ease}.tag-pill-remove:hover{color:var(--danger)}.tag-dropdown-wrapper{position:relative;margin-bottom:10px}.tag-dropdown-input{width:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:6px 10px;font-size:12px;color:var(--text-primary);outline:none;box-sizing:border-box}.tag-dropdown-input:focus{border-color:var(--accent-cyan)}.tag-dropdown-list{position:absolute;left:0;right:0;z-index:10;max-height:210px;overflow-y:auto;border:1px solid var(--border-subtle);border-top:none;border-radius:0 0 8px 8px;background:var(--bg-card);box-shadow:0 8px 24px #00000080}.tag-dropdown-list.hidden{display:none}.tag-dropdown-empty{padding:8px 10px;font-size:12px;color:var(--text-muted)}.tag-dropdown-create{border-top:1px solid var(--border-subtle)}.tag-dropdown-new-label{font-size:11px;color:var(--text-muted);margin-left:6px;flex-shrink:0}.tag-dropdown-item{display:flex;align-items:center;padding:6px 10px;cursor:pointer;font-size:12px;color:var(--text-secondary);transition:background .1s}.tag-dropdown-item:hover{background:var(--bg-card);color:var(--text-primary)}.tag-dropdown-item-selected{color:var(--accent-cyan);opacity:.7}.tag-dropdown-check{font-size:12px;color:var(--accent-cyan);flex-shrink:0}.tag-dropdown-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-dropdown-item-actions{display:flex;gap:2px;flex-shrink:0}.tag-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 3px;line-height:1;flex-shrink:0;opacity:0;transition:color .15s ease,opacity .15s ease}.tag-dropdown-item:hover .tag-action-btn{opacity:1}.tag-rename-btn:hover{color:var(--accent-cyan)}.tag-delete-btn:hover{color:var(--danger)}.tag-add-row{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.tag-add-row input{flex:1;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:6px 10px;font-size:12px;color:var(--text-primary);outline:none}.tag-add-row input:focus{border-color:var(--accent-cyan)}.tag-add-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:6px 12px;font-size:12px;color:var(--text-secondary);cursor:pointer}.tag-add-btn:hover{color:var(--text-primary);border-color:var(--border-bright)}.tag-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border-subtle)}.pdf-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:1100;display:flex;align-items:center;justify-content:center}.pdf-preview-container{background:var(--bg-card);border:1px solid var(--border-bright);border-radius:16px;box-shadow:var(--shadow-lg);width:90%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.pdf-preview-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.pdf-preview-title{font-size:16px;font-weight:600;color:var(--text-primary)}.pdf-preview-body{padding:16px 20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.pdf-preview-nav{display:flex;align-items:center;justify-content:center;gap:12px}.pdf-nav-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.pdf-nav-btn:hover:not(:disabled){background:var(--border-subtle);border-color:var(--border-bright)}.pdf-nav-btn:disabled{opacity:.3;cursor:default}.pdf-page-input-wrap{display:flex;align-items:center;gap:6px}.pdf-page-input-wrap input{width:48px;text-align:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:6px;padding:6px 4px;font-size:14px}.pdf-page-input-wrap input:focus{outline:none;border-color:var(--accent-cyan)}.pdf-page-total{color:var(--text-secondary);font-size:14px}.pdf-preview-image-wrap{display:flex;justify-content:center;background:var(--bg-dark);border-radius:8px;padding:8px;min-height:200px}.pdf-preview-image-wrap img{max-width:100%;max-height:400px;object-fit:contain;border-radius:4px}.pdf-preview-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:8px 0;scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}.pdf-thumb{flex-shrink:0;width:64px;cursor:pointer;border:2px solid transparent;border-radius:6px;padding:2px;transition:border-color .15s;text-align:center}.pdf-thumb:hover{border-color:var(--border-bright)}.pdf-thumb.active{border-color:var(--accent-cyan)}.pdf-thumb img{width:100%;border-radius:4px}.pdf-thumb-label{display:block;font-size:10px;color:var(--text-secondary);margin-top:2px}.pdf-preview-footer{padding:12px 20px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:10px}.pdf-action-btn{padding:8px 18px;border-radius:8px;border:1px solid var(--border-subtle);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.pdf-action-btn.secondary{background:var(--bg-elevated);color:var(--text-primary)}.pdf-action-btn.secondary:hover{background:var(--border-subtle)}.pdf-action-btn.primary{background:var(--accent-cyan);color:var(--bg-dark);border-color:var(--accent-cyan)}.pdf-action-btn.primary:hover{filter:brightness(1.15)}.pdf-page-turner{position:absolute;z-index:10;background:var(--bg-card);border:1px solid var(--border-bright);border-radius:10px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:6px;padding:4px 8px;pointer-events:auto}.pt-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .15s}.pt-btn:hover{background:var(--border-subtle)}.pt-info{display:flex;align-items:center;gap:4px}.pt-input{width:36px;text-align:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:4px;padding:3px 2px;font-size:12px}.pt-input:focus{outline:none;border-color:var(--accent-cyan)}.pt-total{color:var(--text-secondary);font-size:12px;white-space:nowrap}.layer-pages-badge{font-size:10px;color:var(--accent-cyan);background:#00d9ff1f;border-radius:4px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.navbar-icon-btn{background:none;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.navbar-icon-btn:hover{color:var(--accent-cyan);border-color:var(--border-subtle);background:var(--bg-elevated)}.navbar-icon-btn.hidden{display:none}.admin-panel{position:fixed;top:var(--navbar-height);right:0;bottom:0;width:400px;background:var(--bg-card);border-left:1px solid var(--border-subtle);z-index:20;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease;box-shadow:-4px 0 16px #0000004d}.admin-panel.open{transform:translate(0)}.admin-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.admin-panel-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.admin-panel-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:0 12px}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;padding:10px 11px;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}.admin-panel-body{flex:1;overflow-y:auto;padding:16px 20px}.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;text-align:center}.stat-card.accent{grid-column:1 / -1;border-color:var(--accent-cyan);background:#00d9ff0d}.stat-number{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-card.accent .stat-number{color:var(--accent-cyan)}.stat-label{font-size:12px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.admin-list{display:flex;flex-direction:column;gap:2px}.admin-list-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:6px;background:transparent;transition:background .1s ease;gap:10px}.admin-list-item:nth-child(odd){background:var(--bg-elevated)}.admin-list-item.deactivated{opacity:.5}.admin-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-item-primary{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-item-secondary{font-size:11px;color:var(--text-muted)}.admin-item-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.btn-sm{font-size:11px;padding:4px 10px;border-radius:4px;border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-sm:hover{border-color:var(--border-bright);color:var(--text-primary)}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.btn-sm.btn-primary{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));border:none;color:#fff}.btn-sm.btn-danger{color:var(--danger);border-color:#ff47574d}.btn-sm.btn-danger:hover{background:#ff47571a;border-color:var(--danger)}.btn-sm.btn-success{color:var(--accent-green);border-color:#00ff9f4d}.btn-sm.btn-success:hover{background:#00ff9f1a;border-color:var(--accent-green)}.share-scope-badge{font-size:11px;color:var(--text-muted);background:var(--bg-elevated);padding:2px 6px;border-radius:4px;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.share-item--dim{opacity:.45}.share-others-section{margin-top:16px}.share-others-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);font-size:12px}.share-others-toggle:hover{color:var(--text-secondary)}.ws-share-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle);margin-bottom:16px}.ws-share-tab{flex:1;padding:8px 12px;border:none;background:none;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.ws-share-tab:hover{color:var(--text-primary)}.ws-share-tab--active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}.role-select--inline{margin-left:8px}.role-select{font-size:11px;padding:3px 6px;border-radius:4px;border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer}.role-badge{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.role-badge.role-admin,.role-badge.role-owner{background:#00d9ff26;color:var(--accent-cyan)}.role-badge.role-member,.role-badge.role-user,.role-badge.role-viewer{background:var(--bg-elevated);color:var(--text-muted)}.role-badge.role-editor{background:#00ff9f26;color:#00ff9f}.pf-employee-badge{display:inline-block;margin-left:6px;font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle;background:#00d9ff26;color:var(--accent-cyan)}.admin-search{display:flex;gap:8px;margin-bottom:12px}.admin-search input{flex:1}.admin-input{width:100%;padding:8px 12px;font-size:13px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);outline:none;transition:border-color .15s ease}.admin-input:focus{border-color:var(--accent-cyan)}.admin-input::placeholder{color:var(--text-muted)}.admin-form{padding:12px;margin-bottom:12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;gap:8px}.admin-form.hidden{display:none}.admin-form-actions{display:flex;gap:8px}.admin-section-header{display:flex;justify-content:flex-end;margin-bottom:12px}.admin-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;margin-top:8px}.admin-settings-form,.billing-panel{display:flex;flex-direction:column}.billing-status-banner{background:#00d9ff1a;border:1px solid var(--accent-cyan);color:var(--accent-cyan);border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:12px}.billing-status-banner.billing-status-danger{background:#ff47571a;border-color:var(--danger);color:var(--danger)}.billing-status-banner.billing-trial-offer{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-primary)}.billing-current-plan{margin-bottom:16px}.billing-current-plan h4{margin:0 0 4px;color:var(--text-primary)}.billing-usage{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.billing-usage-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.billing-usage-track{height:6px;border-radius:3px;background:var(--bg-elevated);border:1px solid var(--border-subtle);overflow:hidden}.billing-usage-fill{height:100%;background:var(--accent-cyan);border-radius:3px}.billing-usage-fill.billing-usage-warning{background:orange}.billing-usage-fill.billing-usage-danger{background:var(--danger)}.usage-meters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.usage-meter{display:flex;flex-direction:column;gap:4px}.usage-meter-label{font-size:12px;color:var(--text-secondary)}.usage-meter-bar{height:6px;border-radius:3px;background:var(--bg-elevated);border:1px solid var(--border-subtle);overflow:hidden}.usage-meter-fill{height:100%;width:0;background:var(--accent-cyan);border-radius:3px;transition:width .2s ease}.usage-meter-fill.storage-usage-warning{background:orange}.usage-meter-fill.storage-usage-danger{background:var(--danger)}.usage-breakdown{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-elevated)}.usage-breakdown-heading{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.usage-breakdown-row{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"name size pct" "bar  bar  bar";align-items:center;gap:3px 10px;font-size:12px;color:var(--text-primary)}.usage-breakdown-name{grid-area:name;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-breakdown-size{grid-area:size;color:var(--text-secondary);white-space:nowrap}.usage-breakdown-pct{grid-area:pct;color:var(--text-secondary);white-space:nowrap;min-width:34px;text-align:right}.usage-breakdown-bar{grid-area:bar;height:4px;border-radius:2px;background:var(--bg-dark);overflow:hidden}.usage-breakdown-fill{height:100%;background:var(--accent-cyan);border-radius:2px}.usage-footnote{font-size:11px;color:var(--text-muted);margin-top:2px}.billing-addons-current{margin-bottom:16px}.billing-upgrade-section,.billing-addons-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.billing-interval-toggle{display:flex;gap:6px;margin:8px 0 12px}.billing-plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.billing-plan-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:12px;text-align:center}.billing-plan-name{font-size:13px;font-weight:600;color:var(--text-primary)}.billing-plan-price{font-size:12px;color:var(--text-muted);margin:4px 0 8px}.billing-admin-section{margin-top:20px;padding:12px;border:1px dashed var(--accent-magenta);border-radius:8px;background:#ff00800a}.plan-comparison-wrap{overflow-x:auto;margin-bottom:20px}.plan-comparison{display:grid;grid-template-columns:minmax(130px,1fr) repeat(4,minmax(110px,1fr));gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;min-width:560px}.plan-comparison-cell{background:var(--bg-card);padding:8px 10px;font-size:12px;color:var(--text-primary);display:flex;align-items:center}.plan-comparison-cell.plan-col-header{font-weight:600;font-size:13px;padding:12px 10px;background:var(--bg-elevated)}.plan-comparison-cell.plan-col-current{background:#00d9ff0f}.plan-comparison-cell.plan-col-current.plan-col-header{border-bottom:2px solid var(--accent-cyan)}.plan-comparison-cell.plan-row-label{color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-elevated)}.plan-comparison-check{color:var(--accent-cyan)}.plan-comparison-dash{color:var(--text-muted)}.plan-col-current-badge{font-size:10px;color:var(--accent-cyan);margin-left:6px;font-weight:400}.configurator{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-bottom:16px}.configurator-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:8px}.configurator-tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.configurator-tier-btn{background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:8px;padding:10px 8px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.configurator-tier-btn:hover{border-color:var(--text-muted)}.configurator-tier-btn.selected{border-color:var(--accent-cyan);background:#00d9ff0f}.configurator-tier-btn.is-current:after{content:"current";display:block;font-size:10px;color:var(--text-muted);margin-top:2px}.configurator-tier-name{font-size:13px;font-weight:600;color:var(--text-primary)}.configurator-tier-price{font-size:11px;color:var(--text-muted);margin-top:2px}.configurator-interval-toggle{display:flex;gap:6px;margin-bottom:16px}.configurator-addons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.configurator-addon-btn{background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:6px;padding:8px 12px;cursor:pointer;font-size:12px;color:var(--text-primary);transition:border-color .15s,background .15s}.configurator-addon-btn:hover{border-color:var(--text-muted)}.configurator-addon-btn.selected{border-color:var(--accent-cyan);background:#00d9ff0f}.configurator-addon-btn.locked{opacity:.6;cursor:default}.configurator-addon-label{font-weight:600}.configurator-addon-price{color:var(--text-muted);font-size:11px}.configurator-price-summary{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:12px;margin-bottom:12px}.configurator-price-line{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);padding:3px 0}.configurator-price-divider{border-top:1px solid var(--border-subtle);margin:6px 0}.configurator-price-total{display:flex;justify-content:space-between;font-size:14px;font-weight:600;color:var(--text-primary);padding:3px 0}.configurator-actions{display:flex;gap:8px;align-items:center}.configurator-actions .btn-sm{min-width:140px}.configurator-seat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.configurator-seat-desc{font-size:12px;color:var(--text-secondary)}.configurator-seat-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden;flex-shrink:0}.configurator-stepper-btn{width:32px;height:32px;border:none;border-radius:0;background:var(--bg-elevated);color:var(--text-primary);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;min-width:0}.configurator-stepper-btn:hover{background:var(--bg-card)}.configurator-seat-count{min-width:36px;text-align:center;font-size:14px;font-weight:600;color:var(--text-primary);background:var(--bg-card);height:32px;line-height:32px;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle)}.configurator-footnote{font-size:11px;color:var(--text-muted);margin-top:8px}@media (max-width: 640px){.configurator-tier-grid{grid-template-columns:repeat(2,1fr)}}.sso-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px}.sso-card-heading{margin:0 0 8px;color:var(--text-primary)}.sso-field{margin-bottom:12px}.sso-field-value{color:var(--text-primary);font-size:14px;word-break:break-word}.sso-support-link{display:inline-block;margin-top:8px;color:var(--accent-cyan);text-decoration:none}.sso-support-link:hover{text-decoration:underline}.sso-copy-chip{display:flex;align-items:center;gap:8px;margin-top:6px}.sso-copy-chip code{flex:1;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;word-break:break-all}.invite-form{display:flex;gap:8px;align-items:center;margin-bottom:12px}.invite-results{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;margin-bottom:12px;max-height:150px;overflow-y:auto}.invite-results.hidden{display:none}.invite-result{padding:8px 12px;font-size:13px;cursor:pointer;transition:background .1s ease}.invite-result:hover{background:var(--bg-card)}.org-switcher{display:flex;align-items:center}.org-switcher.hidden{display:none}.org-switcher-btn{gap:6px}.org-switcher-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-expiry{margin-left:8px;font-size:11px;color:var(--text-muted)}.invite-expiry--expired{color:#f55}.invite-card-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px}.invite-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px}.invite-card-org{font-size:14px;font-weight:600;color:var(--text-primary)}.invite-card-meta{font-size:12px;color:var(--text-secondary);margin-top:4px}.invite-card-expiry{font-size:11px;color:var(--text-muted);margin-top:4px}.invite-card-actions{display:flex;gap:6px;flex-shrink:0}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0;margin-top:8px}.page-info{font-size:12px;color:var(--text-muted)}.activity-target{font-size:11px;color:var(--accent-cyan);font-weight:400}.admin-loading,.admin-error,.admin-empty{text-align:center;padding:32px 16px;font-size:13px;color:var(--text-muted)}.admin-error{color:var(--danger)}.modal-wide{max-width:700px;width:90%}.comment-btn{top:52px;right:12px}.comment-btn.active{border-color:var(--accent-cyan);background:#00d9ff1a;color:var(--accent-cyan);box-shadow:0 0 12px #00d9ff33}.drawing-btn{top:92px;right:12px}.drawing-btn.active{border-color:var(--accent-cyan);background:#00d9ff1a;color:var(--accent-cyan);box-shadow:0 0 12px #00d9ff33}.drawing-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:4}.drawing-toolbar{position:absolute;top:172px;right:12px;z-index:12;width:200px;display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 4px 16px #0006}.drawing-toolbar.hidden{display:none}.drawing-toolbar-section{display:flex;flex-direction:column;gap:6px}.drawing-toolbar-row,.drawing-toolbar-actions{flex-direction:row}.drawing-toolbar-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.drawing-swatches{display:flex;gap:6px}.drawing-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;background:var(--sw);cursor:pointer;padding:0;transition:transform .12s ease,border-color .12s ease}.drawing-swatch:hover{transform:scale(1.12)}.drawing-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-card),0 0 0 3px var(--accent-cyan)}.drawing-sizes{display:flex;gap:6px}.drawing-size{flex:1;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer}.drawing-size span{display:block;border-radius:50%;background:var(--text-primary)}.drawing-size.active{border-color:var(--accent-cyan);background:#00d9ff1a}.drawing-tool-btn{flex:1;padding:6px 8px;font-size:12px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .12s ease}.drawing-tool-btn.active{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#00d9ff1a}.drawing-clear-btn{flex:1;padding:6px 8px;font-size:12px;color:#ff6b6b;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .12s ease}.drawing-clear-btn:hover{border-color:#ff6b6b;background:#ff6b6b1a}.drawing-done-btn{padding:6px 14px;font-size:12px;font-weight:500;color:var(--bg-dark);background:var(--accent-cyan);border:none;border-radius:6px;cursor:pointer}.measure-btn{top:132px;right:12px}.measure-btn.active{border-color:#ff9f1c;background:#ff9f1c1f;color:#ff9f1c;box-shadow:0 0 12px #ff9f1c40}.measure-readout-row{display:flex;align-items:center;gap:8px}.measure-readout{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.measure-units-btn{padding:4px 8px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;white-space:nowrap;transition:all .12s ease}.measure-units-btn:hover{border-color:#ff9f1c;color:#ff9f1c}.measure-toolbar .drawing-tool-btn.active{color:#ff9f1c;border-color:#ff9f1c;background:#ff9f1c1f}.measure-badge .mapboxgl-popup-content{background:var(--bg-card)!important;border:1px solid #ff9f1c;border-radius:6px!important;padding:4px 8px!important;color:var(--text-primary);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 4px 16px #00000080!important}.measure-badge .mapboxgl-popup-tip{display:none!important}.comment-marker{cursor:pointer;transition:transform .15s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.comment-marker:hover{transform:scale(1.15)}.mapboxgl-popup-content{background:var(--bg-card)!important;border:1px solid var(--border-subtle);border-radius:12px!important;padding:0!important;box-shadow:0 8px 32px #00000080!important;color:var(--text-primary)}.mapboxgl-popup-tip{border-top-color:var(--bg-card)!important}.mapboxgl-popup-close-button{color:var(--text-muted)!important;font-size:18px;padding:4px 8px;right:4px;top:4px}.mapboxgl-popup-close-button:hover{color:var(--text-primary)!important;background:var(--bg-elevated)!important;border-radius:4px}.comment-form{padding:12px;min-width:240px}.comment-textarea{width:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:13px;padding:8px 10px;resize:vertical;min-height:60px;box-sizing:border-box}.comment-textarea:focus{outline:none;border-color:var(--accent-cyan)}.comment-textarea-sm{min-height:40px;font-size:12px}.comment-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.comment-thread{min-width:280px;max-height:400px;overflow-y:auto}.comment-main{padding:12px;border-bottom:1px solid var(--border-subtle)}.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.comment-author{font-size:12px;font-weight:600;color:var(--accent-cyan)}.comment-time{font-size:11px;color:var(--text-muted)}.comment-actions{margin-top:6px;text-align:right}.comment-delete-text-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:2px 6px;border-radius:3px;transition:all .15s ease}.comment-delete-text-btn:hover{color:var(--danger);background:#ff47571a}.comment-content{font-size:13px;color:var(--text-primary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-replies{border-top:1px solid var(--border-subtle)}.comment-reply{padding:10px 12px 10px 20px;border-bottom:1px solid var(--border-subtle)}.comment-reply:last-child{border-bottom:none}.comment-reply-form{padding:10px 12px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.comment-reply-form .btn{align-self:flex-end;padding:6px 14px}.comment-marker.resolved{opacity:.7}.comment-mention{color:var(--accent-cyan);font-weight:600}.comment-edited{color:var(--text-muted);font-style:italic;margin-left:4px}.comment-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.comment-resolved-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8be08b;background:#3cb45a26;padding:1px 6px;border-radius:8px}.comment-action-row{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:6px}.comment-text-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:2px 6px;border-radius:3px;transition:all .15s ease}.comment-text-btn:hover{color:var(--accent-cyan);background:#00d9ff1a}.comment-attach-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;line-height:1;padding:5px 8px;border-radius:4px;transition:all .15s ease}.comment-attach-btn:hover{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#00d9ff1a}.comment-form-actions .comment-attach-btn{margin-right:auto}.comment-attach-input{display:none}.comment-compose-row{display:flex;align-items:center;gap:8px}.comment-compose-row .btn{margin-left:auto}.comment-attach-chips{display:flex;flex-wrap:wrap;gap:6px}.comment-attach-chips:not(:empty){margin-top:6px}.comment-attach-chip{display:inline-flex;align-items:center;gap:4px;max-width:180px;font-size:11px;color:var(--text-primary);background:#00d9ff14;border:1px solid var(--border-subtle);padding:2px 4px 2px 8px;border-radius:10px}.comment-attach-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-attach-chip-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 3px;border-radius:8px}.comment-attach-chip-remove:hover{color:var(--danger);background:#ff47571f}.comment-attachments{display:flex;flex-wrap:wrap;gap:8px}.comment-attachments:not(:empty){margin-top:8px}.comment-attachment{display:inline-flex;align-items:center;gap:6px;max-width:200px;cursor:pointer;background:#00d9ff0f;border:1px solid var(--border-subtle);border-radius:6px;padding:3px;transition:border-color .15s ease,background .15s ease}.comment-attachment:hover{border-color:var(--accent-cyan);background:#00d9ff1f}.comment-attachment-thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;display:block}.comment-attachment-file{display:inline-flex;align-items:center;gap:6px;padding:2px 6px;overflow:hidden}.comment-attachment-ext{flex:none;font-size:9px;font-weight:700;letter-spacing:.04em;color:var(--accent-cyan);background:#00d9ff1f;padding:2px 5px;border-radius:3px}.comment-attachment-name{font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-attachment-remove{flex:none;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 4px;border-radius:8px}.comment-attachment-remove:hover{color:var(--danger);background:#ff47571f}.comments-panel{position:fixed;top:var(--navbar-height);right:0;bottom:0;width:340px;background:var(--bg-card);border-left:1px solid var(--border-subtle);z-index:20;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease;box-shadow:-4px 0 16px #0000004d}.comments-panel.open{transform:translate(0)}.comments-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.comments-panel-title-group{display:flex;align-items:center;gap:6px}.comments-panel-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.comments-panel-header-actions{display:flex;align-items:center;gap:8px}.comments-panel-new-btn{background:#00d9ff1a;border:1px solid var(--accent-cyan);color:var(--accent-cyan);font-size:12px;font-weight:600;font-family:inherit;padding:5px 10px;border-radius:6px;cursor:pointer;transition:all .15s ease}.comments-panel-new-btn:hover{background:#00d9ff33}.comments-panel-new-btn.active{background:var(--accent-cyan);color:var(--bg-dark)}.comment-add-hint{padding:8px 16px;font-size:12px;color:var(--accent-cyan);background:#00d9ff14;border-bottom:1px solid var(--border-subtle)}.comment-add-hint.hidden{display:none}.comments-panel-filters{padding:12px 16px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.comments-filter-btns{display:flex;gap:6px}.comments-filter-btn{flex:1;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-muted);font-size:12px;font-family:inherit;padding:5px 8px;border-radius:6px;cursor:pointer;transition:all .15s ease}.comments-filter-btn.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00d9ff1a}.comments-author-filter{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:12px;font-family:inherit;padding:6px 8px;border-radius:6px}.comments-panel-list{flex:1;overflow-y:auto;padding:8px}.comments-panel-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.comments-panel-item{padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .15s ease}.comments-panel-item:hover{border-color:var(--border-bright);background:var(--bg-elevated)}.comments-panel-item.resolved{opacity:.65}.comments-panel-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.comments-panel-item-body{font-size:13px;color:var(--text-primary);line-height:1.45;word-break:break-word}.comments-panel-item-foot{display:flex;align-items:center;gap:8px;margin-top:6px}.comments-panel-replies{font-size:11px;color:var(--text-muted)}.mention-dropdown{position:fixed;z-index:10000;background:var(--bg-card);border:1px solid var(--border-bright);border-radius:8px;box-shadow:0 8px 24px #00000080;max-height:200px;overflow-y:auto}.mention-option{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:1px}.mention-option:hover{background:var(--bg-elevated)}.mention-option-name{font-size:13px;color:var(--text-primary);font-weight:500}.mention-option-email{font-size:11px;color:var(--text-muted)}.notification-wrapper{position:relative}.notification-count-badge{position:absolute;top:2px;right:2px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:15px;height:15px;line-height:15px;text-align:center;border-radius:8px;padding:0 3px}.notification-count-badge.hidden{display:none}.navbar-user-wrapper{position:relative;display:flex;align-items:center}.navbar-user-wrapper .notification-count-badge{top:auto;bottom:-4px;right:-6px;cursor:pointer;pointer-events:auto;z-index:1}.notifications-panel{position:absolute;top:44px;right:0;width:320px;max-height:420px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column}.notifications-panel.hidden{display:none}.notifications-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.notifications-panel-header h4{font-size:14px;font-weight:600;color:var(--text-primary)}.notifications-mark-all{background:none;border:none;color:var(--accent-cyan);font-size:12px;cursor:pointer;font-family:inherit}.notifications-list{overflow-y:auto;padding:4px}.notifications-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.notification-item{padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s ease}.notification-item:hover{background:var(--bg-elevated)}.notification-item.unread{background:#00d9ff12}.notification-text{font-size:13px;color:var(--text-primary)}.notification-snippet{font-size:12px;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time{font-size:11px;color:var(--text-muted);margin-top:3px}.geo-photo-marker{width:40px;height:40px;border-radius:50%;border:2px solid #00d9ff;overflow:hidden;cursor:pointer;box-shadow:0 2px 8px #0006;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.geo-photo-marker img{width:100%;height:100%;object-fit:cover}.geo-popup-container .mapboxgl-popup-content{background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-subtle, #333);border-radius:10px;padding:0;overflow:hidden;box-shadow:0 4px 16px #00000080}.geo-popup-container .mapboxgl-popup-tip{border-top-color:var(--bg-primary, #1a1a2e)}.geo-popup-container .mapboxgl-popup-close-button{color:#aaa;font-size:18px;padding:4px 8px;z-index:1}.geo-popup-container .mapboxgl-popup-close-button:hover{color:#fff;background:#ffffff1a;border-radius:0 9px 0 6px}.geo-popup{width:220px}.geo-popup-title{padding:8px 28px 6px 10px;font-weight:600;font-size:12px;color:#e0e0e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--border-subtle, #333)}.geo-popup-img{width:100%;max-height:180px;object-fit:cover;display:block}.geo-popup-coords{padding:4px 10px 2px;font-size:10px;color:#888}.geo-popup-date{padding:0 10px 4px;font-size:10px;color:#888}.geo-popup-date:last-child{padding-bottom:8px}.geo-popup-date-label{display:inline-block;min-width:56px;color:var(--accent-cyan);font-weight:600}.layer-feature-popup-container .mapboxgl-popup-content{background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-subtle, #333);border-radius:8px;padding:0;overflow:hidden;box-shadow:0 4px 16px #00000080}.layer-feature-popup-container .mapboxgl-popup-tip{border-top-color:var(--bg-primary, #1a1a2e)}.layer-feature-popup-container .mapboxgl-popup-close-button{color:#aaa;font-size:16px;padding:4px 8px;z-index:1}.layer-feature-popup-container .mapboxgl-popup-close-button:hover{color:#fff;background:#ffffff1a;border-radius:0 7px 0 6px}.layer-feature-popup{max-height:240px;overflow-y:auto;padding:6px 0}.layer-feature-row{display:flex;padding:3px 10px;font-size:12px;line-height:1.4;gap:8px}.layer-feature-row:hover{background:#ffffff0a}.layer-feature-key{color:#888;flex-shrink:0;min-width:60px}.layer-feature-val{color:#e0e0e0;word-break:break-word}.delete-btn{background:none;border:none;color:#f55;cursor:pointer;padding:4px 6px;font-size:14px;opacity:.5;transition:opacity .2s}.delete-btn:hover{opacity:1}.boundary-options-label{display:block;margin-top:20px;font-size:14px;font-weight:500;color:var(--text-secondary)}.boundary-options{display:flex;gap:12px;margin-top:8px}.boundary-edit-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999}.boundary-edit-modal{background:var(--bg-card, #1b2330);border:1px solid var(--border-subtle);border-radius:10px;min-width:420px;max-width:560px;box-shadow:0 20px 60px #00000080}.boundary-edit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-weight:600;font-size:14px}.boundary-edit-modal-close{background:none;border:none;color:var(--text-secondary);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.boundary-edit-modal-close:hover{color:var(--text-primary)}.boundary-edit-modal-body{display:flex;gap:12px;padding:18px}.boundary-edit-modal-body--vertical{flex-direction:column;max-height:calc(100vh - 160px);overflow-y:auto}.boundary-edit-modal-choices{display:flex;gap:12px;align-items:stretch}.boundary-edit-modal-choices>*{flex:1;min-width:0}.boundary-edit-modal-choices .boundary-kml-dropzone{margin:0;padding:20px 12px}.boundary-option-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:12px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;text-align:center}.boundary-option-btn:hover{border-color:var(--accent-cyan);background:var(--bg-card);transform:translateY(-2px);box-shadow:0 4px 12px #00d9ff26}.boundary-option-btn svg{color:var(--accent-cyan)}.boundary-option-label{font-size:13px;font-weight:500;line-height:1.3}.boundary-edit-hover-tip{position:fixed;z-index:10000;padding:4px 8px;background:#141821f2;color:var(--text-primary);border:1px solid var(--border-bright);border-radius:6px;font-size:11px;pointer-events:none;box-shadow:0 4px 12px #0006;white-space:nowrap}.boundary-edit-hover-tip.hidden{display:none}.boundary-draw-toolbar{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--bg-card);border:1px solid var(--border-bright);border-radius:12px;box-shadow:0 8px 24px #0006;z-index:50}.boundary-draw-toolbar.hidden{display:none}.boundary-draw-toolbar-text{color:var(--text-secondary);font-size:14px;white-space:nowrap}.boundary-draw-toolbar-actions{display:flex;gap:8px}.boundary-kml-upload{margin-top:8px}.boundary-kml-dropzone{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;border:2px dashed var(--border-subtle);border-radius:12px;cursor:pointer;color:var(--text-secondary);text-align:center;transition:all .2s ease}.boundary-kml-dropzone:hover,.boundary-kml-dropzone.dragover{border-color:var(--accent-cyan);color:var(--text-primary);background:#00d9ff0d}.boundary-kml-dropzone svg{color:var(--accent-cyan)}.boundary-kml-status{margin-top:12px;padding:10px 14px;background:var(--bg-elevated);border-radius:8px;color:var(--text-secondary);font-size:13px}.boundary-feature-list{margin-top:8px;height:240px;min-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.boundary-feature-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;color:var(--text-primary);transition:all .15s ease}.boundary-feature-item:hover{border-color:var(--accent-cyan);background:var(--bg-card)}.boundary-feature-icon{color:var(--accent-cyan);font-size:16px}.boundary-feature-name{font-size:13px}.layer-item.boundary{border-left:3px solid var(--accent-cyan);padding-left:6px}.layer-item.planning-areas{border-left:3px solid #ff9f00;padding-left:6px}.planning-areas-empty{padding:6px 10px}.planning-areas-empty .btn-sm{font-size:11px;padding:4px 10px;width:100%;text-align:center}.layer-item.lots-layer{border-left:3px solid #00ff9f;padding-left:6px}.create-project-modal{display:flex;flex-direction:column;gap:12px}.create-project-modal .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.mapbox-gl-draw_ctrl-draw-btn{background-color:var(--bg-card)!important;border-color:var(--border-subtle)!important}.mapbox-gl-draw_ctrl-draw-btn:hover{background-color:var(--bg-elevated)!important}.office-confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.office-confirm-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:var(--shadow-lg);width:380px;max-width:calc(100vw - 32px);padding:24px;display:flex;flex-direction:column;gap:12px}.office-confirm-card h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.office-confirm-card p{margin:0;font-size:13px;color:var(--text-secondary)}.office-confirm-card ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.office-confirm-card ul li{font-size:13px;color:var(--text-secondary)}.office-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.office-confirm-cancel{background:none;border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer;transition:background .15s}.office-confirm-cancel:hover{background:var(--bg-elevated)}.office-confirm-open{background:var(--accent-cyan);border:none;color:#000;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.office-confirm-open:hover{opacity:.85}@media (max-width: 1280px){.navbar-subtitle{display:none}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.field-cluster{display:none}@media (max-width: 768px){.top-navbar{padding:0 10px;gap:10px}.navbar-logo-img{display:none}.navbar-brand{gap:0}.navbar-logo{font-size:15px}#workspace-btn-text{display:none}.org-switcher-name,.org-switcher-btn svg:last-child{display:none}#explorer-expand-btn,.storage-usage-bar{display:none!important}.navbar-link{padding:8px}.navbar-search-wrapper{position:static;flex:0 0 auto;width:40px;max-width:none;overflow:visible}.navbar-search-icon{position:static;transform:none;pointer-events:auto;cursor:pointer;width:40px;height:40px;color:var(--text-secondary)}.navbar-search{display:none}.navbar-search-wrapper.navbar-search--expanded{position:fixed;top:0;left:0;right:0;width:auto;height:var(--navbar-height);display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);z-index:50}.navbar-search-wrapper.navbar-search--expanded .navbar-search{display:block;position:static;flex:1;padding-left:12px}.navbar-search-wrapper.navbar-search--expanded .navbar-search-close{display:flex;flex-shrink:0}.navbar-actions{gap:4px}.navbar-icon-btn{padding:10px;min-width:40px;min-height:40px}.search-dropdown{min-width:0;left:0;right:0}.projects-panel,.admin-panel{width:100%}.layer-dropdown{left:12px;right:12px;width:auto}.layer-btn-floating span:not(.layer-count-badge){display:none}body,.app-container{overflow-x:hidden}input,select,textarea{font-size:16px}.projects-panel{top:auto;bottom:0;left:0;width:100vw;max-height:70vh;border-right:none;border-top:1px solid var(--border-subtle);border-radius:12px 12px 0 0;transform:translateY(100%);box-shadow:0 -8px 30px #00000073}.projects-panel.open{transform:translateY(0)}.projects-panel.explorer-expanded{width:100vw}.comments-panel{top:auto;bottom:0;left:0;right:0;width:100vw;max-height:70vh;border-left:none;border-top:1px solid var(--border-subtle);border-radius:12px 12px 0 0;transform:translateY(100%);box-shadow:0 -8px 30px #00000073}.comments-panel.open{transform:translateY(0)}.notifications-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100vw;max-width:none;max-height:70vh;border-radius:12px 12px 0 0}.inventory-panel{height:55vh}.modal-content{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0;border:none}.tag-modal-box{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0}.modal-wide{max-width:none}.drawing-toolbar,.measure-toolbar,.exhibit-dialog{max-width:92vw}.navbar-icon-btn,.panel-close-btn,.modal-close-btn,.panel-back-btn,.panel-expand-btn{min-width:44px;min-height:44px}.folder-menu-item{min-height:44px;display:flex;align-items:center}.floating-btn{padding:10px;min-width:44px;min-height:44px;justify-content:center}.comment-btn span:not(.layer-count-badge),.drawing-btn span,.measure-btn span{display:none}.comment-btn{top:64px}.drawing-btn{top:116px}.measure-btn{top:168px}.mapboxgl-ctrl-top-right{top:220px!important}.field-cluster{position:fixed;right:16px;bottom:16px;z-index:60;flex-direction:column;align-items:center;gap:12px}.field-cluster.field-cluster--open{display:flex}.field-btn{width:52px;height:52px;min-width:52px;min-height:52px;border-radius:50%;border:1px solid var(--border-bright);background:var(--bg-card);color:var(--text-primary);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #00000073;transition:transform .12s ease,background .15s ease}.field-btn svg{width:22px;height:22px;flex-shrink:0}.field-btn:active{transform:scale(.94)}.field-btn--photo{width:60px;height:60px;min-width:60px;min-height:60px;background:var(--accent-cyan);color:var(--bg-dark);border-color:var(--accent-cyan)}.field-btn--photo svg{width:26px;height:26px}.field-btn--busy{opacity:.6;cursor:default}}@media (pointer: coarse){.mapboxgl-popup-close-button{font-size:24px!important;padding:8px 12px!important}.comment-textarea,.comment-textarea-sm{font-size:16px}}.toast-container{position:fixed;left:50%;bottom:32px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:100010;pointer-events:none}.toast{pointer-events:auto;max-width:420px;padding:12px 18px;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border-bright);border-left:3px solid var(--accent-cyan);color:var(--text-primary);font-size:.88rem;font-weight:500;line-height:1.4;box-shadow:var(--shadow-lg);cursor:pointer;opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease;word-break:break-word}.toast--show{opacity:1;transform:translateY(0)}.toast--hide{opacity:0;transform:translateY(12px)}.toast--info{border-left-color:var(--accent-cyan)}.toast--success{border-left-color:var(--accent-green, #10b981)}.toast--error{border-left-color:var(--danger)}.ui-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .15s ease}.ui-dialog-overlay--show{opacity:1}.ui-dialog{background:var(--bg-card);border:1px solid var(--border-bright);border-radius:16px;max-width:440px;width:90%;padding:28px;box-shadow:0 24px 48px #0006}.ui-dialog-title{margin:0 0 12px;font-size:1.15rem;font-weight:600;color:var(--text-primary)}.ui-dialog-message{font-size:.92rem;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.ui-dialog-input{width:100%;margin-top:16px;padding:10px 12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:.9rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ui-dialog-input:focus{outline:none;border-color:var(--accent-cyan)}.ui-dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.ui-dialog-btn{padding:10px 20px;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;border:1px solid var(--border-subtle);background:none;color:var(--text-secondary);transition:all .15s ease}.ui-dialog-btn:hover{border-color:var(--border-bright);color:var(--text-primary)}.ui-dialog-btn--primary{background:var(--accent-cyan);border:none;color:#fff}.ui-dialog-btn--primary:hover{opacity:.9;color:#fff}.ui-dialog-btn--danger{background:var(--danger);border:none;color:#fff}.ui-dialog-btn--danger:hover{opacity:.9;color:#fff}.exhibit-dialog{max-width:460px}.exhibit-field{margin-top:16px}.exhibit-field:first-of-type{margin-top:4px}.exhibit-field-label{font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.exhibit-input{margin-top:0}.exhibit-radio-row,.exhibit-check-row{display:flex;align-items:center;gap:9px;padding:5px 2px;font-size:.9rem;color:var(--text-secondary);cursor:pointer}.exhibit-radio-row:hover,.exhibit-check-row:hover{color:var(--text-primary)}.exhibit-radio-row input,.exhibit-check-row input{width:15px;height:15px;accent-color:var(--accent-cyan);cursor:pointer;flex-shrink:0}.exhibit-dialog .ui-dialog-btn:disabled{opacity:.6;cursor:default}.exhibit-dialog .ui-dialog-btn.is-rendering{opacity:.75;cursor:progress}#exhibit-btn:disabled{opacity:.6;cursor:default}.inventory-panel{position:fixed;left:0;right:0;bottom:0;height:40vh;z-index:40;display:flex;flex-direction:column;background:var(--bg-card);border-top:1px solid var(--border-bright);box-shadow:0 -8px 30px #00000073;color:var(--text-primary);font-size:13px}.inventory-panel.hidden{display:none}.inventory-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.inventory-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inventory-header-right{display:flex;align-items:center;gap:8px}.inventory-view-toggle{display:inline-flex;gap:2px;background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:6px;padding:2px}.inventory-view-btn{background:transparent;border:none;border-radius:4px;color:var(--text-secondary);padding:3px 10px;font-size:12px;cursor:pointer}.inventory-view-btn:hover{color:var(--text-primary)}.inventory-view-btn.active{background:var(--accent-cyan);color:var(--bg-dark);font-weight:600}.inventory-stats-wrap{flex:1;overflow-y:auto;padding:12px 16px;max-width:560px}.inventory-stats-wrap.hidden,.inventory-panel--stats .inventory-filter,.inventory-panel--stats .inventory-chips,.inventory-panel--stats .inventory-colortoggle,.inventory-panel--stats .inventory-legend,.inventory-panel--stats .inventory-actionbar,.inventory-panel--stats .inventory-header-right .inventory-tool-btn{display:none}.inventory-title{font-weight:600;font-size:14px}.inventory-count{background:var(--bg-elevated);color:var(--text-secondary);border-radius:10px;padding:1px 8px;font-size:12px}.inventory-filter{background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);padding:5px 9px;font-size:12px;min-width:160px}.inventory-filter:focus{outline:none;border-color:var(--accent-cyan)}.inventory-chips{display:flex;gap:5px;flex-wrap:wrap}.inventory-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:12px;padding:3px 10px;font-size:12px;cursor:pointer;font-family:inherit}.inventory-chip:hover{border-color:var(--border-bright)}.inventory-chip.active{background:#00d9ff1f;border-color:var(--accent-cyan);color:var(--text-primary)}.inventory-chip.has-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--chip-dot, transparent)}.inventory-colortoggle{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);cursor:pointer;font-size:12px}.inventory-legend{display:flex;gap:12px;align-items:center}.inventory-legend.hidden{display:none}.inventory-legend-item{display:inline-flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:12px}.inventory-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}.inventory-tool-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:6px;padding:5px 11px;font-size:12px;cursor:pointer;font-family:inherit}.inventory-tool-btn:hover{border-color:var(--border-bright);background:var(--bg-dark)}.inventory-tool-btn--ghost{background:transparent}.inventory-close{background:transparent;border:none;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.inventory-close:hover{color:var(--text-primary)}.inventory-actionbar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.inventory-actionbar.hidden{display:none}.inventory-selected-count{color:var(--text-secondary);font-size:12px}.inventory-table-wrap{flex:1;overflow:auto}.inventory-table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.inventory-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-dark);color:var(--text-secondary);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border-bright);font-weight:600}.inventory-th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.inventory-th-sort:hover{color:var(--text-primary)}.inventory-sort-arrow{color:var(--accent-cyan)}.inventory-th-config{position:relative;padding-right:22px}.inventory-th-config.is-draggable{cursor:grab}.inventory-th-config.is-draggable:active{cursor:grabbing}.inventory-th-config.dragging{opacity:.5}.inventory-th-config.drop-target{box-shadow:inset 3px 0 0 var(--accent-cyan)}.inventory-th-remove{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:none;background:transparent;border:none;color:var(--text-muted);font-size:15px;line-height:1;cursor:pointer;padding:0 2px;font-family:inherit}.inventory-th-config:hover .inventory-th-remove{display:inline-block}.inventory-th-remove:hover{color:var(--danger)}.inventory-th-add{cursor:default}.inventory-add-col{background:transparent;border:1px dashed var(--border-subtle);color:var(--text-secondary);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;font-family:inherit;white-space:nowrap}.inventory-add-col:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.inventory-table tbody td{padding:6px 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.inventory-table tbody tr:nth-child(odd){background:var(--bg-elevated)}.inventory-table tbody tr:hover{background:#00d9ff0f;cursor:pointer}.inventory-table tbody tr.selected{background:#00d9ff24;box-shadow:inset 2px 0 0 var(--accent-cyan)}.inventory-col-check{width:28px;text-align:center}.inventory-cell-name{font-weight:500}.inventory-cell-num{text-align:right;font-variant-numeric:tabular-nums}.inventory-status-select,.inventory-attr-input{background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:5px;color:var(--text-primary);padding:3px 6px;font-size:12px;font-family:inherit}.inventory-attr-input{min-width:90px}.inventory-status-select:focus,.inventory-attr-input:focus{outline:none;border-color:var(--accent-cyan)}.inventory-import-dialog{max-width:520px;width:90vw}.inventory-import-map{max-height:40vh;overflow:auto;margin:10px 0;display:flex;flex-direction:column;gap:6px}.inventory-import-maprow{display:flex;align-items:center;justify-content:space-between;gap:10px}.inventory-import-header{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.inventory-import-maprow select{background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:5px;color:var(--text-primary);padding:4px 7px;font-size:12px;font-family:inherit}.inventory-import-summary{background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 10px;font-size:12px;color:var(--text-secondary);margin-bottom:10px}.inventory-import-counts{color:var(--text-primary);font-weight:500}.inventory-import-list{margin-top:6px;color:var(--text-muted)}.inventory-import-errors{margin-top:6px;color:var(--danger);max-height:100px;overflow:auto}.project-contacts{display:flex;flex-direction:column;gap:8px}.contact-list{display:flex;flex-direction:column;gap:4px}.contact-row{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px}.contact-row-main{flex:1;min-width:0}.contact-name-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.contact-name{font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-word}.contact-company{margin-top:2px;font-size:12px;color:var(--text-secondary);word-break:break-word}.contact-role-note{margin-top:2px;font-size:12px;font-style:italic;color:var(--text-muted);word-break:break-word}.contact-row-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.contact-action-link{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px;font-size:13px;color:var(--text-secondary);text-decoration:none;border:1px solid transparent;transition:all .15s ease}.contact-action-link:hover{color:var(--accent-cyan);border-color:var(--border-bright);background:var(--bg-card)}.contact-unlink-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:5px;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .15s ease}.contact-unlink-btn:hover{color:var(--danger);border-color:var(--danger)}.contact-add-btn{margin-top:4px}.contact-kind-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:capitalize;line-height:16px;white-space:nowrap}.contact-kind-owner{background:#34d39924;color:#34d399}.contact-kind-buyer{background:#00ff9f1f;color:#00ff9f}.contact-kind-broker{background:#00d9ff1f;color:#00d9ff}.contact-kind-attorney{background:#a78bfa24;color:#a78bfa}.contact-kind-consultant{background:#fb923c24;color:#fb923c}.contact-kind-agency{background:#facc151f;color:#facc15}.contact-kind-lender{background:#f472b624;color:#f472b6}.contact-kind-other{background:#a0aec024;color:#a0aec0}.contact-add-modal{display:flex;flex-direction:column;gap:10px}.contact-form-input{width:100%;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:13px;font-family:inherit}.contact-form-input:focus{outline:none;border-color:var(--accent-cyan)}.contact-form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.contact-search-results{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}.contact-search-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .15s ease}.contact-search-item:hover{border-color:var(--accent-cyan);background:var(--bg-elevated)}.contact-search-name{font-size:13px;font-weight:600;color:var(--text-primary)}.contact-search-company{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-search-empty{padding:14px 10px;text-align:center;font-size:12px;color:var(--text-muted)}.contact-new-toggle{align-self:flex-start;padding:4px 0;background:none;border:none;color:var(--accent-cyan);font-size:12px;font-family:inherit;cursor:pointer}.contact-new-toggle:hover{text-decoration:underline}.contact-new-form{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px}.contact-new-form.hidden{display:none}.contact-form{display:flex;flex-direction:column;gap:6px}.contact-form-row{display:flex;align-items:center;gap:8px}.contact-form-label{flex:0 0 64px;font-size:12px;color:var(--text-secondary)}.contact-admin-form{margin-bottom:12px;padding:10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px}.contact-table-wrap{overflow-x:auto}.contact-table{width:100%;border-collapse:collapse;font-size:12px}.contact-table th{text-align:left;padding:6px 8px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.contact-table td{padding:7px 8px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle;word-break:break-word}.contact-table-name{color:var(--text-primary);font-weight:600}.contact-table-link{color:var(--accent-cyan);text-decoration:none}.contact-table-link:hover{text-decoration:underline}.contact-table-actions{white-space:nowrap;text-align:right}.contact-table-actions .btn-sm+.btn-sm{margin-left:4px}.project-stage-row{display:flex;align-items:center;gap:8px;padding:8px 0 2px;min-height:20px}.stage-chip-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.stage-chip{display:inline-flex;align-items:center;padding:3px 12px;border-radius:12px;border:1px solid transparent;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.stage-chip--readonly{cursor:default;opacity:.9}.stage-chip--sm{padding:1px 8px;border-radius:10px;font-size:10px;margin-left:8px;vertical-align:1px}.stage-chip--unset{background:transparent;border:1px dashed var(--border-bright);color:var(--text-secondary)}.stage-chip--unset:hover{color:var(--accent-cyan);border-color:var(--accent-cyan)}.stage-chip--feasibility{background:#00d9ff24;color:#00d9ff}.stage-chip--entitlement{background:#a78bfa29;color:#a78bfa}.stage-chip--development{background:#fb923c29;color:#fb923c}.stage-chip--sellout{background:#34d39929;color:#34d399}.stage-chip--closed{background:#a0aec029;color:#a0aec0}.task-add-row{display:flex;gap:6px;margin-bottom:8px}.task-add-input{flex:1;min-width:0;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:13px;font-family:inherit}.task-add-input:focus{outline:none;border-color:var(--accent-cyan)}.task-add-btn{flex-shrink:0}.task-list{display:flex;flex-direction:column;gap:4px}.task-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px}.task-checkbox{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:var(--accent-cyan)}.task-checkbox:disabled{cursor:default}.task-main{flex:1;min-width:0}.task-title{font-size:13px;color:var(--text-primary);word-break:break-word}.task-row--done .task-title{text-decoration:line-through;color:var(--text-muted)}.task-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.task-due{font-size:11px;color:var(--text-secondary)}.task-due--empty{color:var(--text-muted)}.task-due--editable{cursor:pointer}.task-due--editable:hover{color:var(--accent-cyan)}.task-due--overdue{color:var(--danger);font-weight:600}.task-due-input{font-size:11px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-family:inherit;padding:1px 4px}.task-assignee{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1px solid var(--border-subtle);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;transition:all .15s ease}.task-assignee--set{background:#00d9ff24;color:var(--accent-cyan);border-color:transparent}.task-assignee--empty{background:transparent;color:var(--text-muted);border-style:dashed}.task-assignee:hover:not(:disabled){border-color:var(--accent-cyan);color:var(--accent-cyan)}.task-assignee:disabled{cursor:default}.task-kebab{flex-shrink:0;background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px}.task-kebab:hover{color:var(--text-primary)}.task-completed-section{margin-top:10px}.task-completed-summary{cursor:pointer;font-size:12px;color:var(--text-secondary);padding:6px 0;list-style:none;-webkit-user-select:none;user-select:none}.task-completed-summary::-webkit-details-marker{display:none}.task-completed-summary:hover{color:var(--text-primary)}.task-completed-section .task-list{margin-top:6px}.stat-tile-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.stat-tile{flex:1 1 0;min-width:72px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;text-align:center}.stat-tile-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.1}.stat-tile-label{margin-top:4px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.stat-tile-sub{margin-top:2px;font-size:11px;color:#f97316}.status-stack-bar{display:flex;height:12px;width:100%;min-width:80px;border-radius:6px;overflow:hidden;background:var(--bg-elevated)}.status-stack-bar--empty{border:1px dashed var(--border-subtle);background:transparent}.status-stack-seg{height:100%}.absorption-chart{display:flex;align-items:flex-end;gap:4px;height:96px;padding:4px 0 0;margin-bottom:12px}.absorption-col{flex:1 1 0;display:flex;flex-direction:column;align-items:center;height:100%}.absorption-bars{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;min-height:0}.absorption-seg{width:100%;border-radius:2px 2px 0 0}.absorption-seg--sold{background:#ef4444}.absorption-seg--uc{background-color:#f973168c;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.25) 0,rgba(255,255,255,.25) 2px,transparent 2px,transparent 4px)}.absorption-month{margin-top:4px;font-size:10px;color:var(--text-muted)}.project-stats{display:flex;flex-direction:column;gap:4px}.stats-stage-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.stats-stage-changed{font-size:11px;color:var(--text-muted)}.stats-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:10px 0 6px}.stats-status-rows{display:flex;flex-direction:column;gap:4px;margin-top:8px}.stats-status-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.stats-status-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto}.stats-mini-tiles{margin-top:12px}.portfolio-table-wrap{overflow-x:auto}.portfolio-table{width:100%;border-collapse:collapse;font-size:12px}.portfolio-table th,.portfolio-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;vertical-align:middle}.portfolio-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:600}.portfolio-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.portfolio-th-sortable:hover{color:var(--text-primary)}.portfolio-num{text-align:right;font-variant-numeric:tabular-nums}.portfolio-muted{color:var(--text-muted)}.portfolio-project-link{background:none;border:none;padding:0;color:var(--accent-cyan);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;text-align:left}.portfolio-project-link:hover{text-decoration:underline}.portfolio-table .status-stack-bar{min-width:100px}.stage-chip-empty{color:var(--text-muted);font-size:12px}.page-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--bg-dark);display:flex;flex-direction:column}.page-layer.hidden{display:none}.page-header{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:14px 24px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.page-back-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;transition:all .2s ease}.page-back-btn:hover{border-color:var(--accent-cyan);color:var(--accent-cyan)}.page-title{font-size:20px;font-weight:600;color:var(--text-primary)}.page-body{flex:1;overflow-y:auto;padding:24px;width:100%;max-width:860px;margin:0 auto}.org-edit-overlay{z-index:1050}.org-modal-heading{display:flex;align-items:center;gap:10px;min-width:0}.org-edit-pencil{background:none;border:none;color:var(--text-secondary);font-size:16px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:6px}.org-edit-pencil:hover{color:var(--accent-cyan);background:#00d9ff14}.org-modal-contact{padding:0 24px 12px;margin-top:-8px;font-size:13px;color:var(--text-secondary)}.org-modal-contact.hidden{display:none}.inventory-table tbody tr{height:39px}.inventory-table tbody tr.inventory-spacer-row{height:0;background:transparent;pointer-events:none}.inventory-table tbody tr.inventory-spacer-row:hover{background:transparent}.inventory-table tbody tr.inventory-spacer-row td{padding:0;border:0}.access-matrix-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card);margin-bottom:16px}.access-matrix{border-collapse:collapse;width:100%;font-size:12px}.access-matrix th,.access-matrix td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);text-align:center;white-space:nowrap}.access-matrix thead th{color:var(--text-secondary);font-weight:600;background:var(--bg-elevated)}.access-ws-group{border-left:1px solid var(--border-subtle);text-transform:uppercase;font-size:10px;letter-spacing:.5px}.access-proj-col{max-width:140px;overflow:hidden;text-overflow:ellipsis}.access-user-col{position:sticky;left:0;z-index:1;background:var(--bg-card);text-align:left;min-width:180px;box-shadow:1px 0 0 var(--border-subtle)}.access-matrix thead .access-user-col{background:var(--bg-elevated)}.access-user-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.access-cell--none{color:var(--text-muted);opacity:.4}.access-chip--workspace{background:transparent;border:1px solid var(--border-subtle)}.access-chip--org{background:transparent;border:1px dashed var(--border-subtle)}.access-scope-dot{margin-left:4px;font-size:9px;color:var(--accent-cyan);cursor:help}.role-badge.role-guest{background:#ffa50026;color:orange}.access-legend{font-size:11px;color:var(--text-muted);margin-bottom:20px}.share-batch-section{margin-bottom:12px}.share-batch-list{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:8px 4px}.share-batch-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.lapse-banner{position:fixed;top:0;left:0;right:0;z-index:10000;background:linear-gradient(135deg,#b91c1c,#dc2626,#b91c1c);color:#fff;box-shadow:0 2px 12px #0006;transition:transform .3s ease,opacity .3s ease}.lapse-banner.hidden{display:none}.lapse-banner.collapsed{transform:translateY(-100%);pointer-events:none;opacity:0}.lapse-banner.collapsed:after{content:"⚠ Payment overdue — click to expand";position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);background:#b91c1c;color:#fecaca;font-size:12px;text-align:center;padding:4px 0;cursor:pointer;pointer-events:auto;opacity:1}.lapse-banner-content{display:flex;align-items:center;gap:12px;padding:12px 20px;max-width:1200px;margin:0 auto;flex-wrap:wrap}.lapse-banner-icon{font-size:20px;flex-shrink:0}.lapse-banner-message{flex:1;font-size:14px;font-weight:500;min-width:200px}.lapse-banner-countdown{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.5px;background:#00000040;padding:4px 12px;border-radius:6px;white-space:nowrap}.lapse-banner-countdown:empty{display:none}.lapse-banner-countdown.expired{background:#450a0a;animation:lapse-pulse 1.5s ease-in-out infinite}@keyframes lapse-pulse{0%,to{opacity:1}50%{opacity:.5}}.lapse-banner-action{background:#fff;color:#b91c1c;border:none;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.lapse-banner-action:hover{background:#fecaca}.lapse-banner-dismiss{background:none;border:none;color:#ffffffb3;font-size:20px;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0;transition:color .15s}.lapse-banner-dismiss:hover{color:#fff}.lapse-banner-dismiss.hidden{display:none}.lapse-banner~.app-container{padding-top:52px}.lapse-banner.hidden~.app-container{padding-top:0}.lapse-banner.collapsed~.app-container{padding-top:24px}.access-domain-warning{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#ff525226;color:#ff6b6b;border:1px solid rgba(255,82,82,.35);cursor:help;white-space:nowrap}.feedback-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.feedback-modal-overlay.hidden{display:none}.feedback-modal{background:var(--bg-card);border:1px solid var(--border-bright);border-radius:16px;max-width:520px;width:90%;padding:32px;box-shadow:0 24px 48px #0006}.feedback-modal h2{margin:0 0 20px;font-size:1.25rem;color:var(--text-primary);font-weight:600;display:flex;align-items:center;gap:8px}.feedback-modal h2 .help-anchor-btn{margin-left:auto}.feedback-type-toggle{display:flex;gap:0;border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;margin-bottom:16px}.feedback-type-toggle button{flex:1;padding:8px 16px;border:none;background:var(--bg-elevated);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.feedback-type-toggle button.active{background:var(--accent-cyan);color:#fff}.feedback-type-toggle button:not(.active):hover{background:var(--bg-dark);color:var(--text-primary)}.feedback-form label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:6px;font-weight:500}.feedback-form input[type=text],.feedback-form textarea{width:100%;padding:10px 12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:.9rem;font-family:inherit;transition:border-color .15s ease;box-sizing:border-box}.feedback-form input[type=text]:focus,.feedback-form textarea:focus{outline:none;border-color:var(--accent-cyan)}.feedback-form textarea{min-height:120px;resize:vertical}.feedback-form .feedback-field{margin-bottom:16px}.feedback-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.feedback-actions button{padding:10px 20px;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.feedback-cancel-btn{background:none;border:1px solid var(--border-subtle);color:var(--text-secondary)}.feedback-cancel-btn:hover{border-color:var(--border-bright);color:var(--text-primary)}.feedback-submit-btn{background:var(--accent-cyan);border:none;color:#fff}.feedback-submit-btn:hover{opacity:.9}.feedback-submit-btn:disabled{opacity:.5;cursor:not-allowed}
