/* ---------- Theme toggle button ---------- */
.rx-theme { width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 0; background: #fff; color: var(--ink); display: grid; place-items: center; cursor: pointer; font-size: 1.1rem; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); transition: transform .15s, background .15s; }
.rx-theme:hover { transform: rotate(18deg); background: var(--lime); }
.rx-theme .sun { display: none; }
[data-theme='dark'] .rx-theme .sun { display: inline; }
[data-theme='dark'] .rx-theme .moon { display: none; }

/* ==========================================================================
   NIGHT MODE — glassmorphism
   ========================================================================== */
[data-theme='dark'] {
  color-scheme: dark;
  --ink: #f3f4ee; --ink-2: rgba(255, 255, 255, .07);
  --bg: #0b0c16; --card: rgba(255, 255, 255, .065); --line: rgba(255, 255, 255, .12);
  --muted: #a1a7bb; --text: #e7e9f0; --link: #d6f45a;
  --peach: rgba(255, 150, 110, .2); --lav: rgba(150, 128, 255, .22); --lime-soft: rgba(214, 244, 90, .18);
  --sky: rgba(90, 160, 255, .22); --mint: rgba(80, 220, 150, .2);
  --glass: rgba(255, 255, 255, .065); --glass-line: rgba(255, 255, 255, .13); --on-lime: #16161c;
}
[data-theme='dark'] body {
  color: var(--text);
  background:
    radial-gradient(900px 620px at 10% 6%, rgba(124, 92, 255, .42), transparent 62%),
    radial-gradient(800px 620px at 95% 10%, rgba(0, 210, 190, .26), transparent 60%),
    radial-gradient(1000px 700px at 65% 105%, rgba(214, 244, 90, .16), transparent 60%),
    radial-gradient(700px 500px at 0% 100%, rgba(255, 90, 140, .16), transparent 60%),
    #0b0c16;
  background-attachment: fixed;
}
[data-theme='dark'] ::selection { background: var(--lime); color: var(--on-lime); }

/* glass surfaces */
[data-theme='dark'] .rx-card, [data-theme='dark'] .bg-white, [data-theme='dark'] .rx-stat, [data-theme='dark'] .dx-emp,
[data-theme='dark'] .rx-search, [data-theme='dark'] .rx-tabs, [data-theme='dark'] .rx-burger, [data-theme='dark'] .rx-theme,
[data-theme='dark'] .rx-guest .card {
  background: var(--glass); border: 1px solid var(--glass-line) !important;
  -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%);
  box-shadow: 0 10px 34px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .09);
}
[data-theme='dark'] .rx-sb {
  background: linear-gradient(180deg, rgba(30, 28, 54, .62), rgba(14, 15, 28, .62));
  border: 1px solid var(--glass-line); -webkit-backdrop-filter: blur(26px) saturate(160%); backdrop-filter: blur(26px) saturate(160%);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .1);
}
[data-theme='dark'] .rx-foot .rx-user { background: rgba(255, 255, 255, .07); }
[data-theme='dark'] .rx-link.on, [data-theme='dark'] .rx-brand .app-brand-mark, [data-theme='dark'] .rx-brand .rx-dot,
[data-theme='dark'] .rx-pill .rx-dot, [data-theme='dark'] .rx-dot, [data-theme='dark'] .rx-btn.pri, [data-theme='dark'] .dx-promo .btn,
[data-theme='dark'] .dx-plus, [data-theme='dark'] .rx-tabs a.on, [data-theme='dark'] .dx-cal td.today a { color: var(--on-lime) !important; background: var(--lime); }
[data-theme='dark'] .rx-link.on { box-shadow: 0 6px 20px rgba(214, 244, 90, .25); }
[data-theme='dark'] .rx-theme { color: var(--lime); }
[data-theme='dark'] .rx-theme:hover { background: rgba(214, 244, 90, .2); }
[data-theme='dark'] .rx-search input { color: var(--text); }
[data-theme='dark'] .rx-btn, [data-theme='dark'] .rx-link-btn { background: rgba(255, 255, 255, .08); color: var(--ink); }
[data-theme='dark'] .rx-btn:hover, [data-theme='dark'] .rx-link-btn:hover { background: rgba(255, 255, 255, .15); }
[data-theme='dark'] .rx-btn.pri:hover { background: var(--lime-d); }
[data-theme='dark'] .rx-punch { background: var(--lime); color: var(--on-lime); }
[data-theme='dark'] .rx-punch:hover { background: var(--lime-d); }
[data-theme='dark'] .rx-punch.out { background: #ff5d6a; color: #fff; }
[data-theme='dark'] .dx-promo { background: linear-gradient(135deg, rgba(214, 244, 90, .2), rgba(124, 92, 255, .32)); border: 1px solid var(--glass-line); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); box-shadow: 0 10px 34px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .12); }
[data-theme='dark'] .dx-promo .btn.ghost { background: rgba(255, 255, 255, .14); color: #fff !important; }
[data-theme='dark'] .dx-promo p { color: #c3c7d8; }

/* legacy tailwind buttons / links */
[data-theme='dark'] .bg-indigo-600, [data-theme='dark'] .bg-gray-800, [data-theme='dark'] .bg-blue-600 { background-color: var(--lime) !important; color: var(--on-lime) !important; }
[data-theme='dark'] .hover\:bg-indigo-500:hover, [data-theme='dark'] .hover\:bg-gray-700:hover, [data-theme='dark'] .hover\:bg-blue-500:hover { background-color: var(--lime-d) !important; }
[data-theme='dark'] .text-indigo-600, [data-theme='dark'] .text-indigo-700, [data-theme='dark'] .text-blue-600 { color: var(--lime) !important; }
[data-theme='dark'] .rx-brand a, [data-theme='dark'] .rx-brand a.text-indigo-600 { color: #fff !important; }

/* text colours */
[data-theme='dark'] .text-gray-900, [data-theme='dark'] .text-gray-800, [data-theme='dark'] .text-gray-700, [data-theme='dark'] .text-slate-900,
[data-theme='dark'] .text-slate-800, [data-theme='dark'] .text-slate-700 { color: var(--ink); }
[data-theme='dark'] .text-gray-600, [data-theme='dark'] .text-gray-500, [data-theme='dark'] .text-slate-600, [data-theme='dark'] .text-slate-500 { color: var(--muted); }
[data-theme='dark'] .text-gray-400, [data-theme='dark'] .text-slate-400 { color: #7d849b; }
[data-theme='dark'] .rx-h1, [data-theme='dark'] .rx-card h3, [data-theme='dark'] .rx-num, [data-theme='dark'] .rx-top-title { color: var(--ink); }
[data-theme='dark'] .rx-sub, [data-theme='dark'] .rx-row { color: var(--muted); }
[data-theme='dark'] .rx-who strong, [data-theme='dark'] .rx-time, [data-theme='dark'] .rx-att .rx-att-name a { color: var(--ink); }
[data-theme='dark'] .rx-tbl td { color: #d6d9e4; }
[data-theme='dark'] .rx-tabs a { color: var(--muted); }

/* surfaces, borders, tables */
[data-theme='dark'] .bg-gray-50, [data-theme='dark'] .bg-gray-100, [data-theme='dark'] .bg-slate-50, [data-theme='dark'] .bg-slate-100 { background: rgba(255, 255, 255, .06); }
[data-theme='dark'] .hover\:bg-gray-50:hover, [data-theme='dark'] tbody tr:hover, [data-theme='dark'] .rx-tbl tbody tr:hover { background: rgba(255, 255, 255, .06); }
[data-theme='dark'] .border-gray-100, [data-theme='dark'] .border-gray-200, [data-theme='dark'] .border-gray-300, [data-theme='dark'] .border-slate-200,
[data-theme='dark'] .border-slate-300 { border-color: var(--line); }
[data-theme='dark'] .divide-gray-100 > :not([hidden]) ~ :not([hidden]), [data-theme='dark'] .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(255, 255, 255, .08); }
[data-theme='dark'] .rx-tbl td, [data-theme='dark'] td, [data-theme='dark'] .dx-sched a, [data-theme='dark'] .dx-list .it, [data-theme='dark'] .dx-asg .it { border-color: rgba(255, 255, 255, .08); }
[data-theme='dark'] .dx-emp hr { border-top-color: rgba(255, 255, 255, .1); }
[data-theme='dark'] thead, [data-theme='dark'] thead th, [data-theme='dark'] .rx-tbl th { background: transparent; border-bottom-color: var(--line); }
[data-theme='dark'] .rx-att th, [data-theme='dark'] .rx-att td { border-color: rgba(255, 255, 255, .08); }
[data-theme='dark'] .rx-att .rx-att-name, [data-theme='dark'] .rx-att thead .rx-att-name { background: #171829; }
[data-theme='dark'] .rx-att th.off, [data-theme='dark'] .rx-att td.off { background: rgba(255, 255, 255, .04); }
[data-theme='dark'] .rx-att .tot { background: rgba(255, 255, 255, .05); }
[data-theme='dark'] .rx-att thead th { color: var(--ink); }

/* status chips */
[data-theme='dark'] .rx-st { background: rgba(255, 255, 255, .1); color: var(--muted); }
[data-theme='dark'] .rx-st.ok, [data-theme='dark'] .bg-green-100 { background: rgba(80, 220, 150, .18); color: #8df0b9; }
[data-theme='dark'] .rx-st.late, [data-theme='dark'] .bg-amber-100, [data-theme='dark'] .bg-yellow-100 { background: rgba(255, 200, 80, .18); color: #ffd98a; }
[data-theme='dark'] .rx-st.half { background: var(--lime-soft); color: var(--lime); }
[data-theme='dark'] .rx-st.bad, [data-theme='dark'] .bg-red-100 { background: rgba(255, 110, 100, .2); color: #ffa39a; }
[data-theme='dark'] .bg-blue-100, [data-theme='dark'] .bg-sky-100, [data-theme='dark'] .bg-indigo-50, [data-theme='dark'] .bg-indigo-100 { background: rgba(90, 160, 255, .2); }
[data-theme='dark'] .text-green-800, [data-theme='dark'] .text-green-700 { color: #8df0b9; }
[data-theme='dark'] .text-amber-800, [data-theme='dark'] .text-amber-700, [data-theme='dark'] .text-yellow-800 { color: #ffd98a; }
[data-theme='dark'] .text-red-800, [data-theme='dark'] .text-red-700, [data-theme='dark'] .text-red-600 { color: #ffa39a; }
[data-theme='dark'] .text-blue-800, [data-theme='dark'] .text-sky-800, [data-theme='dark'] .text-indigo-800 { color: #a9cbff; }
[data-theme='dark'] .bg-green-50, [data-theme='dark'] .bg-red-50 { color: var(--ink); }
[data-theme='dark'] .rx-av { background: var(--lav); color: #d4ccff; }
[data-theme='dark'] .rx-late { color: #ffd98a; }

/* forms */
[data-theme='dark'] input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='hidden']), [data-theme='dark'] select, [data-theme='dark'] textarea {
  background: rgba(255, 255, 255, .06); border: 1px solid var(--line); color: var(--text);
}
[data-theme='dark'] input::placeholder, [data-theme='dark'] textarea::placeholder { color: #7d849b; }
[data-theme='dark'] input:not([type='checkbox']):not([type='radio']):focus, [data-theme='dark'] select:focus, [data-theme='dark'] textarea:focus {
  border-color: var(--lime) !important; box-shadow: 0 0 0 3px rgba(214, 244, 90, .28) !important; background: rgba(255, 255, 255, .09);
}
[data-theme='dark'] select option { background: #1a1b2b; color: var(--text); }
[data-theme='dark'] input[type='checkbox'], [data-theme='dark'] input[type='radio'] { accent-color: var(--lime); }
[data-theme='dark'] :focus-visible { outline-color: var(--lime); }
[data-theme='dark'] input[type='date']::-webkit-calendar-picker-indicator, [data-theme='dark'] input[type='month']::-webkit-calendar-picker-indicator { filter: invert(1); }

/* dashboard bits */
[data-theme='dark'] .dx-ring { background: conic-gradient(var(--lime) calc(var(--p) * 1%), rgba(255, 255, 255, .12) 0); }
[data-theme='dark'] .dx-ring i { background: #1a1b2c; color: var(--ink); }
[data-theme='dark'] .dx-cal td a:hover, [data-theme='dark'] .dx-emp:hover { background: rgba(255, 255, 255, .09); }
[data-theme='dark'] .dx-cal td.out a { color: rgba(255, 255, 255, .25); }
[data-theme='dark'] .p-todo { background: var(--lav); color: #d4ccff; } [data-theme='dark'] .p-prog { background: var(--sky); color: #b5d3ff; }
[data-theme='dark'] .p-done { background: var(--lime-soft); color: var(--lime); } [data-theme='dark'] .p-late { background: var(--peach); color: #ffb3a1; }
[data-theme='dark'] .wv .ln { stroke: var(--lime); filter: drop-shadow(0 4px 10px rgba(214, 244, 90, .45)); }
[data-theme='dark'] .wv .gl { stroke: rgba(255, 255, 255, .08); }
[data-theme='dark'] .wv .dot { background: #1a1b2c; border-color: var(--lime); }
[data-theme='dark'] .wv .dot.hi { background: var(--lime); box-shadow: 0 0 0 6px rgba(214, 244, 90, .3), 0 0 22px rgba(214, 244, 90, .6); }
[data-theme='dark'] .wv .dot::after { background: rgba(10, 11, 22, .92); border: 1px solid var(--glass-line); color: #fff; }
[data-theme='dark'] .wv-axis span, [data-theme='dark'] .dx-axis span { color: var(--muted); }
[data-theme='dark'] .rx-banner { color: #1f2937; }
[data-theme='dark'] .rx-scrim { background: rgba(0, 0, 0, .6); }
[data-theme='dark'] footer { color: #6f768c !important; }
[data-theme='dark'] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme='dark'] ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .18); border-radius: 999px; }
[data-theme='dark'] ::-webkit-scrollbar-track { background: transparent; }
[data-theme='dark'] [style*='border-top:1px solid #f1f5f9'] { border-top-color: rgba(255, 255, 255, .08) !important; }
[data-theme='dark'] [style*='background:#fff'], [data-theme='dark'] [style*='background: #fff'] { background: var(--glass) !important; }
