/* Shared controls and reading rhythm across the account, fleet and service panels. */
:root { --ui-surface:#0b2136; --ui-line:#355069; --ui-muted:#b4c4d6; --ui-accent:#ffd044; }
body { font-family:"Segoe UI",system-ui,sans-serif; }
button,input,select,textarea { font:inherit; }
button,.button,a.quiet,summary { touch-action:manipulation; }
button,.button,a.quiet { min-height:48px; border-radius:12px; line-height:1.4; white-space:normal; }
button:disabled,.button:disabled { cursor:not-allowed; }
input:not([type=checkbox]):not([type=radio]),select,textarea { min-height:50px; border-radius:12px; font-size:16px; max-width:100%; }
input[type=checkbox],input[type=radio] { accent-color:var(--ui-accent); }
input::placeholder { color:#9eb2c7; opacity:1; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible { outline:3px solid #72d9fa; outline-offset:3px; }
.panel,.panel-card,.auth-card,.card { border-radius:18px; }
.panel p,.panel-card p,.card p { line-height:1.65; }
.section-head,.section-heading { gap:16px; }
.section-head h2,.section-heading h2 { line-height:1.3; }
.notice,.form-message,.selection-context { overflow-wrap:anywhere; }
.table-wrap,.table-scroll { overscroll-behavior-x:contain; }
dialog { border-radius:20px; max-height:calc(100dvh - 32px); max-width:calc(100vw - 24px); padding:24px; }
dialog::backdrop { background:#010812bd; }
.quiet,.button.secondary { border-color:var(--ui-line); }
.sidebar nav a,.nav-item { min-height:48px; }
.muted,.section-head p { color:var(--ui-muted); }
/* Admin rows use the same dark surfaces as the rest of the application. */
.workspace-bar ~ main td { background:#0b2136; color:#f1f6fc; border-color:#355069; }
.workspace-bar ~ main tbody tr:nth-child(even) td { background:#102b40; }
.workspace-bar ~ main tbody tr:hover td { background:#19374c; }
.workspace-bar ~ main td p,.workspace-bar ~ main td small { color:#b4c4d6; }
.workspace-bar ~ main td input,.workspace-bar ~ main td select { background:#061725; color:#f1f6fc; border-color:#476176; }
.workspace-bar ~ main td label { color:#d0deeb; }
.workspace-bar ~ main td summary,.workspace-bar ~ main td .profile-missing { color:#ffd044; }
.workspace-bar ~ main .row-open { color:#f1f6fc; }
#fleet-table tr.is-selected td { background:#263a35; }
#fleet-table tr { background:#0b2136; }
.auth-form { gap:18px; }
.auth-form label { gap:8px; }
.auth-form h2 { font-size:clamp(1.6rem,5vw,1.9rem); }
.password-wrap { position:relative; display:block; min-width:0; }
.password-wrap input { width:100%; margin:0; padding-right:78px; }
.password-toggle { position:absolute; top:1px; right:1px; bottom:1px; width:72px; min-width:72px; min-height:46px; margin:0; padding:8px; color:#ffd044; background:transparent; border:0; font-size:13px; font-weight:650; border-radius:11px; box-shadow:none; }
.password-toggle:hover { background:#ffd04413; }
.rfid-heading .count-pill { flex-shrink:0; white-space:nowrap; min-width:68px; }
.rfid-service-list { display:grid; gap:10px; margin:16px 0; }
.rfid-service-card { display:flex; justify-content:space-between; align-items:center; gap:14px; border:1px solid var(--ui-line); border-radius:12px; padding:14px; }
.rfid-service-card small { display:block; color:var(--ui-muted); overflow-wrap:anywhere; }
.rfid-service-card strong { overflow-wrap:anywhere; }
.rfid-service-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
@media(max-width:720px) {
  main,.workspace,.content,.workgrid,.panel,.panel-card,.card,.hero,.identity,.topbar,.section-head > div { min-width:0; }
  .topbar { flex-wrap:wrap; gap:10px; }
  .identity { max-width:100%; overflow-wrap:anywhere; }
  .section-head,.section-heading { flex-wrap:wrap; }
  .section-head > button,.section-head > .button { width:100%; }
  .panel,.panel-card { padding:18px 16px; }
  dialog { padding:18px; }
  .device-actions,.live-toolbar,.restart-actions { gap:10px; }
  .device-actions > button,.restart-actions > button { flex:1 1 160px; }
  .rfid-service-form { grid-template-columns:1fr; }
  .rfid-service-card { flex-wrap:wrap; }
  .rfid-service-card button { width:100%; }
  :is(.service-app,.lan-app) .sidebar nav { gap:6px; min-width:0; }
  :is(.service-app,.lan-app) .sidebar nav a { font-size:14px; }
}
@media(max-width:480px) {
  :is(.service-app,.lan-app) .sidebar { flex-wrap:wrap; height:auto; gap:10px; }
  :is(.service-app,.lan-app) .sidebar nav { display:flex; flex-wrap:wrap; width:100%; margin:0; }
  :is(.service-app,.lan-app) .sidebar nav a { flex:1 1 auto; justify-content:center; min-width:48px; padding:10px; }
}
@media(max-width:600px) {
  #fleet-table .device-name-cell { background:#102b40!important; }
  #fleet-table .row-action .row-open { background:#15334b; color:#f1f6fc; border-color:#476176; }
  #fleet-table td:before { color:#b4c4d6; }
  .auth-layout { display:flex; flex-direction:column; gap:18px; padding:24px 16px max(24px,env(safe-area-inset-bottom)); min-height:100dvh; }
  .auth-brand { width:100%; display:flex; align-items:center; gap:12px; }
  .auth-brand .brand-mark { width:52px; height:52px; margin:0; }
  .auth-brand h1 { font-size:1.35rem; line-height:1.2; letter-spacing:-.025em; max-width:260px; }
  .auth-brand .eyebrow,.auth-brand .brand-copy,.auth-brand .platforms { display:none; }
  .auth-card { width:100%; padding:20px 16px; border-radius:20px; }
  .auth-form { padding-top:24px; }
  .auth-tabs { border-radius:14px; }
  .auth-tab { border-radius:10px; min-height:48px; }
  .security-note { line-height:1.6; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
