/* Academic design system. Shared visual rules; business states stay local. */
:root {
  --paper: #f7f6f2; --paper-2: #efeee8; --surface: #fff; --surface-2: #f8f6f0;
  --ink: #152033; --ink-2: #354052; --ink-3: #5e6878; --ink-4: #697383;
  --rule: #dedfdc; --rule-2: #e8eaed; --rule-3: #f1f2f4;
  --brand: #1b2f5c; --brand-2: #102347; --brand-tint: #edf1f8;
  --gold: #a27732; --moss: #3f6b4a; --ui-width: 1440px;
  --mono: var(--sans);
}
html { scroll-padding-top: 110px; }
body.tuyan-ui { background: #fcfbf8; color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
.tuyan-ui [hidden] { display: none !important; }
.tuyan-ui :where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #a27732; outline-offset: 4px; }
.tuyan-ui :where(button,summary,select) { cursor: pointer; }
.tuyan-ui :where(input,select,textarea) { font-family: var(--sans); font-size: 16px; }
.tuyan-ui :where(.btn,.button) { min-height: 44px; border-radius: 10px; box-shadow: none; justify-content: center; }
.tuyan-ui :where(.btn-primary,.button-primary) { background: var(--brand); color: white; }
.tuyan-ui :where(.btn-ghost,.button-quiet) { border-color: var(--rule); }
.tuyan-ui .btn:hover { transform: none; }
.tuyan-ui :where(.wrap,.container) { max-width: var(--ui-width); margin-inline: auto; padding-inline: 40px; }
.tuyan-ui .ui-header { height: auto; position: sticky; inset-block-start: 0; z-index: 80; background: #fffefa; border-bottom: 1px solid var(--rule-2); backdrop-filter: none; }
.tuyan-ui .ui-header-inner { max-width: 1480px; min-height: 80px; margin: auto; padding: 12px 40px; display: flex; align-items: center; gap: 28px; }
.tuyan-ui .ui-header .brand { display: flex; gap: 12px; flex-shrink: 0; font: 700 25px/1.2 var(--serif); color: var(--ink); }
.tuyan-ui .ui-header .brand-mark { width: 40px; height: 44px; font-size: 26px; border-radius: 10px; }
.tuyan-ui .ui-header .brand-copy { display: block; }
.tuyan-ui .ui-header .brand-sub { display: block; margin: 6px 0 0; padding: 0; border: 0; letter-spacing: .05em; font-size: 11px; }
.ui-nav { display: flex; gap: clamp(16px,2.2vw,36px); align-items: center; margin: auto; }
.ui-nav > a,.ui-nav summary { display: block; list-style: none; color: var(--ink-2); font-size: 17px; font-weight: 500; line-height: 1.5; padding: 15px 0; white-space: nowrap; }
.ui-nav small { display: block; color: var(--ink-3); font-size: 12px; font-weight: 400; margin-top: 4px; }
.ui-nav summary::-webkit-details-marker { display: none; }
.ui-nav details { position: relative; }
.ui-nav summary .ui-caret { display: inline; font-size: 12px; margin-left: 8px; }
.ui-nav .active,.ui-nav details:has([aria-current="page"]) summary { color: var(--brand); }
.ui-nav > a.active { box-shadow: 0 3px var(--brand); }
.ui-subnav { position: absolute; top: calc(100% + 12px); left: -18px; min-width: 200px; padding: 10px; background: white; border: 1px solid var(--rule); border-radius: 10px; box-shadow: 0 12px 30px #15203312; }
.ui-subnav a { display: block; padding: 10px 12px; border-radius: 4px; font-size: 14px; }
.ui-subnav a:hover,.ui-subnav a.active { background: var(--brand-tint); color: var(--brand); }
.ui-utilities { display: flex; align-items: center; gap: 18px; font-size: 14px; }
.ui-utilities > a { white-space: nowrap; }
.ui-header #navAuth { min-width: 28px; }
.ui-header .nav-auth-inner { gap: 12px; }
.ui-header .nav-write { display: none; }
.ui-header .nav-login { padding: 9px 0; }
.ui-menu-toggle { display: none; border: 1px solid var(--rule); background: white; padding: 8px 12px; border-radius: 6px; font: 500 14px var(--sans); min-height: 44px; }
.ui-skip { position: fixed; left: 16px; top: -100px; z-index: 200; background: white; padding: 12px; }
.ui-skip:focus { top: 12px; }
.tuyan-ui :where(.page-head) { padding-block: 40px 28px; margin: 0; }
.tuyan-ui :where(.ph-eye,.eyebrow,.hero-eye,.sec-eye) { font-family: var(--sans); letter-spacing: .06em; font-size: 11px; }
.tuyan-ui :where(.ph-title,.page-head h1) { font: 700 40px/1.35 var(--serif); margin: 0 0 10px; letter-spacing: -.025em; }
.tuyan-ui :where(.ph-eye,.page-head > .eyebrow) { display: none; }
.tuyan-ui :where(.ph-sub,.page-lede) { font-size: 15px; line-height: 1.75; max-width: 740px; margin: 0; color: var(--ink-3); }
.tuyan-ui .site-foot,.tuyan-ui footer { background: var(--surface-2); border-top: 1px solid var(--rule-2); }
.tuyan-ui .site-foot { margin-top: 48px; padding: 26px 0; }
.tuyan-ui .sf-inner { max-width: var(--ui-width); padding-inline: 40px; }
.tuyan-ui .mob-cta,.tuyan-ui .mob-conv { display: none; }
.ui-back-to-top {
  position: fixed;
  right: 18px;
  bottom: calc(76px + env(safe-area-inset-bottom));
  z-index: 71;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid var(--rule);
  border-radius: 50%;
  background: #fff;
  color: var(--brand);
  box-shadow: 0 4px 16px rgba(39, 24, 64, .08);
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.ui-back-to-top:hover { border-color: #b1bdce; box-shadow: 0 5px 20px rgba(39, 24, 64, .14); }
.ui-back-to-top:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
@media (max-width: 860px) {
  .ui-back-to-top { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); width: 48px; height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .ui-back-to-top { transition: none; }
}
.tuyan-ui .breadcrumb { margin: 22px 0 0; font-size: 12px; }
.ui-breadcrumb { display: flex; gap: 12px; flex-wrap: wrap; padding-block: 18px 0; font-size: 13px; color: var(--ink-3); }

/* Approved academic homepage. */
.discovery-hero { position: relative; background: #faf9f6; isolation: isolate; }
.discovery-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url('assets/ui/campus-hero.webp') center center / cover no-repeat; opacity: .65; }
.discovery-top { padding: 44px 24px 38px; min-height: 420px; display: grid; place-items: center; }
.discovery-main { width: 100%; text-align: center; }
.discovery-season { font: 600 20px/1.5 var(--serif); color: var(--gold); letter-spacing: .12em; margin: 0 0 22px; }
.discovery-hero h1 { font: 700 clamp(38px,4.2vw,62px)/1.3 var(--serif); letter-spacing: -.025em; margin: 0 0 20px; text-wrap: balance; }
.discovery-hero h1 span { color: var(--brand); }
.discovery-lede { color: var(--ink-3); margin: 0 0 30px; font-size: 16px; }
.discovery-search { display: flex; align-items: center; border: 1px solid #aeb4bc; border-radius: 10px; padding: 6px; gap: 12px; background: #fff; max-width: 740px; margin-inline: auto; }
.discovery-search img { width: 24px; height: 24px; margin-left: 16px; opacity: .75; }
.discovery-search input { width: 100%; flex: 1; min-width: 0; border: 0; padding: 12px 4px; background: transparent; color: var(--ink); font-size: 18px; }
.discovery-search input:focus { outline-offset: 0; }
.discovery-search:focus-within { border-color: var(--brand); }
.discovery-search button { min-width: 136px; min-height: 60px; border: 0; background: var(--brand); color: white; font: 600 20px var(--sans); border-radius: 8px; }
.discovery-search button:hover { background: var(--brand-2); }
.discovery-quick { display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 22px; font-size: 14px; color: var(--ink-3); }
.discovery-quick a { color: var(--brand); background: #f1f0ec; padding: 6px 15px; border-radius: 6px; }
.discovery-quick .discovery-more { background: transparent; }
.discovery { padding-top: 0; padding-bottom: 32px; background: white; }
.page-index { background: white !important; }
.discovery-toolbar { display: flex; align-items: center; gap: 24px; border-bottom: 1px solid var(--rule); padding: 20px 0 14px; }
.discovery-toolbar h2 { font: 600 23px/1.4 var(--serif); margin: 0 12px 0 0; white-space: nowrap; }
.discovery-tabs { display: flex; gap: 12px; }
.discovery-tabs button { padding: 9px 16px; border: 0; border-radius: 6px; background: transparent; color: var(--ink-3); font: 500 15px var(--sans); min-height: 44px; white-space: nowrap; }
.discovery-tabs button[aria-pressed="true"] { color: var(--brand); background: var(--surface-2); font-weight: 700; }
.discovery-status { display: flex; align-items: center; gap: 24px; margin-left: auto; font-size: 13px; color: var(--ink-3); white-space: nowrap; }
.discovery-status select { font-size: 13px; padding: 9px; border: 1px solid var(--rule); border-radius: 6px; background: white; }
.discovery-status a { color: var(--brand); }
.discovery-results { min-height: 280px; }
.opportunity-row { display: grid; grid-template-columns: 300px minmax(0,1fr) 155px 80px 86px; gap: 22px; align-items: center; min-height: 72px; padding: 8px 0; border-bottom: 1px solid var(--rule-2); }
.opportunity-main { display: flex; align-items: center; gap: 18px; min-width: 0; }
.opportunity-logo { width: 48px; height: 48px; object-fit: contain; flex-shrink: 0; }
.opportunity-row:hover { background: var(--surface-2); }
.opportunity-school { font-weight: 700; font-size: 16px; line-height: 1.5; }
.opportunity-college { display: block; font-size: 13px; color: var(--ink-3); font-weight: 400; margin-top: 4px; }
.opportunity-row h3 { font-weight: 400; font-size: 16px; line-height: 1.65; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.opportunity-main > div { min-width: 0; }
.opportunity-date { font-size: 14px; font-variant-numeric: tabular-nums; color: var(--ink-2); }
.opportunity-date small { display: block; font-size: 12px; color: var(--ink-3); margin-top: 4px; }
.opportunity-status { font-size: 13px; color: var(--ink-3); }
.opportunity-status.open { color: var(--moss); }
.opportunity-detail { color: var(--brand); font-size: 12px; text-align: right; }
.discovery-count { color: var(--ink-3); font-size: 12px; margin: 10px 0 0; }
.discovery-empty { padding: 36px 0; color: var(--ink-3); }
.discovery-empty a { color: var(--brand); text-decoration: underline; }
.discovery-aside { margin-top: 16px; padding: 10px 30px 10px 12px; display: grid; grid-template-columns: 190px minmax(0,1fr) auto; align-items: center; gap: 26px; background: #f7f4ea; border: 1px solid #ebe5d9; border-radius: 10px; }
.position-art { width: 190px; height: 96px; object-fit: cover; border-radius: 8px; }
.discovery-aside h2 { font: 600 24px/1.4 var(--serif); margin: 0 0 8px; }
.position-copy > p { color: var(--ink-3); font-size: 14px; margin: 0; }
.position-details { margin-top: 8px; font-size: 12px; color: var(--ink-3); }
.position-details summary { cursor: pointer; }
.discovery-benefits { list-style: none; padding: 0; margin: 16px 0 4px; display: grid; gap: 12px; }
.discovery-benefits li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; font-size: 14px; }
.discovery-benefits img { width: 22px; height: 22px; }
.discovery-benefits small { display: block; font-size: 12px; color: var(--ink-3); }
.discovery-aside .text-link { font-size: 16px; color: #8a632a; white-space: nowrap; }
.ui-caret img { display: inline-block; width: 10px; height: 10px; vertical-align: middle; }
.home-reference { background: var(--surface-2); border-block: 1px solid var(--rule-2); padding: 48px 0; }
.home-reference-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.home-reference h2,.home-paths h2 { font: 600 27px/1.4 var(--serif); margin: 0 0 8px; }
.home-reference-head p { color: var(--ink-3); font-size: 14px; margin: 0; }
.home-reference .experience-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.home-reference .experience-item { padding: 0 24px 0 0; border: 0; border-right: 1px solid var(--rule); background: none; border-radius: 0; }
.home-reference .experience-item:last-child { border-right: 0; }
.home-reference .experience-item h3 { font: 600 16px/1.6 var(--sans); margin: 8px 0; }
.home-reference .experience-background,.home-reference .experience-route { font-size: 13px; }
.home-paths { padding-block: 36px; }
.home-paths .stage-item { grid-template-columns: 110px 1fr; gap: 16px; padding-block: 22px; }
.home-paths .stage-item strong { font-size: 17px; }
.home-paths .stage-item span { font-size: 14px; }
.page-index .final-section { padding-top: 0; }
.page-index .final-cta { border-radius: 10px; padding: 36px; }
.page-index .final-cta > * { min-width: 0; }
.page-index .final-cta .btn { white-space: normal; text-align: center; max-width: 100%; }
.page-index .final-cta h2 { font-size: 28px; }
.page-index footer { padding: 40px 0 24px; }
.page-index .footer-grid { margin-bottom: 28px; }

/* Dense, readable catalogues. */
.page-news .feed-controls { position: static; margin-bottom: 8px; }
.page-news .feed-layout { display: block; }
.page-news .feed-toolbar { gap: 18px; margin-bottom: 14px; }
.page-news .toolbar-search { min-width: 0; }
.page-news .toolbar-search input { min-width: 0; width: 100%; }
.page-news .filter-panel { border: 1px solid var(--rule); border-radius: 12px; padding: 16px 22px; background: white; box-shadow: none; }
.page-news .fp-head { padding-bottom: 8px; margin-bottom: 0; border: 0; }
.page-news .fp-quick { gap: 5px 28px; }
.page-news .fp-row { padding-block: 6px; }
.page-news .fchip { padding: 5px 10px; font-size: 13px; border-color: transparent; background: transparent; }
.page-news .fchip.active { background: var(--brand); color: white; }
.page-news .news-list { gap: 0; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; }
.page-news .news-item { margin: 0; padding: 24px 18px; border: 0; border-bottom: 1px solid var(--rule); background: white; border-radius: 0; box-shadow: none; gap: 22px; }
.page-news .news-item:hover { transform: none; background: var(--surface-2); }
.page-news .ni-logo { width: 44px; height: 44px; border-radius: 6px; }
.page-news .ni-name { font: 700 17px/1.5 var(--sans); }
.page-news .ni-dept { margin: 2px 0 5px; font-size: 13px; }
.page-news .ni-body h3 { font: 400 15px/1.6 var(--sans); margin: 4px 0 7px; }
.page-news .ni-cat { padding: 2px 7px; font-size: 12px; background: var(--brand-tint); color: var(--brand); }
.page-news .ni-m,.page-news .ni-loc { font-size: 12px; }
.page-news .ni-side { min-width: 100px; gap: 9px; padding-left: 20px; }
.page-news .ni-count .num { font-family: var(--sans); font-size: 23px; }
.page-news .ni-count .lab { margin-bottom: 5px; letter-spacing: 0; font-size: 12px; }
.page-news .ni-count.closed .num,.page-news .ni-count.detail .num { font-size: 15px; }
.page-news .pagination { padding-block: 24px; }
.page-major .catalog-search { margin: 4px 0 20px; }
.page-major .major-group { margin-bottom: 26px; }
.page-major .school-card { border-radius: 10px; box-shadow: none; }
.page-major .school-card:hover { transform: none; }
.page-competitions .search-bar { margin: 0 0 18px; }
.page-competitions .filter-panel2 { border: 0; border-block: 1px solid var(--rule); border-radius: 0; padding: 10px 0; }
.page-competitions .filter-wrap { margin-bottom: 22px; }
.page-competitions .intro-note { display: block; background: var(--surface-2); border-color: var(--rule); padding: 14px 18px; margin-bottom: 22px; }
.page-competitions .intro-note summary { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.page-competitions .intro-note[open] p { margin-top: 12px; }
.page-competitions .comp-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.page-competitions .comp-card { box-shadow: none; border-radius: 10px; }
.page-competitions .comp-card:hover { transform: none; border-color: var(--brand); }
.page-experience .announce { display: none; }
.page-experience .hero { text-align: left; padding: 32px 0 20px; }
.page-experience .hero h1 { font: 700 40px/1.35 var(--serif); margin: 0 0 12px; }
.page-experience .hero p { text-align: left; font-size: 15px; color: var(--ink-3); margin: 0 0 20px; }
.page-experience .hero-search { max-width: 820px; margin: 0; box-shadow: none; border-radius: 10px; }
.page-experience .hero-search input { min-width: 0; width: 100%; }
.page-experience .hero-search .btn { flex-shrink: 0; }
.page-experience .filters { margin-top: 12px; padding: 18px 22px; border: 1px solid var(--rule); border-radius: 12px; background: white; }
.page-experience .flt-row { padding: 8px 0; }
.page-experience .flt-pill { border-radius: 5px; }
.page-experience .grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.page-experience .card { border: 1px solid var(--rule); border-radius: 12px; padding: 28px; background: white; box-shadow: none; }
.page-experience .card:hover { transform: none; background: var(--surface-2); }
.page-experience .card h3 { font: 600 17px/1.7 var(--sans); margin: 0 38px 14px 0; }
.page-experience .card-sum { font-size: 13px; color: var(--ink-3); -webkit-line-clamp: 2; }
.experience-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; margin: 0 0 14px; font-size: 13px; line-height: 1.6; }
.experience-facts > div { min-width: 0; }
.experience-facts dt { color: var(--ink-3); font-size: 11px; }
.experience-facts dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.experience-facts .destination dd { color: var(--moss); font-weight: 600; }
.page-experience .card-fav { top: 24px; right: 22px; }

/* Reading surfaces retain source controls and real article formatting. */
.tuyan-ui :where(.art-title) { font-size: 30px; line-height: 1.55; letter-spacing: -.02em; }
.tuyan-ui :where(.art-head) { text-align: left; padding-bottom: 20px; }
.tuyan-ui .art-head .art-title { text-align: left; }
.tuyan-ui .art-head .art-meta,.tuyan-ui .art-head .source-line { justify-content: flex-start; }
.tuyan-ui :where(.prose) { font-size: 17px; line-height: 1.95; max-width: 760px; }
.tuyan-ui :where(.ki-card,.summary-box,.toc-box,.side-card) { box-shadow: none; border-radius: 10px; }
.tuyan-ui :where(.keyinfo) { gap: 14px; }
.tuyan-ui :where(.art-meta,.source-line) { font-size: 13px; }
.page-experience-detail .layout { grid-template-columns: 180px minmax(0,1fr) 240px; gap: 30px; }
.page-experience-detail .layout.no-toc { grid-template-columns: minmax(0,1fr) 260px; }
.page-experience-detail .toc-side { top: 110px; }
.page-experience-detail .toc-box { background: white; border: 0; border-right: 1px solid var(--rule); border-radius: 0; padding: 8px 18px 8px 0; }
.tuyan-ui .conversion { border-radius: 10px; margin-top: 40px; }
.tuyan-ui .conversion h3 { font-size: 26px; }

/* Phase guide: choose a year, then work through the next actions. */
.page-timeline .stage-nav { top: 80px; background: white; margin-top: 4px; }
.page-timeline .stage-row { max-width: var(--ui-width); padding: 8px 40px; height: auto; min-height: 60px; overflow-y: hidden; }
.page-timeline .stage-tab { border-radius: 6px; }
.page-timeline .st-s { display: none; }
.phase-guide { margin: 28px 0; padding: 24px 28px; background: var(--surface-2); border-left: 3px solid var(--gold); display: flex; justify-content: space-between; align-items: center; gap: 28px; }
.phase-guide h2 { margin: 0 0 6px; font: 600 25px/1.5 var(--serif); }
.phase-guide p { margin: 0; color: var(--ink-3); font-size: 14px; }
.phase-guide a { flex-shrink: 0; color: var(--brand); font-size: 14px; font-weight: 600; }
.page-timeline .tl-stage { margin-bottom: 36px; }
.page-timeline .tl-card { border-radius: 10px; box-shadow: none; }
.page-timeline .tl-card-head { padding-block: 0; min-height: 44px; }
.page-tutoring .hero { padding-block: 0; background: var(--brand); }
.page-tutoring .hero-inner { padding-block: 48px; }
.page-tutoring .hero::before,.page-tutoring .hero::after { display: none; }
.page-tutoring .hero h1 { font-size: 44px; line-height: 1.4; }
.page-tutoring .hero p { font-size: 16px; }
.page-tutoring :where(.section,.section-pad) { padding-block: 48px; }
.page-tutoring :where(.sec-title) { font-size: 32px; }
.page-tutoring :where(.mentor-card,.plan-card,.service-card) { box-shadow: none; border-radius: 10px; }
.page-account .tabs { gap: 24px; border-bottom: 1px solid var(--rule); }
.page-account .tab { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; }
.page-account .tab.active { background: transparent; border-bottom-color: var(--brand); color: var(--brand); }
.page-account .card,.page-write-experience .card { border-radius: 10px; box-shadow: none; }
.page-login,.page-register,.page-forgot-password,.page-reset-password { min-height: 100vh; background: var(--surface-2) !important; }
.tuyan-ui .auth-card { border-radius: 10px; box-shadow: none; border-color: var(--rule); padding: 32px; }
.tuyan-ui .auth-card input { min-height: 46px; background: white; }
.tuyan-ui .auth-card h1 { font-family: var(--serif); }
.tuyan-ui .auth-card .submit { background: var(--brand); min-height: 46px; }
.page-admin :where(.panel,.card) { box-shadow: none; border-radius: 10px; }

@media (max-width: 1120px) {
  .tuyan-ui .ui-header-inner { gap: 24px; padding-inline: 24px; }
  .ui-nav { gap: 22px; }
  .ui-nav small { display: none; }
  .ui-utilities { gap: 12px; }
  .opportunity-row { grid-template-columns: 240px minmax(0,1fr) 130px 70px; gap: 16px; }
  .opportunity-detail { display: none; }
  .discovery-toolbar { flex-wrap: wrap; }
  .page-experience-detail .layout { grid-template-columns: 160px minmax(0,1fr); }
  .page-experience-detail .layout > aside:last-child:not(.toc-side) { grid-column: 2; position: static; }
}
@media (max-width: 860px) {
  html { scroll-padding-top: 90px; }
  .tuyan-ui :where(.wrap,.container) { padding-inline: 20px; }
  .tuyan-ui .ui-header-inner { min-height: 72px; flex-wrap: wrap; padding: 12px 20px; gap: 10px 16px; }
  .tuyan-ui .ui-header .brand { font-size: 20px; margin-right: auto; }
  .tuyan-ui .ui-header .brand-mark { width: 32px; height: 36px; font-size: 21px; }
  .tuyan-ui .ui-header .brand-sub { display: none; }
  .ui-menu-toggle { display: block; }
  .ui-nav { display: none; order: 4; flex-basis: 100%; margin: 0; padding: 12px 0; border-top: 1px solid var(--rule-2); flex-wrap: wrap; gap: 16px 28px; }
  .ui-header[data-nav-open] .ui-nav { display: flex; }
  .ui-subnav { position: static; margin-top: 10px; box-shadow: none; border: 0; border-left: 1px solid var(--rule); border-radius: 0; padding: 0 6px; }
  .ui-utilities { font-size: 13px; }
  .ui-utilities > a { display: none; }
  .tuyan-ui .nav-auth-signed .nav-menu { right: 0; }
  .tuyan-ui :where(.page-head) { padding-block: 24px 20px; }
  .tuyan-ui :where(.ph-title,.page-head h1),.page-experience .hero h1 { font-size: 28px; }
  .discovery-top { padding: 38px 20px 32px; min-height: 360px; }
  .discovery-hero { background-position: center; }
  .discovery-season { font-size: 15px; margin-bottom: 18px; }
  .discovery-hero h1 { font-size: clamp(32px,6vw,46px); margin-bottom: 16px; }
  .discovery-lede { font-size: 14px; max-width: 520px; margin: 0 auto 24px; }
  .discovery-search { gap: 4px; }
  .discovery-search img { margin-left: 8px; width: 20px; }
  .discovery-search input { font-size: 16px; }
  .discovery-search button { min-width: 76px; min-height: 48px; font-size: 16px; }
  .discovery-quick { font-size: 12px; gap: 8px; margin-top: 16px; }
  .discovery-quick a { padding: 6px 9px; }
  .discovery-toolbar { flex-wrap: wrap; gap: 12px; padding-top: 22px; }
  .discovery-toolbar h2 { width: 100%; font-size: 22px; }
  .discovery-tabs { gap: 4px; }
  .discovery-tabs button { font-size: 14px; padding-inline: 12px; }
  .discovery-status { margin-left: 0; width: 100%; justify-content: space-between; padding-bottom: 2px; }
  .opportunity-row { grid-template-columns: minmax(0,1fr) auto; gap: 8px 16px; padding: 20px 0; }
  .opportunity-main { grid-column: 1/-1; }
  .opportunity-logo { width: 40px; height: 40px; }
  .opportunity-school { font-size: 16px; }
  .opportunity-college { font-size: 12px; }
  .opportunity-row h3 { grid-column: 1/-1; display: block; font-size: 14px; overflow: visible; }
  .opportunity-date { font-size: 12px; display: flex; gap: 8px; align-items: baseline; }
  .opportunity-date small { margin: 0; }
  .opportunity-status { font-size: 12px; text-align: right; }
  .opportunity-detail { display: none; }
  .discovery-aside { grid-template-columns: 92px minmax(0,1fr); padding: 18px 16px; gap: 12px; }
  .position-art { width: 92px; height: 92px; }
  .discovery-aside h2 { font-size: 19px; }
  .position-copy > p { font-size: 13px; }
  .discovery-aside .text-link { grid-column: 2; font-size: 14px; }
  .home-reference { padding: 28px 0; }
  .home-reference-head { display: block; }
  .home-reference-head > a { display: inline-block; margin-top: 14px; font-size: 14px; }
  .home-reference h2,.home-paths h2 { font-size: 23px; }
  .home-reference .experience-proof { grid-template-columns: 1fr; gap: 18px; }
  .home-reference .experience-item { padding: 0 0 18px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .home-paths .stage-item { grid-template-columns: 1fr; }
  .page-index .final-cta { padding: 26px 22px; }
  .page-index .footer-grid { grid-template-columns: 1fr 1fr; }
  .page-news .feed-toolbar { flex-wrap: wrap; gap: 12px; }
  .page-news .toolbar-search { flex-basis: 100%; }
  .page-news .fp-quick { display: block; }
  .page-news .filter-panel:not(:has(#advancedFilters:not([hidden]))) .fp-quick .fp-row:nth-child(n+3) { display: none; }
  .page-news .fp-chips { gap: 4px; }
  .page-news .fchip { padding: 7px 9px; min-height: 36px; }
  .page-news .news-item { grid-template-columns: 38px minmax(0,1fr); gap: 12px; padding-block: 18px; }
  .page-news .ni-logo { width: 36px; height: 36px; }
  .page-news .ni-side { grid-column: 2; flex-direction: row; justify-content: space-between; border: 0; padding: 0; }
  .page-news .ni-count { display: flex; align-items: baseline; gap: 5px; }
  .page-news .ni-count .num { font-size: 16px; }
  .page-news .ni-body h3 { font-size: 14px; }
  .page-experience .hero { padding: 24px 0 18px; }
  .page-experience .grid,.page-competitions .comp-grid { grid-template-columns: 1fr; }
  .page-experience .flt-row { display: block; }
  .page-experience .flt-label { display: block; margin-bottom: 8px; }
  .page-experience .flt-pills { width: 100%; min-width: 0; }
  .page-experience .card h3 { font-size: 16px; }
  .page-experience-detail .layout,.page-experience-detail .layout.no-toc { display: block; padding-top: 24px; }
  .page-experience-detail .toc-side { position: static; margin-bottom: 24px; }
  .page-experience-detail .toc-box { border: 1px solid var(--rule); padding: 16px; max-height: 240px; }
  .tuyan-ui .art-title { font-size: 26px; }
  .tuyan-ui .prose { font-size: 16px; line-height: 1.9; }
  .page-timeline .stage-nav { top: 72px; }
  .page-timeline .stage-tab { padding-inline: 15px; min-height: 44px; }
  .page-timeline .stage-row { padding-inline: 12px; gap: 2px; }
  .page-timeline .stage-sep { display: none; }
  .phase-guide { padding: 20px; flex-direction: column; align-items: start; gap: 14px; }
  .phase-guide h2 { font-size: 22px; }
  .page-tutoring .hero-inner { padding-block: 32px; }
  .page-tutoring .hero h1 { font-size: 32px; }
  .tuyan-ui .sf-inner { padding-inline: 20px; flex-wrap: wrap; gap: 10px; }
  .tuyan-ui .auth-card { padding: 24px; margin: 28px 16px; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .tuyan-ui *, .tuyan-ui *::before, .tuyan-ui *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Consistent inner surfaces and interactive states. */
.tuyan-ui :where(input,textarea,select) { accent-color: var(--brand); }
.tuyan-ui :where(button,.btn,a) { -webkit-tap-highlight-color: transparent; }
.tuyan-ui :where(.fchip,.flt-pill,.stage-tab,.tab):focus-visible { outline-offset: 3px; }
.page-news .feed-toolbar { background: transparent; padding: 0; }
.page-news .toolbar-search input,.page-major .catalog-search input { background: white; border-color: var(--rule); }
.page-major .major-group { background: white; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; }
.page-major .group-head { padding: 18px 22px; }
.page-major .major-list { padding: 4px 16px 16px; }
.page-major .school-card { background: white; border-color: var(--rule); }
.page-competitions .filter-panel2 { background: white; padding: 18px 22px; border: 1px solid var(--rule); border-radius: 12px; }
.page-competitions .comp-card { background: white; border-color: var(--rule); }
.page-experience .hero { padding: 40px 0 26px; background: var(--surface-2); }
.page-experience .hero-search { background: white; border: 1px solid #aeb4bc; }
.tuyan-ui .article { min-width: 0; background: white; border: 1px solid var(--rule); border-radius: 12px; padding: 32px; }
.tuyan-ui .prose { overflow-wrap: anywhere; }
.tuyan-ui .prose img { max-width: 100%; height: auto; }
.tuyan-ui .prose table { display: block; max-width: 100%; overflow-x: auto; }
.tuyan-ui .prose pre { max-width: 100%; overflow-x: auto; }
.tuyan-ui .conversion { background: #f7f4ea; border: 1px solid #e7dfcf; padding: 26px 30px; }
.tuyan-ui .conversion h3 { color: var(--brand); }
.tuyan-ui .conversion p { color: var(--ink-3); }
.tuyan-ui .conversion .conv-eye { color: #795b25; }
.tuyan-ui .conversion .btn-line { color: var(--brand); border-color: #9ca6b4; }
.tuyan-ui .conversion .btn-line:hover { background: var(--brand); color: white; border-color: var(--brand); }
.page-timeline .phase-guide { border-radius: 0 12px 12px 0; background: #f3efdf; }
.page-timeline .tl-card { background: white; border-color: var(--rule); }
.page-tutoring .hero-inner { padding-block: 60px; }
.page-tutoring :where(.mentor-card,.plan-card,.service-card) { border-radius: 12px; border-color: var(--rule); }
.page-tutoring .sec-eye { color: #8a632a; }
.page-account main.wrap,.page-write-experience main.wrap { padding-top: 32px; padding-bottom: 48px; }
.page-account .card,.page-write-experience .card { background: white; padding: 28px; border-color: var(--rule); }
.page-account .tabs { margin-block: 24px; }
.page-account .tab { min-height: 44px; padding: 10px 16px; }
.tuyan-ui .auth-card { border-top: 4px solid var(--brand); box-shadow: 0 12px 48px #15203308; }
.page-privacy > .wrap,.page-terms > .wrap { background: white; border: 1px solid var(--rule); border-radius: 12px; padding: 36px; margin-block: 36px; max-width: 840px; }
.page-404 .card { background: white; border: 1px solid var(--rule); border-radius: 16px; padding: 36px; max-width: 620px; }
.page-admin .wrap { max-width: 1480px; }
.page-admin .panel { border-top: 3px solid #d5bd8e; border-radius: 12px; }
.page-admin .task-nav { top: 104px; }
.page-admin .task-link { border-radius: 8px; padding: 13px; }
.page-admin .summary { background: var(--surface-2); }
.tuyan-ui .tuyan-online-widget { border-color: var(--rule); box-shadow: 0 4px 16px #1520330d; }
@media (min-width:861px) and (max-width:1120px) {
  .tuyan-ui .ui-header-inner { flex-wrap: wrap; gap: 8px 20px; }
  .ui-nav { order: 3; width: 100%; justify-content: center; gap: 28px; }
  .ui-utilities { margin-left: auto; }
  .ui-nav > a,.ui-nav summary { font-size: 14px; padding-block: 8px; }
  .page-timeline .stage-nav { top: 122px; }
}
@media (max-width:860px) {
  .ui-nav { flex-direction: column; align-items: stretch; gap: 0; }
  .ui-nav > a,.ui-nav summary { padding: 12px; font-size: 16px; }
  .ui-nav > a.active { box-shadow: none; background: var(--brand-tint); border-radius: 8px; }
  .ui-subnav { margin: 0 0 10px 20px; }
  .ui-header .ui-utilities > a { display: inline; font-size: 12px; }
  .tuyan-ui .article { padding: 22px 18px; }
  .page-experience .filters { padding: 16px; }
  .page-experience .card { padding: 24px 20px; }
  .page-news .filter-panel { padding: 12px 14px; }
  .page-news .news-item { padding: 18px 14px; }
  .page-major .major-group { margin-bottom: 20px; }
  .page-competitions .filter-panel2 { padding: 14px; }
  .page-tutoring .hero-inner { padding-block: 36px; }
  .page-privacy > .wrap,.page-terms > .wrap { padding: 24px 20px; margin-block: 20px; }
  .page-admin .workspace { display: block; }
  .page-admin .task-nav { position: static; display: flex; flex-wrap: wrap; margin-bottom: 20px; }
  .page-admin .task-link { width: auto; }
  .page-admin .review-tools,.page-admin .review-grid,.page-admin .message-grid { display: block; }
  .page-admin .search-line { margin-top: 12px; }
  .page-admin .search-line input { min-width: 0; }
  .page-admin .experience-column { border-right: 0; padding: 0; }
  .page-admin .editor-column { padding: 20px 0 0; }
}
@media (max-width:600px) {
  .tuyan-ui .ui-header-inner { padding-inline: 16px; gap: 8px 12px; }
  .tuyan-ui .ui-header .brand { font-size: 18px; gap: 8px; }
  .ui-header .ui-utilities > a { display: none; }
  .ui-menu-toggle { margin-left: auto; }
  .ui-utilities { gap: 8px; }
  .discovery-hero h1 { max-width: 340px; margin-inline: auto; }
  .discovery-hero h1 span { display: block; }
  .discovery-quick > span { width: 100%; }
  .discovery-quick .discovery-more { padding-inline: 5px; }
  .tuyan-ui .conversion { padding: 24px 20px; }
  .page-404 .card { padding: 28px 20px; }
}
@media (max-width:860px) {
  .tuyan-ui .tuyan-online-widget { bottom: calc(16px + env(safe-area-inset-bottom)); transform: none; }
  body.tuyan-ui { padding-bottom: 64px; }
}

body:is(.page-login,.page-register,.page-forgot-password,.page-reset-password) { padding: 24px 16px; }
@media (max-width:860px) { .tuyan-ui .auth-card { width: min(100%,440px); margin: 0; } }
