body:has(#hub:not(.hidden)){background:#f7f8fa}body:has(#hub:not(.hidden)) header{border-bottom:1px solid #e9ecee;background:#fff;padding:22px max(28px,calc((100vw - 1480px)/2))}body:has(#hub:not(.hidden)) main.olymp{max-width:1480px;padding:24px 28px 48px}#hub .lead-area{margin:8px 0 28px;align-items:center}#hub .lead-area h1{font-size:30px;letter-spacing:-1px;margin:8px 0}#hub #school{font-size:13px;color:#829088;margin:0}#hub .lead-area>.eyebrow{font-size:9px}#hub .lead-area>label{font-size:11px;color:#6e7b73;min-width:260px}#hub #children{background:#fff;border:1px solid #e0e6e2;border-radius:11px;color:#304a3d;font-size:13px;padding:12px;margin-top:7px;max-width:380px}#hub .hub-shell{display:grid;grid-template-columns:205px minmax(0,1fr);gap:28px}#hub .portal-tabs{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;margin:0;padding:20px 14px;border:1px solid #e7ece9;border-radius:18px;background:#fff;align-self:start;position:sticky;top:20px}#hub .portal-tabs button{flex:none;display:flex;align-items:center;justify-content:flex-start;gap:11px;padding:14px 12px;border:0;border-radius:10px;font-size:13px;font-weight:600;min-height:46px;box-shadow:none;background:#eaf3ed;color:#24563d}#hub .portal-tabs button.secondary{background:transparent;color:#718077}#hub .portal-tabs button:hover{background:#f0f5f1;color:#214f3c}#hub .nav-icon{font-size:21px;width:24px;font-weight:400}#hub .nav-caption{font-size:9px;letter-spacing:1.6px;color:#9aa59e;padding:0 12px 14px}#hub .nav-note{font-size:12px;color:#9aa69d;line-height:1.8;border-top:1px solid #edf1ed;margin:28px 12px 0;padding:22px 0 4px}#hub .hub-content{min-width:0}#hub .hub-banner{display:flex;align-items:center;position:relative;overflow:hidden;isolation:isolate;min-height:256px;padding:32px 38px;background:#efe8dc;border:1px solid #e9e3d9;border-radius:20px;box-sizing:border-box}#hub .hub-banner>div{z-index:2}#hub .hub-banner img{position:absolute;width:62%;height:100%;right:0;top:0;object-fit:cover;object-position:center;z-index:-2}#hub .hub-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#efe8dc 30%,#efe8dcaa 50%,transparent 72%);z-index:-1}#hub .hub-banner .eyebrow{font-size:9px;letter-spacing:1.7px;color:#737959!important}#hub .hub-banner h2{font-size:30px;line-height:1.16;letter-spacing:-1px;color:#244934;margin:15px 0 12px}#hub .hub-banner p{font-size:12px;line-height:1.7;color:#7b826e;margin:0}#hub .hub-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 28px}#hub .hub-metric{display:flex;align-items:center;gap:14px;padding:20px;background:white;border:1px solid #e7ece8;border-radius:14px}#hub .metric-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#f0f5f1;color:#5e7b67;font-size:21px}#hub .hub-metric strong{display:block;font-size:25px;font-weight:650;line-height:1.2;letter-spacing:-.6px;color:#2a4937}#hub .hub-metric small{display:block;font-size:11px;color:#93a097;margin-top:4px}#hub .section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}#hub .section-heading h2{font-size:19px;letter-spacing:-.4px;margin:0}#hub .section-heading>span{font-size:12px;color:#96a197}#hub #events{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}#hub .poster{position:relative;border:1px solid #e4eae5!important;border-radius:18px!important;padding:24px!important;box-shadow:0 4px 15px #243c2d03}#hub .poster h2{font-size:20px!important;line-height:1.35;margin:14px 0 12px;letter-spacing:-.4px}#hub .poster>p{font-size:12px;line-height:1.65}#hub .poster .event-mode{font-size:10px!important;padding:6px 10px!important;background:#eff5f1!important;color:#58765e!important}#hub .poster .subject-row{border:1px solid #e7ede8;background:#f9fbf9!important;border-radius:12px;padding:16px!important}#hub .subject-row strong{font-size:13px}#hub .subject-row p{font-size:12px;color:#88968b!important}#hub .subject-row .action{min-height:43px;width:100%;font-size:12px;background:#214f3c;border-color:#214f3c}#hub .demo-tag{display:inline-block;background:#faf2df;color:#9b7b34;font-size:9px;padding:6px 9px;border-radius:6px;letter-spacing:.7px;font-weight:650}#hub .empty-panel{grid-column:1/-1;text-align:center;padding:42px;background:#fff;border:1px dashed #d8e2da;border-radius:16px}#hub .empty-panel strong{display:block;font-size:16px;color:#49624f;margin-bottom:10px}#hub .empty-panel p{margin:auto;font-size:12px;color:#92a094}#hub #news{margin-top:0}#hub .story{padding:24px 0}#hub .story h2{font-size:18px}#hub .story p{font-size:13px;color:#7b8a80}#hub .profile-hero{background:#fff!important;color:#254934!important;border:1px solid #e3eae4;padding:30px;border-radius:18px}#hub .profile-hero p{color:#88998c!important;font-size:12px}#hub .profile-hero h2{font-size:25px;letter-spacing:-.7px}#hub .profile-stat{border:1px solid #e3eae4;border-radius:14px;padding:24px}#hub .profile-stat strong{color:#31563d}#hub .profile-stat span{font-size:12px;color:#8c9b90}#hub #student-profile .sheet{border-color:#e3eae4;font-size:13px}#hub #student-profile textarea{background:white;border:1px solid #dce5de;border-radius:10px;padding:13px}#hub .actions .action{font-size:12px;min-height:42px}header #logout{background:#fff;border-color:#e0e6e1;color:#677b6b;min-height:42px;font-size:12px;border-radius:10px}
body:has(#exam:not(.hidden)){background:#f7f9f8}#exam .exam-header{border:1px solid #e3eae5;padding:18px 22px;border-radius:16px}#exam .exam-header strong{font-size:16px}#exam .exam-layout{grid-template-columns:minmax(0,1fr) 240px;gap:20px}#exam .exam-layout>.sheet{border-color:#e3eae5;border-radius:18px}#exam #question-title{font-size:24px!important;line-height:1.5;font-weight:650;letter-spacing:-.4px;margin-bottom:24px}#exam .answer{background:#fff;border:1px solid #e2e9e3;padding:19px;border-radius:12px;transition:background .15s,border-color .15s}#exam .answer:has(input:checked){background:#f0f7f1;border-color:#72997a}#exam .answer span{font-size:15px;font-weight:500}#exam .qnav{grid-template-columns:repeat(4,1fr)}#exam .qnav button{border-color:#e1e8e2;color:#85968a;font-size:13px}#exam .qnav button.done{background:#edf6ee;color:#48764f}#exam .qnav button.current{border-color:#50865b;color:#315c3b}#exam #submit{width:100%;background:#214f3c;border-color:#214f3c;font-size:12px}#exam .timer{font-size:24px;background:#eef5ef;color:#456e4b}.olymp .learning-dialog{border:1px solid #e2e9e3;box-shadow:0 24px 100px #173d2c25;border-radius:22px}.olymp .learning-dialog h1{font-size:28px}.olymp .learning-dialog::backdrop{background:#193b2c65;backdrop-filter:blur(4px)}
@media(max-width:900px){#hub .hub-shell{grid-template-columns:1fr;gap:18px}#hub .portal-tabs{position:static;flex-direction:row;padding:7px;border-radius:12px;gap:5px}#hub .portal-tabs button{flex:1;justify-content:center;padding:10px 5px;font-size:12px}#hub .nav-caption,#hub .nav-note{display:none}#hub .hub-banner{min-height:220px;padding:26px}#hub .hub-banner h2{font-size:25px}}@media(max-width:600px){body:has(#hub:not(.hidden)) main.olymp{padding:18px 16px}#hub .lead-area{align-items:stretch;gap:16px;margin:0 0 20px}#hub .lead-area h1{font-size:25px}#hub .lead-area>label{min-width:0}#hub #children{max-width:none;width:100%}#hub .nav-icon{font-size:17px;width:18px}#hub .hub-banner{min-height:195px;padding:23px}#hub .hub-banner h2{font-size:23px}#hub .hub-banner p{font-size:10px}#hub .hub-banner img{width:70%}#hub .hub-metrics{gap:8px;margin:14px 0 24px}#hub .hub-metric{display:block;padding:14px 10px}#hub .metric-symbol{display:none}#hub .hub-metric strong{font-size:23px}#hub .hub-metric small{font-size:9px}#hub .poster{padding:20px!important}#exam .exam-layout{grid-template-columns:1fr}#exam .exam-layout aside{order:0}#exam .qnav{grid-template-columns:repeat(6,1fr)}#exam #question-title{font-size:20px!important}}

/* Generated illustration collection: discovery and practice. */
#hub .hub-banner{background:#eaf5ef;border-color:#dbece1;min-height:280px}
#hub .hub-banner img{width:100%;height:100%;object-fit:cover;object-position:center 52%}
#hub .hub-banner:after{background:linear-gradient(90deg,#eaf5ef 20%,#eaf5eef2 37%,#eaf5ef40 60%,transparent 75%)}
#hub .hub-banner h2{color:#174b38;font-size:34px;line-height:1.18}
#hub .hub-banner p{color:#547566}
#hub .poster:before{content:'';display:block;height:172px;margin:-24px -24px 20px;border-radius:17px 17px 0 0;background:#e0f1e7 url("./practice-cover-v4.2419b030ceb9.png") center 46%/cover no-repeat}
#hub .poster{overflow:hidden}
#hub .poster h2{margin-top:12px}
@media(max-width:600px){#hub .hub-banner{min-height:235px}#hub .hub-banner h2{font-size:25px;max-width:245px}#hub .hub-banner img{opacity:.7;object-position:60% center}#hub .hub-banner:after{background:linear-gradient(90deg,#eaf5ef 8%,#eaf5efcc 48%,transparent)}#hub .poster:before{margin:-20px -20px 18px;height:155px}}

/* Profile is part of the same illustration system as the dashboard. */
#hub .profile-hero{position:relative;overflow:hidden;isolation:isolate;min-height:155px;padding-right:32%;background:#eaf5ef!important}
#hub .profile-hero:after{content:'';position:absolute;z-index:-1;inset:0 0 0 55%;background:linear-gradient(90deg,#eaf5ef,transparent 40%),url("./discovery-hero-v4.1a0cc2d88810.png") right center/cover no-repeat;opacity:.65}
#hub .profile-hero h2{line-height:1.3;overflow-wrap:break-word}
#hub .profile-hero p{color:#587365!important}
#hub #student-profile>nav button[aria-pressed=true]{background:#eaf3ed;color:#24563d;box-shadow:inset 0 0 0 1px #9cbaa6}
#hub .hub-banner img{object-fit:contain;object-position:right center;width:62%;background:#eaf5ef}
#hub .hub-banner:after{background:linear-gradient(90deg,#eaf5ef 30%,#eaf5efb3 47%,transparent 65%)}
@media(max-width:600px){#hub .profile-hero{padding:22px;min-height:145px}#hub .profile-hero:after{opacity:.2;inset:0 0 0 40%}#hub .profile-hero h2{font-size:23px}#hub .hub-banner img{width:65%;opacity:.45}#hub .hub-banner h2,#hub .hub-banner p{position:relative;z-index:1}}

@media(max-width:600px){#hub .portal-tabs .nav-icon{display:none}#hub .portal-tabs button{white-space:nowrap;font-size:11px;gap:0;padding:10px 4px}}

#hub .poster[data-cover=demo]:before{background:#172544 url("./demo-clock-v1.7a68beef766d.svg") center/cover no-repeat}
#hub .poster[data-cover=math]:before{background:#e8eee7 url("./math-grid-v2.efccae1a4f2f.svg") center/cover no-repeat}

/* C-1: real event data (grades, subjects, questions, minutes) over the text-free cover. */
#hub .poster-banner{position:absolute;z-index:1;left:0;right:0;top:0;height:172px;box-sizing:border-box;padding:0 24px;display:flex;flex-direction:column;justify-content:center;gap:7px;overflow:hidden;pointer-events:none}
#hub .poster-banner .pb-grade{font-size:12px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;color:#496d5d}
#hub .poster-banner .pb-subjects{max-width:62%;font-size:26px;line-height:1.14;font-weight:800;letter-spacing:-.5px;color:#1f4436;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
#hub .poster-banner .pb-meta{max-width:62%;font-size:13px;line-height:1.4;color:#496d5d}
@media(max-width:600px){#hub .poster-banner{height:155px;padding:0 20px}#hub .poster-banner .pb-subjects{font-size:22px}}

/* C-2: paid ("Tolandi") state of a registration and the return-from-Click banner. */
#hub .pay-state{margin:10px 0 12px;padding:12px 14px;border-radius:12px;background:#eaf6ee;border:1px solid #cfe6d6}
#hub .pay-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#hub .pay-badge{font-size:14px;font-weight:700;color:#1b6b3a}
#hub .pay-amount{font-size:12px;color:#4b6a57;font-variant-numeric:tabular-nums}
#hub .subject-row .pay-next{margin:8px 0 0;font-size:12px;line-height:1.65;color:#40604d!important}
#hub .pay-return{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:0 0 18px;padding:18px 20px;border-radius:16px;border:1px solid #cfe6d6;background:#eaf6ee;color:#1d4b33}
#hub .pay-return[data-kind=wait]{background:#eef3fb;border-color:#d3def0;color:#27406b}
#hub .pay-return[data-kind=warn]{background:#fff6e5;border-color:#f0dcae;color:#76510c}
#hub .pay-return[data-kind=info]{background:#f1f5f2;border-color:#dde6e0;color:#3b5546}
#hub .pr-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:#fff;font-size:18px;font-weight:800}
#hub .pr-text{flex:1 1 260px;min-width:0}
#hub .pr-text strong{display:block;margin-bottom:6px;font-size:19px;letter-spacing:-.3px}
#hub .pr-text p{margin:4px 0 0;font-size:13px;line-height:1.65;color:inherit!important}
#hub .pr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#hub .pr-actions .action{min-height:42px;padding:10px 16px;font-size:12px}

/* C-12: after the deadline there is no payment button, only this note. */
#hub .pay-closed{margin:10px 0 2px;padding:12px 14px;border-radius:12px;background:#fdf1ec;border:1px solid #f0d3c8}
#hub .pay-closed strong{display:block;font-size:13px;color:#8a3b1f}
#hub .subject-row .pay-closed p{margin:6px 0 0;font-size:12px;color:#8a5a49!important}
