/* =========================================================
   CTB School System - Modern White UI
   Font: Sarabun
   ========================================================= */

:root {
    --bg: #f7f9fc;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --text: #18212f;
    --muted: #667085;
    --border: #e5eaf0;

    --primary: #1677ff;
    --primary-hover: #0f66dd;
    --primary-soft: #edf5ff;

    --success: #16a34a;
    --warning: #f59e0b;
    --danger: #dc2626;

    --sidebar-width: 268px;
    --header-height: 72px;

    --radius-sm: 10px;
    --radius: 14px;
    --radius-lg: 20px;

    --shadow-sm: 0 1px 3px rgba(16, 24, 40, .06);
    --shadow-md: 0 10px 32px rgba(16, 24, 40, .08);

    --transition: 180ms ease;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--bg);
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Sarabun", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--text);
    background: var(--bg);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

.app-shell {
    min-height: 100vh;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1000;
    display: flex;
    width: var(--sidebar-width);
    flex-direction: column;
    background: #fff;
    border-right: 1px solid var(--border);
    transition: transform var(--transition);
}

.sidebar-brand {
    min-height: var(--header-height);
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}

.brand-link {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 11px;
    flex: 1;
}

.school-logo,
.school-logo-placeholder {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 12px;
    object-fit: contain;
    background: var(--primary-soft);
}

.school-logo-placeholder {
    display: grid;
    place-items: center;
    font-weight: 700;
    color: var(--primary);
}

.brand-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.brand-text strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
}

.brand-text small {
    color: var(--muted);
    font-size: 12px;
}

.sidebar-close {
    display: none;
    border: 0;
    background: transparent;
    color: var(--muted);
    font-size: 26px;
    line-height: 1;
}

.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: 14px 12px 24px;
}

.nav-section-label {
    margin: 18px 10px 8px;
    color: #98a2b3;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.nav-section-label:first-child {
    margin-top: 4px;
}

.nav-item {
    position: relative;
    display: flex;
    min-height: 46px;
    align-items: center;
    gap: 11px;
    margin: 4px 0;
    padding: 10px 12px;
    border-radius: 12px;
    color: #475467;
    transition: background var(--transition), color var(--transition), transform var(--transition);
}

.nav-item:hover {
    color: var(--text);
    background: #f5f8fc;
    transform: translateX(1px);
}

.nav-item.active {
    color: var(--primary);
    background: var(--primary-soft);
    font-weight: 600;
}

.nav-icon {
    width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 24px;
    font-weight: 700;
}

.nav-item small {
    margin-left: auto;
    color: #98a2b3;
    font-size: 10px;
}

.nav-disabled {
    opacity: .52;
    cursor: default;
}

.nav-disabled:hover {
    background: transparent;
    transform: none;
}

.sidebar-bottom {
    padding: 12px;
    border-top: 1px solid var(--border);
}

.logout-link {
    display: flex;
    justify-content: center;
    padding: 10px 12px;
    color: #667085;
    border-radius: 10px;
}

.logout-link:hover {
    color: var(--danger);
    background: #fff4f4;
}

.app-main {
    min-height: 100vh;
    margin-left: var(--sidebar-width);
    display: flex;
    flex-direction: column;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 900;
    height: var(--header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 28px;
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(14px);
}

.topbar-left {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
}

.topbar-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
}

.topbar-subtitle {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.icon-btn {
    width: 42px;
    height: 42px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    color: #475467;
}

.icon-btn:hover {
    border-color: #d7dde7;
    box-shadow: var(--shadow-sm);
}

.mobile-menu-btn {
    display: none;
    padding: 11px;
}

.mobile-menu-btn span {
    display: block;
    width: 18px;
    height: 2px;
    margin: 3px auto;
    border-radius: 2px;
    background: currentColor;
}

.bell-icon {
    font-size: 22px;
    line-height: 1;
}

.user-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 5px 8px 5px 5px;
}

.user-avatar {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    border-radius: 12px;
    background: var(--primary-soft);
    color: var(--primary);
    font-weight: 700;
}

.user-chip-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.user-chip-text strong {
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.user-chip-text small {
    color: var(--muted);
    font-size: 11px;
}

.content-area {
    width: min(100%, 1600px);
    flex: 1;
    margin: 0 auto;
    padding: 28px;
    animation: contentFadeIn 220ms ease both;
}

@keyframes contentFadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
}

.page-heading h1 {
    margin: 0;
    font-size: 26px;
    line-height: 1.25;
}

.page-heading p {
    margin: 5px 0 0;
    color: var(--muted);
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.stat-card,
.panel {
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
}

.stat-card {
    padding: 19px;
    transition: transform var(--transition), box-shadow var(--transition);
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.stat-card-label {
    color: var(--muted);
    font-size: 13px;
}

.stat-card-value {
    margin-top: 7px;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
}

.stat-card-meta {
    margin-top: 9px;
    color: #98a2b3;
    font-size: 12px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(300px, .8fr);
    gap: 16px;
    margin-top: 16px;
}

.panel {
    padding: 20px;
}

.panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.panel-title h2 {
    margin: 0;
    font-size: 17px;
}

.quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.quick-link {
    display: flex;
    min-height: 82px;
    flex-direction: column;
    justify-content: center;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    transition: border var(--transition), background var(--transition), transform var(--transition);
}

.quick-link:hover {
    border-color: #c9d8ed;
    background: #fbfdff;
    transform: translateY(-1px);
}

.quick-link strong {
    font-size: 14px;
}

.quick-link small {
    margin-top: 3px;
    color: var(--muted);
}

.empty-state {
    padding: 28px 16px;
    text-align: center;
    color: var(--muted);
}

.app-footer {
    padding: 18px 28px 26px;
    color: #7a8493;
    font-size: 12px;
    text-align: center;
}

.sidebar-backdrop {
    display: none;
}

.mobile-bottom-nav {
    display: none;
}

/* Forms */
.form-group {
    margin-bottom: 16px;
}

.form-label {
    display: block;
    margin-bottom: 6px;
    color: #344054;
    font-size: 13px;
    font-weight: 600;
}

.form-control {
    width: 100%;
    height: 46px;
    padding: 0 13px;
    border: 1px solid #d9e0e9;
    border-radius: 11px;
    outline: 0;
    background: #fff;
    color: var(--text);
    transition: border var(--transition), box-shadow var(--transition);
}

.form-control:focus {
    border-color: #8fbeff;
    box-shadow: 0 0 0 4px rgba(22, 119, 255, .09);
}

.btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: 11px;
    font-weight: 600;
    transition: all var(--transition);
}

.btn-primary {
    color: #fff;
    background: var(--primary);
}

.btn-primary:hover {
    background: var(--primary-hover);
}

.btn-block {
    width: 100%;
}

.alert {
    margin-bottom: 15px;
    padding: 11px 13px;
    border-radius: 10px;
    font-size: 13px;
}

.alert-danger {
    color: #9b1c1c;
    background: #fff1f1;
    border: 1px solid #ffd8d8;
}

/* Public / Login / School selector */
.public-body {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 24px;
    background:
        radial-gradient(circle at 50% -10%, rgba(22,119,255,.07), transparent 36%),
        #f8fafc;
}

.public-card {
    width: min(100%, 460px);
    padding: 32px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: var(--shadow-md);
    animation: publicEnter 260ms ease both;
}

.public-card.compact {
    text-align: center;
}

@keyframes publicEnter {
    from { opacity: 0; transform: translateY(8px) scale(.995); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.public-logo {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    border-radius: 18px;
    color: var(--primary);
    background: var(--primary-soft);
    font-weight: 700;
}

.public-card h1 {
    margin: 0;
    font-size: 25px;
    text-align: center;
}

.public-card > p {
    margin: 7px 0 24px;
    color: var(--muted);
    text-align: center;
}

.login-school {
    margin-bottom: 24px;
    text-align: center;
}

.login-school-logo {
    width: 68px;
    height: 68px;
    margin: 0 auto 10px;
    object-fit: contain;
}

.login-school strong {
    display: block;
    font-size: 17px;
}

.selector-wrap {
    width: min(100%, 1500px);
    margin: 0 auto;
}

.selector-heading {
    margin-bottom: 34px;
    text-align: center;
}

.selector-heading h1 {
    margin: 0;
    font-size: clamp(28px, 4vw, 42px);
}

.selector-heading p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 17px;
}

.school-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.school-card {
    display: flex;
    min-height: 116px;
    align-items: center;
    gap: 15px;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    transition: all var(--transition);
}

.school-card:hover {
    border-color: #bfd5f3;
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.school-card-logo {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    flex: 0 0 54px;
    border-radius: 13px;
    background: var(--primary-soft);
    color: var(--primary);
    font-size: 22px;
    font-weight: 700;
    object-fit: contain;
}

.school-card-content {
    min-width: 0;
    flex: 1;
}

.school-card-content strong {
    display: block;
    overflow: hidden;
    font-size: 17px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.school-card-content small {
    display: block;
    margin-top: 3px;
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.school-card-arrow {
    color: #667085;
    font-size: 24px;
}

/* Module placeholders */
.module-hero {
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
}

.module-hero h1 {
    margin: 0;
    font-size: 24px;
}

.module-hero p {
    margin: 6px 0 0;
    color: var(--muted);
}

/* Responsive */
@media (max-width: 1180px) {
    .stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .school-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    :root {
        --header-height: 64px;
    }

    body {
        padding-bottom: 68px;
    }

    .sidebar {
        transform: translateX(-102%);
        box-shadow: var(--shadow-md);
    }

    body.sidebar-open .sidebar {
        transform: translateX(0);
    }

    .sidebar-close {
        display: block;
    }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 950;
        background: rgba(17, 24, 39, .36);
        backdrop-filter: blur(1px);
    }

    body.sidebar-open .sidebar-backdrop {
        display: block;
    }

    .app-main {
        margin-left: 0;
    }

    .mobile-menu-btn {
        display: inline-block;
    }

    .topbar {
        padding: 0 16px;
    }

    .topbar-title {
        font-size: 17px;
    }

    .topbar-subtitle {
        display: none;
    }

    .notification-btn,
    .user-chip-text {
        display: none;
    }

    .content-area {
        padding: 18px 14px 24px;
    }

    .page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-heading h1 {
        font-size: 23px;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .mobile-bottom-nav {
        position: fixed;
        inset: auto 0 0;
        z-index: 920;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        min-height: 64px;
        padding: 5px max(8px, env(safe-area-inset-right))
                 max(5px, env(safe-area-inset-bottom))
                 max(8px, env(safe-area-inset-left));
        background: rgba(255,255,255,.96);
        border-top: 1px solid var(--border);
        backdrop-filter: blur(14px);
    }

    .mobile-bottom-nav a,
    .mobile-bottom-nav button {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 1px;
        border: 0;
        background: transparent;
        color: #667085;
    }

    .mobile-bottom-nav a.active {
        color: var(--primary);
    }

    .bottom-icon {
        font-size: 20px;
        line-height: 1.1;
    }

    .mobile-bottom-nav small {
        font-size: 10px;
    }

    .app-footer {
        padding-bottom: 16px;
    }
}

@media (max-width: 620px) {
    .stat-grid,
    .school-grid {
        grid-template-columns: 1fr;
    }

    .quick-grid {
        grid-template-columns: 1fr;
    }

    .public-card {
        padding: 24px 20px;
        border-radius: 16px;
    }

    .school-card {
        min-height: 98px;
    }
}


/* =========================================================
   School Settings
   ========================================================= */

.school-alert-success {
    max-width: 1100px;
    color: #137333;
    background: #eaf7ee;
    border: 1px solid #ccebd7;
}

.school-settings-grid {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.school-brand-panel {
    position: sticky;
    top: calc(var(--header-height) + 18px);
}

.school-logo-preview {
    width: 180px;
    height: 180px;
    display: grid;
    place-items: center;
    margin: 6px auto 18px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background:
        linear-gradient(45deg, #f8fafc 25%, transparent 25%),
        linear-gradient(-45deg, #f8fafc 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #f8fafc 75%),
        linear-gradient(-45deg, transparent 75%, #f8fafc 75%),
        #fff;
    background-size: 22px 22px;
    background-position: 0 0, 0 11px, 11px -11px, -11px 0;
    overflow: hidden;
}

.school-logo-preview img {
    width: 100%;
    height: 100%;
    padding: 12px;
    object-fit: contain;
}

.school-logo-empty {
    width: 84px;
    height: 84px;
    display: grid;
    place-items: center;
    border-radius: 24px;
    color: var(--primary);
    background: var(--primary-soft);
    font-size: 24px;
    font-weight: 700;
}

.logo-upload-form {
    display: grid;
    gap: 10px;
}

.upload-dropzone {
    position: relative;
    display: flex;
    min-height: 92px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 14px;
    border: 1.5px dashed #cfd8e5;
    border-radius: 13px;
    background: #fafcff;
    text-align: center;
    cursor: pointer;
    transition: border var(--transition), background var(--transition);
}

.upload-dropzone:hover {
    border-color: var(--primary);
    background: var(--primary-soft);
}

.upload-dropzone strong {
    font-size: 13px;
}

.upload-dropzone small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.upload-dropzone input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.branding-tip,
.settings-note {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.6;
}

.domain-list {
    display: grid;
    gap: 8px;
}

.domain-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #fbfcfe;
}

.domain-item strong {
    display: block;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
}

.domain-item small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

.settings-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
}

.settings-badge.ok {
    color: #137333;
    background: #eaf7ee;
}

.settings-badge.pending {
    color: #9a6700;
    background: #fff8db;
}

.school-profile-panel {
    padding: 0;
    overflow: hidden;
}

.settings-section {
    padding: 24px;
    border-bottom: 1px solid var(--border);
}

.settings-section-heading {
    margin-bottom: 17px;
}

.settings-section-heading h2 {
    margin: 0;
    font-size: 17px;
}

.settings-section-heading p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.settings-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 16px;
}

.settings-form-grid .full {
    grid-column: 1 / -1;
}

.school-textarea {
    height: auto;
    min-height: 94px;
    padding-top: 11px;
    padding-bottom: 11px;
    resize: vertical;
}

.color-control {
    height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 10px;
    border: 1px solid #d9e0e9;
    border-radius: 11px;
    background: #fff;
}

.color-control input[type="color"] {
    width: 40px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.color-control code {
    color: #475467;
    font-size: 12px;
}

.settings-save-bar {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 24px;
    background: rgba(255,255,255,.96);
    border-top: 1px solid var(--border);
    backdrop-filter: blur(12px);
}

.settings-save-bar strong {
    display: block;
    font-size: 13px;
}

.settings-save-bar small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

@media (max-width: 980px) {
    .school-settings-grid {
        grid-template-columns: 1fr;
    }

    .school-brand-panel {
        position: static;
    }
}

@media (max-width: 620px) {
    .settings-form-grid {
        grid-template-columns: 1fr;
    }

    .settings-form-grid .full {
        grid-column: auto;
    }

    .settings-section {
        padding: 18px;
    }

    .settings-save-bar {
        align-items: stretch;
        flex-direction: column;
        padding: 14px 18px;
    }

    .settings-save-bar .btn {
        width: 100%;
    }
}


/* =========================================================
   Academic Year / Semester Settings
   ========================================================= */

.academic-alert-success {
    max-width: 1180px;
    color: #137333;
    background: #eaf7ee;
    border: 1px solid #ccebd7;
}

.academic-current-strip {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 18px;
    padding: 16px 20px;
    border: 1px solid #dbe7f7;
    border-radius: 14px;
    background: linear-gradient(135deg, #fbfdff, var(--primary-soft));
}

.academic-current-strip > div:not(.academic-current-divider) {
    display: flex;
    align-items: baseline;
    gap: 9px;
}

.academic-current-strip span {
    color: var(--muted);
    font-size: 12px;
}

.academic-current-strip strong {
    color: var(--primary);
    font-size: 18px;
}

.academic-current-divider {
    width: 1px;
    align-self: stretch;
    background: #d8e2ef;
}

.academic-empty {
    padding: 42px 24px;
    text-align: center;
}

.academic-empty-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto 14px;
    border-radius: 18px;
    color: var(--primary);
    background: var(--primary-soft);
    font-weight: 700;
}

.academic-empty h2 {
    margin: 0;
    font-size: 20px;
}

.academic-empty p {
    max-width: 560px;
    margin: 7px auto 18px;
    color: var(--muted);
}

.academic-year-list {
    display: grid;
    gap: 18px;
}

.academic-year-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.academic-year-card.current {
    border-color: #b8d5fb;
    box-shadow: 0 8px 30px rgba(22,119,255,.07);
}

.academic-year-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--border);
    background: #fcfdff;
}

.academic-year-title-row,
.semester-title-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.academic-year-title-row h2 {
    margin: 0;
    font-size: 21px;
}

.academic-year-meta {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
}

.academic-badge {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
}

.academic-badge.current,
.academic-badge.active {
    color: #126b38;
    background: #e9f8ef;
}

.academic-badge.draft {
    color: #5d6878;
    background: #f2f4f7;
}

.academic-badge.closed,
.academic-badge.archived {
    color: #8a5412;
    background: #fff5df;
}

.academic-semester-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 18px;
}

.semester-card {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
}

.semester-card.current {
    border-color: #a8cdfb;
    background: linear-gradient(180deg, #fff, #fbfdff);
}

.semester-title-line h3 {
    margin: 0;
    font-size: 17px;
}

.semester-card-top p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.semester-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 15px 0;
}

.semester-stats > div {
    padding: 10px;
    border-radius: 10px;
    background: #f8fafc;
    text-align: center;
}

.semester-stats strong {
    display: block;
    font-size: 18px;
}

.semester-stats span {
    display: block;
    margin-top: 1px;
    color: var(--muted);
    font-size: 9px;
}

.semester-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.btn-small {
    min-height: 36px;
    padding: 7px 11px;
    font-size: 12px;
}

.academic-details,
.academic-year-edit {
    margin-top: 12px;
    border-top: 1px solid var(--border);
}

.academic-details summary,
.academic-year-edit summary {
    padding-top: 12px;
    color: var(--muted);
    font-size: 11px;
    cursor: pointer;
    user-select: none;
}

.academic-inline-form {
    display: grid;
    gap: 11px;
    margin-top: 12px;
}

.academic-two-cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.semester-copy-area {
    margin: 0 18px 18px;
    padding: 17px;
    border: 1px solid #dbe7f7;
    border-radius: 14px;
    background: #f9fcff;
}

.semester-copy-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 13px;
}

.semester-copy-heading strong {
    font-size: 14px;
}

.semester-copy-heading p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 10px;
}

.semester-copy-heading > span {
    align-self: flex-start;
    padding: 4px 9px;
    border-radius: 999px;
    color: var(--primary);
    background: var(--primary-soft);
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.semester-copy-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 8px;
    align-items: stretch;
}

.copy-option {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 72px;
    padding: 11px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}

.copy-option input {
    margin-top: 3px;
}

.copy-option strong,
.copy-option small {
    display: block;
}

.copy-option strong {
    font-size: 11px;
}

.copy-option small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
    line-height: 1.45;
}

.academic-year-edit {
    margin: 0 18px 18px;
    padding-top: 0;
}

.academic-year-edit summary {
    padding: 12px 0 0;
}

.academic-year-edit-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: end;
    margin-top: 12px;
}

.create-academic-year-card {
    margin-top: 20px;
    padding: 24px;
    scroll-margin-top: calc(var(--header-height) + 20px);
}

.academic-create-grid {
    display: grid;
    grid-template-columns: minmax(180px, .45fr) minmax(280px, 1fr);
    gap: 15px;
}

.academic-current-check {
    display: flex;
    align-items: flex-end;
}

.academic-current-check label {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #fbfcfe;
    cursor: pointer;
}

.academic-current-check strong,
.academic-current-check small {
    display: block;
}

.academic-current-check strong {
    font-size: 12px;
}

.academic-current-check small {
    margin-top: 1px;
    color: var(--muted);
    font-size: 9px;
}

.academic-date-block {
    margin-top: 18px;
}

.academic-date-block h3 {
    margin: 0 0 9px;
    font-size: 13px;
}

.academic-semester-create-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.semester-create-box {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fbfcfe;
}

.semester-create-box > strong {
    grid-column: 1 / -1;
    font-size: 13px;
}

.academic-create-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
}

@media (max-width: 1280px) {
    .semester-copy-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .semester-copy-form .btn {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .academic-current-strip {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .academic-current-divider {
        width: 100%;
        height: 1px;
    }

    .academic-current-strip > div:not(.academic-current-divider) {
        justify-content: space-between;
        width: 100%;
    }

    .academic-year-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .academic-semester-grid,
    .academic-semester-create-grid,
    .academic-create-grid {
        grid-template-columns: 1fr;
    }

    .academic-year-header form,
    .academic-year-header .btn {
        width: 100%;
    }

    .semester-copy-form,
    .academic-year-edit-form,
    .academic-two-cols,
    .semester-create-box {
        grid-template-columns: 1fr;
    }

    .semester-create-box > strong {
        grid-column: auto;
    }

    .semester-copy-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .semester-stats {
        grid-template-columns: repeat(3, 1fr);
    }

    .academic-create-actions .btn {
        width: 100%;
    }
}


/* =========================================================
   V5 User / Position / Role / Permission
   ========================================================= */

.field-help{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.45}
.access-alert-success{max-width:1180px;color:#137333;background:#eaf7ee;border:1px solid #ccebd7}
.btn-ghost{color:#526071;background:transparent;border:1px solid transparent}
.btn-ghost:hover{background:#f4f6f8;border-color:var(--border)}
.btn-danger-soft{color:#b42318;background:#fff1f0;border:1px solid #ffd3cf}
.btn-danger-soft:hover{background:#ffe6e3}
.btn-success-soft{color:#137333;background:#edf9f1;border:1px solid #ccebd7}
.sidebar-account-link{display:flex;align-items:center;min-height:36px;margin-bottom:6px;padding:8px 10px;border-radius:9px;color:rgba(255,255,255,.74);font-size:11px;text-decoration:none}
.sidebar-account-link:hover{color:#fff;background:rgba(255,255,255,.07)}

.access-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:16px}
.access-stat-card{padding:15px 17px;border:1px solid var(--border);border-radius:13px;background:#fff;box-shadow:var(--shadow-sm)}
.access-stat-card span{display:block;color:var(--muted);font-size:10px}
.access-stat-card strong{display:block;margin-top:3px;font-size:23px}

.access-filter-panel{margin-bottom:16px}
.access-filter-grid{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(150px,.75fr)) auto;gap:10px;align-items:end}
.access-filter-actions{display:flex;gap:6px}
.access-table-count{color:var(--muted);font-size:11px}
.access-user-list{display:grid}
.access-user-row{display:grid;grid-template-columns:44px minmax(260px,1fr) 145px auto;gap:13px;align-items:center;padding:13px 0;border-top:1px solid var(--border)}
.access-user-row:first-child{border-top:0}
.access-user-row.inactive{opacity:.64}
.access-user-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:var(--primary);background:var(--primary-soft);font-size:16px;font-weight:700}
.access-user-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.access-user-name-line>strong{font-size:13px}
.access-user-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:3px;color:var(--muted);font-size:9px}
.access-role-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.access-role-chips span{display:inline-flex;align-items:center;min-height:21px;padding:2px 7px;border-radius:999px;color:#344054;background:#f2f4f7;font-size:9px}
.access-role-chips span.muted{color:var(--muted);background:transparent;padding-left:0}
.access-user-login span,.access-user-login strong{display:block}
.access-user-login span{color:var(--muted);font-size:9px}
.access-user-login strong{margin-top:2px;font-size:10px;font-weight:500}
.access-user-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px}

.access-badge{display:inline-flex;align-items:center;min-height:21px;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:700;white-space:nowrap}
.access-badge.admin{color:#1554ad;background:#eaf3ff}
.access-badge.off{color:#9b2c25;background:#fff0ef}
.access-badge.temp{color:#8a5412;background:#fff4d8}
.access-badge.inherited{color:#126b38;background:#e9f8ef}
.access-badge.neutral{color:#667085;background:#f2f4f7}

.access-empty-state{display:flex;min-height:150px;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:var(--muted);text-align:center}
.access-empty-state strong{color:var(--text);font-size:14px}
.access-empty-state span{font-size:10px}
.access-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;padding-top:16px;border-top:1px solid var(--border)}
.access-pagination a{min-width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;color:#475467;background:#fff;font-size:10px;text-decoration:none}
.access-pagination a.active{color:#fff;background:var(--primary);border-color:var(--primary)}

.access-form-alert{max-width:1050px}
.access-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start;max-width:1180px}
.access-form-main{padding:0;overflow:hidden}
.access-form-section{padding:22px;border-bottom:1px solid var(--border)}
.access-form-section:last-child{border-bottom:0}
.access-two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.access-name-grid{display:grid;grid-template-columns:.55fr 1fr 1fr;gap:13px}
.access-gap-top{margin-top:14px}
.access-form-side,.access-sticky-card{position:sticky;top:calc(var(--header-height) + 16px)}
.access-form-side h2,.user-access-summary h2{margin:0 0 14px;font-size:16px}
.access-form-side-note{padding:10px 0;border-top:1px solid var(--border)}
.access-form-side-note:first-of-type{border-top:0}
.access-form-side-note strong,.access-form-side-note span{display:block}
.access-form-side-note strong{font-size:11px}
.access-form-side-note span{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.5}
.access-role-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.access-check-card{display:flex;gap:8px;min-height:60px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}
.access-check-card.system{border-color:#cfe2fa;background:#f9fcff}
.access-check-card input{margin-top:3px}
.access-check-card strong,.access-check-card small{display:block}
.access-check-card strong{font-size:10px}
.access-check-card small{margin-top:2px;color:var(--muted);font-size:8.5px}
.access-inline-link{display:inline-block;margin-top:10px;color:var(--primary);font-size:10px;text-decoration:none}
.access-info-box{padding:11px 13px;border:1px solid #cfe2fa;border-radius:10px;color:#315273;background:#f4f9ff;font-size:10px;line-height:1.55}

.access-narrow{width:100%;max-width:520px;margin:30px auto}
.password-card{padding:26px}
.password-card h1{margin:0;font-size:21px}
.access-form-stack{display:grid;gap:13px;margin-top:16px}

.access-split-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}
.access-simple-list{display:grid}
.access-simple-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:66px;padding:10px 0;border-top:1px solid var(--border)}
.access-simple-row:first-child{border-top:0}
.access-simple-order{color:var(--muted);font-size:10px;text-align:center}
.access-simple-main strong{font-size:12px}
.access-simple-main small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.access-simple-actions{display:flex;gap:5px}
.access-textarea{height:auto;min-height:76px;padding-top:10px;resize:vertical}
.access-switch-row{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe;cursor:pointer}
.access-switch-row input{margin-top:3px}
.access-switch-row strong,.access-switch-row small{display:block}
.access-switch-row strong{font-size:10px}
.access-switch-row small{margin-top:2px;color:var(--muted);font-size:8.5px}

.access-principle-strip{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:16px;padding:13px 18px;border:1px solid var(--border);border-radius:13px;background:#fff}
.access-principle-strip>div{text-align:center}
.access-principle-strip strong,.access-principle-strip div span{display:block}
.access-principle-strip strong{font-size:11px}
.access-principle-strip div span{margin-top:2px;color:var(--muted);font-size:8.5px}
.access-principle-strip>span{color:#98a2b3;font-size:18px}

.role-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.role-list-panel{position:sticky;top:calc(var(--header-height) + 16px)}
.role-list{display:grid;gap:5px}
.role-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid transparent;border-radius:9px;color:var(--text);text-decoration:none}
.role-list-item:hover{background:#f7f9fc}
.role-list-item.active{border-color:#cfe2fa;background:#f4f9ff}
.role-list-item strong,.role-list-item small{display:block}
.role-list-item strong{font-size:10px}
.role-list-item small{margin-top:2px;color:var(--muted);font-size:8px}
.role-editor{padding:0;overflow:hidden}
.role-editor form>*:not(.permission-module-list):not(.role-editor-actions){margin-left:20px;margin-right:20px}
.role-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:20px;margin-bottom:16px}
.role-editor-header h2{margin:0;font-size:18px}
.role-editor-header p{margin:4px 0 0;color:var(--muted);font-size:10px}
.role-code-box code{display:flex;min-height:46px;align-items:center;padding:0 12px;border:1px solid var(--border);border-radius:10px;color:#475467;background:#f8fafc;font-size:9px}
.permission-matrix-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:22px!important;margin-bottom:10px!important}
.permission-matrix-heading h3{margin:0;font-size:14px}
.permission-matrix-heading p{margin:3px 0 0;color:var(--muted);font-size:9px}
.permission-matrix-heading>span{color:var(--muted);font-size:9px}

.permission-module-list,.direct-permission-list{display:grid;border-top:1px solid var(--border)}
.permission-module{border-bottom:1px solid var(--border)}
.permission-module>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 20px;background:#fbfcfe;cursor:pointer;list-style:none}
.permission-module>summary::-webkit-details-marker{display:none}
.permission-module>summary strong,.permission-module>summary small{display:block}
.permission-module>summary strong{font-size:10px}
.permission-module>summary small,.permission-module>summary>span{color:var(--muted);font-size:8px}
.permission-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 20px 13px}
.permission-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:7px;align-items:flex-start;padding:8px;border-radius:8px}
.permission-item:hover{background:#f8fafc}
.permission-item input{margin-top:3px}
.permission-item-text strong,.permission-item-text small{display:block}
.permission-item-text strong{font-size:9.5px}
.permission-item-text small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.4}
.permission-item code,.direct-permission-text code{color:#667085;font-size:7.5px}
.role-editor-actions{display:flex;justify-content:flex-end;padding:15px 20px;background:#fcfdff}
.role-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;border-top:1px solid #ffd7d2;background:#fffafa}
.role-danger-zone strong,.role-danger-zone span{display:block}
.role-danger-zone strong{color:#b42318;font-size:10px}
.role-danger-zone span{margin-top:2px;color:#8e5b57;font-size:8px}

.user-access-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:16px;align-items:start}
.direct-permission-list{margin:0 -20px -20px}
.direct-permission-items{display:grid;padding:4px 20px 10px}
.direct-permission-row{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:center;padding:9px 0;border-top:1px solid #f0f2f5}
.direct-permission-row:first-child{border-top:0}
.direct-permission-text strong,.direct-permission-text small,.direct-permission-text code{display:block}
.direct-permission-text strong{font-size:9.5px}
.direct-permission-text small{margin-top:2px;color:var(--muted);font-size:8px}
.direct-permission-text code{margin-top:3px}
.direct-permission-state{display:grid;grid-template-columns:76px 1fr;gap:7px;align-items:center}
.permission-effect-select{height:36px;font-size:9px}
.access-summary-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:41px;border-top:1px solid var(--border)}
.access-summary-item span{color:var(--muted);font-size:9px}
.access-summary-item strong{font-size:13px}

@media(max-width:1120px){
  .access-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .access-filter-search{grid-column:1/-1}
  .access-user-row{grid-template-columns:44px minmax(0,1fr) auto}
  .access-user-login{display:none}
  .access-role-option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .access-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .access-form-layout,.access-split-layout,.role-layout,.user-access-layout{grid-template-columns:1fr}
  .access-form-side,.access-sticky-card,.role-list-panel{position:static}
  .role-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .access-stat-grid,.access-filter-grid,.access-two-cols,.access-name-grid,.access-role-option-grid,.permission-items,.role-list{grid-template-columns:1fr}
  .access-user-row{grid-template-columns:38px minmax(0,1fr);align-items:start}
  .access-user-avatar{width:38px;height:38px}
  .access-user-actions{grid-column:1/-1;justify-content:flex-start;padding-left:50px}
  .access-filter-actions{grid-column:1/-1}
  .access-principle-strip{gap:8px;padding:11px 8px}
  .access-principle-strip>span{font-size:13px}
  .direct-permission-row{grid-template-columns:1fr}
  .direct-permission-state{grid-template-columns:90px 1fr}
  .role-editor form>*:not(.permission-module-list):not(.role-editor-actions){margin-left:14px;margin-right:14px}
  .permission-module>summary,.permission-items,.direct-permission-items{padding-left:14px;padding-right:14px}
  .role-danger-zone{align-items:stretch;flex-direction:column}
  .role-danger-zone .btn,.role-danger-zone form{width:100%}
}


/* =========================================================
   V6 Classroom / Advisor / Student Enrollment
   ========================================================= */

.academic-v6-notice{margin-bottom:16px}
.academic-v6-notice a{margin-left:6px;color:var(--primary);text-decoration:none}

.academic-v6-summary,.classroom-v6-summary,.student-v6-summary{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px
}
.academic-v6-summary>div,.classroom-v6-summary>div,.student-v6-summary>div{
    padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)
}
.academic-v6-summary span,.classroom-v6-summary span,.student-v6-summary span{
    display:block;color:var(--muted);font-size:9px
}
.academic-v6-summary strong,.classroom-v6-summary strong,.student-v6-summary strong{
    display:block;margin-top:2px;font-size:20px
}

.academic-v6-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.academic-v6-menu-card{
    display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;
    min-height:92px;padding:17px;border:1px solid var(--border);border-radius:14px;
    color:var(--text);background:#fff;box-shadow:var(--shadow-sm);text-decoration:none
}
.academic-v6-menu-card:hover{border-color:#bdd8fb;box-shadow:0 8px 26px rgba(22,119,255,.08)}
.academic-v6-menu-card.primary{background:linear-gradient(135deg,#fff,#f5faff);border-color:#cfe2fa}
.academic-v6-menu-card.disabled{opacity:.58;cursor:default}
.academic-v6-menu-icon{
    width:46px;height:46px;display:grid;place-items:center;border-radius:13px;
    color:var(--primary);background:var(--primary-soft);font-size:17px;font-weight:700
}
.academic-v6-menu-card strong,.academic-v6-menu-card small{display:block}
.academic-v6-menu-card strong{font-size:13px}
.academic-v6-menu-card small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.45}
.academic-v6-menu-card>b{color:var(--muted);font-size:10px}

.classroom-v6-term-panel{margin-bottom:14px}
.classroom-v6-term-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:720px}
.classroom-v6-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}
.classroom-v6-list-panel{padding:0;overflow:hidden}
.classroom-v6-list-panel>.panel-title{padding:18px 20px;margin:0;border-bottom:1px solid var(--border)}
.classroom-v6-list-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:9px}
.classroom-v6-list{display:grid}
.classroom-v6-card{padding:16px 20px;border-top:1px solid var(--border)}
.classroom-v6-card:first-child{border-top:0}
.classroom-v6-card.inactive{opacity:.62}
.classroom-v6-card-main{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px}
.classroom-v6-grade{
    width:50px;height:50px;display:grid;place-items:center;border-radius:14px;
    color:var(--primary);background:var(--primary-soft);font-size:13px;font-weight:700
}
.classroom-v6-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.classroom-v6-title strong{font-size:14px}
.classroom-v6-meta{display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:4px;color:var(--muted);font-size:9px}
.classroom-v6-advisors{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.classroom-v6-advisor-chip{
    display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:9px;
    background:#f4f8fd;border:1px solid #dce9f8;font-size:9px
}
.classroom-v6-advisor-chip span,.classroom-v6-advisor-chip small{display:block}
.classroom-v6-advisor-chip small{margin-top:1px;color:var(--muted);font-size:7.5px}
.classroom-v6-advisor-chip form{display:flex}
.classroom-v6-advisor-chip button{
    width:20px;height:20px;border:0;border-radius:50%;color:#8d4b46;background:#fff;cursor:pointer
}
.classroom-v6-no-advisor{color:#a06a21;font-size:9px}
.classroom-v6-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px;margin-top:11px}

.classroom-v6-advisor-form{margin-top:11px;border-top:1px dashed var(--border)}
.classroom-v6-advisor-form>summary{padding-top:10px;color:var(--primary);font-size:9px;cursor:pointer}
.advisor-picker-form{
    display:grid;grid-template-columns:.65fr 1fr;gap:10px;margin-top:10px;padding:12px;
    border-radius:11px;background:#fbfcfe;border:1px solid var(--border)
}
.advisor-select{height:auto;min-height:145px;padding:5px}
.advisor-picker-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px}
.classroom-v6-form-card h2{font-size:16px}

.student-v6-filter{margin-bottom:14px}
.student-v6-filter-grid{
    display:grid;grid-template-columns:repeat(4,minmax(130px,.7fr)) minmax(210px,1.3fr) auto;
    gap:9px;align-items:end
}
.student-v6-filter-actions{display:flex;gap:5px}
.student-v6-list-panel{overflow:hidden}
.student-v6-table-wrap{overflow:auto}
.student-v6-table{width:100%;border-collapse:collapse}
.student-v6-table th,.student-v6-table td{
    padding:10px 9px;border-top:1px solid var(--border);text-align:left;white-space:nowrap
}
.student-v6-table th{color:var(--muted);font-size:8.5px;background:#fbfcfe}
.student-v6-table td{font-size:9.5px}
.student-v6-table td strong,.student-v6-table td small{display:block}
.student-v6-table td small{margin-top:2px;color:var(--muted);font-size:8px}
.student-v6-class-no{font-size:13px!important;font-weight:700;text-align:center!important}
.student-v6-room-pill,.student-v6-status{
    display:inline-flex;align-items:center;min-height:23px;padding:3px 7px;border-radius:999px;font-size:8.5px
}
.student-v6-room-pill{color:#1554ad;background:#eaf3ff}
.student-v6-status.active,.student-v6-status.moved_in{color:#137333;background:#e9f8ef}
.student-v6-status.moved_out,.student-v6-status.withdrawn{color:#9b2c25;background:#fff0ef}
.student-v6-status.graduated{color:#6246a8;background:#f1edff}
.student-v6-status.inactive{color:#667085;background:#f2f4f7}

@media(max-width:1100px){
  .classroom-v6-layout{grid-template-columns:1fr}
  .classroom-v6-form-card{position:static}
  .student-v6-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .student-v6-search{grid-column:span 2}
}
@media(max-width:760px){
  .academic-v6-summary,.classroom-v6-summary,.student-v6-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .academic-v6-menu-grid{grid-template-columns:1fr}
  .classroom-v6-term-form,.advisor-picker-form{grid-template-columns:1fr}
  .advisor-picker-bottom{grid-column:auto;grid-template-columns:1fr}
  .student-v6-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .student-v6-search{grid-column:1/-1}
}
@media(max-width:520px){
  .academic-v6-summary,.classroom-v6-summary,.student-v6-summary{grid-template-columns:1fr}
  .student-v6-filter-grid{grid-template-columns:1fr}
  .student-v6-filter-actions{grid-column:1/-1}
  .classroom-v6-card{padding:14px}
}


/* =========================================================
   V7 Subjects / Course Offerings / Teachers
   ========================================================= */

.subject-v7-filter,.course-v7-filter,.course-v7-term-picker{margin-bottom:14px}
.subject-v7-filter-grid{
    display:grid;
    grid-template-columns:160px 160px minmax(180px,1fr) 150px minmax(220px,1.2fr) auto;
    gap:9px;align-items:end
}
.subject-v7-filter-actions,.course-v7-filter-actions{display:flex;gap:5px}
.subject-v7-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}
.subject-v7-list-panel{padding:0;overflow:hidden}
.subject-v7-list-panel>.panel-title{padding:18px 20px;margin:0;border-bottom:1px solid var(--border)}
.subject-v7-list-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:9px}
.subject-v7-list{display:grid}
.subject-v7-row{
    display:grid;grid-template-columns:92px minmax(0,1fr) 70px auto;gap:13px;align-items:center;
    padding:14px 20px;border-top:1px solid var(--border)
}
.subject-v7-row:first-child{border-top:0}
.subject-v7-row.inactive{opacity:.62}
.subject-v7-code{
    min-height:38px;display:flex;align-items:center;justify-content:center;
    padding:6px 8px;border-radius:10px;color:var(--primary);background:var(--primary-soft);
    font-size:10px;font-weight:700;text-align:center
}
.subject-v7-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.subject-v7-title strong{font-size:12px}
.subject-v7-meta{display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:4px;color:var(--muted);font-size:8.5px}
.subject-v7-used{text-align:center}
.subject-v7-used span,.subject-v7-used strong{display:block}
.subject-v7-used span{color:var(--muted);font-size:8px}
.subject-v7-used strong{margin-top:2px;font-size:14px}
.subject-v7-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.subject-v7-form-card h2{font-size:16px}
.subject-v7-number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}

.course-v7-summary{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px
}
.course-v7-summary>div{
    padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)
}
.course-v7-summary span,.course-v7-summary strong{display:block}
.course-v7-summary span{color:var(--muted);font-size:9px}
.course-v7-summary strong{margin-top:2px;font-size:20px}

.course-v7-filter-grid{
    display:grid;
    grid-template-columns:150px 160px 140px minmax(180px,1fr) 145px minmax(220px,1.2fr) auto;
    gap:9px;align-items:end
}
.course-v7-list-panel{padding:0;overflow:hidden}
.course-v7-list-panel>.panel-title{padding:18px 20px;margin:0;border-bottom:1px solid var(--border)}
.course-v7-list{display:grid}
.course-v7-row{
    display:grid;grid-template-columns:92px minmax(0,1fr) 70px auto;gap:13px;align-items:center;
    padding:15px 20px;border-top:1px solid var(--border)
}
.course-v7-row:first-child{border-top:0}
.course-v7-subject-code{
    min-height:40px;display:flex;align-items:center;justify-content:center;
    padding:7px 8px;border-radius:10px;color:var(--primary);background:var(--primary-soft);
    font-size:10px;font-weight:700;text-align:center
}
.course-v7-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.course-v7-title strong{font-size:12.5px}
.course-v7-offering-name{margin-top:2px;color:#475467;font-size:9px}
.course-v7-meta{display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:4px;color:var(--muted);font-size:8.5px}
.course-v7-status{
    display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:999px;
    font-size:8px;font-weight:700
}
.course-v7-status.draft{color:#8a5412;background:#fff4d8}
.course-v7-status.active{color:#137333;background:#e9f8ef}
.course-v7-status.closed{color:#9b2c25;background:#fff0ef}
.course-v7-status.archived{color:#667085;background:#f2f4f7}
.course-v7-chip-area{display:grid;gap:5px;margin-top:8px}
.course-v7-chip-area>div{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.course-v7-chip-area b{width:32px;color:#667085;font-size:8px}
.course-v7-chip-area span{
    display:inline-flex;min-height:21px;align-items:center;padding:2px 7px;border-radius:999px;
    color:#344054;background:#f2f4f7;font-size:8px
}
.course-v7-chip-area em{color:#98a2b3;font-size:8px;font-style:normal}
.course-v7-students{text-align:center}
.course-v7-students span,.course-v7-students strong{display:block}
.course-v7-students span{color:var(--muted);font-size:8px}
.course-v7-students strong{margin-top:2px;font-size:15px}
.course-v7-actions{display:flex;justify-content:flex-end}

.course-v7-term-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:720px}
.course-v7-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.course-v7-form-main{padding:0;overflow:hidden}
.course-v7-form-section{padding:22px;border-top:1px solid var(--border)}
.course-v7-form-section:first-child{border-top:0}
.course-v7-classroom-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.course-v7-classroom-card{
    display:flex;gap:8px;align-items:flex-start;padding:10px;border:1px solid var(--border);
    border-radius:10px;background:#fff;cursor:pointer
}
.course-v7-classroom-card:has(input:checked){border-color:#b9d9ff;background:#f4f9ff}
.course-v7-classroom-card input{margin-top:3px}
.course-v7-classroom-card strong,.course-v7-classroom-card small{display:block}
.course-v7-classroom-card strong{font-size:10px}
.course-v7-classroom-card small{margin-top:2px;color:var(--muted);font-size:8px}
.course-v7-teacher-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.course-v7-teacher-select{height:auto;min-height:168px;margin-top:7px;padding:5px}
.course-v7-form-side h2{margin:0 0 14px;font-size:16px}
.course-v7-roster-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:12px 0}
.course-v7-roster-mini>div{
    padding:9px 7px;border:1px solid var(--border);border-radius:9px;background:#fbfcfe;text-align:center
}
.course-v7-roster-mini span,.course-v7-roster-mini strong{display:block}
.course-v7-roster-mini span{color:var(--muted);font-size:7.5px}
.course-v7-roster-mini strong{margin-top:2px;font-size:13px}
.course-v7-roster-rooms{display:grid;margin:10px 0;border-top:1px solid var(--border)}
.course-v7-roster-rooms>div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--border)}
.course-v7-roster-rooms span,.course-v7-roster-rooms strong{font-size:8.5px}
.course-v7-sync-panel{
    display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px
}
.course-v7-sync-panel h2{margin:0;font-size:14px}
.course-v7-sync-panel p{margin:4px 0 0;max-width:760px;color:var(--muted);font-size:9px;line-height:1.5}

@media(max-width:1180px){
  .subject-v7-filter-grid,.course-v7-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .subject-v7-search,.course-v7-search{grid-column:span 2}
  .course-v7-classroom-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .subject-v7-layout,.course-v7-form-layout{grid-template-columns:1fr}
  .subject-v7-form-card,.course-v7-form-side{position:static}
  .course-v7-classroom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .course-v7-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subject-v7-filter-grid,.course-v7-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subject-v7-search,.course-v7-search{grid-column:1/-1}
  .subject-v7-row,.course-v7-row{grid-template-columns:72px minmax(0,1fr)}
  .subject-v7-used,.course-v7-students{display:none}
  .subject-v7-actions,.course-v7-actions{grid-column:1/-1;padding-left:85px;justify-content:flex-start}
  .course-v7-term-picker-grid,.course-v7-teacher-layout{grid-template-columns:1fr}
  .course-v7-sync-panel{align-items:stretch;flex-direction:column}
}
@media(max-width:520px){
  .subject-v7-filter-grid,.course-v7-filter-grid,.subject-v7-number-grid{grid-template-columns:1fr}
  .course-v7-summary{grid-template-columns:1fr}
  .course-v7-classroom-grid{grid-template-columns:1fr}
  .subject-v7-row,.course-v7-row{padding:13px}
  .subject-v7-actions,.course-v7-actions{padding-left:0}
}


/* =========================================================
   V8 Timetable / Time Slot / Conflict Engine
   ========================================================= */

.tt-v8-page-actions{display:flex;gap:7px;flex-wrap:wrap}
.tt-v8-term-panel{margin-bottom:14px}
.tt-v8-term-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(180px,1fr));
    gap:10px;
    max-width:900px
}
.tt-v8-term-with-teacher{grid-template-columns:repeat(3,minmax(180px,1fr))}

.tt-v8-top-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);
    gap:14px;
    align-items:start;
    margin-bottom:14px
}
.tt-v8-version-panel,.tt-v8-health-panel{padding:0;overflow:hidden}
.tt-v8-version-panel>.panel-title,.tt-v8-health-panel>.panel-title{
    padding:17px 18px;
    margin:0;
    border-bottom:1px solid var(--border)
}
.tt-v8-version-panel>.panel-title p,.tt-v8-health-panel>.panel-title p{
    margin:3px 0 0;color:var(--muted);font-size:9px
}
.tt-v8-version-list{display:grid}
.tt-v8-version-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    min-height:54px;padding:10px 16px;border-top:1px solid var(--border);
    color:var(--text);text-decoration:none
}
.tt-v8-version-row:first-child{border-top:0}
.tt-v8-version-row:hover{background:#f8fafc}
.tt-v8-version-row.active{background:#f3f8ff}
.tt-v8-version-row strong,.tt-v8-version-row span{display:block}
.tt-v8-version-row strong{font-size:10px}
.tt-v8-version-row span{margin-top:2px;color:var(--muted);font-size:8px}
.tt-v8-status{
    display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;
    border-radius:999px;font-size:8px;text-transform:capitalize
}
.tt-v8-status.draft{color:#8a5412;background:#fff4d8}
.tt-v8-status.published{color:#137333;background:#e9f8ef}
.tt-v8-status.archived{color:#667085;background:#f2f4f7}
.tt-v8-new-version{padding:12px 16px;border-top:1px solid var(--border)}
.tt-v8-new-version>summary{color:var(--primary);font-size:9px;cursor:pointer}

.tt-v8-health-stats{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;padding:14px
}
.tt-v8-health-stats>div{
    padding:10px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe;text-align:center
}
.tt-v8-health-stats span,.tt-v8-health-stats strong{display:block}
.tt-v8-health-stats span{color:var(--muted);font-size:8px}
.tt-v8-health-stats strong{margin-top:2px;font-size:16px}
.tt-v8-health-item{margin:14px;padding:12px;border-radius:10px}
.tt-v8-health-item strong,.tt-v8-health-item span{display:block}
.tt-v8-health-item strong{font-size:10px}
.tt-v8-health-item span{margin-top:3px;font-size:8.5px;line-height:1.5}
.tt-v8-health-item.bad{color:#9b2c25;background:#fff0ef;border:1px solid #ffd3cf}
.tt-v8-health-item.good{color:#137333;background:#e9f8ef;border:1px solid #ccebd7}
.tt-v8-health-item.neutral{color:#667085;background:#f2f4f7;border:1px solid var(--border)}
.tt-v8-scan-list{margin:0 14px 14px;padding:11px;border-radius:10px;font-size:8.5px;line-height:1.5}
.tt-v8-scan-list.blocking{color:#9b2c25;background:#fff0ef}
.tt-v8-scan-list.warning{color:#7d5718;background:#fff8e9}
.tt-v8-publish-form{padding:0 14px 14px}
.tt-v8-publish-form .btn{width:100%}
.tt-v8-publish-form .btn:disabled{opacity:.45;cursor:not-allowed}

.tt-v8-view-filter{margin-bottom:14px}
.tt-v8-view-filter-grid{
    display:grid;grid-template-columns:180px minmax(240px,1fr) auto;
    gap:9px;align-items:end;max-width:760px
}
.tt-v8-grid-panel{padding:0;overflow:hidden}
.tt-v8-grid-panel>.panel-title{
    display:flex;justify-content:space-between;gap:10px;align-items:center;
    padding:16px 18px;margin:0;border-bottom:1px solid var(--border)
}
.tt-v8-grid-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8.5px}
.tt-v8-week-wrap{overflow:auto}
.tt-v8-week-table{
    width:100%;min-width:980px;border-collapse:separate;border-spacing:0
}
.tt-v8-week-table th,.tt-v8-week-table td{
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
    vertical-align:top
}
.tt-v8-week-table thead th{
    position:sticky;top:0;z-index:4;
    padding:10px;background:#fbfcfe;color:#475467;font-size:9px;text-align:center
}
.tt-v8-time-col{
    width:56px;min-width:56px;text-align:center!important;background:#fbfcfe!important
}
.tt-v8-week-table tbody>.tt-v8-time-col{padding-top:14px;color:#98a2b3;font-size:8px}
.tt-v8-week-table td{min-width:170px;padding:7px;background:#fff}
.tt-v8-nonschedule-cell{background:#f8f9fb!important}
.tt-v8-cell-time{display:flex;justify-content:space-between;gap:5px;margin-bottom:5px}
.tt-v8-cell-time strong{font-size:7.8px;color:#667085}
.tt-v8-cell-time small{font-size:7.3px;color:#98a2b3}
.tt-v8-fixed-label{
    display:flex;min-height:38px;align-items:center;justify-content:center;
    border-radius:8px;color:#667085;background:#eef1f5;font-size:8px;text-align:center
}
.tt-v8-no-slot{display:flex;min-height:50px;align-items:center;justify-content:center;color:#c2c7cf}
.tt-v8-entry-card{
    margin-top:5px;padding:7px;border:1px solid #dce8f8;border-radius:8px;background:#f5f9ff
}
.tt-v8-entry-card.override{border-color:#f2c86f;background:#fff9ea}
.tt-v8-entry-card strong,.tt-v8-entry-card span,.tt-v8-entry-card small,.tt-v8-entry-card em{display:block}
.tt-v8-entry-card strong{color:#174b84;font-size:8.5px}
.tt-v8-entry-card span{margin-top:2px;color:#344054;font-size:7.7px}
.tt-v8-entry-card small{margin-top:2px;color:#667085;font-size:7.2px}
.tt-v8-entry-card em{margin-top:3px;color:#7d5718;font-size:7px;font-style:normal}

.tt-v8-settings-layout{
    display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    gap:14px;margin-bottom:14px
}
.tt-v8-settings-form{padding-top:2px}
.tt-v8-day-list{display:grid;gap:6px}
.tt-v8-day-row{
    display:grid;grid-template-columns:110px minmax(0,1fr);
    gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--border)
}
.tt-v8-day-row:first-child{border-top:0}
.tt-v8-day-row>label{display:flex;align-items:center;gap:7px;font-size:9px}
.tt-v8-template-section,.tt-v8-room-section,.tt-v8-workload-panel{margin-bottom:14px}
.tt-v8-inline-create{
    display:grid;grid-template-columns:minmax(180px,1fr) minmax(200px,1.4fr) auto auto;
    gap:8px;align-items:center;margin-bottom:13px;padding:11px;border:1px solid var(--border);
    border-radius:10px;background:#fbfcfe
}
.tt-v8-check{display:flex;align-items:center;gap:6px;color:#475467;font-size:8.5px}
.tt-v8-template-list{display:grid;gap:12px}
.tt-v8-template-card{
    border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff
}
.tt-v8-template-head{
    display:flex;justify-content:space-between;gap:12px;align-items:center;
    padding:13px 15px;background:#fbfcfe
}
.tt-v8-template-head>div{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.tt-v8-template-head strong{font-size:11px}
.tt-v8-template-head small{width:100%;color:var(--muted);font-size:8px}
.tt-v8-template-head>b{font-size:9px;color:#667085}
.tt-v8-slot-list{display:grid}
.tt-v8-slot-row{
    display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;
    gap:9px;align-items:center;padding:9px 13px;border-top:1px solid var(--border)
}
.tt-v8-slot-row.nonschedule{background:#fafbfc}
.tt-v8-slot-order{
    width:28px;height:28px;display:grid;place-items:center;border-radius:8px;
    color:var(--primary);background:var(--primary-soft);font-size:8px;font-weight:700
}
.tt-v8-slot-row strong,.tt-v8-slot-row small{display:block}
.tt-v8-slot-row strong{font-size:9.5px}
.tt-v8-slot-row small{margin-top:2px;color:var(--muted);font-size:7.5px}
.tt-v8-add-slot{padding:10px 13px;border-top:1px solid var(--border)}
.tt-v8-add-slot>summary{color:var(--primary);font-size:8.5px;cursor:pointer}
.tt-v8-slot-form{
    display:grid;grid-template-columns:80px 1.2fr repeat(2,130px) 150px auto auto auto;
    gap:7px;align-items:end;margin-top:10px
}

.tt-v8-room-form{
    display:grid;grid-template-columns:100px minmax(190px,1.3fr) 140px 140px 80px 90px auto;
    gap:7px;align-items:center;margin-bottom:12px
}
.tt-v8-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tt-v8-room-card{padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.tt-v8-room-card.inactive{opacity:.55}
.tt-v8-room-card strong,.tt-v8-room-card span,.tt-v8-room-card small{display:block}
.tt-v8-room-card strong{font-size:9.5px}
.tt-v8-room-card span{margin-top:2px;color:#475467;font-size:8px}
.tt-v8-room-card small{margin-top:2px;color:var(--muted);font-size:7.5px}

.tt-v8-constraint-layout{
    display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start;margin-bottom:14px
}
.tt-v8-constraint-list{display:grid}
.tt-v8-constraint-row{
    display:grid;grid-template-columns:100px minmax(0,1fr) auto;
    gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--border)
}
.tt-v8-constraint-row:first-child{border-top:0}
.tt-v8-constraint-row.inactive{opacity:.5}
.tt-v8-constraint-level{
    display:flex;min-height:28px;align-items:center;justify-content:center;
    border-radius:8px;font-size:8px;font-weight:700
}
.tt-v8-constraint-level.blocked{color:#9b2c25;background:#ffe9e6}
.tt-v8-constraint-level.hard{color:#a04b14;background:#fff1df}
.tt-v8-constraint-level.preferred{color:#7d651a;background:#fff9dd}
.tt-v8-constraint-row strong,.tt-v8-constraint-row span,.tt-v8-constraint-row small{display:block}
.tt-v8-constraint-row strong{font-size:10px}
.tt-v8-constraint-row span{margin-top:2px;color:#475467;font-size:8.5px}
.tt-v8-constraint-row small{margin-top:2px;color:var(--muted);font-size:8px}
.tt-v8-row-actions{display:flex;gap:5px}
.tt-v8-teacher-select{height:auto;min-height:145px;margin-top:6px;padding:5px}
.tt-v8-workload-form{
    display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(3,120px) minmax(180px,1fr) auto;
    gap:7px;align-items:center;margin-bottom:12px
}
.tt-v8-workload-list{display:grid}
.tt-v8-workload-list>div{
    display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,110px) minmax(130px,1fr);
    gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--border)
}
.tt-v8-workload-list strong{font-size:9px}
.tt-v8-workload-list span,.tt-v8-workload-list small{font-size:8px;color:#667085}

.tt-v8-editor-days{
    display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px
}
.tt-v8-editor-days a{
    display:inline-flex;min-height:34px;align-items:center;padding:6px 13px;border:1px solid var(--border);
    border-radius:9px;color:#475467;background:#fff;font-size:9px;text-decoration:none
}
.tt-v8-editor-days a.active{color:#fff;background:var(--primary);border-color:var(--primary)}
.tt-v8-editor-layout{
    display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start;margin-bottom:14px
}
.tt-v8-editor-form-panel{padding:0;overflow:hidden}
.tt-v8-editor-form-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.tt-v8-editor-form-panel>form,.tt-v8-editor-form-panel>.access-info-box,.tt-v8-editor-form-panel>.tt-v8-conflict-result{
    margin:16px 18px
}
.tt-v8-offering-select{height:auto;min-height:180px;margin-top:7px;padding:5px}
.tt-v8-override-box{padding:10px;border:1px solid #f0d49a;border-radius:10px;background:#fffaf0}
.tt-v8-override-box>.access-switch-row{border:0;background:transparent;padding:0}
#ttOverrideReason{margin-top:9px}
.tt-v8-hint-blocked{color:#b42318!important}
.tt-v8-hint-warning{color:#8a5412!important}
.tt-v8-conflict-box{padding:11px;border-radius:9px;font-size:8.5px;line-height:1.5}
.tt-v8-conflict-box+ .tt-v8-conflict-box{margin-top:8px}
.tt-v8-conflict-box strong{display:block;margin-bottom:5px;font-size:9.5px}
.tt-v8-conflict-box.blocking{color:#9b2c25;background:#fff0ef;border:1px solid #ffd3cf}
.tt-v8-conflict-box.warning{color:#7d5718;background:#fff8e9;border:1px solid #f5d9a5}
.tt-v8-editor-health h2{margin:0 0 8px;font-size:15px}
.tt-v8-editor-health .tt-v8-health-stats{padding:0;margin-bottom:10px}

.tt-v8-day-schedule-panel{padding:0;overflow:hidden}
.tt-v8-day-schedule-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.tt-v8-day-block-list{display:grid}
.tt-v8-day-block{
    display:grid;grid-template-columns:140px minmax(0,1fr) auto;
    gap:13px;align-items:center;padding:12px 18px;border-top:1px solid var(--border)
}
.tt-v8-day-block:first-child{border-top:0}
.tt-v8-day-block.override{background:#fffbef}
.tt-v8-day-block-time strong,.tt-v8-day-block-time span{display:block}
.tt-v8-day-block-time strong{font-size:11px}
.tt-v8-day-block-time span{margin-top:2px;color:var(--muted);font-size:8px}
.tt-v8-day-block-main strong,.tt-v8-day-block-main span,.tt-v8-day-block-main small,.tt-v8-day-block-main em{display:block}
.tt-v8-day-block-main strong{font-size:10.5px}
.tt-v8-day-block-main span{margin-top:2px;color:#475467;font-size:8.5px}
.tt-v8-day-block-main small{margin-top:2px;color:#667085;font-size:8px}
.tt-v8-day-block-main em{margin-top:2px;color:#7d5718;font-size:7.5px;font-style:normal}
.tt-v8-override-badge{
    display:inline-flex!important;width:max-content;margin-top:5px;padding:2px 6px;border-radius:999px;
    color:#8a5412;background:#fff0c8;font-size:7px!important
}

@media(max-width:1180px){
  .tt-v8-slot-form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tt-v8-room-form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tt-v8-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tt-v8-workload-form{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .tt-v8-top-grid,.tt-v8-settings-layout,.tt-v8-constraint-layout,.tt-v8-editor-layout{grid-template-columns:1fr}
  .tt-v8-editor-health{position:static}
  .tt-v8-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .tt-v8-term-grid,.tt-v8-term-with-teacher,.tt-v8-view-filter-grid{grid-template-columns:1fr}
  .tt-v8-inline-create,.tt-v8-slot-form,.tt-v8-room-form,.tt-v8-workload-form{grid-template-columns:1fr}
  .tt-v8-day-row{grid-template-columns:90px minmax(0,1fr)}
  .tt-v8-constraint-row{grid-template-columns:80px minmax(0,1fr)}
  .tt-v8-row-actions{grid-column:1/-1;padding-left:92px}
  .tt-v8-workload-list>div{grid-template-columns:1fr 1fr}
  .tt-v8-day-block{grid-template-columns:110px minmax(0,1fr)}
  .tt-v8-day-block>form{grid-column:1/-1;padding-left:123px}
}
@media(max-width:520px){
  .tt-v8-room-grid{grid-template-columns:1fr}
  .tt-v8-health-stats{grid-template-columns:1fr}
  .tt-v8-day-block{grid-template-columns:1fr}
  .tt-v8-day-block>form{padding-left:0}
}

@media print{
  .sidebar,.app-header,.page-heading,.tt-v8-term-panel,.tt-v8-top-grid,.tt-v8-view-filter,
  .bottom-nav,.tt-v8-page-actions{display:none!important}
  .app-main{margin:0!important;padding:0!important}
  .tt-v8-grid-panel{border:0!important;box-shadow:none!important}
  .tt-v8-week-table{min-width:100%;font-size:8px}
}

.tt-v8-slot-edit{position:relative}
.tt-v8-slot-edit>summary{list-style:none;cursor:pointer}
.tt-v8-slot-edit>summary::-webkit-details-marker{display:none}
.tt-v8-slot-edit-form{
    position:absolute;right:0;top:34px;z-index:20;
    width:560px;display:grid;grid-template-columns:65px 1fr 100px 100px 140px;
    gap:6px;align-items:center;padding:10px;border:1px solid var(--border);
    border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.16)
}
@media(max-width:700px){
  .tt-v8-slot-edit-form{position:fixed;left:14px;right:14px;top:90px;width:auto;grid-template-columns:1fr}
}

/* =========================================================
   V9 Attendance / เช็กชื่อรายคาบ
   ========================================================= */

.att-v9-summary,.att-v9-report-summary{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px
}
.att-v9-summary>div,.att-v9-report-summary>div{
    padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)
}
.att-v9-summary span,.att-v9-summary strong,.att-v9-report-summary span,.att-v9-report-summary strong{display:block}
.att-v9-summary span,.att-v9-report-summary span{color:var(--muted);font-size:9px}
.att-v9-summary strong,.att-v9-report-summary strong{margin-top:2px;font-size:20px}

.att-v9-current-panel{padding:0;overflow:hidden;margin-bottom:14px}
.att-v9-current-panel>.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 18px;margin:0;border-bottom:1px solid var(--border)}
.att-v9-current-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8.5px}
.att-v9-published-badge{display:inline-flex;padding:4px 8px;border-radius:999px;color:#137333;background:#e9f8ef;font-size:8px;font-weight:700}
.att-v9-no-current{padding:24px;text-align:center}
.att-v9-no-current strong,.att-v9-no-current span{display:block}
.att-v9-no-current strong{font-size:12px}.att-v9-no-current span{margin-top:4px;color:var(--muted);font-size:9px}
.att-v9-current-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}
.att-v9-current-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #cfe2fa;border-radius:13px;background:linear-gradient(135deg,#fff,#f6faff)}
.att-v9-time-bubble{width:70px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;color:var(--primary);background:var(--primary-soft)}
.att-v9-time-bubble strong{font-size:15px}.att-v9-time-bubble span{font-size:7.5px}
.att-v9-lesson-main strong,.att-v9-lesson-main span,.att-v9-lesson-main small{display:block}
.att-v9-lesson-main strong{font-size:11.5px}.att-v9-lesson-main span{margin-top:2px;font-size:9px;color:#475467}.att-v9-lesson-main small{margin-top:2px;font-size:8px;color:var(--muted)}
.att-v9-progress-line{margin-top:7px;color:#1554ad;font-size:8px;font-weight:600}

.att-v9-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start;margin-bottom:14px}
.att-v9-today-panel{padding:0;overflow:hidden}.att-v9-today-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.att-v9-today-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8px}
.att-v9-today-list{display:grid}.att-v9-today-row{display:grid;grid-template-columns:70px minmax(0,1fr) 80px auto;gap:11px;align-items:center;padding:11px 17px;border-top:1px solid var(--border)}
.att-v9-today-row:first-child{border-top:0}.att-v9-today-row.has-session{background:#fcfefd}
.att-v9-today-time strong,.att-v9-today-time span{display:block}.att-v9-today-time strong{font-size:11px}.att-v9-today-time span{font-size:8px;color:var(--muted)}
.att-v9-today-row>div:nth-child(2)>strong,.att-v9-today-row>div:nth-child(2)>span,.att-v9-today-row>div:nth-child(2)>small{display:block}
.att-v9-today-row>div:nth-child(2)>strong{font-size:10px}.att-v9-today-row>div:nth-child(2)>span{margin-top:2px;font-size:8.5px;color:#475467}.att-v9-today-row>div:nth-child(2)>small{margin-top:2px;font-size:7.7px;color:var(--muted)}
.att-v9-session-state{text-align:center}.att-v9-session-state span{display:block;margin-top:2px;font-size:7.5px;color:var(--muted)}
.att-v9-state{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 7px;border-radius:999px;font-size:7.5px;text-transform:uppercase}
.att-v9-state.draft{color:#8a5412;background:#fff4d8}.att-v9-state.submitted{color:#137333;background:#e9f8ef}.att-v9-state.locked{color:#475467;background:#e9edf2}.att-v9-state.none{color:#667085;background:#f2f4f7}
.att-v9-manual-panel h2{font-size:15px}.att-v9-offering-select{height:auto;min-height:185px;margin-top:6px;padding:5px}

.att-v9-recent-panel{padding:0;overflow:hidden}.att-v9-recent-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.att-v9-recent-list{display:grid}.att-v9-recent-row{display:grid;grid-template-columns:105px minmax(0,1fr) 90px 20px;gap:10px;align-items:center;padding:10px 17px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}
.att-v9-recent-row:first-child{border-top:0}.att-v9-recent-row:hover{background:#f8fafc}.att-v9-recent-row strong,.att-v9-recent-row span{display:block}.att-v9-recent-row strong{font-size:9.5px}.att-v9-recent-row span{margin-top:2px;color:var(--muted);font-size:8px}

.att-v9-session-head{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:stretch;margin-bottom:14px}
.att-v9-session-status{display:flex;flex-direction:column;justify-content:center;padding:12px 14px;border-radius:12px;border:1px solid var(--border)}
.att-v9-session-status span{font-size:8px}.att-v9-session-status strong{margin-top:2px;font-size:15px}.att-v9-session-status.draft{color:#8a5412;background:#fff8e9}.att-v9-session-status.submitted{color:#137333;background:#eefaf2}.att-v9-session-status.locked{color:#475467;background:#f3f5f7}
.att-v9-take-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.att-v9-take-summary>div{padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:center}.att-v9-take-summary>div.warn{border-color:#f0cf87;background:#fff9eb}
.att-v9-take-summary span,.att-v9-take-summary strong{display:block}.att-v9-take-summary span{font-size:7.5px;color:var(--muted)}.att-v9-take-summary strong{margin-top:2px;font-size:14px}
.att-v9-state-actions{display:flex;align-items:center;gap:5px}.att-v9-readonly-note{margin-bottom:14px}

.att-v9-roster-panel{padding:0;overflow:hidden}.att-v9-roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px!important;margin:0!important;border-bottom:1px solid var(--border)}
.att-v9-roster-toolbar p{margin:3px 0 0;color:var(--muted);font-size:8px}.att-v9-roster-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.att-v9-roster-tools .form-control{width:auto;min-width:150px}
.att-v9-roster-list{display:grid}.att-v9-student-row{display:grid;grid-template-columns:45px minmax(180px,.8fr) minmax(520px,1.5fr) minmax(150px,.6fr);gap:10px;align-items:center;padding:10px 15px;border-top:1px solid var(--border)}
.att-v9-student-row:first-child{border-top:0}.att-v9-student-row:hover{background:#fbfcfe}
.att-v9-student-no{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#475467;background:#f2f4f7;font-size:9px;font-weight:700}
.att-v9-student-name strong,.att-v9-student-name span{display:block}.att-v9-student-name strong{font-size:10px}.att-v9-student-name span{margin-top:2px;color:var(--muted);font-size:8px}
.att-v9-status-buttons{display:grid;grid-template-columns:repeat(6,minmax(58px,1fr));gap:5px}.att-v9-status-option{position:relative;cursor:pointer}.att-v9-status-option input{position:absolute;opacity:0;pointer-events:none}.att-v9-status-option span{display:flex;min-height:32px;align-items:center;justify-content:center;padding:4px 6px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#667085;font-size:8px;transition:.15s}
.att-v9-status-option input:checked+span{font-weight:700;box-shadow:0 0 0 1px currentColor inset}.att-v9-status-option.present input:checked+span{color:#137333;background:#e9f8ef;border-color:#b9e2c6}.att-v9-status-option.late input:checked+span{color:#8a5412;background:#fff4d8;border-color:#f1d58f}.att-v9-status-option.absent input:checked+span{color:#b42318;background:#fff0ef;border-color:#f2bbb6}.att-v9-status-option.leave input:checked+span{color:#1554ad;background:#eaf3ff;border-color:#bed8fa}.att-v9-status-option.sick input:checked+span{color:#6246a8;background:#f1edff;border-color:#d8cdfd}.att-v9-status-option.activity input:checked+span{color:#086d73;background:#e9fbfc;border-color:#bde8eb}
.att-v9-status-option input:disabled+span{opacity:.75;cursor:default}.att-v9-note-cell .form-control{font-size:8px}
.att-v9-savebar{position:sticky;bottom:0;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:rgba(255,255,255,.96);backdrop-filter:blur(8px);z-index:6}.att-v9-savebar>div{margin-right:auto}.att-v9-savebar strong,.att-v9-savebar span{display:block}.att-v9-savebar strong{font-size:9px}.att-v9-savebar span{font-size:7.5px;color:var(--muted)}

.att-v9-report-actions{display:flex;gap:6px;flex-wrap:wrap}.att-v9-report-filter{margin-bottom:14px}.att-v9-report-filter-grid{display:grid;grid-template-columns:140px 150px 145px 145px 150px minmax(220px,1.2fr) minmax(190px,1fr) auto;gap:8px;align-items:end}.att-v9-report-filter-actions{display:flex}.att-v9-report-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
.att-v9-report-table-panel{padding:0;overflow:hidden}.att-v9-report-table-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}.att-v9-report-table-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8px}.att-v9-report-table-wrap{overflow:auto}.att-v9-report-table{width:100%;min-width:980px;border-collapse:collapse}.att-v9-report-table th,.att-v9-report-table td{padding:9px 10px;border-top:1px solid var(--border);text-align:center;white-space:nowrap}.att-v9-report-table th{font-size:8px;color:#667085;background:#fbfcfe}.att-v9-report-table td{font-size:8.7px}.att-v9-report-table td:first-child{text-align:left}.att-v9-report-table td:first-child strong,.att-v9-report-table td:first-child small{display:block}.att-v9-report-table td:first-child small{margin-top:2px;color:var(--muted);font-size:7.5px}.att-v9-class-pill{display:inline-flex;padding:3px 7px;border-radius:999px;color:#1554ad;background:#eaf3ff;font-size:7.5px}.att-v9-num.present{color:#137333}.att-v9-num.late{color:#8a5412}.att-v9-num.absent{color:#b42318}.att-v9-num.leave{color:#1554ad}.att-v9-num.sick{color:#6246a8}.att-v9-num.activity{color:#086d73}

@media(max-width:1180px){
  .att-v9-current-grid{grid-template-columns:1fr}.att-v9-take-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.att-v9-student-row{grid-template-columns:45px minmax(180px,.8fr) minmax(430px,1.5fr)}.att-v9-note-cell{grid-column:2/-1}.att-v9-report-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.att-v9-report-search{grid-column:span 2}
}
@media(max-width:900px){
  .att-v9-layout{grid-template-columns:1fr}.att-v9-manual-panel{position:static}.att-v9-session-head{grid-template-columns:1fr}.att-v9-state-actions{justify-content:flex-start}.att-v9-report-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .att-v9-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.att-v9-current-card{grid-template-columns:62px minmax(0,1fr)}.att-v9-current-card>form{grid-column:1/-1}.att-v9-today-row{grid-template-columns:60px minmax(0,1fr)}.att-v9-session-state,.att-v9-today-row>form{grid-column:2/-1;text-align:left}.att-v9-recent-row{grid-template-columns:85px minmax(0,1fr)}.att-v9-recent-row>div:nth-child(3),.att-v9-recent-row>span:last-child{grid-column:2/-1}.att-v9-roster-toolbar{align-items:flex-start;flex-direction:column}.att-v9-roster-tools{width:100%}.att-v9-roster-tools .form-control{flex:1;min-width:130px}.att-v9-student-row{grid-template-columns:38px minmax(0,1fr);gap:7px}.att-v9-status-buttons{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.att-v9-note-cell{grid-column:1/-1}.att-v9-savebar{align-items:stretch;flex-wrap:wrap}.att-v9-savebar>div{width:100%;margin-right:0}.att-v9-report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.att-v9-report-search{grid-column:1/-1}.att-v9-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .att-v9-summary,.att-v9-report-summary,.att-v9-take-summary{grid-template-columns:1fr}.att-v9-report-filter-grid{grid-template-columns:1fr}.att-v9-savebar .btn{width:100%}
}

/* =========================================================
   V10 Gradebook / Grading / ปพ.5 / ปพ.6
   ========================================================= */
.grade-v10-page-actions{display:flex;gap:7px;flex-wrap:wrap}
.grade-v10-term-panel{margin-bottom:14px}
.grade-v10-term-grid,.grade-v10-eval-filter,.grade-v10-pp6-filter{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px;max-width:900px}
.grade-v10-summary,.grade-v10-entry-summary,.grade-v10-result-summary,.grade-v10-structure-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:14px}
.grade-v10-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.grade-v10-structure-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.grade-v10-summary>div,.grade-v10-entry-summary>div,.grade-v10-result-summary>div,.grade-v10-structure-summary>div{padding:13px 15px;border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:var(--shadow-sm)}
.grade-v10-summary span,.grade-v10-entry-summary span,.grade-v10-result-summary span,.grade-v10-structure-summary span{display:block;color:var(--muted);font-size:8.5px}.grade-v10-summary strong,.grade-v10-entry-summary strong,.grade-v10-result-summary strong,.grade-v10-structure-summary strong{display:block;margin-top:2px;font-size:18px}.grade-v10-structure-summary .ok strong,.grade-v10-result-summary .ok strong{color:#137333}.grade-v10-structure-summary .warn strong,.grade-v10-result-summary .warn strong{color:#b54708}
.grade-v10-offering-panel,.grade-v10-entry-panel,.grade-v10-result-table-panel,.grade-v10-eval-panel{padding:0;overflow:hidden}.grade-v10-offering-panel>.panel-title,.grade-v10-entry-panel>.panel-title,.grade-v10-result-table-panel>.panel-title,.grade-v10-eval-panel>.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.grade-v10-offering-panel>.panel-title p,.grade-v10-entry-panel>.panel-title p,.grade-v10-eval-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8.5px}.grade-v10-offering-list{display:grid}.grade-v10-offering-row{display:grid;grid-template-columns:88px minmax(0,1fr) 78px auto;gap:12px;align-items:center;padding:14px 18px;border-top:1px solid var(--border)}.grade-v10-offering-row:first-child{border-top:0}.grade-v10-code{display:flex;align-items:center;justify-content:center;min-height:38px;padding:6px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:9.5px}.grade-v10-title{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.grade-v10-title strong{font-size:11.5px}.grade-v10-meta{display:flex;gap:5px 10px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:8px}.grade-v10-state{display:inline-flex;align-items:center;min-height:21px;padding:2px 7px;border-radius:999px;font-size:7.5px;font-weight:700}.grade-v10-state.not_started{background:#f2f4f7;color:#667085}.grade-v10-state.draft{background:#fff4d8;color:#8a5412}.grade-v10-state.submitted{background:#eaf3ff;color:#1554ad}.grade-v10-state.locked{background:#e9f8ef;color:#137333}.grade-v10-progress{text-align:center}.grade-v10-progress span,.grade-v10-progress strong{display:block}.grade-v10-progress span{font-size:7.5px;color:var(--muted)}.grade-v10-progress strong{font-size:12px}.grade-v10-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.grade-v10-template-panel{margin-bottom:14px}.grade-v10-template-panel h2{margin:0 0 3px;font-size:14px}.grade-v10-template-panel p{margin:0 0 10px;color:var(--muted);font-size:8.5px}.grade-v10-template-actions{display:flex;gap:8px;flex-wrap:wrap}.grade-v10-setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.grade-v10-category-list{display:grid}.grade-v10-category{border-top:1px solid var(--border);padding:14px 18px}.grade-v10-category:first-child{border-top:0}.grade-v10-category-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.grade-v10-category-head strong,.grade-v10-category-head span{display:block}.grade-v10-category-head strong{font-size:11px}.grade-v10-category-head span{margin-top:2px;color:var(--muted);font-size:8px}.grade-v10-item-list{margin-top:9px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.grade-v10-item{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:9px;align-items:center;padding:8px 10px;border-top:1px solid var(--border);background:#fbfcfe}.grade-v10-item:first-child{border-top:0}.grade-v10-item strong,.grade-v10-item small{display:block}.grade-v10-item strong{font-size:9px}.grade-v10-item small{margin-top:2px;color:var(--muted);font-size:7.5px}.grade-v10-item>b{text-align:right;font-size:10px}.grade-v10-add-item{padding:9px 10px;border-top:1px solid var(--border);background:#fff}.grade-v10-add-item>summary{color:var(--primary);font-size:8.5px;cursor:pointer}.grade-v10-item-form{display:grid;grid-template-columns:minmax(170px,1.3fr) 120px 100px 140px auto;gap:6px;align-items:end;margin-top:9px}.grade-v10-scale-list{display:grid;margin-top:12px;border-top:1px solid var(--border)}.grade-v10-scale-list>div{display:grid;grid-template-columns:42px 80px minmax(0,1fr);gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.grade-v10-scale-list strong{font-size:10px}.grade-v10-scale-list span,.grade-v10-scale-list small{font-size:7.5px;color:var(--muted)}.grade-v10-nextbar,.grade-v10-savebar{position:sticky;bottom:74px;z-index:8;display:flex;justify-content:flex-end;gap:10px;margin-top:12px;padding:10px;border:1px solid var(--border);border-radius:11px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(15,23,42,.08);backdrop-filter:blur(8px)}.grade-v10-savebar{justify-content:space-between;align-items:center}.grade-v10-savebar span{color:var(--muted);font-size:8.5px}
.grade-v10-sheet-wrap,.grade-v10-table-wrap,.grade-doc-table-wrap{overflow:auto}.grade-v10-sheet{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.grade-v10-sheet th,.grade-v10-sheet td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;text-align:center;background:#fff}.grade-v10-sheet th{position:sticky;top:0;z-index:4;background:#f8fafc;font-size:7.5px;color:#475467;min-width:100px}.grade-v10-sheet th small{display:block;margin-top:2px;color:#98a2b3;font-weight:400}.grade-v10-sheet .sticky-col{position:sticky;z-index:5;background:#fff}.grade-v10-sheet thead .sticky-col{z-index:7;background:#f8fafc}.grade-v10-sheet .sticky-col.no{left:0;min-width:55px;width:55px}.grade-v10-sheet .sticky-col.name{left:55px;min-width:210px;text-align:left}.grade-v10-sheet td.name strong,.grade-v10-sheet td.name small{display:block}.grade-v10-sheet td.name strong{font-size:8.5px}.grade-v10-sheet td.name small{margin-top:2px;color:var(--muted);font-size:7.3px}.grade-v10-sheet .score-cell{min-width:96px}.grade-v10-sheet .score-cell input{width:64px;padding:6px;border:1px solid var(--border);border-radius:7px;text-align:center;font:inherit}.grade-v10-sheet .score-cell small{display:block;margin-top:2px;color:#98a2b3;font-size:7px}.grade-v10-sheet .result-col{min-width:70px}.grade-v10-sheet td.result-col{font-size:9px}.grade-v10-sheet td.ok{color:#137333}.grade-v10-sheet td.warn{color:#b54708}.grade-v10-grade-pill{display:inline-flex;min-width:30px;min-height:25px;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#eef5ff;color:#1554ad;font-weight:700}
.grade-v10-result-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.grade-v10-result-actions>div:first-child strong,.grade-v10-result-actions>div:first-child span{display:block}.grade-v10-result-actions>div:first-child strong{font-size:10px}.grade-v10-result-actions>div:first-child span{margin-top:2px;color:var(--muted);font-size:8px}.grade-v10-action-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.grade-v10-distribution{margin-bottom:14px}.grade-v10-dist-grid{display:flex;gap:7px;flex-wrap:wrap}.grade-v10-dist-grid>div{min-width:70px;padding:9px;border:1px solid var(--border);border-radius:9px;text-align:center}.grade-v10-dist-grid strong,.grade-v10-dist-grid span{display:block}.grade-v10-dist-grid strong{font-size:13px}.grade-v10-dist-grid span{margin-top:2px;color:var(--muted);font-size:7.5px}.grade-v10-result-table,.grade-v10-eval-table{width:100%;min-width:900px;border-collapse:collapse}.grade-v10-result-table th,.grade-v10-result-table td,.grade-v10-eval-table th,.grade-v10-eval-table td{padding:8px;border-top:1px solid var(--border);text-align:left;font-size:8.5px;vertical-align:middle}.grade-v10-result-table th,.grade-v10-eval-table th{background:#fbfcfe;color:#667085;font-size:7.5px}.grade-v10-result-table td strong,.grade-v10-result-table td small,.grade-v10-eval-table td strong,.grade-v10-eval-table td small{display:block}.grade-v10-result-table td small,.grade-v10-eval-table td small{color:var(--muted);font-size:7px}.grade-v10-result-table td.ok{color:#137333}.grade-v10-result-table td.warn{color:#b54708}.grade-v10-comment{min-width:180px}
.grade-v10-pp6-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:start;margin-bottom:14px}.grade-v10-pp6-students{padding:0;overflow:hidden}.grade-v10-pp6-students>.panel-title{padding:14px 16px;margin:0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between}.grade-v10-student-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.grade-v10-student-list a{display:flex;gap:7px;align-items:center;padding:9px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;font-size:8.5px}.grade-v10-student-list a:hover,.grade-v10-student-list a.active{background:#f2f7ff}.grade-v10-student-list b{width:28px;color:var(--primary)}.grade-v10-pp6-readiness h2{margin:0 0 10px;font-size:14px}.grade-v10-ready-item{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--border);font-size:8.5px}.grade-v10-ready-item.ok strong{color:#137333}.grade-v10-ready-item.warn strong{color:#b54708}.grade-v10-pp6-readiness .btn{margin-top:8px}.grade-v10-snapshot-banner{margin-bottom:12px;padding:10px 12px;border:1px solid #cfe1f8;border-radius:10px;background:#f4f9ff;color:#1554ad;font-size:8.5px}.grade-v10-finalize{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:14px}.grade-v10-finalize h2{margin:0;font-size:13px}.grade-v10-finalize p{margin:3px 0 0;color:var(--muted);font-size:8.5px}.grade-v10-finalize button:disabled{opacity:.45;cursor:not-allowed}
.grade-doc{margin:0 auto;padding:16mm 12mm;background:#fff;color:#111;font-family:'Sarabun',sans-serif;box-shadow:0 5px 25px rgba(15,23,42,.08)}.grade-pp5{width:297mm;min-height:210mm}.grade-pp6{width:210mm;min-height:297mm}.grade-doc-header{display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;text-align:center;margin-bottom:12px}.grade-doc-header img{width:58px;height:58px;object-fit:contain}.grade-doc-header>div{grid-column:2}.grade-doc-header h1{margin:0;font-size:16px}.grade-doc-header h2{margin:3px 0 0;font-size:13px}.grade-doc-header p{margin:2px 0 0;font-size:9px}.grade-doc-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;margin-bottom:10px;font-size:9px}.grade-doc-table{width:100%;border-collapse:collapse}.grade-doc-table th,.grade-doc-table td{border:1px solid #555;padding:3px 4px;text-align:center;font-size:7.5px}.grade-doc-table th{background:#f2f2f2;font-weight:600}.grade-doc-table .name-cell{text-align:left;min-width:130px}.grade-doc-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:22px;text-align:center;font-size:9px;line-height:1.7}.grade-doc-footnote{margin-top:12px;color:#777;font-size:6.5px;text-align:right}.grade-pp6-student{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 20px;margin-bottom:12px;font-size:9px}.grade-pp6 h3{margin:13px 0 5px;font-size:10px}.grade-pp6-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.grade-pp6-summary-grid>div{padding:8px;border:1px solid #777;text-align:center}.grade-pp6-summary-grid h3{margin:0 0 4px;font-size:8px}.grade-pp6-summary-grid strong{font-size:10px}.grade-pp6-attendance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.grade-pp6-attendance span{padding:6px;border:1px solid #999;text-align:center;font-size:8px}.grade-pp6-comment{margin-top:10px;padding:8px;border:1px solid #777;font-size:8.5px;min-height:55px}.grade-pp6-comment p{margin:5px 0 0;line-height:1.5}
@media(max-width:1100px){.grade-v10-setup-layout,.grade-v10-pp6-layout{grid-template-columns:1fr}.grade-v10-setup-layout>.access-sticky-card,.grade-v10-pp6-readiness{position:static}.grade-v10-item-form{grid-template-columns:repeat(3,minmax(0,1fr))}.grade-v10-student-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.grade-v10-summary,.grade-v10-entry-summary,.grade-v10-result-summary,.grade-v10-structure-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-v10-term-grid,.grade-v10-eval-filter,.grade-v10-pp6-filter{grid-template-columns:1fr}.grade-v10-offering-row{grid-template-columns:70px minmax(0,1fr)}.grade-v10-progress{display:none}.grade-v10-actions{grid-column:1/-1;padding-left:82px;justify-content:flex-start}.grade-v10-item-form{grid-template-columns:1fr}.grade-v10-result-actions,.grade-v10-finalize{align-items:stretch;flex-direction:column}.grade-v10-action-buttons{justify-content:flex-start}.grade-v10-student-list{grid-template-columns:1fr}.grade-v10-nextbar,.grade-v10-savebar{bottom:66px}.grade-doc{width:100%!important;min-height:0;padding:10px;box-shadow:none}}
@media print{.no-print,.sidebar,.topbar,.app-footer,.mobile-bottom-nav,.sidebar-backdrop{display:none!important}.app-shell,.app-main,.content-area{display:block!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important}.grade-doc{box-shadow:none!important;margin:0!important}.grade-pp5{width:297mm!important;min-height:210mm!important;padding:10mm!important}.grade-pp6{width:210mm!important;min-height:297mm!important;padding:12mm!important}@page{margin:0}.grade-pp5{page:pp5}.grade-pp6{page:pp6}}
.grade-v10-scheme-panel{max-width:980px}.grade-v10-scheme-table-wrap{overflow:auto;margin:14px 0}.grade-v10-scheme-table{width:100%;border-collapse:collapse}.grade-v10-scheme-table th,.grade-v10-scheme-table td{padding:7px;border-top:1px solid var(--border);font-size:8.5px;text-align:left}.grade-v10-scheme-table th{background:#fbfcfe;color:#667085}.grade-v10-scheme-table input[type=checkbox]{width:18px;height:18px}


/* =========================================================
   V11 Academic Year Rollover
   ========================================================= */
.roll-v11-overview,.roll-v11-action-stats,.roll-v11-readiness-grid,.roll-v11-hard-checks{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px
}
.roll-v11-overview>div,.roll-v11-action-stats>div,.roll-v11-readiness-grid>div,.roll-v11-hard-checks>div{
    padding:13px 15px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)
}
.roll-v11-overview span,.roll-v11-overview strong,.roll-v11-action-stats span,.roll-v11-action-stats strong,
.roll-v11-readiness-grid span,.roll-v11-readiness-grid strong,.roll-v11-readiness-grid small,
.roll-v11-hard-checks span,.roll-v11-hard-checks strong{display:block}
.roll-v11-overview span,.roll-v11-action-stats span,.roll-v11-readiness-grid span,.roll-v11-hard-checks span{color:var(--muted);font-size:8.5px}
.roll-v11-overview strong,.roll-v11-action-stats strong,.roll-v11-readiness-grid strong,.roll-v11-hard-checks strong{margin-top:2px;font-size:18px}
.roll-v11-readiness-grid small{margin-top:3px;color:var(--muted);font-size:7.5px}
.roll-v11-readiness-grid .good,.roll-v11-hard-checks .good{border-color:#ccebd7;background:#f5fcf7}
.roll-v11-readiness-grid .warn,.roll-v11-hard-checks .warn{border-color:#f3dda9;background:#fffaf0}
.roll-v11-readiness-grid .bad,.roll-v11-hard-checks .bad{border-color:#ffd3cf;background:#fff5f4}

.roll-v11-index-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:15px;align-items:start}
.roll-v11-run-list-panel{padding:0;overflow:hidden}
.roll-v11-run-list-panel>.panel-title{padding:17px 18px;margin:0;border-bottom:1px solid var(--border)}
.roll-v11-run-list-panel>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8.5px}
.roll-v11-run-list{display:grid}
.roll-v11-run-row{
    display:grid;grid-template-columns:130px minmax(0,1fr) auto 20px;gap:12px;align-items:center;
    padding:13px 17px;border-top:1px solid var(--border);color:var(--text);text-decoration:none
}
.roll-v11-run-row:first-child{border-top:0}.roll-v11-run-row:hover{background:#f8fafc}
.roll-v11-run-years{display:flex;align-items:center;gap:6px}.roll-v11-run-years strong{font-size:13px}.roll-v11-run-years b{color:#98a2b3}
.roll-v11-run-row>div:nth-child(2)>strong,.roll-v11-run-row>div:nth-child(2)>span{display:block}
.roll-v11-run-row>div:nth-child(2)>strong{font-size:9.5px}.roll-v11-run-row>div:nth-child(2)>span{margin-top:2px;color:var(--muted);font-size:8px}
.roll-v11-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:8px;font-weight:700;white-space:nowrap}
.roll-v11-status.draft,.roll-v11-status.ready{color:#8a5412;background:#fff4d8}
.roll-v11-status.processing{color:#174b84;background:#eaf3ff}
.roll-v11-status.completed{color:#137333;background:#e9f8ef}
.roll-v11-status.cancelled,.roll-v11-status.failed{color:#9b2c25;background:#fff0ef}
.roll-v11-open{color:#98a2b3}
.roll-v11-create-card h2{font-size:16px}
.roll-v11-copy-options{display:grid;gap:7px;padding:11px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe}
.roll-v11-copy-options>strong{font-size:9.5px}.roll-v11-copy-options label{display:flex;gap:7px;align-items:center;font-size:8.5px;color:#475467}
.roll-v11-details>summary{color:var(--primary);font-size:8.5px;cursor:pointer}
.roll-v11-global-room-note{font-size:8.5px!important}

.roll-v11-header-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.roll-v11-complete-banner{
    display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:15px 17px;
    border:1px solid #bfe5ce;border-radius:13px;background:#f1fbf5
}
.roll-v11-complete-banner>div{display:flex;gap:10px;align-items:center}.roll-v11-complete-banner>div>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#daf3e4;color:#137333;font-size:16px;font-weight:700}
.roll-v11-complete-banner strong,.roll-v11-complete-banner small{display:block}.roll-v11-complete-banner strong{font-size:11px}.roll-v11-complete-banner small{margin-top:2px;color:#4c7a5d;font-size:8px}
.roll-v11-step-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:14px}
.roll-v11-step-nav a{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#475467;text-decoration:none;font-size:8.5px}
.roll-v11-step-nav b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}
.roll-v11-section{margin-bottom:14px;scroll-margin-top:20px}
.roll-v11-section>.panel-title p{margin:3px 0 0;color:var(--muted);font-size:8.5px}
.roll-v11-warning-box,.roll-v11-ready-box{display:flex;gap:8px;align-items:flex-start;padding:11px 13px;border-radius:10px;margin-top:10px}
.roll-v11-warning-box{color:#7d5718;background:#fff8e9;border:1px solid #f5d9a5}.roll-v11-ready-box{color:#137333;background:#effaf3;border:1px solid #ccebd7}
.roll-v11-warning-box strong,.roll-v11-warning-box span,.roll-v11-ready-box strong,.roll-v11-ready-box span{display:block}.roll-v11-warning-box strong,.roll-v11-ready-box strong{font-size:9px;white-space:nowrap}.roll-v11-warning-box span,.roll-v11-ready-box span{font-size:8.5px;line-height:1.45}
.roll-v11-copy-summary{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:#fcfdff}
.roll-v11-copy-summary strong{font-size:9px}.roll-v11-copy-summary span{font-size:8px;color:#475467}.roll-v11-copy-summary em{width:100%;color:var(--muted);font-size:7.5px;font-style:normal}

.roll-v11-map-table-wrap{overflow:auto}
.roll-v11-table{width:100%;border-collapse:collapse;min-width:760px}
.roll-v11-table th,.roll-v11-table td{padding:9px 8px;border-top:1px solid var(--border);text-align:left;vertical-align:middle}
.roll-v11-table th{background:#fbfcfe;color:#667085;font-size:8px;white-space:nowrap}.roll-v11-table td{font-size:8.5px}
.roll-v11-table td strong,.roll-v11-table td small{display:block}.roll-v11-table td strong{font-size:9px}.roll-v11-table td small{margin-top:2px;color:var(--muted);font-size:7.5px}
.roll-v11-student-table{min-width:1120px}.roll-v11-student-table tr.manual{background:#fffdf5}
.roll-v11-decision-source{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:7.5px}.roll-v11-decision-source.mapping{color:#475467;background:#eef2f6}.roll-v11-decision-source.manual{color:#8a5412;background:#fff0c8}
.roll-v11-form-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:12px}.roll-v11-form-footer span{color:var(--muted);font-size:8px}
.roll-v11-filter-form{display:grid;grid-template-columns:220px minmax(220px,1fr) auto auto;gap:7px;align-items:center;margin-bottom:10px}

.roll-v11-action-stats{grid-template-columns:repeat(6,minmax(0,1fr))}
.roll-v11-execute-options{display:grid;grid-template-columns:minmax(220px,.8fr) 1fr 1fr auto;gap:9px;align-items:end;margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:11px;background:#fbfcfe}
.roll-v11-hard-checks{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}
.roll-v11-execute-form{max-width:760px;margin-top:14px;padding:14px;border:1px solid #cfe1f7;border-radius:12px;background:#f7fbff}
.roll-v11-override-readiness{margin-bottom:10px;padding:10px;border:1px solid #f0d49a;border-radius:10px;background:#fffaf0}
#rollOverrideReason{margin-top:8px}.roll-v11-cancel-form{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border)}
.roll-v11-final-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.roll-v11-final-summary>strong{grid-column:1/-1;font-size:10px}.roll-v11-final-summary>div{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:#fbfcfe}.roll-v11-final-summary span{font-size:8px;color:#667085}.roll-v11-final-summary b{font-size:10px}

@media(max-width:1050px){
  .roll-v11-index-layout{grid-template-columns:1fr}.roll-v11-create-card{position:static}
  .roll-v11-action-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .roll-v11-execute-options{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .roll-v11-overview,.roll-v11-readiness-grid,.roll-v11-hard-checks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .roll-v11-step-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .roll-v11-run-row{grid-template-columns:110px minmax(0,1fr)}.roll-v11-run-row>.roll-v11-status,.roll-v11-open{grid-column:auto}
  .roll-v11-filter-form{grid-template-columns:1fr 1fr}.roll-v11-action-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .roll-v11-final-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .roll-v11-overview,.roll-v11-readiness-grid,.roll-v11-hard-checks,.roll-v11-action-stats,.roll-v11-step-nav,.roll-v11-filter-form,.roll-v11-execute-options,.roll-v11-final-summary{grid-template-columns:1fr}
  .roll-v11-run-row{grid-template-columns:1fr}.roll-v11-complete-banner{align-items:stretch;flex-direction:column}.roll-v11-form-footer{align-items:stretch;flex-direction:column}
}

/* =========================================================
   V12 Parent Portal / Guardians
   ========================================================= */
.parent-v12-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.parent-v12-summary>div{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.parent-v12-summary span,.parent-v12-summary strong{display:block}.parent-v12-summary span{color:var(--muted);font-size:9px}.parent-v12-summary strong{margin-top:2px;font-size:20px}.parent-v12-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.parent-v12-list-panel{padding:0;overflow:hidden}.parent-v12-list-panel>.panel-title{padding:17px 18px;margin:0;border-bottom:1px solid var(--border)}.parent-v12-filter{display:grid;grid-template-columns:minmax(220px,1fr) 140px auto;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.parent-v12-guardian-list{display:grid}.parent-v12-guardian-row{display:grid;grid-template-columns:42px minmax(0,1fr) 62px auto;gap:11px;align-items:center;padding:11px 16px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.parent-v12-guardian-row:first-child{border-top:0}.parent-v12-guardian-row:hover{background:#f8fbff}.parent-v12-guardian-row.inactive{opacity:.55}.parent-v12-avatar,.parent-v12-child-avatar{display:grid;place-items:center;border-radius:12px;color:var(--primary);background:var(--primary-soft);font-weight:700}.parent-v12-avatar{width:40px;height:40px;font-size:13px}.parent-v12-guardian-row strong,.parent-v12-guardian-row span,.parent-v12-guardian-row small{display:block}.parent-v12-guardian-row strong{font-size:10px}.parent-v12-guardian-row>div:nth-child(2)>span{margin-top:2px;color:#475467;font-size:8px}.parent-v12-guardian-row small{margin-top:2px;color:var(--muted);font-size:7.5px}.parent-v12-count{text-align:center}.parent-v12-count b,.parent-v12-count span{display:block}.parent-v12-count b{font-size:14px}.parent-v12-count span{font-size:7px!important;color:var(--muted)!important}.parent-v12-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start;margin-bottom:14px}.parent-v12-account-card h2{margin:0 0 12px;font-size:15px}.parent-v12-account-status{padding:11px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe;margin-bottom:10px}.parent-v12-account-status strong,.parent-v12-account-status span{display:block}.parent-v12-account-status strong{font-size:10px}.parent-v12-account-status span{margin-top:2px;color:var(--muted);font-size:8px}.parent-v12-invite-existing{margin:9px 0;padding:9px;border-radius:9px;color:#7d5718;background:#fff8e9;font-size:8px;line-height:1.5}.parent-v12-invite-box{margin-bottom:14px;border-color:#bdd8fb;background:#f5faff}.parent-v12-invite-box strong{font-size:11px}.parent-v12-invite-box p{margin:3px 0 10px;color:#526071;font-size:8.5px}.parent-v12-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.parent-v12-child-links{padding:0;overflow:hidden}.parent-v12-child-links>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}.parent-v12-child-links>.panel-title p{margin:2px 0 0;color:var(--muted);font-size:8px}.parent-v12-link-list{display:grid}.parent-v12-link-card{padding:13px 18px;border-top:1px solid var(--border)}.parent-v12-link-card:first-child{border-top:0}.parent-v12-student-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.parent-v12-student-head strong,.parent-v12-student-head span{display:block}.parent-v12-student-head strong{font-size:10.5px}.parent-v12-student-head>div>span{margin-top:2px;color:var(--muted);font-size:8px}.parent-v12-link-access{display:grid;grid-template-columns:170px repeat(7,auto) auto;gap:8px;align-items:center;margin-top:10px}.parent-v12-link-access label{display:flex;align-items:center;gap:4px;color:#475467;font-size:7.5px;white-space:nowrap}.parent-v12-unlink{margin-top:6px;text-align:right}.parent-v12-perm-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.parent-v12-perm-chips span{padding:3px 7px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:7.5px}.parent-v12-add-child{padding:12px 18px;border-top:1px solid var(--border)}.parent-v12-add-child>summary{color:var(--primary);font-size:9px;cursor:pointer}.parent-v12-add-child-form{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(170px,.7fr) auto auto;gap:10px;align-items:end;margin-top:10px}.parent-v12-student-select{height:auto;min-height:180px;margin-top:6px}.parent-v12-activate-card{max-width:520px}.parent-v12-activate-person{margin:14px 0;padding:11px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe}.parent-v12-activate-person span,.parent-v12-activate-person strong,.parent-v12-activate-person small{display:block}.parent-v12-activate-person span{color:var(--muted);font-size:8px}.parent-v12-activate-person strong{margin-top:2px;font-size:12px}.parent-v12-activate-person small{margin-top:3px;color:#667085;font-size:8px}
.parent-portal-body{margin:0;background:#f5f7fb;color:var(--text);font-family:'Sarabun',sans-serif}.parent-portal-shell{min-height:100vh;display:flex;flex-direction:column}.parent-portal-topbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:18px;align-items:center;min-height:72px;padding:9px max(18px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--border);background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}.parent-portal-brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none}.parent-portal-brand img,.parent-portal-brand>span{width:42px;height:42px;border-radius:12px;object-fit:contain}.parent-portal-brand>span{display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);font-size:10px;font-weight:700}.parent-portal-brand strong,.parent-portal-brand small{display:block}.parent-portal-brand strong{font-size:10px}.parent-portal-brand small{margin-top:1px;color:var(--muted);font-size:7.5px}.parent-portal-topbar nav{display:flex;gap:5px}.parent-portal-topbar nav a{padding:7px 10px;border-radius:8px;color:#475467;text-decoration:none;font-size:8.5px}.parent-portal-topbar nav a:hover,.parent-portal-topbar nav a.active{color:var(--primary);background:var(--primary-soft)}.parent-portal-user{display:flex;align-items:center;gap:8px}.parent-portal-user>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-size:10px;font-weight:700}.parent-portal-user strong,.parent-portal-user small{display:block}.parent-portal-user strong{font-size:8.5px}.parent-portal-user small{color:var(--muted);font-size:7px}.parent-portal-content{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:22px 0 32px;flex:1}.parent-portal-footer{text-align:center;padding:16px;color:#667085;font-size:8px}.parent-v12-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:center;padding:24px;border-radius:18px;background:linear-gradient(135deg,#fff,#f0f7ff);border:1px solid #d8e8fb;margin-bottom:18px}.parent-v12-hero span{color:#667085;font-size:9px}.parent-v12-hero h1{margin:3px 0;font-size:24px}.parent-v12-hero p{margin:4px 0 0;max-width:700px;color:#526071;font-size:10px;line-height:1.55}.parent-v12-privacy-note{padding:13px;border-radius:12px;background:#fff;border:1px solid #dfeaf6}.parent-v12-privacy-note strong,.parent-v12-privacy-note span{display:block}.parent-v12-privacy-note strong{font-size:9px}.parent-v12-privacy-note span{margin-top:3px;font-size:8px;line-height:1.45}.parent-v12-section-title{display:flex;justify-content:space-between;align-items:end;margin:0 2px 10px}.parent-v12-section-title h2{margin:0;font-size:16px}.parent-v12-section-title p{margin:2px 0 0;color:var(--muted);font-size:8px}.parent-v12-child-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.parent-v12-child-card{display:block;padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none}.parent-v12-child-card:hover{border-color:#bcd9fb;box-shadow:0 9px 30px rgba(22,119,255,.09)}.parent-v12-child-top{display:flex;gap:11px;align-items:center}.parent-v12-child-top img,.parent-v12-child-avatar{width:54px;height:54px;border-radius:14px;object-fit:cover}.parent-v12-child-avatar{font-size:17px}.parent-v12-child-avatar.large{width:70px;height:70px;font-size:21px}.parent-v12-child-top strong,.parent-v12-child-top span,.parent-v12-child-top small{display:block}.parent-v12-child-top strong{font-size:12px}.parent-v12-child-top span{margin-top:2px;color:#475467;font-size:8.5px}.parent-v12-child-top small{margin-top:2px;color:var(--muted);font-size:7.5px}.parent-v12-child-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:13px}.parent-v12-child-stats>div{padding:9px;border-radius:9px;background:#f8fafc;text-align:center}.parent-v12-child-stats span,.parent-v12-child-stats strong{display:block}.parent-v12-child-stats span{color:var(--muted);font-size:7px}.parent-v12-child-stats strong{margin-top:2px;font-size:11px}.parent-v12-child-open{display:flex;justify-content:space-between;align-items:center;margin-top:11px;padding-top:9px;border-top:1px solid var(--border);color:var(--primary);font-size:8.5px}.parent-v12-empty{padding:28px;border:1px dashed #cdd6e1;border-radius:13px;background:#fff;text-align:center}.parent-v12-empty.compact{padding:15px;border:0;background:#f8fafc}.parent-v12-empty strong,.parent-v12-empty span{display:block}.parent-v12-empty strong{font-size:10px}.parent-v12-empty span{margin-top:3px;color:var(--muted);font-size:8px}.parent-v12-info-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.parent-v12-info-strip>div{padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--border)}.parent-v12-info-strip strong,.parent-v12-info-strip span{display:block}.parent-v12-info-strip strong{font-size:8.5px}.parent-v12-info-strip span{margin-top:2px;color:var(--muted);font-size:7.5px}
.parent-v12-child-page-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:14px}.parent-v12-child-page-head>a{color:var(--primary);font-size:8.5px;text-decoration:none}.parent-v12-child-identity{display:flex;align-items:center;gap:12px}.parent-v12-child-identity img{width:70px;height:70px;border-radius:16px;object-fit:cover}.parent-v12-child-identity h1{margin:0;font-size:20px}.parent-v12-child-identity p{margin:3px 0 0;color:var(--muted);font-size:9px}.parent-v12-term-select{display:grid;gap:4px}.parent-v12-term-select label{color:var(--muted);font-size:7.5px}.parent-v12-term-select select{min-width:180px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;font-family:inherit;font-size:8.5px}.parent-v12-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.parent-v12-overview-grid>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff}.parent-v12-overview-grid span,.parent-v12-overview-grid strong,.parent-v12-overview-grid small{display:block}.parent-v12-overview-grid span{color:var(--muted);font-size:7.5px}.parent-v12-overview-grid strong{margin-top:2px;font-size:15px}.parent-v12-overview-grid small{margin-top:2px;color:#667085;font-size:7px}.parent-v12-card{padding:16px;margin-bottom:12px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.parent-v12-card-title{display:flex;justify-content:space-between;gap:10px;align-items:end;margin-bottom:12px}.parent-v12-card-title h2{margin:0;font-size:14px}.parent-v12-card-title p{margin:2px 0 0;color:var(--muted);font-size:8px}.parent-v12-schedule-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.parent-v12-schedule-day{border:1px solid var(--border);border-radius:11px;overflow:hidden}.parent-v12-schedule-day h3{margin:0;padding:8px 10px;background:#f8fafc;font-size:9px}.parent-v12-schedule-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:7px;padding:8px 9px;border-top:1px solid var(--border)}.parent-v12-schedule-row time{color:var(--primary);font-size:7.5px;font-weight:600}.parent-v12-schedule-row strong,.parent-v12-schedule-row span,.parent-v12-schedule-row small{display:block}.parent-v12-schedule-row strong{font-size:8px}.parent-v12-schedule-row span{margin-top:2px;color:#475467;font-size:7px}.parent-v12-schedule-row small{margin-top:2px;color:var(--muted);font-size:6.7px}.parent-v12-attendance-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:10px}.parent-v12-attendance-summary>div{padding:8px;border-radius:9px;background:#f8fafc;text-align:center}.parent-v12-attendance-summary span,.parent-v12-attendance-summary strong{display:block}.parent-v12-attendance-summary span{color:var(--muted);font-size:7px}.parent-v12-attendance-summary strong{margin-top:2px;font-size:12px}.parent-v12-attendance-list{display:grid}.parent-v12-attendance-list>div{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}.parent-v12-attendance-list>div:first-child{border-top:0}.parent-v12-attendance-list time{color:#667085;font-size:7.5px}.parent-v12-attendance-list strong,.parent-v12-attendance-list small{display:block}.parent-v12-attendance-list strong{font-size:8.5px}.parent-v12-attendance-list small{margin-top:2px;color:var(--muted);font-size:7px}.parent-v12-att-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:7.5px}.parent-v12-att-status.present,.parent-v12-att-status.activity{color:#137333;background:#e9f8ef}.parent-v12-att-status.late{color:#8a5412;background:#fff4d8}.parent-v12-att-status.absent{color:#b42318;background:#fff0ef}.parent-v12-att-status.leave,.parent-v12-att-status.sick{color:#475467;background:#f2f4f7}.parent-v12-grade-table-wrap{overflow:auto}.parent-v12-grade-table{width:100%;border-collapse:collapse}.parent-v12-grade-table th,.parent-v12-grade-table td{padding:8px;border-top:1px solid var(--border);font-size:8px;text-align:left}.parent-v12-grade-table th{color:#667085;background:#fbfcfe}.parent-v12-grade-table td strong,.parent-v12-grade-table td small{display:block}.parent-v12-grade-table td small{margin-top:2px;color:var(--muted);font-size:7px}.parent-v12-result{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:7px}.parent-v12-result.pass{color:#137333;background:#e9f8ef}.parent-v12-result.fail{color:#b42318;background:#fff0ef}.parent-v12-doc-list{display:grid}.parent-v12-doc-list a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.parent-v12-doc-list a:first-child{border-top:0}.parent-v12-doc-list strong,.parent-v12-doc-list span{display:block}.parent-v12-doc-list strong{font-size:9px}.parent-v12-doc-list span{margin-top:2px;color:var(--muted);font-size:7.5px}.parent-v12-doc-list b{color:var(--primary);font-size:8px}.parent-v12-doc-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:10px}.parent-v12-doc-toolbar>a{color:var(--primary);font-size:8px;text-decoration:none}.parent-v12-doc-toolbar strong,.parent-v12-doc-toolbar span{display:block}.parent-v12-doc-toolbar strong{font-size:10px}.parent-v12-doc-toolbar span{color:var(--muted);font-size:7.5px}.parent-v12-final-banner{margin-bottom:10px;padding:9px 12px;border-radius:9px;color:#137333;background:#e9f8ef;font-size:8px}.parent-v12-pp6{background:#fff}.parent-v12-password-wrap{max-width:620px;margin:0 auto}.parent-v12-password-card{margin-top:24px}
@media(max-width:1000px){.parent-v12-link-access{grid-template-columns:160px repeat(4,auto)}.parent-v12-schedule-days{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-v12-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.parent-v12-admin-layout,.parent-v12-detail-layout{grid-template-columns:1fr}.parent-v12-account-card{position:static}.parent-v12-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-v12-add-child-form{grid-template-columns:1fr 1fr}.parent-portal-topbar{grid-template-columns:1fr auto;padding:9px 14px}.parent-portal-topbar nav{display:none}.parent-portal-user>div{display:none}.parent-v12-hero{grid-template-columns:1fr}.parent-v12-child-grid{grid-template-columns:1fr}.parent-v12-schedule-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.parent-v12-summary,.parent-v12-overview-grid,.parent-v12-info-strip{grid-template-columns:1fr}.parent-v12-filter{grid-template-columns:1fr}.parent-v12-guardian-row{grid-template-columns:40px minmax(0,1fr)}.parent-v12-guardian-row>.parent-v12-count,.parent-v12-guardian-row>.access-badge{grid-column:2}.parent-v12-link-access{grid-template-columns:1fr 1fr}.parent-v12-link-access>.form-control{grid-column:1/-1}.parent-v12-add-child-form{grid-template-columns:1fr}.parent-portal-content{width:min(100% - 20px,1180px);padding-top:14px}.parent-v12-child-page-head{grid-template-columns:1fr}.parent-v12-child-page-head>a{order:-1}.parent-v12-child-identity h1{font-size:17px}.parent-v12-term-select select{width:100%}.parent-v12-schedule-days{grid-template-columns:1fr}.parent-v12-attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-v12-doc-toolbar{grid-template-columns:1fr}.parent-v12-child-stats{grid-template-columns:1fr 1fr 1fr}}
@media print{.parent-portal-topbar,.parent-portal-footer,.parent-v12-doc-toolbar,.parent-v12-final-banner{display:none!important}.parent-portal-content{width:100%;padding:0}.parent-v12-pp6{border:0!important;box-shadow:none!important}}


/* =========================================================
   V13 Notification Center
   ========================================================= */

.notif-v13-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.notif-v13-summary>div{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.notif-v13-summary span,.notif-v13-summary strong{display:block}
.notif-v13-summary span{color:var(--muted);font-size:9px}
.notif-v13-summary strong{margin-top:2px;font-size:20px}
.notif-v13-provider-strip{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:stretch;margin-bottom:14px}
.notif-v13-provider-strip>div{padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:#fff}
.notif-v13-provider-strip>div.ready{border-color:#ccebd7;background:#f2fbf5}
.notif-v13-provider-strip>div.waiting{border-color:#f1ddb6;background:#fffaf0}
.notif-v13-provider-strip strong,.notif-v13-provider-strip span{display:block}
.notif-v13-provider-strip strong{font-size:9.5px}
.notif-v13-provider-strip span{margin-top:2px;color:var(--muted);font-size:8px}
.notif-v13-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start;margin-bottom:14px}
.notif-v13-rules{display:grid}
.notif-v13-rule-head,.notif-v13-rule-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,72px);gap:8px;align-items:center}
.notif-v13-rule-head{padding:8px 0;color:var(--muted);font-size:8px;border-bottom:1px solid var(--border)}
.notif-v13-rule-head span:not(:first-child){text-align:center}
.notif-v13-rule-row{padding:10px 0;border-bottom:1px solid var(--border)}
.notif-v13-rule-row strong,.notif-v13-rule-row small{display:block}
.notif-v13-rule-row strong{font-size:9.5px}
.notif-v13-rule-row small{margin-top:2px;color:var(--muted);font-size:7.8px;line-height:1.4}
.notif-v13-rule-row>label{text-align:center}
.notif-v13-rules>.btn{margin-top:12px;width:max-content}
.notif-v13-history{padding:0;overflow:hidden}
.notif-v13-history>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}
.notif-v13-history-list{display:grid}
.notif-v13-history-list article{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:12px;padding:13px 18px;border-top:1px solid var(--border)}
.notif-v13-history-list article:first-child{border-top:0}
.notif-v13-severity{width:7px;border-radius:999px;background:#98a2b3}
.notif-v13-severity.success{background:#2e9d58}.notif-v13-severity.warning{background:#e0a12b}.notif-v13-severity.critical{background:#d92d20}.notif-v13-severity.info{background:#3b82f6}
.notif-v13-history-main>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.notif-v13-history-main strong{font-size:10px}
.notif-v13-history-main p{margin:4px 0;color:#475467;font-size:8.5px;line-height:1.5}
.notif-v13-history-main small{color:var(--muted);font-size:7.5px}
.notif-v13-event-pill{display:inline-flex;padding:2px 6px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:7px}
.notif-v13-delivery-mini{display:flex;flex-direction:column;gap:3px;align-items:flex-end;font-size:7.5px;color:#667085}
.notif-v13-delivery-mini b{color:#b42318}

.parent-v13-notification-nav{position:relative}
.parent-v13-notification-nav b{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:7px}
.parent-v13-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.parent-v13-page-head h1{margin:0;font-size:24px}.parent-v13-page-head p{margin:4px 0 0;color:#667085;font-size:12px}
.parent-v13-settings-link{color:var(--primary);text-decoration:none;font-size:12px;font-weight:600}
.parent-v13-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.parent-v13-filter-tabs{display:flex;gap:6px}
.parent-v13-filter-tabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;color:#475467;background:#fff;text-decoration:none;font-size:11px}
.parent-v13-filter-tabs a.active{color:#fff;background:var(--primary);border-color:var(--primary)}
.parent-v13-filter-tabs b{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:8px}
.parent-v13-notification-list{display:grid;gap:9px}
.parent-v13-notification{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fff}
.parent-v13-notification.unread{border-color:#bdd8fb;background:#f8fbff;box-shadow:0 5px 18px rgba(22,119,255,.07)}
.parent-v13-notif-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#eef2f6;color:#475467;font-weight:700}
.parent-v13-notif-icon.info{background:#eaf3ff;color:#1554ad}.parent-v13-notif-icon.success{background:#e9f8ef;color:#137333}.parent-v13-notif-icon.warning{background:#fff4dd;color:#8a5412}.parent-v13-notif-icon.critical{background:#fff0ef;color:#b42318}
.parent-v13-notif-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.parent-v13-notif-title strong{font-size:13px}.parent-v13-notif-title span{padding:2px 6px;border-radius:999px;background:#d92d20;color:#fff;font-size:7px}
.parent-v13-notif-main p{margin:5px 0;color:#475467;font-size:10.5px;line-height:1.55}
.parent-v13-notif-meta{display:flex;flex-wrap:wrap;gap:5px 10px;color:#98a2b3;font-size:8px}
.parent-v13-notif-actions{display:flex;align-items:center;gap:10px;margin-top:8px}
.parent-v13-notif-actions form{display:inline}.parent-v13-notif-actions button{border:0;background:transparent;padding:0;color:#667085;font-family:inherit;font-size:9px;cursor:pointer}
.parent-v13-open-button{color:var(--primary)!important;font-weight:600}
.parent-v13-provider-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.parent-v13-provider-card>div{padding:12px;border:1px solid var(--border);border-radius:10px}
.parent-v13-provider-card>div.ready{background:#f2fbf5;border-color:#ccebd7}.parent-v13-provider-card>div.waiting{background:#fffaf0;border-color:#f1ddb6}
.parent-v13-provider-card strong,.parent-v13-provider-card span{display:block}.parent-v13-provider-card strong{font-size:11px}.parent-v13-provider-card span{margin-top:2px;color:#667085;font-size:9px}
.parent-v13-destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.parent-v13-destination-grid label{display:block;margin-bottom:5px;font-size:10px;font-weight:600}.parent-v13-destination-grid small{display:block;margin-top:4px;color:#98a2b3;font-size:8px;line-height:1.4}
.parent-v13-pref-table{display:grid;margin-bottom:14px}
.parent-v13-pref-head,.parent-v13-pref-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,90px);gap:8px;align-items:center}
.parent-v13-pref-head{padding:8px 0;color:#98a2b3;font-size:8px;border-bottom:1px solid var(--border)}
.parent-v13-pref-row{padding:10px 0;border-bottom:1px solid var(--border)}
.parent-v13-pref-row strong,.parent-v13-pref-row small{display:block}.parent-v13-pref-row strong{font-size:10px}.parent-v13-pref-row small{margin-top:2px;color:#98a2b3;font-size:8px}
.parent-v13-pref-row>label{text-align:center}.parent-v13-pref-row>label.disabled{opacity:.55}.parent-v13-pref-row>label small{margin-top:2px}

@media(max-width:900px){.notif-v13-layout{grid-template-columns:1fr}.notif-v13-announcement{position:static}.notif-v13-provider-strip{grid-template-columns:1fr 1fr}.notif-v13-provider-strip form{grid-column:1/-1}}
@media(max-width:700px){.notif-v13-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.notif-v13-rule-head,.notif-v13-rule-row{grid-template-columns:minmax(0,1fr) repeat(4,48px)}.notif-v13-history-list article{grid-template-columns:7px minmax(0,1fr)}.notif-v13-delivery-mini{grid-column:2;align-items:flex-start}.parent-v13-provider-card,.parent-v13-destination-grid{grid-template-columns:1fr}.parent-v13-pref-head,.parent-v13-pref-row{grid-template-columns:minmax(0,1fr) repeat(3,58px)}}
@media(max-width:520px){.notif-v13-summary{grid-template-columns:1fr}.notif-v13-provider-strip{grid-template-columns:1fr}.parent-v13-page-head,.parent-v13-toolbar{align-items:flex-start;flex-direction:column}.parent-v13-notification{grid-template-columns:38px minmax(0,1fr);padding:11px}.parent-v13-notif-icon{width:36px;height:36px}.parent-v13-notif-actions{align-items:flex-start;flex-direction:column}}


/* =========================================================
   V14 PA Teacher Evaluation
   ========================================================= */
.pa-v14-actions{display:flex;gap:7px;flex-wrap:wrap}
.pa-v14-summary,.pa-v14-submission-head,.pa-v14-assessment-summary{
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px
}
.pa-v14-summary>div,.pa-v14-submission-head>div,.pa-v14-assessment-summary>div{
    padding:13px 15px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)
}
.pa-v14-summary span,.pa-v14-submission-head span,.pa-v14-assessment-summary span{display:block;color:var(--muted);font-size:8.5px}
.pa-v14-summary strong,.pa-v14-submission-head strong,.pa-v14-assessment-summary strong{display:block;margin-top:3px;font-size:15px}
.pa-v14-section{margin-bottom:14px}
.pa-v14-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pa-v14-card{display:block;padding:14px;border:1px solid var(--border);border-radius:12px;color:var(--text);background:#fff;text-decoration:none}
.pa-v14-card:hover{border-color:#b8d7fb;box-shadow:0 8px 24px rgba(15,84,166,.08)}
.pa-v14-card-head{display:flex;justify-content:space-between;gap:8px;align-items:center}
.pa-v14-card>span,.pa-v14-card>small,.pa-v14-card>b{display:block;margin-top:6px;font-size:8.5px}
.pa-v14-card>span,.pa-v14-card>small{color:var(--muted)}
.pa-v14-status{display:inline-flex!important;align-items:center;width:max-content;min-height:22px;padding:3px 7px;border-radius:999px;font-size:7.8px!important;font-weight:700}
.pa-v14-status.draft{color:#8a5412;background:#fff4d8}.pa-v14-status.open{color:#1554ad;background:#eaf3ff}.pa-v14-status.submitted{color:#6246a8;background:#f1edff}.pa-v14-status.assessment{color:#8a5412;background:#fff4d8}.pa-v14-status.final{color:#137333;background:#e9f8ef}.pa-v14-status.closed{color:#667085;background:#f2f4f7}
.pa-v14-assigned-list,.pa-v14-cycle-list,.pa-v14-assessor-list,.pa-v14-committee-list{display:grid}
.pa-v14-assigned-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--border)}
.pa-v14-assigned-list article:first-child{border-top:0}.pa-v14-assigned-list strong,.pa-v14-assigned-list span{display:block}.pa-v14-assigned-list span{margin-top:2px;color:var(--muted);font-size:8.5px}
.pa-v14-cycle-list>a,.pa-v14-cycle-nav>a,.pa-v14-committee-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}
.pa-v14-cycle-list>a:first-child,.pa-v14-cycle-nav>a:first-child,.pa-v14-committee-list>a:first-child{border-top:0}.pa-v14-cycle-list strong,.pa-v14-cycle-list span,.pa-v14-cycle-list small,.pa-v14-cycle-nav strong,.pa-v14-cycle-nav span,.pa-v14-committee-list strong,.pa-v14-committee-list span{display:block}.pa-v14-cycle-list span,.pa-v14-cycle-nav span,.pa-v14-committee-list span{margin-top:2px;color:var(--muted);font-size:8px}.pa-v14-cycle-list>a>div~div{text-align:center}.pa-v14-cycle-list b{font-size:13px}.pa-v14-cycle-list small{color:var(--muted);font-size:7px}
.pa-v14-admin-layout,.pa-v14-teacher-layout,.pa-v14-assessor-layout,.pa-v14-committee-layout,.pa-v14-assessment-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start;margin-bottom:14px}
.pa-v14-teacher-layout,.pa-v14-assessment-layout{grid-template-columns:minmax(0,1fr) 310px}.pa-v14-assessor-layout{grid-template-columns:minmax(0,1fr) 360px}.pa-v14-committee-layout{grid-template-columns:minmax(0,1fr) 390px}
.pa-v14-cycle-nav>a{grid-template-columns:minmax(0,1fr) auto}.pa-v14-cycle-nav>a.active,.pa-v14-committee-list>a.active{background:#f3f8ff}.pa-v14-create-box,.pa-v14-add-section,.pa-v14-add-indicator{padding:11px 0;border-top:1px solid var(--border)}.pa-v14-create-box>summary,.pa-v14-add-section>summary,.pa-v14-add-indicator>summary{color:var(--primary);font-size:8.5px;cursor:pointer}
.pa-v14-cycle-form{display:grid;gap:10px}.pa-v14-rubric-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:22px 0 9px}.pa-v14-rubric-head h3{margin:0;font-size:14px}.pa-v14-rubric-head p{margin:2px 0 0;color:var(--muted);font-size:8px}
.pa-v14-rubric-section,.pa-v14-evidence-section,.pa-v14-score-section{margin-top:10px;border:1px solid var(--border);border-radius:11px;overflow:hidden}.pa-v14-rubric-section-head,.pa-v14-score-section-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 12px;background:#fbfcfe}.pa-v14-rubric-section-head strong,.pa-v14-score-section-head strong{font-size:9.5px}.pa-v14-rubric-section-head span,.pa-v14-score-section-head span{font-size:8px;color:#667085}
.pa-v14-indicator-list>div{display:grid;grid-template-columns:minmax(0,1fr) 90px auto auto;gap:8px;align-items:center;padding:9px 12px;border-top:1px solid var(--border)}.pa-v14-indicator-list strong,.pa-v14-indicator-list small{display:block}.pa-v14-indicator-list strong{font-size:9px}.pa-v14-indicator-list small{margin-top:2px;color:var(--muted);font-size:7.5px}.pa-v14-indicator-list>div>span{font-size:8px;color:#475467}
.pa-v14-indicator-form{display:grid;grid-template-columns:90px minmax(180px,1.4fr) 110px 90px minmax(150px,1fr) auto auto;gap:7px;align-items:center;margin-top:9px}.pa-v14-add-section{margin-top:12px}
.pa-v14-file-list{display:grid;gap:6px;margin-bottom:10px}.pa-v14-file-list>div{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:8px}.pa-v14-file-list a{min-width:0;color:var(--text);text-decoration:none}.pa-v14-file-list strong,.pa-v14-file-list span{display:block;overflow:hidden;text-overflow:ellipsis}.pa-v14-file-list strong{font-size:8.5px}.pa-v14-file-list span{color:var(--muted);font-size:7px}.pa-v14-upload-box,.pa-v14-submit-box{padding-top:10px;border-top:1px solid var(--border)}
.pa-v14-evidence-panel{margin-bottom:14px}.pa-v14-evidence-section{margin:12px}.pa-v14-evidence-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(180px,.8fr) minmax(260px,1fr);gap:10px;align-items:start;padding:11px 12px;border-top:1px solid var(--border)}.pa-v14-evidence-row strong,.pa-v14-evidence-row span,.pa-v14-evidence-row small{display:block}.pa-v14-evidence-row strong{font-size:9px}.pa-v14-evidence-row span{margin-top:2px;color:#475467;font-size:8px}.pa-v14-evidence-row small{margin-top:2px;color:var(--muted);font-size:7.5px}.pa-v14-evidence-files{display:grid;gap:4px}.pa-v14-evidence-files>div{display:flex;align-items:center;gap:5px}.pa-v14-evidence-files a{font-size:8px;color:var(--primary);text-decoration:none}.pa-v14-evidence-files button{border:0;background:transparent;color:#b42318;cursor:pointer}.pa-v14-evidence-files em{color:#98a2b3;font-size:8px}.pa-v14-evidence-upload{display:grid;grid-template-columns:1fr 1fr auto;gap:6px}
.pa-v14-committee-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pa-v14-committee-mini>div{padding:10px;border:1px solid var(--border);border-radius:9px}.pa-v14-committee-mini strong,.pa-v14-committee-mini span{display:block}.pa-v14-committee-mini strong{font-size:9px}.pa-v14-committee-mini span{margin:3px 0;color:var(--muted);font-size:7.5px}
.pa-v14-invite-box{margin-bottom:14px;border-color:#b7d8fb;background:#f6fbff}.pa-v14-invite-box>strong{display:block;margin-bottom:8px;font-size:10px}.pa-v14-invite-box>div{display:flex;align-items:center;gap:10px;margin-top:8px}.pa-v14-invite-box span{font-size:8px;color:var(--muted)}.pa-v14-assessor-side{display:grid;gap:14px}.pa-v14-assessor-list article{display:grid;grid-template-columns:42px minmax(0,1fr) 55px auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.pa-v14-assessor-list article:first-child{border-top:0}.pa-v14-assessor-list article.inactive{opacity:.5}.pa-v14-assessor-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-weight:700}.pa-v14-assessor-list strong,.pa-v14-assessor-list span,.pa-v14-assessor-list small{display:block}.pa-v14-assessor-list strong{font-size:9.5px}.pa-v14-assessor-list span{margin-top:2px;color:#475467;font-size:8px}.pa-v14-assessor-list small{margin-top:2px;color:var(--muted);font-size:7.5px}.pa-v14-assessor-state{text-align:center}.pa-v14-assessor-state b,.pa-v14-assessor-state small{display:block}.pa-v14-assessor-state b{font-size:13px}.pa-v14-assessor-state small{font-size:7px;color:var(--muted)}.pa-v14-row-actions{display:flex;gap:5px;flex-wrap:wrap}.pa-v14-person-select{height:auto;min-height:145px;margin-top:6px;padding:5px}
.pa-v14-filter-panel{margin-bottom:14px}.pa-v14-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;max-width:800px}.pa-v14-committee-list>a{grid-template-columns:minmax(0,1fr) auto}.pa-v14-assessor-picker{display:grid;gap:6px;max-height:530px;overflow:auto}.pa-v14-assessor-picker>div{display:grid;grid-template-columns:minmax(0,1fr) 135px;gap:7px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:9px}.pa-v14-assessor-picker label{display:flex;align-items:flex-start;gap:7px}.pa-v14-assessor-picker strong,.pa-v14-assessor-picker small{display:block}.pa-v14-assessor-picker strong{font-size:8.5px}.pa-v14-assessor-picker small{font-size:7.5px;color:var(--muted)}
.pa-v14-assessment-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.pa-v14-read-box{padding:10px;border:1px solid var(--border);border-radius:9px;margin-top:8px}.pa-v14-read-box strong{font-size:9px}.pa-v14-read-box p{margin:4px 0 0;font-size:8.5px;line-height:1.55;color:#475467}.pa-v14-main-files{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.pa-v14-main-files>span{font-size:8px;color:var(--muted)}.pa-v14-score-panel{padding:0;overflow:hidden;margin-bottom:14px}.pa-v14-score-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}.pa-v14-score-section{margin:12px}.pa-v14-score-row{display:grid;grid-template-columns:minmax(0,1.2fr) 120px minmax(220px,1fr);gap:10px;align-items:start;padding:11px 12px;border-top:1px solid var(--border)}.pa-v14-score-info strong,.pa-v14-score-info span,.pa-v14-score-info small{display:block}.pa-v14-score-info strong{font-size:9px}.pa-v14-score-info span{margin-top:2px;color:#475467;font-size:7.8px}.pa-v14-score-info small{margin-top:2px;color:var(--muted);font-size:7.5px}.pa-v14-score-files{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.pa-v14-score-files a{font-size:7.5px;color:var(--primary);text-decoration:none}.pa-v14-score-files em{font-size:7.5px;color:#98a2b3}.pa-v14-score-input{display:grid;grid-template-columns:1fr;gap:2px}.pa-v14-score-input label{font-size:8px;color:#475467}.pa-v14-score-input small{font-size:7.5px;color:var(--muted)}.pa-v14-final-comment{margin-bottom:14px}.pa-v14-final-comment .btn{margin-top:10px}
.pa-v14-report-panel{padding:0;overflow:hidden}.pa-v14-report-panel>.panel-title{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}.pa-v14-report-table-wrap{overflow:auto}.pa-v14-report-table{width:100%;min-width:1000px;border-collapse:collapse}.pa-v14-report-table th,.pa-v14-report-table td{padding:9px 8px;border-top:1px solid var(--border);text-align:left;vertical-align:middle;font-size:8.5px}.pa-v14-report-table th{color:var(--muted);font-size:7.8px;background:#fbfcfe}.pa-v14-report-table td strong,.pa-v14-report-table td small{display:block}.pa-v14-report-table td small{margin-top:2px;color:var(--muted);font-size:7.5px}.pa-v14-result{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:7.5px}.pa-v14-result.pass{color:#137333;background:#e9f8ef}.pa-v14-result.fail{color:#9b2c25;background:#fff0ef}.pa-v14-result.pending{color:#667085;background:#f2f4f7}.pa-v14-report-detail>td{background:#fbfcfe}.pa-v14-progress-line{display:flex;gap:7px;flex-wrap:wrap}.pa-v14-progress-line>div{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--border);border-radius:8px;background:#fff}.pa-v14-progress-line span,.pa-v14-progress-line em{font-size:7.5px}.pa-v14-progress-line em{color:#475467;font-style:normal}.pa-v14-finalize-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:7px;max-width:720px;margin-top:8px}
@media(max-width:1100px){.pa-v14-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pa-v14-admin-layout,.pa-v14-teacher-layout,.pa-v14-assessor-layout,.pa-v14-committee-layout,.pa-v14-assessment-layout{grid-template-columns:1fr}.pa-v14-indicator-form{grid-template-columns:repeat(3,minmax(0,1fr))}.pa-v14-evidence-row{grid-template-columns:1fr 1fr}.pa-v14-evidence-upload{grid-column:1/-1}.pa-v14-committee-mini{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.pa-v14-summary,.pa-v14-submission-head,.pa-v14-assessment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pa-v14-card-grid,.pa-v14-committee-mini{grid-template-columns:1fr}.pa-v14-indicator-list>div{grid-template-columns:1fr auto}.pa-v14-indicator-list>div form{grid-column:1/-1}.pa-v14-indicator-form,.pa-v14-evidence-row,.pa-v14-score-row{grid-template-columns:1fr}.pa-v14-assessor-list article{grid-template-columns:42px minmax(0,1fr)}.pa-v14-assessor-state,.pa-v14-row-actions{grid-column:2}.pa-v14-assessor-picker>div{grid-template-columns:1fr}.pa-v14-filter-grid{grid-template-columns:1fr}.pa-v14-finalize-form{grid-template-columns:1fr}}
@media(max-width:520px){.pa-v14-summary,.pa-v14-submission-head,.pa-v14-assessment-summary{grid-template-columns:1fr}.pa-v14-assigned-list article{grid-template-columns:1fr}.pa-v14-evidence-upload{grid-template-columns:1fr}}

.pa-v14-inline-edit{position:relative}.pa-v14-inline-edit>summary{list-style:none;cursor:pointer}.pa-v14-inline-edit>summary::-webkit-details-marker{display:none}.pa-v14-mini-edit-form{position:absolute;right:0;top:32px;z-index:30;width:520px;display:grid;grid-template-columns:90px minmax(180px,1fr) minmax(150px,1fr) 80px auto;gap:6px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.16)}.pa-v14-mini-indicator{width:720px;grid-template-columns:80px minmax(180px,1.2fr) 90px 75px minmax(140px,1fr) auto auto}@media(max-width:760px){.pa-v14-mini-edit-form,.pa-v14-mini-indicator{position:fixed;left:14px;right:14px;top:90px;width:auto;grid-template-columns:1fr;max-height:70vh;overflow:auto}}


/* =========================================================
   V15 Finance + Procurement
   ========================================================= */
.fp-v15-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.fp-v15-term-panel{margin-bottom:14px}.fp-v15-term-grid{display:grid;grid-template-columns:minmax(180px,280px);gap:10px}
.fp-v15-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fp-v15-summary-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fp-v15-summary>div{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.fp-v15-summary>div.primary{background:#f3f8ff;border-color:#cfe2ff}
.fp-v15-summary span,.fp-v15-summary strong{display:block}.fp-v15-summary span{color:var(--muted);font-size:8.5px}.fp-v15-summary strong{margin-top:3px;font-size:18px}
.fp-v15-main-grid,.fp-v15-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.fp-v15-budget-list{display:grid}.fp-v15-budget-list article{display:grid;grid-template-columns:minmax(220px,1.8fr) repeat(4,minmax(90px,.55fr));gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}
.fp-v15-budget-list article:first-child{border-top:0}.fp-v15-budget-list strong,.fp-v15-budget-list span,.fp-v15-budget-list small,.fp-v15-budget-list b{display:block}
.fp-v15-budget-list article>div:first-child span{margin-top:2px;color:var(--muted);font-size:8px}.fp-v15-budget-list article>div:not(:first-child){text-align:right}.fp-v15-budget-list small{color:var(--muted);font-size:7.5px}.fp-v15-budget-list b{font-size:9px}.fp-v15-budget-list .available b{color:var(--primary);font-size:11px}
.fp-v15-payment-mini{display:grid}.fp-v15-payment-mini a{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text)}
.fp-v15-payment-mini a:first-child{border-top:0}.fp-v15-payment-mini strong,.fp-v15-payment-mini span{display:block}.fp-v15-payment-mini span{color:var(--muted);font-size:8px}.fp-v15-payment-mini b{font-size:10px}
.fp-v15-recent{margin-bottom:14px}.fp-v15-table-sub{display:block;color:var(--muted);font-size:7.5px;margin-top:2px}
.fp-v15-status{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:7.5px;font-weight:700;white-space:nowrap}
.fp-v15-status.draft{background:#fff4d8;color:#8a5412}.fp-v15-status.submitted,.fp-v15-status.payment_pending{background:#eef4ff;color:#315b9a}.fp-v15-status.approved,.fp-v15-status.posted,.fp-v15-status.paid,.fp-v15-status.completed,.fp-v15-status.received{background:#e9f8ef;color:#137333}
.fp-v15-status.rejected,.fp-v15-status.cancelled,.fp-v15-status.void{background:#fff0ef;color:#9b2c25}.fp-v15-status.ordered,.fp-v15-status.inspecting{background:#f3edff;color:#6941c6}
.fp-v15-master-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fp-v15-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.fp-v15-tags span{padding:4px 7px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:7.5px}
.fp-v15-mini-list{display:grid;margin-top:12px}.fp-v15-mini-list>a,.fp-v15-mini-list>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.fp-v15-mini-list strong,.fp-v15-mini-list span{display:block}.fp-v15-mini-list strong{font-size:9px}.fp-v15-mini-list span{font-size:8px;color:var(--muted)}
.fp-v15-tx-layout,.fp-v15-vendor-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.fp-v15-filter{display:grid;grid-template-columns:200px minmax(220px,1fr);gap:8px;margin-bottom:12px}.fp-v15-filter-wide{grid-template-columns:160px 160px minmax(220px,1fr) auto}
.fp-v15-row-actions{display:flex;gap:5px;flex-wrap:wrap}.fp-v15-payment-list{display:grid}.fp-v15-payment-list>a{display:grid;grid-template-columns:minmax(0,1fr) 120px 90px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}
.fp-v15-payment-list>a:first-child{border-top:0}.fp-v15-payment-list>a.active{background:#f7faff}.fp-v15-payment-list strong,.fp-v15-payment-list span{display:block}.fp-v15-payment-list>a>div span{color:var(--muted);font-size:8px}.fp-v15-payment-list>a>b{text-align:right}
.fp-v15-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.fp-v15-detail-grid>div{padding:10px;border:1px solid var(--border);border-radius:9px}.fp-v15-detail-grid small,.fp-v15-detail-grid strong{display:block}.fp-v15-detail-grid small{color:var(--muted);font-size:7.5px}.fp-v15-detail-grid strong{margin-top:2px;font-size:11px}.fp-v15-payment-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:7px;margin-top:10px}
.fp-v15-vendor-list{display:grid}.fp-v15-vendor-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.fp-v15-vendor-list article:first-child{border-top:0}.fp-v15-vendor-list article.inactive{opacity:.5}.fp-v15-vendor-list strong,.fp-v15-vendor-list span,.fp-v15-vendor-list small{display:block}.fp-v15-vendor-list span{margin-top:2px;color:#475467;font-size:8px}.fp-v15-vendor-list small{margin-top:2px;color:var(--muted);font-size:7.5px}
.fp-v15-form-panel{max-width:900px}.fp-v15-pr-list{display:grid}.fp-v15-pr-list>a{display:grid;grid-template-columns:125px minmax(0,1fr) 120px 90px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text)}.fp-v15-pr-list>a:first-child{border-top:0}.fp-v15-pr-list>a:hover{background:#fbfcfe}
.fp-v15-pr-no strong,.fp-v15-pr-no small,.fp-v15-pr-list>a>div:nth-child(2) strong,.fp-v15-pr-list>a>div:nth-child(2) span,.fp-v15-pr-list>a>div:nth-child(2) small,.fp-v15-pr-money small,.fp-v15-pr-money strong,.fp-v15-pr-money span{display:block}.fp-v15-pr-no strong{font-size:9px}.fp-v15-pr-no small,.fp-v15-pr-list>a>div:nth-child(2) span,.fp-v15-pr-list>a>div:nth-child(2) small,.fp-v15-pr-money small,.fp-v15-pr-money span{font-size:7.5px;color:var(--muted)}.fp-v15-pr-money{text-align:right}.fp-v15-pr-money strong{font-size:10px}
.fp-v15-workflow{margin-bottom:14px}.fp-v15-workflow-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.fp-v15-workflow-steps>div{text-align:center;padding:8px 4px;border-radius:9px;background:#f6f7f9;color:#667085}.fp-v15-workflow-steps>div.current{background:var(--primary-soft);color:var(--primary)}.fp-v15-workflow-steps b,.fp-v15-workflow-steps span{display:block}.fp-v15-workflow-steps b{font-size:10px}.fp-v15-workflow-steps span{font-size:7px;margin-top:2px}
.fp-v15-request-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.fp-v15-request-layout>div{display:grid;gap:14px}.fp-v15-request-layout>aside{display:grid;gap:14px}
.fp-v15-add-block{padding:10px 0;border-top:1px solid var(--border)}.fp-v15-add-block>summary,.fp-v15-reject>summary{color:var(--primary);font-size:8.5px;cursor:pointer}.fp-v15-item-form{display:grid;grid-template-columns:110px 1.1fr 1.3fr 90px 80px 130px auto;gap:6px;align-items:center;margin-top:9px}
.fp-v15-quote-list{display:grid}.fp-v15-quote-list article{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.fp-v15-quote-list article:first-child{border-top:0}.fp-v15-quote-list article.selected{background:#f5fbf7}.fp-v15-quote-list strong,.fp-v15-quote-list span,.fp-v15-quote-list small{display:block}.fp-v15-quote-list span,.fp-v15-quote-list small{font-size:7.5px;color:var(--muted)}.fp-v15-quote-list>b{text-align:right}.fp-v15-quote-form{display:grid;grid-template-columns:1.3fr 130px 130px 130px 1fr auto;gap:6px;align-items:center;margin-top:10px}
.fp-v15-order-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.fp-v15-order-tabs a{padding:5px 8px;border:1px solid var(--border);border-radius:8px;font-size:8px;color:#475467;text-decoration:none}.fp-v15-order-tabs a.active{color:#fff;background:var(--primary);border-color:var(--primary)}
.fp-v15-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.fp-v15-price-grid label{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:7px;align-items:center}.fp-v15-price-grid span{font-size:8px}.fp-v15-order-detail{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0;padding:10px;border:1px solid var(--border);border-radius:10px}.fp-v15-order-detail strong,.fp-v15-order-detail span{display:block}.fp-v15-order-detail span{font-size:8px;color:var(--muted)}
.fp-v15-inspection-list{display:grid}.fp-v15-inspection-list article{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.fp-v15-inspection-list article:first-child{border-top:0}.fp-v15-inspection-list strong,.fp-v15-inspection-list span,.fp-v15-inspection-list small{display:block}.fp-v15-inspection-list span,.fp-v15-inspection-list small{font-size:7.5px;color:var(--muted)}.fp-v15-inspection-list>b{text-align:right}
.fp-v15-inspect-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.fp-v15-inspect-grid>div{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px;gap:6px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:9px}.fp-v15-inspect-grid strong,.fp-v15-inspect-grid span{display:block}.fp-v15-inspect-grid strong{font-size:8.5px}.fp-v15-inspect-grid span{font-size:7.5px;color:var(--muted)}
.fp-v15-side-note{display:grid;gap:5px;margin-top:12px;padding:10px;border-radius:9px;background:#f8fafc}.fp-v15-side-note span,.fp-v15-side-note b{font-size:8px}.fp-v15-side-note b{color:var(--primary)}
.fp-v15-side-panel details{margin-top:10px}.fp-v15-side-panel summary{color:var(--primary);font-size:8px;cursor:pointer}.fp-v15-committee{display:grid;gap:3px;padding:8px 0;border-top:1px solid var(--border)}.fp-v15-committee:first-child{border-top:0}.fp-v15-committee strong{font-size:8.5px}.fp-v15-committee span{font-size:7.5px;color:#667085}
.fp-v15-file-list{display:grid}.fp-v15-file-list a{padding:7px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text)}.fp-v15-file-list a:first-child{border-top:0}.fp-v15-file-list strong,.fp-v15-file-list span{display:block}.fp-v15-file-list strong{font-size:8px}.fp-v15-file-list span{font-size:7px;color:var(--muted)}
.fp-v15-reject{margin-top:10px}.fp-v15-reject form{display:grid;gap:6px;margin-top:7px}

@media(max-width:1180px){
 .fp-v15-budget-list article{grid-template-columns:minmax(180px,1.5fr) repeat(4,minmax(80px,.6fr))}
 .fp-v15-item-form,.fp-v15-quote-form{grid-template-columns:repeat(3,minmax(0,1fr))}
 .fp-v15-payment-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .fp-v15-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-v15-main-grid,.fp-v15-setup-grid,.fp-v15-tx-layout,.fp-v15-vendor-layout,.fp-v15-request-layout{grid-template-columns:1fr}
 .fp-v15-summary>div.primary{grid-column:1/-1}.fp-v15-request-layout>aside .access-sticky-card{position:static}.fp-v15-workflow-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
 .fp-v15-budget-list article{grid-template-columns:minmax(0,1fr) repeat(2,90px)}.fp-v15-budget-list article>div:nth-child(4),.fp-v15-budget-list article>div:nth-child(5){display:none}
}
@media(max-width:700px){
 .fp-v15-summary,.fp-v15-summary-4,.fp-v15-master-cols,.fp-v15-detail-grid,.fp-v15-price-grid,.fp-v15-inspect-grid{grid-template-columns:1fr}
 .fp-v15-filter,.fp-v15-filter-wide,.fp-v15-item-form,.fp-v15-quote-form,.fp-v15-payment-form{grid-template-columns:1fr}
 .fp-v15-pr-list>a{grid-template-columns:90px minmax(0,1fr)}.fp-v15-pr-money,.fp-v15-pr-list>a>.fp-v15-status{grid-column:2}
 .fp-v15-payment-list>a{grid-template-columns:minmax(0,1fr) 90px}.fp-v15-payment-list>a>.fp-v15-status{grid-column:1/-1;width:max-content}
 .fp-v15-price-grid label{grid-template-columns:1fr}.fp-v15-inspect-grid>div{grid-template-columns:1fr 1fr}.fp-v15-inspect-grid>div>strong,.fp-v15-inspect-grid>div>span{grid-column:1/-1}
 .fp-v15-workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* =========================================================
   PA Default ว9/2564 + Task PA
   ========================================================= */
.pa-w9-template-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pa-w9-template-actions details{position:relative}
.pa-w9-template-actions summary{color:var(--muted);font-size:8px;cursor:pointer}
.pa-w9-template-actions details form{margin-top:6px}

.pa-w9-task-card{
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #cfe2ff;
    border-radius:12px;
    background:#f7fbff
}
.pa-w9-task-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px
}
.pa-w9-task-heading strong,.pa-w9-task-heading span{display:block}
.pa-w9-task-heading strong{font-size:12px;color:#174b84}
.pa-w9-task-heading span{margin-top:2px;color:var(--muted);font-size:8px}
.pa-w9-task-heading b{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#e7f1ff;
    color:#174b84;
    font-size:8px;
    white-space:nowrap
}
.pa-w9-task-review{
    display:grid;
    gap:10px;
    margin:12px 0;
    padding:13px;
    border:1px solid #cfe2ff;
    border-radius:12px;
    background:#f7fbff
}
.pa-w9-task-title{
    padding:11px;
    border-radius:9px;
    background:#fff;
    border:1px solid var(--border);
    color:#1d2939;
    font-size:10px;
    font-weight:700;
    line-height:1.6
}
@media(max-width:700px){
    .pa-w9-task-heading{flex-direction:column}
}
