@charset "UTF-8";.map-controls{position:relative;z-index:1000;display:flex;gap:8px;align-items:center;margin-right:8px}.account-btn{width:40px;height:40px;border-radius:50%;border:2px solid #2563eb;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease-in-out;box-shadow:0 2px 8px #0000001a}.account-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000001a}.account-btn:active{transform:scale(.95)}.account-btn.authenticated{border-color:#10b981;background:#10b981}.account-btn.authenticated .account-icon{color:#fff}.account-avatar{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden}.account-icon{font-size:18px;color:#2563eb;font-weight:700}.account-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.account-modal .modal-content{background:#fff;border-radius:.75rem;padding:2rem;max-width:400px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 8px 32px #0000001a}.account-modal .modal-content .close{position:absolute;top:1rem;right:1rem;font-size:1.25rem;cursor:pointer;color:#64748b}.account-modal .modal-content .close:hover{color:#1e293b}.account-modal .modal-content h3{margin:0 0 1.5rem;text-align:center;color:#1e293b}.auth-forms .auth-form{display:none}.auth-forms .auth-form.active{display:block}.auth-forms .auth-form h4{margin:0 0 1rem;text-align:center;color:#1e293b}.auth-forms .auth-form form{display:flex;flex-direction:column;gap:1rem}.auth-forms .auth-form form input{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:1rem;background:#f8fafc;color:#1e293b}.auth-forms .auth-form form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.auth-forms .auth-form form input::placeholder{color:#64748b}.auth-forms .auth-form form .form-options{display:flex;align-items:center;gap:.5rem}.auth-forms .auth-form form .form-options label{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#64748b;cursor:pointer}.auth-forms .auth-form form .form-options label input[type=checkbox]{margin:0}.auth-forms .auth-form form .auth-btn{padding:1rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease-in-out}.auth-forms .auth-form form .auth-btn.primary{background:#2563eb;color:#fff}.auth-forms .auth-form form .auth-btn.primary:hover{background:#134cca;transform:translateY(-1px)}.auth-forms .auth-form form .auth-btn.primary:active{transform:translateY(0)}.auth-forms .auth-form form .auth-switch{text-align:center;margin-top:1rem}.auth-forms .auth-form form .auth-switch p{margin:0;color:#64748b;font-size:.875rem}.auth-forms .auth-form form .auth-switch p a{color:#2563eb;text-decoration:none}.auth-forms .auth-form form .auth-switch p a:hover{text-decoration:underline}@media (max-width: 768px){.account-btn{width:36px;height:36px}.account-btn .account-icon{font-size:16px}.account-modal .modal-content{padding:1.5rem;margin:1rem}}.error-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;border-color:#ef4444;text-align:center;max-width:500px;margin-left:auto;margin-right:auto;padding:3rem 1rem}@media (min-width: 768px){.error-card{padding-left:1.5rem;padding-right:1.5rem}}.error-card .error-title{margin:0 0 1rem;font-size:1.5rem;color:#ef4444}.error-card .error-message{margin:0 0 1.5rem;color:#64748b;text-wrap:balance}.error-card .error-details{margin:1.5rem 0;padding:1rem;background:#fff;border-radius:.5rem;font-size:.875rem;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #e2e8f0}.error-card .reload-button{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.5rem;border:none;border-radius:.5rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .15s ease-in-out}.error-card .reload-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.error-card .reload-button:disabled{opacity:.6;cursor:not-allowed}.error-card .reload-button{background-color:#2563eb;color:#fff}.error-card .reload-button:hover:not(:disabled){background-color:#1043b3}.error-card .reload-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.loading-spinner{display:flex;align-items:center;justify-content:center}.loading-spinner .spinner{width:2rem;height:2rem;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner .spinner-message{margin-left:1rem;color:#64748b;font-size:.875rem}@keyframes spin{to{transform:rotate(360deg)}}.dev-dashboard{padding:1.5rem}.dev-dashboard .dev-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dev-dashboard .dev-header h2{margin:0;color:#1e293b}.dev-dashboard .dev-header .dev-controls{display:flex;gap:1rem;align-items:center}.dev-dashboard .dev-btn{padding:.5rem 1rem;border:none;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s ease-in-out}.dev-dashboard .dev-btn.primary{background:#2563eb;color:#fff}.dev-dashboard .dev-btn.primary:hover{background:#134cca}.dev-dashboard .dev-btn.secondary{background:#f8fafc;color:#1e293b;border:1px solid #e2e8f0}.dev-dashboard .dev-btn.secondary:hover{background:#e6edf4}.dev-dashboard .dev-btn.tertiary{background:#f59e0b;color:#fff}.dev-dashboard .dev-btn.tertiary:hover{background:#c57f08}.dev-dashboard .dev-select{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:.5rem;background:#fff;color:#1e293b;font-size:.875rem}.dev-dashboard .data-display{background:#f8fafc;border-radius:.75rem;padding:1.5rem;min-height:400px}.dev-dashboard .data-display .loading{display:flex;align-items:center;justify-content:center;height:200px;color:#64748b}.dev-dashboard .data-display pre{background:#fff;padding:1rem;border-radius:.5rem;overflow-x:auto;font-size:.875rem;border:1px solid #e2e8f0}.app-layout{display:flex;flex-direction:column;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f0f0}.taskbar{display:flex;justify-content:space-between;align-items:center;height:50px;background:#2c3e50;color:#fff;padding:0 1rem;box-shadow:0 2px 4px #0000001a;z-index:1000}.taskbar-left,.taskbar-right{display:flex;gap:.5rem;align-items:center}.taskbar-center{flex:1;display:flex;justify-content:center;align-items:center}.project-title{font-size:16px;font-weight:600;text-align:center}.project-title.clickable{cursor:pointer;padding:8px 16px;border-radius:6px;transition:background-color .2s ease}.project-title.clickable:hover{background-color:#ffffff1a}.taskbar-btn{display:flex;align-items:center;gap:.5rem;background:#ffffff1a;border:none;color:#fff;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .2s;font-size:.9rem}.taskbar-btn:hover{background:#fff3}.taskbar-btn.active{background:#ffffff4d}.taskbar-btn .icon{font-size:1.1rem}.taskbar-btn .label{font-weight:500}.desktop-area{flex:1;position:relative;overflow:hidden}.map{width:100%;height:100%}.windows-container{position:absolute;inset:0;pointer-events:none;z-index:100}.window{position:absolute;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:300px;min-height:200px;pointer-events:auto;display:none;z-index:200;transition:height .3s ease,min-height .3s ease}.window.active{display:block}.window.collapsed{min-height:40px;height:40px!important}.window.collapsed .window-content,.window.collapsed .resize-handles{display:none!important}.window-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:8px 8px 0 0;cursor:move}.window-title{font-weight:600;color:#2c3e50;font-size:.9rem}.window-controls{display:flex;gap:.5rem}.window-control{width:16px;height:16px;border:none;border-radius:50%;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center}.window-control.window-minimize{background:#f39c12;color:#fff}.window-control.window-maximize{background:#27ae60;color:#fff}.window-control.window-close{background:#e74c3c;color:#fff}.window-content{padding:1rem;height:calc(100% - 50px);overflow-y:auto}.add-pin-btn{position:fixed;bottom:70px;right:20px;width:56px;height:56px;border-radius:50%;background:#3498db;color:#fff;border:none;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:transform .2s,box-shadow .2s;z-index:300}.add-pin-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px #0003}.pins-list{display:flex;flex-direction:column;gap:.5rem}.pin-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8f9fa;border-radius:6px;cursor:pointer;transition:background-color .2s}.pin-item:hover{background:#e9ecef}.pin-icon{font-size:1.2rem}.pin-info{flex:1}.pin-title{font-weight:600;color:#2c3e50;font-size:.9rem}.pin-description{color:#666;font-size:.8rem;margin-top:.25rem}.pin-actions{display:flex;gap:.25rem}.pin-action{width:24px;height:24px;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center}.pin-action.pin-edit{background:#3498db;color:#fff}.pin-action.pin-delete{background:#e74c3c;color:#fff}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;text-align:center;padding:2rem}.error-container h1{color:#e74c3c;margin-bottom:1rem}.error-container button{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;margin-top:1rem}.error-container button:hover{background:#2980b9}.folder-window{position:absolute;background:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;box-shadow:0 8px 32px #0000001f;min-width:200px;min-height:150px;z-index:1000;-webkit-user-select:none;user-select:none;overflow:hidden;transition:height .3s ease,min-height .3s ease}.folder-window.collapsed{min-height:40px;height:40px!important}.folder-window.collapsed .folder-content,.folder-window.collapsed .resize-handles{display:none!important}.folder-header{display:flex;align-items:center;padding:.5rem .75rem;background:linear-gradient(135deg,#e9ecef,#f8f9fa);border-bottom:1px solid #dee2e6;cursor:grab;-webkit-user-select:none;user-select:none}.folder-header:active{cursor:grabbing}.folder-icon{font-size:1.2rem;margin-right:.5rem}.folder-title{flex:1;font-weight:600;color:#495057;font-size:.9rem}.folder-controls{display:flex;gap:.25rem}.folder-control{width:18px;height:18px;border:none;border-radius:3px;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700;transition:background-color .2s}.folder-control.folder-collapse{background:#ffc107;color:#212529}.folder-control.folder-collapse:hover{background:#ffb300}.folder-control.folder-minimize{background:#28a745;color:#fff}.folder-control.folder-minimize:hover{background:#218838}.folder-control.folder-close{background:#dc3545;color:#fff}.folder-control.folder-close:hover{background:#c82333}.folder-content{padding:.75rem;height:calc(100% - 40px);overflow-y:auto;background:#fff}.folder-items{display:flex;flex-direction:column;gap:.5rem}.folder-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#f8f9fa;border-radius:4px;cursor:pointer;transition:background-color .2s;border:1px solid transparent}.folder-item:hover{background:#e9ecef;border-color:#dee2e6}.item-icon{font-size:1.1rem;width:20px;text-align:center}.item-name{flex:1;font-size:.85rem;color:#495057;font-weight:500}.item-count,.item-distance{font-size:.75rem;color:#6c757d;background:#e9ecef;padding:.2rem .4rem;border-radius:10px;font-weight:500}.empty-folder-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#6c757d}.empty-folder-message .folder-icon{font-size:2rem;margin-bottom:.5rem}.empty-folder-message p{margin:.25rem 0;font-size:.85rem}.empty-folder-message p:first-of-type{font-weight:600;color:#495057}.bottom-taskbar{position:fixed;bottom:0;left:0;right:0;height:40px;background:#2c3e50;border-top:1px solid #34495e;display:flex;align-items:center;padding:0 1rem;gap:.5rem;z-index:1001;box-shadow:0 -2px 8px #00000026;overflow-x:auto;overflow-y:hidden}.taskbar-item{display:flex;align-items:center;gap:.5rem;background:#ffffff1a;border:none;color:#fff;padding:.5rem .75rem;border-radius:4px;cursor:grab;transition:all .2s;font-size:.85rem;min-width:120px;max-width:200px;-webkit-user-select:none;user-select:none;flex-shrink:0}.taskbar-item:hover{background:#fff3;transform:translateY(-1px)}.taskbar-item:active{transform:translateY(0)}.taskbar-item.active{background:#ffffff4d}.taskbar-item .taskbar-icon{font-size:1rem;flex-shrink:0}.taskbar-item .taskbar-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.taskbar-item .taskbar-close{background:#e74c3cb3;border:none;color:#fff;width:16px;height:16px;border-radius:50%;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;margin-left:.25rem;transition:background-color .2s}.taskbar-item .taskbar-close:hover{background:#e74c3c}.resize-handles{position:absolute;inset:0;pointer-events:none}.resize-handle{position:absolute;pointer-events:auto}.resize-handle:hover{background:#007bff4d}.resize-handle.resize-n{top:-3px;left:0;right:0;height:6px;cursor:n-resize}.resize-handle.resize-s{bottom:-3px;left:0;right:0;height:6px;cursor:s-resize}.resize-handle.resize-e{top:0;bottom:0;right:-3px;width:6px;cursor:e-resize}.resize-handle.resize-w{top:0;bottom:0;left:-3px;width:6px;cursor:w-resize}.resize-handle.resize-ne{top:-3px;right:-3px;width:12px;height:12px;cursor:ne-resize;border-radius:0 8px 0 0}.resize-handle.resize-nw{top:-3px;left:-3px;width:12px;height:12px;cursor:nw-resize;border-radius:8px 0 0}.resize-handle.resize-se{bottom:-3px;right:-3px;width:12px;height:12px;cursor:se-resize;border-radius:0 0 8px}.resize-handle.resize-sw{bottom:-3px;left:-3px;width:12px;height:12px;cursor:sw-resize;border-radius:0 0 0 8px}.scene-form{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.form-group{display:flex;flex-direction:column;gap:.5rem;position:relative}.profile-container{padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.profile-header{text-align:center;padding-bottom:1rem;border-bottom:1px solid #eee}.profile-avatar{width:80px;height:80px;background:#f8f9fa;border:2px solid #dee2e6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1rem}.profile-section h4{margin:0 0 .75rem;color:#2c3e50;font-size:1rem;font-weight:600}.project-selector{display:flex;flex-direction:column;gap:.75rem}.project-selector .current-project-display{padding:.75rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-weight:500;color:#495057;text-align:center}.project-selector .form-select{flex:1}.profile-actions{display:flex;flex-direction:column;gap:.5rem}.scenes-container{padding:1rem;display:flex;flex-direction:column;gap:1rem;height:100%}.scenes-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #eee}.scenes-header h3{margin:0;color:#2c3e50;font-size:1.1rem;font-weight:600}.scenes-list{flex:1;overflow-y:auto;min-height:200px}.scenes-actions{padding-top:1rem;border-top:1px solid #eee}.loading-message{text-align:center;color:#7f8c8d;padding:2rem;font-style:italic}.scene-item{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:1rem;margin-bottom:.75rem;transition:all .2s}.scene-item:hover{background:#e9ecef;border-color:#adb5bd}.scene-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.scene-header h4{margin:0;color:#2c3e50;font-size:1rem;font-weight:600}.scene-actions{display:flex;gap:.25rem}.scene-action-btn{background:none;border:none;padding:.25rem;cursor:pointer;border-radius:3px;font-size:.9rem;transition:background-color .2s}.scene-action-btn:hover{background:#0000001a}.scene-info{color:#6c757d;font-size:.85rem}.scene-description{margin-bottom:.5rem}.scene-meta{display:flex;gap:1rem;font-size:.8rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;color:#2c3e50;font-size:1.2rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:#f8f9fa;color:#495057}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #eee;background:#f8f9fa}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.project-list-container{max-height:400px;overflow-y:auto}.project-list{display:flex;flex-direction:column;gap:.5rem}.project-item{padding:1rem;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:all .2s ease}.project-item:hover{background:#f8f9fa;border-color:#3498db;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.project-item .project-name{font-weight:600;font-size:1rem;color:#333;margin-bottom:.25rem}.project-item .project-description{font-size:.875rem;color:#666}.no-projects{text-align:center;color:#666;padding:2rem;font-style:italic}.error-message{text-align:center;color:#e74c3c;padding:1rem;background:#fdf2f2;border:1px solid #fecaca;border-radius:6px}.sublocations-container{display:flex;flex-direction:column;gap:1rem}.sublocation-item{border:1px solid #e0e0e0;border-radius:8px;padding:1rem;background:#f8f9fa}.sublocation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sublocation-header .sublocation-number{font-weight:600;color:#333}.sublocation-header .remove-sublocation{background:#dc3545;color:#fff;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.sublocation-header .remove-sublocation:hover{background:#c82333}.sublocation-fields{display:flex;flex-direction:column;gap:1rem}.photo-upload-area{display:flex;flex-direction:column;gap:.75rem}.photo-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.photo-item{position:relative;width:80px;height:80px;border-radius:6px;overflow:hidden;border:2px solid #dee2e6}.photo-item img{width:100%;height:100%;object-fit:cover}.remove-photo{position:absolute;top:-5px;right:-5px;background:#dc3545;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.remove-photo:hover{background:#c82333}.form-label{font-weight:600;color:#2c3e50;font-size:.9rem}.form-input,.form-select,.form-textarea{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background:#fff;color:#2c3e50;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:#95a5a6}.form-textarea{min-height:80px;resize:vertical;font-family:inherit}.form-select{cursor:pointer;background:#fff}.form-button{padding:.75rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .2s}.form-button:hover{background:#2980b9;transform:translateY(-1px)}.form-button:active{transform:translateY(0)}.form-button.secondary{background:#95a5a6}.form-button.secondary:hover{background:#7f8c8d}.form-button.small{padding:.5rem 1rem;font-size:.8rem}.form-button:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.form-button:disabled:hover{background:#bdc3c7;transform:none}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1px solid #ecf0f1}.form-help{font-size:.8rem;color:#7f8c8d;margin-top:.25rem}.form-error{font-size:.8rem;color:#e74c3c;margin-top:.25rem}.autocomplete-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;box-shadow:0 4px 8px #0000001a;z-index:1000;max-height:200px;overflow-y:auto;display:none}.autocomplete-item{padding:.75rem;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.autocomplete-item:hover{background-color:#f8f9fa}.autocomplete-item:last-child{border-bottom:none}.autocomplete-main-text{font-weight:600;color:#2c3e50;font-size:.9rem;margin-bottom:.25rem}.autocomplete-secondary-text{color:#7f8c8d;font-size:.8rem}.test-dashboard{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family)}.test-dashboard .test-dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-shadow:0 2px 4px #0000001a}.test-dashboard .test-dashboard-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.test-dashboard .test-dashboard-header .test-controls{display:flex;gap:.75rem;align-items:center}.test-dashboard .test-dashboard-header .test-controls .btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.test-dashboard .test-dashboard-header .test-controls .btn .icon{font-size:1rem}.test-dashboard .test-dashboard-header .test-controls .btn:disabled{opacity:.5;cursor:not-allowed}.test-dashboard .test-dashboard-header .test-controls .btn.btn-primary{background:var(--color-primary);color:#fff}.test-dashboard .test-dashboard-header .test-controls .btn.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.test-dashboard .test-dashboard-header .test-controls .btn.btn-warning{background:var(--color-warning);color:#fff}.test-dashboard .test-dashboard-header .test-controls .btn.btn-warning:hover:not(:disabled){background:var(--color-warning-dark)}.test-dashboard .test-dashboard-header .test-controls .btn.btn-danger{background:var(--color-danger);color:#fff}.test-dashboard .test-dashboard-header .test-controls .btn.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.test-dashboard .test-dashboard-header .test-controls .btn.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.test-dashboard .test-dashboard-header .test-controls .btn.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.test-dashboard .test-dashboard-content{display:flex;flex:1;overflow:hidden}.test-dashboard .test-dashboard-content .test-sidebar{width:300px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column}.test-dashboard .test-dashboard-content .test-sidebar .test-filters{padding:1rem;border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-content .test-sidebar .test-filters h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-sidebar .test-filters .filter-item{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;cursor:pointer;font-size:.875rem}.test-dashboard .test-dashboard-content .test-sidebar .test-filters .filter-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.test-dashboard .test-dashboard-content .test-sidebar .test-filters .filter-item .checkmark{font-weight:500;color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites{flex:1;padding:1rem;overflow-y:auto}.test-dashboard .test-dashboard-content .test-sidebar .test-suites h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item{padding:.75rem;margin-bottom:.5rem;background:var(--bg-tertiary);border-radius:6px;cursor:pointer;transition:all .2s ease}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item:hover{background:var(--bg-hover)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item.passed{border-left:4px solid var(--color-success)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item.failed{border-left:4px solid var(--color-danger)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item.running{border-left:4px solid var(--color-warning);animation:pulse 2s infinite}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-name{font-weight:500;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-count{font-size:.75rem;color:var(--text-secondary);background:var(--bg-primary);padding:.25rem .5rem;border-radius:12px}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-status{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-status.passed{background:var(--color-success);color:#fff}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-status.failed{background:var(--color-danger);color:#fff}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-status.running{background:var(--color-warning);color:#fff}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-header .suite-status.idle{background:var(--bg-primary);color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-details .suite-stats{display:flex;gap:.75rem;font-size:.75rem}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-details .suite-stats .passed{color:var(--color-success)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-details .suite-stats .failed{color:var(--color-danger)}.test-dashboard .test-dashboard-content .test-sidebar .test-suites .test-suites-list .test-suite-item .suite-details .suite-stats .skipped{color:var(--color-warning)}.test-dashboard .test-dashboard-content .test-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-summary{padding:1rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats{display:flex;gap:2rem;align-items:center}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:500}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item .stat-value{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item.passed .stat-value{color:var(--color-success)}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item.failed .stat-value{color:var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-summary .summary-stats .stat-item.skipped .stat-value{color:var(--color-warning)}.test-dashboard .test-dashboard-content .test-main .test-output{flex:1;display:flex;flex-direction:column;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-output .output-tabs{display:flex;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-content .test-main .test-output .output-tabs .tab-btn{padding:.75rem 1.5rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.test-dashboard .test-dashboard-content .test-main .test-output .output-tabs .tab-btn.active{background:var(--bg-primary);color:var(--text-primary);border-bottom:2px solid var(--color-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-tabs .tab-btn:hover:not(.active){background:var(--bg-hover);color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content{flex:1;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .output-panel{display:none;height:100%;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .output-panel.active{display:block}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list{height:100%;overflow-y:auto;padding:1rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .no-results{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-style:italic}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result{margin-bottom:1.5rem;background:var(--bg-secondary);border-radius:8px;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result.passed{border-left:4px solid var(--color-success)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result.failed{border-left:4px solid var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result.running{border-left:4px solid var(--color-warning)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-name{font-weight:600;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-duration{font-size:.875rem;color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-status{font-size:.75rem;font-weight:500;padding:.25rem .75rem;border-radius:12px}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-status.passed{background:var(--color-success);color:#fff}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-status.failed{background:var(--color-danger);color:#fff}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-result-header .suite-status.running{background:var(--color-warning);color:#fff}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result{padding:1rem;border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result:last-child{border-bottom:none}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result.passed{border-left:3px solid var(--color-success)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result.failed{border-left:3px solid var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result.skipped{border-left:3px solid var(--color-warning);opacity:.7}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-header .test-icon{font-weight:700;font-size:1rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-header .test-name{flex:1;font-weight:500;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-header .test-duration{font-size:.75rem;color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-error{margin-top:.75rem;padding:.75rem;background:var(--bg-danger);border-radius:4px;border-left:3px solid var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-error pre{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;color:var(--color-danger);white-space:pre-wrap;word-break:break-word}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs{margin-top:.75rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log{display:flex;gap:.5rem;padding:.25rem 0;font-size:.875rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log .log-timestamp{color:var(--text-secondary);font-family:Monaco,Menlo,Ubuntu Mono,monospace}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log .log-message,.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log.info .log-message{color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log.warn .log-message{color:var(--color-warning)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log.error .log-message{color:var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .test-results-list .test-suite-result .suite-tests .test-result .test-logs .test-log.debug .log-message{color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log{height:100%;overflow-y:auto;padding:1rem;background:var(--bg-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry{display:flex;gap:.5rem;margin-bottom:.25rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .timestamp{color:var(--text-secondary);flex-shrink:0}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .level{flex-shrink:0;font-weight:500}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .level.info{color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .level.warn{color:var(--color-warning)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .level.error{color:var(--color-danger)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .level.debug{color:var(--text-secondary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .console-log .console-entry .message{color:var(--text-primary);word-break:break-word}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content{height:100%;overflow-y:auto;padding:1rem}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content .coverage-summary .coverage-stat{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border-radius:8px}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content .coverage-summary .coverage-stat .coverage-label{min-width:80px;font-weight:500;color:var(--text-primary)}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content .coverage-summary .coverage-stat .coverage-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content .coverage-summary .coverage-stat .coverage-bar .coverage-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.test-dashboard .test-dashboard-content .test-main .test-output .output-content .coverage-content .coverage-summary .coverage-stat .coverage-percentage{min-width:40px;text-align:right;font-weight:600;color:var(--text-primary)}.test-dashboard .test-status-bar{display:flex;align-items:center;padding:.5rem 1rem;background:var(--bg-secondary);border-top:1px solid var(--border-color);gap:1rem}.test-dashboard .test-status-bar .status-indicator{display:flex;align-items:center;gap:.5rem}.test-dashboard .test-status-bar .status-indicator .status-dot{width:8px;height:8px;border-radius:50%}.test-dashboard .test-status-bar .status-indicator .status-dot.idle{background:var(--text-secondary)}.test-dashboard .test-status-bar .status-indicator .status-dot.running{background:var(--color-warning);animation:pulse 2s infinite}.test-dashboard .test-status-bar .status-indicator .status-dot.success{background:var(--color-success)}.test-dashboard .test-status-bar .status-indicator .status-dot.error{background:var(--color-danger)}.test-dashboard .test-status-bar .status-indicator .status-text{font-size:.875rem;color:var(--text-secondary)}.test-dashboard .test-status-bar .progress-bar{flex:1;height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.test-dashboard .test-status-bar .progress-bar .progress-fill{height:100%;background:var(--color-primary);animation:progress 2s infinite linear}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (max-width: 768px){.test-dashboard .test-dashboard-content{flex-direction:column}.test-dashboard .test-dashboard-content .test-sidebar{width:100%;height:200px;border-right:none;border-bottom:1px solid var(--border-color)}.test-dashboard .test-dashboard-header{flex-direction:column;gap:1rem;align-items:stretch}.test-dashboard .test-dashboard-header .test-controls{justify-content:center;flex-wrap:wrap}.test-dashboard .test-summary .summary-stats{flex-wrap:wrap;gap:1rem}}:root{--color-primary: #2563eb;--color-secondary: #64748b;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-background: #ffffff;--color-surface: #f8fafc;--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-shadow: rgba(0, 0, 0, .1);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}@media (prefers-color-scheme: dark){:root{--color-background: #0f172a;--color-surface: #1e293b;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-border: #334155;--color-shadow: rgba(0, 0, 0, .3)}}.theme-dark{--color-background: #0f172a;--color-surface: #1e293b;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-border: #334155;--color-shadow: rgba(0, 0, 0, .3)}.theme-light{--color-background: #ffffff;--color-surface: #f8fafc;--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-shadow: rgba(0, 0, 0, .1)}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.6;color:#1e293b;background-color:#f8fafc;scroll-behavior:smooth}#app{min-height:100vh;width:100%;margin:0;padding:0}#map{height:100vh;width:100%;background-color:#f8fafc}.error{display:flex;align-items:center;justify-content:center;height:100vh;text-align:center;padding:1.5rem;color:#1e293b}.error h2{margin:0 0 1rem;color:#ef4444}.error p{margin:0;color:#64748b}input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2563eb;text-decoration:none;transition:color .15s ease-in-out}a:hover{color:#0c3284}a:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:.25rem}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.25;font-weight:700}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}.color-primary{color:var(--color-primary)}.color-secondary{color:var(--color-secondary)}.color-success{color:var(--color-success)}.color-warning{color:var(--color-warning)}.color-error{color:var(--color-error)}.color-text-primary{color:var(--color-text-primary)}.color-text-secondary{color:var(--color-text-secondary)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-success{background-color:var(--color-success)}.bg-warning{background-color:var(--color-warning)}.bg-error{background-color:var(--color-error)}.bg-background{background-color:var(--color-background)}.bg-surface{background-color:var(--color-surface)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.hidden{display:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-mobile{display:block}@media (min-width: 768px){.show-mobile{display:none}}.show-desktop{display:none}@media (min-width: 768px){.show-desktop{display:block}}@media print{body{background:#fff;color:#000}.welcome-card,.error-card{box-shadow:none;border:1px solid #ccc}.feature-item:before{content:"• ";margin-right:.5rem}.reload-button{display:none}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){.welcome-card,.error-card{border-width:2px}.feature-item{border-left-width:4px}}
