:root{--mpp-navy:#14213d;--mpp-blue:#2f6fed;--mpp-bg:#f4f7fb;--mpp-border:#dce3ee}
body:has(.mp-admin-portal),body:has(.mp-portal-login-shell){margin:0;background:var(--mpp-bg)}
body:has(.mp-admin-portal) header.wp-block-template-part,body:has(.mp-admin-portal) footer.wp-block-template-part,
body:has(.mp-portal-login-shell) header.wp-block-template-part,body:has(.mp-portal-login-shell) footer.wp-block-template-part{display:none!important}
.mp-admin-portal{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182235}
.mp-portal-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px;background:linear-gradient(180deg,#14213d,#192b50);color:#fff;box-sizing:border-box;z-index:20}
.mp-portal-brand{display:flex;align-items:center;gap:12px;padding:10px 12px 22px;color:#fff;text-decoration:none}.mp-portal-brand>.dashicons{font-size:30px;width:30px;height:30px}.mp-portal-brand span:last-child{display:grid}.mp-portal-brand strong{font-size:18px}.mp-portal-brand small{opacity:.65}
.mp-portal-sidebar nav{display:grid;gap:4px;overflow:auto}.mp-portal-sidebar nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:rgba(255,255,255,.78);text-decoration:none;font-weight:700}.mp-portal-sidebar nav a:hover,.mp-portal-sidebar nav a.is-active{background:rgba(255,255,255,.12);color:#fff}.mp-portal-sidebar nav .dashicons{font-size:19px}
.mp-portal-user{margin-top:auto;display:grid;gap:4px;padding:16px 12px 4px;border-top:1px solid rgba(255,255,255,.14)}.mp-portal-user small{opacity:.6;overflow:hidden;text-overflow:ellipsis}.mp-portal-user a{color:#fff;margin-top:8px}
.mp-portal-main{min-width:0}.mp-portal-content{padding:24px 28px 60px}.mp-portal-content>.wrap{margin:0;max-width:none}.mp-portal-content #wpbody-content{padding:0}
.mp-portal-mobile-header{display:none}
.mp-portal-login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top left,rgba(47,111,237,.18),transparent 32%),linear-gradient(150deg,#eef4ff,#f8fafc)}
.mp-portal-login-card{width:min(440px,100%);box-sizing:border-box;padding:38px;border:1px solid var(--mpp-border);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(20,33,61,.14)}.mp-portal-login-card h1{font-size:30px;margin:18px 0 8px}.mp-portal-login-card>p{color:#667085;line-height:1.55}.mp-portal-logo{display:flex;align-items:center;gap:10px;color:var(--mpp-blue);font-size:18px;font-weight:900}.mp-portal-logo .dashicons{font-size:28px;width:28px;height:28px}
.mp-portal-login-card form{display:grid;gap:4px;margin-top:24px}.mp-portal-login-card label{font-weight:700}.mp-portal-login-card input[type=text],.mp-portal-login-card input[type=password]{width:100%;box-sizing:border-box;min-height:48px;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px}.mp-portal-login-card .login-submit input{width:100%;min-height:48px;border:0;border-radius:10px;background:var(--mpp-blue);color:#fff;font-weight:800;cursor:pointer}.mp-portal-forgot{display:inline-block;margin-top:10px;color:var(--mpp-blue);font-weight:700}
.mp-portal-content .notice{margin-left:0}
@media(max-width:900px){.mp-admin-portal{grid-template-columns:1fr}.mp-portal-sidebar{position:fixed;left:-280px;width:260px;transition:left .2s ease}.mp-portal-sidebar.is-open{left:0}.mp-portal-mobile-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--mpp-border)}.mp-portal-mobile-header button{border:0;background:#eef4ff;border-radius:8px;padding:8px}.mp-portal-content{padding:18px 14px 50px}}


/* ===== Desktop landscape layout correction ===== */
body:has(.mp-admin-portal) {
    overflow-x: hidden;
}

body:has(.mp-admin-portal) .wp-site-blocks,
body:has(.mp-admin-portal) main.wp-block-group,
body:has(.mp-admin-portal) .wp-block-post-content,
body:has(.mp-admin-portal) .entry-content,
body:has(.mp-admin-portal) .site-main,
body:has(.mp-admin-portal) article,
body:has(.mp-admin-portal) .container,
body:has(.mp-admin-portal) .content-area {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.mp-admin-portal {
    width: 100vw;
    max-width: none;
    margin: 0;
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: stretch;
}

.mp-portal-sidebar {
    width: 280px;
    padding: 22px 16px;
}

.mp-portal-main {
    width: auto;
    min-width: 0;
    overflow: hidden;
}

.mp-portal-content {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: 26px 32px 64px;
}

.mp-portal-content .wrap,
.mp-portal-content .mp-wrap,
.mp-portal-content .mp-settings-page,
.mp-portal-content .mp-admin-accounts-page {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

.mp-portal-content .mp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.mp-portal-content .mp-dashboard-grid,
.mp-portal-content .mp-school-kpis,
.mp-portal-content .mp-stats-grid,
.mp-portal-content .mp-cards-grid {
    width: 100%;
}

.mp-portal-content .mp-dashboard-grid {
    grid-template-columns: repeat(4, minmax(220px, 1fr));
}

.mp-portal-content .mp-school-kpis {
    grid-template-columns: repeat(6, minmax(150px, 1fr));
}

.mp-portal-content .mp-filter-bar,
.mp-portal-content .mp-school-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
}

.mp-portal-content .mp-filter-bar label,
.mp-portal-content .mp-school-filters label {
    min-width: 160px;
    flex: 1 1 170px;
}

.mp-portal-content .mp-panel,
.mp-portal-content .mp-panel-wide {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.mp-portal-content .mp-table-wrap,
.mp-portal-content .mp-public-order-table {
    width: 100%;
    overflow-x: auto;
}

.mp-portal-content table {
    width: 100%;
    min-width: 960px;
    table-layout: auto;
}

.mp-portal-content .mp-settings-grid {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
}

.mp-portal-content .mp-form-grid,
.mp-portal-content .mp-admin-grid {
    grid-template-columns: repeat(3, minmax(240px, 1fr));
}

@media (min-width: 1500px) {
    .mp-admin-portal {
        grid-template-columns: 300px minmax(0, 1fr);
    }

    .mp-portal-sidebar {
        width: 300px;
    }

    .mp-portal-content {
        padding-left: 42px;
        padding-right: 42px;
    }

    .mp-portal-content .mp-dashboard-grid {
        grid-template-columns: repeat(5, minmax(220px, 1fr));
    }
}

@media (max-width: 1180px) {
    .mp-admin-portal {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .mp-portal-sidebar {
        width: 240px;
    }

    .mp-portal-content {
        padding: 22px 20px 56px;
    }

    .mp-portal-content .mp-dashboard-grid {
        grid-template-columns: repeat(3, minmax(210px, 1fr));
    }

    .mp-portal-content .mp-school-kpis {
        grid-template-columns: repeat(3, minmax(160px, 1fr));
    }
}

@media (max-width: 900px) {
    .mp-admin-portal {
        width: 100%;
        grid-template-columns: 1fr;
    }

    .mp-portal-sidebar {
        width: 280px;
    }

    .mp-portal-content .mp-dashboard-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .mp-portal-content .mp-school-kpis {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    .mp-portal-content .mp-settings-grid,
    .mp-portal-content .mp-form-grid,
    .mp-portal-content .mp-admin-grid {
        grid-template-columns: 1fr;
    }
}


/* ===== Standalone portal: no WordPress theme layout ===== */
html, body.mp-standalone-admin {
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    min-height: 100%;
    background: var(--mpp-bg);
}

body.mp-standalone-admin {
    overflow-x: hidden;
}

body.mp-standalone-admin #wpadminbar {
    display: none !important;
}

body.mp-standalone-admin .mp-admin-portal {
    min-height: 100vh;
    width: 100%;
}

body.mp-standalone-admin .mp-portal-main {
    min-height: 100vh;
}

body.mp-standalone-admin .mp-portal-content {
    min-height: 100vh;
}
