/* ============================================================================
   Educated.Web.Ui — dark mode of the light portals (student and teacher spaces)
   html[data-theme="dark"]: "Sobre" dark tokens of the mobile app, and the surfaces that ui-base.css paints in
   light colours. Portal-specific classes (ss-*, tsp-*) keep their own dark rules in the portal stylesheet.
   ========================================================================== */
html[data-theme="dark"], html[data-theme="dark"] body { background: #121315; color-scheme: dark; }
html[data-theme="dark"] .ts-boot { color: #B3B4BA; }
html[data-theme="dark"] .ts-boot-bar { background: #2A2B2F; }

html[data-theme="dark"] .ts-root {
    --ts-bg: #121315;
    --ts-card: #1B1C1F;
    --ts-surface: #1B1C1F;
    --ts-surface-2: #26272B;
    --ts-sunk: #17181A;
    --ts-ink: #F2F2F3;
    --ts-ink-2: #B3B4BA;
    --ts-ink-3: #85868D;
    --ts-line: #2A2B2F;
    --ts-line-2: #36373C;
    --ts-brand: #8E88FF;
    --ts-brand-2: #C6C2FF;
    --ts-brand-soft: #2A2A35;
    --ts-brand-ink: #C6C2FF;
    --ts-accent: #FF6A3D;
    --ts-accent-2: #FFB020;
    --ts-accent-ink: #FF9A6B;
    --ts-accent-soft: #3A2416;
    --ts-ok: #5BD08F;
    --ts-ok-soft: #14321F;
    --ts-warn: #FFC266;
    --ts-warn-ink: #FFC266;
    --ts-warn-soft: #3A2C12;
    --ts-bad: #FF7A86;
    --ts-bad-soft: #3A1A20;
    --ts-shadow: none;
    background: var(--ts-bg);
    color-scheme: dark;
}
html[data-theme="dark"] .ts-root :focus-visible { outline-color: #C6C2FF; }

/* Surfaces that the teacher CSS paints in light colours */
html[data-theme="dark"] .ts-login { background: radial-gradient(1200px 500px at 0% 0%, #1E1D33 0%, transparent 60%), radial-gradient(900px 400px at 100% 100%, #2A1D16 0%, transparent 55%), #121315; }
html[data-theme="dark"] .ts-login-card,
html[data-theme="dark"] .ts-dialog,
html[data-theme="dark"] .ts-toast,
html[data-theme="dark"] .ts-more { background: #1B1C1F; border-color: #2A2B2F; box-shadow: 0 18px 48px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .ts-tabbar { background: rgba(27, 28, 31, .96); }
html[data-theme="dark"] .ts-card-head { background: var(--ts-card); }
html[data-theme="dark"] .ts-card { border-color: var(--ts-line); box-shadow: none; }
html[data-theme="dark"] .ts-user { background: var(--ts-card); }
html[data-theme="dark"] .ts-nav-link.ts-on { background: var(--ts-brand-soft); }
html[data-theme="dark"] .ts-row-link:hover,
html[data-theme="dark"] .ts-notif:hover,
html[data-theme="dark"] .ts-contact:hover { background: #212226; }
html[data-theme="dark"] .ts-notif-unread { background: #1F1F2B; }
html[data-theme="dark"] .ts-stat { background: var(--ts-sunk); border-color: var(--ts-line); }
html[data-theme="dark"] .ts-table thead th { background: var(--ts-sunk); color: var(--ts-brand-2); }
html[data-theme="dark"] .ts-chip-next { background: var(--ts-card); border-color: var(--ts-line-2); }
html[data-theme="dark"] .ts-btn-locked { background: var(--ts-sunk); border-color: var(--ts-line); color: var(--ts-ink-3) !important; }
html[data-theme="dark"] .ts-btn:not(.ts-btn-primary):not(.ts-btn-locked):not(.ts-btn-ghost):hover { border-color: var(--ts-line-2); }
html[data-theme="dark"] .ts-btn-danger { background: var(--ts-bad-soft); border-color: transparent; color: var(--ts-bad) !important; }
html[data-theme="dark"] .ts-bell-count, html[data-theme="dark"] .ts-tab-badge { border-color: #1B1C1F; }
html[data-theme="dark"] .ts-pwd button { color: var(--ts-brand); }
html[data-theme="dark"] .ts-input-bad { background: var(--ts-bad-soft); }

/* Light text on a light brand colour: dark text instead */
html[data-theme="dark"] .ts-filter-on,
html[data-theme="dark"] .ts-cal-day-today strong { color: #0B0B1D; }
html[data-theme="dark"] .ts-badge-urgent,
html[data-theme="dark"] .ts-tab-badge,
html[data-theme="dark"] .ts-bell-count { color: #1B1C1F; }

/* Day strip and calendar */
html[data-theme="dark"] .ts-day-track { background: #26272B; }
html[data-theme="dark"] .ts-day-seg { box-shadow: 0 0 0 2px #1B1C1F; }
html[data-theme="dark"] .ts-day-done { background: #C6C2FF; }
html[data-theme="dark"] .ts-day-live { background: #8E88FF; }
html[data-theme="dark"] .ts-day-next { background: #3A3A4A; }
html[data-theme="dark"] .ts-day-off { background: repeating-linear-gradient(45deg, #3A2C12 0 4px, #26272B 4px 8px); }
html[data-theme="dark"] .ts-cal-col-today { background: #1F1F2B; }
html[data-theme="dark"] .ts-ev-next { background: var(--ts-card); }

/* Chat */
html[data-theme="dark"] .ts-bubble-mine { background: var(--ts-brand-soft); border-color: #3A3A55; }

/* Home: featured card, day strip todo segment, dialogs */
html[data-theme="dark"] .ts-card-featured { background: radial-gradient(520px 200px at 100% 0%, #24234A 0%, transparent 70%), var(--ts-card); border-color: #34335A; }
html[data-theme="dark"] .ts-dialog-icon-danger { background: var(--ts-bad-soft); color: var(--ts-bad); }
html[data-theme="dark"] .ts-day-todo { background: #D99A1E; }
html[data-theme="dark"] .ts-legend .ts-day-off, html[data-theme="dark"] .ts-legend .ts-day-next { border: 1px solid #3A3A4A; }

/* Teacher space: roll call, calendar events, grade entry */
html[data-theme="dark"] .ts-student-absent { background: #2A1A1E; }
html[data-theme="dark"] .ts-student-late { background: #2A2416; }
html[data-theme="dark"] .ts-seg-on.ts-seg-absent { background: var(--ts-bad-soft); }
html[data-theme="dark"] .ts-seg-on.ts-seg-late { background: var(--ts-warn-soft); }
html[data-theme="dark"] .ts-ev-done { background: #14261B; }
html[data-theme="dark"] .ts-ev-todo { background: #2A1A1E; }
html[data-theme="dark"] .ts-ev-next { background: var(--ts-card); }
html[data-theme="dark"] .ts-changed td { background: #1F1F2B; }
html[data-theme="dark"] .ts-note { background: var(--ts-sunk); color: var(--ts-ink); border-color: var(--ts-line-2); }
html[data-theme="dark"] .ts-input-bad { background: var(--ts-bad-soft); }
