/* Theme controls are shared. All planner overrides are scoped to the Tiimo theme. */
.theme-settings .fine-print { margin-top: 5px; }
.theme-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 0; margin: 20px 0 12px; border: 0; min-width: 0; }
.theme-choice { display: grid; grid-template-columns: minmax(0,1fr) 22px; gap: 12px; position: relative; min-width: 0; padding: 14px; border: 2px solid var(--paper-line); border-radius: 19px; cursor: pointer; background: var(--paper-card); }
.theme-choice:has(input:checked) { border-color: var(--accent); }
.theme-choice:has(input:focus-visible) { outline: 3px solid var(--accent-border); outline-offset: 4px; }
.theme-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; padding: 0; margin: 0; min-height: 0; }
.theme-choice-copy { min-width: 0; align-self: center; }
.theme-choice-copy strong, .theme-choice-copy small { display: block; }
.theme-choice-copy strong { font-size: .9375rem; }
.theme-choice-copy small { margin-top: 3px; color: var(--ink-secondary); font-size: .75rem; line-height: 1.6; }
.theme-selected-mark { width: 20px; height: 20px; align-self: center; border: 1.5px solid var(--paper-line-dark); border-radius: 50%; }
.theme-choice:has(input:checked) .theme-selected-mark { border: 6px solid var(--accent); }
.theme-sample { display: grid; grid-template-columns: 52px minmax(0,1fr); grid-column: 1 / -1; gap: 14px; min-height: 100px; padding: 17px; border-radius: 12px; background: #f1f5f4; border: 1px solid #e6ebe9; }
.theme-sample i { border-radius: 10px; background: #245d50; }
.theme-sample > span { display: grid; gap: 6px; }
.theme-sample b { display: block; height: 15px; border-radius: 5px; background: #d7e8e0; }
.theme-sample b:nth-child(2) { background: #ebe3d7; width: 84%; }
.theme-sample b:nth-child(3) { background: #dde5ed; width: 92%; }
.theme-sample-tiimo { background: #faf9f7; border-color: #edeaf0; }
.theme-sample-tiimo i { border: 9px solid #a489f5; border-bottom-color: #e7dff7; border-radius: 50%; background: #f5eee6; align-self: center; aspect-ratio: 1; }
.theme-sample-tiimo b { background: #eee5fc; border-radius: 9px; }
.theme-sample-tiimo b:nth-child(2) { background: #faedcf; }
.theme-sample-tiimo b:nth-child(3) { background: #e6edfb; }
.tiimo-daypart, .tiimo-course-icon, .tiimo-focus-orbit { display: none; }

html[data-ui-theme="tiimo"] {
  color-scheme: light;
  --paper-bg: #faf9f7;
  --paper-card: #ffffff;
  --paper-subtle: #f3f1f4;
  --paper-elevated: #ffffff;
  --paper-line: #eeebef;
  --paper-line-dark: #ccc6d0;
  --ink: #222126;
  --ink-secondary: #66616c;
  --ink-muted: #716b77;
  --muted: var(--ink-secondary);
  --accent: #7753be;
  --accent-dark: #6440a5;
  --accent-hover: #6640aa;
  --accent-light: #f0eaff;
  --accent-border: #c7b3eb;
  --warm: #926421;
  --warm-light: #fbefd9;
  --danger: #a84159;
  --shadow-sm: 0 2px 5px #30253804;
  --shadow-md: 0 4px 14px #30253808;
  --shadow-lg: 0 16px 48px #30253814;
  --nav-surface: #fffffff5;
  --hero-bg: #fff;
  --hero-ink: #222126;
  --tiimo-ring: #a183f6;
  --tiimo-ring-track: #eee8f8;
  --tiimo-ring-center: #faf5ee;
  --tiimo-heading-font: Georgia, 'Noto Serif SC', 'Songti SC', SimSun, serif;
}
html[data-ui-theme="tiimo"] body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif; }
html[data-ui-theme="tiimo"] .glass { box-shadow: none; border-radius: 22px; }
html[data-ui-theme="tiimo"] .topbar { background: transparent; border-color: transparent; padding-inline: 0; }
html[data-ui-theme="tiimo"] .brand-mark { background: var(--accent-light); box-shadow: none; border-radius: 50%; }
html[data-ui-theme="tiimo"] .brand small { letter-spacing: 0; }
html[data-ui-theme="tiimo"] .primary-nav { border-radius: 99px; padding: 5px; }
html[data-ui-theme="tiimo"] .nav-link { border-radius: 99px; }
html[data-ui-theme="tiimo"] .nav-link.active { color: var(--ink); background: var(--paper-card); }
html[data-ui-theme="tiimo"] .nav-badge { background: var(--accent); }
html[data-ui-theme="tiimo"] .home-intro h1,
html[data-ui-theme="tiimo"] .page-title h1 { font-family: var(--tiimo-heading-font); font-weight: 600; letter-spacing: -.035em; font-size: 2.8rem; }
html[data-ui-theme="tiimo"] .title-dot { display: none; }
html[data-ui-theme="tiimo"] .home-intro .eyebrow { font-size: .875rem; }
html[data-ui-theme="tiimo"] .hero-summary { max-width: 35em; line-height: 1.8; }
html[data-ui-theme="tiimo"] .next-card { background: var(--paper-card); color: var(--ink); border: 1px solid var(--paper-line); border-radius: 25px; box-shadow: var(--shadow-sm); min-height: 208px; }
html[data-ui-theme="tiimo"] .next-card::after { display: none; }
html[data-ui-theme="tiimo"] .next-status { color: var(--ink-secondary); }
html[data-ui-theme="tiimo"] .next-status i { background: var(--tiimo-ring); box-shadow: none; }
html[data-ui-theme="tiimo"] .next-relative { color: var(--accent-dark); background: var(--accent-light); border: 0; }
html[data-ui-theme="tiimo"] .next-course-info { padding-right: 110px; }
html[data-ui-theme="tiimo"] .next-course-info > strong { color: var(--ink); font-size: 1.25rem; letter-spacing: -.02em; }
html[data-ui-theme="tiimo"] .next-course-info > span,
html[data-ui-theme="tiimo"] .next-time span,
html[data-ui-theme="tiimo"] .next-footer,
html[data-ui-theme="tiimo"] .next-empty small { color: var(--ink-secondary); }
html[data-ui-theme="tiimo"] .next-footer { border-color: var(--paper-line); }
html[data-ui-theme="tiimo"] .next-progress { background: var(--tiimo-ring-track); }
html[data-ui-theme="tiimo"] .next-progress span { background: var(--tiimo-ring); }
html[data-ui-theme="tiimo"] .tiimo-focus-orbit { display: grid; place-items: center; position: absolute; right: 21px; top: 58px; width: 94px; height: 94px; border-radius: 50%; background: conic-gradient(var(--tiimo-ring) var(--focus-progress,0%),var(--tiimo-ring-track) 0); transform: rotate(-30deg); }
html[data-ui-theme="tiimo"] .tiimo-focus-orbit > span { display: grid; place-content: center; gap: 2px; width: 76px; height: 76px; text-align: center; border-radius: 50%; background: var(--tiimo-ring-center); transform: rotate(30deg); }
html[data-ui-theme="tiimo"] .tiimo-focus-orbit strong { font-family: Georgia, serif; font-size: 1.25rem; font-weight: 500; line-height: 1.2; color: var(--ink); }
html[data-ui-theme="tiimo"] .tiimo-focus-orbit small { font-size: .5625rem; color: var(--ink-secondary); }
html[data-ui-theme="tiimo"] .schedule-panel { border: 0; background: transparent; padding-inline: 0; padding-top: 8px; }
html[data-ui-theme="tiimo"] .calendar-picker select { font-family: var(--tiimo-heading-font); font-weight: 600; font-size: 1.4rem; letter-spacing: 0; }
html[data-ui-theme="tiimo"] .week-switch { border-radius: 99px; background: var(--paper-card); border: 1px solid var(--paper-line); }
html[data-ui-theme="tiimo"] .week-switch button { border-radius: 99px; }
html[data-ui-theme="tiimo"] .mode-switch { border-radius: 99px; border-color: transparent; }
html[data-ui-theme="tiimo"] .mode-switch button { border-radius: 99px; }
html[data-ui-theme="tiimo"] .week-strip { padding-bottom: 14px; }
html[data-ui-theme="tiimo"] .week-day { border-radius: 18px; color: var(--ink-secondary); }
html[data-ui-theme="tiimo"] .week-day strong { font-family: Georgia, serif; font-weight: 500; font-size: 1.375rem; display: grid; place-items: center; width: 38px; height: 38px; margin: 5px auto 0; border-radius: 50%; }
html[data-ui-theme="tiimo"] .week-day.selected { color: var(--ink); background: transparent; box-shadow: none; }
html[data-ui-theme="tiimo"] .week-day.selected strong { color: #fff; background: var(--accent); }
html[data-ui-theme="tiimo"] .week-day.today::after { background: var(--accent); }
html[data-ui-theme="tiimo"] #scheduleView[data-mode="day"] .week-strip { min-width: 0; grid-template-columns: repeat(7,minmax(0,1fr)); }
html[data-ui-theme="tiimo"] #scheduleView[data-mode="day"] .week-strip > div:first-child { display: none; }
html[data-ui-theme="tiimo"] #scheduleView[data-mode="day"] .week-timetable-viewport { overflow: visible; }
html[data-ui-theme="tiimo"] [data-color="0"] { --course-bg: #e7f0db; --course-color: #35452e; --course-accent: #729651; }
html[data-ui-theme="tiimo"] [data-color="1"] { --course-bg: #fcf1cc; --course-color: #594825; --course-accent: #b18c32; }
html[data-ui-theme="tiimo"] [data-color="2"] { --course-bg: #e7edfc; --course-color: #394a6a; --course-accent: #7b92c4; }
html[data-ui-theme="tiimo"] [data-color="3"] { --course-bg: #fbe9ed; --course-color: #69424d; --course-accent: #bf8193; }
html[data-ui-theme="tiimo"] [data-color="4"] { --course-bg: #eee6fd; --course-color: #574172; --course-accent: #9d80c3; }
html[data-ui-theme="tiimo"] [data-color="5"] { --course-bg: #faebdd; --course-color: #65503d; --course-accent: #b8946d; }
html[data-ui-theme="tiimo"] [data-color="6"] { --course-bg: #e4f1ef; --course-color: #315a57; --course-accent: #70a69d; }
html[data-ui-theme="tiimo"] .course-block { border: 0; border-radius: 12px; padding: 9px 8px; margin: 3px; }
html[data-ui-theme="tiimo"] .course-block > strong { font-weight: 650; }
html[data-ui-theme="tiimo"] .course-block.is-live { outline-color: var(--accent); }
html[data-ui-theme="tiimo"] .course-block.has-conflict { border: 1px dashed var(--danger); }
html[data-ui-theme="tiimo"] .agenda-heading { margin-top: 12px; margin-bottom: 6px; }
html[data-ui-theme="tiimo"] .agenda-heading > span { font-family: var(--tiimo-heading-font); font-size: 1.25rem; font-weight: 600; }
html[data-ui-theme="tiimo"] .day-agenda { gap: 8px; }
html[data-ui-theme="tiimo"] .tiimo-daypart { display: flex; align-items: center; gap: 7px; width: fit-content; max-width: 100%; padding: 5px 11px; margin: 15px 0 4px; border-radius: 99px; background: var(--paper-subtle); font-size: .6875rem; }
html[data-ui-theme="tiimo"] .tiimo-daypart > strong { font-weight: 550; }
html[data-ui-theme="tiimo"] .tiimo-daypart > small { color: var(--ink-secondary); }
html[data-ui-theme="tiimo"] .agenda-course { grid-template-columns: 58px 38px minmax(0,1fr) 14px; gap: 12px; min-height: 93px; padding: 15px; border-radius: 16px; box-shadow: var(--shadow-sm); }
html[data-ui-theme="tiimo"] .agenda-course::before { display: none; }
html[data-ui-theme="tiimo"] .tiimo-course-icon { display: grid; place-items: center; width: 38px; height: 38px; background: var(--course-bg); border-radius: 50%; font-size: 20px; }
html[data-ui-theme="tiimo"] .agenda-time strong { font-size: .9375rem; }
html[data-ui-theme="tiimo"] .agenda-copy > strong { font-size: .9375rem; }
html[data-ui-theme="tiimo"] .agenda-copy > span { margin-top: 3px; }
html[data-ui-theme="tiimo"] .agenda-copy > small { margin-top: 3px; }
html[data-ui-theme="tiimo"] .agenda-chevron { color: var(--ink-muted); }
html[data-ui-theme="tiimo"] .primary { color: #fff; background: #29262e; border-color: #29262e; box-shadow: none; border-radius: 99px; }
html[data-ui-theme="tiimo"] .primary:hover:not(:disabled) { background: #48424f; }
html[data-ui-theme="tiimo"] .secondary { border-radius: 99px; }
html[data-ui-theme="tiimo"] input,
html[data-ui-theme="tiimo"] select { border-radius: 12px; }
html[data-ui-theme="tiimo"] .switch input:checked + span { background: var(--accent); }
html[data-ui-theme="tiimo"] .task-overview { border: 0; background: var(--paper-card); }
html[data-ui-theme="tiimo"] .task-overview strong { font-family: Georgia, serif; font-size: 2.25rem; font-weight: 500; }
html[data-ui-theme="tiimo"] .task-workspace { border: 0; background: transparent; padding-inline: 0; }
html[data-ui-theme="tiimo"] .task-filters { border-radius: 99px; }
html[data-ui-theme="tiimo"] .task-filters button { border-radius: 99px; }
html[data-ui-theme="tiimo"] .task-item { border-radius: 16px; box-shadow: var(--shadow-sm); }
html[data-ui-theme="tiimo"] .task-check-custom { border-radius: 50%; background: transparent; border-color: var(--ink-muted); }
html[data-ui-theme="tiimo"] .task-kind-pill,
html[data-ui-theme="tiimo"] .task-course-pill,
html[data-ui-theme="tiimo"] .task-countdown { border-radius: 99px; }
html[data-ui-theme="tiimo"] .upload-card { border-style: solid; box-shadow: none; }
html[data-ui-theme="tiimo"] .upload-symbol { background: var(--accent-light); color: var(--accent); border-radius: 50%; }
html[data-ui-theme="tiimo"] .step-item.active .step-num,
html[data-ui-theme="tiimo"] .step-item.completed .step-num { color: #fff; background: var(--accent); }
html[data-ui-theme="tiimo"] .upload-symbol::after { color: #fff; }
html[data-ui-theme="tiimo"] .settings-profile { background: var(--paper-card); }
html[data-ui-theme="tiimo"] .settings-profile-icon { background: var(--accent-light); color: var(--accent); border-radius: 50%; }
html[data-ui-theme="tiimo"] .settings-title-icon { border-radius: 50%; }
html[data-ui-theme="tiimo"] .course-detail { border-radius: 26px; }
html[data-ui-theme="tiimo"] .week-picker-grid button.active { color: #fff; background: var(--accent); }
html[data-ui-theme="tiimo"] .view.active { animation: none; }
@media (max-width: 760px) {
  .theme-picker { gap: 10px; }
  .theme-choice { padding: 10px; gap: 10px 4px; }
  .theme-choice-copy small { font-size: .6875rem; }
  .theme-sample { grid-template-columns: 34px minmax(0,1fr); min-height: 85px; gap: 8px; padding: 12px; }
  .theme-sample-tiimo i { border-width: 6px; }
  html[data-ui-theme="tiimo"] .home-intro h1,
  html[data-ui-theme="tiimo"] .page-title h1 { font-size: 2.2rem; }
  html[data-ui-theme="tiimo"] .topbar { margin-bottom: 23px; }
  html[data-ui-theme="tiimo"] .brand-mark { width: 34px; height: 34px; }
  html[data-ui-theme="tiimo"] .primary-nav { border-radius: 23px; padding: 5px 8px; }
  html[data-ui-theme="tiimo"] .nav-link { border-radius: 16px; }
  html[data-ui-theme="tiimo"] .nav-link.active { background: transparent; }
  html[data-ui-theme="tiimo"] .nav-link.active .nav-symbol { background: var(--accent-light); border-radius: 99px; }
  html[data-ui-theme="tiimo"] .next-card { min-height: 192px; }
  html[data-ui-theme="tiimo"] .tiimo-focus-orbit { right: 17px; top: 55px; width: 82px; height: 82px; }
  html[data-ui-theme="tiimo"] .tiimo-focus-orbit > span { width: 66px; height: 66px; }
  html[data-ui-theme="tiimo"] .next-course-info { padding-right: 82px; }
  html[data-ui-theme="tiimo"] .next-course-info > strong { font-size: 1.125rem; }
  html[data-ui-theme="tiimo"] .schedule-panel { padding: 8px 0 0; }
  html[data-ui-theme="tiimo"] .home-hero { margin-bottom: 16px; }
  html[data-ui-theme="tiimo"] .schedule-controls { margin-block: 13px; }
  html[data-ui-theme="tiimo"] .tiimo-daypart { margin-top: 9px; }
  html[data-ui-theme="tiimo"] .calendar-picker select { font-size: 1.2rem; }
  html[data-ui-theme="tiimo"] .week-switch button { min-width: 37px; height: 40px; }
  html[data-ui-theme="tiimo"] .week-switch .week-label { min-width: 64px; }
  html[data-ui-theme="tiimo"] .week-day { padding-inline: 0; }
  html[data-ui-theme="tiimo"] .week-day strong { width: 34px; height: 34px; font-size: 1.25rem; }
  html[data-ui-theme="tiimo"] .agenda-course { grid-template-columns: 46px 32px minmax(0,1fr) 10px; padding: 13px; gap: 9px; }
  html[data-ui-theme="tiimo"] .tiimo-course-icon { width: 32px; height: 32px; font-size: 18px; }
  html[data-ui-theme="tiimo"] .agenda-copy > strong { font-size: .875rem; }
  html[data-ui-theme="tiimo"] .task-workspace { padding: 16px 0; }
}
@media (max-width: 350px) {
  .theme-picker { grid-template-columns: minmax(0,1fr); }
  .theme-sample { min-height: 75px; }
  html[data-ui-theme="tiimo"] .agenda-course { grid-template-columns: 44px 28px minmax(0,1fr); gap: 7px; }
  html[data-ui-theme="tiimo"] .agenda-chevron { display: none; }
  html[data-ui-theme="tiimo"] .tiimo-course-icon { width: 28px; height: 28px; font-size: 16px; }
}
@media (prefers-color-scheme: dark) {
  html[data-ui-theme="tiimo"] {
    color-scheme: dark;
    --paper-bg: #17151c;
    --paper-card: #211e27;
    --paper-subtle: #2b2633;
    --paper-elevated: #2c2735;
    --paper-line: #342e3d;
    --paper-line-dark: #5b5067;
    --ink: #f5f0fa;
    --ink-secondary: #bdb4c9;
    --ink-muted: #b0a6bf;
    --accent: #b9a0f5;
    --accent-dark: #d3bfff;
    --accent-hover: #cdb5ff;
    --accent-light: #362a4b;
    --accent-border: #78628f;
    --warm: #e9c68d;
    --warm-light: #3b3023;
    --danger: #f0a4b9;
    --nav-surface: #211e27f5;
    --tiimo-ring: #b39aff;
    --tiimo-ring-track: #3b314a;
    --tiimo-ring-center: #2b2533;
  }
  html[data-ui-theme="tiimo"] .primary { background: #e9ddff; border-color: #e9ddff; color: #2a2036; }
  html[data-ui-theme="tiimo"] .primary:hover:not(:disabled) { background: #d7c6f5; }
  html[data-ui-theme="tiimo"] .week-day.selected strong { color: #251b32; }
  html[data-ui-theme="tiimo"] .task-checkbox-label input:checked + .task-check-custom::after { border-color: #251b32; }
  html[data-ui-theme="tiimo"] .step-item.active .step-num,
  html[data-ui-theme="tiimo"] .step-item.completed .step-num,
  html[data-ui-theme="tiimo"] .upload-symbol::after { color: #251b32; }
  html[data-ui-theme="tiimo"] [data-color="0"] { --course-bg: #303e2e; --course-color: #d9eacb; --course-accent: #a2c089; }
  html[data-ui-theme="tiimo"] [data-color="1"] { --course-bg: #453a24; --course-color: #f5e4b7; --course-accent: #cdb069; }
  html[data-ui-theme="tiimo"] [data-color="2"] { --course-bg: #2e374d; --course-color: #d7e2fc; --course-accent: #9cb1e3; }
  html[data-ui-theme="tiimo"] [data-color="3"] { --course-bg: #462d3b; --course-color: #f6d5e0; --course-accent: #d297b0; }
  html[data-ui-theme="tiimo"] [data-color="4"] { --course-bg: #3b2e50; --course-color: #e9d9ff; --course-accent: #b79bdf; }
  html[data-ui-theme="tiimo"] [data-color="5"] { --course-bg: #44352d; --course-color: #f4dfcb; --course-accent: #c3a184; }
  html[data-ui-theme="tiimo"] [data-color="6"] { --course-bg: #2a3f3d; --course-color: #d2eeea; --course-accent: #96c1b9; }
}
@media (prefers-contrast: more) {
  html[data-ui-theme="tiimo"] { --ink-secondary: var(--ink); --ink-muted: var(--ink); }
}
