:root{--ink:#173332;--muted:#6e7d7c;--line:#dfe8e5;--paper:#fff;--canvas:#f4f7f5;--deep:#123a3a;--teal:#1b7370;--mint:#dff1eb;--coral:#e8765d;--coral-soft:#fff0eb;--amber:#b9771a;--amber-soft:#fff6e2;--green:#3b846b;--shadow:0 14px 40px rgba(23,51,50,.09);--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--deep);color:#fff;padding:28px 18px 20px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 30px}.brand-mark{width:40px;height:40px;border-radius:12px;background:#e5b86a;display:grid;place-items:center}.brand-mark svg{width:28px;fill:var(--deep)}.brand strong,.brand span,.user-card strong,.user-card span{display:block}.brand strong{font-family:Georgia,serif;font-size:20px}.brand span{font-size:11px;color:#a9c3c0;margin-top:2px;letter-spacing:.04em}.sidebar nav{display:grid;gap:6px}.nav-item{width:100%;border:0;border-radius:10px;background:transparent;color:#bad0cd;display:grid;grid-template-columns:24px 1fr auto;align-items:center;text-align:left;gap:10px;padding:12px;font-weight:600}.nav-item:hover,.nav-item.active{background:#285150;color:#fff}.nav-icon{font-size:19px;text-align:center}.nav-count{min-width:22px;padding:3px 6px;border-radius:10px;background:var(--coral);color:#fff;font-size:11px;text-align:center}.sidebar-note{margin-top:auto;background:#1c4847;border:1px solid #356260;border-radius:14px;padding:15px;color:#dce9e7}.sidebar-note .note-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#d8ece5;color:var(--deep);font-weight:800;margin-bottom:10px}.sidebar-note strong{display:block;font-size:13px}.sidebar-note p{font-size:11px;line-height:1.55;color:#adc7c3;margin:6px 0 0}.user-card{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;padding:18px 7px 0;margin-top:18px;border-top:1px solid #345957}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d4a95f;color:var(--deep);font-weight:800;font-size:11px}.user-card strong{font-size:12px}.user-card span{color:#9eb8b5;font-size:10px;margin-top:2px}.user-card button{color:#adc4c1;background:none;border:0}.main{margin-left:244px;min-width:0}.topbar{height:76px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:20}.search-wrap{height:42px;width:min(430px,45vw);display:flex;align-items:center;gap:10px;background:#f2f5f3;border:1px solid #e5ebe8;border-radius:10px;padding:0 12px;color:#82908f}.search-wrap input{border:0;outline:0;background:transparent;min-width:0;flex:1;color:var(--ink)}.search-wrap kbd{font-size:10px;padding:3px 6px;background:white;border:1px solid var(--line);border-radius:5px}.top-actions,.heading-actions{display:flex;gap:10px;align-items:center}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;position:relative}.notification-dot{position:absolute;right:8px;top:8px;width:6px;height:6px;background:var(--coral);border-radius:50%}.primary-button,.secondary-button{border-radius:9px;padding:10px 15px;font-weight:700;border:1px solid transparent}.primary-button{background:var(--teal);color:#fff;box-shadow:0 4px 10px rgba(27,115,112,.18)}.primary-button:hover{background:#125f5c}.secondary-button{background:#fff;border-color:var(--line);color:var(--ink)}.mobile-menu{display:none;border:0;background:none;font-size:21px}.content{padding:32px 34px 50px;max-width:1500px;margin:auto}.view{display:none}.view.active{display:block}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.page-heading.compact{align-items:center}.eyebrow,.drawer-step{font-size:10px;letter-spacing:.14em;color:var(--teal);font-weight:800;margin:0 0 7px}.page-heading h1{font-family:Georgia,serif;font-size:31px;font-weight:500;margin:0;color:#153735}.page-heading p:not(.eyebrow){color:var(--muted);margin:6px 0 0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--teal)}.stat-card.accent-coral:before{background:var(--coral)}.stat-card.accent-amber:before{background:#e6ae52}.stat-card.accent-green:before{background:var(--green)}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-weight:700;font-size:12px}.stat-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--mint);color:var(--teal)}.accent-coral .stat-icon{background:var(--coral-soft);color:var(--coral)}.accent-amber .stat-icon{background:var(--amber-soft);color:var(--amber)}.stat-card>strong{display:block;font-family:Georgia,serif;font-size:31px;font-weight:500;margin:2px 0}.stat-card p{margin:0;color:#899493;font-size:11px}.trend{color:var(--green);font-weight:800}.focus-card{margin:18px 0;min-height:130px;border-radius:var(--radius);padding:24px 30px;background:linear-gradient(115deg,#173f3e,#1b5754);color:white;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);position:relative;overflow:hidden}.focus-card:before,.focus-card:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.focus-card:before{width:250px;height:250px;right:100px;top:-160px}.focus-card:after{width:180px;height:180px;right:-60px;bottom:-100px}.focus-kicker{font-size:9px;letter-spacing:.15em;color:#9fc9c3;font-weight:800}.focus-card h2{font-family:Georgia,serif;font-weight:500;font-size:24px;margin:8px 0 7px}.focus-card p{color:#b8d0cd;margin:0;font-size:12px}.progress-ring{--progress:0;position:relative;width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#e4b35f calc(var(--progress)*1%),rgba(255,255,255,.13) 0);z-index:1}.progress-ring:before{content:"";position:absolute;inset:7px;background:#1a4c4a;border-radius:50%}.progress-ring div{position:relative;text-align:center}.progress-ring strong,.progress-ring span{display:block}.progress-ring strong{font-size:16px}.progress-ring span{font-size:8px;text-transform:uppercase;color:#a8c9c5;letter-spacing:.08em}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.panel-header{padding:20px 22px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.panel-header h2{margin:0;font-size:16px}.panel-header p{margin:4px 0 0;color:var(--muted);font-size:11px}.filter-tabs{display:flex;background:#f1f5f3;padding:3px;border-radius:9px}.filter-tabs button{border:0;background:transparent;padding:7px 10px;border-radius:7px;color:var(--muted);font-size:11px;font-weight:700}.filter-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}.filter-tabs span{background:#edf0ef;padding:2px 5px;border-radius:8px}.queue-item{display:grid;grid-template-columns:6px minmax(180px,1.2fr) minmax(150px,1fr) minmax(120px,.8fr) auto;gap:18px;align-items:center;padding:17px 22px;border-bottom:1px solid #edf1ef}.queue-item:last-child{border:0}.urgency-bar{width:4px;height:36px;border-radius:3px;background:var(--teal)}.urgency-bar.overdue{background:var(--coral)}.urgency-bar.today{background:#e5ae53}.patient-cell{display:flex;align-items:center;gap:12px;min-width:0}.patient-avatar{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#e7f0ec;color:var(--teal);font-weight:800;font-size:11px}.patient-cell strong,.queue-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-cell span,.queue-meta span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.due-copy{font-size:12px}.due-copy strong{display:block}.due-copy.overdue strong{color:#cd654e}.queue-actions{display:flex;align-items:center;gap:7px}.action-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:700;color:var(--ink)}.action-button:hover{border-color:#accbc7;background:#f7fbfa}.action-button.call{background:var(--teal);color:#fff;border-color:var(--teal)}.more-button{border:0;background:none;color:#879392;font-size:18px}.empty-state{text-align:center;padding:50px 20px;color:var(--muted)}.empty-state div{width:44px;height:44px;display:grid;place-items:center;margin:auto;background:var(--mint);color:var(--green);border-radius:50%;font-weight:800}.empty-state h3{color:var(--ink);margin:12px 0 4px}.empty-state p{margin:0}.records-toolbar{display:flex;gap:12px;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.table-search{width:300px}.records-toolbar select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 12px;color:var(--ink)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;padding:13px 18px;color:#8a9695;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:#fbfcfb}td{padding:15px 18px;border-top:1px solid var(--line);font-size:12px}td .patient-cell .patient-avatar{width:32px;height:32px}.status-pill{display:inline-block;padding:5px 8px;border-radius:20px;font-size:10px;font-weight:800;background:var(--mint);color:var(--green)}.status-pill.overdue{background:var(--coral-soft);color:#bd5b46}.status-pill.today{background:var(--amber-soft);color:var(--amber)}.status-pill.snoozed{background:#f0eff8;color:#716b9a}.overlay{position:fixed;inset:0;background:rgba(9,35,34,.38);backdrop-filter:blur(2px);z-index:40}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(520px,100%);background:#fff;z-index:50;box-shadow:-15px 0 50px rgba(10,38,37,.18);transform:translateX(102%);transition:transform .25s ease;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-header{padding:23px 25px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:start}.drawer-header h2{font-family:Georgia,serif;font-size:23px;font-weight:500;margin:5px 0 0}.close-button{border:0;background:#f1f4f2;border-radius:50%;width:34px;height:34px;font-size:22px;color:#687675}.drawer form{display:flex;flex-direction:column;min-height:0;flex:1}.form-body{padding:22px 25px;overflow:auto;flex:1}.privacy-note{display:flex;gap:12px;padding:13px;background:#eff7f3;border:1px solid #d9e9e3;border-radius:10px;margin-bottom:20px;color:#4e6e6a}.privacy-note span{font-size:19px}.privacy-note p{margin:0;font-size:11px;line-height:1.55}.form-body>label,.field-row>label{display:block;color:#485e5c;font-size:11px;font-weight:800;margin-bottom:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-body input:not([type=radio]):not([type=checkbox]),.form-body select,.form-body textarea{display:block;width:100%;margin-top:7px;border:1px solid #d9e3e0;border-radius:9px;background:#fff;color:var(--ink);padding:11px 12px;outline:0}.form-body input:focus,.form-body select:focus,.form-body textarea:focus{border-color:#64a7a2;box-shadow:0 0 0 3px rgba(27,115,112,.1)}.optional{float:right;color:#9aa5a4;font-weight:500}.choice-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:7px}.choice{margin:0!important}.choice input{position:absolute;opacity:0}.choice span{border:1px solid var(--line);border-radius:8px;display:block;padding:10px 4px;text-align:center;font-size:10px}.choice input:checked+span{border-color:var(--teal);background:#eef8f5;color:var(--teal)}.consent-check{display:flex!important;gap:10px;align-items:flex-start;background:#fafbfa;border:1px solid var(--line);border-radius:10px;padding:13px}.consent-check input{accent-color:var(--teal);margin-top:2px}.consent-check span{display:block}.consent-check small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.drawer-footer{display:flex;justify-content:flex-end;gap:9px;padding:16px 25px;border-top:1px solid var(--line)}.detail-drawer #detailContent{overflow:auto;padding:24px;flex:1}.detail-hero{background:#f3f8f5;border-radius:13px;padding:18px;display:flex;gap:14px;align-items:center}.detail-hero .patient-avatar{width:48px;height:48px}.detail-hero h3{margin:0 0 5px}.detail-hero p{margin:0;color:var(--muted);font-size:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.detail-box{border:1px solid var(--line);border-radius:10px;padding:12px}.detail-box span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}.detail-box strong{font-size:12px}.detail-section{margin-top:22px}.detail-section h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.detail-note{background:#fff8e9;border-left:3px solid #e3ad53;border-radius:5px;padding:12px;font-size:12px;line-height:1.5}.timeline{padding-left:17px;border-left:1px solid #cedbd7;margin-left:5px}.timeline-item{position:relative;padding:0 0 16px 13px}.timeline-item:before{content:"";position:absolute;left:-21px;top:3px;width:7px;height:7px;border-radius:50%;background:var(--teal);border:2px solid white}.timeline-item strong{font-size:11px}.timeline-item p{font-size:10px;color:var(--muted);margin:3px 0}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}.detail-actions .primary-button:first-child{grid-column:1/-1}.toast-region{position:fixed;right:25px;bottom:25px;z-index:80;display:grid;gap:8px}.toast{background:#153b39;color:white;padding:13px 16px;border-radius:10px;box-shadow:var(--shadow);animation:toastIn .25s ease;font-size:12px}.toast strong{color:#e9bd70}@keyframes toastIn{from{transform:translateY(8px);opacity:0}}@media(max-width:1050px){.stat-grid{grid-template-columns:repeat(2,1fr)}.queue-item{grid-template-columns:5px 1.2fr 1fr auto}.queue-meta{display:none}}@media(max-width:760px){.sidebar{transform:translateX(-102%);transition:transform .2s;width:250px}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.topbar{height:66px;padding:0 16px;gap:10px}.mobile-menu{display:block}.search-wrap{flex:1;width:auto}.search-wrap kbd{display:none}.top-actions .icon-button{display:none}.primary-button{white-space:nowrap}.content{padding:24px 16px 40px}.page-heading{align-items:start}.heading-actions{display:none}.page-heading h1{font-size:27px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.focus-card{padding:20px}.panel-header{align-items:start;gap:14px;flex-direction:column}.filter-tabs{width:100%}.filter-tabs button{flex:1}.queue-item{grid-template-columns:5px 1fr auto;gap:10px;padding:15px}.queue-meta,.due-copy{display:none}.queue-actions .more-button{display:none}.records-toolbar{flex-direction:column}.table-search{width:100%}.records-toolbar select{height:40px}.field-row{grid-template-columns:1fr}.choice-row{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.top-actions .primary-button{font-size:0;padding:10px}.top-actions .primary-button span{font-size:18px}.focus-card h2{font-size:20px}}@media(max-width:420px){.stat-grid{grid-template-columns:1fr}.progress-ring{width:68px;height:68px;flex:0 0 auto}.focus-card{gap:10px}.queue-actions .action-button:not(.call){display:none}}
/* Install affordance is shown when the browser confirms PWA installation is available. */
.install-button{margin-top:10px;width:100%;border:1px solid #416b68;background:transparent;color:#dce9e7;border-radius:11px;padding:10px;display:flex;gap:9px;align-items:center;text-align:left}.install-button>span:first-child{font-size:18px}.install-button strong,.install-button small{display:block}.install-button strong{font-size:11px}.install-button small{font-size:9px;color:#9fbab7;margin-top:2px}
body{overflow-x:hidden}.main,.content,.panel,.stat-card{min-width:0}.queue{overflow:hidden}
@media(max-width:760px){.topbar>.search-wrap{min-width:0;width:0}.top-actions{flex:0 0 auto}.stat-card{overflow:hidden}.stat-top>span:first-child{white-space:normal}.focus-copy{min-width:0}.focus-card{overflow:hidden}.filter-tabs{min-width:0}.queue-item{min-width:0}.patient-cell strong{max-width:150px}.task-panel{overflow:hidden}}
@media(max-width:420px){.topbar{padding-right:10px}.search-wrap{padding:0 9px}.search-wrap input::placeholder{font-size:11px}.patient-cell strong{max-width:135px}}

/* Dr O'Callaghan Dental Care brand alignment */
:root{--ink:#102d47;--muted:#66768a;--line:#dfe6ec;--canvas:#f5f7f9;--deep:#022544;--teal:#527f7a;--mint:#e6f0ee;--green:#527f7a;--shadow:0 14px 40px rgba(2,37,68,.10)}
.sidebar{background:#022544}.brand-mark{background:#fff}.brand strong{font-family:"Segoe UI",Arial,sans-serif;font-weight:750}.brand span{color:#b8c8d5}.nav-item:hover,.nav-item.active{background:#163d5c}.primary-button,.action-button.call{background:#022f56;border-color:#022f56}.primary-button:hover{background:#001f39}.focus-card{background:linear-gradient(115deg,#022544,#163f5f)}.progress-ring:before{background:#0c3553}.progress-ring{background:conic-gradient(#93b4ae calc(var(--progress)*1%),rgba(255,255,255,.13) 0)}.avatar{background:#dbe8e6;color:#022544}.stat-card.accent-coral:before{background:#2b6cb0}.stat-card.accent-amber:before{background:#749b93}.accent-coral .stat-icon{background:#e8f0f8;color:#2b6cb0}.accent-amber .stat-icon{background:#eaf2f0;color:#527f7a}.urgency-bar.overdue{background:#d56559}.urgency-bar.today{background:#749b93}
.oc-mark{position:relative;display:block;overflow:hidden}.oc-mark:before{content:"";position:absolute;width:74%;height:74%;right:0;bottom:0;background:#022544;border-radius:0 50% 50% 0}.oc-mark:after{content:"";position:absolute;width:40%;height:40%;left:3%;top:20%;border:10px solid #022544;border-top:0;border-radius:0 0 30px 30px}.brand-mark.oc-mark{display:block}.brand-mark.oc-mark:after{border-width:7px}
.auth-screen{min-height:100vh;background:linear-gradient(135deg,#f8fafb 0 58%,#edf2f5 58%);display:grid;place-items:center;padding:90px 20px 40px;position:relative}.auth-brand{position:absolute;top:30px;left:38px;display:flex;align-items:center;gap:13px;color:#022544}.auth-brand .oc-mark{width:46px;height:46px}.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{font-size:20px}.auth-brand span{font-family:Georgia,serif;font-size:15px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 24px 70px rgba(2,37,68,.13)}.auth-card h1{font-family:Georgia,serif;font-weight:500;font-size:30px;margin:0;color:#022544}.auth-card>p:not(.eyebrow):not(.auth-footnote){color:var(--muted);line-height:1.5;margin:8px 0 24px}.auth-card form label{display:block;color:#3e5367;font-size:11px;font-weight:750;margin-bottom:16px}.auth-card input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #d5dfe6;border-radius:9px;outline:0}.auth-card input:focus{border-color:#749b93;box-shadow:0 0 0 3px rgba(116,155,147,.16)}.auth-submit{width:100%;padding:12px;margin-top:4px}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-alert{background:#fff0ef;border:1px solid #efc1bd;color:#9b4038;border-radius:9px;padding:11px;margin:0 0 17px;font-size:11px;line-height:1.4}.auth-footnote{text-align:center!important;font-size:10px!important;color:#8b98a5!important;margin:22px 0 0!important}.password-hint{display:block;color:#7e8c99;margin:-8px 0 17px}.sidebar-note{background:#123a59;border-color:#2e536f}.install-button{border-color:#365b77}.install-button small{color:#a7bdcc}
.oc-mark:before,.oc-mark:after{display:none}.oc-mark img{width:100%;height:100%;object-fit:contain;display:block}.brand-mark.oc-mark{padding:6px}
@media(max-width:600px){.auth-screen{padding-top:110px}.auth-brand{left:22px;top:28px}.auth-card{padding:26px}.stat-grid{grid-template-columns:1fr}.progress-ring{display:none}.focus-card{min-height:118px}.filter-tabs button{padding-inline:5px}.top-actions .primary-button{display:block}}
.staff-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.8fr);gap:18px}.staff-form-panel{padding:22px}.staff-form-panel h2{margin:0;font-size:16px}.staff-form-panel>p{color:var(--muted);font-size:11px;line-height:1.5}.staff-form-panel form{margin-top:19px}.staff-form-panel label{display:block;font-size:11px;font-weight:750;color:#40566a;margin-bottom:14px}.staff-form-panel input,.staff-form-panel select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.staff-form-panel small{display:block;color:var(--muted);font-size:9px;line-height:1.45;margin:-5px 0 15px}.staff-form-panel button{width:100%}@media(max-width:900px){.staff-layout{grid-template-columns:1fr}}

/* Brand typeface is self-hosted so the private app makes no third-party font requests. */
@font-face{font-family:"Poppins";src:url("assets/fonts/poppins-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Poppins";src:url("assets/fonts/poppins-500.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url("assets/fonts/poppins-600.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Poppins";src:url("assets/fonts/poppins-700.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
body,button,input,select,textarea,.brand strong,.brand span,.page-heading h1,.focus-card h2,.drawer-header h2,.auth-brand span,.auth-card h1,.stat-card>strong{font-family:"Poppins","Segoe UI",Arial,sans-serif}.page-heading h1,.auth-card h1,.drawer-header h2,.focus-card h2{font-weight:600}.stat-card>strong{font-weight:500}

/* Restrained practice-workspace treatment: status is communicated with copy, not colour strips. */
.stat-card{padding:21px 22px;border-radius:12px;box-shadow:none}.stat-card:before,.stat-card:after{display:none}.stat-top{min-height:20px;color:#526579;font-weight:600}.stat-card>strong{font-size:32px;color:#022544;margin:8px 0 3px}.focus-card{min-height:116px;margin:20px 0;background:#022544;border-radius:12px;box-shadow:none;padding:24px 28px}.focus-card:before,.focus-card:after{display:none}.focus-kicker{color:#a9c1c0}.focus-card h2{font-size:21px;margin-top:7px}.focus-progress{--progress:0;width:190px;flex:0 0 190px;position:relative;z-index:1}.focus-progress-label{display:flex;justify-content:space-between;align-items:center;color:#c4d2dc;font-size:10px}.focus-progress-label strong{color:#fff;font-size:12px}.progress-track{height:5px;background:rgba(255,255,255,.2);border-radius:5px;margin-top:10px;overflow:hidden}.progress-track span{display:block;width:calc(var(--progress)*1%);height:100%;background:#9dbab5;border-radius:5px;transition:width .25s ease}.queue-item{grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) minmax(120px,.8fr) auto;padding:18px 22px}.urgency-bar{display:none}.patient-avatar{background:#edf2f5;color:#022544}.due-copy strong{display:inline-block;font-size:10px;font-weight:600;padding:4px 7px;background:#f0f4f6;border-radius:5px;color:#465b6e}.due-copy.overdue strong{background:#f9ecea;color:#a84c43}.due-copy.today strong{background:#e8f1ef;color:#3f6d68}.due-copy.snoozed strong{background:#f0eff5;color:#625f7c}.action-button{border-radius:6px;box-shadow:none}.action-button.call{background:#022544;border-color:#022544}.panel,.search-wrap,.secondary-button{box-shadow:none}.filter-tabs{background:#f2f4f6}.filter-tabs button.active{box-shadow:none;border:1px solid #dfe6ec}.filter-tabs button{border:1px solid transparent}.toast{background:#022544}.toast strong{color:#fff}
@media(max-width:1050px){.queue-item{grid-template-columns:1.2fr 1fr auto}}
@media(max-width:760px){.queue-item{grid-template-columns:1fr auto}.focus-progress{width:140px;flex-basis:140px}}
@media(max-width:600px){.focus-progress{display:none}}
.role-explainer{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:10px 11px;background:#f6f8f9;border:1px solid var(--line);border-radius:7px;margin:-5px 0 15px;font-size:9px}.role-explainer strong{color:#263f56}.role-explainer span{color:var(--muted)}
.user-actions{display:flex;gap:2px}.user-actions button{padding:4px}.account-drawer form{display:flex;flex-direction:column;min-height:0;flex:1}
.detail-note{background:#f7f9fa;border:1px solid var(--line);border-radius:7px;color:#344b60}
.due-copy span{display:block;margin-top:5px;color:var(--muted);font-size:10px}

/* Support desk and device-based sign-in */
.auth-divider{display:flex;align-items:center;gap:12px;color:#8a97a3;font-size:10px;margin:17px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.passkey-login{width:100%;padding:11px}.ticket-toolbar{align-items:center}.ticket-toolbar select{height:38px}.ticket-list{display:grid}.ticket-row{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(120px,.7fr) minmax(130px,.8fr) auto;gap:18px;align-items:center;border-top:1px solid var(--line);padding:17px 20px;background:#fff;text-align:left;width:100%;color:inherit}.ticket-row:first-child{border-top:0}.ticket-row:hover{background:#fafcfd}.ticket-main{min-width:0}.ticket-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.ticket-main span,.ticket-meta span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.ticket-meta strong{font-size:11px}.ticket-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ticket-badge{display:inline-block;padding:5px 8px;border-radius:5px;background:#edf2f5;color:#42596d;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ticket-badge.urgent,.ticket-badge.high{background:#faeceb;color:#a34840}.ticket-badge.resolved,.ticket-badge.closed{background:#e8f1ef;color:#3e6d68}.ticket-badge.in_progress{background:#edf1f8;color:#405f88}.ticket-detail-content{overflow:auto;padding:24px;flex:1}.ticket-description{white-space:pre-wrap;line-height:1.65;font-size:12px;color:#344b60;background:#f7f9fa;border:1px solid var(--line);padding:14px;border-radius:8px}.ticket-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin:18px 0;padding:13px;background:#f7f9fa;border:1px solid var(--line);border-radius:8px}.ticket-controls select{min-width:0;border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px}.ticket-thread{display:grid;gap:10px;margin:14px 0}.ticket-message{border:1px solid var(--line);border-radius:8px;padding:12px}.ticket-message.admin-message{background:#f4f7fa}.ticket-message header{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted)}.ticket-message header strong{color:#284158}.ticket-message p{white-space:pre-wrap;margin:8px 0 0;line-height:1.55;font-size:11px}.ticket-reply textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px;resize:vertical;outline:0}.ticket-reply button{margin-top:8px}.security-section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.security-section:last-child{border-bottom:0}.security-section h3{font-size:14px;margin:0 0 12px}.security-heading{display:flex;gap:14px;justify-content:space-between;align-items:flex-start}.security-heading p,.security-note{color:var(--muted);font-size:10px;line-height:1.5;margin:4px 0 12px}.security-heading button{white-space:nowrap}.passkey-list{display:grid;gap:7px}.passkey-item{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:10px}.passkey-item>span:first-child{width:28px;height:28px;display:grid;place-items:center;background:#edf2f5;border-radius:6px}.passkey-item strong,.passkey-item small{display:block}.passkey-item strong{font-size:10px}.passkey-item small{font-size:8px;color:var(--muted);margin-top:2px}.passkey-item button{border:0;background:none;color:#8c4a46;font-size:10px}.passkey-empty{font-size:10px;color:var(--muted);padding:10px 0}.prompt-drawer .form-body{display:flex;flex-direction:column;justify-content:center;text-align:center;padding:40px}.passkey-illustration{width:78px;height:78px;border-radius:50%;background:#e8f1ef;color:#315f5b;display:grid;place-items:center;font-size:40px;margin:0 auto 22px}.prompt-copy{line-height:1.7;color:#526579}.prompt-actions{display:grid;gap:8px;margin-top:18px}.prompt-actions button{width:100%}
@media(max-width:760px){.ticket-row{grid-template-columns:1fr auto;gap:10px}.ticket-row .ticket-meta{display:none}.ticket-controls{grid-template-columns:1fr}.security-heading{display:block}.security-heading button{margin-bottom:10px}.ticket-toolbar{align-items:stretch}}
.ticket-row{border:0;border-top:1px solid var(--line)}

/* Keep the mobile navigation above its page-dimming overlay so links remain tappable. */
@media(max-width:760px){.sidebar{z-index:60}}

/* Closed off-canvas drawers must not cast stacked shadows onto the page edge. */
.drawer{box-shadow:none}
.drawer.open{box-shadow:-15px 0 50px rgba(10,38,37,.18)}

/* One-time, device-aware PWA installation guidance. */
.install-app-icon{width:76px;height:76px;border-radius:18px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 18px;box-shadow:0 8px 22px rgba(2,37,68,.10)}.install-app-icon img{width:58px;height:58px;border-radius:12px}.install-steps{text-align:left;margin:18px 0 4px;padding:16px 16px 16px 38px;background:#f6f8fa;border:1px solid var(--line);border-radius:9px;color:#42576b;font-size:11px;line-height:1.65}.install-steps li+li{margin-top:7px}.text-button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;padding:8px}

/* In-app and operating-system notification controls. */
.notification-list{display:grid}.notification-item{display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:start;padding:17px 20px;border-top:1px solid var(--line)}.notification-item:first-child{border-top:0}.notification-symbol{width:38px;height:38px;border-radius:9px;background:#e8f1ef;color:#315f5b;display:grid;place-items:center;font-weight:700}.notification-copy strong{display:block;font-size:12px;color:#18344d}.notification-copy p{margin:5px 0;color:#526579;font-size:11px;line-height:1.5}.notification-copy time{color:#8a97a3;font-size:9px}.notification-actions{display:flex;gap:6px;align-items:center}.notification-actions button{white-space:nowrap}.push-enabled{color:#3e6d68!important}.push-blocked{color:#a34840!important}@media(max-width:600px){.notification-item{grid-template-columns:32px 1fr;padding:15px}.notification-symbol{width:32px;height:32px}.notification-actions{grid-column:2;justify-content:flex-start}.notification-panel .panel-header .secondary-button{width:100%}}

.danger-button{grid-column:1/-1;border:1px solid #e8c6c1;border-radius:9px;padding:10px 15px;background:#fff;color:#a34840;font-weight:700}.danger-button:hover{border-color:#cf8278;background:#fff5f3}

/* Mobile recall records use cards rather than horizontally scrolling desktop tables. */
@media(max-width:760px){.queue-actions .more-button{display:inline-block!important}.records-panel .table-wrap{overflow:visible}.records-panel table{display:block;min-width:0}.records-panel thead{display:none}.records-panel tbody{display:grid;gap:11px;padding:12px}.records-panel tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 14px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff}.records-panel td{display:block;border:0;padding:7px 0;min-width:0}.records-panel td:before{content:attr(data-label);display:block;color:#82909d;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.records-panel td:first-child{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:4px}.records-panel td:first-child:before{display:none}.records-panel td:last-child{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;padding-top:9px}.records-panel td:last-child:before{margin-right:auto;margin-bottom:0}.records-panel td .patient-cell .patient-avatar{width:36px;height:36px}.records-panel .more-button{display:inline-flex!important;align-items:center;justify-content:center;width:40px;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff}.records-panel .empty-state{margin-top:0}}
