/*
 * Parents Computer School Management: colourful look (2.15.0)
 * Loaded by includes/class-theme.php on the plugin's working pages
 * (not on report or print pages). Screen only: printouts never change.
 * Classes pcsm-t-* are added by assets/js/pcsm-theme.js.
 */
@media screen {

body.pcsm-theme {
    --pt-navy: #0b3d6b;
    --pt-blue: #1565c0;
    --pt-teal: #0f766e;
    --pt-amber: #f59e0b;
    --pt-ink: #0f172a;
    --pt-muted: #64748b;
    --pt-line: #e2e8f0;
    --pt-grad: linear-gradient(120deg, #0b3d6b 0%, #1565c0 55%, #0f766e 100%);
}

/* ---------- Page background ---------- */
body.pcsm-theme #wpcontent,
body.pcsm-theme #wpbody,
body.pcsm-theme.wp-admin { background: #eef2f7; }
body.pcsm-theme.pcsm-app { background: linear-gradient(180deg, #e8eef7 0%, #f1f5f9 320px) !important; }

/* ---------- Page title banner ---------- */
body.pcsm-theme .pcsm-t-hero {
    background: var(--pt-grad) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 28px rgba(11, 61, 107, .22) !important;
    position: relative;
    overflow: hidden;
}
body.pcsm-theme .pcsm-t-hero::after {
    content: ""; position: absolute; right: -50px; top: -70px; width: 220px; height: 220px;
    border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none;
}
body.pcsm-theme .pcsm-t-hero::before {
    content: ""; position: absolute; right: 150px; bottom: -110px; width: 200px; height: 200px;
    border-radius: 50%; background: rgba(245, 158, 11, .16); pointer-events: none;
}
body.pcsm-theme .pcsm-t-hero :is(h1, h2, h3, h4, strong, b, label) { color: #fff !important; }
body.pcsm-theme .pcsm-t-hero :is(p, small, span:not([class*="badge"])) { color: #dbeafe !important; }
body.pcsm-theme .pcsm-t-hero a:not(.button):not([class*="btn"]) { color: #fde68a !important; }
body.pcsm-theme .pcsm-t-hero > * { position: relative; z-index: 1; }

/* A plain heading turned into a banner */
body.pcsm-theme h1.pcsm-t-hero,
body.pcsm-theme h2.pcsm-t-hero {
    display: block;
    padding: 20px 24px !important;
    margin: 6px 0 18px !important;
    font-size: 22px !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;
}
body.pcsm-theme h1.pcsm-t-hero::before { display: none; }
body.pcsm-theme .pcsm-t-hero-sub { color: var(--pt-muted) !important; margin-top: -8px !important; }

/* ---------- Cards ---------- */
body.pcsm-theme .pcsm-t-card {
    border-radius: 14px !important;
    border-color: var(--pt-line) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 6px 18px rgba(15, 23, 42, .06) !important;
}
body.pcsm-theme .pcsm-t-card.pcsm-t-accent { border-top: 4px solid var(--pt-accent, #1565c0) !important; }
body.pcsm-theme .pcsm-t-card.pcsm-t-accent > :is(h2, h3, h4):first-child,
body.pcsm-theme .pcsm-t-card.pcsm-t-accent > :is(h2, h3, h4):first-of-type { color: var(--pt-accent-ink, #0b3d6b) !important; }
body.pcsm-theme .pcsm-t-inner { border-radius: 12px !important; }

/* ---------- Tabs ---------- */
body.pcsm-theme .nav-tab-wrapper,
body.pcsm-theme .pcsm-t-tabs {
    border-bottom: 0 !important;
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    padding: 6px !important;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 14px rgba(15, 23, 42, .05);
}
body.pcsm-theme .nav-tab-wrapper .nav-tab,
body.pcsm-theme .pcsm-t-tabs > a {
    float: none !important;
    margin: 0 !important;
    border: 1px solid transparent !important;
    background: #f1f5f9 !important;
    color: #334155 !important;
    border-radius: 10px !important;
    padding: 8px 14px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    box-shadow: none !important;
    transition: background .15s, color .15s, transform .15s;
}
body.pcsm-theme .nav-tab-wrapper .nav-tab:hover,
body.pcsm-theme .pcsm-t-tabs > a:hover { background: #e0ecff !important; color: var(--pt-blue) !important; }
body.pcsm-theme .nav-tab-wrapper .nav-tab-active,
body.pcsm-theme .nav-tab-wrapper .nav-tab-active:hover,
body.pcsm-theme .pcsm-t-tabs > a.pcsm-t-tab-active {
    background: var(--pt-grad) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(21, 101, 192, .3) !important;
}

/* ---------- Tables ---------- */
body.pcsm-theme .pcsm-t-table thead th,
body.pcsm-theme .pcsm-t-table > tbody > tr.pcsm-t-headrow > th {
    background: var(--pt-navy) !important;
    color: #fff !important;
    border-color: rgba(255, 255, 255, .12) !important;
    font-weight: 700 !important;
}
body.pcsm-theme .pcsm-t-table thead th a,
body.pcsm-theme .pcsm-t-table thead th span { color: #fff !important; }
body.pcsm-theme .pcsm-t-table thead th:first-child { border-top-left-radius: 10px; }
body.pcsm-theme .pcsm-t-table thead th:last-child { border-top-right-radius: 10px; }
body.pcsm-theme .pcsm-t-table > tbody > tr:nth-child(even):not(.pcsm-t-headrow) > td { background-color: #f8fafc; }
body.pcsm-theme .pcsm-t-table > tbody > tr:not(.pcsm-t-headrow):hover > td { background-color: #eef5ff !important; }
body.pcsm-theme .pcsm-t-table { border-radius: 10px; border-color: var(--pt-line) !important; }

/* ---------- Buttons ---------- */
body.pcsm-theme :is(#wpbody-content, .pcsm-app-main, .pcsm-login-frame) :is(.button, button, input[type="submit"], input[type="button"], a[class*="btn"]) {
    border-radius: 10px !important;
    transition: transform .12s, box-shadow .12s, filter .12s;
}
body.pcsm-theme :is(#wpbody-content, .pcsm-app-main, .pcsm-login-frame) :is(.button, button, input[type="submit"], input[type="button"]):hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(15, 23, 42, .15) !important;
    filter: brightness(1.05);
}
body.pcsm-theme #wpbody-content .button-primary,
body.pcsm-theme .pcsm-login-frame button[type="submit"] {
    background: linear-gradient(120deg, #1565c0, #0b3d6b) !important;
    border-color: #0b3d6b !important;
    color: #fff !important;
    text-shadow: none !important;
}

/* ---------- Form fields ---------- */
body.pcsm-theme :is(#wpbody-content, .pcsm-app-main, .pcsm-login-frame) :is(input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="url"], input[type="time"], input[type="month"], select, textarea) {
    border-radius: 10px !important;
    border-color: #cbd5e1 !important;
    background-color: #fff;
    transition: border-color .15s, box-shadow .15s;
}
body.pcsm-theme :is(#wpbody-content, .pcsm-app-main, .pcsm-login-frame) :is(input, select, textarea):focus {
    border-color: var(--pt-blue) !important;
    box-shadow: 0 0 0 3px rgba(21, 101, 192, .18) !important;
    outline: none !important;
}

/* ---------- Notices ---------- */
body.pcsm-theme #wpbody-content :is(.notice, div.updated, div.error) {
    border-radius: 12px !important;
    border-left-width: 5px !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .05) !important;
}
@media screen {
body.pcsm-theme #wpbody-content :is(.notice, div.updated, div.error) { padding: 4px 12px !important; margin: 0 0 10px !important; font-size: 12.5px; }
body.pcsm-theme #wpbody-content :is(.notice, div.updated, div.error) p { margin: 3px 0 !important; padding: 0 !important; font-size: 12.5px !important; line-height: 1.45 !important; }
body.pcsm-theme #wpbody-content :is(.notice, div.updated, div.error) .notice-dismiss { padding: 4px !important; top: 50% !important; transform: translateY(-50%); }
/* several notices share one row */
body.pcsm-theme .pcsm-t-noticerow { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; margin: 0 0 10px; }
body.pcsm-theme .pcsm-t-noticerow > * { margin: 0 !important; }

/* ---------- Information cards (title + one line, "you are here" bars, short notes) ---------- */
body.pcsm-theme .pcsm-t-info {
    padding: 10px 16px !important;
    margin-bottom: 14px !important;
    min-height: 0 !important;
    height: auto !important;
}
body.pcsm-theme .pcsm-t-info :is(h1, h2, h3, h4) { font-size: 15px !important; line-height: 1.35 !important; margin: 0 0 2px !important; padding: 0 !important; border: 0 !important; }
body.pcsm-theme .pcsm-t-info :is(p, li) { font-size: 12.5px !important; line-height: 1.45 !important; margin: 0 !important; }
body.pcsm-theme .pcsm-t-info > * + * { margin-top: 2px; }
body.pcsm-theme .pcsm-t-inforow { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 0 0 14px; align-items: stretch; }
body.pcsm-theme .pcsm-t-inforow > .pcsm-t-info { margin: 0 !important; width: auto !important; max-width: none !important; display: flex; flex-direction: column; justify-content: center; }
body.pcsm-theme .pcsm-t-inforow > .pcsm-t-info[style*="display: flex"],
body.pcsm-theme .pcsm-t-inforow > .pcsm-t-info[style*="display:flex"] { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
} /* end screen-only compact cards */

/* ---------- Portals ---------- */
body.pcsm-theme .pcsm-app-bar { background: var(--pt-grad) !important; box-shadow: 0 4px 16px rgba(11, 61, 107, .25); }
body.pcsm-theme .pcsm-app-bar a { color: #e0f2fe !important; }
body.pcsm-theme .pcsm-app-bar a:hover { color: #fde68a !important; }
body.pcsm-theme .pcsm-portal .pcsm-t-portal-head {
    background: var(--pt-grad) !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 28px rgba(11, 61, 107, .22) !important;
}
body.pcsm-theme .pcsm-portal .pcsm-t-portal-head h2 { color: #fff !important; }
body.pcsm-theme .pcsm-portal .pcsm-t-portal-head p { color: #dbeafe !important; }
body.pcsm-theme .pcsm-portal a.pcsm-t-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 23, 42, .12) !important; }
body.pcsm-theme .pcsm-portal a.pcsm-t-card { transition: transform .15s, box-shadow .15s; }
body.pcsm-theme .pcsm-portal details > summary { color: var(--pt-navy) !important; }

/* ---------- Login pages ---------- */
body.pcsm-theme.pcsm-app.pcsm-app-login {
    background: radial-gradient(circle at 12% 18%, rgba(21, 101, 192, .20), transparent 38%),
                radial-gradient(circle at 88% 82%, rgba(15, 118, 110, .20), transparent 38%),
                #eef2f7 !important;
    background-attachment: fixed !important;
}
body.pcsm-theme .pcsm-app-login { background: transparent !important; }
body.pcsm-theme .pcsm-app-login .brand .name { color: var(--pt-navy); }
body.pcsm-theme :is(.pcsm-portal, .pcsm-login-frame) :is(h1, h2, h3, h4, h5) { font-family: inherit !important; }
body.pcsm-theme .pcsm-login-frame {
    border: 0 !important;
    border-radius: 18px !important;
    box-shadow: 0 20px 45px rgba(11, 61, 107, .16) !important;
    position: relative;
    overflow: hidden;
    padding-top: 36px !important;
}
body.pcsm-theme .pcsm-login-frame::before {
    content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--pt-grad);
}
body.pcsm-theme .pcsm-login-frame h3 { color: var(--pt-navy) !important; }
body.pcsm-theme .pcsm-login-frame button[type="submit"] { height: 44px !important; font-size: 15px !important; }

/* Small screens */
@media (max-width: 782px) {
    body.pcsm-theme h1.pcsm-t-hero,
    body.pcsm-theme h2.pcsm-t-hero { font-size: 18px !important; padding: 16px 18px !important; }
    body.pcsm-theme .nav-tab-wrapper,
    body.pcsm-theme .pcsm-t-tabs { gap: 6px; }
    body.pcsm-theme .nav-tab-wrapper .nav-tab,
    body.pcsm-theme .pcsm-t-tabs > a { padding: 7px 10px !important; font-size: 12px !important; }
}

} /* @media screen */
