
@font-face {
  font-family: "Counsel Sans";
  src: url("./fonts/counsel-regular.woff") format("woff");
  font-style: normal;
  font-weight: 100 550;
  font-display: swap;
}
@font-face {
  font-family: "Counsel Sans";
  src: url("./fonts/counsel-bold.woff") format("woff");
  font-style: normal;
  font-weight: 551 900;
  font-display: swap;
}

:root {
  --ink: #192d3e;
  --muted: #556773;
  --bg: #f5f5f2;
  --line: #d8dedf;
  --rule: #e6e9e8;
  --paper: #fff;
  --soft: #f2f4f4;
  --accent: #265269;
  --accent-bg: #e8f0f4;
  --rail: #172c40;
  --rail-type: #d9e2e9;
  --waypoint: #e0b680;
  --accent-deep: #163b50;
  --tint: #f2f5f6;
  --focus: #91afbf;
  --shadow: 0 16px 48px rgb(23 44 64 / .14);
  --sidebar-width: 220px;
  --gutter: clamp(22px, 2.8vw, 44px);
  --content-width: 1352px;
  font-family: Inter, "Counsel Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: 13px;
  color: var(--ink);
  background: var(--bg);
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}
body { font-variant-numeric: tabular-nums; }
.ui-icon { display: inline-block; width: 18px; height: 18px; flex: 0 0 auto; vertical-align: middle; }
button.with-icon, .utility-link, .login-links a {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
}
button.with-icon .ui-icon, .utility-link .ui-icon, .login-links .ui-icon { width: 15px; height: 15px; }
:where(h1,h2,h3,h4,label,summary,button,a) { word-break: keep-all; overflow-wrap: anywhere; }
:where(input,button,select,textarea) { font-family: inherit; }
:focus-visible { outline: 2px solid #3b7898; outline-offset: 3px; }
input:not([type=checkbox]):focus, select:focus, textarea:focus { border-color: var(--accent); outline: 2px solid var(--focus); outline-offset: 1px; }

@media screen {
  html,
  .modal-content,
  .wb-dialog:not(.history-search-dialog),
  .wb-dialog [data-comparison] .wb-table-wrap {
    scrollbar-gutter: stable;
  }
  body { background: var(--bg); }
  button, input:not([type=checkbox]):not([type=radio]), select, textarea {
    border-color: #c6d0d6; border-radius: 6px;
  }
  button { padding: 8px 13px; color: #29434b; line-height: 1.45; font-weight: 500; }
  button.small { padding: 6px 10px; font-size: 12px; }
  button:not(:disabled):hover { background-color: #f0f4f6; border-color: #9eb4c2; }
  button.primary { background: var(--accent); border-color: var(--accent); color: white; font-weight: 650; }
  button.primary:not(:disabled):hover { background: var(--accent-deep); border-color: var(--accent-deep); }
  button.text { color: var(--accent); }
  button:disabled { opacity: .56; }
  input:not([type=checkbox]):not([type=radio]), select, textarea {
    padding: 8px 10px; background-color: white; color: var(--ink); line-height: 1.45;
  }
  select { cursor: pointer; }
  input::placeholder, textarea::placeholder { color: #61757d; opacity: 1; }
  label { color: var(--muted); }
  .sidebar {
    width: var(--sidebar-width); padding: 0 15px 12px; background: var(--rail); color: white; border: 0;
    height: 100vh; height: 100dvh; overflow: hidden;
  }
  .sidebar-brand { display: flex; flex: 0 0 auto; align-items: center; padding: 23px 6px 22px; border-bottom: 1px solid #3a4f5e; }
  .brand, .login-box .brand, .reservation header .brand { display: inline-flex; align-items: center; gap: 11px; padding: 0; }
  .brand strong { font-size: 19px; font-weight: 700; line-height: 1.35; letter-spacing: .035em; }
  .brand-mark { display: block; width: 31px; height: 31px; flex: none; }
  .sidebar nav { flex: 1 1 auto; min-height: 0; padding: 13px 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #647989 var(--rail); }
  .nav-item {
    position: relative; min-height: 39px; padding: 9px 11px; border-radius: 6px;
    display: flex; align-items: center; gap: 11px; margin: 4px 0; color: #c5d3df; line-height: 1.5; font-size: 13px;
    font-weight: 400; text-decoration: none;
  }
  .nav-item .ui-icon { color: #afbeca; width: 17px; height: 17px; }
  .nav-item:hover { background: #22394c; color: white; text-decoration: none; }
  .nav-item.active { background: #2b4256; color: #ffffff; font-weight: 700; }
  .nav-item.active .ui-icon { color: var(--waypoint); }
  .nav-item.active::before { content: ''; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; border-radius: 1px; background: var(--waypoint); }
  .nav-divider { height: 0; margin: 14px 8px; border: 0; border-top: 1px solid #425969; }
  .sidebar-footer { flex: 0 0 auto; margin: 0; padding: 11px 3px 0; border-top-color: #3a4f5e; }
  .sidebar-footer button.text { justify-content: flex-start; width: 100%; padding: 7px 9px; color: var(--rail-type); font-size: 12px; }
  .sidebar-footer button.text:hover { background: #22394c; color: white; }
  .sidebar :focus-visible { outline-color: var(--waypoint); outline-offset: -3px; }
  .workspace { margin-left: var(--sidebar-width); min-width: 0; }
  .topbar { display: block; height: auto; min-height: 0; padding: 0; background: #fff; border-bottom: 1px solid var(--line); }
  .toolbar-inner, .page { width: 100%; max-width: var(--content-width); margin-inline: auto; padding-inline: var(--gutter); }
  .toolbar-inner { display: flex; align-items: center; justify-content: space-between; min-height: 54px; gap: 12px; padding-block: 7px; }
  .student-greeting { min-width: 0; color: var(--ink); font-size: 13px; font-weight: 700; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
  .topbar-actions { margin-inline-start: auto; flex: none; gap: 16px; }
  .topbar-actions .utility-link { color: #405666; font-size: 12px; font-weight: 550; }
  .utility-link .ui-icon { width: 12px; height: 12px; }
  .mobile-logout { display: none; }
  .page { padding-block: 26px 44px; }
  .page-heading { align-items: center; margin: 0 0 20px; gap: 12px; }
  .page > .page-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; row-gap: 3px; }
  .page > .page-heading h1 { grid-column: 1; grid-row: 1; }
  .page-heading .page-description { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
  .page > .page-heading .page-description { grid-column: 1; grid-row: 2; }
  .page > .page-heading .actions { grid-column: 2; grid-row: 1 / span 2; }
  .page-heading h1 { margin: 0; font-size: clamp(24px, 2.1vw, 30px); font-weight: 700; letter-spacing: -.052em; line-height: 1.4; }
  .page-heading .actions { justify-content: flex-end; }
  .page-heading button[data-action=report] { border-color: #a5b7c0; color: #264759; background: white; }
  .page-heading button[data-action=report]:hover { background: var(--accent-bg); }
  .shared .topbar { border-top: 0; }
  .shared .workspace { margin-left: var(--sidebar-width); }
  .shared .page, .shared .toolbar-inner { max-width: 1280px; }
  .panel, .analysis-grid > .score-radar, .student-bar {
    border: 1px solid var(--line); border-radius: 10px; background: var(--paper); box-shadow: 0 2px 5px rgb(25 45 62 / .035);
  }
  .panel { margin: 0 0 16px; }
  .panel-title, .radar-head { min-height: 48px; padding: 12px 20px; border-bottom: 1px solid var(--rule); }
  .panel-title h2, .panel-title h3, .radar-head h3 { color: var(--ink); font-size: 16px; line-height: 1.45; letter-spacing: -.045em; font-weight: 700; }
  .panel-body { padding: 18px 20px; }
  .student-bar {
    padding: 15px 20px; margin: 0 0 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 9px 18px;
  }
  .student-bar .identity { display: flex; align-items: center; gap: 11px; min-width: 0; }
  .student-symbol { display: grid; place-items: center; width: 37px; height: 37px; flex: 0 0 auto; background: #edf2f5; color: #34566e; border: 1px solid #d5e0e7; border-radius: 7px; }
  .student-symbol .ui-icon { width: 23px; height: 23px; }
  .student-bar .name { font-size: 16px; line-height: 1.45; letter-spacing: -.035em; }
  .student-bar .identity .tiny { margin-top: 3px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
  .student-bar .actions { min-width: 0; }
  .analysis-grid { display: grid; grid-template-columns: minmax(0, 1.26fr) minmax(0, 1fr); align-items: stretch; gap: 16px; margin-bottom: 16px; }
  .analysis-grid.no-exam { grid-template-columns: 1fr; }
  .analysis-grid > * { min-width: 0; margin: 0; }
  .score-panel { border-radius: 9px; }
  .score-panel .score-totals {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 19px 22px 17px;
    background: var(--rail); border: 0; border-bottom: 1px solid var(--rail);
  }
  .score-panel .score-totals > div { display: flex; align-items: flex-start; flex-direction: column; gap: 3px; }
  .score-panel .score-totals > div + div { padding-left: 22px; border-left: 1px solid #44596b; }
  .score-panel .score-totals dt { font-size: 12px; font-weight: 500; color: #cfdae1; }
  .score-panel .score-totals dd { font-size: clamp(28px, 2.6vw, 36px); line-height: 1.15; color: #fbf9f4; font-weight: 700; letter-spacing: -.045em; }
  .score-panel .summary-missing { padding: 6px 20px; background: #eff3f5; border-bottom: 1px solid var(--rule); }
  .exam-sheet { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .exam-sheet th, .exam-sheet td { text-align: right; padding: 7px 10px; line-height: 1.55; }
  .exam-sheet thead th { padding-block: 7px; color: #52666a; background: #fafcfb; font-weight: 500; font-size: 11px; }
  .exam-sheet th:first-child { width: 17%; text-align: left; padding-left: 20px; }
  .exam-sheet th:nth-child(2), .exam-sheet .sheet-subject { width: 31%; text-align: left; }
  .exam-sheet th:last-child, .exam-sheet td:last-child { padding-right: 20px; }
  .exam-sheet tbody th { white-space: normal; font-size: 12px; color: var(--ink); font-weight: 650; background: none; }
  .exam-sheet tbody td { font-size: 13px; color: var(--ink); }
  .exam-sheet tbody .sheet-subject { color: #52666a; font-size: 12px; font-weight: 400; }
  .exam-sheet tbody :is(th,td) { border: 0; border-bottom: 1px solid var(--rule); }
  .exam-sheet tr:last-child > :is(th,td) { border-bottom: 0; }
  .analysis-grid > .score-radar { padding: 0; overflow: hidden; }
  .radar-head { gap: 6px; }
  .radar-head button.small { border: 0; background: transparent; color: var(--accent); padding: 3px 0 3px 5px; font-weight: 650; font-size: 11px; }
  .radar-head button.small::after { content: '›'; padding-left: 5px; }
  .radar-head button.small:hover { text-decoration: underline; background: transparent; }
  .radar-body { display: block; padding: 0 20px 12px; }
  .radar-plot { width: min(100%,300px); margin: 0 auto; }
  .radar-ring { stroke: #d9e2e7; }
  .radar-ring:nth-child(2n) { stroke: #bfced6; }
  .radar-spoke { stroke: #dbe3e6; }
  .radar-shape { fill: #738fa4; fill-opacity: .20; stroke: #2f5d77; stroke-width: 2.3; }
  .radar-mark { fill: #2f5d77; stroke: #fff; stroke-width: 1.3; }
  button.radar-subject { border-color: transparent; border-radius: 4px; padding: 2px 4px; }
  button.radar-subject b { color: #2b5069; }
  .radar-copy { max-width: none; padding-top: 8px; border-top: 1px solid var(--rule); }
  .radar-partial { font-size: 10.5px; color: var(--muted); }
  .radar-reading { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 13px; margin: 4px 0; }
  .radar-reading div { display: block; }
  .radar-reading div + div { margin-top: 0; padding-left: 13px; border-left: 1px solid var(--rule); }
  .radar-reading dt { color: #415e73; font-weight: 650; font-size: 11px; }
  .radar-reading div + div dt { color: #795c4e; }
  .radar-reading dd { margin: 1px 0 0; color: var(--ink); }
  .radar-reading b, .radar-observation b { color: var(--ink); }
  .score-radar .radar-inquiry-note { margin-top: 3px; color: #465d62; font-size: 11px; }
  .analysis-grid .radar-placeholder { display: block; }
  .radar-placeholder h3 { margin: 0; padding: 13px 20px; border-bottom: 1px solid var(--rule); font-size: 16px; }
  .radar-placeholder p { padding: 18px 20px; }
  .candidate-empty { margin: 0; padding: 24px 20px; color: var(--muted); }
  .candidate-heading .actions button:first-child { background: #edf3f6; color: var(--accent); border-color: #c8d9e2; }
  .disclosure-panel > summary { padding: 14px 20px; font-weight: 600; color: #364d5f; }
  .disclosure-panel[open] > summary { border-bottom: 1px solid var(--rule); }
  .disclosure-panel .panel { box-shadow: none; }
  .badge { padding: 3px 6px; }
  .support-card { padding: 2px 7px; line-height: 1.4; border-radius: 4px; }
  table { font-variant-numeric: tabular-nums; }
  thead th { background: var(--tint); color: #485c6b; font-weight: 550; border-bottom: 1px solid var(--line); }
  td { border-bottom-color: var(--rule); color: #273c49; }
  tbody tr:hover { background: #f7f9fa; }
  .table-wrap { max-width: 100%; }
  #admission-search > .table-wrap { container: route-list / inline-size; }
  .route-results { table-layout: fixed; }
  .route-results :is(th,td) { padding: 12px 14px; overflow-wrap: anywhere; }
  .route-results th:first-child { width: 28%; }
  .route-results th:nth-child(3) { width: 132px; }
  .route-results :is(th,td):nth-child(3) { padding-inline: 8px; text-align: right; }
  .route-results th:last-child { width: 110px; }
  .route-results :is(th,td):last-child { padding-left: 4px; }
  .route-results td:last-child { text-align: right; }
  .route-results[data-readonly] tr > :last-child { display: none; }
  .route-results .route-track { word-break: keep-all; }
  .route-results .route-track > span { white-space: nowrap; }
  .route-results .route-track small { display: inline; margin: 0 0 0 3px; }
  button.route-name, .table-wrap button.route-name { padding: 0; border: 0; background: transparent; color: var(--ink); font-weight: 650; white-space: normal; text-align: left; }
  button.route-name:hover, .table-wrap button.route-name:hover { background: transparent; text-decoration: underline; color: var(--accent); }
  button[aria-pressed="true"][data-action="candidate"] { background: var(--accent-bg); color: var(--accent); border-color: #b1c9d6; }
  .candidate-matrix .candidate-group { display: inline-block; color: #52666b; border-color: var(--line); background: #f6f8f8; }
  .selected-row { background: #edf6f1!important; }
  .search-result-caption { padding: 10px 20px; background: #fff; color: #324c51; }
  .search-result-caption > span { font-weight: 650; }
  .quiet-search { padding-block: 19px; }
  .quiet-search .rollover-filter { margin-top: 13px; }
  .quiet-search input:not([type=checkbox]), .quiet-search select { min-height: 36px; }
  .search-line > button.primary { min-width: 68px; min-height: 36px; }
  .status-tabs { gap: 8px; padding-inline: 20px; }
  .status-tabs :is(button,a) { padding: 12px 6px; color: var(--muted); }
  .status-tabs :is(button,a).active { color: var(--accent); }
  .fit-list, .fit-column-head { --fit-columns: minmax(0, 1.08fr) minmax(0, 1fr) 7.5rem 7.35rem; }
  .fit-readonly { --fit-columns: minmax(0, 1.08fr) minmax(0, 1fr) 7.5rem; }
  .fit-column-head { display: grid; grid-template-columns: var(--fit-columns); align-items: center; gap: 16px; padding: 7px var(--fit-inset); background: var(--tint); border-bottom: 1px solid var(--line); color: #4c606e; font-size: 11px; }
  .fit-column-head span:nth-child(3), .fit-verdict { text-align: right; }
  .fit-subjects button[aria-pressed=true], .fit-subjects button[aria-pressed=true]:hover { color: #234b62; background: #e8f1f6; border-color: #b4cbd8; }
  .fit-row { padding-block: 12px; } 
  .fit-row:hover { background: #f7f9fa; }
  .fit-tools { background: #fff; }
  .fit-tools input { min-height: 32px; }
  .atlas-pager, .student-directory-heading { color: var(--ink); }
  .month-navigation h2, .news-list strong, .foreign-name b { color: var(--ink); }
  .month-grid .month-day.selected { background-color: #edf5f1; box-shadow: inset 0 0 0 2px #468474; }
  .month-day[aria-current="date"] b { background: var(--accent); color: white; }
  .month-event { background: #e7f0ee; color: #25564b; }
  .month-week span { background: var(--tint); }
  .news-list a:hover { background: #f2f5f7; }
  .news-reader .news-original, .news-reader .news-back, .foreign-dates button { color: var(--accent); }
  .modal, .wb-dialog { border-color: #c9d4db; border-radius: 10px; box-shadow: var(--shadow); }
  .modal-backdrop { background: rgb(18 36 43 / .40); }
  .modal-header, .modal-footer { border-color: var(--line); }
  .modal-header h2 { font-size: 18px; }
  .modal-footer { background: #f5f6f5; }
  .wb-dialog, .midnight-demo-dialog { font-family: inherit; }
  #toast { background: var(--rail); border-radius: 7px; }
  .login-wrap { min-height: 100vh; min-height: 100dvh; padding: 20px; background: var(--bg); }
  .login-box { width: 408px; overflow: hidden; padding: 0; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 38px rgb(23 44 64 / .07); }
  .login-mast { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 28px; background: var(--rail); color: white; }
  .login-mast > span:last-child { font-size: 12px; color: #d9e5eb; }
  .login-content { padding: 25px 28px 17px; }
  .login-box h1 { font-size: 25px; line-height: 1.45; letter-spacing: -.065em; }
  .login-box form label { font-size: 12px; margin: 21px 0 0; gap: 7px; }
  .login-box input, .login-box button { min-height: 40px; }
  .login-box .error:empty { margin: 13px 0 0; }
  .login-box .demo-entry { margin-top: 8px; }
  .login-box .login-links { margin-top: 22px; padding-top: 13px; }
  .login-links a { min-height: 32px; color: var(--accent); font-weight: 600; }
  .booking-home { padding: clamp(16px, 4vw, 48px); }
  .booking-home .booking-home-card {
    display: grid; grid-template-columns: minmax(220px, .79fr) minmax(0, 1.21fr);
    grid-template-rows: 1fr auto; width: min(100%, 760px); min-height: 340px;
    border: 1px solid #d0d8da; border-radius: 15px;
    box-shadow: 0 14px 50px rgb(23 44 64 / .075);
  }
  .booking-home .booking-home-brand {
    grid-column: 1; grid-row: 1 / 3; align-items: flex-start; flex-direction: column;
    padding: 33px 27px 31px; background-color: var(--rail);
    background-image: url("/pathfinder-contours.svg"); background-size: cover; background-position: center;
  }
  .booking-home .brand { gap: 8px; }
  .booking-home .brand-wordmark { width: 138px; height: auto; display: block; }
  .booking-home .booking-edition { color: #f7e5c9; font-weight: 550; letter-spacing: .025em; }
  .booking-home-body { grid-column: 2; align-self: center; padding: 42px clamp(26px, 4.5vw, 46px) 12px; }
  .booking-home-body h1 { margin: 0; font-size: clamp(29px, 3.8vw, 38px); line-height: 1.28; letter-spacing: -.056em; }
  .booking-home-body p { margin: 12px 0 30px; color: var(--muted); font-size: 14px; line-height: 1.7; word-break: keep-all; }
  .booking-home-apply {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 54px; padding: 13px 18px; border-radius: 7px;
    background: var(--accent); color: white; font-size: 16px; font-weight: 700; text-decoration: none;
  }
  .booking-home-apply .ui-icon { width: 22px; height: 22px; }
  .booking-home-apply:hover { background: var(--accent-deep); color: white; text-decoration: none; }
  .booking-home-staff { grid-column: 2; display: flex; justify-content: flex-end; padding: 0 clamp(26px, 4.5vw, 46px) 16px; }
  .booking-home-staff a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); font-size: 12px; }
  .booking-home-staff a:hover { color: var(--accent); text-decoration: underline; }
  .reservation { max-width: 800px; padding: 36px 22px 48px; }
  .reservation > header { padding-bottom: 21px; margin-bottom: 21px; border-bottom: 2px solid var(--rail); }
  .reservation header .brand { margin-bottom: 21px; color: #203e52; }
  .reservation .reserve-step { font-size: 15px; font-weight: 700; letter-spacing: -.025em; color: var(--ink); }
  .reservation .panel-body { padding: 20px 22px; }
  .slot-grid button.selected { background: #e7f0f6; border-color: #92b0c1; color: #254d65; }
  .report-preview { background: #eceeee; }
}


/* Public booking always keeps its main action in the first screen on a phone. */
@media screen and (max-width: 650px) {
  .booking-home .booking-home-card { display: block; min-height: 0; max-width: 450px; }
  .booking-home .booking-home-brand {
    min-height: 127px; padding: 22px 24px 16px; gap: 15px;
    background-size: auto 235px; background-repeat: no-repeat; background-position: right 57%;
  }
  .booking-home-body { padding: 25px 24px 8px; }
  .booking-home-body p { margin: 10px 0 22px; }
  .booking-home-staff { padding: 0 24px 9px; }
}

@media screen and (min-width: 761px) and (max-height: 760px) {
  .sidebar-brand { padding-block: 17px; }
  .sidebar nav { padding-block: 8px; }
  .sidebar .nav-item { min-height: 34px; padding-block: 7px; margin-block: 2px; }
  .nav-divider { margin-block: 7px; }
}
@media screen and (min-width: 761px) and (max-width: 1100px) {
  :root { --sidebar-width: 192px; --gutter: 20px; }
  .sidebar { padding-inline: 11px; }
  .sidebar-brand { padding-inline: 10px; }
}
@media screen and (min-width: 761px) and (max-width: 970px) {
  .analysis-grid { grid-template-columns: 1fr; }
  .radar-body { display: grid; grid-template-columns: minmax(200px,.95fr) 1fr; align-items: center; padding: 6px 17px 10px; gap: 12px; }
  .radar-copy { border-top: 0; padding: 0; }
}
@container (max-width: 650px) {
  .fit-column-head { display: none; }
}
@container route-list (max-width: 840px) {
  .route-results, .route-results tbody { display: block; }
  .route-results thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .route-results tbody tr {
    display: grid; grid-template-columns: minmax(0,1fr) minmax(0,132px) auto;
    align-items: center; gap: 4px 8px; padding: 10px 14px; border-bottom: 1px solid var(--rule);
  }
  .route-results[data-readonly] tbody tr { grid-template-columns: minmax(0,1fr) minmax(0,132px); }
  .route-results tbody tr:last-child { border-bottom: 0; }
  .route-results tbody tr > td:nth-child(n) { display: block; min-width: 0; padding: 0; border: 0; }
  .route-results tbody td:first-child { grid-column: 1; grid-row: 1; }
  .route-results tbody td:nth-child(2) { grid-column: 1/-1; grid-row: 2; }
  .route-results tbody td:nth-child(3) { grid-column: 2; grid-row: 1; }
  .route-results tbody td:nth-child(4) { grid-column: 3; grid-row: 1; }
  .route-results[data-readonly] tbody tr > td:last-child { display: none; }
}
@container route-list (max-width: 450px) {
  .route-results tbody tr { grid-template-columns: minmax(0,1fr) auto; }
  .route-results tbody td:first-child { grid-column: 1/-1; }
  .route-results tbody td:nth-child(3) { grid-column: 1; grid-row: 3; }
  .route-results tbody td:nth-child(4) { grid-column: 2; grid-row: 3; }
  .route-results[data-readonly] tbody td:nth-child(3) { grid-column: 1/-1; text-align: left; }
}
@media screen and (max-width: 760px) {
  :root { --sidebar-width: 0px; --gutter: 14px; }
  .sidebar { position: static; display: flex; width: 100%; height: auto; padding: 0 var(--gutter); overflow: visible; }
  .sidebar-brand { padding: 11px 2px; }
  .sidebar nav { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 4px; padding: 8px 0 10px; overflow: visible; }
  .sidebar .nav-item { min-height: 32px; margin: 0; padding: 5px 8px; font-size: 12px; }
  .sidebar .nav-item .ui-icon { display: none; }
  .sidebar .nav-item.active::before { top: 7px; bottom: 7px; width: 2px; }
  .nav-divider { flex: 0 0 100%; margin: 3px 0; }
  .sidebar-footer { display: none; }
  .workspace { margin: 0; }
  .toolbar-inner { min-height: 51px; padding-block: 6px; gap: 8px; }
  .topbar-actions { flex-wrap: nowrap; gap: 10px; align-items: center; }
  .topbar-actions .utility-link { min-height: 32px; font-size: 11px; }
  .topbar-actions button.small { font-size: 11px; padding: 6px 8px; }
  .mobile-logout { display: inline-grid; place-items: center; border: 0; padding: 5px; min-height: 32px; min-width: 26px; background: transparent; }
  .student-greeting { font-size: 12px; }
  .page { padding-block: 14px 30px; }
  .page-heading { margin-bottom: 12px; flex-wrap: wrap; }
  .page > .page-heading { grid-template-columns: minmax(0, 1fr); }
  .page > .page-heading .actions { grid-column: 1; grid-row: 3; justify-content: flex-start; margin-top: 5px; }
  .page-heading h1 { font-size: 24px; }
  .page-heading button { font-size: 12px; padding: 6px 10px; }
  .student-bar { padding: 13px 14px; margin-bottom: 12px; row-gap: 10px; }
  .student-bar .identity { gap: 9px; }
  .student-bar .actions { flex-wrap: wrap; }
  .analysis-grid { grid-template-columns: minmax(0,1fr); gap: 12px; margin-bottom: 12px; }
  .panel { margin-bottom: 12px; }
  .analysis-grid > .panel { margin-bottom: 0; }
  .panel-title, .radar-head { min-height: 44px; padding: 10px 14px; }
  .panel-title h2, .panel-title h3, .radar-head h3 { font-size: 15px; }
  .panel-body, .quiet-search { padding: 14px; }
  .score-panel .score-totals { padding: 14px 16px; }
  .score-panel .score-totals > div + div { padding-left: 16px; }
  .exam-sheet :is(th,td) { padding-inline: 6px; }
  .exam-sheet th:first-child { padding-left: 14px; width: 18%; }
  .exam-sheet th:nth-child(2), .exam-sheet .sheet-subject { width: 30%; }
  .exam-sheet th:last-child, .exam-sheet td:last-child { padding-right: 14px; }
  .radar-body { padding-inline: 14px; }
  .radar-reading { display: grid; }
  .candidate-heading { flex-wrap: wrap; }
  .disclosure-panel > summary { padding: 13px 14px; }
  .status-tabs { flex-wrap: wrap; padding: 0 11px; gap: 3px 8px; }
  .status-tabs :is(button,a) { font-size: 12px; }
  .fit-panel { --fit-inset: 14px; }
  .search-result-caption { padding: 8px 14px; }
  .table-wrap button { max-width: 100%; }
  .modal-header, .modal-content, .modal-footer { padding: 13px 14px; }
  .reservation { padding: 20px 14px 32px; }
  .reservation header .brand { margin-bottom: 14px; }
  .reservation .panel-body { padding: 15px; }
  .agenda-event { padding-inline: 13px; }
}
@media screen and (min-width: 561px) and (max-width: 760px) {
  .radar-body { display: grid; grid-template-columns: minmax(170px, .95fr) 1fr; align-items: center; gap: 10px; }
  .radar-copy { border: 0; }
}
@media screen and (max-width: 560px) {
  .student-bar .actions { display: flex; flex: 1 0 100%; }
  .student-bar .actions:empty { display: none; }
  .special-results, .student-directory { min-width: 0; }
  :is(.special-results,.student-directory) thead {
    position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden;
  }
  :is(.special-results,.student-directory) tbody { display: block; }
  :is(.special-results,.student-directory) tbody > tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: start;
    padding: 12px 14px; border-bottom: 1px solid var(--rule);
  }
  :is(.special-results,.student-directory) tbody > tr:last-child { border: 0; }
  :is(.special-results,.student-directory) tr > td {
    display: block; border: 0; padding: 0; min-width: 0; text-align: left; font-size: 12px; line-height: 1.55;
  }
  .special-results tr > td:first-child { grid-column: 1; grid-row: 1; }
  .special-results tr > td:nth-child(2) { grid-column: 1/-1; margin-top: 4px; color: var(--muted); }
  .special-results tr > td:last-child:not(:first-child) { grid-column: 2; grid-row: 1; text-align: right; }
  .special-results tr > td:nth-child(3), .special-results tr > td:nth-child(4) { grid-column: 1/-1; margin-top: 5px; }
  .special-results tr > td:nth-child(3)::before { content: '지난 경쟁률'; padding-right: 7px; color: var(--muted); font-size: 11px; }
  .special-results tr > td:nth-child(3) small, .special-results tr > td:nth-child(2) small { display: inline; margin-inline-start: 7px; }
  .special-results tr > td[colspan] { grid-column: 1/-1; }
  .student-directory tbody > tr { grid-template-columns: 1fr 1fr; gap: 8px 12px; }
  .student-directory tr > td:first-child, .student-directory tr > td:last-child { grid-column: 1/-1; }
  .student-directory td[data-label]::before { content: attr(data-label); display: block; color: var(--muted); font-size: 10.5px; }
  .student-directory tr > td:last-child .actions { margin-top: 3px; }
  .student-search { flex-wrap: wrap; }
  .student-search input { max-width: 100%; min-width: 100px; }
  .modal-header h2 { font-size: 16px; }
}
@media screen and (max-width: 380px) {
  .toolbar-inner { flex-wrap: wrap; row-gap: 1px; }
  .topbar-actions { gap: 6px; }
  .topbar-actions button.with-icon .ui-icon { display: none; }
  .exam-sheet th:first-child { width: 20%; }
  .exam-sheet th:nth-child(2), .exam-sheet .sheet-subject { width: 26%; }
  .page-heading h1 { font-size: 22px; }
}
.print-page { color: #1e3034; font-family: "Counsel Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; font-variant-numeric: tabular-nums; }
.print-page .print-brand {
  display: flex; align-items: center; gap: 6px; padding-bottom: 6px; margin: 0 0 10px;
  color: #21384a; border-bottom: 1pt solid #748794; font-size: 9pt; font-weight: 700; letter-spacing: .035em;
}
.print-brand img { display: block; width: 15px; height: 15px; }
.print-page h1 { color: #1b3448; font-size: 19pt; line-height: 1.35; letter-spacing: -.055em; }
.print-page h2, .print-page h4 { color: #2a4153; }
.print-page .print-meta { color: #4a5a5c; }
.print-page table th { background: #f1f4f5; color: #394e5f; font-weight: 700; }
.print-page table td, .print-page table th { border-color: #ccd6db; }
.print-page .score-totals { border-color: #cfdbd5; background: transparent; }
@media print {
  body, .print-page { background: white; }
  .print-page .table-wrap { overflow: visible; }
  .print-page h1 { font-size: 18pt; }
  .print-page h2, .print-page h3, .print-page h4 { break-after: avoid-page; }
  .print-page table thead { display: table-header-group; }
  .print-page td, .print-page th { overflow-wrap: anywhere; }
  .print-page .support-card { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}


.paper-score-wrap { max-width: 100%; overflow-x: auto; }
.paper-score { width: 100%; table-layout: fixed; border-collapse: collapse; }
.paper-score th, .paper-score td { padding: 5px; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.paper-score th { font-weight: 650; }
.paper-score tbody th { background: #f6f8f7; color: #39524d; }
.print-page .paper-score :is(th,td) { text-align: center; }
@media screen and (max-width: 380px) {
  .exam-sheet thead th:nth-child(n+3) { padding-inline: 3px; }
  .exam-sheet thead th:last-child { padding-right: 10px; }
}
@media print {
  .paper-score-wrap { overflow: visible; }
  .print-page .paper-score th, .print-page .paper-score td { font-size: 8.5pt!important; padding: 4px!important; }
}

/* Reserve room for a verdict and both note buttons in the opportunity grid. */
.assessment-badges {
  display: inline-flex; flex-flow: row nowrap; gap: 4px; align-items: center;
  vertical-align: middle; white-space: nowrap;
}
.assessment-badges > :is(.support-card, button.assessment-note-toggle) {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  box-sizing: border-box; width: 36px; min-width: 36px; height: 24px; min-height: 24px;
  margin: 0; padding: 0; border-width: 1px; border-style: solid; border-radius: 4px;
  font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1; white-space: nowrap;
}
button.assessment-note-toggle { border-color: #b9c6cb; background: #fff; color: #34525b; }
.fit-list, .fit-column-head {
  --fit-columns: minmax(0, 1.08fr) minmax(0, 1fr) 116px 7.35rem;
}
.fit-readonly { --fit-columns: minmax(0, 1.08fr) minmax(0, 1fr) 116px; }
@container (max-width: 650px) {
  .fit-row { grid-template-columns: minmax(0, 1fr) 116px; }
  .fit-save { justify-self: end; width: auto; }
}
button.assessment-note-toggle.caution { color: #74531a; border-color: #d8c99e; }
button.assessment-note-toggle:hover { background: #edf3f4; }
button.assessment-note-toggle.caution:hover { background: #f7f1e4; }
button.assessment-note-toggle:focus-visible { outline: 2px solid #1c6359; outline-offset: 2px; }
.assessment-print-note {
  margin: 6px 0 0; padding: 5px 8px; border-inline-start: 2px solid #d2dedd;
  color: #34474c; background: var(--tint); font-size: 12px; line-height: 1.55;
  font-weight: 400; text-align: start; white-space: pre-line; overflow-wrap: anywhere;
}
.wb-dialog.assessment-note-dialog { width: min(30rem, calc(100% - 2rem)); overscroll-behavior: contain; }
.assessment-note-dialog .wb-header { padding: 12px 16px; gap: 12px; }
.assessment-note-dialog .wb-header h2 { font-size: 15px; overflow-wrap: anywhere; }
.assessment-note-dialog .wb-body { padding: 14px 16px; }
.assessment-popup-text { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
#print-root .assessment-print-note, .report-preview .assessment-print-note { font-size: 10px; background: transparent; }

.exam-entry .exam-entry-kinds { margin-bottom: 15px; }
.exam-entry fieldset[name="reservationScores"] { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.exam-entry .exam-entry-kinds label[hidden], .exam-entry fieldset[hidden] { display: none; }
.exam-entry .exam-entry-grades { margin-top: 14px; }
.exam-entry input[readonly] { background: #f4f6f6; color: #405456; }
.exam-entry .exam-table { width: 100%; }
.exam-entry input[aria-invalid="true"] { color: #b42336; }

.exam-auto-hint { display: none; margin: 0 0 8px; }
.exam-entry[data-year="2027"]:is([data-mode="june"],[data-mode="september"]) .exam-auto-hint { display: block; }

.reservation label.deduction-check { color: #792c45; font-weight: 700; }
.reservation .deduction-check input { accent-color: #792c45; }
.reservation #reserve-exam-title { margin-bottom: 4px; }
.reservation #reserve-exam-title small { font-size: .85em; }
.reservation .reserve-exam-hint { margin: 0 0 14px; }
.reservation #reserve-exam-error { margin: 0 0 12px; }
.reservation #reserve-exam-error:empty { display: none; }
.sidebar-brand .brand {
  max-width: 100%;
  gap: 9px;
}
.sidebar-brand .brand-wordmark {
  display: block;
  width: 131px;
  height: auto;
  min-width: 0;
}
.fit-reason .fit-compare{display:inline;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;text-decoration:underline;text-decoration-color:#c1d1cd;text-underline-offset:3px}
.foreign-name .foreign-practical{font-size:11px;font-weight:500;line-height:1.45;color:#43665f;white-space:normal}
.family-layout{display:grid;grid-template-columns:minmax(210px,1fr) minmax(240px,1.12fr);gap:24px;align-items:start}
.family-input{display:grid;gap:12px}.family-input label,.family-input select{width:100%;min-width:0}
.family-preview{max-height:66vh;overflow:auto;border-radius:8px;background:#172c40}
.family-preview canvas{display:block;width:100%;height:auto}.family-input [hidden],.family-preview [hidden]{display:none}
@media(max-width:680px){.family-layout{grid-template-columns:1fr}.family-input{grid-template-columns:1fr 1fr}.family-input .actions,.family-input p{grid-column:1/-1}.family-preview{max-height:none}}

/* Counselor-only strategy pages */
.strategy-view{--lab-ink:#22443f;--lab-line:#dbe4e3}
.lab-intro{margin:4px 0 14px;color:#4d6170}
.lab-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lab-columns .panel{margin:0;align-self:start}
.lab-columns .panel:first-child .panel-title{border-top:3px solid #985861}
.lab-columns .panel:nth-child(2) .panel-title{border-top:3px solid #357567}
.lab-panel .panel-title{align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lab-panel .panel-title label{font-size:12px;display:flex;align-items:center;gap:8px}
.lab-list,.lab-policy{padding:0;margin:0;list-style:none}
.lab-list li+li{border-top:1px solid var(--lab-line)}
.lab-row{padding:12px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.lab-row>details{min-width:0;flex:1}.lab-row>button{white-space:nowrap}
.lab-row summary{cursor:pointer;list-style-position:inside}.lab-row summary::marker{color:#6b8781}
.lab-row small,.lab-row summary span,.lab-result small,.lab-compare small{display:block;font-size:12px;color:#4d6170;margin:3px 0}
.lab-row summary span{color:var(--lab-ink)}
.lab-detail{padding-top:8px}.lab-detail p,.lab-explain p,.lab-method p{margin:5px 0}
.strategy-view table{width:100%;border-collapse:collapse}
.strategy-view td,.strategy-view th{padding:7px 10px;border-bottom:1px solid var(--lab-line);text-align:left;font-size:13px}
.strategy-view th{font-weight:600}.strategy-view caption{text-align:left;font-size:12px;color:#4d6170;padding:2px 0 7px}
.lab-method{margin-top:12px}.lab-method>summary{padding:12px 16px;cursor:pointer;font-weight:600}
.lab-tabs{display:flex;gap:6px;margin-bottom:12px}.lab-tabs [aria-pressed=true]{background:#e9f0f4;color:#25465d;border-color:#a7bcc9}
.lab-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.lab-selects label{display:grid;gap:4px}.lab-selects select{min-width:0;width:100%}
.lab-scroll{max-width:100%;overflow-x:auto}
.lab-pairs{display:flex;flex-wrap:wrap;gap:8px 22px;margin:5px 0 14px;font-variant-numeric:tabular-nums}
.lab-result,.lab-compare{margin:16px 0 6px}.lab-result b{color:var(--lab-ink)}
.lab-compare{border-left:3px solid #9eb4c3;padding:6px 12px;background:#f2f5f7}
.lab-compare p{margin:5px 0}.lab-explain{margin-top:14px;color:#4d6170}.lab-explain summary{cursor:pointer}
.lab-policy{padding-left:18px;list-style:disc}.lab-policy li{margin:5px 0}
@media(max-width:760px){.lab-columns,.lab-selects{grid-template-columns:1fr}.lab-selects{gap:8px}.lab-row{padding:10px 12px}.strategy-view th,.strategy-view td{padding:6px}}

.lab-recruitment table{min-width:520px;font-variant-numeric:tabular-nums}
.lab-recruitment th:first-child{white-space:nowrap}
.lab-recruitment td small{display:block;margin-top:3px;color:#4d6170}
.lab-recruitment td .held{color:#834754}
.strategy-view .lab-tabs{flex-wrap:wrap}

.booking-settings-link { display: inline-block; border: 1px solid var(--line); border-radius: 5px; padding: 6px 10px; font-size: 12px; }

.sniper-tabs{display:flex;gap:4px;margin:0 0 16px;border-bottom:1px solid var(--line)}
.sniper-tabs a{padding:10px 14px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}
.sniper-tabs a[aria-current="page"]{color:var(--accent);font-weight:700;border-color:var(--accent)}
.placement-filters{display:grid;align-items:end;grid-template-columns:minmax(170px,1fr) auto auto auto;gap:12px}
.placement-filters>.hint,.placement-toggles{grid-column:1/-1;margin:0}
.placement-toggles{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap}
.placement-result-table{width:100%;table-layout:fixed}
.placement-result-table :is(th,td){overflow-wrap:anywhere}
.placement-result-table th:first-child{width:40%}
.placement-result-table th:nth-child(2){width:19%}
.placement-result-table th:last-child{width:68px}
.placement-result-table th[scope="row"]{text-align:left}
.placement-result-table small{display:block;color:var(--muted);font-weight:400;margin-top:4px}
.placement-result-table td:nth-child(2){font-variant-numeric:tabular-nums}
.placement-anchors{margin:14px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(65px,1fr));gap:8px}
.placement-anchors dt{padding:4px 0;color:var(--muted);font-size:12px}
.placement-anchors dd{margin:0;font-weight:700}
.placement-detail p{line-height:1.7;overflow-wrap:anywhere}
@media(max-width:660px){
 .placement-filters{grid-template-columns:1fr 1fr;gap:9px}
 .placement-filters>label:first-of-type{grid-column:1/-1}
 .placement-filters>button{grid-column:1/-1}
 .placement-result-table{min-width:440px}
}

@media screen {
  .sidebar button.sidebar-keepsake {
    display: grid;
    place-items: center;
    flex: none;
    align-self: center;
    width: 44px;
    height: auto;
    aspect-ratio: 945 / 708;
    min-height: 44px;
    position: relative;
    overflow: hidden;
    transition: width 180ms ease-in-out, box-shadow 180ms ease;
    margin: 2px auto 6px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    color: #40566a;
    cursor: pointer;
  }
  .keepsake-heart {
    transition: opacity 160ms ease;
    font: 23px/1 Georgia, serif;
    text-shadow: 0 -1px 1px #0d1e2d, 0 1px 0 #526579;
  }
  .sidebar-keepsake:is(:hover,:focus-visible) .keepsake-heart { color: #587084; }
  .sidebar button.sidebar-keepsake.photo-ready[aria-expanded="true"] {
    width: min(100%, 180px, 33vh);
    height: auto;
    aspect-ratio: 945 / 708;
    overflow: hidden;
    background: var(--rail);
    box-shadow: 0 0 0 1px #506473, 0 3px 9px #0a182968;
  }
  .sidebar-keepsake img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 180ms ease-in-out;
  }
  .sidebar-keepsake.photo-ready[aria-expanded="true"] img { opacity: 1; }
  .sidebar-keepsake.photo-ready[aria-expanded="true"] .keepsake-heart { opacity: 0; }
  @media (prefers-reduced-motion: reduce) {
    .sidebar button.sidebar-keepsake, .sidebar-keepsake img, .sidebar-keepsake .keepsake-heart { transition: none; }
  }

  .sidebar button.sidebar-keepsake:focus-visible { outline: 2px solid var(--waypoint); outline-offset: 2px; }
}
@media print { .sidebar-keepsake { display: none; } }

.fit-panel .panel-title { flex-wrap: wrap; gap: 8px 16px; }
.fit-sorts { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; }
.fit-sorts button { border: 0; border-radius: 4px; background: transparent; padding: 6px 8px; color: var(--muted); font-size: 12px; }
.fit-sorts button:hover, .fit-sorts button[aria-pressed=true] { background: #ecf1f6; color: #233e5c; }
.fit-sorts button[aria-pressed=true] { font-weight: 650; }
.fit-wishes { display: inline-flex; flex-direction: row; align-items: center; gap: 4px; padding-inline-end: 6px; white-space: nowrap; font-size: 12px; }
.fit-tools .fit-wishes input { width: 15px; min-height: 0; height: 15px; margin: 0; flex: none; }
.fit-panel .fit-list, .fit-panel .fit-column-head { --fit-columns: minmax(0,1.2fr) minmax(0,1fr) 92px 85px; }
.fit-panel .fit-readonly { --fit-columns: minmax(0,1.2fr) minmax(0,1fr) 92px; }
.fit-route .fit-reason { margin-top: 6px; }
.fit-route .fit-reason strong,.fit-route .fit-compare { color: #304f62; font-size: 12px; }
.fit-route .fit-reason small { margin-top: 1px; }
.fit-evidence { min-width: 0; font-size: 13px; font-variant-numeric: tabular-nums; }
.fit-values { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.fit-values span { font-size: 11px; color: #50606f; }
.fit-values b { font-size: 14px; color: #23364a; font-weight: 650; }
.fit-values span:last-child b { font-size: 12px; }
@container (max-width: 650px) {
 .fit-panel .fit-column-head { display: none; }
 .fit-panel .fit-row { grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "route verdict" "evidence save"; gap: 9px 8px; }
 .fit-panel .fit-readonly .fit-row { grid-template-areas: "route verdict" "evidence evidence"; }
 .fit-evidence { grid-area: evidence; }
 .fit-panel .fit-verdict { align-self: start; }
 .fit-sorts button { padding: 6px; }
}

/* Department counseling sheet */
.modal:has(.department-sheet) {width:min(860px,calc(100vw - 28px));max-width:100%;color:#232522;background:#fff;}
.modal:has(.department-sheet) .modal-header {padding:23px 30px 14px;border-bottom:0;}
.modal:has(.department-sheet) .modal-header h2 {color:#20231f;font:700 clamp(21px,2.5vw,29px)/1.25 system-ui,sans-serif;letter-spacing:-.045em;}
.modal:has(.department-sheet) .modal-content {padding:0 30px 18px;}
.modal:has(.department-sheet) .modal-footer {background:#fbfbfa;}
.detail-layout-switch {margin-inline-end:auto;}
.department-sheet {--ds-line:#d9d9d3;--ds-dim:#575b56;color:#252725;font:14px/1.55 system-ui,'Malgun Gothic',sans-serif;word-break:keep-all;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
.ds-meta {display:flex;flex-wrap:wrap;align-items:center;gap:3px 9px;padding-bottom:14px;border-bottom:2px solid #272a27;color:var(--ds-dim);font-size:13px;}
.ds-meta i {font-style:normal;color:#a4a49d;}
.department-sheet>section {padding:17px 0;border-bottom:1px solid var(--ds-line);}
.department-sheet h3,.department-sheet h4,.department-sheet p,.department-sheet dl,.department-sheet dd {margin:0;}
.department-sheet h3 {font-size:16px;line-height:1.35;letter-spacing:-.035em;color:#252725;margin-bottom:10px;}
.ds-facts>div,.ds-steps>div {display:grid;grid-template-columns:95px minmax(0,1fr);gap:12px;padding:2px 0;}
.ds-facts dt,.ds-steps dt,.ds-heading span,.ds-year>small {color:var(--ds-dim);font-size:12px;}
.ds-years {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto auto;border:1px solid var(--ds-line);background:#fafaf8;}
.ds-year {display:grid;grid-template-rows:subgrid;grid-row:span 4;min-width:0;padding:12px 16px;align-items:baseline;}
.ds-year+.ds-year {border-left:1px solid var(--ds-line);}
.ds-year h4 {grid-row:1;font-size:13px;color:#333731;padding-bottom:6px;border-bottom:1px solid var(--ds-line);margin-bottom:4px;}
.ds-observation {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;padding:4px 0;}
.ds-slot-1,.ds-empty {grid-row:2;}
.ds-slot-2 {grid-row:3;}
.ds-observation span,.ds-year-note {font-size:12px;color:var(--ds-dim);}
.ds-year .ds-year-note {grid-row:4;line-height:1.45;padding-top:6px;}
.ds-observation strong,.ds-total strong {white-space:nowrap;text-align:right;color:#20231f;font:650 22px/1.2 system-ui,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.035em;}
.ds-observation small,.ds-total small {font-size:12px;letter-spacing:0;margin-left:3px;font-weight:500;}
.ds-empty {align-self:baseline;color:var(--ds-dim);font-size:13px;padding-top:4px;}
.ds-heading,.ds-total {display:flex;gap:10px;align-items:baseline;justify-content:space-between;}
.ds-heading {margin-bottom:8px;}
.ds-heading h3 {margin:0;}
.ds-steps>div {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;border-bottom:1px solid #ebebe7;padding:5px 0;}
.ds-steps dd {text-align:right;font-weight:600;font-variant-numeric:tabular-nums;}
.ds-total {padding:8px 0 0;font-weight:600;align-items:baseline;}
.ds-total strong {font-size:28px;}
.ds-extra {padding:8px 0;font-size:13px;color:var(--ds-dim);}
.ds-extra>summary {width:fit-content;cursor:pointer;}
.ds-extra[open]>summary {margin-bottom:10px;}
.department-sheet .ds-conclusion {border:0;border-left:3px solid #384d49;background:#f2f4f1;padding:12px 16px;}
.ds-conclusion h3 {font-size:12px;color:#4c6158;margin-bottom:4px;}
.ds-conclusion>strong {font-size:17px;letter-spacing:-.035em;}
.ds-conclusion p {font-size:13px;margin:4px 0 0;}
@media(max-width:640px){
 .modal:has(.department-sheet) .modal-header {padding:15px 14px 8px;}
 .modal:has(.department-sheet) .modal-content {padding:0 14px 12px;}
 .ds-year {padding:9px 7px;}.ds-observation strong {font-size:20px;}
 .ds-facts>div {grid-template-columns:66px 1fr;}
 .ds-heading {flex-wrap:wrap;gap:0 8px;}
 .modal:has(.department-sheet) .modal-footer {flex-wrap:wrap;gap:5px;}
}

@media(max-width:600px){
 .ds-years {display:block;}
 .ds-year {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto auto auto;padding:9px 12px;column-gap:14px;}
 .ds-year+.ds-year {border-left:0;border-top:1px solid var(--ds-line);}
 .ds-year h4 {grid-area:1/1;padding:2px 0;margin:0;border:0;}
 .ds-year .ds-year-note {grid-column:1;grid-row:2/span 2;padding:0;}
 .ds-year .ds-slot-1,.ds-year .ds-empty {grid-column:2;grid-row:1;}
 .ds-year .ds-slot-2 {grid-column:2;grid-row:2;}
 .ds-observation {padding:2px 0;}
 .ds-observation strong {font-size:17px;}
}

.placement-first h3,.placement-first p,.placement-detail p {margin:0 0 .5rem}
.placement-first ul,.placement-detail ul {list-style:none;margin:.5rem 0;padding:0}
.placement-first li,.placement-detail li {padding:.45rem 0;border-bottom:1px solid #dfe5e8}
.placement-first li {display:flex;flex-wrap:wrap;gap:.25rem 1rem;justify-content:space-between}
.placement-first span,.placement-first p,.placement-detail p {color:#485b66}
.placement-first details,.placement-detail details {margin-top:.65rem}
.placement-first summary,.placement-detail summary {cursor:pointer}
.placement-first .table-wrap {max-height:20rem;overflow:auto}

.score-panel label.women-pref{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.83rem;cursor:pointer}.women-pref input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:#28506b}

.route-directory .route-list { margin: 12px 0; }
.route-directory .route-card { border-top: 1px solid var(--line); }
.route-card > summary { display: grid; grid-template-columns: minmax(9em,1fr) minmax(12em,2fr) auto; align-items: baseline; gap: 12px; padding: 12px 4px; cursor: pointer; }
.route-card > summary::after { content: none; }
.route-card > summary small { color: var(--muted); }
.route-card[open] > summary { font-weight: 600; }
.route-body { padding: 0 6px 15px; }
.route-body p { margin: 6px 0; }
.route-majors { padding-left: 1.3em; }
.route-majors li { margin: 5px 0; }
.route-stat { margin-top: 10px; }
.route-stat .lab-scroll { max-height: 320px; overflow: auto; }
@media (max-width: 700px) {
 .route-card > summary { grid-template-columns: 1fr auto; gap: 3px 12px; }
 .route-card > summary > span:nth-child(2) { grid-row: 2; grid-column: 1 / -1; }
}
