.auth-container{margin:0 auto;max-width:440px;padding:var(--sp-16) var(--sp-4) var(--sp-20)}.auth-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--r-xl);padding:var(--sp-8)}.auth-header{margin-bottom:var(--sp-6);text-align:center}.auth-header-icon{align-items:center;background:var(--color-danger-dim);border-radius:var(--r-lg);color:var(--color-primary);display:flex;font-size:1.5rem;height:56px;justify-content:center;margin:0 auto var(--sp-4);width:56px}.auth-header h1{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--sp-1)}.auth-header p{color:var(--text-secondary);font-size:var(--text-sm)}.auth-benefits{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-md);margin-bottom:var(--sp-5);padding:var(--sp-4)}.auth-benefits h3{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-sm);font-weight:600;gap:var(--sp-2);margin-bottom:var(--sp-3)}.auth-benefits h3 i{color:var(--color-primary)}.auth-benefits ul{list-style:none;margin:0;padding:0}.auth-benefits li{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--text-sm);gap:var(--sp-2);padding:var(--sp-1) 0}.auth-benefits li i{color:#22c55e;font-size:var(--text-xs)}.auth-messages{margin-bottom:var(--sp-4)}.auth-message{border-radius:var(--r-md);font-size:var(--text-sm);margin-bottom:var(--sp-2);padding:var(--sp-3) var(--sp-4)}.auth-message.success{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);color:#22c55e}.auth-message.error{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);color:#ef4444}.auth-message.info{background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.2);color:#3b82f6}.auth-errors{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:var(--r-md);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4)}.auth-errors ul{color:#ef4444;font-size:var(--text-sm);margin:0;padding-left:var(--sp-4)}.auth-errors li{margin:2px 0}.auth-form{gap:var(--sp-4)}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:var(--sp-1)}.auth-field label{font-weight:500}.auth-field label,.auth-input{color:var(--text-primary);font-size:var(--text-sm)}.auth-input{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-sm);box-sizing:border-box;font-family:DM Sans,sans-serif;padding:var(--sp-2) var(--sp-3);transition:border-color var(--transition-fast);width:100%}.auth-input:focus{border-color:var(--color-primary);outline:none}.auth-input::placeholder{color:var(--text-muted)}.auth-checkbox-group{align-items:flex-start;display:flex;gap:var(--sp-2)}.auth-checkbox{accent-color:var(--color-primary);flex-shrink:0;height:16px;margin-top:2px;width:16px}.auth-checkbox-label{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.4}.auth-checkbox-label a{color:var(--color-primary);text-decoration:none}.auth-checkbox-label a:hover{text-decoration:underline}.auth-submit{background:var(--color-primary);border:none;border-radius:var(--r-sm);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:600;padding:var(--sp-3);transition:background var(--transition-fast),box-shadow var(--transition-fast);width:100%}.auth-submit:hover{background:var(--color-primary-hover);box-shadow:0 4px 12px var(--color-primary-glow)}.auth-forgot{margin-top:calc(var(--sp-1)*-1);text-align:right}.auth-forgot a{color:var(--text-muted);font-size:var(--text-xs);text-decoration:none;transition:color var(--transition-fast)}.auth-forgot a:hover{color:var(--color-primary)}.auth-hint{color:var(--text-muted);font-size:var(--text-xs);margin-top:var(--sp-1)}.auth-hint i{color:var(--color-primary);margin-right:4px}.auth-divider{margin:var(--sp-5) 0;position:relative;text-align:center}.auth-divider:before{background:var(--border-color);content:"";height:1px;left:0;position:absolute;right:0;top:50%}.auth-divider span{background:var(--bg-surface);color:var(--text-muted);font-size:var(--text-xs);font-weight:500;padding:0 var(--sp-3);position:relative}.auth-google{align-items:center;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-sm);color:var(--text-primary);cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:500;gap:var(--sp-2);justify-content:center;padding:var(--sp-3);text-decoration:none;transition:border-color var(--transition-fast);width:100%}.auth-google:hover{border-color:var(--color-primary)}.auth-footer{border-top:1px solid var(--border-color);margin-top:var(--sp-5);padding-top:var(--sp-5);text-align:center}.auth-footer p{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--sp-1)}.auth-footer a{color:var(--color-primary);font-size:var(--text-sm);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-code-input{font-size:var(--text-xl);font-weight:600;letter-spacing:.3em;padding:var(--sp-3);text-align:center}.auth-message.warning{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);color:#f59e0b}.auth-info-box{background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.2);border-radius:var(--r-md);color:#3b82f6;display:flex;font-size:var(--text-sm);gap:var(--sp-2);margin-bottom:var(--sp-5);padding:var(--sp-3) var(--sp-4)}.auth-info-box i{flex-shrink:0;margin-top:2px}.auth-warning-box{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);border-radius:var(--r-md);margin-bottom:var(--sp-5);padding:var(--sp-4)}.auth-warning-box h3{align-items:center;color:#ef4444;display:flex;font-size:var(--text-sm);font-weight:600;gap:var(--sp-2);margin-bottom:var(--sp-2)}.auth-warning-box ul{color:var(--text-secondary);font-size:var(--text-sm);margin:0;padding-left:var(--sp-4)}.auth-warning-box li{margin-bottom:2px}.auth-submit--danger{background:#dc2626}.auth-submit--danger:hover{background:#b91c1c;box-shadow:0 4px 12px rgba(220,38,38,.3)}.auth-resend{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-sm);color:var(--color-primary);display:inline-block;font-size:var(--text-sm);font-weight:500;padding:var(--sp-2) var(--sp-4);text-decoration:none;transition:border-color var(--transition-fast)}.auth-resend:hover{border-color:var(--color-primary)}.auth-resend--disabled{color:var(--text-muted);pointer-events:none}.auth-timer{color:var(--text-secondary);font-size:var(--text-sm);margin-top:var(--sp-3);text-align:center}.auth-timer strong{color:var(--color-primary);font-family:DM Mono,monospace}.auth-skip{color:var(--text-muted);display:block;font-size:var(--text-sm);margin-top:var(--sp-3);text-align:center;text-decoration:none;transition:color var(--transition-fast)}.auth-skip:hover{color:var(--text-secondary)}.auth-email-display{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-md);color:var(--text-primary);margin-bottom:var(--sp-5);text-align:center}.auth-code-verified,.auth-email-display{font-size:var(--text-sm);font-weight:500;padding:var(--sp-3) var(--sp-4)}.auth-code-verified{align-items:center;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);border-radius:var(--r-md);color:#22c55e;display:flex;gap:var(--sp-2);justify-content:center;margin-bottom:var(--sp-4)}.auth-password-section{border-top:1px solid var(--border-color);margin-top:var(--sp-5);padding-top:var(--sp-5)}.auth-password-section h3{color:var(--text-primary);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-4);text-align:center}.auth-pw-requirements{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-md);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4)}.auth-pw-requirements h4{color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;margin-bottom:var(--sp-2)}.auth-pw-requirements ul{color:var(--text-muted);font-size:var(--text-xs);margin:0;padding-left:var(--sp-4)}.auth-pw-requirements li{margin-bottom:2px}.dash-container{margin:0 auto;max-width:880px;padding:var(--sp-12) var(--sp-4) var(--sp-20)}.dash-header{margin-bottom:var(--sp-8);text-align:center}.dash-header h1{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--sp-1)}.dash-header p{color:var(--text-secondary);font-size:var(--text-sm)}.dash-back{align-items:center;color:var(--text-muted);display:inline-flex;font-size:var(--text-sm);gap:var(--sp-1);margin-bottom:var(--sp-4);text-decoration:none;transition:color var(--transition-fast)}.dash-back:hover{color:var(--color-primary)}.dash-messages{margin-bottom:var(--sp-6)}.dash-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.dash-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--r-xl);padding:var(--sp-6)}.dash-card+.dash-card:not(.dash-grid .dash-card){margin-top:var(--sp-5)}.dash-card h2{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-base);font-weight:600;gap:var(--sp-2);margin-bottom:var(--sp-4)}.dash-card h2 i{color:var(--color-primary)}.dash-card-desc{color:var(--text-secondary);font-size:var(--text-sm);margin-top:var(--sp-3)}.dash-row{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--sp-3) 0}.dash-row:last-child{border-bottom:none}.dash-label{color:var(--text-secondary)}.dash-label,.dash-value{font-size:var(--text-sm)}.dash-value{color:var(--text-primary);font-weight:500}.dash-tier{border-radius:var(--r-full);display:inline-block;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;padding:4px 12px;text-transform:uppercase}.dash-tier--free{background:var(--bg-elevated);color:var(--text-secondary)}.dash-tier--plus,.dash-tier--premium{background:rgba(245,158,11,.12);color:#f59e0b}.dash-tier--enterprise{background:rgba(59,130,246,.12);color:#3b82f6}.dash-tier--unverified{background:rgba(239,68,68,.1);color:#ef4444}.dash-verify-warn{background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);border-radius:var(--r-md);display:flex;gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-4)}.dash-verify-warn>i{color:#f59e0b;flex-shrink:0;font-size:1.1rem;margin-top:2px}.dash-verify-warn strong{color:#f59e0b;display:block;font-size:var(--text-sm);margin-bottom:2px}.dash-verify-warn p{color:var(--text-secondary);font-size:var(--text-xs);margin:0}.dash-verify-link{align-items:center;background:rgba(245,158,11,.15);border-radius:var(--r-sm);color:#f59e0b;display:inline-flex;font-size:var(--text-xs);font-weight:500;gap:var(--sp-1);margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);text-decoration:none;transition:background var(--transition-fast)}.dash-verify-link:hover{background:rgba(245,158,11,.25)}.dash-usage-bar{background:var(--bg-elevated);border-radius:var(--r-full);height:8px;margin-top:var(--sp-2);overflow:hidden}.dash-usage-fill{background:var(--color-primary);border-radius:var(--r-full);height:100%;transition:width .3s}.dash-usage-text{color:var(--text-muted);display:flex;font-size:var(--text-xs);justify-content:space-between;margin-top:var(--sp-2)}.dash-btn{align-items:center;background:var(--color-primary);border:none;border-radius:var(--r-sm);color:#fff;cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:500;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-4);text-decoration:none;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.dash-btn:hover{background:var(--color-primary-hover);box-shadow:0 4px 12px var(--color-primary-glow)}.dash-btn--secondary{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary)}.dash-btn--secondary:hover{background:var(--bg-elevated);border-color:var(--color-primary);box-shadow:none}.dash-btn--danger{background:#dc2626}.dash-btn--danger:hover{background:#b91c1c;box-shadow:0 4px 12px rgba(220,38,38,.3)}.dash-btn--small{font-size:var(--text-xs);margin-top:0;padding:var(--sp-1) var(--sp-3)}.dash-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.dash-separator{border:none;border-top:1px solid var(--border-subtle);margin:var(--sp-4) 0}.dash-key-item{align-items:center;border:1px solid var(--border-color);border-radius:var(--r-md);display:flex;justify-content:space-between;margin-bottom:var(--sp-3);padding:var(--sp-4);transition:border-color var(--transition-fast)}.dash-key-item:hover{border-color:var(--text-muted)}.dash-key-item--inactive{opacity:.6}.dash-key-info{flex:1;min-width:0}.dash-key-name{color:var(--text-primary);font-size:var(--text-sm);font-weight:600;margin-bottom:4px}.dash-key-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:var(--text-xs);gap:var(--sp-3)}.dash-key-meta span{align-items:center;display:flex;gap:4px}.dash-key-prefix{color:var(--text-secondary);font-family:DM Mono,monospace}.dash-key-actions{align-items:center;display:flex;gap:var(--sp-2)}.dash-status{align-items:center;border-radius:var(--r-full);display:inline-flex;font-size:var(--text-xs);font-weight:500;gap:4px;padding:3px 10px}.dash-status--active{background:rgba(34,197,94,.1);color:#22c55e}.dash-status--inactive{background:var(--bg-elevated);color:var(--text-muted)}.dash-new-key{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.2);border-radius:var(--r-md);margin-bottom:var(--sp-5);padding:var(--sp-4)}.dash-new-key h3{color:#22c55e;font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-2)}.dash-new-key .dash-new-key-warn{color:#f59e0b;font-size:var(--text-xs);margin-bottom:var(--sp-3)}.dash-new-key-row{display:flex;gap:var(--sp-2)}.dash-new-key-row input{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-sm);color:var(--text-primary);flex:1;font-family:DM Mono,monospace}.dash-copy-btn,.dash-new-key-row input{font-size:var(--text-sm);padding:var(--sp-2) var(--sp-3)}.dash-copy-btn{background:#22c55e;border:none;border-radius:var(--r-sm);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-weight:500;transition:background var(--transition-fast)}.dash-copy-btn:hover{background:#16a34a}.dash-copy-btn--copied{background:#166534}.dash-usage-info{align-items:center;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--r-md);color:var(--text-secondary);display:flex;font-size:var(--text-sm);gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4)}.dash-usage-info i{color:var(--text-muted)}.dash-usage-info strong{color:var(--color-primary)}.dash-empty{color:var(--text-muted);padding:var(--sp-8) var(--sp-4);text-align:center}.dash-empty i{font-size:2.5rem;margin-bottom:var(--sp-3);opacity:.4}.dash-empty h3{color:var(--text-secondary);font-weight:600;margin-bottom:var(--sp-1)}.dash-empty h3,.dash-empty p{font-size:var(--text-sm)}.dash-code{background:#0f172a;border-radius:var(--r-md);color:#e2e8f0;font-family:DM Mono,monospace;font-size:var(--text-xs);line-height:1.6;overflow-x:auto;padding:var(--sp-4)}.dash-code-label{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--sp-3)}.dash-code-label code{background:var(--bg-elevated);border-radius:var(--r-xs);font-family:DM Mono,monospace;font-size:var(--text-xs);padding:2px 6px}.dash-upgrade{background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);border-radius:var(--r-md);margin-top:var(--sp-4);padding:var(--sp-4)}.dash-upgrade h3{color:#f59e0b;font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-1)}.dash-upgrade p{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--sp-2)}.dash-upgrade a{color:#f59e0b;font-weight:500;text-decoration:none}.dash-upgrade a:hover{text-decoration:underline}.dash-dialog{align-items:center;background:rgba(0,0,0,.6);display:none;inset:0;justify-content:center;position:fixed;z-index:1000}.dash-dialog--active{display:flex}.dash-dialog-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--r-xl);max-width:380px;padding:var(--sp-6);text-align:center;width:90%}.dash-dialog-box h3{color:var(--text-primary);font-size:var(--text-base);font-weight:600;margin-bottom:var(--sp-2)}.dash-dialog-box p{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--sp-5)}.dash-dialog-actions{display:flex;gap:var(--sp-3);justify-content:center}.dash-dialog-actions .dash-btn{margin-top:0}@media (max-width:768px){.auth-container{padding:var(--sp-10) var(--sp-4) var(--sp-12)}.auth-card{padding:var(--sp-5)}.dash-container{padding:var(--sp-8) var(--sp-4) var(--sp-12)}.dash-card{padding:var(--sp-5)}.dash-key-item{align-items:flex-start;flex-direction:column;gap:var(--sp-3)}.dash-key-actions{width:100%}.dash-key-actions button,.dash-key-actions form{flex:1}.dash-new-key-row{flex-direction:column}}