:root{--bg:#f4f6f8;--panel:#fff;--ink:#14212b;--muted:#5d6b78;--line:#dde3e9;--brand:#8917a8;--brand-ink:#fff;--brand-soft:#f4e8f8;--teal:#23a594;--teal-soft:#e3f7f4;--ok:#157f3b;--ok-soft:#e4f5ea;--warn:#9a5b00;--warn-soft:#fff4dc;--bad:#b42318;--bad-soft:#fdeceb;--info:#1f5fbf;--info-soft:#e8f0fc;--radius:10px;--tap:44px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0;font-size:1.45rem}h2{margin:1.4rem 0 .6rem;font-size:1.1rem}h3{margin:0 0 .6rem;font-size:1rem}button,input,select,textarea{font:inherit;color:inherit}button{min-height:var(--tap);border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;padding:0 14px}button:hover{border-color:#b7c2cc}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);font-weight:600}button.danger{background:var(--bad);color:#fff;border-color:var(--bad)}button.ghost{background:0 0;border-color:#0000}button.small{min-height:34px;padding:0 10px;font-size:.85rem}button.block{width:100%;margin:8px 0;display:block}input,select,textarea{min-height:var(--tap);border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:8px 10px}textarea{min-height:80px}input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--brand)}input[type=color]{width:54px;padding:2px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:16px}.card.narrow{width:min(460px,100%)}.muted{color:var(--muted)}.small{font-size:.85rem}.hint{color:var(--muted);font-size:.88rem}.bad-text{color:var(--bad)}.warn-text{color:var(--warn)}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.end{flex-wrap:wrap;justify-content:flex-end;margin-top:12px}.row.between{flex-wrap:wrap;justify-content:space-between}.cols{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.cols>.card{flex:320px}.grow{flex:2 420px}.grid2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px;display:grid}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field-label{font-size:.9rem;font-weight:600}.req{color:var(--bad)}.check{align-items:center;gap:10px;min-height:34px;margin:8px 0;display:flex}.empty{text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius);padding:24px}.list{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.list-item{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 12px;display:flex}.search{margin-bottom:12px}.warnbox{background:var(--warn-soft);border:1px solid #f0d08a;border-radius:8px;margin:8px 0;padding:10px 12px}.alertbox{background:var(--bad-soft);color:var(--bad);border:1px solid #f3b8b3;border-radius:8px;margin-top:6px;padding:6px 10px;font-weight:600}.click{cursor:pointer}.tag{background:#eef2f5;border-radius:6px;padding:3px 8px;font-size:.82rem;display:inline-block}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.bad{background:var(--bad-soft);color:var(--bad);font-weight:600}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.muted{color:var(--muted);background:#eef2f5}.shell{min-height:100vh;display:flex}.side{color:#eadcf0;background:#2b0d36;flex-shrink:0;width:220px;height:100vh;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:16px;display:flex}.brand span{opacity:.7;font-size:.8rem;display:block}.logo{background:var(--brand);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.side nav{flex-direction:column;padding:4px 8px 16px;display:flex}.side nav a{color:inherit;min-height:var(--tap);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.side nav a.active{background:var(--brand);color:#fff;font-weight:600}.ico{text-align:center;width:20px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.top{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:10px;padding:8px 16px;display:flex;position:sticky;top:0}.top .spacer{flex:1}.branch-select{width:auto;max-width:340px;font-weight:600}.who{text-align:right;flex-direction:column;font-size:.85rem;display:flex}.who span{color:var(--muted)}.menu-btn{font-size:1.3rem;display:none}.demo-banner{background:var(--warn-soft);color:var(--warn);border-bottom:1px solid #f0d08a;padding:4px 16px;font-size:.8rem}.content{width:100%;max-width:1400px;padding:16px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f8fafb;font-size:.8rem}table.compact th,table.compact td{padding:6px 8px}.num{text-align:right;white-space:nowrap}tr.struck td{color:var(--muted);text-decoration:line-through}tfoot td{border-bottom:none}.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);border-left:4px solid var(--line);padding:12px 14px}.stat.ok{border-left-color:var(--ok)}.stat.warn{border-left-color:#e0a400}.stat.bad{border-left-color:var(--bad)}.stat-label{color:var(--muted);font-size:.8rem}.stat-value{font-size:1.35rem;font-weight:700}.stat-sub{color:var(--muted);font-size:.8rem}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;cursor:pointer;min-height:var(--tap);border-bottom:3px solid #0000;align-items:center;padding:10px 14px;text-decoration:none;display:flex}.tabs a.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.seg{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button{border:none;border-right:1px solid var(--line);border-radius:0}.seg button:last-child{border-right:none}.seg button.on{background:var(--brand-soft);color:var(--brand);font-weight:700}.seg.vertical{flex-direction:column;width:100%;display:flex}.seg.vertical button{border-right:none;border-bottom:1px solid var(--line);text-align:left}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.toolbar select{width:auto}.modal-bg{z-index:50;background:#0a192373;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:14px;flex-direction:column;width:min(560px,100%);max-height:92vh;display:flex;box-shadow:0 20px 60px #00000040}.modal.wide{width:min(880px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-head h2{margin:0}.modal-body{padding:16px;overflow-y:auto}.toasts{z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#0f2a33;border-radius:10px;padding:12px 16px;box-shadow:0 6px 20px #0003}.toast.error{background:var(--bad)}.patient-head{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:12px;display:flex}.head-stats{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.head-stats div{flex-direction:column;display:flex}.head-stats span{color:var(--muted);font-size:.78rem}.dl{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 12px;display:grid}.dl dt{color:var(--muted)}.dl dd{margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);padding:6px 0}.tl-date{color:var(--muted);margin-right:8px;font-size:.82rem}.tl-tag{background:#eef2f5;border-radius:4px;margin-right:8px;padding:1px 6px;font-size:.75rem}.chart-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));gap:14px;display:grid}.arches{padding-bottom:6px;overflow-x:auto}.arch{justify-content:center;gap:2px;min-width:max-content;display:flex}.arch.split{border-top:2px dashed var(--line);margin-top:10px;padding-top:10px}.tooth{background:0 0;border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;width:36px;min-height:0;padding:2px;display:flex}.tooth svg{width:30px;height:30px}.tooth.sel{border-color:var(--brand);background:var(--brand-soft)}.tooth.planned{background:var(--info-soft)}.tooth.done{background:var(--ok-soft)}.tnum{font-size:.72rem;font-weight:700}.tcodes{min-height:12px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:36px;font-size:.6rem;overflow:hidden}.surf{fill:#fff;stroke:#7d8a96;stroke-width:1.2px}.surf.observed{fill-opacity:.45;stroke-dasharray:2 2;stroke:var(--warn)}.surf.resolved{fill-opacity:.25}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:.8rem;display:flex}.sw{vertical-align:middle;border:1px solid #8894a0;border-radius:3px;width:12px;height:12px;display:inline-block}.sw.confirmed{background:#dc2626}.sw.observed{background:repeating-linear-gradient(45deg,#fbd38d,#fbd38d 2px,#fff 2px 4px);border-style:dashed}.sw.planned{background:var(--info-soft)}.sw.done{background:var(--ok-soft)}.mouth-items{margin-top:8px;font-size:.85rem}.sheet{background:var(--panel);z-index:40;width:min(420px,100%);padding:16px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 40px #0000002e}.palette{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:10px 0;display:grid}.palette button{text-align:left}.palette button.on{border:2px solid var(--brand);background:var(--brand-soft)}.surfaces{margin-bottom:12px}.surfaces button{flex-direction:column;justify-content:center;align-items:center;min-width:54px;display:flex}.findings{padding:0;list-style:none}.findings li{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:8px 0;display:flex}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:14px;display:grid}.card.plan.active{border:2px solid var(--brand)}.muted-card{opacity:.7}.cal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-height:calc(100vh - 200px);display:grid;overflow:auto}.cal-h{border-bottom:1px solid var(--line);z-index:2;background:#f8fafb;padding:8px;font-weight:700;position:sticky;top:0}.cal-t{color:var(--muted);border-bottom:1px solid #edf1f4;padding:4px 6px;font-size:.78rem}.cal-cell{cursor:pointer;border-bottom:1px solid #edf1f4;border-left:1px solid #edf1f4;min-height:48px;padding:2px}.cal-cell:hover{background:#f6fafb}.appt{text-align:left;border-left:4px solid var(--brand);background:var(--brand-soft);flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:0;margin-bottom:2px;padding:6px;font-size:.8rem;display:flex}.appt span{color:var(--muted)}.appt.st-completed{border-left-color:var(--ok);background:var(--ok-soft)}.appt.st-cancelled,.appt.st-no_show{border-left-color:var(--bad);background:var(--bad-soft);opacity:.75}.appt.st-arrived,.appt.st-engaged{border-left-color:var(--info);background:var(--info-soft)}.board{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.lane{border-radius:var(--radius);background:#e9eef2;min-height:200px;padding:10px}.qcard{background:var(--panel);border-left:4px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px;display:flex}.qcard span{color:var(--muted);font-size:.85rem}.qcard.warn{border-left-color:#e0a400}.qcard.bad{border-left-color:var(--bad)}.qcard.info{border-left-color:var(--info)}.checklist{padding:0;list-style:none}.checklist li{background:#f3f5f7;border-radius:6px;margin-bottom:4px;padding:8px 10px}.checklist li.ok{background:var(--ok-soft)}.checklist li.warn{background:var(--warn-soft)}.prio{background:#eef2f5;border-radius:4px;padding:1px 6px;font-size:.72rem;font-weight:700}.prio.p1{background:var(--bad-soft);color:var(--bad)}.prio.p2{background:var(--warn-soft);color:var(--warn)}.report-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:14px;display:grid}@media (width<=900px){.side{z-index:60;transition:transform .2s;position:fixed;transform:translate(-100%)}.shell.menu-open .side{transform:none;box-shadow:0 0 40px #0000004d}.menu-btn{display:inline-flex}.who{display:none}.content{padding:12px}.branch-select{max-width:60vw}}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{width:100%;padding:20px;position:absolute;top:0;left:0}.no-print{display:none}}.sync-chip{white-space:nowrap;border-radius:999px;min-height:34px;padding:0 10px;font-size:.82rem;font-weight:600}.sync-chip.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.sync-chip.info{background:var(--info-soft);color:var(--info);border-color:#0000}.sync-chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.sync-chip.bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.qitem{border-bottom:1px solid var(--line);padding:8px 0}.qitem summary{cursor:pointer;min-height:34px}.score-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.score-row .qitem{border:none;flex:300px}.apply{background:var(--bg);justify-content:center;min-height:100vh;padding:24px 16px;display:flex}.apply-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(680px,100%);padding:20px}.apply-card .brand{padding:0 0 12px}.apply-card .brand span{color:var(--muted)}.apply-opt{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.apply-opt span{flex:260px}.logo-img{background:#fff;border-radius:10px;width:42px;height:42px;padding:2px}.brand span{font-size:.7rem}.start-logo{width:min(280px,80%);margin:0 auto 12px;display:block}.apply-brand{flex-direction:column;align-items:center;gap:4px;margin-bottom:12px;display:flex}.apply-brand img{width:min(240px,70%)}.apply-brand span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem}.toast{background:#2b0d36}.letterhead{border-bottom:3px solid #4dcfba;grid-template-columns:160px 1fr;align-items:center;gap:6px 16px;margin-bottom:12px;padding-bottom:8px;display:grid}.letterhead img{grid-row:span 2;width:150px}.lh-docs{text-align:right;flex-wrap:wrap;justify-content:flex-end;gap:20px;display:flex}.lh-docs div{flex-direction:column;font-size:.8rem;display:flex}.lh-docs b{color:var(--brand);font-size:.95rem}.lh-branch{color:var(--muted);text-align:right;font-size:.78rem}@media print{.letterhead{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.day-strip{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.ds{border:2px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:74px;padding:6px 10px;line-height:1.15;display:flex}.ds b{font-size:1.25rem}.ds span{font-size:.78rem}.ds.total{background:var(--brand);color:#fff}.ds.muted{background:#eef2f5}.ds.bad{background:var(--bad-soft);color:var(--bad)}.ds.warn{background:var(--warn-soft);color:var(--warn)}.ds.ok{background:var(--teal-soft);color:var(--teal)}.ds.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.appt-list{gap:6px}.appt-row.st-arrived{border-left-color:var(--bad)}.appt-row.st-engaged{border-left-color:var(--warn)}.appt-row.st-cancelled,.appt-row.st-no_show{opacity:.6;border-left-color:#b7c2cc}.appt-time{flex-direction:column;min-width:70px;font-weight:600;display:flex}.appt-time small{color:var(--muted);font-weight:400}.appt-who{flex-direction:column;flex:1;min-width:0;display:flex}.appt-who small{color:var(--muted)}.appt-patient{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;margin-bottom:10px;padding-bottom:10px;display:flex}a.button{border:1px solid var(--line);background:var(--panel);min-height:34px;color:inherit;border-radius:8px;align-items:center;padding:0 10px;font-size:.85rem;text-decoration:none;display:inline-flex}.okbox{background:var(--teal-soft);border:1px solid #9fe0d4;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.date-nav{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.date-nav input{flex:1;width:auto;min-width:0}.date-nav button{flex:none}.doc-filter{width:auto}@media (width<=700px){.date-nav{width:100%}.doc-filter{flex:1}}.ap{--sch:#6b7280;--in:#e5484d;--eng:#f2994a;--out:#2fb36d;--canc:#9aa3ad}.ap-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.ap-doc{flex:1;min-width:120px;max-width:280px}.ap-new{margin-left:auto}.ap-pane{width:100%;margin-bottom:8px;display:none}.ap-pane button{flex:1}.ap-main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:12px;display:grid}.ap-cal,.ap-day{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.ap-cal-head{background:var(--brand-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;display:flex}.ap-date{cursor:pointer;align-items:center;gap:6px;font-size:1.1rem;display:inline-flex;position:relative}.ap-date input{opacity:0;cursor:pointer;position:absolute;inset:0}.ap-nav{align-items:center;gap:2px;margin-left:auto;display:flex}.ap-nav button.ghost{min-width:40px;padding:0;font-size:1.5rem}.vg-scroll{max-height:calc(100vh - 210px);overflow:auto}.vg-heads{z-index:3;background:var(--panel);border-bottom:1px solid var(--line);display:grid;position:sticky;top:0}.vg-heads b{border-left:1px solid var(--line);padding:6px 8px;font-size:.85rem}.vg{margin:10px 0;display:grid;position:relative}.vg-times{position:relative}.vg-times span{color:var(--muted);white-space:nowrap;font-size:.7rem;position:absolute;right:6px;transform:translateY(-50%)}.vg-times span.hour{color:var(--ink,#1f2933);font-weight:600}.vg-col{border-left:1px solid var(--line);cursor:copy;background-image:linear-gradient(#e6eaee 1px,#0000 1px);position:relative}.hg-scroll{max-height:calc(100vh - 210px);overflow:auto}.hg-row{border-bottom:1px solid var(--line);display:flex}.hg-head{z-index:3;background:var(--panel);height:34px;position:sticky;top:0}.hg-name{z-index:2;background:var(--panel);border-right:1px solid var(--line);flex:none;place-items:center;width:90px;font-size:.9rem;font-weight:600;display:grid;position:sticky;left:0}.hg-track{flex:none;position:relative}.hg-head .hg-track span{color:var(--muted);white-space:nowrap;padding-left:3px;font-size:.7rem;position:absolute;top:9px}.hg-lines{cursor:copy;background-image:linear-gradient(90deg,#e6eaee 1px,#0000 1px)}.ap-card{z-index:1;text-align:left;color:#fff;background:#8fc7c0;border:1px solid #6fe3d6;border-bottom-width:4px;border-radius:6px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:1px;min-height:0;padding:4px 6px;line-height:1.2;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000014}.ap-card b,.ap-card i,.ap-card span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.ap-card b{font-size:.88rem}.ap-card i{font-size:.76rem}.ap-card span{font-size:.74rem}.ap-card.st-booked{color:#20524c;background:#eef6f5;border-color:#9fd8d0}.ap-card.st-confirmed{color:#1d4a45;background:#cfeeea;border-color:#6fe3d6}.ap-card.st-arrived{color:#8b1d1d;border-color:var(--in);background:#fdecec}.ap-card.st-engaged{color:#7a4100;border-color:var(--eng);background:#fff1e2}.ap-card.st-completed{color:#fff;background:#8fc7c0;border-color:#6fe3d6}.now-line{background:var(--in);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--in);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.now-line.v{width:2px;height:auto;inset:0 auto 0 0}.now-line.v:before{top:-4px;left:-3px}.ap-day-head{text-align:center;border-bottom:1px solid var(--line);padding:10px 12px;font-size:1.1rem}.ap-tabs{border-bottom:1px solid var(--line);margin-bottom:8px;display:flex}.ap-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex:1;font-weight:500}.ap-tabs button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.ap-counts{background:#f3f4f7;border-radius:10px;grid-template-columns:repeat(6,1fr);gap:4px;margin:0 8px 6px;padding:6px 8px;display:grid}.cnt{color:#fff;border:2px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:6px 2px;display:flex}.cnt b{font-size:1.1rem}.cnt span{white-space:nowrap;font-size:.66rem;line-height:1}.cnt.all{background:#0b1166}.cnt.all b{font-size:1.35rem}.cnt.sch{background:var(--sch)}.cnt.in{background:var(--in)}.cnt.eng{background:var(--eng)}.cnt.out{background:var(--out)}.cnt.canc{background:var(--canc)}.cnt.on{border-color:#0b1166;box-shadow:inset 0 0 0 2px #fff}.ap-fold{background:0 0;border:0;border-radius:0;justify-content:space-between;width:100%;padding:0 14px;font-size:1rem;display:flex}.ap-cats,.ap-docs{margin:0 0 6px;padding:0 14px;list-style:none}.ap-cats li,.ap-docs li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:6px;padding:5px 0;font-size:.9rem;display:flex}.ap-cats li{border-left:4px solid var(--brand);padding-left:8px}.pills{gap:3px;display:inline-flex}.pill{color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.72rem;font-style:normal;font-weight:600;display:inline-grid}.pill.all{background:#0b1166}.pill.sch{background:var(--sch)}.pill.in{background:var(--in)}.pill.eng{background:var(--eng)}.pill.out{background:var(--out)}.pill.canc{background:var(--canc)}.ap-list{flex-direction:column;gap:6px;min-height:160px;max-height:calc(100vh - 420px);padding:6px 8px 10px;display:flex;overflow:auto}.ap-row{border:1px solid var(--line);background:var(--panel);border-left:5px solid #6fe3d6;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex;box-shadow:0 1px 2px #0000000d}.ap-row.st-booked,.ap-row.st-confirmed{border-left-color:var(--sch)}.ap-row.st-arrived{border-left-color:var(--in)}.ap-row.st-engaged{border-left-color:var(--eng)}.ap-row.st-completed{border-left-color:var(--out)}.ap-row.st-cancelled,.ap-row.st-no_show{border-left-color:var(--canc);opacity:.65}.ap-row-main{cursor:pointer;flex-direction:column;flex:1;min-width:0;display:flex}.ap-row-main b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ap-row-act{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.st-txt{font-size:.8rem;font-weight:600}.st-txt.st-booked,.st-txt.st-confirmed{color:var(--sch)}.st-txt.st-arrived{color:var(--in)}.st-txt.st-engaged{color:var(--eng)}.st-txt.st-completed{color:var(--out)}.st-txt.st-cancelled,.st-txt.st-no_show{color:var(--canc)}.pop-patient{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding-bottom:10px;display:flex}.pop-phone{color:inherit;font-weight:500;text-decoration:none}.pop-icons{gap:6px;margin-top:4px;display:flex}a.button.wa{color:#128c4b;border-color:#9edbb8}.pop-adv{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;padding:10px 0;display:flex}.pop-adv b{color:var(--out);font-size:1.5rem;font-weight:600}.linklike{min-height:0;color:var(--brand);text-align:left;background:0 0;border:0;width:fit-content;padding:0;text-decoration:underline}.pop-doc{border-left:5px solid #0b1166;border-radius:8px;flex-direction:column;gap:3px;margin:12px 0;padding:10px 12px;display:flex;box-shadow:0 1px 4px #00000014}.pop-actions{flex-direction:column;gap:6px;display:flex}.pop-actions button{text-align:left;justify-content:flex-start}button.danger-text{color:var(--bad)}.pop-hist{margin-top:10px}.pop-hist summary{cursor:pointer;color:var(--muted)}.ap-foot{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.ap-foot button{text-transform:uppercase;letter-spacing:.04em;min-height:48px;font-weight:700}.ap-foot button:first-child{color:#fff;background:#9e9e9e;border-color:#9e9e9e}@media (width<=1000px){.ap-pane{display:flex}.ap-main{grid-template-columns:1fr}.ap-main.show-calendar .ap-day,.ap-main.show-day .ap-cal{display:none}.ap-list{max-height:none}.vg-scroll,.hg-scroll{max-height:calc(100vh - 230px)}}.nowrap{white-space:nowrap;flex:none}:root{--bg:#f5f5f7;--panel:#fff;--ink:#1d1d1f;--muted:#6e6e73;--line:#e5e5ea;--fill:#f2f2f5;--brand:#0b7a55;--brand-ink:#fff;--brand-soft:#e6f4ee;--teal:#0b7a55;--teal-soft:#e6f4ee;--ok:#0b7a55;--ok-soft:#e6f4ee;--warn:#b45309;--warn-soft:#fdf1e4;--bad:#c0352b;--bad-soft:#fdecea;--info:#0a64c9;--info-soft:#e8f1fc;--radius:16px;--tap:44px;-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,Noto Sans,system-ui,sans-serif;font-size:16px;line-height:1.4}body{-webkit-tap-highlight-color:transparent}a{color:var(--brand)}h1{letter-spacing:-.02em;font-size:1.75rem;font-weight:700}h2{letter-spacing:-.01em;font-size:1.15rem;font-weight:700}:focus-visible{outline-offset:2px;outline:3px solid #7cc4a8}button{background:var(--fill);border:none;border-radius:12px;font-weight:600}button:hover{filter:brightness(.97);border-color:#0000}button.primary{background:var(--brand);border:none}button.ghost{background:0 0}button.link{min-height:0;color:var(--brand);background:0 0;padding:0;font-weight:600}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:12px}input[type=checkbox]{accent-color:var(--brand)}.card{border-radius:var(--radius);box-shadow:none;border:none}.empty,.table-wrap{border-radius:var(--radius);border:none}th{text-transform:none;letter-spacing:0;background:#fff;font-size:.82rem;font-weight:600}th,td{border-bottom-color:#efeff4}tr.click:hover td{background:#fafafc}.stat{border-radius:var(--radius);border:none;padding:14px 16px}.stat.ok,.stat.warn,.stat.bad{border-left:none}.stat.warn .stat-value{color:var(--warn)}.stat.bad .stat-value{color:var(--bad)}.stat-value{letter-spacing:-.02em;font-size:1.6rem}.badge{border-radius:999px}.tag{background:var(--fill);border-radius:999px}.warnbox{background:var(--warn-soft);color:#7a3d06;border:none;border-radius:12px}.alertbox{border:none;border-radius:12px}.okbox{background:var(--brand-soft);border:none;border-radius:12px}.modal{border-radius:20px}.modal-head{border-bottom:none;padding:16px 20px 4px}.modal-body{padding:12px 20px 20px}.modal-bg{background:#00000052}.toast,.toast.ok{background:#1d1d1f;border-radius:14px}.seg{background:#e3e3e8;border:none;border-radius:10px;gap:2px;padding:2px}.seg button{background:0 0;border:none;border-radius:8px;min-height:34px}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0000001f}.tabs{border-bottom:1px solid var(--line)}.tabs a.active{color:var(--ink);border-bottom-color:var(--ink)}.ds{color:var(--ink);background:#fff;border:none;border-radius:14px;min-width:64px}.ds.total,.ds.muted,.ds.bad,.ds.warn,.ds.ok{color:var(--ink);background:#fff}.ds.on{background:var(--ink);color:#fff;box-shadow:none}.appt-row{border-left:none}.appt-row.st-arrived .appt-who small{color:var(--warn);font-weight:600}.appt-row.st-engaged .appt-who small{color:var(--brand);font-weight:600}.appt{border-left-width:3px;border-radius:8px}.lane{border-radius:var(--radius);background:#ebebf0}.qcard{border-left:none;border-radius:12px}.qcard.warn{box-shadow:inset 3px 0 0 var(--warn)}.qcard.bad{box-shadow:inset 3px 0 0 var(--bad)}.qcard.info{box-shadow:inset 3px 0 0 var(--brand)}.side{width:240px;color:var(--ink);border-right:1px solid var(--line);background:#fbfbfd;flex-direction:column;display:flex}.brand{padding:22px 20px 18px}.brand b{letter-spacing:-.01em;font-size:1.05rem}.logo-img{border-radius:9px;width:34px;height:34px;padding:0}.side nav{flex:1;gap:2px;padding:0 12px}.side nav a{color:#3a3a3c;border-radius:10px;gap:12px;min-height:40px;padding:0 12px;font-weight:500}.side nav a svg{color:var(--muted)}.side nav a:hover{background:#f0f0f4}.side nav a.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.side nav a.active svg{color:var(--brand)}.side-foot{flex-direction:column;gap:2px;padding:16px 24px 24px;font-size:.88rem;display:flex}.side-foot span{color:var(--muted)}.side-foot .link{align-self:flex-start;margin-top:6px}.top{-webkit-backdrop-filter:saturate(180%)blur(20px);padding:10px 24px;padding-top:calc(10px + env(safe-area-inset-top));background:#f5f5f7d9;border-bottom:none}.top-branch{font-weight:600}.seg-control{background:#e3e3e8;border-radius:10px;gap:2px;padding:2px;display:inline-flex}.seg-control button{background:0 0;border-radius:8px;min-height:32px;padding:0 14px;font-size:.9rem}.seg-control button.on{background:#fff;box-shadow:0 1px 3px #0000001f}.sync-chip{border:none;min-height:30px}.demo-banner{background:var(--warn-soft);text-align:center;border-bottom:none;padding:6px 16px}.content{max-width:1200px;padding:8px 32px 48px}.page-head{margin:8px 0 18px}.page-head h1{font-size:2rem}.tabbar{display:none}.sheet-bg{z-index:70;background:#00000052;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{padding:8px 16px calc(24px + env(safe-area-inset-bottom));background:#f5f5f7;border-radius:22px 22px 0 0;max-height:85vh;overflow-y:auto}.grabber{background:#c7c7cc;border-radius:3px;width:36px;height:5px;margin:0 auto 12px}.sheet-who{flex-direction:column;padding:0 4px 12px;display:flex}.sheet-who span{color:var(--muted);font-size:.9rem}.today{max-width:760px}.today-head{margin:12px 0 8px}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:600}.large-title{letter-spacing:-.025em;margin:4px 0 0;font-size:2.1rem;line-height:1.1}.lede{color:var(--muted);margin:6px 0 0;font-size:1.05rem}.section-title{margin:26px 0 10px;font-size:1.25rem}.group{border-radius:var(--radius);background:#fff;margin:0;padding:0;list-style:none;overflow:hidden}.group>li+li{border-top:1px solid var(--line)}.group-row{text-align:left;width:100%;min-height:56px;color:var(--ink);background:#fff;border-radius:0;align-items:center;gap:14px;padding:12px 16px;font-weight:400;text-decoration:none;display:flex}.group-row.click{cursor:pointer}.group-row.click:hover,a.group-row:hover{filter:none;background:#fafafc}.row-icon{background:var(--brand-soft);width:40px;height:40px;color:var(--brand);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.row-icon.late{background:var(--warn-soft);color:var(--warn)}.row-icon.plain{background:var(--fill);color:var(--ink);border-radius:9px;width:34px;height:34px}.row-text{flex-direction:column;flex:1;min-width:0;display:flex}.row-text b{font-weight:600}.row-text small{color:var(--muted);font-size:.9rem}.row-time{width:64px;color:var(--muted);font-size:.92rem;font-weight:600}.state{font-size:.88rem;font-weight:600}.state.go{color:var(--brand)}.state.late{color:var(--warn)}.dot{background:#c7c7cc;border-radius:5px;flex-shrink:0;width:10px;height:10px}.dot.go{background:var(--brand)}.btn-pill{white-space:nowrap;border-radius:18px;flex-shrink:0;min-height:36px;padding:0 16px;font-size:.92rem}.btn-pill.primary{background:var(--brand);color:#fff}.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:10px;display:grid}.tile{border-radius:var(--radius);text-align:left;background:#fff;flex-direction:column;align-items:flex-start;gap:2px;min-height:0;padding:16px;font-weight:400;display:flex}.tile small{color:var(--muted);font-size:.85rem}.tile b{letter-spacing:-.02em;font-size:1.75rem}.tile b em{color:var(--muted);font-size:1rem;font-style:normal;font-weight:500}.tile span{color:var(--muted);font-size:.85rem}.go-text{font-weight:600;color:var(--brand)!important}@media (width<=900px){.side{display:none}.top{padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top))}.content{padding:4px 16px calc(100px + env(safe-area-inset-bottom))}.page-head h1{font-size:1.75rem}.tabbar{z-index:60;-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#ffffffeb;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a,.tabbar button{min-height:50px;color:var(--muted);background:0 0;border-radius:0;flex-direction:column;align-items:center;gap:2px;padding:0;font-size:.68rem;font-weight:500;text-decoration:none;display:flex}.tabbar .on{color:var(--brand);font-weight:600}.toasts{bottom:calc(96px + env(safe-area-inset-bottom))}}.row-time{white-space:nowrap;flex-shrink:0;width:78px}@media (width<=900px){.tabbar{background:#fff}.hide-sm{display:none}th,td{padding:12px 10px}}.section-head{justify-content:space-between;align-items:center;gap:12px;margin:26px 0 10px;display:flex}.section-head .section-title{margin:0}.cl-block{margin-top:22px}.cl-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.cl-head h2{margin:0;font-size:1.2rem}.tick{color:#fff;background:#fff;border:2px solid #c7c7cc;border-radius:15px;flex-shrink:0;place-items:center;width:30px;height:30px;min-height:30px;padding:0;display:grid}.tick.late{border-color:var(--warn)}.tick.on{background:var(--brand);border-color:var(--brand)}button.tick:disabled{opacity:1}.tick-row{cursor:default}.row-text.struck>span,.row-text.struck>b{color:#8e8e93;text-decoration:line-through}.struck-soft b{color:var(--muted)}.late-text{font-weight:600;color:var(--warn)!important}.progress-card{border-radius:var(--radius);background:#fff;flex-direction:column;gap:10px;margin-top:16px;padding:16px;display:flex}.bar{background:#e5e5ea;border-radius:4px;height:8px;overflow:hidden}.bar span{background:var(--brand);border-radius:4px;height:100%;display:block}.raise-btn{width:100%;color:var(--ink);background:#fff;border-radius:14px;min-height:52px;margin-top:28px;display:block}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--line);background:#fff;border-radius:20px;min-height:40px;padding:0 14px;font-size:.92rem}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.empty-state{border-radius:var(--radius);background:#fff;flex-direction:column;align-items:flex-start;gap:10px;margin-top:16px;padding:24px;display:flex}.empty-state h2{margin:0}.seg-control.wide{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;margin-top:16px;display:grid}.seg-control.wide button{white-space:nowrap;text-overflow:ellipsis;padding:0 6px;font-size:.88rem;overflow:hidden}.edit-link{margin:8px 4px 0;font-size:.9rem}.item-edit{margin-bottom:6px}.item-edit button{min-height:40px}.inline-select{width:auto;max-width:100%;min-height:38px;margin-top:8px;font-size:.9rem}.issue-row{align-items:flex-start}.issue-row .btn-pill{margin-top:4px}.day-nav{align-items:center;gap:8px;margin-top:16px;display:flex}.day-nav input{text-align:center;flex:1;font-weight:600}.day-nav .month-label{text-align:center;flex:1;font-size:1.1rem}.day-nav .btn-pill{min-width:44px;font-size:1.2rem}.day-state{margin:8px 2px 0;font-size:.92rem}.form-group{padding:0}.form-row{justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 16px;display:flex}.form-row+.form-row{border-top:1px solid var(--line)}.form-row>span{flex:1}.form-row input{text-align:right;max-width:180px}.line-row{gap:8px}.line-amount input{text-align:right;width:120px}.add-select{color:var(--brand);background:#fff;border:1px dashed #b9dccb;margin-top:8px;font-weight:600}.small-gap{margin:0 2px}.group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:18px 4px 8px;font-size:.9rem;font-weight:600}.totals-card{color:#fff;border-radius:var(--radius);background:#1d1d1f;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px;padding:16px;display:grid}.totals-card small{color:#a1a1a6;font-size:.8rem;display:block}.totals-card b{letter-spacing:-.01em;font-size:1.2rem}.totals-card .late-text{color:#ffb366!important}.save-bar{background:linear-gradient(transparent, var(--bg) 30%);padding:12px 0 4px;position:sticky;bottom:0}@media (width<=900px){.save-bar{bottom:calc(70px + env(safe-area-inset-bottom))}}.rent-grid-wrap{border-radius:var(--radius);background:#fff;overflow-x:auto}.rent-grid{border-collapse:collapse;width:100%;min-width:560px}.rent-grid th{color:var(--muted);text-align:center;padding:10px 6px;font-size:.78rem}.rent-grid th:first-child{text-align:left;padding-left:14px}.rent-grid td{border-top:1px solid var(--line);text-align:center;vertical-align:middle;padding:10px 6px}.rent-grid td:first-child{text-align:left;background:#fff;min-width:150px;padding-left:14px;position:sticky;left:0}.rent-grid td small{color:var(--muted);font-size:.78rem;display:block}.rent-cell b{font-size:.82rem;font-weight:600}.rent-cell.paid b{color:var(--brand)}.rent-cell.part b,.rent-cell.due b{color:var(--warn)}.rent-cell.not_yet b,.rent-cell.none b{color:#aeaeb2;font-weight:500}button.link.left{text-align:left;font-size:.95rem}.loan-row{align-items:flex-start}.loan-row .state{white-space:nowrap;margin-top:2px}.seg-control.wide button{font-size:.84rem}.score-row{align-items:center}.score-val{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;min-width:96px;display:flex}.score-val b{font-size:1.1rem}.score-val small{color:var(--muted);white-space:nowrap;font-size:.78rem}.score-trend{flex-shrink:0;align-items:flex-end;gap:3px;width:34px;height:28px;display:flex}.score-trend i{background:#d1d1d6;border-radius:2px;width:6px;display:block}.score-trend i.now{background:var(--brand)}.setup-link{margin-top:18px;color:var(--muted)!important;font-size:.82rem!important;font-weight:500!important}
