.portal-home {max-width:1400px;margin:0 auto;min-width:0}
.portal-home-head {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px}
.portal-home-head h1 {margin:4px 0;font-size:clamp(26px,3vw,36px)}
.portal-home-head p {margin:4px 0}
.portal-home-head>[data-home-forward] {min-height:56px;display:flex;align-items:center;justify-content:center;gap:10px}
.portal-shortcuts {display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 20px}
.portal-shortcuts>a {min-height:48px;display:flex;align-items:center;justify-content:center}
.portal-home-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.portal-home-grid>.panel {min-width:0;margin:0 0 20px}
.portal-home .person {padding:12px 0;min-height:48px}
.portal-home .person-main {min-width:0;overflow-wrap:anywhere}
.portal-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.portal-metrics>a {display:flex;flex-direction:column;gap:8px;border:1px solid #d8dee7;background:white;padding:16px;color:#1e3a5f;text-decoration:none;border-radius:8px;min-width:0}
.portal-metrics strong {font-size:clamp(23px,2.2vw,32px);overflow-wrap:anywhere}
.portal-period {margin-bottom:8px}
.portal-report-details,.portal-admin-tools {margin:14px 0;border-top:1px solid #d8dee7;padding-top:10px}
.portal-report-details>summary,.portal-admin-tools>summary {min-height:48px;padding:12px 0;font-weight:700;cursor:pointer}
.portal-chart ul {list-style:none;padding:0;margin:0}
.portal-chart li {display:grid;grid-template-columns:1fr auto;gap:5px;margin:12px 0;overflow-wrap:anywhere}
.portal-chart-track {grid-column:1/-1;display:block;height:8px;background:#e6e9ee;border-radius:6px;overflow:hidden}
.portal-chart-track>span {display:block;height:100%;background:#1e3a5f;border-radius:6px}
.portal-view-picker .form {max-width:650px}
@media(max-width:999px),(orientation:portrait) {.portal-home-grid{grid-template-columns:1fr;gap:0}.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px) {.portal-home-head{display:block}.portal-home-head>[data-home-forward]{width:100%;margin-top:14px}.portal-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portal-shortcuts>a{font-size:16px;padding:10px 8px}.portal-metrics>a{padding:12px}.portal-home .panel{padding:16px}}

body.bt-shell:not(.present-mode) .portal-home-head>.portal-create-job {background:#c0272d!important;color:#fff!important;border-color:#c0272d!important}

/* v3.45.4: branded management surfaces; existing actions and report values. */
body.bt-shell:not(.present-mode) .portal-brand-hero {position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#1e3a5f 0%,#17385c 100%);border:1px solid #1e3a5f;border-radius:16px;padding:26px 28px;color:#fff;gap:24px;margin-bottom:16px}
body.bt-shell:not(.present-mode) .portal-brand-hero h1 {color:#fff;font-size:clamp(28px,3vw,40px);line-height:1.15;margin:10px 0;letter-spacing:-.035em}
.portal-brand-hero .bt-eyebrow {color:#d7e1ed;margin:12px 0 0;font-size:12px}
.portal-brand-hero .portal-greeting {color:#e2eaf3;margin:8px 0 0;max-width:48ch}
.portal-brand-lockup {display:flex;align-items:center;gap:12px;font-weight:750;font-size:18px;line-height:1.25}
.portal-brand-lockup img {flex:none;display:block}
.portal-brand-lockup small {display:block;color:#d7e1ed;font-size:12px;font-weight:500;margin-top:3px}
.portal-brand-hero>.portal-welcome,.portal-brand-hero>.btn {position:relative;z-index:1;min-width:0}
.portal-brand-hero .portal-bow-tie-watermark, .portal-mark-watermark {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-12deg);width:220px;height:220px;opacity:.13;pointer-events:none;z-index:0}
body.bt-shell:not(.present-mode) .portal-brand-hero>.portal-create-job,body.bt-shell:not(.present-mode) .portal-command-forward {min-height:56px;background:#c0272d!important;border-color:#c0272d!important;color:#fff!important;font-size:20px;font-weight:750;padding:14px 20px;text-align:center}
.portal-section-head {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
body.bt-shell:not(.present-mode) .portal-section-head h2 {font-size:22px;margin:2px 0}
.portal-section-head .bt-eyebrow {margin:0;font-size:11px;letter-spacing:.08em;font-weight:750;color:#526781}
.portal-section-icon {display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#edf2f8;color:#1e3a5f;flex:none}
body.bt-shell:not(.present-mode) .portal-tool-hub {border:1px solid #d8e0ea;border-radius:14px;background:#f7f9fc;padding:18px;margin:16px 0 22px}
.portal-tool-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.portal-tool-grid>a {display:flex;align-items:center;gap:12px;min-width:0;min-height:64px;padding:10px 12px;border:1px solid #d9e2ed;border-radius:10px;text-decoration:none;color:#1e3a5f;background:#fff}
.portal-tool-grid>a>svg {flex:none;width:22px;height:22px}
.portal-tool-grid>a>span {min-width:0;overflow-wrap:anywhere}
.portal-tool-grid strong,.portal-tool-grid small {display:block;line-height:1.3}
.portal-tool-grid strong {font-size:15px;font-weight:750}
.portal-tool-grid small {font-size:13px;color:#526781;margin-top:3px}
.portal-tool-grid>a:hover,.portal-tool-grid>a:focus-visible {border-color:#1e3a5f;background:#eef3f9}
.portal-metrics>a {border-radius:12px;border-top:3px solid #c4d1e2;box-shadow:0 3px 14px #1e3a5f08;padding:20px}
.portal-metrics>a:first-child {background:#1e3a5f;color:#fff;border-color:#1e3a5f}
.portal-metrics>a>span {font-size:13px;font-weight:650}
.portal-metrics strong {font-size:clamp(27px,3vw,40px);font-variant-numeric:tabular-nums;line-height:1.15;letter-spacing:-.035em}
.portal-metrics>a:focus-visible {outline-offset:4px}
.portal-home .portal-period {align-items:end;gap:8px;margin-top:18px}
.portal-chart {border-radius:12px}
.portal-chart h2 {font-size:21px}
.portal-chart-track {height:10px;background:#eaf0f7}
.portal-chart-track>span {background:linear-gradient(90deg,#1e3a5f,#315778)}
.portal-command-center {max-width:1400px;margin:auto;min-width:0}
.portal-command-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}
.portal-command-metrics>div {padding:20px;border:1px solid #d8e0ea;border-radius:12px;background:#f7f9fc;min-width:0}
.portal-command-metrics>div:first-child {background:#1e3a5f;color:#fff;border-color:#1e3a5f}
.portal-command-metrics :is(span,strong,small) {display:block;overflow-wrap:anywhere}
.portal-command-metrics span {font-size:13px;font-weight:650}
.portal-command-metrics strong {font-size:40px;line-height:1.25;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.portal-command-metrics small {font-size:13px;color:#526781;margin-top:4px}
.portal-command-metrics>div:first-child small {color:#d7e1ed}
.portal-command-center .od-inbox-grid {gap:10px}
.portal-command-center .od-inbox-number {background:#1e3a5f;color:white;font-size:28px;min-width:56px;min-height:56px;border-radius:12px}
.portal-command-center .od-inbox-item {border-radius:12px;background:#f9fbfd}
.portal-command-center .od-inbox-item strong {font-size:17px}
.portal-command-center .od-inbox-item small {color:#526781;font-size:13px}
.portal-command-groups {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.bt-shell:not(.present-mode) .portal-command-group {border-radius:14px;margin:0;padding:20px}
.portal-command-group h3 {display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:20px}
.portal-command-group h3>span {display:grid;place-items:center;background:#eef3f9;border-radius:10px;width:38px;height:38px;flex:none}
.portal-command-group nav {display:grid}
.portal-command-group nav>a {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;min-height:56px;border-top:1px solid var(--line);color:#1e3a5f;text-decoration:none}
.portal-command-group nav>a>span:first-child {min-width:0;overflow-wrap:anywhere}
.portal-command-group nav>a strong,.portal-command-group nav>a small {display:block}
.portal-command-group nav>a strong {font-size:16px}
.portal-command-group nav>a small {font-size:13px;color:#526781;margin-top:2px}
.portal-command-group nav>a:hover,.portal-command-group nav>a:focus-visible {background:#f1f5fa}
@media(max-width:999px),(orientation:portrait) {.portal-command-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px) {
 body.bt-shell:not(.present-mode) .portal-brand-hero{padding:20px;border-radius:14px;display:block}
 .portal-brand-hero .portal-bow-tie-watermark, .portal-mark-watermark{right:-55px;width:190px;height:190px;opacity:.09}
 .portal-brand-lockup{font-size:17px}
 .portal-brand-lockup img{width:40px;height:40px}
 .portal-brand-hero>.btn{width:100%;margin-top:16px}
 .portal-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-tool-grid>a{padding:10px;gap:8px;align-items:flex-start}
 .portal-tool-grid>a>svg{width:18px;height:18px;margin-top:2px}
 body.bt-shell:not(.present-mode) .portal-tool-hub{padding:14px}
 .portal-tool-grid strong{font-size:14px}
 .portal-tool-grid small{font-size:12px}
 .portal-command-metrics{gap:8px}
 .portal-command-metrics>div{padding:14px}
 .portal-command-metrics strong{font-size:34px}
 .portal-command-groups{grid-template-columns:1fr}
}

/* Recorded personal sales on the admin landing — per-user home_week(), never company totals. */
.portal-personal-week{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid #d8e0ea;background:#f7f9fc;border-radius:12px;padding:16px 20px;margin:12px 0 20px;color:#1e3a5f}
.portal-personal-week>div{min-width:0}
.portal-personal-week .bt-eyebrow{margin:0 0 5px;font-size:12px;color:#526781}
.portal-personal-week>div>strong,.portal-personal-week>div>small{display:block}
.portal-personal-week>div>small{font-size:12px;color:#526781;margin-top:4px}
.portal-personal-week>a{display:flex;align-items:center;gap:14px;text-decoration:none;color:#1e3a5f;min-height:48px}
.portal-personal-week>a>strong{font-size:clamp(24px,3vw,34px);font-variant-numeric:tabular-nums;white-space:nowrap}
.portal-personal-week>a>span{font-weight:650}
.portal-personal-week>a:focus-visible{outline:3px solid #1d4ed8;outline-offset:4px}
@media(max-width:600px){.portal-personal-week{padding:14px}.portal-personal-week>a{width:100%;justify-content:space-between}}

/* Item #9: one Admin Command Center surface with embedded canonical modules. */
.od-command-hero-actions,.od-command-anchors{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.od-command-hero-actions{position:relative;z-index:1}
.od-command-payroll{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;background:#c0272d!important;color:#fff!important;border-radius:10px;font-weight:750;text-decoration:none;border:2px solid #c0272d}
.od-command-payroll:hover,.od-command-payroll:focus-visible{background:#991b1b!important;color:#fff!important;outline-offset:3px}
.od-command-anchors{position:sticky;top:0;z-index:19;background:var(--card,#fff);border:1px solid var(--border,#dbe1e8);border-radius:12px;padding:10px 14px;margin:12px 0 18px}
.od-command-anchors>a:not(.od-command-payroll){padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-weight:600}
.od-command-operations-section,.od-command-dispatch-section{scroll-margin-top:110px;margin:20px 0;min-width:0}
.od-command-dispatch-section{border-top:2px solid var(--border,#dbe1e8);padding-top:18px}
.od-command-dispatch-section>.portal-section-head{margin:0 0 14px}
.od-command-embedded-operations .portal-home-grid{margin-bottom:14px}
@media(max-width:600px){.od-command-anchors{position:static}.od-command-hero-actions .btn{width:100%}.od-command-payroll{width:100%}}

/* Dispatch entry: responsive availability first, canonical schedule immediately below. */
.od-command-availability{scroll-margin-top:100px;margin:16px 0 20px;min-width:0}
.od-capacity-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.od-capacity-head h2{margin:.2rem 0}
.od-capacity-days{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.od-capacity-days a{display:inline-flex;align-items:center;min-height:44px}
.od-command-capacity-grid{overflow-x:auto;max-width:100%;border:1px solid #d9e2ea;border-radius:10px}
.od-capacity-table{border-collapse:separate;border-spacing:0;min-width:520px;width:100%;font-size:13px}
.od-capacity-table th,.od-capacity-table td{min-width:130px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px;vertical-align:middle;text-align:center}
.od-capacity-table thead th{border-top:4px solid #cbd5e1;background:#f1f5f9;position:sticky;top:0}
.od-capacity-table tr>th:first-child{min-width:90px;position:sticky;left:0;z-index:1;background:#f1f5f9}
.od-capacity-open{display:inline-flex;min-height:46px;min-width:84px;align-items:center;justify-content:center;padding:8px 14px;background:#d1fae5;color:#065f46;border-radius:8px;border:1px solid #6ee7b7;font-weight:700;text-decoration:none}
.od-capacity-open:hover,.od-capacity-open:focus-visible{outline:3px solid #1e3a5f;outline-offset:2px;background:#a7f3d0}
.od-capacity-blocked{display:block;color:#64748b;overflow-wrap:anywhere}
@media(max-width:600px){.od-capacity-head{display:block}.od-capacity-days{margin:12px 0}.od-capacity-table th,.od-capacity-table td{min-width:125px}}

/* v3.46.2: Correct the white button regression in the Command Center hero. */
body.bt-shell:not(.present-mode) .portal-brand-hero .od-command-hero-actions a.od-command-payroll.btn{background:#c0272d!important;background-image:none!important;border:2px solid #c0272d!important;color:#fff!important;box-shadow:0 4px 12px rgba(127,29,29,.24);text-shadow:none!important}
body.bt-shell:not(.present-mode) .portal-brand-hero .od-command-hero-actions a.od-command-payroll.btn:is(:hover,:focus-visible){background:#991b1b!important;border-color:#991b1b!important}
/* #11: wide-screen board prioritizes scanning the crew, not an oversized side rail. */
@media(min-width:1100px) and (pointer:fine){
  .od-command-dispatch-section .sd-main{grid-template-columns:minmax(0,1fr)}
  .od-command-dispatch-section .sd-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));position:static}
  .od-command-dispatch-section .sd-board-wrap{max-width:100%;overscroll-behavior-x:contain}
  .od-command-dispatch-section .sd-board{grid-template-columns:110px repeat(var(--cols),minmax(255px,1fr));min-width:max-content}
  .od-command-dispatch-section .sd-colh{min-height:94px;gap:5px;padding:13px 10px;align-items:flex-start}
  .od-command-dispatch-section .sd-colh b{font-size:16px;line-height:1.3}
  .od-command-dispatch-section .sd-colh small{font-size:12px}
  .od-command-dispatch-section .sd-cell{padding:12px;gap:10px;min-height:128px}
  .od-command-dispatch-section .sd-rowh{padding:14px;font-size:14px;position:sticky;left:0;z-index:2}
  .od-command-dispatch-section .sd-job{font-size:14px;line-height:1.45;padding:12px;gap:5px}
  .od-command-dispatch-section .sd-job .sd-a{font-size:12px}
}
/* #10: search bar lives inside the permission-scoped menu and works on phones. */
.od-admin-menu-find{padding:12px 13px 8px;color:#fff}
.od-admin-menu-find label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}
.od-admin-menu-find input{width:100%;max-width:100%;min-height:44px;padding:10px 12px;background:#fff;color:#1e3a5f;border:2px solid #bac6d6;border-radius:9px;font-size:16px}
.od-admin-menu-find input:focus-visible{outline:3px solid #79b7ff;outline-offset:2px}
.od-admin-menu-find small{display:block;font-size:11px;line-height:1.4;margin-top:5px;color:#c8d6e9}
.sidenav-links a[hidden],.sidenav-links details[hidden]{display:none!important}
/* #14: keep the dispatch action first and readable on a compact command home. */
@media(max-width:650px){
  .portal-command-center{width:100%;min-width:0}
  .portal-command-center .portal-command-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .portal-command-center .portal-command-metrics>div{padding:12px}
  .portal-command-center .portal-command-metrics strong{font-size:27px}
  .portal-command-center .portal-command-groups{grid-template-columns:1fr;gap:12px}
  .portal-command-center .od-command-hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .portal-command-center .od-command-anchors{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}
}

/* #12: Command Center dispatch availability uses the same compact mobile model. */
@media(max-width:700px){
  .od-command-capacity-grid:has(.od-capacity-mobile-chooser){overflow:visible;max-width:100%;border:0}
  .od-capacity-mobile-chooser{display:grid;gap:6px;margin-bottom:12px}
  .od-capacity-mobile-chooser label{font-weight:750;font-size:14px}
  .od-capacity-mobile-chooser select{min-height:48px;width:100%;padding:10px 12px;font-size:16px;border:1px solid #94a3b8;background:#fff;border-radius:9px}
  .od-capacity-mobile-list{display:grid;gap:9px;padding-top:10px}
  .od-capacity-mobile-row{display:grid;grid-template-columns:minmax(80px,.7fr) minmax(0,1.3fr);gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:6px 0;min-width:0}
  .od-capacity-mobile-row>*{min-width:0;overflow-wrap:anywhere}
  .od-capacity-mobile-row a{width:100%}
}
@media(max-width:700px){
  .od-command-capacity-grid,.od-capacity-mobile-chooser,.od-capacity-mobile-chooser select,.od-capacity-mobile-list,.od-capacity-mobile-row,.od-capacity-mobile-row .od-capacity-open{box-sizing:border-box;min-width:0;max-width:100%}
  .od-capacity-mobile-row .od-capacity-open{min-width:0}
}

/* Bundle 1: the phone home follows availability -> selected day -> schedule. */
.od-phone-only,.od-capacity-phone-label{display:none}
.od-admin-quick{margin:16px 0}
/* #24: six high-contrast admin actions in two rows, customizable links unchanged. */
.od-admin-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.od-admin-quick-grid a{display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;min-height:92px;padding:14px 10px;border:2px solid #c0272d;background:#c0272d;border-radius:12px;color:#fff;text-align:center;text-decoration:none;font-size:15px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}
.od-admin-quick-grid a strong{color:#fff}
.od-admin-quick-grid svg{width:25px;height:25px;flex:none;stroke:currentColor}
.od-admin-quick-grid a:hover{background:#c0272d;border-color:#c0272d;color:#fff}
.od-admin-quick-grid a:focus-visible{outline:3px solid #1e3a5f;outline-offset:3px}
.od-next-slot-list{display:grid;gap:9px;min-width:0}
.od-next-day{font-size:15px;margin:16px 0 2px}
.od-next-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border:1px solid var(--line);border-left:5px solid var(--tech-color,#64748b);border-radius:10px;background:#fff;min-width:0}
.od-next-slot-text{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere;font-size:15px}
.od-next-slot-text span{font-size:14px;color:#526781}
.od-next-schedule{grid-column:1/-1;min-height:44px;display:flex;align-items:center;color:#174e85;text-decoration:underline;font-size:14px}
.od-next-more{margin:12px 0;min-height:48px;width:100%}
.od-next-more[hidden]{display:none!important}
@media(max-width:700px){
 .od-phone-only,.od-capacity-phone-label{display:block}
 .od-capacity-desktop-label,.od-capacity-selected-day,.od-capacity-days,.od-capacity-desktop-copy,.od-availability-nav{display:none!important}
 .od-command-capacity-grid,.od-availability-grid{display:block!important;overflow:visible!important;border:0;max-width:100%;min-width:0}
 .od-next-slot-list,.od-next-slot,.od-next-slot a,.od-next-slot button{box-sizing:border-box;max-width:100%;min-width:0}
 .od-next-slot .od-av-cell{min-height:48px;padding:10px;white-space:normal}
 .od-command-availability .btn-row{display:grid;gap:8px}
 .od-admin-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .od-admin-quick-grid a{font-size:12px;min-height:84px;padding:9px 5px}
 .od-tech-quick .hm-tools{grid-template-columns:repeat(3,minmax(0,1fr))}
 .od-phone-dispatch-home .od-command-anchors,
 .od-phone-dispatch-home .portal-command-metrics,
 .od-phone-dispatch-home #operations-inbox,
 .od-phone-dispatch-home .portal-command-tools,
 .od-phone-dispatch-home #operations-summary,
 .od-phone-dispatch-home .dispatch-queue-links,
 .od-phone-dispatch-home .od-dispatch-filter,
 .od-phone-dispatch-home .od-workin-updates,
 .od-phone-dispatch-home #online-requests,
 .od-phone-dispatch-home #backlog,
 .od-phone-dispatch-home #pending-opportunities,
 .od-phone-dispatch-home #estimate-schedule-requests,
 .od-phone-dispatch-home .od-dispatch-intake,
 .od-phone-dispatch-home .od-never-scheduled,
 .od-phone-dispatch-home #unassigned-visits{display:none!important}
 /* Day browsing on phones is via chronological openings; existing Move forms stay intact. */
 body:not(.bt-page-schedule) .sch-mobile .day-nav,body:not(.bt-page-schedule) .wk>.filters{display:none!important}
 .od-phone-dispatch-home .portal-brand-lockup,.od-phone-dispatch-home .portal-welcome>.bt-eyebrow,.od-phone-dispatch-home .portal-greeting{display:none}
 .od-phone-dispatch-home .portal-brand-hero{padding:16px;min-height:0;gap:12px}
 .od-phone-dispatch-home .portal-brand-hero h1{font-size:24px;margin:0}
 .od-phone-dispatch-home .portal-bow-tie-watermark, .portal-mark-watermark{display:none}
}

/* #31: compact quick-actions in Command Center header — 3x2 grid, smaller than main grid */
.od-command-hero-quick{max-width:280px;width:100%}
.od-admin-quick-compact{margin:0}
.od-admin-quick-compact .od-admin-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:280px}
.od-admin-quick-compact .od-admin-quick-grid a{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;height:44px;padding:4px 3px;border:2px solid #c0272d;background:#c0272d;border-radius:8px;color:#fff;text-align:center;text-decoration:none;font-size:10px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}
.od-admin-quick-compact .od-admin-quick-grid a strong{color:#fff;font-size:10px}
.od-admin-quick-compact .od-admin-quick-grid svg{width:14px;height:14px;flex:none;stroke:currentColor}
.od-admin-quick-compact .od-admin-quick-grid a:hover{background:#c0272d;border-color:#c0272d;color:#fff}
.od-quick-customize{display:inline-block;margin-top:6px;font-size:12px;color:#fff;text-decoration:underline;opacity:.85}
.od-quick-customize:hover{opacity:1}

/* Smart Search: local approved-pricebook lookup. */
.btn-ai-pricing{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;margin-left:8px}
.btn-ai-pricing:hover{filter:brightness(1.1)}
.eb-search{display:flex;align-items:center}
.eb-search #pb-search{flex:1}
.eb-ai-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:16px;padding-top:5vh}
.eb-ai-modal[hidden]{display:none}
.eb-ai-panel{background:#fff;border-radius:16px;max-width:560px;width:100%;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}
.eb-ai-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.eb-ai-head strong{font-size:18px}
.eb-ai-head button{background:none;border:none;font-size:20px;cursor:pointer;color:#666}
.eb-ai-hint{color:#666;font-size:14px;margin:0 0 12px}
.eb-ai-panel #eb-ai-input{width:100%;padding:12px;border:2px solid #7c3aed;border-radius:10px;font-size:16px;margin-bottom:16px;box-sizing:border-box}
.eb-ai-results{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto}
.eb-ai-card{border:1px solid #e0e0e0;border-radius:10px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.eb-ai-card-info{flex:1}
.eb-ai-card-info strong{display:block;font-size:15px}
.eb-ai-card-info .eb-ai-price{font-size:18px;font-weight:700;color:#1c8042}
.eb-ai-card-info .eb-ai-cat{font-size:12px;color:var(--bt-text-secondary)}
.eb-ai-add{background:#c0272d;color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer;white-space:nowrap}
.eb-ai-add:hover{background:#c0272d}
.eb-ai-no-match{text-align:center;padding:20px;color:#666}
.eb-ai-no-match strong{display:block;font-size:16px;color:#333;margin-bottom:8px}
.btn-ai-pricing:disabled{opacity:.5;cursor:not-allowed}
.eb-search #pb-search{min-width:0}
.eb-ai-modal{z-index:4000;bottom:auto;height:var(--smart-height,100dvh);box-sizing:border-box;padding:12px;align-items:flex-start;overscroll-behavior:contain}
.eb-ai-panel{box-sizing:border-box;max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.eb-ai-results{max-height:none;overflow:visible}
.eb-ai-card-info{min-width:0;overflow-wrap:anywhere}
.eb-ai-card-info p{font-size:13px;margin:.35rem 0}
.eb-ai-head button,.eb-ai-add{min-height:44px;min-width:44px}
.eb-ai-add:disabled{opacity:.55;cursor:wait}
.eb-ai-panel label{font-weight:700;margin-bottom:6px}
@media(max-width:420px){.eb-search{flex-wrap:wrap;gap:8px}.eb-search #pb-search{flex-basis:100%}.btn-ai-pricing{margin-left:0}.eb-ai-panel{padding:14px}.eb-ai-card{gap:8px;padding:10px}.eb-ai-add{padding:10px}}

/* Mobile pricebook category grid redo — clean uniform cards */
@media (max-width: 899px) {
  .eb-cats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .eb-cat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    min-height: 110px !important;
    padding: 14px 10px !important;
    gap: 8px !important;
  }
  .eb-cat-top {
    grid-column: 1 / -1 !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
    text-align: left !important;
    min-height: 64px !important;
  }
  .eb-cat-ic {
    width: 40px !important;
    height: 40px !important;
    flex: none !important;
  }
  .eb-cat-name {
    font-size: 14px !important;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .eb-cat .eb-cat-n, .eb-cat small {
    display: none !important;
  }
}
@media (min-width: 560px) and (max-width: 899px) {
  .eb-cats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Enhanced mobile category cards — bigger colorful icons, easier tapping */
@media (max-width: 899px) {
  .eb-cat {
    min-height: 128px !important;
    border-radius: 16px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
    transition: transform .12s ease, box-shadow .12s ease !important;
  }
  .eb-cat:active {
    transform: scale(.96) !important;
    box-shadow: 0 1px 1px rgba(0,0,0,.1) !important;
  }
  .eb-cat-ic {
    width: 52px !important;
    height: 52px !important;
    border-radius: 14px !important;
  }
  .eb-cat-ic svg {
    width: 28px !important;
    height: 28px !important;
  }
  /* Colorful icon backgrounds by tone */
  .eb-cat.tone-1 .eb-cat-ic { background: #dbeafe !important; color: #1d4ed8 !important; }
  .eb-cat.tone-2 .eb-cat-ic { background: #fce7f3 !important; color: #be185d !important; }
  .eb-cat.tone-3 .eb-cat-ic { background: #d1fae5 !important; color: #047857 !important; }
  .eb-cat.tone-4 .eb-cat-ic { background: #fef3c7 !important; color: #b45309 !important; }
  .eb-cat.tone-5 .eb-cat-ic { background: #e0e7ff !important; color: #4338ca !important; }
  .eb-cat.tone-6 .eb-cat-ic { background: #ccfbf1 !important; color: #0f766e !important; }
  .eb-cat-top .eb-cat-ic { background: #fef9c3 !important; color: #a16207 !important; }
}

/* Mobile pricebook category grid redo — clean uniform cards (merged from v3.52.0) */
@media (max-width: 899px) {
  .eb-cats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .eb-cat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    min-height: 128px !important;
    padding: 14px 10px !important;
    gap: 8px !important;
    border-radius: 16px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
  }
  .eb-cat:active {
    transform: scale(.96) !important;
  }
  .eb-cat-top {
    grid-column: 1 / -1 !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
    text-align: left !important;
    min-height: 64px !important;
  }
  .eb-cat-ic {
    width: 52px !important;
    height: 52px !important;
    border-radius: 14px !important;
    flex: none !important;
  }
  .eb-cat-ic svg {
    width: 28px !important;
    height: 28px !important;
  }
  .eb-cat-name {
    font-size: 14px !important;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .eb-cat .eb-cat-n, .eb-cat small {
    display: none !important;
  }
}
@media (min-width: 560px) and (max-width: 899px) {
  .eb-cats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* ══════════════════════════════════════════════════════════════════
   Phase 3b — Phone + iPad Command Center
   Applies at ≤ 1099px (below the desktop .cc-wrap breakpoint).
   Light backgrounds; navy/red Bow Tie tokens only.
   All tap targets ≥ 44px.
   ══════════════════════════════════════════════════════════════════ */

/* ── KPI stat tile scroll row ─────────────────────────────────── */
.od-cc-stat-row{
  display:flex;
  gap:8px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding:0 0 6px;
  margin:12px 0 4px;
  scrollbar-width:none;
}
.od-cc-stat-row::-webkit-scrollbar{display:none}
.od-cc-tile{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-width:72px;
  min-height:64px;
  padding:10px 12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  text-align:center;
}
.od-cc-tile-val{
  display:block;
  font-size:24px;
  font-weight:800;
  line-height:1;
  color:#1e3a5f;
  font-variant-numeric:tabular-nums;
}
.od-cc-tile-label{
  display:block;
  font-size:10px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#5d6b82;
}
.od-cc-tile--active .od-cc-tile-val{color:#c0272d}
.od-cc-tile--done .od-cc-tile-val{color:#157347}
.od-cc-tile--warn{border-color:#fca5a5}
.od-cc-tile--warn .od-cc-tile-val{color:#c0272d}

/* ── Horizontal day strip ─────────────────────────────────────── */
.od-cc-day-strip{
  display:flex;
  gap:6px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding:4px 0 8px;
  margin:6px 0 12px;
  scrollbar-width:none;
}
.od-cc-day-strip::-webkit-scrollbar{display:none}
.od-cc-day-pill{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-width:46px;
  min-height:56px;
  padding:8px 10px;
  background:#f3f6fb;
  border:1.5px solid var(--line);
  border-radius:12px;
  text-decoration:none;
  color:#1e3a5f;
  transition:background .12s,border-color .12s;
}
.od-cc-day-pill:hover,.od-cc-day-pill:focus-visible{
  background:#e7edf6;
  border-color:#b1c0d4;
}
.od-cc-day-pill--today{
  border-color:#1e5aa8;
  background:#eff5ff;
}
.od-cc-day-pill--sel{
  background:#1e3a5f;
  border-color:#1e3a5f;
  color:#fff;
}
.od-cc-day-pill--sel:hover,.od-cc-day-pill--sel:focus-visible{
  background:#152a45;
  border-color:#152a45;
}
.od-cc-day-name{
  display:block;
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1;
}
.od-cc-day-num{
  display:block;
  font-size:17px;
  font-weight:800;
  line-height:1.1;
}

/* ── Tech availability cards ──────────────────────────────────── */
.od-cc-avail-section{margin:0 0 14px}
.od-cc-avail-eyebrow{
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#5d6b82;
  margin:0 0 8px;
}
.od-cc-tech-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
@media(min-width:520px){
  .od-cc-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.od-cc-tech-card{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  min-height:64px;
}
.od-cc-tech-avatar{
  flex:none;
  width:40px;
  height:40px;
  border-radius:50%;
  background:#1e3a5f;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1;
  user-select:none;
}
.od-cc-tech-info{
  flex:1 1 0;
  min-width:0;
  display:grid;
  gap:1px;
}
.od-cc-tech-name{
  font-size:14px;
  font-weight:750;
  color:#1e3a5f;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.od-cc-tech-slot{
  font-size:12px;
  color:#1e5aa8;
  font-weight:650;
}
.od-cc-tech-load{
  font-size:12px;
  color:#5d6b82;
}
.od-cc-tech-btn{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  min-width:80px;
  padding:8px 12px;
  background:#c0272d;
  color:#fff;
  border-radius:9px;
  font-size:13px;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
}
.od-cc-tech-btn:hover,.od-cc-tech-btn:focus-visible{
  background:#c12a31;
  outline:3px solid #1e3a5f;
  outline-offset:2px;
}

/* ── Needs Attention list ─────────────────────────────────────── */
.od-cc-attention{margin:12px 0 6px}
.od-cc-attn-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:1px;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#dce5ec;
}
.od-cc-attn-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:12px 14px;
  background:#fff;
  min-height:48px;
}
.od-cc-attn-link{
  font-size:14px;
  font-weight:650;
  color:#1e3a5f;
  text-decoration:none;
  flex:1 1 0;
  min-width:0;
}
.od-cc-attn-link:hover{color:#c0272d;text-decoration:underline}
.od-cc-attn-badge{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:22px;
  padding:2px 6px;
  background:#c0272d;
  color:#fff;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}

/* ── Show Phase 3b additions only on phone/tablet ─────────────── */
.od-cc-stat-row,
.od-cc-day-strip,
.od-cc-avail-section,
.od-cc-attention{
  display:none;
}
@media(max-width:1099px){
  .od-cc-stat-row,
  .od-cc-day-strip,
  .od-cc-avail-section,
  .od-cc-attention{
    display:flex;   /* stat-row and day-strip are flex */
  }
  .od-cc-avail-section,
  .od-cc-attention{
    display:block;
  }
}
