.portal-shell{background:var(--bg-primary,#0a0a0a);min-height:100vh;color:var(--text-primary,#e5e5e5);display:flex}.portal-sidebar{width:260px;padding:var(--space-lg,24px);background:#ffffff05;border-right:1px solid #ffffff0f;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.portal-brand{align-items:center;gap:var(--space-sm,8px);color:inherit;margin-bottom:var(--space-xl,24px);font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.portal-brand-icon{font-size:1.4rem}.portal-user-card{align-items:center;gap:var(--space-sm,8px);padding:var(--space-md,12px);border-radius:var(--radius-md,8px);margin-bottom:var(--space-lg,16px);background:#ffffff08;display:flex}.portal-user-avatar{background:linear-gradient(135deg,var(--accent,#00d4aa),#07c);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;font-weight:700;display:flex}.portal-user-info{flex-direction:column;min-width:0;display:flex}.portal-user-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.portal-status{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:.7rem;font-weight:600}.portal-status-active{color:var(--accent,#00d4aa);background:#00d4aa26}.portal-status-pending{color:#ffc107;background:#ffc10726}.portal-status-suspended{color:#ff4757;background:#ff475726}.portal-status-installing{color:#3b82f6;background:#3b82f626}.portal-status-approved{color:#8b5cf6;background:#8b5cf626}.portal-plan-card{border-radius:var(--radius-md,8px);padding:var(--space-md,12px);margin-bottom:var(--space-lg,16px);text-align:center;background:linear-gradient(135deg,#00d4aa14,#0077cc14);border:1px solid #00d4aa26}.portal-plan-name{margin-bottom:2px;font-size:.9rem;font-weight:700}.portal-plan-speed{color:var(--accent,#00d4aa);font-size:1.3rem;font-weight:800}.portal-plan-price{color:var(--text-secondary,#999);font-size:.8rem}.portal-nav{flex-direction:column;flex:1;gap:4px;display:flex}.portal-nav-link{align-items:center;gap:var(--space-sm,8px);border-radius:var(--radius-md,8px);color:var(--text-secondary,#999);padding:10px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.portal-nav-link:hover{color:var(--text-primary,#e5e5e5);background:#ffffff0a}.portal-nav-active{background:#00d4aa14;font-weight:600;color:var(--accent,#00d4aa)!important}.portal-logout-btn{color:var(--text-secondary,#999);border-radius:var(--radius-md,8px);cursor:pointer;background:0 0;border:1px solid #ffffff14;padding:10px;font-size:.85rem;transition:all .2s}.portal-logout-btn:hover{color:#ff4757;background:#ff47571a;border-color:#ff475733}.portal-main{padding:var(--space-2xl,32px)var(--space-xl,24px);flex:1;width:100%;max-width:900px;margin:0 auto}.portal-page-header{margin-bottom:var(--space-2xl,32px)}.portal-page-header h1{margin:0 0 4px;font-size:1.5rem;font-weight:700}.portal-page-header p{color:var(--text-secondary,#999);margin:0;font-size:.9rem}.portal-alert{padding:var(--space-md,12px)var(--space-lg,16px);border-radius:var(--radius-md,8px);margin-bottom:var(--space-xl,24px);font-size:.9rem}.portal-alert-danger{color:#ff4757;background:#ff47571a;border:1px solid #ff475733}.portal-alert-info{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f633}.portal-stats{gap:var(--space-lg,16px);margin-bottom:var(--space-2xl,32px);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.portal-stat-card{border-radius:var(--radius-lg,12px);padding:var(--space-lg,16px);background:#ffffff05;border:1px solid #ffffff0f}.portal-stat-label{color:var(--text-muted,#666);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.75rem}.portal-stat-value{font-size:1.5rem;font-weight:800}.portal-stat-sub{color:var(--text-secondary,#999);margin-top:2px;font-size:.75rem}.portal-table{border-collapse:collapse;width:100%;font-size:.85rem}.portal-table th{text-align:left;color:var(--text-muted,#666);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #ffffff0f;padding:10px 12px;font-size:.75rem}.portal-table td{border-bottom:1px solid #ffffff0a;padding:12px}.portal-form{max-width:500px}.portal-form-group{margin-bottom:var(--space-lg,16px)}.portal-form-group label{color:var(--text-secondary,#999);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.portal-form-group input,.portal-form-group textarea{background:var(--bg-card,#ffffff0a);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-md,8px);width:100%;color:inherit;padding:10px 14px;font-size:.9rem}.portal-form-group input:focus,.portal-form-group textarea:focus{border-color:var(--accent,#00d4aa);outline:none}.portal-login-page{min-height:100vh;padding:var(--space-lg,16px);background:var(--bg-primary,#0a0a0a);justify-content:center;align-items:center;display:flex}.portal-login-card{background:var(--bg-card,#fff);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl,16px);width:100%;max-width:400px;padding:var(--space-2xl,32px);box-shadow:0 4px 24px #00000014}.portal-login-brand{text-align:center;margin-bottom:var(--space-lg,16px)}.portal-logo{align-items:center;gap:var(--space-sm,8px);color:inherit;margin-bottom:var(--space-xs,4px);font-size:1.4rem;font-weight:700;text-decoration:none;display:inline-flex}.portal-logo-icon{font-size:1.5rem}.portal-login-brand h1{margin:var(--space-sm,8px)0 4px;font-size:1.3rem}.portal-login-brand p{color:var(--text-secondary,#999);margin:0;font-size:.85rem}.portal-method-toggle{background:var(--bg-secondary,#ffffff0a);border-radius:var(--radius-md,8px);border:1px solid var(--border,#ffffff14);gap:0;display:flex;overflow:hidden}.portal-method-btn{color:var(--text-secondary,#999);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.portal-method-btn.active{color:var(--accent,#00d4aa);background:#00d4aa1f}.portal-method-btn:hover:not(.active){background:#ffffff0a}.portal-login-form{gap:var(--space-md,12px);flex-direction:column;display:flex}.portal-code-sent{text-align:center;color:var(--text-secondary,#999);margin:0;font-size:.85rem}.portal-dev-code{text-align:center;border-radius:var(--radius-md,8px);color:#ffc107;background:#ffc1071a;border:1px solid #ffc10733;padding:8px;font-size:.85rem}.portal-code-input{text-align:center;letter-spacing:8px;font-weight:700;font-size:1.4rem!important}.portal-error{text-align:center;color:#ff4757;border-radius:var(--radius-md,8px);background:#ff475714;padding:8px;font-size:.85rem}.portal-login-help{text-align:center;color:var(--text-muted,#666);margin:0;font-size:.8rem}.portal-resend-btn{color:var(--accent,#00d4aa);cursor:pointer;background:0 0;border:none;padding:8px;font-size:.85rem}.portal-login-footer{text-align:center;margin-top:var(--space-xl,24px);padding-top:var(--space-lg,16px);border-top:1px solid var(--border,#ffffff0f)}.portal-login-footer a{color:var(--text-secondary,#999);font-size:.85rem;text-decoration:none}.portal-login-footer a:hover{color:var(--accent,#00d4aa)}.portal-loading{background:var(--bg-primary,#0a0a0a);justify-content:center;align-items:center;min-height:100vh;display:flex}.portal-spinner{border:3px solid #ffffff14;border-top-color:var(--accent,#00d4aa);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite portal-spin}@keyframes portal-spin{to{transform:rotate(360deg)}}.portal-empty{text-align:center;padding:var(--space-2xl,32px);color:var(--text-secondary,#999)}.portal-empty-icon{margin-bottom:var(--space-md,12px);font-size:2.5rem}@media (max-width:768px){.portal-shell{flex-direction:column}.portal-sidebar{gap:var(--space-sm,8px);width:100%;height:auto;padding:var(--space-md,12px);flex-flow:wrap;position:static}.portal-brand{display:none}.portal-user-card,.portal-plan-card{flex:1;min-width:150px}.portal-nav{flex-flow:wrap}.portal-nav-link{padding:8px 10px;font-size:.8rem}.portal-main{padding:var(--space-lg,16px)}}
