.jj-family { max-width: 70rem; margin: 1rem auto; padding: 1rem; color: #173e35; }
.jj-family-dashboard { max-width:90rem; }
.jj-canva-dashboard #maincontainer { max-width:90rem; width:100%; }
.jj-canva-dashboard .jj-family-dashboard { margin-top:0; }
.jj-canva-dashboard .jj-family-dashboard > h1 { font-size:1.4rem; margin:0 0 8px; }
.jj-canva-dashboard .jj-family-section-nav { display:none !important; }
.jj-canva-dashboard .jj-family .jj-family-switch { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:8px 0; margin:8px 0 16px; border:0; background:transparent; }
.jj-canva-dashboard .jj-family .jj-family-switch label { margin:0; }
.jj-canva-dashboard .jj-family .jj-family-switch select { width:auto; min-width:0; flex:1 1 180px; max-width:min(28rem,100%); margin:0; }
.jj-canva-dashboard .jj-family .jj-family-switch button { margin:0; }
.jj-canva-dashboard .jj-calendar-grid th,.jj-canva-dashboard .jj-calendar-grid td { border:0 !important; }
.jj-dashboard-shell { display:grid; grid-template-columns:190px minmax(0,1fr); gap:24px; background:#fffdf7; padding:20px; border-radius:16px; }
.jj-dashboard-sidebar { display:flex; flex-direction:column; gap:9px; align-items:stretch; }
.jj-dashboard-sidebar > img { align-self:center; object-fit:contain; margin:0 0 10px; }
.jj-dashboard-brand { color:#b64c23; font-size:.9rem; font-weight:700; text-align:center; }
.jj-family .jj-dashboard-sidebar a { padding:11px 13px; margin:0; background:#f0edf5; border:0; border-radius:8px; text-decoration:none; font-size:.9rem; color:#344a45; }
body .jj-family nav.jj-dashboard-sidebar a[aria-current="page"] { background:#dbe8d4; color:#25432a; font-weight:700; }
body[id^="page-local-jjcurriculum-family-"] .jj-family nav.jj-dashboard-sidebar a[aria-current="page"] { color:#25432a; }
.jj-dashboard-main { min-width:0; overflow-wrap:anywhere; }
.jj-dashboard-main > h2 { font-size:1.65rem; margin:0 0 10px; }
.jj-dashboard-intro { margin-bottom:8px; color:#53655b; }
.jj-dashboard-privacy { font-size:.8rem; color:#586458; margin-bottom:20px; }
.jj-dashboard-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 22px; }
.jj-dashboard-stat { padding:18px; border-radius:13px; background:#eaf1e3; }
.jj-dashboard-stat:nth-child(2) { background:#edf0fa; }
.jj-dashboard-stat:nth-child(3) { background:#fbecd8; }
.jj-dashboard-stat h3 { font-size:.95rem; margin:0 0 9px; }
.jj-dashboard-stat strong { font-size:2rem; font-weight:700; }
.jj-dashboard-stat p { font-size:.8rem; margin:5px 0 0; }
.jj-dashboard-columns { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:20px; margin-bottom:20px; align-items:start; }
.jj-dashboard-aside { display:grid; gap:20px; min-width:0; }
.jj-dashboard-panel { min-width:0; border:1px solid #e3e5db; border-radius:14px; background:#fff; padding:20px; box-shadow:0 2px 6px #32413506; }
.jj-dashboard-panel h3 { font-size:1.15rem; margin:0 0 15px; }
.jj-dashboard-panel p { font-size:.9rem; line-height:1.5; }
.jj-dashboard-panel details { margin:12px 0 0; }
.jj-dashboard-panel summary { cursor:pointer; font-weight:600; padding:6px 0; }
.jj-dashboard-entry { padding:12px 0; border-bottom:1px solid #edf0e9; overflow-wrap:anywhere; }
.jj-dashboard-entry small { display:block; margin:6px 0; }
.jj-workspace-form { margin:8px 0; }
.jj-family .jj-workspace-form button { margin:0; padding:6px 9px; font-size:.8rem; min-height:36px; }
.jj-workspace-editor { display:grid; gap:8px; padding:10px 0; }
.jj-workspace-editor textarea, .jj-workspace-editor input { width:100%; max-width:100%; box-sizing:border-box; }
.jj-workspace-editor button { justify-self:start; }
.jj-note-text { white-space:pre-wrap; }
.jj-calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:10px 0 16px; }
.jj-calendar-heading h4 { margin:0; font-size:1.15rem; }
.jj-calendar-heading a { padding:8px 14px; border-radius:8px; background:#f0edf5; }
.jj-calendar-grid { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:3px; text-align:center; margin-bottom:16px; }
.jj-calendar-grid th { font-size:.75rem; color:#607067; padding:5px 0; }
.jj-calendar-grid td { height:40px; padding:0; border:0; font-size:.9rem; }
.jj-calendar-grid td span, .jj-calendar-grid td a { display:grid; place-items:center; min-height:36px; width:100%; border-radius:8px; margin:0; }
.jj-calendar-grid td a { background:#eee5f5; color:#633d80; font-weight:700; text-decoration:underline; }
.jj-calendar-grid .jj-calendar-today { outline:2px solid #7c9a6e; border-radius:9px; }
.jj-dashboard-pods { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.jj-dashboard-pod { min-width:0; border-radius:10px; overflow:hidden; border:1px solid #e2e8dc; background:#fcfdf9; }
.jj-dashboard-pod > img { display:block; width:100%; height:120px; object-fit:cover; }
.jj-family .jj-dashboard-pod > .jj-pod-video { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; background:#17221b; border-radius:12px 12px 0 0; }
.jj-dashboard-pod-art { display:grid; place-items:center; height:120px; background:linear-gradient(135deg,#f6e5c5,#e0eacc); color:#52754d; }
.jj-dashboard-pod:nth-child(even) .jj-dashboard-pod-art { background:linear-gradient(135deg,#e4eafb,#efe0ef); color:#65749d; }
.jj-dashboard-pod-art span { font-family:Georgia,serif; font-size:3rem; }
.jj-dashboard-pod h4 { padding:12px 12px 0; font-size:1rem; }
.jj-dashboard-pod details { margin:0; padding:0 12px 14px; }
.jj-dashboard-pod a { display:block; font-size:.8rem; padding:8px 0; overflow-wrap:anywhere; }
.jj-dashboard-progress h4 { font-size:.9rem; margin-top:18px; }
.jj-dashboard-supportbar { display:flex; height:14px; overflow:hidden; border-radius:6px; background:#f0f2ee; margin:8px 0; }
.jj-support-full_support { background:#a18ab9; }
.jj-support-partial_support { background:#efc46c; }
.jj-support-no_support { background:#8baa7c; }
.jj-dashboard-level { display:block; font-size:.8rem; margin:4px 0; }
.jj-dashboard-empty { color:#637361; }
@media(max-width:1100px) { .jj-dashboard-shell { grid-template-columns:155px minmax(0,1fr); padding:14px; gap:16px; } .jj-dashboard-columns { grid-template-columns:1fr; } .jj-dashboard-aside { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .jj-family-dashboard { padding:0; } .jj-dashboard-shell { display:block; padding:12px; } .jj-family .jj-dashboard-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:24px; } .jj-dashboard-sidebar > img,.jj-dashboard-brand { display:none; } .jj-dashboard-stats { gap:8px; } .jj-dashboard-stat { padding:10px; } .jj-dashboard-stat h3 { font-size:.8rem; } .jj-dashboard-stat p { font-size:.7rem; } .jj-dashboard-panel { padding:14px; } .jj-dashboard-aside { grid-template-columns:1fr; } }
@media(max-width:700px) { .jj-family .jj-dashboard-sidebar { display:flex; flex-direction:row; flex-wrap:nowrap; overflow-x:auto; gap:8px; padding-bottom:8px; } .jj-family .jj-dashboard-sidebar a { flex:0 0 auto; white-space:nowrap; } }
@media(max-width:380px) { .jj-dashboard-stat strong { font-size:1.5rem; } .jj-dashboard-pods { grid-template-columns:1fr; } }
.jj-tracker-intro { max-width: 54rem; font-size: 1.1rem; line-height: 1.65; }
.jj-tracker-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.jj-tracker-pod { border: 1px solid #b8cbb4; border-top: 5px solid #91b384; border-radius: 1rem;
    padding: 1.25rem; background: #fffefa; box-shadow: 0 3px 10px #173e3508; }
.jj-tracker-pod h4 { font-size: 1.25rem; margin-bottom: 1rem; }
.jj-tracker-visual { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.jj-tracker-visual p { margin: 0; max-width: 14rem; }
.jj-tracker-ring { flex: 0 0 6rem; width: 6rem; height: 6rem; border-radius: 50%; display: grid;
    place-items: center; background: conic-gradient(#94609b 0 var(--jj-first), #c59631 var(--jj-first) var(--jj-second), #458493 var(--jj-second) 100%); }
.jj-tracker-ring span { border-radius: 50%; background: #fffefa; width: 4.1rem; height: 4.1rem;
    display: grid; place-items: center; font-size: 1.6rem; font-weight: 700; }
.jj-tracker-ring.jj-tracker-empty { background: #e6ecdf; }
.jj-tracker-levels { list-style: none; padding: 0; margin: 0; }
.jj-tracker-levels li { border-left: 5px solid #94609b; margin: .5rem 0; background: #f6f1f7; border-radius: .3rem; }
.jj-tracker-levels li.jj-tracker-partial_support { border-color: #c59631; background: #faf5e8; }
.jj-tracker-levels li.jj-tracker-no_support { border-color: #458493; background: #edf5f6; }
.jj-tracker-levels a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem .6rem;
    padding: .65rem .75rem; min-height: 44px; color: #173e35; }
.jj-tracker-levels strong { font-size: 1.15rem; }
.jj-tracker-levels small { grid-column: 1 / -1; }
.jj-tracker-method { padding: 1rem; background: #f2f5ec; border-radius: .5rem; margin: 1.5rem 0; line-height: 1.6; }
.jj-family .jj-tracker-filters { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.jj-tracker-filter { flex: 1 1 12rem; }
.jj-family .jj-tracker-filter select { margin-bottom: 0; }
@media (max-width: 48rem) { .jj-tracker-grid { grid-template-columns: 1fr; } }
body[id^="page-local-jjcurriculum-family-"] #page-header h1 { display: none; }
.jj-family nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.jj-family nav a, .jj-family button { padding: .7rem 1rem; border: 1px solid #2f695c; border-radius: .45rem; min-height: 44px; }
.jj-family nav a[aria-current="page"], .jj-family button { background: #2f695c; color: white; }
.jj-family a { color: #194f43; text-decoration: underline; }
.jj-family :focus-visible { outline: 3px solid #865012; outline-offset: 3px; }
.jj-family-card, .jj-family-switch { padding: 1rem; margin: 1rem 0; border: 1px solid #d8cbb8; border-radius: .5rem; background: #fbf7ef; }
.jj-family input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]), .jj-family select, .jj-family textarea { width: 100%; max-width: 30rem; min-height: 44px; display: block; margin: .4rem 0 1rem; }
.jj-family label { display: block; padding: .4rem 0; }
.jj-family input[type="radio"] { float: left; margin: .9rem .5rem 0 0; }
.jj-family img, .jj-family video, .jj-family iframe { max-width: 100%; }
.jj-family-active { font-size: 1.2rem; font-weight: bold; }
/* Sanitized Lesson HTML omits Bootstrap buttons/IDs. Keep every content section readable. */
.jj-family .accordion-collapse, .jj-family .collapse { display: block !important; height: auto !important; }
.jj-family-nav { display: flex; flex-wrap: wrap; gap: .5rem; padding: .5rem 1rem; background: #fbf7ef; }
.jj-family-nav a, .jj-dashboard-tab { display: inline-block; padding: .7rem 1rem; min-height: 44px; color: #173e35; }
.jj-dashboard-tab { border: 1px solid #2f695c; border-radius: .4rem; background: #fbf7ef; margin: .3rem; }
.jj-dashboard-tab[aria-pressed="true"] { background: #2f695c; color: white; }
.jj-dashboard-tab:focus-visible, .jj-family-nav a:focus-visible { outline: 3px solid #865012; outline-offset: 2px; }
/* Replace the legacy injected navigation, including its invalid site-course link. */
nav[aria-label="Joyful Journeys family navigation"] { display: none; }
/* The administration index needs its category tabs even when parent navigation is simplified. */
.jj-admin-wayfinding { margin: 1rem 0; padding: .75rem 1rem; background: #f6f7f1; border-radius: .5rem; }
.jj-admin-wayfinding .breadcrumb { display: flex !important; flex-wrap: wrap; margin: .75rem 0 0; }
.jj-promotion-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.jj-promotion-filter label { margin: 0; }
.jj-staff-dashboard-note { margin: 1rem; }
@media screen {
    body#page-admin-search #region-main > .secondary-navigation {
        display: block !important;
        margin-bottom: 1rem;
    }
}
#dashboardtabcontainer label[hidden] { display: none !important; }
#page-my-index #adaptable-page-header-wrapper,
body[id^="page-local-jjcurriculum-family-"] #adaptable-page-header-wrapper { position: static !important; }
/* Let navigation and the normal-flow header take their actual height, including wrapping.
   Keep Adaptable's #page scroll container (and back-to-top), without a second body scrollbar. */
body[id^="page-local-jjcurriculum-family-"] { display: flex; flex-direction: column; }
body[id^="page-local-jjcurriculum-family-"] > .jj-family-nav { flex-shrink: 0; }
body[id^="page-local-jjcurriculum-family-"] #page-wrapper {
    display: flex; flex-direction: column; flex: 1; min-height: 0; height: auto !important;
}
body[id^="page-local-jjcurriculum-family-"] #adaptable-page-header-wrapper { flex-shrink: 0; }
body[id^="page-local-jjcurriculum-family-"] #page {
    flex: 1; min-height: 0; height: auto !important; margin-top: 0 !important;
    /* The theme also sets overflow:visible inline after mobile initialization. */
    overflow: auto !important;
}
@media (max-width: 48rem) {
    .jj-family { padding: .5rem; }
    .jj-family table:not(.jj-calendar-grid), .jj-family table:not(.jj-calendar-grid) tbody,
    .jj-family table:not(.jj-calendar-grid) tr, .jj-family table:not(.jj-calendar-grid) td { display: block; width: 100% !important; height: auto !important; }
    .jj-family * { max-width: 100%; overflow-wrap: anywhere; }
    .jj-family img { height: auto; }
    #page-my-index #page-header #logo,
    body[id^="page-local-jjcurriculum-family-"] #page-header #logo { max-height: 90px; width: auto; }
}

/* Native course completion belongs to the parent account, not the selected child. */
#page-local-jjcurriculum-family-lesson #local-courseprogresslite,
#page-local-jjcurriculum-family-course #local-courseprogresslite { display: none !important; }

/* Family usability additions use the established palette and native browser controls. */
.jj-family a.jj-family-primary { display: inline-block; padding: .75rem 1rem; min-height: 44px;
    background: #2f695c; color: #fff; border-radius: .45rem; margin: .5rem 0; }
.jj-family button.jj-family-secondary { background: #fbf7ef; color: #173e35; margin: .5rem; }
.jj-family-summary { margin: 1rem 0; padding: 1rem; background: #fbf7ef; border-radius: .5rem; }
.jj-family progress { width: 100%; height: 1rem; accent-color: #2f695c; }
.jj-family-filters { margin: 1.5rem 0; padding: 1rem; border: 1px solid #d8cbb8; border-radius: .5rem; }
.jj-family-filters > a { display: inline-block; padding: .75rem; min-height: 44px; }
.jj-family-badge { display: inline-block; padding: .35rem .65rem; border-radius: .3rem;
    background: #e4eddf; color: #173e35; margin-bottom: .75rem; }
.jj-family-course { margin-bottom: .5rem; }
.jj-family-pagination { align-items: center; justify-content: space-between; padding: .5rem 0; }
.jj-family-pagination span { font-weight: 600; }
.jj-family-result-count { color: #4e645b; margin: .75rem 0; }
.jj-family-results, .jj-family-card[id] { scroll-margin-top: 1rem; }

/* Recognised legacy journey introductions: retain the artwork and lesson wording. */
.jj-family table.jj-journey-intro {
    display: grid; grid-template-columns: minmax(9rem, 13rem) minmax(0, 1fr);
    gap: 1rem 2rem; align-items: center; width: 100% !important; height: auto !important;
    padding: 1.75rem !important; margin: 1rem 0 1.5rem; border: 1px solid #d7e3d2 !important;
    border-radius: 1rem !important; background: #fdfcf8; box-shadow: 0 3px 12px #173e3508;
}
.jj-family .jj-journey-intro > colgroup { display: none; }
.jj-family .jj-journey-intro > tbody, .jj-family .jj-journey-intro > tbody > tr { display: contents; }
.jj-family .jj-journey-intro td { width: auto !important; height: auto !important; border: 0 !important; padding: 0 !important; }
.jj-family .jj-journey-intro td[hidden] { display: none !important; }
.jj-family .jj-journey-art { grid-column: 1; grid-row: 1 / span 2; }
.jj-family .jj-journey-art img { display: block; width: 100%; max-width: 13rem; height: auto; margin: auto !important; border-radius: .75rem; }
.jj-family .jj-journey-title { grid-column: 2; grid-row: 1; align-self: end; }
.jj-family .jj-journey-title :is(h2, h3) { margin: 0; font-size: 1.6rem; line-height: 1.25; }
.jj-family .jj-journey-title strong { color: #173e35 !important; }
.jj-family .jj-journey-intro .jj-journey-goals {
    grid-column: 2; grid-row: 2; align-self: start; background: #edf3e9 !important;
    border-radius: .75rem; padding: 1rem 1.25rem !important; text-align: left !important;
    color: #173e35; font-size: 1rem; line-height: 1.65;
}
.jj-family .jj-journey-goals :is(p, span, strong, li) { color: #173e35 !important; }
.jj-family .jj-journey-goals p { margin: 0; }
.jj-family .jj-journey-goals ul { margin: 0; padding-left: 1.15rem; }
.jj-family .jj-journey-goals li + li { margin-top: .5rem; }
.jj-family .jj-journey-goals li::marker { color: #2f695c; }
.jj-family .jj-journey-goals strong { color: #a34700 !important; }
.jj-family-lesson .jj-lesson-hearts { list-style-type: '\2665  '; padding-left: 1.5rem; }
.jj-family-lesson .jj-lesson-hearts li::marker { font-family: Arial, sans-serif; color: inherit; }
.jj-family-lesson .accordion-body hr { opacity: 1; margin: 1rem 0; }
.jj-family-lesson .jj-activity-number { width: auto; height: 30px; vertical-align: middle; margin-left: .15em; }
@media (max-width: 40rem) {
    .jj-family table.jj-journey-intro { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1.25rem !important; }
    .jj-family .jj-journey-art { grid-column: 1; grid-row: 1; }
    .jj-family .jj-journey-art img { max-width: 9rem; }
    .jj-family .jj-journey-title { grid-column: 1; grid-row: 2; }
    .jj-family .jj-journey-title :is(h2, h3) { font-size: 1.35rem; }
    .jj-family .jj-journey-intro .jj-journey-goals { grid-column: 1; grid-row: 3; padding: 1rem !important; }
}
.jj-family-card li { margin: .5rem 0; }
.jj-family-card li .jj-family-badge { font-size: .85rem; margin: .25rem 0; }
.jj-family summary { cursor: pointer; padding: .75rem 0; min-height: 44px; font-weight: 600; }
.jj-family details[open] summary { margin-bottom: .75rem; }
.jj-family label.jj-family-choice { display: flex; align-items: center; gap: .75rem; padding: .85rem;
    min-height: 48px; margin: .5rem 0; border: 1px solid #d8cbb8; border-radius: .4rem; cursor: pointer; }
.jj-family-choice input[type="radio"] { float: none; margin: 0; flex: 0 0 auto; width: 1.15rem; height: 1.15rem; }
.jj-family-choice:focus-within { outline: 3px solid #865012; outline-offset: 2px; }
#jj-reflection { scroll-margin-top: 6rem; }

/* Override Adaptable's link pseudo-classes inside the family interface only. */
body[id^="page-local-jjcurriculum-family-"] .jj-family a:link,
body[id^="page-local-jjcurriculum-family-"] .jj-family a:visited,
.jj-family-nav a:link, .jj-family-nav a:visited { color: #194f43; }
body[id^="page-local-jjcurriculum-family-"] .jj-family a.jj-family-primary,
body[id^="page-local-jjcurriculum-family-"] .jj-family nav a[aria-current="page"] { color: #fff; }
.jj-family-card > a { display: inline-block; padding: .75rem 0; min-height: 44px; }
.jj-family .jj-family-error { color: #8a2525; font-weight: 600; margin-top: -.5rem; }
.jj-family [aria-invalid="true"] { border: 2px solid #8a2525; }
.jj-family a.jj-family-cancel { display: inline-block; padding: .75rem 1rem; min-height: 44px;
    border: 1px solid #2f695c; border-radius: .45rem; margin: .5rem 0; }

/* A compact brand row and softer surfaces, within the existing cream/sage palette. */
.jj-family-nav { align-items: center; gap: 1.25rem; padding: .45rem clamp(1rem, 3vw, 2.5rem);
    border-bottom: 1px solid #e8e0d3; }
.jj-family-nav .jj-family-brand { display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; padding: 0; min-height: 56px; border-radius: .5rem; }
.jj-family-brand img { display: block; width: 56px; height: 56px; object-fit: contain; }
.jj-family-nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; min-width: 0; }
.jj-family-nav-links a { border-radius: .5rem; text-decoration: none; font-weight: 500;
    line-height: 1.4; padding: .7rem 1rem; }
.jj-family-nav-links a:hover { background: #e8efdf; text-decoration: none; }
.jj-family-nav-links a:focus-visible { background: #e8efdf; }
/* The brand now appears above the sage bar. Keep its search control in that bar too. */
#page-my-index #page-header,
body[id^="page-local-jjcurriculum-family-"] #page-header { display: none !important; }
#page-my-index #adaptable-user-nav .navbarsearchsocial,
body[id^="page-local-jjcurriculum-family-"] #adaptable-user-nav .navbarsearchsocial { display: block !important; }
.jj-family { margin: .5rem auto; padding: 1rem; line-height: 1.65; }
.jj-family > h1, .jj-family-intro > h1 { font-size: clamp(1.8rem, 3vw, 2.25rem);
    line-height: 1.2; letter-spacing: -.025em; color: #173e35; margin: 0 0 1rem; }
.jj-family-intro { padding: .25rem 0 1.25rem; margin-bottom: 1.25rem; border-bottom: 1px solid #e8e0d3; }
.jj-family-intro > p { max-width: 72ch; color: #4e645b; margin-bottom: 1rem; }
.jj-family-card, .jj-family-switch, .jj-family-filters { border-color: #e1dfd4; border-radius: .75rem;
    padding: 1.25rem 1.5rem; background: #fcfaf5; box-shadow: 0 2px 8px rgb(23 62 53 / 3%); }
.jj-family-card h2 { color: #244f43; font-size: 1.25rem; line-height: 1.4; margin-bottom: .75rem; }
.jj-family-guide > .jj-family-card:not(details) { border-left: 3px solid #aac9a0; }
.jj-family-guide > h2 { font-size: 1.5rem; margin: 2rem 0 1rem; color: #244f43; }
.jj-family-guide details.jj-family-card { background: #fff; margin: .65rem 0; padding: .35rem 1.25rem; }
.jj-family-guide details[open] { border-color: #aac9a0; background: #fcfaf5; }
.jj-family-guide details summary { line-height: 1.5; }
.jj-family-guide details p { padding-bottom: .5rem; }
.jj-family a.jj-family-primary { border-radius: .55rem; padding: .7rem 1.25rem;
    font-weight: 600; text-decoration: none; box-shadow: 0 2px 4px rgb(23 62 53 / 10%); }
.jj-family a.jj-family-primary:hover { background: #245548; color: #fff; }
body[id^="page-local-jjcurriculum-family-"] #page-second-header { padding-top: 0 !important;
    padding-bottom: 0 !important; }
body[id^="page-local-jjcurriculum-family-"] #page-content { margin-top: 0; }
/* Adaptable's negative footer margins exceed its own scroll container by 20px. */
body[id^="page-local-jjcurriculum-family-"] #page-footer { margin-left: 0 !important; margin-right: 0 !important; }
/* Every page with the shared navigation must budget its actual (possibly wrapped)
   height. Otherwise Adaptable adds a full-height wrapper below it and creates a
   second scrollbar on dashboards, courses and native activities. */
body:has(> .jj-family-nav) { display: flex; flex-direction: column; }
body:has(> .jj-family-nav) > nav { flex-shrink: 0; }
body:has(> .jj-family-nav) #page-wrapper { display: flex; flex-direction: column;
    flex: 1; min-height: 0; height: auto !important; }
body:has(> .jj-family-nav) #adaptable-page-header-wrapper { position: static !important; flex-shrink: 0; }
body:has(> .jj-family-nav) #page-wrapper #page { flex: 1; min-height: 0; height: auto !important;
    margin-top: 0 !important; overflow: auto !important; }
body:has(> .jj-family-nav) #page-footer { margin-left: 0 !important; margin-right: 0 !important; }
/* On short landscape screens, let the entire family page scroll, including its
   header and child selector, instead of reserving most of the screen for them. */
@media screen and (orientation: landscape) and (max-height: 600px) {
 html:has(body > .jj-family-nav),
 body:has(> .jj-family-nav),
 body:has(> .jj-family-nav) #page-wrapper,
 body:has(> .jj-family-nav) #page-wrapper #page {
     display:block !important; height:auto !important; min-height:0 !important;
     max-height:none !important; overflow:visible !important;
 }
 body:has(> .jj-family-nav) > .jj-family-nav,
 body:has(> .jj-family-nav) > .jj-global-child-switch {
     position:static !important;
 }
 body:has(> .jj-family-nav) .jj-course-outline { position:static; max-height:240px; }
}
/* Native account forms use 12px Bootstrap gutters; Adaptable's 8px padding
   leaves their rows outside the main region. Keep the gutters inside it. */
body:has(> .jj-family-nav) #region-main:not(:has(.jj-family)) { padding-inline:12px; }
body:has(> .jj-family-nav) .row:has(> #page-second-header) { margin-inline:0; }
/* Account pages already have the shared header; avoid stacking Adaptable's
   secondary-header padding and mobile content margin above their headings. */
body:is([id^="page-user-"], #page-login-change_password, #page-message-notificationpreferences):has(> .jj-family-nav) #page-second-header {
    padding-block:0!important;
}
body:is([id^="page-user-"], #page-login-change_password, #page-message-notificationpreferences):has(> .jj-family-nav) #page-content {
    margin-top:0; padding-top:12px;
}
/* Keep all notification channels operable on a narrow phone, including the
   configuration tooltips in the last column. */
body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table { width:100%; table-layout:fixed; }
body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table th,
body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table td { overflow-wrap:anywhere; }
body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table th:first-child { width:40%; }
body#page-message-notificationpreferences:has(> .jj-family-nav) .hover-tooltip { left:auto; right:0; transform:none; max-width:calc(100vw - 48px); }
@media(max-width:575px) {
 body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table th,
 body#page-message-notificationpreferences:has(> .jj-family-nav) .preference-table td { padding:8px 4px; font-size:.8rem; }
}
@media (max-width: 48rem) {
    .jj-family-nav { gap: .65rem; padding: .45rem .85rem; flex-wrap: nowrap; }
    .jj-family-nav .jj-family-brand { min-height: 48px; }
    .jj-family-brand img { width: 48px; height: 48px; }
    .jj-family-nav-links { flex: 1; gap: 0; }
    .jj-family-nav-links a { padding: .65rem .6rem; font-size: .95rem; }
    .jj-family { padding: .75rem .25rem; }
    .jj-family-card, .jj-family-switch, .jj-family-filters { padding: 1rem; }
}

/* One global header; dashboard controls are a separate, quieter local level. */
.jj-family-nav-links a[aria-current="page"] { background: #e8efdf; color: #173e35;
    box-shadow: inset 0 -2px #2f695c; }
.jj-unified-header > .jj-family-nav { flex-wrap: nowrap; gap: 1.25rem; min-height: 76px;
    border-bottom: 3px solid #aac9a0; position: relative; z-index: 1030; }
.jj-unified-header .jj-family-nav-links { flex: 1; }
.jj-unified-header .jj-family-nav #header1 { flex: 0 0 auto; position: static;
    width: auto; background: transparent; border: 0; padding: 0; }
.jj-unified-header #header1 > .container { width: auto; max-width: none; padding: 0; margin: 0; }
.jj-unified-header #header1 .navbar { padding: 0; min-height: 48px; }
.jj-unified-header #header1 #adaptable-user-nav { flex-direction: row; gap: .15rem; }
.jj-unified-header #header1 .navbarsearchsocial { display: block !important; }
.jj-unified-header #header1 .nav-link { color: #244f43 !important; min-height: 44px;
    padding: .5rem; border-radius: .5rem !important; display: inline-flex; align-items: center;
    justify-content: center; text-decoration: none; }
.jj-unified-header #header1 .nav-link:hover, .jj-unified-header #header1 .nav-link:focus-visible {
    background: #e8efdf; }
.jj-unified-header #header1 .nav-link .afaicon { color: inherit; }
.jj-unified-header #header1 .dropdown-menu { width: min(18rem, calc(100vw - 2rem));
    min-width: 0; max-height: calc(100vh - 90px); overflow: auto; white-space: normal; }
.jj-unified-header #header1 .dropdown-menu a { display: block; white-space: normal;
    padding: .65rem 1rem; font-size: .95rem; }
.jj-unified-header #header1 .usertext { font-size: .9rem; }
.jj-unified-header #header1 .simplesearchform { position: relative; min-width: 44px; min-height: 44px; }
.jj-unified-header #header1 .simplesearchform > .collapse.show,
.jj-unified-header #header1 .simplesearchform > .collapsing { position: absolute;
    top: 100%; left: auto !important; right: 0; width: min(22rem, calc(100vw - 2rem)); background: #fff;
    padding: .75rem; border: 1px solid #d8cbb8; border-radius: .5rem;
    box-shadow: 0 4px 16px rgb(23 62 53 / 12%); z-index: 1; }
.jj-unified-header #header1 .searchform-navbar { width: 100%; }
.jj-unified-header #header1 .searchform-navbar .input-group { flex-wrap: nowrap; }
.jj-unified-header #header1 input[name="q"] { min-width: 0; width: 1%; flex: 1 1 0; }
.jj-unified-header #main-navbar[hidden], .jj-unified-header #main-navbar nav[hidden],
.jj-unified-header #page-header[hidden] { display: none !important; }
.jj-unified-header #main-navbar { border-bottom: 1px solid #e1dfd4; }
.jj-dashboard-heading { display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 1rem; margin: 1.25rem 0 1rem; }
.jj-dashboard-heading h1 { margin: 0; color: #173e35; font-size: clamp(1.65rem, 3vw, 2rem);
    line-height: 1.2; letter-spacing: -.025em; }
.jj-dashboard-heading .btn { background: #fcfaf5; border: 1px solid #d8cbb8;
    color: #244f43; border-radius: .5rem; min-height: 40px; padding: .5rem .85rem; }
.jj-dashboard-heading .btn:hover { background: #e8efdf; }
.jj-unified-header #dashboardtabcontainer > .jj-dashboard-tab { background: transparent;
    color: #4e645b; border: 0; border-bottom: 3px solid transparent; border-radius: 0;
    margin: 0 .75rem 0 0; padding: .75rem .25rem; font-weight: 500; }
.jj-unified-header #dashboardtabcontainer > .jj-dashboard-tab[aria-pressed="true"] {
    color: #173e35; border-bottom-color: #2f695c; }
.jj-unified-header #dashboardtabcontainer > .tab-panel { border-top: 1px solid #e1dfd4; }
@media (max-width: 61.99rem) {
    .jj-unified-header > .jj-family-nav { display: grid; grid-template-columns: auto 1fr;
        gap: .35rem .75rem; padding: .45rem .85rem; }
    .jj-unified-header .jj-family-brand { grid-column: 1; grid-row: 1; }
    .jj-unified-header .jj-family-nav #header1 { grid-column: 2; grid-row: 1; justify-self: end; }
    .jj-unified-header .jj-family-nav-links { grid-column: 1 / -1; grid-row: 2; gap: .25rem;
        border-top: 1px solid #e8e0d3; padding-top: .25rem; }
    .jj-unified-header #header1 .usertext { display: none; }
    .jj-unified-header #header1 .dropdown-toggle::after,
    .jj-unified-header #header1 b.caret { display: none; }
    .jj-unified-header #header1 #adaptable-user-nav { gap: 0; }
    .jj-unified-header #header1 #adaptable-user-nav > li { margin-right: 0 !important; }
    .jj-unified-header #header1 .simplesearchform { position: static; }
    .jj-unified-header #header1 .simplesearchform > .collapse.show,
    .jj-unified-header #header1 .simplesearchform > .collapsing { position: fixed;
        top: 64px; left: .85rem !important; right: .85rem; width: auto; }
    .jj-unified-header #header1 .dropdown-menu { width: min(16rem, calc(100vw - 3rem)); }
    .jj-unified-header [data-region="right-hand-drawer"] { max-width: 100%; }
    .jj-unified-header .jj-family-nav-links a { font-size: .9rem; padding: .65rem .55rem; }
    .jj-unified-header #dashboardtabcontainer > .jj-dashboard-tab { font-size: .9rem;
        margin-right: .6rem; padding: .65rem .1rem; }
}

/* Keep a meaningful native course title, but remove its duplicate logo/search row. */
.jj-unified-header #page-header #logo,
.jj-unified-header #page-header .headersearch,
.jj-unified-header #page-header .bd-highlight:has(> #logo) { display: none !important; }
.jj-unified-header #page-header { height: auto !important; min-height: 0; padding: .85rem 0; }
.jj-unified-header #page-header #headertitle { height: auto !important; padding: 0 !important; }
.jj-unified-header #page-header h1, .jj-unified-header #page-header #coursetitle {
    color: #173e35; font-size: 1.5rem; line-height: 1.25; margin: 0; }

/* Parent navigation: three destinations and a profile, with secondary tools in its menu. */
.jj-compact-header > .jj-family-nav { display: flex; min-height: 64px;
    padding: .35rem clamp(.85rem, 3vw, 2.5rem); gap: 1rem; border-bottom-width: 1px; }
.jj-compact-header .jj-family-nav .jj-family-brand { min-height: 44px; }
.jj-compact-header .jj-family-brand img { width: 44px; height: 44px; }
.jj-compact-header .jj-family-nav-links { border: 0; padding-top: 0; flex: 1;
    gap: .25rem; flex-wrap: wrap; min-width: 0; }
.jj-compact-header #header1 #adaptable-user-nav .navbarsearchsocial,
.jj-compact-header #header1 #nav-popover-container,
.jj-compact-header #header1 .navbar > .navbar-toggler { display: none !important; }
.jj-compact-header #header1 .usertext, .jj-compact-header #header1 b.caret,
.jj-compact-header #header1 .dropdown-toggle::after { display: none; }
.jj-compact-header #header1 .navbar { min-height: 44px; }
/* Also suppress the old menu toggle while clients refresh their JavaScript cache. */
.jj-compact-header #header1 .jj-profile-drawer { display: none !important; }
.jj-compact-header .jj-dashboard-heading [hidden] { display: none !important; }
/* Hide auto-generated duplicates only when the equivalent configured menu link exists. */
.jj-compact-header .usermenu .dropdown-menu:has(a:not([data-title])[href*="/user/profile.php"])
    a[data-title="profile,moodle"],
.jj-compact-header .usermenu .dropdown-menu:has(a:not([data-title])[href*="/calendar/view.php"])
    a[data-title="calendar,core_calendar"] { display: none !important; }
.jj-compact-header .jj-family .jj-family-section-nav { gap: .25rem .85rem;
    border-bottom: 1px solid #e1dfd4; margin-bottom: 1rem; }
body.jj-compact-header .jj-family .jj-family-section-nav a {
    padding: .6rem .1rem; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
    background: transparent; color: #4e645b; text-decoration: none; }
body.jj-compact-header .jj-family .jj-family-section-nav a[aria-current="page"] {
    color: #173e35; border-bottom-color: #2f695c; }
@media (max-width: 39.99rem) {
    .jj-compact-header > .jj-family-nav { display: grid; grid-template-columns: auto 1fr;
        gap: .1rem .75rem; padding: .25rem .85rem; }
    .jj-compact-header .jj-family-brand img { width: 40px; height: 40px; }
    .jj-compact-header .jj-family-nav-links { grid-column: 1 / -1; grid-row: 2;
        border: 0; padding: 0; gap: .25rem; }
    .jj-compact-header .jj-family-nav-links a { padding: .55rem .65rem; }
}

/* Source: Canva page 3. Original fonts/icons, with responsive and support-based adaptations. */
@font-face { font-family:JJMontserrat; src:url('../pix/canva/Montserrat-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:JJMontserrat; src:url('../pix/canva/Montserrat-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }
.jj-dashboard-shell { font-family:JJMontserrat,Arial,sans-serif; background:#fff; gap:22px; }
.jj-dashboard-sidebar { background:#fdfaf7; padding:16px 12px; }
.jj-family .jj-dashboard-sidebar a { display:flex; align-items:center; gap:10px; background:#f9f4fe; border-radius:5px; font-size:.8rem; }
.jj-sidebar-icon { flex:0 0 22px; width:22px; height:22px; object-fit:contain; }
.jj-dashboard-main > h2,.jj-dashboard-main > h1 { color:#71866c; font-weight:700; }
.jj-dashboard-brand { color:#c54b13; text-transform:uppercase; }
.jj-dashboard-stat { position:relative; min-height:110px; padding:16px 12px 16px 76px; border:1px solid #fceee7; background:#fffaf7; color:#b74417; }
.jj-dashboard-stat:nth-child(2) { border-color:#e8ebfc; background:#f8f9ff; color:#2c58ab; }
.jj-dashboard-stat:nth-child(3) { border-color:#edf2e6; background:#f8faf5; color:#4d7144; }
.jj-stat-icon { position:absolute; left:12px; top:25px; width:50px; height:50px; object-fit:contain; }
.jj-panel-icon { width:28px; height:28px; object-fit:contain; vertical-align:middle; margin-right:10px; }
.jj-dashboard-stat h3 { line-height:1.5; }
.jj-dashboard-panel { border-color:#f6e7df; box-shadow:none; border-radius:10px; }
.jj-dashboard-panel h3 { color:#657c5e; }
.jj-dashboard-pod { border:0; background:#faf4fd; }
.jj-dashboard-pod h4 { color:#607c59; }
.jj-dashboard-pod:nth-child(even) h4 { color:#af405c; }
.jj-dashboard-pods { grid-template-columns:repeat(4,minmax(0,1fr)); }
.jj-dashboard-columns { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); }
.jj-library-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.jj-library-grid h2 { font-size:1.05rem; line-height:1.5; overflow-wrap:anywhere; }
.jj-library-filters { display:grid; grid-template-columns:1fr 2fr; align-items:center; gap:12px; padding:20px; }
.jj-library-filters input,.jj-library-filters select { width:100%; min-width:0; box-sizing:border-box; }
.jj-family-area .jj-dashboard-main h1 { font-size:1.65rem; }
.jj-family-area .jj-dashboard-main { overflow-wrap:anywhere; }
.jj-family-messages { height:650px; max-height:75vh; min-height:450px; }
.jj-family-messages .message-app { height:100%; }
@media(max-width:700px) {
 .jj-family-messages .message-app > .container-fluid > .row { display:block; }
 .jj-family-messages .message-app > .container-fluid > .row > div { width:100%; height:50%; }
 .jj-family-messages .conversationcontainer { border-bottom:1px solid #ddd; overflow:auto; }
}
.jj-family-area #userfilesform { font-family:Arial,sans-serif; }
@media(max-width:1200px) { .jj-dashboard-pods { grid-template-columns:repeat(2,minmax(0,1fr)); } .jj-stat-icon { width:30px; height:30px; left:10px; } .jj-dashboard-stat { padding-left:48px; } }
@media(max-width:1100px) { .jj-dashboard-columns { grid-template-columns:1fr; } }
@media(max-width:700px) { .jj-dashboard-sidebar { padding:8px 0; background:#fff; } .jj-library-grid { grid-template-columns:1fr; } .jj-stat-icon { position:static; width:28px; height:28px; margin-bottom:8px; } .jj-dashboard-stat { padding:10px; } .jj-library-filters { grid-template-columns:1fr; padding:12px; } }
@media(max-width:380px) { .jj-dashboard-pods { grid-template-columns:1fr; } }
@media print {
 @page jj-lesson-guide { size:A4 portrait; margin:12mm; }
 body#page-local-jjcurriculum-family-lesson { page:jj-lesson-guide; }
 /* Override the screen shell's nested fixed-height flex/scroll containers. */
 html:has(body#page-local-jjcurriculum-family-lesson),
 body#page-local-jjcurriculum-family-lesson,
 body#page-local-jjcurriculum-family-lesson #page-wrapper,
 body#page-local-jjcurriculum-family-lesson #page-wrapper #page {
     display:block !important; height:auto !important; min-height:0 !important;
     max-height:none !important; overflow:visible !important; background:white !important;
 }
 body:has(.jj-family-lesson) .jj-family-nav,body:has(.jj-family-lesson) #page-header,body:has(.jj-family-lesson) #page-footer,
 .jj-family-lesson .jj-lesson-reflection,.jj-family-lesson nav,.jj-family-lesson form,.jj-family-lesson #jj-reflection,.jj-family-lesson #jj-print-guide { display:none !important; }
 .jj-family-lesson { max-width:none; padding:0; margin:0; }
 body#page-local-jjcurriculum-family-lesson #maincontainer { width:100%; max-width:none; padding:0; margin:0; }
 body#page-local-jjcurriculum-family-lesson #page-content { display:block; margin:0; padding:0; }
 .jj-family-lesson table { max-width:100% !important; }
 .jj-family-lesson h1,.jj-family-lesson h2,.jj-family-lesson h3 { break-after:avoid; }
 .jj-family-lesson img { max-width:100%; }
}

.jj-family-lesson { font-family:JJMontserrat,Arial,sans-serif; }
.jj-dashboard-brand { text-transform:uppercase;border-bottom:3px solid #76916d;padding-bottom:12px; }
.jj-dashboard-brand.jj-brand-academic { color:#31538a;border-color:#8caddf; }
.jj-dashboard-brand.jj-brand-holistic { color:#795335;border-color:#d7b68a; }
.jj-dashboard-brand.jj-brand-starter { color:#6a467c;border-color:#c5a9d8; }
.jj-dashboard-pod { position:relative;--jj-pod-colour:#386252; }
.jj-dashboard-pod.jj-pod-cre { --jj-pod-colour:#704b8a; }
.jj-dashboard-pod.jj-pod-sew { --jj-pod-colour:#a04260; }
.jj-dashboard-pod.jj-pod-phy { --jj-pod-colour:#236880; }
.jj-dashboard-pod.jj-pod-lif { --jj-pod-colour:#726027; }
.jj-dashboard-pod.jj-pod-res { --jj-pod-colour:#496836; }
.jj-dashboard-pod.jj-pod-giv { --jj-pod-colour:#99501f; }
.jj-dashboard-pod.jj-pod-aca { --jj-pod-colour:#385e9a; }
.jj-dashboard-pod .jj-pod-marker { position:absolute;top:8px;left:8px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--jj-pod-colour);color:white;border:2px solid white;font-size:18px; }
.jj-dashboard-pod h4,.jj-dashboard-pod:nth-child(even) h4 { color:var(--jj-pod-colour); }
.jj-dashboard-pod .jj-pod-age { font-size:.8rem;margin:4px 0 12px;color:#4b554b; }
.jj-family .jj-calendar-times { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:12px; }
.jj-calendar-times label:nth-of-type(2) { grid-column:2; grid-row:1; }
.jj-calendar-times input { min-width:0; }
.jj-calendar-event-time { color:#2f695c; font-weight:600; }
.jj-family-lesson .jj-lesson-section { margin:12px 0; border:1px solid #a8c8a0; border-radius:12px; background:#fff; }
.jj-family-lesson .jj-lesson-section > summary { padding:14px 18px; background:#edf4e9; color:#28584d; cursor:pointer; border-radius:12px; }
.jj-lesson-section > summary::marker { color:#a34700; }
.jj-family-lesson .jj-lesson-section > summary h2,.jj-family-lesson .jj-lesson-section > summary h3 { display:inline; font-size:1.15rem !important; line-height:1.4; margin:0 !important; }
.jj-family-lesson .jj-section-repeat { display:none !important; }
.jj-family-lesson .jj-lesson-section .accordion-body { padding:12px; }
.jj-family-lesson .jj-lesson-section .accordion-body > table { border:0 !important; padding:0 !important; height:auto !important; }
.jj-family-lesson .jj-lesson-section td { padding:10px !important; }
.jj-offer-page { font-family:JJMontserrat,Arial,sans-serif; max-width:1100px; margin:auto; }
/* Adaptable's negative footer margins overflow this full-width public page. */
body#page-local-jjcurriculum-journey #page-footer { margin-left:0 !important; margin-right:0 !important; width:auto !important; }
.jj-offer-back { display:inline-block; margin-bottom:20px; }
.jj-offer-hero { display:grid; grid-template-columns:minmax(0,1fr) 283px; gap:28px; align-items:center; padding:28px; border-radius:20px; background:#edf4e9; }
.jj-offer-hero h1 { font-size:clamp(1.8rem,4vw,2.8rem); color:#28584d; }
.jj-offer-hero img { width:100%; height:auto; }
.jj-offer-eyebrow { color:#a34700; font-weight:700; }
.jj-offer-columns { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin:28px 0; }
.jj-offer-page h2 { font-size:1.4rem; line-height:1.5; }
.jj-offer-includes li { padding:8px 0; }
.jj-offer-price { padding:16px 20px; margin:12px 0; border:1px solid #e4c994; border-radius:14px; background:#fff8ea; }
.jj-offer-price h3 { font-size:1rem; margin:0; }
.jj-offer-price p { margin:6px 0; }
.jj-offer-price .jj-offer-amount { font-size:2rem; font-weight:700; color:#28584d; }
.jj-offer-next { padding:24px; border-radius:16px; background:#eff3fb; }
.jj-offer-reference { margin:16px 0 0; font-size:.9rem; }
.jj-offer-discounts { margin:24px 0; }
.jj-offer-discounts summary { cursor:pointer; min-height:44px; font-weight:600; }
@media(max-width:700px) {
 .jj-offer-hero,.jj-offer-columns { grid-template-columns:1fr; gap:16px; }
 .jj-offer-hero { padding:18px; }
 .jj-offer-hero img { max-width:283px; justify-self:center; }
 .jj-calendar-times { font-size:.85rem; }
 .jj-family-lesson .jj-lesson-section td { padding:6px !important; }
}
@media print {
 .jj-family-lesson .jj-lesson-section { border:0; }
 .jj-family-lesson .jj-lesson-section > summary { break-after:avoid; }
 .jj-family-lesson .jj-lesson-section > summary::marker { content:''; }
 .jj-family-lesson .jj-lesson-section .accordion-body { padding:0; }
}

.jj-family input[type="checkbox"] { width:20px;min-height:20px;height:20px;display:inline-block;vertical-align:middle;margin-right:6px; }
.jj-dashboard-navigation { min-width:0;background:#fdfaf7; }
.jj-dashboard-mobile-brand { display:none; }
@media(max-width:700px) {
 .jj-dashboard-navigation { background:#fff; }
 .jj-dashboard-mobile-brand { display:block;text-align:left;margin:0 0 8px;padding-bottom:8px; }
}

/* Shared dashboard/Courses catalogue: eight Pods in three aligned desktop rows. */
.jj-family .jj-dashboard-pods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 16px;
    margin-top: 20px;
}
.jj-family .jj-dashboard-pod {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    min-width: 0;
    padding-bottom: 16px;
    margin-bottom: 8px;
    border-radius: 12px;
}
.jj-family .jj-dashboard-pod > img { border-radius: 12px 12px 0 0; }
.jj-family .jj-dashboard-pod .jj-pod-marker { z-index: 1; }
.jj-family .jj-dashboard-pod .jj-pod-title {
    font-size: 1rem;
    line-height: 1.35;
    color: var(--jj-pod-colour);
    padding: 4px 12px 0;
    margin: 0;
    overflow-wrap: anywhere;
}
.jj-family .jj-dashboard-pod .jj-pod-age,
.jj-family .jj-dashboard-pod .jj-pod-access { padding: 0 12px; margin: 0; }
.jj-family .jj-dashboard-pod details { padding: 0 12px; align-self: start; }
.jj-family .jj-dashboard-pod .jj-pod-access { color: #505650; font-size: .85rem; line-height: 1.45; }
.jj-family .jj-dashboard-pod.jj-pod-unavailable { background: #eceeec; --jj-pod-colour: #535953; }
.jj-family .jj-dashboard-pod.jj-pod-unavailable > img { filter: grayscale(1); }
@media (max-width: 900px) {
    .jj-family .jj-dashboard-pods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .jj-family .jj-dashboard-pods { grid-template-columns: minmax(0, 1fr); }
}

/* Course and lesson pages share a wide frame, independent of Adaptable's narrow setting. */
@media screen {
    body#page-local-jjcurriculum-family-lesson #maincontainer,
    body#page-local-jjcurriculum-family-course #maincontainer {
        width: calc(100% - 48px); max-width: 1600px; margin-inline: auto; padding-inline: 0;
    }
    body#page-local-jjcurriculum-family-lesson #page-content,
    body#page-local-jjcurriculum-family-course #page-content { margin-inline: 0; }
    .jj-family-course-view { max-width: none; margin-inline: 0; padding-inline: 0; }
}
.jj-family-course-view { display: grid; grid-template-columns: minmax(180px,220px) minmax(0,1fr); gap: clamp(20px,2.5vw,40px); }
.jj-course-content { min-width: 0; }
.jj-course-outline { align-self: start; position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; padding: 16px; background: #f2f6ee; border-radius: 12px; }
.jj-course-outline h2 { font-size: 1.05rem; line-height: 1.4; }
.jj-course-outline ul { list-style: none; padding: 0; margin: 12px 0 0; }
.jj-family .jj-course-outline a { display: block; padding: 10px; margin: 2px 0; font-size: .9rem; overflow-wrap: anywhere; }
.jj-family .jj-course-outline a[aria-current=page] { background: #dce8d5; font-weight: 700; border-radius: 8px; }
.jj-course-introduction img,.jj-course-introduction video,.jj-course-introduction iframe { max-width: 100%; }
@media (max-width: 900px) {
    .jj-family-course-view { grid-template-columns: minmax(0,1fr); gap: 18px; }
    .jj-course-outline { position: static; max-height: 240px; }
}
@media screen and (max-width: 600px) {
    body#page-local-jjcurriculum-family-lesson #maincontainer,
    body#page-local-jjcurriculum-family-course #maincontainer { width: 100%; }
}
@media print {
    .jj-family-course-view { display: block; }
    .jj-course-outline { display: none !important; }
}
.jj-family .jj-course-outline .jj-course-next { background: #30675c; color: #fff; border-radius: 8px; margin: 12px 0; font-size: .8rem; font-weight: 700; }
.jj-course-outline summary { font-size: .9rem; font-weight: 600; cursor: pointer; padding: 8px 0; }
.jj-family .jj-course-outline details { padding: 0; }
/* Override the general navigation button styles for this compact lesson list. */
.jj-family nav.jj-course-outline { display: block; }
.jj-family nav.jj-course-outline a { border: 0; border-radius: 6px; text-decoration: none; }
body[id^="page-local-jjcurriculum-family-"] .jj-family nav.jj-course-outline a[aria-current="page"] { color: #25432a; }
body[id^="page-local-jjcurriculum-family-"] .jj-family nav.jj-course-outline a.jj-course-next { color: #fff; }
.jj-family nav.jj-course-outline a:hover { text-decoration: underline; }
.jj-family nav.jj-course-outline a:focus-visible { outline: 3px solid #865012; outline-offset: 2px; }
/* Connected family experience, September 2026. */
.jj-global-child-switch {display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px max(24px,calc((100% - 1560px)/2));background:#f5f7f1;border-bottom:1px solid #d9e3d2;flex-shrink:0;}
.jj-global-child-switch label {margin:0;color:#234b41;font-weight:600;}
.jj-global-child-switch select {max-width:25rem;min-width:0;flex:1 1 160px;padding:8px;border:1px solid #a8bba2;border-radius:8px;}
.jj-global-child-switch button {padding:8px 16px;border:1px solid #376b5e;border-radius:8px;background:white;color:#244f43;}
.jj-has-child-switch .jj-family-switch {display:none !important;}
.jj-canva-dashboard .jj-family-section-nav {display:flex !important;}
.jj-family-section-nav {display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 26px;}
.jj-family-section-nav a {padding:10px 18px;border-radius:24px;text-decoration:none;background:#f4f6ef;color:#305548;}
.jj-family-section-nav a[aria-current=page] {background:#2e6659;color:white;}
.jj-finder {display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end;margin:24px 0;}
.jj-finder > div {min-width:0;}.jj-finder select,.jj-finder input {width:100%;max-width:100%;min-width:0;}
.jj-course-context {font-size:.9rem;color:#65795e;margin-bottom:12px;}
.jj-course-progress {padding:18px 22px;margin:20px 0 26px;background:#f0f5ec;border-radius:14px;display:grid;gap:8px;}
.jj-course-progress h2 {font-size:1.15rem;margin:0;}.jj-course-progress p {margin:0;}.jj-course-progress progress {width:100%;height:9px;accent-color:#4e795c;}
.jj-lesson-card-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:20px;}
.jj-lesson-card {display:flex;flex-direction:column;border:1px solid #dbe4d4;border-radius:16px;overflow:hidden;background:#fff;text-decoration:none!important;color:#234b41!important;padding:0;min-width:0;}
.jj-lesson-card:hover {border-color:#52734b;box-shadow:0 4px 16px #234b4112;}.jj-lesson-card:focus-visible {outline:3px solid #c87329;outline-offset:4px;}
.jj-lesson-card>img {height:155px;width:100%;object-fit:contain;background:#faf8f2;padding:10px;}.jj-lesson-card-copy {padding:22px;}.jj-lesson-card h2,.jj-lesson-card h3 {font-size:1.2rem;}.jj-lesson-card-copy>span {font-weight:600;text-decoration:underline;}
.jj-lesson-card>.jj-course-context,.jj-lesson-card>h2,.jj-lesson-card>p,.jj-lesson-card>span {margin:16px 20px 0;}.jj-lesson-card>span {margin-bottom:20px;}
.jj-reflection-actions {display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;}.jj-reflection-actions a {padding:10px 16px;background:#eaf1e5;border-radius:8px;}
.jj-overview {max-width:1400px;margin:0 auto;}.jj-overview .jj-dashboard-panel {margin:24px 0;}.jj-continue-course {display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e4e9df;padding:18px 0;}.jj-continue-course span {font-size:.9rem;}
.jj-dashboard-stat>strong {font-size:2rem;color:#396048;}.jj-overview>details a {margin-right:20px;}
.jj-calendar-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;}
.jj-calendar-event {border-left:4px solid currentColor;border-bottom:1px solid #e2e7df;padding:15px;margin:12px 0;}.jj-calendar-event h4 {font-size:1rem;}.jj-calendar-event button {margin-right:10px;}
.jj-event-dot {position:relative;display:inline-block;padding:1px 3px !important;min-height:0!important;text-decoration:none;}.jj-event-learning {color:#4f7548!important;}.jj-event-outing {color:#346aa5!important;}.jj-event-family {color:#89599c!important;}.jj-event-reminder {color:#a96618!important;}
.jj-event-tooltip {display:none;position:absolute;bottom:100%;left:0;z-index:15;width:max-content;max-width:200px;padding:8px;border-radius:6px;background:#234b41;color:white;font-size:.8rem;white-space:normal;box-shadow:0 2px 10px #0002;}
.jj-event-dot:hover .jj-event-tooltip,.jj-event-dot:focus .jj-event-tooltip {display:block;}
.jj-calendar-dialog {border:1px solid #cddbc6;border-radius:18px;padding:28px;max-width:min(560px,calc(100vw - 24px));max-height:90vh;overflow:auto;}.jj-calendar-dialog::backdrop {background:#14282077;}.jj-calendar-dialog form {display:grid;gap:12px;}.jj-calendar-dialog input,.jj-calendar-dialog select {max-width:100%;}.jj-calendar-dialog h2 {font-size:1.5rem;}
.jj-tracker-grid:has(.jj-tracker-row) {display:block;}.jj-tracker-row {margin:16px 0;}.jj-tracker-row>summary {display:list-item;cursor:pointer;padding:12px;}.jj-tracker-row>summary>strong {display:inline-block;min-width:24%;}.jj-tracker-row>summary>span {display:inline-block;margin:4px 16px 4px 0;font-size:.85rem;}.jj-tracker-row .jj-tracker-visual {display:none;}
.jj-support-columns {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:16px 0;border-bottom:1px solid #e2e8de;}.jj-support-columns h5 {font-size:1rem;}.jj-support-explanation {font-size:.82rem;color:#56675a;}.jj-support-help {display:inline-flex;border:1px solid;border-radius:50%;width:19px;height:19px;align-items:center;justify-content:center;margin:0 5px;font-size:.8rem;}
.jj-support-columns > :only-child {grid-column:1 / -1;}
@media(max-width:900px) {.jj-finder {grid-template-columns:repeat(2,minmax(0,1fr));}.jj-calendar-layout {grid-template-columns:1fr;}.jj-support-columns {grid-template-columns:1fr;}.jj-continue-course {flex-direction:column;gap:8px;}}
@media(max-width:560px) {.jj-lesson-card-grid,.jj-finder {grid-template-columns:1fr;}.jj-global-child-switch {padding:8px 12px;gap:8px;}.jj-global-child-switch label {width:100%;}.jj-lesson-card>img {height:130px;}}
@media print {.jj-global-child-switch,.jj-course-progress,.jj-reflection-actions {display:none!important;}}
/* Connected discovery and family commerce. */
.jj-shop-nav,.jj-account-actions,.jj-age-options {display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}
.jj-shop-nav a {padding:8px 0;margin-right:14px}
.jj-shop {max-width:1280px!important;margin:auto}
/* Avoid stacking the theme's secondary-header and mobile page gaps above the cart. */
body[id^="page-local-jjcurriculum-store-"]:has(.jj-shop) #page-second-header {padding-block:0!important}
body[id^="page-local-jjcurriculum-store-"]:has(.jj-shop) #page-content {margin-top:0;padding-top:8px}
body[id^="page-local-jjcurriculum-store-"] .jj-shop {padding-top:8px}
.jj-shop-card {padding:24px;border:1px solid #dce4d8;border-radius:18px;background:#fff;margin:18px 0;min-width:0}
.jj-shop-card h2,.jj-shop-card h3 {margin-top:0}
.jj-shop-card dl {display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px 20px;max-width:620px}
.jj-shop-card dd {margin:0;text-align:right;white-space:nowrap}
@media(max-width:400px){.jj-shop-card dl{grid-template-columns:minmax(0,1fr);gap:4px}.jj-shop-card dd{text-align:left;margin-bottom:12px}}
.jj-shop-form {display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0}
.jj-shop-form label {margin:0}
.jj-shop-form input:not([type=hidden]):not([type=checkbox]),.jj-shop-form select {max-width:100%;min-height:44px;border:1px solid #92a699;border-radius:8px;padding:8px;background:white;color:#234e43}
.jj-shop-form fieldset {width:100%;display:flex;flex-wrap:wrap;gap:18px}
.jj-shop-form fieldset legend {font-size:1rem}
.jj-shop-purchase {border-bottom:1px solid #dce4d8;padding:16px 0}
.jj-order-status {padding:22px;border-radius:14px;background:#edf3e9;margin-bottom:24px}
.jj-offer-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.jj-discovery {max-width:1440px;width:calc(100% - 64px);margin:0 auto;color:#344941;font-family:JJMontserrat,Arial,sans-serif;line-height:1.7}
.jj-discovery section {margin:48px 0;scroll-margin-top:120px}
.jj-discovery h2 {font-size:clamp(1.6rem,2.5vw,2.2rem);color:#486441;margin-bottom:20px}
.jj-discovery-pods {display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.jj-discovery-pods span {border:1px solid #dce7d8;background:#f7faf4;border-radius:24px;padding:8px 18px}
.jj-age-options a {border:1px solid #6c8564;border-radius:12px;min-width:150px;text-align:center;padding:12px;color:#3d5939}
.jj-age-options [aria-current=true] {background:#536f49;color:#fff}
.jj-discovery-packages {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:28px}
.jj-package {border:1px solid #dfe5d9;border-radius:18px;padding:22px;display:flex;flex-direction:column;min-width:0;background:#f9fbf6}
.jj-package img {max-width:100%;width:100%;height:auto;object-fit:contain;align-self:center}
.jj-package h3 {font-size:1.25rem;margin:20px 0 12px;color:#37572e}
.jj-package dl {margin-top:auto;display:grid;grid-template-columns:1fr;gap:4px}
.jj-package dd {font-weight:700;margin:0 0 12px}
.jj-package ul {padding-left:20px}
.jj-package .jj-family-primary {display:block;text-align:center;padding:12px;background:#536f49;color:white;border-radius:9px;line-height:1.5;text-decoration:none}
.jj-package-academic {background:#f4f7fd}.jj-package-holistic {background:#fffaf0}.jj-package-starter {background:#fff4f6}
.jj-discovery-sample {background:#f6f8ef;border-radius:20px;padding:32px}
.jj-discovery .jj-family-primary,.jj-discovery .jj-family-cancel {display:inline-block;padding:12px 20px;border-radius:8px;margin:8px 12px 8px 0;background:#536f49;color:white;text-decoration:none}
.jj-discovery .jj-family-cancel {background:white;color:#36542e;border:1px solid #536f49}
@media(max-width:1100px){.jj-discovery-packages{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.jj-discovery{width:calc(100% - 32px)}.jj-discovery-packages,.jj-offer-options{grid-template-columns:minmax(0,1fr)}.jj-shop-form{flex-direction:column;align-items:stretch}.jj-shop-card{padding:18px}.jj-shop-form fieldset{width:auto}}
@media print{.jj-shop-nav,.jj-account-actions,.jj-shop-form,.jj-shop .jj-family-primary,.jj-shop .jj-family-cancel{display:none!important}.jj-shop-card{break-inside:avoid}}
.jj-family,.jj-family-nav,.jj-global-child-switch{font-family:JJMontserrat,Arial,sans-serif}
.jj-family h1,.jj-family h2,.jj-family h3,.jj-family h4,.jj-footer-grid h2{font-family:inherit!important}
.jj-lesson-card.jj-lesson-locked{display:block;background:#eceeec;color:#525a53;border-color:#d5dad5;padding:24px;box-shadow:none}
.jj-lesson-locked a,.jj-pod-upgrade{font-size:.9rem;display:inline-block;padding:10px 0;color:#315339;text-decoration:underline}
.jj-overview>details>a{display:inline-block;margin:8px 18px 8px 0}
.jj-family .jj-family-section-nav{border:0!important;gap:10px;margin-bottom:24px}
.jj-family .jj-family-section-nav a{border:0!important;border-radius:24px!important;padding:10px 18px!important;background:#f0f4e9!important;color:#31563f!important}
.jj-family .jj-family-section-nav a[aria-current=page]{background:#2e6659!important;color:#fff!important}
.jj-family-greeting{margin:18px 0 24px}.jj-family-greeting h2{margin-bottom:8px}
.jj-tracker-overall{padding:16px 20px;border-radius:12px;background:#f2f6ec}
.jj-tracker-row>summary{display:grid;grid-template-columns:minmax(170px,1.1fr) repeat(3,minmax(0,1fr)) 18px;gap:18px;align-items:center;list-style:none}
.jj-tracker-row>summary::-webkit-details-marker{display:none}.jj-tracker-row>summary:after{content:'▾';justify-self:end}.jj-tracker-row[open]>summary:after{content:'▴'}
.jj-tracker-row>summary>strong{min-width:0}.jj-tracker-row>summary>span{margin:0}
@media(max-width:850px){.jj-tracker-row>summary{grid-template-columns:minmax(0,1fr) 18px;gap:10px}.jj-tracker-row>summary>strong{grid-column:1;grid-row:1}.jj-tracker-row>summary:after{grid-column:2;grid-row:1}.jj-tracker-row>summary>span{grid-column:1/-1}}
.jj-family-nav[data-staff='0']{background:white!important}
.jj-family-nav .jj-family-brand.jj-horizontal-brand{display:inline-flex!important;width:auto!important;max-width:none!important;padding:0!important;gap:4px}
.jj-family-nav .jj-family-brand .jj-brand-symbol{width:83px;height:54px;overflow:hidden;flex:0 0 83px}
.jj-family-nav .jj-family-brand .jj-brand-symbol img{width:92px!important;height:85px!important;max-width:none!important;display:block}
.jj-family-nav .jj-family-brand .jj-brand-wordmark{font-size:17px;letter-spacing:2px}.jj-family-nav .jj-family-brand .jj-brand-wordmark small{font-size:10px}
@media(max-width:50rem){
 .jj-family-nav{flex-wrap:wrap!important}
 .jj-family-nav-links{flex:1 0 100%!important;width:100%;min-width:0}
 .jj-family-nav-links a{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal!important}
}
.jj-shop .jj-cart-line { width:100%; }
.jj-shop .jj-cart-line label,.jj-shop .jj-cart-picker label { display:block; margin-top:12px; }
.jj-shop .jj-cart-line input,.jj-shop .jj-cart-line select,.jj-shop .jj-cart-picker select { display:block; width:100%; max-width:440px; min-height:44px; margin:6px 0 12px; }
.jj-shop .jj-cart-actions { display:flex; gap:12px; flex-wrap:wrap; margin:18px 0; }
.jj-shop .jj-cart-price { font-weight:700; }
.jj-shop .jj-add-child { width:100%; margin-top:24px; }
.jj-shop .jj-add-child summary { cursor:pointer; font-weight:700; padding:8px 0; }
.jj-shop .jj-cart-code { margin-top:20px; }
.jj-shop .jj-cart-line [hidden] { display:none!important; }
.jj-shop .jj-cart-picker input { display:block; width:100%; max-width:440px; min-height:44px; margin:6px 0 12px; }
.jj-shop .jj-cart-picker select,.jj-shop .jj-cart-line select { appearance:auto; }
/* Restore the reference dashboard composition with live child progress. */
.jj-reference-dashboard > h2 {color:#71866c;font-size:1.45rem;font-weight:700;margin:0 0 8px}
.jj-reference-dashboard .jj-dashboard-stats {margin:20px 0 8px}
.jj-reference-dashboard .jj-dashboard-stat {padding:16px 12px 16px 88px;min-height:110px}
.jj-reference-dashboard .jj-dashboard-stat > strong {color:inherit;font-size:1.7rem;line-height:1}
.jj-reference-dashboard .jj-stat-icon {position:absolute;width:62px;height:62px;left:12px;top:24px;margin:0}
.jj-completion-ring {border-radius:50%;background:repeating-conic-gradient(transparent 0 29deg,#fff 29deg 30deg),conic-gradient(#3e6ac0 var(--jj-complete),#c4cbf5 0);mask:radial-gradient(transparent 0 40%,#000 42%);-webkit-mask:radial-gradient(transparent 0 40%,#000 42%)}
.jj-completion-method {font-size:.75rem!important;line-height:1.5;color:#586458;margin:8px 0 18px}
.jj-reference-grid {display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:18px;align-items:start}
.jj-reference-dashboard .jj-dashboard-panel {margin:0;padding:16px}
.jj-panel-heading {display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.jj-panel-heading h3 {margin:0}
.jj-panel-heading a {font-size:.75rem;color:#a74719;white-space:nowrap}
.jj-overview-calendar .jj-calendar-layout {grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px}
.jj-overview-calendar .jj-calendar-layout > section {border:0;padding:0}
.jj-overview-calendar .jj-calendar-layout > section + section {border-left:1px solid #eee9e3;padding-left:12px}
.jj-overview-calendar .jj-calendar-heading {margin:0 0 8px;gap:4px}
.jj-overview-calendar .jj-calendar-heading h3 {font-size:.9rem;margin:0}
.jj-overview-calendar .jj-calendar-heading a {padding:6px 9px;background:transparent}
.jj-overview-calendar .jj-calendar-event {padding:8px;margin:8px 0}
.jj-overview-calendar .jj-calendar-event h4,.jj-overview-calendar .jj-calendar-layout p {font-size:.75rem}
.jj-overview-calendar .jj-calendar-layout > section > h3 {font-size:.85rem}
.jj-overview-calendar .jj-calendar-grid td {height:34px;font-size:.75rem}
.jj-overview-calendar .jj-calendar-grid th {font-size:.65rem}
.jj-calendar-grid td[aria-current=date] > span:first-child {outline:1px solid #e7b183;background:#fff3e7;border-radius:50%;width:30px;min-height:30px;margin:auto}
.jj-calendar-grid td a.jj-event-dot {display:inline-block;width:auto;min-height:0;background:transparent;text-decoration:none}
.jj-calendar-grid td .jj-event-dot > span:first-child {display:inline;width:auto;min-height:0}
.jj-calendar-grid td .jj-event-tooltip {display:none}
.jj-calendar-grid td .jj-event-dot:hover .jj-event-tooltip,.jj-calendar-grid td .jj-event-dot:focus .jj-event-tooltip {display:block;width:max-content;min-height:0}
.jj-notes-heading {margin-top:22px!important}
.jj-overview-saved .jj-dashboard-entry {font-size:.8rem}
.jj-reference-dashboard .jj-dashboard-pods {grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.jj-reference-dashboard .jj-dashboard-pod > img {height:95px}
.jj-reference-dashboard .jj-dashboard-pod .jj-pod-title {font-size:.78rem}
.jj-reference-dashboard .jj-dashboard-pod .jj-pod-age {font-size:.7rem}
.jj-pod-completion {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;padding:10px 12px;font-size:.68rem}
.jj-pod-completion progress {width:100%;height:8px;min-width:0;border:0;border-radius:6px;overflow:hidden;background:#e9efd9;accent-color:#9ab889}
.jj-pod-completion progress::-webkit-progress-bar {background:#e9efd9;border-radius:6px}
.jj-pod-completion progress::-webkit-progress-value {background:#9ab889;border-radius:6px}
.jj-pod-completion progress::-moz-progress-bar {background:#9ab889;border-radius:6px}
.jj-dashboard-pod:nth-child(even) progress {accent-color:#ed8c9a}
.jj-dashboard-pod:nth-child(even) progress::-webkit-progress-value {background:#ed8c9a}
.jj-dashboard-pod:nth-child(even) progress::-moz-progress-bar {background:#ed8c9a}
.jj-pod-completion small {grid-column:1/-1;font-size:inherit}
.jj-progress-bars {display:inline-flex!important;align-items:flex-end;gap:4px;width:44px;height:48px;flex:0 0 44px}
.jj-progress-bars > span {display:block;width:10px;height:var(--jj-bar);min-height:2px;max-height:100%;background:#ef8848}
.jj-progress-bars .jj-colour-partial_support {background:#a4be56}
.jj-progress-bars .jj-colour-no_support {background:#355caf}
.jj-progress-preview {display:flex;gap:12px;align-items:center;padding:10px;background:#faf4fe;border-radius:5px;text-decoration:none!important}
.jj-progress-preview > span:last-child {display:grid;gap:4px;font-size:.78rem;min-width:0}
.jj-progress-preview-values {font-size:.65rem!important;margin:5px 0 12px;line-height:1.5}
.jj-tracker-row > summary > strong {display:flex;align-items:center;gap:12px}
/* Reserve a separate, aligned slot for help icons, including wrapped and empty values. */
.jj-tracker-row > summary > span {display:grid;grid-template-columns:minmax(0,1fr) 19px;gap:8px;align-items:center;align-self:stretch;min-width:0}
.jj-tracker-row > summary > span > .jj-support-help {margin:0;width:19px;height:19px}
.jj-tracker-row .jj-support-value {display:flex;flex-direction:column;justify-content:space-between;align-self:stretch;gap:4px;min-width:0;overflow-wrap:anywhere}
.jj-tracker-row .jj-support-number {display:block;font-variant-numeric:tabular-nums}
.jj-tracker-row > summary > strong {min-width:0;overflow-wrap:anywhere}
/* The sidebar reduces the tracker's available space before the viewport becomes
   mobile-sized. Base compact rows on that space, including enlarged text. */
.jj-tracker-grid:has(.jj-tracker-row) {container-type:inline-size;container-name:jj-tracker}
@container jj-tracker (max-width:900px) {
 .jj-tracker-row > summary {grid-template-columns:minmax(0,1fr) 18px;gap:10px}
 .jj-tracker-row > summary > strong {grid-column:1;grid-row:1}
 .jj-tracker-row > summary:after {grid-column:2;grid-row:1}
 .jj-tracker-row > summary > span {grid-column:1/-1}
}
.jj-tracker-levels li {border-color:#ef8848;background:#fff5ef}
.jj-tracker-levels li.jj-tracker-partial_support {border-color:#a4be56;background:#f5f8e9}
.jj-tracker-levels li.jj-tracker-no_support {border-color:#355caf;background:#f1f4fc}
.jj-tracker-ring {background:conic-gradient(#ef8848 0 var(--jj-first),#a4be56 var(--jj-first) var(--jj-second),#355caf var(--jj-second) 100%)}
@media(max-width:1250px){
 .jj-reference-grid {grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}
 .jj-reference-dashboard .jj-dashboard-pods {grid-template-columns:repeat(2,minmax(0,1fr))}
 .jj-overview-calendar .jj-calendar-layout {grid-template-columns:1fr}
 .jj-overview-calendar .jj-calendar-layout > section + section {border-left:0;border-top:1px solid #eee9e3;padding:12px 0 0}
 .jj-reference-dashboard .jj-dashboard-stat {padding:12px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px 10px}
 .jj-reference-dashboard .jj-stat-icon {position:static;width:40px;height:40px;grid-row:1/4;align-self:center}
 .jj-reference-dashboard .jj-dashboard-stat h3,.jj-reference-dashboard .jj-dashboard-stat p {margin:0}
}
@media(max-width:1000px){.jj-reference-grid {grid-template-columns:minmax(0,1fr)}.jj-reference-dashboard .jj-dashboard-stats {grid-template-columns:minmax(0,1fr)}.jj-overview-pods {grid-row:2}}
@media(max-width:575px){.jj-reference-dashboard .jj-dashboard-pods {grid-template-columns:repeat(2,minmax(0,1fr))}.jj-reference-dashboard .jj-dashboard-panel {padding:10px}.jj-panel-heading {flex-wrap:wrap}.jj-reference-dashboard .jj-dashboard-pod .jj-pod-title {padding:4px 8px}.jj-pod-completion {padding:8px}.jj-tracker-row {padding:12px}}
@media(max-width:360px){.jj-reference-dashboard .jj-dashboard-pods {grid-template-columns:1fr}}

/* Cards now contain a separate completion row; do not share the old four-row subgrid. */
.jj-family .jj-dashboard-pod {display:flex;flex-direction:column;grid-row:auto;gap:8px}
.jj-family .jj-dashboard-pod .jj-pod-completion {margin-top:auto}
.jj-family .jj-dashboard-pod details {align-self:stretch}
.jj-reference-dashboard .jj-dashboard-pod summary {font-size:.72rem;line-height:1.4}
.jj-reference-dashboard .jj-dashboard-stat h3 {font-weight:700;color:inherit}
.jj-dashboard-sidebar > img {width:96px;height:88px}
.jj-dashboard-sidebar .jj-dashboard-brand {border-bottom:0;padding-bottom:0}
.jj-overview-calendar button {font-size:.75rem;padding:8px 10px;min-height:36px}
.jj-family-dashboard.jj-has-dashboard-shell > .jj-family-section-nav {display:none!important}

/* Keep the supplied full logo above desktop navigation, without stretching it. */
.jj-dashboard-sidebar > img.jj-journeys-sidebar-logo {width:100%;max-width:170px;height:auto;margin:0 auto 8px}
