/*
 * OrbitOrchard v0.9.9.166
 * Compact typography and restrained interface depth for backend and frontend.
 * Shadows remain deliberately tiny so the School palette and content hierarchy
 * stay stronger than decoration.
 */

/* Backend: slightly denser type without shrinking native accessibility targets. */
body.prog-school-theme-active {
    --prog-interface-shadow-tiny: 0 1px 4px color-mix(in srgb, var(--prog-school-secondary, #0d324d) 9%, transparent);
    --prog-interface-shadow-button: 0 1px 2px color-mix(in srgb, var(--prog-school-secondary, #0d324d) 11%, transparent);
}
body.prog-school-theme-active .prog-wrap,
body.prog-school-theme-active.prog-account-profile #your-profile {
    font-size: 13px;
    line-height: 1.45;
}
body.prog-school-theme-active .prog-wrap :where(input, select, textarea, button, .button, table),
body.prog-school-theme-active.prog-account-profile #your-profile :where(input, select, textarea, button, .button, table) {
    font-size: 13px;
}
body.prog-school-theme-active .prog-wrap .prog-page-heading h1,
body.prog-school-theme-active .prog-game-flow-page-header h1,
body.prog-school-theme-active .prog-profile-hero h1 {
    font-size: clamp(24px, 2.2vw, 30px);
}
body.prog-school-theme-active .prog-wrap .prog-section-heading h2,
body.prog-school-theme-active .prog-wrap > :where(h2, h3),
body.prog-school-theme-active .prog-wrap :where(.prog-panel, .prog-action-panel, .prog-form-panel) > :where(h2, h3) {
    letter-spacing: -0.01em;
}
body.prog-school-theme-active .prog-wrap :where(
    .prog-panel,
    .prog-action-panel,
    .prog-form-panel,
    .prog-stat-card,
    .prog-record-card,
    .prog-summary-card,
    .prog-settings-card,
    .prog-brand-card,
    .prog-communication-section,
    .prog-timetable-shell,
    .prog-timetable-editor,
    .prog-class-season-card,
    .prog-game-world-card,
    .prog-game-tile,
    .prog-game-flow-section-card,
    .prog-capture-step,
    details,
    .widefat,
    .prog-table-scroll,
    .prog-table-wrap
) {
    box-shadow: var(--prog-interface-shadow-tiny);
}
body.prog-school-theme-active .prog-wrap :where(.button, button):not(.button-link):not(.button-link-delete),
body.prog-school-theme-active.prog-account-profile #your-profile :where(.button, button):not(.button-link):not(.button-link-delete) {
    box-shadow: var(--prog-interface-shadow-button);
}
body.prog-school-theme-active .prog-wrap :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
body.prog-school-theme-active.prog-account-profile #your-profile :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, 0.025);
}
body.prog-school-theme-active .prog-wrap :where(input, select, textarea):focus,
body.prog-school-theme-active.prog-account-profile #your-profile :where(input, select, textarea):focus {
    box-shadow: 0 0 0 1px var(--prog-school-primary, #1769aa);
}

/* Login, certificate and legacy portal surfaces. */
.prog-login-body,
.prog-portal-shell,
.prog-certificate {
    font-size: 15px;
    line-height: 1.5;
}
.prog-login-body :where(input, select, textarea, button),
.prog-portal-shell :where(input, select, textarea, button),
.prog-certificate :where(input, select, textarea, button) {
    font-size: 14px;
}
.prog-login-brand h1 { font-size: clamp(28px, 3.7vw, 44px); }
.prog-login-card h2 { font-size: 27px; }
.prog-login-brand p,
.prog-login-card p { font-size: 15px; }
.prog-login-brand,
.prog-login-card,
.prog-login-logo,
.prog-login-brand-note,
.prog-portal-shell,
.prog-portal-card,
.prog-portal-grid article,
.prog-certificate {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.075);
}
.prog-button,
.prog-login-card button,
.prog-certificate button {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.10);
}
.prog-button:hover,
.prog-login-card button:hover,
.prog-certificate button:hover {
    box-shadow: 0 2px 5px rgba(15, 23, 42, 0.12);
}
.prog-login-card input:focus {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--prog-primary, #2563eb) 16%, transparent);
}

/* Student and Parent frontend: compact type, tiny card depth, no heavy floating effect. */
.prog-learning-portal,
.prog-learning-signin {
    font-size: 14px;
    line-height: 1.5;
}
.prog-learning-portal :where(input, select, textarea, button),
.prog-learning-signin :where(input, select, textarea, button) {
    font-size: 13px;
}
.prog-learning-portal {
    box-shadow: 0 2px 9px rgba(15, 23, 42, 0.075);
}
.prog-learning-hero h1,
.prog-learning-child-overview h2,
.prog-learning-profile-card h2 {
    font-size: clamp(26px, 3.6vw, 38px);
}
.prog-learning-section-heading h2 { font-size: 23px; }
.prog-learning-nav a { font-size: 13px; }
.prog-learning-school-name strong { font-size: 17px; }
.prog-learning-portal :where(
    .prog-learning-school-mark,
    .prog-learning-avatar,
    .prog-learning-child-switcher a,
    .prog-learning-nav,
    .prog-learning-nav a.active,
    .prog-learning-hero,
    .prog-learning-child-overview,
    .prog-learning-profile-card,
    .prog-learning-section,
    .prog-learning-chart-card,
    .prog-learning-stats article,
    .prog-learning-record-summary article,
    .prog-learning-material,
    .prog-learning-activity,
    .prog-learning-record,
    .prog-learning-message-list article,
    .prog-learning-thread,
    .prog-learning-certificate-grid article,
    .prog-parent-child-card,
    .prog-learning-stats--linked a,
    .prog-parent-child-stats--linked a,
    .prog-class-season-card,
    .prog-game-worlds__hero,
    .prog-game-tile,
    .prog-world-arena,
    .prog-game-centre-card,
    .prog-game-progress-dashboard,
    .prog-timetable-summary article,
    .prog-timetable-current-next article,
    .prog-timetable-lesson-card
) {
    box-shadow: 0 1px 5px rgba(15, 23, 42, 0.07);
}
.prog-learning-material:hover,
.prog-game-tile:hover,
.prog-learning-stats--linked a:hover,
.prog-parent-child-stats--linked a:hover {
    box-shadow: 0 2px 7px rgba(15, 23, 42, 0.09);
}
.prog-learning-cover-favorite,
.prog-learning-type-mark,
.prog-learning-view-toggle button.is-active {
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.10);
}

/* Public School website and notice pages. */
body.prog-public-school-site,
body.prog-public-school-notice,
.prog-public-school-fallback,
.prog-school-notice-page {
    font-size: 15px;
    line-height: 1.55;
}
body.prog-public-school-site :where(input, select, textarea, button),
body.prog-public-school-notice :where(input, select, textarea, button) {
    font-size: 14px;
}
body.prog-public-school-site :where(article, .card, .school-card, .prog-card, .prog-public-school-fallback),
body.prog-public-school-notice :where(.prog-school-notice-hero, .prog-school-notice-actions) {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.07);
}
body.prog-public-school-site :where(.button, button, .prog-button),
body.prog-public-school-notice :where(.button, button, .prog-button) {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.10);
}

@media (max-width: 782px) {
    body.prog-school-theme-active .prog-wrap,
    .prog-login-body,
    .prog-portal-shell,
    .prog-learning-portal,
    body.prog-public-school-site,
    body.prog-public-school-notice {
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .prog-button,
    .prog-learning-material,
    .prog-game-tile {
        transition: none !important;
        transform: none !important;
    }
}

/* v0.9.9.166 — defensive responsive layout for every OrbitOrchard backend and frontend surface. */
body.prog-school-theme-active .prog-wrap,
body.prog-school-theme-active.prog-account-profile #your-profile,
.prog-login-page-shell,
.prog-portal-shell,
.prog-learning-portal,
.prog-learning-signin,
.prog-public-school-fallback,
.prog-school-notice-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

body.prog-school-theme-active .prog-wrap *,
body.prog-school-theme-active.prog-account-profile #your-profile *,
.prog-login-page-shell *,
.prog-portal-shell *,
.prog-learning-portal *,
.prog-learning-signin *,
.prog-public-school-fallback *,
.prog-school-notice-page * {
    box-sizing: border-box;
    min-width: 0;
}

body.prog-school-theme-active .prog-wrap :where(img, video, iframe, canvas, svg),
body.prog-school-theme-active.prog-account-profile #your-profile :where(img, video, iframe, canvas, svg),
.prog-login-page-shell :where(img, video, iframe, canvas, svg),
.prog-portal-shell :where(img, video, iframe, canvas, svg),
.prog-learning-portal :where(img, video, iframe, canvas, svg),
.prog-learning-signin :where(img, video, iframe, canvas, svg),
body.prog-public-school-site :where(img, video, iframe, canvas, svg),
body.prog-public-school-notice :where(img, video, iframe, canvas, svg) {
    max-width: 100%;
    height: auto;
}

body.prog-school-theme-active .prog-wrap :where(
    .prog-form-grid,
    .prog-card-grid,
    .prog-dashboard-grid,
    .prog-settings-grid,
    .prog-summary-grid,
    .prog-stat-grid,
    .prog-brand-grid,
    .prog-report-grid,
    .prog-account-grid
) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

body.prog-school-theme-active .prog-wrap :where(.prog-table-scroll, .prog-table-wrap),
body.prog-school-theme-active.prog-account-profile #your-profile :where(.prog-table-scroll, .prog-table-wrap),
.prog-portal-shell :where(.prog-table-scroll, .prog-table-wrap),
.prog-learning-portal :where(.prog-table-scroll, .prog-table-wrap) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

body.prog-school-theme-active .prog-wrap :where(table, .widefat),
body.prog-school-theme-active.prog-account-profile #your-profile :where(table, .widefat),
.prog-portal-shell table,
.prog-learning-portal table {
    width: 100%;
    max-width: 100%;
}

body.prog-school-theme-active .prog-wrap :where(.prog-page-tabs, .nav-tab-wrapper, .prog-subnav, .prog-learning-nav),
.prog-portal-shell :where(.prog-portal-nav, .prog-child-switcher),
.prog-learning-portal :where(.prog-learning-nav, .prog-learning-child-switcher) {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

body.prog-school-theme-active .prog-wrap :where(.prog-page-tabs, .nav-tab-wrapper, .prog-subnav) > *,
.prog-portal-shell :where(.prog-portal-nav, .prog-child-switcher) > *,
.prog-learning-portal :where(.prog-learning-nav, .prog-learning-child-switcher) > * {
    flex: 0 0 auto;
}

body.prog-school-theme-active .prog-wrap :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
body.prog-school-theme-active.prog-account-profile #your-profile :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.prog-login-page-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.prog-portal-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.prog-learning-portal :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    max-width: 100%;
}

body.prog-school-theme-active .prog-wrap [data-prog-school-assignment] {
    width: 100%;
    min-height: 132px;
}

@media (max-width: 1100px) {
    body.prog-school-theme-active .prog-wrap :where(
        .prog-form-grid,
        .prog-card-grid,
        .prog-dashboard-grid,
        .prog-settings-grid,
        .prog-summary-grid,
        .prog-stat-grid,
        .prog-brand-grid,
        .prog-report-grid,
        .prog-account-grid
    ) {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
    }
}

@media (max-width: 782px) {
    body.prog-school-theme-active #wpcontent,
    body.prog-school-theme-active #wpbody-content {
        min-width: 0;
    }

    body.prog-school-theme-active .prog-wrap {
        margin-inline: 0;
        padding-inline: 10px;
        overflow-x: clip;
    }

    body.prog-school-theme-active .prog-wrap :where(
        .prog-form-grid,
        .prog-card-grid,
        .prog-dashboard-grid,
        .prog-settings-grid,
        .prog-summary-grid,
        .prog-stat-grid,
        .prog-brand-grid,
        .prog-report-grid,
        .prog-account-grid,
        .prog-login-shell,
        .prog-learning-grid,
        .prog-learning-materials-grid
    ),
    .prog-portal-shell :where(.prog-portal-grid, .prog-card-grid),
    .prog-learning-portal :where(.prog-learning-grid, .prog-learning-materials-grid, .prog-learning-stats) {
        grid-template-columns: 1fr !important;
    }

    body.prog-school-theme-active .prog-wrap :where(.prog-panel, .prog-action-panel, .prog-form-panel, details) {
        padding-inline: 14px;
    }

    body.prog-school-theme-active .prog-wrap :where(.prog-action-bar, .prog-toolbar, .prog-account-action-shell, .prog-form-actions),
    .prog-portal-shell :where(.prog-actions, .prog-toolbar),
    .prog-learning-portal :where(.prog-learning-actions, .prog-learning-toolbar) {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        gap: 8px;
    }

    body.prog-school-theme-active .prog-wrap :where(.prog-action-bar, .prog-toolbar, .prog-form-actions) > *,
    .prog-portal-shell :where(.prog-actions, .prog-toolbar) > *,
    .prog-learning-portal :where(.prog-learning-actions, .prog-learning-toolbar) > * {
        max-width: 100%;
    }

    body.prog-school-theme-active .prog-wrap .prog-table-scroll table,
    body.prog-school-theme-active .prog-wrap .prog-table-wrap table,
    .prog-portal-shell .prog-table-scroll table,
    .prog-learning-portal .prog-table-scroll table {
        min-width: 680px;
    }
}

@media (max-width: 560px) {
    body.prog-school-theme-active .prog-wrap {
        padding-inline: 6px;
    }

    body.prog-school-theme-active .prog-wrap :where(.button, button):not(.button-link):not(.button-link-delete),
    .prog-login-page-shell :where(.button, button),
    .prog-portal-shell :where(.button, button),
    .prog-learning-portal :where(.button, button) {
        max-width: 100%;
        white-space: normal;
    }

    body.prog-school-theme-active .prog-wrap :where(.prog-panel, .prog-action-panel, .prog-form-panel, details) {
        border-radius: 8px;
        padding-inline: 11px;
    }

    .prog-login-page-shell,
    .prog-portal-content,
    .prog-learning-main,
    .prog-learning-section {
        padding-inline: 12px;
    }
}

/* Priority 2 navigation strips are swipeable on touch devices without showing a scrollbar. */
@media (max-width:1180px){
body.prog-school-theme-active .prog-wrap :where(.prog-page-tabs,.nav-tab-wrapper,.prog-subnav,.prog-learning-nav),
.prog-portal-shell :where(.prog-portal-nav,.prog-child-switcher),
.prog-learning-portal :where(.prog-learning-nav,.prog-learning-child-switcher){scrollbar-width:none;-ms-overflow-style:none}
body.prog-school-theme-active .prog-wrap :where(.prog-page-tabs,.nav-tab-wrapper,.prog-subnav,.prog-learning-nav)::-webkit-scrollbar,
.prog-portal-shell :where(.prog-portal-nav,.prog-child-switcher)::-webkit-scrollbar,
.prog-learning-portal :where(.prog-learning-nav,.prog-learning-child-switcher)::-webkit-scrollbar{display:none;width:0;height:0}
}
