/* DITO brand design system — loaded last; overrides the earlier layered stylesheets.
   Palette from pourdito.com: lime #99CC01, cup orange #FF5E32, deep green #1F4821, sun #FFD849. */
@font-face{font-family:'Raleway';src:url('/static/fonts/raleway-latin.woff2') format('woff2');font-weight:400 800;font-style:normal;font-display:swap}

:root{
  --dito-lime:#99cc01;--dito-lime-soft:#eef7d6;--dito-green:#1f4821;--dito-green-2:#2c6230;--dito-forest:#19391b;
  --dito-orange:#ff5e32;--dito-orange-soft:#fff0eb;--dito-orange-ink:#a8321a;--dito-sun:#ffd849;--dito-sun-soft:#fff8dc;
  --ink:#17301a;--muted:#5b6b5d;--bg:#f5f7f2;--surface:#ffffff;--surface-2:#fafbf8;--border:#e2e8de;--border-strong:#cfd8ca;
  --purple:#1f4821;--purple-light:#eef7d6;--green:#2c6230;--red:#b3261e;
  --focus:#ff5e32;--shadow-sm:0 1px 2px rgba(25,57,27,.06),0 1px 3px rgba(25,57,27,.05);--shadow-md:0 6px 20px rgba(25,57,27,.08);
  --radius:14px;--radius-sm:10px;--pill:999px;
  --nav-bg:#ffffff;--nav-ink:#3e5241;--nav-hover:#f1f6ea;--nav-active-bg:var(--dito-lime);--nav-active-ink:#16341a;
  --topbar-bg:var(--dito-green);--topbar-ink:#ffffff;
  font-family:'Raleway',system-ui,-apple-system,'Segoe UI',sans-serif;
}
:root[data-theme=dark]{
  --ink:#e7efe4;--muted:#a9b9a6;--bg:#0e1a10;--surface:#152417;--surface-2:#1a2c1c;--border:#2a3f2c;--border-strong:#3a553c;
  --purple:#99cc01;--purple-light:#22381f;--green:#a8d94a;--red:#ff9a8f;
  --nav-bg:#122014;--nav-ink:#c9d8c5;--nav-hover:#1d3320;--nav-active-bg:#99cc01;--nav-active-ink:#10230f;
  --topbar-bg:#0b160c;--dito-lime-soft:#22381f;--dito-orange-soft:#3a2219;--dito-sun-soft:#3a3315;--dito-orange-ink:#ffb39e;
  color:var(--ink);
}
html,body{background:var(--bg)!important;color:var(--ink)}
body,button,input,select,textarea{font-family:'Raleway',system-ui,-apple-system,'Segoe UI',sans-serif;font-variant-numeric:lining-nums tabular-nums}
h1,h2,h3,.heading h1{font-family:'Raleway',system-ui,sans-serif;color:var(--ink)}
a{color:var(--dito-green-2)}:root[data-theme=dark] a{color:#c4e66b}
:is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus)!important;outline-offset:2px}

/* ---------- Top bar ---------- */
.topbar{background:var(--topbar-bg)!important;color:var(--topbar-ink);border:0!important;height:68px;padding:0 24px;box-shadow:0 2px 12px rgba(10,30,12,.25);position:sticky;top:0;z-index:30}
.topbar .brand{gap:14px;align-items:center}
.topbar .brand-mark{display:none}
.topbar .brand .dito-logo{height:34px;width:auto;display:block}
.topbar .brand strong{color:#fff!important;font-size:17px;font-weight:700;letter-spacing:.2px}
.topbar .brand strong span{color:var(--dito-lime)!important;font-weight:600}
.topbar .brand small{color:#cfe0c9!important;font-size:11px;letter-spacing:.4px}
.topbar .brand>div{border-left:1px solid rgba(255,255,255,.22);padding-left:14px}
.topbar .account strong{color:#fff!important}.topbar .account small{color:#cfe0c9!important}
.topbar .avatar{background:var(--dito-lime)!important;color:var(--dito-forest)!important;font-weight:800}
.topbar :is(.secondary,.icon-button,button){background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important}
.topbar :is(.secondary,.icon-button,button):hover{background:rgba(255,255,255,.2)!important}
.topbar .notification-count:not(:empty){background:var(--dito-orange)!important;color:#fff}

/* ---------- Sidebar ---------- */
.layout{grid-template-columns:248px minmax(0,1fr)}
nav{background:var(--nav-bg)!important;border-right:1px solid var(--border)!important;padding:18px 12px;height:calc(100vh - 68px);top:68px}
.nav-caption{color:var(--muted)!important;font-weight:800;letter-spacing:1.6px;font-size:10px}
nav button{color:var(--nav-ink)!important;background:transparent!important;border:0!important;border-radius:var(--pill)!important;font-weight:600;font-size:13px;min-height:42px;padding:9px 14px;box-shadow:none!important;gap:12px;transition:background-color .15s}
nav button:hover{background:var(--nav-hover)!important;color:var(--ink)!important}
nav button.active{background:var(--nav-active-bg)!important;color:var(--nav-active-ink)!important;font-weight:800}
nav button .dito-icon{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nav-folder{background:var(--surface-2)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;margin-top:14px;padding:6px}
.nav-folder summary{color:var(--ink)!important;font-weight:800;font-size:12px;letter-spacing:.3px;padding:10px 12px;border-radius:var(--radius-sm)}
.nav-folder button{padding-left:14px}
.nav-footer{color:var(--muted)!important}.nav-footer span{color:var(--muted)!important}

/* ---------- Page chrome ---------- */
.workspace{padding:26px 32px 48px!important}
.navigation-tools{display:flex;align-items:center;gap:10px;margin-bottom:14px}
#workspaceBack:disabled{visibility:hidden}
#navigationTrail{color:var(--muted);font-size:12px;font-weight:600}
.heading{gap:16px;flex-wrap:wrap;margin-bottom:22px}
.heading h1{font-size:30px;font-weight:800;letter-spacing:-.4px;margin:0 0 6px}
.heading p{color:var(--muted)!important;font-size:14px;line-height:1.55}
.heading .actions{gap:10px;flex-wrap:wrap}
.section-header h2,.card h2{font-weight:800}
.eyebrow{color:var(--dito-orange-ink)!important;font-weight:800;letter-spacing:1.4px}

/* ---------- Buttons ---------- */
button,.button{border-radius:var(--pill)!important;font-weight:700;letter-spacing:.1px;background:var(--dito-green);color:#fff;border:1px solid var(--dito-green);transition:transform .08s,background .15s,box-shadow .15s}
button:hover:not(:disabled){filter:none;background:var(--dito-green-2);box-shadow:var(--shadow-sm)}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
:root[data-theme=dark] button:not(.secondary):not(.text-button):not(.icon-button):not(.danger){background:var(--dito-lime);color:#10230f;border-color:var(--dito-lime)}
.secondary{background:var(--surface)!important;color:var(--dito-green)!important;border:1px solid var(--border-strong)!important}
.secondary:hover:not(:disabled){background:var(--dito-lime-soft)!important;border-color:var(--dito-lime)!important}
:root[data-theme=dark] .secondary{color:#dbeec2!important}
.danger{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}
.text-button{background:transparent!important;border:0!important;color:var(--dito-green-2)!important;box-shadow:none!important}

/* ---------- Forms ---------- */
input,select,textarea{border-radius:var(--radius-sm)!important;border:1px solid var(--border-strong)!important;background:var(--surface)!important;color:var(--ink)!important;font-size:14px}
input:focus,select:focus,textarea:focus{border-color:var(--dito-lime)!important;box-shadow:0 0 0 3px rgba(153,204,1,.25)}
label{color:var(--ink);font-weight:600}

/* ---------- Cards, KPI tiles, tables ---------- */
.card,.table-wrap,.job-queue,.empty,.quick-link,.metric-strip,.stat,.selection-grid{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-sm)}
.metric-strip{overflow:hidden}
.metric-strip>div,.metric-strip>.metric{border-right:1px solid var(--border)!important;position:relative}
.metric-strip strong,.metric-strip b,.stat b{color:var(--ink)!important;font-weight:800;font-size:32px}
.stats{gap:14px;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
.stat{position:relative;overflow:hidden;text-align:left;padding:20px 22px!important}
.stat::before,.metric-strip>div::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--dito-lime)}
.stat:nth-child(2)::before,.metric-strip>div:nth-child(2)::before{background:var(--dito-orange)}
.stat:nth-child(3)::before,.metric-strip>div:nth-child(3)::before{background:var(--dito-sun)}
.stat:nth-child(4)::before,.metric-strip>div:nth-child(4)::before{background:var(--dito-green-2)}
.stat small,.metric-strip span,.metric-strip small{color:var(--muted)!important;font-weight:600}
.quick-link{border-left:4px solid var(--dito-orange)!important;transition:transform .12s,box-shadow .12s}
.quick-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
table{font-size:13px}
thead,th,.queue-header{background:var(--surface-2)!important;color:var(--muted)!important;font-weight:800;letter-spacing:.7px}
th,td,.queue-row{border-color:var(--border)!important}
tbody tr:hover,.queue-row:hover{background:var(--dito-lime-soft)!important}
td small{color:var(--muted)!important}
.empty{border-style:dashed!important;color:var(--muted)!important;text-align:center}

/* ---------- Badges & notices ---------- */
.badge{border-radius:var(--pill)!important;font-size:10px;font-weight:800;padding:4px 10px;letter-spacing:.4px;background:#edf1ea;color:#3e5241}
.badge.green{background:var(--dito-lime-soft)!important;color:#2d5a12!important}
.badge.amber{background:var(--dito-sun-soft)!important;color:#7a5600!important}
.badge.red{background:var(--dito-orange-soft)!important;color:var(--dito-orange-ink)!important}
:root[data-theme=dark] .badge{background:#243a26;color:#d6e6d2}
:root[data-theme=dark] .badge.green{color:#c9ec7a!important}:root[data-theme=dark] .badge.amber{color:#ffe08a!important}
.notice{background:var(--dito-sun-soft)!important;border:1px solid #f2e3a6!important;border-left:4px solid var(--dito-sun)!important;color:var(--ink)!important;border-radius:var(--radius-sm)!important}
:root[data-theme=dark] .notice{border-color:#4c4320!important}
.offline{background:var(--dito-orange-soft)!important;color:var(--dito-orange-ink)!important;border-radius:var(--radius-sm)}
.error{color:var(--red)!important}

/* ---------- Dialog & toast ---------- */
dialog{border:0!important;border-radius:20px!important;box-shadow:0 24px 60px rgba(10,30,12,.3)!important;background:var(--surface)!important;color:var(--ink)}
dialog::backdrop{background:rgba(14,30,15,.55);backdrop-filter:blur(2px)}
.modal-title{border-bottom:1px solid var(--border)!important}
.modal-title h2{font-weight:800}
#toast{background:var(--dito-forest)!important;color:#fff!important;border-radius:var(--pill)!important;border-left:6px solid var(--dito-lime)}

/* ---------- Overview welcome banner ---------- */
.dito-hero{display:grid;grid-template-columns:1fr;gap:18px;align-items:start;background:linear-gradient(120deg,var(--dito-green) 0%,var(--dito-forest) 70%);color:#fff;border-radius:20px;padding:24px 28px;margin:0 0 22px;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}
.dito-hero::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(153,204,1,.35),rgba(153,204,1,0) 70%)}
.dito-hero h2{color:#fff!important;font-size:24px;font-weight:800;margin:0 0 6px}
.dito-hero p{color:#d8e8d2;margin:0;font-size:14px}
.dito-hero .hero-tag{display:inline-block;background:var(--dito-orange);color:#fff;font-weight:800;font-size:11px;letter-spacing:1px;padding:4px 10px;border-radius:var(--pill);margin-bottom:10px}
.dito-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;position:relative;z-index:1;width:100%}
.dito-kpi{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:12px 16px;min-width:140px}
.dito-kpi b{display:block;font-size:26px;font-weight:800;color:var(--dito-lime)}
.dito-kpi small{color:#d8e8d2;font-weight:600;font-size:12px}
.dito-kpi.warn b{color:var(--dito-sun)}.dito-kpi.alert b{color:#ffb39e}

/* ---------- Login ---------- */
main.login{max-width:none!important;width:100%;min-height:100vh!important;align-items:stretch;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--bg)!important;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr)}
.login-hero{min-height:100vh;box-sizing:border-box;background:radial-gradient(circle at 85% 15%,rgba(153,204,1,.35),rgba(153,204,1,0) 45%),linear-gradient(150deg,var(--dito-green),var(--dito-forest));color:#fff;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.login-hero img{height:56px!important;width:auto!important;max-width:200px!important;object-fit:contain;align-self:flex-start}
.login-hero h1{color:#fff!important;font-size:44px;line-height:1.1;font-weight:800;margin:0 0 14px}
.login-hero h1 em{font-style:normal;color:var(--dito-lime)}
.login-hero p{color:#d8e8d2;font-size:16px;line-height:1.6;max-width:520px;margin:0}
.login-hero ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.login-hero li{display:flex;gap:12px;align-items:center;color:#eaf3e6;font-weight:600}
.login-hero li::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--dito-lime);box-shadow:0 0 0 4px rgba(153,204,1,.25)}
.login-hero .tagline{font-weight:700;color:var(--dito-sun)}
.login-panel{display:flex;flex-direction:column;justify-content:center;padding:48px clamp(24px,6vw,72px);gap:6px}
.login-panel>*{max-width:420px;width:100%}
.login-panel .brand{display:none}
.login-panel h1{font-size:30px;font-weight:800;margin:0 0 6px}
.login-panel form{display:grid;gap:14px;margin-top:12px}
.login-panel button[type=submit]{min-height:48px;font-size:15px}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  main.login{grid-template-columns:1fr}
  .login-hero{padding:32px 24px;min-height:auto}
  .login-hero h1{font-size:30px}
  .login-hero ul{display:none}
  .dito-hero{grid-template-columns:1fr;padding:20px}
  .topbar{padding:0 14px}
  .topbar .brand>div{display:none}
  .workspace{padding:18px 16px 40px!important}
  .heading h1{font-size:24px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.topbar,nav,.navigation-tools,.heading .actions{display:none!important}.workspace{padding:0!important}}

/* ---------- View-only tabs ---------- */
.view-only-note{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--dito-lime-soft);border:1px solid var(--dito-lime);border-radius:var(--radius-sm);padding:12px 16px;margin:0 0 18px;color:var(--ink);font-size:14px}
.view-only-note strong{background:var(--dito-green);color:#fff;border-radius:var(--pill);padding:3px 12px;font-size:12px;letter-spacing:.4px}
:root[data-theme=dark] .view-only-note strong{background:var(--dito-lime);color:#10230f}
.role-tab-option{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.view-only-tag{background:var(--dito-sun-soft);color:#7a5600;border-radius:var(--pill);padding:2px 9px;font-size:11px;font-weight:800;letter-spacing:.3px}
:root[data-theme=dark] .view-only-tag{color:#ffe08a}
[hidden]{display:none!important}

/* ---------- Usability pass ---------- */
/* Top bar: name, theme, alerts, then Sign out at the far end. */
.topbar .account{display:flex;align-items:center;gap:10px}
.topbar .account [data-action="logout"]{order:10}
.menu-toggle{display:none}
/* Sidebar scrolls on its own so every group stays reachable on short screens. */
@media (min-width:901px){nav{position:sticky!important;overflow-y:auto!important}}
/* Back only when there is history; the trail keeps its space so Refresh stays right-aligned. */
#navigationTrail.trail-hidden{visibility:hidden}
/* Summary cards that act as filters: one joined strip, no pill corners. */
.metric-strip{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:0!important;gap:0!important}
.metric-strip>button,.metric-strip>.metric{border-radius:0!important;border:0!important;border-right:1px solid var(--border)!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important;padding:18px 20px!important;text-align:left;min-height:0}
.metric-strip>:last-child{border-right:0!important}
.metric-strip>button:hover{background:var(--dito-lime-soft)!important}
.metric-strip>button[aria-pressed="true"]{background:var(--dito-lime-soft)!important;box-shadow:inset 0 -3px 0 var(--dito-lime)!important}
.metric-strip>button b{display:block}
/* Sign-in: password help as a quiet link under the main button. */
.login-panel .forgot-link{justify-self:center;width:auto!important;min-height:0;padding:6px 10px;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Phones and tablets: the menu is a drawer opened from the top bar. */
.nav-backdrop{display:none}
@media (max-width:900px){
  .topbar{height:60px!important;min-height:60px!important;flex-wrap:nowrap!important;padding:0 12px!important;gap:8px!important;position:sticky!important;top:0}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0!important;border-radius:12px!important}
  .menu-toggle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  .topbar .brand{flex:1 1 auto;min-width:0}
  .topbar .brand .dito-logo{height:28px}
  .topbar .account{gap:6px;flex-wrap:nowrap!important;max-width:none!important}
  .topbar .account>div:not(.comfort-controls){display:none}
  .topbar .account .avatar{display:none}
  .topbar .account [data-action="logout"]{font-size:12px!important;padding:8px 12px!important;min-height:40px!important}
  .comfort-controls{flex-wrap:nowrap!important}
  .comfort-controls .comfort-icon{width:40px;min-width:40px;height:40px;min-height:40px!important}
  .layout{display:block!important}
  nav{position:fixed!important;top:0!important;left:0;bottom:0;z-index:60;display:block!important;width:min(300px,86vw);height:100vh!important;height:100dvh!important;max-height:none!important;max-width:none!important;overflow-y:auto!important;padding:18px 12px 32px!important;border-right:1px solid var(--border)!important;border-bottom:0!important;box-shadow:0 0 40px rgba(10,30,12,.25);transform:translateX(-105%);transition:transform .2s ease;visibility:hidden}
  body.nav-open nav{transform:none;visibility:visible}
  body.nav-open{overflow:hidden}
  body.nav-open .nav-backdrop{display:block;position:fixed;inset:0;z-index:55;background:rgba(14,30,15,.5)}
  nav .nav-caption{display:block!important}
  nav button{display:flex!important;width:100%!important;white-space:normal!important;font-size:14px!important;min-height:46px!important;margin:2px 0!important}
  nav .nav-folder{display:block!important;white-space:normal!important;margin-top:12px!important;padding:6px!important;border:1px solid var(--border)!important}
  nav .nav-folder summary{display:list-item!important;min-height:0;font-size:13px!important}
  nav .nav-folder summary::before{content:none!important}
  nav .nav-folder::details-content{display:block!important}
  nav .nav-folder button{display:flex!important;width:100%!important}
  .navigation-tools{margin-bottom:10px}
  .heading{margin-bottom:16px}
  .heading .actions{width:100%}
  .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-strip>button,.metric-strip>.metric{border-bottom:1px solid var(--border)!important;padding:14px 16px!important}
  .metric-strip strong,.metric-strip b,.stat b{font-size:24px}
  .dito-hero{padding:18px!important;gap:12px}
  .dito-hero h2{font-size:20px}
  .dito-hero p{font-size:13px}
  .dito-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .dito-kpi{min-width:0;padding:10px}
  .dito-kpi b{font-size:20px}
  .dito-kpi small{font-size:11px;line-height:1.3;display:block}
}
@media (max-width:420px){.topbar .account [data-action="logout"]{padding:8px 10px!important}}

/* ---------- Contrast fixes (light and dark) ---------- */
/* Keyboard "Skip to content" link: dark green on white whenever it is shown. */
.skip-link:focus,.skip-link:focus-visible{background:#fff!important;color:#1f4821!important}
/* Sign-in in dark mode: lime button with dark text; light-green password link. */
:root[data-theme=dark] .login-panel button[type=submit]{background:var(--dito-lime)!important;border-color:var(--dito-lime)!important;color:#10230f!important}
:root[data-theme=dark] .login-panel .forgot-link{color:#c4e66b!important}
/* Pick lists (parts, machines) are list rows, not action buttons, in both themes. */
.choose-list button{background:var(--surface)!important;color:var(--ink)!important;border:0!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;box-shadow:none!important;text-align:left;width:100%}
.choose-list button:hover,.choose-list button:focus-visible{background:var(--dito-lime-soft)!important}
.choose-list button strong{color:var(--ink)!important}
.choose-list button small{color:var(--muted)!important}
/* Sign-in: light/dark toggle in the top-right corner instead of an extra row under the page. */
main.login>#comfortControls{position:fixed;top:16px;right:16px;z-index:5;margin:0!important;width:auto}
/* Phones: short intro so the sign-in form is visible without scrolling. */
@media (max-width:600px){
  .login-hero{padding:20px 24px!important;gap:10px!important}
  .login-hero img{height:38px!important}
  .login-hero h1{font-size:23px!important;margin:0!important}
  .login-hero p:not(.tagline){display:none}
  .login-hero .tagline{font-size:13px}
  .login-panel{padding:24px!important}
  .login-panel h1{font-size:24px}
}

/* ---------- Track installed components (multi-select) ---------- */
.pm-components-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:14px 0 6px}
.pm-component-list{max-height:280px}
.pm-component-list label{display:flex;align-items:center;gap:10px;margin:0;padding:11px 12px;border-bottom:1px solid var(--border);font-weight:600;cursor:pointer;color:var(--ink)}
.pm-component-list label:hover{background:var(--dito-lime-soft)}
.pm-component-list label:has(input:checked){background:var(--dito-lime-soft)}
.pm-component-list input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;accent-color:var(--dito-green)}
:root[data-theme=dark] .pm-component-list input[type=checkbox]{accent-color:var(--dito-lime)}
.pm-component-list span{flex:1}
.pm-component-list .pm-tracked{cursor:default;color:var(--muted);font-weight:500}
.pm-component-list .pm-tracked:hover{background:transparent}
.pm-component-list small{color:var(--muted)!important}
#pmMachineSelected:not(:empty){display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:6px 0;border:1px solid var(--dito-lime);border-radius:var(--radius-sm);background:var(--dito-lime-soft);color:var(--ink)}
#pmMachineSelected button{margin-left:auto}
fieldset.pm-baseline{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0}
fieldset.pm-baseline legend{font-weight:800;padding:0 6px;color:var(--ink)}
.pm-component-list label span small{display:block;font-weight:500;color:var(--muted)!important;font-size:12px;margin-top:2px}
.pm-component-list .pm-note{flex:0 0 auto;font-size:12px;text-align:right}
.pm-component-list .pm-spare .pm-note{color:var(--dito-orange-ink)!important}
.pm-limit{padding:8px 12px 12px 40px;border-bottom:1px solid var(--border);background:var(--dito-lime-soft)}
.pm-limit label{display:flex;align-items:center;gap:8px;margin:0;padding:0;border:0;font-weight:600;flex-wrap:wrap}
.pm-limit input{width:140px;flex:0 0 140px}

.pm-chosen{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.pm-chip{display:inline-flex;align-items:center;gap:4px;background:var(--dito-lime-soft);border:1px solid var(--dito-lime);color:var(--ink);border-radius:var(--pill);padding:3px 4px 3px 10px;font-size:12px;font-weight:700;max-width:100%}
.pm-chip button{background:transparent!important;border:0!important;color:var(--ink)!important;min-height:0!important;padding:0 6px!important;font-size:15px;line-height:1;box-shadow:none!important}
/* Dialogs open near the top and grow downwards, so nothing moves under the pointer as content appears. */
@media (min-width:601px){dialog#modal{margin:6vh auto auto!important;max-height:88vh}}
.choose-list:empty{display:none}

/* ---------- Sign-in only ---------- */
main.login{grid-template-columns:1fr!important;place-items:center;padding:24px 16px!important;min-height:100vh;box-sizing:border-box}
main.login .login-panel{width:100%;max-width:400px;padding:32px 28px!important;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-md);justify-content:flex-start;gap:4px}
main.login .login-logo{height:44px;width:auto;align-self:center;margin:0 auto 18px;display:block}
main.login .login-panel h1{text-align:center;font-size:26px;margin:0 0 4px}
main.login .login-panel form{margin-top:8px}
main.login .login-hero{display:none}

/* Actions of retired features (physical-change reports) and of the old stock-only PM link. */
[data-action="reportIncident"],[data-action="pmReplacement"]{display:none!important}
/* "Link verified replacement" (pmReplacement) needed a stock-issued, approved replacement; Record PM replacement replaces it. */
/* Replacement picker and history */
.pm-component-list .rp-overdue{color:var(--dito-orange-ink)!important;font-weight:800}
.pm-component-list .rp-due_soon{color:#7a5600!important;font-weight:800}
:root[data-theme=dark] .pm-component-list .rp-due_soon{color:#ffe08a!important}
.segmented{display:inline-flex;gap:6px;flex-wrap:wrap}
.segmented button{min-height:40px}
#replacementHistory .toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
#replacementHistory .toolbar input{flex:1 1 220px}

/* ---------- Replacement: take from carry / hub store; per-technician tracking ---------- */
.rp-extras{display:flex;flex-direction:column;gap:8px}
.rp-extras .rp-qty{display:flex;align-items:center;gap:8px;margin:0;padding:0;border:0;font-weight:600}
.rp-extras .rp-qty input{width:110px;flex:0 0 110px}
.rp-sources{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;font-weight:600}
.pm-component-list .rp-source{display:inline-flex;align-items:center;gap:6px;padding:6px 10px!important;border:1px solid var(--border-strong)!important;border-radius:var(--pill);background:var(--surface);font-weight:600}
.pm-component-list .rp-source:has(input:checked){border-color:var(--dito-green)!important;background:var(--surface);box-shadow:inset 0 0 0 1px var(--dito-green)}
:root[data-theme=dark] .pm-component-list .rp-source:has(input:checked){border-color:var(--dito-lime)!important;box-shadow:inset 0 0 0 1px var(--dito-lime)}
.rp-source input{width:16px;height:16px;accent-color:var(--dito-green)}
:root[data-theme=dark] .rp-source input{accent-color:var(--dito-lime)}
.rp-short{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--dito-sun-soft);border:1px solid #f2e3a6;color:var(--ink);font-size:13px}
:root[data-theme=dark] .rp-short{border-color:#4c4320}
.rp-short-flag{color:var(--dito-orange-ink)!important;font-weight:800}
.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tech-card h3{margin:0 0 10px}
.tech-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.tech-stats b{display:block;font-size:22px;font-weight:800;color:var(--ink)}
.tech-stats small{color:var(--muted);font-size:11px;line-height:1.3;display:block}
.tech-card details summary{cursor:pointer;font-weight:700;color:var(--ink);padding:6px 0}
.tech-carry{list-style:none;margin:6px 0 0;padding:0;max-height:220px;overflow:auto}
.tech-carry li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}
.tech-carry li small{display:block;color:var(--muted)}

/* "Take from" choices: compact radio pills, not text boxes. */
.pm-component-list .rp-extras label.rp-source{display:inline-flex!important;width:auto!important;border-bottom:1px solid var(--border-strong)!important;margin:0!important;cursor:pointer}
.rp-source input[type=radio]{appearance:auto!important;-webkit-appearance:radio!important;width:16px!important;height:16px!important;min-height:0!important;flex:0 0 16px;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
.rp-extras .rp-qty input{min-height:40px}
/* Link-style buttons (machine and job links in tables) readable in dark mode. */
:root[data-theme=dark] .text-button{color:#c4e66b!important}

/* Technician locations */
.last-seen{margin:4px 0 8px;font-size:13px;color:var(--ink)}
.last-seen a,.location-list a:not(.button){font-weight:700}
.location-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.location-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}
.location-list small{display:block;color:var(--muted)}
.location-list .button{text-decoration:none;white-space:nowrap}
/* The "Saved…" message never blocks taps on the buttons underneath it. */
#toast{pointer-events:none}
/* Show / hide password eye */
.pw-wrap{position:relative;display:block;width:100%}
.pw-wrap input{width:100%;padding-right:48px!important;box-sizing:border-box}
.pw-wrap .pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;min-height:0!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:10px!important;color:var(--muted)!important}
.pw-wrap .pw-eye:hover{color:var(--ink)!important;background:var(--dito-lime-soft)!important}
.pw-wrap .pw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.pw-wrap .pw-eye:active{transform:translateY(-50%)}
.pw-wrap .pw-eye{margin:0!important}   /* form button spacing must not push the eye down */

/* Day-end return and stock tracking */
.rp-pending{color:var(--dito-orange-ink)!important;font-weight:700}
.tech-card .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tech-last{margin:6px 0 0;font-size:12px}
.hub-stock{margin-bottom:14px}
.hub-stock h3{margin:0 0 10px}
.dr-title{font-size:15px;margin:16px 0 6px}
#modal .qty-input{width:84px;min-width:0}
