/* Reference-aligned desktop treatment. Original clinic workflows retained. */
.icon-calendar-blank{--nav-mask:url("/static/assets/icons/calendar-blank.svg")}
.icon-chart-bar{--nav-mask:url("/static/assets/icons/chart-bar.svg")}
.icon-clipboard-text{--nav-mask:url("/static/assets/icons/clipboard-text.svg")}
.icon-gear{--nav-mask:url("/static/assets/icons/gear.svg")}
.icon-hand-coins{--nav-mask:url("/static/assets/icons/hand-coins.svg")}
.icon-list{--nav-mask:url("/static/assets/icons/list.svg")}
.icon-list-checks{--nav-mask:url("/static/assets/icons/list-checks.svg")}
.icon-magnifying-glass{--nav-mask:url("/static/assets/icons/magnifying-glass.svg")}
.icon-monitor{--nav-mask:url("/static/assets/icons/monitor.svg")}
.icon-package{--nav-mask:url("/static/assets/icons/package.svg")}
.icon-phone{--nav-mask:url("/static/assets/icons/phone.svg")}
.icon-plus{--nav-mask:url("/static/assets/icons/plus.svg")}
.icon-receipt{--nav-mask:url("/static/assets/icons/receipt.svg")}
.icon-tooth{--nav-mask:url("/static/assets/icons/tooth.svg")}
.icon-users{--nav-mask:url("/static/assets/icons/users.svg")}
.icon-users-three{--nav-mask:url("/static/assets/icons/users-three.svg")}
.icon-wrench{--nav-mask:url("/static/assets/icons/wrench.svg")}
.nav-icon{display:inline-block;width:20px;height:20px;background:currentColor;mask:var(--nav-mask) center/contain no-repeat;-webkit-mask:var(--nav-mask) center/contain no-repeat;vertical-align:middle;flex:none}
.shell-patient-search{display:flex;align-items:center;flex:1;max-width:390px;min-width:160px;margin:0;border:1px solid #dddfe4;background:#fff;border-radius:3px}
.shell-patient-search input{width:100%;min-width:0;border:0;background:transparent;margin:0;padding:8px 10px;font-size:13px;box-shadow:none}
.shell-patient-search button{flex:none;border:0!important;background:none!important;box-shadow:none!important;padding:6px 9px!important;color:#999fa6}
.shell-patient-search:focus-within{outline:2px solid #008ca7;outline-offset:1px}
@media screen and (min-width:721px){
 :root{--teal:#00a6c4;--line:#dedfe2;--muted:#777c84;--clinic-ink:#303339}
 body{background:#f5f6f8;color:#303339;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif}
 .shell,.shell:has(.reception-workbench){grid-template-columns:132px minmax(0,1fr)}
 .shell.nav-collapsed,.shell.nav-collapsed:has(.reception-workbench){grid-template-columns:58px minmax(0,1fr)}
 .shell .sidebar,.shell:has(.reception-workbench) .sidebar{background:#232d2e;color:#bfc3ca}
 .shell .brand,.shell:has(.reception-workbench) .brand{height:58px;min-height:58px;flex-direction:row;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid #354044}
 .shell .brand>.nav-icon{height:30px;width:30px;color:#f0f2f5}.shell .brand small{margin:0;color:#e2e6ea;font-size:13px}
 .shell .nav{padding:7px 0;gap:0}.shell .nav button{min-height:40px;border-radius:0;padding:10px 12px;font-size:13px;gap:10px;font-weight:400;color:#bfc3ca}
 .shell .nav button.active{background:#00a7c5;box-shadow:none;color:#fff}.shell .nav button:hover{background:#34484a}.shell .nav button.active:hover{background:#009ab8}
 .shell.nav-collapsed .nav{padding:7px 0}.shell.nav-collapsed .nav button{padding:11px 0}
 .shell .sidebar footer{font-size:10px;padding:10px;color:#8e969d;border-color:#354044}
 .shell .main,.shell:has(.reception-workbench) .main{padding:0 10px 16px}
 .shell .topbar{min-height:50px;padding:7px 12px;margin:0 -10px 8px;gap:12px;border-bottom:1px solid #dddfe4;box-shadow:none;background:#fff}
 .shell-heading{gap:9px;flex:none}.shell-heading strong{font-size:16px;font-weight:600;color:#379caf}.shell-heading small{display:none}
 .shell .topbar #toggle-main-nav{border:0;padding:5px;color:#8a9099;background:transparent}
 .shell .topbar .shell-tools{gap:7px;font-size:12px}.shell .topbar button{border-radius:3px;padding:7px 10px}
 .shell .topbar #shell-new-patient{background:#fff;color:#159cb6;border:1px solid #dcdfe5;box-shadow:none}
 .shell .topbar .badge{border-radius:20px;background:#e5f6fa;color:#16839b;font-weight:400}
 button,input,select,textarea{border-radius:3px;box-shadow:none;color:#575c65;border-color:#d8dbe0}
 button{font-size:13px;padding:7px 12px}button.primary{background:#00a6c4;border-color:#00a6c4;color:#fff;box-shadow:none}button.primary:hover{background:#0095af;border-color:#0095af}
 button:hover{background:#f4fbfd;border-color:#78bccb}input,select{min-height:32px;font-size:13px;padding:6px 9px}
 input::placeholder,textarea::placeholder{color:#979ca5}
 .card,.metric,.reception-workbench .card,.reception-board,#view .appointment-workspace{border-radius:3px;box-shadow:none;border-color:#e0e2e6}
 .pagehead h1,.patient-workspace h1,.main:has(.appointment-workspace) #view>.pagehead h1{font-size:18px;font-weight:600;color:#303339}
 .pagehead{margin:10px 0}.pagehead .subtle{font-size:12px}.subtle{color:#7c838c}
 th{background:#f6f6f7;color:#34383f;border-color:#dcdde0}td{color:#60656e}th,td{border-bottom-color:#e1e2e5}
 .tabs{gap:0}.tabs button,.patient-profile>.tabs button{border-radius:0;background:white;border:1px solid #e0e2e6;color:#676c74}
 .tabs button.active,.patient-profile>.tabs button.active{background:#00a6c4;color:#fff;border-color:#00a6c4}
 .reception-workbench .work-stat-grid{gap:0;border:1px solid #dbe8ed;border-radius:3px;overflow:hidden}
 .reception-workbench .work-stat-grid>button,.reception-workbench .work-stat-grid>button:nth-child(3n+2),.reception-workbench .work-stat-grid>button:nth-child(3n){border:0;border-right:1px solid #e2e7ec;border-top:2px solid #1da6bd;border-radius:0;background:#fff;color:#53636c;padding:13px 10px;box-shadow:none}
 .reception-workbench .work-stat-grid strong{font-size:24px;color:#2499b0}
 .reception-tasks{background:#fff;border-radius:3px;border-color:#e1e3e7;padding:8px 12px}.reception-tasks button,.reception-workbench button{border-radius:3px}
 .reception-tabs{background:#fff}.reception-tabs button.active,.reception-tabs button[aria-selected=true]{background:#fff;color:#219ab1;border-bottom:2px solid #00a6c4}
 .appointment-command-bar{background:#fff;padding:0 12px}.appointment-workspace .schedule-mode-tabs button{border-radius:0;background:transparent;padding:12px 14px;color:#34383f;font-size:14px}
 .appointment-workspace .schedule-mode-tabs button.active{background:#fff;color:#219ab1;border-bottom:2px solid #23a0b8}
 .appointment-workspace .calendar-range{margin:10px 0 7px}.appointment-workspace .toolbar input,.appointment-workspace .toolbar select,.appointment-workspace .toolbar button{min-height:32px;padding:5px 8px}
 .appointment-workspace .schedule-column-title,.appointment-workspace .schedule-column-title:nth-child(3n),.appointment-workspace .schedule-corner{background:#fff;color:#303339;border-color:#dedfe2;border-radius:0;min-height:48px}
 .appointment-workspace .schedule-column-title{font-weight:600;font-size:14px}.appointment-workspace .schedule-column-title small{font-weight:400;color:#8a8d93;font-size:11px}
 .appointment-workspace .appointment-status-strip{gap:4px}.appointment-workspace .appointment-status-strip button{border-radius:3px;min-height:27px;padding:4px 9px;box-shadow:none}
 .appointment-workspace .appointment-status-strip button.active{outline:2px solid #00839d;outline-offset:1px}
 .appointment-workspace .appointment-status-strip button:first-child{border-color:#4f9bad;background:#edf9fc;color:#256575}
 .appointment-workspace .schedule-event{border-radius:6px;border:1px solid #fff;border-left:3px solid var(--event-color);box-shadow:0 2px 4px #263d4426}
 .appointment-workspace .schedule-scroll{border-radius:0;height:calc(100dvh - 295px)}
 .appointment-sidebar{background:#fff;border-color:#e0e2e6}.appointment-mini-grid button.selected{border-radius:2px;background:#00a6c4}
 .appointment-workspace .calendar-empty{background:#f7f8fa;border-radius:2px;padding:5px 8px}
 .patient-workspace .patient-center{border-radius:0;border-color:#dedfe3;grid-template-columns:165px minmax(0,1fr)}
 .patient-workspace .patient-groups{background:#fff;border-radius:0;padding:0;border-color:#dedfe3}.patient-group-heading{padding:15px 14px;color:#303339;background:#f6f7f9;border-bottom:1px solid #dedfe3;font-size:14px}
 .patient-workspace .patient-groups button{padding:13px 14px;margin:0;border-radius:0;font-size:13px;border-left:3px solid transparent;color:#34383f}
 .patient-workspace .patient-groups button.active{border-left-color:#00a6c4;background:#f4f6f8;color:#239cb3}.patient-groups>p{font-size:11px;color:#747d86}
 .patient-workspace .patient-list-card{border-radius:0;padding:12px}.patient-workspace #patient-results>.tablewrap{border-radius:0;border-color:#d9dade}
 .patient-workspace th{background:#f6f6f7;color:#34383f;font-size:12px}.patient-workspace td,.patient-workspace th{border-right:1px solid #e0e1e4;padding:10px 9px}
 .patient-workspace tbody tr:nth-child(even){background:#f5f6f8}.patient-workspace tbody tr:hover{background:#ecf7fa}
 .patient-workspace .patient-name-link{font-size:14px;color:#219cb4}.patient-workspace .patient-row-actions button,.patient-workspace .patient-row-more summary{color:#219cb4;font-size:12px}
 .patient-profile-summary{background:#fafafa;border-color:#e1e2e5;border-radius:2px}
 dialog{border-radius:4px;border-color:#dddfe4}.appointment-projects,.appointment-new-patient{border-radius:3px}
}
@media screen and (min-width:721px) and (max-width:1100px){.shell-patient-search{max-width:280px;min-width:140px}.shell-heading strong{font-size:14px}.shell .topbar{gap:7px}.shell .topbar .shell-tools{gap:4px}.shell .topbar button{padding:6px}.shell .topbar #open-record-search{display:none}}
@media screen and (max-width:720px){.shell-patient-search{display:none}.sidebar .brand>.nav-icon{display:none}.sidebar .brand small{display:block}.nav-icon{display:none}}
@media print{.shell-patient-search{display:none}}
@media screen and (min-width:721px){
 .state-booked{--event-color:#50a6ce;--event-bg:#a6def2;--event-ink:#194b61}
 .state-arrived{--event-color:#8dad65;--event-bg:#d0e5b9;--event-ink:#3d552a}
 .state-waiting{--event-color:#719957;--event-bg:#c4dfa7;--event-ink:#355323}
 .state-working{--event-color:#59936b;--event-bg:#b9d8b6;--event-ink:#2b5038}
 .state-done{--event-color:#7b9b8a;--event-bg:#c5d8cc;--event-ink:#385547}
 .state-cancelled{--event-color:#969ca5;--event-bg:#e7e9ed;--event-ink:#535b66}
 .state-missed{--event-color:#a57d87;--event-bg:#f3e1e5;--event-ink:#794b59}
}
/* 0.4.89: vivid clinic palette requested by the user; layout and print unchanged. */
@media screen {
 .state-booked{--event-color:#159bdb;--event-bg:#8ddcff;--event-ink:#124664}
 .state-arrived{--event-color:#009caf;--event-bg:#78e4ee;--event-ink:#094b55}
 .state-waiting{--event-color:#2a9f51;--event-bg:#9ce7b0;--event-ink:#20532e}
 .state-working{--event-color:#d98408;--event-bg:#ffd078;--event-ink:#64400a}
 .state-done{--event-color:#9660da;--event-bg:#d9b8ff;--event-ink:#513078}
 .state-cancelled{--event-color:#8b97a8;--event-bg:#e1e7ee;--event-ink:#46566a}
 .state-missed{--event-color:#cf537e;--event-bg:#ffbad2;--event-ink:#74344e}
 .shell .nav button.active,.shell .nav button.active:hover{background:#00afcf;color:#fff;box-shadow:inset 4px 0 #5be8f6}
 button.primary{background:#009cbd;border-color:#009cbd;color:white;box-shadow:0 2px 5px #008baa22}
 button.primary:hover{background:#007f9d;border-color:#007f9d}
 .shell-heading strong{color:#008cab}
 .shell .topbar #shell-new-patient{background:#dcfaff;border-color:#39bed2;color:#006c80}
 .shell .topbar .badge{background:#c3f3ed;color:#076c62}
 .reception-tasks{background:#d9f7ff;border-color:#89dbe9}
 .reception-tasks button{background:#fff;color:#08788d}
 .reception-workbench .work-stat-grid>button{background:#bdeaff;border-top-color:#15a4e2;color:#145777;border-right-color:#8ed7ed}
 .reception-workbench .work-stat-grid>button:nth-child(3n+2){background:#b6f1dc;border-top-color:#00ad80;color:#115d49;border-right-color:#8ad9be}
 .reception-workbench .work-stat-grid>button:nth-child(3n){background:#e2ccff;border-top-color:#a168e2;color:#60328c;border-right-color:#c7a5eb}
 .reception-workbench .work-stat-grid strong{color:inherit}
 .reception-workbench .work-stat-grid>button:hover{filter:brightness(.97)}
 .appointment-command-bar{background:#e1f9ff;border-bottom-color:#8adcec}
 .appointment-workspace .schedule-mode-tabs button.active{background:#b9f0fb;color:#006c86;border-bottom-color:#00a7ca}
 .appointment-workspace .schedule-column-title,.appointment-workspace .schedule-corner{background:#d9f5ff;color:#20516b}
 .appointment-workspace .schedule-column-title:nth-child(3n){background:#dcf8ee}
 .appointment-workspace .appointment-status-strip button:first-child{background:#c0f2fc;color:#09566b;border-color:#00a6c4}
 .appointment-workspace .appointment-status-strip button.active{outline-color:#007a96}
 .patient-workspace .patient-groups button.active{background:#d2f5fc;color:#08728a;border-left-color:#00afd0}
 .patient-workspace th,th{background:#e3f5fc;color:#27596e}
 .patient-workspace tbody tr:nth-child(even){background:#f1fbff}
 .patient-workspace tbody tr:hover{background:#ddf7fc}
 .patient-profile-summary{background:#eaf9ff;border-color:#b5e6f0}
 .reception-tabs button.active,.reception-tabs button[aria-selected=true]{background:#d8f5ff;color:#087692;border-bottom-color:#00a6c4}
}

/* Patient management contains the shared patient directory and follow-up workspace. */
.patient-management-nav{display:flex;align-items:center;gap:8px;margin:14px 20px 0;padding:9px 12px;background:#e1f9ff;border:1px solid #89dbe9;border-radius:6px}
.patient-management-nav strong{color:#086d85;margin-right:8px;white-space:nowrap}
.patient-management-nav button{display:inline-flex;align-items:center;gap:6px;background:white;border-color:#addfe9;color:#176275;white-space:nowrap}
.patient-management-nav button.active{background:#009cbd;border-color:#009cbd;color:white}
.patient-management-nav .nav-icon{width:17px;height:17px;background-color:currentColor;flex-shrink:0}
@media(max-width:720px){.patient-management-nav{margin:8px 8px 0;gap:6px;padding:8px}.patient-management-nav strong{font-size:13px;margin-right:2px}.patient-management-nav button{padding:8px;font-size:13px}}
@media print{.patient-management-nav{display:none}}

/* Grouped operational reports: navigation, shared filters, independent detail pages. */
.report-workspace{display:grid;grid-template-columns:168px minmax(0,1fr);gap:16px;align-items:start}
.report-sidebar{background:white;border:1px solid #d5e8ee;border-radius:5px;padding:12px 0;position:sticky;top:72px}
.report-sidebar section+section{border-top:1px solid #e3eef2;margin-top:8px;padding-top:8px}
.report-sidebar h2{font-size:14px;color:#284b5c;margin:8px 14px}
.report-sidebar button{display:block;width:100%;border:0;border-radius:0;background:white;color:#516b79;text-align:left;padding:12px 18px;font-size:13px;border-left:3px solid transparent}
.report-sidebar button.active{background:#d9f7ff;color:#007e9a;border-left-color:#00acd0;font-weight:700}
.report-sidebar button:hover{background:#eafaff}.report-sidebar button:focus-visible{outline:2px solid #008cac;outline-offset:-2px}
.report-main{min-width:0}.report-view-heading{padding:12px 16px;background:#fff;border-bottom:3px solid #00acc9;margin-bottom:12px}
.report-view-heading h2{margin:0 0 5px;color:#007d97;font-size:19px}.report-view-heading span{font-size:12px;color:#587381}
.report-main .report-controls{padding:14px;margin-bottom:14px;background:#f2fbff}.report-main .report-controls .toolbar{flex-wrap:wrap}
.report-main .report-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.report-main .report-metric{background:#d7f4ff;border-color:#ade1f4}.report-main .report-metric:nth-child(3n+2){background:#d3f7e9;border-color:#a7e5cc}.report-main .report-metric:nth-child(3n){background:#edddff;border-color:#d5b7ee}
.report-main .report-metric strong{color:#145c73}.report-main th{background:#00a1bf;color:white}.report-total{font-weight:700;text-align:right;color:#087990;padding:12px;background:#e7f9fd}
@media(max-width:1000px){.report-workspace{grid-template-columns:140px minmax(0,1fr);gap:10px}}
@media(max-width:720px){.report-workspace{display:block}.report-sidebar{position:static;display:flex;overflow:auto;gap:8px;padding:8px;margin-bottom:12px}.report-sidebar section{flex:0 0 auto}.report-sidebar section+section{border-top:0;border-left:1px solid #d8e9ee;margin:0;padding:0 0 0 8px}.report-sidebar h2{font-size:12px;margin:2px 6px 6px}.report-sidebar button{width:auto;display:inline-block;padding:9px;font-size:12px}.report-main .report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.report-view-heading{padding:10px}.report-main .report-controls{padding:10px}}
@media print{.report-sidebar,.report-controls{display:none}.report-workspace{display:block}}
