/* Shared dashboard contrast tokens. Customer previews and printed cards keep
   their own palettes. Scope to screen so paper output remains unchanged. */
@media screen {
 :root[data-appearance=night] {
  --muted:#b4cadc;--green:#8cebc5;--red:#ffafbf;
  --ink12:#e9f6ff;--sub12:#b4cadc;--line12:#35566d;--panel12:#0d2639;--soft12:#173447;
  --control-ink:#e4f5ff;--control-bg:#173b4b;--control-border:#52768e;
  --control-hover:#214d60;--control-disabled-bg:#172e40;--control-disabled-ink:#b5cadc;
  --control-primary-bg:#086778;--control-danger-bg:#452b3a;--control-danger-ink:#ffbdcc;
 }

 /* The legacy --teal token is a dark brand fill, never dark-mode button ink. */
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) button {
  color:var(--control-ink);text-shadow:none;opacity:1;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :where(button:not(.primary):not(.danger):not(.danger-text)) {
  background:var(--control-bg);border-color:var(--control-border);
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(button.primary,.quick-voucher button[type=submit]) {
  background:linear-gradient(115deg,#075e76,#087569);color:#fff;border-color:#348d9e;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(button.danger,button.danger-text) {
  background:var(--control-danger-bg)!important;color:var(--control-danger-ink)!important;border-color:#805066;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) button:not(:disabled):hover {
  background:var(--control-hover);color:#fff;filter:none;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) button.primary:not(:disabled):hover {
  background:#087181;color:#fff;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(button.danger,button.danger-text):not(:disabled):hover {
  background:#65364c;color:#ffe1e8!important;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(button:disabled,button[aria-disabled=true]) {
  background:var(--control-disabled-bg)!important;color:var(--control-disabled-ink)!important;border-color:#41586c;opacity:1;filter:none;cursor:not-allowed;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) button :is(span,small,strong,b,svg) {
  color:inherit;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(button,input,select,textarea,a,summary):focus-visible {
  outline:3px solid #87dbff;outline-offset:3px;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
  color:var(--ink);background:#0a2537;border-color:var(--control-border);opacity:1;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(input,textarea)::placeholder {
  color:#a9c4d8;opacity:1;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(input:disabled,select:disabled,textarea:disabled,input[readonly],textarea[readonly]) {
  color:var(--control-disabled-ink);background:#142d40;-webkit-text-fill-color:var(--control-disabled-ink);opacity:1;
 }
 :root[data-appearance=night] :is(#app,#modal,#login,#print-studio .print-toolbar) :is(option,optgroup) {
  background:#102a3e;color:#e4f5ff;
 }
 :root[data-appearance=night] :is(#app,#modal,#login) input::file-selector-button {
  background:var(--control-bg);color:var(--control-ink);border:1px solid var(--control-border);border-radius:7px;padding:7px 10px;
 }
 :root[data-appearance=night] :is(#app,#modal,#login) a {color:#7de3ed;}
 :root[data-appearance=night] :is(#app,#modal,#login) a:hover {color:#d4faff;}
 :root[data-appearance=night] :is(#app,#modal,#login) :is(a.button,a.secondary) {
  background:var(--control-bg);color:var(--control-ink);border-color:var(--control-border);
 }
 :root[data-appearance=night] :is(#app,#modal,#login) a.button.primary {
  background:linear-gradient(115deg,#075e76,#087569);color:#fff;
 }
 :root[data-appearance=night] :is(#app,#modal,#login) :is(a.button,a.secondary):hover {
  background:var(--control-hover);color:#fff;
 }
 :root[data-appearance=night] :is(#app,#modal,#login) :is(.error,.danger-text) {color:var(--control-danger-ink)!important;}

 /* Preserve navigation and selected-control states as distinct from actions. */
 :root[data-appearance=night] #app :is(.sidebar,.mobile-nav) button {
  background:transparent;border-color:transparent;color:#bcd2e4;
 }
 :root[data-appearance=night] #app :is(.sidebar,.mobile-nav) button.active,
 :root[data-appearance=night] #app :is(.sidebar,.mobile-nav) button:not(:disabled):hover {
  background:#153d50;color:#91f2ed;border-color:#357c89;
 }
 :root[data-appearance=night] #app :is(.mode-card.selected,.theme-choice.selected,button[aria-pressed=true]:not(.mobile-nav button):not(.sidebar button)) {
  background:#185064;color:#e7fffb;border-color:#70dcd8;
 }
 :root[data-appearance=night] #app .avatar {background:#1b3b52;color:#e0f3ff;border-color:#52768e;}
 :root[data-appearance=night] #app :is(#payment-badge,#notice-count):not(:empty) {background:#9d2948;color:#fff;opacity:1;}
 :root[data-appearance=night] #app .sidebar .brand-mark {color:#062b30;}

 /* Analytics and older settings components had their own light-theme colors. */
 :root[data-appearance=night] #app .stat-tile:not([data-metric-pay9]) {
  background:linear-gradient(125deg,#102f44,#0b2336);color:var(--ink);border-color:#3a6078;
 }
 :root[data-appearance=night] #app .stat-tile:not([data-metric-pay9]) :is(strong,.stat-label) {color:var(--ink);opacity:1;}
 :root[data-appearance=night] #app .stat-tile:not([data-metric-pay9]) small {color:var(--muted);opacity:1;}
 :root[data-appearance=night] #app .stat-tile[data-metric-pay9="2"] {--tone:#c2a5ff;}
 :root[data-appearance=night] #app .metric-index-pay9 {color:color-mix(in srgb,var(--tone) 45%,white);}
 :root[data-appearance=night] #app :is(.mode-card span,.mode-card small,.fix-card p,.security-list p,.security-session p,.performance-choice span,.repair-banner p,.owner-session11 p,.owner-session11 small,.service-card small,.command11 small) {color:var(--muted);}
 :root[data-appearance=night] #app .pay-hero small {color:#c1dfd6;opacity:1;}
 :root[data-appearance=night] #app .telegram-hero {background:linear-gradient(120deg,#123b50,#0c514f);border-color:#3b7b87;}
 :root[data-appearance=night] #app .telegram-hero :is(p,.eyebrow) {color:#d1f3f2;opacity:1;}
 :root[data-appearance=night] #login .login-story {background:linear-gradient(130deg,#09273a,#0e3c3c);color:#f0fbff;}
 :root[data-appearance=night] #login .login-story :is(p,small,.eyebrow) {color:#cce9ed;opacity:1;}
 :root[data-appearance=night] #login .brand-mark {color:#062b30;}
 :root[data-appearance=night] :is(#app,#modal,#login) input:is(:autofill,:-webkit-autofill) {
  -webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px #0a2537 inset;caret-color:var(--ink);
 }
}
