/* Theme identity and appearance are independent:
   data-theme chooses the visual world, data-appearance chooses light/dark. */
html[data-appearance="dark"] {
  color-scheme: dark;
}

html[data-appearance="light"] {
  color-scheme: light;
}

/* Reliable interaction layer across material-heavy themes. */
html[data-appearance] :is(
  button:not(:disabled),.nav-item,.toggle,.ctrl-btn,.mode-tab,.filter-tab,
  .lang-btn,.dst-task-picker-trigger,.dst-task-picker-option
) {
  pointer-events: auto !important;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
  cursor: pointer;
}

html[data-appearance] :is(
  button,.nav-item,.toggle,.ctrl-btn,.mode-tab,.filter-tab,.lang-btn,
  .week-card,.task-card,.note-studio-card,.dst-task-picker-trigger,
  .dst-task-picker-option
)::before,
html[data-appearance] :is(
  button,.nav-item,.toggle,.ctrl-btn,.mode-tab,.filter-tab,.lang-btn,
  .week-card,.task-card,.note-studio-card,.dst-task-picker-trigger,
  .dst-task-picker-option
)::after {
  pointer-events: none !important;
}

html[data-appearance] :is(
  .topbar,.sidebar,.hero-card,.timer-ring-wrap,.page-title,
  .settings-section,.task-check,.cal-checkbox
)::before,
html[data-appearance] :is(
  .topbar,.sidebar,.hero-card,.timer-ring-wrap,.page-title,
  .settings-section,.task-check,.cal-checkbox
)::after {
  pointer-events: none !important;
}

/* Theme textures must stay visual; they must never sit above controls. */
html[data-selected-theme]:not([data-selected-theme="default"]) [class*="card"]::before,
html[data-selected-theme]:not([data-selected-theme="default"]) [class*="card"]::after,
html[data-selected-theme]:not([data-selected-theme="default"]) [class*="panel"]::before,
html[data-selected-theme]:not([data-selected-theme="default"]) [class*="panel"]::after {
  pointer-events: none !important;
}

html[data-appearance] button:disabled {
  cursor: not-allowed;
  pointer-events: none !important;
}

html[data-appearance] :is(button,.nav-item,.toggle,.ctrl-btn,.mode-tab,.filter-tab,.lang-btn):active {
  transition-duration: .05s !important;
}

/* Paper — moonlit notebook */
html[data-theme="paper"][data-appearance="dark"] {
  --bg:#17140f;--bg2:#201c15;--bg3:#2a241b;--card:rgba(246,239,217,.045);
  --card2:rgba(246,239,217,.075);--glass:rgba(246,239,217,.055);--glass2:rgba(246,239,217,.09);
  --text:#f3ead4;--text2:#c9bda4;--text3:#91856f;--border:rgba(230,211,171,.16);
  --border2:rgba(230,211,171,.28);--panel:#201c15;--panel2:#282219;--surface:#252018;
  --surface-solid:#252018;--overlay-dim:rgba(4,3,2,.78);
}
html[data-theme="paper"][data-appearance="dark"] body{background-color:var(--bg)!important;background-image:repeating-linear-gradient(rgba(230,211,171,.055) 0,rgba(230,211,171,.055) 1px,transparent 1px,transparent 28px),radial-gradient(ellipse at top left,rgba(169,126,70,.08),transparent 60%)!important}
html[data-theme="paper"][data-appearance="dark"] :is([class*="card"],[class*="modal"],[class*="panel"],input,select,textarea){background-color:var(--panel)!important;color:var(--text)!important;border-color:var(--border2)!important}

/* Retro 80 — daylight synthwave */
html[data-theme="retro80"][data-appearance="light"] {
  --bg:#fff4ff;--bg2:#fffaff;--bg3:#f5e7fb;--card:rgba(255,255,255,.86);
  --card2:rgba(248,233,255,.92);--glass:rgba(255,255,255,.72);--glass2:rgba(239,218,250,.82);
  --text:#271034;--text2:#663f74;--text3:#966f9f;--border:rgba(156,38,166,.22);
  --border2:rgba(0,155,170,.38);--panel:rgba(255,250,255,.95);--panel2:#f5e7fb;
  --surface:#fffaff;--surface-solid:#fffaff;--overlay-dim:rgba(48,10,58,.25);
}
html[data-theme="retro80"][data-appearance="light"] body{background-color:var(--bg)!important;background-image:linear-gradient(rgba(0,170,185,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,170,185,.08) 1px,transparent 1px),radial-gradient(ellipse at bottom,rgba(255,0,180,.1),transparent 65%)!important}
html[data-theme="retro80"][data-appearance="light"] :is([class*="card"],[class*="modal"],[class*="panel"],input,select,textarea){background:var(--panel)!important;color:var(--text)!important}

/* Neumorphism — graphite relief */
html[data-theme="neumorphism"][data-appearance="dark"] {
  --bg:#20242c;--bg2:#20242c;--bg3:#1b1f26;--card:#20242c;--card2:#20242c;
  --glass:#20242c;--glass2:#252a33;--text:#f0f3f8;--text2:#bac1ce;--text3:#848d9c;
  --border:rgba(255,255,255,.055);--border2:rgba(255,255,255,.09);--panel:#20242c;
  --panel2:#252a33;--surface:#20242c;--surface-solid:#20242c;--overlay-dim:rgba(0,0,0,.7);
}
html[data-theme="neumorphism"][data-appearance="dark"] :is([class*="card"],[class*="modal"],[class*="panel"]){background:#20242c!important;color:var(--text)!important;box-shadow:8px 8px 17px #15181e,-8px -8px 17px #2b303a!important}
html[data-theme="neumorphism"][data-appearance="dark"] :is([class*="btn"],[class*="tab"],[class*="badge"],[class*="chip"],input,select,textarea){background:#20242c!important;color:var(--text)!important;box-shadow:4px 4px 9px #15181e,-4px -4px 9px #2b303a!important}

/* Wood — pale oak */
html[data-theme="wood"][data-appearance="light"] {
  --bg:#ead8bd;--bg2:#f4e5cd;--bg3:#dfc5a2;--card:rgba(255,248,235,.72);
  --card2:rgba(245,226,198,.85);--glass:rgba(255,248,235,.58);--glass2:rgba(236,209,172,.72);
  --text:#392419;--text2:#6b4933;--text3:#94725a;--border:rgba(105,66,37,.18);
  --border2:rgba(105,66,37,.3);--panel:rgba(244,229,205,.94);--panel2:#e4cba9;
  --surface:#f4e5cd;--surface-solid:#f4e5cd;--overlay-dim:rgba(56,32,17,.28);
}
html[data-theme="wood"][data-appearance="light"] :is(.stat-card,.task-card,.settings-section,.daily-goal-card,.today-tasks-card,.weekly-chart,.subject-bar-wrap,.glass-card,.dst-product-modal>div){background:linear-gradient(145deg,rgba(255,248,235,.86),rgba(232,207,174,.9))!important;color:var(--text)!important;border-color:var(--border2)!important;box-shadow:0 14px 32px rgba(92,58,31,.12),inset 0 1px rgba(255,255,255,.55)!important}

/* Astral — celestial dawn */
html[data-theme="astral"][data-appearance="light"] {
  --bg:#f2efff;--bg2:#fbfaff;--bg3:#e8e3fb;--card:rgba(255,255,255,.72);
  --card2:rgba(241,236,255,.84);--glass:rgba(255,255,255,.62);--glass2:rgba(229,220,250,.72);
  --text:#251b4a;--text2:#5a4b82;--text3:#897caf;--border:rgba(105,78,175,.16);
  --border2:rgba(105,78,175,.28);--panel:rgba(249,247,255,.94);--panel2:#eee9ff;
  --surface:#faf8ff;--surface-solid:#faf8ff;--overlay-dim:rgba(38,25,76,.28);
}
html[data-theme="astral"][data-appearance="light"] :is(.stat-card,.task-card,.settings-section,.daily-goal-card,.today-tasks-card,.weekly-chart,.subject-bar-wrap,.glass-card,.dst-product-modal>div){background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(235,228,255,.84))!important;color:var(--text)!important;border-color:rgba(105,78,175,.2)!important;box-shadow:0 16px 38px rgba(71,48,129,.12),inset 0 1px #fff!important}

/* Sakura — midnight blossom */
html[data-theme="sakura"][data-appearance="dark"] {
  --bg:#1d121c;--bg2:#271724;--bg3:#321d2e;--card:rgba(255,232,245,.055);
  --card2:rgba(255,232,245,.08);--glass:rgba(255,232,245,.06);--glass2:rgba(255,232,245,.1);
  --text:#fff0f8;--text2:#d8b8ca;--text3:#9f7d91;--border:rgba(244,157,199,.16);
  --border2:rgba(244,157,199,.28);--panel:rgba(38,22,35,.96);--panel2:#321d2e;
  --surface:#2c1929;--surface-solid:#2c1929;--overlay-dim:rgba(10,4,9,.76);
}
html[data-theme="sakura"][data-appearance="dark"] body{background:radial-gradient(circle at 18% 8%,rgba(225,95,160,.11),transparent 38%),linear-gradient(150deg,#1d121c,#160f20)!important}
html[data-theme="sakura"][data-appearance="dark"] :is(.stat-card,.task-card,.settings-section,.daily-goal-card,.today-tasks-card,.weekly-chart,.subject-bar-wrap,.glass-card,.dst-product-modal>div){background:linear-gradient(145deg,rgba(60,31,52,.9),rgba(35,20,34,.92))!important;color:var(--text)!important;border-color:var(--border2)!important;box-shadow:0 16px 38px rgba(8,3,9,.28),inset 0 1px rgba(255,255,255,.045)!important}

/* Complete surface pass: no theme may mix light and dark component materials. */
html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] body,
html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] .app,
html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] .main {
  background-color: var(--bg) !important;
  color: var(--text) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(.topbar,.sidebar) {
  background: color-mix(in srgb, var(--panel) 96%, transparent) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .hero-card,.stat-card,.stat-big-card,.task-card,.settings-section,
  .daily-goal-card,.today-tasks-card,.today-tasks-section,.weekly-chart,
  .subject-bar-wrap,.pomodoro-stats,.week-card,.dbu-panel,.glass-card,
  .note-studio-shell,.note-studio-library,.note-studio-workspace,
  .dst-subject-time-panel,.dst-task-picker-menu,.dst-product-modal>div
) {
  background-color: var(--panel) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .settings-section,.task-card,.stat-card,.stat-big-card,.daily-goal-card,
  .today-tasks-card,.today-tasks-section,.weekly-chart,.subject-bar-wrap,
  .pomodoro-stats,.week-card,.dbu-panel,.dst-subject-time-panel
) {
  background-image: linear-gradient(145deg, var(--card2), var(--card)) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .page-title,.hero-title,.card-title,.section-title,.settings-section-title,
  .settings-row-label,.modal-title,.task-title,.stat-value,.nav-label,
  .note-studio-brand h2,.note-studio-empty h3,.dst-product-modal h2,
  .dst-subject-time-panel h2,.dst-task-picker b
) {
  color: var(--text) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .page-sub,.settings-row-sub,.task-sub,.stat-label,.note-studio-empty p,
  .note-studio-card-copy small,.note-studio-card-copy em,
  .dst-subject-time-panel p,.dst-subject-time-panel small,
  .dst-subject-time-panel em,.dst-task-picker small,.dst-task-picker em
) {
  color: var(--text3) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  input,select,textarea,.modal-input,.note-studio-search input,
  .note-studio-title,.note-studio-body,.note-studio-subject
) {
  background-color: var(--glass) !important;
  border-color: var(--border2) !important;
  color: var(--text) !important;
  caret-color: var(--accent) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  input,textarea
)::placeholder {
  color: var(--text3) !important;
  opacity: .8 !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .nav-item,.lang-btn,.ctrl-btn,.modal-cancel,.profile-edit-btn,
  .note-studio-editorbar button,.dst-task-tools button,
  .dst-pom-subject-tools button,.dst-product-modal header button
) {
  background-color: var(--glass) !important;
  border-color: var(--border) !important;
  color: var(--text2) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .nav-item:hover,.nav-item.active,.lang-btn:hover,.lang-btn.active,
  .ctrl-btn:hover,.note-studio-editorbar button:hover
) {
  background-color: var(--glass2) !important;
  border-color: var(--border2) !important;
  color: var(--text) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .add-btn,.start-btn,.modal-save,.note-studio-new,.ctrl-btn.play
) {
  background: linear-gradient(135deg, var(--accent), var(--accent3)) !important;
  border-color: transparent !important;
  color: #fff !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance="light"] :is(
  .add-btn,.start-btn,.modal-save,.note-studio-new,.ctrl-btn.play
) {
  color: #fff !important;
  text-shadow: none !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .modal-overlay,.dst-product-modal
) {
  background-color: var(--overlay-dim) !important;
}

html[data-selected-theme]:not([data-selected-theme="default"])[data-appearance] :is(
  .sidebar-footer-card,.profile-card,.topbar-stat,.today-progress
) {
  background-color: var(--glass) !important;
  border-color: var(--border) !important;
  color: var(--text2) !important;
}

/* Paper variants */
html[data-theme="paper"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#f6efdf!important}
html[data-theme="paper"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#201c15!important}

/* Retro variants */
html[data-theme="retro80"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#140624!important;border-color:rgba(0,255,240,.42)!important}
html[data-theme="retro80"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#fffaff!important;border-color:rgba(0,155,170,.34)!important}

/* Neumorphism variants */
html[data-theme="neumorphism"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#e4e9f0!important;color:#263142!important}
html[data-theme="neumorphism"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background-color:#20242c!important;color:#f0f3f8!important}

/* Wood variants */
html[data-theme="wood"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#3d2517,#22130b)!important}
html[data-theme="wood"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#f4e5cd,#dfc5a2)!important}

/* Astral variants */
html[data-theme="astral"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#1e1348,#0c0726)!important}
html[data-theme="astral"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#fbfaff,#e8e3fb)!important}

/* Sakura variants */
html[data-theme="sakura"][data-appearance="light"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#fff,#f9eff9)!important}
html[data-theme="sakura"][data-appearance="dark"] :is(.topbar,.sidebar,.settings-section,.note-studio-shell){background:linear-gradient(145deg,#3c1f34,#231422)!important}

@media (prefers-reduced-motion: reduce) {
  html[data-appearance] *,
  html[data-appearance] *::before,
  html[data-appearance] *::after {
    transition-duration: .01ms !important;
  }
}
