:root {
    --mm-blue: #315f8c;
    --mm-blue-dark: #244868;
    --mm-soft-bg: #f6f8fb;
    --mm-card-bg: #ffffff;
    --mm-text: #243142;
    --mm-muted: #6c7a89;
    --mm-gold: #d9a441;
}

body {
    background: var(--mm-soft-bg);
    color: var(--mm-text);
}

.site-header {
    box-shadow: 0 2px 12px rgba(36, 49, 66, 0.04);
}

.brand-icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
}

.navbar-brand {
    color: var(--mm-blue-dark);
}

.nav-link {
    color: var(--mm-text);
}

.nav-link:hover,
.nav-link.active {
    color: var(--mm-blue);
}

.btn-primary {
    background-color: var(--mm-blue);
    border-color: var(--mm-blue);
}

.btn-primary:hover {
    background-color: var(--mm-blue-dark);
    border-color: var(--mm-blue-dark);
}

.btn-outline-primary {
    color: var(--mm-blue);
    border-color: var(--mm-blue);
}

.btn-outline-primary:hover {
    background-color: var(--mm-blue);
    border-color: var(--mm-blue);
}

.card {
    border: 1px solid rgba(36, 49, 66, 0.08);
    box-shadow: 0 10px 24px rgba(36, 49, 66, 0.05);
}

.site-footer {
    background: #ffffff;
}

.hero-section {
    background:
        radial-gradient(circle at top left, rgba(49, 95, 140, 0.14), transparent 34%),
        radial-gradient(circle at bottom right, rgba(217, 164, 65, 0.16), transparent 30%);
}

.daily-goal-card {
    background: rgba(49, 95, 140, 0.06);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.goal-icon,
.feature-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    flex: 0 0 auto;
}

.feature-icon {
    font-size: 1.15rem;
}

.timeline-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.timeline-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(49, 95, 140, 0.06);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.timeline-marker {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--mm-blue);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    flex: 0 0 auto;
}

.student-card {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.student-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px rgba(36, 49, 66, 0.10);
}

.student-avatar {
    width: 64px;
    height: 64px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.16);
    color: var(--mm-gold);
    font-size: 1.7rem;
}

.target-grade-box {
    background: rgba(49, 95, 140, 0.06);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.dashboard-stat-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
}

.assignment-card {
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
}

.catch-up-card {
    background: rgba(217, 164, 65, 0.08);
    border-color: rgba(217, 164, 65, 0.22);
}

.progress-bar {
    background-color: var(--mm-blue);
}

.lesson-content {
    line-height: 1.8;
}

.example-content {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
    line-height: 1.8;
}

.question-box {
    background: rgba(49, 95, 140, 0.04);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.video-timer-box,
.encouragement-box {
    background: rgba(49, 95, 140, 0.06);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.assignment-sidebar {
    top: 1rem;
}

.complete-card {
    background:
        radial-gradient(circle at top left, rgba(49, 95, 140, 0.10), transparent 32%),
        #ffffff;
}

.complete-icon {
    width: 84px;
    height: 84px;
    border-radius: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
    font-size: 2rem;
}

.completed-assignment-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.reward-message {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.parent-student-card {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.parent-student-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 32px rgba(36, 49, 66, 0.10);
}

.parent-card-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.parent-stat-box {
    background: rgba(49, 95, 140, 0.06);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.reward-stat-box {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.recent-completion {
    background: rgba(36, 49, 66, 0.04);
    border: 1px solid rgba(36, 49, 66, 0.08);
}

.daily-log-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.table > :not(caption) > * > * {
    padding: 1rem 0.75rem;
}

.admin-action-card {
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.admin-action-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 32px rgba(36, 49, 66, 0.10);
    border-color: rgba(49, 95, 140, 0.20);
}

.admin-action-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
}

.student-admin-card {
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
    box-shadow: 0 10px 24px rgba(36, 49, 66, 0.05);
}

.student-path-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.subject-admin-card {
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
    box-shadow: 0 10px 24px rgba(36, 49, 66, 0.05);
}

.subject-admin-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.subject-stat-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.grade-admin-card {
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
    box-shadow: 0 10px 24px rgba(36, 49, 66, 0.05);
}

.grade-admin-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.grade-stat-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.delete-summary-box {
    background: rgba(220, 53, 69, 0.06);
    border: 1px solid rgba(220, 53, 69, 0.16);
}

.reward-admin-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.16);
    color: var(--mm-gold);
    font-size: 1.25rem;
}

.reward-rule-box {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.parent-note-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.quick-student-list,
.quick-scheduled-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.daily-plan-stat,
.daily-plan-path,
.daily-plan-assignment {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.catch-up-stat,
.catch-up-summary-card {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.report-stat,
.report-path,
.report-mini-stat,
.subject-report-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.sample-import-stat,
.sample-import-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.auto-schedule-note,
.auto-schedule-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-calendar-stat,
.student-calendar-item {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(150px, 1fr));
    gap: 0.75rem;
    overflow-x: auto;
}

.student-calendar-day-name {
    font-weight: 700;
    color: var(--mm-blue-dark);
    padding: 0.5rem;
    text-align: center;
}

.student-calendar-cell {
    min-height: 190px;
    background: #ffffff;
    border: 1px solid rgba(36, 49, 66, 0.08);
    border-radius: 1rem;
    padding: 0.75rem;
}

.student-calendar-cell.is-empty {
    background: rgba(36, 49, 66, 0.03);
    border-style: dashed;
}

@media (max-width: 991.98px) {
    .student-calendar-grid {
        grid-template-columns: repeat(7, minmax(170px, 1fr));
    }
}

.search-summary-box,
.search-result-card {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.settings-stat,
.settings-info-box,
.settings-student-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.approval-summary-box,
.approval-stat-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.parent-reward-total,
.parent-reward-box {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.parent-reward-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.16);
    color: var(--mm-gold);
    font-size: 1.25rem;
}

.daily-log-summary-box,
.parent-daily-log-card,
.parent-log-mini-stat,
.parent-log-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-reward-hero,
.student-reward-stat,
.student-reward-card,
.student-win-card,
.student-reward-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.student-reward-big-icon {
    width: 120px;
    height: 120px;
    border-radius: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.18);
    color: var(--mm-gold);
    font-size: 3rem;
}

.student-log-today,
.student-log-stat,
.student-daily-log-card,
.student-log-mini-stat,
.student-log-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-log-big-icon {
    width: 120px;
    height: 120px;
    border-radius: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 3rem;
}

.student-help-hero,
.student-help-step,
.student-help-info,
.student-help-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-help-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
}

.student-help-big-icon {
    width: 120px;
    height: 120px;
    border-radius: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 3rem;
}

.parent-help-hero,
.parent-help-stat,
.parent-help-step,
.parent-help-info,
.parent-help-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.parent-help-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
}

.parent-help-big-icon {
    width: 120px;
    height: 120px;
    border-radius: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 3rem;
}

.admin-help-hero,
.admin-help-stat,
.admin-help-step,
.admin-help-info,
.admin-help-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.admin-help-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 1.25rem;
}

.admin-help-big-icon {
    width: 120px;
    height: 120px;
    border-radius: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(49, 95, 140, 0.12);
    color: var(--mm-blue);
    font-size: 3rem;
}

.backup-stat,
.backup-info-box,
.backup-routine-box,
.backup-check-item,
.backup-activity-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.backup-warning {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.backup-warning-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.16);
    color: var(--mm-gold);
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.security-stat,
.security-check-item,
.security-mini-box,
.security-task {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.security-alert {
    background: rgba(220, 53, 69, 0.06);
    border: 1px solid rgba(220, 53, 69, 0.16);
}

.security-alert-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(220, 53, 69, 0.10);
    color: #dc3545;
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.admin-login-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.password-tool-box,
.password-tool-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.password-tool-box pre {
    white-space: pre-wrap;
    word-break: break-word;
}

.import-check-stat,
.import-check-item,
.import-recent-box,
.import-check-note,
.import-order-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.import-check-warning {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.import-check-icon,
.import-check-number {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 164, 65, 0.16);
    color: var(--mm-gold);
    font-size: 1.25rem;
    flex: 0 0 auto;
}

.import-check-number {
    font-weight: 800;
}

.content-gap-stat,
.content-gap-item {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.content-gap-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.student-note-stat,
.student-note-filter,
.student-note-card,
.student-note-mini {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-note-body {
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.lesson-planner-filter,
.lesson-planner-stat,
.lesson-schedule-item {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.lesson-planner-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.assignment-preview-meta,
.assignment-preview-sidebar,
.assignment-preview-question {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.assignment-preview-content {
    line-height: 1.8;
}

.bulk-student-option,
.bulk-schedule-note {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.bulk-student-option {
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.bulk-student-option:hover {
    transform: translateY(-2px);
    border-color: rgba(49, 95, 140, 0.25);
    background: rgba(49, 95, 140, 0.08);
}

.today-overview-filter,
.today-overview-stat,
.today-student-box,
.today-assignment-row,
.today-side-item {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.today-overview-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.week-overview-filter,
.week-overview-stat,
.week-day-box,
.week-assignment-row,
.week-student-summary {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.week-overview-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.student-coverage-filter,
.student-coverage-stat {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-coverage-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.subject-balance-filter,
.subject-balance-stat,
.subject-balance-row,
.subject-balance-mini {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.subject-balance-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.review-center-filter,
.review-center-stat {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.review-center-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.student-activity-filter,
.student-activity-stat,
.student-activity-item,
.student-activity-mini,
.student-log-side-item {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.student-activity-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.missing-activity-filter,
.missing-activity-stat,
.missing-activity-mini {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.missing-activity-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.assignment-library-filter,
.assignment-library-stat {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.assignment-library-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.resource-link-filter,
.resource-link-stat {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.resource-link-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.grade-readiness-filter,
.grade-readiness-stat,
.grade-readiness-box {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.grade-readiness-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}

.summer-progress-filter,
.summer-progress-stat,
.summer-progress-mini,
.summer-progress-subject,
.summer-progress-log {
    background: rgba(49, 95, 140, 0.05);
    border: 1px solid rgba(49, 95, 140, 0.10);
}

.summer-progress-note {
    background: rgba(217, 164, 65, 0.10);
    border: 1px solid rgba(217, 164, 65, 0.22);
}