@font-face{font-family:Playfair Display;font-style:normal;font-weight:500 700;font-display:swap;src:url("./media/playfair-display-latin-4OM7HYDI.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Quicksand;font-style:normal;font-weight:500 700;font-display:swap;src:url("./media/quicksand-latin-B2JDMBHT.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 700;font-display:swap;src:url("./media/source-sans-3-latin-ILI3Y2TR.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-primary: #840243;--color-primary-hover: #650133;--color-primary-active: #4d0127;--color-primary-soft: #f9edf3;--color-accent-gold: #f7c800;--color-accent-gold-soft: #fff8db;--color-accent-sky: #29abe2;--color-accent-navy: #001b81;--color-slate-dark: #2c3e50;--color-bg: #f5f3f4;--color-surface: #ffffff;--color-surface-subtle: #faf8f9;--color-heading: #1e242b;--color-text: #333333;--color-text-muted: #4b5563;--color-border: #d6cfd3;--color-border-subtle: #e9e3e6;--color-focus-ring: #0284c7;--color-error: #b91c1c;--color-error-bg: #fef2f2;--color-error-border: #f8b4b4;--color-warning: #78350f;--color-warning-bg: #fffbeb;--color-warning-border: #fcd34d;--color-success: #1b5e20;--color-success-bg: #f0fdf4;--color-success-border: #a5d6a7;--font-heading: "Playfair Display", Georgia, "Times New Roman", serif;--font-sans: "Source Sans 3", "Quicksand", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 2px 8px rgba(30, 36, 43, .05);--shadow-md: 0 8px 30px rgba(30, 36, 43, .08);--brand-stripe: linear-gradient( to right, var(--color-accent-gold) 0 25%, var(--color-accent-sky) 25% 50%, var(--color-accent-navy) 50% 75%, var(--color-primary) 75% 100% )}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;color:var(--color-text);background-color:var(--color-bg);background-image:radial-gradient(circle at 10% 15%,rgba(132,2,67,.06) 0%,transparent 40%),radial-gradient(circle at 90% 85%,rgba(44,62,80,.06) 0%,transparent 40%),radial-gradient(rgba(132,2,67,.045) 1px,transparent 1px);background-size:100% 100%,100% 100%,24px 24px}.skip-link{position:absolute;top:-3.5rem;left:var(--space-4);z-index:1000;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:700;font-size:var(--text-sm);text-decoration:none;transition:top .15s ease}.skip-link:focus{top:var(--space-3);outline:3px solid var(--color-accent-gold);outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4);gap:var(--space-4)}.auth-shell{width:100%;max-width:28.5rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.auth-shell-wide{max-width:34rem}.auth-aside{display:none}.auth-brand{display:flex;align-items:center;justify-content:center;min-height:54px;padding:var(--space-2) var(--space-4);background:var(--brand-stripe) bottom / 100% 4px no-repeat,var(--color-primary)}.auth-brand img{display:block;width:126px;max-width:100%;height:auto}.auth-card{width:100%;background:var(--color-surface)}.auth-card-body{padding:var(--space-6) var(--space-5)}@media (min-width: 900px){.auth-page{padding:var(--space-8) var(--space-6)}.auth-shell{max-width:56rem;display:grid;grid-template-columns:21rem minmax(0,1fr);align-items:stretch}.auth-shell-wide{max-width:62rem;grid-template-columns:20rem minmax(0,1fr)}.register-shell{max-width:42rem;grid-template-columns:minmax(0,1fr)}.register-shell.auth-shell-wide{max-width:50rem}.auth-aside{display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-8) var(--space-6);background:linear-gradient(160deg,var(--color-primary) 0%,#5a012d 60%,#2c1628 100%);color:#fff;border-right:1px solid rgba(255,255,255,.1)}.auth-aside-logo{display:block;width:156px;height:auto;margin-bottom:var(--space-4)}.brand-stripe-bar{height:4px;width:4.5rem;border-radius:2px;background:var(--brand-stripe);margin-bottom:var(--space-6)}.auth-aside-greeting{margin:0 0 var(--space-2);color:var(--color-accent-gold);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em}.auth-aside-title{margin:0 0 var(--space-3);font-family:var(--font-heading);font-size:1.5rem;font-weight:600;line-height:1.25;color:#fff}.auth-aside-text{margin:0;font-size:var(--text-sm);line-height:1.6;color:#ffffffe6}.auth-aside-list{list-style:none;margin:var(--space-8) 0 0;padding:var(--space-5) 0 0;border-top:1px solid rgba(255,255,255,.16);display:grid;gap:var(--space-3);font-size:var(--text-sm);color:#ffffffeb}.auth-aside-list li{display:flex;align-items:center;gap:var(--space-2)}.auth-aside-list li span{color:var(--color-accent-gold);font-weight:700}.auth-brand{min-height:4px;padding:0;background:var(--brand-stripe)}.auth-brand img{display:none}.register-shell .auth-brand{min-height:54px;padding:var(--space-2) var(--space-4);background:var(--brand-stripe) bottom / 100% 4px no-repeat,var(--color-primary)}.register-shell .auth-brand img{display:block}.auth-card-body{padding:var(--space-8) var(--space-8);max-width:30rem;margin:0 auto}.auth-card-wide .auth-card-body{max-width:38rem}.register-shell .auth-card-body{max-width:none}}.stepper-wrapper{margin-bottom:var(--space-6)}.stepper-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--text-sm)}.stepper-count{font-weight:700;color:var(--color-primary)}.stepper-current-name{font-weight:600;color:var(--color-text-muted)}.stepper-track{width:100%;height:4px;border-radius:999px;background:var(--color-border-subtle);overflow:hidden;margin-bottom:var(--space-3)}.stepper-fill{height:100%;background:var(--color-primary);border-radius:999px;transition:width .25s ease}.auth-stepper{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.auth-step{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.auth-step-dot{width:1.65rem;height:1.65rem;border-radius:999px;display:grid;place-items:center;font-size:var(--text-xs);font-weight:700;background:var(--color-surface-subtle);color:var(--color-text-muted);border:1px solid var(--color-border);flex:0 0 auto}.auth-step.is-active{color:var(--color-heading);font-weight:700}.auth-step.is-active .auth-step-dot{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.auth-step.is-complete{color:var(--color-text)}.auth-step.is-complete .auth-step-dot{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}@media (max-width: 520px){.auth-step-label{display:none}}.form-heading{margin-bottom:var(--space-5)}.form-heading h1{margin:0 0 var(--space-2);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;line-height:1.2;letter-spacing:-.015em;color:var(--color-heading)}.form-heading .subtitle{margin:0;color:var(--color-text-muted);font-size:var(--text-base);line-height:1.5}.form-group-block{margin-bottom:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.form-group-heading{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.form-field{display:grid;gap:var(--space-1);margin-bottom:var(--space-4)}.form-field label{font-size:var(--text-sm);font-weight:600;color:var(--color-heading)}.required-mark{color:var(--color-primary);margin-left:2px}.optional-tag{font-weight:400;color:var(--color-text-muted);font-size:var(--text-xs)}.form-field input,.form-field select{width:100%;min-height:2.75rem;padding:.625rem var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-heading);font-family:inherit;font-size:var(--text-base);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.form-field input::placeholder{color:#767d87}.form-field input:hover,.form-field select:hover{border-color:#9ca3af}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #8402432e}.form-field input.is-invalid,.form-field select.is-invalid,.form-field input[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:var(--color-error);background-color:snow}.form-field input.is-invalid:focus,.form-field select.is-invalid:focus,.form-field input[aria-invalid=true]:focus,.form-field select[aria-invalid=true]:focus{box-shadow:0 0 0 3px #b91c1c2e}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:4.75rem}.password-toggle{position:absolute;right:var(--space-2);padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-primary);font-family:inherit;font-size:var(--text-xs);font-weight:700;cursor:pointer}.password-toggle:hover{background:var(--color-primary-soft)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.hint-inline{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.4}.field-error{color:var(--color-error);font-size:var(--text-sm);font-weight:600;line-height:1.4}.form-note{color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-3) 0 var(--space-4);line-height:1.5}.email-context-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle)}.email-context-info{display:flex;flex-direction:column;min-width:0}.email-context-label{font-size:var(--text-xs);color:var(--color-text-muted)}.email-context-info strong{font-size:var(--text-sm);color:var(--color-heading);overflow-wrap:anywhere}.existing-student-callout{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary-soft);border-left:4px solid var(--color-primary);color:var(--color-heading)}.existing-student-icon{width:1.5rem;height:1.5rem;border-radius:999px;background:var(--color-primary);color:#fff;display:grid;place-items:center;font-size:var(--text-xs);font-weight:700;flex:0 0 auto}.existing-student-callout strong{display:block;font-size:var(--text-sm);margin-bottom:2px}.existing-student-callout p{margin:0;font-size:var(--text-sm);color:var(--color-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:2.875rem;padding:.7rem var(--space-5);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-family:inherit;font-size:var(--text-base);font-weight:700;text-decoration:none;cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 4px 12px #84024338}.btn:active:not(:disabled){background:var(--color-primary-active);transform:translateY(1px)}.btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:none}.btn-inline{width:auto}.btn-sm{min-height:2.375rem;padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.btn-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:portal-spin .65s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}.form-actions-stack{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.link-btn{border:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);font:inherit;font-size:var(--text-sm);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--color-primary-hover);background:var(--color-primary-soft)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);margin:var(--space-3) 0 var(--space-4);line-height:1.5}.alert-content strong{display:block;font-weight:700;margin-bottom:2px}.alert-content p{margin:0}.alert-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.alert-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.alert-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.alert-info{background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text)}.signup-prompt{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.signup-prompt a{color:var(--color-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px}.signup-prompt a:hover{color:var(--color-primary-hover)}.auth-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.app-version{font-size:var(--text-xs);color:var(--color-text-muted);opacity:.7;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:500}.app-shell{min-height:100vh;display:flex;flex-direction:column}.profile-shell{background:var(--color-bg);color:var(--color-text)}.app-header{background:var(--color-surface);border-bottom:4px solid transparent;border-image:var(--brand-stripe) 1;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:50}.portal-header-inner{width:min(100% - 2rem,1080px);min-height:64px;margin:0 auto;padding:var(--space-2) 0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.profile-brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-heading);text-decoration:none}.profile-brand .brand-mark{display:grid;place-items:center;width:112px;height:40px;border-radius:var(--radius-sm);background:var(--color-primary);padding:4px 10px}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-text strong{font-size:var(--text-base);font-weight:700;color:var(--color-heading)}.brand-text small{color:var(--color-text-muted);font-size:.68rem;font-weight:700;letter-spacing:.08em}.portal-nav{display:flex;align-items:center;gap:var(--space-1)}.portal-nav a,.portal-nav button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.5rem;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:transparent;color:var(--color-text);font:inherit;font-size:var(--text-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease}.portal-nav a svg,.portal-nav button svg{width:1rem;height:1rem;flex:0 0 auto}.portal-nav a:hover,.portal-nav button:hover{background:var(--color-primary-soft);color:var(--color-primary)}.portal-nav a.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.portal-nav-divider{width:1px;height:1.25rem;background:var(--color-border-subtle);margin:0 var(--space-1)}.home-main,.profile-main{width:min(100% - 2rem,1080px);margin:0 auto;padding:var(--space-8) 0 var(--space-12);flex:1}.home-intro,.profile-intro{margin-bottom:var(--space-6)}.home-eyebrow,.profile-overline{margin:0 0 var(--space-1);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.home-intro h1,.profile-intro h1{margin:0;color:var(--color-heading);font-family:var(--font-heading);font-size:clamp(1.85rem,3.5vw,2.5rem);font-weight:600;line-height:1.15}.home-intro>p:last-child,.profile-intro>p:last-child{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-base)}.profile-warning-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-5);border:1px solid var(--color-warning-border);border-left:4px solid var(--color-accent-gold);border-radius:var(--radius-md);background:var(--color-warning-bg)}.profile-warning-body{flex:1;min-width:240px}.profile-warning-banner h2{margin:0;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-heading)}.profile-warning-banner p{margin:var(--space-1) 0 0;color:var(--color-text);font-size:var(--text-sm)}.portal-update{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border-subtle);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.portal-update-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary)}.portal-update-icon svg{width:22px;height:22px}.portal-update h2{margin:0;color:var(--color-heading);font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600}.portal-update-content>p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-base)}.home-cards-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.materials-card{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.materials-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-primary);border:1px solid var(--color-border-subtle)}.materials-icon svg{width:22px;height:22px}.materials-body{flex:1;display:flex;flex-direction:column;height:100%}.materials-card h2{margin:0;color:var(--color-heading);font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600}.materials-description{margin:var(--space-1) 0 var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}.materials-empty{margin:auto 0 0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent-gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--text-sm)}.quick-profile-footer{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.status-chip{display:inline-block;padding:.25rem .6rem;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);font-weight:700}.status-chip-pending{background:var(--color-warning-bg);color:var(--color-warning)}.card-action-link{color:var(--color-primary);font-size:var(--text-sm);font-weight:700;text-decoration:none}.card-action-link:hover{text-decoration:underline}.profile-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--space-6);align-items:start}.identity-card,.detail-card,.profile-state{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.identity-accent{height:64px;background:linear-gradient(135deg,var(--color-primary) 0%,#5a012d 100%)}.identity-content{padding:0 var(--space-5) var(--space-5)}.avatar{display:grid;place-items:center;width:64px;height:64px;margin:-32px 0 var(--space-3);border:3px solid var(--color-surface);border-radius:var(--radius-md);background:var(--color-slate-dark);color:#fff;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600}.identity-card h2{margin:0;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-heading);overflow-wrap:anywhere}.identity-email{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.identity-divider{height:1px;background:var(--color-border-subtle);margin:var(--space-4) 0}.identity-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);font-weight:700}.identity-badge-pending{background:var(--color-warning-bg);color:var(--color-warning)}.identity-sidebar-action{margin-top:var(--space-4)}.profile-sections{display:grid;gap:var(--space-4)}.detail-card{padding:var(--space-6)}.detail-heading{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.detail-heading h2{margin:0;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-heading)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-6);row-gap:var(--space-4);margin:var(--space-4) 0 0}.detail-full{grid-column:1 / -1}.detail-item dt{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.detail-item dd{margin:0;color:var(--color-heading);font-size:var(--text-base);font-weight:600;overflow-wrap:anywhere}.detail-item dd.value-pending{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-warning-bg);color:var(--color-warning);font-size:var(--text-sm)}.legacy-migration-notes{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-subtle);border-left:3px solid var(--color-primary);display:grid;gap:var(--space-1)}.legacy-note-item{margin:0;color:var(--color-text);font-size:var(--text-sm)}.profile-edit-fields{margin-top:var(--space-4)}.profile-help{margin:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--text-sm)}.profile-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3)}.profile-state{padding:var(--space-8);color:var(--color-text-muted);text-align:center}.profile-error strong{display:block;color:var(--color-heading);font-size:var(--text-lg);margin-bottom:var(--space-1)}.profile-error p{margin:0 0 var(--space-4);font-size:var(--text-sm)}.profile-footer{width:min(100% - 2rem,1080px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-5) 0;border-top:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}@media (max-width: 820px){.home-cards-grid,.profile-layout{grid-template-columns:1fr}}@media (max-width: 600px){.auth-page{padding:var(--space-3)}.auth-card-body{padding:var(--space-5) var(--space-4)}.form-grid,.detail-grid{grid-template-columns:1fr;gap:0}.detail-grid{row-gap:var(--space-3)}.detail-full{grid-column:auto}.portal-header-inner{flex-wrap:wrap}.portal-nav-divider{display:none}.home-main,.profile-main{padding:var(--space-5) 0 var(--space-8)}.portal-update,.materials-card,.detail-card,.profile-warning-banner{padding:var(--space-4)}.profile-actions .btn-inline{width:100%}}.terms-choice{margin:1.25rem 0}.terms-choice-row{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;min-height:44px;color:#302631}.terms-choice-row input{width:20px;height:20px;margin:0 .45rem 0 0;accent-color:#840243;cursor:pointer}.terms-choice-row label{cursor:pointer;padding:.65rem 0}.terms-choice-row input:disabled{opacity:.5;cursor:not-allowed}.terms-choice-row:hover input:not(:disabled){outline:2px solid #e1b3cb;outline-offset:2px}.terms-link{border:0;padding:.65rem 0;background:transparent;color:#840243;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.terms-new-tab{display:inline-block;margin:.2rem 0 .3rem 2rem;color:#50445a;font-size:.85rem}.terms-choice .field-error{margin:.4rem 0}.terms-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#160f1ead;backdrop-filter:blur(3px);animation:terms-appear .18s ease-out}.terms-dialog{width:min(100%,600px);max-height:min(80vh,850px);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 20px 70px #0000004d}.terms-header{padding:1.5rem 1.75rem 1rem;border-bottom:1px solid var(--color-border-subtle)}.terms-header h2,.terms-page h1{margin:0;color:var(--color-heading);font-family:var(--font-heading);font-size:1.8rem;font-weight:600}.terms-header p{margin:.5rem 0;color:var(--color-text-muted)}.terms-header small,.terms-page small{color:var(--color-text-muted);overflow-wrap:anywhere}.terms-choice-row label small{display:block;overflow-wrap:anywhere}.terms-scroll{flex:1;min-height:0;overflow-y:auto;padding:1.25rem 1.75rem}.terms-section{border-left:4px solid #d3a600;padding:0 0 0 1rem;margin:0 0 1.5rem}.terms-section-orange{border-color:#c66a16}.terms-section-green{border-color:#288358}.terms-section-blue{border-color:#176ba1}.terms-section h3{margin:0 0 .5rem;color:var(--color-heading);font-family:var(--font-heading);font-size:1.15rem;font-weight:600}.terms-section p{margin:.45rem 0;color:var(--color-text)}.terms-closing{color:var(--color-primary);font-weight:600}.terms-actions{display:flex;gap:.75rem;padding:1rem 1.75rem;border-top:1px solid var(--color-border-subtle);background:var(--color-surface)}.terms-actions .btn{width:auto;flex:1}.terms-dialog :focus-visible,.terms-choice :focus-visible,.terms-page :focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}.terms-page{width:min(100% - 2rem,760px);margin:2rem auto;padding:clamp(1.25rem,4vw,2.5rem);border:1px solid var(--color-border-subtle);border-top:4px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.terms-page>a{display:inline-block;margin-bottom:1.5rem;color:var(--color-primary);font-weight:700;text-decoration:none}.terms-page>a:hover{text-decoration:underline}.terms-page .terms-copy{margin-top:2rem}@keyframes terms-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 600px){.terms-overlay{align-items:flex-end;padding:0}.terms-dialog{max-height:95dvh;border-radius:16px 16px 0 0}.terms-header,.terms-scroll,.terms-actions{padding-left:1.2rem;padding-right:1.2rem}}@media (prefers-reduced-motion: reduce){.terms-overlay{animation:none}}
