/* GaragePulse release-20261018b - styles for the feature modules (features-*.js). Additive to styles.css.
 * Every tap target is >= 48px; nothing forces horizontal scroll at 375 / 1024 / 1280 / 1920. */
.page-h{font-size:26px;margin:6px 4px 12px}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.danger:not([disabled]):hover{background:#2d1615}
.btn.mini{min-height:48px;padding:0 14px;font-size:15px;border-radius:12px}
.rec-acts{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}
.rec-acts.desk{padding:6px 0 0}
.hist-table td .rec-acts .btn.mini{min-height:40px}
.two>.btn{flex:1}
.two .btn{width:100%}
.cf-body .list{margin-bottom:6px}
#cfErr,#fxErr,#uErr{margin-top:8px}
/* Undo toast: above the tab bar on phones, bottom-left on desktop */
.toast.undo{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 8px 8px 16px}
.toast.undo[hidden]{display:none}
.toast.undo .u-msg{flex:1}
.toast.undo .btn{min-height:48px;background:#111418;color:#ffb020;border:0}
.toast.undo .btn.ghost{background:none;color:#111;min-width:48px}
:root[data-theme="light"] .toast.undo .btn{background:#fff;color:#b85c00}
:root[data-theme="light"] .toast.undo .btn.ghost{background:none;color:#fff}
/* forms */
.fld select{width:100%;min-height:56px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--fg);padding:0 14px;font-size:18px}
.fld>span small{font-weight:400}
.tgl{display:flex;align-items:center;gap:14px;min-height:56px;padding:6px 16px;background:var(--card);border-radius:14px;margin-bottom:8px;cursor:pointer}
.tgl input{width:26px;height:26px;flex:none;accent-color:var(--acc)}
.tgl.locked{opacity:.75;cursor:default}
.list .tgl{margin:0;border-radius:0}
.item{display:grid;grid-template-columns:1fr 110px auto;gap:8px;align-items:end}
.item .fld{margin-bottom:8px}.item .btn.mini{margin-bottom:12px}
.chip.f{font-family:inherit;font-weight:700}
.chip.f.on{background:var(--acc);color:var(--accfg);border-color:var(--acc)}
.row.back{min-height:48px;padding-left:4px}
.avatar{width:44px;height:44px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--line);font-weight:800}
.pill.role-admin{background:#3a2a10;color:var(--acc)}.pill.role-manager{background:#1d3240;color:#7cc4ff}.pill.role-viewer{background:#2a2f36;color:var(--mute)}
.users .row{flex-wrap:wrap}
.notes{white-space:pre-wrap;background:var(--card);border-radius:var(--r);padding:14px 16px;margin:0}
/* one-time secret reveal */
.reveal{background:var(--card);border:2px dashed var(--acc);border-radius:14px;padding:16px;margin:4px 0 12px;text-align:center}
.reveal code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:22px;letter-spacing:.06em;overflow-wrap:anywhere;user-select:all}
/* gauges / KPIs / bars */
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gauge{background:var(--card);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:6px;border-left:6px solid var(--ok)}
.gauge.soon{border-color:var(--soon)}.gauge.overdue{border-color:var(--bad)}.gauge.none{border-color:var(--line)}
.gauge small{color:var(--mute)}.g-top{display:flex;justify-content:space-between}.g-pct{font-weight:800}
.g-bar{height:10px;border-radius:5px;background:var(--bg);overflow:hidden}.g-bar i{display:block;height:100%;background:var(--ok)}
.gauge.soon .g-bar i{background:var(--soon)}.gauge.overdue .g-bar i{background:var(--bad)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi{background:var(--card);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi b{font-size:20px;overflow-wrap:anywhere}.kpi small{color:var(--mute)}
.cbar{display:block;height:8px;border-radius:4px;background:var(--bg);margin-top:6px;overflow:hidden}.cbar i{display:block;height:100%;background:var(--acc)}
/* must-change: only the change-password screen is reachable */
body[data-auth="must-change"] .tabbar,body[data-auth="must-change"] .sidebar,body[data-auth="must-change"] #vehicleBtn{display:none!important}
body[data-auth="must-change"] main{margin-left:0!important}
@media (min-width:1024px){
  .toast.undo{left:calc(var(--side) + 24px);right:auto;bottom:24px;min-width:420px;max-width:640px}
  .gauges,.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .side-x{border-top:1px solid var(--line);padding-top:8px}
  .uform,#acctForm,#mailForm,#pwForm,#setupForm{max-width:720px}
  .sheet .two{display:flex;gap:12px}
}
