/* Shared responsive rules for public, authenticated, admin and auth layouts. */
.jk-responsive { overflow-wrap:anywhere; }
.jk-responsive :is(main, section, article, aside, form, fieldset, .card, .card-body, .row > *, .d-flex > *) { min-width:0; }
.jk-responsive img { max-width:100%; height:auto; }
.jk-responsive :is(input, select, textarea) { max-width:100%; }
.jk-responsive :is(.form-control, .form-select) { min-width:0; }
.jk-responsive :is(.badge, .plan-badge) { white-space:normal; }
.jk-responsive :is(.table-responsive, .user-table-wrap, .past-calendar-scroll, .timeline-scroll, .plan-viewport) { min-width:0; max-width:100%; overscroll-behavior-inline:contain; }
.jk-responsive :is(.btn, .auth-button) { overflow-wrap:anywhere; }
.jk-responsive :is(.card__head, .admin-page-heading__content) { flex-wrap:wrap; }
.jk-responsive .site-user__text { max-width:clamp(100px,20vw,240px); }
.jk-responsive .site-user__name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jk-responsive .site-user__avatar { flex-shrink:0; }
.jk-responsive .site-nav__inner { gap:12px; width:calc(100% - 48px); max-width:none; }
.jk-responsive .dropdown-menu { max-width:calc(100vw - 32px); }
.jk-responsive .dropdown-item { white-space:normal; overflow-wrap:anywhere; }
.jk-responsive .admin-sidebar { overflow-y:auto; height:100dvh; }
.admin-mobile-bar { display:none; }
.jk-responsive .admin-sidebar .offcanvas-header { flex-shrink:0; }
.jk-responsive .admin-user-menu__panel { max-height:calc(100dvh - 100px); overflow-y:auto; }
.jk-responsive :is(.modal-dialog, .modal-content, .modal-content > form) { min-width:0; }
.jk-responsive .modal-content { max-height:calc(100dvh - var(--bs-modal-margin, .5rem) * 2); overflow:hidden; }
.jk-responsive .modal-content > form { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.jk-responsive .modal-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.jk-responsive :is(.modal-header, .modal-footer) { flex-shrink:0; }
.jk-responsive .btn-close { flex-shrink:0; }
.jk-responsive .modal-footer { gap:8px; }
.jk-responsive .jk-create-frame { height:min(70dvh,800px); }
.jk-responsive .calendar-month { min-width:0; }
.jk-responsive .schedule-filter input { display:inline-block; position:absolute; opacity:0; width:1px; height:1px; }
.jk-responsive .schedule-filter input:focus-visible + span { outline:3px solid #1677d2; outline-offset:2px; }
.jk-responsive .plan-viewport { min-height:min(420px,60dvh); max-height:70dvh; }
.jk-responsive .plan-dialog { max-height:calc(100dvh - 24px); overscroll-behavior:contain; }
.jk-responsive .plan-dialog .d-flex { flex-wrap:wrap; }
.jk-responsive .plan-catalog .btn { flex-shrink:0; }
.jk-responsive .plan-catalog > .d-flex > div { flex:1 1 160px; }
.jk-responsive .plan-node-title { min-width:0; }
.jk-responsive .plan-empty { max-width:calc(100vw - 100px); }
.jk-responsive .plan-legend { gap:8px 16px; }
.jk-responsive .school-save-dialog__actions { flex-wrap:wrap; }
.jk-responsive .school-records { min-width:760px; }
.jk-responsive .auth-panel { max-width:480px; }
.jk-responsive .auth-shell { min-height:100dvh; }
@media (min-width:992px) {
    .jk-responsive .admin-sidebar.offcanvas-lg { position:sticky; top:0; display:flex; border:0; }
    .jk-responsive .admin-sidebar .offcanvas-header { display:none; }
}
@media (min-width:992px) and (max-width:1199.98px) {
    .jk-responsive.jk-app .workspace { grid-template-columns:224px minmax(0,1fr); }
    .jk-responsive .admin-frame { grid-template-columns:212px minmax(0,1fr); }
    .jk-responsive .admin-stats, .jk-responsive .admin-menu { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
    .jk-responsive .admin-frame { display:block; }
    .admin-mobile-bar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; background:white; border-bottom:1px solid #deebf3; }
    .admin-mobile-bar > a { color:#173b5f; font-weight:800; text-decoration:none; }
    .jk-responsive .admin-sidebar.offcanvas-lg { position:fixed; display:flex; flex-direction:column; align-items:stretch; gap:0; width:min(320px,90vw); height:100dvh; padding:16px; background:#163d60; }
    .jk-responsive .admin-sidebar__label { display:block; }
    .jk-responsive .admin-brand { padding:10px 10px 20px; }
    .jk-responsive .admin-content { width:calc(100% - 32px); }
    .jk-responsive .admin-page-heading { padding:20px 16px; align-items:flex-start; }
    .jk-responsive .auth-shell { grid-template-columns:minmax(0,1fr); }
    .jk-responsive .auth-story { min-height:0; padding:28px 24px; }
    .jk-responsive .auth-copy { margin-top:28px; max-width:700px; }
    .jk-responsive .auth-copy h1 { font-size:clamp(24px,4vw,32px); }
    .jk-responsive .date-list { display:none; }
    .jk-responsive .auth-main { padding:28px 16px 40px; }
    .jk-responsive .workspace-menu.offcanvas-lg { max-height:100dvh; }
}
@media (min-width:576px) and (max-width:991.98px) {
    .jk-responsive .admin-stats, .jk-responsive .admin-menu { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
    .jk-responsive .responsive-records, .jk-responsive .jk-practice-table .responsive-records { display:block; width:100%; min-width:0; }
    .jk-responsive .responsive-records thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
    .jk-responsive .responsive-records tbody { display:grid; gap:16px; }
    .jk-responsive .responsive-records tr { display:block; border:1px solid #deebf3; border-radius:12px; padding:12px; background:white; }
    .jk-responsive .responsive-records :is(td, th[scope="row"]) { display:block; width:100%; min-width:0; padding:10px 0; border:0; text-align:left; }
    .jk-responsive .responsive-records [data-label]::before { content:attr(data-label); display:block; color:#637a91; font-size:12px; font-weight:700; margin-bottom:6px; }
    .jk-responsive .responsive-records td + td { border-top:1px solid #edf2f6; }
    .jk-responsive .responsive-records .btn { min-height:44px; }
    .jk-responsive .record-actions .btn { margin:4px 4px 4px 0; }
    .jk-responsive .schedule-daily td:has(.js-event):not(:has(.js-event:not([hidden]))) { display:none; }
    .jk-responsive .schedule-daily td:not(:has(.js-event)) { display:none; }
    .jk-responsive .schedule-daily tr:not(:has(.js-event:not([hidden]))) { display:none; }
    .jk-responsive .timeline-grid { grid-template-columns:130px repeat(var(--day-count),28px); }
    .jk-responsive .past-inline-result { flex-wrap:wrap; }
    .jk-responsive .past-inline-result__form { flex:1 1 100%; }
}
@media (max-width:575.98px) {
    .jk-responsive :is(.btn, .auth-button, .form-control, .form-select, .dropdown-item) { min-height:44px; }
    .jk-responsive :is(.form-control, .form-select, .auth-field input) { font-size:16px; }
    .jk-responsive.jk-app :is(.past-inline-result__fields input, .past-inline-result__form .btn) { font-size:16px; }
    .jk-responsive .btn-close { min-width:24px; min-height:24px; padding:10px; }
    .jk-responsive.jk-app .site-nav__inner { width:calc(100% - 24px); gap:8px; flex-wrap:nowrap; }
    .jk-responsive .site-brand { font-size:17px; gap:6px; letter-spacing:0; }
    .jk-responsive .site-nav .btn { padding:6px 8px; }
    .jk-responsive .site-nav .badge { font-size:10px; padding:3px; }
    .jk-responsive .site-nav__inner > .d-flex { gap:4px; }
    .jk-responsive.jk-app .page-heading h1 { font-size:clamp(23px,6.5vw,27px); }
    .jk-responsive.jk-app .card, .jk-responsive .admin-content .card { padding:16px; }
    .jk-responsive .card > .card-body { --bs-card-spacer-x:0; --bs-card-spacer-y:0; }
    .jk-responsive .card > .card-body.p-4 { padding:0 !important; } /* Bootstrap utility on legacy double-padded cards. */
    .jk-responsive :is(.modal-body, .modal-header, .modal-footer) { padding:16px; }
    .jk-responsive .modal-footer > .btn { flex:1 1 100px; }
    .jk-responsive .jk-page-header__actions { flex-wrap:wrap; }
    .jk-responsive .jk-page-header__actions .btn { flex:1 1 140px; }
    .jk-responsive .auth-card { padding:22px 18px; }
    .jk-responsive .auth-copy p { margin-top:14px; font-size:14px; }
    .jk-responsive .public-hero h1 { font-size:clamp(26px,7.5vw,38px); }
    .jk-responsive :is(.public-hero, .public-cta) .btn { width:100%; }
    .jk-responsive .public-header .d-flex { flex-wrap:wrap; }
    .jk-responsive .public-header .d-flex .btn { flex:1 1 120px; }
    .jk-responsive .school-save-dialog__body { padding:20px; }
    .jk-responsive .school-save-dialog__actions { padding:16px; }
    .jk-responsive .school-save-dialog__actions button { flex:1; }
    .jk-responsive .past-benchmark-field { width:100%; }
    .jk-responsive .past-year-matrix tbody th, .jk-responsive .past-year-matrix thead th:first-child { position:static; }
}
@media (max-height:500px) {
    .jk-responsive .site-nav { position:static; }
    .jk-responsive .workspace-menu { top:0; max-height:100dvh; }
    .jk-responsive .plan-viewport { min-height:180px; max-height:70dvh; }
    .jk-responsive .plan-dialog { max-height:calc(100dvh - 16px); }
}

/* Wide Bootstrap gutters must fit within the public container padding. */
@media (max-width:575.98px) {
    .jk-responsive .container > .row { --bs-gutter-x:1.5rem; }
    .jk-responsive .schedule-daily .js-event { padding:10px; margin-bottom:8px; font-size:14px; line-height:1.65; border-radius:6px; }
    .jk-responsive .schedule-daily .type-badge { display:block; font-size:13px; margin-bottom:4px; }
}

.jk-responsive :is(.table-responsive, .user-table-wrap) { position:relative; }
.jk-responsive .pagination { flex-wrap:wrap; gap:4px; }
.jk-responsive .page-link { min-height:44px; }

.jk-responsive .plan-dialog__header { position:sticky; top:-25px; z-index:2; background:white; padding-block:12px; }
.jk-responsive .plan-dialog__footer { position:sticky; bottom:-25px; z-index:2; background:white; padding-bottom:12px; }
@media(max-width:620px) {
    .jk-responsive .plan-dialog__header { top:-18px; }
    .jk-responsive .plan-dialog__footer { bottom:-18px; }
}

@media (min-width:576px) and (max-width:991.98px) {
    .jk-responsive .school-records tbody { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:575.98px) {
    .jk-responsive .past-score-stepper__buttons button { min-width:36px; min-height:28px; }
}

/* Keep dense admin tables readable instead of squeezing names and statuses. */
.jk-responsive .admin-content .table { min-width:720px; }

/* Mobile interface: clear hierarchy, deliberate spacing and reachable navigation. */
.school-tools, .school-card-actions, .public-footer__nav { display:flex; }
.public-footer__nav { gap:16px; }
.public-footer__content { padding-block:48px; }
.site-account-actions { gap:8px; }
.mobile-menu-button {
    display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
    flex:0 0 44px; width:44px; height:46px; gap:1px; padding:3px; border:1px solid #dbe7f2;
    border-radius:12px; background:#f6faff; color:#234d70; line-height:1; cursor:pointer;
}
.mobile-menu-button span { font-size:9px; font-weight:700; letter-spacing:0; }
.mobile-menu-button:focus-visible { outline:3px solid #1677d2; outline-offset:3px; }
.public-navbar { min-height:80px; padding-block:14px; }
.public-drawer__header, .public-nav-group, .public-nav-arrow { display:none; }
.public-nav-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.public-drawer__eyebrow, .mobile-menu-eyebrow { margin:0 0 4px; color:#54728e; font-size:10px; font-weight:700; letter-spacing:.14em; }
.mobile-menu-eyebrow, .mobile-menu-title { display:block; }
.mobile-menu-title { color:#173b5f; font-size:18px; line-height:1.5; }
.schedule-filters { margin-top:16px; border-top:1px solid #deebf3; }
.schedule-filters > summary { padding-top:16px; color:#294761; font-size:14px; font-weight:650; cursor:pointer; }
.schedule-filter-summary { margin-left:8px; color:#637a91; font-size:12px; font-weight:400; }
@media(min-width:1400px) {
    .public-drawer { display:flex; align-items:center; flex:1; gap:12px; }
    .public-drawer .public-drawer__body { padding:0; flex:1; justify-content:center; }
    .public-nav-links { margin-inline:auto; }
}
@media(max-width:1399.98px) {
    .jk-responsive .public-navbar { min-height:68px; padding:10px 20px; }
    .public-navbar .public-brand { margin:0; font-size:19px; }
    .jk-responsive .public-drawer { width:min(380px,calc(100vw - 20px)); height:100dvh; border:0; background:#fff; box-shadow:-12px 0 40px #173b5f20; }
    .public-drawer .public-drawer__header { display:flex; justify-content:space-between; gap:16px; padding:22px 22px 18px; flex-shrink:0; border-bottom:1px solid #e6eef5; }
    .public-drawer__header h2 { margin:0; font-size:22px; }
    .public-drawer .btn-close { width:24px; height:24px; padding:10px; margin:0; border-radius:50%; background-color:#f0f5fa; opacity:1; }
    .public-drawer .public-drawer__body { min-height:0; padding:14px 18px; overflow-y:auto; overscroll-behavior:contain; }
    .public-drawer .public-nav-group { display:block; padding:10px 12px 6px; color:#687f92; font-size:11px; font-weight:650; letter-spacing:.05em; }
    .public-drawer .public-nav-group:not(:first-child) { margin-top:16px; border-top:1px solid #e6eef5; padding-top:18px; }
    .public-drawer .nav-link { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:13px 12px; min-height:50px; border-radius:10px; color:#23445f; font-size:15px; font-weight:600; }
    .public-drawer .nav-link:hover { background:#f3f8fc; }
    .public-drawer .nav-link.active { color:#1265ad; background:#eaf4ff; }
    .public-drawer .public-nav-arrow { display:block; font-size:22px; font-weight:400; line-height:1; color:#7893aa; }
    .public-drawer .nav-link.active .public-nav-arrow { color:#1265ad; }
    .public-drawer .public-nav-actions { flex-shrink:0; display:grid; gap:10px; padding:18px 22px max(20px,env(safe-area-inset-bottom)); border-top:1px solid #e6eef5; background:#f8fbfe; }
    .public-nav-actions .btn { display:flex; justify-content:center; align-items:center; gap:14px; min-height:48px; font-size:15px; }
    .public-nav-actions .btn-primary { order:-1; box-shadow:0 4px 12px #1677d218; }
}
@media(max-width:991.98px) {
    .jk-responsive.jk-app .site-nav { padding:0; background:#fff; }
    .jk-responsive.jk-app .site-nav__inner { min-height:64px; width:calc(100% - 28px); gap:10px; flex-wrap:nowrap; }
    .jk-responsive.jk-app .site-nav .workspace-menu-toggle { display:inline-flex; flex:0 0 44px; width:44px; height:46px; padding:3px; background:#f6faff; border:1px solid #dbe7f2; }
    .jk-responsive .site-brand { margin-right:auto; }
    .jk-responsive .site-account-actions { flex-shrink:0; }
    .jk-responsive.jk-app .workspace-menu.offcanvas-lg { display:flex; width:min(360px,calc(100vw - 24px)); padding:0; overflow:hidden; height:100dvh; background:#fff; }
    .jk-responsive.jk-app .workspace-menu .offcanvas-header { justify-content:space-between; gap:12px; padding:22px 20px 18px; flex-shrink:0; border-bottom:1px solid #e4edf7; }
    .jk-responsive .workspace-menu .btn-close { padding:10px; margin:0; border-radius:50%; background-color:#f0f5fa; opacity:1; }
    .jk-responsive .workspace-menu__body { min-height:0; overflow-y:auto; padding:16px 16px max(20px,env(safe-area-inset-bottom)); overscroll-behavior:contain; }
    .jk-responsive.jk-app .workspace-menu__home { padding:13px 14px; font-size:15px; border:1px solid #e3edf7; border-radius:12px; }
    .jk-responsive.jk-app .workspace-menu__label { margin:22px 12px 8px; color:#6a8196; font-size:11px; }
    .jk-responsive.jk-app .workspace-menu__link { padding:12px; margin-bottom:4px; gap:12px; }
    .jk-responsive.jk-app .workspace-menu__icon { flex:0 0 38px; width:38px; height:38px; border-radius:11px; }
    .jk-responsive.jk-app .workspace-menu__link strong { font-size:15px; }
    .jk-responsive.jk-app .workspace-menu__link small { font-size:12px; line-height:1.6; }
    .jk-responsive.jk-app .workspace-menu__children { margin:4px 0 12px 30px; padding-left:12px; border-left:1px solid #d5e6f1; }
    .jk-responsive.jk-app .workspace-menu__children a { font-size:13px; padding:11px 10px; }
    .jk-responsive .workspace-menu__footer { margin:22px 8px 0; }
    .jk-responsive .workspace-menu__footer a, .jk-responsive .workspace-menu__footer button { min-height:44px; font-size:14px; padding:10px 6px; }
    .jk-responsive .admin-sidebar.offcanvas-lg { padding:0; }
    .jk-responsive .admin-sidebar .offcanvas-header { position:sticky; top:0; z-index:1; padding:22px 20px; background:#163d60; }
    .jk-responsive .admin-sidebar__link { margin:2px 12px; padding:13px 12px; min-height:48px; }
    .jk-responsive .admin-sidebar .admin-brand { margin:6px 14px; }
    .jk-responsive .admin-sidebar__label { margin:14px 24px 8px; }
    .jk-responsive.jk-app .page-heading__inner { min-height:0; padding:22px 0 10px; gap:12px; }
    .jk-responsive.jk-app .page-content { padding-top:16px; }
    .jk-responsive .jk-page-header { gap:14px; }
    .jk-responsive .school-records tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; padding:18px; }
    .jk-responsive .school-records td { min-width:0; }
    .jk-responsive .school-records td:first-child { grid-column:1/-1; padding:0 0 14px; }
    .jk-responsive .school-records td:first-child::before, .jk-responsive .school-records td:last-child::before { display:none; }
    .jk-responsive .school-records td:first-child > strong { display:block; font-size:17px; line-height:1.6; color:#173b5f; }
    .jk-responsive .school-records td:first-child > small { margin-top:4px; }
    .jk-responsive .school-records td:last-child { grid-column:1/-1; padding-bottom:0; }
    .jk-responsive .school-records td:nth-child(3) .btn { width:100%; padding:8px; }
    .jk-responsive .school-card-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .jk-responsive .school-card-actions .btn, .jk-responsive .school-card-actions form { width:100%; }
    .jk-responsive .school-card-actions .btn { display:flex; align-items:center; justify-content:center; gap:4px; }
    .jk-responsive .school-records details summary { min-height:36px; padding-block:8px; color:#526f88; }
    .jk-responsive .school-list-panel { background:transparent; border:0; padding:0; box-shadow:none; }
    .jk-responsive .school-list-panel > .table-responsive { border-radius:0; }
}
@media(max-width:575.98px) {
    .jk-responsive.jk-app .site-nav__inner { width:calc(100% - 24px); gap:8px; }
    .jk-responsive .site-nav .site-brand { font-size:17px; gap:0; }
    .jk-responsive .site-nav .site-brand__mark { display:none; }
    .jk-responsive .site-nav .site-user__avatar { width:30px; height:30px; }
    .jk-responsive .site-nav .site-account-actions { gap:2px; }
    .jk-responsive .site-nav .btn { padding:6px; }
    .jk-responsive.jk-app .page-heading h1 { font-size:24px; line-height:1.5; letter-spacing:0; }
    .jk-responsive .page-heading__eyebrow { margin-bottom:4px; }
    .jk-responsive .jk-page-header__actions .btn { font-size:14px; padding:11px 14px; }
    .jk-responsive.jk-app .btn { font-size:14px; }
    .jk-responsive.jk-app .btn-sm { font-size:13px; padding:9px 12px; }
    .jk-responsive.jk-app .form-label { font-size:14px; margin-bottom:8px; }
    .jk-responsive.jk-app .form-control, .jk-responsive.jk-app .form-select { min-height:48px; }
    .jk-responsive.jk-app .card { padding:18px; border-radius:14px; }
    .jk-responsive.jk-app .school-list-panel { padding:0; }
    .jk-responsive .school-tools { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .jk-responsive .school-tools > a { font-size:12px; padding:10px; }
    .jk-responsive .school-tools > a:last-child { grid-column:1/-1; background:transparent; border:0; padding:4px; min-height:36px; }
    .jk-responsive .school-records td { font-size:14px; }
    .jk-responsive .school-records td::before { font-size:11px; }
    .jk-responsive .school-card-actions .btn { font-size:13px; }
    .jk-responsive .schedule-controls #view-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; padding:5px; gap:6px; background:#f0f6fc; border-radius:12px; }
    .jk-responsive .schedule-controls #view-tabs .btn { border:0; border-radius:8px; min-height:42px; padding:9px 6px; font-size:13px; }
    .jk-responsive .schedule-controls #view-tabs .btn-outline-primary { background:transparent; }
    .jk-responsive .schedule-filters > summary { min-height:46px; padding-top:14px; }
    .jk-responsive .schedule-daily tr { border-radius:12px; }
    .jk-responsive .schedule-daily th[scope="row"] { padding-top:0; color:#173b5f; font-size:16px; font-weight:700; }
    .jk-responsive .schedule-daily th[scope="row"]::before { display:none; }
    .jk-responsive .schedule-daily th[scope="row"] .small { display:inline; margin-left:8px; }
    .jk-responsive .past-schedule-card__title { margin:14px 0; font-size:16px; line-height:1.7; }
    .jk-responsive .past-schedule-card__title a { text-decoration:none; color:#173b5f; }
    .jk-responsive .past-inline-result__subject { font-size:14px; }
    .jk-responsive .past-schedule-card [data-open-inline-result] { background:#edf5ff; border-color:#dceafb; color:#245ba7; font-size:13px; }
    .jk-responsive .past-schedule-card__actions { display:flex; flex-wrap:wrap; gap:8px; }
    .jk-responsive .past-schedule-card__actions .btn { flex:1 1 120px; font-size:12px; }
    .jk-responsive .past-breadcrumb-route__label, .jk-responsive.jk-app .breadcrumb { font-size:11px; }
    .jk-responsive .public-hero, .jk-responsive .public-page-head { padding-top:30px; }
    .jk-responsive .public-section { padding-block:36px; }
    .jk-responsive .public-card { padding:22px 20px; border-radius:14px; }
    .jk-responsive .public-footer nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
    .jk-responsive .public-footer nav a { padding:10px 0; min-height:44px; font-size:13px; text-decoration:none; }
    .jk-responsive .public-footer__content { padding-block:32px 24px; }
    .jk-responsive .auth-story { padding:22px 20px; }
    .jk-responsive .auth-copy { margin-top:22px; }
    .jk-responsive .auth-card h2 { font-size:24px; }
    .jk-responsive .auth-card { box-shadow:0 8px 24px #1e496d0c; }
}
@media(max-height:500px) and (max-width:1399.98px) {
    .public-drawer .public-drawer__header { padding:12px 18px; }
    .public-drawer .public-nav-actions { grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px 16px; }
    .public-drawer .public-nav-actions .btn { font-size:13px; padding:8px; }
}

.schedule-weekday { display:block; }
@media(max-width:575.98px) { .schedule-weekday { display:inline; } }

.school-list-heading { display:flex; justify-content:space-between; gap:16px; }
.school-list-heading > div { min-width:0; }
.school-list-heading > span { flex-shrink:0; white-space:nowrap; }
@media(max-width:575.98px) {
    .jk-responsive .school-intro { font-size:14px; line-height:1.75; margin-bottom:14px; }
    .jk-responsive .school-list-heading { gap:12px; }
    .jk-responsive .school-list-heading h2 { margin-bottom:6px; font-size:18px; }
    .jk-responsive .school-list-heading .small { font-size:12px; line-height:1.65; }
    .jk-responsive .school-list-heading > span { font-size:13px; padding-top:3px; }
}

.plan-help { margin-top:12px; }
.plan-help > summary { color:#526f88; font-size:13px; cursor:pointer; }
@media(max-width:767.98px) {
    .plan-help { border-top:1px solid #e4edf7; padding-top:4px; }
    .plan-help > summary { min-height:40px; padding-block:10px; }
    .jk-responsive .plan-scroll-hint { font-size:12px; line-height:1.7; }
}

.plan-order-handle { cursor:grab; touch-action:none; user-select:none; }
[data-plan-order-item].is-dragging { opacity:.55; }
[data-plan-order-item].is-drop-target > .card { outline:3px solid #1677d2; outline-offset:3px; }
[data-plan-order-list][aria-busy="true"] .plan-order-handle { cursor:wait; }

.plan-title-row { display:flex; align-items:center; gap:12px; }
.plan-title-row h1 { margin:0; min-width:0; }
.plan-settings-button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; gap:6px; min-width:72px; height:36px; padding:7px 10px; border:1px solid #d7e4ef; border-radius:10px; color:#526f88; background:#fff; }
.plan-settings-button:hover { color:#1677d2; background:#edf6ff; }
.plan-settings-button:focus-visible { outline:3px solid #1677d2; outline-offset:2px; }
@media(pointer:coarse) { .plan-settings-button { min-height:44px; } }

.plan-settings-button span { font-size:13px; font-weight:600; white-space:nowrap; }

.jk-app .workspace .workspace-main--wide > .page-content,
.jk-app .workspace .workspace-main--wide > .page-heading > .page-heading__inner { max-width:none; }

/* Shared reading navigation: a single entry on desktop and in the mobile drawer. */
.public-reading-menu>.nav-link{border:0;background:transparent;font-family:inherit;white-space:nowrap}
.public-reading-menu .dropdown-menu{min-width:220px;padding:8px;border:1px solid #d4e2ec;border-radius:12px;box-shadow:0 12px 32px #173b5f20}
.public-reading-menu .dropdown-item{padding:12px 14px;border-radius:7px;color:#23445f;font-size:15px}
.public-reading-menu .dropdown-item:hover,.public-reading-menu .dropdown-item:focus{background:#edf5fb;color:#164f7c}
.public-reading-menu .dropdown-item.active{background:#206581;color:#fff}
@media(max-width:1399.98px){.public-reading-menu>.nav-link{width:100%;text-align:left}.public-reading-menu .dropdown-menu{position:static!important;transform:none!important;margin:0 0 8px 12px;box-shadow:none;background:#f6f9fc}.public-reading-menu .dropdown-toggle::after{margin-left:auto}}
