/* ==========================================
   MAMA TERESA SCHOOLS ERP
   Components Styles
========================================== */

/* ==========================
   Cards
========================== */

.card {
    border: 1px solid var(--smis-border);
    border-radius: var(--smis-radius);
    box-shadow: var(--smis-shadow);
    min-width: 0;
}
.card-body,.card-header,.card-footer,.page-header>*,.alert,.form-text{min-width:0;overflow-wrap:anywhere}.card-header,.page-header{height:auto}.page-header h1,.page-header p,.card-title,.card-header{word-break:normal;overflow-wrap:anywhere}

.card-header {
    border-bottom-color: var(--smis-border);
    font-weight: 700;
}

/* ==========================
   Brand Card Header
========================== */

.card-header-brand {
    background-color: var(--color-primary);
    color: var(--color-primary-text, #fff);
}

.recommended-grading{background:var(--smis-surface-soft);border-color:color-mix(in srgb,var(--color-primary) 30%,var(--smis-border))}.recommended-grading .table{min-width:720px;table-layout:auto}.recommended-grading thead th{background:var(--color-primary);color:var(--color-primary-text,#fff);vertical-align:middle;white-space:nowrap;word-break:normal}.recommended-grading tbody td{background:var(--smis-surface);color:var(--smis-text);vertical-align:middle}.recommended-grading th:first-child,.recommended-grading td:first-child{width:3.25rem;text-align:center}.recommended-grading th:nth-child(2),.recommended-grading td:nth-child(2),.recommended-grading th:nth-child(3),.recommended-grading td:nth-child(3){text-align:center;white-space:nowrap}.recommended-grading td:last-child{white-space:normal;overflow-wrap:break-word}
.recommended-grading .principal-preset-table,.recommended-grading .grading-profile-table{min-width:980px}.recommended-grading .principal-preset-table th:nth-child(-n+4),.recommended-grading .principal-preset-table td:nth-child(-n+4),.recommended-grading .grading-profile-table th:nth-child(-n+4),.recommended-grading .grading-profile-table td:nth-child(-n+4){text-align:center;white-space:nowrap}.recommended-grading .principal-preset-table th:nth-child(5),.recommended-grading .principal-preset-table td:nth-child(5),.recommended-grading .grading-profile-table th:nth-child(5),.recommended-grading .grading-profile-table td:nth-child(5){min-width:12rem}.recommended-grading .principal-preset-table th:nth-child(6),.recommended-grading .principal-preset-table td:nth-child(6),.recommended-grading .grading-profile-table th:nth-child(6),.recommended-grading .grading-profile-table td:nth-child(6){min-width:20rem;text-align:left;white-space:normal;overflow-wrap:break-word}

/* ==========================
   Accent Badge
========================== */

.badge-accent {
    background-color: var(--color-accent);
    color: var(--color-accent-text);
}

/* ==========================
   Buttons
========================== */

.btn-rounded {
    border-radius: 50px;
}

.btn-icon {

    width: 42px;

    height: 42px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding: 0;

}

.btn-brand:hover,.btn-brand:focus-visible,.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important;color:var(--color-primary-hover-text)!important}
.btn-outline-primary{color:var(--color-primary);border-color:var(--color-primary)}
.btn-outline-primary:hover,.btn-outline-primary:focus-visible{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}
.btn-secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-secondary-text)}
.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-secondary-hover);color:var(--color-secondary-hover-text)}
.btn-outline-secondary{color:var(--smis-text);border-color:var(--color-secondary)}
.btn-outline-secondary:hover,.btn-outline-secondary:focus-visible{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-secondary-text)}
.btn-accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}
.btn-accent:hover,.btn-accent:focus-visible{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-accent-hover-text)}
.bg-primary{background-color:var(--color-primary)!important;color:var(--color-primary-text)!important}.bg-secondary{background-color:var(--color-secondary)!important;color:var(--color-secondary-text)!important}

/* ==========================
   Avatars
========================== */

.avatar {

    width: 42px;

    height: 42px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: 700;

    color: var(--color-primary-text);

    background: var(--color-primary);

}
.btn{max-width:100%;height:auto;white-space:nowrap;text-align:center}.btn-wrap{white-space:normal;overflow-wrap:break-word}.badge{white-space:nowrap}.page-actions{min-width:0}

.assignment-groups{display:grid;gap:.65rem}.assignment-group{display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);gap:.75rem;padding:.75rem;border:1px solid var(--smis-border);border-radius:var(--smis-radius);background:var(--smis-surface-soft)}.assignment-group-title{font-weight:700}.assignment-group-items{display:flex;flex-wrap:wrap;gap:.4rem}.assignment-item{display:inline-flex;align-items:center;padding:.25rem .55rem;border:1px solid var(--smis-border);border-radius:50rem;background:#fff;overflow-wrap:break-word}
@media(max-width:767.98px){.assignment-group{grid-template-columns:1fr}.assignment-group-items{display:grid;grid-template-columns:1fr}.assignment-item{border-radius:.45rem}}

.page-header{background:var(--smis-surface);border:1px solid var(--smis-border);border-radius:var(--smis-radius);padding:1.15rem 1.25rem;box-shadow:var(--smis-shadow)}.page-header-icon,.ui-stat-icon,.quick-action-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:.7rem}.page-header-icon{width:44px;height:44px;background:color-mix(in srgb,var(--color-primary) 12%,white);color:var(--color-primary);font-size:1.2rem}.ui-stat-card{box-shadow:none}.ui-stat-icon{width:46px;height:46px;font-size:1.25rem;flex:0 0 auto}.quick-action{display:flex;align-items:center;gap:.75rem;padding:.8rem;border:1px solid var(--smis-border);border-radius:.7rem;text-decoration:none;color:inherit;background:#fff}.quick-action:hover,.quick-action:focus{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 5px 16px rgba(15,23,42,.08)}.quick-action-icon{width:38px;height:38px;background:var(--smis-surface-soft);color:var(--color-primary)}.empty-state{padding:2.5rem 1rem}.empty-state>i{font-size:2rem;color:var(--smis-muted)}.setup-card{border-left:4px solid var(--color-accent)}.setup-card .progress-bar{background:var(--color-primary)}.responsive-table-card .table{margin-bottom:0}.filter-bar{background:var(--smis-surface);border:1px solid var(--smis-border);border-radius:var(--smis-radius);padding:1rem}

.quick-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem}.quick-action{min-height:58px}.dashboard-panel{overflow:hidden}.dashboard-panel>.card-header{background:var(--smis-surface);padding:1rem 1.25rem}.school-context-logo{width:52px;height:52px;object-fit:contain;border-radius:.65rem;border:1px solid var(--smis-border);padding:.25rem}.school-context-placeholder{display:inline-flex;align-items:center;justify-content:center;background:var(--smis-surface-soft);color:var(--color-primary);font-size:1.25rem}.activity-icon{width:34px;flex:0 0 34px;text-align:center;font-size:1.15rem}.min-w-0{min-width:0}
.setup-card-compact .card-body{padding:.8rem 1rem}.setup-card-compact .progress{height:.35rem}.setup-card-compact .btn{font-size:.78rem;padding:.32rem .58rem}

.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem 1.5rem;border-radius:var(--smis-radius);color:var(--color-primary-text);background:linear-gradient(120deg,var(--color-primary),var(--color-primary-hover));box-shadow:var(--smis-shadow)}
.welcome-eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--color-primary-text) 78%,transparent)}.welcome-context,.welcome-summary,.welcome-meta{color:color-mix(in srgb,var(--color-primary-text) 86%,transparent)}
.ui-enter{animation:tems-enter .28s ease-out both}.page-shell>.row,.page-shell>.card,.page-shell>.dashboard-panel{animation:tems-enter .3s ease-out both}
.card,.quick-action,.btn{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease,color .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.10)}.btn:active{transform:translateY(1px)}
.dashboard-panel canvas{animation:tems-chart-enter .35s ease-out both}.notification-new{animation:tems-notification-pulse .4s ease-out 2}.ui-step-card.is-reached{border-color:color-mix(in srgb,var(--color-primary) 42%,var(--smis-border))}
@keyframes tems-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tems-chart-enter{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes tems-notification-pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 18%,transparent)}}
@media(max-width:767.98px){.welcome-banner{align-items:flex-start;flex-direction:column}.welcome-meta{text-align:left!important}}
@media(max-width:575.98px){.page-header{align-items:flex-start!important;padding:1rem}.page-header>div:first-child{align-items:flex-start!important;min-width:0}.page-header h1{font-size:1.35rem}.page-actions{width:100%}.page-actions>.btn,.page-actions>form{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.tems-pagination{padding:.85rem 1rem;border-top:1px solid var(--smis-border);background:var(--smis-surface)}
.tems-pagination .page-link{color:var(--color-primary);white-space:nowrap}
.tems-pagination .page-item.active .page-link{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}
.tems-pagination-links{max-width:100%;padding-bottom:1px}
.academic-context{display:flex;align-items:center;gap:.9rem;background:var(--smis-surface);border:1px solid var(--smis-border);border-left:3px solid var(--color-primary);border-radius:.65rem;box-shadow:0 3px 10px rgba(15,23,42,.05);padding:.48rem .75rem;min-height:46px}
.academic-context-heading{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}.academic-context-title{display:flex;align-items:center;gap:.35rem;margin:0;color:var(--color-primary);font-size:.72rem;font-weight:800;letter-spacing:.025em;text-transform:uppercase}.academic-context-title i{font-size:.85rem}.academic-context-configure{padding:.2rem .45rem;font-size:.7rem;white-space:nowrap;order:2}
.academic-context-summary{display:flex;align-items:center;min-width:0;flex:1;flex-wrap:wrap}.academic-context-item{display:flex;align-items:baseline;gap:.28rem;min-width:9rem;flex:1 1 auto;padding:.15rem .7rem;border-left:1px solid var(--smis-border)}.academic-context-item dt{color:var(--smis-muted);font-size:.68rem;font-weight:700;white-space:nowrap}.academic-context-item dt::after{content:':'}.academic-context-item dd{margin:0;font-size:.76rem;font-weight:700;overflow-wrap:anywhere;white-space:normal}.academic-context-warning{font-size:.65rem;white-space:normal}
@media(max-width:991.98px){.academic-context{align-items:flex-start;flex-direction:column;gap:.4rem}.academic-context-heading{width:100%;justify-content:space-between}.academic-context-summary{width:100%}.academic-context-item:first-child{border-left:0;padding-left:0}}
@media(max-width:767.98px){.tems-pagination{align-items:stretch}.tems-pagination-links{width:100%}.academic-context{padding:.55rem .7rem}.academic-context-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .75rem}.academic-context-item{display:block;padding:0;border:0}.academic-context-item dd{white-space:normal}}
@media(max-width:399.98px){.academic-context-summary{grid-template-columns:1fr}}

/* Compact, readable record and summary primitives shared across TEMS. */
.ui-stat-card{min-width:0}.ui-stat-card .card-body{padding:.85rem 1rem;min-width:0}.ui-stat-card .text-uppercase{word-break:normal;overflow-wrap:normal;white-space:normal}.ui-stat-card .h3{font-size:1.55rem;margin-top:.35rem!important}.ui-stat-card .ui-stat-icon{width:42px;height:42px;font-size:1.15rem}.row-number{width:3.25rem;min-width:3.25rem;text-align:center!important;white-space:nowrap;color:var(--smis-muted);font-variant-numeric:tabular-nums}.table>:not(caption)>*>*{padding:.58rem .7rem;vertical-align:middle}.card-body{min-width:0}.compact-list .list-group-item{padding:.65rem .85rem}
.dashboard-context-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.dashboard-context-list div{padding:.55rem .65rem;border-radius:.55rem;background:var(--smis-surface-soft);min-width:0}.dashboard-context-list dt{font-size:.68rem;color:var(--smis-muted);text-transform:uppercase;letter-spacing:.03em}.dashboard-context-list dd{margin:0;font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.promotion-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.promotion-context>div{padding:.7rem .8rem;border:1px solid var(--smis-border);border-radius:.65rem;background:var(--smis-surface)}.promotion-context span{display:block;color:var(--smis-muted);font-size:.7rem;text-transform:uppercase}.promotion-context strong{display:block;margin-top:.15rem}.promotion-table{min-width:720px}.promotion-actions-column{width:28rem}.promotion-table .form-check-inline{margin-right:.8rem}.table-responsive>.table{margin-bottom:0}
@media(max-width:767.98px){.dashboard-context-list,.promotion-context{grid-template-columns:1fr 1fr}.promotion-actions-column{width:23rem}}
@media(max-width:479.98px){.dashboard-context-list,.promotion-context{grid-template-columns:1fr}}
