@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#65b7de;padding:var(--spacing-24);position:relative;overflow:hidden}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;will-change:transform}.login-blob-1{width:500px;height:500px;background:#59dafe;top:-10%;left:-10%;animation:blob-drift-1 12s ease-in-out infinite}.login-blob-2{width:400px;height:400px;background:#7a89fe;bottom:-5%;right:-10%;animation:blob-drift-2 10s ease-in-out infinite}.login-blob-3{width:350px;height:350px;background:#426fee;top:50%;left:50%;transform:translate(-50%,-50%);animation:blob-drift-3 14s ease-in-out infinite}@keyframes blob-drift-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(15vw,10vh) scale(1.1)}66%{transform:translate(5vw,20vh) scale(.95)}}@keyframes blob-drift-2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-12vw,-15vh) scale(1.05)}66%{transform:translate(-5vw,-8vh) scale(1.1)}}@keyframes blob-drift-3{0%,to{transform:translate(-50%,-50%) scale(1)}33%{transform:translate(-30%,-60%) scale(1.15)}66%{transform:translate(-70%,-40%) scale(.9)}}.login-container{position:relative;z-index:1;width:100%;max-width:420px;background:var(--background-surface-secondary);border-radius:var(--radius-2xl);padding:var(--spacing-40);box-shadow:0 20px 60px #0003}.login-header{text-align:center;margin-bottom:var(--spacing-40)}.login-logo{width:64px;height:64px;margin:0 auto var(--spacing-20);border-radius:16px;object-fit:cover}.login-brand-accent{color:#8f7afe}.login-header h1{font-size:32px;font-weight:500;color:var(--typography-primary);margin:0 0 var(--spacing-8);line-height:36px}.login-header p{font-size:15px;color:var(--typography-secondary);margin:0;line-height:24px}.login-form{display:flex;flex-direction:column;gap:var(--spacing-24)}.login-error{padding:var(--spacing-12) var(--spacing-16);background:#fd44381a;color:var(--charts-context-negative);border-radius:var(--radius-s);font-size:14px;text-align:center}.form-group label{font-size:15px;font-weight:500;color:var(--typography-primary);line-height:24px}.form-group input{padding:var(--spacing-12) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);transition:all .2s ease;line-height:24px}.form-group input:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #595dfe1a}.form-group input:disabled{opacity:.6;cursor:not-allowed}.login-button{padding:var(--spacing-12) var(--spacing-24);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;background:#595dfe;border:none;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;line-height:24px}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #595dfe66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.admin-sidebar{width:var(--sidebar-width-expanded);background:var(--background-surface-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh}.company-submenu{margin:var(--spacing-8) 0;padding-left:var(--spacing-12)}.company-submenu-header{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);margin:0 var(--spacing-16) var(--spacing-4) var(--spacing-16);color:var(--typography-primary);border-radius:var(--spacing-s);cursor:pointer;transition:all .2s ease;background:var(--background-chip-active);border:1px solid var(--border-primary)}.company-submenu-header:hover{background:var(--bg-hover)}.company-submenu-header svg{flex-shrink:0;width:16px;height:16px}.company-submenu-logo{width:24px;height:24px;border-radius:4px;overflow:hidden;flex-shrink:0;background:#fff;border:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center}.company-submenu-logo img{width:100%;height:100%;object-fit:contain;padding:2px}.company-name{font-size:14px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-layout{display:flex;min-height:100vh;background:var(--bg-main)}.admin-main-content{flex:1;margin-left:var(--sidebar-width-expanded);min-height:100vh}.client-list-container{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-2xl);overflow:hidden}.client-list-loading,.client-list-empty{padding:var(--spacing-40);text-align:center;color:var(--typography-secondary);font-size:15px}.client-table{width:100%;border-collapse:collapse}.client-table thead{background:var(--bg-hover);border-bottom:1px solid var(--border-primary)}.client-table th{padding:var(--spacing-16) var(--spacing-24);text-align:left;font-size:15px;font-weight:500;color:var(--typography-secondary);line-height:20px}.client-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .2s ease}.client-table tbody tr.clickable-row{cursor:pointer}.client-table tbody tr:last-child{border-bottom:none}.client-table tbody tr:hover{background:var(--bg-hover)}.client-table td{padding:var(--spacing-16) var(--spacing-24);font-size:15px;color:var(--typography-primary);line-height:24px}.client-username{display:flex;align-items:center;gap:var(--spacing-12)}.client-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.company-logo{width:40px;height:40px;border-radius:var(--radius-s);overflow:hidden;flex-shrink:0;background:#fff;border:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center}.company-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.status-badge{display:inline-block;padding:var(--spacing-4) var(--spacing-12);border-radius:var(--radius-xs);font-size:12px;font-weight:500;text-transform:capitalize;line-height:20px}.status-active{background:#05cd991a;color:var(--success)}.status-suspended{background:#ffb5471a;color:var(--warning)}.status-deactivated{background:#a3aed01a;color:var(--typography-secondary)}.action-btn{padding:var(--spacing-6) var(--spacing-12);font-size:13px;font-weight:500;font-family:DM Sans,sans-serif;border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;background:var(--background-surface-secondary);color:var(--typography-primary)}.action-btn:hover{background:var(--bg-hover)}.action-suspend{color:var(--warning);border-color:var(--warning)}.action-suspend:hover{background:#ffb5471a}.action-activate{color:var(--success);border-color:var(--success)}.action-activate:hover{background:#05cd991a}.action-deactivate{color:var(--charts-context-negative);border-color:var(--charts-context-negative)}.action-deactivate:hover{background:#fd44381a}.admin-dashboard-content{padding:var(--spacing-40);max-width:1400px;margin:0 auto}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-16);margin-bottom:var(--spacing-24)}.stat-card{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-l);padding:var(--spacing-20)}.stat-label{font-size:15px;font-weight:500;color:var(--typography-secondary);margin-bottom:var(--spacing-8);line-height:20px}.stat-value{font-size:32px;font-weight:500;color:var(--typography-primary);line-height:36px}.stat-value.stat-success{color:var(--success)}.stat-value.stat-warning{color:var(--warning)}.register-button{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;white-space:nowrap}.register-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:14px}.breadcrumb-link{background:none;border:none;color:#3b82f6;cursor:pointer;padding:0;font-size:14px;font-weight:500;transition:color .15s;font-family:DM Sans,sans-serif}.breadcrumb-link:hover{color:#2563eb;text-decoration:underline}.breadcrumb-separator{color:#9ca3af}.breadcrumb-current{color:#111827;font-weight:600}.page-layout{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.page-header{flex-shrink:0;padding:var(--spacing-20) var(--spacing-24);border-bottom:1px solid #e5e7eb;background:#fff;min-height:68px;display:flex;align-items:center}.page-content{flex:1;overflow-y:auto;padding:var(--spacing-32);background:#f9fafb}.page-content>*{max-width:1200px;margin:0 auto}.company-overview{max-width:1200px}.company-info-section{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-2xl);padding:var(--spacing-32);margin-bottom:var(--spacing-24)}.section-header h2{font-size:20px;font-weight:500;color:var(--typography-primary);margin:0 0 var(--spacing-24);line-height:28px}.modal-form{padding:var(--spacing-24);display:flex;flex-direction:column;gap:var(--spacing-20)}.modal-error{padding:var(--spacing-12) var(--spacing-16);background:#fd44381a;color:var(--charts-context-negative);border-radius:var(--radius-s);font-size:14px}.form-group input,.form-group select{padding:var(--spacing-10) var(--spacing-12);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-primary);border:1px solid var(--border-primary);border-radius:var(--radius-s);transition:all .2s ease;line-height:24px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group select:disabled{opacity:.6;cursor:not-allowed}.form-group small{display:block;margin-top:var(--spacing-4);font-size:13px;color:var(--typography-tertiary);line-height:20px}.modal-btn{padding:var(--spacing-10) var(--spacing-20);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;border:1px solid var(--border-primary);line-height:24px}.modal-btn-cancel{background:var(--background-surface-secondary);color:var(--typography-primary)}.modal-btn-cancel:hover:not(:disabled){background:var(--bg-hover)}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.modal-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.modal-btn:disabled{opacity:.6;cursor:not-allowed}.modal-success{padding:var(--spacing-24)}.modal-success p{font-size:15px;color:var(--typography-secondary);margin:0 0 var(--spacing-12);line-height:24px}.modal-success p:last-of-type{margin-bottom:var(--spacing-24)}.modal-success .modal-actions{margin-top:0}.company-users{max-width:1400px}.users-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.create-user-button{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;white-space:nowrap}.create-user-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.loading-container,.error-container,.users-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb;text-align:center}.loading-container p,.error-container p,.users-empty p{color:#6b7280;font-size:14px;margin:0}.error-container p{color:#ef4444}.users-empty p{margin:.5rem 0 1.5rem}.users-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb}.users-table-container{overflow-x:auto;border-radius:8px}.users-table thead{background:#f9fafb}.users-table th{padding:.75rem 1rem;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.users-table th:first-child{padding-left:1.5rem}.users-table th:last-child{padding-right:1.5rem}.users-table td{padding:1rem;border-top:1px solid #e5e7eb;font-size:14px;color:#111827}.users-table td:first-child{padding-left:1.5rem}.users-table td:last-child{padding-right:1.5rem}.users-table tbody tr:hover{background:#f9fafb}.cell-date{color:#6b7280;font-size:14px}.logo-preview{width:120px;height:120px;border:2px dashed #d1d5db;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#f9fafb;position:relative;overflow:hidden;transition:all .2s;flex-shrink:0}.logo-preview:hover{border-color:#9ca3af}.logo-preview.drag-active{border-color:#3b82f6;background:#eff6ff;border-style:solid}.logo-image{width:100%;height:100%;object-fit:contain;padding:8px}.logo-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#9ca3af}.logo-placeholder p{font-size:12px;margin:0}.drag-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#3b82f61a;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3b82f6;gap:.5rem}.drag-overlay p{font-size:12px;font-weight:600;margin:0}.logo-actions{flex:1;display:flex;flex-direction:column;gap:.75rem}.button-group{display:flex;gap:.5rem;flex-wrap:wrap}.upload-button,.delete-button,.cancel-preview-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;background:#fff;color:#374151}.upload-button:hover:not(:disabled),.cancel-preview-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.upload-button:disabled,.delete-button:disabled,.cancel-preview-button:disabled{opacity:.5;cursor:not-allowed}.delete-button{background:#fff;color:#dc2626;border-color:#fca5a5}.delete-button:hover:not(:disabled){background:#fee;border-color:#f87171}.cancel-preview-button{background:#f3f4f6;color:#6b7280}.error-text{font-size:13px;color:#dc2626;margin:0;font-weight:500}.field-description{font-size:13px;color:#6b7280;margin:0;line-height:1.4}.company-settings{width:100%}.settings-header{margin-bottom:var(--spacing-24)}.error-message{padding:var(--spacing-12);background:#fee;border:1px solid #fcc;border-radius:6px;color:#c00;margin-bottom:var(--spacing-20);font-size:14px}.settings-section{background:#fff;border-radius:8px;padding:var(--spacing-24);margin-bottom:var(--spacing-24);border:1px solid #e5e7eb}.section-header h2{font-size:18px;font-weight:600;color:#111827;margin:0 0 var(--spacing-20) 0}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-20)}.form-group input{padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#111827;transition:border-color .15s;font-family:DM Sans,sans-serif}.status-display{padding:.625rem 0}.status-badge{display:inline-block;padding:6px 14px;border-radius:6px;font-size:14px;font-weight:600;text-transform:capitalize}.status-badge.status-deactivated{background:#fd44381a;color:var(--charts-context-negative)}.warning-zone{border-color:#fbbf24}.warning-zone .section-header h2{color:#d97706}.info-zone{border-color:#60a5fa}.info-zone .section-header h2{color:#2563eb}.action-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-24)}.action-info{flex:1}.action-info h3{font-size:16px;font-weight:600;color:#111827;margin:0 0 var(--spacing-8) 0}.action-info p{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.suspend-button,.activate-button,.deactivate-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:14px;font-weight:500;font-family:DM Sans,sans-serif;cursor:pointer;transition:background-color .15s;white-space:nowrap}.suspend-button{background:#f59e0b;color:#fff}.suspend-button:hover:not(:disabled){background:#d97706}.activate-button{background:#3b82f6;color:#fff}.activate-button:hover:not(:disabled){background:#2563eb}.deactivate-button{background:#dc2626;color:#fff}.deactivate-button:hover:not(:disabled){background:#b91c1c}.suspend-button:disabled,.activate-button:disabled,.deactivate-button:disabled{opacity:.5;cursor:not-allowed}.users-page{width:100%;padding:var(--spacing-40)}.search-input,.filter-select{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);line-height:24px;transition:all .2s ease}.search-input{flex:1;max-width:400px}.search-input::placeholder{color:var(--typography-tertiary)}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #2997c11a}.filter-select{min-width:150px}.users-table-container{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-l);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:var(--bg-hover);border-bottom:1px solid var(--border-primary)}.users-table th{padding:var(--spacing-12) var(--spacing-16);text-align:left;font-size:13px;font-weight:500;color:var(--typography-secondary);text-transform:uppercase;letter-spacing:.5px}.users-table td{padding:var(--spacing-16);border-top:1px solid var(--border-primary);font-size:15px;color:var(--typography-primary)}.user-email .user-avatar{width:32px;height:32px;font-size:14px}.role-badge{display:inline-block;padding:4px 12px;background:var(--background-chip-active);color:var(--typography-accent);border-radius:var(--radius-s);font-size:13px;font-weight:500}.status-badge.status-deactivated{background:#9797971a;color:var(--typography-tertiary)}.status-badge.status-pending{background:#667eea1a;color:#667eea}.action-buttons{display:flex;gap:var(--spacing-8)}.action-button{padding:6px 12px;font-size:13px;font-weight:500;font-family:DM Sans,sans-serif;border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease}.action-button.suspend{background:var(--background-surface-secondary);color:var(--warning);border-color:var(--warning)}.action-button.suspend:hover{background:#ff98001a}.action-button.activate{background:var(--background-surface-secondary);color:var(--success);border-color:var(--success)}.action-button.activate:hover{background:#42c2981a}.action-button.resend-invite{background:var(--background-surface-secondary);color:#667eea;border-color:#667eea}.action-button.resend-invite:hover{background:#667eea1a}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-16);margin-top:var(--spacing-24)}.pagination button{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease}.pagination button:hover:not(:disabled){background:var(--bg-hover)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{font-size:15px;color:var(--typography-secondary)}.modal-content{background:var(--background-surface-secondary);border-radius:var(--radius-2xl);width:100%;max-width:520px;box-shadow:var(--shadow-card)}.form-group input,.form-group select{padding:var(--spacing-10) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-s);line-height:24px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #2997c11a}.teams-list{display:flex;flex-direction:column;gap:var(--spacing-8);max-height:240px;overflow-y:auto;padding:var(--spacing-8);background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-s)}.team-checkbox{display:flex;align-items:center;gap:var(--spacing-12);padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-s);cursor:pointer;transition:background .2s ease}.team-checkbox:hover{background:var(--background-surface-secondary)}.team-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.team-checkbox span{font-size:15px;color:var(--typography-primary);line-height:24px}.projects-page{width:100%;padding:var(--spacing-40)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-20)}.project-card{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:var(--spacing-20);cursor:pointer;transition:all .2s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a;border-color:#667eea}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-16);gap:var(--spacing-12)}.project-header-left{display:flex;align-items:center;gap:var(--spacing-12);flex:1;min-width:0}.project-logo{width:48px;height:48px;border-radius:var(--radius-s);overflow:hidden;flex-shrink:0;background:#fff;border:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center}.project-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.project-card-header h3{font-size:18px;font-weight:500;color:var(--typography-primary);margin:0;line-height:24px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-body{display:flex;flex-direction:column;gap:var(--spacing-12)}.project-slug{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-12);background:var(--bg-hover);border-radius:var(--radius-s)}.project-slug svg{color:var(--typography-secondary);flex-shrink:0}.project-slug code{font-size:13px;color:var(--typography-secondary);font-family:Monaco,Courier New,monospace}.project-stats{display:flex;flex-direction:column;gap:var(--spacing-8)}.client-sidebar{width:var(--sidebar-width-expanded);background:var(--background-surface-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh}.sidebar-header{padding:var(--spacing-20) var(--spacing-24);border-bottom:1px solid var(--border-primary);min-height:68px;display:flex;align-items:center}.sidebar-logo .logo-text{font-weight:600;font-size:20px;color:var(--typography-primary)}.sidebar-nav{flex:1;padding:var(--spacing-16) 0;overflow-y:auto}.nav-section-label{padding:0 var(--spacing-16) var(--spacing-8);font-size:15px;color:var(--typography-tertiary);text-transform:capitalize}.nav-item{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);margin:0 var(--spacing-16);color:var(--typography-secondary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;height:40px}.nav-item:hover{background:var(--bg-hover);color:var(--typography-primary)}.nav-item.active{background:#667eea1a;border:1px solid rgba(102,126,234,.3);color:#667eea}.nav-item svg{flex-shrink:0;width:20px;height:20px}.nav-text{font-size:15px;font-weight:500;line-height:24px}.sidebar-bottom{border-top:1px solid var(--border-primary);padding:var(--spacing-16);overflow:visible}.sidebar-user{display:flex;align-items:center;gap:var(--spacing-12);position:relative;padding-right:var(--spacing-4)}.user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}.user-info{flex:1;min-width:0;overflow:hidden}.user-name{font-size:15px;font-weight:500;color:var(--typography-primary);line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:12px;color:var(--typography-secondary);line-height:20px}.user-menu-container{position:relative;margin-left:auto;flex-shrink:0}.user-menu-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--typography-secondary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;padding:0}.user-menu-button:hover{background:var(--bg-hover);color:var(--typography-primary)}.user-dropdown-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-m);box-shadow:0 4px 12px #00000026;min-width:180px;padding:var(--spacing-4);z-index:1000}.dropdown-menu-item{display:flex;align-items:center;gap:var(--spacing-8);width:100%;padding:var(--spacing-8) var(--spacing-12);background:transparent;border:none;color:var(--typography-secondary);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;text-align:left}.dropdown-menu-item:hover{background:var(--bg-hover);color:var(--typography-primary)}.dropdown-menu-item svg{flex-shrink:0}.project-submenu{margin:var(--spacing-8) 0;padding-left:var(--spacing-12)}.project-submenu-header{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);margin:0 var(--spacing-16) var(--spacing-4) var(--spacing-16);color:var(--typography-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;background:var(--background-chip-active);border:1px solid var(--border-primary)}.project-submenu-header:hover{background:var(--bg-hover)}.project-submenu-header svg{flex-shrink:0;width:16px;height:16px}.project-submenu-logo{width:24px;height:24px;border-radius:4px;overflow:hidden;flex-shrink:0;background:#fff;border:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center}.project-submenu-logo img{width:100%;height:100%;object-fit:contain;padding:2px}.project-name{font-size:14px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.submenu-item{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-6) var(--spacing-16);margin:0 var(--spacing-16) var(--spacing-2) var(--spacing-16);color:var(--typography-secondary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;height:36px;padding-left:calc(var(--spacing-16) + 12px)}.submenu-item:hover{background:var(--bg-hover);color:var(--typography-primary)}.submenu-item.active{background:#667eea1a;border:1px solid rgba(102,126,234,.3);color:#667eea}.submenu-item svg{flex-shrink:0;width:18px;height:18px}.submenu-text{font-size:14px;font-weight:500;line-height:20px}.client-layout{display:flex;min-height:100vh;background:var(--bg-main)}.client-main-content{margin-left:var(--sidebar-width-expanded);flex:1}.session-list-container{padding:0;max-width:100%;margin:0}.session-list-container h1{margin-bottom:2rem;color:var(--text-primary);font-size:28px;font-weight:700}.table-card{background:var(--background-surface-secondary, #ffffff);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-card)}.session-table{width:100%;border-collapse:collapse}.session-table thead{background:#f9fafb}.session-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.025em;color:#6b7280}.session-table th:first-child{padding-left:1.5rem}.session-table th:last-child{padding-right:1.5rem}.session-table td{padding:1rem;border-top:1px solid #e5e7eb;color:#111827;font-size:14px}.session-table td:first-child{padding-left:1.5rem}.session-table td:last-child{padding-right:1.5rem}.session-table tbody tr:last-child td{border-bottom:none}.session-row{cursor:pointer;transition:all .2s ease;position:relative}.session-row:hover{background:#f9fafb}.session-row.selected{box-shadow:inset 4px 0 #7c3aed}.session-id{font-family:Courier New,monospace;color:var(--typography-accent, #2997c1);font-size:13px;font-weight:500;white-space:nowrap;width:1%}.session-id-copy{display:inline-flex;opacity:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:4px;color:var(--typography-secondary, rgba(31, 31, 33, .74));cursor:pointer;padding:2px;margin-left:6px;vertical-align:middle;line-height:1;transition:opacity .15s ease}.session-id-copy:hover{background:var(--bg-hover, #f7fafc);color:var(--typography-primary, #1f1f21);border-color:var(--typography-secondary, rgba(31, 31, 33, .74))}.session-row:hover .session-id-copy{opacity:1}.loading,.error,.empty{text-align:center;padding:4rem 2rem;font-size:16px;color:var(--typography-secondary, rgba(31, 31, 33, .74))}.error{color:var(--error, #ee5d50)}.thumbnail-cell{width:72px}.session-thumbnail{width:64px;height:40px;object-fit:cover;border-radius:4px;display:block}.session-thumbnail-placeholder{width:64px;height:40px;border-radius:4px;background:#f3f4f6;border:1px dashed #d1d5db}.user-id-cell{max-width:180px}.platform-cell{font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duration-cell{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.tags-cell{max-width:240px}.tag-chips{display:flex;flex-wrap:wrap;gap:4px}.tag-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:500;line-height:1.4;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-chip-clickable{cursor:pointer;transition:background .15s ease,transform .15s ease}.tag-chip-clickable:hover{background:#c7d2fe;transform:translateY(-1px)}.tag-chip-key{font-weight:600}.tag-chip-sep{margin:0 2px;opacity:.6}.tag-chip-value{font-weight:500}.muted{color:#9ca3af}.session-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem}.session-pagination button{padding:.5rem 1rem;font-size:14px;font-weight:500;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;transition:all .15s}.session-pagination button:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.session-pagination button:disabled{opacity:.5;cursor:not-allowed}.session-pagination span{font-size:14px;color:#6b7280}@media (max-width: 768px){.session-list-container{padding:1rem}.session-table{font-size:13px}.session-table th,.session-table td{padding:1rem .75rem}.session-list-container h1{font-size:22px;margin-bottom:1.5rem}}.panel-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:200;opacity:0;animation:fadeIn .3s ease forwards}@keyframes fadeIn{to{opacity:1}}.session-panel{position:fixed;top:0;right:0;width:400px;height:100vh;background:var(--background-surface-secondary, #ffffff);box-shadow:var(--shadow-panel);z-index:201;transform:translate(100%);transition:transform var(--transition-speed) var(--transition-ease);display:flex;flex-direction:column;overflow:hidden}.session-panel.open{transform:translate(0)}.panel-header{height:68px;padding:0 var(--spacing-24, 24px);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.panel-header h2{margin:0;font-size:20px;font-weight:700;color:var(--typography-primary, #1f1f21)}.panel-header-actions{display:flex;align-items:center;gap:8px}.open-details-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;color:var(--typography-primary, #1f1f21);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.open-details-button:hover{background:var(--bg-hover, #f7fafc);border-color:var(--typography-secondary, rgba(31, 31, 33, .74))}.close-button{background:transparent;border:none;color:var(--typography-secondary, rgba(31, 31, 33, .74));cursor:pointer;padding:8px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button:hover{background:var(--bg-hover, #f7fafc);color:var(--typography-primary, #1f1f21)}.panel-content{flex:1;overflow-y:auto;padding:1.5rem}.panel-section{margin-bottom:2rem}.panel-section:last-child{margin-bottom:0}.panel-section h3{margin:0 0 1rem;font-size:14px;font-weight:600;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-transform:uppercase;letter-spacing:.05em}.info-grid{display:flex;flex-direction:column;gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{font-size:12px;font-weight:500;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.info-value{font-size:14px;color:var(--typography-primary, #1f1f21);font-weight:500}.info-value.session-id{font-family:Courier New,monospace;color:var(--typography-accent, #2997c1);word-break:break-all}.copy-button{flex-shrink:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:4px;color:var(--typography-secondary, rgba(31, 31, 33, .74));cursor:pointer;padding:3px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;margin-top:1px}.copy-button:hover{background:var(--bg-hover, #f7fafc);color:var(--typography-primary, #1f1f21);border-color:var(--typography-secondary, rgba(31, 31, 33, .74))}.panel-footer{padding:1.5rem;border-top:1px solid var(--border-color);flex-shrink:0}.render-button{width:100%;padding:1rem;background:#7c3aed;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease;box-shadow:0 4px 12px #7c3aed40}.render-button:hover{background:#6d28d9;transform:translateY(-1px);box-shadow:0 6px 16px #7c3aed59}.render-button:active{transform:translateY(0)}.render-button:disabled{background:var(--typography-tertiary, rgba(31, 31, 33, .56));cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.build-select-wrapper{display:flex;flex-direction:column;gap:.375rem;position:relative}.build-select-trigger{width:100%;padding:.5rem 2rem .5rem .75rem;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--typography-primary, #1f1f21);background:var(--background-surface-secondary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;cursor:pointer;text-align:left;position:relative;transition:border-color .15s ease;display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.build-select-trigger:hover{border-color:var(--typography-secondary, rgba(31, 31, 33, .74))}.build-select-chevron{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #6b7280;flex-shrink:0}.build-select-menu{position:absolute;bottom:calc(100% + 4px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:var(--background-surface-secondary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:10;max-height:200px;overflow-y:auto}.build-select-item{padding:.5rem .75rem;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--typography-primary, #1f1f21);cursor:pointer;display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;transition:background .1s ease}.build-select-item:hover{background:var(--bg-hover, #f7fafc)}.build-select-item.selected{background:#7c3aed14}.build-matched-tag{font-size:11px;font-weight:700;color:#16a34a;flex-shrink:0}.no-builds-notice{width:100%;padding:.75rem 1rem;text-align:center;font-size:14px;color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:10px}.render-options{display:flex;flex-direction:column;gap:.75rem}.render-options-label{font-size:13px;font-weight:600;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-transform:uppercase;letter-spacing:.05em}.render-options-group{display:flex;flex-direction:row;gap:2px}.render-button-secondary{background:var(--background-surface-secondary, #f3f4f6);color:var(--typography-tertiary, rgba(31, 31, 33, .56));box-shadow:none;border:1px solid var(--border-color, #e5e7eb)}.render-button-secondary:hover{background:var(--background-surface-secondary, #4f4f4f);transform:none;box-shadow:none}.render-button-coming-soon{font-size:11px;font-weight:500;background:var(--border-color, #e5e7eb);color:var(--typography-secondary, rgba(31, 31, 33, .74));padding:2px 8px;border-radius:10px;margin-left:auto}.render-unsupported-notice{width:100%;padding:.75rem 1rem;text-align:center;font-size:14px;color:#6b7280;background:#f3f4f6;border-radius:10px}.panel-muted{color:#9ca3af}.panel-tags{display:flex;flex-direction:column;gap:.5rem}.panel-tag-item{display:flex;align-items:baseline;gap:.5rem;font-size:13px}.panel-tag-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;color:#4338ca;flex-shrink:0}.panel-tag-key:after{content:":";color:#9ca3af;margin-left:1px}.panel-tag-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#111827;word-break:break-all}.render-progress-section{display:flex;flex-direction:column;gap:8px}.render-progress-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--typography-primary, #1f1f21)}.render-progress-pct{margin-left:auto;font-variant-numeric:tabular-nums;color:#7c3aed}.render-progress-track{width:100%;height:8px;background:var(--border-color, #e5e7eb);border-radius:4px;overflow:hidden}.render-progress-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:4px;transition:width .5s ease}.render-progress-eta{font-size:12px;color:var(--typography-secondary, rgba(31, 31, 33, .74))}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.panel-content::-webkit-scrollbar-thumb:hover{background:var(--typography-secondary, rgba(31, 31, 33, .74))}@media (max-width: 768px){.session-panel{width:100%}}.project-detail-page{width:100%}.back-button{display:inline-flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:var(--typography-secondary);background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;margin-bottom:var(--spacing-24)}.back-button:hover{background:var(--bg-hover);color:var(--typography-primary)}.project-info-section,.teams-section,.api-keys-section{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-2xl);padding:var(--spacing-32);margin-bottom:var(--spacing-24)}.teams-list{display:flex;flex-direction:column;gap:var(--spacing-12)}.team-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-12) var(--spacing-16);background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-s)}.team-name{font-size:15px;color:var(--typography-primary);font-weight:500}.api-keys-table-container{overflow-x:auto}.api-keys-table thead{background:var(--bg-hover);border-bottom:1px solid var(--border-primary)}.api-keys-table th{padding:var(--spacing-12) var(--spacing-16);text-align:left;font-size:13px;font-weight:500;color:var(--typography-secondary);text-transform:uppercase;letter-spacing:.5px;line-height:20px}.api-keys-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .2s ease}.api-keys-table tbody tr:last-child{border-bottom:none}.api-keys-table tbody tr:hover{background:var(--bg-hover)}.api-keys-table td{padding:var(--spacing-12) var(--spacing-16);font-size:15px;color:var(--typography-primary);line-height:24px}.api-keys-table td code{font-family:Monaco,Courier New,monospace;font-size:13px;background:var(--bg-hover);padding:4px 8px;border-radius:var(--radius-s)}.api-key-cell{display:flex;align-items:center;gap:var(--spacing-8)}.api-key-cell code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-key-button{display:flex;align-items:center;justify-content:center;padding:6px;background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;flex-shrink:0}.copy-key-button:hover{background:var(--typography-accent);border-color:var(--typography-accent)}.copy-key-button:hover svg{color:#fff}.copy-key-button svg{width:16px;height:16px;color:var(--typography-secondary);transition:color .2s ease}.status-badge.status-revoked,.status-badge.status-archived{background:#9797971a;color:var(--typography-tertiary)}.action-button.revoke{color:var(--charts-context-negative);border-color:var(--charts-context-negative)}.action-button.revoke:hover{background:#fd44381a}.modal-content.modal-small{max-width:420px}.form-group input{padding:var(--spacing-10) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-s);line-height:24px;transition:all .2s ease}.form-group input::placeholder{color:var(--typography-tertiary)}.form-group input:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #2997c11a}.teams-page{width:100%;padding:var(--spacing-40)}.content-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-24);gap:var(--spacing-16)}.filter-group{display:flex;gap:var(--spacing-12);flex:1}.filter-select{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);line-height:24px;transition:all .2s ease;min-width:150px}.filter-select:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #2997c11a}.error-message{padding:var(--spacing-16);background:#fd44381a;color:var(--charts-context-negative);border-radius:var(--radius-s);margin-bottom:var(--spacing-24);text-align:center}.loading-container{text-align:center;padding:var(--spacing-40);color:var(--typography-secondary)}.empty-state{text-align:center;padding:var(--spacing-40);color:var(--typography-secondary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-l)}.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-20)}.team-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-16);gap:var(--spacing-12)}.team-card-header h3{font-size:18px;font-weight:500;color:var(--typography-primary);margin:0;line-height:24px;flex:1}.team-card-body{display:flex;flex-direction:column;gap:var(--spacing-12)}.team-slug{display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-12);background:var(--bg-hover);border-radius:var(--radius-s)}.team-slug svg{color:var(--typography-secondary);flex-shrink:0}.team-slug code{font-size:13px;color:var(--typography-secondary);font-family:Monaco,Courier New,monospace}.team-stats{display:flex;flex-direction:column;gap:var(--spacing-8)}.stat-item{display:flex;align-items:center;gap:var(--spacing-8);font-size:14px;color:var(--typography-secondary)}.stat-item svg{flex-shrink:0;color:var(--typography-tertiary)}.status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-s);font-size:13px;font-weight:500;text-transform:capitalize;white-space:nowrap}.status-badge.status-archived{background:#9797971a;color:var(--typography-tertiary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-24)}.modal-content{background:var(--background-surface-secondary);border-radius:var(--radius-2xl);width:100%;max-width:480px;box-shadow:var(--shadow-card)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-24);border-bottom:1px solid var(--border-primary)}.modal-header h2{font-size:24px;font-weight:500;color:var(--typography-primary);margin:0;line-height:32px}.modal-close{width:32px;height:32px;border:none;background:transparent;color:var(--typography-secondary);font-size:32px;line-height:1;cursor:pointer;border-radius:var(--radius-s);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg-hover);color:var(--typography-primary)}.modal-content form{padding:var(--spacing-24);display:flex;flex-direction:column;gap:var(--spacing-20)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-8)}.form-group label{font-size:14px;font-weight:500;color:var(--typography-primary);line-height:20px}.form-group select,.form-group input{padding:var(--spacing-10) var(--spacing-16);font-size:15px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-s);line-height:24px;transition:all .2s ease}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--typography-accent);box-shadow:0 0 0 3px #2997c11a}.form-group small{font-size:13px;color:var(--typography-tertiary);line-height:20px}.empty-message{text-align:center;color:var(--typography-tertiary);font-size:14px;padding:var(--spacing-16)}.error-message{padding:var(--spacing-12) var(--spacing-16);background:#fd44381a;color:var(--charts-context-negative);border-radius:var(--radius-s);font-size:14px;line-height:20px}.modal-actions{display:flex;gap:var(--spacing-12);justify-content:flex-end;margin-top:var(--spacing-8)}.button-secondary,.button-primary{padding:var(--spacing-10) var(--spacing-20);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;border:1px solid var(--border-primary);line-height:24px}.button-secondary{background:var(--background-surface-secondary);color:var(--typography-primary)}.button-secondary:hover:not(:disabled){background:var(--bg-hover)}.button-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.button-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.button-primary:disabled,.button-secondary:disabled{opacity:.6;cursor:not-allowed}.team-detail-page{width:100%}.content-header{margin-bottom:var(--spacing-40)}.content-header h1{font-size:32px;font-weight:500;color:var(--typography-primary);margin:0 0 var(--spacing-8);line-height:36px}.content-header p{font-size:15px;color:var(--typography-secondary);margin:0;line-height:24px}.loading-container{padding:var(--spacing-40);text-align:center;color:var(--typography-secondary);font-size:15px}.error-container{padding:var(--spacing-16);background:#fd44381a;color:var(--charts-context-negative);border-radius:var(--radius-s);margin:var(--spacing-24) 0;text-align:center}.team-info-section,.members-section{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-2xl);padding:var(--spacing-32);margin-bottom:var(--spacing-24)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-24)}.section-header h2{font-size:20px;font-weight:500;color:var(--typography-primary);margin:0;line-height:28px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-24);margin-bottom:var(--spacing-32)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-8)}.info-item label{font-size:13px;font-weight:500;color:var(--typography-tertiary);text-transform:uppercase;letter-spacing:.5px}.info-item .info-value{font-size:15px;color:var(--typography-primary);line-height:24px}.info-item code{font-family:Monaco,Courier New,monospace;background:var(--bg-hover);padding:4px 8px;border-radius:var(--radius-s)}.stats-section{padding-top:var(--spacing-24);border-top:1px solid var(--border-primary)}.stats-section h3{font-size:16px;font-weight:500;color:var(--typography-primary);margin:0 0 var(--spacing-16);line-height:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-16)}.stat-card{background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:var(--radius-l);padding:var(--spacing-16)}.stat-label{font-size:13px;font-weight:500;color:var(--typography-secondary);margin-bottom:var(--spacing-8);line-height:20px}.stat-value{font-size:28px;font-weight:500;color:var(--typography-primary);line-height:32px}.empty-state{padding:var(--spacing-40);text-align:center;color:var(--typography-secondary);font-size:15px}.members-table-container{overflow-x:auto}.members-table{width:100%;border-collapse:collapse}.members-table thead{background:var(--bg-hover);border-bottom:1px solid var(--border-primary)}.members-table th{padding:var(--spacing-12) var(--spacing-16);text-align:left;font-size:13px;font-weight:500;color:var(--typography-secondary);text-transform:uppercase;letter-spacing:.5px;line-height:20px}.members-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .2s ease}.members-table tbody tr:last-child{border-bottom:none}.members-table tbody tr:hover{background:var(--bg-hover)}.members-table td{padding:var(--spacing-12) var(--spacing-16);font-size:15px;color:var(--typography-primary);line-height:24px}.user-email{display:flex;align-items:center;gap:var(--spacing-12)}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.role-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-s);font-size:13px;font-weight:500;background:#667eea1a;color:#667eea}.status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-s);font-size:13px;font-weight:500;text-transform:capitalize}.status-badge.status-active{background:#42c2981a;color:var(--success)}.status-badge.status-suspended{background:#ff98001a;color:var(--warning)}.cell-date{color:var(--typography-secondary);font-size:14px}.action-button{padding:6px 12px;font-size:13px;font-weight:500;font-family:DM Sans,sans-serif;border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;background:var(--background-surface-secondary)}.action-button.remove{color:var(--charts-context-negative);border-color:var(--charts-context-negative)}.action-button.remove:hover{background:#fd44381a}.project-layout{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.project-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.project-loading p{color:#6b7280;font-size:14px}.project-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;text-align:center;padding:2rem}.error-icon{font-size:64px;margin-bottom:1rem}.project-error h2{font-size:24px;font-weight:600;color:#111827;margin:0}.project-error p{font-size:14px;color:#6b7280;max-width:400px;margin:.5rem 0 1.5rem}.project-header{flex-shrink:0;padding:var(--spacing-20) var(--spacing-24);border-bottom:1px solid #e5e7eb;background:#fff;min-height:68px;display:flex;align-items:center}.project-content{flex:1;overflow-y:auto;padding:2rem;background:#f9fafb}.back-button{padding:.625rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s}.back-button:hover{background:#2563eb}.project-overview{max-width:1200px}.overview-header{margin-bottom:2rem}.header-content{display:flex;align-items:center;gap:1.5rem}.header-logo{width:64px;height:64px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#fff;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center}.header-logo img{width:100%;height:100%;object-fit:contain;padding:8px}.header-text{flex:1}.overview-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.overview-header p{font-size:14px;color:#6b7280;margin:0}.info-section,.stats-section,.teams-preview,.sessions-preview,.quick-links{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #e5e7eb}.info-section h2,.stats-section h2,.teams-preview h2,.sessions-preview h2,.quick-links h2{font-size:18px;font-weight:600;color:#111827;margin:0 0 1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.info-item label{display:block;font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.info-value{font-size:14px;color:#111827;font-weight:500}.info-value code{background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;font-size:13px;font-family:Monaco,Menlo,monospace}.store-rows{display:flex;flex-direction:row;gap:1.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.store-row{display:flex;align-items:center;gap:1rem}.store-button{display:flex;align-items:center;gap:.5rem;padding:var(--spacing-8) var(--spacing-16);border:none;border-radius:var(--radius-s);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;cursor:pointer;transition:all .2s ease;min-width:140px;white-space:nowrap}.store-button-ios{background:linear-gradient(135deg,#60a5fa,#2563eb)}.store-button-ios:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2563eb66}.store-button-android{background:linear-gradient(135deg,#34d399,#059669)}.store-button-android:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #05966966}.store-button:disabled{background:linear-gradient(135deg,#d1d5db,#9ca3af);cursor:not-allowed;transform:none;box-shadow:none}.build-version{font-size:14px;font-weight:500;color:#111827}.not-configured{color:#9ca3af;font-style:italic;font-weight:400}.store-hint{font-size:13px;color:#3b82f6;cursor:pointer;font-style:italic}.store-hint:hover{color:#2563eb;text-decoration:underline}.version-code{color:#6b7280;font-size:13px;font-weight:400}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.stat-icon{font-size:32px;line-height:1}.stat-content{flex:1}.stat-label{font-size:13px;color:#6b7280;margin-bottom:.25rem}.stat-value{font-size:24px;font-weight:700;color:#111827}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.view-all-link{background:none;border:none;color:#3b82f6;font-size:14px;font-weight:500;cursor:pointer;padding:0;transition:color .15s}.view-all-link:hover{color:#2563eb}.teams-list{display:flex;flex-direction:column;gap:.75rem}.team-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.team-name{font-size:14px;font-weight:500;color:#111827}.sessions-list{display:flex;flex-direction:column;gap:.75rem}.session-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb;cursor:pointer;transition:all .15s}.session-item:hover{background:#fff;border-color:#3b82f6}.session-info{display:flex;flex-direction:column;gap:.25rem}.session-id{font-size:14px;font-weight:500;color:#111827}.session-date,.session-meta{font-size:12px;color:#6b7280}.session-duration{padding:.25rem .5rem;background:#f3f4f6;border-radius:4px}.loading-container,.empty-state{padding:2rem;text-align:center;color:#6b7280;font-size:14px}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.link-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s;text-align:left}.link-card:hover{background:#fff;border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a}.link-icon{font-size:28px;line-height:1}.link-content{flex:1}.link-title{font-size:14px;font-weight:600;color:#111827;margin-bottom:.25rem}.link-description{font-size:13px;color:#6b7280}.search-bar-container{position:relative;width:100%}.search-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;min-height:42px;padding:.375rem .625rem .375rem 2.25rem;border:1px solid #d1d5db;border-radius:8px;background:#fafafa;cursor:text;transition:border-color .15s,box-shadow .15s,background .15s;position:relative}.search-bar:hover{background:#fff;border-color:#c4c9d0}.search-bar-focused,.search-bar-focused:hover{background:#fff;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1f}.search-bar-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af;display:flex;align-items:center;pointer-events:none}.search-bar-chip{display:inline-flex;align-items:center;gap:.2rem;max-width:280px;padding:.2rem .375rem .2rem .55rem;background:#eef2ff;border:1px solid #c7d2fe;border-radius:5px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#3730a3;white-space:nowrap;flex-shrink:0}.search-bar-chip-label{overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-radius:3px;padding:0 .125rem;transition:background .12s}.search-bar-chip-label:hover{background:#6366f11f}.search-bar-chip-editing{border-color:#7c3aed;background:#ede9fe;box-shadow:0 0 0 2px #7c3aed2e}.search-bar-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;padding:0;background:transparent;border:none;border-radius:3px;color:#6366f1;cursor:pointer;transition:background .12s,color .12s}.search-bar-chip-remove:hover{background:#6366f12e;color:#4f46e5}.search-bar-step-label{font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#7c3aed;font-weight:600;flex-shrink:0;-webkit-user-select:none;user-select:none}.search-bar-input{flex:1 1 80px;min-width:80px;border:none;outline:none;background:transparent;font-size:13px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;color:#111827;padding:.125rem 0}.search-bar-input::placeholder{color:#9ca3af;font-family:ui-sans-serif,system-ui,sans-serif;font-size:13px}.search-bar-dropdown{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;margin:0;padding:.25rem 0;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001a,0 1px 3px #0000000f}.search-bar-dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .875rem;cursor:pointer;transition:background .08s}.search-bar-dropdown-item.highlighted{background:#f3f4ff}.search-bar-dropdown-key{font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#111827;font-weight:500}.search-bar-dropdown-op{font-size:13px;font-weight:600;color:#111827}.search-bar-dropdown-desc{font-size:12px;color:#6b7280}.time-range-filter{position:relative;display:inline-block}.time-range-trigger{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:.375rem .75rem;background:#fafafa;border:1px solid #d1d5db;border-radius:8px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;white-space:nowrap;box-sizing:border-box}.time-range-trigger:hover{border-color:#c4c9d0;background:#fff}.time-range-trigger-open{background:#fff;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1f}.time-range-label{max-width:280px;overflow:hidden;text-overflow:ellipsis}.time-range-arrow{color:#9ca3af;transition:transform .15s}.time-range-arrow-open{transform:rotate(180deg)}.time-range-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:100;min-width:280px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 4px 16px #0000001a;padding:.5rem}.time-range-dropdown-up{top:auto;bottom:calc(100% + 4px)}.time-range-presets{display:flex;flex-direction:column;gap:2px}.time-range-preset{padding:.5rem .75rem;background:none;border:none;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;text-align:left;transition:background .1s}.time-range-preset:hover{background:#f3f4f6}.time-range-preset-active{background:#eef2ff;color:#4338ca}.time-range-preset-active:hover{background:#e0e7ff}.time-range-divider{height:1px;background:#e5e7eb;margin:.375rem 0}.time-range-section{padding:.375rem .25rem}.time-range-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#6b7280;margin-bottom:.375rem;padding:0 .5rem}.time-range-inputs{display:flex;flex-direction:column;gap:.375rem}.time-range-field{display:flex;flex-direction:column;gap:2px}.time-range-field>span{font-size:11px;font-weight:500;color:#6b7280;padding-left:2px}.time-range-to-header{display:flex;align-items:center;justify-content:space-between}.time-range-to-header>span{font-size:11px;font-weight:500;color:#6b7280;padding-left:2px}.time-range-now-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none}.time-range-now-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#7c3aed;cursor:pointer;margin:0}.time-range-input{padding:.375rem .5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#374151;background:#fff;width:100%;box-sizing:border-box}.time-range-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.time-range-apply{padding:.375rem .75rem;background:#7c3aed;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;align-self:flex-end}.time-range-apply:hover:not(:disabled){background:#6d28d9}.time-range-apply:disabled{opacity:.5;cursor:not-allowed}.project-sessions{max-width:1400px}.sessions-header{margin-bottom:2rem}.sessions-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.sessions-header p{font-size:14px;color:#6b7280;margin:0}.sessions-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.sessions-loading p{color:#6b7280;font-size:14px}.sessions-error{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.sessions-error p{color:#ef4444;font-size:14px;margin:0}.sessions-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;text-align:center;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.sessions-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.sessions-empty p{font-size:14px;color:#6b7280;margin:.5rem 0 0}.sessions-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.sessions-filters{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem}.sessions-filters-row{display:flex;align-items:flex-start;gap:.75rem}.sessions-filters-row .search-bar-container{flex:1;min-width:0}.filter-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.filter-reset-btn{padding:.375rem .75rem;background:transparent;color:#6b7280;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.filter-reset-btn:hover{color:#111827;background:#f9fafb}.session-timeline{background:var(--background-surface-secondary, #ffffff);border-radius:var(--radius-l, 16px);box-shadow:var(--shadow-card);overflow:hidden}.timeline-toolbar{display:flex;align-items:center;gap:var(--spacing-12, 12px);padding:var(--spacing-16, 16px) var(--spacing-24, 24px);border-bottom:1px solid var(--border-color, #e9edf7)}.timeline-toolbar-title{font-size:16px;font-weight:700;color:var(--typography-primary, #1f1f21)}.timeline-toolbar-count{font-size:13px;color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.timeline-zoom-controls{margin-left:auto;display:flex;gap:4px}.timeline-zoom-button{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color, #e9edf7);border-radius:var(--radius-xs, 6px);color:var(--typography-secondary, rgba(31, 31, 33, .74));cursor:pointer;transition:all .15s ease}.timeline-zoom-button:hover:not(:disabled){background:var(--bg-hover, #f7fafc);color:var(--typography-primary, #1f1f21)}.timeline-zoom-button:disabled{opacity:.4;cursor:not-allowed}.timeline-body{display:flex}.timeline-labels-col{flex-shrink:0;width:160px;border-right:1px solid var(--border-color, #e9edf7)}.timeline-axis-spacer{height:32px;border-bottom:1px solid var(--border-color, #e9edf7)}.timeline-lane-label{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:4px;padding:8px var(--spacing-16, 16px);border-bottom:1px solid var(--border-light, #f4f7fe)}.timeline-lane-label:last-child{border-bottom:none}.lane-label-top-row{display:flex;align-items:center;gap:8px;width:100%}.lane-label-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lane-label-text{font-size:13px;font-weight:600;color:var(--typography-primary, #1f1f21)}.lane-label-count{margin-left:auto;font-size:12px;color:var(--typography-tertiary, rgba(31, 31, 33, .56));font-variant-numeric:tabular-nums}.lane-label-filter-trigger{display:flex;align-items:center;gap:8px;padding:0;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-xs, 6px);transition:background .12s ease}.lane-label-filter-trigger:hover{background:var(--bg-hover, #f7fafc)}.lane-label-filter-trigger.active .lane-label-text{color:var(--typography-accent, #2997c1)}.lane-label-filter-chevron{flex-shrink:0;color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.lane-filter-chip-list{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%}.lane-filter-chip{display:flex;align-items:center;gap:2px;width:100%;padding:2px 2px 2px 8px;background:#2997c11f;border-radius:999px;font-size:11px;font-weight:600;color:var(--typography-accent, #2997c1)}.lane-filter-chip-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-filter-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;padding:0;background:transparent;border:none;border-radius:50%;color:var(--typography-accent, #2997c1);cursor:pointer;transition:background .12s ease}.lane-filter-chip-remove:hover{background:#2997c138}.lane-filter-dropdown{position:absolute;z-index:10;top:calc(100% - 8px);left:var(--spacing-16, 16px);min-width:160px;max-height:220px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--background-surface-secondary, #ffffff);border:1px solid var(--border-color, #e9edf7);border-radius:var(--radius-xs, 8px);box-shadow:0 4px 16px #0000001a,0 1px 3px #0000000f}.lane-filter-dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:13px;color:var(--typography-primary, #1f1f21);border-radius:var(--radius-xs, 6px);cursor:pointer;white-space:nowrap;transition:background .08s ease}.lane-filter-dropdown-item:hover{background:var(--bg-hover, #f7fafc)}.lane-filter-dropdown-item.selected{color:var(--typography-accent, #2997c1);font-weight:600}.lane-filter-dropdown-checkbox{flex-shrink:0;width:14px;height:14px;border:1.5px solid var(--border-color, #e9edf7);border-radius:3px;background:var(--background-surface-secondary, #ffffff);position:relative;transition:background .1s ease,border-color .1s ease}.lane-filter-dropdown-checkbox.checked{background:var(--typography-accent, #2997c1);border-color:var(--typography-accent, #2997c1)}.lane-filter-dropdown-checkbox.checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg)}.timeline-scroll{flex:1;overflow-x:auto;overflow-y:hidden}.timeline-scroll::-webkit-scrollbar{height:8px}.timeline-scroll::-webkit-scrollbar-track{background:transparent}.timeline-scroll::-webkit-scrollbar-thumb{background:var(--border-color, #e9edf7);border-radius:4px}.timeline-scroll::-webkit-scrollbar-thumb:hover{background:var(--typography-tertiary, rgba(31, 31, 33, .56))}.timeline-track{position:relative;min-width:100%}.timeline-axis{position:relative;height:32px;border-bottom:1px solid var(--border-color, #e9edf7)}.timeline-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--border-color, #e9edf7)}.timeline-tick-label{position:absolute;top:50%;transform:translateY(-50%);left:6px;font-size:11px;color:var(--typography-tertiary, rgba(31, 31, 33, .56));font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-lane{position:relative;height:64px;border-bottom:1px solid var(--border-light, #f4f7fe)}.timeline-lane:last-child{border-bottom:none}.timeline-lane.filmstrip-lane{height:192px}.timeline-gridline{position:absolute;top:0;bottom:0;border-left:1px solid var(--border-light, #f4f7fe);pointer-events:none}.timeline-lane-empty{position:sticky;left:24px;top:50%;display:inline-block;margin-top:24px;font-size:12px;color:var(--typography-tertiary, rgba(31, 31, 33, .56));font-style:italic}.timeline-filmstrip{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;overflow:hidden;background:var(--bg-main, #f4f7fe)}.filmstrip-frame{flex:0 0 auto;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.filmstrip-placeholder-tile{flex:0 0 auto;width:120px;height:100%;background:linear-gradient(90deg,var(--border-light, #f4f7fe) 25%,var(--border-color, #e9edf7) 50%,var(--border-light, #f4f7fe) 75%);background-size:200% 100%;animation:filmstrip-shimmer 1.4s ease infinite}.filmstrip-placeholder-tile:nth-child(odd){animation-delay:.2s}@keyframes filmstrip-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.timeline-gridline-overlay{z-index:1;border-left-color:#ffffff59}.timeline-event-marker{position:absolute;top:8px;bottom:8px;width:10px;margin-left:-5px;padding:0;background:transparent;border:none;cursor:pointer;display:flex;justify-content:center}.timeline-event-line{width:2px;height:100%;border-radius:1px;transition:width .1s ease}.timeline-event-marker:hover .timeline-event-line{width:4px}.timeline-event-marker.selected .timeline-event-line{width:4px;box-shadow:0 0 0 3px #2997c140}.timeline-event-marker.dimmed{pointer-events:none;cursor:default}.timeline-event-marker.dimmed .timeline-event-line{opacity:.25}.lane-marker-ui.timeline-event-marker .timeline-event-line,.lane-label-dot.lane-marker-ui{background:var(--typography-accent, #2997c1)}.lane-marker-network.timeline-event-marker .timeline-event-line,.lane-label-dot.lane-marker-network{background:var(--success, #05cd99)}.lane-marker-logs.timeline-event-marker .timeline-event-line,.lane-label-dot.lane-marker-logs{background:var(--warning, #ffb547)}.lane-marker-error.timeline-event-marker .timeline-event-line{background:var(--error, #ee5d50)}.lane-marker-error.timeline-event-marker.selected .timeline-event-line{box-shadow:0 0 0 3px #ee5d5040}.lane-label-dot.lane-marker-video{background:#7c3aed}.lane-label-dot.lane-marker-profiler{background:var(--info, #4299e1)}.timeline-lane-label.chart-lane-label,.timeline-lane.chart-lane{height:120px}.profiler-chart-container{position:absolute;top:0;left:0}.session-details-page{display:flex;flex-direction:column;gap:var(--spacing-24, 24px)}.session-details-header{display:flex;flex-direction:column;gap:var(--spacing-12, 12px)}.back-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:14px;font-weight:500;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-decoration:none;transition:color .15s ease}.back-link:hover{color:var(--typography-primary, #1f1f21)}.session-details-title h1{margin:0 0 var(--spacing-12, 12px) 0;font-size:28px;font-weight:700;color:var(--typography-primary, #1f1f21)}.session-details-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-24, 24px) var(--spacing-40, 40px)}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-label{font-size:12px;font-weight:500;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:14px;font-weight:500;color:var(--typography-primary, #1f1f21)}.session-id-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--typography-accent, #2997c1);display:inline-flex;align-items:center;gap:6px}.session-details-header .copy-button{flex-shrink:0;background:transparent;border:1px solid var(--border-color, #e9edf7);border-radius:4px;color:var(--typography-secondary, rgba(31, 31, 33, .74));cursor:pointer;padding:3px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.session-details-header .copy-button:hover{background:var(--bg-hover, #f7fafc);color:var(--typography-primary, #1f1f21)}.session-details-loading,.session-details-error,.session-details-empty{background:var(--background-surface-secondary, #ffffff);border-radius:var(--radius-l, 16px);box-shadow:var(--shadow-card);padding:var(--spacing-40, 40px);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-12, 12px);text-align:center}.session-details-loading p{margin:0;font-size:15px;font-weight:500;color:var(--typography-primary, #1f1f21)}.loading-hint{font-size:13px;color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.session-details-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--border-color, #e9edf7);border-top-color:var(--typography-accent, #2997c1);border-radius:50%;animation:session-details-spin .8s linear infinite}@keyframes session-details-spin{to{transform:rotate(360deg)}}.session-details-error p{margin:0;color:var(--error, #ee5d50);font-size:14px;font-weight:500}.session-details-empty h3{margin:0;font-size:18px;font-weight:600;color:var(--typography-primary, #1f1f21)}.session-details-empty p{margin:0;font-size:14px;color:var(--typography-secondary, rgba(31, 31, 33, .74))}.event-detail-panel,.event-detail-placeholder{background:var(--background-surface-secondary, #ffffff);border-radius:var(--radius-l, 16px);box-shadow:var(--shadow-card);padding:var(--spacing-24, 24px)}.event-detail-placeholder{text-align:center;font-size:14px;color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.event-detail-header{display:flex;align-items:center;gap:var(--spacing-12, 12px);margin-bottom:var(--spacing-16, 16px);min-width:0}.event-detail-header h3{margin:0;font-size:16px;font-weight:600;color:var(--typography-primary, #1f1f21);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-kind-badge{flex-shrink:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:var(--radius-full, 360px)}.event-kind-ui{background:#2997c11f;color:var(--typography-accent, #2997c1)}.event-kind-network{background:#05cd991f;color:#059669}.event-kind-log,.event-kind-log-warning{background:#ffb54729;color:#b45309}.event-kind-log-error{background:#ee5d501f;color:var(--error, #ee5d50)}.event-kind-profiler{background:#4299e11f;color:var(--info, #4299e1)}.event-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--spacing-16, 16px)}.event-detail-item{display:flex;flex-direction:column;gap:4px;min-width:0}.event-detail-label{font-size:12px;font-weight:500;color:var(--typography-secondary, rgba(31, 31, 33, .74));text-transform:uppercase;letter-spacing:.05em}.event-detail-value{font-size:14px;font-weight:500;color:var(--typography-primary, #1f1f21);word-break:break-all}.event-detail-stacktrace{margin:var(--spacing-16, 16px) 0 0 0;padding:var(--spacing-16, 16px);background:var(--bg-main, #f4f7fe);border-radius:var(--radius-xs, 6px);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;color:var(--typography-secondary, rgba(31, 31, 33, .74));white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto}.network-top-bar{display:flex;flex-direction:column;gap:var(--spacing-12, 12px);margin-bottom:var(--spacing-16, 16px)}.network-top-bar-fields{display:flex;flex-wrap:wrap;gap:var(--spacing-16, 16px) var(--spacing-24, 24px)}.network-summary-item{display:flex;flex-direction:column;gap:4px;min-width:0}.network-url-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}.network-status-badge{display:inline-block;font-size:13px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:2px 10px;border-radius:var(--radius-full, 360px);width:fit-content}.network-status-badge.status-2xx{background:#0596691f;color:#059669}.network-status-badge.status-3xx{background:#d977061f;color:#d97706}.network-status-badge.status-4xx{background:#dc26261f;color:#dc2626}.network-status-badge.status-5xx{background:#7f1d1d24;color:#991b1b}.network-status-badge.status-none{background:var(--bg-main, #f4f7fe);color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.network-error-banner{display:flex;flex-direction:column;gap:4px;padding:var(--spacing-12, 12px) var(--spacing-16, 16px);background:#ee5d5014;border-left:3px solid var(--error, #ee5d50);border-radius:var(--radius-xs, 6px)}.network-error-text{font-size:13px;font-weight:500;color:var(--error, #ee5d50);word-break:break-word}.network-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-24, 24px)}@media (max-width: 720px){.network-split{grid-template-columns:1fr}}.network-split-column{display:flex;flex-direction:column;gap:var(--spacing-12, 12px);min-width:0}.network-column-title{margin:0;font-size:14px;font-weight:700;color:var(--typography-primary, #1f1f21);text-transform:uppercase;letter-spacing:.04em}.network-collapsible{border:1px solid var(--border-color, #e9edf7);border-radius:var(--radius-xs, 6px)}.network-collapsible-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:10px var(--spacing-12, 12px);background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--typography-primary, #1f1f21);text-align:left;transition:background .12s ease}.network-collapsible-toggle:hover{background:var(--bg-hover, #f7fafc)}.network-collapsible-toggle svg{flex-shrink:0;color:var(--typography-secondary, rgba(31, 31, 33, .74))}.network-collapsible-body{padding:0 var(--spacing-12, 12px) var(--spacing-12, 12px)}.network-empty-hint{font-size:13px;color:var(--typography-tertiary, rgba(31, 31, 33, .56));font-style:italic}.network-headers-table{width:100%;border-collapse:collapse;font-size:13px}.network-headers-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--typography-secondary, rgba(31, 31, 33, .74));padding:6px 10px;border-bottom:1px solid var(--border-color, #e9edf7)}.network-headers-table td{padding:5px 10px;border-bottom:1px solid var(--border-color-light, rgba(233, 237, 247, .5));vertical-align:top}.network-headers-table tr:last-child td{border-bottom:none}.network-header-key{font-weight:600;color:var(--typography-primary, #1f1f21);white-space:nowrap;width:1%}.network-header-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--typography-secondary, rgba(31, 31, 33, .74));word-break:break-all}.network-body-meta-section{display:flex;flex-direction:column;gap:4px}.network-body-meta-values{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.network-content-type{font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--typography-tertiary, rgba(31, 31, 33, .56))}.network-download-button{display:inline-flex;align-items:center;justify-content:center;padding:2px;color:var(--typography-secondary, rgba(31, 31, 33, .74));background:transparent;border:none;border-radius:3px;cursor:pointer;transition:color .15s ease}.network-download-button:hover{color:var(--typography-accent, #2997c1)}.network-body-loading{font-size:12px;color:var(--typography-tertiary, rgba(31, 31, 33, .56));font-style:italic}.network-body-preview{margin:0;padding:var(--spacing-12, 12px);background:var(--bg-main, #f4f7fe);border-radius:var(--radius-xs, 6px);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--typography-secondary, rgba(31, 31, 33, .74));white-space:pre-wrap;word-break:break-word;max-height:600px;overflow-y:auto}.network-body-error{font-size:12px;color:var(--error, #ee5d50)}.project-flows{max-width:1400px}.flows-header{margin-bottom:2rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.flows-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.flows-header p{font-size:14px;color:#6b7280;margin:0}.flows-primary-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s;white-space:nowrap}.flows-primary-btn:hover{background:#2563eb}.flows-primary-btn:disabled{background:#93c5fd;cursor:not-allowed}.saved-flows-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.saved-flow-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem 1.25rem;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:flex;flex-direction:column;gap:.75rem}.saved-flow-card:hover{border-color:#93c5fd;box-shadow:0 1px 3px #00000014}.saved-flow-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.saved-flow-card-header h3{font-size:16px;font-weight:600;color:#111827;margin:0;overflow-wrap:anywhere}.saved-flow-delete{background:transparent;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;border-radius:4px;display:inline-flex;transition:color .15s,background-color .15s;flex-shrink:0}.saved-flow-delete:hover{color:#ef4444;background:#fef2f2}.saved-flow-chips{display:flex;flex-wrap:wrap;gap:.375rem}.saved-flow-chip{font-size:12px;padding:.125rem .5rem;background:#f3f4f6;color:#374151;border-radius:999px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.saved-flow-chip-time{background:#eff6ff;color:#1d4ed8}.saved-flow-meta{display:flex;gap:.75rem;font-size:12px;color:#9ca3af;margin-top:auto}.flow-builder-header{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.25rem}.flow-back-btn{background:transparent;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;padding:.375rem;display:inline-flex;transition:all .15s;flex-shrink:0}.flow-back-btn:hover{color:#111827;background:#f9fafb}.flow-name-input{font-size:16px;font-weight:600;color:#111827;border:1px solid transparent;border-radius:6px;padding:.375rem .5rem;min-width:0;flex:0 1 320px;transition:border-color .15s}.flow-name-input:hover{border-color:#e5e7eb}.flow-name-input:focus{outline:none;border-color:#3b82f6}.flow-dirty-badge{font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;padding:.125rem .5rem;border-radius:999px;white-space:nowrap}.flow-builder-header-spacer{flex:1}.flow-save-error{font-size:13px;color:#ef4444}.flows-filters{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem}.flows-filters-row{display:flex;align-items:flex-start;gap:.75rem}.flows-filters-row .search-bar-container{flex:1;min-width:0}.flows-controls-row{align-items:center;gap:1rem;flex-wrap:wrap}.flows-control{display:flex;align-items:center;gap:.5rem;font-size:13px;color:#6b7280;font-weight:500}.flows-control select{padding:.375rem .5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#111827;background:#fff;cursor:pointer}.flows-control select:hover{border-color:#d1d5db}.flows-control select:focus{outline:none;border-color:#3b82f6}.flows-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.flows-loading p{color:#6b7280;font-size:14px;margin:0}.flows-loading-hint{color:#9ca3af;font-size:12px}.loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:flows-spin .8s linear infinite}@keyframes flows-spin{to{transform:rotate(360deg)}}.flows-error{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.flows-error p{color:#ef4444;font-size:14px;margin:0}.flows-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:.25rem;text-align:center;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.flows-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.flows-empty p{font-size:14px;color:#6b7280;margin:.5rem 0 0}.flows-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:1rem}.flows-meta{font-size:13px;color:#6b7280;padding:0 .25rem .75rem;border-bottom:1px solid #f3f4f6;margin-bottom:.75rem}.flows-chart{width:100%}.project-teams{max-width:1200px}.teams-header{margin-bottom:2rem}.teams-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.teams-header p{font-size:14px;color:#6b7280;margin:0}.teams-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;text-align:center;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.teams-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.teams-empty p{font-size:14px;color:#6b7280;margin:.5rem 0 0}.teams-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:1.5rem}.teams-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.team-card{background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:var(--spacing-20);cursor:pointer;transition:all .2s ease}.team-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a;border-color:#667eea}.team-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:1rem}.team-header h3{font-size:16px;font-weight:600;color:#111827;margin:0;flex:1}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize;flex-shrink:0}.status-archived{background:#f3f4f6;color:#6b7280}.team-description{font-size:14px;color:#6b7280;margin:0 0 .75rem;line-height:1.5}.team-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid #e5e7eb}.team-meta{font-size:12px;color:#9ca3af}.project-users{max-width:1200px}.users-header{margin-bottom:2rem}.users-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.users-header p{font-size:14px;color:#6b7280;margin:0}.users-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:1.5rem}.users-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;text-align:center}.users-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.users-empty p{font-size:14px;color:#6b7280;margin:.5rem 0 0}.project-api-keys{max-width:1400px}.api-keys-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.api-keys-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.api-keys-header p{font-size:14px;color:#6b7280;margin:0}.create-button{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;white-space:nowrap}.create-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.api-keys-loading,.api-keys-error,.api-keys-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb;text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.api-keys-loading p,.api-keys-error p,.api-keys-empty p{color:#6b7280;font-size:14px;margin:0}.api-keys-error p{color:#ef4444}.empty-icon{font-size:64px;margin-bottom:1rem}.api-keys-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.api-keys-empty p{margin:.5rem 0 1.5rem}.retry-button{padding:.625rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s}.retry-button:hover{background:#2563eb}.api-keys-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb}.api-keys-table-container{overflow-x:auto;border-radius:8px}.api-keys-table{width:100%;border-collapse:collapse}.api-keys-table thead{background:#f9fafb}.api-keys-table th{padding:.75rem 1rem;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.api-keys-table th:first-child{padding-left:1.5rem}.api-keys-table th:last-child{padding-right:1.5rem}.api-keys-table td{padding:1rem;border-top:1px solid #e5e7eb;font-size:14px;color:#111827}.api-keys-table td:first-child{padding-left:1.5rem}.api-keys-table td:last-child{padding-right:1.5rem}.api-keys-table tbody tr:hover{background:#f9fafb}.api-key-cell{display:flex;align-items:center;gap:.5rem}.api-key-cell code{flex:1;font-family:Monaco,Menlo,monospace;font-size:13px;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px}.copy-key-button{padding:.25rem;background:none;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .15s;display:flex;align-items:center;justify-content:center}.copy-key-button:hover{background:#f3f4f6;color:#111827;border-color:#d1d5db}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.status-active{background:#d1fae5;color:#065f46}.status-revoked{background:#fee2e2;color:#991b1b}.cell-date{color:#6b7280;font-size:13px}.action-button{padding:.375rem .75rem;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.action-button.revoke{background:#fee2e2;color:#991b1b}.action-button.revoke:hover{background:#fecaca}.upload-build-modal{max-width:520px}.upload-build-body{padding:var(--spacing-24);display:flex;flex-direction:column;gap:var(--spacing-20)}.drop-zone{border:2px dashed var(--border-primary);border-radius:var(--radius-l);padding:var(--spacing-32);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;min-height:160px}.drop-zone:hover{border-color:var(--typography-accent);background:#2997c108}.drop-zone.drag-active{border-color:var(--typography-accent);background:#2997c10f}.drop-zone.has-file{border-style:solid;border-color:var(--border-primary);padding:var(--spacing-16);min-height:auto}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-12);text-align:center}.drop-zone-icon{opacity:.5}.drop-zone-text{font-size:15px;color:var(--typography-primary);margin:0;font-weight:500}.drop-zone-hint{font-size:13px;color:var(--typography-tertiary);margin:0}.file-input-hidden{display:none}.selected-file-info{display:flex;align-items:center;gap:var(--spacing-12);width:100%}.file-details{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.file-name{font-size:14px;font-weight:500;color:var(--typography-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:13px;color:var(--typography-tertiary)}.file-remove{width:28px;height:28px;border:none;background:transparent;color:var(--typography-tertiary);font-size:20px;cursor:pointer;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.file-remove:hover{background:var(--bg-hover);color:var(--typography-primary)}.upload-progress{display:flex;align-items:center;gap:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);background:#3b82f60f;border-radius:var(--radius-s);font-size:14px;color:var(--typography-secondary)}.upload-progress .loading-spinner{width:20px;height:20px;border-width:2px;flex-shrink:0}.project-builds{max-width:1400px}.builds-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.builds-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.builds-header p{font-size:14px;color:#6b7280;margin:0}.builds-header-actions{display:flex;gap:.75rem;align-items:center}.platform-filter{padding:var(--spacing-8) var(--spacing-12);font-size:14px;font-family:DM Sans,sans-serif;color:var(--typography-primary);background:var(--background-surface-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-s);cursor:pointer}.builds-loading,.builds-error,.builds-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb;text-align:center}.builds-loading p,.builds-error p,.builds-empty p{color:#6b7280;font-size:14px;margin:0}.builds-error p{color:#ef4444}.builds-empty h3{font-size:20px;font-weight:600;color:#111827;margin:0}.builds-empty p{margin:.5rem 0 1.5rem}.builds-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb}.builds-table-container{overflow-x:auto;border-radius:8px}.builds-table{width:100%;border-collapse:collapse}.builds-table thead{background:#f9fafb}.builds-table th{padding:.75rem 1rem;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.builds-table th:first-child{padding-left:1.5rem}.builds-table th:last-child{padding-right:1.5rem}.builds-table td{padding:1rem;border-top:1px solid #e5e7eb;font-size:14px;color:#111827}.builds-table td:first-child{padding-left:1.5rem}.builds-table td:last-child{padding-right:1.5rem}.builds-table tbody tr:hover{background:#f9fafb}.cell-filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-mono{font-family:Monaco,Menlo,monospace;font-size:13px}.platform-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:12px;font-weight:600}.platform-android{background:#d1fae5;color:#065f46}.platform-ios{background:#dbeafe;color:#1e40af}.action-button.delete{background:#fee2e2;color:#dc2626}.action-button.delete:hover{background:#fecaca}.builds-empty-actions{display:flex;align-items:center;gap:.75rem}.builds-empty-or{color:#6b7280;font-size:14px}.fetch-store-button{padding:var(--spacing-8) var(--spacing-16);font-size:15px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;border:none;border-radius:var(--radius-s);cursor:pointer;transition:all .2s ease;white-space:nowrap}.fetch-store-ios{background:linear-gradient(135deg,#60a5fa,#2563eb)}.fetch-store-ios:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2563eb66}.fetch-store-android{background:linear-gradient(135deg,#34d399,#059669)}.fetch-store-android:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #05966966}.fetch-store-nolink{background:linear-gradient(135deg,#d1d5db,#9ca3af)}.fetch-store-nolink:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #9ca3af66}.fetch-store-button:disabled{background:linear-gradient(135deg,#d1d5db,#9ca3af);cursor:not-allowed;transform:none;box-shadow:none}.fetch-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c00;margin-bottom:1rem;font-size:14px}.fetch-error button{background:none;border:none;color:#c00;font-weight:500;cursor:pointer;text-decoration:underline}.project-settings{max-width:900px}.settings-header{margin-bottom:2rem}.settings-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.settings-header p{font-size:14px;color:#6b7280;margin:0}.error-message{padding:1rem;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c00;margin-bottom:1.5rem;font-size:14px}.success-message{padding:1rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;color:#065f46;margin-bottom:1.5rem;font-size:14px}.section-description{font-size:14px;color:#6b7280;margin:-1rem 0 1.5rem}.settings-section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #e5e7eb}.section-header h2{font-size:18px;font-weight:600;color:#111827;margin:0 0 1.5rem}.settings-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:14px;font-weight:600;color:#111827}.form-group input{padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#111827;transition:border-color .15s}.form-group input:focus{outline:none;border-color:#3b82f6}.form-group input.editing{border-color:#3b82f6}.form-group input.readonly{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.form-group input:disabled:not(.readonly){opacity:.5;cursor:not-allowed}.field-description{font-size:13px;color:#6b7280;margin:0}.input-with-actions{display:flex;gap:.75rem;align-items:center}.input-with-actions input{flex:1}.edit-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;white-space:nowrap}.edit-button:hover{background:#f9fafb;border-color:#9ca3af}.action-buttons{display:flex;gap:.5rem}.save-button,.cancel-button{padding:.625rem 1rem;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.save-button{display:flex;align-items:center;gap:.5rem;background:#3b82f6;color:#fff;width:fit-content}.save-button:hover:not(:disabled){background:#2563eb}.save-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{background:#fff;border:1px solid #d1d5db;color:#374151}.cancel-button:hover:not(:disabled){background:#f9fafb}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.logo-upload{display:flex;gap:1.5rem;align-items:flex-start}.logo-preview{width:100px;height:100px;border:2px dashed #d1d5db;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#9ca3af;background:#f9fafb}.logo-actions{flex:1;display:flex;flex-direction:column;gap:.5rem}.upload-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;width:fit-content}.upload-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.upload-button:disabled{opacity:.5;cursor:not-allowed}.danger-zone{border-color:#fca5a5}.danger-zone .section-header h2{color:#dc2626}.danger-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.danger-info{flex:1}.danger-info h3{font-size:16px;font-weight:600;color:#111827;margin:0 0 .5rem}.danger-info p{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.delete-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s;white-space:nowrap}.delete-button:hover:not(:disabled){background:#b91c1c}.delete-button:disabled{opacity:.5;cursor:not-allowed}.project-mcp{max-width:1400px}.mcp-header{margin-bottom:2rem}.mcp-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 .5rem}.mcp-header p{font-size:14px;color:#6b7280;margin:0}.mcp-error{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.mcp-error p{color:#ef4444;font-size:14px;margin:0}.mcp-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 768px){.mcp-cards{grid-template-columns:1fr}}.mcp-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:2rem;display:flex;flex-direction:column;gap:1rem}.mcp-card-icon{color:#6b7280}.mcp-card-icon img{border-radius:8px}.mcp-card h2{font-size:20px;font-weight:600;color:#111827;margin:0}.mcp-card-description{font-size:14px;color:#6b7280;margin:0}.mcp-card-field{display:flex;flex-direction:column;gap:.375rem}.mcp-card-field label{font-size:13px;font-weight:500;color:#374151}.mcp-card-field input{padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;font-family:Monaco,Courier New,monospace;color:#111827;background:#f9fafb;transition:border-color .15s}.mcp-card-field input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.mcp-card-field input::placeholder{color:#9ca3af}.mcp-key-select{padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;font-family:DM Sans,sans-serif;color:#111827;background:#f9fafb;transition:border-color .15s;width:100%;cursor:pointer}.mcp-key-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.mcp-key-loading{font-size:13px;color:#9ca3af;padding:.5rem 0}.mcp-key-empty{font-size:13px;color:#6b7280;padding:.5rem 0}.mcp-key-empty a{color:#667eea;text-decoration:none}.mcp-key-empty a:hover{text-decoration:underline}.mcp-install-button{padding:.75rem 1.5rem;font-size:14px;font-weight:500;font-family:DM Sans,sans-serif;color:#fff;background:#111827;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.mcp-install-button:hover:not(:disabled){background:#1f2937;box-shadow:0 4px 12px #00000026}.mcp-install-button:disabled{opacity:.5;cursor:not-allowed}.mcp-install-claude{background:#da7756}.mcp-install-claude:hover:not(:disabled){background:#c56a4c;box-shadow:0 4px 12px #da77564d}.mcp-setup-steps{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1rem}.mcp-setup-steps-title{font-size:13px;font-weight:600;color:#374151;margin:0 0 .75rem}.mcp-steps-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.75rem;font-size:13px;color:#374151;line-height:1.5}.mcp-proxy-url-box{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:.5rem .75rem;margin-top:.375rem}.mcp-proxy-url-box code{flex:1;font-family:Monaco,Courier New,monospace;font-size:12px;color:#111827;word-break:break-all}.mcp-proxy-copy-btn{padding:.25rem .625rem;font-size:12px;font-weight:500;font-family:DM Sans,sans-serif;color:#374151;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap}.mcp-proxy-copy-btn:hover{background:#e5e7eb}.mcp-consent-fields{width:100%;margin-top:.5rem;border-collapse:collapse;font-size:12px}.mcp-consent-fields td{padding:.375rem .5rem;border:1px solid #e5e7eb;background:#fff}.mcp-consent-fields td:first-child{font-weight:500;color:#6b7280;white-space:nowrap;width:40%}.mcp-consent-fields td:last-child{font-family:Monaco,Courier New,monospace;color:#111827;word-break:break-all}.mcp-consent-copyable{display:flex;align-items:center;gap:.5rem}.mcp-consent-copyable code{flex:1;min-width:0}.mcp-command-section{margin-top:.5rem;border-top:1px solid #e5e7eb;padding-top:1rem;display:flex;flex-direction:column;gap:.5rem}.mcp-command-label{font-size:13px;color:#6b7280;margin:0}.mcp-command-block{background:#1f2937;border-radius:6px;padding:1rem;overflow-x:auto}.mcp-command-block code{font-family:Monaco,Courier New,monospace;font-size:13px;color:#e5e7eb;white-space:pre-wrap;word-break:break-all;line-height:1.5}.mcp-copy-button{padding:.75rem 1.5rem;font-size:14px;font-weight:500;font-family:DM Sans,sans-serif;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s;margin-top:.5rem}.mcp-copy-button:hover{background:#f9fafb;border-color:#d1d5db}.ask-ai-fab{position:fixed;bottom:var(--spacing-24);right:var(--spacing-24);z-index:1100;width:56px;height:56px;border-radius:var(--radius-full);background:var(--background-surface-accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);transition:transform var(--transition-speed) var(--transition-ease),box-shadow var(--transition-speed) var(--transition-ease)}.ask-ai-fab:hover{transform:scale(1.08);box-shadow:0 18px 40px #7090b03d}.ask-ai-panel{position:fixed;bottom:var(--spacing-24);right:var(--spacing-24);z-index:1100;width:380px;height:560px;background:var(--background-surface-secondary);border-radius:var(--radius-l);box-shadow:var(--shadow-panel),var(--shadow-card);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-primary)}.ask-ai-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-12) var(--spacing-16);border-bottom:1px solid var(--border-primary);flex-shrink:0}.ask-ai-header-left{display:flex;align-items:center;gap:var(--spacing-8);color:var(--background-surface-accent)}.ask-ai-title{font-weight:600;font-size:14px;color:var(--typography-primary)}.ask-ai-header-actions{display:flex;align-items:center;gap:var(--spacing-4)}.ask-ai-clear-btn{background:none;border:none;cursor:pointer;font-size:12px;color:var(--typography-tertiary);padding:var(--spacing-4) var(--spacing-8);border-radius:var(--radius-xs);transition:background var(--transition-speed) var(--transition-ease)}.ask-ai-clear-btn:hover{background:var(--bg-hover);color:var(--typography-secondary)}.ask-ai-close-btn{background:none;border:none;cursor:pointer;color:var(--typography-tertiary);display:flex;align-items:center;justify-content:center;padding:var(--spacing-4);border-radius:var(--radius-xs);transition:background var(--transition-speed) var(--transition-ease)}.ask-ai-close-btn:hover{background:var(--bg-hover);color:var(--typography-primary)}.ask-ai-messages{flex:1;overflow-y:auto;padding:var(--spacing-16);display:flex;flex-direction:column;gap:var(--spacing-12)}.ask-ai-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-12);color:var(--typography-tertiary);text-align:center;padding:var(--spacing-24)}.ask-ai-empty svg{color:var(--background-surface-accent);opacity:.5}.ask-ai-empty p{font-size:13px;line-height:1.5;margin:0}.ask-ai-context-badge{display:inline-block;font-size:11px;padding:var(--spacing-2) var(--spacing-8);background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--typography-secondary)}.ask-ai-message{max-width:85%;animation:askAiFadeIn .2s ease-out}@keyframes askAiFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ask-ai-message-user{align-self:flex-end}.ask-ai-message-assistant{align-self:flex-start}.ask-ai-message-content{padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-s);font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ask-ai-message-user .ask-ai-message-content{background:var(--background-surface-accent);color:#fff;border-bottom-right-radius:var(--radius-xs)}.ask-ai-message-assistant .ask-ai-message-content{background:var(--bg-main);color:var(--typography-primary);border-bottom-left-radius:var(--radius-xs)}.ask-ai-typing{display:flex;gap:4px;padding:var(--spacing-12) var(--spacing-16)}.ask-ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--typography-tertiary);animation:askAiDot 1.2s ease-in-out infinite}.ask-ai-typing span:nth-child(2){animation-delay:.2s}.ask-ai-typing span:nth-child(3){animation-delay:.4s}@keyframes askAiDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.ask-ai-input-area{display:flex;align-items:flex-end;gap:var(--spacing-8);padding:var(--spacing-12) var(--spacing-16);border-top:1px solid var(--border-primary);flex-shrink:0}.ask-ai-input{flex:1;border:1px solid var(--border-primary);border-radius:var(--radius-s);padding:var(--spacing-8) var(--spacing-12);font-family:DM Sans,sans-serif;font-size:13px;line-height:1.4;resize:none;outline:none;background:var(--background-surface-secondary);color:var(--typography-primary);max-height:80px;overflow-y:auto;transition:border-color var(--transition-speed) var(--transition-ease)}.ask-ai-input:focus{border-color:var(--background-surface-accent)}.ask-ai-input::placeholder{color:var(--typography-tertiary)}.ask-ai-send-btn{width:34px;height:34px;border:none;border-radius:var(--radius-s);background:var(--background-surface-accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity var(--transition-speed) var(--transition-ease)}.ask-ai-send-btn:disabled{opacity:.4;cursor:not-allowed}.ask-ai-send-btn:not(:disabled):hover{opacity:.85}.app{min-height:100vh}:root{--typography-primary: #1f1f21;--typography-secondary: rgba(31, 31, 33, .74);--typography-tertiary: rgba(31, 31, 33, .56);--typography-accent: #2997c1;--typography-secondary-statistic: #ffffff;--bg-main: #f4f7fe;--background-surface-secondary: #ffffff;--background-surface-accent: #32a7d4;--background-chip-active: #ffffff;--bg-hover: #f7fafc;--border-primary: #e7e7e7;--border-color: #e9edf7;--border-light: #f4f7fe;--charts-context-negative: #fd4438;--success: #05cd99;--error: #ee5d50;--warning: #ffb547;--info: #4299e1;--spacing-0: 0px;--spacing-2: 2px;--spacing-4: 4px;--spacing-6: 6px;--spacing-8: 8px;--spacing-10: 10px;--spacing-12: 12px;--spacing-16: 16px;--spacing-20: 20px;--spacing-24: 24px;--spacing-28: 28px;--spacing-32: 32px;--spacing-40: 40px;--radius-xs: 6px;--radius-s: 8px;--radius-l: 16px;--radius-2xl: 24px;--radius-full: 360px;--shadow-card: 0px 18px 40px rgba(112, 144, 176, .12);--shadow-panel: -4px 0px 24px rgba(0, 0, 0, .06);--shadow-sm: 0px 4px 12px rgba(0, 0, 0, .05);--sidebar-width-expanded: 280px;--sidebar-width-minimized: 70px;--transition-speed: .3s;--transition-ease: cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-main);color:var(--typography-primary);font-size:15px;font-weight:400;line-height:24px}#root{min-height:100vh}
