:root{font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;color:#1c2b36;background:#f3f5f7}*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden}a{color:#0d6b7c;text-decoration:none}.container{width:min(1200px,100%);margin:auto;padding:0 24px}.welcome-bar,.site-footer{background:#0b3d47;color:#cfe3e7}.welcome-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px 24px;font-size:13px}.welcome-inner p{margin:8px 0}.welcome-links{display:flex;gap:20px}.welcome-links a{color:#cfe3e7}.site-header{background:#fff}.header-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px 32px}.site-brand,.profile-link{display:flex;align-items:center;gap:12px;color:#0b3d47;min-width:0}.brand-mark{width:60px;height:60px;border-radius:14px;background:#fff;display:grid;place-items:center;flex:none;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:contain;display:block}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:26px;font-weight:900;white-space:nowrap}.brand-copy small,.profile-link small{color:#4f6470;font-size:12px}.search-form{display:flex;flex:1 1 320px;max-width:520px;min-width:0;border:2px solid #0d6b7c;border-radius:10px;overflow:hidden;background:white}.search-form input{min-width:0;flex:1;border:0;padding:0 14px;height:44px;font:inherit}.search-form button{border:0;background:#0d6b7c;color:white;padding:0 20px;font:inherit;font-weight:700}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.profile-link{color:#1c2b36;flex:none}.profile-link strong,.profile-link small{display:block}.avatar{width:42px;height:42px;border-radius:50%;background:#e6f1f3;color:#0d6b7c;display:grid;place-items:center}.main-nav{background:#0d6b7c}.nav-inner{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.nav-inner a{flex:none;padding:14px 18px;color:white;font-size:14px;white-space:nowrap}.nav-inner .is-current{background:#0b3d47;box-shadow:inset 0 -3px #f2a23a}.home-main{padding-top:24px;padding-bottom:44px;display:flex;flex-direction:column;gap:22px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:20px}.hero-banner{min-height:340px;border-radius:16px;background:#0b3d47;color:white;padding:38px 42px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.decoration{position:absolute;pointer-events:none;border-radius:50%}.decoration-one{right:-62px;top:-72px;width:300px;height:300px;border:42px solid #14606f}.decoration-two{right:115px;bottom:-115px;width:210px;height:210px;background:#f2a23a;opacity:.88}.hero-copy{position:relative;max-width:610px}.hero-tag{display:inline-block;background:#f2a23a;color:#1c2b36;font-size:13px;font-weight:700;padding:5px 12px;border-radius:999px}.hero-banner h1{font-size:40px;line-height:1.25;margin:16px 0}.hero-banner p{max-width:600px;margin:0;color:#cfe3e7;font-size:16px;line-height:1.8}.hero-cta{position:relative;align-self:flex-start;background:#f2a23a;color:#1c2b36;border-radius:9px;padding:12px 24px;font-weight:700}.hero-side{display:flex;flex-direction:column;gap:16px;min-width:0}.panel{background:white;border:1px solid #e3e8ec;border-radius:16px;min-width:0}.announcement-panel,.learning-stats,.continue-panel{padding:18px 20px}.announcement-panel{flex:1}.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.panel-heading h2,.learning-stats h2,.module-tile h2,.speaking-strip h2{font-size:18px;margin:0}.panel-heading a{font-size:13px}.announcement-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}.announcement-list a{display:flex;gap:10px;color:#1c2b36;font-size:14px;line-height:1.5}.announcement-list time{color:#4f6470;font-size:12px;flex:none}.empty-inline,.empty-state{color:#4f6470;font-size:14px;line-height:1.7}.learning-stats h2{margin-bottom:14px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;text-align:center}.stats-grid a{background:#f3f5f7;border-radius:10px;padding:10px 4px;color:#1c2b36;display:flex;flex-direction:column;gap:4px}.stats-grid strong{font-size:22px;color:#0d6b7c}.stats-grid span{font-size:12px;color:#4f6470}.continue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:14px}.continue-card{display:flex;gap:12px;align-items:center;color:#1c2b36;border:1px solid #e3e8ec;border-radius:12px;padding:12px;min-width:0}.module-chip{width:72px;height:54px;flex:none;border-radius:8px;color:white;font-size:12px;display:grid;place-items:center}.continue-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}.continue-info strong{font-size:14px;overflow-wrap:anywhere}.continue-info small{font-size:12px;color:#4f6470}.progress-track,.progress-fill{height:6px;border-radius:4px;display:block}.progress-track{background:#e3e8ec;overflow:hidden}.book{background:#9a5f10}.media{background:#2f7a58}.course{background:#25628a}.language{background:#7d4772}.exam{background:#a8452f}.module-section{padding:16px;display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px}.module-tile{border-radius:12px;padding:22px;min-height:190px;color:white;display:flex;flex-direction:column;gap:12px}.module-tile h2{font-size:24px}.module-tile p{font-size:13px;line-height:1.6;margin:0}.module-tile>a{margin-top:auto;color:white;font-weight:700}.resource-empty{min-height:100px;display:grid;place-items:center;text-align:center;color:#4f6470;padding:20px}.exam-section .module-tile{min-height:240px}.module-tags{display:flex;flex-wrap:wrap;gap:8px}.module-tags a{color:white;padding:5px 9px;border-radius:6px;background:#ffffff2b}.exam-grid{min-width:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.exam-card{border:1px solid #e3e8ec;border-radius:12px;padding:15px;display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}.exam-level{color:#a8452f;background:#f8e9e5;border-radius:999px;padding:4px 10px;font-size:12px}.exam-card h3{font-size:16px;margin:0;overflow-wrap:anywhere}.exam-card p{font-size:13px;color:#4f6470;margin:0}.exam-card>a{background:#a8452f;color:white;padding:8px 16px;border-radius:8px;font-size:14px}.speaking-strip{background:white;border:1px solid #e3e8ec;border-radius:16px;padding:20px 24px;display:flex;justify-content:space-between;gap:16px}.speaking-strip p{font-size:14px;color:#4f6470}.site-footer .footer-inner{padding-top:28px;padding-bottom:28px;display:flex;justify-content:space-between;gap:18px 40px;flex-wrap:wrap;font-size:13px;line-height:1.9}.footer-inner>div{display:flex;flex-direction:column}.footer-inner strong{font-size:16px;color:white}.footer-meta{gap:3px}.footer-meta a{color:#cfe3e7;text-decoration:underline}.coming-soon{min-height:65vh;padding-top:80px}.coming-soon h1{font-size:34px;color:#0b3d47}.eyebrow{font-size:12px;color:#0d6b7c;font-weight:700}
@media(max-width:900px){.header-inner{flex-wrap:wrap;padding-top:16px;padding-bottom:16px}.search-form{order:3;flex-basis:100%;max-width:none}.profile-link{margin-left:auto}.hero-grid{grid-template-columns:1fr}.hero-side{display:grid;grid-template-columns:1fr 1fr}.module-section{grid-template-columns:minmax(190px,240px) minmax(0,1fr)}}
@media(max-width:700px){.container{padding-left:16px;padding-right:16px}.welcome-inner{align-items:flex-start;flex-direction:column;padding:4px 16px;gap:0}.header-inner{gap:14px}.brand-mark{width:48px;height:48px}.brand-copy strong{font-size:20px;white-space:normal}.brand-copy small{font-size:11px}.profile-link{gap:7px}.profile-link strong{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.avatar{width:36px;height:36px}.nav-inner{margin-right:-16px;padding-right:16px}.nav-inner a{padding:13px 15px}.home-main{padding-top:16px;gap:16px}.hero-banner{min-height:330px;padding:26px 22px}.hero-banner h1{font-size:30px}.hero-banner p{font-size:14px}.decoration-one{width:210px;height:210px;right:-82px}.decoration-two{right:35px;width:130px;height:130px;bottom:-78px}.hero-side{display:flex}.module-section{grid-template-columns:1fr;padding:12px;gap:10px}.module-tile{min-height:170px;padding:19px}.resource-empty{min-height:76px}.exam-section .module-tile{min-height:220px}.exam-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.exam-card{padding:12px}.continue-grid{grid-template-columns:1fr}.speaking-strip{flex-direction:column;padding:18px}}
.simple-header{background:#fff;border-bottom:1px solid #e3e8ec}.simple-header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:16px}.simple-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.simple-actions a{font-size:14px}.simple-register,.guest-register{background:#f2a23a;color:#1c2b36!important;padding:9px 16px;border-radius:9px;font-weight:700}.simple-main{min-height:65vh;padding-top:50px;padding-bottom:56px}.simple-footer{margin-top:auto}.form-card,.forbidden-card{width:min(500px,100%);margin:0 auto;background:#fff;border:1px solid #e3e8ec;border-radius:16px;padding:32px;box-shadow:0 10px 30px #0b3d470d}.form-card h1,.forbidden-card h1{margin:0 0 14px;color:#0b3d47;font-size:30px}.form-card .muted,.forbidden-card p{color:#4f6470;line-height:1.75}.form-card form{display:grid;gap:15px;margin-top:22px}.form-card label{display:grid;gap:6px;font-size:14px;color:#1c2b36}.form-card input,.form-card select,.form-card textarea{width:100%;min-height:42px;border:1px solid #cbd7dc;border-radius:8px;padding:9px 11px;font:inherit;background:white}.form-card input[type=hidden]{display:none}.form-card .primary,.forbidden-actions a{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 18px;border:0;border-radius:9px;background:#0d6b7c;color:#fff;font:inherit;font-weight:700;cursor:pointer}.form-card .form-foot{margin:18px 0 0;font-size:14px}.form-notices{padding:9px 12px;background:#e9f5f1;border-radius:8px;color:#245d46}.errorlist{margin:0;padding-left:18px;color:#a33a2a;font-size:13px}.forbidden-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.forbidden-actions a.secondary{background:#edf3f4;color:#0d6b7c}.guest-actions{gap:12px}.guest-actions>a{font-weight:700}.login-guide{background:#fff;border:1px solid #e3e8ec;border-radius:16px;padding:18px 20px}.login-guide p{font-size:14px;line-height:1.7;color:#4f6470}.login-guide>div{display:flex;align-items:center;gap:15px}.login-guide .hero-cta{padding:9px 20px}
@media(max-width:700px){.simple-header-inner{min-height:72px;align-items:flex-start;flex-direction:column;padding-top:12px;padding-bottom:12px}.simple-actions{gap:14px}.simple-main{padding-top:26px;padding-bottom:36px}.form-card,.forbidden-card{padding:22px 18px}.form-card h1,.forbidden-card h1{font-size:26px}}
.exam-grid .exam-empty{grid-column:1/-1}.speaking-strip .upcoming-label{align-self:center;border:1px dashed #9aa8b2;padding:8px 16px;border-radius:8px;font-weight:700;white-space:nowrap}.hero-banner h1 span{display:block;white-space:nowrap}@media(max-width:700px){.hero-banner h1{font-size:26px}}
.profile-actions{display:flex;align-items:center;gap:12px;flex:none}.profile-actions .profile-link{margin-left:0}.logout-form{margin:0;display:inline-flex}.logout-button{border:0;background:transparent;color:#0d6b7c;font:inherit;font-weight:700;cursor:pointer;padding:6px 0}.header-username{color:#1c2b36;font-size:14px}

.personal-panel { margin-bottom: 18px; padding: 20px; overflow-wrap: anywhere; }
.personal-nav { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 14px 0; }
.personal-nav a[aria-current="page"] { font-weight: 700; text-decoration: underline; }
.personal-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid #dce5eb; }
.personal-row h3, .personal-row p { margin: 0 0 5px; }
.personal-row button { cursor: pointer; }
.learning-media { display: block; max-width: 100%; max-height: 75vh; }
.learning-text { white-space: pre-wrap; line-height: 1.7; }
.module-main { padding-top: 24px; padding-bottom: 44px; min-height: 60vh; }
.module-panel { padding: clamp(14px, 3vw, 24px); margin-bottom: 16px; box-shadow: 0 4px 14px #0b3d4a0d; }
.module-panel h1, .module-panel h2 { margin: 0 0 14px; color: #0b3d4a; }
.pill-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.pill { padding: 7px 13px; border-radius: 999px; color: #0b3d4a; background: #edf3f4; overflow-wrap: anywhere; }
.pill[aria-current="page"] { color: #fff; background: #0b3d4a; font-weight: 700; }
.pill[aria-disabled="true"] { color: #65717a; background: #eff1f3; }
.arena-modes { padding-bottom: 12px; border-bottom: 1px solid #dce5eb; }
.arena-modes .pill[aria-current="page"], .module-button { background: #f2a23a; color: #1c2b36; font-weight: 700; }
.module-button { display: inline-block; border: 0; border-radius: 8px; padding: 8px 14px; font: inherit; cursor: pointer; }
.module-empty { color: #4f6470; padding: 28px; text-align: center; }
.paper-card form { margin: auto 0 0; }
.paper-card a.paper-details { color: #0d6b7c; background: transparent; padding: 0; }
.paper-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.paper-actions select { max-width: 100%; }

.learning-page-nav, .learning-page-jump {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
}

.learning-page-jump input { width: 5rem; }
.learning-page-nav progress { flex-basis: 100%; width: 100%; }
.learning-reader { max-width: 70ch; margin-inline: auto; }
.learning-reader .learning-text { line-height: 1.8; overflow-wrap: anywhere; }

.mistake-paper { margin: .7rem 0; padding: .85rem 1rem; border: 1px solid #e3e8ec; border-radius: .75rem; }
.mistake-paper summary { color: #175958; cursor: pointer; }
.mistake-paper summary span { display: block; margin: .3rem 0 0 1rem; color: #526971; font-size: .8125rem; }
.mistake-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.mistake-actions button { border: 0; border-radius: .4rem; padding: .4rem .6rem; background: #f8ead3; color: #603b17; cursor: pointer; }

.learning-stats .continue-grid { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.learning-stats .continue-card { padding: .55rem; }
.learning-stats .module-chip { width: 3.25rem; height: 2.2rem; }

.campus-welcome { min-width: 0; max-width: 100%; overflow: hidden; }
.campus-welcome p { width: max-content; white-space: nowrap; padding-left: 100%; box-sizing: content-box; margin: 0 0 .5rem; animation: campus-marquee 26s linear infinite; animation-delay: -10s; }
.campus-welcome:hover p { animation-play-state: paused; }
.campus-mark { flex: none; width: 48px; height: 48px; object-fit: contain; border-radius: 50%; }
@keyframes campus-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .campus-welcome p { width: auto; white-space: normal; animation: none; } }

.favorite-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.favorite-form { display: inline-flex; margin: 0; vertical-align: middle; }
.favorite-star { width: 2rem; height: 2rem; padding: 0; border: 1px solid #e3e8ec; border-radius: .5rem; background: white; color: #74818a; font-size: 1.15rem; cursor: pointer; }
.favorite-star[aria-pressed="true"] { background: #e6f1f3; color: #0d6b7c; }
.favorite-star:disabled { cursor: wait; }

.personal-panel { font-size: .9375rem; }
.personal-panel > h1 { font-size: clamp(1.45rem, 4vw, 2rem); }
.account-info { margin: 1rem 0; padding: 1rem; background: #f4f8f8; border: 1px solid #e2ebec; border-radius: .75rem; }
.account-info h2 { margin: 0; font-size: 1.125rem; }
.account-info dl { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(10rem,100%),1fr)); gap: .75rem; }
.account-info dt { color: #526971; font-size: .8125rem; }
.account-info dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.search-row h2 { margin: .4rem 0; font-size: 1rem; overflow-wrap: anywhere; }
.search-row p { overflow-wrap: anywhere; }
.search-kind { padding: .25rem .5rem; background: #e8f5f1; color: #175958; border-radius: .375rem; font-size: .8125rem; }
.search-row mark { background: #fff1cf; color: inherit; }

/* Shared header: school identity stays beside search, separate from the account. */
.site-header .header-inner { display: grid; grid-template-columns: minmax(200px, .8fr) minmax(0, 1.8fr) auto; gap: 20px; }
.header-search { min-width: 0; padding: 12px 0; }
.search-and-school { display: flex; align-items: center; gap: 12px; }
.header-search .search-form { flex: 1; max-width: none; min-width: 0; }
.search-and-school .campus-mark { width: 64px; height: 64px; object-fit: contain; flex: none; }
.header-welcome .campus-welcome { width: 60%; margin: auto; font-size: 13px; color: #526971; padding-top: 8px; }
.header-welcome .campus-welcome p { margin-bottom: 0; }
.site-header .header-inner { align-items: center; }
.site-header .header-search { padding: 8px 0; }
.site-header .profile-actions { align-items: center; }
.site-header .profile-link > span:last-child { display: flex; align-items: center; gap: 10px; }
.site-header .profile-link small { white-space: nowrap; }
.exam-section .exam-grid.paper-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.arena-favorite { width: 58px; text-align: center; }
.site-footer { padding-bottom: var(--exam-bottom-height, 0px); }
@media (max-width: 900px) {
  .site-header .header-inner { grid-template-columns: minmax(0, 1fr) auto; }
  .header-search { grid-column: 1 / -1; grid-row: 2; padding: 0; }
  .header-welcome .campus-welcome { width: 100%; }
  .exam-section .exam-grid.paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .site-header .header-inner { gap: 14px 8px; }
  .site-header .brand-copy strong { font-size: 18px; }
  .site-header .profile-actions { gap: 8px; }
  .site-header .profile-link { gap: 5px; }
  .site-header .profile-link strong { max-width: 65px; }
  .site-header .profile-link > span:last-child { gap: 4px; }
  .site-header .profile-link small { font-size: 11px; }
  .site-header .brand-copy small { display: none; }
  .site-header .brand-mark { width: 36px; height: 36px; }
  .site-header .site-brand { gap: 6px; }
  .site-header .brand-copy strong { font-size: 16px; }
  .exam-section .exam-grid.paper-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .campus-welcome p { padding-left: 0; animation: none; white-space: normal; width: auto; }
}
