/* YX: neutral typography, one financial accent, restrained warning colors. */
:root{--yx-ink:#e8edf3;--yx-muted:#a6afbd;--yx-accent:#8bd6cb;--yx-danger:#e9a0a0;--yx-surface:#151923;--yx-line:#ffffff1c;--yx-font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Microsoft JhengHei",sans-serif}
html body{font-family:var(--yx-font);color:var(--yx-ink);-webkit-font-smoothing:antialiased}
body .app-container,body dialog,body #yx-competition{font-family:var(--yx-font)}
body .app-container .font-mono:not(code):not(pre){font-family:var(--yx-font)!important;font-variant-numeric:tabular-nums}
body :is(input,select,textarea,button){font-family:inherit}
body :is([class*="text-cyan-"],[class*="text-pink-"],[class*="text-purple-"],[class*="text-emerald-"],[class*="text-green-"],[class*="text-blue-"],[class*="text-indigo-"],[class*="text-teal-"],[class*="text-amber-"],[class*="text-yellow-"]){color:var(--yx-ink)!important}
body :is([class*="text-gray-400"],[class*="text-gray-500"],[class*="text-gray-600"]){color:var(--yx-muted)!important}
body :is([class*="text-red-"],[class*="text-rose-"]){color:var(--yx-danger)!important}
body .bg-clip-text{color:var(--yx-ink)!important;background-image:none!important;-webkit-text-fill-color:currentColor!important}
body :is(.neon-border,.neon-border-cyan,.neon-border-pink){box-shadow:none!important;border-color:var(--yx-line)!important}
body :is(.neon-glow-cyan,.neon-glow-pink,.neon-glow-green){box-shadow:none!important}
body :is([class*="border-purple-"],[class*="border-cyan-"],[class*="border-pink-"],[class*="border-emerald-"]){border-color:var(--yx-line)!important}
body :is([class*="bg-purple-950"],[class*="bg-cyan-950"],[class*="bg-pink-950"],[class*="bg-emerald-950"]){background-color:var(--yx-surface)!important}
body :is([class*="from-cyan-"],[class*="from-purple-"],[class*="from-pink-"],[class*="from-amber-"]):not(.bg-clip-text){--tw-gradient-from:#498c85!important;--tw-gradient-to:#71b3a9!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)!important}
body :is(button,a):is([class*="bg-cyan-400"],[class*="bg-cyan-500"],[class*="bg-purple-500"],[class*="bg-purple-600"],[class*="bg-pink-500"]){background-color:var(--yx-accent)!important;color:#102422!important}
body :is(button,a):is([class*="bg-cyan-400"],[class*="bg-cyan-500"],[class*="bg-purple-500"],[class*="bg-purple-600"],[class*="bg-pink-500"]) *{color:inherit!important}
body :is(button,a)[aria-pressed="true"],body .app-container nav button.text-cyan-400{color:var(--yx-accent)!important}
body :is(input,select,textarea,button,a):focus-visible{outline:2px solid var(--yx-accent);outline-offset:3px}

/* Financial emphasis is explicit so labels and ordinary line items stay quiet. */
body :is(#db-total-salary,#ps-net-salary,#special-salary-net,#kita-salary-net,#settlement-total,#monthly-bonus-total,#monthly-reservation-total,#reservation-total,#personal-signings-total){color:var(--yx-accent)!important;-webkit-text-fill-color:currentColor!important;background-image:none!important;font-variant-numeric:tabular-nums}
body #yx-payslip{font-family:var(--yx-font)!important;line-height:1.75;border:1px solid var(--yx-line)!important;background:#11151e!important;box-shadow:none!important}
body #yx-payslip :is(h4,span,b,p){text-shadow:none!important}
body #yx-payslip h4{color:var(--yx-muted)!important;font-size:13px!important;font-weight:600;letter-spacing:.1em}
body #yx-payslip .flex.justify-between{gap:8px;flex-wrap:wrap}
body #yx-payslip .flex.justify-between>span:last-child{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}
body #yx-payslip :is([class*="text-red-"],[class*="text-purple-"],[class*="text-emerald-"],[class*="text-cyan-"],[class*="text-pink-"]){color:var(--yx-ink)!important}
body #yx-payslip [id^="ps-"]{font-variant-numeric:tabular-nums}
body #yx-payslip .yx-net-amount,body #yx-payslip #ps-net-salary{color:var(--yx-accent)!important;box-shadow:none!important;font-size:22px!important;font-weight:750}
body #yx-payslip #ps-gross-salary{color:var(--yx-ink)!important;font-weight:750}
body #yx-payslip [data-yx-deduction="true"]{color:var(--yx-danger)!important}

/* Weekly and monthly rosters share the same neutral labels and selection color. */
body :is(#yx-weekly-shifts,#yx-monthly-shifts){background:var(--yx-surface);border-color:var(--yx-line)}
body #yx-weekly-shifts :is(.ys-eyebrow,.ys-week,.ys-summary strong,.ys-time-row legend,#ys-count,.ys-setup summary),body #yx-monthly-shifts :is(.ym-heading p,.ym-heading>span,.ym-actions,.ym-message,.ym-count b,details),body :is(.yr-label,.yr-period,.yr-count,.yr-preview>summary,.yx-reminder-period){color:var(--yx-ink)}
body #yx-weekly-shifts .ys-day.is-selected,body #yx-monthly-shifts .ym-day.selected{background:#8bd6cb18;color:var(--yx-accent);border-color:var(--yx-accent);box-shadow:none}
body #yx-weekly-shifts .ys-primary,body #yx-monthly-shifts .ym-save,body .yx-reminder-actions [data-reminder-action="open"],body .dl-dialog .dl-primary{background:var(--yx-accent);color:#102422;border-color:var(--yx-accent)}
body :is(#yx-weekly-shifts,#yx-monthly-shifts) input[type="checkbox"]{accent-color:var(--yx-accent)}
body :is(.ys-badge.synced,.ym-badge.synced,.dl-success){color:var(--yx-accent)!important;background:#8bd6cb10}
body :is(.ys-error,.ym-error,.dl-error){color:var(--yx-danger)!important}
body .dl-entry{background:var(--yx-surface);border-color:var(--yx-line);color:var(--yx-ink)}
body .dl-entry small,body .dl-dialog small,body .dl-history b{color:var(--yx-muted)}
body .dl-status{color:var(--yx-ink)}
body .dl-question{border-color:#9b866b80;background:#ffffff03}
body .dl-question blockquote{color:var(--yx-ink)}

/* Team color still identifies red/yellow; individual details use neutral text. */
body #yx-competition :is(.yc-kicker,.yc-team-bottom b,.yc-person small,.yc-self,.yc-footer button){color:var(--yx-muted)}
body #yx-competition .yc-amount strong{color:var(--yx-accent)}
body #yx-competition .yc-person small{border-color:var(--yx-line)}
body #yx-competition .yc-error{color:var(--yx-danger)}
body #yx-competition .yc-month-tabs button[aria-pressed="true"]{color:var(--yx-accent)!important}
