.btn{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:none;justify-content:center;align-items:center;min-height:2.5rem;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:#374151}.btn-secondary{background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:#f3f4f6}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.btn-lg{padding:var(--spacing-md)var(--spacing-lg);font-size:var(--font-size-base);min-height:3rem}.btn-sm{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-size-xs);min-height:2rem}.btn-full{width:100%}.card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-elevated{box-shadow:var(--shadow-lg)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);background-color:var(--color-surface)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);margin-bottom:var(--spacing-sm);display:block}.form-input{width:100%;padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);background-color:var(--color-background);transition:border-color .2s}.form-input:focus{border-color:var(--color-primary);outline:none}.form-input:disabled{background-color:var(--color-surface);cursor:not-allowed}.form-error{color:var(--color-error);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.alert{padding:var(--spacing-md);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg)}.alert-error{color:var(--color-error);background-color:#fef2f2;border:1px solid #fecaca}.alert-success{color:var(--color-success);background-color:#f0fdf4;border:1px solid #bbf7d0}.alert-warning{color:var(--color-warning);background-color:#fffbeb;border:1px solid #fed7aa}.loading{justify-content:center;align-items:center;gap:var(--spacing-sm);color:var(--color-secondary);font-size:var(--font-size-sm);display:flex}.spinner{border:2px solid #f3f3f3;border-top:2px solid var(--color-primary);border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-container{flex-direction:column;min-height:100vh;display:flex}.page-header{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-lg)0}.page-content{padding:var(--spacing-xl)0;flex:1}.page-footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--spacing-lg)0;margin-top:auto}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:2.5rem;height:2.5rem}.avatar-lg{width:4rem;height:4rem}.avatar-sm{width:2rem;height:2rem}.badge{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.badge-primary{background-color:var(--color-primary);color:#fff}.badge-secondary{background-color:var(--color-surface);color:var(--color-secondary)}.badge-success{color:var(--color-success);background-color:#dcfce7}.badge-warning{color:var(--color-warning);background-color:#fef3c7}.badge-error{color:var(--color-error);background-color:#fecaca}
.auth-layout{background-color:#fff;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background-color:#fff;border-radius:.75rem;width:100%;max-width:20rem;padding:3rem}.auth-header{margin-bottom:3rem}.auth-logo-container{align-items:center;gap:.5rem;display:flex}.auth-logo-icon{width:2rem;height:2rem}.auth-logo-text{color:#111827;font-size:1.125rem;font-weight:500}.auth-buttons{flex-direction:column;gap:1.5rem;margin-bottom:3rem;display:flex}.btn-google{color:#111827;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;justify-content:center;align-items:center;height:2.5rem;font-size:.875rem;font-weight:500;transition:background-color .2s;display:flex}.btn-google:hover{background-color:#f9fafb}.btn-guest{color:#111827;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;height:2.5rem;font-size:.875rem;font-weight:500;transition:background-color .2s}.btn-guest:hover{background-color:#f9fafb}.auth-link{color:#111827;text-decoration:underline}.auth-link:hover{color:#6b7280}.auth-footer{text-align:center;color:#6b7280;margin-top:3rem;font-size:.75rem}.auth-footer a{color:#6b7280;margin:0 .25rem}.auth-footer a:hover{color:#111827}.dashboard-layout{background-color:var(--color-background);min-height:100vh}.dashboard-header{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-lg)0}.dashboard-header-content{max-width:1200px;padding:0 var(--spacing-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.dashboard-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.dashboard-subtitle{font-size:var(--font-size-sm);color:var(--color-secondary)}.dashboard-user{align-items:center;gap:var(--spacing-sm);display:flex}.dashboard-content{max-width:1200px;padding:var(--spacing-xl)var(--spacing-md);margin:0 auto}.projects-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;width:100%;display:grid}.project-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);transition:box-shadow .2s}.project-card:hover{box-shadow:var(--shadow-md)}.project-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:flex-start;display:flex}.project-info{flex:1;min-width:0}.project-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);margin-bottom:var(--spacing-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-url{font-size:var(--font-size-xs);color:var(--color-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-actions{gap:var(--spacing-sm);display:flex}.project-stats{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.project-stat{font-size:var(--font-size-xs);color:var(--color-secondary);align-items:center;display:flex}.project-stat svg{width:.75rem;height:.75rem;margin-right:var(--spacing-xs)}.project-buttons{gap:var(--spacing-sm);display:flex}.project-button{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--border-radius-md);font-size:var(--font-size-xs);text-align:center;flex:1;text-decoration:none;transition:background-color .2s}.project-button-secondary{background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.project-button-secondary:hover{background-color:#f3f4f6}.project-button-primary{background-color:var(--color-primary);color:#fff}.project-button-primary:hover{background-color:#374151}.profile-layout{background-color:var(--color-background);min-height:100vh}.profile-header{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-lg)0}.profile-header-content{max-width:1200px;padding:0 var(--spacing-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.profile-content{max-width:1200px;padding:var(--spacing-xl)var(--spacing-md);margin:0 auto}.profile-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-2xl)}.profile-user{margin-bottom:var(--spacing-2xl);align-items:center;display:flex}.profile-avatar{width:4rem;height:4rem;margin-right:var(--spacing-lg);border-radius:50%}.profile-info h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.profile-info p{font-size:var(--font-size-sm);color:var(--color-secondary)}.profile-settings{gap:var(--spacing-xl);flex-direction:column;display:flex}.profile-setting{justify-content:space-between;align-items:center;display:flex}.profile-setting-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary)}.profile-setting-value{font-size:var(--font-size-sm);color:var(--color-secondary)}.profile-setting-edit{font-size:var(--font-size-sm);color:var(--color-secondary);cursor:pointer}.profile-setting-edit:hover{color:var(--color-primary)}.empty-state{text-align:center;padding:var(--spacing-2xl)}.empty-state-icon{background-color:var(--color-surface);width:4rem;height:4rem;margin:0 auto var(--spacing-lg);color:var(--color-secondary);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-primary);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-secondary);margin-bottom:var(--spacing-lg)}@media (max-width:768px){.auth-card{padding:var(--spacing-lg)}.dashboard-header-content,.profile-header-content{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.dashboard-user{align-self:flex-end}.projects-grid{grid-template-columns:1fr}.project-header{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.project-actions{align-self:flex-end}.profile-user{text-align:center;flex-direction:column}.profile-avatar{margin-right:0;margin-bottom:var(--spacing-lg)}}
