/* Mobile V1 is an additive presentation layer; desktop rules remain unchanged. */
[data-mobile-ui] { display:none; }
@media screen and (max-width:999px) {
  :root { --planner-gutter:16px; --mobile-nav-height:calc(64px + env(safe-area-inset-bottom,0px)); }
  html { scroll-padding-top:80px; }
  body { font-size:14px; }
  body.has-support,body.has-support.support-is-collapsed { --support-gutter:0px; }
  body.mobile-has-nav { padding-bottom:var(--mobile-nav-height); }
  .has-support #app { padding-right:0; }
  #app { min-height:calc(100svh - var(--mobile-nav-height)); }
  #app > main,main.wide,main.narrow { width:100%; max-width:100%; min-width:0; padding:22px 16px 32px; }
  main h1 { overflow-wrap:anywhere; }
  .app-header,.has-support .app-header,body:has(.landing-page) .app-header {
    position:relative; height:64px; min-height:64px; padding:0 16px; margin:0; gap:12px; flex-wrap:nowrap;
  }
  .app-header .brand { flex:0 0 auto; }
  .app-header .brand img { width:106px; height:43px; }
  .app-header > nav,.app-header .beta,.app-header .expert-header-cta { display:none; }
  .app-header .account-nav { margin-left:auto; gap:8px; min-width:0; }
  .app-header .account-nav > a[href="#login"] { padding:8px 16px; min-height:40px; font-size:14px; }
  .app-header .avatar,.app-header .bell,.app-header .mobile-service-button { width:40px; height:40px; min-width:40px; min-height:40px; padding:9px; border-radius:12px; }
  .app-header .mobile-service-button { display:grid; place-items:center; border:1px solid #e1e9f7; background:#f6f9ff; }
  .mobile-service-button .ux-icon { width:22px; height:22px; }
  .app-header .avatar { border-radius:50%; font-size:16px; }
  .app-header #header-account-menu,.app-header #header-inbox,body:has(.landing-page) .app-header #header-account-menu,body:has(.landing-page) .app-header #header-inbox {
    position:absolute; top:58px; right:12px; left:auto; width:min(360px,calc(100vw - 24px)); min-width:0; max-height:calc(100dvh - 150px); overflow-y:auto;
  }
  .mobile-bottom-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); position:fixed; z-index:60; left:0; right:0; bottom:0; height:var(--mobile-nav-height); padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px)); border-top:1px solid #dce6f3; background:#fffffff5; box-shadow:0 -3px 18px #203d6805; }
  .mobile-bottom-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:48px; border-radius:10px; color:#7386a1; font-size:11px; line-height:17px; text-decoration:none; }
  .mobile-bottom-nav a[aria-current] { color:var(--blue); background:#edf4ff; font-weight:650; }
  .mobile-bottom-nav .ux-icon { width:23px; height:23px; }
  .support-dock { display:none!important; }
  .app-footer,body:has(.planner-page) .app-footer { padding:0 16px 22px; }
  .welcome-footer { padding-top:20px; }
  .welcome-footer-top { flex-direction:column; align-items:flex-start; gap:16px; }
  .welcome-footer-brand { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
  .welcome-footer-brand img { width:94px; height:38px; }
  .welcome-footer-brand span { margin:0; font-size:12px; }
  .welcome-footer-links { display:flex; flex-wrap:wrap; gap:12px 18px; }
  .welcome-footer-links a { min-height:32px; display:flex; align-items:center; font-size:12px; }
  .welcome-footer-divider,.welcome-footer-partnership { display:none; }
  .welcome-footer-legal { display:flex; flex-direction:column; align-items:flex-start; gap:8px; font-size:10px; }
  #toast,#toast.visible { bottom:calc(var(--mobile-nav-height) + 14px); left:16px; right:16px; width:auto; min-width:0; max-width:calc(100vw - 32px); transform:none; font-size:13px; }
  input:not([type=checkbox]):not([type=radio]),select,textarea { font-size:16px; }
  button,summary,a { touch-action:manipulation; }
  .two,.setup-grid { grid-template-columns:minmax(0,1fr); }

  /* Welcome and account entry. */
  #app > .landing-page { padding:22px 20px 28px; }
  .home.home--student { display:flex; flex-direction:column; align-items:stretch; gap:18px; height:auto; min-height:0; padding:8px 0 0; overflow:visible; }
  .home--student .home-copy { padding:0; min-width:0; }
  .home--student .home-copy .eyebrow { font-size:11px; letter-spacing:.4px; margin-bottom:18px; }
  .home--student .home-copy h1 { font-size:clamp(38px,10.8vw,58px); line-height:1.3; letter-spacing:-1px; margin-bottom:24px; }
  .home--student .home-copy h1 span { max-width:100%; }
  .home-benefits { margin:0 0 24px; max-width:none; }
  .home-benefits > div { padding:15px 0 15px 56px; min-height:76px; }
  .home-benefits dt { font-size:16px; }
  .home-benefits dd { font-size:13px; line-height:1.8; }
  .home-benefit-icon { width:40px; height:40px; }
  .home-benefit-icon .ux-icon { width:28px; height:28px; }
  .home--student .home-copy .primary { width:100%; min-width:0; min-height:48px; font-size:16px; padding:12px 16px; }
  .home-illustration { width:100%; max-width:500px; align-self:center; }
  #app > .auth-page { min-height:calc(100svh - 64px); padding:30px 16px; align-items:flex-start; }
  .auth-card { width:100%; max-width:450px; padding:26px 24px; border-radius:16px; }
  .auth-heading h1 { font-size:26px; }
  .auth-heading p { font-size:14px; }
  .auth-card .auth-field { margin-top:20px; }
  .auth-card .auth-field input { min-height:48px; font-size:16px; }
  .auth-card .password-toggle { width:40px; height:40px; top:4px; right:4px; }
  .auth-card .auth-submit { min-height:48px; height:auto; }
  .auth-reset-progress { gap:5px; }
  .auth-reset-progress li { padding:8px 4px; font-size:11px; }
  #app > .setup-page { padding:22px 16px 32px; min-height:calc(100svh - 64px); }
  .setup-progress { margin-bottom:24px; font-size:12px; }
  .setup-progress li { gap:7px; }
  .setup-progress li > span { width:30px; height:30px; font-size:14px; }
  .setup-progress li:after { top:15px; }
  .setup-card { display:block; padding:0; border-radius:15px; overflow:visible; }
  .setup-content { padding:24px 20px; }
  .setup-heading { padding:0!important; margin-bottom:22px; }
  .setup-heading h1 { font-size:25px; }
  .setup-heading p { font-size:14px; }
  .setup-content > .offer-panel,.setup-content > .offer-panel:has(.offer-manual-heading) { position:static; width:auto; margin:0 0 22px; }
  .setup-content .offer-choice { padding:24px 16px; }
  .setup-content .offer-choice h2 { font-size:21px; }
  .setup-content .offer-choice p { font-size:14px; }
  .offer-primary { width:100%; min-width:0; min-height:46px; }
  .offer-manual { display:block; padding-top:20px; }
  .offer-manual p { margin:6px 0; }
  .offer-manual > .offer-text { margin:0; min-height:40px; }
  .offer-file { flex-wrap:wrap; }
  .offer-file-actions { width:100%; justify-content:flex-end; gap:16px; }
  .offer-file-actions button { min-height:36px; }
  .offer-review-heading { display:block; }
  .offer-review-heading p { margin-top:8px; }
  .setup-grid { gap:20px; }
  .setup-grid label,.setup-entry label { font-size:13px; }
  .setup-grid select,.setup-grid input,.setup-entry select { width:100%; min-width:0; min-height:48px; font-size:16px; }
  .setup-degree-summary { padding:14px; gap:12px; }
  .setup-degree-summary > img { width:66px; height:40px; }
  .setup-degree-summary strong { font-size:14px; }
  .setup-degree-summary p { font-size:11px; }
  .setup-entry { margin-top:24px; }
  .setup-status { margin-bottom:24px; }
  .setup-status-options { gap:10px; }
  .setup-status-options label { padding:12px; gap:10px; min-height:70px; }
  .setup-status-options label > span { display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
  .setup-status-options strong { font-size:14px; }
  .setup-status-options small { font-size:10px; }
  .setup-card .setup-submit { height:auto; min-height:48px; margin-top:24px; font-size:16px; }
  .campus-panel { display:none; }
  .school-picker-menu { max-width:calc(100vw - 72px); }

  /* One-column semester plan. Finding courses opens a dedicated sheet. */
  .planner-page .workspace-top { display:block; padding:18px; margin-bottom:16px; min-height:0; }
  .planner-page .identity.ux-academic { padding:0; gap:14px; align-items:flex-start; margin:0; }
  .ux-academic .school-logo { width:76px!important; height:48px!important; margin-top:2px; }
  .ux-academic-main { flex:1; min-width:0; }
  .ux-academic-school { font-size:12px; margin-bottom:6px; }
  .ux-academic-degree { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size:18px; line-height:1.5; }
  .ux-academic-degree > span { font-size:11px; padding:1px 6px; }
  .ux-academic-meta { display:flex; flex-wrap:wrap; gap:4px 8px; font-size:11px; line-height:1.7; margin-top:6px; }
  .ux-academic-meta .ux-icon { width:14px; height:14px; }
  .ux-academic-details { margin-left:0; flex:0 0 30px; }
  .ux-academic-details > summary { width:30px; min-height:36px; padding:6px; }
  .planner-page .ux-academic-pop { position:fixed; z-index:70; top:80px; left:16px; right:16px; width:auto; max-height:calc(100dvh - 170px); overflow:auto; padding:20px; }
  .planner-page .workspace-top > .ux-credit-panel { width:100%; margin:16px 0 0; padding:14px 0 0; border:0; border-top:1px dashed #dbe5f4; }
  .ux-credit-caption { font-size:12px; }
  .ux-credit-caption strong { font-size:20px; }
  .ux-credit-caption strong small { font-size:12px; }
  .ux-credit-legend { font-size:11px; gap:14px; }
  .planner-page .workspace-layout { display:block; }
  .mobile-plan-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 18px; }
  .mobile-plan-shortcuts button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px; border:1px solid #ccdcf4; border-radius:10px; background:#fff; color:var(--blue); font-size:14px; font-weight:600; }
  .mobile-plan-shortcuts button.primary { background:var(--blue); color:#fff; border-color:var(--blue); }
  .mobile-plan-shortcuts .ux-icon { width:21px; height:21px; }
  .planner-page .mm-toolbar { padding:16px; min-height:0; gap:14px; }
  .ux-plan-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; width:100%; }
  .ux-plan-name { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
  .ux-plan-name h1 { font-size:21px; line-height:1.5; }
  .ux-plan-name h1 button { font-size:inherit; min-height:32px; }
  .ux-plan-name .mm-save { font-size:11px; white-space:nowrap; }
  .planner-page .ux-plan-check { font-size:11px; min-height:30px; padding:5px 8px; }
  .ux-plan-actions { display:flex; justify-content:space-between; gap:6px; width:100%; margin:0; padding-top:12px; border-top:1px solid #edf1f7; }
  .ux-plan-actions button,.planner-page .ux-plan-actions .ux-tool { min-width:36px; min-height:40px; padding:7px; gap:5px; font-size:12px; }
  .ux-plan-actions button .ux-icon { width:19px; height:19px; }
  .ux-tool-divider { display:none; }
  .planner-page .monmap-planner .mm-year-strip { padding:14px 16px; gap:12px; }
  .planner-page .mm-year-strip h2 { font-size:20px; gap:9px; }
  .planner-page .mm-year-strip h2 small { font-size:12px; }
  .mm-year-actions button { width:36px; height:36px; min-width:36px; }
  .planner-page .monmap-planner .mm-term { grid-template-columns:minmax(0,1fr); }
  .planner-page .monmap-planner .mm-slot-label { display:flex; flex-direction:row; align-items:center; justify-content:space-between; padding:12px 16px; border-right:0; border-bottom:1px solid #e7edf7; }
  .mm-slot-label > div:first-child { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
  .planner-page .ux-term-name { font-size:14px; }
  .planner-page .ux-term-name > span { font-size:10px; }
  .planner-page .ux-term-load { margin:0; font-size:11px; line-height:1.6; }
  .planner-page .ux-term-load b { font-size:11px; }
  .ux-term-load br { display:none; }
  .planner-page .mm-term-actions { position:static; opacity:1; gap:2px; }
  .mm-term-actions button { width:36px; height:36px; min-width:36px; padding:8px; }
  .planner-page .monmap-planner .mm-slot { display:grid; grid-template-columns:minmax(0,1fr); grid-auto-flow:row; grid-auto-columns:auto; gap:10px; padding:12px; min-height:0; overflow:visible; }
  .planner-page .monmap-planner .mm-card { min-width:0; min-height:112px; width:100%; }
  .planner-page .monmap-planner .mm-card-main { min-height:112px; padding:14px 44px 14px 14px; gap:7px; }
  .planner-page .mm-card-code { font-size:15px; }
  .planner-page .mm-title-zh { font-size:14px; }
  .planner-page .mm-title-en { font-size:11px; -webkit-line-clamp:2; }
  .planner-page .mm-card-footer { font-size:11px; }
  .planner-page .mm-card-options button { width:40px; height:40px; min-width:40px; padding:9px; }
  .planner-page .mm-drag-handle { display:none; }
  .planner-page .monmap-planner .mm-add-unit { min-height:48px; padding:10px; }
  .planner-page .mm-add-unit > span { flex-direction:row; gap:7px; font-size:13px; }
  .planner-page .mm-add-unit ~ .mm-add-unit { display:none; }
  .planner-page .mm-add-year { padding:16px; }
  .planner-page .mm-add-year button { width:100%; min-height:44px; }
  .planner-page .sidebar.add-course-sidebar { display:none; position:fixed; z-index:75; inset:64px 0 0; width:100%; height:calc(100dvh - 64px); min-height:0; max-height:calc(100dvh - 64px); transform:none; translate:none; padding:0 16px calc(24px + env(safe-area-inset-bottom,0px)); margin:0; border-radius:20px 20px 0 0; background:#f3f6fa; overflow-y:auto; overscroll-behavior:contain; gap:14px; }
  body.mobile-finder-open { overflow:hidden; }
  .mobile-finder-open .planner-page .sidebar.add-course-sidebar { display:flex; }
  .mobile-finder-heading { display:flex; position:sticky; top:0; z-index:3; justify-content:space-between; align-items:center; padding:15px 0 10px; background:#f3f6fa; }
  .mobile-finder-heading strong { font-size:20px; }
  .mobile-finder-heading button { width:42px; height:42px; padding:10px; background:#fff; border:1px solid #dde6f4; }
  .mobile-finder-heading .ux-icon { width:21px; height:21px; }
  .mobile-finder-backdrop { display:none; }
  .mobile-finder-open .mobile-finder-backdrop { display:block; position:fixed; z-index:70; inset:0; border:0; border-radius:0; background:#1a30575c; padding:0; }
  .add-course-sidebar .ux-planner-action { display:none; }
  .planner-page .monmap-add-panel #quick-results { max-height:none; overflow:visible; }
  .planner-page .mm-unit-plus { width:42px!important; height:42px!important; min-width:42px!important; }
  .planner-page .monmap-add-panel .ux-unit-search input { font-size:16px; min-height:44px; }
  .planner-page .ux-unit-controls button { min-height:38px; font-size:13px; }
  .monmap-planner .mm-menu-item { min-height:44px; font-size:13px; }
  .mm-unit-popover[popover],#monmap-menu[popover] { max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); }
  .mm-card .result-chip { min-height:32px; font-size:11px; right:10px; bottom:10px; padding:5px 8px; }
  .planner-page .mm-card:has(.result-chip) .mm-card-main { padding-bottom:45px; }

  /* Handbooks and directory lists. */
  .handbook-overview { padding:24px 16px!important; }
  .handbook-intro h1 { font-size:28px; line-height:1.5; }
  .handbook-intro p { font-size:14px; }
  .handbook-school-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  .handbook-topics { gap:10px; flex-wrap:wrap; }
  .library-heading { display:flex; flex-direction:column; align-items:stretch; gap:16px; padding:0; }
  .library-heading h1 { font-size:24px; }
  .library-heading-main { min-width:0; gap:12px; }
  .library-heading-main > img { width:88px; max-height:52px; object-fit:contain; }
  .library-heading-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; width:100%; }
  .library-heading-actions label { font-size:12px; }
  .library-heading-actions select { min-height:42px; font-size:16px; }
  .library-search-panel { padding:16px; }
  .library-search-row { flex-wrap:wrap; gap:12px; }
  .library-search { min-width:0; width:100%; }
  .library-search input { min-height:44px; font-size:16px; }
  .library-tabs { display:flex; flex-wrap:wrap; gap:6px; width:100%; }
  .library-tabs button { flex:1 1 60px; min-height:44px; padding:8px 5px; font-size:12px; }
  .library-personal-filters { display:flex; flex-wrap:wrap; gap:12px 18px; margin-top:14px; }
  .library-context-row { display:flex; flex-wrap:wrap; gap:8px; }
  .library-layout { display:block; }
  .library-filter-panel { position:static; padding:16px; margin-bottom:16px; }
  .library-filter-panel > summary { min-height:36px; margin:0; font-size:15px; }
  .library-filter-panel > .library-filter-tools { top:16px; right:16px; }
  .library-filter-panel:not([open]) > :not(summary) { display:none; }
  .library-results { min-width:0; }
  .library-results-head { flex-wrap:wrap; gap:12px; }
  .library-results-head h2 { font-size:18px; }
  .library-results-head select { min-height:42px; font-size:14px; }
  .library-columns { display:none; }
  .library-row { display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:17px 14px; }
  .library-row > * { min-width:0; }
  .library-row-main { min-width:0; }
  .library-row-title { font-size:15px; line-height:1.7; }
  .library-row-code { font-size:13px; }
  .library-row-metrics { display:flex; flex-wrap:wrap; gap:12px; }
  .library-pagination { flex-wrap:wrap; gap:8px; }
  .library-pagination button { min-width:40px; min-height:40px; }
  .library-discovery-controls .library-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
  .library-discovery-controls .library-tabs > button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:10px 3px; min-height:80px; }
  .library-discovery-controls .library-tabs > button > .ux-icon { width:20px; height:20px; }
  .library-discovery-controls .library-tabs > button > b { position:static; display:block; padding:0; margin:0; background:transparent; font-size:10px; line-height:14px; font-weight:400; }
  .library-discovery-controls .library-personal-filters { display:flex; flex-wrap:wrap; gap:4px 18px; margin:10px 0 0; }
  .library-discovery-controls .library-personal-filters > label { display:flex; align-items:center; gap:7px; min-height:36px; padding:0; margin:0; white-space:normal; font-size:12px; }
  .library-personal-filters input { position:static; flex:0 0 16px; width:16px; height:16px; margin:0; }
  .library-personal-divider { display:none; }
  .library-results-toolbar { display:flex; flex-direction:column; align-items:stretch; gap:12px; margin:0 0 16px; }
  .library-result-summary { display:flex; align-items:baseline; justify-content:space-between; gap:12px; width:100%; }
  .library-result-summary h2 { flex:none; width:auto; min-width:0; margin:0; font-size:18px; white-space:normal; }
  .library-result-summary p { margin:0; font-size:12px; white-space:nowrap; }
  .library-results-toolbar > .library-sort-control { justify-content:space-between; font-size:12px; }
  .library-page .library-result-open { width:100%; min-height:0; padding:18px 52px 18px 18px; }
  .library-page .library-result-title { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; align-items:start; }
  .library-page .library-result-title > strong { width:max-content; max-width:100%; min-width:0; margin:0; padding:3px 8px; font-size:12px; }
  .library-page .library-result-title h2 { width:100%; min-width:0; margin:0; font-size:16px; line-height:1.6; }
  .library-page .library-result-title h2 > small { font-size:12px; line-height:1.6; margin-top:4px; }
  .library-page .library-result-action { position:static; justify-self:start; font-size:12px; padding:4px 0; border:0; }
  .library-page .library-meta { display:flex; flex-wrap:wrap; gap:7px 12px; margin-top:10px; font-size:11px; }
  .faculty-heading { flex-direction:column; align-items:stretch; gap:18px; }
  .faculty-heading-main { gap:13px; }
  .faculty-heading h1 { font-size:25px; }
  .faculty-heading-actions { flex-wrap:wrap; gap:14px; }
  .faculty-tabs { flex-wrap:wrap; gap:6px; }
  .faculty-tabs button { min-height:42px; padding:8px 12px; }
  .faculty-toolbar { flex-wrap:wrap; gap:12px; }
  .faculty-search { min-width:0; flex-basis:100%; }
  .faculty-columns { display:none; }
  .faculty-row { grid-template-columns:minmax(0,1fr) 18px; gap:10px; padding:18px 16px; }
  .faculty-row > :nth-child(2),.faculty-row > :nth-child(3) { grid-column:1; }
  .faculty-row > svg { grid-column:2; grid-row:1; }
  .faculty-row h3 { font-size:15px; }

  /* Academic profile and records. */
  .student-profile .sp-page-head { display:flex; flex-wrap:wrap; align-items:flex-start; gap:15px; margin-bottom:20px; }
  .student-profile .sp-page-head > div { display:block; }
  .student-profile .sp-page-head h1 { font-size:26px; }
  .student-profile .sp-page-intro { margin-top:7px; font-size:13px; }
  .sp-return { gap:8px; padding:9px 12px; min-height:42px; font-size:12px; }
  .student-profile .sp-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
  .student-profile .sp-card { padding:20px; }
  .student-profile .sp-degree h2 { font-size:21px; }
  .sp-academic-facts,.sp-personal-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
  .sp-academic-footer { flex-wrap:wrap; gap:12px; }
  .sp-school { flex-wrap:wrap; gap:10px; }
  .sp-school img { max-width:92px; }
  .sp-status { margin-left:0; }
  .personal-planning-summary,.personal-summary-grid,.sp-metrics,.personal-fields,.personal-two { grid-template-columns:minmax(0,1fr); }
  .learning-page .learning-layout { display:flex; flex-direction:column; gap:18px; }
  .learning-page .learning-main,.learning-page .learning-editor,.learning-page .learning-list { width:100%; min-width:0; }
  .learning-page .learning-hero { display:block; padding:20px; }
  .learning-page h1 { font-size:25px; }
  .learning-summary,.learning-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .learning-page .learning-editor,.learning-page .learning-list { padding:20px; }
  .learning-page .learning-actions,.learning-page .learning-finish > div { flex-wrap:wrap; gap:12px; }
  .learning-page .learning-finish { padding:18px; }
  .learning-page .learning-finish button { width:100%; min-height:44px; }
  .learning-page .learning-row { flex-wrap:wrap; gap:10px; }
  .learning-page .learning-row > div { min-width:0; }
  .settings-page .settings-grid,.profile-grid,.record-grid { grid-template-columns:minmax(0,1fr); }
  .notifications-heading { align-items:flex-start; gap:12px; }
  .notifications-heading h1 { font-size:25px; }
  .notifications-list { padding:0 16px; }

  /* Degree pages keep the same grouped content in one reading column. */
  .degree-page .degree-hero { padding:20px; }
  .degree-hero-top { flex-wrap:wrap; gap:14px; margin-bottom:20px; }
  .degree-page .degree-university { gap:10px; font-size:12px; }
  .degree-page .degree-university img { width:80px; }
  .degree-code { font-size:11px; }
  .degree-summary-row { display:block; padding-bottom:20px; }
  .degree-page .degree-hero h1 { font-size:27px; line-height:1.4; overflow-wrap:normal; }
  .degree-facts { margin-top:20px; padding:16px 12px; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .degree-facts > div { padding:0 8px; min-width:0; }
  .degree-facts strong { font-size:24px; }
  .degree-facts dt { font-size:10px; line-height:1.7; }
  .degree-facts dd { margin-top:9px; font-size:22px; }
  .degree-facts dd small { display:block; font-size:10px; margin:3px 0 0; }
  .degree-hero-footer { display:flex; flex-wrap:wrap; gap:14px; padding-top:16px; }
  .degree-layout { display:block; }
  .degree-sidebar { position:static; margin:0 0 16px; }
  .degree-sidebar nav { display:flex; overflow-x:auto; gap:6px; padding:8px; }
  .degree-sidebar button { flex:0 0 auto; width:auto; min-height:40px; white-space:nowrap; font-size:12px; padding:8px 12px; }
  .degree-sidebar .degree-contents-label,.degree-sidebar .degree-nav-group,.degree-sidebar .degree-official-link { display:none; }
  .degree-sidebar { padding:4px; }
  .degree-sidebar > p,.degree-sidebar > h2 { display:none; }
  .degree-reading { flex-wrap:wrap; gap:12px; padding:14px 16px; }
  .degree-section { padding:20px; margin-bottom:16px; }
  .degree-fold { padding:0; }
  .degree-fold > summary { padding:18px 20px; font-size:17px; }
  .degree-fold-body { padding:0 20px 20px; }
  .degree-part-index { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .degree-course-grid,.degree-area-grid,.degree-area-options,.degree-entry-columns,.degree-english-tests,.degree-source-facts { grid-template-columns:minmax(0,1fr); }
  .degree-english-tests > div { border-right:0; border-bottom:1px dashed var(--line); padding:0 0 18px; }
  .degree-english-tests > div:last-child { border:0; padding:0; }
  .degree-source-row { flex-wrap:wrap; padding:16px; }
  .degree-source-row > a { width:100%; justify-content:center; }
  .degree-map-toolbar { flex-wrap:wrap; gap:12px; align-items:center; }
  .degree-map-toolbar > label:first-child { width:100%; }
  .degree-map-toolbar > button { margin:0; min-height:42px; }
  .degree-page .library-review-fields,.library-review-main-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
  .degree-review-empty { flex-wrap:wrap; padding:18px; }
  .degree-review-empty button { width:100%; min-height:44px; }

  /* Expert intake, checkout, order history and online report. */
  .expert-page:has(> .expert-page-nav) { display:block; }
  .expert-page:has(> .expert-page-nav) > .expert-page-nav { justify-content:flex-start; margin:0 0 20px; white-space:normal; }
  .expert-page .expert-heading { display:block; width:100%; height:auto; min-height:0; padding:0; }
  .expert-heading h1 { font-size:27px; line-height:1.5; }
  .expert-heading p { font-size:14px; line-height:1.85; }
  .expert-page-nav { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px; font-size:12px; }
  .expert-page-nav > :first-child { margin-right:auto; }
  .expert-intake-layout,.expert-checkout-page .expert-checkout-layout,.expert-online-report > section { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
  .expert-intake-layout .expert-form,.expert-form,.expert-order-card { padding:20px; min-width:0; }
  .expert-offer { position:static; padding:20px; }
  .expert-page :is(input:not([type=radio]),select,textarea) { font-size:16px; }
  .expert-page .expert-field :is(input,textarea,select) { font-size:16px; min-height:46px; }
  .expert-page .expert-term-field { max-width:none; }
  .expert-facts { padding:14px; }
  .expert-facts summary { flex-wrap:wrap; gap:8px; }
  .expert-facts summary > span { margin-left:0; font-size:11px; }
  .expert-question-group { padding:20px 0; }
  .expert-question-label { flex-wrap:wrap; gap:8px; }
  .expert-question-label h2 { font-size:15px; }
  .expert-question-label small { margin-left:0; }
  .expert-choices { gap:8px; }
  .expert-choices label { max-width:100%; }
  .expert-choices span { display:flex; align-items:center; min-height:44px; padding:10px 12px; font-size:13px; }
  .expert-field-grid,.expert-abilities,.expert-profile-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .expert-form-footer { flex-wrap:wrap; gap:16px; }
  .expert-form-footer .expert-primary { width:100%; min-height:48px; }
  .expert-form-footer > span { font-size:12px; }
  .expert-load-row,.expert-academic { flex-wrap:wrap; }
  .expert-flow { padding:16px 8px; gap:0; }
  .expert-flow > li { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:8px; padding:0 8px; min-width:0; }
  .expert-flow > li > span { width:26px; height:26px; min-width:26px; font-size:12px; }
  .expert-flow > li > div { width:100%; min-width:0; text-align:center; }
  .expert-flow > li strong { font-size:12px; line-height:1.6; }
  .expert-flow > li small { display:none; }
  .expert-academic { gap:13px; }
  .expert-academic img { width:88px; height:40px; }
  .expert-academic > div { flex:1; min-width:140px; }
  .expert-academic > span { width:100%; font-size:11px; }
  .expert-answer-summary,.checkout-needs-grid,.checkout-services-grid,.checkout-deliverables,.checkout-academic-grid { grid-template-columns:minmax(0,1fr); }
  .checkout-needs,.checkout-services,.checkout-deliverable,.checkout-payment { padding:20px; }
  .checkout-payment { position:static; }
  .checkout-sample-stage { display:block; padding:18px; }
  .checkout-sample-stage > * { max-width:100%; }
  .expert-order-product { flex-wrap:wrap; gap:12px; }
  .expert-order-product > strong { width:100%; }
  .expert-answer-summary > div { grid-template-columns:78px minmax(0,1fr); gap:12px; }
  .expert-delivery,.expert-delivery-actions { flex-wrap:wrap; gap:14px; }
  .expert-delivery-actions { width:100%; }
  .expert-delivery-actions .expert-primary { width:100%; min-height:46px; }
  .expert-orders-page .expert-order-item { grid-template-columns:minmax(0,1fr); gap:18px; padding:20px; }
  .orders-item-number { flex-wrap:wrap; gap:6px; }
  .orders-item-number > button { min-height:36px; }
  .orders-item-actions { flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; padding:16px 0 0; border-left:0; border-top:1px dashed #dce5f4; }
  .orders-item-meta { grid-template-columns:minmax(0,1fr); }
  .orders-item-needs { grid-template-columns:minmax(0,1fr); }
  .expert-orders-page .expert-order-item { padding:0; }
  .orders-item-meta { flex-direction:column; align-items:flex-start; gap:6px; padding:12px 18px; }
  .orders-item-number { width:100%; }
  .orders-item-number > code { max-width:none; min-width:0; flex:1; white-space:normal; overflow-wrap:anywhere; }
  .orders-item-body { grid-template-columns:minmax(0,1fr); padding:18px; gap:16px; }
  .expert-orders-page .orders-item-academic,.expert-orders-page .orders-item-note { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.8; }
  .orders-item-needs > div { align-items:flex-start; }
  .orders-item-needs > div + div { border-left:0; border-top:1px dashed #dce5f3; padding:10px 0 0; }
  .orders-item-needs dd { min-width:0; }
  .expert-orders-page .orders-item-actions { flex-direction:row; align-items:center; justify-content:space-between; padding:14px 0 0; border-left:0; border-top:1px dashed #dce5f3; }
  .expert-service-page .expert-service-layout { display:block; }
  .service-status-card { padding:20px; }
  .service-status-card > h2 { font-size:24px; line-height:1.5; }
  .service-status-copy { font-size:14px; line-height:1.9; }
  .service-summary { position:static; width:100%; padding:20px; margin-top:18px; }
  .service-progress { padding:18px 6px; }
  .service-progress li { padding:0 5px; }
  .service-progress strong { font-size:11px; }
  .service-progress small { display:none; }
  .service-primary-actions { flex-direction:column; align-items:stretch; gap:10px; }
  .service-primary-actions > a,.service-primary-actions > button { width:100%; min-height:44px; }
  .service-notification > div { min-width:0; }
  .service-recipient { overflow-wrap:anywhere; }
  .service-report-file { flex-wrap:wrap; gap:12px; }
  .service-report-file > div { min-width:0; flex:1; }
  .service-report-file > button { width:100%; min-height:46px; }
  .service-submitted { padding:18px; }
  .checkout-benefits { grid-template-columns:minmax(0,1fr); }
  .checkout-benefit { padding:16px; }
  .checkout-benefit h3 { font-size:14px; }
  .checkout-benefit p { font-size:12px; line-height:1.85; }
  .checkout-sample-stage { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:12px; }
  .checkout-sample-page { max-width:100%; max-height:150px; }
  .checkout-sample-placeholder { padding:8px; gap:5px; }
  .checkout-sample-placeholder > .ux-icon { width:20px; height:20px; }
  .checkout-sample-placeholder > strong { font-size:9px; }
  .checkout-sample-placeholder > small { display:none; }
  .checkout-sample-caption > strong { flex-wrap:wrap; gap:2px 4px; margin-top:8px; font-size:10px; }
  .checkout-sample-caption > small { display:none; }
  .expert-online-report { padding:20px; }
  .expert-online-report h1 { font-size:25px; }
  .expert-report-grid,.expert-report-facts,.expert-report-courses { grid-template-columns:minmax(0,1fr); }
  .expert-profile-import { width:calc(100vw - 24px); max-height:calc(100dvh - 32px); padding:20px; }
  .expert-profile-columns { display:none; }
  .expert-profile-change-list > label { grid-template-columns:minmax(0,1fr); gap:8px; padding:15px 0; }
  .expert-profile-change-list > label > span:nth-child(2):before { content:'当前填写：'; }
  .expert-profile-change-list > label > span:last-child:before { content:'档案资料：'; }

  /* Dialog reading and small-screen browser controls. */
  dialog { max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); }
  .dialog-head { padding:18px 20px; gap:12px; }
  .dialog-head h2 { font-size:19px; line-height:1.5; }
  .dialog-head .close,dialog button[aria-label^="关闭"] { flex-shrink:0; min-width:40px; min-height:40px; }
  .plan-dialog-body,.smart-planning-body,.study-dialog-body { padding:20px; }
  #detail,#detail:has(.unit-detail-layout),#detail.library-detail { width:calc(100vw - 20px); max-width:calc(100vw - 20px); max-height:calc(100dvh - 24px); border-radius:15px; }
  #detail .unit-detail-layout,#detail .area-detail-scroll .unit-detail-layout,.library-detail .library-detail-layout { display:block; }
  #detail .unit-detail-nav { position:static; display:flex; overflow-x:auto; gap:5px; padding:10px 14px; border-bottom:1px solid var(--line); }
  #detail .unit-detail-nav button { flex:0 0 auto; min-height:40px; padding:8px 10px; font-size:12px; white-space:nowrap; }
  #detail .unit-detail-content { padding:22px 20px; border-left:0; }
  #detail[open]:has(.unit-detail-scroll) { width:calc(100vw - 20px); max-width:calc(100vw - 20px); height:calc(100dvh - 24px); max-height:calc(100dvh - 24px); grid-template-columns:minmax(0,1fr); }
  #detail .unit-detail-scroll { min-width:0; width:100%; }
  #detail .unit-detail-top,#detail .unit-detail-head { flex-wrap:wrap; gap:10px; padding:14px 16px; min-width:0; }
  #detail .unit-dialog-head { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:10px; padding:14px 16px; }
  #detail .unit-dialog-head > span { grid-column:1; grid-row:1; white-space:normal; font-size:11px; }
  #detail .unit-dialog-head .reading-language { grid-column:1; grid-row:2; justify-self:start; margin:0; }
  #detail .unit-dialog-head .close { grid-column:2; grid-row:1/3; align-self:start; }
  #detail .unit-detail-hero h1 { font-size:25px; }
  #detail .unit-detail-facts { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }
  #detail .unit-detail-facts > div:last-child { grid-column:1/-1; padding:14px 0 0; border-left:0; border-top:1px dashed #d8e3f3; }
  #detail .unit-detail-facts > div:last-child dd { font-size:14px; line-height:1.8; }
  #detail .unit-detail-section { padding:20px 0; }
  #detail .unit-detail-actions { padding:14px 20px; flex-wrap:wrap; gap:10px; }
  #detail .unit-detail-actions button { min-height:44px; }
  #detail:has(.unit-detail-scroll) .unit-detail-actions { flex-direction:column; align-items:stretch; gap:10px; }
  #detail:has(.unit-detail-scroll) .unit-detail-actions > a { align-self:flex-start; min-height:28px; }
  #detail:has(.unit-detail-scroll) .unit-detail-actions > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; width:100%; }
  #detail:has(.unit-detail-scroll) .unit-detail-actions button { width:100%; min-width:0; }
  #detail .unit-detail-body,#detail .course-detail-layout,#detail .ux-unit-detail-layout { display:block; }
  #detail:has([data-personal-course-detail]) { width:calc(100vw - 20px); max-width:calc(100vw - 20px); }
  #detail .ux-unit-top { padding:14px 16px; flex-wrap:wrap; gap:10px; }
  .ux-unit-top-meta { flex-wrap:wrap; gap:7px; font-size:12px; }
  .ux-unit-top-meta > small { font-size:10px; }
  .ux-unit-top-controls { width:100%; justify-content:space-between; gap:12px; }
  .ux-unit-top .reading-language button { min-height:36px; padding:7px 13px; font-size:12px; }
  #detail .detail-body.ux-personal-detail { padding:20px; }
  .ux-unit-layout { display:flex; flex-direction:column; gap:20px; }
  .ux-unit-sections { width:100%; }
  .ux-unit-action-panel { position:static; width:100%; padding:18px; }
  .ux-unit-action-panel button { min-height:44px; font-size:14px; }
  .ux-unit-requisites > p { gap:10px; }
  #detail .ux-detail-top { flex-wrap:wrap; }
  #detail .library-detail-top { padding:16px 20px; gap:12px; flex-wrap:wrap; }
  .library-detail .library-detail-footer { padding:14px 20px; }
  .library-review-summary { flex-wrap:wrap; gap:14px; }
  .library-review-fields,.library-contacts { grid-template-columns:minmax(0,1fr); }
  .library-fact-list { grid-template-columns:86px minmax(0,1fr); }
  #plan-dialog[data-mode="credit"] { max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); }
  .planner-credit-fields { grid-template-columns:minmax(0,1fr) 85px; gap:15px 12px; }
  .planner-credit-fields > label:last-child { grid-column:1/-1; }
  .planner-credit-fields input { min-height:44px; font-size:16px; }
  .planner-credit-footer { flex-wrap:wrap; gap:14px; }
  .planner-credit-footer button { min-height:44px; }
  #result-editor { max-width:calc(100vw - 24px); padding:18px; }
  .result-mark-row input { min-height:44px; font-size:16px; }
  .result-editor-actions button { min-height:40px; }
  #support-dialog { max-width:calc(100vw - 24px); }
  .support-dialog-body { padding:20px; }
  #assistant,#assistant.is-expanded { inset:8px; width:calc(100vw - 16px); max-width:none; height:calc(100dvh - 16px); max-height:none; border-radius:16px; }
  #assistant .consult-head { padding:18px; }
  #assistant .consult-scroll { padding:12px 18px 20px; }
  #assistant .consult-bottom { padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px)); }
  #assistant .consult-icon-button { width:40px; height:40px; }
  #assistant .consult-tools > span { display:none; }
  #assistant #assistant-question { font-size:16px; }
  .offer-preview-dialog { max-width:calc(100vw - 24px); padding:20px; }
  .offer-sample-sheet { padding:20px 16px; }
  .offer-sample-sheet dl { grid-template-columns:minmax(0,1fr); gap:8px; }
  .checkout-preview-dialog { width:calc(100vw - 20px); max-width:calc(100vw - 20px); }
  .checkout-preview-head { padding:16px; gap:10px; }
  .checkout-preview-head h2 { font-size:18px; }
  .checkout-preview-tabs { padding:12px 16px; }
  .checkout-preview-scroll { padding:12px; max-height:calc(100dvh - 260px); }
  .checkout-preview-note { padding:12px 16px; }
  .planner-page #course-map { height:440px; }
  .degree-page .degree-map-frame .react-flow { height:420px!important; }
  .degree-page .degree-map-frame #degree-course-map { min-height:420px; }
  .degree-page .degree-map-frame .mm-map-focused { display:block; padding:18px; max-height:none; }
  .degree-page .degree-map-frame .mm-map-focused > * { grid-column:auto; grid-row:auto; }
  .degree-page .degree-map-frame .mm-map-hint { top:350px; font-size:10px; }
  body.mobile-map-open { overflow:hidden; }
  .degree-page .degree-map-frame.mobile-map-fullscreen { position:fixed; z-index:85; inset:8px; width:auto; height:calc(100dvh - 16px); margin:0; overflow:auto; border-radius:14px; box-shadow:0 0 0 20px #1a305766; }
  .degree-page .mobile-map-fullscreen .react-flow { height:calc(100dvh - 100px)!important; }
  .mobile-map-close { display:grid; place-items:center; position:absolute; z-index:30; top:10px; right:10px; width:42px; height:42px; padding:10px; border:1px solid #d6e3f6; border-radius:10px; background:#fff; box-shadow:0 3px 12px #25436d12; }
  .mobile-map-close .ux-icon { width:20px; height:20px; }
  .mm-map-hint span { font-size:10px; }
  .learning-page .learning-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:18px; gap:20px 16px; }
  .learning-page .learning-overview > div,.learning-page .learning-overview > div:first-child { min-width:0; padding:0; margin:0; border:0; }
  .learning-page .learning-overview > div { display:flex; flex-direction:column; gap:8px; }
  .learning-page .learning-overview > div > span { font-size:11px; }
  .learning-page .learning-overview strong { font-size:26px; line-height:1.3; }
  .learning-overview dt { font-size:11px; }
  .learning-overview dd { margin:8px 0 0; font-size:24px; }
  .learning-overview small { display:inline; font-size:10px; }
  .learning-heading { flex-wrap:wrap; gap:14px; }
  .learning-page .learning-mode-tabs { flex-wrap:wrap; }
  .ux-settings-page .ux-page-heading { flex-wrap:wrap; gap:14px; }
  .ux-settings-page .ux-page-heading h1 { font-size:26px; }
  .ux-settings-page .ux-settings-card { padding:20px; }
}
@media screen and (min-width:600px) and (max-width:999px) {
  #app > main,main.wide,main.narrow { padding-left:28px; padding-right:28px; }
  .app-header,.has-support .app-header,body:has(.landing-page) .app-header { padding-left:28px; padding-right:28px; }
  .planner-page .monmap-planner .mm-slot { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .planner-page .sidebar.add-course-sidebar { left:calc((100vw - 560px)/2); right:calc((100vw - 560px)/2); width:560px; }
  .degree-course-grid,.degree-area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
