:root{--nav:#073b29;--nav-dark:#042b1f;--green:#009c5a;--green-dark:#007b46;--mint:#eaf8f1;--ink:#13283a;--muted:#6b7d89;--line:#dce8e5;--bg:#f6faf8;--shadow:0 10px 30px rgba(11,48,42,.06);--ui-font:"Onest","Segoe UI",Arial,sans-serif}
@font-face{font-family:Onest,sans-serif!important;src:url("fonts/Onest-VF.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:block}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font:14px/1.45 var(--ui-font)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}h1,h2,p{margin-top:0}h1{font-size:32px;letter-spacing:-.035em;margin-bottom:5px}h2{font-size:18px;letter-spacing:-.015em;margin-bottom:0}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--green-dark);font-size:11px;font-weight:800;margin:0 0 9px}.app-layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav-dark));color:#fff;padding:24px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:11px;padding:0 11px;font-weight:800;font-size:18px;letter-spacing:.05em}.logo img{width:35px;height:35px;object-fit:contain}.branch-label{font-size:11px;color:#a9d4c4;padding:15px 12px 28px;line-height:1.3}.nav{display:grid;gap:3px}.nav a{padding:11px 15px;border-radius:9px;color:#d4e8df;font-weight:650}.nav a:hover,.nav a.active{background:#125c40;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #32654f;padding:18px 12px 0}.user-name{font-weight:700}.user-role{font-size:12px;color:#a9d4c4;margin:3px 0 10px}.text-button{border:0;background:none;color:#d1eadc;padding:0}.main{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;color:#637b71;font-size:12px}.top-user{font-weight:700;color:var(--ink)}.content{padding:28px 30px 60px;max-width:1720px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head p:last-child{margin-bottom:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#164333;font-weight:700;padding:8px 14px;white-space:nowrap}.button:hover{border-color:#96cab3;background:#f8fffb}.button.primary{background:linear-gradient(120deg,#05a864,#008746);color:#fff;border-color:#008746}.button.primary:hover{filter:brightness(.96)}.button.small{font-size:12px;min-height:32px;padding:5px 9px}input,select{border:1px solid #cfdfd9;border-radius:8px;min-height:39px;padding:7px 10px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #dff4e9}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{display:block;background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px 20px;box-shadow:var(--shadow)}.stat span{color:var(--muted);font-size:12px;display:block}.stat strong{font-size:29px;display:block;line-height:1.1;margin-top:7px}.card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.card.section{margin-top:18px}.card-head{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.card-head .muted{margin:4px 0 0;font-size:12px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th{text-align:left;background:#f4f9f6;color:#64796f;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:11px 15px;white-space:nowrap}td{padding:13px 15px;border-top:1px solid #e9f0ed;vertical-align:top;font-size:13px}td strong{font-weight:730}td small{display:block;color:var(--muted);margin-top:4px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tbody tr:hover{background:#fafdfa}.row-link{color:#087a49;font-weight:700}.row-link:hover{text-decoration:underline}.empty{text-align:center;padding:30px;color:var(--muted)}.badge{display:inline-block;background:#eaf6f0;color:#087246;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap}.toolbar{padding:15px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.toolbar input[type=search]{width:min(480px,100%)}.toolbar label{display:flex;align-items:center;gap:10px}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin:20px}.back-link{display:inline-block;color:var(--green-dark);font-weight:700;margin-bottom:10px}.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:20px}.inline-form label{flex:1;min-width:150px;font-size:12px;font-weight:700;color:#536d64}.inline-form input{display:block;width:100%;margin-top:5px}.simple-list{display:grid}.simple-list>div{padding:14px 20px;border-top:1px solid var(--line)}.simple-list span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.text-link{font-weight:700;color:var(--green-dark)}.tabs{display:flex;gap:8px;margin-bottom:15px}.tabs a{padding:9px 14px;background:#fff;border:1px solid var(--line);border-radius:9px;font-weight:650}.tabs a.active{background:var(--mint);color:var(--green-dark);border-color:#91cead}.big-total{font-size:24px;font-weight:800;text-align:right}.big-total span{display:block;font-size:12px;font-weight:500;color:var(--muted)}.detail-list{padding:10px 19px}.detail-list>div{padding:10px 0;border-bottom:1px solid #edf2ef;display:grid;gap:4px}.detail-list span{font-size:11px;color:var(--muted)}.detail-list strong{font-size:13px}.status-form{padding:15px 19px;display:grid;gap:8px}.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#536b62}.form-stack.compact{padding:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.login-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center}.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:35px;width:min(430px,100%)}.login-card h1{font-size:29px}.login-card .form-stack{margin-top:25px}.notice{padding:12px;border-radius:9px;margin:16px 0}.notice.error{background:#fff0f1;color:#a42c3a}.error-card{padding:30px;max-width:600px}.date-nav{display:flex;align-items:center;gap:6px}.date-nav form{display:flex;gap:6px}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:14px}.schedule-card{min-width:0}.schedule-scroll{overflow:auto;max-height:calc(100vh - 190px)}.schedule-inner{min-width:calc(72px + var(--cabinet-count)*240px)}.schedule-head,.schedule-body{display:grid;grid-template-columns:72px repeat(var(--cabinet-count),minmax(240px,1fr))}.schedule-head{position:sticky;top:0;z-index:3;background:#fff}.time-head,.cabinet-head{height:58px;padding:9px 11px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.time-head{color:var(--muted);font-size:11px}.cabinet-head{text-align:center}.cabinet-head strong{display:block;font-size:13px}.cabinet-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px}.time-rail{background:#fff}.time-label{height:52px;padding:0 9px;text-align:right;border-top:1px solid var(--line);font-size:11px;color:#567067;font-weight:650}.cabinet-lane{position:relative;border-left:1px solid #b9d6c9;background:repeating-linear-gradient(to bottom,#fff 0,#fff 51px,#dae8e2 51px,#dae8e2 52px)}.cabinet-lane:nth-child(even){background:repeating-linear-gradient(to bottom,#fafffc 0,#fafffc 51px,#dae8e2 51px,#dae8e2 52px)}.visit{position:absolute;left:4px;right:4px;z-index:1;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:3px 8px;background:#e0f4e9;border:1px solid #8ccdad;border-left:3px solid #16a365;border-radius:5px;color:#153d2c}.visit:hover,.visit.selected{z-index:2;outline:2px solid #00794b;box-shadow:0 4px 14px #1747342b}.visit strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visit span,.visit small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visit.status-cancelled{background:#fff0f1;border-color:#eca9af;border-left-color:#dc505b}.visit.status-confirmed{background:#e4f1ff;border-color:#93b8e0;border-left-color:#3979c3}.visit.status-completed{background:#f0f1f3;border-color:#c6cccf;border-left-color:#7e8a91}.visit.status-arrived{background:#fff0d7;border-color:#ecc68b;border-left-color:#db973a}.schedule-aside{display:grid;gap:13px}.side-card{min-width:0}
.dental-chart{padding:25px 18px;overflow:auto;background:radial-gradient(ellipse at center,#f9fffb,#fff 65%)}.jaw-row{display:grid;grid-template-columns:repeat(16,minmax(38px,1fr));gap:5px;min-width:760px}.jaw-divider{height:1px;background:#9bc7b3;margin:17px 0}.tooth{display:grid;text-align:center;justify-items:center;gap:4px;color:#546b62}.tooth span{font-size:11px;font-weight:800}.tooth small{font-size:8px;white-space:nowrap;max-width:44px;overflow:hidden;text-overflow:ellipsis}.tooth i{display:block;width:28px;height:42px;border:2px solid #a8b9b2;border-radius:48% 48% 38% 38%;background:linear-gradient(#fff,#eef2ef);box-shadow:inset 0 -7px 9px #cbd5d0}.lower .tooth i{transform:rotate(180deg)}.tooth.state-caries i,.tooth.state-needs_extraction i{border-color:#df4a55;background:#ffe6e8}.tooth.state-filling i,.tooth.state-endodontics i{border-color:#398bd1;background:#e3f2ff}.tooth.state-crown i,.tooth.state-implant i{border-color:#8842c0;background:#f1e5fb}.tooth.state-missing i{opacity:.24;border-style:dashed}.tooth.state-observation i{border-color:#dd9a28;background:#fff3dc}
@media(max-width:1100px){.schedule-layout{grid-template-columns:1fr}.schedule-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.app-layout{display:block}.sidebar{height:auto;position:static;padding:9px 12px}.logo{display:none}.branch-label{display:none}.nav{display:flex;overflow:auto;gap:3px}.nav a{white-space:nowrap;padding:9px 11px;font-size:12px}.sidebar-bottom{display:none}.topbar{height:47px;padding:0 15px}.content{padding:17px 12px 40px}.page-head{display:block}.page-head h1{font-size:27px}.page-head>.button,.date-nav{margin-top:15px}.stats,.stats.three{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:13px}.stat strong{font-size:24px}.schedule-scroll{max-height:70vh}.schedule-aside{grid-template-columns:1fr}.tabs{overflow:auto}.tabs a{white-space:nowrap}.toolbar{flex-wrap:wrap}}

textarea{font:inherit;border:1px solid #cfdfd9;border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink);outline:none;resize:vertical;min-height:78px}textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #dff4e9}.sidebar .nav{min-height:0;overflow-y:auto;padding-right:2px}.nav a{display:flex;align-items:center;gap:11px}.nav a>span{display:grid;place-items:center;width:20px;font-size:16px}.global-search{width:min(560px,60vw);height:39px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#f8fbfa}.global-search input{border:0;box-shadow:none!important;background:transparent;width:100%;min-height:34px;padding:0}.button-group{display:flex;gap:8px;flex-wrap:wrap}.danger-text{color:#c83846!important}.danger-button{border-color:#f1b8bd;color:#b92f3d;background:#fff7f8}.badge.danger{background:#fff0f1;color:#b92f3d}.badge.status-confirmed{background:#e6f1ff;color:#2869aa}.badge.status-arrived,.badge.status-in_progress{background:#fff1d9;color:#9a6417}.badge.status-cancelled,.badge.status-no_show{background:#ffebed;color:#b73340}.badge.status-completed,.badge.status-resolved{background:#e8f6ef;color:#087246}.no-margin{margin-top:0!important}.padded{padding:20px}.stack{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label,.form-stack label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#536b62}.form-grid input,.form-grid select,.form-grid textarea,.form-stack input,.form-stack select,.form-stack textarea{width:100%}.span-2{grid-column:span 2}.span-all{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;padding-top:4px}.check-row{display:flex!important;align-items:center;gap:9px!important;min-height:38px}.check-row input{width:auto!important;min-height:0}.inline-editor{border-top:1px solid var(--line)}.inline-editor>summary,.editor-card>summary{cursor:pointer;padding:14px 18px;font-weight:800;color:var(--green-dark);list-style:none}.inline-editor>summary::-webkit-details-marker,.editor-card>summary::-webkit-details-marker{display:none}.editor-card[open]>summary{border-bottom:1px solid var(--line)}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;border:0;border-radius:8px;background:transparent;font-size:20px}.icon-button:hover{background:#edf5f1}.action-strip{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;gap:8px}.info-panel{padding:22px}.info-panel h2{margin-bottom:12px}.info-panel p{color:var(--muted);margin:0}.info-panel.mint{background:linear-gradient(145deg,#f3fcf7,#ebf8f2)}

.patient-hero{display:flex;align-items:center;gap:18px;padding:20px 22px;margin-bottom:14px}.patient-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#dff3e9;color:#087246;font-size:24px;font-weight:800}.patient-title{min-width:0;flex:1}.patient-title h1{font-size:28px;margin:0}.patient-title p{margin:4px 0 0;color:var(--muted)}.title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.age-pill{font-size:13px;font-weight:700;color:#4a675c;background:#f0f5f3;padding:4px 8px;border-radius:7px}.patient-finance{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.patient-finance>div{padding:9px 16px;min-width:115px}.patient-finance>div+div{border-left:1px solid var(--line)}.patient-finance span{font-size:11px;color:var(--muted);display:block}.patient-finance strong{font-size:17px}.patient-tabs{overflow:auto;padding-bottom:3px}.patient-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.split-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px;align-items:start}.plan-list{position:sticky;top:80px}.plan-list>a{display:grid;gap:4px;padding:15px 18px;border-top:1px solid var(--line)}.plan-list>a:hover{background:#f6fbf8}.plan-list span{font-size:12px;color:var(--muted)}.plan-list b{color:var(--green-dark)}.note-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.note-columns>div{padding:16px 20px;border-right:1px solid var(--line);border-top:1px solid var(--line)}.note-columns span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.note-columns p{white-space:pre-wrap}.timeline{padding:8px 20px 22px}.timeline article{display:grid;grid-template-columns:145px 18px 1fr;gap:12px;min-height:64px;position:relative;padding:13px 0}.timeline article:before{content:"";position:absolute;left:166px;top:0;bottom:0;width:1px;background:#cfe2d9}.timeline time{color:var(--muted);font-size:12px}.timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--green);z-index:1;margin-top:3px}.timeline article p{margin:4px 0 0;color:var(--muted);font-size:12px}.upload-zone{margin:18px;padding:24px;border:1px dashed #a9cfc0;border-radius:13px;background:#f8fcfa;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:center}.file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 18px}.file-card{display:grid;grid-template-columns:46px 1fr auto auto;gap:12px;align-items:center;border:1px solid var(--line);padding:13px;border-radius:11px}.file-icon{width:42px;height:42px;border-radius:9px;background:#e5f6ee;color:#087246;font-size:11px;font-weight:800;display:grid;place-items:center}.file-card p{margin:3px 0 0;color:var(--muted);font-size:11px}

.modal{border:0;border-radius:18px;padding:0;width:min(520px,calc(100vw - 28px));box-shadow:0 28px 90px rgba(4,43,31,.25)}.modal.wide{width:min(720px,calc(100vw - 28px))}.modal::backdrop{background:rgba(5,31,23,.46);backdrop-filter:blur(3px)}.modal>.form-stack{padding:24px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-head h2{font-size:22px}.modal-head .eyebrow{margin-bottom:5px}.payment-parts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}

.schedule-toolbar{padding:14px 16px;display:grid;grid-template-columns:auto auto minmax(300px,1fr) auto;gap:12px;align-items:center;margin-bottom:14px;overflow:visible}.schedule-title{display:flex;align-items:baseline;gap:10px;white-space:nowrap}.schedule-title h1{font-size:24px;margin:0}.schedule-title span{font-size:12px;color:var(--muted)}.segmented{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.segmented a{padding:8px 12px;font-weight:700;font-size:12px}.segmented a.active{background:var(--green);color:white}.schedule-filters{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(120px,.7fr) minmax(220px,1.5fr) auto auto;gap:7px}.schedule-filters input,.schedule-filters select{min-width:0}.schedule-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.schedule-days{display:flex;align-items:flex-start;min-width:100%}.schedule-days.many{width:max-content}.day-board{min-width:calc(74px + var(--cabinet-count)*260px);border-right:1px solid var(--line)}.day-caption{height:45px;display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);background:#f8fcfa;position:sticky;top:0;z-index:7}.day-caption span{font-size:11px;color:var(--green-dark);background:#e5f7ed;padding:4px 8px;border-radius:99px}.schedule-days.many .day-board{min-width:680px}.schedule-scroll{max-height:calc(100vh - 245px)}.schedule-card{position:relative}.schedule-card .schedule-head{top:45px}.cabinet-lane{overflow:hidden}.work-window{position:absolute;left:0;right:0;z-index:0;opacity:.8;border-left:3px solid #39a878}.schedule-slot{position:absolute;left:0;right:0;width:100%;z-index:1;border:0;border-top:1px solid transparent;background:transparent;border-radius:0;padding:0}.schedule-slot:hover{background:rgba(0,156,90,.08)}.schedule-slot.selected-slot{background:rgba(0,156,90,.17);box-shadow:inset 0 0 0 1px #008a50}.schedule-slot.split-slot{border-top-color:#bdd8cc}.visit{z-index:4}.reservation{position:absolute;left:4px;right:4px;z-index:3;background:repeating-linear-gradient(135deg,#f5f0dc,#f5f0dc 6px,#fff8dc 6px,#fff8dc 12px);border:1px dashed #b99c3d;border-radius:5px;padding:4px 7px;overflow:hidden;color:#6c5814}.reservation strong,.reservation span{display:block;font-size:10px}.reservation form{position:absolute;right:2px;top:2px}.reservation button{border:0;background:transparent;color:#8b6e12}.schedule-legend{min-height:42px;padding:9px 14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.schedule-legend>span{display:flex;align-items:center;gap:6px}.schedule-legend>b{margin-left:auto;color:var(--green-dark)}.legend{width:9px;height:9px;border-radius:50%;background:#c7d1cd}.legend.planned{background:#16a365}.legend.confirmed{background:#3979c3}.legend.arrived{background:#db973a}.legend.completed{background:#7e8a91}.legend.cancelled{background:#dc505b}.slot-menu{position:fixed;z-index:50;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(4,43,31,.18);padding:5px;display:grid;min-width:190px}.slot-menu[hidden]{display:none}.slot-menu button{border:0;background:white;text-align:left;padding:9px 11px;border-radius:7px}.slot-menu button:hover{background:var(--mint)}.selection-summary{padding:10px 12px;border-radius:9px;background:var(--mint);color:var(--green-dark);font-weight:700}.side-card .inline-editor{border-bottom:1px solid var(--line)}

.task-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:15px;align-items:start}.sticky-card{position:sticky;top:78px}.selected-row{background:#edf9f3!important}.task-events{border-top:1px solid var(--line);padding:10px 18px}.task-events>div{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #edf2ef}.task-events time{font-size:10px;color:var(--muted)}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.role-card{border:1px solid var(--line);border-radius:11px}.role-card summary{cursor:pointer;padding:15px;display:flex;justify-content:space-between}.role-card summary span{color:var(--muted);font-size:12px}.permission-list{padding:0 15px 15px;display:grid;gap:6px}.permission-list label{display:grid;grid-template-columns:auto 1fr;gap:0 8px;border-top:1px solid #edf2ef;padding:8px 0}.permission-list label input{grid-row:1/3}.permission-list small{color:var(--muted)}.two-column{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}.shift-banner{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;margin-bottom:16px}.shift-banner>div{display:flex;gap:11px;align-items:center}.shift-banner p{margin:3px 0 0;color:var(--muted);font-size:12px}.live-dot{width:12px;height:12px;border-radius:50%;background:#06a65f;box-shadow:0 0 0 5px #def5e9}.filter-card{margin-bottom:18px}

@media(max-width:1400px){.schedule-toolbar{grid-template-columns:auto 1fr auto}.schedule-filters{grid-column:1/-1}.schedule-workspace{grid-template-columns:minmax(0,1fr) 310px}.patient-finance{display:none}}
@media(max-width:1100px){.patient-grid,.split-workspace,.task-layout,.two-column{grid-template-columns:1fr}.plan-list,.sticky-card{position:static}.role-grid{grid-template-columns:1fr}.schedule-workspace{grid-template-columns:1fr}.schedule-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-toolbar{grid-template-columns:1fr auto}.schedule-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.date-nav{grid-column:1/-1}.file-grid{grid-template-columns:1fr}}
@media(max-width:720px){.form-grid,.note-columns,.payment-parts{grid-template-columns:1fr}.span-2{grid-column:auto}.patient-hero{align-items:flex-start;flex-wrap:wrap}.patient-avatar{width:44px;height:44px}.patient-title h1{font-size:22px}.schedule-toolbar{display:block}.schedule-toolbar>*+*{margin-top:10px}.schedule-filters{display:grid;grid-template-columns:1fr}.schedule-aside{grid-template-columns:1fr}.upload-zone{grid-template-columns:1fr}.file-card{grid-template-columns:42px 1fr auto}.file-card form{grid-column:3}.timeline article{grid-template-columns:1fr}.timeline article:before,.timeline-dot{display:none}.role-grid{padding:10px}.top-user{display:none}.global-search{width:100%}}
.dental-chart button.tooth{border:0;background:transparent;font:inherit;padding:0;cursor:pointer}
.dental-chart button.tooth:hover i{transform:translateY(-2px);box-shadow:0 5px 12px rgba(0,88,50,.14)}
.dental-chart .lower button.tooth:hover i{transform:rotate(180deg) translateY(2px)}
.schedule-days:not(.many) .day-board{width:100%}
.patient-title h1 .age-pill{display:inline-block;vertical-align:middle;margin-left:9px;white-space:nowrap;letter-spacing:0}
.jaw3d-card{overflow:hidden}.jaw3d-head{align-items:flex-start;flex-wrap:wrap}.jaw3d-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.jaw3d-controls label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.jaw3d-controls input[type=checkbox]{min-height:auto;width:15px;height:15px;accent-color:var(--green)}.jaw3d-controls input[type=range]{min-height:auto;width:82px;padding:0;accent-color:var(--green);border:0}.jaw3d-stage{height:min(520px,61vh);min-height:390px;position:relative;overflow:hidden;background:radial-gradient(circle at 47% 40%,#fff 0,#f1f8f4 52%,#dcebe3 100%)}.jaw3d-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.jaw3d-stage canvas:active{cursor:grabbing}.jaw3d-info{position:absolute;right:16px;bottom:16px;display:grid;gap:3px;max-width:320px;padding:10px 13px;border:1px solid rgba(159,194,177,.8);border-radius:10px;background:rgba(255,255,255,.91);backdrop-filter:blur(8px);box-shadow:0 8px 28px rgba(4,54,34,.1);pointer-events:none}.jaw3d-info strong{color:var(--green-dark)}.jaw3d-info span{font-size:11px;color:var(--muted)}
@media(max-width:720px){.jaw3d-stage{height:420px;min-height:360px}.jaw3d-info{left:10px;right:10px;bottom:10px}.jaw3d-controls{justify-content:flex-start}}

/* Internet-sourced Lucide icons, served locally */
.nav a>.nav-icon{width:19px;height:19px;flex:0 0 19px;filter:brightness(0) invert(88%) sepia(15%) saturate(405%) hue-rotate(99deg);opacity:.9}.nav a:hover>.nav-icon,.nav a.active>.nav-icon{filter:brightness(0) invert(1);opacity:1}.global-search>img{width:17px;height:17px;opacity:.55}.context-menu img{width:16px;height:16px;flex:0 0 16px}

/* Compact schedule: one 30-minute interval is 36px, split intervals are 18px. */
.content:has(.schedule-toolbar){max-width:none;padding:14px 16px 28px}.schedule-toolbar{padding:8px 10px;gap:8px;margin-bottom:8px;border-radius:10px}.schedule-title h1{font-size:21px}.schedule-title span{font-size:11px}.schedule-toolbar input,.schedule-toolbar select,.schedule-toolbar .button{min-height:34px;padding-top:5px;padding-bottom:5px}.segmented a{padding:7px 11px}.schedule-workspace{grid-template-columns:minmax(0,1fr) 310px;gap:8px}.schedule-card{border-radius:9px}.schedule-scroll{max-height:calc(100vh - 178px)}.day-board{min-width:calc(58px + var(--cabinet-count)*220px)}.schedule-days.many .day-board{min-width:580px}.day-caption{height:34px;padding:5px 10px}.day-caption span{padding:2px 7px}.schedule-card .schedule-head{top:34px}.schedule-head,.schedule-body{grid-template-columns:58px repeat(var(--cabinet-count),minmax(210px,1fr))}.time-head,.cabinet-head{height:42px;padding:5px 7px}.cabinet-head strong{font-size:11px}.cabinet-head small{font-size:9px}.time-head{font-size:9px}.time-label{height:36px;padding:0 7px;font-size:9px;line-height:12px}.cabinet-lane{background:repeating-linear-gradient(to bottom,#fff 0,#fff 35px,#d6e5de 35px,#d6e5de 36px)}.cabinet-lane:nth-child(even){background:repeating-linear-gradient(to bottom,#fafffc 0,#fafffc 35px,#d6e5de 35px,#d6e5de 36px)}.schedule-slot.split-slot{border-top-color:#aacfc0}.visit{left:2px;right:2px;padding:1px 5px;border-radius:3px;line-height:1.08}.visit strong{font-size:10.5px}.visit span,.visit small{font-size:9px}.reservation{left:2px;right:2px;padding:2px 5px;border-radius:3px}.reservation strong,.reservation span{font-size:9px}.schedule-legend{min-height:34px;padding:6px 10px;gap:11px}.side-card .card-head{padding:12px 15px}.side-card .detail-list{padding:7px 15px}.side-card .detail-list>div{padding:7px 0}.editor-card>summary,.inline-editor>summary{padding:11px 15px}.form-stack.compact{padding:14px}.schedule-aside{gap:8px}

/* Right-click menus for empty slots and existing appointments. */
.context-menu{position:fixed;z-index:80;display:grid;min-width:244px;padding:6px;border:1px solid #bdd3ca;border-radius:11px;background:rgba(255,255,255,.98);box-shadow:0 16px 44px rgba(4,43,31,.22);backdrop-filter:blur(12px)}.context-menu[hidden]{display:none}.context-menu-head{display:grid;gap:2px;padding:8px 10px 9px;border-bottom:1px solid #e7efeb;margin-bottom:4px}.context-menu-head strong{font-size:13px}.context-menu-head span{font-size:10px;color:var(--muted)}.context-menu button,.context-menu>a{display:flex;align-items:center;gap:9px;width:100%;min-height:34px;border:0;border-radius:7px;padding:7px 9px;background:transparent;color:#173e2f;text-align:left;font:600 12px/1.2 var(--ui-font,"Segoe UI",sans-serif)}.context-menu button:hover,.context-menu>a:hover{background:#eaf7f0;color:#006c40}.context-separator{height:1px;background:#e7efeb;margin:4px 5px}

@media(max-width:1100px){.font-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-workspace{grid-template-columns:1fr}.schedule-scroll{max-height:70vh}}
@media(max-width:720px){.font-grid{grid-template-columns:1fr}.content:has(.schedule-toolbar){padding:9px}.schedule-head,.schedule-body{grid-template-columns:52px repeat(var(--cabinet-count),minmax(190px,1fr))}.day-board{min-width:calc(52px + var(--cabinet-count)*190px)}}
.visit-short{justify-content:center}.visit-short span,.visit-short small{display:none}

/* Fast patient search inside the appointment dialog. */
.patient-picker{position:relative;display:grid;gap:5px}.patient-search-box{position:relative;display:flex;align-items:center}.patient-search-box>img{position:absolute;left:12px;width:17px;height:17px;opacity:.55;pointer-events:none}.patient-search-box>input{padding-left:39px!important;padding-right:38px!important}.patient-search-box>input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.patient-search-box>button{position:absolute;right:7px;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#6b7d89;font-size:19px;line-height:1}.patient-search-box>button:hover{background:#eaf5f0;color:#006f43}.patient-picker>small{font-weight:500;color:var(--muted);padding-left:2px}.patient-picker.has-selection .patient-search-box>input{border-color:#36a878;background:#f7fffa;box-shadow:0 0 0 3px #e3f6ec}.patient-search-results{position:absolute;left:0;right:0;top:44px;z-index:95;max-height:290px;overflow:auto;padding:5px;border:1px solid #b9d4c8;border-radius:10px;background:#fff;box-shadow:0 18px 46px rgba(4,43,31,.2)}.patient-result{display:grid;width:100%;gap:2px;padding:9px 11px;border:0;border-radius:7px;background:#fff;text-align:left;color:var(--ink)}.patient-result:hover,.patient-result.active{background:#eaf8f1}.patient-result strong{font-size:13px}.patient-result span{color:var(--muted);font-size:11px}.patient-result-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}


/* Schedule workspace: mini calendar plus a non-blocking icon drawer. */
.schedule-workspace{grid-template-columns:190px minmax(0,1fr) 54px;gap:8px;position:relative}
.schedule-calendar{position:sticky;top:76px;padding:10px;border-radius:9px;min-width:0}
.mini-calendar-head{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:4px;margin-bottom:7px}.mini-calendar-head strong{text-align:center;font-size:12px}.mini-calendar-head a{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;color:var(--green-dark);font-size:20px;font-weight:700}.mini-calendar-head a:hover{border-color:#b9d7ca;background:#edf8f2}.mini-calendar-weekdays,.mini-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.mini-calendar-weekdays{margin-bottom:3px}.mini-calendar-weekdays span{text-align:center;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.mini-calendar-day{position:relative;aspect-ratio:1;min-width:0;display:grid;place-items:center;border:1px solid transparent;border-radius:7px;color:#28483c;font-size:10px;font-weight:700}.mini-calendar-day:hover{border-color:#8cc8ad;background:#f3fbf7}.mini-calendar-day.outside{color:#b2c0ba}.mini-calendar-day.in-range{background:#dff3e9;color:#075e3a}.mini-calendar-day.today{box-shadow:inset 0 0 0 1px #17a263}.mini-calendar-day.selected{background:#05985a;color:#fff;box-shadow:0 3px 9px rgba(0,126,72,.2)}.mini-calendar-day>i{position:absolute;left:50%;bottom:2px;width:3px;height:3px;border-radius:50%;background:#14a465;transform:translateX(-50%)}.mini-calendar-day.selected>i{background:#fff}.mini-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid #e5eeea;color:var(--muted);font-size:9px}.mini-calendar-footer span{display:flex;align-items:center;gap:5px}.mini-calendar-footer span i{width:5px;height:5px;border-radius:50%;background:#14a465}.mini-calendar-footer a{color:var(--green-dark);font-weight:800}
.schedule-aside{position:sticky;top:76px;width:54px;min-height:54px;display:block;overflow:visible;z-index:24}.schedule-drawer{position:absolute;top:0;right:0;width:54px;display:grid;gap:8px;transition:width .18s ease}.schedule-aside:hover .schedule-drawer,.schedule-aside:focus-within .schedule-drawer{width:330px}.schedule-drawer>.side-card{overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(7,59,41,.08)}.schedule-drawer>.side-card>.card-head:before,.schedule-drawer>.editor-card>summary:before{content:"";width:20px;height:20px;flex:0 0 20px;background:center/contain no-repeat url("icons/calendar-days.svg")}.schedule-drawer>.editor-card>summary:before{background-image:url("icons/user-round-cog.svg")}.schedule-drawer>.editor-card+.editor-card>summary:before{background-image:url("icons/clock-3.svg")}.schedule-drawer>.side-card>.card-head,.schedule-drawer>.editor-card>summary{display:flex;align-items:center;gap:10px;min-height:52px}.schedule-drawer>.side-card>.card-head{justify-content:flex-start}.schedule-drawer:not(:hover):not(:focus-within)>.side-card:not(.editor-card)>*:not(.card-head),.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>*:not(summary){display:none}.schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head,.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{width:52px;height:52px;min-height:52px;padding:0;display:grid;place-items:center}.schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head>*,.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{font-size:0}.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary:before{margin:0}.schedule-aside:hover .schedule-drawer>.side-card,.schedule-aside:focus-within .schedule-drawer>.side-card{box-shadow:0 14px 38px rgba(4,43,31,.16)}
@media(max-width:1400px){.schedule-workspace{grid-template-columns:176px minmax(0,1fr) 52px}.schedule-calendar{padding:8px}.schedule-aside,.schedule-drawer{width:52px}}
@media(max-width:1100px){.schedule-workspace{grid-template-columns:minmax(0,1fr) 52px}.schedule-calendar{grid-column:1/-1;position:static;width:min(350px,100%)}.schedule-card{grid-column:1;grid-row:2}.schedule-aside{grid-column:2;grid-row:2}.schedule-aside:hover .schedule-drawer,.schedule-aside:focus-within .schedule-drawer{width:min(330px,calc(100vw - 28px))}}
@media(max-width:720px){.schedule-workspace{grid-template-columns:minmax(0,1fr) 48px}.schedule-calendar{width:100%}.schedule-aside,.schedule-drawer{width:48px}.schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head,.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{width:46px;height:46px;min-height:46px}}



/* Slot assignment follows the doctor's shift; inactive time cannot create an appointment. */
.schedule-slot.unassigned-slot{cursor:not-allowed}.schedule-slot.unassigned-slot:hover{background:rgba(112,130,122,.06)}.schedule-slot.working-slot{cursor:crosshair}
.slot-assignment{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #b9dccb;border-radius:10px;background:#eef9f3;color:#164b36}.slot-assignment[hidden]{display:none}.slot-assignment img{width:21px;height:21px;filter:brightness(0) saturate(100%) invert(38%) sepia(66%) saturate(1078%) hue-rotate(112deg)}.slot-assignment div{display:grid;gap:2px}.slot-assignment span{font-size:10px;color:#6a7e75}.slot-assignment strong{font-size:13px}
[data-assignment-fields][hidden]{display:none!important}
.context-menu button:disabled{cursor:not-allowed;opacity:.42;background:transparent}

/* Stable schedule action rail and appointment preview. */
.schedule-drawer{isolation:isolate;will-change:width}.schedule-drawer:hover{width:330px}.schedule-drawer>.side-card{min-width:52px}.schedule-drawer>.side-card>.card-head:before,.schedule-drawer>.editor-card>summary:before{display:block;background-origin:content-box}.appointment-preview-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 15px 15px;border-top:1px solid var(--line)}.appointment-preview-actions .button{flex:1}.schedule-aside.has-preview .server-appointment-card{display:none}
.schedule-aside.is-open .schedule-drawer{width:330px}.schedule-aside.is-open .schedule-drawer:not(:hover):not(:focus-within)>.side-card:not(.editor-card)>*:not(.card-head){display:block}.schedule-aside.is-open .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head{width:auto;height:auto;min-height:52px;padding:12px 15px;display:flex;align-items:center}.schedule-aside.is-open .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head>*{display:initial;font-size:initial}.schedule-aside.is-open .schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{width:auto;height:auto;min-height:52px;padding:11px 15px;display:flex;font-size:12px}.schedule-aside.is-open .schedule-drawer:not(:hover):not(:focus-within)>.editor-card[open]>form{display:grid}.schedule-aside.is-open .appointment-preview-actions{display:flex!important}
[data-preview-note-row][hidden]{display:none!important}

/* Doctor colour marks the full working interval; closed time stays visibly grey and selectable. */
.cabinet-head.has-shift{background:color-mix(in srgb,var(--doctor-color) 13%,#fff);box-shadow:inset 0 3px 0 var(--doctor-color)}
.cabinet-head.has-shift small{color:color-mix(in srgb,var(--doctor-color) 72%,#203b31)}
.cabinet-lane,.cabinet-lane:nth-child(even){background:repeating-linear-gradient(to bottom,#eef1f0 0,#eef1f0 35px,#cfd8d4 35px,#cfd8d4 36px)}
.work-window{background:color-mix(in srgb,var(--doctor-color) 16%,#fff);border-left-color:var(--doctor-color);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--doctor-color) 24%,transparent);opacity:1}
.schedule-slot.unassigned-slot{cursor:crosshair}.schedule-slot.unassigned-slot:hover{background:rgba(70,96,85,.10)}

/* Expanded editors float above the schedule and never change the page geometry. */
.schedule-aside.is-open .schedule-drawer{position:fixed;top:76px;right:16px;width:330px;max-height:calc(100vh - 92px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:2px;scrollbar-width:thin}
.schedule-aside.editor-open .schedule-drawer>.editor-card[open]{box-shadow:0 18px 48px rgba(4,43,31,.20)}
.schedule-aside.editor-open .appointment-preview,.schedule-aside.editor-open .server-appointment-card{display:none!important}
@media(max-width:720px){.schedule-aside.is-open .schedule-drawer{top:58px;right:8px;width:min(330px,calc(100vw - 16px));max-height:calc(100vh - 66px)}}

/* Patient card tabs load in place. */
[data-patient-dynamic]{position:relative;transition:opacity .14s ease}.patient-tab-loading{opacity:.45;pointer-events:none}.patient-tab-loading:after{content:"Загружаем раздел…";position:fixed;left:50%;top:50%;z-index:60;transform:translate(-50%,-50%);padding:10px 14px;border:1px solid #b8d6c8;border-radius:10px;background:#fff;color:#076d43;font-weight:800;box-shadow:0 12px 35px rgba(4,43,31,.14)}

/* Working time is a visible block with the slot grid retained on top. */
.work-window{left:2px;right:2px;background:repeating-linear-gradient(to bottom,color-mix(in srgb,var(--doctor-color) 25%,#fff) 0,color-mix(in srgb,var(--doctor-color) 25%,#fff) 35px,color-mix(in srgb,var(--doctor-color) 50%,#fff) 35px,color-mix(in srgb,var(--doctor-color) 50%,#fff) 36px);border:1px solid color-mix(in srgb,var(--doctor-color) 52%,#fff);border-left:4px solid var(--doctor-color);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.26);opacity:1}
.schedule-drawer>.editor-card>summary:before{width:20px;height:20px;min-width:20px;background-image:url("icons/user-check.svg");background-position:center;background-size:20px 20px;background-repeat:no-repeat}
.schedule-drawer>.editor-card+.editor-card>summary:before{background-image:url("icons/clock-3.svg")}
.modal-actions{display:flex;gap:8px;align-items:stretch}.modal-actions>.button{flex:1}.modal-actions>[hidden]{display:none}

/* Schedule feedback, 15-minute ticks and stable floating editors. */
.context-menu [hidden]{display:none!important}.time-rail{position:relative}.time-label{position:absolute;left:0;right:0;height:18px;padding:0 7px;line-height:12px;border-top:1px solid var(--line);background:#fff}.time-label.minor{font-size:8px;color:#789087;border-top-color:#d8e5df}.schedule-notice{position:fixed;top:76px;right:24px;z-index:120;display:flex;align-items:center;gap:14px;max-width:min(520px,calc(100vw - 32px));padding:12px 14px;border:1px solid #edabb2;border-radius:11px;background:#fff4f5;color:#9d2935;font-weight:700;box-shadow:0 16px 44px rgba(77,12,21,.18)}.schedule-notice button{margin-left:auto;border:0;background:transparent;color:inherit;font-size:21px;line-height:1}.schedule-loading{opacity:.55;pointer-events:none}.schedule-aside.is-open .schedule-drawer{padding:6px;border:1px solid #d8e5df;border-radius:14px;background:#f2f7f4;box-shadow:0 18px 48px rgba(4,43,31,.18);gap:6px}.reservation[data-reservation-id]{cursor:context-menu}

/* Global patient finder and account menu. */
.topbar{position:relative;z-index:35}.global-patient-search{position:relative;width:min(640px,65vw)}.global-patient-search .global-search{width:100%}.global-search kbd{border:1px solid #d7e2de;border-bottom-width:2px;border-radius:6px;padding:2px 6px;background:#fff;color:#789087;font:600 10px/1.3 var(--ui-font,"Segoe UI",sans-serif);white-space:nowrap}.global-search-results{position:absolute;left:0;right:0;top:46px;z-index:150;max-height:390px;overflow:auto;padding:6px;border:1px solid #bcd5ca;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(4,43,31,.2)}.global-search-results[hidden]{display:none}.global-search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;padding:10px 12px;border-radius:8px}.global-search-result:hover,.global-search-result.active{background:#eaf7f0}.global-search-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.global-search-result span{grid-row:1/3;grid-column:2;color:#0a7046;font-size:11px;font-weight:750}.global-search-result small{color:var(--muted);font-size:10px}.global-search-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}.top-user-menu{position:relative}.top-user-menu>summary{list-style:none;display:flex;align-items:center;gap:9px;min-height:38px;padding:7px 10px;border:1px solid transparent;border-radius:9px;color:var(--ink);font-weight:750;cursor:pointer;white-space:nowrap}.top-user-menu>summary::-webkit-details-marker{display:none}.top-user-menu>summary:hover,.top-user-menu[open]>summary{border-color:#cbded6;background:#f5faf7}.top-user-menu>summary i{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}.top-user-popover{position:absolute;right:0;top:46px;z-index:150;width:230px;padding:6px;border:1px solid #bed5cb;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(4,43,31,.2)}.top-user-card{display:grid;gap:2px;padding:10px 11px;border-bottom:1px solid #e6efeb;margin-bottom:4px}.top-user-card small{color:var(--muted)}.top-user-popover form{margin:0}.top-user-popover button{display:flex;align-items:center;gap:9px;width:100%;min-height:37px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#193f31;font-weight:700;text-align:left}.top-user-popover button:hover{background:#eaf7f0}.top-user-popover button img{width:17px;height:17px}.top-user-popover button>span{display:grid;place-items:center;width:17px;font-size:18px}
.global-search-result>.global-search-result-copy{display:grid;grid-row:auto;grid-column:auto;gap:2px;min-width:0;color:inherit;font-size:inherit;font-weight:inherit}.global-search-result>.global-result-badge{grid-row:auto;grid-column:auto;align-self:center;color:#0a7046;font-size:11px;font-weight:750}.global-search-result>.global-result-badge.archived{color:#9b4450}.global-search-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Compact doctor headers: one doctor, any number of separate shifts. */
.schedule-head{align-items:stretch}.time-head,.cabinet-head{height:auto;min-height:50px}.cabinet-head{display:grid;align-content:center;gap:2px;overflow:hidden}.cabinet-head>small{display:grid;gap:1px;white-space:normal;line-height:1.18}.doctor-shift-summary{display:flex;justify-content:center;align-items:baseline;gap:4px;min-width:0}.doctor-shift-summary b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-weight:650}.doctor-shift-summary i{flex:0 0 auto;font-style:normal;white-space:nowrap}

/* Modal motion and stable text selection. */
dialog.modal[open]{animation:stomvio-modal-in .2s cubic-bezier(.2,.8,.2,1) both}dialog.modal[open]::backdrop{animation:stomvio-backdrop-in .18s ease-out both}.modal form,.modal input,.modal textarea,.modal [contenteditable="true"]{user-select:text}.modal button,.modal label,.modal .eyebrow,.modal h2{user-select:none}@keyframes stomvio-modal-in{from{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes stomvio-backdrop-in{from{background:rgba(5,31,23,0);backdrop-filter:blur(0)}to{background:rgba(5,31,23,.46);backdrop-filter:blur(3px)}}@media(prefers-reduced-motion:reduce){dialog.modal[open],dialog.modal[open]::backdrop{animation-duration:.01ms}}

/* Schedule fragments update in place after actions. */
.schedule-action-busy{opacity:.58;pointer-events:none}.schedule-action-busy button[type="submit"]{cursor:wait}

/* Stable compact navigation: both rails expand over content without moving it. */
@media(min-width:721px){
  .app-layout{grid-template-columns:66px minmax(0,1fr)}
  .sidebar{width:66px;z-index:70;padding:20px 9px;overflow:hidden;transition:width .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease}
  .sidebar:hover,.sidebar:focus-within{width:224px;box-shadow:12px 0 34px rgba(2,35,24,.20)}
  .logo{padding:0 7px;gap:11px}.logo img{flex:0 0 35px}
  .branch-label,.logo>span,.nav-label,.sidebar-bottom{opacity:0;visibility:hidden;white-space:nowrap;transition:opacity .14s ease,visibility .14s ease}
  .sidebar:hover .branch-label,.sidebar:focus-within .branch-label,.sidebar:hover .logo>span,.sidebar:focus-within .logo>span,.sidebar:hover .nav-label,.sidebar:focus-within .nav-label,.sidebar:hover .sidebar-bottom,.sidebar:focus-within .sidebar-bottom{opacity:1;visibility:visible}
  .sidebar .nav{overflow:hidden;padding-right:0}.sidebar .nav a{width:206px;padding:11px 14px}
}
.schedule-drawer>.editor-card>summary{font-size:12px!important}
.drawer-label{display:block;max-width:220px;opacity:1;white-space:nowrap;overflow:hidden;transition:max-width .16s ease,opacity .12s ease}
.schedule-drawer:not(:hover):not(:focus-within) .drawer-label{max-width:0;opacity:0}
.schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{font-size:12px!important}
.schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head>*{visibility:hidden}
.schedule-aside.is-open .schedule-drawer>.side-card>.card-head>*{visibility:visible}
.schedule-aside.is-open .schedule-drawer .drawer-label{max-width:220px;opacity:1}

/* Every modal uses the same entrance and exit motion. */
dialog.modal.is-closing{animation:stomvio-modal-out .16s ease-in both}
dialog.modal.is-closing::backdrop{animation:stomvio-backdrop-out .16s ease-in both}
@keyframes stomvio-modal-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.982)}}
@keyframes stomvio-backdrop-out{from{background:rgba(5,31,23,.46);backdrop-filter:blur(3px)}to{background:rgba(5,31,23,0);backdrop-filter:blur(0)}}
@media(prefers-reduced-motion:reduce){dialog.modal.is-closing,dialog.modal.is-closing::backdrop{animation-duration:.01ms}}

/* Administrator queue below the schedule. */
.schedule-queue{margin-top:12px;animation:queue-in .18s ease-out both}
.schedule-queue .card-head p{margin:3px 0 0}.schedule-queue table{min-width:980px}
.schedule-queue td{vertical-align:middle;padding:10px 13px}.schedule-queue th{padding:9px 13px}
.queue-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.queue-actions .button{min-height:30px}
.queue-done{display:inline-flex;align-items:center;gap:6px;color:#087246;font-weight:750;font-size:12px}
.queue-done:before{content:"✓";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e3f5eb}
.queue-row{transition:background .16s ease,opacity .16s ease}.queue-row.status-completed{background:#fbfdfc}
@keyframes queue-in{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}

/* Faster, richer patient finder. */
.global-search-results{padding:8px;border-radius:14px}
.global-search-result{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:4px 11px;min-height:58px;padding:8px 10px}
.global-search-result>.global-result-avatar{grid-column:1;grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#dff5e9,#eefaf4);color:#087246;font-size:15px;font-weight:850}
.global-search-result>.global-search-result-copy{grid-column:2;grid-row:1/3}
.global-search-result>.global-result-badge{grid-column:3;grid-row:1/3;padding:4px 7px;border-radius:7px;background:#eaf7f0}
.global-search-result:hover>.global-result-avatar,.global-search-result.active>.global-result-avatar{background:#fff;box-shadow:0 2px 9px rgba(5,91,55,.12)}
.global-search-empty{min-height:54px;display:grid;place-items:center}

/* Page navigation is prefetched and uses the browser's document transition. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:stomvio-page-old .11s ease-in both}
::view-transition-new(root){animation:stomvio-page-new .17s ease-out both}
@keyframes stomvio-page-old{to{opacity:.35}}
@keyframes stomvio-page-new{from{opacity:.35}}

/* Patient search sits with the account controls on the right. */
.topbar{justify-content:flex-end;gap:10px}
.global-patient-search{margin-left:auto;width:min(640px,58vw)}
.required-mark{color:#c83846}

/* Patient home summary. */
.patient-dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
.patient-metric{position:relative;display:grid;align-content:start;gap:5px;min-height:112px;padding:16px 17px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,#fff,#f8fbf9);box-shadow:var(--shadow);overflow:hidden}
.patient-metric:after{content:"";position:absolute;right:-24px;bottom:-32px;width:82px;height:82px;border-radius:50%;background:#edf7f2}
.patient-metric.accent{border-color:#a8d9c1;background:linear-gradient(145deg,#edf9f3,#fff)}
.patient-metric.accent:after{background:#d8f1e5}.patient-metric>span{color:var(--muted);font-size:11px;font-weight:700}.patient-metric>strong{position:relative;z-index:1;font-size:17px;letter-spacing:-.02em}.patient-metric>small{position:relative;z-index:1;color:var(--muted);font-size:11px}.patient-metric.number>strong{font-size:30px;color:var(--green-dark);line-height:1.05}

/* Quick patient creation and appointment flow actions. */
.quick-patient-toggle{justify-self:start;margin-top:-4px}.quick-patient-toggle.active{border-color:#68bd92;background:#eef9f3}
.quick-patient-panel{display:grid;gap:12px;padding:15px;border:1px solid #a9d5c1;border-radius:12px;background:#f5fcf8;animation:quick-patient-in .16s ease-out both}
.quick-patient-panel[hidden]{display:none}.quick-patient-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.quick-patient-head>div{display:grid;gap:2px}.quick-patient-head small{color:var(--muted);font-size:11px}.quick-patient-feedback{min-height:17px;color:var(--muted);font-size:11px;font-weight:700}.quick-patient-feedback.error{color:#b52f3d}.quick-patient-feedback.success{color:#087246}
@keyframes quick-patient-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.appointment-flow-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 15px;border-top:1px solid var(--line)}
.appointment-flow-actions button{min-height:33px;border:1px solid #d6e4de;border-radius:8px;background:#fff;color:#174232;font:700 11px/1.2 var(--ui-font,"Segoe UI",sans-serif);padding:7px 8px}
.appointment-flow-actions button:hover{border-color:#86c8a9;background:#edf9f3}.appointment-flow-actions button[data-preview-move]{grid-column:1/-1;color:#076f44;background:#effaf4}
.appointment-flow-actions button[hidden]{display:none!important}

/* Persistent appointment move buffer. */
.move-buffer-banner{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin:-1px 0 8px;padding:9px 12px;border:1px solid #82c7a4;border-radius:11px;background:linear-gradient(105deg,#e8f8f0,#f8fffb);box-shadow:0 8px 24px rgba(5,84,51,.08);animation:quick-patient-in .16s ease-out both}
.move-buffer-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff;color:#00844d;font-size:22px;font-weight:800;box-shadow:0 3px 12px rgba(5,84,51,.1)}.move-buffer-banner>div{display:grid;gap:2px}.move-buffer-banner small{color:#557067;font-size:11px}.context-menu .move-target-action{color:#006f43;background:#e6f7ee;border:1px solid #b4ddc9}.schedule-notice.info{border-color:#8bcbae;background:#edf9f3;color:#076f44}
.schedule-notice.success{border-color:#78c69f;background:#eaf8f1;color:#076f44}

/* Confirmation rail and stage-aware appointment actions. */
.schedule-left-rail{position:sticky;top:76px;align-self:start;display:grid;gap:8px;min-width:0}.schedule-left-rail .schedule-calendar{position:static;top:auto}.visit{appearance:none;width:auto;text-align:left;font-family:Onest,sans-serif!important;cursor:pointer}.confirmation-panel{overflow:hidden}.confirmation-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px 8px}.confirmation-head .eyebrow{font-size:8px;margin-bottom:2px}.confirmation-head h2{font-size:14px}.confirmation-hint{margin:0;padding:0 12px 9px;color:var(--muted);font-size:9px;line-height:1.35;border-bottom:1px solid var(--line)}.confirmation-list{display:grid;max-height:360px;overflow:auto}.confirmation-item{display:grid;gap:7px;padding:10px 12px;border-top:1px solid #edf2ef}.confirmation-item:first-child{border-top:0}.confirmation-copy{display:grid;gap:2px;min-width:0}.confirmation-copy strong{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.confirmation-copy span{font-size:8.5px;color:var(--muted);line-height:1.35}.confirmation-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.confirmation-flow i{height:3px;border-radius:99px;background:#dbe5e0}.confirmation-flow i.done{background:#0aa15f}.confirmation-action{font-size:9px}.confirmation-action form{display:block}.confirmation-action .button{width:100%;min-height:28px;font-size:9px;padding:4px 6px}.confirmation-ok{color:#087246;font-weight:800}.confirmation-done{color:#66756f;font-weight:800}.confirmation-later{color:#936a1e;font-weight:700}.confirmation-more{padding:8px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.empty.compact{padding:16px 8px;font-size:10px}

/* Doctor-to-administrator billing queue. */
.nav a{position:relative}.nav-badge{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#ffcf5a;color:#573d00;font-size:10px;line-height:1;box-shadow:0 0 0 2px rgba(0,57,39,.45)}.badge.attention{background:#fff0c9;color:#785a09}.payment-inbox,.order-ready{margin-bottom:18px}.payment-inbox-list,.order-ready-list{display:grid}.payment-inbox-list article,.order-ready-list article{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:14px;padding:13px 18px;border-top:1px solid var(--line)}.payment-inbox-list article:first-child,.order-ready-list article:first-child{border-top:0}.payment-inbox-main,.order-ready-list article>div{display:grid;gap:3px;min-width:0}.payment-inbox-main span,.order-ready-list article>div span{color:var(--muted);font-size:11px}.payment-inbox-list article>b,.order-ready-list article>b{white-space:nowrap;color:#063f2a;font-size:15px}

@media(max-width:1100px){.schedule-left-rail{grid-column:1/-1;position:static;width:100%;grid-template-columns:minmax(280px,350px) minmax(280px,1fr);align-items:start}.schedule-left-rail .schedule-calendar{grid-column:auto;width:100%}.confirmation-list{max-height:276px}.payment-inbox-list article,.order-ready-list article{grid-template-columns:minmax(180px,1fr) auto}.payment-inbox-list article>.button,.order-ready-list article>form{grid-column:1/-1}.payment-inbox-list article>.button,.order-ready-list article .button{width:100%}}
@media(max-width:720px){.schedule-left-rail{width:100%;grid-template-columns:1fr}.confirmation-list{max-height:320px}.payment-inbox-list article,.order-ready-list article{grid-template-columns:1fr}.payment-inbox-list article>b,.order-ready-list article>b{justify-self:start}.nav-badge{position:static;transform:none;margin-left:auto}}

@media(max-width:1100px){.patient-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.global-patient-search{width:100%;margin:0}.topbar{gap:5px}.patient-dashboard{grid-template-columns:1fr}.move-buffer-banner{grid-template-columns:34px 1fr}.move-buffer-banner>.button{grid-column:1/-1}.appointment-flow-actions{grid-template-columns:1fr}}

/* Focused employee login. */
body.clinic-auth{min-height:100dvh;background:radial-gradient(circle at 50% 34%,#fff 0,#f7fbf9 38%,#edf5f1 100%);font-family:Onest,sans-serif!important}
.auth-shell{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 18px 42px}
.auth-brand{display:flex;align-items:center;gap:10px;margin:0 0 18px;color:#073b29;font-size:16px;font-weight:900;letter-spacing:.11em}.auth-brand img{width:38px;height:38px;object-fit:contain}
.clinic-auth .login-wrap{min-height:0;width:min(470px,100%);display:block}.clinic-auth .login-card{width:100%;padding:34px 36px 32px;border-radius:22px;box-shadow:0 24px 70px rgba(7,59,41,.12);animation:login-card-in .38s cubic-bezier(.2,.8,.2,1) both}
.login-heading{text-align:center;margin-bottom:25px}.login-heading h1{margin:0;font-size:30px;letter-spacing:-.04em}.login-heading p{margin:7px 0 0;color:var(--muted);font-size:13px}.login-form{margin-top:0!important;gap:14px}.login-form>label:not(.remember-login){display:grid;gap:6px;color:#3e5d51;font-size:12px;font-weight:800}.login-form select,.login-form input{height:44px;border-radius:10px}.login-form select:disabled{color:#8c9994;background:#f1f5f3}.login-error{margin:0 0 16px}.login-error[hidden]{display:none}
.password-field{position:relative;display:block}.password-field>input{width:100%;padding-right:48px}.password-toggle{position:absolute;right:5px;top:50%;width:36px;height:36px;display:grid;place-items:center;transform:translateY(-50%);padding:0;border:0;border-radius:8px;background:transparent;color:#587066}.password-toggle:hover,.password-toggle:focus-visible{background:#edf7f2;color:#007b46;outline:0}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle .eye-closed{display:none}.password-toggle[aria-pressed="true"] .eye-open{display:none}.password-toggle[aria-pressed="true"] .eye-closed{display:block}
.remember-login{display:flex!important;align-items:flex-start;gap:10px;padding:2px 0;color:#203f33!important;cursor:pointer}.remember-login>input{width:17px!important;height:17px!important;margin:2px 0 0;accent-color:var(--green)}.remember-login>span{display:grid;gap:1px}.remember-login strong{font-size:12px}.remember-login small{color:var(--muted);font-size:10px;font-weight:500}.login-submit{width:100%;min-height:44px;margin-top:2px;position:relative;overflow:hidden}.login-submit.is-loading:after{content:"";position:absolute;width:16px;height:16px;right:16px;top:50%;margin-top:-8px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:login-spin .65s linear infinite}
.login-success{position:fixed;inset:0;z-index:500;display:grid;place-items:center;background:rgba(7,59,41,.16);overflow:hidden}.login-success[hidden]{display:none}.login-success-sheet{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;background:#fff;transform:translateY(-102%);transition:transform .46s cubic-bezier(.2,.85,.22,1);padding:28px}.login-success.is-visible .login-success-sheet{transform:translateY(0)}.login-success-mark{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:16px;background:#e4f7ed;color:#00844d;font-size:25px;font-weight:900;animation:welcome-mark .42s .35s cubic-bezier(.2,.8,.2,1) both}.login-success h2{font-size:25px;letter-spacing:-.03em}.login-success p{margin:7px 0 22px;color:var(--muted)}.login-progress{width:190px;height:4px;border-radius:99px;background:#e4ede9;overflow:hidden}.login-progress i{display:block;width:100%;height:100%;background:var(--green);transform:translateX(-100%);animation:login-progress .8s .18s ease-out forwards}
@keyframes login-card-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes welcome-mark{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:none}}@keyframes login-progress{to{transform:translateX(0)}}

/* The compact left rail stays anchored and expands above the workspace. */
@media(min-width:721px){body.clinic-workspace .sidebar{position:fixed;inset:0 auto 0 0;height:100dvh}body.clinic-workspace .main{grid-column:2;min-width:0}}
@media(max-width:560px){.auth-shell{padding:20px 12px 30px}.clinic-auth .login-card{padding:28px 20px 25px;border-radius:18px}.auth-brand{margin-bottom:13px}.login-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.clinic-auth .login-card,.login-success-mark,.login-progress i{animation-duration:.01ms!important}.login-success-sheet{transition-duration:.01ms}}

/* Patient records, loyalty, catalogue and clinical billing. */
.source-buttons{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px}.source-buttons legend{width:100%;margin-bottom:6px;color:#536b62;font-size:12px;font-weight:750}.source-buttons label{display:block}.source-buttons input{position:absolute;opacity:0;pointer-events:none}.source-buttons span{display:block;padding:8px 12px;border:1px solid #cfe0d8;border-radius:9px;background:#fff;color:#34584a;font-size:12px;font-weight:700;cursor:pointer;transition:.14s ease}.source-buttons input:checked+span{border-color:#07995a;background:#e7f7ef;color:#006c40;box-shadow:0 0 0 2px #d8f1e4}.source-buttons input:focus-visible+span{outline:2px solid #31a875;outline-offset:2px}
.comment-feed{display:grid}.comment-feed article{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 19px;border-top:1px solid var(--line)}.comment-feed article:first-child{border-top:0}.comment-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e3f5eb;color:#087246;font-weight:850}.comment-feed header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.comment-feed header span{color:var(--muted);font-size:10px}.comment-feed p{margin:6px 0 0;white-space:pre-wrap}.compact-files{padding:0 14px 14px}.wide-button{width:calc(100% - 28px);margin:0 14px 14px}.big-loyalty{padding:18px 20px;font-size:32px;font-weight:850;color:#087246}.big-loyalty small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:600}.rule-list{display:grid;padding-bottom:10px}.rule-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 20px;border-top:1px solid var(--line)}.rule-list span{display:grid;gap:2px}.rule-list small{color:var(--muted)}
.price-tree-picker{min-width:0;max-height:440px;margin:0;padding:12px;border:1px solid var(--line);border-radius:11px;overflow:auto;background:#f9fcfa}.price-tree-picker legend{padding:0 6px;color:#49675b;font-size:12px;font-weight:800}.price-tree-picker details{margin:4px 0 4px 10px}.price-tree-picker summary{padding:7px 8px;border-radius:7px;font-weight:780;cursor:pointer}.price-tree-picker summary:hover{background:#eaf7f0}.price-category{display:grid;margin:4px 0 8px 10px;border-left:2px solid #b9dfcc}.price-category>strong{padding:6px 10px;color:#637b71;font-size:10px;text-transform:uppercase}.price-category label,.tree-empty{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer}.price-category label:hover{background:#edf8f2}.price-category input,.tree-empty input{min-height:0}.price-category b{white-space:nowrap;font-size:11px}.catalog-tree{padding:8px 14px 18px}.catalog-tree>details,.catalog-tree>details>details{border-bottom:1px solid var(--line)}.catalog-tree summary{display:flex;justify-content:space-between;gap:12px;padding:12px 10px;cursor:pointer}.catalog-tree summary span{color:var(--muted);font-size:11px}.catalog-tree>details>details{margin-left:18px}.catalog-category{margin:0 0 10px 36px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.catalog-category>header{display:flex;justify-content:space-between;padding:8px 12px;background:#f4f9f6;color:#557066;font-size:11px}.catalog-category article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:11px 12px;border-top:1px solid #edf2ef}.catalog-category article>div{display:grid;gap:2px}.catalog-category small,.service-code{color:var(--muted);font-size:10px}.billing-workspace{display:grid;grid-template-columns:minmax(340px,1.15fr) minmax(300px,.85fr);gap:14px}.bill-editor{display:grid;align-content:start;gap:13px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}.bill-editor h3{margin:0}.modal.extra-wide{width:min(980px,94vw)}
.report-filters{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr)) auto;gap:10px;padding:16px}.report-filters label{display:grid;gap:5px;color:#536b62;font-size:11px;font-weight:750}.report-filters .button{align-self:end}.patient-finance{display:flex;gap:18px}.patient-finance>div{min-width:90px}.patient-finance span{display:block;color:var(--muted);font-size:10px}.patient-finance strong{font-size:17px}.jaw3d-toggle{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;cursor:pointer;list-style:none}.jaw3d-toggle::-webkit-details-marker{display:none}.jaw3d-toggle span{display:grid;gap:3px}.jaw3d-toggle small{color:var(--muted)}.jaw3d-toggle b{color:#087246}.jaw3d-card:not([open])>.jaw3d-head,.jaw3d-card:not([open])>.jaw3d-stage{display:none}.tooth i{position:relative}.tooth i:after{content:attr(data-symbol);position:absolute;inset:0;display:grid;place-items:center;color:#163f31;font-style:normal;font-size:16px;font-weight:900}.tooth.state-implant i:after{font-size:19px}.tooth.state-needs_extraction i:after{color:#a6202c}.tooth.multi-selected{border-radius:8px;outline:2px solid #008d52;outline-offset:3px;background:#e8f7ef!important}.form-grid input:disabled{background:#eef2f0;color:#899690;cursor:not-allowed}.subsection{border-top:1px solid var(--line)}
@media(max-width:1180px){.report-filters{grid-template-columns:repeat(3,1fr)}.billing-workspace{grid-template-columns:1fr}.patient-finance{display:none}}
@media(max-width:720px){.report-filters{grid-template-columns:1fr}.catalog-category{margin-left:8px}.catalog-category article{grid-template-columns:1fr auto}.catalog-category article .button{grid-column:1/-1}.comment-feed header{display:grid}.source-buttons span{font-size:11px}.billing-workspace{grid-template-columns:1fr}}

/* Clinical workflow refinements. */
.modal>.modal-head{padding:22px 24px 4px}.modal>.detail-list{padding:8px 24px 20px}.modal>.modal-head+.detail-list{border-top:0}
.passport-upload{grid-template-columns:minmax(0,1fr);align-items:stretch;padding:16px;margin:16px;overflow:hidden}.passport-upload>*{min-width:0}.passport-upload>.button{width:100%}.file-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 12px;min-height:64px;padding:11px 13px;border:1px solid #bfd8cd;border-radius:10px;background:#fff;cursor:pointer}.file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-picker span{grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 11px;border-radius:8px;background:#eaf7f0;color:#087246;font-weight:800}.file-picker small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#536d64}.upload-description{display:grid;gap:5px;color:#536b62;font-size:11px;font-weight:750}.upload-description input{width:100%}
.patient-state{position:relative;display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:99px;font-size:10px;font-weight:850;cursor:help}.patient-state.active{background:#e4f6ec;color:#087246}.patient-state.inactive{background:#eef1f0;color:#6c7a74}.patient-state.vip{background:linear-gradient(120deg,#fff1b9,#ffe07b);color:#694d00;box-shadow:inset 0 0 0 1px #e5c451}.patient-state:after{content:attr(data-status-hint);position:absolute;left:50%;bottom:calc(100% + 9px);z-index:180;width:230px;padding:9px 11px;border:1px solid #bfd7cc;border-radius:9px;background:#163f31;color:#fff;box-shadow:0 12px 32px rgba(2,38,26,.22);font-size:10px;font-weight:650;line-height:1.4;opacity:0;visibility:hidden;transform:translate(-50%,5px);transition:opacity .16s ease,transform .16s ease,visibility .16s}.patient-state:hover:after,.patient-state:focus:after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.jaw-row{gap:9px}.dental-chart button.tooth{min-width:38px;padding:5px 2px;border-radius:9px;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.dental-chart button.tooth.multi-selected{outline:0;background:#e9f7f0!important;box-shadow:inset 0 0 0 2px #008d52,0 5px 14px rgba(0,90,51,.12);transform:translateY(-2px)}
.tooth-workbench{width:min(980px,calc(100vw - 28px));overflow:hidden}.tooth-workbench>form{padding:0}.tooth-workbench-head{padding:22px 24px 15px!important;border-bottom:1px solid var(--line)}.tooth-workbench-head p:last-child{margin:4px 0 0;color:var(--muted);font-size:12px}.tooth-workbench-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);min-height:520px}.tooth-state-panel{padding:20px 22px;background:#f6faf8;animation:tooth-panel-left .24s cubic-bezier(.2,.8,.2,1) both}.tooth-state-panel h3,.tooth-selection-panel h3{margin:0 0 14px}.tooth-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tooth-state-option{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;min-height:66px;padding:9px 11px;border:1px solid #d5e3dd;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.tooth-state-option:hover{border-color:#8cc8ab;transform:translateY(-1px)}.tooth-state-option:has(input:checked){border-color:#009457;box-shadow:0 0 0 2px #d8f2e5;background:#f1fbf6}.tooth-state-option input{position:absolute;opacity:0;pointer-events:none}.tooth-state-option>span:last-child{display:grid;gap:2px}.tooth-state-option strong{font-size:12px}.tooth-state-option small{color:var(--muted);font-size:9px}.tooth-state-icon{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf4f1;color:#174333;font-size:20px;font-weight:900}.state-healthy .tooth-state-icon:after{content:"✓"}.state-caries .tooth-state-icon:after{content:"●";color:#b82f3b}.state-filling .tooth-state-icon:after{content:"▰";color:#246fa9}.state-crown .tooth-state-icon:after{content:"♜";color:#7d3ca8}.state-missing .tooth-state-icon:after{content:"∅";color:#697872}.state-needs_extraction .tooth-state-icon:after{content:"×";color:#b32434;font-size:26px}.state-endodontics .tooth-state-icon:after{content:"Y";color:#d17216}.state-observation .tooth-state-icon:after{content:"◉";color:#148b84}.state-implant .tooth-state-icon:before{content:"";width:9px;height:24px;border:2px solid #5e3b85;border-radius:3px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,#5e3b85 3px,#5e3b85 5px);transform:rotate(12deg)}.state-implant .tooth-state-icon:after{content:"";position:absolute;top:6px;width:20px;height:5px;border:2px solid #5e3b85;border-radius:4px;background:#fff;transform:rotate(12deg)}.tooth-selection-panel{display:grid;align-content:start;gap:15px;padding:20px 22px;background:#fff;animation:tooth-panel-right .24s cubic-bezier(.2,.8,.2,1) both}.tooth-selection-panel label{display:grid;gap:6px;color:#536b62;font-size:11px;font-weight:750}.selected-teeth-list{display:flex;flex-wrap:wrap;gap:7px;min-height:39px}.selected-teeth-list span{display:grid;place-items:center;min-width:38px;height:38px;padding:0 9px;border:1px solid #99ceb4;border-radius:10px;background:#eaf8f1;color:#087246;font-weight:850}.card-only-toggle{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#f7faf8}@keyframes tooth-panel-left{from{opacity:0;transform:translateX(-22px)}to{opacity:1;transform:none}}@keyframes tooth-panel-right{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}
.catalog-bulk-bar{position:sticky;top:64px;z-index:18;display:grid;grid-template-columns:auto repeat(3,minmax(150px,1fr)) auto auto;gap:8px;align-items:center;padding:11px 14px;border-bottom:1px solid #9ecdb6;background:#eaf8f1;box-shadow:0 8px 22px rgba(5,78,48,.10)}.catalog-bulk-bar[hidden]{display:none}.catalog-category article{grid-template-columns:auto minmax(0,1fr) auto auto}.catalog-check{display:grid;place-items:center;width:28px;height:28px;cursor:pointer}.catalog-check input{position:absolute;opacity:0}.catalog-check span{display:block;width:18px;height:18px;border:1.5px solid #9db6ab;border-radius:5px;background:#fff}.catalog-check input:checked+span{border-color:#008c51;background:#008c51;box-shadow:inset 0 0 0 4px #fff}.catalog-category article.catalog-selected{background:#edf9f3}.catalog-direction>summary{position:sticky;top:64px;z-index:6;background:#fff}.catalog-folder>summary{background:#f8fbf9}.catalog-tree>details>details{margin-left:12px}
.doctor-flow{margin-bottom:18px}.doctor-flow-list{display:grid}.doctor-flow-item{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:15px;padding:13px 18px;border-top:1px solid var(--line);border-left:4px solid #7e9d90}.doctor-flow-item.status-in_chair{border-left-color:#d79532;background:#fffaf0}.doctor-flow-item.status-in_progress{border-left-color:#3979c3;background:#f5f9ff}.doctor-flow-item.status-completed{border-left-color:#16a365}.doctor-flow-item>div:first-child{display:grid;gap:2px}.doctor-flow-item span,.doctor-flow-item small{color:var(--muted);font-size:10px}.doctor-flow-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.doctor-flow-actions form{margin:0}.visit.status-in_chair,.badge.status-in_chair{background:#f0e8ff;border-color:#b59bdd;color:#6945a0}.invoice-totals{display:grid;justify-items:end}.invoice-totals span,.invoice-totals small{color:var(--muted);font-size:9px}.invoice-totals b{font-size:17px}.payment-inbox-list article.has-debt{background:#fffaf4}.payment-inbox-main small{display:block;color:#a25b18;font-size:10px}.payment-balance-preview{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border:1px solid #b8dcca;border-radius:10px;background:#eff9f4}.payment-balance-preview span{color:#587268;font-size:11px}.payment-balance-preview strong{font-size:17px}.payment-live-notice{position:fixed;right:22px;bottom:22px;z-index:300;display:grid;gap:3px;min-width:290px;padding:14px 16px;border:1px solid #8bcbaa;border-radius:12px;background:#0b7148;color:#fff;box-shadow:0 18px 52px rgba(2,47,30,.28);cursor:pointer;animation:payment-notice-in .22s cubic-bezier(.2,.8,.2,1) both}.payment-live-notice span{font-size:11px;color:#cceadd}@keyframes payment-notice-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}.nav-badge[hidden]{display:none!important}
.action-notice{position:fixed;top:78px;right:22px;z-index:320;display:flex;align-items:center;gap:15px;max-width:min(470px,calc(100vw - 28px));padding:12px 14px;border:1px solid #e6a9af;border-radius:11px;background:#fff2f3;color:#a42b38;box-shadow:0 16px 44px rgba(70,12,20,.18);font-weight:750;animation:payment-notice-in .18s ease-out both}.action-notice.success{border-color:#8ac8a8;background:#eef9f3;color:#087246}.action-notice button{margin-left:auto;border:0;background:transparent;color:inherit;font-size:20px}
.patient-debt-list{margin-bottom:14px;border-color:#e8b5a1}.patient-debt-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 18px;border-top:1px solid #f0ddd4}.patient-debt-row span{display:grid;gap:2px}.patient-debt-row small{color:var(--muted);font-size:10px}.patient-debt-row>b{color:#b13b35;font-size:16px}
@media(max-width:900px){.tooth-workbench-body{grid-template-columns:1fr;max-height:75vh;overflow:auto}.tooth-state-grid{grid-template-columns:1fr 1fr}.catalog-bulk-bar{grid-template-columns:1fr 1fr}.catalog-bulk-bar strong{grid-column:1/-1}.doctor-flow-item{grid-template-columns:1fr}.doctor-flow-actions{justify-content:flex-start}}

/* Patient workspace v4 */
.bonus-button{border-color:#b8a2ef!important;background:#f6f1ff!important;color:#6940a3!important}.bonus-modal>.modal-head,.bonus-modal-grid{padding:22px 24px}.bonus-modal-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(280px,1.2fr);gap:22px;border-top:1px solid var(--line)}.bonus-adjust-form{padding:0!important}.bonus-history{max-height:320px;overflow:auto}
.treatment-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;align-items:start}.plan-preview{width:100%;border:0;border-top:1px solid var(--line);background:#fff;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.plan-preview:hover{background:#f2faf6}.plan-preview>span{display:grid;gap:4px}.plan-preview small{color:var(--muted)}.plan-preview b{color:var(--green-dark);white-space:nowrap}.plan-builder{overflow:hidden}.price-search{position:sticky;top:-12px;z-index:2;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:-12px -12px 10px;padding:12px;background:#f9fcfa;border-bottom:1px solid var(--line)}.price-search input{min-height:40px}.price-direction>summary,.price-folder>summary{display:flex;justify-content:space-between;align-items:center}.price-direction>summary small,.price-folder>summary small{color:var(--muted);font-size:10px}.price-category label span{display:grid}.price-category label span small{color:var(--muted);font-size:9px}.plan-total-preview{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:12px;background:#eaf8f1;color:#087246}.plan-total-preview strong{font-size:20px}.plan-view-modal>.modal-head,.plan-view-body{padding:22px 24px}.plan-view-body{border-top:1px solid var(--line)}.plan-view-total{display:flex;justify-content:flex-end;gap:20px;padding:18px 10px;font-size:20px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}
.history-filters{display:grid;grid-template-columns:minmax(200px,1.5fr) repeat(4,minmax(130px,1fr));gap:9px;padding:15px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.history-filters label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;color:var(--muted);font-size:10px}.rich-timeline details{border-bottom:1px solid #edf2ef}.rich-timeline details[hidden]{display:none}.rich-timeline summary{display:grid;grid-template-columns:145px 18px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0;cursor:pointer;list-style:none}.rich-timeline summary::-webkit-details-marker{display:none}.rich-timeline summary>b{font-size:22px;color:#6e827a;transition:transform .2s}.rich-timeline details[open] summary>b{transform:rotate(90deg)}.history-detail{margin:0 0 14px 175px;padding:13px 15px;border-radius:10px;background:#f4f9f6;display:flex;gap:14px;align-items:center}.history-detail p{margin:0;flex:1}.history-detail span{color:var(--muted)}
.tooth-workbench{background:transparent!important;box-shadow:none!important;overflow:visible!important}.tooth-workbench>form{display:grid;gap:12px}.tooth-workbench-head{border:1px solid var(--line)!important;border-radius:16px!important;background:#fff;padding:18px 22px!important}.tooth-workbench-body{gap:12px;background:transparent;min-height:470px}.tooth-state-panel,.tooth-selection-panel{border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 55px rgba(5,49,34,.16)}.tooth-selection-tray{justify-self:center;padding:10px 18px;border-radius:999px;background:#123b2d;color:#fff;font-weight:750;box-shadow:0 12px 28px #08271d4d;animation:tray-up .25s ease both}.tooth-mark-history{border-top:1px solid var(--line);padding-top:10px}.tooth-mark-history h4{margin:0 0 8px}.tooth-mark-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0;border-top:1px solid #edf2ef}.tooth-mark-row small{display:block;color:var(--muted)}@keyframes tray-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.role-launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.role-launch{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer;transition:.18s ease}.role-launch:hover{border-color:#6ebc98;box-shadow:0 10px 28px #164a3620;transform:translateY(-1px)}.role-launch-icon{width:46px;height:46px;border-radius:13px;background:#e6f6ee;color:#087246;display:grid;place-items:center;font-size:18px;font-weight:900}.role-launch>span:nth-child(2){display:grid;gap:3px}.role-launch small{color:var(--muted)}.role-launch b{color:#087246;font-size:11px}.access-modal>form{max-height:min(820px,90vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f5f9f7;border-radius:18px;overflow:hidden}.access-modal .modal-head{padding:22px 24px;background:#fff}.permission-groups{padding:16px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.permission-group{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.permission-group>header{display:flex;justify-content:space-between;padding:13px 15px;background:#f1f7f4;font-weight:800}.permission-group>header small{color:var(--muted);font-weight:500}.permission-switch{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid #edf2ef;cursor:pointer}.permission-switch>span{display:grid;gap:2px}.permission-switch small{color:var(--muted);font-size:9px}.permission-switch input{position:absolute;opacity:0;pointer-events:none}.permission-switch i{position:relative;width:43px;height:24px;border-radius:99px;background:#cbd7d2;transition:.18s}.permission-switch i:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #173b2d33;transition:.18s}.permission-switch input:checked+i{background:#07985b}.permission-switch input:checked+i:after{transform:translateX(19px)}.sticky-actions{margin:0;padding:14px 20px;background:#fff;border-top:1px solid var(--line)}
@media(max-width:900px){.treatment-workspace,.bonus-modal-grid,.permission-groups{grid-template-columns:1fr}.history-filters{grid-template-columns:1fr 1fr}.role-launch-grid{grid-template-columns:1fr}.tooth-workbench{width:calc(100vw - 20px)!important}.tooth-workbench-body{gap:9px}.history-detail{margin-left:0}.rich-timeline summary{grid-template-columns:1fr auto}.rich-timeline summary .timeline-dot{display:none}}
@media(max-width:560px){.tooth-state-grid{grid-template-columns:1fr}.patient-state:after{left:0;transform:translate(0,5px)}.patient-state:hover:after{transform:none}.catalog-bulk-bar{grid-template-columns:1fr}.catalog-category article{grid-template-columns:auto minmax(0,1fr) auto}.catalog-category article>.button{grid-column:2/-1}.payment-inbox-list article{grid-template-columns:1fr}.invoice-totals{justify-items:start}}

/* Clinical workspace v5: independent access columns, plan editor and stable receipts. */
.access-modal{width:min(1040px,calc(100vw - 30px));max-height:92vh}.access-modal>form{height:min(820px,90vh);max-height:90vh}.permission-groups{display:block;column-count:2;column-gap:12px;overflow:auto;align-content:start}.permission-group{display:inline-block;width:100%;margin:0 0 12px;break-inside:avoid;vertical-align:top}.permission-switch{position:relative;min-height:60px}.permission-switch input{appearance:none!important;-webkit-appearance:none!important;position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;opacity:0!important}.permission-switch i{display:block!important;flex:0 0 43px!important;width:43px!important;height:24px!important;min-height:24px!important}.permission-switch i:after{display:block!important}

.plan-hub{overflow:visible}.plan-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.plan-card{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 8px 24px rgba(5,52,35,.05)}.plan-card-main{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px;border:0;background:#fff;text-align:left;color:var(--ink)}.plan-card-main:hover{background:#f3faf6}.plan-card-main>span:nth-child(2){display:grid;gap:4px}.plan-card-main small{color:var(--muted);font-size:10px}.plan-card-main>b{color:var(--green-dark);white-space:nowrap}.plan-card-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 12px;border-top:1px solid #e7efeb;background:#fbfdfc}.plan-card-actions>*{min-width:0}.plan-card-actions form{display:flex;margin:0}.plan-card-actions .button{width:100%;white-space:normal;text-align:center}.plan-card-actions .danger-button:hover{border-color:#db6a74;background:#fff0f1;color:#a9212f}.plan-folder-icon,.folder-icon{position:relative;display:inline-block;width:31px;height:23px;border-radius:4px;background:linear-gradient(145deg,#ffd777,#e9aa31);box-shadow:inset 0 -2px 0 rgba(136,80,0,.12)}.plan-folder-icon:before,.folder-icon:before{content:"";position:absolute;left:3px;top:-5px;width:14px;height:7px;border-radius:4px 4px 0 0;background:#eab244}.plan-folder-icon{justify-self:center}.folder-icon{width:22px;height:16px;flex:0 0 22px}.folder-icon:before{top:-4px;width:10px;height:5px}.folder-icon.small{transform:scale(.85)}

.treatment-plan-editor{width:min(1220px,calc(100vw - 28px));max-height:94vh;overflow:hidden}.treatment-plan-editor>form{height:min(850px,92vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f5f9f7}.plan-editor-head{padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}.plan-editor-layout{min-height:0;display:grid;grid-template-columns:255px minmax(390px,1fr) 330px;gap:12px;padding:12px;overflow:hidden}.plan-editor-meta,.plan-service-browser,.plan-tooth-picker{min-height:0;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.plan-editor-meta{align-self:start;display:grid;gap:12px;padding:15px}.plan-editor-meta label{display:grid;gap:5px;color:#506b61;font-size:11px;font-weight:750}.plan-editor-meta input,.plan-editor-meta select{width:100%}.plan-selected-service{display:grid;gap:3px;margin-top:4px;padding:12px;border-radius:10px;background:#ecf8f2}.plan-selected-service span,.plan-selected-service small{color:var(--muted);font-size:10px}.plan-service-browser{display:grid;grid-template-rows:auto minmax(0,1fr)}.plan-service-search{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.plan-service-search input{width:100%}.plan-price-tree{overflow:auto;padding:6px 10px 14px}.plan-price-direction>summary,.plan-price-folder>summary{display:flex;align-items:center;gap:10px;padding:11px 8px;cursor:pointer;list-style:none;border-bottom:1px solid #edf2ef}.plan-price-direction>summary::-webkit-details-marker,.plan-price-folder>summary::-webkit-details-marker{display:none}.plan-price-direction>summary strong,.plan-price-folder>summary strong{flex:1}.plan-price-direction>summary small,.plan-price-folder>summary small{color:var(--muted);font-size:9px}.plan-price-folder{margin-left:15px}.plan-price-category{margin:6px 0 8px 30px;border:1px solid #e1ebe6;border-radius:9px;overflow:hidden}.plan-price-category h4{margin:0;padding:8px 10px;background:#f3f8f5;font-size:10px;color:#597067}.plan-price-category label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border-top:1px solid #edf2ef;cursor:pointer}.plan-price-category label:hover,.plan-price-category label:has(input:checked){background:#ebf8f1}.plan-price-category input{min-height:0;width:16px;height:16px;accent-color:var(--green)}.plan-price-category label>span{display:grid;gap:2px}.plan-price-category label small{font-size:9px;color:var(--muted)}.plan-price-category label>b{white-space:nowrap;font-size:12px}.plan-price-category label[hidden]{display:none}.plan-tooth-picker{display:grid;align-content:start;gap:16px;padding:16px;animation:plan-panel-in .2s ease}.plan-tooth-picker[hidden]{display:none}.plan-tooth-picker h3{margin:0}.plan-tooth-picker p{margin-bottom:0}.plan-teeth-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;padding:12px;border-radius:11px;background:#f4f8f6}.plan-teeth-grid label{cursor:pointer}.plan-teeth-grid input{position:absolute;opacity:0;pointer-events:none}.plan-teeth-grid span{height:33px;display:grid;place-items:center;border:1px solid #cbdcd4;border-radius:8px;background:#fff;font-size:11px;font-weight:800}.plan-teeth-grid input:checked+span{border-color:#05985a;background:#dff5e9;color:#006d40;box-shadow:0 0 0 2px #bce7d1}.plan-line-total{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:10px;background:#0a533b;color:#fff}.plan-line-total strong{font-size:18px}.treatment-plan-editor .sticky-actions{margin:0}.plan-view-actions{align-items:center}.plan-view-actions form{margin-right:auto}.plan-view-modal{max-height:90vh;overflow:auto}.plan-view-modal>.modal-head{padding:22px 24px}.plan-view-body{padding-bottom:20px}.plan-view-body table small{display:block;color:var(--muted)}@keyframes plan-panel-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}

.patient-payment-modal{width:min(650px,calc(100vw - 28px));max-height:90vh;display:none;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.patient-payment-modal[open]{display:grid}.patient-payment-modal>.modal-head{padding:20px 24px;border-bottom:1px solid var(--line)}.patient-payment-body{min-height:0;overflow:auto;padding:16px 20px}.linked-visit-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border:1px solid #b8dccb;border-radius:12px;background:#eff9f4}.linked-visit-card>div{display:grid;gap:3px}.linked-visit-card span{color:var(--muted);font-size:10px}.linked-visit-card small{color:var(--muted)}.linked-services{grid-column:1/-1;padding-top:10px;border-top:1px solid #cee6da}.linked-services p{display:flex;justify-content:space-between;gap:12px;margin:7px 0 0}.linked-services i{font-style:normal;color:var(--muted);white-space:nowrap}.legacy-link-warning{padding:12px;border:1px solid #f1c98b;border-radius:10px;background:#fff7e8;color:#7f5718;font-size:12px}.payment-breakdown{display:grid;grid-template-columns:1fr 1fr;padding:12px 0 0}.patient-payment-actions{margin:0;padding:14px 20px;border-top:1px solid var(--line);background:#fff}.patient-payment-actions .button{flex:1}

.catalog-direction>summary,.catalog-folder>summary{align-items:center}.catalog-summary-name{display:flex!important;align-items:center;gap:11px;color:var(--ink)!important;font-size:13px!important}.catalog-direction>summary>span:last-child,.catalog-folder>summary>span:last-child{display:flex;align-items:center;gap:8px}.folder-action{width:28px;height:28px;border:1px solid #d4e2dc;border-radius:7px;background:#fff;color:#527066;font-weight:900}.folder-action:hover{border-color:#64b78f;background:#edf9f3}.service-code{font-variant-numeric:tabular-nums}.catalog-category article:has(.catalog-check){grid-template-columns:auto minmax(0,1fr) auto auto}

/* A 30-minute interval is 48px: short visits remain compact but readable. */
.time-label{height:48px}.cabinet-lane{background:repeating-linear-gradient(to bottom,#fff 0,#fff 47px,#d6e5de 47px,#d6e5de 48px)}.cabinet-lane:nth-child(even){background:repeating-linear-gradient(to bottom,#fafffc 0,#fafffc 47px,#d6e5de 47px,#d6e5de 48px)}.work-window{background:repeating-linear-gradient(to bottom,color-mix(in srgb,var(--doctor-color) 25%,#fff) 0,color-mix(in srgb,var(--doctor-color) 25%,#fff) 47px,color-mix(in srgb,var(--doctor-color) 50%,#fff) 47px,color-mix(in srgb,var(--doctor-color) 50%,#fff) 48px)}.visit{padding:3px 6px;line-height:1.12}.visit-short{justify-content:center}.visit-short strong{font-size:10px}.visit-short span,.visit-short small{display:none}
.visit.has-overlap{left:calc((100% / var(--overlap-count)) * var(--overlap-col) + 2px);right:auto;width:calc(100% / var(--overlap-count) - 4px);padding-left:4px;padding-right:4px}.visit.has-overlap strong{font-size:9.5px}.visit.has-overlap span,.visit.has-overlap small{font-size:8px}

@media(max-width:980px){.permission-groups{column-count:1}.plan-card-grid{grid-template-columns:1fr}.plan-editor-layout{grid-template-columns:230px minmax(330px,1fr);overflow:auto}.plan-tooth-picker{grid-column:1/-1}.treatment-plan-editor>form{height:92vh}.linked-visit-card{grid-template-columns:1fr}}
@media(max-width:680px){.plan-editor-layout{display:block;overflow:auto}.plan-editor-layout>*{margin-bottom:10px}.plan-card-main{grid-template-columns:35px minmax(0,1fr)}.plan-card-main>b{grid-column:2}.plan-card-actions{grid-template-columns:1fr 1fr}.payment-breakdown{grid-template-columns:1fr}.patient-payment-actions{display:grid}.plan-view-actions{display:grid}.plan-view-actions form{margin:0}.plan-view-actions .button{width:100%}}

/* Treatment plan basket */
.treatment-plan-editor{width:min(1560px,calc(100vw - 24px));max-width:none}.treatment-plan-editor>form{position:relative;height:min(920px,94vh);grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto}.treatment-plan-editor>form>.draft-restored{position:absolute;z-index:8;top:9px;left:50%;grid-column:auto;padding:5px 11px;border:1px solid #91c9ad;border-radius:99px;background:#e9f7f0;color:#087246;font-size:10px;font-weight:800;transform:translateX(-50%)}.treatment-plan-editor .plan-editor-meta{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(180px,1fr));gap:10px;align-self:stretch;padding:11px 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;overflow:visible}.plan-editor-layout{grid-template-columns:minmax(480px,.92fr) minmax(620px,1.08fr);gap:12px;padding:12px}.plan-service-browser,.plan-cart-pane{min-height:0;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.plan-service-browser{grid-template-rows:auto auto minmax(0,1fr)}.plan-cart-pane{display:grid;grid-template-rows:auto minmax(0,1fr);position:relative}.plan-pane-head{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfdfc}.plan-pane-head>div{display:grid;gap:2px}.plan-pane-head span{color:var(--muted);font-size:10px}.plan-pane-head strong{font-size:14px}.plan-pane-head>b{font-size:20px;color:var(--green-dark)}.plan-price-category button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 28px;gap:10px;align-items:center;padding:10px;border:0;border-top:1px solid #edf2ef;background:#fff;text-align:left;color:var(--ink);cursor:pointer}.plan-price-category button:hover{background:#ebf8f1}.plan-price-category button>span{display:grid;gap:2px}.plan-price-category button small{color:var(--muted);font-size:9px}.plan-price-category button>b{white-space:nowrap;font-size:12px}.plan-price-category button>i{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#e2f5eb;color:#087246;font-size:18px;font-style:normal;font-weight:900}.plan-price-category button[hidden]{display:none}.plan-cart-list{min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.plan-cart-empty{position:absolute;inset:76px 18px 18px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted);text-align:center;pointer-events:none}.plan-cart-empty[hidden]{display:none}.plan-cart-empty p{margin:0;max-width:300px}.plan-cart-line{flex:0 0 auto;border:1px solid #cfdfd8;border-radius:12px;background:#fff;overflow:hidden;animation:plan-panel-in .18s ease}.plan-cart-line>header{display:flex;align-items:start;justify-content:space-between;gap:10px;padding:12px 14px;background:#f6faf8;border-bottom:1px solid #e4ece8}.plan-cart-line>header>div{display:grid;gap:3px}.plan-cart-line>header span{color:var(--muted);font-size:9px}.plan-cart-line>header strong{font-size:13px}.plan-line-controls{display:grid;grid-template-columns:minmax(155px,.8fr) 1fr 1fr;gap:10px;padding:11px 14px}.plan-line-controls>div{display:grid;gap:4px}.plan-line-controls span{color:var(--muted);font-size:9px}.plan-quantity{display:grid;grid-template-columns:34px 56px 34px;width:max-content;border:1px solid #cbdcd4;border-radius:8px;overflow:hidden}.plan-quantity button{border:0;background:#eef6f2;color:#0a6341;font-size:18px}.plan-quantity input{min-height:32px;width:56px;padding:4px;border:0;border-left:1px solid #d8e5df;border-right:1px solid #d8e5df;border-radius:0;text-align:center}.plan-teeth-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid #e8efeb}.plan-teeth-head>div{display:grid;gap:2px}.plan-teeth-head small{color:var(--muted);font-size:9px}.plan-teeth-switch{position:relative;display:inline-flex;align-items:center;flex:0 0 44px;width:44px;height:24px;cursor:pointer}.plan-teeth-switch input{appearance:none!important;-webkit-appearance:none!important;position:absolute!important;inset:0!important;z-index:2;width:44px!important;height:24px!important;min-height:0!important;margin:0!important;padding:0!important;opacity:0!important;cursor:pointer}.plan-teeth-switch i{position:relative;display:block!important;width:44px!important;height:24px!important;min-height:24px!important;margin:0;border-radius:99px;background:#cbd7d2;transition:.18s;pointer-events:none}.plan-teeth-switch i:after{content:"";position:absolute;left:3px;top:3px;display:block;width:18px;height:18px;margin:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #173b2d33;transition:.18s}.plan-teeth-switch input:checked+i{background:#07985b}.plan-teeth-switch input:checked+i:after{transform:translateX(20px)}.plan-teeth-switch input:focus-visible+i{box-shadow:0 0 0 3px #ccebdd}.plan-technician{display:grid;gap:5px;margin:0 14px 10px;padding:11px 12px;border:1px solid #d8e8e0;border-radius:10px;background:#f6fbf8}.plan-technician label{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(220px,1fr);align-items:center;gap:12px}.plan-technician label>span{font-size:11px;font-weight:800;color:#173f31}.plan-technician label>span b{margin-left:5px;color:#c53b47;font-size:9px}.plan-technician select{width:100%;min-height:38px}.plan-technician>small{color:var(--muted);font-size:9px}.service-technician-note{color:var(--muted);font-size:10px}.plan-cart-teeth{margin:0 14px;padding:9px;grid-template-columns:repeat(16,minmax(28px,1fr))}.plan-cart-teeth button{min-width:0;height:29px;padding:0;border:1px solid #cbdcd4;border-radius:7px;background:#fff;color:#183f31;font-size:10px;font-weight:800}.plan-cart-teeth button.selected{border-color:#05985a;background:#dff5e9;color:#006d40;box-shadow:0 0 0 1px #bce7d1}.plan-teeth-summary{padding:7px 14px 12px;color:#517166;font-size:10px}.plan-teeth-summary[hidden],.plan-cart-teeth[hidden]{display:none}.plan-no-teeth{margin:0;padding:10px 14px;border-top:1px solid #e8efeb;color:var(--muted);font-size:10px}.plan-card-main{grid-template-columns:42px minmax(0,1fr) auto auto}.plan-status{white-space:nowrap}.plan-status.status-completed{background:#def5e8;color:#087246}.plan-status.status-current{background:#fff3d6;color:#865d10}.plan-status.status-cancelled{background:#fde7e9;color:#ae303d}
@media(max-width:1200px){.plan-editor-layout{grid-template-columns:minmax(390px,.9fr) minmax(500px,1.1fr)}.plan-cart-teeth{grid-template-columns:repeat(8,1fr)}.treatment-plan-editor .plan-editor-meta{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.treatment-plan-editor>form{height:95vh}.plan-editor-layout{display:grid;grid-template-columns:1fr;overflow:auto}.plan-service-browser,.plan-cart-pane{min-height:560px}.treatment-plan-editor .plan-editor-meta{grid-template-columns:1fr}.plan-card-main{grid-template-columns:35px minmax(0,1fr)}.plan-card-main>.plan-status,.plan-card-main>b{grid-column:2}}

/* Treatment plan cart: tooth-based services derive their quantity from selected teeth. */
.treatment-plan-editor .plan-editor-meta{grid-template-columns:repeat(3,minmax(220px,1fr))}
.plan-cart-line{--plan-tone:#07985b;--plan-tone-soft:#e9f8f0;border-left:5px solid var(--plan-tone)}
.plan-cart-line.plan-line-tone-1{--plan-tone:#397fc4;--plan-tone-soft:#ebf4fd}
.plan-cart-line.plan-line-tone-2{--plan-tone:#d28a20;--plan-tone-soft:#fff5e3}
.plan-cart-line.plan-line-tone-3{--plan-tone:#7b5bc2;--plan-tone-soft:#f2edff}
.plan-cart-line.plan-line-tone-4{--plan-tone:#cb6071;--plan-tone-soft:#fff0f2}
.plan-cart-line>header{background:linear-gradient(90deg,var(--plan-tone-soft),#fff 72%)}
.plan-cart-line>header span{color:var(--plan-tone)}
.plan-auto-quantity{min-height:34px;display:flex;align-items:center;gap:8px;width:max-content;padding:5px 10px;border:1px solid color-mix(in srgb,var(--plan-tone) 34%,#d4e0db);border-radius:9px;background:var(--plan-tone-soft)}
.plan-auto-quantity strong{min-width:20px;color:var(--plan-tone);font-size:18px;text-align:center}
.plan-auto-quantity small{max-width:125px;color:#526b62;font-size:9px;line-height:1.2}
.plan-cart-teeth{grid-template-columns:repeat(16,minmax(34px,1fr));gap:7px;padding:10px;background:linear-gradient(180deg,#f7faf8,#eef5f1)}
.plan-cart-teeth button{height:58px;display:grid;grid-template-rows:38px 14px;place-items:center;padding:0;border:0;border-radius:9px;background:transparent;box-shadow:none;color:#35564a;transition:transform .16s ease,background .16s ease}
.plan-cart-teeth button:hover{background:#fff;transform:translateY(-2px)}
.plan-cart-teeth button svg{width:31px;height:38px;overflow:visible;filter:drop-shadow(0 2px 2px #2346381a)}
.plan-cart-teeth button svg path{fill:#fffef9;stroke:#97afa5;stroke-width:1.35;transition:fill .16s ease,stroke .16s ease}
.plan-cart-teeth button span{font-size:9px;font-weight:850;line-height:1}
.plan-cart-teeth button:nth-child(n+17) svg{transform:rotate(180deg)}
.plan-cart-teeth button.selected{border:0;background:var(--plan-tone-soft);color:var(--plan-tone);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--plan-tone) 35%,transparent)}
.plan-cart-teeth button.selected svg path{fill:color-mix(in srgb,var(--plan-tone) 18%,#fff);stroke:var(--plan-tone);stroke-width:2}
@media(max-width:1200px){.treatment-plan-editor .plan-editor-meta{grid-template-columns:repeat(3,minmax(170px,1fr))}.plan-cart-teeth{grid-template-columns:repeat(8,1fr)}}
@media(max-width:850px){.treatment-plan-editor .plan-editor-meta{grid-template-columns:1fr}}



/* Active appointment marker in schedule grid. */
.visit-selected-mark{
  position:absolute;
  top:6px;
  right:7px;
  z-index:3;
  display:none;
  align-items:center;
  min-height:18px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:999px;
  background:linear-gradient(135deg,#07985b,#006f43);
  color:#fff;
  box-shadow:0 4px 12px rgba(0,94,56,.24);
  font:800 8px/1 var(--ui-font);
  font-style:normal;
  letter-spacing:.09em;
  text-transform:uppercase;
  white-space:nowrap;
  pointer-events:none
}
.visit.selected .visit-selected-mark{
  display:inline-flex;
  animation:visit-selected-in .16s ease-out both
}
.visit.selected:not(.visit-short){padding-right:78px}
.visit-short.selected{padding-right:64px}
.visit-short .visit-selected-mark{
  top:50%;
  right:4px;
  min-height:15px;
  padding:2px 5px;
  font-size:7px;
  transform:translateY(-50%)
}
.visit-short.selected .visit-selected-mark{animation:none}
@keyframes visit-selected-in{
  from{opacity:0;transform:translateY(-3px) scale(.94)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .visit.selected .visit-selected-mark{animation:none}
}

/* 2026.09.30.14 shared operational filters, grouped calculations and analytics mode */
.workspace-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:0 12px 10px;padding:3px;border:1px solid rgba(189,235,214,.28);border-radius:10px;background:rgba(0,35,25,.24)}
.workspace-mode-switch a{display:grid;place-items:center;min-height:30px;padding:5px 7px;border-radius:7px;color:#bfe4d3;font-size:9px;font-weight:850;text-decoration:none;transition:.18s ease}
.workspace-mode-switch a.active{background:#f4fff9;color:#076c48;box-shadow:0 3px 12px rgba(0,0,0,.16)}
.operational-filter{display:grid;grid-template-columns:repeat(3,minmax(128px,.55fr)) repeat(2,minmax(150px,.7fr)) minmax(220px,1.4fr) auto;gap:10px;align-items:end;padding:15px 17px;border-bottom:1px solid var(--line)}
.operational-filter>label{display:grid;gap:5px;min-width:0;color:#60766d;font-size:10px;font-weight:750}.operational-filter input,.operational-filter select{width:100%;min-width:0}.operational-filter>.button{min-height:39px}.filter-search{min-width:220px}.period-presets{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.period-presets a{padding:5px 10px;border:1px solid #d3e3dc;border-radius:99px;background:#fff;color:#176b4d;font-size:10px;font-weight:800;text-decoration:none}.period-presets a:hover{border-color:#74bf9d;background:#eef9f4}
.status-explainer{display:flex;align-items:center;gap:9px 16px;flex-wrap:wrap;padding:11px 17px;border-bottom:1px solid var(--line);background:#f7fbf9;color:#597168;font-size:10px}.status-explainer>strong{color:#19392e}.status-explainer span b{color:#08774a}
.service-visit-list{display:grid;gap:10px;padding:14px}.service-visit-card{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.service-visit-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:#fbfdfc}.service-visit-card>header>div{display:grid;gap:3px}.service-visit-card h3,.service-visit-card p{margin:0}.service-visit-card h3{font-size:14px}.service-visit-card p,.service-visit-card time,.service-visit-card header span{color:var(--muted);font-size:10px}.service-visit-card header>div:last-child{text-align:right}.service-visit-card header strong{font-size:17px;color:#08774a}.service-visit-actions{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}.service-visit-actions>details{flex:1}.service-visit-actions>details>summary{width:max-content;list-style:none}.service-visit-actions>details[open]>summary{margin-bottom:10px}.service-visit-actions table{min-width:760px}
.certificate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:14px}.certificate-grid article{display:grid;gap:4px;padding:14px;border:1px solid #d8e8e0;border-radius:11px;background:#f7fcf9}.certificate-grid article span{color:#08774a;font-size:11px;font-weight:850;letter-spacing:.05em}.certificate-grid article small{color:var(--muted)}
.catalog-editor{width:min(1180px,calc(100vw - 28px));max-height:92vh}.catalog-editor-grid{display:grid;grid-template-columns:minmax(280px,.36fr) minmax(0,1fr);gap:16px;padding:16px;overflow:auto}.catalog-new-product{align-content:start;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f7faf8}.catalog-product-list{display:grid;align-content:start;gap:13px}.catalog-product-list>section{display:grid;gap:7px;padding:13px;border:1px solid var(--line);border-radius:12px}.catalog-product-list h3{margin:0}.catalog-product-row{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(180px,1.4fr) 90px 100px 100px auto;gap:7px;align-items:center}.catalog-product-row input{min-width:0;width:100%}
.cash-filter-card{margin-bottom:14px}.report-period-buttons{display:flex;gap:7px;flex-wrap:wrap;padding:0 16px 14px}.report-filters-extended{grid-template-columns:repeat(4,minmax(130px,1fr))}.embedded-stats{padding:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:none}.embedded-stats .stat{box-shadow:none;background:#fbfdfc}
.analytics-section-nav{position:sticky;top:64px;z-index:17;display:flex;gap:7px;margin:-8px 0 14px;padding:9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(7,59,41,.07);backdrop-filter:blur(12px);overflow:auto}.analytics-section-nav a{flex:0 0 auto;padding:7px 11px;border:1px solid #d7e6df;border-radius:8px;color:#176b4d;font-size:10px;font-weight:850}.analytics-section-nav a:hover{border-color:#75bf9d;background:#eef9f4}

@media(max-width:1380px){.operational-filter{grid-template-columns:repeat(4,minmax(140px,1fr))}.filter-search{min-width:0}.report-filters-extended{grid-template-columns:repeat(4,minmax(130px,1fr))}}
@media(max-width:980px){.operational-filter,.report-filters-extended{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-editor-grid{grid-template-columns:1fr}.catalog-product-row{grid-template-columns:repeat(2,minmax(0,1fr))}.service-visit-actions{align-items:flex-start;flex-wrap:wrap}.service-visit-actions>details{flex-basis:100%}}
@media(max-width:760px){.workspace-mode-switch{margin:0 6px 8px;grid-template-columns:1fr}.workspace-mode-switch a{font-size:0;min-height:28px}.workspace-mode-switch a:first-child:after{content:'МИС';font-size:8px}.workspace-mode-switch a:last-child:after{content:'Аналит.';font-size:8px}.operational-filter,.report-filters-extended{grid-template-columns:1fr;padding:12px}.operational-filter>.button{width:100%}.period-presets{grid-column:auto}.service-visit-card>header{align-items:flex-start}.service-visit-card header>div:last-child{text-align:left}.service-visit-card>header{display:grid}.catalog-product-row{grid-template-columns:1fr}.certificate-grid{grid-template-columns:1fr}.status-explainer{align-items:flex-start;display:grid}.page-actions,.button-group{width:100%;display:grid}.page-actions .button,.button-group .button{width:100%}.analytics-section-nav{top:47px;margin-top:0;border-radius:9px}}
@media(max-width:720px){
  .schedule-toolbar{grid-template-columns:1fr;gap:9px;padding:12px}.schedule-title{justify-content:space-between}.schedule-toolbar .segmented{width:100%}.schedule-toolbar .segmented a{flex:1;text-align:center}.schedule-filters{grid-template-columns:1fr 1fr}.schedule-filters input[type=search]{grid-column:1/-1}.schedule-toolbar .date-nav{display:grid;grid-template-columns:auto 1fr auto;margin:0}.schedule-toolbar .date-nav .button.primary{grid-column:1/-1;width:100%}
  #new-visit.modal{inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}#new-visit.modal>form{height:100%;padding:18px;overflow:auto}#new-visit .modal-actions{position:sticky;bottom:-18px;margin:8px -18px -18px;padding:12px 18px;background:#fff;border-top:1px solid var(--line)}#new-visit .modal-actions .button.primary{width:100%;min-height:46px}
}

/* Reception quick workspace: patient, plan, booking and contact stay inside CRM. */
.crm-quick-modal{width:min(1180px,calc(100vw - 28px));height:min(860px,calc(100vh - 34px));max-width:none;max-height:none;padding:0;overflow:hidden;background:#f5f9f7}
.crm-quick-modal[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.crm-quick-modal>.modal-head{padding:18px 22px;border-bottom:1px solid var(--line);background:#fff}
.crm-quick-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.crm-modal-loader{min-height:380px;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted)}
.crm-modal-loader>span{width:32px;height:32px;border:3px solid #cce3d8;border-top-color:#078d59;border-radius:50%;animation:spin .7s linear infinite}
.crm-modal-error{min-height:360px;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center}.crm-modal-error p{margin:0;color:var(--muted)}
.crm-quick-workspace{min-height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#f5f9f7}
.crm-quick-patient{display:flex;align-items:center;gap:13px;padding:15px 20px;border-bottom:1px solid var(--line);background:#fff}
.crm-quick-patient .patient-avatar{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:50%;background:#dcf4e8;color:#087449;font-size:20px;font-weight:850}
.crm-quick-patient>div:nth-child(2){display:grid;gap:2px;min-width:0}.crm-quick-patient h3{margin:0;font-size:18px}.crm-quick-patient p{margin:0;color:var(--muted);font-size:11px}
.crm-quick-next{display:grid;gap:2px;margin-left:auto;padding:9px 12px;border:1px solid #cfe4da;border-radius:10px;background:#f4fbf7;text-align:right}.crm-quick-next span,.crm-quick-next small{color:var(--muted);font-size:9px}.crm-quick-next strong{font-size:12px}
.crm-quick-tabs{display:flex;gap:6px;padding:9px 20px;border-bottom:1px solid var(--line);background:#fff;overflow-x:auto}
.crm-quick-tabs button{display:flex;align-items:center;gap:6px;min-height:36px;padding:7px 13px;border:1px solid #d5e3dc;border-radius:9px;background:#fff;color:var(--ink);font-weight:800;white-space:nowrap;transition:.16s ease}
.crm-quick-tabs button:hover{border-color:#77bc9c;background:#f0faf5}.crm-quick-tabs button.active{border-color:#54af83;background:#e9f8f1;color:#057347;box-shadow:inset 0 0 0 1px #bfe5d2}.crm-quick-tabs button span{min-width:18px;padding:2px 5px;border-radius:99px;background:#fff;color:#087449;font-size:9px}
.crm-quick-pane{min-height:0;padding:16px 20px;animation:stomvio-workspace-section-in .2s cubic-bezier(.16,1,.3,1) both}.crm-quick-pane[hidden]{display:none}
.crm-quick-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.crm-quick-kpis article{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.crm-quick-kpis span,.crm-quick-kpis small{color:var(--muted);font-size:10px}.crm-quick-kpis strong{font-size:21px}.crm-quick-kpis article.danger{border-color:#efbcc1;background:#fff8f8}.crm-quick-kpis article.danger strong{color:#bc2f3d}
.crm-quick-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.crm-quick-columns>section{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.crm-quick-columns h4,.crm-contact-layout h4{margin:0;padding:13px 15px;border-bottom:1px solid var(--line);font-size:13px}.crm-quick-list{display:grid}.crm-quick-list>article{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid #edf2ef}.crm-quick-list>article:first-child{border-top:0}.crm-quick-list>article>div{display:grid;gap:2px;min-width:0}.crm-quick-list span,.crm-quick-list small{color:var(--muted);font-size:9px}.crm-quick-list strong{font-size:11px}.crm-quick-list .badge{flex:0 0 auto}
.crm-quick-plan-list{display:grid;gap:10px}.crm-quick-plan{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.crm-quick-plan>summary{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px 16px;list-style:none;cursor:pointer}.crm-quick-plan>summary::-webkit-details-marker{display:none}.crm-quick-plan>summary>span:nth-child(2){display:grid;gap:3px}.crm-quick-plan>summary small{color:var(--muted);font-size:9px}.crm-quick-plan>summary>b{color:var(--green-dark);white-space:nowrap}.crm-quick-plan-lines{display:grid;border-top:1px solid var(--line);background:#fbfdfc}.crm-quick-plan-lines>article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:11px 16px;border-top:1px solid #e9f0ec}.crm-quick-plan-lines>article:first-child{border-top:0}.crm-quick-plan-lines article>div{display:grid;gap:2px}.crm-quick-plan-lines small{color:var(--muted);font-size:9px}.crm-quick-plan-lines span{color:#526d62;font-size:10px}.crm-quick-price-note{padding:10px 16px;border-top:1px solid #efd79f;background:#fff9e9;color:#795d1d;font-size:10px}
.crm-quick-schedule{display:grid;gap:13px}.crm-quick-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.crm-quick-form-head h4{margin:0 0 3px}.crm-quick-form-head p{margin:0;color:var(--muted);font-size:10px}.crm-quick-form-head>span{padding:6px 9px;border-radius:99px;background:#e4f5ec;color:#087449;font-size:10px;font-weight:800}.crm-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.crm-slot-grid label{cursor:pointer}.crm-slot-grid input{position:absolute;opacity:0;pointer-events:none}.crm-slot-grid label>span{display:grid;gap:3px;padding:12px;border:1px solid #d6e4dd;border-radius:10px;background:#fff;transition:.16s ease}.crm-slot-grid label:hover>span{border-color:#69b68f;transform:translateY(-1px)}.crm-slot-grid input:checked+span{border-color:#36a271;background:#eaf8f1;box-shadow:inset 0 0 0 1px #9fd5bb}.crm-slot-grid small{color:var(--muted);font-size:9px}.crm-quick-schedule>label,.crm-contact-layout form>label{display:grid;gap:6px;color:#526d62;font-size:11px;font-weight:800}.crm-quick-schedule>label input{width:100%}.crm-modal-feedback{min-height:0;color:#087449;font-size:11px;font-weight:750}.crm-modal-feedback.error{padding:9px 11px;border:1px solid #efb4ba;border-radius:8px;background:#fff5f6;color:#b52a38}
.crm-contact-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12px}.crm-contact-layout>form,.crm-contact-layout>section{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.crm-contact-layout>section{padding:0;overflow:hidden}.crm-contact-layout form .crm-quick-form-head h4{padding:0;border:0}.crm-contact-history-list{display:grid;max-height:430px;overflow:auto}.crm-contact-history-list article{display:grid;gap:3px;padding:11px 14px;border-top:1px solid #edf2ef}.crm-contact-history-list article:first-child{border-top:0}.crm-contact-history-list span{color:var(--muted);font-size:9px}.crm-contact-history-list p{margin:2px 0 0;color:#536c62;font-size:10px;white-space:pre-wrap}
@media(max-width:780px){.crm-quick-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.crm-quick-patient{align-items:flex-start}.crm-quick-next{display:none}.crm-quick-pane{padding:12px}.crm-quick-kpis{grid-template-columns:1fr 1fr}.crm-quick-columns,.crm-contact-layout{grid-template-columns:1fr}.crm-slot-grid{grid-template-columns:1fr 1fr}.crm-quick-plan>summary{grid-template-columns:30px minmax(0,1fr)}.crm-quick-plan>summary>.badge,.crm-quick-plan>summary>b{grid-column:2}.crm-quick-plan-lines>article{grid-template-columns:1fr auto}.crm-quick-plan-lines>article>span{display:none}}
@media(max-width:480px){.crm-quick-kpis,.crm-slot-grid{grid-template-columns:1fr}.crm-quick-patient .patient-avatar{display:none}}


/* Patient comment edit and delete controls. */
.comment-body{min-width:0}
.comment-meta{display:grid;justify-items:end;gap:2px;text-align:right}
.comment-edited{color:#087246!important;font-weight:700}
.comment-actions{display:flex;align-items:flex-start;gap:8px;margin-top:10px;flex-wrap:wrap}
.comment-edit>summary,.comment-delete{
  min-height:30px;
  padding:5px 10px;
  border:1px solid #cfe0d8;
  border-radius:8px;
  background:#fff;
  color:#176342;
  font-size:11px;
  font-weight:750;
  line-height:18px;
  list-style:none;
  cursor:pointer
}
.comment-edit>summary::-webkit-details-marker{display:none}
.comment-edit>summary:hover{border-color:#8fc7aa;background:#f4fbf7}
.comment-delete{border-color:#f0c5c9;color:#b83340;background:#fff8f8}
.comment-delete:hover{border-color:#df8e96;background:#fff1f2}
.comment-edit[open]{flex:1 0 100%}
.comment-edit[open]>summary{display:inline-flex;margin-bottom:8px;background:#eaf7f0;border-color:#9dceb5}
.comment-edit-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  padding:12px;
  border:1px solid #d8e7df;
  border-radius:11px;
  background:#f8fcfa
}
.comment-edit-form label{display:grid;gap:6px;color:#536b62;font-size:11px;font-weight:700}
.comment-edit-form textarea{width:100%;min-height:92px;background:#fff}
@media(max-width:720px){
  .comment-meta{justify-items:start;text-align:left}
  .comment-edit-form{grid-template-columns:1fr}
  .comment-edit-form .button{width:100%}
}
.plan-confirm-modal{width:min(500px,calc(100vw - 28px));padding:0;overflow:hidden}.plan-confirm-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:start;padding:24px 24px 18px}.plan-confirm-card h2{margin:4px 0 7px}.plan-confirm-card p{margin-bottom:0}.plan-confirm-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#e4f6ec;color:#07814d;font-size:24px;font-weight:900}.plan-confirm-modal .modal-actions{margin:0;padding:14px 24px 20px;border-top:1px solid var(--line);background:#f8fbf9}.plan-confirm-modal .modal-actions .button{flex:1}
.technician-settings-grid{display:grid;grid-template-columns:minmax(360px,.75fr) minmax(520px,1.25fr);gap:18px;padding:18px}.technician-form{align-self:start;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f8fbf9}.technician-form h3{margin:0}.technician-directory{display:grid;align-content:start;gap:10px}.technician-directory-head{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:2px 2px 8px}.technician-directory-head small{color:var(--muted);font-size:10px}.technician-card{display:grid;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.technician-card-main{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.technician-card-main>span:nth-child(2){display:grid;gap:2px}.technician-card-main small{color:var(--muted);font-size:10px}.contractor-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e1f4ea;color:#087246;font-weight:900}.technician-rates{display:flex;align-items:center;gap:8px;padding-top:9px;border-top:1px solid #edf2ef}.technician-rates span{padding:6px 9px;border-radius:8px;background:#f3f8f5;color:var(--muted);font-size:10px}.technician-rates span b{color:var(--ink)}.technician-rates .button{margin-left:auto}@media(max-width:980px){.technician-settings-grid{grid-template-columns:1fr}.technician-directory-head{align-items:start;flex-direction:column}}

.action-confirm-modal.is-danger .plan-confirm-icon{background:#fff0f0;color:#c43b45}.action-confirm-modal .modal-actions{align-items:stretch}.action-confirm-modal .modal-actions>.button{flex:1}
.plan-line-delete{
  min-width:82px;
  min-height:34px;
  padding:7px 14px;
  border:1px solid #efb9bf;
  border-radius:999px;
  background:#fff1f2;
  color:#c73543;
  font:800 11px/1.2 inherit;
  cursor:pointer;
  transition:background .16s,border-color .16s,color .16s,transform .16s
}
.plan-line-delete:hover{border-color:#d94d59;background:#d83b49;color:#fff;transform:translateY(-1px)}
.plan-line-delete:focus-visible{outline:3px solid #f6cbd0;outline-offset:2px}

/* Release notes: persistent entry point and one-time update presentation. */
.release-notes-trigger{width:100%;min-height:44px;margin-top:auto;padding:8px 10px;border:1px solid rgba(166,225,198,.22);border-radius:11px;background:rgba(255,255,255,.07);color:#dff5e9;display:flex;align-items:center;gap:10px;text-align:left;font-weight:750;overflow:hidden;transition:background .16s,border-color .16s,transform .16s}
.release-notes-trigger:hover{background:#125c40;border-color:rgba(187,238,213,.48);transform:translateY(-1px)}
.release-notes-trigger-icon{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(145deg,#39d88d,#07985b);color:#fff;font-size:15px;box-shadow:0 5px 14px rgba(0,26,17,.24)}
.release-notes-trigger-label{white-space:nowrap}.sidebar-bottom{margin-top:8px}
.release-notes-modal{width:min(780px,calc(100vw - 28px));max-height:min(780px,92vh);overflow:hidden;background:#f7faf8}
.release-notes-modal[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.release-notes-hero{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;padding:25px 26px;background:radial-gradient(circle at 8% 10%,rgba(78,231,154,.33),transparent 34%),linear-gradient(135deg,#063d2a,#0b7049);color:#fff}
.release-notes-hero .eyebrow{margin-bottom:4px;color:#aee5ca}.release-notes-hero h2{font-size:27px;letter-spacing:-.035em}.release-notes-hero p:last-child{margin:5px 0 0;color:#d2ebdf;font-size:12px}
.release-notes-mark{width:56px;height:56px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:17px;background:rgba(255,255,255,.12);font-size:27px;box-shadow:inset 0 1px rgba(255,255,255,.15)}
.release-notes-close{color:#fff}.release-notes-close:hover{background:rgba(255,255,255,.13)}
.release-notes-body{min-height:0;overflow:auto;padding:20px 22px}.release-entry{padding:18px;border:1px solid #d8e6df;border-radius:15px;background:#fff;box-shadow:0 10px 28px rgba(10,60,41,.05)}
.release-entry>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:15px;border-bottom:1px solid #e8f0ec}.release-entry>header>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.release-entry h3{margin:0;font-size:17px}.release-entry time{color:var(--muted);font-size:11px;white-space:nowrap}
.release-entry-badge{padding:4px 8px;border-radius:99px;background:#dff6e9;color:#087246;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.release-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.release-change-grid section{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:start;padding:13px;border:1px solid #e5ede9;border-radius:12px;background:#fbfdfc}.release-change-grid h4{margin:1px 0 5px;font-size:12px}.release-change-grid p{margin:0;color:#667b72;font-size:10px;line-height:1.5}
.release-change-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;font-size:17px;font-weight:900}.release-change-icon.green{background:#e1f6eb;color:#07834e}.release-change-icon.blue{background:#e8f2ff;color:#3978bd}.release-change-icon.violet{background:#f1eafd;color:#7750aa}.release-change-icon.amber{background:#fff2da;color:#b87516}
.release-notes-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px;border-top:1px solid var(--line);background:#fff}.release-notes-actions p{margin:0;color:var(--muted);font-size:10px}.release-notes-actions .button{min-width:160px}
@media(min-width:721px){.sidebar:not(:hover):not(:focus-within) .release-notes-trigger{justify-content:center;padding-left:9px;padding-right:9px}.sidebar:not(:hover):not(:focus-within) .release-notes-trigger-label{display:none}}
@media(max-width:720px){.release-notes-trigger{position:fixed;left:12px;bottom:12px;z-index:65;width:44px;padding:8px;background:#073b29;border-color:#2f7559;box-shadow:0 8px 24px rgba(3,43,29,.25)}.release-notes-trigger-label{display:none}.release-change-grid{grid-template-columns:1fr}.release-notes-hero{grid-template-columns:46px minmax(0,1fr) auto;padding:20px 17px}.release-notes-mark{width:46px;height:46px;border-radius:14px}.release-notes-hero h2{font-size:23px}.release-notes-actions{align-items:stretch;flex-direction:column}.release-notes-actions .button{width:100%}}

/* An opened appointment drawer keeps identical geometry with and without hover. */
.schedule-aside.is-open .schedule-drawer,
.schedule-aside.is-open .schedule-drawer:hover,
.schedule-aside.is-open .schedule-drawer:focus-within{
  width:330px!important;
  transition:none
}
.schedule-aside.is-open .schedule-drawer>.side-card:not(.editor-card)>*:not(.card-head){display:block}
.schedule-aside.is-open .schedule-drawer>.side-card>.card-head{
  width:auto;
  height:auto;
  min-height:52px;
  padding:12px 15px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px
}
.schedule-aside.is-open .schedule-drawer>.side-card>.card-head>*{visibility:visible}
.schedule-aside.is-open .appointment-preview>.card-head h2{font-size:18px;line-height:1.25}
.schedule-aside.is-open .appointment-preview>.card-head .icon-button{display:inline-grid;width:34px;height:34px;margin-left:auto;font-size:20px;line-height:1}
.schedule-aside.is-open .appointment-preview>.detail-list span{font-size:11px;line-height:1.45}
.schedule-aside.is-open .appointment-preview>.detail-list strong{font-size:13px;line-height:1.45}
.schedule-aside.is-open .appointment-flow-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
.schedule-aside.is-open .appointment-flow-actions button{
  width:auto;
  min-width:0;
  min-height:33px;
  padding:7px 8px;
  font:700 11px/1.2 var(--ui-font,"Segoe UI",sans-serif)
}
.schedule-aside.is-open .appointment-preview-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  gap:8px
}
.schedule-aside.is-open .appointment-preview-actions .button{
  width:100%;
  min-width:0;
  min-height:39px;
  padding:8px 12px;
  font-size:13px;
  line-height:1.2
}
@media(max-width:720px){
  .schedule-aside.is-open .schedule-drawer,
  .schedule-aside.is-open .schedule-drawer:hover,
  .schedule-aside.is-open .schedule-drawer:focus-within{width:min(330px,calc(100vw - 16px))!important}
}

/* Compact schedule rail: only the icon participates in layout. */
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head,
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{
  width:52px;
  min-width:52px;
  height:52px;
  min-height:52px;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:1fr;
  place-items:center;
  gap:0
}
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head>*{display:none!important}
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary>.drawer-label{display:none!important}
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head:before,
.schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary:before{
  grid-area:1/1;
  width:20px;
  min-width:20px;
  height:20px;
  margin:0!important;
  padding:0;
  background-position:center;
  background-size:20px 20px
}
@media(max-width:720px){
  .schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.side-card>.card-head,
  .schedule-aside:not(.is-open) .schedule-drawer:not(:hover):not(:focus-within)>.editor-card>summary{
    width:46px;
    min-width:46px;
    height:46px;
    min-height:46px
  }
}

/* Patient journey: doctor workbench and reception hand-off */
.doctor-flow-item{grid-template-columns:minmax(300px,1fr) auto;align-items:start;padding:16px 18px;gap:14px 18px}
.doctor-flow-main{display:grid;gap:10px;min-width:0}
.doctor-flow-title{display:flex;align-items:flex-start;gap:10px}
.doctor-flow-title>div{display:grid;gap:3px}
.doctor-flow-title strong{font-size:15px;color:var(--ink)}
.doctor-flow-title span,.doctor-flow-title small{font-size:11px}
.doctor-patient-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.doctor-patient-links a{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border:1px solid #cfe0d8;border-radius:9px;background:#fff;color:#155e45;font-size:11px;font-weight:800;text-decoration:none}
.doctor-patient-links a:hover{border-color:#77b99a;background:#edf8f2}
.doctor-flow-actions{align-self:center;max-width:470px}
.doctor-flow-actions .button{white-space:nowrap}
.doctor-flow-actions .button:disabled{opacity:.55;cursor:not-allowed}
.doctor-bill-preview{grid-column:1/-1;display:grid;gap:8px;padding:11px 13px;border:1px solid #d8e6df;border-radius:11px;background:rgba(255,255,255,.78)}
.doctor-bill-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.doctor-bill-heading span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#70867d}
.doctor-bill-heading strong{font-size:15px;color:#063b2b}
.doctor-bill-lines{display:grid;gap:5px}
.doctor-bill-lines>span{display:flex;justify-content:space-between;gap:14px;font-size:11px;color:#243d34}
.doctor-bill-lines>span b{white-space:nowrap;color:#0a563b}
.doctor-bill-lines small,.doctor-bill-preview p{margin:0;font-size:10px;color:var(--muted)}
.workflow-state{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:900}
.workflow-state.awaiting{background:#fff1cf;color:#8b5a00;border:1px solid #edca72}
.workflow-state.paid{background:#dcf5e8;color:#087044;border:1px solid #8dcaaa}
.workflow-state.neutral{background:#eef3f1;color:#536b62;border:1px solid #d3dfda}
.payment-live-notice{min-width:min(390px,calc(100vw - 28px));padding:16px 18px}
.payment-live-notice strong{font-size:14px}.payment-live-notice span{font-size:11px;line-height:1.45}
#dental-formula{scroll-margin-top:90px}
@media(max-width:850px){.doctor-flow-item{grid-template-columns:1fr}.doctor-flow-actions{justify-content:flex-start;max-width:none}.doctor-bill-preview{grid-column:1}.doctor-patient-links a{flex:1;justify-content:center}.doctor-flow-actions form,.doctor-flow-actions .button{width:100%}}

/* Realtime workspace and embedded patient panels */
.doctor-patient-panel{width:min(1500px,96vw);height:min(920px,94vh);max-width:none;max-height:none;padding:0;overflow:hidden;background:#f5f9f7}
.doctor-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line);background:#fff}
.doctor-panel-head h2{margin:2px 0 0}
.doctor-patient-panel iframe{display:block;width:100%;height:calc(100% - 78px);border:0;background:#f5f9f7}
.doctor-panel-loading{display:grid;place-items:center;height:calc(100% - 78px);color:var(--muted);font-weight:750}
.clinic-embedded .sidebar,.clinic-embedded .topbar,.clinic-embedded #release-notes,.clinic-embedded .back-link{display:none!important}
.clinic-embedded .app-layout{display:block;min-height:100vh}
.clinic-embedded .main{min-width:0;margin:0}
.clinic-embedded .content{max-width:none;padding:14px}
.invoice-editor-meta{grid-template-columns:minmax(280px,1fr) minmax(320px,1.3fr)}
.invoice-meta-note{display:grid;align-content:center;gap:4px;min-height:40px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:#f3f8f5}
.invoice-meta-note span{color:var(--muted);font-size:10px;font-weight:750}
.sync-conflict-banner{position:fixed;right:22px;bottom:22px;z-index:1200;display:grid;grid-template-columns:minmax(230px,1fr) auto;align-items:center;gap:16px;width:min(650px,calc(100vw - 36px));padding:15px 16px;border:1px solid #d9a246;border-radius:14px;background:#fffaf0;color:#493817;box-shadow:0 22px 64px rgba(55,36,4,.24);animation:payment-notice-in .2s ease-out both}
.sync-conflict-banner>div:first-child{display:grid;gap:3px}.sync-conflict-banner span{font-size:11px;color:#735f38}.sync-conflict-banner>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.doctor-patient-panel{width:100vw;height:100vh;max-height:none;border-radius:0}.invoice-editor-meta{grid-template-columns:1fr}.sync-conflict-banner{left:12px;right:12px;bottom:12px;width:auto;grid-template-columns:1fr}.sync-conflict-banner>div:last-child{justify-content:stretch}.sync-conflict-banner button{flex:1}}

/* Active treatment timers and reception payment hand-off */
.visit-runtime{display:inline-flex;align-items:center;gap:7px;width:max-content;margin-top:4px;padding:5px 9px;border:1px solid #b9dfcf;border-radius:999px;background:#edf9f3;color:#08734a;font-size:10px!important;font-weight:850;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.visit-runtime:before{content:"";width:7px;height:7px;border-radius:50%;background:#0ba566;box-shadow:0 0 0 4px rgba(11,165,102,.12);animation:visit-runtime-pulse 1.8s ease-in-out infinite}
.visit-runtime>i{display:none}
@keyframes visit-runtime-pulse{50%{box-shadow:0 0 0 7px rgba(11,165,102,0)}}
.schedule-visit-runtime{position:absolute;left:6px;bottom:4px;z-index:2;display:inline-flex;align-items:center;min-height:18px;padding:2px 6px;border-radius:999px;background:rgba(5,108,73,.91);color:#fff;font-size:9px;font-weight:900;font-style:normal;font-variant-numeric:tabular-nums;box-shadow:0 2px 7px rgba(5,82,57,.2)}
.visit.payment-due{border-color:#e1a426!important;border-left-color:#d7840d!important;background:#fff8e4!important;box-shadow:inset 0 0 0 1px rgba(229,164,38,.12)}
.visit.payment-due:not(.visit-short){padding-right:118px}
.visit-payment-mark{position:absolute;right:6px;top:5px;z-index:3;display:inline-flex;align-items:center;min-height:19px;padding:3px 7px;border:1px solid #e6bd61;border-radius:999px;background:#fff1c7;color:#865200;font-size:8px;font-weight:950;font-style:normal;line-height:1;white-space:nowrap;box-shadow:0 3px 10px rgba(129,82,0,.12)}
.visit.selected.payment-due .visit-payment-mark{top:28px}
.confirmation-item.payment-due{background:#fff9e8;border-color:#ebca7a;box-shadow:inset 3px 0 0 #d99014}
.payment-due-action{border-color:#da921c!important;background:#dc961f!important;color:#fff!important;box-shadow:0 4px 12px rgba(170,105,0,.16)}
.payment-due-action:hover{background:#c9820f!important}
.appointment-preview .payment-action{border-color:#e7bf69;background:#fff8e3;color:#815100}
.appointment-preview .payment-action:hover{border-color:#d8991e;background:#ffefbf}
@media(max-width:760px){.visit.payment-due:not(.visit-short){padding-right:96px}.visit-payment-mark{font-size:7px;padding-inline:5px}}

/* Reception checkout */
.payment-checkout-modal{width:min(1240px,96vw);max-width:none;max-height:94vh;padding:0;overflow:hidden;background:#f5f9f7}
.payment-checkout-form{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:94vh}
.payment-checkout-head{padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}
.payment-checkout-head h2{margin:2px 0 4px;font-size:25px}.payment-checkout-head p{margin:0}
.payment-checkout-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:0;overflow:hidden}
.payment-invoice-pane,.payment-entry-pane{min-height:0;padding:20px 22px;overflow:auto}
.payment-invoice-pane{display:grid;grid-template-rows:auto auto minmax(130px,1fr) auto;gap:14px;border-right:1px solid var(--line);background:#fff}
.payment-entry-pane{display:grid;align-content:start;gap:14px;background:#f5f9f7}
.payment-patient-card{display:grid;gap:4px;padding:16px;border:1px solid #cfe1d8;border-radius:14px;background:linear-gradient(135deg,#edf9f3,#f9fcfa)}
.payment-patient-card>span,.payment-services-head span,.payment-invoice-summary span,.payment-result-grid span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#6d8279}
.payment-patient-card>strong{font-size:19px;color:var(--ink)}.payment-patient-card>small{color:#527067;font-size:11px}
.payment-services-head>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-services-head strong{font-size:12px;color:#0b714d}
.payment-service-list{display:grid;align-content:start;gap:8px;overflow:auto;padding-right:4px}
.payment-service-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 13px;border:1px solid #dbe7e1;border-radius:11px;background:#fbfdfc}
.payment-service-list article>div{display:grid;gap:3px}.payment-service-list article strong{font-size:12px;line-height:1.35}.payment-service-list article small{font-size:10px;color:var(--muted)}.payment-service-list article span{font-size:10px;color:#657b72;white-space:nowrap}.payment-service-list article>b{font-size:13px;color:#075c3f;white-space:nowrap}
.payment-invoice-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-invoice-summary>div{display:grid;gap:4px;padding:13px;border:1px solid #d9e5df;border-radius:11px;background:#f7faf8}.payment-invoice-summary strong{font-size:18px}.payment-invoice-summary .accent{border-color:#8bc9aa;background:#eaf8f1}.payment-invoice-summary .accent strong{color:#007d50}
.payment-entry-pane>label,.payment-entry-pane [data-payment-single]>label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#50675f}.payment-entry-pane select,.payment-entry-pane input,.payment-entry-pane textarea{background:#fff}
.payment-meta-row{grid-template-columns:1fr 1fr}.payment-meta-row input[readonly]{font-weight:900;color:#075c3f;background:#edf8f2}
.payment-method-fieldset{margin:0;padding:0;border:0}.payment-method-fieldset legend{margin-bottom:8px;font-size:11px;font-weight:850;color:#50675f}
.payment-method-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.payment-method-options label{position:relative}.payment-method-options input{position:absolute;opacity:0;pointer-events:none}.payment-method-options span{display:grid;place-items:center;min-height:40px;padding:8px;border:1px solid #cadbd3;border-radius:10px;background:#fff;color:#294a3f;font-size:11px;font-weight:850;cursor:pointer;transition:.15s ease}.payment-method-options input:checked+span{border-color:#0b9c67;background:#e7f8ef;color:#006c45;box-shadow:inset 0 0 0 1px #0b9c67}.payment-method-options label.debt span{color:#9a5d00}.payment-method-options label.debt input:checked+span{border-color:#dda334;background:#fff4d8;color:#885200;box-shadow:inset 0 0 0 1px #dda334}
.payment-field-hint{display:block;margin-top:5px;color:var(--muted);font-size:10px}.payment-split-parts{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-adjustments{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-adjustments label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#50675f}.payment-adjustments small{font-weight:600;color:var(--muted)}
.payment-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.payment-result-grid>div{display:grid;gap:4px;padding:11px;border:1px solid #d9e5df;border-radius:10px;background:#fff}.payment-result-grid strong{font-size:15px}.payment-result-grid .accent{border-color:#8bc9aa;background:#e9f8f1}.payment-result-grid .accent strong{color:#00764c}
.payment-checkout-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;border-top:1px solid var(--line);background:#fff}.payment-checkout-actions p{display:grid;gap:2px;margin:0}.payment-checkout-actions strong{font-size:12px;color:#183b30}.payment-checkout-actions span{font-size:10px;color:var(--muted)}.payment-checkout-actions .button{min-width:260px}
@media(max-width:900px){.payment-checkout-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.payment-checkout-form{max-height:100vh}.payment-checkout-grid{grid-template-columns:1fr;overflow:auto}.payment-invoice-pane,.payment-entry-pane{overflow:visible}.payment-invoice-pane{border-right:0;border-bottom:1px solid var(--line)}.payment-checkout-actions{position:sticky;bottom:0}.payment-method-options{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.payment-invoice-pane,.payment-entry-pane{padding:14px}.payment-meta-row,.payment-adjustments,.payment-result-grid,.payment-split-parts{grid-template-columns:1fr}.payment-service-list article{grid-template-columns:1fr auto}.payment-service-list article span{grid-column:1}.payment-checkout-actions{align-items:stretch;flex-direction:column}.payment-checkout-actions .button{width:100%;min-width:0}}

/* Payment checkout alignment */
.payment-checkout-modal [hidden]{display:none!important}
.payment-checkout-grid,.payment-invoice-pane,.payment-entry-pane,.payment-entry-pane>*{min-width:0}
.payment-entry-pane{overflow-y:auto;overflow-x:hidden;padding:18px 20px;gap:12px}
.payment-entry-pane input,.payment-entry-pane select,.payment-entry-pane textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.payment-entry-pane textarea{resize:vertical}
.payment-meta-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%}
.payment-meta-row label,.payment-method-options label,.payment-split-parts label{min-width:0}
.payment-method-options{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
.payment-parts.payment-split-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;min-width:0}
.payment-parts.payment-split-parts[hidden]{display:none!important}
.payment-extra{border:1px solid #d6e4dd;border-radius:11px;background:#fff;overflow:hidden}
.payment-extra summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;color:#294a3f;cursor:pointer;list-style:none}
.payment-extra summary::-webkit-details-marker{display:none}
.payment-extra summary span{font-size:12px;font-weight:850}
.payment-extra summary small{color:var(--muted);font-size:10px;font-weight:650}
.payment-extra summary:after{content:'+';display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#e9f5ef;color:#08784e;font-size:16px;font-weight:800}
.payment-extra[open] summary{border-bottom:1px solid #e1ebe6}
.payment-extra[open] summary:after{content:'−'}
.payment-extra-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px;padding:13px}
.payment-extra-body>label{display:grid;gap:6px;min-width:0;font-size:11px;font-weight:800;color:#50675f}
.payment-extra-body small{font-weight:600;color:var(--muted)}
.payment-extra-body .payment-note-field,.payment-extra-body .payment-loyalty-opt{grid-column:1/-1}
.payment-extra-body .payment-loyalty-opt{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}
.payment-extra-body .payment-loyalty-opt input{width:16px;height:16px;flex:0 0 16px;margin:0}
.payment-result-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-width:0}
.payment-result-grid>div{min-width:0}
.payment-service-list{overflow-x:hidden}
.schedule-sync-indicator{position:fixed;top:78px;right:22px;z-index:1190;display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid #bcd9cc;border-radius:999px;background:#f4fbf7;color:#176047;font-size:11px;font-weight:800;box-shadow:0 10px 30px rgba(4,55,38,.14)}
.schedule-sync-indicator:before{content:'';width:13px;height:13px;border:2px solid #91b9a7;border-top-color:#078d59;border-radius:50%;animation:spin .7s linear infinite}
.payment-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.payment-history-actions .button{white-space:nowrap}
.receipt-preview-modal{width:min(980px,94vw);max-width:none;height:min(820px,92vh);padding:0;overflow:hidden}
.receipt-preview-modal iframe{display:block;width:100%;height:calc(100% - 64px);border:0;background:#eef5f1}
.receipt-preview-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:#fff}
@media(max-width:560px){.payment-meta-row,.payment-result-grid,.payment-parts.payment-split-parts,.payment-extra-body{grid-template-columns:1fr}.payment-extra-body .payment-note-field,.payment-extra-body .payment-loyalty-opt{grid-column:auto}.payment-extra summary small{display:none}}
.payment-invoice-edit-modal{width:min(980px,94vw);max-width:none}
.payment-invoice-edit-modal .form-stack{gap:0}
.invoice-edit-lines{display:grid;gap:8px;max-height:55vh;overflow:auto;padding:4px 0}
.invoice-edit-lines article{display:grid;grid-template-columns:minmax(220px,1fr) 130px 170px auto;align-items:end;gap:12px;padding:12px;border:1px solid #dbe7e1;border-radius:11px;background:#fbfdfc}
.invoice-edit-lines article>div{display:grid;gap:3px}.invoice-edit-lines article strong{font-size:12px}.invoice-edit-lines article small{color:var(--muted);font-size:10px}
.invoice-edit-lines label{display:grid;gap:5px;min-width:0;color:#50675f;font-size:10px;font-weight:800}
.invoice-edit-lines input{width:100%;min-width:0}
.invoice-edit-lines .invoice-edit-remove{display:flex;align-items:center;gap:6px;min-height:42px;color:#be3341}.invoice-edit-lines .invoice-edit-remove input{width:16px;height:16px;margin:0}
.invoice-edit-total{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:14px;border:1px solid #9ccfb7;border-radius:11px;background:#edf9f3}.invoice-edit-total span{font-size:11px;font-weight:800;color:#527067}.invoice-edit-total strong{font-size:21px;color:#05784d}
@media(max-width:760px){.invoice-edit-lines article{grid-template-columns:1fr 1fr}.invoice-edit-lines article>div{grid-column:1/-1}}
.payment-checkout-grid{overflow-y:auto;overflow-x:hidden;align-items:start}

/* Realtime feedback and compact patient workspace. */
.schedule-visit-runtime{left:auto;right:6px;bottom:4px}
.schedule-sync-indicator{top:auto;right:22px;bottom:22px;z-index:2147483645;animation:payment-notice-in .18s ease-out both;transition:opacity .16s ease,transform .16s ease}
.schedule-sync-indicator.is-leaving{opacity:0;transform:translateY(10px)}
.action-notice,.schedule-notice{z-index:2147483646!important}
dialog[open]>.action-notice,dialog[open]>.schedule-notice{top:18px;right:18px}
.doctor-panel-head{position:sticky;top:0;z-index:20;min-height:72px}
.doctor-panel-head .icon-button{width:38px;height:38px;border-color:#efb4ba;background:#fff2f3;color:#b52937;font-size:24px;box-shadow:0 5px 16px rgba(108,22,34,.12)}
.payment-discount-control{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:7px}
.payment-discount-control input,.payment-discount-control select{width:100%;min-width:0}
html,body{max-width:100%;overflow-x:hidden}
.clinic-embedded .content,.clinic-embedded .patient-hero,.clinic-embedded [data-patient-dynamic]{min-width:0;max-width:100%}

/* Fast, calm navigation: the shell stays fixed while only the working surface moves. */
.sidebar{view-transition-name:stomvio-sidebar}.topbar{view-transition-name:stomvio-topbar}.content{view-transition-name:stomvio-content}
::view-transition-old(root){animation:none;opacity:0;mix-blend-mode:normal}
::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-group(stomvio-sidebar),::view-transition-group(stomvio-topbar){animation-duration:.001ms}
::view-transition-old(stomvio-sidebar),::view-transition-old(stomvio-topbar){animation:none;opacity:0;mix-blend-mode:normal}
::view-transition-new(stomvio-sidebar),::view-transition-new(stomvio-topbar){animation:none;opacity:1;mix-blend-mode:normal}
::view-transition-group(stomvio-content){overflow:clip}
::view-transition-old(stomvio-content){animation:stomvio-content-old .07s cubic-bezier(.4,0,1,1) both;mix-blend-mode:normal}
::view-transition-new(stomvio-content){animation:stomvio-content-new .18s cubic-bezier(.16,1,.3,1) .075s both;mix-blend-mode:normal}
@keyframes stomvio-content-old{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-4px,0,0)}}
@keyframes stomvio-content-new{from{opacity:0;transform:translate3d(8px,3px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.schedule-toolbar.surface-entering,.schedule-workspace.surface-entering{will-change:opacity,transform;animation:stomvio-surface-in .22s cubic-bezier(.16,1,.3,1) both}
.schedule-workspace.surface-entering{animation-delay:.025s}
@keyframes stomvio-surface-in{from{opacity:.25;transform:translate3d(0,6px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* Closed doctor shifts remain readable, but cannot be mistaken for free appointment time. */
.schedule-slot.unassigned-slot{
  cursor:crosshair;
  background-color:#f1f4f2;
  background-image:repeating-linear-gradient(135deg,rgba(87,108,99,.14) 0,rgba(87,108,99,.14) 1px,transparent 1px,transparent 8px);
  box-shadow:inset 3px 0 0 rgba(92,112,103,.14)
}
.schedule-slot.unassigned-slot:hover{background-color:#e9eeeb;background-image:repeating-linear-gradient(135deg,rgba(61,88,76,.2) 0,rgba(61,88,76,.2) 1px,transparent 1px,transparent 8px)}
.schedule-slot.unassigned-slot.selected-slot{background-color:#e2ebe6;background-image:repeating-linear-gradient(135deg,rgba(0,123,70,.24) 0,rgba(0,123,70,.24) 1px,transparent 1px,transparent 8px);box-shadow:inset 0 0 0 1px #6da88b}
.schedule-slot.busy-slot{cursor:not-allowed;background:transparent!important;box-shadow:none!important}
.schedule-selection-card{position:absolute;left:8px;right:8px;z-index:6;display:grid;place-content:center;justify-items:center;gap:1px;min-height:24px;padding:4px 10px;border:1px solid #55b58a;border-radius:9px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(226,248,237,.97));color:#075d3a;box-shadow:0 10px 24px rgba(3,76,47,.18),inset 0 0 0 1px rgba(255,255,255,.75);pointer-events:none;overflow:hidden;animation:schedule-selection-in .2s cubic-bezier(.16,1,.3,1) both}
.schedule-selection-card span{font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.schedule-selection-card strong{font-size:12px;line-height:1.15}.schedule-selection-card small{font-size:8px;color:#55766a;white-space:nowrap}.schedule-selection-card.compact{display:flex;align-items:center;justify-content:center;padding:2px 7px}.schedule-selection-card.compact span,.schedule-selection-card.compact small{display:none}.schedule-selection-card.compact strong{font-size:10px}.duration-readable{display:block;margin-top:3px;color:#087246;font-size:11px;font-weight:750;line-height:1.2}
@keyframes schedule-selection-in{from{opacity:0;transform:translate3d(0,6px,0) scale(.97)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.legend.closed-shift{width:18px;height:11px;border-radius:3px;border:1px solid #c4d0ca;background-color:#f1f4f2;background-image:repeating-linear-gradient(135deg,rgba(87,108,99,.22) 0,rgba(87,108,99,.22) 1px,transparent 1px,transparent 5px)}

/* One lightweight motion system for every native dialog. */
dialog.modal{transform-origin:50% 42%;will-change:auto}
dialog.modal[open]:not(.is-closing){will-change:opacity,transform;animation:stomvio-modal-in .24s cubic-bezier(.16,1,.3,1) both}
dialog.modal[open]:not(.is-closing)::backdrop{animation:stomvio-backdrop-in .18s ease-out both}
dialog.modal.is-closing{will-change:opacity,transform;animation:stomvio-modal-out .14s cubic-bezier(.4,0,1,1) both}
.modal::backdrop{backdrop-filter:blur(2px)}
@keyframes stomvio-modal-in{from{opacity:0;transform:translate3d(0,18px,0) scale(.972)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes stomvio-modal-out{from{opacity:1;transform:translate3d(0,0,0) scale(1)}to{opacity:0;transform:translate3d(0,8px,0) scale(.986)}}
@keyframes stomvio-backdrop-in{from{background:rgba(5,31,23,0)}to{background:rgba(5,31,23,.46)}}
@keyframes stomvio-backdrop-out{from{background:rgba(5,31,23,.46)}to{background:rgba(5,31,23,0)}}
@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root),::view-transition-old(stomvio-sidebar),::view-transition-new(stomvio-sidebar),::view-transition-old(stomvio-topbar),::view-transition-new(stomvio-topbar),::view-transition-old(stomvio-content),::view-transition-new(stomvio-content){animation-duration:.01ms!important}
  .schedule-toolbar.surface-entering,.schedule-workspace.surface-entering,.schedule-selection-card,dialog.modal[open],dialog.modal.is-closing,dialog.modal::backdrop{animation-duration:.01ms!important;animation-delay:0s!important}
}
.patient-finance-bonus{display:grid;gap:4px;align-content:center;min-width:0;padding:12px 16px;border:0;border-left:1px solid var(--line);background:#faf7ff;color:inherit;text-align:left;cursor:pointer}
.patient-finance-bonus:hover{background:#f1eaff}.patient-finance-bonus span{color:var(--muted);font-size:10px}.patient-finance-bonus strong{font-size:17px;color:#6737a0;white-space:nowrap}
.payment-checkout-grid>.payment-invoice-pane,.payment-checkout-grid>.payment-entry-pane{overflow:visible}
.payment-checkout-grid .payment-service-list{max-height:none;overflow:visible}
.payment-method-options{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:700px){.payment-method-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 2026.09.28.6 management, payments and spacing */
.card-head-actions,.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.patient-card .card-head-actions>.button,.card-head-actions>.button{margin:0}
.cash-period-filter{display:flex;align-items:center;gap:12px}
.payment-details-modal{width:min(620px,calc(100vw - 28px));max-height:86vh;overflow:auto;margin-top:5vh}
.payment-details-modal>.detail-list{padding-bottom:8px}
.payment-details-modal>.modal-actions{position:sticky;bottom:0;margin:0;padding:16px 24px 20px;background:#fff;border-top:1px solid var(--line);gap:12px;z-index:2}
.payment-details-modal>.wide-button{margin:0 24px 22px;width:calc(100% - 48px)}
.payment-invoice-rich-modal{width:min(1380px,calc(100vw - 28px));height:min(900px,calc(100vh - 36px));max-height:none}
.invoice-edit-payment-method{display:grid;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);background:#f8fbf9}
.invoice-edit-payment-method>span{font-size:11px;font-weight:800;color:#536b62;text-transform:uppercase}
.invoice-edit-payment-method .payment-method-options{max-width:720px}
.invoice-edit-payment-method .payment-parts{max-width:720px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:16px;margin-bottom:16px}
.analytics-card{overflow:hidden}.analytics-card>.card-head{margin:0}.accent-stat{background:linear-gradient(135deg,#087e4d,#05a461);color:#fff}.accent-stat span{color:#dff7eb!important}
.revenue-chart{height:280px;display:flex;align-items:flex-end;gap:8px;padding:28px 20px 18px;overflow-x:auto}.chart-column{height:100%;min-width:38px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.chart-column b{font-size:9px;color:#577068;white-space:nowrap;min-height:13px}.chart-column i{display:block;width:min(34px,80%);min-height:3px;border-radius:7px 7px 2px 2px;background:linear-gradient(#0fb873,#087d4e);transition:height .25s}.chart-column span{font-size:9px;color:#70837c;white-space:nowrap}.method-distribution,.direction-bars{display:grid;gap:18px;padding:22px}.method-distribution>div,.direction-bars>div{display:grid;grid-template-columns:minmax(100px,1fr) auto;gap:7px 12px;align-items:center}.method-distribution span,.direction-bars span{display:flex;justify-content:space-between;gap:10px}.method-distribution span small{color:var(--muted)}.method-distribution i,.direction-bars i{height:9px;background:#e7f0eb;border-radius:999px;overflow:hidden}.method-distribution i{grid-column:1/-1}.method-distribution em,.direction-bars em{height:100%;display:block;background:#08a662;border-radius:inherit}.direction-bars i{grid-column:1/-1}.direction-bars small{color:var(--muted)}.report-kpis{grid-template-columns:repeat(6,minmax(150px,1fr));overflow-x:auto}.report-kpis .stat small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.report-chart{min-width:650px}.report-columns{align-items:start}.report-table{max-height:500px}.activity-list{display:grid}.activity-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;border-top:1px solid var(--line)}.activity-list article>div{display:grid;gap:3px}.activity-list span,.activity-list time{color:var(--muted);font-size:11px}.activity-list time{white-space:nowrap}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.report-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.card-head-actions,.page-actions{justify-content:stretch}.card-head-actions>.button,.page-actions>.button{flex:1}.cash-period-filter{width:100%}.cash-period-filter input{flex:1}.report-kpis{grid-template-columns:1fr 1fr}.payment-details-modal{margin-top:auto}.payment-invoice-rich-modal{height:calc(100vh - 14px)}.invoice-edit-payment-method .payment-method-options{grid-template-columns:1fr 1fr}}

/* 2026.09.28.7 patient CRM tasks */
.task-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.task-kpis .stat{padding:14px 17px}.task-kpis .stat strong{font-size:24px}.task-kpis .danger-stat{border-color:#efb6bb;background:#fff7f8}.task-kpis .danger-stat strong{color:#b72e3b}
.task-crm-list{display:grid}.task-crm-row{display:grid;grid-template-columns:10px minmax(0,1fr) minmax(130px,auto) auto;align-items:center;gap:13px;padding:14px 16px;border-top:1px solid #e8efeb;background:#fff}.task-crm-row:first-child{border-top:0}.task-crm-row:hover{background:#f7fcf9}.task-state-dot{width:9px;height:9px;border-radius:50%;background:#46a478}.task-crm-row.due-overdue .task-state-dot{background:#d94250}.task-crm-row.due-today .task-state-dot{background:#e5a231}.task-main,.task-owner{display:grid;gap:3px;min-width:0}.task-main strong{font-size:13px}.task-main small,.task-main p,.task-owner small{color:var(--muted);font-size:10px}.task-main p{margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-owner{text-align:right}.task-owner b{font-size:11px}
.task-layout>[data-task-detail-host]{transition:opacity .16s ease,transform .16s ease}.task-layout>[data-task-detail-host].is-loading{opacity:.58;transform:translateX(4px);pointer-events:none}
.task-detail-card{overflow:visible}.task-patient-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);background:#f2faf6}.task-patient-link>div{display:grid;gap:2px}.task-patient-link span,.task-patient-link small{font-size:10px;color:var(--muted)}.task-comment-card{display:grid;gap:5px;padding:16px 18px;border-bottom:1px solid var(--line)}.task-comment-card span{margin-top:4px;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.task-comment-card p{margin:0;white-space:pre-wrap}.task-quick-actions{display:flex;gap:7px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid var(--line)}.task-quick-actions form{margin:0}.task-control{border-bottom:1px solid var(--line)}.task-control>summary{padding:12px 18px;cursor:pointer;color:#116b48;font-weight:800;list-style:none}.task-control>summary::-webkit-details-marker{display:none}.task-comment-form{display:grid;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.task-comment-form label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#526b61}.task-comment-form textarea{width:100%}.task-events h3{font-size:13px;margin:5px 0 8px}.task-events p{margin:2px 0 0;white-space:pre-wrap;color:#4e675e;font-size:11px}.badge.status-new,.badge.status-todo{background:#e8f1ff;color:#2769a9}.badge.status-closed{background:#edf0f1;color:#53616a}
.patient-task-hub{margin-bottom:18px}.patient-task-list{display:grid;gap:9px;padding:14px}.patient-task-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:13px 14px;border:1px solid #d9e6e0;border-left:4px solid #35a572;border-radius:11px;background:#fbfdfc}.patient-task-card.priority-high,.patient-task-card.priority-urgent{border-left-color:#dc4653}.patient-task-card>div:first-child{display:grid;gap:3px}.patient-task-card>.badge{align-self:start;justify-self:end;line-height:1.2}.patient-task-card span,.patient-task-card small{color:var(--muted);font-size:10px}.patient-task-card p{margin:0;color:#4e675e;font-size:11px;white-space:pre-wrap}.patient-task-actions{grid-column:1/-1;display:flex;align-items:center;gap:7px}.patient-task-actions form{margin:0}.patient-task-archive{padding:0 16px 14px;text-align:right}.patient-task-archive a{color:#08774a;font-size:11px;font-weight:800}.task-create-modal{width:min(760px,calc(100vw - 28px))}
@media(max-width:760px){.task-kpis{grid-template-columns:1fr}.task-crm-row{grid-template-columns:10px minmax(0,1fr) auto}.task-owner{grid-column:2;text-align:left}.task-crm-row>.badge{grid-column:3;grid-row:1/3}.patient-task-card{grid-template-columns:1fr}.patient-task-card>.badge{justify-self:start}.task-patient-link{align-items:flex-start;flex-direction:column}}
/* 2026.09.28.11 CRM, recall, waitlist and operational analytics */
.crm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.crm-kpis .stat{min-height:112px}.crm-kpis small{display:block;margin-top:5px;color:var(--muted);font-size:11px}
.crm-funnel-card{margin-bottom:14px}.crm-funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}.crm-funnel article{position:relative;display:grid;gap:5px;padding:17px 20px;background:#fbfdfc}.crm-funnel article+article{border-left:1px solid var(--line)}.crm-funnel article:after{content:'›';position:absolute;right:-8px;top:30px;z-index:2;color:#8db2a1;font-size:21px}.crm-funnel article:last-child:after{display:none}.crm-funnel span{color:var(--muted);font-size:11px;font-weight:700}.crm-funnel strong{font-size:27px}.crm-funnel b{color:var(--green-dark);font-size:13px}.crm-funnel .funnel-completed{background:#effaf4}.crm-funnel .funnel-cancelled{background:#fff8f8}
.crm-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:14px;align-items:start}.crm-panel{min-width:0}.crm-recommendation-list,.waitlist-list{display:grid;gap:10px;padding:12px}.crm-recommendation,.waitlist-card{display:grid;gap:11px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}.crm-recommendation.is-overdue{border-color:#e6b476;background:#fffbf4}.crm-recommendation.priority-high,.crm-recommendation.priority-urgent,.waitlist-card.priority-high,.waitlist-card.priority-urgent{border-left:4px solid #e2a43d}.crm-recommendation header,.waitlist-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.crm-recommendation header>div,.waitlist-card header>div{display:grid;gap:2px}.crm-recommendation header>div:last-child{justify-items:end}.crm-recommendation h3,.waitlist-card h3{margin:0;font-size:15px}.crm-recommendation p,.waitlist-card p{margin:0;color:var(--muted);font-size:11px}.crm-recommendation header span{color:var(--green);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.crm-recommendation time{font-size:11px;font-weight:750}.crm-offer{font-size:13px}.crm-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.crm-card-actions details{position:relative}.crm-card-actions details>summary{list-style:none}.crm-card-actions details[open]>form{position:absolute;right:0;top:calc(100% + 7px);z-index:12;width:360px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 48px rgba(5,49,34,.18)}
.waitlist-request{display:grid;gap:3px}.waitlist-request>span{color:var(--muted);font-size:11px}.gap-suggestions{display:grid;gap:6px;padding:10px;border-radius:11px;background:#eef9f4}.gap-suggestions>b{color:#06764a;font-size:11px}.gap-suggestions form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;background:#fff}.gap-suggestions form span{display:grid;gap:2px}.gap-suggestions small{color:var(--muted);font-size:10px}.no-gap{padding:10px;border-radius:9px;background:#f3f6f4;color:var(--muted);font-size:11px}
.patient-offer-button{display:grid;place-items:center;gap:2px;min-width:118px;padding:10px 14px;border:1px solid #ffc75f;border-radius:12px;background:linear-gradient(145deg,#fff9dd,#ffed9a);color:#765000;box-shadow:0 0 0 0 rgba(244,184,42,.45);animation:patient-offer-pulse 2.2s ease-in-out infinite}.patient-offer-button span{font-size:10px;font-weight:750}.patient-offer-button strong{font-size:21px}@keyframes patient-offer-pulse{50%{box-shadow:0 0 0 7px rgba(244,184,42,0)}}.patient-state.employee{background:#eee8ff;color:#633ab7}.patient-offers-modal{width:min(980px,calc(100vw - 28px));max-height:90vh;display:none;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.patient-offers-modal[open]{display:grid}.patient-offers-modal>.modal-head{padding:22px 24px 18px;border-bottom:1px solid var(--line);background:#fff}.patient-offer-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:10px;padding:14px 24px;background:#f7faf8}.patient-offer-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:15px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.patient-offer-list>article>div{display:grid;gap:3px}.patient-offer-list span{color:var(--green);font-size:10px;font-weight:800;text-transform:uppercase}.patient-offer-list small{color:var(--muted)}.patient-offer-list details{position:relative}.patient-offer-list details>summary{list-style:none;min-height:34px;padding:6px 12px;font-size:11px}.patient-offer-list details[open]>form{width:360px;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#f8fcfa}.patient-offers-modal>.modal-actions{margin:0;padding:14px 24px 20px;border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:10px}.patient-offers-modal>.modal-actions>.button{flex:0 0 auto;min-width:140px}.patient-contact-history{margin-bottom:14px}
.settings-bonus-form{display:grid;grid-template-columns:minmax(320px,1fr) 150px auto;gap:12px;align-items:end;padding:20px}.settings-bonus-form label{display:grid;gap:6px;min-width:0;color:#536b62;font-size:12px;font-weight:750}.settings-bonus-form input,.settings-bonus-form select{width:100%;min-width:0}.settings-bonus-form .button{min-width:160px}.crm-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.crm-rule-card{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}.crm-rule-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:2px}.crm-rule-card header span{color:var(--green);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.crm-rule-card h3{margin:4px 0 0;font-size:17px}.crm-rule-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.crm-rule-fields label,.crm-rule-options label{display:grid;align-content:start;gap:6px;min-width:0;color:#536b62;font-size:11px;font-weight:750}.crm-rule-fields input,.crm-rule-options input,.crm-rule-options select{width:100%;min-width:0}.crm-rule-wide{grid-column:1/-1}.crm-rule-fields small{color:var(--muted);font-size:9px;font-weight:500}.crm-rule-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:13px;border:1px solid #e1ece7;border-radius:11px;background:#f4f9f6}.number-with-unit{position:relative}.number-with-unit input{padding-right:45px}.number-with-unit b{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#71867d;font-size:10px;font-weight:650;pointer-events:none}.crm-rule-card footer{display:flex;justify-content:flex-end;padding-top:1px}.crm-rule-card footer .button{min-width:190px}.mini-switch{flex:0 0 42px}.mini-switch input{position:absolute;opacity:0}.mini-switch i{display:block;width:42px;height:24px;border-radius:99px;background:#c8d5cf;position:relative;transition:.16s}.mini-switch i:after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.16s;box-shadow:0 2px 5px rgba(0,0,0,.15)}.mini-switch input:checked+i{background:#08a461}.mini-switch input:checked+i:after{transform:translateX(18px)}.backup-health.critical{border-color:#edabb2}.backup-health.critical>.card-head{background:#fff6f7}.nav-badge.danger{background:#d93445!important;color:#fff!important}
.report-management-grid{margin-top:14px}.plan-report-funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line)}.plan-report-funnel>div{display:grid;gap:4px;padding:15px}.plan-report-funnel>div+div{border-left:1px solid var(--line)}.plan-report-funnel span{color:var(--muted);font-size:10px}.plan-report-funnel strong{font-size:23px}.plan-report-funnel b{color:var(--green-dark);font-size:11px}
@media(max-width:1200px){.crm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-columns{grid-template-columns:1fr}.crm-funnel{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-funnel article:nth-child(4){border-left:0}.crm-rule-grid{grid-template-columns:1fr}}
@media(max-width:760px){.settings-bonus-form{grid-template-columns:1fr}.settings-bonus-form .button{width:100%}.crm-rule-fields,.crm-rule-options{grid-template-columns:1fr}.crm-rule-wide{grid-column:auto}.crm-rule-card footer .button{width:100%}}
@media(max-width:720px){.crm-kpis,.crm-funnel,.plan-report-funnel{grid-template-columns:1fr}.crm-funnel article+article,.plan-report-funnel>div+div{border-left:0;border-top:1px solid var(--line)}.crm-funnel article:after{display:none}.crm-recommendation header,.waitlist-card header{display:grid}.crm-recommendation header>div:last-child{justify-items:start}.crm-card-actions details{width:100%}.crm-card-actions details>summary{width:100%}.crm-card-actions details[open]>form,.patient-offer-list details[open]>form{position:static;width:100%}.patient-offer-list>article{grid-template-columns:1fr}.patient-hero .patient-offer-button{order:4;width:100%}}

/* One viewport-level hint layer cannot be clipped by cards, dialogs or page edges. */
.patient-hero,.doctor-flow,.doctor-flow-item,.crm-recommendation{overflow:visible}
[data-ui-hint]:after,.patient-state[data-status-hint]:after{content:none!important;display:none!important}
.ui-hover-tip{position:fixed;z-index:20000;width:max-content;max-width:min(280px,calc(100vw - 24px));padding:8px 10px;border:1px solid #79b79c;border-radius:8px;background:#103e2e;color:#fff;box-shadow:0 12px 30px rgba(2,38,26,.24);font-size:11px;font-weight:650;line-height:1.4;white-space:normal;pointer-events:none;opacity:1;transform:translateY(0);transition:opacity .12s ease,transform .12s ease}
.ui-hover-tip[hidden]{display:none}.ui-hover-tip.is-entering{opacity:0;transform:translateY(-4px)}
.crm-plan-value{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:9px 11px;border:1px solid #d8e8df;border-radius:9px;background:#f3faf6;width:max-content;max-width:100%}.crm-plan-value b{font-size:16px;color:#087748}.crm-plan-value span,.crm-plan-value small{font-size:10px;color:var(--muted)}.crm-plan-value small{width:100%}.crm-card-actions>form,.patient-offer-actions>form{margin:0}.patient-offer-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.patient-offer-actions details{position:relative}.patient-offer-actions details>summary{list-style:none}.patient-offer-actions details[open]>form{position:absolute;right:0;top:calc(100% + 7px);z-index:25;width:360px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 48px rgba(5,49,34,.18)}
@media(max-width:720px){.patient-offer-actions{justify-content:flex-start}.patient-offer-actions details{width:100%}.patient-offer-actions details>summary{width:100%}.patient-offer-actions details[open]>form{position:static;width:100%}}
.crm-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr) auto;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.crm-filter input,.crm-filter select{min-width:0}
@media(max-width:760px){.crm-filter{grid-template-columns:1fr}.crm-filter .button{width:100%}}

/* Unified motion for price trees, treatment plans, invoices and payments. */
details[data-motion-ready]>summary{transition:background-color .16s ease,color .16s ease,transform .18s cubic-bezier(.16,1,.3,1)}
.catalog-direction>summary:hover,.catalog-folder>summary:hover,.plan-price-direction>summary:hover,.plan-price-folder>summary:hover,.price-tree-picker details>summary:hover{background-color:#edf8f2;transform:translate3d(3px,0,0)}
details.is-expanding>summary .folder-icon,details.is-expanding>summary .plan-folder-icon{animation:stomvio-folder-open .25s cubic-bezier(.16,1,.3,1) both}
details.is-collapsing>summary .folder-icon,details.is-collapsing>summary .plan-folder-icon{animation:stomvio-folder-close .16s ease-in both}
@keyframes stomvio-folder-open{0%{filter:saturate(.8);transform:translate3d(0,0,0) scale(.92)}62%{filter:saturate(1.18);transform:translate3d(2px,-2px,0) scale(1.08)}100%{filter:saturate(1);transform:translate3d(0,0,0) scale(1)}}
@keyframes stomvio-folder-close{from{transform:translate3d(0,0,0) scale(1)}to{filter:saturate(.85);transform:translate3d(-1px,1px,0) scale(.94)}}
.catalog-folder.is-expanding>summary .folder-icon.small{animation-name:stomvio-small-folder-open}
.catalog-folder.is-collapsing>summary .folder-icon.small{animation-name:stomvio-small-folder-close}
@keyframes stomvio-small-folder-open{0%{transform:scale(.78)}62%{transform:translate3d(2px,-2px,0) scale(.94)}100%{transform:scale(.85)}}
@keyframes stomvio-small-folder-close{from{transform:scale(.85)}to{transform:translate3d(-1px,1px,0) scale(.78)}}

.button,.icon-button,.folder-action,.plan-price-category button,.catalog-category article{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .18s ease,transform .18s cubic-bezier(.16,1,.3,1)}
.button:hover:not(:disabled),.icon-button:hover:not(:disabled),.folder-action:hover:not(:disabled){transform:translate3d(0,-1px,0)}
.button:active:not(:disabled),.icon-button:active:not(:disabled),.folder-action:active:not(:disabled){transform:translate3d(0,0,0) scale(.975)}
.plan-price-category button:hover,.catalog-category article:hover{transform:translate3d(3px,0,0)}

.treatment-plan-editor[open]:not(.is-closing),.invoice-editor[open]:not(.is-closing),.payment-checkout-modal[open]:not(.is-closing),.payment-invoice-edit-modal[open]:not(.is-closing),.payment-invoice-rich-modal[open]:not(.is-closing),.payment-details-modal[open]:not(.is-closing){animation-name:stomvio-workspace-in;animation-duration:.29s}
@keyframes stomvio-workspace-in{from{opacity:0;transform:translate3d(0,28px,0) scale(.982)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.treatment-plan-editor[open]:not(.is-closing) .plan-editor-meta,.invoice-editor[open]:not(.is-closing) .invoice-editor-meta,.payment-checkout-modal[open]:not(.is-closing) .payment-invoice-pane,.payment-invoice-edit-modal[open]:not(.is-closing) .invoice-edit-lines,.payment-invoice-rich-modal[open]:not(.is-closing) .payment-rich-summary{animation:stomvio-workspace-section-in .24s cubic-bezier(.16,1,.3,1) .035s both}
.treatment-plan-editor[open]:not(.is-closing) .plan-service-browser,.invoice-editor[open]:not(.is-closing) .plan-service-browser,.payment-checkout-modal[open]:not(.is-closing) .payment-entry-pane,.payment-invoice-rich-modal[open]:not(.is-closing) .payment-rich-lines{animation:stomvio-workspace-section-in .26s cubic-bezier(.16,1,.3,1) .075s both}
.treatment-plan-editor[open]:not(.is-closing) .plan-cart-pane,.invoice-editor[open]:not(.is-closing) .plan-cart-pane,.payment-checkout-modal[open]:not(.is-closing) .payment-checkout-actions,.payment-invoice-edit-modal[open]:not(.is-closing) .invoice-edit-total{animation:stomvio-workspace-section-in .27s cubic-bezier(.16,1,.3,1) .11s both}
@keyframes stomvio-workspace-section-in{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

@media(prefers-reduced-motion:reduce){
  details[data-motion-ready]>summary,.button,.icon-button,.folder-action,.plan-price-category button,.catalog-category article{transition:none!important}
  .catalog-direction>summary:hover,.catalog-folder>summary:hover,.plan-price-direction>summary:hover,.plan-price-folder>summary:hover,.price-tree-picker details>summary:hover,.button:hover:not(:disabled),.icon-button:hover:not(:disabled),.folder-action:hover:not(:disabled),.plan-price-category button:hover,.catalog-category article:hover{transform:none!important}
  details.is-expanding>summary .folder-icon,details.is-expanding>summary .plan-folder-icon,details.is-collapsing>summary .folder-icon,details.is-collapsing>summary .plan-folder-icon,.treatment-plan-editor[open] .plan-editor-meta,.treatment-plan-editor[open] .plan-service-browser,.treatment-plan-editor[open] .plan-cart-pane,.invoice-editor[open] .invoice-editor-meta,.invoice-editor[open] .plan-service-browser,.invoice-editor[open] .plan-cart-pane,.payment-checkout-modal[open] .payment-invoice-pane,.payment-checkout-modal[open] .payment-entry-pane,.payment-checkout-modal[open] .payment-checkout-actions,.payment-invoice-edit-modal[open] .invoice-edit-lines,.payment-invoice-edit-modal[open] .invoice-edit-total,.payment-invoice-rich-modal[open] .payment-rich-summary,.payment-invoice-rich-modal[open] .payment-rich-lines{animation:none!important}
}

/* 2026.09.30.16: stable operational layouts and a separate analytics workspace */
.crm-panel .crm-advanced-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
.crm-panel .crm-advanced-filter .filter-search,.crm-panel .crm-advanced-filter .period-presets{grid-column:1/-1}
.crm-panel .crm-advanced-filter>.button{width:100%}
.cash-period-filter{display:grid!important;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;align-items:end;gap:10px}
.cash-period-filter>label{align-self:stretch}.cash-period-filter>label input,.cash-period-filter>label select{height:39px}
.cash-period-filter>.button{height:39px;align-self:end}.cash-period-filter .period-presets{grid-column:1/-1;margin:0}
.modal.extra-wide.catalog-editor{width:min(1400px,calc(100vw - 32px));max-width:none}
.catalog-editor-grid{grid-template-columns:300px minmax(0,1fr);overflow:hidden}
.catalog-product-list{min-width:0;max-height:calc(92vh - 105px);overflow:auto;padding-right:2px}
.catalog-product-list>section{min-width:850px}
.catalog-product-head,.catalog-product-row{display:grid;grid-template-columns:minmax(130px,.9fr) minmax(230px,1.5fr) 100px 110px 120px 100px;gap:8px;align-items:center}
.catalog-product-head{padding:0 1px;color:#647970;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.catalog-product-row .button{width:100%}
@media(min-width:721px){
 body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .workspace-mode-switch{width:48px;margin:0 0 10px;grid-template-columns:1fr;padding:2px}
 body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .workspace-mode-switch a{font-size:8px;min-height:25px;padding:3px 1px}
 .analytics-workspace .app-layout{grid-template-columns:250px minmax(0,1fr)}
 .analytics-workspace .sidebar{width:250px;padding:18px 12px;background:#fff;color:var(--ink);border-right:1px solid #e5ece9;box-shadow:5px 0 24px rgba(16,47,38,.05);overflow:hidden}
 .analytics-workspace .sidebar:hover,.analytics-workspace .sidebar:focus-within{width:250px;box-shadow:5px 0 24px rgba(16,47,38,.05)}
 .analytics-workspace .main{grid-column:2}.analytics-workspace .logo{color:var(--ink)}
 .analytics-workspace .branch-label,.analytics-workspace .logo>span,.analytics-workspace .sidebar-bottom{opacity:1;visibility:visible;color:#6c7d76}
 .analytics-workspace .workspace-mode-switch{margin:14px 5px 13px;background:#eef6f2;border-color:#d5e5dd}
 .analytics-workspace .workspace-mode-switch a{color:#567066;font-size:10px}.analytics-workspace .workspace-mode-switch a.active{background:#08784c;color:#fff}
 .analytics-workspace .release-notes-trigger{display:none}
}
.analytics-nav{display:grid;gap:7px;min-height:0;overflow-y:auto;padding:0 3px 20px;scrollbar-width:thin}
.analytics-nav .analytics-home{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:9px;background:#f2f7f4;color:#173d30}
.analytics-nav .analytics-home.active{background:#e2f4ea;color:#007347}
.analytics-nav details{border-top:1px solid #edf2ef;padding-top:6px}.analytics-nav summary{list-style:none;cursor:pointer;padding:8px 11px;color:#718079;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}
.analytics-nav summary::-webkit-details-marker{display:none}.analytics-nav summary:after{content:'⌄';float:right;font-size:13px}.analytics-nav details:not([open]) summary:after{transform:rotate(-90deg)}
.analytics-nav details a{display:block;margin:1px 0 1px 11px;padding:7px 9px 7px 17px;border-left:1px solid #dce7e2;color:#5d6f68;font-size:10px;font-weight:650}
.analytics-nav details a:hover,.analytics-nav details a.active{border-left-color:#02a661;background:#edf8f2;color:#087549;border-radius:0 7px 7px 0}
.analytics-workspace .content{max-width:none;padding:25px 28px 60px}.analytics-page-head{align-items:center}.analytics-page-head .page-actions{flex:0 0 auto}
.analytics-filter{grid-template-columns:repeat(2,minmax(150px,220px)) auto 1fr}.analytics-filter .period-presets{grid-column:auto;align-self:end;padding-bottom:4px}
.analytics-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-kpis .stat strong{font-size:25px}
.analytics-primary-card{margin-top:16px}.analytics-primary-card .table-scroll{max-height:580px}
.analytics-empty{display:grid;place-items:center;gap:8px;min-height:220px;padding:34px;text-align:center;color:var(--muted)}.analytics-empty strong{color:var(--ink);font-size:17px}
.analytics-links{display:flex;gap:8px;flex-wrap:wrap;padding:16px 18px;border-top:1px solid var(--line)}
@media(max-width:1100px){.cash-period-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-filter .period-presets{grid-column:1/-1}}
@media(max-width:980px){.catalog-editor-grid{grid-template-columns:1fr;overflow:auto}.catalog-product-list{max-height:none}.catalog-product-row,.catalog-product-head{grid-template-columns:minmax(130px,.9fr) minmax(230px,1.5fr) 100px 110px 120px 100px}}
@media(max-width:720px){.crm-panel .crm-advanced-filter,.cash-period-filter,.analytics-filter{grid-template-columns:1fr}.crm-panel .crm-advanced-filter .filter-search,.crm-panel .crm-advanced-filter .period-presets,.cash-period-filter .period-presets,.analytics-filter .period-presets{grid-column:auto}.analytics-nav{display:flex;overflow:auto;padding:0}.analytics-nav details{display:contents}.analytics-nav summary{display:none}.analytics-nav details a,.analytics-nav .analytics-home{flex:0 0 auto;margin:0;border:1px solid var(--line);border-radius:8px;padding:8px 10px;white-space:nowrap}.analytics-kpis{grid-template-columns:1fr 1fr}.analytics-workspace .content{padding:16px 12px 40px}.catalog-product-head{display:none}.catalog-product-list>section{min-width:0}.catalog-product-row{grid-template-columns:1fr}}

/* Reserve footer space; only navigation scrolls on short desktop screens. */
@media(min-width:721px){
  .sidebar>.logo,.sidebar>.branch-label,.sidebar>.workspace-mode-switch,.sidebar>.sidebar-footer{flex:0 0 auto}
  .sidebar>.nav,.sidebar>.analytics-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4d8d70 transparent;align-content:start}
  .sidebar .nav a{width:100%;min-height:44px;flex:0 0 auto}
  .sidebar-footer{padding-top:10px}
  .sidebar-footer .release-notes-trigger{margin-top:0;min-height:44px;flex-shrink:0}
  body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .sidebar-bottom{display:none}
}
@media(max-width:720px){
  .sidebar>.sidebar-footer{padding-top:8px}
  .sidebar-footer .release-notes-trigger{position:static;width:auto;max-width:100%;margin:0;box-shadow:none}
  .sidebar-footer .release-notes-trigger-label{display:inline}
}
.release-notes-body{display:grid;align-content:start;gap:14px}
.release-entry time{white-space:nowrap}

.provider-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.provider-service-grid .provider-padded{padding:24px}.settings-service-link{margin-bottom:20px}
@media(max-width:800px){.provider-service-grid{grid-template-columns:1fr}}

/* Keep settings and release notes outside the scrolling section list. */
.sidebar .nav a>.nav-label{display:block;width:auto;min-width:0;flex:1 1 auto}
@media(min-width:721px){
  .sidebar>.nav{padding-bottom:6px;scroll-padding-block:6px}
  .sidebar-footer{display:flex;flex-direction:column;gap:8px}
  .sidebar-footer>.sidebar-settings{flex:none;overflow:visible;padding:0;gap:0}
  .sidebar-settings a{position:relative;min-width:0}
  .sidebar:not(:hover):not(:focus-within) .sidebar-settings .nav-badge{position:absolute;right:1px;top:2px;transform:none;min-width:14px;height:14px;padding:0 3px;font-size:9px}
  .sidebar-footer .sidebar-bottom{margin-top:0}
}
@media(max-width:720px){
  .sidebar-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
  .sidebar-footer>.sidebar-settings{flex:none;padding:0;overflow:visible}
  .sidebar-footer>.sidebar-settings a{min-height:44px;margin:0}
  .sidebar .nav a>.nav-label{font-size:inherit}
}

/* Branch configuration stays in its own section and saves inside accessible dialogs. */
.configuration-card-head{align-items:center;gap:20px}
.configuration-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;flex-shrink:0}
dialog.configuration-modal{width:min(1060px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain}
.configuration-modal>.modal-head{position:sticky;top:0;z-index:3;padding:22px 24px;border-bottom:1px solid var(--line);background:#fff}
.configuration-modal>.modal-head p.muted{max-width:780px;margin:8px 0 0;font-size:13px;font-weight:400}
.configuration-modal .modal-head .icon-button{flex:0 0 36px}
.configuration-modal .configuration-content{min-width:0}
.configuration-modal .form-grid{padding:22px 24px;gap:18px 20px}
.configuration-modal .form-grid label{min-width:0}
.configuration-modal .crm-rule-grid{grid-template-columns:1fr;padding:20px 24px;gap:20px}
.configuration-modal .crm-rule-card{background:#f8fbfa;min-width:0}
.configuration-modal .crm-rule-options{grid-template-columns:repeat(5,minmax(0,1fr))}
.configuration-modal .settings-bonus-form{padding:18px 24px;align-items:end}
.configuration-modal .rule-list{padding:0 24px 20px}
.configuration-footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:16px 24px;border-top:1px solid var(--line);background:#fff}
.configuration-footer>.muted{margin-right:auto;font-size:12px}
.configuration-feedback{margin:0;padding:10px 12px;border-radius:10px;background:#eaf8f1;color:#006b48;font-size:13px;line-height:1.4;font-weight:500;grid-column:1/-1}
.configuration-feedback[hidden]{display:none}
.configuration-feedback.is-error{background:#fff0f1;color:#b52238}
.configuration-modal form[aria-busy="true"] button[type="submit"],.configuration-modal form[aria-busy="true"] .button.primary{cursor:wait;opacity:.65}
@media(max-width:720px){
  .configuration-card-head{align-items:stretch;flex-direction:column}
  .configuration-card-actions{justify-content:space-between;gap:12px}
  .configuration-card-actions .button{flex:1}
  dialog.configuration-modal{inset:0;width:calc(100vw - 20px);height:auto;max-height:calc(100dvh - 20px);margin:auto;border-radius:16px}
  .configuration-modal>.modal-head{padding:18px 16px}
  .configuration-modal .modal-head h2{font-size:20px}
  .configuration-modal .form-grid,.configuration-modal .crm-rule-grid{padding:18px 16px;grid-template-columns:1fr}
  .configuration-modal .form-grid .span-2{grid-column:auto}
  .configuration-modal .crm-rule-fields,.configuration-modal .crm-rule-options{grid-template-columns:1fr}
  .configuration-modal .crm-rule-card{padding:14px;gap:14px}
  .configuration-modal .settings-bonus-form{padding:16px;grid-template-columns:1fr}
  .configuration-modal .rule-list{padding:0 16px 18px}
  .configuration-footer{padding:12px 16px;gap:10px}
  .configuration-modal .form-actions .button,.configuration-modal .crm-rule-card footer .button{width:100%}
}

/* Keep the full contractor directory label visible in the expanded menu. */
@media(min-width:721px){
 .sidebar:hover .nav a.nav-technicians>.nav-label,.sidebar:focus-within .nav a.nav-technicians>.nav-label{white-space:normal;line-height:1.25;overflow-wrap:normal}
}

.help-link{font-weight:700;color:#006b48;white-space:nowrap;padding:8px 12px;border:1px solid #d7e5df;border-radius:10px;margin-left:auto}

/* Schedule reservations: exact time bounds and direct manipulation. */
.reservation[data-reservation-id]{padding:0;min-height:0;cursor:grab;touch-action:none;box-sizing:border-box;isolation:isolate}
.reservation .reservation-body{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:1px;width:100%;height:100%;min-height:0;padding:3px 23px 3px 7px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:inherit;overflow:hidden;box-sizing:border-box;touch-action:none}
.reservation .reservation-body strong,.reservation .reservation-body span{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.reservation .reservation-body strong{font-size:11px;font-weight:750}.reservation .reservation-body span{font-size:9px}
.reservation .reservation-body i{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:15px;font-style:normal;opacity:.45;pointer-events:none}
.reservation.reservation-short .reservation-body{flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;padding:1px 20px 1px 6px}
.reservation.reservation-short .reservation-body strong{font-size:10px}.reservation.reservation-short .reservation-body span{flex:0 0 auto;font-size:9px}
.reservation[data-reservation-editable="1"]:hover,.reservation:focus-within{border-style:solid;border-color:#977b25;box-shadow:inset 0 0 0 1px #c5ac59}
.reservation .reservation-body:focus-visible{outline:2px solid #9b7a1c;outline-offset:-3px}
.reservation .reservation-body:disabled{opacity:1;cursor:default}
.reservation[data-reservation-editable="0"]{cursor:default;touch-action:auto}
.reservation-edge{position:absolute;left:0;right:0;height:5px;z-index:2;cursor:ns-resize;touch-action:none}
.reservation-edge-start{top:0}.reservation-edge-end{bottom:0}
.reservation-edge:after{content:"";position:absolute;left:calc(50% - 15px);top:1px;width:30px;height:2px;border-radius:2px;background:#977b25;opacity:0}
.reservation:hover .reservation-edge:after,.reservation:focus-within .reservation-edge:after{opacity:.75}
.reservation.reservation-dragging{opacity:.4;cursor:grabbing}
.reservation-drag-preview{position:absolute;left:2px;right:2px;z-index:5;display:flex;align-items:center;padding:2px 7px;min-height:0;border:2px solid #0c9560;border-radius:4px;background:#e8f9ef;color:#08653f;font-size:10px;font-weight:750;pointer-events:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}
.reservation-drag-hint{position:fixed;z-index:150;max-width:300px;pointer-events:none;padding:9px 11px;border:1px solid #9bcdb4;border-radius:10px;background:#f4fcf7;color:#08653f;box-shadow:0 8px 24px #103d2b22;font-size:11px;font-weight:700;line-height:1.4}
.reservation-drag-hint.is-invalid{background:#fff3f3;border-color:#df9d9d;color:#a42e38}
.reservation-editor-hint{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.reservation-editor-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.reservation-editor-actions .primary{margin-left:auto}
.reservation-editor-actions [hidden]{display:none!important}
.reservation-legend-help{color:#705b1b;font-size:10px}
.schedule-selection-card{left:2px;right:2px;z-index:2;min-height:0;padding:2px 7px;border-radius:4px;box-shadow:inset 0 0 0 1px #ffffffb3;background:#ecfaf2;box-sizing:border-box}
.schedule-selection-card strong,.schedule-selection-card small{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.schedule-selection-card.compact strong{font-size:10px;line-height:1.1}

/* Remembered patient: scoped to this browser session; no clipboard overlay. */
.patient-buffer-banner strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.patient-buffer-banner>div{min-width:0}.patient-buffer-banner .move-buffer-icon img{width:21px;height:21px}
.patient-buffer-banner small{line-height:1.45}.patient-buffer-banner>.button{white-space:nowrap}
.context-menu [data-slot-create-label]{max-width:340px;white-space:normal;overflow-wrap:anywhere}
.context-menu [data-visit-remember]{color:#007348}

.login-form>label[hidden],.login-form select[hidden]{display:none!important}
.login-role-buttons{display:flex;flex-wrap:wrap;gap:8px}.login-role-buttons button{padding:10px 14px;border:1px solid #d5e5dd;border-radius:12px;background:#f7fbf9;color:#365b4c;font:600 13px var(--ui-font);cursor:pointer}
.login-role-buttons button[aria-pressed="true"]{background:#008d59;border-color:#008d59;color:#fff;box-shadow:0 3px 10px #006f4320}.login-role-buttons button:focus-visible{outline:3px solid #9cdbc1;outline-offset:2px}

/* Role selection and aligned remembered sign-in. */
.login-role-buttons{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:5px;border:1px solid #d8e8e1;border-radius:16px;background:#f1f7f4}
.login-role-buttons button{z-index:1;min-height:44px;padding:9px 12px;border:0;background:transparent;border-radius:11px;color:#416251;line-height:1.3;transition:color .2s ease,transform .16s ease}
.login-role-buttons button:hover{transform:translateY(-1px)}.login-role-buttons button:active{transform:scale(.97)}.login-role-buttons button[aria-pressed="true"]{background:transparent;box-shadow:none;color:#fff}
.login-role-indicator{position:absolute;left:0;top:0;z-index:0;border-radius:11px;background:#008d59;box-shadow:0 3px 10px #006f4320;pointer-events:none;transition:transform .24s cubic-bezier(.2,.8,.2,1),width .24s ease,height .24s ease}
.login-role-indicator[hidden]{display:none!important}
.login-form>label.remember-login{display:grid!important;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:9px;row-gap:1px;padding:4px 0}
.login-form>label.remember-login>input[type="checkbox"]{grid-column:1;grid-row:1;display:block;align-self:center;width:18px!important;height:18px!important;margin:0!important;accent-color:var(--green)}
.login-form>label.remember-login>strong{grid-column:2;grid-row:1;line-height:18px}
.login-form>label.remember-login>small{grid-column:2;grid-row:2;line-height:15px;font-weight:500}
.account-extra-roles{min-width:0;border:1px solid #dbe8e2;border-radius:12px;padding:12px;margin:8px 0}.account-extra-roles legend{padding:0 5px;font-size:12px;font-weight:700;color:#365b4c}.account-extra-roles p{margin:0 0 10px;font-size:11px}.account-extra-roles>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.account-extra-roles>div>label{display:flex!important;align-items:center;gap:7px;font-size:12px!important;font-weight:600!important}.account-extra-roles input[type="checkbox"]{width:17px!important;height:17px!important;margin:0;flex:none}
@media(prefers-reduced-motion:reduce){.login-role-indicator,.login-role-buttons button{transition:none}.login-role-buttons button:hover,.login-role-buttons button:active{transform:none}}

/* A stable icon rail: reveal its scrollbar only while the desktop menu is open. */
@media(min-width:721px){
  body:not(.analytics-workspace) .sidebar>.branch-label{
    padding:6px 12px 8px;overflow:hidden;text-overflow:ellipsis;
  }
  body:not(.analytics-workspace) .sidebar>.workspace-mode-switch{
    height:59px;align-items:center;
  }
  body:not(.analytics-workspace) .sidebar>.nav{
    grid-auto-rows:40px;row-gap:3px;scrollbar-width:none;scrollbar-gutter:auto;
  }
  body:not(.analytics-workspace) .sidebar .nav a{
    position:relative;height:40px;min-height:40px;padding:4px 14px;
    font-size:14px;line-height:16px;
  }
  body:not(.analytics-workspace) .sidebar .nav a>.nav-icon{
    width:20px;height:20px;flex:0 0 20px;
  }
  body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .nav a{
    width:40px;margin-inline:4px;padding:0;gap:0;justify-content:center;
  }
  body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .nav-label{
    position:absolute;width:1px!important;height:1px;overflow:hidden;clip-path:inset(50%);
    white-space:nowrap;visibility:visible;
  }
  body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .nav-badge{
    position:absolute;right:-1px;top:-1px;transform:none;min-width:14px;height:14px;padding:0 3px;font-size:9px;
  }
  body:not(.analytics-workspace) .sidebar:not(:hover):not(:focus-within) .release-notes-trigger{
    width:40px;min-height:40px;margin-inline:4px;padding:6px;
  }
  body:not(.analytics-workspace) .sidebar>.nav::-webkit-scrollbar{width:0;height:0}
  body:not(.analytics-workspace) .sidebar:is(:hover,:focus-within)>.nav{
    scrollbar-width:thin;scrollbar-gutter:stable;
  }
  body:not(.analytics-workspace) .sidebar:is(:hover,:focus-within)>.nav::-webkit-scrollbar{width:6px}
  body:not(.analytics-workspace) .sidebar>.nav::-webkit-scrollbar-track{background:transparent}
  body:not(.analytics-workspace) .sidebar>.nav::-webkit-scrollbar-thumb{background:#4d8d70;border-radius:8px}
  body:not(.analytics-workspace) .sidebar>.nav::-webkit-scrollbar-button{display:none;width:0;height:0}
}

/* Credential input remains a real form control for browser password managers. */
.login-credential-field{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.schedule-body .time-label{height:var(--schedule-halfhour,48px)}
.schedule-body .cabinet-lane{background-size:100% var(--schedule-halfhour,48px)}
.visit.visit-tiny{padding:0 5px;min-height:0;border-radius:2px;justify-content:center}
.visit.visit-tiny strong{font-size:10px;line-height:12px}
.visit.visit-tiny>span,.visit.visit-tiny>small,.visit.visit-tiny>em{display:none}

.template-library-item{border-bottom:1px solid var(--line)}.template-excerpt{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.template-library .button-row{display:flex;gap:7px;flex-wrap:wrap}.template-library textarea{min-height:320px}

@media(max-width:1700px){.schedule-toolbar{flex-wrap:wrap}.schedule-filters{flex:1 1 600px;min-width:0}.schedule-filters input[type="date"]{min-width:138px;flex:0 0 138px}.schedule-filters button{flex-shrink:0}.schedule-toolbar>.date-nav{margin-left:auto}}

.crm-funnel{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}.crm-funnel .funnel-archived{background:#f3f6f4;color:var(--muted)}

/* Clinical workflows: stable responsive controls and actual shift boundaries. */
.schedule-days:not(.many) .day-board{flex:1;min-width:0;width:100%}.schedule-body,.schedule-head{grid-template-columns:58px repeat(var(--cabinet-count),minmax(0,1fr))}.schedule-slot.working-slot{background:#edf8f2;background:color-mix(in srgb,var(--green) 6%,#fff)}.schedule-slot.working-slot:hover{background:#d6efdf}.schedule-slot.unassigned-slot{background:repeating-linear-gradient(135deg,#edf2ef 0,#edf2ef 8px,#dce6e0 8px,#dce6e0 9px)}.work-window{z-index:0;pointer-events:none}.schedule-shift-warning{padding:12px;border:1px solid #ebc66c;background:#fff6dc;border-radius:12px;color:#795a15}.shift-manage-button{border:1px solid #accfc0;border-radius:8px;padding:3px 7px;font:inherit;font-size:10px;color:#086843;background:#fff;cursor:pointer}.shift-edit-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f7fbf9}.shift-edit-card .form-row{flex-wrap:wrap}.shift-edit-card form{margin:0}.shift-edit-card .delete-shift{margin-top:8px}.visit-resize-edge{position:absolute;left:18%;right:18%;height:7px;border-radius:5px;cursor:ns-resize;z-index:8;touch-action:none}.visit-resize-edge.start{top:0}.visit-resize-edge.end{bottom:0}.visit:hover .visit-resize-edge,.visit:focus .visit-resize-edge{background:#08774b80}.visit[data-visit-drag-active="1"]{z-index:15;opacity:.85;outline:2px solid #00a365;transition:none}.visit.status-cancelled,.visit.status-canceled,.visit.status-no_show{background:#e9ecea;border-color:#c4cdc8;color:#6e7c74;border-left-color:#8b9890}.visit.status-cancelled strong,.visit.status-canceled strong,.visit.status-no_show strong{text-decoration:line-through}.visit.is-late{border-left-color:#d68613;background:#fff1d8}.visit-late-label{font-size:9px;font-style:normal;font-weight:800;color:#94600d}.visit-late-label[hidden]{display:none}.patient-type-mark{display:inline-grid;place-items:center;min-width:15px;height:15px;margin-right:4px;border-radius:5px;background:#fff9;font-size:9px;font-style:normal}.mini-calendar-day.occupancy-low:not(.selected){background:#e0f4e8}.mini-calendar-day.occupancy-medium:not(.selected){background:#ffedbd}.mini-calendar-day.occupancy-full:not(.selected){background:#fadbdc}.mini-calendar-footer span{font-size:9px}.late-patients-notice{position:fixed;bottom:16px;right:20px;z-index:30;max-width:380px;padding:14px 38px 14px 16px;border:1px solid #e8bc61;border-radius:14px;background:#fff5db;color:#79560d;box-shadow:0 8px 30px #193e2720;display:grid;gap:5px;font-size:12px}.late-patients-notice[hidden]{display:none}.late-patients-notice button{position:absolute;right:8px;top:8px;border:0;background:none;cursor:pointer}.schedule-filters{grid-template-columns:minmax(130px,1fr) minmax(120px,.8fr) minmax(160px,1.3fr) minmax(130px,.7fr)}.print-doctor-label{padding:8px;display:grid;gap:5px;font-size:12px}.print-doctor-label select{max-width:260px}.lab-work-card h2{font-size:18px}.lab-work-card .page-head{margin-bottom:12px}.button,.date-nav{flex-shrink:0}.schedule-toolbar{display:flex;flex-wrap:wrap}.schedule-toolbar .schedule-filters{flex:1 1 630px}.schedule-toolbar .date-nav{display:flex;flex-wrap:wrap;gap:6px}.schedule-toolbar .schedule-title{white-space:normal}.schedule-selection-card{max-width:100%;overflow:hidden}.schedule-selection-card small{white-space:normal}.modal{max-height:94dvh;overflow:auto}.modal .form-row{min-width:0}.modal label{min-width:0}.modal input,.modal select,.modal textarea{max-width:100%}
@media(max-width:1000px){.schedule-toolbar .schedule-filters{flex-basis:100%;grid-template-columns:1fr 1fr}.schedule-toolbar .date-nav{width:100%}.doctor-flow-item{grid-template-columns:1fr}.doctor-flow-actions{justify-content:flex-start}.schedule-workspace{min-width:0}.schedule-body,.schedule-head{grid-template-columns:45px repeat(var(--cabinet-count),minmax(0,1fr))}}
.visit .visit-resize-edge{display:block!important}.visit .visit-resize-edge:focus-visible{outline:2px solid #005a36;background:#77d7a9}
@media(max-width:600px){.schedule-filters{grid-template-columns:1fr 1fr}.schedule-toolbar .date-nav .button{padding:8px}.modal .form-row{display:grid;grid-template-columns:1fr}.late-patients-notice{left:12px;right:12px;max-width:none}}

/* Exact assigned-doctor grid and stable selection. */
.schedule-slot.working-slot{background:color-mix(in srgb,var(--doctor-color) 11%,#fff);border:1px solid color-mix(in srgb,var(--doctor-color) 44%,#fff);border-top-width:0;border-radius:0;box-shadow:inset 3px 0 0 var(--doctor-color)}
.schedule-slot.working-slot:hover{background:color-mix(in srgb,var(--doctor-color) 22%,#fff);outline:1px solid var(--doctor-color);outline-offset:-1px}
.schedule-slot.busy-slot{pointer-events:none}
.work-window{background:color-mix(in srgb,var(--doctor-color) 11%,#fff)}
.time-selection{position:absolute;left:1px;right:0;border:2px solid #182127;z-index:8;pointer-events:none;border-radius:3px}
.time-selection b{position:absolute;right:1px;top:0;background:#182127;color:#fff;padding:1px 3px;border-radius:2px;font-size:10px;line-height:14px}
.time-selection b:last-child{top:auto;bottom:0}
.mini-calendar-day.occupancy-low{background:#e0f4e8;color:#254f40}
.mini-calendar-day.occupancy-medium{background:#ffedbc;color:#6c4c10}
.mini-calendar-day.occupancy-full{background:#f9d8dc;color:#812b3a}
.mini-calendar-day.occupancy-unknown{background:transparent;color:var(--muted)}
.mini-calendar-day.selected{outline:2px solid #08794f;outline-offset:1px;font-weight:850}
.mini-calendar-day.selected.occupancy-low{background:#e0f4e8;color:#254f40}
.mini-calendar-day.selected.occupancy-medium{background:#ffedbc;color:#6c4c10}
.mini-calendar-day.selected.occupancy-full{background:#f9d8dc;color:#812b3a}
.mini-calendar-day.selected.occupancy-unknown{background:#f2f7f4;color:#254f40}
.calendar-key{display:inline-flex;align-items:center;gap:5px;font-size:10px}
.calendar-key i{display:inline-block;width:22px;height:5px;border-radius:4px;background:linear-gradient(90deg,#9bd5b5,#e8c763,#de8696)}
.schedule-filters .cancelled-filter{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;white-space:nowrap}
.cancelled-filter input{min-height:0;appearance:auto;width:13px;height:13px;margin:0;box-shadow:none}

.schedule-slot.working-slot:hover::after{content:attr(data-slot-time);position:absolute;right:6px;top:2px;color:var(--doctor-color);font-size:10px;font-weight:750;pointer-events:none}
