/* Shared light palette for pages built with Tailwind's class-based dark theme. */
.domain-notice {
    position: relative;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.55rem 1rem;
    background: #dbeafe;
    color: #172554;
    font: 500 0.875rem/1.4 system-ui, sans-serif;
    text-align: center;
}
.domain-notice a { color: #1d4ed8; font-weight: 700; text-decoration: underline; }
.domain-notice button {
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    padding: 0.1rem 0.45rem;
    background: rgb(30 64 175 / 0.1);
    color: inherit;
    font: 700 1.25rem/1.2 system-ui, sans-serif;
    cursor: pointer;
}
.error-page { display: flex; flex-direction: column; }
.error-page > main { width: min(calc(100% - 3rem), 32rem); margin: auto; }
@media (max-width: 640px) {
    .domain-notice { justify-content: space-between; gap: 0.5rem; padding: 0.55rem 0.75rem; font-size: 0.78rem; text-align: left; }
}
.course-detail-page,
.course-detail-page * { scrollbar-width: none; }
html:has(> body.course-detail-page) { scrollbar-width: none; }
.course-detail-page::-webkit-scrollbar,
.course-detail-page *::-webkit-scrollbar,
html:has(> body.course-detail-page)::-webkit-scrollbar { display: none; }
.landing-page { min-height: 100vh; }
@supports (height: 100dvh) {
    .landing-page { min-height: 100dvh; }
}
.home-main { min-width: 0; overflow-x: clip; }
@media (min-width: 1024px) {
    .home-page { height: 100vh; height: 100dvh; min-height: 0; }
    .home-page > header { flex: 0 0 auto; }
    .home-main { min-height: 0; }
    .home-main-shell,
    .home-inner-wrap,
    .home-layout,
    .home-layout-row { min-height: 0; min-width: 0; }
    .home-main-shell,
    .home-inner-wrap,
    .home-layout,
    .home-layout-row { flex: 1 1 0%; }
    .home-layout { display: flex; min-width: 0; }
    .home-layout-row {
        display: grid;
        grid-template-areas: "courses sidebar";
        grid-template-columns: minmax(0, 1fr) minmax(16rem, 20%);
        width: 100%;
    }
    .home-courses-column {
        grid-area: courses;
        display: flex;
        flex: 1 1 0%;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
    }
    .home-courses-column > footer { flex: 0 0 auto; margin-top: auto; }
    .latest-assignments-panel {
        grid-area: sidebar;
        width: auto;
        min-width: 0;
        min-height: 0;
        max-height: none;
    }
    .home-course-content {
        flex: 1 1 0%;
        min-width: 0;
        min-height: 0;
        overflow-y: auto;
    }
}
html.dark .latest-assignments-panel { background-color: #1e293b !important; border-color: #334155 !important; }
html.dark .latest-assignments-panel h2,
html.dark .latest-assignments-panel [data-assignment-title] { color: #f1f5f9 !important; }
html.dark .latest-assignments-panel p:not([data-assignment-title]) { color: #94a3b8 !important; }
html.dark .latest-assignments-panel [data-home-toggle] button,
html.dark .latest-assignments-card a { color: #f9a8d4 !important; }
html.dark .latest-assignments-panel [data-home-toggle] button:hover,
html.dark .latest-assignments-card a:hover { color: #fbcfe8 !important; }
html.dark .latest-assignments-card > a { border-color: #334155 !important; }
html:not(.dark) body { background-color: #f8fafc !important; color: #1e293b !important; }
html:not(.dark) .site-brand-logo { filter: invert(1); }
html:not(.dark) .bg-navy-900 { background-color: #f1f5f9 !important; }
html:not(.dark) .bg-navy-800 { background-color: #fff !important; }
html:not(.dark) .library-folder { background-color: #fff !important; }
html:not(.dark) .bg-navy-900\/50, html:not(.dark) .bg-navy-900\/90, html:not(.dark) .bg-navy-900\/95 { background-color: rgba(241, 245, 249, .96) !important; }
html:not(.dark) .bg-navy-700, html:not(.dark) .hover\:bg-navy-700:hover { background-color: #e2e8f0 !important; }
html:not(.dark) .bg-pink-900\/40 { background-color: #fce7f3 !important; }
html:not(.dark) .bg-slate-950\/70 { background-color: #e2e8f0 !important; }
html:not(.dark) .bg-slate-800 { background-color: #fff !important; }
html:not(.dark) .border-navy-700 { border-color: #cbd5e1 !important; }
html:not(.dark) .border-white\/10 { border-color: #cbd5e1 !important; }
html:not(.dark) .text-slate-100, html:not(.dark) .text-slate-200,
html:not(.dark) .text-slate-300, html:not(.dark) .text-gray-100,
html:not(.dark) .text-gray-200, html:not(.dark) .text-gray-300,
html:not(.dark) .text-white { color: #1e293b !important; }
html:not(.dark) .text-slate-400, html:not(.dark) .text-gray-400,
html:not(.dark) .text-slate-500, html:not(.dark) .text-gray-500 { color: #64748b !important; }
html:not(.dark) .text-pink-200 { color: #be185d !important; }
html:not(.dark) .text-pink-300 { color: #db2777 !important; }
html:not(.dark) .tab-btn[aria-selected="true"] { color: #be185d !important; }
html:not(.dark) .tab-btn:hover { color: #be185d !important; }
html:not(.dark) .divide-navy-700 > :not([hidden]) ~ :not([hidden]) { border-color: #e2e8f0 !important; }
html:not(.dark) input:not([type=checkbox]):not([type=radio]),
html:not(.dark) select, html:not(.dark) textarea { background-color: #fff !important; color: #1e293b !important; border-color: #cbd5e1 !important; }
html:not(.dark) input::placeholder, html:not(.dark) textarea::placeholder { color: #94a3b8 !important; }
html:not(.dark) .bg-white { background-color: #fff !important; }
html:not(.dark) .home-new-count-badge { background-color: #f1f5f9 !important; border-color: #cbd5e1 !important; color: #334155 !important; }
html:not(.dark) .bg-pink-500.text-white, html:not(.dark) .bg-pink-600.text-white,
html:not(.dark) .bg-indigo-600.text-white, html:not(.dark) .bg-emerald-600.text-white,
html:not(.dark) .bg-red-600.text-white { color: #fff !important; }
html:not(.dark) .bg-gray-50 { background-color: #f8fafc !important; }
html:not(.dark) .bg-gray-100 { background-color: #f1f5f9 !important; }
html:not(.dark) .border-gray-200, html:not(.dark) .border-slate-700 { border-color: #e2e8f0 !important; }
html:not(.dark) .hover\:bg-slate-700\/50:hover { background-color: #e2e8f0 !important; }
html:not(.dark) .announcement-card { background-color: #fff !important; }
html:not(.dark) .course-login-banner { background-image: linear-gradient(to right, #fce7f3, #fff) !important; }
html:not(.dark) .course-login-banner:hover { background-image: linear-gradient(to right, #fbcfe8, #fff) !important; }
html.dark .home-courses-title { color: #fff !important; }
html:not(.dark) .home-courses-title { color: #1c368d !important; }
html:not(.dark) .home-page > header { background-color: #1c368d !important; color: #fff !important; }
html.dark .home-page > header { background-color: #1c368d !important; }
html:not(.dark) .home-page > header .text-white { color: #fff !important; }
html:not(.dark) .latest-assignments-panel .year-announcement-trigger {
    background-color: #db2777 !important;
    color: #fff !important;
}
html:not(.dark) .latest-assignments-panel .year-announcement-trigger:hover { background-color: #be185d !important; }
body.home-page .swal2-container { z-index: 2147483647 !important; }
body.home-page .swal2-container.swal2-backdrop-show { backdrop-filter: blur(8px); }
html:not(.dark) .latest-assignments-panel [data-toggle-label].text-emerald-400,
html:not(.dark) .latest-assignments-panel [data-toggle-label].text-emerald-600 { color: #047857; }
html:not(.dark) .announcement-card [data-edit-year-announcement]:hover { color: #be185d; }
html:not(.dark) .announcement-card [data-delete-year-announcement]:hover { color: #be123c; }
html:not(.dark) .home-course-card .text-pink-400,
html:not(.dark) .home-course-card .text-pink-500,
html:not(.dark) .home-course-card .text-pink-600 { color: #be185d; }
html:not(.dark) .home-course-card .text-purple-400,
html:not(.dark) .home-course-card .text-purple-100 { color: #7e22ce; }
html:not(.dark) .home-course-card .text-blue-400 { color: #1d4ed8; }
html:not(.dark) .home-course-card .text-emerald-400,
html:not(.dark) .home-course-card .text-emerald-100 { color: #047857; }
html:not(.dark) .home-course-card .text-amber-400 { color: #b45309; }
html:not(.dark) .home-course-card .text-cyan-400 { color: #0e7490; }
html:not(.dark) .home-course-card .text-rose-400 { color: #be123c; }
html:not(.dark) .home-course-card .text-indigo-400 { color: #4338ca; }
html:not(.dark) .home-course-card .group:hover .group-hover\:text-pink-100 { color: #be185d; }
html:not(.dark) .home-page > header .site-brand-logo { filter: none; }
html:not(.dark) .home-page > header #theme-toggle .fa-moon { color: #fff !important; }
html:not(.dark) .course-detail-page .course-desktop-header { background-color: #1c368d !important; color: #fff !important; }
html:not(.dark) .course-detail-page .course-desktop-header .site-brand-logo { filter: none; }
html:not(.dark) .course-detail-page .course-desktop-header #theme-toggle .fa-moon { color: #fff !important; }
html:not(.dark) .file-card button[aria-label^="Edit"] { color: #334155 !important; }
html:not(.dark) .file-card button[aria-label="Delete"] { color: #b91c1c !important; }
/* Course detail actions need their own light surfaces and stronger contrast. */
html:not(.dark) .course-detail-page [data-assignment-menu] > button { color: #475569 !important; }
html:not(.dark) .course-detail-page [data-assignment-menu] > button:hover { background-color: #e2e8f0 !important; color: #0f172a !important; }
html:not(.dark) .course-detail-page [data-assignment-menu] [role="menu"] {
    background-color: #fff !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 12px 28px rgb(15 23 42 / 18%) !important;
}
html:not(.dark) .course-detail-page [data-assignment-menu] [role="menuitem"] { color: #334155 !important; }
html:not(.dark) .course-detail-page [data-assignment-menu] [role="menuitem"] i { color: #64748b !important; }
html:not(.dark) .course-detail-page [data-assignment-menu] [role="menuitem"]:hover { background-color: #f1f5f9 !important; }
html:not(.dark) .course-detail-page [data-assignment-menu] [role="menuitem"].text-red-300 { color: #b91c1c !important; }
html:not(.dark) .course-detail-page .file-card > div[class*="absolute right-2"] {
    background-color: rgb(255 255 255 / 96%) !important;
    border: 1px solid #cbd5e1;
    box-shadow: 0 2px 8px rgb(15 23 42 / 15%);
}
html:not(.dark) .course-detail-page .file-card button[aria-label^="Edit"] { color: #334155 !important; }
html:not(.dark) .course-detail-page .file-card button[aria-label="Delete"] { color: #b91c1c !important; }
html:not(.dark) .course-detail-page .file-card button[aria-label^="Edit"]:hover { background-color: #fce7f3 !important; color: #be185d !important; }
html:not(.dark) .course-detail-page .file-card button[aria-label="Delete"]:hover { background-color: #fee2e2 !important; color: #b91c1c !important; }
html:not(.dark) .course-detail-page #assignment-modal input[type="file"] { color: #334155 !important; }
html:not(.dark) .course-detail-page #assignment-modal input[type="file"]::file-selector-button {
    background-color: #fce7f3 !important;
    color: #9d174d !important;
    border: 1px solid #f9a8d4 !important;
    cursor: pointer;
}
html:not(.dark) .course-detail-page #assignment-modal #assignment-file-options { background-color: #fff !important; }
html:not(.dark) .course-detail-page #assignment-modal [data-assignment-file-row] { color: #334155 !important; }
html:not(.dark) .course-detail-page #assignment-modal [data-assignment-file-row]:hover { background-color: #f1f5f9 !important; }
html:not(.dark) .course-detail-page #assignment-modal #assignment-file-selection-count,
html:not(.dark) .course-detail-page #assignment-modal #assignment-attachment-fields > p { color: #64748b !important; }
html:not(.dark) .course-detail-page #assignment-modal #assignment-type-selector label { color: #334155 !important; }
html:not(.dark) .course-detail-page #assignment-modal #assignment-type-selector label:has(:checked) { color: #fff !important; }
html:not(.dark) .course-detail-page #assignment-modal #assignment-attachment-fields {
    background-color: #f8fafc !important;
    border-color: #cbd5e1 !important;
}
html:not(.dark) .course-detail-page #assignment-modal #assignment-attachment-fields > div > label,
html:not(.dark) .course-detail-page #assignment-modal #assignment-attachment-fields > label { color: #334155 !important; }
html:not(.dark) .course-detail-page #assignment-modal #assignment-no-course-files { color: #64748b !important; }
html:not(.dark) .course-detail-page #assignment-modal input[type="file"]::file-selector-button:hover { background-color: #fbcfe8 !important; }
html:not(.dark) .course-detail-page .assignment-attachment-link {
    background-color: #fff !important;
    border-color: #cbd5e1 !important;
    color: #334155 !important;
}
html:not(.dark) .course-detail-page .assignment-attachment-link:hover { border-color: #f472b6 !important; }
html:not(.dark) .course-detail-page .assignment-attachment-link .fa-file-arrow-down { color: #be185d !important; }
html:not(.dark) .course-detail-page [data-assignment-id] span.rounded.bg-navy-700 {
    background-color: #e2e8f0 !important;
    color: #334155 !important;
}
html:not(.dark) .course-detail-page [data-assignment-id] span.rounded.bg-navy-700.text-amber-300 { color: #92400e !important; }
html:not(.dark) .course-detail-page #completed-assignments {
    background-color: #f8fafc !important;
    border-color: #cbd5e1 !important;
}
html:not(.dark) .course-detail-page #completed-assignments > summary { color: #334155 !important; }
html:not(.dark) .course-detail-page #completed-assignments > #assignment-done-list { border-color: #cbd5e1 !important; }
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] {
    background-color: #f0fdf4 !important;
    border-color: #bbf7d0 !important;
}
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] h3 {
    color: #166534 !important;
    text-decoration: none !important;
}
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] [data-expandable-content] { color: #475569 !important; }
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] .text-gray-400,
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] .text-slate-400 { color: #64748b !important; }
html:not(.dark) .course-detail-page #assignment-done-list article[data-assignment-status="done"] [data-assignment-toggle] button {
    background-color: #fff !important;
    border-color: #bbf7d0 !important;
}
