:root{font-family:'Outfit',sans-serif;color:#2c2c2c;background:#f5f3ef;font-synthesis:none;text-rendering:optimizeLegibility;--red:#ff444f;--yellow:#f7da3b;--ink:#282623;--muted:#74716e;--line:#e8e4de;--paper:#fff;--serif:'Playfair Display',Georgia,serif}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 5% 10%,rgba(247,218,59,.14),transparent 36%),#f5f3ef}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(40,38,35,.12)}.brand img{display:block;width:190px;max-height:58px}.site-link,.help a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:4px}.site-link span{color:var(--red);margin-left:6px}.auth-layout{min-height:calc(100vh - 150px);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(50px,9vw,130px);padding:60px 6vw 78px}.welcome{position:relative;overflow:hidden;min-height:420px;padding:32px 0}.eyebrow{margin:0 0 16px;color:#8a5c28;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}.welcome h1,.dashboard-head h1{font:500 clamp(3rem,5vw,5.2rem)/.98 var(--serif);letter-spacing:-.04em;margin:0 0 24px;max-width:670px}.welcome h1 em{color:#b37a32;font-weight:400}.welcome>p:not(.eyebrow){font-size:1.12rem;line-height:1.7;color:#66615b;max-width:430px}.welcome-mark{position:absolute;right:4%;bottom:-120px;color:rgba(255,68,79,.08);font:500 25rem/.8 var(--serif);pointer-events:none}.login-card,.panel{position:relative;background:var(--paper);border:1px solid rgba(44,44,44,.07);border-radius:14px;box-shadow:0 20px 70px rgba(52,43,31,.08)}.login-card{padding:clamp(28px,4vw,48px);display:flex;flex-direction:column}.login-card h2,.panel h2{font:500 2rem/1.1 var(--serif);margin:0 0 8px}.muted{color:var(--muted);margin:0 0 24px;line-height:1.55}.login-card label{font-size:.85rem;font-weight:600;margin:14px 0 7px}.login-card input{font:inherit;width:100%;height:50px;border:1px solid #d8d4cf;border-radius:8px;background:#fff;padding:0 13px;outline:none}.login-card input:focus{border-color:#b37a32;box-shadow:0 0 0 3px rgba(179,122,50,.14)}.button{font:600 .95rem 'Outfit',sans-serif;min-height:48px;border-radius:8px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button-primary{margin-top:24px;border:0;background:var(--red);color:#fff}.button-primary:hover{background:#e83c47}.button-outline{border:1px solid #d9d4cd;background:transparent;color:var(--ink)}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;color:#625e59;padding:17px 0 6px;cursor:pointer;font:500 .87rem 'Outfit',sans-serif;align-self:flex-start}.help{font-size:.84rem;color:#77736d;margin:24px 0 0}.message{min-height:1.4em;font-size:.9rem;color:#9d332f;margin:12px 0 0}.message.success{color:#276342}.hidden{display:none!important}.dashboard{padding:54px 0 76px}.dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:34px}.dashboard-head h1{font-size:clamp(2.8rem,4vw,4rem);margin-bottom:12px}.dashboard-head .eyebrow{margin-bottom:10px}.dashboard-head .muted{margin:0}.notice{background:#fff7dc;border:1px solid #ead792;border-radius:10px;padding:16px 20px;margin-bottom:22px;color:#655626}.student-content{display:grid;gap:22px}.billing-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{padding:26px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-title .eyebrow{margin-bottom:8px}.panel h2{font-size:1.75rem}.card-list{display:grid;gap:10px}.data-card{border:1px solid var(--line);border-radius:9px;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.data-card strong{display:block;font-weight:600}.data-card small{display:block;color:var(--muted);font-size:.82rem;margin-top:4px}.data-card .amount{white-space:nowrap;font-weight:600}.pill{display:inline-flex;border-radius:30px;padding:4px 9px;background:#f0eee9;color:#55504b;font-size:.72rem;font-weight:600;margin-top:8px}.pill.active,.pill.paid{background:#e6f3e9;color:#276342}.pill.pending,.pill.open{background:#fff3d6;color:#865f19}.pill.expired,.pill.revoked,.pill.blocked{background:#fde8e7;color:#9d332f}.empty{color:#827d77;font-size:.9rem;padding:12px 0;margin:0}.data-link{color:#9f342f;text-decoration-thickness:1px;text-underline-offset:3px;font-size:.84rem;font-weight:600;white-space:nowrap}.footer{border-top:1px solid rgba(40,38,35,.12);min-height:58px;display:flex;align-items:center;justify-content:space-between;color:#77736d;font-size:.78rem}.footer span:first-child{font-weight:600;color:#514d48}
.reset-layout{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:50px 16px}.reset-card{width:min(100%,500px)}
@media(max-width:850px){.auth-layout{grid-template-columns:1fr;gap:14px;padding:36px 4vw 56px}.welcome{min-height:auto;padding:20px 0 26px}.welcome-mark{right:3%;bottom:-110px;font-size:18rem}.welcome h1{max-width:620px}.login-card{max-width:560px}.billing-grid{grid-template-columns:1fr}.dashboard-head{align-items:flex-start}.dashboard-head .button{margin-top:12px}}
@media(max-width:560px){.shell{width:min(100% - 28px,1180px)}.topbar{height:74px}.brand img{width:160px}.site-link{font-size:.8rem}.auth-layout{padding:26px 0 42px}.welcome{padding:14px 0 20px}.welcome h1{font-size:clamp(2.8rem,13vw,4rem)}.welcome>p:not(.eyebrow){font-size:1rem}.login-card{padding:25px 20px}.dashboard{padding:34px 0 48px}.dashboard-head{display:block}.dashboard-head .button{margin-top:19px}.panel{padding:21px 17px}.data-card{align-items:flex-start}.footer{align-items:flex-start;justify-content:center;flex-direction:column;gap:4px;padding:14px 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
