/* Shared colors; module selectors below intentionally outrank legacy theme layers. */
html[data-yuksalish-theme="light"] {
  --yu-bg:#f4f7fb;--yu-surface:#fff;--yu-soft:#edf2f8;--yu-ink:#15263f;
  --yu-muted:#4c617c;--yu-line:#ccd7e6;--yu-accent:#164ca0;
  --yu-good:#09613d;--yu-warn:#835400;--yu-bad:#a71e37;
  --yu-good-bg:#e2f5eb;--yu-warn-bg:#fff3d6;--yu-bad-bg:#ffe9ed;
  --yu-shadow:0 8px 28px rgba(20,42,76,.07);
  color-scheme:light;
}
html[data-yuksalish-theme="dark"] {
  --yu-bg:#081423;--yu-surface:#101f34;--yu-soft:#172c46;--yu-ink:#edf4ff;
  --yu-muted:#b3c4db;--yu-line:#354e6a;--yu-accent:#90c4ff;
  --yu-good:#6fdfac;--yu-warn:#ffd078;--yu-bad:#ff98aa;
  --yu-good-bg:#123f32;--yu-warn-bg:#40361e;--yu-bad-bg:#432437;
  --yu-shadow:0 8px 28px rgba(0,0,0,.2);
  color-scheme:dark;
}
/* The canonical light/dark attribute remains available to existing modules. */
html[data-yuksalish-palette="dark"] {
  --yu-bg:#15171c;--yu-surface:#20232a;--yu-soft:#2b2f39;--yu-ink:#f1f3f7;
  --yu-muted:#bcc2ce;--yu-line:#4a515e;--yu-accent:#b2c9ff;
  --yu-good:#8ee0b1;--yu-warn:#f4d38c;--yu-bad:#ffacb6;
  --yu-good-bg:#20382c;--yu-warn-bg:#3d3526;--yu-bad-bg:#422b33;
}
html[data-yuksalish-palette="mono"] {
  --yu-bg:#101010;--yu-surface:#1b1b1b;--yu-soft:#2b2b2b;--yu-ink:#fafafa;
  --yu-muted:#c2c2c2;--yu-line:#555;--yu-accent:#fff;
  --yu-good:#d8eddd;--yu-warn:#e7ddc4;--yu-bad:#f0d1d7;
  --yu-good-bg:#262c27;--yu-warn-bg:#302d25;--yu-bad-bg:#33282b;
}
html[data-yuksalish-palette="mono-light"] {
  --yu-bg:#f6f6f6;--yu-surface:#fff;--yu-soft:#eee;--yu-ink:#1a1a1a;
  --yu-muted:#545454;--yu-line:#c6c6c6;--yu-accent:#242424;
  --yu-good:#30553c;--yu-warn:#665532;--yu-bad:#743c46;
  --yu-good-bg:#edf2ed;--yu-warn-bg:#f6f2e9;--yu-bad-bg:#f5edf0;
  --yu-shadow:0 8px 28px rgba(0,0,0,.06);
}
html[data-yuksalish-theme] {
  --bg:var(--yu-bg);--card:var(--yu-surface);--panel:var(--yu-surface);
  --text:var(--yu-ink);--muted:var(--yu-muted);--line:var(--yu-line);
  --bw-bg:var(--yu-bg);--bw-surface:var(--yu-surface);--bw-surface-2:var(--yu-soft);
  --bw-text:var(--yu-ink);--bw-muted:var(--yu-muted);--bw-line:var(--yu-line);
  --bw-strong:var(--yu-ink);--bw-hover:var(--yu-soft);--bw-focus:var(--yu-accent);
}
html[data-yuksalish-theme] body{background:var(--yu-bg)!important;color:var(--yu-ink)!important}
/* Platform shell, installation help and sync notifications. */
html[data-yuksalish-theme] body :is(.main,.dashboard-tabs,.module-frame){background:var(--yu-bg);color:var(--yu-ink)}
html[data-yuksalish-theme] body :is(.sidebar,.topbar,.dash-tab,.logout,.menu-btn,.app-screen-action,.yu-theme-toggle,.app-install-dialog,.yu-notices-dialog){background:var(--yu-surface);color:var(--yu-ink);border-color:var(--yu-line)}
html[data-yuksalish-theme] body :is(.side-brand,.profile,.nav-main,.nav-sub,.logout){color:var(--yu-ink)}
html[data-yuksalish-theme] body :is(.profile small,.side-brand span,.chev){color:var(--yu-muted)}
html[data-yuksalish-theme] body :is(.nav-main:hover,.nav-main.active,.nav-sub:hover,.nav-sub.active){background:var(--yu-soft);color:var(--yu-ink)}
html[data-yuksalish-theme] body .dash-tab.active{background:#cf1236;color:#fff;border-color:#cf1236}
.yu-theme-toggle{flex:none;width:38px;height:38px;border:1px solid var(--yu-line);border-radius:11px;background:var(--yu-surface);color:var(--yu-ink);font-size:23px;cursor:pointer}
html[data-yuksalish-theme] body .topbar .status{color:var(--yu-good);background:var(--yu-good-bg)}
html[data-yuksalish-theme] body :is(.app-install-dialog .app-close,.yu-notice-card){background:var(--yu-soft);color:var(--yu-ink);border-color:var(--yu-line)}
html[data-yuksalish-theme] body :is(.yu-notices-meta,.yu-notices-empty,.yu-notice-time){color:var(--yu-muted)}
html[data-yuksalish-theme] body :is(.sync-notice-panel,.sync-notice-card){background:var(--yu-surface);color:var(--yu-ink);border-color:var(--yu-line)}
html[data-yuksalish-theme] body :is(.sync-notice-button,.sync-notice-panel button){background:var(--yu-soft);color:var(--yu-ink);border-color:var(--yu-line)}
html[data-yuksalish-theme] body .sync-notice-button.has-errors{background:var(--yu-bad-bg);color:var(--yu-bad);border-color:var(--yu-bad)}
html[data-yuksalish-theme] body :is(.sync-notice-checked,.sync-notice-date,.sync-notice-card small){color:var(--yu-muted)}
.sync-notice-summary{flex:none;border:0;border-bottom:1px solid var(--yu-line);padding:8px 16px;background:var(--yu-warn-bg);color:var(--yu-warn);font-size:12px;line-height:1.5;text-align:left;cursor:pointer}
.sync-notice-summary[hidden]{display:none}
/* A real login form over the warehouse photograph. */
.login{position:relative;isolation:isolate;background:#152438 url('/static/pwa/yuksalish-warehouse-20261009.webp') center/cover no-repeat!important;padding:28px 18px;overflow-y:auto}
.login::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(140deg,rgba(7,17,30,.24),rgba(7,17,30,.54));pointer-events:none}
.login-wrap{width:min(100%,460px)}
.login-card{border:1px solid rgba(255,255,255,.48);border-radius:30px;padding:34px 32px 24px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 26px 90px #0005,0 0 35px #f3264433}
html[data-yuksalish-theme="light"] .login-card{background:rgba(250,252,255,.9);color:#15263f}
html[data-yuksalish-theme="dark"] .login-card{background:rgba(8,19,35,.82);color:#edf4ff}
html[data-yuksalish-theme="dark"] .login .brand h1{color:#ff4562}
.login .brand{margin-bottom:26px}
.login .brand-mark{display:block;width:105px;height:50px;margin:0 auto 8px;color:#f62243}
.login .brand h1{font-size:clamp(32px,7vw,42px);letter-spacing:.055em;color:#e51436;margin:0 0 7px;font-weight:950}
.login .brand p{color:var(--yu-ink);font-size:21px;font-weight:700}
.login .brand small{color:var(--yu-muted);font-size:13px;line-height:1.5;margin-top:9px}
.login .field span{color:var(--yu-ink);font-size:13px}
.login .field input{height:58px;background:var(--yu-surface);color:var(--yu-ink);border-color:var(--yu-line);border-radius:15px}
.login .field input::placeholder{color:var(--yu-muted);opacity:1}
.password-wrap{display:block;position:relative}
.login .password-wrap input{padding-right:54px}
.password-eye{position:absolute;right:7px;top:7px;width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--yu-muted);cursor:pointer;border-radius:10px}
.password-eye svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7}
.password-eye[aria-pressed="true"]{color:var(--yu-accent);background:var(--yu-soft)}
.login .login-note{color:var(--yu-muted);line-height:1.65;font-size:12px}
.login .login-error{color:var(--yu-bad);line-height:1.5}
.login-theme-switch{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin-bottom:24px}
.login-theme-switch button{border:1px solid var(--yu-line);background:var(--yu-surface);color:var(--yu-ink);min-height:38px;border-radius:999px;padding:7px 16px;cursor:pointer;font-weight:650;font-size:13px}
.login-theme-switch button[aria-pressed="true"]{border-color:var(--yu-accent);color:var(--yu-accent);box-shadow:0 0 0 1px var(--yu-accent)}
html[data-yuksalish-theme] .login-app-actions button{background:var(--yu-surface);color:var(--yu-ink);border-color:var(--yu-line)}
:is(button,input,select,a):focus-visible{outline:3px solid var(--yu-accent);outline-offset:3px}
@media(max-width:600px){.login{background-position:44% center;padding:20px 16px}.login-card{padding:26px 22px 20px;border-radius:25px}.login .brand{margin-bottom:22px}.login-theme-switch{margin-bottom:21px}.yu-theme-toggle{width:34px;height:36px}.topbar .status{font-size:0!important;padding:0!important;width:9px;height:9px;background:var(--yu-good)!important}.topbar h1{font-size:17px}.sidebar{box-shadow:16px 0 50px #0004}}

/* Reliable login rendering without a GPU backdrop layer. */
.login-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
.login-error[data-code="approval_pending"]{color:var(--yu-ink)!important;background:var(--yu-soft);border:1px solid var(--yu-line);padding:12px;border-radius:12px}

/* A single accessible picker owned by the outer platform. */
.yu-theme-picker{width:min(570px,calc(100vw - 28px));max-height:calc(100dvh - 36px);box-sizing:border-box;margin:auto;padding:24px;border:1px solid var(--yu-line);border-radius:24px;background:var(--yu-surface);color:var(--yu-ink);box-shadow:0 28px 90px #0005;overflow:auto}
.yu-theme-picker::backdrop{background:rgba(0,0,0,.58)}
.yu-theme-picker-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.yu-theme-picker-head h2{margin:0 0 8px;font-size:24px;line-height:1.25;color:var(--yu-ink)}
.yu-theme-picker-head p{margin:0;font-size:13px;line-height:1.6;color:var(--yu-muted)}
.yu-theme-picker-close{flex:none;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--yu-line);border-radius:12px;background:var(--yu-soft);color:var(--yu-ink);font-size:28px;line-height:1;cursor:pointer}
.yu-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.yu-theme-choice{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:10px;border:1px solid var(--yu-line);border-radius:16px;background:var(--yu-surface);color:var(--yu-ink);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.yu-theme-choice:hover{background:var(--yu-soft)}
.yu-theme-choice[aria-pressed="true"]{border-color:var(--yu-accent);box-shadow:0 0 0 2px var(--yu-accent)}
.yu-theme-choice>strong{margin-top:11px;font-size:14px;line-height:1.3;color:var(--yu-ink)}
.yu-theme-choice>small{margin-top:5px;font-size:11px;line-height:1.4;min-height:32px;color:var(--yu-muted)}
.yu-theme-selected{min-height:18px;margin-top:6px;font-size:11px;font-weight:750;color:var(--yu-accent)}
.yu-theme-preview{display:flex;height:72px;overflow:hidden;border:1px solid #ffffff24;border-radius:10px;background:var(--preview-bg);color:var(--preview-line)}
.yu-theme-preview>i{width:23%;border-right:1px solid var(--preview-line);background:var(--preview-panel)}
.yu-theme-preview>span{display:flex;flex:1;flex-direction:column;gap:8px;padding:12px 10px}
.yu-theme-preview b{width:72%;height:7px;border-radius:2px;background:var(--preview-ink)}
.yu-theme-preview em{display:block;width:100%;height:12px;border-radius:3px;background:var(--preview-panel);border:1px solid var(--preview-line)}
.yu-theme-preview-light{--preview-bg:#f4f7fb;--preview-panel:#fff;--preview-line:#ccd7e6;--preview-ink:#15263f}
.yu-theme-preview-blue{--preview-bg:#081423;--preview-panel:#172c46;--preview-line:#354e6a;--preview-ink:#edf4ff}
.yu-theme-preview-dark{--preview-bg:#15171c;--preview-panel:#2b2f39;--preview-line:#4a515e;--preview-ink:#f1f3f7}
.yu-theme-preview-mono{--preview-bg:#101010;--preview-panel:#2b2b2b;--preview-line:#555;--preview-ink:#fafafa}
.yu-theme-preview-mono-light{--preview-bg:#f6f6f6;--preview-panel:#fff;--preview-line:#c6c6c6;--preview-ink:#1a1a1a}
.yu-theme-preview-system{--preview-bg:linear-gradient(90deg,#f4f7fb 50%,#15171c 50%);--preview-panel:linear-gradient(90deg,#eee 50%,#2b2f39 50%);--preview-line:#8993a3;--preview-ink:#8993a3}
html[data-yuksalish-palette="dark"] .login-card,html[data-yuksalish-palette="mono"] .login-card{background:var(--yu-surface);color:var(--yu-ink)}
html[data-yuksalish-palette="mono-light"] .login-card{background:rgba(255,255,255,.94);color:var(--yu-ink)}
@media(max-width:480px){.yu-theme-picker{padding:18px;border-radius:20px}.yu-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.yu-theme-picker-head h2{font-size:21px}.yu-theme-choice>small{min-height:30px}.login-theme-switch button{padding:7px 12px}}
@media(prefers-reduced-motion:reduce){.yu-theme-choice{transition:none}}
@media print{.yu-theme-picker,.yu-theme-picker::backdrop,[data-yu-theme-toggle],[data-yu-theme-chooser]{display:none!important}}

/* Login and the single picker use the same readable foreground in every palette. */
html[data-yuksalish-theme] .login-theme-switch button,html[data-yuksalish-theme] .yu-theme-picker-close{color:var(--yu-ink)!important;-webkit-text-fill-color:currentColor!important;background:var(--yu-soft)!important}

/* The shared foreground also covers ordinary dialogs in both workspaces. */
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]){background-color:var(--yu-surface)!important;color:var(--yu-ink)!important;border-color:var(--yu-line)!important}
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]) :is(label,h1,h2,h3,h4,p,b,strong,span){color:var(--yu-ink)!important;-webkit-text-fill-color:currentColor!important}
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]) :is(small,.muted){color:var(--yu-muted)!important;-webkit-text-fill-color:currentColor!important}
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]) :is(input,select,textarea,option){background:var(--yu-soft)!important;color:var(--yu-ink)!important;-webkit-text-fill-color:currentColor!important;border-color:var(--yu-line)!important}
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]) button:not(.primary):not(.count-primary-btn){background-color:var(--yu-soft)!important;color:var(--yu-ink)!important;-webkit-text-fill-color:currentColor!important;border-color:var(--yu-line)!important}
html[data-yuksalish-theme][data-yuksalish-theme] body :is(.modal-card,.modal-box,.dialog-card,.modal-content,[role="dialog"]) :is(.primary,.count-primary-btn){background:#164ca0!important;color:#fff!important;-webkit-text-fill-color:#fff!important}

/* Ranking numbers are semantic badges, not legacy fixed white surfaces. */
html[data-yuksalish-theme] body :is(#content#content#content#content#content#content,#view#view#view#view#view#view) .rank-bubble{
 background:var(--yu-soft)!important;color:var(--yu-ink)!important;-webkit-text-fill-color:var(--yu-ink)!important;
 border:1px solid var(--yu-line)!important;font-weight:850!important;
}
html[data-yuksalish-theme] body :is(#content#content#content#content#content#content,#view#view#view#view#view#view) .rank-bubble *{color:inherit!important;-webkit-text-fill-color:currentColor!important}
