.portal-container{max-width:480px;min-height:80vh;margin:0 auto;padding:120px 20px 80px}.portal-container h1{text-align:center;margin-bottom:8px;font-size:2rem}.portal-container .portal-subtitle{color:#999;text-align:center;margin-bottom:40px;font-size:1rem}.portal-form{flex-direction:column;gap:16px;display:flex}.portal-field{gap:8px;display:grid}.portal-label{color:var(--muted-foreground);font-size:.875rem;font-weight:600;line-height:1.2}.portal-input{color:#fff;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;width:100%;padding:14px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s}.portal-input:focus{border-color:#d4a037;outline:none;box-shadow:0 0 0 2px #d4a03726}.portal-input::placeholder{color:#666}.portal-input.otp-input{text-align:center;letter-spacing:.5em;font-family:monospace;font-size:1.5rem}.portal-btn{width:100%}.portal-manage-card{flex-direction:column;display:flex}.portal-error{color:#e06b8a;background:#e06b8a1f;border:1px solid #e06b8a4d;border-radius:8px;padding:12px 16px;font-size:.9rem;display:none}.portal-error.visible{display:block}.portal-success{color:#4caf50;background:#4caf501f;border:1px solid #4caf504d;border-radius:8px;padding:12px 16px;font-size:.9rem;display:none}.portal-success.visible{display:block}.portal-info{color:#999;text-align:center;font-size:.85rem}.login-step{display:none}.login-step.active{display:block}.portal-link{color:#d4a037;cursor:pointer;font-size:.9rem;text-decoration:none}.portal-link:hover{text-decoration:underline}.portal-dashboard{opacity:0;max-width:720px;min-height:80vh;margin:0 auto;padding:120px 20px 80px;transition:opacity .18s ease-out}body.portal-ready .portal-dashboard{opacity:1}.portal-skeleton{pointer-events:none;z-index:50;justify-content:center;align-items:center;transition:opacity .18s ease-out;display:flex;position:fixed;inset:0}body.portal-ready .portal-skeleton{opacity:0;display:none}.portal-skeleton-spinner{border:2px solid #ffffff1f;border-top-color:#d4a037d9;border-radius:50%;width:32px;height:32px;animation:.72s linear infinite portal-spin}@keyframes portal-spin{to{transform:rotate(360deg)}}.portal-hero{margin-bottom:32px}.portal-hero-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.portal-hero h1{color:#fff;margin-bottom:8px;font-size:2rem}.portal-hero-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.portal-member-since{color:#777;font-size:.85rem}.portal-join-cta{margin-top:12px}.portal-primary-cta{color:inherit;background:#d4a0370f;border:1.5px solid #d4a03759;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:28px;text-decoration:none;transition:border-color .25s,background .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.portal-primary-cta:before{content:"";pointer-events:none;background:radial-gradient(at 20%,#d4a03714,#0000 70%);position:absolute;inset:0}.portal-primary-cta:hover{background:#d4a0371a;border-color:#d4a03799;box-shadow:0 0 32px #d4a0371a,inset 0 0 32px #d4a03708}.portal-primary-cta-content{z-index:1;align-items:center;gap:20px;display:flex;position:relative}.portal-primary-icon{flex-shrink:0;width:48px;height:48px}.portal-primary-icon img{filter:invert()opacity(.7);width:48px;height:48px}.portal-primary-text h2{color:#fff;margin-bottom:4px;font-size:1.25rem}.portal-primary-text p{color:#aaa;font-size:.9rem;line-height:1.4}.portal-cta-arrow{color:#d4a037;opacity:.6;z-index:1;flex-shrink:0;transition:opacity .2s,transform .2s;position:relative}.portal-primary-cta:hover .portal-cta-arrow{opacity:1;transform:translate(4px)}.portal-quick-links{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:40px;display:grid}.portal-quick-card--static{cursor:default}.portal-calendar-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.portal-calendar-actions .ui-button{flex:1;min-width:120px}.portal-quick-card{color:inherit;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;justify-content:space-between;gap:12px;padding:20px 20px 16px;text-decoration:none;transition:border-color .2s,background .2s;display:flex}.portal-quick-card:hover{background:#ffffff0d;border-color:#ffffff2e}.portal-quick-card-inner{align-items:flex-start;gap:14px;display:flex}.portal-quick-icon{flex-shrink:0;width:32px;height:32px;margin-top:2px}.portal-quick-icon img{filter:invert()opacity(.4);width:32px;height:32px}.portal-quick-text h3{color:#ccc;margin-bottom:4px;font-size:.95rem}.portal-quick-text p{color:#777;font-size:.8rem;line-height:1.45}.portal-external-badge{color:#666;text-transform:uppercase;letter-spacing:.06em;align-self:flex-end;align-items:center;gap:5px;font-size:.7rem;font-weight:500;display:inline-flex}.portal-external-badge svg{opacity:.7}.portal-card{color:inherit;overflow-wrap:anywhere;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;min-width:0;padding:28px 24px;text-decoration:none;transition:border-color .2s,background .2s;display:block}a.portal-card:hover{background:#ffffff0f;border-color:#d4a0374d}.portal-card-icon{width:40px;height:40px;margin-bottom:12px;font-size:1.6rem;display:block}.portal-card-icon img{filter:invert()opacity(.5);width:40px;height:40px}.portal-card h3{color:#fff;margin-bottom:6px;font-size:1.1rem}.portal-card p{color:#999;font-size:.9rem;line-height:1.5}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.status-badge.active{color:#4caf50;background:#4caf5026;border:1px solid #4caf504d}.status-badge.cancelled{color:#ff9800;background:#ff980026;border:1px solid #ff98004d}.status-badge.expired{color:#e06b8a;background:#e06b8a26;border:1px solid #e06b8a4d}.status-badge.inactive{color:#ef4444;background:#ef444426;border:1px solid #ef44444d}.portal-logout{color:#999;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;padding:8px 16px;font-family:inherit;font-size:.85rem;transition:color .2s,border-color .2s}.portal-logout:hover{color:#e06b8a;border-color:#e06b8a4d}.affiliate-code-display{background:color-mix(in oklch,var(--primary)8%,transparent);border:1px solid color-mix(in oklch,var(--primary)25%,transparent);border-radius:8px;align-items:center;gap:12px;min-width:0;padding:12px 16px;display:flex}.portal-card-copy{color:var(--muted-foreground);margin-bottom:16px}.portal-card-copy strong,.portal-card-copy a{color:var(--primary)}.portal-card-copy a{text-decoration-color:color-mix(in oklch,var(--primary)36%,transparent);text-underline-offset:.16em}.affiliate-code-text{color:var(--primary);letter-spacing:.05em;overflow-wrap:anywhere;word-break:break-all;flex:1;min-width:0;font-family:monospace;font-size:1.2rem;font-weight:600}.affiliate-copy-btn{white-space:nowrap}.affiliate-link-display{margin-top:12px}.affiliate-link-help{color:var(--muted-foreground);margin-bottom:6px;font-size:.75rem}.affiliate-code-text--link{font-size:.75rem}.affiliate-code-pending,.portal-preview-note{color:var(--muted-foreground);font-size:.8rem}.portal-summary-emphasis{color:var(--foreground)}.portal-affiliate{grid-template-columns:1fr;gap:20px;display:grid}.payout-form{flex-direction:column;display:flex}.payout-label{color:var(--muted-foreground);margin-bottom:6px;font-size:.85rem;display:block}.payout-label--spaced{margin-top:12px}.payout-save-btn{align-self:flex-start;width:auto;margin-top:16px}#manage-sub-cancel-btn,#manage-sub-confirm-btn{width:auto}.payout-status{min-height:1.2em;margin-top:8px;font-size:.85rem}.payout-status.success{color:#4caf50}.payout-status.error{color:#e06b8a}@media (width<=600px){.portal-affiliate{grid-template-columns:1fr}.affiliate-code-display{flex-direction:column;align-items:stretch;gap:10px}.affiliate-code-text{text-align:left;font-size:1rem}.affiliate-copy-btn{align-self:flex-start}}.campus-gate-overlay{z-index:100;backdrop-filter:blur(8px);background:#050208f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.campus-gate-content{text-align:center;max-width:440px;padding:40px 24px}.campus-gate-content h2{margin-bottom:12px;font-size:1.6rem}.campus-gate-content p{color:#999;margin-bottom:28px;line-height:1.6}.campus-gate-content .portal-btn{width:auto;padding:14px 32px;display:inline-block}@media (width<=600px){.portal-quick-links{grid-template-columns:1fr}.portal-dashboard{padding:100px 16px 60px}.portal-container{padding:100px var(--space-5)60px}.portal-hero-top{flex-direction:column;gap:12px}.portal-primary-cta{padding:20px}.portal-primary-cta-content{gap:14px}.portal-primary-icon,.portal-primary-icon img{width:40px;height:40px}}.portal-area-header{align-items:center;gap:12px;margin:8px 0 16px;display:flex}.portal-area-icon img{filter:invert()opacity(.5);width:28px;height:28px;display:block}.portal-area-title{color:#fff;margin:0;font-size:1.3rem;font-weight:700}