*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{display:flex;flex-direction:column;min-height:calc(100vh - 64px)}.main-content{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}.dashboard-header{align-items:flex-end;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.dashboard-title h2{color:#333;font-size:2rem;font-weight:600;margin:0}.dashboard-title p{color:#666;font-size:1rem;margin:.5rem 0 0}.dashboard-actions{align-items:center;display:flex;gap:1rem}.help-button,.refresh-button{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;color:#495057;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.help-button{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.help-button:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.refresh-button:hover:not(:disabled){background:#e9ecef;border-color:#dee2e6;transform:translateY(-1px)}.refresh-button:disabled{cursor:not-allowed;opacity:.6}.devices-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:2rem}.device-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 2px 12px #00000014;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.device-card:hover{border-color:#e0e0e0;box-shadow:0 8px 24px #00000026;transform:translateY(-4px)}.device-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.device-title{flex:1 1}.device-name{color:#333;font-size:1.25rem;font-weight:600;margin:0 0 .25rem}.device-type{background:#f8f9fa;border-radius:4px;color:#6c757d;font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:.25rem .5rem;text-transform:uppercase}.status-indicator{align-items:center;display:flex;gap:.5rem}.status-dot{animation:pulse 2s infinite;border-radius:50%;height:8px;width:8px}.status-dot.online{background-color:#28a745}.status-dot.offline{animation:none;background-color:#dc3545}@keyframes pulse{0%{box-shadow:0 0 0 0 #28a745b3}70%{box-shadow:0 0 0 8px #28a74500}to{box-shadow:0 0 0 0 #28a74500}}.status-text{text-transform:capitalize}.status-text.online{color:#28a745}.status-text.offline{color:#dc3545}.status-text.busy{color:#ffc107}.device-info{margin-bottom:1.5rem}.info-row{align-items:center;display:flex;font-size:.875rem;justify-content:space-between;margin:.5rem 0}.info-label{color:#666;font-weight:500}.info-value{color:#333;font-weight:400}.capabilities{margin-top:1rem}.capability-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.capability-tag{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem;text-transform:capitalize}.capability-tag.more{background:#6c757d}.device-actions{border-top:1px solid #f0f0f0;margin-top:1rem;padding-top:1rem}.connect-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:all .3s ease;width:100%}.connect-button.primary{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.connect-button.primary:hover:not(:disabled){box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.connect-button.disabled{background:#f8f9fa;border:1px solid #e9ecef;color:#6c757d;cursor:not-allowed}.spinner-small{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.viewer-container{background-color:#000;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1000}.viewer-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#34495e);box-shadow:0 2px 10px #0000004d;color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:1rem 1.5rem}.device-info h3{font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.device-details{font-size:.8rem;opacity:.8}.viewer-controls{align-items:center;display:flex;gap:1rem}.connection-indicator{align-items:center;background:#ffffff1a;border-radius:12px;display:flex;font-size:.875rem;gap:.5rem;padding:.25rem .75rem}.connection-indicator .status-dot{animation:pulse 2s infinite;border-radius:50%;height:8px;width:8px}.stream-info{font-family:monospace;font-size:.8rem;opacity:.8}.fullscreen-button{align-items:center;background:#ffffff1a;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:2.5rem;justify-content:center;min-width:2.5rem;padding:.5rem;transition:all .3s ease}.fullscreen-button:hover{background:#fff3;transform:translateY(-1px)}.close-button{align-items:center;background:#e74c3ccc;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:2.5rem;justify-content:center;min-width:2.5rem;padding:.5rem;transition:all .3s ease}.close-button:hover{background:#e74c3c;transform:translateY(-1px)}.viewer-content{align-items:center;display:flex;flex:1 1;justify-content:center;overflow:hidden;position:relative}.remote-video{cursor:crosshair;max-height:100%;max-width:100%;object-fit:contain;transition:opacity .3s ease}.remote-video:hover{cursor:none}.remote-video.connecting{opacity:.7}.remote-video.connected{opacity:1}.loading-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.loading-overlay .loading-spinner{color:#fff;text-align:center}.loading-overlay .spinner{border-color:#fff #ffffff4d #ffffff4d;margin:0 auto 1rem}.loading-overlay p{font-size:1.1rem;font-weight:500;margin:0 0 .5rem}.loading-overlay small{font-size:.9rem;opacity:.7}.viewer-overlay{background:linear-gradient(#0000,#0009);bottom:0;left:0;opacity:0;padding:2rem 1rem 1rem;pointer-events:none;position:absolute;right:0;transition:opacity .3s ease}.viewer-container:hover .viewer-overlay{opacity:1}.overlay-info{font-size:.9rem;opacity:.8}.error-state,.overlay-info{color:#fff;text-align:center}.error-state{max-width:400px;padding:2rem}.error-icon{font-size:3rem;margin-bottom:1rem}.error-state h3{color:#ff6b6b;font-size:1.5rem;margin:0 0 1rem}.error-state p{line-height:1.5;margin:0 0 2rem;opacity:.9}.error-actions{gap:1rem}.close-error-button,.retry-button{font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.close-error-button{background:#ffffff1a;border:1px solid #ffffff4d}.close-error-button:hover{background:#fff3}.devices-section{margin-top:2rem}.devices-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.devices-header h3{color:#333;font-size:1.25rem;font-weight:600;margin:0}.devices-stats{display:flex;font-size:.875rem;gap:1rem}.stat{border-radius:12px;font-weight:500;padding:.25rem .75rem}.stat.online{background:#d4edda;color:#155724}.stat.offline{background:#f8d7da;color:#721c24}.loading-state{color:#666;padding:4rem 2rem;text-align:center}.loading-state .spinner{margin:0 auto 1rem}.error-banner{align-items:center;background:linear-gradient(135deg,#f8d7da,#f5c6cb);border:1px solid #f5c6cb;border-radius:8px;display:flex;gap:1rem;margin-bottom:2rem;padding:1rem 1.5rem}.error-icon{font-size:1.25rem}.error-text{color:#721c24;flex:1 1;font-weight:500}.error-retry{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .3s ease}.error-retry:hover{background:#c82333}.empty-state{color:#666;padding:4rem 2rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#333;font-size:1.5rem;margin:0 0 1rem}.empty-state p{font-size:1rem;margin:0 0 2rem}.empty-hint{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-left:auto;margin-right:auto;margin-top:2rem;max-width:400px;padding:1rem}.empty-hint p{color:#495057;font-size:.875rem;margin:0}.connection-status{background-color:#000000b3;border-radius:4px;color:#fff;font-size:.8rem;padding:.5rem;position:absolute;right:10px;top:10px}@media (max-width:768px){.main-content{padding:1rem}.devices-grid{grid-template-columns:1fr}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-title h2{font-size:1.5rem}.devices-header{align-items:flex-start;flex-direction:column;gap:.5rem}.devices-stats{align-self:flex-start}.capability-tags{justify-content:flex-start}}.auth-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-form{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;max-width:450px;padding:40px;width:100%}.auth-header{margin-bottom:30px;text-align:center}.auth-header h2{color:#333;font-size:28px;font-weight:600;margin:0 0 8px}.auth-header p{color:#666;font-size:16px;margin:0}.error-message{text-align:center}.auth-form-content{display:flex;flex-direction:column;gap:20px}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1 1}.form-group{display:flex;flex-direction:column;gap:6px}.form-group input{background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;padding:12px 16px;transition:all .3s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.form-group input.error{border-color:#f56565}.form-group input.error:focus{border-color:#f56565;box-shadow:0 0 0 3px #f565651a}.field-error{color:#f56565;font-size:12px;margin-top:4px}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .3s ease}.auth-button:hover:not(:disabled){box-shadow:0 8px 20px #667eea4d;transform:translateY(-2px)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.auth-footer{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:20px;text-align:center}.auth-footer p{color:#666;font-size:14px;margin:0}.auth-link{background:none;border:none;color:#667eea;cursor:pointer;font-weight:500;text-decoration:underline;transition:color .3s ease}.auth-link:hover:not(:disabled){color:#764ba2}.auth-link:disabled{color:#ccc;cursor:not-allowed;text-decoration:none}@media (max-width:480px){.auth-container{padding:15px}.auth-form{max-width:100%;padding:30px 25px}.form-row{flex-direction:column;gap:20px}.auth-header h2{font-size:24px}}.app-header{background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{height:64px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.header-content,.header-left{align-items:center;display:flex}.app-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#333;font-size:24px;font-weight:600;margin:0}.header-right{align-items:center;display:flex;gap:20px}.user-info{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.user-name{color:#333;font-size:14px;font-weight:600}.user-email{color:#666;font-size:12px}.logout-button{background:#0000;border:2px solid #667eea;border-radius:6px;color:#667eea;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .3s ease}.logout-button:hover:not(:disabled){background:#667eea;color:#fff;transform:translateY(-1px)}.logout-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.loading-container{align-items:center;background:#f8f9fa;display:flex;justify-content:center;min-height:100vh}.loading-spinner{color:#666;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-radius:50%;border-top-color:#667eea;height:40px;margin:0 auto 16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-spinner p{font-size:16px;margin:0}@media (max-width:768px){.header-content{height:56px;padding:0 15px}.app-title{font-size:20px}.user-info{display:none}.logout-button{font-size:12px;padding:6px 12px}}.register-device-trigger{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:20px;padding:12px 24px;transition:all .3s ease}.register-device-trigger:hover{box-shadow:0 8px 20px #667eea4d;transform:translateY(-2px)}.device-registration,.registration-success{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 24px #00000026;margin-bottom:24px;padding:24px}.registration-header,.success-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.registration-header h3,.success-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border-radius:50%;color:#666;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .3s ease;width:30px}.close-btn:hover:not(:disabled){background:#f0f0f0;color:#333}.close-btn:disabled{cursor:not-allowed;opacity:.5}.error-message{background:#fee;border:1px solid #fcc;color:#c33;font-size:14px;margin-bottom:20px}.registration-form{display:flex;flex-direction:column;gap:20px}.form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled,.form-group select:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.capabilities-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:8px}.capability-checkbox{align-items:center;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 12px;transition:all .3s ease}.capability-checkbox:hover:not(:has(input:disabled)){background:#f8f9ff;border-color:#667eea}.capability-checkbox input{margin:0;width:auto}.capability-checkbox input:disabled{cursor:not-allowed}.form-actions{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px}.cancel-btn,.register-btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .3s ease}.cancel-btn{background:#f5f5f5;color:#666}.cancel-btn:hover:not(:disabled){background:#e0e0e0;color:#333}.register-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.register-btn:hover:not(:disabled){box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.cancel-btn:disabled,.register-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.registration-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-color:#28a745}.registration-details,.success-header h3{color:#155724}.registration-details p{font-size:14px;margin:8px 0}.registration-details code{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-family:Courier New,monospace;font-size:13px;padding:2px 6px}.agent-instructions{background:#ffffffb3;border:1px solid #b8daff;border-radius:8px;margin-top:16px;padding:16px}.agent-instructions h4{color:#155724;font-size:16px;margin:0 0 12px}.agent-instructions ol{margin:8px 0;padding-left:20px}.agent-instructions li{font-size:14px;margin:6px 0}.agent-instructions pre{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin:8px 0;overflow-x:auto;padding:12px}.agent-instructions pre code{background:none;border:none;color:#495057;font-size:14px;padding:0}@media (max-width:768px){.capabilities-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.cancel-btn,.register-btn{width:100%}}.registration-success{animation:slideIn .3s ease-out;background:#fff;border:2px solid #28a745;border-radius:12px;box-shadow:0 8px 32px #28a7451a;max-width:600px;padding:24px}.success-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.success-header h3{color:#28a745;font-size:1.4em;margin:0}.success-actions{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.persistent-note{color:#6c757d;font-size:.85em;font-style:italic}.close-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9em;padding:8px 16px;transition:all .2s ease}.close-btn:hover{background:#c82333;transform:translateY(-1px)}.detail-row{align-items:center;display:flex;gap:12px;margin-bottom:12px}.detail-row p{flex:1 1;margin:0}.copy-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85em;padding:6px 10px;transition:all .2s ease}.copy-btn:hover{background:#0056b3;transform:scale(1.05)}.device-management{display:flex;gap:8px;margin-top:12px}.action-button{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-size:1.1em;padding:8px 12px;transition:all .2s ease}.action-button:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.info-button:hover{background:#e3f2fd;border-color:#2196f3}.delete-button:hover{background:#ffebee;border-color:#f44336}.modal-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:80vh;max-width:700px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:24px;padding:24px 24px 0}.modal-header h3{color:#343a40;font-size:1.5em;margin:0}.modal-close-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1.2em;padding:8px 12px;transition:all .2s ease}.modal-close-btn:hover{background:#5a6268}.modal-body{padding:0 24px 24px}.device-summary{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:24px;padding:16px}.device-summary h4{color:#343a40;margin:0}.device-status{border-radius:20px;font-size:.85em;font-weight:600;padding:4px 12px;text-transform:uppercase}.device-status.online{background:#d4edda;color:#155724}.device-status.offline{background:#f8d7da;color:#721c24}.detail-section{margin-bottom:24px}.detail-section h5{border-bottom:2px solid #e9ecef;color:#495057;font-size:1.1em;margin:0 0 16px;padding-bottom:8px}.detail-grid{grid-gap:16px;display:grid;gap:16px}.detail-item{display:flex;flex-direction:column;gap:8px}.detail-item label{color:#6c757d;font-size:.9em;font-weight:600}.detail-value{align-items:center;display:flex;gap:12px}.detail-value code{background:#f8f9fa;border-radius:6px;flex:1 1;font-family:Monaco,Menlo,monospace;font-size:.9em;padding:8px 12px;word-break:break-all}.ws-url{font-size:.8em!important;line-height:1.4}.copy-btn-small{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.8em;padding:4px 8px;transition:all .2s ease}.copy-btn-small:hover{background:#218838;transform:scale(1.1)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-message{word-wrap:break-word;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#721c24;font-family:Monaco,Menlo,monospace;font-size:.9em;line-height:1.4;margin:12px 0;padding:12px;white-space:pre-wrap}.error-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.close-error-button,.retry-button{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .2s ease}.retry-button{background:#28a745;color:#fff}.retry-button:hover{background:#218838;transform:translateY(-1px)}.close-error-button{background:#6c757d;color:#fff}.close-error-button:hover{background:#5a6268;transform:translateY(-1px)}@media (max-width:768px){.modal-content{margin:20px;width:95%}.detail-row,.detail-value{align-items:stretch;flex-direction:column}.detail-row{gap:8px}.device-summary{flex-direction:column;gap:12px;text-align:center}.success-header{flex-direction:column;gap:16px}.success-actions{align-items:stretch}.error-actions{flex-direction:column}}.quick-start-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:2000}.quick-start-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.quick-start-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px 16px 0 0;color:#fff;display:flex;justify-content:space-between;padding:2rem}.quick-start-header h2{font-size:1.5rem;font-weight:600;margin:0}.close-guide{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.close-guide:hover{background:#ffffff4d;transform:rotate(90deg)}.quick-start-content{padding:2rem}.step-section{margin-bottom:2rem}.step-section h3{color:#333;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.feature-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.feature-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:1.5rem;text-align:center;transition:all .3s ease}.feature-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.feature-icon{font-size:2rem;margin-bottom:.5rem}.feature-card h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 .5rem}.feature-card p{color:#666;font-size:.875rem;line-height:1.4;margin:0}.status-grid{grid-gap:.75rem;display:grid;gap:.75rem}.status-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:1rem;padding:.75rem 1rem}.status-item span:nth-child(2){color:#333;flex:1 1;font-weight:500}.status-text{color:#28a745;font-size:.875rem;font-weight:500}.action-buttons{display:flex;gap:1rem;justify-content:center}.action-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 2rem;transition:all .3s ease}.action-button.primary{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.action-button.primary:hover{box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.action-button.secondary{background:#fff;border:2px solid #667eea;color:#667eea}.action-button.secondary:hover{background:#667eea;color:#fff}.tips-section{background:#f8f9fa;border-radius:12px;margin-top:1rem;padding:1.5rem}.tips-section h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 1rem}.tips-section ul{color:#666;margin:0;padding-left:1.5rem}.tips-section li{line-height:1.4;margin:.5rem 0}kbd{background:#e9ecef;border:1px solid #ced4da;border-radius:4px;color:#495057;font-family:monospace;font-size:.875rem;padding:.125rem .375rem}@media (max-width:768px){.quick-start-overlay{padding:1rem}.quick-start-header{padding:1.5rem}.quick-start-header h2{font-size:1.25rem}.quick-start-content{padding:1.5rem}.feature-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.action-button{width:100%}}.custom-cursor{pointer-events:none;position:fixed;transform:translate(-2px,-2px);transform:translateZ(0);transition:transform .08s ease;user-select:none;-webkit-user-select:none;will-change:transform,left,top;z-index:10000}.custom-cursor.arrow{transform:translate(-2px,-2px)}.custom-cursor.hand{transform:translate(-6px,-2px)}.custom-cursor.crosshair,.custom-cursor.move,.custom-cursor.not-allowed,.custom-cursor.text,.custom-cursor.wait{transform:translate(-12px,-12px)}.custom-cursor svg{display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.custom-cursor.clicking svg{transform:scale(.9);transition:transform .1s ease-out}.click-ripple{animation:ripple .4s ease-out;border:2px solid #fffc;border-radius:50%;height:40px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}@keyframes ripple{0%{opacity:1;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.cursor-wait{animation:rotate 1.5s linear infinite;transform-origin:center}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.custom-cursor svg circle,.custom-cursor svg line,.custom-cursor svg path{stroke-linejoin:round}.custom-cursor{animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translate(-2px,-2px) scale(.8)}to{opacity:1;transform:translate(-2px,-2px) scale(1)}}@media (prefers-contrast:high){.custom-cursor svg{filter:drop-shadow(0 2px 6px rgba(0,0,0,.8))}.custom-cursor svg circle,.custom-cursor svg line,.custom-cursor svg path{stroke-width:2px}}@media (prefers-reduced-motion:reduce){.custom-cursor{animation:none;transition:none}.click-ripple,.cursor-wait{animation:none}.click-ripple{display:none}}.viewer-container:-moz-full-screen .custom-cursor,.viewer-container:-webkit-full-screen .custom-cursor,.viewer-container:fullscreen .custom-cursor{z-index:10000}
/*# sourceMappingURL=main.dd6c0282.css.map*/