:root {
  --admin-control-height:42px;
  --admin-shell-bg: rgba(255,255,255,.97);
  --admin-shell-border: #dbe5ea;
  --admin-shell-text: #071820;
  --admin-shell-muted: #64748b;
  --admin-shell-accent: #0d718a;
  --admin-shell-soft: #eaf7fa;
}
[data-theme="dark"] {
  --admin-shell-bg: rgba(7,24,32,.97);
  --admin-shell-border: #24414d;
  --admin-shell-text: #f0f9fb;
  --admin-shell-muted: #a8c0c9;
  --admin-shell-accent: #42aec5;
  --admin-shell-soft: #12323d;
}
/* v309: shared admin chrome must render identically on pages with or without
   Tailwind Preflight. Keep its box model self-contained instead of inheriting
   Tailwind's global border-box reset on ordinary workspace pages only. */
.admin-shared-header,.admin-shared-header *,
.admin-sidebar,.admin-sidebar *,
.admin-shared-footer,.admin-shared-footer * { box-sizing:border-box; }
.admin-layout-enabled { --admin-header-height:70px; --admin-sidebar-width:230px; padding-top:var(--admin-header-height); padding-left:var(--admin-sidebar-width); transition:padding-left .2s ease; }
.admin-layout-enabled.admin-sidebar-collapsed { --admin-sidebar-width:72px; }

/* v402: shared admin density. Keep ordinary controls compact and use one
   geometry token so adjacent fields align instead of mixing DaisyUI defaults. */
.admin-layout-enabled main :where(.input:not(.input-xs):not(.input-sm):not(.input-lg),.select:not(.select-xs):not(.select-sm):not(.select-lg)){
  height:var(--admin-control-height);
  min-height:var(--admin-control-height);
  box-sizing:border-box;
}
.admin-layout-enabled main :where(.btn:not(.btn-xs):not(.btn-sm):not(.btn-lg)){
  min-height:var(--admin-control-height);
  height:auto;
  padding-top:.42rem;
  padding-bottom:.42rem;
}
.admin-layout-enabled main textarea.textarea:not(.textarea-xs):not(.textarea-sm):not(.textarea-lg){
  min-height:72px;
}
.admin-shared-header { position:fixed; top:0; left:0; z-index:80; width:100%; height:var(--admin-header-height,70px); background:var(--admin-shell-bg); border-bottom:1px solid var(--admin-shell-border); backdrop-filter:blur(14px); box-shadow:0 7px 24px rgba(7,24,32,.06); }
.admin-shared-header__inner { height:100%; padding:.55rem 1rem; display:flex; align-items:center; gap:.8rem; }
.admin-sidebar-toggle { display:none; width:38px; height:38px; flex:none; border:1px solid var(--admin-shell-border); border-radius:.7rem; background:var(--admin-shell-soft); color:var(--admin-shell-text); font-size:1.1rem; cursor:pointer; }
.admin-shared-brand { order:0; min-width:0; display:flex; align-items:center; gap:.7rem; color:var(--admin-shell-text); text-decoration:none; flex:0 1 auto; }
.admin-shared-brand .bm-logo { width:58px; height:58px; object-fit:contain; }
.admin-shared-brand__copy { min-width:0; display:block; }
.admin-shared-brand__copy strong { display:block; font-size:clamp(.9rem,1.45vw,1.2rem); line-height:1.12; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-shared-brand__copy small { display:block; margin-top:.2rem; color:var(--admin-shell-muted); font-size:.7rem; white-space:nowrap; }
.admin-nav-link { display:flex; align-items:center; gap:.55rem; min-height:36px; padding:.38rem .65rem; border-radius:.65rem; color:var(--admin-shell-muted); font-size:.78rem; font-weight:800; line-height:1.2; text-decoration:none; white-space:nowrap; transition:.16s ease; }
.admin-nav-link>span:first-child { width:22px; text-align:center; font-size:1rem; }
.admin-nav-link .admin-nav-icon { display:inline-flex; align-items:center; justify-content:center; }
.admin-nav-link .admin-nav-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.admin-nav-link:hover,.admin-nav-link.is-active { color:var(--admin-shell-text); background:var(--admin-shell-soft); }
.admin-nav-link.is-active { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--admin-shell-accent) 35%,transparent); }
.admin-shared-tools { margin-left:auto; display:flex; align-items:center; gap:.45rem; flex:none; }
.admin-bmui-version-current { color:var(--admin-shell-muted); font-size:.58rem; font-weight:900; letter-spacing:.04em; white-space:nowrap; }
.admin-bmui-version-link { display:inline-flex; align-items:center; justify-content:center; height:30px; padding:0 .6rem; border:1px solid color-mix(in srgb,var(--admin-shell-accent) 38%,var(--admin-shell-border)); border-radius:.65rem; background:color-mix(in srgb,var(--admin-shell-accent) 8%,var(--admin-shell-bg)); color:var(--admin-shell-accent); font-size:.62rem; font-weight:900; letter-spacing:.02em; text-decoration:none; white-space:nowrap; }
.admin-bmui-version-link:hover { background:var(--admin-shell-accent); color:#fff; }
.admin-sidebar { box-sizing:border-box; position:fixed; z-index:75; top:var(--admin-header-height,70px); bottom:0; left:0; width:var(--admin-sidebar-width,230px); padding:.75rem .65rem; overflow-y:auto; background:var(--admin-shell-bg); border-right:1px solid var(--admin-shell-border); transition:width .2s ease,padding .2s ease; }
.admin-sidebar-collapse { width:100%; min-height:32px; margin:0 0 .45rem; padding:.3rem .6rem; display:flex; align-items:center; justify-content:flex-end; gap:.45rem; border:1px solid var(--admin-shell-border); border-radius:.65rem; background:var(--admin-shell-soft); color:var(--admin-shell-muted); font-size:.68rem; font-weight:850; cursor:pointer; white-space:nowrap; overflow:hidden; }
.admin-sidebar-collapse:hover { color:var(--admin-shell-text); border-color:color-mix(in srgb,var(--admin-shell-accent) 38%,var(--admin-shell-border)); }
.admin-sidebar-collapse [data-admin-sidebar-collapse-icon] { font-size:1.25rem; line-height:1; }
.admin-sidebar-collapsed .admin-sidebar { padding-inline:.55rem; overflow-x:hidden; }
.admin-sidebar-collapsed .admin-sidebar-collapse { justify-content:center; padding-inline:0; }
.admin-sidebar-collapsed .admin-sidebar-collapse span:not([data-admin-sidebar-collapse-icon]),
.admin-sidebar-collapsed .admin-sidebar__heading,
.admin-sidebar-collapsed .admin-nav-link > span:last-child { display:none; }
.admin-sidebar-collapsed .admin-nav-link { justify-content:center; gap:0; padding-inline:0; }
.admin-sidebar-collapsed .admin-nav-link > span:first-child { width:auto; font-size:1.12rem; }
.admin-sidebar__heading { padding:.28rem .65rem; color:var(--admin-shell-muted); font-size:.62rem; font-weight:900; line-height:1.2; letter-spacing:.11em; text-transform:uppercase; }
.admin-sidebar__version-switch{margin:.05rem 0 .5rem}
.admin-v10-switch{border:1px solid color-mix(in srgb,var(--admin-shell-accent) 36%,var(--admin-shell-border));background:color-mix(in srgb,var(--admin-shell-accent) 8%,var(--admin-shell-bg));color:var(--admin-shell-accent)!important}
.admin-v10-switch:hover{background:var(--admin-shell-accent);color:#fff!important}
.admin-sidebar__nav { display:grid; gap:.08rem; margin-bottom:.58rem; }
.admin-sidebar-backdrop { display:none; }
.admin-shared-footer { box-sizing:border-box; min-width:0; display:flex; justify-content:space-between; gap:1rem; margin:1rem 1rem .6rem; padding:.65rem 0; border-top:1px solid var(--admin-shell-border); color:var(--admin-shell-muted); font-size:.7rem; }
.admin-language { display:flex; overflow:hidden; border:1px solid var(--admin-shell-border); border-radius:.65rem; background:var(--admin-shell-bg); }
.admin-language button { border:0; background:transparent; color:var(--admin-shell-muted); min-width:32px; height:30px; padding:0 .4rem; font-size:.68rem; font-weight:900; cursor:pointer; }
.admin-language button[aria-pressed="true"] { color:white; background:var(--admin-shell-accent); }
.admin-schedule-editor { min-width:270px; display:grid; gap:.55rem; }
.admin-schedule-editor__modes { min-width:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.38rem; margin:0; padding:0; border:0; }
.admin-schedule-editor__mode { display:flex; align-items:center; justify-content:center; gap:.32rem; min-width:0; min-height:40px; padding:.42rem .45rem; border:1px solid var(--admin-shell-border); border-radius:.7rem; background:var(--admin-shell-bg); color:var(--admin-shell-muted); font-size:.73rem; font-weight:900; cursor:pointer; }
.admin-schedule-editor__mode input { flex:none; width:14px; height:14px; margin:0; accent-color:var(--admin-shell-accent); cursor:pointer; }
.admin-schedule-editor__mode:has(input:checked) { border-color:color-mix(in srgb,var(--admin-shell-accent) 58%,var(--admin-shell-border)); background:color-mix(in srgb,var(--admin-shell-accent) 8%,var(--admin-shell-bg)); color:var(--admin-shell-text); box-shadow:0 1px 3px rgba(7,24,32,.07); }
.admin-schedule-editor__panel { border:1px solid var(--admin-shell-border); border-left:4px solid #dc2626; border-radius:.9rem; padding:.72rem; background:var(--admin-shell-bg); overflow:visible; }
.admin-schedule-editor__panel[hidden] { display:none; }
.admin-schedule-editor__panel--rework { border-left-color:#0f766e; }
.admin-schedule-editor__panel--none { border-left-color:#94a3b8; padding:.8rem; }
.admin-schedule-editor__empty-choice { margin:0; color:var(--admin-shell-muted); font-size:.76rem; font-weight:700; line-height:1.5; }
.admin-schedule-editor__note-field { margin-top:.55rem; }
.admin-schedule-editor__note-field textarea { width:100%; min-height:66px; box-sizing:border-box; resize:vertical; padding:.55rem .65rem; border:1px solid var(--admin-shell-border); border-radius:.65rem; background:var(--admin-shell-bg); color:var(--admin-shell-text); font:inherit; font-size:.8rem; line-height:1.45; }
.admin-schedule-editor__inputs { display:grid; grid-template-columns:minmax(220px,1.5fr) minmax(140px,.8fr); gap:.65rem; align-items:end; }
.admin-schedule-editor__inputs--install { grid-template-columns:minmax(220px,1.45fr) minmax(86px,.48fr) minmax(140px,.8fr); }
.admin-schedule-editor__work-days-field input { font-weight:900; text-align:center; }
.admin-schedule-editor__field { min-width:0; display:grid; gap:.32rem; }
.admin-schedule-editor__field-label { color:var(--admin-shell-muted); font-size:.72rem; line-height:1.2; font-weight:900; }
.admin-schedule-editor__datetime { min-width:0; height:var(--admin-control-height); box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(92px,.75fr); align-items:stretch; gap:.22rem; padding:3px; border:1px solid var(--admin-shell-border); border-radius:.72rem; background:var(--admin-shell-soft); }
.admin-schedule-editor__inputs input,.admin-schedule-editor__inputs select { min-width:0; width:100%; height:var(--admin-control-height); min-height:var(--admin-control-height); box-sizing:border-box; padding:.5rem .65rem; border:1px solid var(--admin-shell-border); border-radius:.58rem; background:var(--admin-shell-bg); color:var(--admin-shell-text); font-size:.86rem; line-height:1.2; }
.admin-schedule-editor__datetime input,.admin-schedule-editor__datetime select { height:100%; min-height:0; padding-block:0; border-color:transparent; }
.admin-schedule-editor__money { min-width:0; height:var(--admin-control-height); min-height:var(--admin-control-height); box-sizing:border-box; display:flex; align-items:center; overflow:hidden; border:1px solid var(--admin-shell-border); border-radius:.72rem; background:var(--admin-shell-bg); }
.admin-schedule-editor__money > span { padding-left:.72rem; color:var(--admin-shell-muted); font-size:.9rem; font-weight:900; }
.admin-schedule-editor__money input { height:100%; min-height:0; border:0; border-radius:0; padding-left:.4rem; font-size:.9rem; font-weight:800; }
.admin-schedule-editor__inputs input.is-saving { opacity:.55; }
.admin-schedule-editor.is-saving { opacity:.68; }
.admin-staff-multiselect { position:relative; min-width:0; margin-top:.35rem; }
.admin-staff-multiselect.is-open { z-index:90; }
.admin-staff-multiselect__button { width:100%; min-width:0; height:var(--admin-control-height); min-height:var(--admin-control-height); display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.55rem .7rem; border:1px solid var(--admin-shell-border); border-radius:.7rem; background:var(--admin-shell-bg); color:var(--admin-shell-text); font-size:.82rem; font-weight:800; text-align:left; cursor:pointer; }
.admin-staff-multiselect__button [data-staff-selection-label] { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-staff-multiselect__menu { position:absolute; z-index:91; top:100%; left:0; right:0; width:100%; min-width:0; max-width:100%; box-sizing:border-box; margin-top:.3rem; max-height:240px; overflow-x:hidden; overflow-y:auto; border:1px solid var(--admin-shell-border); border-radius:.65rem; background:var(--admin-shell-bg); box-shadow:0 10px 25px rgba(7,24,32,.13); }
.admin-staff-multiselect__menu[hidden] { display:none; }
.admin-staff-multiselect__menu label { display:flex; align-items:flex-start; gap:.5rem; padding:.48rem .55rem; border-bottom:1px solid color-mix(in srgb,var(--admin-shell-border) 70%,transparent); cursor:pointer; }
.admin-staff-multiselect__menu label:last-child { border-bottom:0; }
.admin-staff-multiselect__menu label:hover { background:var(--admin-shell-soft); }
.admin-staff-multiselect__menu label.is-disabled { opacity:.46; cursor:not-allowed; }
.admin-staff-multiselect__menu input { margin-top:.15rem; accent-color:var(--admin-shell-accent); }
.admin-staff-multiselect__menu span { min-width:0; }
.admin-staff-multiselect__menu strong,.admin-staff-multiselect__menu small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-staff-multiselect__menu strong { color:var(--admin-shell-text); font-size:.68rem; }
.admin-staff-multiselect__menu small { margin-top:.1rem; color:var(--admin-shell-muted); font-size:.58rem; }
.admin-staff-multiselect__empty { display:block; padding:.7rem; color:var(--admin-shell-accent); font-size:.65rem; font-weight:850; text-align:center; }

/* Shared compact date/time picker used by dynamic admin forms that cannot rely on native/Flatpickr popups. */
.admin-work-compact-picker[hidden]{display:none!important}.admin-work-compact-picker{position:absolute;z-index:80;box-sizing:border-box;padding:10px;border:1px solid var(--admin-shell-border,#d7e3e8);border-radius:14px;background:var(--admin-shell-bg,#fff);color:var(--admin-shell-text,#10252d);box-shadow:0 18px 42px rgba(2,18,27,.3)}.admin-work-compact-picker__header{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:6px}.admin-work-compact-picker__header strong{text-align:center;font-size:13px;font-weight:950}.admin-work-compact-picker__header button,.admin-work-compact-picker__days button,.admin-work-compact-picker__footer button{border:0;border-radius:9px;background:var(--admin-shell-soft,#f4f8fa);color:inherit;font:inherit;font-weight:850;cursor:pointer}.admin-work-compact-picker__header button{height:34px;font-size:22px;line-height:1}.admin-work-compact-picker__weekdays,.admin-work-compact-picker__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.admin-work-compact-picker__weekdays{margin-top:8px}.admin-work-compact-picker__weekdays span{text-align:center;color:var(--admin-shell-muted,#64748b);font-size:10px;font-weight:900}.admin-work-compact-picker__days{margin-top:3px}.admin-work-compact-picker__days button{aspect-ratio:1;min-height:32px;background:transparent;font-size:12px}.admin-work-compact-picker__days button:hover{background:var(--admin-shell-soft,#f4f8fa)}.admin-work-compact-picker__days button.is-outside{opacity:.38}.admin-work-compact-picker__days button.is-today{outline:1px solid #14b8a6}.admin-work-compact-picker__days button.is-selected{background:#0f766e;color:#fff;outline:none}.admin-work-compact-picker__footer{display:flex;justify-content:flex-end;gap:7px;margin-top:9px;padding-top:8px;border-top:1px solid var(--admin-shell-border,#d7e3e8)}.admin-work-compact-picker__footer button{min-height:34px;padding:6px 11px;font-size:11px}.admin-work-compact-picker__footer button.is-primary{background:#0f766e;color:#fff}.admin-work-compact-picker__time{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.admin-work-compact-picker__time select{width:100%;min-height:44px;border:1px solid var(--admin-shell-border,#d7e3e8);border-radius:10px;background:var(--admin-shell-bg,#fff);color:inherit;padding:6px 8px;font-size:16px;font-weight:850}.admin-work-compact-picker__time>strong{font-size:20px}@media(max-width:760px){.admin-work-compact-picker{left:10px!important;right:10px;width:auto!important;max-width:none}.admin-work-compact-picker__days button{min-height:36px;font-size:13px}}
.admin-schedule-editor__legacy { margin:.2rem 0 .05rem; color:#b45309; font-size:.7rem; line-height:1.45; }
.admin-schedule-editor__status { margin:0; color:var(--admin-shell-muted); font-size:.7rem; }
.admin-schedule-editor__status.is-success { color:#15803d; }
.admin-schedule-editor__status.is-error { color:#dc2626; }
.admin-schedule-editor__notify { width:100%; min-height:40px; margin-top:.7rem; border:0; border-radius:.68rem; background:#0e7490; color:#fff; font-size:.76rem; font-weight:900; cursor:pointer; transition:background .16s ease,opacity .16s ease; }
.admin-schedule-editor__notify:hover { background:#155e75; }
.admin-schedule-editor__notify:disabled { opacity:.55; cursor:wait; }
.admin-schedule-editor.is-notifying input,.admin-schedule-editor.is-notifying button { pointer-events:none; opacity:.62; }
@media (max-width:900px) {
  .admin-layout-enabled { --admin-control-height:44px; padding-left:0; }
  .admin-nav-link { min-height:40px; padding:.45rem .65rem; }
  .admin-layout-enabled.admin-sidebar-collapsed { --admin-sidebar-width:230px; }
  .admin-sidebar-toggle { display:block; width:44px; height:44px; }
  .admin-sidebar-collapse { display:none; }
  .admin-sidebar { visibility:hidden; transform:translateX(-105%); transition:transform .2s ease,visibility .2s; box-shadow:16px 0 34px rgba(7,24,32,.22); overscroll-behavior:contain; padding-bottom:max(1rem,env(safe-area-inset-bottom)); }
  .admin-sidebar-open .admin-sidebar { visibility:visible; transform:translateX(0); }
  .admin-sidebar-open { overflow:hidden; }
  .admin-sidebar-backdrop { position:fixed; z-index:72; inset:var(--admin-header-height,70px) 0 0; width:100%; height:auto; border:0; background:rgba(7,24,32,.42); touch-action:none; }
  .admin-sidebar-open .admin-sidebar-backdrop { display:block; }
}
@media (max-width:640px) {
  .admin-layout-enabled { --admin-header-height:60px; }
  .admin-shared-header__inner { padding:.45rem .6rem; }
  .admin-shared-brand .bm-logo { width:44px; height:44px; }
  .admin-shared-brand__copy strong { font-size:.78rem; }
  .admin-shared-brand__copy small,.admin-tool-label,.admin-bmui-version-current { display:none; }
  .admin-shared-tools { gap:.25rem; }
  .admin-shared-header__inner { gap:.4rem; }
  .admin-language button { min-width:36px; height:40px; }
  .admin-shared-tools .btn { width:40px; min-width:40px; height:40px; min-height:40px; padding:0; }
  .admin-nav-link { min-height:44px; padding:.5rem .65rem; font-size:.8rem; }
}
@media print {
  .admin-shared-header,.admin-sidebar,.admin-sidebar-backdrop,.admin-shared-footer { display:none !important; }
  .admin-layout-enabled { padding:0 !important; }
}

/* v402 compact customer/schedule editor. The form width, not the number of
   fields, should determine page length. */
.admin-lead-form{--admin-lead-gap:.6rem}
.admin-lead-work-section{display:grid;gap:var(--admin-lead-gap);padding:.75rem}
.admin-lead-edit-meta{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(150px,.75fr);gap:var(--admin-lead-gap);align-items:end}
.admin-lead-edit-schedules{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--admin-lead-gap);align-items:stretch}
.admin-lead-schedule-card{min-width:0;box-sizing:border-box;display:grid;gap:.5rem;padding:.65rem}
.admin-lead-schedule-card>h3{font-size:.9rem;line-height:1.2}
.admin-lead-schedule-card .form-control>.label-text{font-size:.72rem;line-height:1.2}
.admin-lead-staff-heading{min-width:0;display:flex;align-items:center;gap:.4rem;margin-bottom:.18rem;line-height:1.2}
.admin-lead-staff-heading>.label-text{flex:0 0 auto;font-size:.72rem}
.admin-lead-legacy-staff{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b45309;font-size:.62rem;font-weight:800}
.admin-lead-schedule-card .admin-staff-multiselect{margin-top:.18rem}
.admin-lead-survey-inputs--edit{grid-template-columns:minmax(0,1fr)}
.admin-lead-install-inputs--edit{grid-template-columns:minmax(0,1fr) 82px}
.admin-lead-notes-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(210px,.8fr);gap:var(--admin-lead-gap);align-items:stretch}
.admin-lead-notes-grid>.form-control,.admin-lead-upload{min-height:72px;box-sizing:border-box}
.admin-lead-notes{display:block;width:100%;height:100%!important;min-height:72px!important;box-sizing:border-box;resize:none}
.admin-lead-upload{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem .55rem;padding:.5rem .65rem!important}
.admin-lead-upload__title{min-width:0;font-size:.7rem;line-height:1.25}
.admin-lead-upload__action{height:32px;min-height:32px;padding:0 .65rem!important;font-size:.69rem;white-space:nowrap}
.admin-lead-upload>[x-show]{grid-column:1/-1;margin:0!important;line-height:1.2}
@media(max-width:720px){
  .admin-lead-edit-meta,.admin-lead-edit-schedules,.admin-lead-notes-grid{grid-template-columns:minmax(0,1fr)}
  .admin-lead-work-section{padding:.6rem}
}
@media(max-width:460px){
  .admin-lead-upload{grid-template-columns:minmax(0,1fr) auto}
  .admin-lead-install-inputs--edit{grid-template-columns:minmax(0,1fr) 72px!important}
  .admin-lead-install-inputs--edit>.admin-schedule-editor__field:first-child{grid-column:auto!important}
}

/* v76 reusable admin toast + inline image viewer */
.admin-toast-root { position:fixed; z-index:140; top:calc(var(--admin-header-height,70px) + .75rem); right:.8rem; width:min(92vw,360px); display:grid; gap:.5rem; pointer-events:none; }
.admin-toast { transform:translateY(-8px); opacity:0; padding:.72rem .9rem; border:1px solid var(--admin-shell-border); border-radius:.8rem; background:var(--admin-shell-bg); color:var(--admin-shell-text); box-shadow:0 14px 34px rgba(7,24,32,.18); font-size:.72rem; font-weight:850; line-height:1.4; transition:opacity .18s ease,transform .18s ease; backdrop-filter:blur(12px); }
.admin-toast.is-visible { transform:translateY(0); opacity:1; }
.admin-toast--success { border-left:4px solid #16a34a; }
.admin-toast--error { border-left:4px solid #dc2626; }
.admin-toast--warning { border-left:4px solid #d97706; }
.admin-toast--info { border-left:4px solid var(--admin-shell-accent); }
.admin-image-viewer-open { overflow:hidden; }
.admin-image-viewer[hidden] { display:none !important; }
.admin-image-viewer { position:fixed; z-index:150; inset:0; display:grid; place-items:center; background:rgba(2,8,12,.9); padding:1rem; touch-action:none; overscroll-behavior:contain; }
.admin-image-viewer__stage { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; touch-action:none; cursor:zoom-out; }
.admin-image-viewer__image { max-width:min(94vw,1500px); max-height:90vh; object-fit:contain; user-select:none; -webkit-user-drag:none; transform-origin:center center; will-change:transform; }
.admin-image-viewer__close,.admin-image-viewer__nav { position:absolute; z-index:3; display:grid; place-items:center; border:1px solid rgba(255,255,255,.42); background:rgba(2,8,12,.62); color:white; cursor:pointer; backdrop-filter:blur(8px); }
.admin-image-viewer__close { top:max(.75rem,env(safe-area-inset-top)); right:max(.75rem,env(safe-area-inset-right)); width:42px; height:42px; border-radius:999px; font-size:1.8rem; line-height:1; }
.admin-image-viewer__nav { top:50%; width:50px; height:68px; transform:translateY(-50%); border-radius:14px; font-size:2.4rem; line-height:1; }
.admin-image-viewer__nav--prev { left:max(1rem,env(safe-area-inset-left)); }
.admin-image-viewer__nav--next { right:max(1rem,env(safe-area-inset-right)); }
.admin-image-viewer__nav[hidden],.admin-image-viewer__counter[hidden] { display:none !important; }
.admin-image-viewer__counter { position:absolute; z-index:3; top:max(.9rem,env(safe-area-inset-top)); left:50%; transform:translateX(-50%); min-width:62px; padding:.42rem .7rem; border-radius:999px; background:rgba(2,8,12,.68); color:#fff; font-size:.72rem; font-weight:900; text-align:center; pointer-events:none; }
.admin-image-viewer__hint { position:absolute; z-index:2; left:50%; bottom:max(.8rem,env(safe-area-inset-bottom)); transform:translateX(-50%); max-width:92vw; padding:.4rem .7rem; border-radius:999px; background:rgba(2,8,12,.68); color:#fff; font-size:.62rem; font-weight:800; white-space:nowrap; pointer-events:none; }
[data-admin-image-src],.admin-image-trigger { cursor:zoom-in; }
[data-admin-image-src]:focus-visible,.admin-image-viewer__close:focus-visible,.admin-image-viewer__nav:focus-visible { outline:2px solid #67e8f9; outline-offset:3px; }
.admin-image-viewer__close:hover,.admin-image-viewer__nav:hover { background:rgba(15,23,42,.88); }

.admin-internal-media-thumb{position:relative;display:block;width:100%;aspect-ratio:1/1;overflow:hidden;border:0;border-radius:.65rem;background:#0f172a;cursor:zoom-in}
.admin-internal-media-thumb img,.admin-internal-media-thumb video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.admin-internal-media-thumb__play{position:absolute;left:50%;top:50%;display:grid;width:42px;height:42px;place-items:center;transform:translate(-50%,-50%);border-radius:999px;background:rgba(2,8,12,.7);color:#fff;font-size:17px;box-shadow:0 4px 18px rgba(0,0,0,.28);pointer-events:none}
.admin-internal-media-viewer{box-sizing:border-box;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(2,8,12,.96);color:#fff;overflow:hidden}
.admin-internal-media-viewer::backdrop{background:rgba(2,8,12,.78)}
.admin-internal-media-viewer__stage{position:absolute;inset:0;display:grid;place-items:center;padding:64px 14px 74px}
.admin-internal-media-viewer__image,.admin-internal-media-viewer__video{display:block;max-width:96vw;max-height:calc(100dvh - 150px);object-fit:contain;background:#000}
.admin-internal-media-viewer__image[hidden],.admin-internal-media-viewer__video[hidden]{display:none!important}
.admin-internal-media-viewer__video{width:auto;height:auto}
.admin-internal-media-viewer__close{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(15,23,42,.76);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.admin-internal-media-viewer__footer{position:absolute;z-index:2;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.admin-internal-media-viewer__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.admin-internal-media-viewer__original{flex:0 0 auto;border-radius:999px;background:rgba(255,255,255,.14);padding:8px 12px;color:#fff;font-size:12px;font-weight:900;text-decoration:none}
img[data-admin-image-src].admin-image-trigger { user-select:none; -webkit-user-drag:none; }
@media (max-width:640px) { .admin-toast-root { top:calc(var(--admin-header-height,60px) + .55rem); right:.55rem; } .admin-image-viewer { padding:.4rem; } .admin-image-viewer__image { max-width:98vw; max-height:88vh; } .admin-image-viewer__nav { display:none!important; } .admin-image-viewer__counter { top:max(.65rem,env(safe-area-inset-top)); } .admin-image-viewer__hint { font-size:.56rem; } }
@media (max-width:760px) { .admin-image-viewer__nav { display:none!important; } }

@media (max-width: 640px) {
  .admin-schedule-editor { min-width:0; }
  .admin-schedule-editor__inputs { grid-template-columns:minmax(0,1fr); }
  .admin-schedule-editor__inputs--install { grid-template-columns:minmax(0,1fr); }
  .admin-schedule-editor__datetime { grid-template-columns:minmax(0,1.45fr) minmax(88px,.75fr); }
}

/* v82 shared work scheduling fields */
.admin-schedule-editor .flatpickr-input[readonly],
.admin-lead-schedule-inputs .flatpickr-input[readonly] {
  background:var(--admin-shell-bg);
  color:var(--admin-shell-text);
  cursor:pointer;
}
.admin-lead-schedule-inputs { width:100%; }
@media (max-width:640px) {
  .admin-lead-schedule-inputs { grid-template-columns:minmax(0,1fr); }
}
.admin-schedule-editor__inputs input,
.admin-schedule-editor__inputs select,
.admin-schedule-editor__money,
.admin-staff-multiselect__button {
  box-sizing:border-box;
  font-family:inherit;
}
.admin-schedule-editor__datetime input,
.admin-schedule-editor__money input {
  font-variant-numeric:tabular-nums;
}

/* v83 admin lead scheduling + internal note uploads */
.admin-lead-offpeak-note {
  margin:.1rem 0 0;
  width:100%;
  color:#b45309;
  font-size:.7rem;
  line-height:1.45;
  font-weight:800;
}
[data-theme="dark"] .admin-lead-offpeak-note { color:#fbbf24; }

/* v96 account/role identity shown above permission-filtered navigation. */
.admin-sidebar__account{margin:0 8px 9px;padding:8px 9px;border:1px solid rgba(148,163,184,.28);border-radius:14px;background:rgba(248,250,252,.72);display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;cursor:default}
.admin-sidebar__account-icon{width:15px;height:15px;flex:0 0 15px;color:#0d718a}
.admin-sidebar__account-line{min-width:0;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap}
.admin-sidebar__account strong{min-width:0;max-width:46%;font-size:11px;line-height:1.25;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-sidebar__account-separator{flex:none;color:#94a3b8;font-size:10px}
.admin-sidebar__account-role{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.3;color:#64748b}
[data-theme="dark"] .admin-sidebar__account{background:rgba(15,23,42,.72);border-color:rgba(100,116,139,.38)}
[data-theme="dark"] .admin-sidebar__account-icon{color:#67e8f9}
[data-theme="dark"] .admin-sidebar__account strong{color:#e2e8f0}
[data-theme="dark"] .admin-sidebar__account-role{color:#94a3b8}
.admin-sidebar-collapsed .admin-sidebar__account{margin-inline:0;padding:9px 0;justify-content:center}
.admin-sidebar-collapsed .admin-sidebar__account-line{display:none}
.admin-sidebar-collapsed .admin-sidebar__account-icon{width:17px;height:17px;flex-basis:17px}

/* v99 real admin session login/logout */
.admin-logout-form { margin:0; }
.admin-logout-button { width:100%; border:0; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.admin-logout-button:hover,.admin-logout-button:focus-visible { color:#b91c1c; background:color-mix(in srgb,#fee2e2 70%,var(--admin-shell-bg)); outline:none; }
[data-theme="dark"] .admin-logout-button:hover,[data-theme="dark"] .admin-logout-button:focus-visible { color:#fecaca; background:rgba(127,29,29,.28); }
.admin-sidebar-collapsed .admin-logout-button { justify-content:center; gap:0; padding-inline:0; }
.admin-sidebar-collapsed .admin-logout-button > span:last-child { display:none; }
.admin-sidebar-collapsed .admin-logout-button > span:first-child { width:auto; font-size:1.12rem; }

.admin-login-page { min-height:100dvh; margin:0; background:radial-gradient(circle at 15% 12%,rgba(66,174,197,.16),transparent 34%),var(--admin-shell-soft); color:var(--admin-shell-text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.admin-login-shell { min-height:100dvh; display:grid; place-items:center; padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); }
.admin-login-card { width:min(100%,430px); padding:1.35rem; border:1px solid var(--admin-shell-border); border-radius:1.35rem; background:var(--admin-shell-bg); box-shadow:0 24px 70px rgba(7,24,32,.16); backdrop-filter:blur(18px); }
.admin-login-brand { display:flex; align-items:center; gap:.8rem; padding-bottom:1rem; border-bottom:1px solid var(--admin-shell-border); }
.admin-login-brand img { width:62px; height:62px; object-fit:contain; }
.admin-login-brand strong,.admin-login-brand span { display:block; }
.admin-login-brand strong { font-size:1rem; font-weight:950; }
.admin-login-brand span { margin-top:.18rem; color:var(--admin-shell-muted); font-size:.72rem; }
.admin-login-copy { padding:1.05rem 0 .8rem; }
.admin-login-copy p { margin:0; color:var(--admin-shell-accent); font-size:.64rem; font-weight:950; letter-spacing:.16em; }
.admin-login-copy h1 { margin:.18rem 0 .35rem; font-size:1.55rem; line-height:1.15; }
.admin-login-copy span { color:var(--admin-shell-muted); font-size:.76rem; line-height:1.55; }
.admin-login-notice { margin:.25rem 0 .8rem; padding:.7rem .8rem; border:1px solid var(--admin-shell-border); border-radius:.72rem; font-size:.72rem; font-weight:800; line-height:1.45; }
.admin-login-notice.is-success { border-color:#86efac; background:#f0fdf4; color:#166534; }
.admin-login-notice.is-error { border-color:#fecaca; background:#fef2f2; color:#991b1b; }
[data-theme="dark"] .admin-login-notice.is-success { border-color:#166534; background:rgba(20,83,45,.28); color:#bbf7d0; }
[data-theme="dark"] .admin-login-notice.is-error { border-color:#991b1b; background:rgba(127,29,29,.28); color:#fecaca; }
.admin-login-form { display:grid; gap:.75rem; }
.admin-login-form label { display:grid; gap:.32rem; color:var(--admin-shell-muted); font-size:.68rem; font-weight:900; }
.admin-login-form input { width:100%; box-sizing:border-box; height:46px; padding:0 .8rem; border:1px solid var(--admin-shell-border); border-radius:.72rem; background:var(--admin-shell-bg); color:var(--admin-shell-text); font:inherit; font-size:.86rem; outline:none; }
.admin-login-form input:focus { border-color:var(--admin-shell-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-shell-accent) 16%,transparent); }
.admin-login-form button { min-height:46px; display:flex; align-items:center; justify-content:center; gap:.45rem; margin-top:.15rem; border:0; border-radius:.75rem; background:var(--admin-shell-accent); color:#fff; font:inherit; font-size:.82rem; font-weight:950; cursor:pointer; box-shadow:0 9px 22px color-mix(in srgb,var(--admin-shell-accent) 24%,transparent); }
.admin-login-form button:hover { filter:brightness(.96); }
.admin-login-footnote { margin:.9rem 0 0; color:var(--admin-shell-muted); font-size:.61rem; line-height:1.55; text-align:center; }
@media (max-width:480px) { .admin-login-card { padding:1rem; border-radius:1rem; } .admin-login-brand img { width:54px; height:54px; } .admin-login-copy h1 { font-size:1.35rem; } }

/* v120 Passkey / WebAuthn login */
.admin-login-passkey{display:grid;gap:.5rem;margin:.15rem 0 .9rem}.admin-login-passkey__button{min-height:50px;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;border:1px solid color-mix(in srgb,var(--admin-shell-accent) 45%,var(--admin-shell-border));border-radius:.8rem;background:color-mix(in srgb,var(--admin-shell-accent) 9%,var(--admin-shell-bg));color:var(--admin-shell-text);font:inherit;font-size:.84rem;font-weight:950;cursor:pointer}.admin-login-passkey__button:hover{background:color-mix(in srgb,var(--admin-shell-accent) 15%,var(--admin-shell-bg))}.admin-login-passkey__button:disabled{opacity:.58;cursor:wait}.admin-login-passkey__help,.admin-login-passkey__status{margin:0;color:var(--admin-shell-muted);font-size:.62rem;line-height:1.5;text-align:center}.admin-login-passkey__status{min-height:.95rem;font-weight:800}.admin-login-passkey__status.is-error{color:#b91c1c}.admin-login-passkey__status.is-success{color:#15803d}.admin-login-divider{display:flex;align-items:center;gap:.65rem;margin:.2rem 0 .85rem;color:var(--admin-shell-muted);font-size:.61rem;font-weight:800}.admin-login-divider::before,.admin-login-divider::after{content:"";height:1px;flex:1;background:var(--admin-shell-border)}.admin-login-oauth{display:grid;gap:.55rem;margin:.15rem 0 .8rem}.admin-login-oauth__button{min-height:46px;display:flex;align-items:center;justify-content:center;gap:.65rem;border:1px solid var(--admin-shell-border);border-radius:.75rem;background:var(--admin-shell-bg);color:var(--admin-shell-text);font-size:.8rem;font-weight:900;text-decoration:none;box-shadow:0 3px 10px rgba(7,24,32,.04)}.admin-login-oauth__button:hover{background:var(--admin-shell-soft)}.admin-login-oauth__button.is-apple{background:#000;color:#fff;border-color:#000}.admin-login-oauth__button.is-apple:hover{background:#151515}.admin-login-oauth__mark{width:22px;height:22px;display:grid;place-items:center;font-size:1rem;font-weight:950;line-height:1}.admin-login-oauth__button.is-google .admin-login-oauth__mark{color:#4285f4}.admin-login-oauth__button.is-apple .admin-login-oauth__mark{font-size:.72rem;background:#fff;border-radius:50%;color:#000}[data-theme="dark"] .admin-login-passkey__status.is-error{color:#fca5a5}[data-theme="dark"] .admin-login-passkey__status.is-success{color:#86efac}

/* v120 Login & Security / Passkey management. Kept fully local: this page
   intentionally does not execute third-party CDN JavaScript. */
.admin-security-page{min-height:100dvh;margin:0;background:var(--admin-shell-soft);color:var(--admin-shell-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.admin-security-shell{box-sizing:border-box;width:min(100%,1080px);margin:0 auto;padding:1rem;display:grid;gap:1rem}
.admin-security-card{border:1px solid var(--admin-shell-border);border-radius:1.25rem;background:var(--admin-shell-bg);box-shadow:0 10px 28px rgba(7,24,32,.06)}
.admin-security-hero{padding:1.25rem 1.35rem}.admin-security-kicker{margin:0;color:var(--admin-shell-accent);font-size:.67rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}.admin-security-hero h1{margin:.25rem 0 .45rem;font-size:clamp(1.45rem,3vw,2rem);line-height:1.15}.admin-security-hero>p:last-child{max-width:760px;margin:0;color:var(--admin-shell-muted);font-size:.84rem;line-height:1.65}
.admin-security-enroll{padding:1.15rem 1.25rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}.admin-security-copy{min-width:0;max-width:650px}.admin-security-title-row{display:flex;align-items:center;gap:.7rem}.admin-security-key-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:.85rem;background:var(--admin-shell-soft);font-size:1.15rem}.admin-security-title-row h2{margin:0;font-size:1rem}.admin-security-title-row p{margin:.2rem 0 0;color:var(--admin-shell-muted);font-size:14px}.admin-security-help{margin:.8rem 0 0;color:var(--admin-shell-muted);font-size:.79rem;line-height:1.65}.admin-security-rpid{margin:.55rem 0 0;color:var(--admin-shell-muted);font-size:.68rem}.admin-security-rpid code{padding:.15rem .35rem;border-radius:.4rem;background:var(--admin-shell-soft);color:var(--admin-shell-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.admin-security-form{width:min(100%,360px);display:grid;gap:.55rem;flex:none}.admin-security-form label{display:grid;gap:.3rem;color:var(--admin-shell-muted);font-size:.68rem;font-weight:900}.admin-security-form input{box-sizing:border-box;width:100%;height:44px;padding:0 .72rem;border:1px solid var(--admin-shell-border);border-radius:.7rem;background:var(--admin-shell-bg);color:var(--admin-shell-text);font:inherit;font-size:.82rem;outline:none}.admin-security-form input:focus{border-color:var(--admin-shell-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-shell-accent) 16%,transparent)}.admin-security-primary{min-height:44px;border:0;border-radius:.72rem;background:var(--admin-shell-accent);color:#fff;font:inherit;font-size:.78rem;font-weight:950;cursor:pointer}.admin-security-primary:disabled{opacity:.58;cursor:wait}.admin-security-status{min-height:1rem;margin:0;color:var(--admin-shell-muted);font-size:.67rem;font-weight:800;line-height:1.45}.admin-security-status.is-error{color:#b91c1c}.admin-security-status.is-success{color:#15803d}
.admin-security-list-card{overflow:hidden}.admin-security-list-header{padding:1rem 1.2rem;border-bottom:1px solid var(--admin-shell-border)}.admin-security-list-header h2{margin:0;font-size:.95rem}.admin-security-list-header p{margin:.25rem 0 0;color:var(--admin-shell-muted);font-size:.68rem}.admin-security-list{display:grid;gap:.7rem;padding:.8rem}.admin-security-passkey-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--admin-shell-border);border-radius:.95rem;background:color-mix(in srgb,var(--admin-shell-bg) 92%,var(--admin-shell-soft))}.admin-security-passkey-info{min-width:0}.admin-security-passkey-name{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.admin-security-passkey-name strong{min-width:0;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.admin-security-badge{display:inline-flex;align-items:center;min-height:20px;padding:.1rem .42rem;border:1px solid var(--admin-shell-border);border-radius:999px;background:var(--admin-shell-soft);color:var(--admin-shell-muted);font-size:.58rem;font-weight:900}.admin-security-badge.is-info{border-color:color-mix(in srgb,var(--admin-shell-accent) 40%,var(--admin-shell-border));color:var(--admin-shell-accent)}.admin-security-badge.is-success{border-color:#86efac;background:#f0fdf4;color:#166534}.admin-security-passkey-meta{margin-top:.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1rem;color:var(--admin-shell-muted);font-size:.63rem;line-height:1.45}.admin-security-passkey-meta b{color:var(--admin-shell-text);font-weight:850}.admin-security-delete{min-width:66px;min-height:34px;flex:none;border:1px solid #ef4444;border-radius:.65rem;background:transparent;color:#b91c1c;font:inherit;font-size:.67rem;font-weight:900;cursor:pointer}.admin-security-delete:hover{background:#fef2f2}.admin-security-delete:disabled{opacity:.5;cursor:wait}.admin-security-empty{padding:2.2rem 1rem;text-align:center;color:var(--admin-shell-muted)}.admin-security-empty>div{font-size:2rem}.admin-security-empty p{margin:.65rem 0 .2rem;color:var(--admin-shell-text);font-size:.82rem;font-weight:900}.admin-security-empty span{font-size:.72rem}
.admin-security-alert{padding:.85rem 1rem;border:1px solid var(--admin-shell-border);border-radius:.9rem;background:var(--admin-shell-bg);font-size:.75rem;font-weight:800;line-height:1.55}.admin-security-alert.is-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.admin-security-alert.is-warning{border-color:#fcd34d;background:#fffbeb;color:#92400e}.admin-security-alert.is-warning p{margin:.2rem 0 0;font-weight:650}
[data-theme="dark"] .admin-security-badge.is-success{border-color:#166534;background:rgba(20,83,45,.28);color:#bbf7d0}[data-theme="dark"] .admin-security-delete{color:#fca5a5;border-color:#991b1b}[data-theme="dark"] .admin-security-delete:hover{background:rgba(127,29,29,.24)}[data-theme="dark"] .admin-security-alert.is-error{border-color:#991b1b;background:rgba(127,29,29,.28);color:#fecaca}[data-theme="dark"] .admin-security-alert.is-warning{border-color:#92400e;background:rgba(120,53,15,.24);color:#fde68a}[data-theme="dark"] .admin-security-status.is-error{color:#fca5a5}[data-theme="dark"] .admin-security-status.is-success{color:#86efac}
@media(max-width:760px){.admin-security-shell{padding:.7rem}.admin-security-enroll{flex-direction:column}.admin-security-form{width:100%;max-width:none}.admin-security-passkey-row{align-items:stretch;flex-direction:column}.admin-security-delete{align-self:flex-end}.admin-security-passkey-meta{grid-template-columns:1fr}.admin-security-passkey-name strong{max-width:100%}}
/* v121 first password-login Passkey enrollment. Registration names are generated server-side. */
.admin-security-onboarding{padding:1.05rem 1.2rem;display:flex;align-items:center;gap:1rem;border-color:color-mix(in srgb,var(--admin-shell-accent) 42%,var(--admin-shell-border));background:color-mix(in srgb,var(--admin-shell-accent) 7%,var(--admin-shell-bg))}.admin-security-onboarding__icon{width:48px;height:48px;display:grid;place-items:center;flex:none;border-radius:1rem;background:var(--admin-shell-bg);font-size:1.35rem;box-shadow:0 5px 16px rgba(7,24,32,.07)}.admin-security-onboarding__copy{min-width:0;flex:1}.admin-security-onboarding__copy h2{margin:.18rem 0 .35rem;font-size:1rem}.admin-security-onboarding__copy>p:last-child{margin:0;color:var(--admin-shell-muted);font-size:.76rem;line-height:1.6}.admin-security-skip{min-height:38px;display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0 .8rem;border:1px solid var(--admin-shell-border);border-radius:.68rem;background:var(--admin-shell-bg);color:var(--admin-shell-muted);font-size:.69rem;font-weight:900;text-decoration:none}.admin-security-skip:hover{color:var(--admin-shell-text);border-color:var(--admin-shell-accent)}.admin-security-auto-name{margin:0;color:var(--admin-shell-muted);font-size:.69rem;line-height:1.5}.admin-security-form .admin-security-primary{width:100%}
@media(max-width:760px){.admin-security-onboarding{align-items:flex-start;flex-wrap:wrap}.admin-security-onboarding__copy{flex-basis:calc(100% - 64px)}.admin-security-skip{margin-left:64px}}

/* v157: low-emphasis application version at the very bottom of admin pages. */
.admin-shared-footer__version {
  align-self:center;
  margin-left:auto;
  color:color-mix(in srgb,var(--admin-shell-muted) 62%,transparent);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.56rem;
  font-weight:650;
  letter-spacing:.02em;
  white-space:nowrap;
  user-select:text;
}
@media(max-width:520px) {
  .admin-shared-footer {
    align-items:center;
    flex-wrap:wrap;
    gap:.35rem .75rem;
  }
  .admin-shared-footer__version {
    margin-left:auto;
  }
}
.admin-login-version {
  position:fixed;
  right:max(.6rem,env(safe-area-inset-right));
  bottom:max(.45rem,env(safe-area-inset-bottom));
  color:color-mix(in srgb,var(--admin-shell-muted) 48%,transparent);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.53rem;
  letter-spacing:.02em;
  pointer-events:none;
}


/* v192: shared required-field treatment across the admin UI.
   Native [required] controls and custom data-admin-required controls use the
   same green treatment as admin/leads/new. !important is deliberate because
   the shared dark theme and some page styles set generic form borders. */
.admin-layout-enabled :is(input,select,textarea)[required]:not([type="hidden"]),
.admin-layout-enabled [data-admin-required],
.admin-login-page :is(input,select,textarea)[required]:not([type="hidden"]),
.admin-required-page :is(input,select,textarea)[required]:not([type="hidden"]),
.admin-layout-enabled [data-admin-required-group] {
  border-color:#10b981 !important;
  box-shadow:0 0 0 1px rgba(16,185,129,.18) !important;
}
.admin-layout-enabled :is(input,select,textarea)[required]:not([type="hidden"]):focus,
.admin-layout-enabled [data-admin-required]:focus,
.admin-login-page :is(input,select,textarea)[required]:not([type="hidden"]):focus,
.admin-required-page :is(input,select,textarea)[required]:not([type="hidden"]):focus {
  border-color:#059669 !important;
  box-shadow:0 0 0 3px rgba(16,185,129,.18) !important;
  outline:none !important;
}
.admin-layout-enabled :is(input,select,textarea).input-error,
.admin-layout-enabled :is(input,select,textarea).select-error,
.admin-layout-enabled :is(input,select,textarea).textarea-error,
.admin-layout-enabled :is(input,select,textarea)[aria-invalid="true"],
.admin-layout-enabled [data-admin-required].input-error,
.admin-layout-enabled [data-admin-required-group].admin-required-group-error {
  border-color:#f43f5e !important;
  box-shadow:0 0 0 3px rgba(244,63,94,.14) !important;
}
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea)[required]:not([type="hidden"]),
[data-theme="dark"] .admin-layout-enabled [data-admin-required],
[data-theme="dark"] .admin-login-page :is(input,select,textarea)[required]:not([type="hidden"]),
[data-theme="dark"] .admin-required-page :is(input,select,textarea)[required]:not([type="hidden"]),
[data-theme="dark"] .admin-layout-enabled [data-admin-required-group] {
  border-color:#34d399 !important;
  border-width:2px !important;
  background-color:rgba(6,78,59,.18) !important;
  box-shadow:0 0 0 1px rgba(52,211,153,.36),0 0 14px rgba(16,185,129,.10) !important;
}
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea)[required]:not([type="hidden"]):focus,
[data-theme="dark"] .admin-layout-enabled [data-admin-required]:focus,
[data-theme="dark"] .admin-login-page :is(input,select,textarea)[required]:not([type="hidden"]):focus,
[data-theme="dark"] .admin-required-page :is(input,select,textarea)[required]:not([type="hidden"]):focus {
  border-color:#6ee7b7 !important;
  background-color:rgba(6,78,59,.24) !important;
  box-shadow:0 0 0 3px rgba(52,211,153,.28),0 0 18px rgba(16,185,129,.14) !important;
}
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea).input-error,
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea).select-error,
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea).textarea-error,
[data-theme="dark"] .admin-layout-enabled :is(input,select,textarea)[aria-invalid="true"],
[data-theme="dark"] .admin-layout-enabled [data-admin-required].input-error,
[data-theme="dark"] .admin-layout-enabled [data-admin-required-group].admin-required-group-error {
  border-width:2px !important;
  background-color:rgba(127,29,29,.16) !important;
  border-color:#fb7185 !important;
  box-shadow:0 0 0 3px rgba(251,113,133,.18) !important;
}


/* v193: staff management actions use a compact toolbar and a real enable switch. */
.admin-staff-actions {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.admin-staff-action {
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 10px;
  border:1px solid #d7e3e8;
  border-radius:10px;
  background:#fff;
  color:#35515c;
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(15,23,42,.05);
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.admin-staff-action svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.admin-staff-action:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(15,23,42,.08);
}
.admin-staff-action--edit {
  border-color:#b9dde5;
  background:#f2fbfd;
  color:#0e7490;
}
.admin-staff-action--edit:hover:not(:disabled) {
  border-color:#67c5d5;
  background:#e6f8fb;
}
.admin-staff-action--password {
  border-color:#d8d8f4;
  background:#f8f7ff;
  color:#5145a6;
}
.admin-staff-action--password:hover:not(:disabled) {
  border-color:#aaa7e8;
  background:#f0efff;
}
.admin-staff-action:disabled {
  opacity:.42;
  cursor:not-allowed;
  box-shadow:none;
}
.admin-staff-toggle {
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 9px 0 7px;
  border:1px solid #d6e0e4;
  border-radius:10px;
  background:#f8fafc;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease;
}
.admin-staff-toggle__track {
  width:34px;
  height:20px;
  position:relative;
  flex:none;
  border-radius:999px;
  background:#cbd5e1;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
  transition:background .18s ease,box-shadow .18s ease;
}
.admin-staff-toggle__thumb {
  position:absolute;
  top:3px;
  left:3px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(15,23,42,.28);
  transition:transform .18s ease;
}
.admin-staff-toggle[aria-checked="true"] {
  border-color:#86d9b5;
  background:#effcf6;
  color:#087a55;
}
.admin-staff-toggle[aria-checked="true"] .admin-staff-toggle__track {
  background:#22a86f;
  box-shadow:inset 0 0 0 1px rgba(4,120,87,.2),0 0 0 2px rgba(34,168,111,.08);
}
.admin-staff-toggle[aria-checked="true"] .admin-staff-toggle__thumb {
  transform:translateX(14px);
}
.admin-staff-toggle:hover:not(:disabled) {
  border-color:#6dcda5;
  box-shadow:0 4px 12px rgba(15,23,42,.07);
}
.admin-staff-toggle:disabled {
  opacity:.42;
  cursor:not-allowed;
}
.admin-staff-toggle.is-saving {
  opacity:.58;
  cursor:wait;
}
.admin-staff-card[data-staff-row-active="false"] {
  border-style:dashed;
}
[data-theme="dark"] .admin-staff-action {
  border-color:#36505b;
  background:#10252e;
  color:#c5d4da;
  box-shadow:none;
}
[data-theme="dark"] .admin-staff-action--edit {
  border-color:#225c6c;
  background:#0d2a34;
  color:#67d6e8;
}
[data-theme="dark"] .admin-staff-action--password {
  border-color:#49466e;
  background:#191a31;
  color:#c7c3ff;
}
[data-theme="dark"] .admin-staff-toggle {
  border-color:#36505b;
  background:#10252e;
  color:#a8bcc5;
}
[data-theme="dark"] .admin-staff-toggle__track {
  background:#425762;
}
[data-theme="dark"] .admin-staff-toggle[aria-checked="true"] {
  border-color:#247a5d;
  background:#0d3027;
  color:#84e5bd;
}
[data-theme="dark"] .admin-staff-toggle[aria-checked="true"] .admin-staff-toggle__track {
  background:#22a86f;
}
@media(max-width:767px) {
  .admin-staff-actions {
    width:100%;
    justify-content:flex-start;
  }
  .admin-staff-action {
    flex:0 1 auto;
  }
  .admin-staff-toggle {
    margin-left:auto;
  }
}
@media(max-width:420px) {
  .admin-staff-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .admin-staff-action {
    width:100%;
  }
  .admin-staff-toggle {
    grid-column:1 / -1;
    width:100%;
    justify-content:space-between;
    margin-left:0;
  }
}
@media(max-width:900px){
  .admin-layout-enabled .modal[open],.admin-layout-enabled .customer-schedule-modal,.inventory-modal-backdrop{
    box-sizing:border-box;top:var(--admin-visible-top,0px);bottom:auto;height:var(--admin-visible-height,100dvh);overscroll-behavior:contain;
  }
  .admin-layout-enabled .modal-box{box-sizing:border-box;min-width:0;max-width:calc(100% - 16px);max-height:calc(var(--admin-visible-height,100dvh) - 24px);overflow-y:auto;overscroll-behavior:contain}
  .admin-layout-enabled .btn{white-space:normal;overflow-wrap:anywhere}
  .admin-shared-footer{padding-bottom:env(safe-area-inset-bottom)}
}

/* v288 read-only role simulation */
.admin-role-preview-banner{position:fixed;z-index:78;top:var(--admin-header-height,70px);left:var(--admin-sidebar-width,230px);right:0;min-height:42px;padding:.4rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid rgba(180,83,9,.28);background:color-mix(in srgb,#fef3c7 92%,var(--admin-shell-bg));color:#78350f;box-shadow:0 6px 18px rgba(120,53,15,.08)}
.admin-role-preview-banner__copy{min-width:0;display:flex;align-items:baseline;gap:.55rem;overflow:hidden}
.admin-role-preview-banner__copy strong{font-size:.74rem;white-space:nowrap}
.admin-role-preview-banner__copy span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:750;color:#92400e}
.admin-role-preview-banner button,.admin-role-preview-exit-link{border:1px solid rgba(180,83,9,.3);border-radius:.65rem;background:#fff7ed;color:#9a3412;font-weight:900;cursor:pointer}
.admin-role-preview-banner button{min-height:30px;padding:.3rem .65rem;font-size:.66rem;white-space:nowrap}
.admin-role-preview-exit-link{width:100%;text-align:left}
.admin-layout-enabled.admin-role-preview-active{padding-top:calc(var(--admin-header-height,70px) + 42px)}
.admin-role-preview-active .admin-sidebar{top:calc(var(--admin-header-height,70px) + 42px)}
[data-theme="dark"] .admin-role-preview-banner{background:rgba(69,26,3,.96);border-color:rgba(251,191,36,.28);color:#fde68a}
[data-theme="dark"] .admin-role-preview-banner__copy span{color:#fcd34d}
[data-theme="dark"] .admin-role-preview-banner button,[data-theme="dark"] .admin-role-preview-exit-link{background:#451a03;color:#fde68a;border-color:rgba(251,191,36,.32)}
@media(max-width:900px){.admin-role-preview-banner{left:0}.admin-role-preview-active .admin-sidebar{top:calc(var(--admin-header-height,70px) + 42px)}}
@media(max-width:640px){.admin-role-preview-banner{min-height:46px;padding:.35rem .55rem}.admin-role-preview-banner__copy{display:grid;gap:.05rem}.admin-role-preview-banner__copy strong{font-size:.68rem}.admin-role-preview-banner__copy span{font-size:.56rem}.admin-layout-enabled.admin-role-preview-active{padding-top:calc(var(--admin-header-height,60px) + 46px)}.admin-role-preview-active .admin-sidebar{top:calc(var(--admin-header-height,60px) + 46px)}}
@media print{.admin-role-preview-banner{display:none!important}}

/* v324: shared compact date field. Date identity and picker stay together at the
   far right so browsers cannot reposition the native calendar indicator. */
.admin-date-field{position:relative;display:block;align-self:end;min-width:0;max-width:100%}
.admin-date-field>input[type="date"]{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding-right:var(--admin-date-field-padding-right,126px)!important}
.admin-date-field>input[type="date"]::-webkit-calendar-picker-indicator{width:0;height:0;margin:0;padding:0;opacity:0;pointer-events:none}
.admin-date-field__adornment{position:absolute;z-index:3;top:50%;right:10px;transform:translateY(-50%);display:inline-flex;align-items:center;gap:7px;max-width:calc(100% - 20px);pointer-events:none;color:var(--admin-shell-muted,#64748b)}
.admin-date-field__label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:850;line-height:1;opacity:.9}
.admin-date-field__picker{box-sizing:border-box;display:inline-grid;place-items:center;flex:0 0 28px;width:28px;height:28px;margin:0;padding:0;border:0;border-radius:7px;background:transparent;color:var(--admin-shell-text,#0f172a);cursor:pointer;pointer-events:auto}
.admin-date-field__picker:hover{background:var(--admin-shell-soft,#f1f5f9)}
.admin-date-field__picker:focus-visible{outline:2px solid var(--admin-shell-accent,#0e7490);outline-offset:1px}
.admin-date-field__picker svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){.admin-date-field>input[type="date"]{padding-right:var(--admin-date-field-padding-right,132px)!important}.admin-date-field__label{font-size:11px}}

/* v340: admin-wide mobile density + compact dates. Mobile forms should group
   short, related controls instead of mechanically stacking every input. */
.admin-date-field__mobile-value{display:none}
@media(max-width:760px){
  .admin-date-field>input[type="date"]{
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    caret-color:transparent;
    padding-left:12px!important;
  }
  .admin-date-field__mobile-value{
    position:absolute;
    z-index:2;
    left:12px;
    top:50%;
    transform:translateY(-50%);
    display:block;
    max-width:calc(100% - var(--admin-date-field-padding-right,132px) - 18px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--admin-shell-text,#0f172a);
    font-size:16px;
    font-weight:800;
    line-height:1;
    font-variant-numeric:tabular-nums;
    pointer-events:none;
  }
  .admin-date-field__mobile-value:empty{display:none}
  .admin-work-date-display{font-variant-numeric:tabular-nums!important}

  /* Shared schedule editors: date/time stays wide; short work-day/price fields
     share the next row instead of consuming two full rows. */
  .admin-schedule-editor__inputs,
  .admin-lead-schedule-inputs{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
  }
  .admin-schedule-editor__datetime-field,
  .admin-schedule-editor__inputs--install>.admin-schedule-editor__datetime-field,
  .admin-lead-schedule-inputs>.admin-schedule-editor__field:first-child{
    grid-column:1/-1;
  }
  .admin-schedule-editor__inputs:not(.admin-schedule-editor__inputs--install)>.admin-schedule-editor__field:last-child{
    grid-column:1/-1;
  }
  .admin-schedule-editor__panel{padding:.58rem}
  .admin-schedule-editor__inputs input,
  .admin-schedule-editor__inputs select,
  .admin-schedule-editor__money,
  .admin-staff-multiselect__button{height:var(--admin-control-height);min-height:var(--admin-control-height)}
  .admin-lead-install-inputs--edit{grid-template-columns:minmax(0,1fr) 82px}
  .admin-lead-install-inputs--edit>.admin-schedule-editor__field:first-child{grid-column:auto}

  /* Customer create/edit: email + phone are naturally short enough to share a
     row. Name and property address remain full width. */
  .admin-layout-enabled .quote-contact-core>.grid.grid-cols-1{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  /* Staff editor: identity/contact fields use two columns; role/warehouse
     selectors and action group keep the width they need. */
  form[data-staff-form]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem!important}
  form[data-staff-form]>fieldset,
  form[data-staff-form]>div:last-of-type{grid-column:1/-1}
  form[data-staff-form]>fieldset[data-staff-warehouse-field]{grid-column:1/-1!important}
  form[data-staff-form] :is(input,select,button){min-height:44px}

  /* Promo editor: compact business values pair up; the off-peak calendar and
     final actions stay full width. */
  #promo-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem!important}
  #promo-form>label.md\:col-span-2,
  #promo-form>label.xl\:col-span-4,
  #promo-form>div:last-child{grid-column:1/-1!important}
  #promo-form :is(input:not([type="checkbox"]),select,button){min-height:44px}

  /* Shared page density: avoid desktop-sized vertical padding while preserving
     readable cards and 44px touch targets. */
  .admin-layout-enabled main:is(.mx-auto,.technical-shell){scroll-margin-top:calc(var(--admin-header-height,60px) + 8px)}
}
@media(max-width:390px){
  /* Very narrow phones still keep short control pairs; overflow is prevented by
     minmax(0,1fr) rather than falling back to one-input-per-row. */
  form[data-staff-form],#promo-form{gap:.42rem!important}
}
@media(max-width:760px){
  /* v349: a compact date is useless if the user cannot tell what the date is.
     Keep the business label inside the same control instead of adding another
     row. Native date placeholders are not dependable on mobile browsers. */
  .admin-date-field{--admin-date-field-padding-right:44px!important}
  .admin-date-field>input[type="date"]{height:var(--admin-control-height)!important;min-height:var(--admin-control-height)!important;max-height:var(--admin-control-height)!important;padding-right:44px!important}
  .admin-date-field__mobile-value{left:12px;right:44px;top:auto;bottom:4px;transform:none;max-width:none;font-size:14px;line-height:1.05}
  .admin-date-field__adornment{top:0;right:8px;bottom:0;left:12px;transform:none;max-width:none;justify-content:space-between;align-items:center;gap:6px}
  .admin-date-field__label{display:block;align-self:flex-start;max-width:calc(100% - 38px);margin-top:4px;font-size:9px;line-height:1.05;opacity:.78}
  .admin-date-field__picker{align-self:center}
  #promo-form>label:has(#promo-start),#promo-form>label:has(#promo-end){grid-column:1/-1!important}
}

/* v340: compact datetime controls use the same mobile rule as date controls.
   The submitted value stays YYYY-MM-DDTHH:mm; only the phone display is shorter. */
.admin-datetime-field{position:relative;display:block;width:100%;min-width:0}
.admin-datetime-field__input{box-sizing:border-box;width:100%;min-width:0}
.admin-datetime-field__mobile-value{display:none}
.admin-datetime-field__picker{display:none}
@media(max-width:760px){
  .admin-datetime-field__input{
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    caret-color:transparent;
    padding-left:12px!important;
    padding-right:46px!important;
  }
  .admin-datetime-field__input::-webkit-calendar-picker-indicator{width:0;height:0;margin:0;padding:0;opacity:0;pointer-events:none}
  .admin-datetime-field__mobile-value{
    position:absolute;z-index:2;left:12px;right:48px;top:50%;transform:translateY(-50%);
    display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    color:var(--admin-shell-text,#0f172a);font-size:16px;font-weight:800;line-height:1;
    font-variant-numeric:tabular-nums;pointer-events:none;
  }
  .admin-datetime-field__picker{position:absolute;z-index:3;right:8px;top:50%;transform:translateY(-50%);display:inline-grid}

  /* Actual-received modal: amount + date are both compact business values. */
  .admin-receipt-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-receipt-fields:has([data-actual-received-date-field][hidden]){grid-template-columns:minmax(0,1fr)!important}

  /* Staff: name/phone and email/role share rows. Only warehouse scope/actions
     need full width. */
  form[data-staff-form]>fieldset:not([data-staff-warehouse-field]){grid-column:auto}

  /* Promo: compact datetime display lets start/end remain side-by-side. */
  #promo-form>label:has(#promo-start),#promo-form>label:has(#promo-end){grid-column:auto!important}
}

/* v348: operational admin pages must not reserve blank rows for empty status text. */
.admin-layout-enabled [role="status"]:empty,.admin-layout-enabled [aria-live]:empty{display:none}
.admin-security-shell{gap:.7rem!important;padding:12px 16px 20px!important}
.admin-security-card{padding:14px 16px!important}
.admin-security-hero{padding:10px 16px!important}
.admin-security-hero h1{margin:0!important}
.admin-security-heading-count{display:flex;align-items:center;gap:8px}
.admin-security-heading-count>span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--admin-shell-soft);color:var(--admin-shell-accent);font-size:11px;font-weight:950}
.admin-security-list-header{margin-bottom:8px!important}
.admin-security-passkey-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px 12px!important}
.admin-security-empty{padding:14px!important}
.admin-security-empty p{margin:0!important}
@media(max-width:760px){.admin-security-shell{padding:8px 8px 14px!important}.admin-security-card{padding:12px!important}.admin-security-passkey-row{flex-direction:row!important;align-items:flex-start!important;gap:8px!important}.admin-security-delete{flex:0 0 auto!important}.admin-security-passkey-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* v370: shared in-app notification bell and compact notification popover. */
.admin-notification-widget{position:relative;flex:none}.admin-notification-button{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--admin-shell-border);border-radius:.72rem;background:var(--admin-shell-bg);color:var(--admin-shell-text);cursor:pointer}.admin-message-button{flex:none;text-decoration:none}.admin-notification-button:hover,.admin-notification-button[aria-expanded="true"]{background:var(--admin-shell-soft);border-color:color-mix(in srgb,var(--admin-shell-accent) 42%,var(--admin-shell-border))}.admin-notification-button svg{width:19px;height:19px;stroke-linecap:round;stroke-linejoin:round}.admin-notification-badge{position:absolute;top:-4px;right:-5px;min-width:17px;height:17px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--admin-shell-bg);border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:950;line-height:1}.admin-notification-badge[hidden]{display:none}.admin-notification-popover{position:absolute;z-index:120;top:calc(100% + 10px);right:0;width:min(380px,calc(100vw - 20px));overflow:hidden;border:1px solid var(--admin-shell-border);border-radius:14px;background:var(--admin-shell-bg);box-shadow:0 18px 48px rgba(7,24,32,.2)}.admin-notification-popover[hidden]{display:none}.admin-notification-popover__head{min-height:44px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--admin-shell-border)}.admin-notification-popover__head strong{font-size:12px}.admin-notification-popover__head button{border:0;background:transparent;color:var(--admin-shell-accent);font-size:10px;font-weight:900;cursor:pointer}.admin-notification-list{max-height:360px;overflow:auto}.admin-notification-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid color-mix(in srgb,var(--admin-shell-border) 70%,transparent);background:var(--admin-shell-bg);color:var(--admin-shell-text);text-align:left;cursor:pointer}.admin-notification-item.has-payment-icon{grid-template-columns:30px minmax(0,1fr) auto;align-items:start}.admin-notification-item:hover{background:var(--admin-shell-soft)}.admin-notification-payment-icon{width:30px;height:30px;display:block;flex:none;object-fit:contain;border:0;border-radius:7px;background:transparent}.admin-notification-payment-icon.is-card{background:transparent}.admin-notification-item.is-unread{box-shadow:inset 3px 0 0 var(--admin-shell-accent);background:color-mix(in srgb,var(--admin-shell-accent) 5%,var(--admin-shell-bg))}.admin-notification-item__copy{min-width:0}.admin-notification-item__copy strong,.admin-notification-item__copy span{display:block;overflow:hidden;text-overflow:ellipsis}.admin-notification-item__copy strong{font-size:11px;white-space:nowrap}.admin-notification-item__copy span{margin-top:3px;color:var(--admin-shell-muted);font-size:9px;line-height:1.35;white-space:nowrap}.admin-notification-item small{color:var(--admin-shell-muted);font-size:8px;white-space:nowrap}.admin-notification-empty{padding:24px 12px;color:var(--admin-shell-muted);font-size:10px;text-align:center}.admin-notification-all{display:flex;align-items:center;justify-content:center;min-height:38px;border-top:1px solid var(--admin-shell-border);color:var(--admin-shell-accent);font-size:10px;font-weight:900;text-decoration:none}
@media(max-width:640px){.admin-notification-button{width:40px;height:40px}.admin-notification-popover{position:fixed;top:calc(var(--admin-header-height,60px) + 8px);right:8px;left:8px;width:auto}.admin-notification-list{max-height:min(60vh,420px)}}
.admin-notification-push-setup{padding:8px 10px;border-top:1px solid var(--admin-border,#dce6ea)}.admin-notification-push-setup button{width:100%;min-height:34px;padding:6px 10px;border:1px solid currentColor;border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:11px;font-weight:900;cursor:pointer}.admin-notification-push-setup button:disabled{opacity:.58;cursor:default}

/* v375: installed-PWA notification onboarding. The app explains the benefit
   automatically; the primary button supplies the browser-required user gesture. */
.admin-push-onboarding{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.44);backdrop-filter:blur(3px)}
.admin-push-onboarding[hidden]{display:none}.admin-push-onboarding__card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;width:min(460px,100%);padding:18px;border:1px solid var(--admin-shell-border,#dbe3ea);border-radius:18px;background:var(--admin-shell-bg,#fff);color:var(--admin-shell-text,#0f172a);box-shadow:0 24px 72px rgba(15,23,42,.24)}
.admin-push-onboarding__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--admin-shell-accent,#0d718a) 12%,var(--admin-shell-bg,#fff));color:var(--admin-shell-accent,#0d718a);font-size:17px;font-weight:950}.admin-push-onboarding__copy{min-width:0}.admin-push-onboarding__copy h2{margin:1px 0 6px;font-size:17px;line-height:1.25}.admin-push-onboarding__copy p{margin:0;color:var(--admin-shell-muted,#64748b);font-size:12px;line-height:1.55}.admin-push-onboarding__actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.admin-push-onboarding__actions button{min-height:38px;padding:7px 13px;border:1px solid var(--admin-shell-border,#dbe3ea);border-radius:10px;background:var(--admin-shell-bg,#fff);color:var(--admin-shell-text,#0f172a);font:inherit;font-size:12px;font-weight:900;cursor:pointer}.admin-push-onboarding__actions button.is-primary{border-color:var(--admin-shell-accent,#0d718a);background:var(--admin-shell-accent,#0d718a);color:#fff}.admin-push-onboarding__actions button:disabled{opacity:.6;cursor:wait}.admin-push-onboarding-open{overflow:hidden}
@media(max-width:640px){.admin-push-onboarding{padding:10px}.admin-push-onboarding__card{padding:15px}.admin-push-onboarding__actions{display:grid;grid-template-columns:minmax(0,1fr) auto}.admin-push-onboarding__actions button{min-height:44px}}
/* Header staff-message popover. Reuses notification colors and shared smart lookup. */
.admin-message-widget{position:relative;flex:none}
.admin-message-popover{position:absolute;z-index:122;top:calc(100% + 10px);right:0;width:min(430px,calc(100vw - 20px));overflow:visible;border:1px solid var(--admin-shell-border);border-radius:14px;background:var(--admin-shell-bg);box-shadow:0 18px 48px rgba(7,24,32,.2)}
.admin-message-popover[hidden]{display:none}
.admin-message-popover__head{min-height:42px;padding:8px 11px;display:flex;align-items:center;border-bottom:1px solid var(--admin-shell-border)}
.admin-message-popover__head strong{font-size:12px}
.admin-message-compose-panel{padding:10px;border-bottom:1px solid var(--admin-shell-border);background:color-mix(in srgb,var(--admin-shell-soft) 72%,var(--admin-shell-bg))}
.admin-message-compose-panel[hidden]{display:none}
.admin-message-compose-form{display:grid;gap:8px}.admin-message-compose-form textarea{box-sizing:border-box;width:100%;min-height:76px;padding:8px 9px;border:1px solid var(--admin-shell-border);border-radius:9px;background:var(--admin-shell-bg);color:var(--admin-shell-text);font:inherit;font-size:11px;line-height:1.45;resize:vertical;outline:none}.admin-message-compose-form textarea:focus{border-color:var(--admin-shell-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-shell-accent) 12%,transparent)}
.admin-message-compose-images{display:flex;align-items:center;gap:8px;min-width:0}.admin-message-compose-images label{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border:1px dashed var(--admin-shell-border);border-radius:8px;color:var(--admin-shell-text);font-size:9px;font-weight:900;cursor:pointer}.admin-message-compose-images input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.admin-message-compose-images>span{color:var(--admin-shell-muted);font-size:9px}
.admin-message-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-message-compose-actions>span{color:var(--admin-shell-muted);font-size:9px}.admin-message-compose-actions button{min-height:32px;padding:0 13px;border:1px solid var(--admin-shell-accent);border-radius:8px;background:var(--admin-shell-accent);color:#fff;font:inherit;font-size:10px;font-weight:900;cursor:pointer}.admin-message-compose-actions button:disabled{opacity:.55;cursor:default}
.admin-message-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:6px 8px;border-bottom:1px solid var(--admin-shell-border)}.admin-message-tabs button,.admin-message-tab-link{min-width:0;min-height:40px;padding:4px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:8px;background:transparent;color:var(--admin-shell-muted);font:inherit;font-size:9px;font-weight:900;line-height:1.1;text-align:center;text-decoration:none;cursor:pointer}.admin-message-tabs svg{width:15px;height:15px;flex:none;stroke-linecap:round;stroke-linejoin:round}.admin-message-tabs button.is-active{background:var(--admin-shell-soft);color:var(--admin-shell-text)}.admin-message-tabs button:hover,.admin-message-tab-link:hover{background:color-mix(in srgb,var(--admin-shell-soft) 75%,transparent);color:var(--admin-shell-text)}
.admin-message-list{max-height:360px;overflow:auto}.admin-message-list[hidden]{display:none}.admin-message-group-create{position:sticky;top:0;z-index:2;display:block;margin:8px;padding:9px 12px;border:1px solid var(--admin-shell-accent);border-radius:9px;background:var(--admin-shell-accent);color:#fff;font-size:10px;font-weight:900;text-align:center;text-decoration:none}.admin-message-group-create:hover{filter:brightness(.96)}.admin-message-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;border:0;border-bottom:1px solid color-mix(in srgb,var(--admin-shell-border) 70%,transparent);background:var(--admin-shell-bg);color:var(--admin-shell-text);text-align:left}.admin-message-item.is-unread{box-shadow:inset 3px 0 0 var(--admin-shell-accent);background:color-mix(in srgb,var(--admin-shell-accent) 5%,var(--admin-shell-bg))}.admin-message-item__copy{min-width:0}.admin-message-item__copy strong,.admin-message-item__copy span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.admin-message-item__copy strong{font-size:10px;white-space:nowrap}.admin-message-item__copy span{margin-top:3px;color:var(--admin-shell-muted);font-size:9px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-message-item small{align-self:start;color:var(--admin-shell-muted);font-size:8px;white-space:nowrap}.admin-message-item__actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px}.admin-message-item__actions button{min-height:26px;padding:0 8px;border:1px solid var(--admin-shell-border);border-radius:7px;background:var(--admin-shell-soft);color:var(--admin-shell-text);font:inherit;font-size:9px;font-weight:850;cursor:pointer}
.admin-message-popover .notification-message-image-preview{max-width:100%}.admin-message-popover .notification-message-image-preview__item{flex-basis:62px;height:62px}
@media(max-width:760px){.admin-message-popover{position:fixed;top:calc(var(--admin-header-height,60px) + 8px);right:8px;left:8px;width:auto}.admin-message-list{max-height:min(48vh,360px)}.admin-message-compose-form textarea{min-height:68px}}
.admin-message-popover .notification-message-image-preview{display:flex;gap:7px;overflow-x:auto;padding:2px 0 3px}.admin-message-popover .notification-message-image-preview__item{position:relative;flex:0 0 62px;height:62px;border:1px solid var(--admin-shell-border);border-radius:9px;overflow:hidden;background:var(--admin-shell-soft)}.admin-message-popover .notification-message-image-preview__item img{width:100%;height:100%;display:block;object-fit:cover}.admin-message-popover .notification-message-image-preview__file{display:grid;width:100%;height:100%;place-items:center;padding:6px;color:var(--admin-shell-muted);font-size:8px;text-align:center;overflow-wrap:anywhere}.admin-message-popover .notification-message-image-preview__item button{position:absolute;top:3px;right:3px;width:21px;height:21px;padding:0;border:0;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:16px;line-height:1;cursor:pointer}
.admin-message-popover .notification-message-recipient .contractor-smart-menu{z-index:130;background:var(--admin-shell-bg);border-color:var(--admin-shell-border)}.admin-message-popover .notification-message-recipient .contractor-smart-option{color:var(--admin-shell-text)}
.admin-message-item__attachments{grid-column:1/-1;display:flex;gap:5px;overflow-x:auto}.admin-message-item__attachments a,.admin-message-item__attachments button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:36px;padding:0;border:1px solid var(--admin-shell-border);border-radius:7px;overflow:hidden;background:var(--admin-shell-soft);color:var(--admin-shell-muted);text-decoration:none}.admin-message-item__attachments button{cursor:zoom-in}.admin-message-item__attachments img{width:100%;height:100%;object-fit:cover;display:block}

/* v404: global admin density guardrail. Operational screens should not inherit
   marketing-sized Tailwind spacing on phones. Keep touch controls usable while
   reducing dead vertical space around cards, grids, tables and modals. */
@media(max-width:760px){
  .admin-layout-enabled main :is(.p-8,.p-7,.p-6,.p-5){padding:.8rem!important}
  .admin-layout-enabled main .p-4{padding:.7rem!important}
  .admin-layout-enabled main :is(.py-10,.py-9,.py-8,.py-7,.py-6,.py-5){padding-top:.8rem!important;padding-bottom:.8rem!important}
  .admin-layout-enabled main .py-4{padding-top:.7rem!important;padding-bottom:.7rem!important}
  .admin-layout-enabled main :is(.gap-8,.gap-7,.gap-6,.gap-5,.gap-4){gap:.65rem!important}
  .admin-layout-enabled main :is(.space-y-8,.space-y-7,.space-y-6,.space-y-5,.space-y-4)>:not([hidden])~:not([hidden]){margin-top:.65rem!important}
  .admin-layout-enabled main :is(.mt-8,.mt-7,.mt-6,.mt-5,.mt-4){margin-top:.7rem!important}
  .admin-layout-enabled main :is(.mb-8,.mb-7,.mb-6,.mb-5,.mb-4){margin-bottom:.7rem!important}
  .admin-layout-enabled main :is(.rounded-3xl){border-radius:1rem!important}
  .admin-layout-enabled main :is(h1.text-3xl,h1.text-4xl){font-size:1.55rem!important;line-height:1.15!important}
  .admin-layout-enabled main :is(h2.text-2xl,h2.text-3xl){font-size:1.18rem!important;line-height:1.2!important}
}

/* v405: equal-action geometry. When multiple actions belong to the same local
   decision group they should not form a ragged row/stack on phones. */
.admin-equal-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:.5rem;min-width:0}
.admin-equal-actions>:is(button,a){min-width:0;min-height:var(--admin-control-height);display:inline-flex;align-items:center;justify-content:center}
.admin-promo-share-actions{display:flex;align-items:stretch;gap:.35rem;min-width:0}
.admin-promo-share-actions>:is(button,a){min-width:0}
@media(max-width:760px){
  .admin-equal-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .admin-equal-actions>:is(button,a){width:100%;height:var(--admin-control-height);min-height:var(--admin-control-height);padding-inline:.65rem}
  .admin-promo-share-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;width:100%}
  .admin-promo-share-actions>:is(button,a){width:100%;min-height:34px;height:34px;padding-inline:.35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* Dialogs are operational surfaces too: do not keep desktop modal padding or
     uneven footer buttons on phones. */
  .admin-layout-enabled .modal-box{padding:.9rem!important;border-radius:1rem!important}
  .admin-layout-enabled .modal-box form.mt-4{margin-top:.65rem!important}
  .admin-layout-enabled .modal-box .space-y-4>:not([hidden])~:not([hidden]){margin-top:.65rem!important}
  .admin-layout-enabled .modal-box textarea[rows="3"]{min-height:78px}
}


/* v406: desktop customer-table reference actions are one compact segmented
   control, not a stack of unrelated content-width pills. admin-shell.css loads
   after page-local/Tailwind rules so this is the final geometry source. */
.admin-customer-table .admin-reference-stack{
  width:132px!important;
  max-width:132px!important;
  display:grid!important;
  gap:0!important;
  align-items:stretch;
  overflow:visible;
  border:1px solid var(--admin-shell-border);
  border-radius:10px;
  background:var(--admin-shell-bg);
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]{
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  min-width:0;
  padding:0!important;
}
.admin-customer-table .admin-reference-stack .admin-reference-action{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:28px!important;
  min-height:28px!important;
  margin:0!important;
  padding:0 8px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6px!important;
  overflow:hidden;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:10px!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-overflow:ellipsis;
}
.admin-customer-table .admin-reference-stack .admin-reference-action>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]>.admin-reference-action,
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]>details:not([open])>.admin-reference-action,
.admin-customer-table .admin-reference-stack>.admin-reference-action--worklog{
  border-top:1px solid color-mix(in srgb,var(--admin-shell-border) 78%,transparent)!important;
}
.admin-customer-table .admin-reference-stack .admin-reference-action:hover{
  background:var(--admin-shell-soft)!important;
}
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]>details{
  box-sizing:border-box;
  width:100%!important;
  max-width:none;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]>details[open]{
  position:relative;
  z-index:8;
  width:260px!important;
  max-width:min(260px,calc(100vw - 2rem));
  border:1px solid #fde68a!important;
  border-radius:10px!important;
  background:#fffbeb!important;
  box-shadow:0 12px 30px rgba(15,23,42,.14)!important;
}
.admin-customer-table .admin-reference-stack>[data-customer-note-tools]>details[open]>.admin-reference-action{
  width:100%!important;
  border-bottom:1px solid #fde68a!important;
  background:transparent!important;
}
html[data-theme="dark"] .admin-customer-table .admin-reference-stack>[data-customer-note-tools]>details[open]{
  border-color:#78350f!important;
  background:#2b2112!important;
}


/* v408: reference actions use SVG-only icons. Emoji/text glyphs have platform-
   specific side bearings, so a fixed flex slot alone cannot make their visible
   ink edges line up. Every reference icon now shares the same 24x24 SVG viewBox
   and the same 16px box, which makes both icon and label columns deterministic. */
.admin-reference-icon{
  box-sizing:border-box!important;
  width:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  height:16px!important;
  min-height:16px!important;
  max-height:16px!important;
  flex:0 0 16px!important;
  display:block!important;
  overflow:visible!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.admin-customer-table .admin-reference-stack .admin-reference-action>.admin-reference-icon,
.admin-customer-card__reference-grid .admin-reference-icon{
  margin:0!important;
  padding:0!important;
  transform:none!important;
}

/* v484 staff avatar: the current user owns their profile photo from every admin page. */
.admin-sidebar__avatar{position:relative;display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;overflow:visible;border:0;border-radius:50%;background:#e2e8f0;color:#475569;cursor:pointer}
.admin-sidebar__avatar>img,.admin-sidebar__avatar>[data-profile-avatar-fallback]{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;object-fit:cover;overflow:hidden;font-size:16px}
.admin-sidebar__avatar>i{position:absolute;right:-2px;bottom:-2px;display:grid;width:14px;height:14px;place-items:center;border:2px solid var(--admin-shell-bg);border-radius:50%;background:#0a84ff;color:#fff;font:900 10px/1 sans-serif;font-style:normal}
.admin-sidebar__avatar.is-uploading{opacity:.55;pointer-events:none}
.admin-sidebar-collapsed .admin-sidebar__avatar{width:36px;height:36px;flex-basis:36px}
.admin-sidebar-collapsed .admin-sidebar__avatar>img,.admin-sidebar-collapsed .admin-sidebar__avatar>[data-profile-avatar-fallback]{width:36px;height:36px}
[data-theme="dark"] .admin-sidebar__avatar{background:#334155;color:#e2e8f0}

.admin-sidebar__account:has(.admin-sidebar__avatar){overflow:visible}

/* v486: header message popover is a compact conversation list, not mailbox tabs. */
.admin-message-popover[data-message-unified="1"] .admin-message-popover__head{justify-content:space-between}
.admin-message-popover__compose{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:#0a84ff;font:700 21px/1 -apple-system,BlinkMacSystemFont,sans-serif;text-decoration:none}
.admin-message-popover__compose:hover{background:var(--admin-shell-soft)}
.admin-message-popover__all{display:block;padding:10px 12px;color:#0a84ff;font-size:10px;font-weight:850;text-align:center;text-decoration:none;border-top:1px solid var(--admin-shell-border)}
.admin-message-conversation-link{grid-template-columns:36px minmax(0,1fr) auto!important;align-items:center;text-decoration:none}.admin-message-item__meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.admin-message-item__unread{display:grid;min-width:20px;height:20px;padding:0 5px;place-items:center;border-radius:999px;background:#0a84ff;color:#fff;font-size:9px;font-weight:900;line-height:1}
.admin-message-conversation-avatar{display:grid;width:36px;height:36px;place-items:center;overflow:hidden;border-radius:50%;background:#d1d1d6;color:#fff;font-size:12px;font-weight:850}
.admin-message-conversation-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.admin-message-popover[data-message-unified="1"] .admin-message-list{max-height:390px}

/* Pending external admin account: intentionally no admin navigation or business shell. */
.admin-pending-page{min-height:100dvh;margin:0;background:radial-gradient(circle at 18% 12%,rgba(66,174,197,.15),transparent 36%),var(--admin-shell-soft);color:var(--admin-shell-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.admin-pending-shell{min-height:100dvh;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}
.admin-pending-card{box-sizing:border-box;width:min(100%,460px);padding:1.35rem;border:1px solid var(--admin-shell-border);border-radius:1.35rem;background:var(--admin-shell-bg);box-shadow:0 24px 70px rgba(7,24,32,.14);text-align:center}
.admin-pending-card .admin-login-brand{text-align:left}
.admin-pending-icon{width:54px;height:54px;display:grid;place-items:center;margin:1.1rem auto .7rem;border-radius:50%;background:color-mix(in srgb,var(--admin-shell-accent) 12%,var(--admin-shell-bg));color:var(--admin-shell-accent);font-size:1.4rem;font-weight:950}
.admin-pending-card h1{margin:.2rem 0 .45rem;font-size:1.35rem;line-height:1.2}
.admin-pending-card>p{margin:0 auto;max-width:360px;color:var(--admin-shell-muted);font-size:.78rem;line-height:1.65}
.admin-pending-identity{display:grid;gap:.18rem;margin:1rem 0;padding:.8rem;border:1px solid var(--admin-shell-border);border-radius:.85rem;background:var(--admin-shell-soft);text-align:left}
.admin-pending-identity span{color:var(--admin-shell-accent);font-size:.62rem;font-weight:950}
.admin-pending-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}
.admin-pending-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--admin-shell-muted);font-size:.66rem}
.admin-pending-state{margin:.5rem 0 .85rem;color:var(--admin-shell-muted);font-size:.68rem;font-weight:850}
.admin-pending-logout{min-height:42px;padding:0 .9rem;border:1px solid var(--admin-shell-border);border-radius:.7rem;background:var(--admin-shell-bg);color:var(--admin-shell-text);font:inherit;font-size:.72rem;font-weight:900;cursor:pointer}
.admin-pending-logout:hover{background:var(--admin-shell-soft)}

.admin-login-phone{display:grid;gap:.5rem;margin:.15rem 0 .75rem}.admin-login-phone__toggle{min-height:46px;width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid color-mix(in srgb,var(--admin-shell-accent) 42%,var(--admin-shell-border));border-radius:.75rem;background:color-mix(in srgb,var(--admin-shell-accent) 7%,var(--admin-shell-bg));color:var(--admin-shell-text);font:inherit;font-size:.8rem;font-weight:950;cursor:pointer}.admin-login-phone__toggle:hover{background:color-mix(in srgb,var(--admin-shell-accent) 12%,var(--admin-shell-bg))}.admin-login-phone__icon{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--admin-shell-accent);color:#fff;font-size:.72rem}.admin-login-phone__panel{display:grid;gap:.48rem;padding:.62rem;border:1px solid var(--admin-shell-border);border-radius:.78rem;background:var(--admin-shell-soft)}.admin-login-phone__panel[hidden],.admin-login-phone__row[hidden]{display:none!important}.admin-login-phone__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.admin-login-phone__row input{box-sizing:border-box;min-width:0;height:42px;padding:0 .65rem;border:1px solid var(--admin-shell-border);border-radius:.65rem;background:var(--admin-shell-bg);color:var(--admin-shell-text);font:inherit;font-size:.8rem;outline:none}.admin-login-phone__row input:focus{border-color:var(--admin-shell-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-shell-accent) 15%,transparent)}.admin-login-phone__row button{min-height:42px;padding:0 .72rem;border:0;border-radius:.65rem;background:var(--admin-shell-accent);color:#fff;font:inherit;font-size:.69rem;font-weight:950;cursor:pointer;white-space:nowrap}.admin-login-phone__row button:disabled{opacity:.56;cursor:wait}.admin-login-phone__status{min-height:.9rem;margin:0;color:var(--admin-shell-muted);font-size:.62rem;font-weight:800;line-height:1.45}.admin-login-phone__status.is-error{color:#b91c1c}.admin-login-phone__status.is-success{color:#15803d}@media(max-width:420px){.admin-login-phone__row{grid-template-columns:1fr}.admin-login-phone__row button{width:100%}}[data-theme="dark"] .admin-login-phone__status.is-error{color:#fca5a5}[data-theme="dark"] .admin-login-phone__status.is-success{color:#86efac}

/* v563: admin desktop readability floor. Previous fixes only covered mobile; desktop tables and dialogs must not use micro typography. */
@media(min-width:761px){
  body.admin-layout-enabled main :where(.customer-v2-table,.customer-v2-table *, .customer-current-work,.customer-current-work *, .customer-schedule-modal,.customer-schedule-modal *){
    font-size:14px;
  }
  .customer-schedule-modal .admin-schedule-editor__mode,
  .customer-schedule-modal .admin-schedule-editor__field-label,
  .customer-schedule-modal .admin-schedule-editor__legacy,
  .customer-schedule-modal .admin-schedule-editor__status,
  .customer-schedule-modal .admin-calendar-editor-note{
    font-size:14px!important;
  }
  .customer-schedule-modal .admin-schedule-editor__inputs input,
  .customer-schedule-modal .admin-schedule-editor__money input,
  .customer-schedule-modal .admin-staff-multiselect__button{
    font-size:15px!important;
  }
}
.admin-login-approval-detail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem 1rem;padding:1rem;border:1px solid var(--admin-border,#dbe4ea);border-radius:14px;background:rgba(148,163,184,.08)}
.admin-login-approval-detail span{color:#64748b;font-size:.82rem;font-weight:800}.admin-login-approval-detail strong{min-width:0;overflow-wrap:anywhere}
.admin-login-approval-note{margin:.9rem 0;color:#64748b;font-size:.86rem;line-height:1.55}
.admin-login-approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.admin-login-approval-actions button{min-height:46px;border-radius:12px;border:1px solid #cbd5e1;font-weight:900;cursor:pointer}
.admin-login-approval-actions .is-reject{background:#fff1f2;color:#be123c;border-color:#fecdd3}.admin-login-approval-actions .is-approve{background:#047857;color:#fff;border-color:#047857}
.admin-login-approval-back{display:block;margin-top:1rem;text-align:center;font-weight:800;color:#475569;text-decoration:none}
.admin-login-phone__status[data-state="success"]{color:#047857}.admin-login-phone__status[data-state="error"]{color:#be123c}.admin-login-phone__status[data-state="pending"]{color:#64748b}


/* v608: compact footer connectivity/offline-readiness indicator. */
.admin-shared-footer__right{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin-left:auto}
@media(max-width:640px){.admin-shared-footer__right{width:100%;justify-content:flex-end}}

.admin-offline-nav{position:relative;width:100%;border:0;text-align:left}
.admin-offline-nav small{margin-left:auto;padding:.1rem .4rem;border-radius:999px;background:rgba(14,116,144,.1);color:#0e7490;font-size:.62rem;font-weight:900}
.admin-offline-dialog[hidden]{display:none}
.admin-offline-dialog{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:18px}
.admin-offline-dialog__backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.52)}
.admin-offline-dialog__card{position:relative;width:min(440px,100%);padding:18px;border:1px solid var(--admin-shell-border,#dbe4ea);border-radius:22px;background:var(--admin-shell-bg,#fff);box-shadow:0 24px 70px rgba(15,23,42,.28);color:var(--admin-shell-text,#0f172a)}
.admin-offline-dialog__card header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-offline-dialog__card header div{display:grid;gap:2px}.admin-offline-dialog__card header strong{font-size:1.15rem}.admin-offline-dialog__card header small{color:#64748b;font-weight:700}
.admin-offline-dialog__card header>button{width:42px;height:42px;border:0;border-radius:13px;background:#f1f5f9;font-size:1.55rem;color:#334155}
.admin-offline-dialog__state{margin-top:16px;padding:13px 14px;border-radius:14px;background:#fff7ed;color:#9a3412;font-weight:950}
.admin-offline-dialog__state[data-ready="1"]{background:#ecfdf5;color:#047857}
.admin-offline-dialog__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.admin-offline-dialog__stats span{display:grid;gap:3px;padding:11px 7px;border:1px solid #e2e8f0;border-radius:13px;text-align:center}.admin-offline-dialog__stats b{font-size:1rem}.admin-offline-dialog__stats small{font-size:.68rem;color:#64748b;font-weight:750}
.admin-offline-dialog__card p{margin:14px 2px;color:#64748b;font-size:.82rem;line-height:1.55;font-weight:650}
.admin-offline-dialog__prepare{width:100%;min-height:48px;border:0;border-radius:14px;background:#0e7490;color:#fff;font-weight:950;font-size:.92rem}.admin-offline-dialog__prepare:disabled{opacity:.55}
.admin-offline-dialog__progress{margin-top:10px;text-align:center;color:#475569;font-size:.75rem;font-weight:800}
body.admin-offline-dialog-open{overflow:hidden}
@media(max-width:640px){.admin-offline-dialog{align-items:end;padding:0}.admin-offline-dialog__card{width:100%;border-radius:24px 24px 0 0;padding:20px 18px max(22px,env(safe-area-inset-bottom))}}

/* Availability lights stay beside their normal navigation destinations. */
.admin-nav-connectivity{margin-left:auto;display:inline-grid;place-items:center;width:26px;height:26px;flex:0 0 26px;cursor:pointer;border-radius:50%}
.admin-nav-connectivity i{width:9px;height:9px;border-radius:50%;background:#ef4444;animation:admin-availability-pulse 1.4s ease-in-out infinite}
.admin-nav-connectivity[data-state=online] i{background:#22c55e}
.admin-nav-connectivity[data-state=online][data-ready="1"] i{animation:none}
.admin-nav-connectivity[data-state=offline-ready] i{background:#eab308}
.admin-nav-connectivity[data-state=offline-unavailable] i{background:#ef4444}
@keyframes admin-availability-pulse{50%{opacity:.3;box-shadow:0 0 0 3px currentColor}}
@media(prefers-reduced-motion:reduce){.admin-nav-connectivity i{animation:none}}

.admin-sidebar-collapsed .admin-nav-link:has([data-admin-nav-connectivity]){position:relative;padding-right:16px}
.admin-sidebar-collapsed .admin-nav-link:has([data-admin-nav-connectivity])>[data-admin-i18n]{display:none}
.admin-sidebar-collapsed .admin-nav-link>[data-admin-nav-connectivity]{display:grid;position:absolute;right:0;width:16px}
@media(max-width:1100px){.admin-sidebar-collapsed .admin-nav-link:has([data-admin-nav-connectivity])>[data-admin-i18n]{display:inline}.admin-sidebar-collapsed .admin-nav-link>[data-admin-nav-connectivity]{position:static;margin-left:auto;width:26px}}

/* Closed native dialogs must not leave interactive descendants over the page. */
body.admin-layout-enabled dialog:not([open]){display:none!important;pointer-events:none!important}
.admin-date-field[hidden],.admin-datetime-field[hidden]{display:none!important}

@media (max-width: 560px) {
  .admin-schedule-editor__modes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* A single selected schedule fills its container on create and edit. */
.admin-lead-schedule-inputs.admin-schedule-editor__inputs--install{grid-template-columns:minmax(0,1fr) 82px}
.admin-lead-schedule-inputs.admin-schedule-editor__inputs--install>.admin-schedule-editor__field:first-child{grid-column:auto}
.admin-lead-schedule-inputs.admin-schedule-editor__inputs--install>.admin-schedule-editor__field:nth-child(3){grid-column:1/-1}
.admin-lead-schedule-card :is(.admin-schedule-editor__field,.form-control){min-width:0}
@media(max-width:460px){.admin-lead-schedule-inputs.admin-schedule-editor__inputs--install{grid-template-columns:minmax(0,1fr) 72px}}

@media(max-width:460px){
 .admin-lead-work-modes .admin-schedule-editor__mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center;gap:3px;padding:5px 2px;align-content:center;min-height:60px}
 .admin-lead-work-modes .admin-schedule-editor__mode>input{justify-self:end}
 .admin-lead-work-modes .admin-schedule-editor__mode>span[aria-hidden]{justify-self:start}
 .admin-lead-work-modes .admin-schedule-editor__mode>span:last-child{grid-column:1/-1;min-width:0;text-align:center;white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-height:1.2}
}

/* Customer editor group headings sit inside their surface, clear of borders. */
.admin-lead-option-group{min-width:0;display:grid;gap:.5rem;padding:.65rem;border:1px solid var(--admin-shell-border);border-radius:.75rem;background:var(--bm-surface-soft,#f1f5f9);color:var(--admin-shell-text)}
.admin-lead-option-group__title{display:block;position:static;margin:0;padding:0;font-size:.78rem;font-weight:900;line-height:1.4}
