@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8298327da6d5bcce-s.3q4n78m6muld7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.p.1d_6dtvtn9g3_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2b402d8aebffd579-s.16nfeub7ja6ze.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a88409fdd7dc121c-s.1mvr14jy3vxq7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e8f2fbee2754df70-s.p.1dqa_6e_ad4sj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.montserrat_ce54e56-module__SZ3vDW__className{font-family:Montserrat,Montserrat Fallback;font-style:normal}.montserrat_ce54e56-module__SZ3vDW__variable{--font-montserrat:"Montserrat", "Montserrat Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f7f8;--surface:#fff;--surface-alt:#f6fbfb;--surface-soft:#e9f4f5;--text:#2d3748;--muted:#738295;--border:#d7e4e8;--primary:#3c8f99;--primary-dark:#2f7680;--primary-soft:#dff1f3;--success:#52b35e;--success-soft:#edf8ee;--slate:#7a8793;--slate-soft:#eef3f6;--danger:#d45b64;--danger-soft:#fff2f3;--shadow:0 14px 36px #23384214}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{border:2px solid var(--scrollbar-track);background:var(--scrollbar-thumb);border-radius:999px;min-height:44px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}::-webkit-scrollbar-button{width:0;height:0;display:none}html,body{min-height:100%;margin:0;padding:0}body{min-height:100vh;font-family:var(--font-montserrat), Montserrat, Arial, sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}input::placeholder,textarea::placeholder{color:#9aa7b5}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-shell{background:linear-gradient(180deg, #3c8f991f 0, #3c8f9900 220px), var(--bg);place-items:center;min-height:100vh;padding:32px 20px;display:grid}.auth-card{border-top:6px solid var(--primary);gap:28px;width:min(100%,680px);padding:32px;display:grid}.auth-copy{text-align:center}.auth-copy .eyebrow,.auth-copy h1{letter-spacing:0;white-space:nowrap}.auth-developer-link{color:var(--primary-dark);text-underline-offset:3px;justify-self:center;font-size:13px;font-weight:700;text-decoration:underline}.auth-developer-link:hover{color:var(--primary)}.eyebrow{color:var(--primary-dark);letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:700}.auth-copy h1,.page-header h1,.section-head h2,.state-panel h3{margin:0}.auth-copy p:last-child,.state-panel p{color:var(--muted);margin:10px 0 0;line-height:1.55}@media (max-width:640px){.auth-card{padding:24px 20px}.auth-copy .eyebrow,.auth-copy h1{white-space:normal}}.stack{gap:16px;display:grid}.field{gap:8px;display:grid}.field span{color:#445264;font-size:13px;font-weight:700}.field input,.field textarea,.field select{border:1px solid var(--border);background:var(--surface-alt);width:100%;color:var(--text);border-radius:8px;padding:12px 14px;transition:border-color .18s,box-shadow .18s,background .18s}.field input:focus,.field textarea:focus,.field select:focus{background:#fff;border-color:#3c8f99b3;outline:none;box-shadow:0 0 0 4px #3c8f991f}.field textarea{resize:vertical;min-height:108px}.password-field{position:relative}.password-field input{padding-right:48px}.password-toggle{color:#627387;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .18s,color .18s;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle:hover{color:var(--primary);background:#3c8f9914}.password-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #3c8f9924}.password-toggle svg{width:18px;height:18px}.choice-field,.choice-dropdown{position:relative}.choice-dropdown summary{list-style:none}.choice-dropdown summary::-webkit-details-marker{display:none}.choice-trigger{border:1px solid var(--border);background:var(--surface-alt);color:#8a98a8;cursor:pointer;border-radius:8px;align-items:center;width:100%;min-height:46px;padding:12px 42px 12px 14px;transition:border-color .18s,box-shadow .18s,background .18s;display:flex;position:relative}.choice-trigger:after{content:"";border-bottom:1.5px solid #607080;border-right:1.5px solid #607080;width:8px;height:8px;position:absolute;top:50%;right:16px;transform:translateY(-65%)rotate(45deg)}.choice-trigger.has-value{color:var(--text)}.choice-trigger span{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;line-height:1.35;overflow:hidden}.choice-dropdown[open] .choice-trigger,.choice-trigger:focus-visible{background:#fff;border-color:#3c8f99b3;outline:none;box-shadow:0 0 0 4px #3c8f991f}.choice-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:8px;gap:6px;max-height:260px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 36px #23384224}.choice-option{min-height:38px;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.choice-option:hover{background:var(--surface-alt)}.choice-option input{width:16px;height:16px;accent-color:var(--primary);margin:0}.choice-option span{color:inherit;font-size:14px;font-weight:600;line-height:1.35}.button{background:var(--primary);color:#fff;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:11px 16px;font-size:14px;font-weight:700;transition:background .18s,border-color .18s,transform .18s;display:inline-flex}.button:hover{background:var(--primary-dark)}.button:disabled{opacity:.65;cursor:not-allowed}.button.secondary{border-color:var(--border);color:var(--text);background:#fff}.button.secondary:hover{background:var(--surface-alt)}.button.danger{background:var(--danger)}.button.danger:hover{background:#bf4d56}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:24px}.dashboard-shell{grid-template-columns:260px minmax(0,1fr);column-gap:12px;min-height:100vh;display:grid}.dashboard-main{grid-template-rows:auto 1fr;min-width:0;display:grid}.sidebar{border-right:1px solid var(--border);background:#fff;align-content:start;gap:24px;min-height:100vh;padding:24px 18px;display:grid;position:sticky;top:0}.sidebar-head{border-bottom:1px solid var(--border);padding-bottom:8px}.sidebar-head-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:14px;font-weight:800;display:inline-flex}.brand-copy{gap:2px;display:grid}.sidebar-toggle{border:1px solid var(--border);color:#4f6172;background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.sidebar-toggle:hover{color:var(--primary-dark);background:var(--surface-alt);border-color:#3c8f997a}.sidebar-toggle svg{width:18px;height:18px}.brand-copy strong{font-size:18px;line-height:1.1}.brand-copy small,.sidebar-foot p{color:var(--muted);font-size:13px;line-height:1.45}.sidebar-nav{gap:8px;display:grid}.sidebar-link{color:#4f6172;border-radius:8px;align-items:center;gap:12px;min-height:46px;padding:0 14px;font-weight:600;display:flex}.sidebar-link.active{background:var(--primary-soft);color:var(--primary-dark)}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.nav-icon svg{width:18px;height:18px}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding-top:16px}.sidebar-foot p{margin:0}.sidebar.collapsed .sidebar-head-row{flex-direction:column;align-items:center}.sidebar.collapsed .brand{justify-content:center}.sidebar.collapsed .brand-copy,.sidebar.collapsed .sidebar-link-label,.sidebar.collapsed .sidebar-foot{display:none}.sidebar.collapsed .sidebar-nav{justify-items:center}.sidebar.collapsed .sidebar-link{justify-content:center;width:52px;min-height:52px;padding:0}.topbar{background:linear-gradient(90deg, var(--primary-dark) 0%, var(--primary) 100%);color:#fff;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px;display:flex}.topbar-copy,.topbar-user-copy,.topbar-date{gap:4px;display:grid}.topbar-label,.topbar-date span,.topbar-user-copy span{color:#fffc;font-size:12px}.topbar-copy strong,.topbar-date strong,.topbar-user-copy strong{font-size:18px;line-height:1.15}.topbar-meta{align-items:center;gap:20px;display:flex}.topbar-user{align-items:center;gap:12px;display:flex}.user-avatar{color:#fff;background:#fff3;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;font-size:14px;font-weight:800;display:inline-flex}.content{align-content:start;gap:24px;padding:28px;display:grid}.content:has(.calendar-page-shell){align-content:stretch;height:calc(100dvh - 84px);min-height:0;overflow:hidden}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header p{color:var(--muted);margin:8px 0 0;line-height:1.5}.grid{gap:18px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.section-block{gap:16px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head h2{font-size:24px;line-height:1.2}.sidebar-return-platform{color:#fff;cursor:pointer;width:100%;min-height:42px;font:inherit;text-align:left;background:#dff3f31a;border:1px solid #6f8c94;border-radius:5px;align-items:center;gap:12px;padding:0 11px;font-size:12px;font-weight:700;display:flex}.sidebar-return-platform:hover{background:var(--sidebar-hover)}.sidebar-return-platform:disabled{cursor:wait;opacity:.65}.sidebar.collapsed .sidebar-return-platform{justify-content:center;width:44px;min-height:44px;padding:0}.support-mode-banner{color:#5f501d;background:#fff8df;border-bottom:1px solid #e3d39b;justify-content:space-between;align-items:center;gap:16px;min-height:42px;padding:8px 24px;font-size:13px;display:flex}.topbar-stack{grid-template-rows:auto auto;display:grid}.support-mode-banner button{color:#5f501d;cursor:pointer;min-height:30px;font:inherit;background:#fff;border:1px solid #c7ad52;border-radius:5px;flex:none;padding:0 12px;font-size:12px;font-weight:700}.platform-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.platform-metrics>div{border:1px solid var(--border);background:var(--surface);border-radius:6px;gap:4px;min-height:78px;padding:14px 16px;display:grid}.platform-metrics span{color:var(--muted);font-size:12px}.platform-metrics strong{font-size:24px}.compact-button{white-space:nowrap;min-height:34px;padding:0 10px}.support-session-dialog{width:min(520px,100vw - 32px)}.platform-module-page{max-width:1180px}.platform-module-list{gap:8px;display:grid}.platform-module-list>div{border:1px solid var(--border);background:var(--surface-alt);border-radius:5px;gap:3px;padding:12px 14px;display:grid}.platform-module-list strong{font-size:13px}.platform-module-list span{color:var(--muted);font-size:12px}@media (max-width:1024px){.sidebar .sidebar-return-platform{justify-content:center;width:44px;min-height:44px;padding:0}}@media (max-width:720px){.sidebar-return-platform,.sidebar.collapsed .sidebar-return-platform{justify-content:center;width:48px;min-height:48px;padding:0}.support-mode-banner{align-items:flex-start;padding:8px 16px}.support-mode-banner button{white-space:normal}.platform-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-accordion-list{gap:10px;display:grid}.admin-accordion-grid{align-items:start}.admin-accordion-card{padding:0;overflow:hidden;box-shadow:0 8px 24px #2338420f}.admin-accordion-card.is-open{border-color:#b8d5d9}.admin-accordion-trigger{color:#164f55;text-align:left;background:#dff3f3;border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:44px;padding:11px 16px;font-size:13px;font-weight:700;line-height:1.35;transition:background .18s,color .18s;display:flex}.admin-accordion-trigger:hover{color:var(--primary-dark);background:#d2ebec}.admin-accordion-trigger:focus-visible{outline-offset:-3px;outline:3px solid #3c8f9947}.admin-accordion-chevron{border-bottom:2px solid;border-right:2px solid;flex:none;width:11px;height:11px;transition:transform .18s;transform:rotate(45deg)translate(-2px,-2px)}.admin-accordion-card.is-open .admin-accordion-chevron{transform:rotate(225deg)translate(-2px,-2px)}.admin-accordion-content{border-top:1px solid var(--border);padding:20px}.toolbar,.inline-actions,.tab-row,.metric-row,.calendar-head,.calendar-toolbar,.balance-list,.quick-actions{flex-wrap:wrap;gap:12px;display:flex}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.kpi{border:1px solid var(--border);min-height:128px;box-shadow:var(--shadow);background:#fff;border-radius:8px;gap:10px;padding:20px;display:grid}.kpi span{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:700}.kpi strong{font-size:32px;line-height:1.05}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.summary-card{color:#fff;min-height:140px;box-shadow:var(--shadow);border-radius:8px;gap:10px;padding:22px;display:grid}.summary-card span,.summary-card small{color:inherit;opacity:.9}.summary-card span{text-transform:uppercase;font-size:13px;font-weight:700}.summary-card strong{font-size:40px;line-height:1}.summary-card small{font-size:13px;line-height:1.5}.summary-card.teal{background:linear-gradient(135deg,#3c8f99 0%,#307983 100%)}.summary-card.green{background:linear-gradient(135deg,#53b85e 0%,#3f9950 100%)}.summary-card.slate{background:linear-gradient(135deg,#7a8793 0%,#65727f 100%)}.summary-card.soft{background:linear-gradient(135deg,#ed7274 0%,#d85f68 100%)}.patient-info-list{border-top:1px solid var(--border);gap:0;display:grid}.patient-info-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(180px,220px) minmax(0,1fr);gap:18px;padding:16px 0;display:grid}.patient-info-label{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:700}.patient-info-value{color:var(--text);word-break:break-word;font-size:16px;line-height:1.6}.debt-tab-stack{gap:18px;display:grid}.invoice-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.invoice-filter-row{justify-content:flex-start;align-items:center;display:flex}.invoice-filter-tabs{flex-wrap:wrap;gap:10px;display:flex}.invoice-filter-tabs button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:inline-flex}.invoice-filter-tabs button span{min-width:24px;height:24px;color:var(--primary);background:#419aa81f;border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;line-height:1;display:inline-flex}.invoice-filter-tabs button.active{color:var(--primary-dark);background:#419aa81a;border-color:#419aa880}.invoice-overview-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.invoice-overview-card{border:1px solid var(--border);background:#f8fcfce6;border-radius:8px;gap:8px;padding:14px 16px;display:grid}.invoice-overview-card span{color:var(--muted);font-size:13px;font-weight:600}.invoice-overview-card strong{color:var(--text);font-size:28px;line-height:1}.finance-filters{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:14px;display:grid}.finance-filter-field{gap:8px;display:grid}.finance-filter-field span{color:#445264;font-size:13px;font-weight:700}.finance-filter-field input,.finance-filter-field select{border:1px solid var(--border);background:var(--surface-alt);width:100%;min-height:44px;color:var(--text);border-radius:8px;padding:10px 12px}.finance-filter-actions{justify-content:flex-end;display:flex}.finance-cashflow-kpis .invoice-overview-card strong{font-size:24px}.report-kpi-list,.invoice-overview-grid{border-top:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:none;background:#fff;grid-template-columns:1fr;gap:0;display:grid;overflow:hidden}.report-kpi-list .kpi,.invoice-overview-card{border:0;border-top:1px solid var(--border);min-height:38px;box-shadow:none;background:#fff;border-radius:0;grid-template-columns:minmax(180px,1fr) minmax(120px,auto);align-items:center;gap:18px;padding:9px 10px;display:grid}.report-kpi-list .kpi:first-child,.invoice-overview-grid .invoice-overview-card:first-child{border-top:0}.report-kpi-list .kpi span,.invoice-overview-card span{min-width:0;color:var(--text);text-transform:none;font-size:14px;font-weight:600}.report-kpi-list .kpi strong,.invoice-overview-card strong,.finance-cashflow-kpis .invoice-overview-card strong{color:var(--text);text-align:right;white-space:nowrap;justify-self:end;font-size:15px;font-weight:800;line-height:1.25}.grid.two:has(>.invoice-overview-card){border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:1fr;gap:0;overflow:hidden}.grid.two:has(>.invoice-overview-card)>.invoice-overview-card:first-child{border-top:0}.stock-filters{grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(180px,.9fr)) auto auto;align-items:end;gap:14px;display:grid}.stock-toggle{min-height:44px;color:var(--text);align-items:center;gap:10px;padding:0 4px;font-weight:600;display:inline-flex}.stock-toggle input{width:16px;height:16px;accent-color:var(--primary);margin:0}.stock-item-name{gap:4px;display:grid}.stock-item-name strong{line-height:1.35}.stock-item-name span{color:var(--muted);font-size:13px;line-height:1.35}.stock-flag{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.stock-flag.ok{color:#2f7d3a;background:#52b35e24}.stock-flag.low{color:#b94d59;background:#d45b6424}.stock-flag.empty{color:#4f5c70;background:#5b678024}.stock-flag.expiry{color:#aa6d1f;background:#dc973a29}.stock-report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stock-report-grid>div{border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;gap:6px;padding:14px 16px;display:grid}.stock-report-grid strong{font-size:20px;line-height:1.2}.stock-low-list{gap:12px;display:grid}.stock-low-item{border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.stock-low-item strong{line-height:1.35;display:block}.stock-low-item p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.45}.stock-modal{width:min(100%,860px)}.stock-modal.compact{width:min(100%,620px)}.stock-modal-grid{grid-template-columns:minmax(0,1fr)}.stock-modal-grid.single{padding-top:20px}.stock-purchase-modal{width:min(1120px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.stock-purchase-form{gap:16px;display:grid}.stock-purchase-lines{border:1px solid var(--border);background:var(--surface-alt);border-radius:6px;gap:8px;padding:12px;display:grid}.stock-purchase-lines-head,.stock-purchase-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.stock-purchase-line{border-top:1px solid var(--border);grid-template-columns:minmax(220px,2fr) minmax(100px,.7fr) minmax(130px,.9fr) minmax(120px,.9fr) minmax(145px,1fr) 36px;align-items:end;gap:8px;padding-top:8px;display:grid}.stock-purchase-line .icon-button{width:36px;min-height:36px;margin-bottom:1px}.stock-purchase-footer>div:first-child{gap:2px;display:grid}.stock-purchase-footer span{color:var(--muted);font-size:12px}.stock-purchase-footer strong{font-size:20px}@media (max-width:1024px){.stock-purchase-line{grid-template-columns:minmax(200px,2fr) repeat(2,minmax(110px,1fr)) 36px}.stock-purchase-line .field:nth-of-type(4),.stock-purchase-line .field:nth-of-type(5){grid-column:span 2}}@media (max-width:720px){.stock-purchase-line{grid-template-columns:minmax(0,1fr) 36px}.stock-purchase-line .field{grid-column:1}.stock-purchase-line .icon-button{grid-area:1/2}.stock-purchase-footer{flex-direction:column;align-items:stretch}}.checkbox-cell{justify-content:center;align-items:center;display:inline-flex}.checkbox-cell input{width:16px;height:16px;accent-color:var(--primary)}.service-checklist{gap:10px;max-height:240px;padding:2px 0;display:grid;overflow:auto}.service-checklist-item{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:grid}.service-checklist-item:hover{background:#f4fbfcb8;border-color:#419aa880}.service-checklist-item.selected{background:#e6f5f7eb;border-color:#419aa8b3;box-shadow:0 0 0 1px #419aa81f}.service-checklist-item.danger{background:var(--danger-soft);border-color:#d45b648c}.service-checklist-item input{width:16px;height:16px;accent-color:var(--primary);margin:0}.service-checklist-label{min-width:0;color:var(--text);font-weight:600}.service-checklist-meta{color:var(--muted);white-space:nowrap;font-size:.95rem}.debt-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.debt-summary-card{gap:16px;display:grid}.debt-summary-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.debt-summary-head h3{margin:0;font-size:24px;line-height:1.1}.debt-summary-lines{gap:10px;display:grid}.debt-summary-row{color:var(--muted);justify-content:space-between;align-items:baseline;gap:16px;font-size:14px;display:flex}.debt-summary-row strong{color:var(--text);text-align:right}.debt-summary-row.total{border-top:1px solid var(--border);padding-top:10px}.debt-summary-row.total strong{font-size:18px}.debt-status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.debt-status.due{color:#b94d59;background:#ed727424}.debt-status.closed{color:#2f7d3a;background:#53b85e24}.debt-status.cancelled{color:#6b7886;background:#78849324}.debt-status.overpaid{color:var(--primary-dark);background:#3c8f9924}.debt-amount.positive{color:#b94d59}.debt-amount.negative{color:#2f7d3a}.dashboard-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.dashboard-columns-wide{grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr)}.dashboard-payments-row{grid-template-columns:minmax(0,1fr);display:grid}.dashboard-shortcuts-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dashboard-shortcuts-row .shortcut-card{background:#dff3f3;border-color:#c5e2e4;border-radius:6px;gap:2px;min-height:54px;padding:9px 12px}.dashboard-shortcuts-row .shortcut-card:hover{background:#d2ebec;border-color:#9fcdd0}.dashboard-shortcuts-row .shortcut-card strong{color:#164f55;font-size:13px;line-height:1.3}.dashboard-shortcuts-row .shortcut-card span{color:#527278;font-size:11px;line-height:1.35}.dashboard-compact-card{padding:16px}.dashboard-compact-card .section-block{gap:10px}.dashboard-compact-card .section-head h2{font-size:13px;font-weight:700;line-height:1.35}.dashboard-list{gap:8px;display:grid}.dashboard-list-item{border:1px solid var(--border);background:var(--surface-alt);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.dashboard-list-item.stacked{align-items:flex-start}.dashboard-list-item strong{font-size:13px;line-height:1.3;display:block}.dashboard-list-item .badge{min-height:24px;padding:3px 8px;font-size:11px}.dashboard-list-item p,.dashboard-list-item .soft-note{color:var(--muted);margin:2px 0 0;font-size:12px;line-height:1.35}.soft-note{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45}.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.shortcut-card{border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;gap:6px;padding:18px;transition:border-color .18s,background .18s;display:grid}.shortcut-card:hover{background:#fff;border-color:#3c8f996b}.shortcut-card strong{font-size:15px}.shortcut-card span{color:var(--muted);font-size:13px;line-height:1.45}.table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;background:#fff;width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:14px 16px}.data-table th{background:var(--surface-alt);color:#556476;letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:700}.data-table tbody tr:hover td{background:#fbfdfd}.data-table tbody tr:last-child td{border-bottom:0}.table-link{color:var(--primary-dark);font-weight:600;text-decoration:none}.table-link:hover{text-decoration:underline}.state-panel,.empty-table{border:1px dashed var(--border);background:var(--surface-alt);border-radius:8px;padding:22px}.error-text{color:var(--danger);margin:0;font-size:14px}.badge{background:var(--primary-soft);min-height:30px;color:var(--primary-dark);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.service-modal-head-actions{align-items:center;gap:12px;display:flex}.service-status-badge{min-height:34px;padding:6px 12px;font-size:13px}.service-status-active{color:#2f8a36;background:#4fb4542e}.service-status-hidden{color:#ba4f54;background:#ed72742e}.service-icon-actions{flex-wrap:nowrap;align-items:center;gap:10px}.service-action-icon{min-width:auto;min-height:auto;box-shadow:none;color:var(--muted);background:0 0;border:0;padding:0}.service-action-icon:hover,.service-action-icon:focus-visible{box-shadow:none;background:0 0;transform:none}.service-action-icon svg{width:18px;height:18px;display:block}.service-action-edit{color:var(--primary-dark)}.service-action-edit:hover{color:var(--primary)}.service-action-activate{color:#2f8a36}.service-action-activate:hover{color:#25812d}.service-action-hide{color:#ba4f54}.service-action-hide:hover{color:#a33c41}.service-action-delete{color:#d85b63}.service-action-delete:hover{color:#c4464f}.stock-item-actions{flex-wrap:nowrap;grid-template-columns:repeat(7,36px);align-items:center;gap:6px;width:max-content;display:grid}.stock-action-icon{border-color:var(--border);background:var(--surface);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--primary-dark);padding:0}.stock-action-icon:hover,.stock-action-icon:focus-visible{background:var(--primary-soft);color:var(--primary-dark);border-color:#9fc8cd;transform:none}.stock-action-icon svg{width:19px;height:19px;display:block}.stock-action-issue,.stock-action-adjustment{color:#556575}.stock-action-return,.stock-action-transfer{color:#377b88}.stock-action-hide{background:var(--danger-soft);color:var(--danger);border-color:#efc5c8}.stock-action-hide:hover,.stock-action-hide:focus-visible{color:#bd4750;background:#ffe7e9;border-color:#dfa0a5}.quick-action-icon-button{min-width:auto;min-height:auto;box-shadow:none;color:var(--primary-dark);background:0 0;border:0;padding:0}.quick-action-icon-button:hover,.quick-action-icon-button:focus-visible{box-shadow:none;color:var(--primary);background:0 0;transform:none}.quick-action-icon-button.quick-action-icon-button-active{color:var(--primary)}.quick-action-icon-button svg{width:20px;height:20px;display:block}.tab-row{border-bottom:1px solid var(--border);padding-bottom:6px}.tab-row button{border:1px solid var(--border);min-height:40px;color:var(--muted);background:#fff;border-radius:8px;padding:8px 14px;font-weight:600}.tab-row button.active{background:var(--primary);color:#fff;border-color:#0000}.calendar-toolbar{justify-content:flex-end;align-items:center}.calendar-header-meta{align-items:center;gap:12px;display:grid}.calendar-header-period{align-content:center;gap:4px;min-width:220px;display:grid}.calendar-header-period h2{margin:0;font-size:24px;line-height:1.2}.calendar-header-controls{justify-content:flex-end;align-items:center;gap:12px;display:flex}.calendar-color-filter{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.calendar-filter-bar{gap:8px;display:grid}.calendar-color-filter-label{color:var(--muted);margin-right:4px;font-size:12px;font-weight:700}.calendar-color-filter button{border:1px solid var(--border);min-height:34px;color:var(--text);font:inherit;background:#fff;border-radius:5px;align-items:center;gap:7px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.calendar-color-filter button:hover{border-color:var(--border-strong);background:var(--surface-alt)}.calendar-color-filter button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.calendar-color-dot{border-radius:50%;flex:0 0 10px;width:10px;height:10px}.calendar-color-dot.red{background:#e53935}.calendar-color-dot.blue{background:#1e9ae1}.calendar-color-dot.green{background:#4caf50}.calendar-color-dot.gray{background:#9e9e9e}.calendar-page-shell{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.calendar-card-shell,.calendar-card-shell .card,.calendar-card-shell .section-block,.calendar-view-viewport,.calendar-day-view,.calendar-week-view,.calendar-month-view,.calendar-year-view{min-height:0}.calendar-card-shell{height:100%;min-height:0;overflow:hidden}.calendar-card-shell .card{height:100%;display:grid;overflow:hidden}.calendar-card-shell .section-block{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.calendar-view-viewport{grid-template-rows:minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.calendar-view-select{min-width:164px;display:inline-flex;position:relative}.calendar-view-select:after{content:"";pointer-events:none;border-bottom:1.5px solid #607080;border-right:1.5px solid #607080;width:8px;height:8px;position:absolute;top:50%;right:16px;transform:translateY(-65%)rotate(45deg)}.calendar-view-select select{border:1px solid var(--border);width:100%;min-height:44px;color:var(--text);appearance:none;background:#fff;border-radius:8px;padding:0 40px 0 14px;font-size:14px;font-weight:700}.calendar-view-select select:focus{border-color:#3c8f99b3;outline:none;box-shadow:0 0 0 4px #3c8f991f}.calendar-nav{align-items:center;gap:12px;display:flex}.calendar-arrow-button{border:1px solid var(--border);color:#324255;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:border-color .18s,background .18s,color .18s;display:inline-flex}.calendar-arrow-button:hover{background:var(--surface-alt);color:var(--primary-dark);border-color:#3c8f9973}.calendar-arrow-button:focus-visible{border-color:#3c8f99b3;outline:none;box-shadow:0 0 0 4px #3c8f991f}.calendar-arrow-button svg{width:18px;height:18px}.calendar-grid.week,.calendar-grid.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.calendar-grid.year{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.calendar-year-view{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.calendar-year-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;display:grid}.calendar-year-scroll{height:100%;min-height:0;padding-right:4px;overflow:auto}.calendar-year-month{align-content:start;gap:10px;display:grid}.calendar-year-month h4{margin:0;font-size:18px;line-height:1.2}.calendar-year-weekdays,.calendar-year-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px 6px;display:grid}.calendar-year-weekdays span{text-align:center;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:600}.calendar-year-day-wrap{justify-content:center;min-height:32px;display:flex;position:relative}.calendar-year-day{width:32px;height:32px;color:var(--text);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:600;display:inline-flex}.calendar-year-day:hover{background:var(--surface-alt)}.calendar-year-day.outside{color:#a5b2bf}.calendar-year-day.today,.calendar-year-day-wrap.active .calendar-year-day{background:var(--primary);color:#fff}.calendar-year-day.has-items:not(.today){color:var(--primary-dark);background:#3c8f991f}.calendar-year-popover{z-index:20;border:1px solid var(--border);background:#fff;border-radius:8px;gap:12px;width:min(260px,100vw - 48px);padding:16px;display:grid;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 18px 36px #23384229}.calendar-year-popover-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-year-popover-head span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.calendar-year-popover>strong{font-size:34px;line-height:1}.calendar-year-popover-close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:0;font-size:18px;line-height:1}.calendar-year-popover-list{gap:8px;display:grid}.calendar-year-popover-item{color:#fff;background:#1e9ae1;border-left:3px solid #1e9ae1;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:5px 8px;display:grid}.calendar-year-popover-item strong,.calendar-year-popover-item span{color:inherit;white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.25;overflow:hidden}.calendar-year-popover-empty{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.calendar-weekday{border:1px solid var(--border);background:var(--surface-alt);min-height:40px;color:var(--muted);text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.calendar-weekday.weekend{background:var(--danger-soft);color:var(--danger);border-color:#f1d0d4}.calendar-cell{border:1px solid var(--border);background:#fff;border-radius:8px;min-height:148px;padding:12px}.calendar-cell.weekend{background:#fff9fa;border-color:#f1d0d4}.calendar-cell.outside-month{opacity:.72}.calendar-cell.weekend h4{color:var(--danger)}.appointment-chip{border-left:3px solid var(--primary);background:var(--surface-alt);border-radius:8px;gap:3px;margin-bottom:8px;padding:9px 10px;display:grid}.link-button{color:var(--primary-dark);text-align:left;background:0 0;border:0;padding:0;font-weight:700}.link-button:hover{color:var(--primary)}@media (max-width:1200px){.dashboard-columns,.dashboard-columns-wide,.grid.two,.calendar-grid.year{grid-template-columns:1fr}.dashboard-shortcuts-row,.calendar-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:960px){.dashboard-shell{grid-template-columns:1fr}.dashboard-shell:has(.sidebar.collapsed){grid-template-columns:1fr}.sidebar{gap:18px;min-height:auto;position:static}.sidebar.collapsed{padding-inline:18px}.sidebar.collapsed .sidebar-head-row{flex-direction:row;align-items:flex-start}.sidebar.collapsed .brand-copy{display:grid}.sidebar.collapsed .sidebar-link-label{display:inline}.sidebar.collapsed .sidebar-foot{display:block}.sidebar.collapsed .sidebar-nav{justify-items:initial}.sidebar.collapsed .sidebar-link{justify-content:flex-start;width:auto;min-height:46px;padding:0 14px}.sidebar-nav{padding-bottom:4px;display:flex;overflow-x:auto}.sidebar-link{white-space:nowrap}.topbar,.topbar-meta,.page-header{flex-direction:column;align-items:flex-start}.content{padding:20px}.summary-grid,.shortcut-grid,.dashboard-shortcuts-row,.kpi-grid,.grid.two,.dashboard-columns,.dashboard-columns-wide,.calendar-grid.week,.calendar-grid.month,.calendar-grid.year,.calendar-year-grid{grid-template-columns:1fr}.calendar-weekday{display:none}.dashboard-list-item{flex-direction:column;align-items:flex-start}}.calendar-cell.interactive{text-align:left;cursor:pointer;appearance:none;width:100%;transition:border-color .18s,box-shadow .18s,transform .18s}.calendar-cell-head{gap:6px;margin-bottom:12px;display:grid}.calendar-cell-count,.calendar-more,.calendar-note{color:var(--muted);font-size:12px;line-height:1.5}.calendar-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a26306b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.calendar-modal{border:1px solid var(--border);background:#fff;border-radius:8px;width:min(100%,1120px);max-height:min(90vh,860px);overflow:auto;box-shadow:0 28px 72px #121c243d}.calendar-modal.service-modal{width:min(100%,760px);max-width:760px}.calendar-modal.patient-modal{width:min(100%,820px);max-width:820px}.calendar-modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 24px 18px;display:flex}.calendar-modal-head h3{margin:0;font-size:28px;line-height:1.2}.calendar-modal-head p:last-child{color:var(--muted);margin:8px 0 0;line-height:1.5}.calendar-modal-close{border:1px solid var(--border);width:42px;height:42px;color:var(--text);background:#fff;border-radius:8px;font-size:28px;line-height:1}.calendar-modal-grid{grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:24px;padding:24px;display:grid}.calendar-modal-grid.calendar-day-detail-layout{grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr)}.calendar-modal-grid.service-modal-grid,.calendar-modal-grid.patient-modal-grid{grid-template-columns:minmax(0,1fr)}.calendar-modal-section{align-content:start;gap:16px;display:grid}.calendar-modal-section h4{margin:0;font-size:20px;line-height:1.3}.calendar-day-list{gap:12px;display:grid}.calendar-day-item{border:1px solid var(--border);border-left:3px solid var(--primary);background:var(--surface-alt);width:100%;color:var(--text);text-align:left;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;display:flex}.calendar-day-item.active{border-color:#3c8f9973;box-shadow:0 0 0 3px #3c8f991f}.calendar-day-item strong{line-height:1.4;display:block}.calendar-day-item p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.patient-combobox{gap:10px;display:grid}.patient-combobox-actions{justify-content:flex-start;display:flex}.patient-options{border:1px solid var(--border);background:#fff;border-radius:8px;gap:8px;max-height:220px;padding:8px;display:grid;overflow-y:auto}.patient-option{background:var(--surface-alt);width:100%;color:var(--text);text-align:left;border:1px solid #0000;border-radius:8px;gap:4px;padding:10px 12px;transition:border-color .18s,background .18s,box-shadow .18s;display:grid}.patient-option:hover,.patient-option:focus-visible{background:#fff;border-color:#3c8f9973;outline:none;box-shadow:0 0 0 3px #3c8f991f}.patient-option strong{line-height:1.4}.patient-option span,.patient-selected{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.patient-selected strong{color:var(--text)}.patient-inline-create{border:1px solid var(--border);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.patient-inline-create-title{color:var(--text);margin:0;font-size:14px;font-weight:700;line-height:1.4}.patient-inline-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.patient-inline-create-actions{justify-content:flex-end;gap:12px;display:flex}.calendar-form-error{color:#b54752;margin:0;font-size:13px;line-height:1.45}.calendar-form-warning{color:#9a6700;margin:0;font-size:13px;line-height:1.45}.calendar-recurrence-panel{background:#3c8f9914;border:1px solid #3c8f992e;border-radius:8px;gap:10px;padding:12px;display:grid}.calendar-recurrence-select{margin:0}.calendar-recurrence-controls{gap:10px;display:grid}.calendar-recurrence-summary{color:var(--muted);margin:0;font-size:12px;font-weight:700}.calendar-weekday-toggle-list{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekday-toggle{border:1px solid var(--border);min-height:36px;color:var(--text);background:#fff;border-radius:8px;font-size:12px;font-weight:800}.calendar-weekday-toggle:hover,.calendar-weekday-toggle:focus-visible,.calendar-weekday-toggle.active{background:var(--primary);color:#fff;border-color:#3c8f998c;outline:none}.calendar-modal-actions{justify-content:flex-end;gap:12px;display:flex}@media (max-width:720px){.patient-inline-create-grid{grid-template-columns:minmax(0,1fr)}.calendar-weekday-toggle-list{grid-template-columns:repeat(4,minmax(0,1fr))}}.calendar-detail-topbar,.calendar-detail-shortcuts{flex-wrap:wrap;gap:12px;display:flex}.calendar-detail-shortcuts{flex-wrap:nowrap;align-items:center;gap:8px}.calendar-detail-shortcuts .button{white-space:nowrap;min-height:40px;padding:8px 14px;font-size:14px;line-height:1.15}.calendar-detail-topbar{justify-content:space-between;align-items:center}.calendar-detail-divider{background:var(--border);height:1px}.calendar-detail-heading{margin:0;font-size:16px;line-height:1.3}.patients-toolbar{justify-content:flex-start;display:flex}.patient-registry-card{gap:16px;display:grid}.patient-registry-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.patient-registry-head h2{margin:0}.patient-registry-toggle{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:700;line-height:1.35}.patient-registry-toggle:hover,.patient-registry-toggle:focus-visible{color:var(--primary)}.patient-registry-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.patient-registry-content{min-width:0}.calendar-year-popover-item{text-align:left;cursor:pointer;border:0;width:100%}.day-appointment-chip,.week-appointment-chip,.appointment-chip-grid{cursor:pointer}.day-appointment-chip[draggable=true],.week-appointment-chip[draggable=true],.appointment-chip-grid[draggable=true]{cursor:grab}.day-appointment-chip.dragging,.week-appointment-chip.dragging,.appointment-chip-grid.dragging{opacity:.55;cursor:grabbing}.day-appointment-chip.resizing,.week-appointment-chip.resizing{box-shadow:0 0 0 2px #3c8f9938}.appointment-resize-handle{cursor:ns-resize;background:0 0;border:0;border-radius:999px;height:12px;padding:0;position:absolute;bottom:4px;left:10px;right:10px}.appointment-resize-handle:before{content:"";background:#354c5747;border-radius:999px;width:30px;height:4px;margin:4px auto 0;display:block}.calendar-toast{z-index:90;border:1px solid var(--border);background:#fff;border-radius:8px;align-items:flex-start;gap:12px;max-width:min(420px,100vw - 48px);padding:14px 16px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 36px #23384229}.calendar-toast.error{background:var(--danger-soft);color:#a9424c;border-color:#ed727461}.calendar-toast.success{background:var(--primary-soft);color:var(--primary-dark);border-color:#12818a4d}.calendar-toast span{font-size:13px;font-weight:600;line-height:1.45}.calendar-toast button{width:22px;height:22px;color:inherit;background:0 0;border:0;padding:0;font-weight:800}@media (max-width:960px){.finance-filters,.stock-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-filter-actions{justify-content:stretch}.finance-filter-actions .button{width:100%}.calendar-modal-backdrop{padding:12px}.calendar-modal-head{padding:18px 18px 12px}.calendar-modal-grid{grid-template-columns:1fr;padding:18px}.calendar-day-item,.calendar-modal-actions{flex-direction:column}.calendar-modal-actions .button{width:100%}}.calendar-grid.month.month-refined,.calendar-grid.week{gap:14px}.calendar-day-view{grid-template-rows:auto minmax(0,1fr);gap:18px;height:100%;min-height:0;display:grid;overflow:hidden}.calendar-week-view{--calendar-slot-height:56px;grid-template-rows:auto minmax(0,1fr);gap:16px;height:100%;min-height:0;display:grid;overflow:hidden}.calendar-week-scroll{border:1px solid var(--border);background:#fff;border-radius:8px;height:100%;min-height:0;overflow:auto}.calendar-week-head,.calendar-week-row{grid-template-columns:76px repeat(7,minmax(140px,1fr));min-width:1056px;display:grid}.calendar-week-head{z-index:12;-webkit-backdrop-filter:blur(8px);background:#ffffffb3;position:sticky;top:0;box-shadow:0 1px #d6e1e8f2}.calendar-week-time-spacer{background:#fbfcfdb3;border-bottom:1px solid #e6edf2;border-right:1px solid #e6edf2}.calendar-week-head-cell{text-align:center;cursor:pointer;background:#fbfcfdb3;border:1px solid #e6edf2;border-top:0;border-left:0;gap:4px;padding:10px 8px;display:grid}.calendar-week-head-cell.weekend{background:#fff7f8b3}.calendar-week-head-cell.today{background:#dff1f3b3}.calendar-week-head-label{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800;line-height:1.2}.calendar-week-head-date{font-size:18px;font-weight:800;line-height:1}.calendar-week-head-count{color:var(--muted);font-size:11px;line-height:1.3}.calendar-week-row{min-height:var(--calendar-slot-height)}.calendar-week-time-label{color:#8a98a8;text-align:right;background:#fbfcfd;border-bottom:1px solid #e6edf2;border-right:1px solid #e6edf2;padding:10px 8px;font-size:12px;line-height:1.4}.calendar-week-time-label.major{color:var(--text);font-weight:700}.calendar-week-cell{min-height:var(--calendar-slot-height);text-align:left;cursor:pointer;background:#fff;border:1px solid #e6edf2;border-top:0;border-left:0;align-content:start;gap:4px;padding:6px;transition:background .18s;display:grid;position:relative;overflow:visible}.calendar-current-time-line{z-index:10;pointer-events:none;background:#d83f4d;height:2px;position:absolute;right:0;box-shadow:0 0 0 1px #d83f4d1f}.calendar-current-time-line>span{background:#d83f4d;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.calendar-current-time-line.day{left:86px}.calendar-current-time-line.week{left:0}.calendar-week-cell:hover{background:#f8fbfc}.calendar-week-cell.weekend{background:#fff9fa}.calendar-week-cell.today{background:#f7fcfc}.calendar-week-cell.past{background:#fbfcfd}.calendar-week-cell.has-items{background:#dff1f380}.calendar-week-cell-items{align-content:start;gap:4px;display:grid;overflow:visible}.week-appointment-chip{z-index:4;min-height:calc((var(--appointment-slot-span,1) * var(--calendar-slot-height)) - 10px);border-left:3px solid var(--primary);background:#3c8f9924;border-radius:8px;grid-template-columns:minmax(0,1fr);align-content:start;row-gap:3px;width:auto;max-width:100%;padding:8px 28px 18px 10px;display:grid;position:absolute;top:5px;left:6px;right:6px;overflow:hidden}.week-appointment-chip strong{white-space:nowrap;text-overflow:ellipsis;padding-right:10px;font-size:14px;line-height:1.15;display:block;overflow:hidden}.week-appointment-chip span{color:var(--muted);white-space:normal;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-right:6px;font-size:13px;line-height:1.2;display:-webkit-box;overflow:hidden}.calendar-period-head,.calendar-period-head,.calendar-day-view-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:12px;display:flex}.calendar-period-head{margin-bottom:16px}.calendar-period-head h3,.calendar-day-view-head h3{margin:4px 0 0;font-size:24px;line-height:1.2}.calendar-day-view-count{color:var(--muted);margin:0;font-size:13px;font-weight:700}.calendar-day-timeline{border:1px solid var(--border);--calendar-slot-height:54px;background:#fff;border-radius:8px;height:100%;min-height:0;display:grid;overflow:auto}.calendar-month-view{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.calendar-month-scroll{height:100%;min-height:0;padding-right:4px;overflow:auto}.calendar-time-slot{min-height:var(--calendar-slot-height);text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #e6edf2;grid-template-columns:86px minmax(0,1fr);padding:0;transition:background .18s;display:grid;position:relative}.calendar-time-slot:last-child{border-bottom:0}.calendar-time-slot:hover{background:#f8fbfc}.calendar-time-slot.drag-over,.calendar-week-cell.drag-over,.calendar-cell.interactive.drag-over{outline-offset:-2px;background:#dff1f3b8;outline:2px solid #3c8f99c7}.calendar-time-slot-label{color:#8a98a8;background:#fbfcfd;border-right:1px solid #e6edf2;justify-content:flex-end;align-items:flex-start;padding:10px 12px;font-size:12px;line-height:1.4;display:flex}.calendar-time-slot-label.major{color:var(--text);font-weight:700}.calendar-time-slot-lane{align-content:center;gap:8px;padding:7px 10px;display:grid;position:relative;overflow:visible}.calendar-time-slot.has-items .calendar-time-slot-label{background:#dff1f38f}.calendar-time-slot-empty{min-height:12px;display:block}.day-appointment-chip{z-index:4;min-height:calc((var(--appointment-slot-span,1) * var(--calendar-slot-height)) - 12px);border-left:3px solid var(--primary);background:#3c8f9924;border-radius:8px;grid-template-columns:minmax(0,1fr);grid-template-areas:"time""patient""status";align-content:start;row-gap:3px;width:auto;max-width:100%;padding:8px 28px 18px 10px;display:grid;position:absolute;top:6px;left:10px;right:10px;overflow:hidden}.day-appointment-chip strong{white-space:nowrap;text-overflow:ellipsis;grid-area:time;padding-right:10px;font-size:14px;line-height:1.15;display:block;overflow:hidden}.day-appointment-chip span{color:var(--muted);white-space:normal;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-right:6px;font-size:13px;line-height:1.2;display:-webkit-box;overflow:hidden}.day-appointment-chip span:first-of-type{grid-area:patient}.day-appointment-status-text{grid-area:status}.calendar-cell.interactive{text-align:left;cursor:pointer;appearance:none;align-content:start;gap:10px;width:100%;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:grid;position:relative}.calendar-cell.interactive:focus-visible{border-color:#3c8f99a6;outline:none;box-shadow:0 0 0 4px #3c8f9924}.calendar-cell.interactive:hover{border-color:#3c8f9973;transform:translateY(-1px);box-shadow:0 10px 24px #23384214}.calendar-cell.past{background:#f7f9fb;border-color:#e3e9ef}.calendar-cell.past .appointment-chip{opacity:.8;background:#eef3f7;border-left-color:#b9c5d0}.calendar-cell.today{background:linear-gradient(#dff1f3b8 0%,#fff 32%);border-color:#3c8f99a6;box-shadow:0 0 0 2px #3c8f991f}.calendar-cell.today.weekend{background:linear-gradient(#dff1f3b8 0%,#fff9fa 32%)}.calendar-cell.outside-month{background:#fbfcfd}.calendar-cell.outside-month:not(.today){opacity:1}.calendar-cell.has-items:after{content:"";background:#3c8f99d1;border-radius:8px 0 0 8px;width:3px;position:absolute;inset:0 auto 0 0}.calendar-day-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.calendar-day-top.month-mode{align-items:center}.calendar-day-mark{align-items:center;gap:10px;min-width:0;display:flex}.calendar-day-copy{gap:2px;min-width:0;display:grid}.calendar-day-label{font-size:14px;line-height:1.2}.calendar-day-subtitle{color:var(--muted);font-size:12px;line-height:1.4}.calendar-day-badge{background:var(--surface-alt);min-width:32px;height:32px;color:var(--text);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:13px;font-weight:800;display:inline-flex}.calendar-day-badge.today{background:var(--primary);color:#fff;box-shadow:0 10px 18px #3c8f9947}.calendar-cell.past .calendar-day-badge:not(.today){color:#768595;background:#e8edf2}.calendar-cell.outside-month .calendar-day-badge:not(.today){color:#8695a5;background:#eff3f6}.calendar-cell-dot{background:var(--primary);border-radius:999px;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 0 4px #3c8f9926}.calendar-cell-meta{border-bottom:1px dashed #d7e4e8e6;justify-content:space-between;align-items:center;gap:10px;padding-bottom:6px;display:flex}.calendar-cell-meta.month-mode{padding-bottom:2px}.calendar-cell-state,.calendar-cell-count,.calendar-more,.calendar-note{color:var(--muted);font-size:12px;line-height:1.45}.calendar-cell-state{text-transform:uppercase;font-weight:700}.calendar-cell-state.today{color:var(--primary-dark)}.calendar-cell.past .calendar-cell-state:not(.today),.calendar-cell.past .calendar-cell-count{color:#8d9aab}.calendar-cell.today .calendar-cell-count{color:var(--primary-dark);font-weight:700}.calendar-cell h4{margin:0;font-size:15px;line-height:1.35}.calendar-cell.weekend h4,.calendar-cell.weekend .calendar-day-label{color:var(--danger)}.appointment-chip{border-left:3px solid var(--primary);background:var(--surface-alt);border-radius:8px;gap:3px;margin-bottom:0;padding:8px 30px 8px 9px;display:grid;position:relative}.appointment-color-blue{background:#1e9ae124!important;border-left-color:#1e9ae1!important}.appointment-color-red{background:#e5393524!important;border-left-color:#e53935!important}.appointment-color-green{background:#4caf5024!important;border-left-color:#4caf50!important}.appointment-color-gray{background:#9aa5b12e!important;border-left-color:#9aa5b1!important}.appointment-chip-grid strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.3;overflow:hidden}.appointment-chip-grid span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.35;overflow:hidden}.appointment-chip.compact{gap:3px;padding:8px 30px 8px 9px}.appointment-status-indicator{color:#fff;white-space:nowrap;-webkit-line-clamp:unset;-webkit-box-orient:initial;border:2px solid #ffffffeb;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-family:Arial,sans-serif;font-size:15px;font-weight:900;line-height:1;display:inline-flex;position:absolute;top:7px;right:7px;overflow:visible;box-shadow:0 1px 3px #17253047}.day-appointment-chip .appointment-status-indicator,.week-appointment-chip .appointment-status-indicator,.appointment-chip-grid .appointment-status-indicator{color:#fff;white-space:nowrap;text-overflow:clip;-webkit-line-clamp:unset;-webkit-box-orient:initial;padding:0;font-size:15px;line-height:1;display:inline-flex;overflow:visible}.appointment-status-indicator.completed{background:#218a4b}.appointment-status-indicator.no-show{background:#c47a05}.appointment-status-indicator.cancelled{background:#cf3446}.appointment-color-picker{align-items:center;gap:14px;padding:6px 0 2px;display:flex}.appointment-color-description{max-width:620px;color:var(--muted);font-size:12px;line-height:1.45}.appointment-color-description strong{color:var(--text)}.appointment-color-option{border:2px solid #0000;border-radius:999px;width:36px;height:36px;box-shadow:inset 0 0 0 1px #14243014}.appointment-color-option.red{background:#e53935}.appointment-color-option.blue{background:#1e9ae1}.appointment-color-option.green{background:#4caf50}.appointment-color-option.gray{background:#9e9e9e}.appointment-color-option.selected{border-color:#24344a;box-shadow:0 0 0 4px #24344a1f}.appointment-color-option:focus-visible{border-color:#24344a;outline:none;box-shadow:0 0 0 4px #24344a29}.year-cell{min-height:220px}@media (max-width:960px){.calendar-header-meta{grid-template-columns:minmax(0,1fr);gap:8px}.calendar-header-controls{justify-content:space-between;width:100%}.calendar-header-controls .calendar-nav,.calendar-header-controls .calendar-view-select{justify-content:flex-start}.patient-info-row{grid-template-columns:1fr;gap:6px}.calendar-cell-meta,.calendar-day-top,.calendar-day-mark{align-items:flex-start}.calendar-week-head,.calendar-week-row{grid-template-columns:64px repeat(7,minmax(114px,1fr));min-width:860px}.calendar-week-time-label,.calendar-week-head-cell{padding-inline:6px}.calendar-time-slot{grid-template-columns:68px minmax(0,1fr)}.calendar-time-slot-label{padding-inline:8px}.calendar-cell-meta{flex-direction:column}.calendar-day-top{gap:10px}}.calendar-day-top.simple{margin-bottom:2px}.calendar-day-top.simple.month-mode{margin-bottom:8px}.calendar-cell .calendar-day-copy,.calendar-cell .calendar-cell-meta{display:none}.calendar-cell.interactive{gap:8px}.calendar-cell.month-refined,.calendar-grid.month.month-refined .calendar-cell{aspect-ratio:1;min-height:0;overflow:hidden}.calendar-grid.month.month-refined .appointment-chip.compact{border-left-width:2px;border-radius:6px;gap:3px;max-width:100%;padding:6px 24px 6px 8px;overflow:hidden}.calendar-grid.month.month-refined .appointment-status-indicator{width:20px;height:20px;font-size:14px;top:5px;right:5px}.calendar-grid.month.month-refined .appointment-chip-grid strong{white-space:nowrap;text-overflow:ellipsis;padding-right:8px;font-size:12px;line-height:1.2;display:block;overflow:hidden}.calendar-grid.month.month-refined .appointment-chip-grid span{white-space:normal;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-right:4px;font-size:11px;line-height:1.2;display:-webkit-box;overflow:hidden}.calendar-grid.month.month-refined .calendar-more{font-size:10px;line-height:1.1}@media (max-width:720px){.finance-filters,.stock-filters{grid-template-columns:1fr}.stock-low-item{flex-direction:column;align-items:flex-start}.calendar-year-popover{left:0;transform:none}}.questionnaire-summary-list{gap:8px;padding-bottom:4px;display:grid}.questionnaire-summary-item{grid-template-columns:minmax(180px,220px) minmax(0,1fr);align-items:start;gap:14px;padding:4px 0;display:grid}.questionnaire-summary-item span{color:var(--muted);font-size:13px;font-weight:700;line-height:1.45}.questionnaire-summary-item strong{font-size:15px;font-weight:600;line-height:1.45}.field-static-value{border:1px solid var(--border);background:var(--surface-soft);min-height:48px;color:var(--text);border-radius:8px;align-items:center;padding:12px 14px;display:flex}.questionnaire-head h3{margin:0 0 8px;font-size:22px;line-height:1.2}@media (max-width:720px){.questionnaire-summary-item{grid-template-columns:1fr;gap:4px}}.questionnaire-head p{color:var(--muted);margin:0;line-height:1.5}.questionnaire-conditions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.dental-chart-panel{gap:16px}.stock-transfer-form{border:1px solid var(--border);background:var(--surface-alt);border-radius:6px;padding:16px}.ocr-provider-note{border-left:3px solid var(--primary);background:var(--surface-alt);color:var(--text);gap:4px;padding:12px;font-size:13px;display:grid}.ocr-provider-note span,.ocr-confidence{color:var(--muted);font-size:12px}.ocr-confidence{margin-top:5px;display:block}.stock-transfer-line{grid-template-columns:minmax(220px,2fr) minmax(130px,.7fr) minmax(180px,1fr) auto;align-items:end;gap:12px;display:grid}.stock-transfer-list{gap:12px;display:grid}.stock-transfer-record{border:1px solid var(--border);border-radius:6px;gap:14px;padding:16px;display:grid}.stock-transfer-record-head,.stock-transfer-record-foot{justify-content:space-between;align-items:center;gap:16px;display:flex}.stock-transfer-record-head>div{gap:4px;display:grid}.stock-transfer-record-head span{color:var(--muted)}.stock-transfer-status{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:13px;font-weight:700}.stock-transfer-status.draft{color:#465568;background:#eef2f6}.stock-transfer-status.shipped{color:#765b00;background:#fff4cc}.stock-transfer-status.received{color:#17613a;background:#dff4e8}.stock-transfer-status.cancelled{color:#8a2831;background:#f8e3e5}.stock-transfer-items{gap:8px;display:grid}.stock-transfer-items>div{border-top:1px solid var(--border);grid-template-columns:minmax(180px,1fr) auto auto minmax(180px,.5fr);align-items:center;gap:14px;padding:8px 0;display:grid}@media (max-width:900px){.stock-transfer-line,.stock-transfer-items>div{grid-template-columns:1fr 1fr}.stock-transfer-record-head,.stock-transfer-record-foot{flex-direction:column;align-items:flex-start}}@media (max-width:600px){.stock-transfer-line,.stock-transfer-items>div{grid-template-columns:1fr}}.dental-chart-actions{justify-content:flex-end;display:flex}.dental-chart-mode-row{flex-wrap:wrap;gap:8px;display:flex}.dental-chart-mode-row button{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);cursor:pointer;border-radius:8px;padding:10px 14px;font-weight:700}.dental-chart-mode-row button.active{background:var(--primary);border-color:var(--primary);color:#fff}.dental-chart-layout{grid-template-columns:minmax(620px,1.35fr) minmax(330px,.65fr);align-items:start;gap:20px;display:grid}.dental-chart-grid{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;min-width:0;padding:16px;display:grid;overflow-x:auto}.dental-jaw{gap:7px;min-width:700px;display:grid}.dental-jaw.primary-row{width:64%;min-width:440px;margin-inline:auto}.dental-jaw-label{color:var(--text-soft);font-size:12px;font-weight:700}.dental-tooth-row{grid-template-columns:repeat(16,minmax(38px,1fr));align-items:end;gap:3px;display:grid}.dental-jaw.primary-row .dental-tooth-row{grid-template-columns:repeat(10,minmax(38px,1fr))}.dental-tooth{min-width:0;min-height:90px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-rows:18px 68px;padding:2px;font-size:11px;font-weight:700;transition:background-color .16s,border-color .16s,transform .16s;display:grid}.dental-tooth:hover{border-color:#c9e4e5;transform:translateY(-2px)}.dental-tooth.healthy:hover{background:#dff3f3}.dental-tooth.selected{border-color:var(--primary);background:#edf8f8;outline:2px solid #3a91993d}.dental-tooth.planned:not(.selected){background:#dff3f37a;border-style:dashed;border-color:#8bbfc2}.dental-tooth.missing{color:#8b949b;cursor:not-allowed}.dental-tooth-svg{touch-action:none;width:100%;height:100%;display:block;overflow:visible}.dental-tooth-svg.editor{cursor:crosshair;width:min(100%,250px);height:240px;margin:0 auto}.dental-tooth-svg.removed{cursor:not-allowed;opacity:.78}.dental-crown,.dental-root{stroke:#697b88;stroke-width:2.2px;stroke-linejoin:round}.dental-root{fill:#edf2f4}.dental-surface{stroke:#697b8838;stroke-width:.7px;transition:fill .16s}.dental-implant path{fill:#bdc9cf;stroke:#687b86;stroke-width:2px}.dental-default-caries{fill:#343a40}.dental-marking{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:7px;pointer-events:none}.dental-marking.caries{stroke:#343a40}.dental-marking.filling{stroke:#ded3b5;stroke-width:9px}.dental-marking-dot{pointer-events:none}.dental-marking-dot.caries{fill:#343a40}.dental-marking-dot.filling{fill:#ded3b5}.dental-removed-cross{fill:none;stroke:#8c969d;stroke-width:4px;stroke-linecap:round}.dental-editor-card{border:1px solid var(--border);background:#f7fafb;border-radius:8px;gap:10px;padding:14px;display:grid}.dental-editor-heading,.dental-editor-heading>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.dental-editor-heading>div{justify-content:flex-start}.dental-editor-heading span{color:var(--text-soft);font-size:12px}.dental-editor-heading strong{font-size:18px}.dental-drawing-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.dental-drawing-toolbar button{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.dental-drawing-toolbar button.active{border-color:var(--primary);background:#dff3f3}.dental-drawing-toolbar button:disabled{cursor:not-allowed;opacity:.5}.dental-drawing-toolbar i,.dental-chart-legend i{background:#fbfcfc;border:1px solid #9aa8b1;border-radius:4px;width:13px;height:13px;display:inline-block}.dental-drawing-toolbar i.caries,.dental-chart-legend i.caries{background:#343a40;border-color:#343a40}.dental-drawing-toolbar i.filling,.dental-chart-legend i.filling{background:#eee6cf;border-color:#c9bd9e}.dental-chart-legend i.missing{background:#d8dee3}.dental-chart-legend i.planned{background:#dff3f3;border-color:#8bbfc2}.dental-drawing-hint{color:var(--text-soft);margin:0;font-size:11px;line-height:1.45}.dental-chart-legend{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 16px;padding-top:12px;display:flex}.dental-chart-legend span{color:var(--text-soft);align-items:center;gap:6px;font-size:11px;display:inline-flex}.dental-tooth-details{gap:14px;display:grid}.dental-linked-treatment,.dental-tooth-history{border-top:1px solid var(--border);gap:10px;padding-top:14px;display:grid}.dental-linked-treatment-head,.dental-plan-form-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.dental-treatment-list,.dental-plan-form{gap:10px;display:grid}.dental-treatment-item{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.dental-treatment-item>div,.dental-history-item{gap:3px;display:grid}.dental-treatment-item span,.dental-history-item time,.dental-history-item small{color:var(--text-soft);font-size:12px}.dental-history-item{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;padding:8px 0}.dental-history-item small{grid-column:1/-1}.field-label{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:700;display:block}.dental-surface-grid{gap:8px;display:grid}.dental-surface-option{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:8px 10px;display:flex}@media (max-width:1180px){.questionnaire-conditions-grid,.dental-chart-layout{grid-template-columns:1fr}.dental-chart-grid{order:1}.dental-tooth-details{order:2}}@media (max-width:820px){.dental-chart-grid{margin-inline:-8px;padding:12px}.dental-jaw{min-width:650px}.dental-jaw.primary-row{min-width:410px}.dental-tooth{grid-template-rows:16px 62px;min-height:82px}}@media print{.sidebar,.topbar,.dental-chart-actions,.dental-chart-mode-row,.calendar-modal-actions,.dental-plan-form-actions{display:none!important}}.success-text{color:#16794f;margin:0;font-weight:700}.actions-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.permission-role-select{min-width:min(100%,280px)}.permission-matrix-wrap{border:1px solid var(--border);border-radius:6px;width:100%;overflow-x:auto}.permission-matrix{border-collapse:collapse;background:var(--surface);width:100%;min-width:760px}.permission-matrix th,.permission-matrix td{border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;padding:10px 12px}.permission-matrix th:first-child{z-index:1;background:var(--surface);text-align:left;min-width:170px;position:sticky;left:0}.permission-matrix thead th{background:var(--surface-alt);font-size:13px}.permission-matrix input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.public-portal{color:#172334;background:#eef3f4;min-height:100vh;padding:clamp(24px,5vw,64px) 16px}.public-shell{background:#fff;border:1px solid #d5e0e2;border-radius:8px;width:min(920px,100%);margin:0 auto;padding:clamp(20px,4vw,44px)}.public-result{text-align:center;width:min(620px,100%)}.public-clinic-head,.page-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.public-clinic-head{justify-content:flex-start}.public-clinic-head h1,.public-result h1,.page-title-row h1{margin:2px 0 0}.public-brand-mark{color:#fff;background:#287f88;border-radius:8px;flex:none;place-items:center;width:48px;height:48px;font-weight:800;display:inline-grid}.public-clinic-logo{object-fit:contain;width:56px;height:56px}.public-kicker,.eyebrow{color:#287f88;text-transform:uppercase;margin:0;font-size:13px;font-weight:800}.public-intro,.page-title-row p,.section-head p{color:var(--text-soft)}.public-moderation-note{background:#fff8e8;border-left:4px solid #c28319;gap:4px;margin:24px 0;padding:14px 16px;display:grid}.public-booking-form,.public-form-section,.online-settings{gap:18px;display:grid}.public-form-section{border-top:1px solid #dbe4e6;padding-top:22px}.public-form-section h2{margin:0;font-size:20px}.public-form-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.public-booking-form label,.public-booking-form label>span{gap:7px;font-size:14px;font-weight:700;display:grid}.public-booking-form input,.public-booking-form select,.public-booking-form textarea,.online-admin-page select{color:#172334;width:100%;font:inherit;background:#fff;border:1px solid #cbd9dc;border-radius:6px;padding:10px 12px}.public-slots{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.public-slots button,.segmented-control button,.weekday-picker span{color:#234052;cursor:pointer;background:#fff;border:1px solid #cbd9dc;border-radius:6px;min-height:40px;font-weight:700}.public-slots button.active,.segmented-control button.active{color:#14636b;background:#e5f3f4;border-color:#287f88}.public-check{align-items:flex-start;gap:9px!important;font-weight:500!important;display:flex!important}.public-check input{accent-color:#287f88;flex:none;width:18px;height:18px}.public-condition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;display:grid}.public-submit-row,.moderation-actions{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.public-text-button{color:#14636b;cursor:pointer;background:0 0;border:0;text-decoration:underline}.public-primary-link{margin-top:12px;text-decoration:none;display:inline-flex}.public-error,.public-note{text-align:left;border-radius:6px;padding:12px 14px}.public-error{color:#9b2634;background:#fff0f1}.public-note{color:#284952;background:#eef6f7}.public-status-details{text-align:left;gap:0;margin:24px 0;display:grid}.public-status-details div{border-bottom:1px solid #dbe4e6;grid-template-columns:minmax(140px,1fr) 2fr;gap:16px;padding:12px 0;display:grid}.public-status-details dt{color:#657985}.public-status-details dd{margin:0;font-weight:700}.public-footer{color:#657985;border-top:1px solid #dbe4e6;justify-content:space-between;gap:16px;margin-top:28px;padding-top:18px;display:flex}.online-admin-page{gap:18px;display:grid}.segmented-control{flex-wrap:wrap;gap:6px;display:flex}.segmented-control button{padding:8px 14px}.data-imports-page{gap:18px;display:grid}.import-upload-band{justify-content:space-between;align-items:center;gap:18px;display:flex}.import-upload-band h2,.import-upload-band p,.import-review h2{margin:0}.import-upload-band p,.import-review .section-head p{color:var(--text-soft)}.import-file-button{cursor:pointer}.import-summary{grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;margin:18px 0 24px;display:grid}.import-counter{background:var(--surface-alt);border-left:3px solid #8aa0a8;gap:2px;padding:12px;display:grid}.import-counter strong{font-size:22px}.import-counter.ready,.import-counter.imported{border-color:#318b65}.import-counter.warning{border-color:#c28319}.import-counter.error,.import-counter.skipped{border-color:#c74b58}.import-counter span{color:var(--text-soft);font-size:13px}.import-mapping{border-top:1px solid var(--border);padding-top:20px}.import-policy{max-width:420px;margin:16px 0}.import-table-wrap table{min-width:880px}.import-table-wrap th:first-child{width:76px}.import-table-wrap th:nth-child(2){width:130px}.import-row-data{gap:4px;margin:0;display:grid}.import-row-data div{grid-template-columns:minmax(110px,.7fr) minmax(160px,1.3fr);gap:8px;display:grid}.import-row-data dt{color:var(--text-soft)}.import-row-data dd{overflow-wrap:anywhere;margin:0}.warning-text{color:#8a5b08}.import-history{display:grid}.import-history button{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(220px,1fr) 130px 60px;align-items:center;gap:16px;padding:12px 4px;display:grid}.import-history button:hover{background:var(--surface-alt)}.import-history button>span:first-child{gap:3px;display:grid}.import-history small{color:var(--text-soft)}@media (max-width:1100px){.import-summary{grid-template-columns:repeat(3,minmax(100px,1fr))}}@media (max-width:760px){.import-upload-band{flex-direction:column;align-items:stretch}.import-file-button{justify-content:center}.import-summary{grid-template-columns:repeat(2,minmax(100px,1fr))}.import-history button{grid-template-columns:1fr auto}.import-history button>span:last-child{display:none}}.billing-panel{border-top:1px solid var(--border);gap:18px;margin-top:24px;padding-top:24px;display:grid}.billing-subscription-row{grid-template-columns:repeat(2,minmax(180px,1fr)) auto auto;align-items:end;gap:12px;display:grid}.billing-catalog{border-top:1px solid var(--border);gap:0;padding-top:18px;display:grid}.billing-plan-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(260px,1fr) 160px 120px auto;align-items:end;gap:14px;padding:12px 0;display:grid}.billing-plan-row>div:first-child{gap:4px;display:grid}.billing-plan-row small{color:var(--text-soft)}@media (max-width:1000px){.billing-subscription-row,.billing-plan-row{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media (max-width:640px){.billing-subscription-row,.billing-plan-row{grid-template-columns:1fr}}.online-admin-layout{grid-template-columns:minmax(380px,.9fr) minmax(440px,1.1fr);align-items:start;gap:18px;display:grid}.online-request-list{display:grid}.online-request-row{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(130px,.9fr) minmax(180px,1.3fr) auto;align-items:center;gap:14px;padding:13px 4px;display:grid}.online-request-row.active{background:var(--surface-alt)}.online-request-row.static{cursor:default}.online-request-row span{gap:3px;min-width:0;display:grid}.online-request-row small{color:var(--text-soft)}.status-pill{background:#eef1f3;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:800}.status-pill.pending{color:#835b0c;background:#fff3d6}.status-pill.confirmed{color:#177044;background:#e7f6ed}.status-pill.rejected{color:#9b2634;background:#ffeaec}.online-review-panel{position:sticky;top:18px}.empty-selection{text-align:center;color:var(--text-soft);padding:28px 0}.moderation-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.moderation-comparison div{border:1px solid var(--border);border-radius:6px;gap:4px;padding:12px;display:grid}.moderation-comparison span{color:var(--text-soft);font-size:13px}.rejection-field{flex:240px}.questionnaire-public-link{border:1px solid var(--border);background:var(--surface-alt);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:10px;padding:12px;display:grid}.settings-toggle-list,.weekday-picker{flex-wrap:wrap;gap:10px;display:flex}.settings-toggle-list label{align-items:center;gap:8px;min-height:40px;display:flex}.settings-toggle-list input{width:18px;height:18px;accent-color:var(--primary)}.weekday-picker label{position:relative}.weekday-picker input{opacity:0;pointer-events:none;position:absolute}.weekday-picker span{place-items:center;min-width:42px;padding:8px;display:grid}.weekday-picker input:checked+span{border-color:var(--primary);color:#14636b;background:#e5f3f4}@media (max-width:1050px){.online-admin-layout{grid-template-columns:1fr}.online-review-panel{position:static}}@media (max-width:720px){.public-portal{padding:0}.public-shell{border:0;border-radius:0;min-height:100vh}.public-form-grid,.form-grid,.public-condition-grid,.moderation-comparison{grid-template-columns:1fr}.public-status-details div{grid-template-columns:1fr;gap:4px}.public-footer,.page-title-row{flex-direction:column;align-items:flex-start}.questionnaire-public-link{grid-template-columns:1fr}.online-request-row{grid-template-columns:1fr auto}.online-request-row>span:nth-child(2){grid-area:2/1/auto/-1}}.notifications-page{gap:18px;display:grid}.notification-channel-layout,.notification-template-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);align-items:start;gap:18px;display:grid}.notification-filters{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.notification-filters .field{min-width:190px}.notification-list{display:grid}.notification-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(200px,.75fr) minmax(280px,1.5fr) minmax(160px,.7fr) auto auto;align-items:center;gap:14px;padding:14px 0;display:grid}.notification-row>div:first-child{gap:5px;display:grid}.notification-row p{margin:0;line-height:1.45}.notification-row small,.notification-row-meta{color:var(--text-soft);font-size:12px}.notification-row-meta{gap:4px;display:grid}.status-pill.scheduled,.status-pill.queued{color:#835b0c;background:#fff3d6}.status-pill.delivered,.status-pill.sent{color:#177044;background:#e7f6ed}.status-pill.failed,.status-pill.cancelled{color:#9b2634;background:#ffeaec}.channel-settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.channel-settings fieldset{border:1px solid var(--border);border-radius:6px;gap:12px;margin:0;padding:14px;display:grid}.channel-settings legend{padding:0 5px;font-weight:800}.toggle-line{align-items:center;gap:9px;min-height:38px;display:flex}.toggle-line input{width:18px;height:18px;accent-color:var(--primary)}.notification-template-list{gap:2px;max-height:70vh;display:grid;overflow:auto}.notification-template-list button{text-align:left;color:var(--text);background:0 0;border:0;border-left:3px solid #0000;gap:3px;padding:11px;display:grid}.notification-template-list button:hover,.notification-template-list button.active{background:var(--surface-alt);border-left-color:var(--primary)}.notification-template-list small{color:var(--text-soft)}.patient-consent-panel{border-top:1px solid var(--border);gap:14px;padding-top:18px;display:grid}.patient-consent-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.patient-consent-groups fieldset{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:12px;margin:0;padding:12px;display:flex}.patient-consent-groups legend{padding:0 5px;font-weight:800}@media (max-width:1100px){.notification-row{grid-template-columns:minmax(180px,.8fr) minmax(240px,1.4fr) minmax(150px,.7fr)}.notification-row .button{justify-self:start}}@media (max-width:850px){.notification-channel-layout,.notification-template-layout,.channel-settings,.notification-row,.patient-consent-groups{grid-template-columns:1fr}}:root{--bg:#f4f6f7;--surface:#fff;--surface-alt:#f8fafb;--surface-soft:#edf4f4;--text:#1c2835;--muted:#647484;--border:#dce3e6;--border-strong:#c9d3d8;--primary:#12818a;--primary-dark:#0d6870;--primary-soft:#e5f3f3;--success:#248a5b;--success-soft:#e9f6ef;--warning:#c88b18;--warning-soft:#fff5dc;--slate:#667783;--slate-soft:#eef2f4;--danger:#d54f5b;--danger-soft:#fff0f1;--sidebar:#2d424a;--sidebar-hover:#39515a;--scrollbar-track:#e8eef0;--scrollbar-thumb:#8da8ad;--scrollbar-thumb-hover:#537f85;--sidebar-scrollbar-track:#354b53;--sidebar-scrollbar-thumb:#91b4b7;--sidebar-scrollbar-thumb-hover:#b5d4d5;--shadow:0 1px 2px #18272e0f}.auth-shell{background:var(--bg)}.card{box-shadow:var(--shadow);border-radius:6px}.dashboard-shell{background:var(--bg);grid-template-columns:252px minmax(0,1fr);column-gap:0}.dashboard-shell:has(.sidebar.collapsed){grid-template-columns:72px minmax(0,1fr)}.sidebar{background:var(--sidebar);color:#d9e3e7;border-right-color:#3a5058;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:18px;padding:18px 14px;overflow-y:auto}.sidebar-head{border-bottom-color:#486068;padding-bottom:14px}.brand-mark{background:var(--primary);border-radius:6px;overflow:hidden}.brand-mark img{object-fit:contain;background:#fff;width:100%;height:100%}.brand-copy strong{color:#fff;white-space:nowrap;font-size:15px}.brand-copy small,.sidebar-foot p{color:#b1c0c5;font-size:12px}.sidebar-toggle{color:#d1dcdf;background:0 0;border-color:#60757d;border-radius:6px}.sidebar-toggle:hover{background:var(--sidebar-hover);color:#fff;border-color:#5b737d}.sidebar-nav{scrollbar-color:var(--sidebar-scrollbar-thumb) var(--sidebar-scrollbar-track);align-content:start;gap:8px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar-track{background:var(--sidebar-scrollbar-track)}.sidebar-nav::-webkit-scrollbar-thumb{border-color:var(--sidebar-scrollbar-track);background:var(--sidebar-scrollbar-thumb)}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--sidebar-scrollbar-thumb-hover)}.sidebar-group{gap:2px;display:grid}.sidebar-group-label{color:#9eb0b6;text-transform:uppercase;margin:7px 10px 1px;font-size:10px;font-weight:800}.sidebar-link{color:#e0e8ea;border-radius:5px;min-height:40px;padding:0 11px;font-size:13px}.sidebar-link:hover{background:var(--sidebar-hover);color:#fff}.sidebar-link.active{color:#0d6870;background:#dff3f3}.sidebar-foot{border-top-color:#486068}.sidebar-session{border-top:1px solid #486068;gap:12px;padding-top:14px;display:grid}.sidebar-session-copy{color:#b1c0c5;margin:0;font-size:12px;line-height:1.45}.sidebar-logout{color:#e0e8ea;cursor:pointer;width:100%;min-height:42px;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:12px;padding:0 11px;font-size:13px;font-weight:700;transition:background-color .16s,border-color .16s,color .16s;display:flex}.sidebar-logout:hover{color:#fff;background:#e1757c1f;border-color:#e1757c6b}.sidebar-logout:disabled{cursor:wait;opacity:.65}.sidebar.collapsed{padding-inline:10px}.sidebar.collapsed .sidebar-group-label,.sidebar.collapsed .sidebar-link-label,.sidebar.collapsed .brand-copy,.sidebar.collapsed .sidebar-foot,.sidebar.collapsed .sidebar-session-copy{display:none}.sidebar.collapsed .sidebar-group{gap:4px}.sidebar.collapsed .sidebar-session{justify-items:center}.sidebar.collapsed .sidebar-logout{justify-content:center;width:44px;min-height:44px;padding:0}.sidebar.collapsed .sidebar-link{width:44px;min-height:44px}.topbar{border-bottom:1px solid var(--border);min-height:68px;color:var(--text);background:#fff;padding:12px 24px}.topbar-label,.topbar-date span,.topbar-user-copy span{color:var(--muted)}.topbar-brand-context{align-items:center;gap:14px;min-width:0;display:flex}.topbar-clinic-logo{width:48px;height:48px;color:var(--primary-dark);background:#fff;border-radius:6px;flex:0 0 48px;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:inline-flex;overflow:hidden}.topbar-clinic-logo img{object-fit:contain;width:100%;height:100%}.topbar-label{font-size:24px;font-style:italic;line-height:1.2}.topbar-copy strong,.topbar-date strong,.topbar-user-copy strong{font-size:15px}.user-avatar{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #c8e5e5;border-radius:6px}.content{padding:24px}.clinic-settings-layout{grid-template-columns:minmax(210px,.32fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.clinic-logo-editor{align-content:start;gap:14px;display:grid}.clinic-logo-editor p{color:var(--muted);margin:5px 0 0;font-size:13px}.clinic-logo-preview{aspect-ratio:16/9;border:1px solid var(--border);background:var(--surface-alt);border-radius:6px;place-items:center;width:min(100%,240px);display:grid;overflow:hidden}.clinic-logo-preview img{object-fit:contain;width:100%;height:100%;padding:12px}.clinic-logo-preview span{color:var(--primary-dark);font-size:32px;font-weight:800}.clinic-logo-actions,.clinic-details-form{gap:12px;display:grid}.clinic-logo-actions input[type=file]{width:100%;color:var(--muted);font-size:12px}@media (max-width:1024px){.dashboard-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding-inline:10px}.sidebar .sidebar-head-row{flex-direction:column;align-items:center}.sidebar .brand{justify-content:center}.sidebar .brand-copy,.sidebar .sidebar-link-label,.sidebar .sidebar-group-label,.sidebar .sidebar-foot,.sidebar .sidebar-session-copy{display:none}.sidebar .sidebar-group{gap:4px}.sidebar .sidebar-link{justify-content:center;width:44px;min-height:44px;padding:0}.sidebar .sidebar-session{justify-items:center}.sidebar .sidebar-logout{justify-content:center;width:44px;min-height:44px;padding:0}.topbar-date{display:none}.clinic-settings-layout{grid-template-columns:1fr}}@media (min-width:721px){.sidebar,.sidebar.collapsed{align-self:start;height:100vh;min-height:0;max-height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-nav{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;overflow-y:auto}}@media (max-width:720px){:is(.dashboard-shell,.dashboard-shell:has(.sidebar.collapsed)){grid-template-columns:1fr;padding-bottom:64px}.sidebar,.sidebar.collapsed{z-index:50;border-top:1px solid #486068;border-right:0;align-items:center;gap:4px;width:100%;height:64px;min-height:0;padding:8px;display:flex;position:fixed;inset:auto 0 0;overflow:auto hidden}.sidebar-head,.sidebar-group-label,.sidebar-foot,.sidebar-session-copy{display:none}.sidebar-nav,.sidebar-group{gap:4px;width:max-content;display:flex}.sidebar-nav{scrollbar-width:none;flex:none;overflow:visible}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-session,.sidebar.collapsed .sidebar-session{border:0;flex:none;padding:0;display:flex}.sidebar-logout,.sidebar.collapsed .sidebar-logout,.sidebar-link,.sidebar.collapsed .sidebar-link{justify-content:center;width:48px;min-height:48px;padding:0}.sidebar-link-label{display:none}.topbar{min-height:60px;padding:10px 16px}.topbar-user-copy{display:none}.content{padding:16px}}
