:root{--bg:#f5f8fb;--panel:#ffffff;--ink:#172033;--muted:#667085;--line:#e4eaf1;--nav:#0b2239;--nav2:#123a5c;--accent:#1687d9;--soft:#eaf5fd;--green:#14865d;--amber:#b7791f;--red:#c2414b;--radius:12px;--shadow:0 7px 24px rgba(20,42,68,.07)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:226px 1fr}.sidebar{background:linear-gradient(180deg,var(--nav),#0d2b46);color:#d9e6f2;padding:18px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 20px}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#1aa5ef,#0b66b1);display:grid;place-items:center;color:#fff;font-weight:800}.brand-title{font-size:14px;font-weight:760;color:#fff}.brand-sub{font-size:10px;color:#a9bfd2;margin-top:1px}.nav{display:grid;grid-gap:3px;gap:3px}.nav a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;color:#c9d9e8;font-size:13px}.nav a.active,.nav a:hover{background:rgba(255,255,255,.09);color:#fff}.nav-sep{height:1px;background:rgba(255,255,255,.08);margin:13px 7px}.side-user{position:absolute;bottom:16px;left:14px;right:14px;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:10px}.side-user strong{font-size:12px;color:#fff}.side-user div{font-size:10px;color:#9eb4c7;margin-top:2px}.main{min-width:0}.topbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.top-search{width:360px;position:relative}.top-search input{width:100%;height:34px;border:1px solid var(--line);border-radius:9px;padding:0 12px 0 34px;background:#f9fbfd;outline:none;font-size:12px}.top-search span{position:absolute;left:11px;top:8px;color:#8a98a8}.top-actions{display:flex;align-items:center;gap:8px}.role-pill{font-size:10px;font-weight:700;padding:5px 8px;border-radius:999px;background:var(--soft);color:#126fab}.content{padding:22px 24px 34px;max-width:1600px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-title{font-size:20px;line-height:1.2;font-weight:760;letter-spacing:-.02em;margin:0}.page-sub{font-size:11px;color:var(--muted);margin-top:5px}.btn{height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;padding:0 11px;font-size:11px;font-weight:650;color:#344054;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:#f8fafc}.btn-primary{background:var(--accent);border-color:var(--accent);color:white}.btn-danger{background:#fff0f1;border-color:#f4c7cc;color:#a62f39}.grid{display:grid;grid-gap:14px;gap:14px}.metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;box-shadow:var(--shadow)}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:10px;font-weight:700;color:#667085;text-transform:uppercase;letter-spacing:.045em}.metric-icon{width:28px;height:28px;border-radius:8px;background:var(--soft);color:#1179bd;display:grid;place-items:center}.metric-value{font-size:22px;font-weight:780;margin-top:8px;letter-spacing:-.025em}.metric-foot{font-size:10px;color:#7d8996;margin-top:4px}.metric-foot.good{color:var(--green)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{min-height:46px;padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title{font-size:12px;font-weight:740}.panel-sub{font-size:10px;color:var(--muted);margin-top:2px}.panel-body{padding:14px}.dashboard-mid{grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);margin-bottom:14px}.chart-placeholder{height:250px;display:flex;align-items:end;gap:12px;padding:16px 4px 2px}.bar-wrap{flex:1 1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar{width:64%;max-width:34px;background:linear-gradient(#43a8e7,#1687d9);border-radius:6px 6px 2px 2px;min-height:12px}.bar-lbl{font-size:9px;color:#788594}.service-bars{display:grid;grid-gap:12px;gap:12px}.service-row{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.service-name{font-size:11px}.service-val{font-size:10px;color:#667085}.track{grid-column:1/-1;height:6px;background:#eef3f7;overflow:hidden}.fill,.track{border-radius:999px}.fill{height:100%;background:#1687d9}.two-col{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr)}table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:9px 10px;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#738090;background:#f8fafc;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:10px;border-bottom:1px solid #edf1f5;font-size:11px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#fbfdff}.money{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:700}.badge.green{background:#eaf8f1;color:#157451}.badge.amber{background:#fff6e7;color:#9a6516}.badge.red{background:#fff0f1;color:#ae3540}.badge.blue{background:#eaf5fd;color:#126fa9}.patient{display:flex;align-items:center;gap:8px}.avatar{width:28px;height:28px;border-radius:50%;background:#e9f2f9;display:grid;place-items:center;font-size:10px;font-weight:800;color:#2d6f9f}.reminder,.reminder-list{display:grid}.reminder{grid-template-columns:34px 1fr auto;grid-gap:9px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.reminder:last-child{border-bottom:0}.datebox{width:40px;height:48px;border-radius:8px;background:#f3f7fb;text-align:center;padding-top:4px}.datebox b{display:block;font-size:11px}.datebox span{text-transform:uppercase}.datebox small,.datebox span{display:block;font-size:8px;color:#7b8795}.datebox small{line-height:1.15}.reminder strong{font-size:10px}.reminder p{font-size:9px;color:#7b8795;margin:2px 0 0}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:11px;gap:11px}.field label{display:block;font-weight:700;color:#657285;margin-bottom:5px;text-transform:uppercase;letter-spacing:.035em}.field input,.field select,.field textarea{width:100%;border:1px solid #dce4ec;border-radius:8px;background:#fff;min-height:34px;padding:7px 9px;font-size:11px;outline:none}.field textarea{min-height:72px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7ebde6;box-shadow:0 0 0 3px rgba(22,135,217,.08)}.section-title{font-size:11px;font-weight:760;margin:0 0 10px}.stack{display:grid;grid-gap:14px;gap:14px}.compact-info{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:10px;color:#667085}.empty{padding:28px;text-align:center;color:#7d8996;font-size:11px}.split-total{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-top:12px}.split-box{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:9px}.split-box span{font-size:8px;color:#7a8796;text-transform:uppercase}.split-box strong{display:block;font-size:13px;margin-top:3px}.toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.toolbar input,.toolbar select{height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 9px;font-size:10px}.patient-summary{display:grid;grid-template-columns:1.2fr repeat(4,.55fr);grid-gap:10px;gap:10px}.profile-card{padding:14px}.profile-name{font-size:16px;font-weight:760}.profile-meta{font-size:10px;color:#6f7c8c;margin-top:5px}.mini-kpi{padding:12px;border-left:1px solid var(--line)}.mini-kpi span{font-size:8px;text-transform:uppercase;color:#7a8796}.mini-kpi strong{display:block;margin-top:5px;font-size:16px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);padding:0 12px}.tab{padding:9px 10px;font-size:10px;color:#667085;border-bottom:2px solid transparent}.tab.active{color:#147ab7;border-bottom-color:#1687d9;font-weight:700}.notice{padding:9px 11px;background:#f0f8fe;border:1px solid #d4ebfa;color:#366b8c;border-radius:8px;font-size:10px}.footer-note{font-size:9px;color:#8a96a4;margin-top:16px}@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.dashboard-mid,.two-col{grid-template-columns:1fr}.field-grid{grid-template-columns:repeat(2,1fr)}.patient-summary{grid-template-columns:1fr 1fr}.profile-card{grid-column:1/-1}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.content{padding:16px}.topbar{padding:0 14px}.top-search{width:55vw}.metrics{grid-template-columns:1fr 1fr}.field-grid{grid-template-columns:1fr}}.logo-wrap{width:74px;height:44px;display:flex;align-items:center;overflow:hidden}.logo-wrap img{width:74px;height:auto;object-fit:contain}.brand{gap:9px}.brand-title{font-size:12px}.brand-sub{font-size:9px}.status-msg{font-size:10px;padding:8px 10px;border-radius:8px;background:#f7fafc;border:1px solid var(--line)}.status-msg.error{background:#fff2f3;border-color:#f0c9cd;color:#a9343e}.status-msg.ok{background:#eefaf5;border-color:#cdebdc;color:#126948}.click-row{cursor:pointer}.click-row:hover td{background:#f4f9fd!important}.modal-backdrop{position:fixed;inset:0;background:rgba(8,25,43,.38);display:grid;place-items:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(8,25,43,.25);width:min(760px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line)}.modal-head{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:16px}.link-btn{background:none;border:0;padding:0;color:#147ab7;font-size:11px;font-weight:700;cursor:pointer}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.muted{color:var(--muted)}.danger-text{color:var(--red)}.success-text{color:var(--green)}.service-card{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fbfdff}.service-card+.service-card{margin-top:9px}.service-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.service-card-title{font-size:11px;font-weight:760}.service-card-sub{font-size:9px;color:#7a8795;margin-top:2px}.inline-check{display:flex;align-items:center;gap:6px;font-size:10px}.inline-check input{width:auto}.toast{position:fixed;right:22px;bottom:22px;background:#102c46;color:#fff;padding:10px 13px;border-radius:9px;font-size:11px;box-shadow:0 12px 35px rgba(10,34,56,.22);z-index:80}.logo-faded{opacity:.92}.patient-lookup{position:relative}.lookup-menu{position:absolute;z-index:40;top:100%;left:0;right:0;max-height:230px;overflow:auto;background:#fff;border:1px solid #dfe6ec;border-radius:8px;box-shadow:0 12px 28px rgba(15,40,60,.12);padding:4px;margin-top:3px}.lookup-option{width:100%;border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;font:inherit;color:inherit}.lookup-option:hover{background:#f2f8fa}.lookup-option strong{font-size:10px}.lookup-empty,.lookup-option span{font-size:9px;color:#7d8996}.lookup-empty{padding:9px}.mini-kpi-danger{background:#fff7f7}.mini-kpi-danger span{color:#a9343e}.mini-kpi-danger strong{color:#c62828}.table-scroll{width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.table-scroll .table{min-width:760px}.sticky-action{position:-webkit-sticky;position:sticky;right:0;background:#fff;box-shadow:-6px 0 10px rgba(18,45,68,.035);z-index:2}.table tr:hover .sticky-action{background:#fbfdff}.modal-wide{width:min(980px,calc(100vw - 36px))}.allocation-chip{display:inline-flex;margin:2px 4px 2px 0;padding:3px 7px;border-radius:999px;background:#eef6fb;color:#286889;font-size:9px;font-weight:650;white-space:nowrap}.allocation-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:3px}.allocation-table{border:1px solid var(--line);border-radius:9px}.allocation-table .table{min-width:720px}.allocation-input{width:105px;height:30px;border:1px solid #dce4ec;border-radius:7px;padding:0 8px;font-size:10px}.allocation-total{display:flex;justify-content:flex-end;align-items:center;gap:7px;font-size:10px;color:#667085}.allocation-total strong{font-size:13px;color:#1f3548}.allocation-total.warn strong{color:var(--red)}.service-detail{margin-top:9px;border-top:1px solid #e9eef3}.service-detail>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;cursor:pointer}.service-detail>summary::-webkit-details-marker{display:none}.service-detail>summary strong{font-size:11px}.service-code{font-size:9px;margin-left:7px}.service-finance-summary{display:flex;align-items:center;gap:9px;font-size:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.service-finance-summary .chev{font-size:18px;line-height:1;color:#8a98a8;transition:transform .18s}.service-detail[open] .chev{transform:rotate(90deg)}.service-detail-body{padding:2px 0 10px}.service-splits{grid-template-columns:repeat(4,minmax(0,1fr));margin:3px 0 10px}.service-splits .split-box strong{font-size:11px}.subsection{margin-top:10px}.mini-kpi-danger{background:#fff4f4}.mini-kpi-danger strong{color:#b4232f}.mini-kpi-danger span{color:#a93c45}@media(max-width:760px){.modal-backdrop{padding:8px}.modal,.modal-wide{width:100%;max-height:96vh}.service-splits{grid-template-columns:1fr 1fr}.sticky-action{position:static}.table-scroll .table{min-width:700px}}.doctor-search{position:relative}.search-menu{position:absolute;z-index:80;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #dce4ec;border-radius:9px;box-shadow:0 10px 28px rgba(27,49,64,.12);max-height:230px;overflow:auto;padding:4px}.search-option{width:100%;border:0;background:#fff;padding:8px 9px;border-radius:7px;text-align:left;display:flex;justify-content:space-between;align-items:center;font:inherit;color:#263943;cursor:pointer}.search-option:hover{background:#f2f7f8}.search-option strong{font-size:11px}.search-empty,.search-option span{font-size:9px;color:#84919b}.search-empty{padding:10px}.sortable-th{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sortable-th:hover{background:#eef4f8!important;color:#344a5e}.sort-indicator{display:inline-block;margin-left:5px;font-size:10px;color:#93a1ae}.service-lookup-menu{max-height:280px}.visit-payment-box{border:1px solid #d9e9f4;background:#f7fbfe;border-radius:10px;padding:12px}.visit-payment-row{display:grid;grid-template-columns:180px minmax(200px,280px) 1fr;grid-gap:10px;gap:10px;align-items:end}.visit-payment-row .badge{min-height:30px;align-items:center;justify-content:center}.report-filter{overflow:visible}.report-filter .field{min-width:160px}@media(max-width:760px){.visit-payment-row{grid-template-columns:1fr}.report-filter .toolbar{align-items:stretch}.report-filter .field{width:100%}}.action-buttons,.modal-actions,.page-head .toolbar,.panel-head .toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.btn{min-width:72px;justify-content:center;white-space:nowrap;line-height:1}.btn.btn-danger,.btn.btn-primary{font-size:11px}.action-buttons .btn{min-width:58px}.modal{overflow:hidden;display:flex;flex-direction:column}.modal-body{overflow:auto}.modal-head{flex:0 0 auto;background:#fff}.modal-actions{justify-content:flex-end;padding-top:2px}.modal-actions .btn{min-width:92px}.module-panel{overflow:hidden}.module-searchbar input{width:min(320px,55vw)}.module-table td,.module-table th{vertical-align:middle}.field-span-all{grid-column:1/-1}.required-mark{color:var(--red);font-weight:800}.status-msg+.grid,.status-msg+.panel,.status-msg+.profile-summary-panel{margin-top:12px}.profile-grid{margin-top:14px}.table-note{font-size:9px;margin-top:3px}.lookup-menu,.search-menu{z-index:120}.field input,.field select,.field textarea,.toolbar input,.toolbar select{font-size:11px}.field label{font-size:9px}.modal-actions .btn,.modal-head .btn,.page-head .btn,.panel-head .btn,.sticky-action .btn{font-size:11px;height:32px}.sticky-action .action-buttons{justify-content:flex-end}@media(max-width:760px){.module-searchbar,.module-searchbar input{width:100%}.modal-actions{position:-webkit-sticky;position:sticky;bottom:0;background:#fff;padding-top:10px}}.report-filter-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.report-filter-row .field{min-width:170px;margin:0}.report-filter-row .field input{height:32px}.report-filter-actions{display:flex;align-items:center;gap:7px;height:32px}.report-filter-actions .btn{height:32px}.dashboard-period-select{height:28px!important;min-height:28px!important;padding-top:0!important;padding-bottom:0!important;font-size:10px!important}.settings-service-table{min-width:1120px!important}.service-offer-row td{background:#fffafa}.service-offer-row:hover td{background:#fff4f4!important}.service-note-cell{max-width:240px;white-space:normal;line-height:1.35}.sub-form{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fbfdff}.sub-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.package-item-list{display:grid;grid-gap:8px;gap:8px}.package-item-row{display:grid;grid-template-columns:minmax(260px,1fr) 170px 82px;grid-gap:8px;gap:8px;align-items:end}.package-item-row .field{margin:0}.package-remove{height:34px}.field-help{font-size:8px;color:var(--muted);margin-top:4px}.settings-check-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.offer-check{color:#b4232f;font-weight:700}.payment-confirm-modal{width:min(680px,calc(100vw - 36px))}.payment-confirm-summary{display:grid;grid-template-columns:1fr 1fr;grid-gap:9px;gap:9px}.payment-confirm-summary>div{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fafc}.payment-confirm-summary span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase}.payment-confirm-summary strong{display:block;font-size:11px;margin-top:3px}.payment-confirm-summary small{display:block;font-size:9px;color:var(--muted);margin-top:2px}@media(max-width:760px){.report-filter-row{align-items:stretch}.report-filter-row .field{width:100%;min-width:0}.report-filter-actions{height:auto}.package-item-row,.payment-confirm-summary{grid-template-columns:1fr}.dashboard-period-select{height:28px!important}}.service-offer-badge{margin-left:6px;vertical-align:middle;font-size:8px;padding:2px 6px}.lookup-option strong{display:flex;align-items:center;gap:4px;min-width:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 15%,#eef8ff 0,transparent 34%),linear-gradient(145deg,#f7fafc,#edf4f9)}.login-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(16,44,70,.12);padding:26px}.login-brand{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.login-brand img{width:118px;height:auto;object-fit:contain}.login-brand h1{font-size:18px;margin:0;font-weight:780;letter-spacing:-.02em}.login-brand p{font-size:10px;color:var(--muted);margin:4px 0 0}.login-form{display:grid;grid-gap:12px;gap:12px}.login-button{width:100%;height:34px;margin-top:2px}.login-demo{margin-top:16px;padding:10px 12px;border-radius:9px;background:#f7fafc;border:1px solid var(--line);display:grid;grid-gap:3px;gap:3px}.login-demo strong{font-size:10px}.login-demo span{font-size:9px;color:var(--muted)}.top-user{display:grid;text-align:right;line-height:1.15}.top-user strong{font-size:10px}.top-user span{font-size:8px;color:var(--muted);margin-top:2px}.top-logout{min-width:58px;height:28px;font-size:9px}.top-actions .avatar{font-size:9px;font-weight:760}