[hidden]{display:none !important}
.user-card-copy{min-width:0;flex:1}.auth-trigger{border:1px solid var(--sidebar-border);background:transparent;color:var(--sidebar-text);border-radius:8px;padding:6px 8px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.auth-trigger:hover{background:var(--sidebar-hover);color:var(--sidebar-active-text)}html.auth-locked,body.auth-locked{height:100%;overflow:hidden}.auth-gate{position:fixed;inset:0;z-index:100;min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#dff6f7 0,#f4f7f8 42%,#edf3f4 100%)}.auth-gate-card{width:min(420px,100%);padding:40px 32px;text-align:center;background:#fff;border:1px solid #e3eaec;border-radius:20px;box-shadow:0 12px 30px rgba(20,48,63,.08)}.auth-gate-mark{width:54px;height:54px;margin:0 auto 20px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#45c4cf,#1989a1);color:#fff;font-size:24px;font-weight:800}.auth-gate-card h1{font-size:29px;margin:0 0 10px}.auth-gate-card p{margin:0 auto 24px;color:#526168;line-height:1.5}.auth-gate-card small{display:block;color:#526168;margin-top:15px;font-size:12px}.auth-gate-button{width:100%;font-size:15px;padding:13px 16px}
:root{--navy:#1c1917;--blue:#0e7490;--cyan:#22d3ee;--bg:#faf9f7;--ink:#1c1917;--muted:#78716c;--line:#e7e5e4;--white:#ffffff;--green:#059669;--amber:#f59e0b;--red:#ef4444;--purple:#7c3aed;--shadow:0 2px 10px rgba(0,0,0,.05);--sidebar-hover:#292524;--sidebar-active:#292524;--sidebar-text:#a8a29e;--sidebar-active-text:#fafaf9;--sidebar-border:#292524;--accent-active:#f59e0b}html.dark{--navy:#0a0a0a;--blue:#10b981;--cyan:#34d399;--bg:#111111;--ink:#fafafa;--muted:#737373;--line:#262626;--white:#1a1a1a;--green:#10b981;--red:#f87171;--shadow:0 2px 10px rgba(0,0,0,.35);--sidebar-hover:#141414;--sidebar-active:#141414;--sidebar-text:#737373;--sidebar-active-text:#fafafa;--sidebar-border:#1a1a1a;--accent-active:#10b981}html{transition:background-color .2s ease}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;transition:background-color .2s ease,color .2s ease}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.side{background:var(--navy);color:var(--sidebar-text);padding:22px 12px;display:flex;flex-direction:column;gap:28px;transition:background-color .2s ease}.brand{color:#fafaf9;display:flex;align-items:center;gap:10px;font-size:17px}.brand-mark{width:32px;height:32px;background:linear-gradient(135deg,var(--amber),#d97706);border-radius:9px;display:grid;place-items:center;font-weight:700;color:#fff;flex-shrink:0}.side nav{display:grid;gap:3px}.nav-item{border:0;background:transparent;color:var(--sidebar-text);text-align:left;padding:9px 11px;border-radius:9px;font:inherit;font-size:13.5px;cursor:pointer;display:flex;gap:11px;align-items:center;transition:background .15s ease,color .15s ease,border-color .15s ease;border-left:2px solid transparent;position:relative}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-active-text)}.nav-item.active{background:var(--sidebar-active);color:var(--sidebar-active-text);border-left-color:var(--accent-active)}.nav-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-icon svg{width:18px;height:18px;transition:transform .15s ease;display:block}.nav-item:hover .nav-icon svg{transform:translateY(-1px) scale(1.07)}.nav-item:active .nav-icon svg{transform:scale(.9);transition-duration:80ms}.btn-icon{display:inline-flex;align-items:center;vertical-align:middle;margin-inline-end:4px;pointer-events:none}.nav-item-dark-toggle{border:0;background:transparent;color:var(--sidebar-text);text-align:left;padding:9px 11px;border-radius:9px;font:inherit;font-size:13.5px;cursor:pointer;display:flex;gap:11px;align-items:center;width:100%;transition:background .15s ease,color .15s ease;margin-top:4px}.nav-item-dark-toggle:hover{background:var(--sidebar-hover);color:var(--sidebar-active-text)}.nav-item-secondary{color:var(--sidebar-text);font-size:12px;opacity:.7}.nav-item-secondary:hover{opacity:1}.user-card{margin-top:auto;border-top:1px solid var(--sidebar-border);padding:14px 5px 2px;display:flex;gap:10px;align-items:center;transition:border-color .2s}.user-card small{display:block;color:var(--sidebar-text);margin-top:3px;font-size:12px}.avatar{width:32px;height:32px;background:var(--amber);color:#1c1917;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}main{padding:28px 38px 52px;max-width:1600px;width:100%;margin:0 auto;transition:background-color .2s ease}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.2px;color:var(--muted);margin:0 0 5px;text-transform:uppercase}h1{font-size:24px;margin:0;letter-spacing:-.5px;color:var(--ink)}.header-actions{display:flex;gap:10px;align-items:center}button{font-family:inherit}.language,.bell{border:1px solid var(--line);background:var(--white);border-radius:10px;width:36px;height:36px;font-weight:700;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}.language:hover,.bell:hover{border-color:var(--blue);background:var(--white)}.bell{color:var(--blue);font-size:14px}.shift-pill{border:0;background:var(--navy);color:#fafaf9;padding:10px 16px;border-radius:10px;font-weight:600;cursor:pointer;transition:opacity .15s}.shift-pill:hover{opacity:.9}.offline{background:#fff5d9;border:1px solid #f2dc9e;color:#78570a;padding:12px 15px;border-radius:10px;margin-bottom:17px;font-size:14px}.hidden{display:none}.grid{display:grid;gap:18px}.home-grid{grid-template-columns:1.6fr 1fr 1fr}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);transition:background-color .2s ease,border-color .2s ease}.card h2,.card h3{margin:0}.card h2{font-size:16px}.card h3{font-size:14px}.sub{font-size:13px;color:var(--muted);margin:5px 0 0}.target{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin:20px 0 8px}.progress{height:8px;background:#e9f0f2;border-radius:8px;overflow:hidden}.progress>span{height:100%;display:block;background:linear-gradient(90deg,var(--cyan),var(--blue));border-radius:8px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.tag,.badge{font-size:12px;font-weight:700;padding:5px 9px;border-radius:20px;white-space:nowrap}.tag.green{color:#08764c;background:#e2f5eb}.tag.amber{color:#8a5a00;background:#fff0d9}.tag.red{color:#b33139;background:#fee8e9}.tag.purple{color:#5c439e;background:#eee9fd}.section-title{margin:28px 0 13px;display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:18px}.text-button{border:0;background:none;color:var(--blue);font-weight:700;cursor:pointer}.appointment{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:52px 1fr auto;gap:10px}.appointment:last-child{border:0}.time{font-size:13px;color:var(--blue);font-weight:700}.appointment b{font-size:14px}.appointment small{display:block;color:var(--muted);margin-top:3px}.two-col{grid-template-columns:1.35fr 1fr}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric .num{font-size:25px;font-weight:700;margin-top:10px}.metric small{color:var(--muted)}.metric[onclick]{cursor:pointer;user-select:none}.metric[onclick]:hover{box-shadow:0 4px 20px rgba(22,46,58,.12);border-color:var(--cyan);transform:translateY(-1px);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.controls{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.filter{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#53636b;font-size:13px;cursor:pointer;white-space:nowrap}.filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}.board{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:14px;overflow:auto;padding-bottom:10px}.stage{background:#edf3f4;border-radius:12px;padding:12px;min-height:420px}.stage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700;font-size:13px}.count{background:#dbe6e9;color:#4d5c63;border-radius:20px;padding:3px 7px;font-size:12px}.deal{background:#fff;border-radius:10px;padding:13px;margin:9px 0;border:1px solid #e3eaec;box-shadow:0 2px 3px rgba(22,46,58,.03)}.deal-title{font-size:14px;font-weight:700;margin:7px 0 4px}.deal small{color:var(--muted);font-size:12px}.deal .deal-value{font-size:16px;font-weight:700;margin:13px 0}.deal-footer{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px}.deal-footer .next{white-space:nowrap;margin-inline-start:auto}.next{border:0;background:#e8f6f7;color:var(--blue);font-weight:700;padding:7px 9px;border-radius:7px;cursor:pointer;font-size:12px}.temp{font-size:12px;font-weight:700}.temp.hot{color:#b33139}.temp.warm{color:#8a5a00}.temp.cold{color:#176b87}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{border:0;background:none;padding:12px 0;color:var(--muted);font-weight:600;cursor:pointer}.tab.active{color:var(--blue);border-bottom:2px solid var(--blue)}.event{position:relative;padding:0 0 22px 28px}.event:before{content:"";position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;background:var(--cyan);border:3px solid #def4f4}.event.old:before{background:#a5b3b9;border-color:#edf1f2}.event strong{font-size:14px}.event p,.event small{font-size:13px;color:var(--muted);margin:5px 0}.visit-list{border-left:3px solid var(--cyan);padding:0 0 0 15px;margin:14px 0}.visit-list b{font-size:14px}.visit-list p{color:var(--muted);font-size:13px;margin:5px 0}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;color:#56656d;font-size:12px;letter-spacing:.4px;padding:10px;border-bottom:1px solid var(--line)}.table td{padding:14px 10px;border-bottom:1px solid var(--line)}.approval{border:1px solid #f1d899;background:#fffdf4;border-radius:12px;padding:16px;margin-bottom:18px}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;padding:18px;z-index:200}.modal{background:var(--white);border:1px solid var(--line);border-radius:16px;width:min(530px,100%);max-height:90vh;overflow:auto;padding:24px;box-shadow:0 25px 80px rgba(0,0,0,.25);transition:background-color .2s,border-color .2s;animation:modal-in .35s cubic-bezier(0.16,1,0.3,1)}@keyframes modal-in{from{opacity:0;transform:scale(0.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal h2{font-size:20px;margin:0 0 6px}.modal p{color:var(--muted);font-size:13px;line-height:1.5}.field{display:grid;gap:6px;margin:13px 0}.field label{font-size:12px;font-weight:700;color:#53636b}.field input,.field select,.field textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--white);color:var(--ink);transition:background .2s,border-color .2s,color .2s}.field textarea{height:75px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.secondary,.primary,.danger{border:0;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer;transition:opacity .15s}.secondary{background:var(--line);color:var(--ink)}.primary{background:var(--navy);color:#fafaf9}.primary:hover,.danger:hover,.secondary:hover{opacity:.88}.primary:active,.secondary:active,.danger:active,.next:active{transform:scale(0.98);transition:transform 60ms ease,opacity .15s}.danger{background:var(--red);color:#fff}html.dark .primary{background:#1e293b;color:#fafafa;border:1px solid var(--line)}html.dark .secondary{background:var(--line);color:var(--ink)}.success{background:#e3f5ec;border:1px solid #a7dbbd;color:#126e46;padding:12px;border-radius:9px;font-size:13px}.rtl{font-family:'IBM Plex Sans Arabic','DM Sans',sans-serif}.rtl .nav-item{text-align:right}.rtl .table th,.rtl .table td{text-align:right}.rtl .event{padding:0 28px 22px 0}.rtl .event:before{right:0;left:auto}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.side{position:fixed;z-index:8;left:-270px;top:0;bottom:0;width:250px;transition:.25s}.side.open{left:0}main{padding:24px 17px 85px}.home-grid,.two-col{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start}.header-actions{gap:6px}.shift-pill span{display:none}.side:after{content:'☰';position:fixed;top:13px;left:13px;background:var(--navy);padding:8px;border-radius:8px;color:#fff}.board{grid-template-columns:repeat(4,235px)}h1{font-size:22px}}@media(max-width:520px){.appointment{grid-template-columns:48px 1fr}.appointment>.tag{display:none}.tabs{gap:13px;overflow:auto}.header-actions .bell{display:none}.metric-grid{gap:9px}.card{padding:16px}}
/* Manager reports: compact filters, scrollable data tables, and print-only output. */
.report-heading{margin-bottom:18px}.report-actions{display:flex;gap:9px;flex-wrap:wrap}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin-bottom:18px}.report-filters .field{margin:0}.report-grid{margin-top:18px}.report-table-wrap{overflow:auto}.report-breakdown{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.report-breakdown>div{min-width:130px;max-width:220px;padding:12px;background:#f6f9fa;border-radius:10px}.report-breakdown b{display:block;font-size:20px}.report-breakdown small{display:block;margin-top:4px;color:var(--muted);overflow-wrap:anywhere}@media(max-width:760px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.report-heading{align-items:flex-start;flex-direction:column}.report-metrics{grid-template-columns:repeat(2,1fr)}}@media print{body{background:#fff}.side,header,.menu-toggle,.mobile-nav,.sync-status,.offline,.report-actions,#toast-root{display:none!important}main{padding:0;max-width:none}.app-shell{display:block!important;min-height:0}.auth-gate:not([hidden])~.app-shell{display:none!important}.card{box-shadow:none;break-inside:avoid}.reports{display:block}.report-filters{grid-template-columns:repeat(4,1fr)}.report-table-wrap{overflow:visible}.table{font-size:12px}.table th,.table td{padding:6px 4px}}
/* Active-shift consent/status and scoped operational locations. */
.location-tracking-status{background:#e3f5ec;border:1px solid #a7dbbd;color:#126e46;padding:10px 12px;border-radius:10px;margin-bottom:17px;font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.location-tracking-status span{margin-right:auto}.location-tracking-status.needs_attention,.location-tracking-status.permission_or_gps_unavailable{background:#fff5d9;border-color:#f2dc9e;color:#78570a}.location-tracking-status.requesting{background:#eef7fb;border-color:#bddfea;color:#24596d}.location-tracking-status button{min-height:36px}.consent-choice{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#f6f9fa;border:1px solid var(--line);border-radius:10px;color:#334851;font-size:14px;line-height:1.4}.consent-choice input{width:20px;height:20px;flex:0 0 auto;margin:0}.location-permission-hint{margin:12px 0;padding:10px 12px;border:1px solid #f2dc9e;border-radius:10px;background:#fff5d9;color:#78570a;font-size:13px;line-height:1.45}.location-grid{margin-top:18px}.location-list{display:grid;gap:10px;margin-top:14px}.location-row{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.location-row b,.location-row small{display:block}.location-row small{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.35}.location-row a{text-decoration:none;white-space:nowrap}@media(max-width:520px){.location-row{align-items:flex-start;flex-direction:column}.location-row a{width:100%;text-align:center}}@media print{.location-tracking-status,.locations{display:none!important}}

/* Toast notification system — replaces all alert()/confirm()/prompt() native dialogs */
#toast-root{position:fixed;top:18px;right:18px;z-index:9000;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:360px;width:calc(100% - 36px)}.toast{padding:12px 16px 15px;border-radius:12px;font-size:13px;font-weight:600;pointer-events:auto;animation:toast-in .2s ease;box-shadow:0 4px 18px rgba(0,0,0,.15);line-height:1.4;word-break:break-word;position:relative;overflow:hidden}.toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(0,0,0,.18);transform-origin:left;animation:toast-countdown linear forwards}@keyframes toast-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}.toast.info{background:#e0f2fe;border:1px solid #7dd3fc;color:#0c4a6e}.toast.success{background:#dcfce7;border:1px solid #86efac;color:#14532d}.toast.error{background:#fee2e2;border:1px solid #fca5a5;color:#7f1d1d}.toast.warning{background:#fef3c7;border:1px solid #fcd34d;color:#78350f}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rtl #toast-root{right:auto;left:18px}
/* Inline field validation error messages */
.field-error{color:#b33139;font-size:12px;font-weight:600;margin-top:4px;display:block}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#de5b61;background:#fff5f5}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(23,107,135,.38);outline-offset:2px}
.wf-label{color:inherit;font-size:inherit;font-weight:inherit}.previsit-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:12px;border:1px solid #bddfea;border-radius:10px;background:#eef7fb;color:#24596d;font-size:12px}.previsit-brief strong{grid-column:1/-1;font-size:13px}
.rtl .previsit-brief{text-align:right}
/* Restored review additions: ensure empty status components remain hidden. */
.sync-status.hidden,.location-tracking-status.hidden{display:none}
/* Visit sync failures stay visible and specific so a Rep knows whether to retry or wait. */

/* Manager follow-up queue: compact operational priority view. */
.follow-up-queue{margin:16px 0}.follow-up-list{display:grid;gap:8px}.follow-up-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line,#e5eaf0)}.follow-up-row small{display:block;margin-top:3px;color:var(--muted,#526168)}.follow-up-due{font-size:13px;color:var(--muted,#526168);text-align:right}.follow-up-missing,.follow-up-overdue{background:#fee2e2;color:#991b1b}.follow-up-upcoming{background:#ede9fe;color:#5b21b6}@media(max-width:640px){.follow-up-row{grid-template-columns:auto minmax(0,1fr)}.follow-up-due{grid-column:2;text-align:left}}
/* Contacts stay focused on finding a person, current operational context, and starting a visit. */
.contacts-directory{margin-top:18px}.contact-search{max-width:560px;margin-top:0}.contact-list{display:grid;gap:0}.contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.contact-start{white-space:nowrap}.local-contact-note{margin-top:14px}@media(max-width:640px){.contact-row{grid-template-columns:1fr;gap:10px}.contact-start{width:100%}}

/* Shared modal accessibility: visible dismiss control and screen-reader-only label. */
.modal{position:relative}.modal-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);font-size:24px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.modal-close:focus-visible{outline:3px solid rgba(69,196,207,.5);outline-offset:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rtl .modal-close{right:auto;left:12px}

/* Sync state chips and next-action chips on deal cards */
.deal-chips{margin-bottom:6px}.sync-chip{font-size:12px;font-weight:700;padding:3px 7px;border-radius:20px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.sync-device{color:#526168;background:#edf1f2}.sync-pending{color:#8a5a00;background:#fff0d9}.sync-failed{color:#b33139;background:#fee8e9}
/* Facility brief text link inside deal cards */
.text-link{border:0;background:none;color:var(--blue);font:inherit;font-size:12px;cursor:pointer;padding:0;text-decoration:underline dotted}
/* Global floating action button */
#global-fab-root{position:fixed;bottom:80px;right:18px;z-index:120}.global-fab{width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;font-size:26px;line-height:1;border:0;cursor:pointer;box-shadow:0 4px 18px rgba(16,43,63,.35);display:grid;place-items:center}.global-fab:hover{background:var(--blue)}.fab-sheet{position:absolute;bottom:60px;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 8px 28px rgba(0,0,0,.15);display:flex;flex-direction:column;gap:4px;min-width:160px}.fab-action{border:0;background:none;text-align:left;padding:10px 14px;border-radius:8px;color:var(--ink);font:600 13px inherit;cursor:pointer;white-space:nowrap}.fab-action:hover{background:#edf3f4}@media(max-width:960px){#global-fab-root{bottom:100px}}
/* Connected field workflow: concise directory, full contact pages, progressive check-in. */
.page-heading{margin-bottom:16px}.back-button{border:0;background:transparent;color:var(--blue);font:700 13px inherit;padding:0 0 10px;cursor:pointer}.add-contact-inline{margin:-2px 0 8px;text-align:left}.contact-type-filters{display:flex;gap:8px;overflow:auto;padding:2px 0 12px}.contact-open{border:0;background:transparent;text-align:left;padding:0;color:var(--ink);font:inherit;cursor:pointer;display:grid;gap:3px}.contact-open b{font-size:15px}.contact-open small,.contact-open span{color:var(--muted);font-size:12px}.contact-profile{max-width:840px}.profile-summary h2{margin:12px 0 4px;font-size:25px}.profile-summary>p{margin:0;color:var(--muted)}.profile-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.profile-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.checkin-flow .field{margin:16px 0}.checkin-flow .field label{font-size:13px}.checkin-flow #visit-success-fields,.checkin-flow #visit-unsuccessful-fields{border-left:3px solid var(--cyan);padding-left:14px;margin-top:12px}.rtl .checkin-flow #visit-success-fields,.rtl .checkin-flow #visit-unsuccessful-fields{border-left:0;border-right:3px solid var(--cyan);padding-left:0;padding-right:14px}.checkin-flow .modal-actions{position:sticky;bottom:0;background:#fff;padding:12px 0 4px;margin-top:20px;z-index:1;border-top:1px solid var(--line)}@media(max-width:640px){.profile-sections{grid-template-columns:1fr}.contact-row{padding:14px 0}.contact-open{min-height:44px}.contact-type-filters .filter{white-space:nowrap}.profile-actions .primary,.profile-actions .secondary{flex:1}.checkin-flow #visit-success-fields,.checkin-flow #visit-unsuccessful-fields{padding-left:10px}}

/* Visit step progress bar */
.visit-steps{display:flex;gap:0;list-style:none;margin:0 0 20px;padding:0;counter-reset:none}
.vstep{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--muted);text-align:center;position:relative}
.vstep+.vstep::before{content:"";position:absolute;top:12px;left:-50%;width:100%;height:2px;background:var(--line)}
.vstep-done+.vstep::before,.vstep-active::before,.vstep-done::before,.vstep-done+.vstep-active::before{background:var(--cyan)}
.vstep-num{width:26px;height:26px;border-radius:50%;background:var(--line);color:var(--muted);display:grid;place-items:center;font-size:12px;font-weight:700;z-index:1;border:2px solid var(--line)}
.vstep-active .vstep-num{background:var(--navy);color:#fff;border-color:var(--navy)}
.vstep-done .vstep-num{background:var(--cyan);color:#fff;border-color:var(--cyan)}
.vstep-active{color:var(--ink)}
.vstep-label{font-size:12px;line-height:1.3;max-width:80px}
@media(max-width:480px){.vstep-label{display:none}}
/* Workflow path mobile — hide text labels */
@media(max-width:480px){.wf-label{display:none}}
/* Getting started checklist */
.setup-checklist{margin-bottom:18px;border-left:4px solid var(--amber)}
.setup-steps{display:grid;gap:12px}
.setup-step{display:flex;align-items:flex-start;gap:12px}
.setup-dot{width:22px;height:22px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0;margin-top:2px}
.setup-dot.done{background:var(--green);color:#fff}

/* Global search */
.global-search-wrap{position:relative;display:flex;align-items:center}
.global-search-wrap input{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:inherit;font-size:13px;width:200px;background:var(--white);color:var(--ink);outline:none;transition:background .2s,border-color .2s}
.global-search-wrap input:focus{border-color:var(--cyan);width:240px;transition:width .2s}
.search-results{position:absolute;top:calc(100% + 6px);left:0;min-width:280px;background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.15);z-index:500;padding:6px;display:flex;flex-direction:column;gap:2px;transition:background .2s}
.search-result-item{border:0;background:none;text-align:left;padding:9px 12px;border-radius:8px;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;display:flex;gap:8px;align-items:center;justify-content:space-between}
.search-result-item:hover{background:#edf3f4}
.search-result-item small{color:var(--muted);font-size:12px}
.search-empty{padding:10px 12px;color:var(--muted);font-size:13px;margin:0}.search-section-label{font-size:12px;font-weight:700;letter-spacing:.6px;color:var(--muted);padding:6px 12px 2px;text-transform:uppercase}
@media(max-width:760px){.global-search-wrap{display:none}}

/* Notification panel */
.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 32px rgba(0,0,0,.18);z-index:500;overflow:hidden;transition:background .2s}
.notif-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}
.notif-section-label{margin:0;padding:8px 16px 4px;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.notif-item{padding:10px 16px;border-bottom:1px solid var(--line);display:grid;gap:3px}
.notif-item b{font-size:13px}
.notif-item small{color:var(--muted);font-size:12px}
.notif-item:last-of-type{border-bottom:0}
.notif-overdue{background:#fff5f5}
.notif-overdue b{color:#b33139}
.notif-count{background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:2px 6px;border-radius:12px;min-width:18px;text-align:center}
#notif-dot{color:var(--amber-text);font-size:12px}
.header-actions{position:relative}
@media(max-width:520px){.notification-panel{width:calc(100vw - 36px);right:-10px}}

/* Planner week view */
.view-toggle{display:flex;gap:4px}
.view-toggle button{padding:6px 12px;font-size:12px}
.planner-local-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;overflow:auto}
.week-col{background:#f9fbfb;border:1px solid var(--line);border-radius:10px;padding:8px;min-height:120px;display:flex;flex-direction:column;gap:4px}
.week-col-today{background:#eef7fb;border-color:var(--cyan)}
.week-day-label{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px;text-align:center}
.week-col-today .week-day-label{color:var(--blue)}
.week-item{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:5px 7px;word-break:break-word}
.week-item.overdue{background:#fee8e9;border-color:#fca5a5;color:#7f1d1d}
@media(max-width:760px){.week-grid{grid-template-columns:repeat(4,minmax(100px,1fr))}}

/* Kanban drag-and-drop */
.deal[draggable=true]{cursor:grab}
.deal[draggable=true]:active{cursor:grabbing;opacity:.85}
.stage.dragover{background:#d9f2f4;border:2px dashed var(--cyan)}

/* 5-column board for 5 pipeline stages */
.board{grid-template-columns:repeat(5,minmax(180px,1fr))}
@media(max-width:1100px){.board{grid-template-columns:repeat(4,minmax(180px,1fr))}}
@media(max-width:800px){.board{grid-template-columns:repeat(4,230px)}}

/* Settings tabs */
.settings-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:0;padding-bottom:0}
.settings-tab{border:0;background:none;padding:10px 14px;color:var(--muted);font:600 13px inherit;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.settings-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.settings-tab:hover:not(.active){color:var(--ink)}
.settings-tab-body{border-radius:0 0 14px 14px;border-top:0;margin-top:0}
/* Admin settings: tabs fade, users list, collapsible sections, save bar */
.settings-tabs-wrap{position:relative}
.settings-tabs-wrap::before,.settings-tabs-wrap::after{content:"";position:absolute;top:0;bottom:1px;width:28px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.settings-tabs-wrap::before{left:0;background:linear-gradient(to right,var(--surface,var(--white,#fff)),transparent)}
.settings-tabs-wrap::after{right:0;background:linear-gradient(to left,var(--surface,var(--white,#fff)),transparent)}
.settings-tabs-wrap.fade-l::before,.settings-tabs-wrap.fade-r::after{opacity:1}
.settings-tab:focus-visible{outline:2px solid var(--accent,var(--blue));outline-offset:-2px;border-radius:6px}
.user-filters{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0 0 10px}
.user-filters input,.user-filters select{width:100%;min-height:44px;font:inherit;font-size:14px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--surface,var(--white));color:var(--ink)}
.user-count{margin:0 0 6px}
.contact-row.user-row{grid-template-columns:minmax(0,1fr);gap:8px;align-items:start}
.user-info{min-width:0}
.user-info>b,.user-info>small{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.user-info>small.user-email{unicode-bidi:plaintext;text-align:start}
.terr-list{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:2px 8px}
.user-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.user-actions>button{min-height:40px;white-space:normal}
.user-self-note{color:var(--muted)}
.role-consequences{margin:10px 0 0;padding-inline-start:20px;font-size:13px;line-height:1.5}
.role-consequences li{margin:6px 0}
@media(max-width:600px){
  .user-filters{grid-template-columns:1fr 1fr}.user-filters .user-search{grid-column:1/-1}
  .user-actions>button{flex:1 1 40%;min-width:0;padding-inline:8px;min-height:44px}
}
.settings-section{border:1px solid var(--line);border-radius:12px;margin:0 0 12px;background:var(--surface,var(--white))}
.settings-section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 16px;min-height:48px;border-radius:12px}
.settings-section>summary::-webkit-details-marker{display:none}
.settings-section>summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;flex:none}
.settings-section[open]>summary::before{transform:rotate(45deg)}
.settings-section>summary h3{margin:0;font-size:15px}
.settings-section>summary:focus-visible{outline:2px solid var(--accent,var(--blue));outline-offset:-2px}
.settings-section-body{padding:2px 16px 16px}
.settings-section.danger-zone{border-color:var(--red)}
.settings-section.danger-zone>summary h3{color:var(--red)}
.wf-savebar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;margin:0 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface,var(--white));font-size:13px;font-weight:600;color:var(--green)}
.wf-savebar.dirty{border-color:var(--amber);color:var(--ink);background:var(--surface-2,var(--surface,var(--white)))}
.wf-remove{padding-inline:10px;font-size:13px;min-width:44px;min-height:44px;display:inline-grid;place-items:center;color:var(--red);flex-shrink:0}

/* Custom field values on deal cards */
.deal-custom-fields{border-top:1px solid var(--line);padding-top:8px;margin:8px 0;display:grid;gap:3px}
.deal-custom-fields small{color:var(--muted);font-size:12px}

/* Live data loading bar */
.live-load-bar{height:3px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--cyan));background-size:200% 100%;animation:load-slide 1.2s linear infinite;border-radius:0;margin-bottom:0;position:fixed;top:0;left:0;right:0;z-index:1000}
@keyframes load-slide{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* Home action queue: appointment row with done button */
.appointment-row{display:flex;align-items:stretch;gap:0}
.appointment-row .appointment{flex:1;border-bottom:1px solid var(--line)}
.appointment-row:last-child .appointment{border:0}
.action-done-btn{border:0;background:#e3f5ec;color:#126e46;font-size:16px;font-weight:700;padding:0 14px;cursor:pointer;border-bottom:1px solid var(--line);flex-shrink:0;transition:background .15s}
.action-done-btn:hover{background:#a7dbbd;color:#063a23}
.appointment-row:last-child .action-done-btn{border:0}

/* Deal title hover cue */
button.deal-title:hover{text-decoration:underline;color:var(--blue)}

/* Settings: 3-col system settings grid */
@media(max-width:640px){#settings-quarterly-target{width:100%}}

/* Loading skeletons */
.skeleton-card{background:linear-gradient(90deg,#edf1f2 25%,#e0e8ea 50%,#edf1f2 75%);background-size:200% 100%;animation:skeleton-slide 1.4s ease infinite;border-radius:10px;margin-bottom:9px}
@keyframes skeleton-slide{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-group{display:grid;gap:14px;grid-template-columns:1.6fr 1fr 1fr;margin-bottom:18px}
@media(max-width:960px){.skeleton-group{grid-template-columns:1fr}}

/* Empty state with action inside Kanban column */
.stage .sub button.text-button{display:block;margin:8px auto 0}

/* Tablet breakpoint: prevent sidebar from overlapping main at ~900px */
@media(min-width:961px) and (max-width:1180px){.app-shell{grid-template-columns:200px 1fr}main{padding:24px 24px 52px}.board{grid-template-columns:repeat(4,minmax(160px,1fr))}}
@media(min-width:961px) and (max-width:1040px){.app-shell{grid-template-columns:180px 1fr}.side{padding:20px 10px}}

/* Pipeline header actions flex-wrap for narrow desktop */
@media(max-width:1100px){.view-toggle button{padding:6px 9px;font-size:12px}}

/* Dismissible offline banner */
.offline{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dismiss-banner{border:0;background:transparent;color:#78570a;font-size:15px;font-weight:700;cursor:pointer;padding:0 2px;line-height:1;opacity:.7;flex-shrink:0}
.dismiss-banner:hover{opacity:1}

/* Auth gate: loading state hides the sign-in button and shows a spinner */
.auth-gate[data-checking=true] #auth-gate-message{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--blue)}
.auth-gate[data-checking=true] #auth-gate-message::before{content:"";width:18px;height:18px;border:2.5px solid #bddfea;border-top-color:var(--blue);border-radius:50%;animation:gate-spin .7s linear infinite;flex-shrink:0}
@keyframes gate-spin{to{transform:rotate(360deg)}}

/* Notification items: clickable hover state */
.notif-item[onclick]{cursor:pointer}
.notif-item[onclick]:hover{background:#f4f8fa}
.notif-overdue[onclick]:hover{background:#feeeee}
/* Mark all read button in notification panel */
.notif-mark-read{border:0;background:none;color:var(--blue);font:600 12px inherit;cursor:pointer;padding:4px 8px;border-radius:6px;white-space:nowrap}
.notif-mark-read:hover{background:#edf3f4}

/* Reports: local-only visit notice */


/* Workflow configurator */
.wf-config-list{display:grid;gap:8px}
.wf-config-row{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1.4fr) auto;align-items:center;gap:10px;padding:8px 10px;background:#f8fafb;border:1px solid var(--line);border-radius:9px}
.wf-config-row .wf-row-name{font-size:13px;font-weight:600;color:var(--ink)}
.wf-label-input{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:7px;padding:6px 9px;background:#fff;width:100%}
.wf-label-input:focus{outline:2px solid var(--cyan);border-color:var(--cyan)}
/* Toggle switch */
.wf-toggle{position:relative;display:inline-flex;cursor:pointer;flex-shrink:0}
.wf-toggle input{position:absolute;opacity:0;width:0;height:0}
.wf-toggle-track{width:36px;height:20px;background:var(--line);border-radius:10px;transition:background .2s;flex-shrink:0}
.wf-toggle-track::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.wf-toggle input:checked+.wf-toggle-track{background:var(--green)}
.wf-toggle input:checked+.wf-toggle-track::after{left:19px}
/* Workflow config row without name column (step labels) */
@media(max-width:600px){.wf-config-row{grid-template-columns:36px 1fr;grid-template-rows:auto auto}.wf-label-input{grid-column:1/-1}}

/* ── Dark mode overrides for hardcoded backgrounds ── */
html.dark .filter{background:var(--white);border-color:var(--line);color:var(--muted)}
html.dark .filter.active{background:var(--white);color:var(--blue);border-color:var(--blue)}
html.dark .deal{background:var(--white);border-color:var(--line)}
html.dark .stage{background:#161616}
html.dark .count{background:#262626;color:var(--muted)}
html.dark .next{background:rgba(16,185,129,.12);color:var(--blue)}
html.dark .table th{color:var(--muted)}
html.dark .report-breakdown>div{background:var(--white)}
html.dark .wf-config-row{background:var(--white);border-color:var(--line)}
html.dark .wf-label-input{background:#111111;border-color:var(--line);color:var(--ink)}
html.dark .modal-close{background:var(--white);border-color:var(--line);color:var(--ink)}
html.dark .notif-header{border-color:var(--line)}
html.dark .notif-item{border-color:var(--line)}
html.dark .notif-item b{color:var(--ink)}
html.dark .search-result-item:hover{background:var(--sidebar-hover)}
html.dark .offline{background:#2a1f00;border-color:#78570a;color:#fde68a}
html.dark .week-col{background:#161616;border-color:var(--line)}
html.dark .week-col-today{background:#0d2018;border-color:var(--blue)}
html.dark .week-item{background:var(--white);border-color:var(--line)}
html.dark .approval{background:#1a150a;border-color:#78570a}
html.dark .bar{background:var(--line)}
html.dark .progress{background:var(--line)}
html.dark .contact-row{border-color:var(--line)}
html.dark .tabs{border-color:var(--line)}
html.dark .field label{color:var(--muted)}
html.dark .success{background:rgba(5,150,105,.12);border-color:var(--green);color:var(--green)}
html.dark .sync-status{background:#0d2018;border-color:var(--green);color:var(--green)}
html.dark .auth-trigger{border-color:var(--sidebar-border)}

/* ── Animation & interaction enhancements (v6) ── */

/* Input focus glow */
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(8,145,178,.15);border-color:var(--blue);outline:none}
html.dark .field input:focus,html.dark .field select:focus,html.dark .field textarea:focus{box-shadow:0 0 0 3px rgba(16,185,129,.15);border-color:var(--blue)}

/* Animated progress bar fill (CSS animation from 0 → inline style value) */
.progress>span{animation:progress-fill 650ms cubic-bezier(.25,.46,.45,.94) both;animation-delay:80ms}
@keyframes progress-fill{from{width:0 !important}}

/* Button loading state */
.btn-loading{opacity:.65;pointer-events:none;cursor:not-allowed}
.btn-loading .btn-icon>svg{animation:btn-spin .7s linear infinite}
@keyframes btn-spin{to{transform:rotate(360deg)}}
.btn-done{animation:btn-done-flash .4s ease both}
@keyframes btn-done-flash{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}

/* Page slide transitions */
@keyframes slide-in-right{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes slide-in-left{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
.view-enter{animation:slide-in-right 160ms ease-out}
.view-enter-back{animation:slide-in-left 160ms ease-out}

/* Win moment overlay */
.win-overlay{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:rgba(0,0,0,.55);animation:overlay-fade-in .2s ease}
@keyframes overlay-fade-in{from{opacity:0}to{opacity:1}}
.win-card{background:var(--white);border-radius:20px;padding:32px 28px;text-align:center;width:min(360px,90vw);box-shadow:0 24px 80px rgba(0,0,0,.3);animation:win-card-in .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes win-card-in{from{opacity:0;transform:scale(.85) translateY(18px)}to{opacity:1;transform:scale(1) translateY(0)}}
.win-emoji{font-size:48px;line-height:1;margin-bottom:12px}
.win-title{font-size:22px;font-weight:800;margin:0 0 6px;color:var(--ink)}
.win-doctor{font-size:15px;color:var(--muted);margin:0 0 4px}
.win-amount{font-size:18px;font-weight:700;color:var(--green);margin:0 0 20px}
.win-target-row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px}
.win-bar-wrap{height:8px;background:var(--line);border-radius:8px;overflow:hidden;margin-bottom:20px}
.win-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue));border-radius:8px;width:0;transition:width .8s cubic-bezier(.25,.46,.45,.94) .15s}
html.dark .win-card{background:#1e1e1e;border:1px solid var(--line)}
html.dark .win-overlay{background:rgba(0,0,0,.7)}

/* ── v7 Polish: glassmorphism, hover elevations, pulsing indicators ── */

/* Sticky header with frosted-glass blur */
header{position:sticky;top:0;z-index:15;background:rgba(250,249,247,0.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(231,229,228,0.6);margin-top:-4px;padding-top:16px;padding-bottom:12px}
html.dark header{background:rgba(17,17,17,0.92)}
@media(max-width:960px){header{padding-top:16px;padding-bottom:12px}}

/* Kanban deal card hover elevation */
.deal{transition:transform .18s ease,box-shadow .18s ease}
.deal:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(22,46,58,.12);border-color:#b8d4dc}
html.dark .deal:hover{box-shadow:0 8px 24px rgba(0,0,0,.4);border-color:#2a3a40}

/* Contact row hover highlight */
.contact-row{transition:background .15s ease}
.contact-row:hover{background:#f0f7fb}
html.dark .contact-row:hover{background:rgba(16,185,129,.06)}

/* Pulsing green dot on active-shift pill */
.active-shift{background:var(--green)!important;position:relative}
.active-shift::before{content:'';position:absolute;top:-4px;right:-4px;width:10px;height:10px;border-radius:50%;background:var(--green);animation:shift-pulse 2s ease-in-out infinite}
@keyframes shift-pulse{0%,100%{transform:scale(1);opacity:.9}60%{transform:scale(2.2);opacity:0}}

/* Hot deal pulsing indicator dot */
.deal-hot{border-inline-start:3px solid var(--red)!important}
.deal-hot::after{content:'';position:absolute;top:8px;inset-inline-end:8px;width:8px;height:8px;border-radius:50%;background:var(--red);animation:hot-pulse 2.2s ease-in-out infinite;pointer-events:none}
@keyframes hot-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}65%{box-shadow:0 0 0 7px rgba(239,68,68,0)}}

/* Voice dictation button */
.voice-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--muted);font:600 12px inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}
.voice-btn:hover{border-color:var(--blue);background:#eef7fb;color:var(--blue)}
.voice-btn.recording{background:#fee2e2;border-color:var(--red);color:var(--red);animation:recording-pulse .9s ease-in-out infinite}
@keyframes recording-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.note-field-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.note-field-header label{flex:1;margin-bottom:0!important}
html.dark .voice-btn{border-color:var(--line);background:var(--white);color:var(--muted)}
html.dark .voice-btn:hover{background:rgba(16,185,129,.12);border-color:var(--blue);color:var(--blue)}
@media(max-width:960px){html.dark .mobile-nav{background:rgba(17,17,17,0.94)!important}}
.mobile-nav .nav-item{color:var(--ink)}.mobile-nav .nav-item.active{color:var(--sidebar-active-text)}
/* Disable/Enable sits apart from the everyday actions so it is not hit by mistake next to Reset password. */
.user-actions>.user-status-btn{margin-inline-start:auto;padding-inline:14px}
.user-actions>.user-status-btn.danger-text{color:var(--red);font-weight:600;border:1px solid transparent;border-radius:9px}
.user-actions>.user-status-btn.danger-text:hover{border-color:var(--red);background:transparent}
@media(max-width:720px){.user-actions>.user-status-btn{flex-basis:100%;margin-inline-start:0;margin-top:6px;border-top:1px dashed var(--line);border-radius:0}}

/* v76: deal owner line/filter, deal cards that open the deal */
.deal-open-card{display:block;width:100%;text-align:start;font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.deal-open-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.deal-owner{display:block;color:var(--ink-2);font-size:12px;margin-top:2px}
.deal-rep-filter select{min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit}
.user-summary{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 10px}
.user-sum-chip{padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--ink-2)}
.user-sum-chip b{color:var(--ink)}
.user-group-title{margin:14px 0 6px;font-size:14px}
.user-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-block:16px;scroll-margin-block-start:90px}
.user-pagination button{min-height:44px;min-width:72px}
#user-results{scroll-margin-block-start:90px}

.report-saved-views{margin-block-start:16px;border-block-start:1px solid var(--line);padding-block-start:12px}
.report-saved-views summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.report-saved-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-block:12px}
.report-saved-controls .field{flex:1 1 220px;min-width:0}
.report-saved-controls select,.report-saved-controls input{width:100%;min-width:0}
.report-saved-controls button{min-height:44px}
@media print{.report-saved-views{display:none}}

.brand-undo-toast .toast-action{min-height:44px;min-width:44px}

.report-period-comparison table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}.report-period-comparison th,.report-period-comparison td{text-align:start;vertical-align:top;padding:10px 6px;border-bottom:1px solid var(--line)}.report-period-comparison thead th:first-child{width:30%}.report-period-comparison thead th:last-child{width:20%}.report-period-comparison th small{display:block;margin-top:6px;font-weight:400;line-height:1.45;color:var(--muted)}.report-period-comparison time{display:inline-block}.report-period-comparison tbody td{font-size:16px;font-weight:600}.report-period-comparison tbody tr:last-child>*{border-bottom:0}

/* Rep day route: appointment order, using saved facility pins. */
.planner-view-toggle button{min-height:44px}.planner-day-route{padding:20px}.planner-route-heading{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.planner-route-heading h3{margin:0}.planner-route-heading .sub{max-width:52ch}.planner-route-controls{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.planner-route-controls .field{margin:0}.planner-route-controls input,.planner-route-controls button,.planner-route-actions button{min-height:44px}.planner-route-stops{list-style:none;padding:0;margin:20px 0 0}.planner-route-stops li{display:flex;gap:12px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}.planner-route-number{display:grid;place-items:center;flex:0 0 28px;height:28px;background:var(--surface-2);border-radius:50%;font-weight:700}.planner-route-info{min-width:0;flex:1;display:grid;gap:5px;overflow-wrap:anywhere}.planner-route-info small{color:var(--muted)}.planner-route-actions{display:flex;gap:8px;flex-wrap:wrap;max-width:320px}.planner-route-empty{padding-block:20px}@media(max-width:600px){.planner-day-route{padding:16px}.planner-route-stops li{flex-wrap:wrap}.planner-route-actions{width:100%;margin-inline-start:40px;max-width:none}.planner-route-actions button{flex:1;white-space:normal;min-width:0}.planner-route-controls{width:100%}.planner-route-controls .field{flex:1;min-width:0}.planner-route-controls input{width:100%}}
