/* Theme: light values on bare :root; dark overrides in two places — a
   prefers-color-scheme block (system default, unless the user picked
   "light" explicitly) and a [data-theme="dark"] block (explicit override,
   set by the toggle in app.js — see applyTheme()). --blue is deliberately
   NOT redefined in dark mode: an admin's custom accent color
   (src/public/app.js applyAccentColor) overrides it as an inline style on
   this same element regardless of theme, and the plain default (#2563eb)
   already has enough contrast against the dark background below to leave
   alone rather than add a second blue that only sometimes applies. */
:root { color-scheme: light;
  --bg:#f4f5f7; --card:#fff; --ink:#1a2333; --muted:#67748a; --line:#e4e8ef;
  --blue:#2563eb; --green:#16a34a; --amber:#d97706; --red:#dc2626; --dead:#6b7280;
  --tint-blue:#e8f0fe; --tint-blue-line:#c5d9fb;
  --tint-green:#e7f6ec; --tint-green-line:#bfe6cb;
  --tint-red:#fdeaea; --tint-amber:#fdf2e3;
  --tint-neutral:#eef2f7; --tint-neutral-strong:#e5e7eb;
  --flag-bg:#fffaf0; --flag-line:#f0c47a; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg:#0f1420; --card:#171e2c; --ink:#e7ebf3; --muted:#93a0b8; --line:#2a3346;
    --green:#4ade80; --amber:#fbbf24; --red:#f87171; --dead:#94a3b8;
    --tint-blue:rgba(96,165,250,.18); --tint-blue-line:rgba(96,165,250,.4);
    --tint-green:rgba(74,222,128,.16); --tint-green-line:rgba(74,222,128,.4);
    --tint-red:rgba(248,113,113,.16); --tint-amber:rgba(251,191,36,.16);
    --tint-neutral:rgba(255,255,255,.06); --tint-neutral-strong:rgba(255,255,255,.12);
    --flag-bg:rgba(217,119,6,.12); --flag-line:rgba(217,119,6,.55);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0f1420; --card:#171e2c; --ink:#e7ebf3; --muted:#93a0b8; --line:#2a3346;
  --green:#4ade80; --amber:#fbbf24; --red:#f87171; --dead:#94a3b8;
  --tint-blue:rgba(96,165,250,.18); --tint-blue-line:rgba(96,165,250,.4);
  --tint-green:rgba(74,222,128,.16); --tint-green-line:rgba(74,222,128,.4);
  --tint-red:rgba(248,113,113,.16); --tint-amber:rgba(251,191,36,.16);
  --tint-neutral:rgba(255,255,255,.06); --tint-neutral-strong:rgba(255,255,255,.12);
  --flag-bg:rgba(217,119,6,.12); --flag-line:rgba(217,119,6,.55);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);
  font-size:15px}

/* app shell: left sidebar (module nav) + content column ------------------ */
.shell{display:flex;align-items:flex-start;min-height:100vh}
#sidebar{width:230px;flex:0 0 230px;background:var(--card);border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:16px 14px;border-bottom:1px solid var(--line)}
.brandrow{display:flex;align-items:center;gap:8px;min-width:0}
.sidebar-head .brand{font-weight:800;color:var(--blue);font-size:17px;letter-spacing:-.02em;flex-shrink:0}
.clientbrand{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clientbrand img{height:20px;max-width:120px;object-fit:contain;vertical-align:middle}
.sidebar-close{display:none;background:none;border:none;cursor:pointer;color:var(--muted);padding:4px}
.sidebar-close .icon{width:18px;height:18px}
.modulenav{padding:10px 8px;flex:1}
.modgroup{margin-bottom:4px}
.modbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;
  border-radius:9px;padding:10px 10px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.modbtn:active,.modbtn:hover{background:var(--bg)}
.modbtn.on{background:var(--tint-blue);color:var(--blue)}
.modbtn .ic .icon{width:18px;height:18px}
.sidebar-foot{padding:8px;border-top:1px solid var(--line)}
.sidebar-foot button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;
  border-radius:9px;padding:10px 10px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.sidebar-foot button:active,.sidebar-foot button:hover{background:var(--bg)}
.sidebar-foot .ic .icon{width:16px;height:16px}
.subnav{display:flex;flex-direction:column;margin:2px 0 8px 15px;border-left:2px solid var(--line);padding-left:10px}
.subnav button{text-align:left;background:none;border:none;padding:8px 8px;font-size:13px;color:var(--muted);
  border-radius:7px;cursor:pointer}
.subnav button:active,.subnav button:hover{background:var(--bg)}
.subnav button.on{color:var(--blue);font-weight:700;background:var(--tint-blue)}
.subnav button.subnav-sep{margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}
#content{flex:1;min-width:0}
.backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:15}
.backdrop.show{display:block}
.hamburger{display:none;border:none;background:none;cursor:pointer;padding:4px;margin-right:2px;flex-shrink:0}
.hamburger .icon{width:22px;height:22px}

@media (max-width: 860px){
  #sidebar{position:fixed;top:0;left:0;bottom:0;height:100%;width:250px;z-index:20;
    transform:translateX(-100%);transition:transform .2s ease;box-shadow:2px 0 16px rgba(0,0,0,.18)}
  #sidebar.open{transform:translateX(0)}
  .sidebar-close{display:block}
  .hamburger{display:inline-flex;align-items:center}
}

.top{position:sticky;top:0;z-index:5;background:var(--bg);padding:12px 14px 8px;border-bottom:1px solid var(--line)}
.top h1{font-size:17px;font-weight:700}
.who-wrap{position:relative;display:inline-block;flex-shrink:0}
.top .who{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink);
  background:var(--card);border:1px solid var(--line);border-radius:20px;padding:5px 10px 5px 8px;cursor:pointer;text-align:left;font-family:inherit}
.top .who:hover{background:var(--bg)}
.top .who .ic .icon{width:14px;height:14px;color:var(--muted)}
.top .who .chev .icon{width:11px;height:11px;transform:rotate(90deg);color:var(--muted)}
.who-menu{display:none;position:absolute;top:100%;right:0;margin-top:6px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:30;min-width:140px;overflow:hidden}
.who-menu.open{display:block}
.who-menu button{display:block;width:100%;text-align:left;padding:9px 12px;background:none;border:none;font-size:13px;color:var(--ink);cursor:pointer}
.who-menu button:hover{background:var(--bg)}
.avatar{width:60px;height:60px;border-radius:50%;object-fit:cover;background:var(--bg);border:1px solid var(--line)}
.avatar-placeholder{width:60px;height:60px;border-radius:50%;background:var(--bg);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--muted)}
.avatar-placeholder svg{width:28px;height:28px}
.avatarrow{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.avatarbtns{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.avatarbtns input[type=file]{font-size:12px}
.toprow{display:flex;justify-content:space-between;align-items:center;gap:8px}
.topheading{flex:1;min-width:0}
.toprow select{max-width:46%}
select,input[type=date],input[type=text],input[type=email]{background:var(--card);border:1px solid var(--line);border-radius:9px;
  padding:8px 10px;font-size:14px;color:var(--ink);width:100%}
.kstrip{display:flex;gap:8px;margin-top:8px;overflow-x:auto}
.kpi{flex:1;min-width:86px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-align:center}
.kpi .v{font-size:19px;font-weight:700}
.kpi .l{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.kpi.warn .v{color:var(--red)}
.modpanel{padding:12px 14px}
.daygroup{margin-bottom:14px}
.dayhead{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 6px}
.dayhead .n{color:var(--blue)}
.lead{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
.lead.flag{border-color:var(--flag-line);border-left:4px solid var(--amber);background:var(--flag-bg)}
.lead .row1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.lead .name{font-weight:700;font-size:16px}
.lead .quoted{font-weight:700;color:var(--blue);white-space:nowrap}
.lead .row2{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px;color:var(--muted)}
.chip{background:var(--bg);border-radius:6px;padding:2px 7px;white-space:nowrap}
.stage{margin-top:8px;font-size:13px}
.stage b{color:var(--amber)}
.stage .over{color:var(--red);font-weight:700}
.lastc{font-size:12px;color:var(--muted);margin-top:2px}
.touchnote{font-size:12px;color:var(--ink);background:var(--tint-amber);border-radius:6px;padding:4px 8px;margin-top:5px}
.notes{font-size:12px;color:var(--muted);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* contact (initiate call / text / email) bar */
.contactbar{display:flex;gap:8px;margin-top:10px}
.cbtn{flex:1;text-align:center;text-decoration:none;border-radius:10px;padding:11px 0;font-size:14px;font-weight:700;
  border:1px solid var(--line);line-height:1}
.cbtn.call{background:var(--tint-green);color:var(--green);border-color:var(--tint-green-line)}
.cbtn.text{background:var(--tint-blue);color:var(--blue);border-color:var(--tint-blue-line)}
.cbtn.email{background:var(--tint-neutral);color:var(--muted)}
.cbtn:active{filter:brightness(.95)}
.phoneline{font-size:12px;color:var(--muted);margin-top:5px;text-align:center}
.phoneline a{color:var(--muted);text-decoration:none}
.loglabel{font-size:11px;color:var(--muted);margin-top:12px}
.acts{display:flex;gap:8px;margin-top:6px}
.acts button{flex:1;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 0;
  font-size:18px;cursor:pointer;line-height:1}
.acts button:active{background:var(--tint-blue)}
.acts .undo{flex:0 0 auto;padding:10px 12px;color:var(--muted)}
.acts2{display:flex;gap:8px;margin-top:8px}
.acts2 button{flex:1;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:8px 0;
  font-size:13px;font-weight:600;cursor:pointer}
.acts2 .snz{color:var(--amber)}
.acts2 .won{color:var(--green)}
.acts2 .kill{color:var(--dead)}
.acts2 .revive{color:var(--blue)}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600}
.b-won{background:var(--tint-green);color:var(--green)}
.b-due{background:var(--tint-red);color:var(--red)}
.b-open{background:var(--tint-neutral);color:var(--muted)}
.b-dead{background:var(--tint-neutral-strong);color:var(--dead)}
.b-done{background:var(--tint-neutral);color:var(--muted)}
.b-snz{background:var(--tint-amber);color:var(--amber)}
.b-noq{background:var(--tint-red);color:var(--red)}
.empty{color:var(--muted);text-align:center;padding:40px 16px}
.note-sm{font-size:11px;color:var(--muted);margin:8px 0 16px;text-align:center}
.icon{width:1em;height:1em;vertical-align:-0.15em;flex-shrink:0}
.cbtn .icon,.acts2 button .icon,.chip.editbtn .icon{margin-right:4px}
.acts button .icon{width:18px;height:18px}
.chip.editbtn .icon{width:11px;height:11px}
#loading{text-align:center;padding:70px 20px;color:var(--muted)}
.spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;margin:0 auto 12px;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#error{display:none;background:var(--tint-red);color:var(--red);padding:14px;border-radius:10px;margin:14px;white-space:pre-wrap;font-size:13px}
#busy{display:none;position:fixed;top:10px;left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;
  padding:6px 14px;border-radius:99px;font-size:12px;z-index:20}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:30;align-items:flex-end}
.modal{background:var(--card);border-radius:16px 16px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));width:100%}
.modal h3{font-size:16px;margin-bottom:12px}
#m-body{max-height:60vh;overflow-y:auto}
.m-err{color:var(--red);font-size:12px;margin-top:8px;min-height:14px}
.chip.editbtn{border:none;cursor:pointer;font:inherit;color:var(--blue);font-weight:600}
.modal label{font-size:12px;color:var(--muted);display:block;margin:10px 0 4px}
.modal .mrow{display:flex;gap:8px;margin-top:16px}
.modal .mrow button{flex:1;padding:12px;border-radius:10px;border:none;font-size:15px;font-weight:600;cursor:pointer}
.modal .cancel{background:var(--bg);color:var(--ink)}
.modal .confirm{background:var(--blue);color:#fff}
.modal .confirm.red{background:var(--red)}
.modal .confirm.green{background:var(--green)}
.modal .confirm.amber{background:var(--amber)}
.filterbar{display:flex;gap:8px;margin-bottom:12px}
.searchbar{margin-bottom:12px}
.refresh{border:none;background:none;font-size:20px;cursor:pointer;padding:4px;position:relative}
#cal-badge{position:absolute;top:0;right:0;background:var(--red);color:#fff;font-size:10px;padding:1px 5px;min-width:14px;text-align:center}

/* login page — new, the original had no login screen since Apps Script handled auth implicitly */
.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;width:100%;max-width:340px}
.login-card h1{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--blue);margin-bottom:6px}
.login-card p{font-size:13px;color:var(--muted);margin-bottom:16px}
.login-card button{width:100%;margin-top:12px;padding:12px;border:none;border-radius:10px;background:var(--blue);color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.login-msg{font-size:13px;margin-top:12px;text-align:center}
.login-msg.err{color:var(--red)}
.login-msg.ok{color:var(--green)}

/* module placeholders (Dispatching, Job Costing) --------------------------- */
.comingsoon{text-align:center;padding:60px 20px;color:var(--muted)}
.comingsoon .ic-lg svg{width:40px;height:40px}
.comingsoon h2{color:var(--ink);margin:12px 0 6px;font-size:18px}

/* home / landing page --------------------------------------------------------- */
.home-greeting{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:14px}
.quicktasks .qt-item{cursor:pointer}

/* admin ---------------------------------------------------------------------- */
.adminhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.adminhead h2{font-size:16px}
#admin-settings h2{font-size:16px;margin-bottom:12px}
.adminform{max-width:420px}
.adminform label{font-size:12px;color:var(--muted);display:block;margin:10px 0 4px}
.adminform .save{margin-top:16px;padding:11px 18px;border:none;border-radius:10px;background:var(--blue);color:#fff;
  font-size:14px;font-weight:700;cursor:pointer}
.userrole{background:var(--tint-neutral);color:var(--muted);text-transform:capitalize}
.userrole.admin{background:var(--tint-blue);color:var(--blue)}
.logopreview{margin:6px 0}
.logopreview img{max-height:60px;max-width:220px;object-fit:contain;display:block}
.logopreview .empty{padding:0;text-align:left;font-size:12px}
.colorrow{display:flex;align-items:center;gap:10px;margin-top:4px}
.colorrow input[type=color]{width:48px;height:36px;padding:2px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);cursor:pointer}
.colorrow .save{margin-top:0;padding:8px 14px;font-size:13px}

/* Dispatching module --------------------------------------------------------- */
.dp-kstrip{margin:0 0 12px}
#dp-toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;
  padding:9px 16px;border-radius:99px;font-size:13px;z-index:40;opacity:0;pointer-events:none;transition:opacity .25s}
#dp-toast.show{opacity:1}
.dp-card.dp-new{border-left:4px solid var(--red)}
.dp-candsection{margin-bottom:16px}
.dp-candidate{border-left:4px solid var(--amber)}
.badge.dp-st-New{background:var(--tint-red);color:var(--red)}
.badge.dp-st-Scheduled{background:var(--tint-green);color:var(--green)}
.badge.dp-st-InProgress{background:var(--tint-blue);color:var(--blue)}
.badge.dp-st-Completed{background:var(--tint-neutral);color:var(--muted)}
.badge.dp-st-Cancelled{background:var(--tint-neutral-strong);color:var(--dead)}
.dp-schedrow{display:flex;gap:8px;margin-top:10px}
.dp-schedrow .dp-addr,.dp-schedrow .dp-quote{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 10px;
  font-size:13px;background:var(--bg);color:var(--ink)}
.dp-btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:8px 12px;
  font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.dp-btn:active{filter:brightness(.95)}
.dp-btn.on{background:var(--tint-blue);color:var(--blue);border-color:var(--tint-blue-line)}
.dp-sched-btn{background:var(--tint-green);color:var(--green);border-color:var(--tint-green-line)}
.dp-book-btn{background:var(--green);color:#fff;border-color:var(--green)}
.dp-route{background:var(--tint-green);color:var(--green);border-color:var(--tint-green-line);text-decoration:none;
  font-size:11px;padding:3px 9px;text-transform:none;letter-spacing:0;margin-left:6px}
.dp-selrow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.dp-selrow select{border:1px solid var(--line);border-radius:9px;padding:7px 8px;font-size:12px;
  background:var(--bg);color:var(--ink);min-width:0}
.dp-crm{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);font-weight:600;
  cursor:pointer;margin-top:10px}
.dp-crm input{width:15px;height:15px;accent-color:var(--green);cursor:pointer}
.dp-check{font-size:12.5px;line-height:1.55;background:var(--bg);border:1px solid var(--line);border-radius:9px;
  padding:9px 10px;margin-top:12px;min-height:20px;color:var(--muted)}
.dp-conflict{color:var(--red);font-weight:600;margin-bottom:4px}
.dp-note{color:var(--muted);margin-bottom:3px}
/* rep day/week calendar */
.dp-calbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.dp-calbar input[type=date],.dp-calbar select{border:1px solid var(--line);border-radius:9px;padding:7px 9px;
  font-size:13px;background:var(--card);color:var(--ink)}
.dp-cal-addrinput{flex:1;min-width:170px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;
  font-size:13px;background:var(--card);color:var(--ink)}
.dp-seg{display:flex;border-radius:10px;overflow:hidden}
.dp-seg .dp-btn{border-radius:0}
.dp-calwrap{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:72vh}
.dp-calhead{display:flex;position:sticky;top:0;background:var(--card);z-index:5;border-bottom:1px solid var(--line);min-width:fit-content}
.dp-calhead .dp-gut{width:52px;flex:none}
.dp-rh{flex:1;text-align:center;font-weight:700;padding:9px 4px;border-left:1px solid var(--line);
  font-size:12.5px;min-width:120px;color:var(--ink)}
.dp-rh-branch{font-weight:600;font-size:10px;color:var(--muted);letter-spacing:.3px}
.dp-rh-off{font-size:9.5px;font-weight:700;color:var(--red)}
.dp-calbody{display:flex;min-width:fit-content}
.dp-calbody .dp-gut{width:52px;flex:none;position:relative}
.dp-calcol{flex:1;position:relative;border-left:1px solid var(--line);cursor:copy;min-width:120px}
.dp-offcol{cursor:not-allowed;background:repeating-linear-gradient(45deg,var(--bg),var(--bg) 9px,var(--tint-neutral-strong) 9px,var(--tint-neutral-strong) 18px)}
.dp-hourline{position:absolute;left:0;right:0;border-top:1px solid var(--line)}
.dp-halfline{position:absolute;left:0;right:0;border-top:1px dashed var(--line);opacity:.55}
.dp-hourlbl{position:absolute;right:6px;font-size:10.5px;color:var(--muted);transform:translateY(-6px)}
.dp-evtblk{position:absolute;border-radius:6px;padding:2px 5px;font-size:11px;line-height:1.25;overflow:hidden;
  color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.18)}
.dp-evtblk.busy{background:#8190a3}
.dp-evtblk.closest{outline:2.5px solid var(--green);outline-offset:1px}
.dp-wkblk{position:absolute;border-radius:5px;padding:1px 4px;font-size:10px;line-height:1.25;overflow:hidden;
  color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.4)}
.dp-drvbadge{position:absolute;right:3px;bottom:2px;background:rgba(255,255,255,.94);color:#1f2733;
  font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:5px;pointer-events:none;line-height:1.35}
.dp-calsum{background:var(--tint-green);border:1px solid var(--tint-green-line);border-radius:10px;
  padding:9px 12px;margin-bottom:10px;font-size:13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dp-calsum a{color:var(--red);font-weight:600}
.dp-scheduling{background:var(--tint-blue);border-color:var(--tint-blue-line)}
.dp-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:8px;font-size:12.5px}
.dp-legchip{display:inline-flex;align-items:center;gap:6px}
.dp-legdot{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.dp-evt-row .chip{border-radius:4px;padding-left:8px}
/* admin: per-user dispatch attributes + branches editor */
.userdispatch{display:flex;gap:8px;margin-top:8px;align-items:center}
.userdispatch select{flex:1;border:1px solid var(--line);border-radius:9px;padding:7px 8px;font-size:12.5px;
  background:var(--bg);color:var(--ink)}
.userdispatch input[type=color]{width:40px;height:32px;padding:2px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);cursor:pointer}
.branchrow{padding:10px 12px}
#dp-m-body textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;
  font-size:14px;background:var(--card);color:var(--ink)}
#dp-m-body input,#dp-m-body select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 10px;
  font-size:14px;background:var(--card);color:var(--ink)}
#dp-m-body input[type=checkbox]{width:auto}
#dp-m-body{max-height:60vh;overflow-y:auto}
/* the global `select,input{width:100%}` rule breaks inline toolbars — scope it back */
.dp-calbar select,.dp-calbar input[type=date]{width:auto}
.dp-cal-addrinput{width:auto}
.userdispatch select{width:auto}
