/* Shared avatar links: native click-to-open disclosure, with no hover activation. */
.masthead{position:relative;z-index:20;--header-nav-font-size:13px;--header-nav-font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
.skip:focus{z-index:30}
.masthead .brand{display:flex;align-items:center}
.masthead .brand-home{display:block;min-width:0;color:inherit;font:inherit;letter-spacing:inherit;text-decoration:none}
.masthead .brand-home:focus-visible{outline:3px solid #eeb994;outline-offset:5px;border-radius:3px}
.masthead .avatar-menu{position:relative;display:block;flex:0 0 auto;margin:0;letter-spacing:normal;line-height:1}
.masthead .avatar-menu > summary{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0;padding:0;list-style:none;color:inherit;border-radius:10px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.masthead .avatar-menu > summary::-webkit-details-marker{display:none}
.masthead .avatar-menu > summary::marker{content:""}
.masthead .avatar-menu > summary img{display:block;margin:0}
.masthead .avatar-menu > summary:focus-visible{outline:3px solid #eeb994;outline-offset:4px}
.masthead .avatar-menu-caret{position:absolute;right:-3px;bottom:-2px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;border:1px solid #1b293a;border-radius:6px;background:#eeb994;color:#1b293a;font-family:Arial,sans-serif;font-size:15px;font-weight:700;line-height:1;pointer-events:none}
.masthead .avatar-menu[open] .avatar-menu-caret{transform:rotate(180deg)}
.masthead .avatar-menu > .avatar-menu-panel{position:absolute;top:calc(100% + 10px);left:0;z-index:100;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:2px;width:176px;max-width:calc(100vw - 34px);margin:0;padding:6px;border:1px solid #dce2e9;border-radius:10px;background:#fff;color:#1b293a;box-shadow:0 10px 30px #10203026;text-align:left}
.masthead .avatar-menu:not([open]) > .avatar-menu-panel{display:none}
.masthead .avatar-menu > .avatar-menu-panel > a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;margin:0;padding:11px 13px;border:0;border-radius:6px;background:transparent;color:#1b293a;font-family:var(--header-nav-font-family);font-size:var(--header-nav-font-size);font-weight:600;line-height:1.5;letter-spacing:normal;white-space:nowrap;text-decoration:none}
.masthead .avatar-menu > .avatar-menu-panel > a > span{color:#667589;font-size:15px}
.masthead .avatar-menu > .avatar-menu-panel > a:hover{background:#f4eee9;color:#6f3c22}
.masthead .avatar-menu > .avatar-menu-panel > a:focus-visible{outline:2px solid #a56436;outline-offset:-2px;background:#f4eee9}
@media print{.masthead .avatar-menu{display:none}}

/* Course navigation shares the avatar disclosure behavior: click, Tab, Escape. */
.masthead:has(.course-nav){background:#192d3d;color:#f7f8f3;--header-nav-font-size:14px}
.masthead:has(.course-nav) .head-inner{box-sizing:border-box;display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;width:100%;max-width:1280px;margin:0 auto;padding:18px 32px}
.masthead:has(.course-nav) .head-inner>.brand{display:flex;flex:0 1 auto;align-items:center;justify-content:flex-start;gap:12px;width:auto;min-width:0;max-width:none;margin:0;color:#f7f8f3}
.masthead:has(.course-nav) .brand strong,.masthead:has(.course-nav) .brand-name{display:block;color:#f7f8f3;font-size:20px;line-height:1.4;letter-spacing:.055em;white-space:nowrap}
.masthead:has(.course-nav) .brand small,.masthead:has(.course-nav) .brand-en{display:block;margin-top:3px;color:#d6b589;font-size:10px;line-height:1.4;letter-spacing:.09em;white-space:nowrap}
.masthead:has(.course-nav) .avatar-menu>summary img{width:46px;height:46px;object-fit:cover;border-radius:9px}
.masthead .header-navigation-row{box-sizing:border-box;display:block;width:100%;margin:0;padding:12px 32px;background:#223b4c;border-top:1px solid #ffffff13;border-bottom:1px solid #0d283a}
.masthead .course-nav{--course-button-gap:14px;--course-button-padding:10px 14px;--course-nav-text:#eef5f7;--course-nav-accent:#a9cbd2;--course-nav-border:#577082;--course-nav-hover:#446678;box-sizing:border-box;position:relative;display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;justify-content:center;gap:9px;width:100%;max-width:1000px;min-width:0;margin:0 auto;padding:0;line-height:1.5;letter-spacing:normal;font-family:var(--header-nav-font-family)}
.masthead .course-nav .course-menu{position:relative;display:block;flex:0 0 auto;min-width:0;border:0;border-radius:0;margin:0;padding:0;background:transparent;box-shadow:none}
.masthead .course-nav>.course-menu{position:static}
.masthead .course-nav .course-menu>summary,.masthead .course-nav>a.course-nav-link{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 13px;margin:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--course-nav-text);font-family:var(--header-nav-font-family);font-size:var(--header-nav-font-size);font-weight:600;line-height:1.5;letter-spacing:.02em;white-space:nowrap;list-style:none;text-decoration:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.masthead .course-nav .course-menu>summary::-webkit-details-marker{display:none}
.masthead .course-nav .course-menu>summary::marker{content:""}
.masthead .course-nav .course-menu>summary::after{content:none}
.masthead .course-nav .course-menu>summary:hover,.masthead .course-nav>a.course-nav-link:hover{background:var(--course-nav-hover);text-decoration:none}
.masthead .course-nav .course-menu[open]>summary{background:var(--course-nav-hover);color:var(--course-nav-accent)}
.masthead .course-nav .course-menu>summary:focus-visible,.masthead .course-nav>a.course-nav-link:focus-visible{outline:3px solid var(--course-nav-accent);outline-offset:3px}
.masthead .course-nav .course-menu-caret{display:inline-block;font:16px/1 Arial,sans-serif;opacity:.8;transform:translateY(-2px);pointer-events:none}
.masthead .course-nav .course-menu[open]>summary>.course-menu-caret{transform:rotate(180deg) translateY(-2px)}
.masthead .course-nav .course-menu>.course-menu-panel{box-sizing:border-box;position:absolute;top:calc(100% + 9px);left:var(--course-panel-left,0px);right:auto;z-index:100;display:flex;flex-direction:column;align-items:stretch;gap:3px;width:252px;max-width:calc(100vw - 24px);margin:0;padding:7px;border:1px solid #dce3e9;border-radius:11px;background:#fff;color:#23374b;box-shadow:0 14px 36px #10203026;text-align:left}
.masthead .course-nav .course-menu:not([open])>.course-menu-panel{display:none}
.masthead .course-nav .course-menu-panel>a{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:51px;margin:0;padding:11px 15px;border:0;border-radius:7px;background:transparent;color:#23374b;font:600 var(--header-nav-font-size)/1.5 var(--header-nav-font-family);letter-spacing:normal;text-decoration:none;white-space:normal}
.masthead .course-nav .course-menu-panel>a>small{display:block;color:#748496;font-size:var(--header-nav-font-size);font-weight:500;letter-spacing:.1em;line-height:1.4}
.masthead .course-nav .course-menu-panel>a>span{color:inherit}
.masthead .course-nav .course-menu-panel>a:hover{background:#f1f5f8;color:#2c5275;text-decoration:none}
.masthead .course-nav .course-menu-panel>a[aria-current="page"]{background:#edf3f8;color:#2c5275;box-shadow:inset 3px 0 #547b9e}
.masthead .course-nav .course-menu-panel>a:focus-visible{outline:2px solid #547b9e;outline-offset:-2px;background:#edf3f8}
.masthead .course-nav>.course-more[hidden]{display:none!important}
.masthead .course-nav .course-more-panel{--course-nav-text:#23374b;--course-nav-accent:#2c5275;--course-nav-border:#b9cbd8;--course-nav-hover:#edf3f8;max-height:70vh;max-height:70dvh;overflow-y:auto;overscroll-behavior:contain}
.masthead .course-nav .course-more-panel>.course-menu{width:100%;border-bottom:1px solid #edf0f3}
.masthead .course-nav .course-more-panel>.course-menu:last-child{border-bottom:0}
.masthead .course-nav .course-more-panel>.course-menu>summary{width:100%;justify-content:space-between}
.masthead .course-nav .course-more-panel>.course-menu>.course-menu-panel{position:static;width:100%;max-width:none;margin:0;padding:3px 0 7px;border:0;border-radius:0;box-shadow:none;background:transparent}
.masthead .course-nav .course-more-panel .course-menu-panel>a{padding:10px 13px;margin-left:5px;min-height:44px}
/* Nested categories expand inside the same panel on desktop and touch screens. */
.masthead .course-nav .course-group-panel{--course-nav-text:#23374b;--course-nav-accent:#2c5275;--course-nav-border:#b9cbd8;--course-nav-hover:#edf3f8;max-height:70vh;max-height:70dvh;overflow-y:auto;overscroll-behavior:contain}
.masthead .course-nav .course-menu-panel>.course-menu{width:100%;border-bottom:1px solid #edf0f3}
.masthead .course-nav .course-menu-panel>.course-menu:last-child{border-bottom:0}
.masthead .course-nav .course-menu-panel>.course-menu>summary{width:100%;justify-content:space-between}
.masthead .course-nav .course-menu-panel>.course-menu>.course-menu-panel{position:static;width:100%;max-width:none;max-height:none;overflow:visible;margin:0;padding:3px 0 7px;border:0;border-radius:0;box-shadow:none;background:transparent}
.masthead .course-nav .course-menu-panel .course-menu-panel>a{padding:10px 13px;margin-left:5px;min-height:44px}
.masthead .course-nav .course-more-panel .course-group-panel>.course-menu>summary{padding-left:13px}
.masthead .course-nav .course-more-panel .course-group-panel .course-menu-panel>a{margin-left:10px}
/* Direct pages and category headings share one text edge, including inside More. */
.masthead .course-nav .course-menu>.course-group-panel>.course-menu>summary{padding-left:13px}
.masthead .course-nav .course-menu>.course-group-panel>a{margin-left:0;padding-left:14px}
.masthead .course-nav>.course-menu{flex:1 1 0}
.masthead .course-nav>.course-more{flex:0 0 auto}
.masthead .course-nav>.course-menu>summary,.masthead .course-nav[data-measuring]>.course-more>.course-more-panel>.course-menu>summary{gap:var(--course-button-gap);min-height:44px;padding:var(--course-button-padding);border:1px solid #577082;border-radius:7px;background:#2c485b;color:#eef5f7;box-shadow:0 2px 0 #142b3e4d}
.masthead .course-nav>.course-menu>summary:hover,.masthead .course-nav>.course-menu[open]>summary{background:#446678;border-color:#88a8b5;color:#eef5f7}
.masthead .course-nav>.course-menu>summary>.course-menu-caret{color:#a9cbd2}
/* Measure original summaries without cloning or briefly displaying menus. */
.masthead .course-nav[data-measuring]>.course-more{display:block!important}
.masthead .course-nav[data-measuring]>.course-more>.course-more-panel{display:flex!important;visibility:hidden;max-height:none;overflow:visible}
.masthead .course-nav[data-measuring] .course-menu>summary{width:max-content}
@media(max-width:760px){
  .masthead:has(.course-nav){--header-nav-font-size:12px}
  .masthead:has(.course-nav) .head-inner{padding:13px 14px;gap:10px}
  .masthead:has(.course-nav) .head-inner>.brand{gap:8px}
  .masthead:has(.course-nav) .brand-home{min-width:0;overflow:hidden}
  .masthead:has(.course-nav) .brand strong,.masthead:has(.course-nav) .brand-name{overflow:hidden;font-size:15px;letter-spacing:.015em;text-overflow:ellipsis}
  .masthead:has(.course-nav) .brand small,.masthead:has(.course-nav) .brand-en{overflow:hidden;margin-top:2px;font-size:8px;letter-spacing:.02em;text-overflow:ellipsis}
  .masthead:has(.course-nav) .avatar-menu>summary img{width:34px;height:34px;border-radius:7px}
  .masthead .avatar-menu-caret{right:1px;bottom:1px;width:13px;height:13px;border-radius:4px;font-size:12px}
  .masthead .header-navigation-row{padding:10px 12px}
  .masthead .course-nav{--course-button-gap:7px;--course-button-padding:10px 7px;gap:6px}
  .masthead .course-nav>.course-menu>summary,.masthead .course-nav[data-measuring]>.course-more>.course-more-panel>.course-menu>summary{border-radius:6px;letter-spacing:0}
  .masthead .course-nav .course-menu>.course-menu-panel{top:calc(100% + 7px)}
}
@media print{.masthead .course-nav,.masthead .header-navigation-row{display:none}}

/* Shared, static filing notice stays below page content and registration totals. */
body>main:has(>.site-registration-total:not([hidden])){padding-bottom:0}
body>.site-filing{box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;flex:0 0 auto;clear:both;width:100%;margin:0;padding:14px 16px 20px;text-align:center;color:#6b7280;font:400 13px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:normal;white-space:nowrap}
body>.site-filing>.site-filing-badge{display:block;flex:0 0 auto;width:auto;height:1.6em;margin-right:.35em;object-fit:contain}
body>.site-filing>.site-public-security{display:inline-block;margin:0;font:inherit;text-align:center;white-space:nowrap}
body>.site-filing>.site-public-security::after{content:"\00a0\00a0\00a0\00a0"}
body>.site-filing>a{display:inline-block;flex:0 0 auto;max-width:100%;padding:8px 0;color:inherit;text-decoration:none;white-space:nowrap;touch-action:manipulation}
@media(max-width:520px){body>.site-filing{padding-left:12px;padding-right:12px;font-size:clamp(9.5px,3vw,13px)}}
body>.site-filing>a:hover{text-decoration:underline;text-underline-offset:3px}
body>.site-filing>a:focus-visible{outline:2px solid #547b9e;outline-offset:3px;border-radius:3px}

/* The home icon stays visible before the adaptive course groups. */
.masthead .course-nav>a.home-nav-link.course-nav-link{box-sizing:border-box;display:flex;flex:0 0 44px;align-items:center;justify-content:center;gap:0;min-width:44px;min-height:44px;width:44px;padding:9px;border:1px solid #577082;border-radius:7px;background:#2c485b;color:#eef5f7;box-shadow:0 2px 0 #142b3e4d;text-decoration:none;line-height:1}
.masthead .course-nav>a.home-nav-link.course-nav-link svg{display:block;width:21px;height:21px;flex-shrink:0}
.masthead .course-nav>a.home-nav-link.course-nav-link:hover{background:#446678;border:1px solid #88a8b5;color:#fff;box-shadow:0 2px 0 #142b3e4d}
.masthead .course-nav>a.home-nav-link.course-nav-link:focus-visible{outline:2px solid #a9cbd2;outline-offset:3px;border-radius:7px}
/* Contact is a fixed peer of Home, outside the responsive More menu. */
.masthead .course-nav>button.phone-nav-button.course-nav-link{box-sizing:border-box;display:flex;flex:0 0 44px;align-items:center;justify-content:center;gap:0;min-width:44px;min-height:44px;width:44px;padding:9px;border:1px solid #577082;border-radius:7px;background:#2c485b;color:#eef5f7;box-shadow:0 2px 0 #142b3e4d;font:inherit;line-height:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.masthead .course-nav>button.phone-nav-button.course-nav-link svg{display:block;width:21px;height:21px;flex-shrink:0}
.masthead .course-nav>button.phone-nav-button.course-nav-link:hover{background:#446678;border-color:#88a8b5;color:#fff}
.masthead .course-nav>button.phone-nav-button.course-nav-link:focus-visible{outline:2px solid #a9cbd2;outline-offset:3px}
.masthead .course-nav>button.search-nav-button.course-nav-link{box-sizing:border-box;display:flex;flex:0 0 44px;align-items:center;justify-content:center;gap:0;min-width:44px;min-height:44px;width:44px;padding:10px;border:1px solid #577082;border-radius:7px;background:#2c485b;color:#eef5f7;box-shadow:0 2px 0 #142b3e4d;font:inherit;line-height:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.masthead .course-nav>button.search-nav-button.course-nav-link img{display:block;width:21px;height:21px;flex-shrink:0;filter:invert(1);mix-blend-mode:screen}
.masthead .course-nav>button.search-nav-button.course-nav-link:hover{background:#446678;border-color:#88a8b5;color:#fff}
.masthead .course-nav>button.search-nav-button.course-nav-link:focus-visible{outline:2px solid #a9cbd2;outline-offset:3px}
.masthead .course-nav>button.search-nav-button.course-nav-link[aria-busy="true"]{opacity:.65;cursor:progress}
.teacher-contact-dialog{box-sizing:border-box;width:min(360px,calc(100% - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:20px;border:1px solid #d3dfe4;border-radius:16px;background:#fff;color:#243e4d;box-shadow:0 22px 80px #112c3e40;overflow:auto;font-family:var(--header-nav-font-family,system-ui,sans-serif)}
.teacher-contact-dialog::backdrop{background:#102b3bb3;backdrop-filter:blur(3px)}
.teacher-contact-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.teacher-contact-heading h2{margin:0;font-size:21px;font-weight:650;line-height:1.4}
.teacher-contact-close{display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;margin:-8px -8px -8px 0;padding:0;border:0;border-radius:8px;background:transparent;color:#566f7b;font:30px/1 Arial,sans-serif;cursor:pointer}
.teacher-contact-close:hover{background:#edf3f5;color:#243e4d}
.teacher-contact-close:focus-visible,.teacher-contact-original:focus-visible{outline:2px solid #547b9e;outline-offset:3px}
.teacher-contact-hint{margin:8px 0 0;color:#6c818b;font-size:14px;line-height:1.6}
.teacher-contact-qr{position:relative;width:min(100%,300px);aspect-ratio:1;margin:18px auto 16px;overflow:hidden;background:#fff;border-radius:8px}
.teacher-contact-qr img{position:absolute;display:block;width:137.5839%;max-width:none;height:auto;left:-18.7919%;top:-59.0604%}
.teacher-contact-original{display:block;width:max-content;max-width:100%;margin:0 auto;color:#476a80;font-size:13px;line-height:1.6;text-decoration:underline;text-underline-offset:3px}
