.lang-seg[data-v-5cc789a8]{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:2px;gap:2px;flex-shrink:0}.lang-seg button[data-v-5cc789a8]{all:unset;cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-soft);padding:5px 11px;border-radius:7px;line-height:1}.lang-seg button.on[data-v-5cc789a8]{background:var(--surface-2);color:var(--primary);box-shadow:var(--shadow)}.profile[data-v-5cc789a8]{position:relative;flex-shrink:0}.profile-btn[data-v-5cc789a8]{all:unset;cursor:pointer;border-radius:50%;display:grid;place-items:center;transition:.15s}.profile-btn[data-v-5cc789a8]:hover,.profile-btn.open[data-v-5cc789a8]{box-shadow:0 0 0 2px var(--line-strong)}.profile-btn[data-v-5cc789a8] .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.menu-backdrop[data-v-5cc789a8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.profile-menu[data-v-5cc789a8]{position:absolute;top:calc(100% + 8px);right:0;z-index:41;width:240px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:6px;overflow:hidden}.profile-menu-head[data-v-5cc789a8]{display:flex;align-items:center;gap:11px;padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.profile-menu-head[data-v-5cc789a8] .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.profile-menu-id[data-v-5cc789a8]{display:flex;flex-direction:column;min-width:0}.profile-menu-id strong[data-v-5cc789a8]{font-size:13.5px;color:var(--ink)}.profile-menu-id small[data-v-5cc789a8]{font-size:11.5px;color:var(--ink-soft)}.profile-menu-id small.muted[data-v-5cc789a8]{color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu-item[data-v-5cc789a8]{all:unset;display:flex;align-items:center;gap:10px;width:calc(100% - 20px);padding:9px 10px;border-radius:9px;font-size:13.5px;color:var(--ink);cursor:pointer;transition:.12s}.profile-menu-item[data-v-5cc789a8]:hover{background:var(--bg)}.profile-menu-item svg[data-v-5cc789a8]{width:17px;height:17px;color:var(--ink-faint)}.profile-menu-item.danger[data-v-5cc789a8]{color:var(--red)}.profile-menu-item.danger svg[data-v-5cc789a8]{color:var(--red)}.pw-field[data-v-fa991aa4]{position:relative}.pw-field .fin[data-v-fa991aa4]{padding-right:40px}.pw-toggle[data-v-fa991aa4]{all:unset;position:absolute;top:50%;right:8px;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--ink-faint);cursor:pointer;transition:.15s}.pw-toggle[data-v-fa991aa4]:hover{color:var(--ink);background:var(--bg)}.pw-toggle svg[data-v-fa991aa4]{width:17px;height:17px}.perm-block[data-v-29657102]{padding:6px 28px 4px}.perm-all[data-v-29657102]{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}.perm-all span[data-v-29657102]{display:flex;flex-direction:column}.perm-all small[data-v-29657102]{color:var(--ink-faint);font-size:12px}.perm-groups[data-v-29657102]{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin-top:14px}.perm-group-title[data-v-29657102]{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-bottom:6px}.perm-item[data-v-29657102]{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);padding:4px 0;cursor:pointer}.perm-item input[data-v-29657102],.perm-all input[data-v-29657102]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.btn.primary[data-v-29657102]:disabled{opacity:.5;cursor:not-allowed}.profile-head[data-v-d4e2fe33]{display:flex;align-items:center;gap:14px;padding:26px 28px 6px}.profile-head .av[data-v-d4e2fe33]{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:18px;flex-shrink:0}.profile-head h2[data-v-d4e2fe33]{font-family:Fraunces,serif;font-size:20px;color:var(--ink);margin:0}.profile-head small[data-v-d4e2fe33]{color:var(--ink-faint);font-size:13px}.profile-rows[data-v-d4e2fe33]{padding:14px 28px 6px;display:flex;flex-direction:column;gap:2px}.profile-row[data-v-d4e2fe33]{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.profile-row[data-v-d4e2fe33]:last-child{border-bottom:none}.profile-row span[data-v-d4e2fe33]{color:var(--ink-soft)}.profile-row b[data-v-d4e2fe33]{color:var(--ink);text-align:right}:root{--bg:#EFEAE0;--surface:#FBF9F4;--surface-2:#FFFFFF;--ink:#1C2A26;--ink-soft:#5A6862;--ink-faint:#8C988F;--primary:#15524A;--primary-soft:#2A7268;--primary-tint:#E3EBE6;--accent:#CF6438;--accent-tint:#F6E3D8;--gold:#C2962C;--blue:#3E7CB1;--purple:#8A5CB8;--teal:#2A9D8F;--red:#C24A3A;--line:rgba(28,42,38,.1);--line-strong:rgba(28,42,38,.18);--shadow:0 1px 2px rgba(28,42,38,.05),0 8px 24px -12px rgba(28,42,38,.18);--kh:"Noto Sans Khmer",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Hanken Grotesk,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;height:100vh;overflow:hidden}.kh{font-family:var(--kh)}html[lang=km] body,html[lang=km] input,html[lang=km] select,html[lang=km] textarea,html[lang=km] button{font-family:"Hanken Grotesk",var(--kh)}html[lang=km] .brand h1,html[lang=km] .view-title,html[lang=km] .stat .num,html[lang=km] .insp-tname,html[lang=km] .plan-foot .v,html[lang=km] .ih .no,html[lang=km] .itot.grand .v,html[lang=km] .pf-head h2,html[lang=km] .confirm-modal h3,html[lang=km] .form-head h2,html[lang=km] .rx-title,html[lang=km] .visit-hero h2,html[lang=km] .tline.grand .v,html[lang=km] .inv-brand b,html[lang=km] .inv-title .big,html[lang=km] .cal-title{font-family:"Fraunces",var(--kh),serif}.app{display:grid;grid-template-columns:248px 1fr;height:100vh;transition:grid-template-columns .2s ease}.app.collapsed{grid-template-columns:74px 1fr}.sidebar{background:var(--primary);color:#dce7e2;display:flex;flex-direction:column;padding:26px 16px;position:relative;overflow:hidden}.sidebar:after{content:"";position:absolute;right:-60px;bottom:-60px;width:200px;height:200px;border-radius:50%;border:1px solid rgba(255,255,255,.06);pointer-events:none}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand .mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,#2a7268,#0f3e37);display:grid;place-items:center;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffffff1f}.brand .mark svg{width:21px;height:21px}.brand h1{font-family:Fraunces,serif;font-weight:500;font-size:19px;color:#fff;letter-spacing:-.01em}.brand .sub{font-size:11px;color:#9db8af;font-family:var(--kh);margin-top:-2px}.app.collapsed .sidebar{padding-left:12px;padding-right:12px}.app.collapsed .brand{justify-content:center;gap:0;padding-left:0;padding-right:0}.app.collapsed .brand-text{display:none}.app.collapsed .nav button{justify-content:center;gap:0;padding:10px}.app.collapsed .nav-text,.app.collapsed .nav .badge,.app.collapsed .nav-label{display:none}.nav-tip{position:fixed;transform:translateY(-50%);z-index:60;background:var(--ink);color:#fff;font-size:12.5px;font-weight:500;padding:6px 10px;border-radius:8px;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none;animation:tipIn .12s ease both}@keyframes tipIn{0%{opacity:0}to{opacity:1}}.nav-tip:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--ink)}.nav{display:flex;flex-direction:column;gap:3px;margin-top:6px;flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.nav::-webkit-scrollbar{width:5px}.nav::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:3px}.nav-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#7fa197;padding:0 12px;margin:18px 0 8px}.nav button{all:unset;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;color:#c3d6cf;transition:.18s;width:100%;box-sizing:border-box}.nav button svg{width:18px;height:18px;opacity:.85;flex-shrink:0}.nav button:hover{background:#ffffff0f;color:#fff}.nav button.active{background:#fbf9f4;color:var(--primary)}.nav button.active svg{opacity:1}.nav .badge{margin-left:auto;font-size:11px;font-weight:600;background:var(--accent);color:#fff;padding:1px 7px;border-radius:20px}.nav button.active .badge{background:var(--accent)}.side-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:#00000029}.side-foot .av{width:34px;height:34px;border-radius:50%;background:#d8a04a;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}.side-foot small{display:block;color:#9db8af;font-size:11.5px}.side-foot strong{font-size:13px;color:#fff;font-weight:600}.main{display:flex;flex-direction:column;overflow:hidden}.topbar{height:64px;flex-shrink:0;display:flex;align-items:center;gap:18px;padding:0 30px;min-width:0;background:var(--surface);border-bottom:1px solid var(--line)}.topbar .view-title{font-family:Fraunces,serif;font-size:22px;font-weight:500;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .view-title span{font-family:var(--kh);font-size:13px;color:var(--ink-faint);font-weight:400;margin-left:8px}.search{margin-left:auto;display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:9px 13px;width:270px;flex-shrink:1;min-width:0}.search svg{width:16px;height:16px;color:var(--ink-faint);flex-shrink:0}.search input{all:unset;font-size:13.5px;width:100%;color:var(--ink);font-family:inherit}.search input::placeholder{color:var(--ink-faint)}.topbar .iconbtn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--bg);display:grid;place-items:center;cursor:pointer;color:var(--ink-soft);flex-shrink:0}.topbar .iconbtn svg{width:18px;height:18px}.topbar .iconbtn.accent{background:var(--primary);border-color:var(--primary);color:#fff}.content{flex:1;overflow-y:auto;padding:28px 30px 60px}.view{display:none;animation:fade .4s ease both}.view.active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{padding:18px 20px;animation:pop .5s both}.stat:nth-child(1){animation-delay:.02s}.stat:nth-child(2){animation-delay:.08s}.stat:nth-child(3){animation-delay:.14s}.stat:nth-child(4){animation-delay:.2s}.stat .lab{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:7px;font-weight:500}.stat .lab .dot{width:8px;height:8px;border-radius:50%}.stat .num{font-family:Fraunces,serif;font-size:34px;font-weight:500;margin-top:8px;letter-spacing:-.02em}.stat .delta{font-size:12px;color:var(--ink-faint);margin-top:2px}.stat .delta b{color:var(--primary-soft);font-weight:600}.cols{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px}.panel-head h3{font-size:15.5px;font-weight:600}.panel-head a{font-size:12.5px;color:var(--primary-soft);font-weight:600;cursor:pointer;text-decoration:none}.appt-row{display:flex;align-items:center;gap:14px;padding:13px 20px;border-top:1px solid var(--line)}.appt-row .time{font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;color:var(--primary);width:62px;flex-shrink:0}.appt-row .who{flex:1}.appt-row .who b{font-size:14px;font-weight:600;display:block}.appt-row .who small{font-size:12px;color:var(--ink-soft)}.pill{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}.pill.confirmed{background:var(--primary-tint);color:var(--primary)}.pill.arrived{background:var(--accent-tint);color:var(--accent)}.pill.booked{background:#eae6dc;color:var(--ink-soft)}.recall-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.recall-row .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12px;background:var(--primary-tint);color:var(--primary);flex-shrink:0}.recall-row .info{flex:1}.recall-row .info b{font-size:13.5px;display:block;font-weight:600}.recall-row .info small{font-size:11.5px;color:var(--accent);font-weight:600}.mini-btn{all:unset;font-size:11.5px;font-weight:600;color:var(--primary);cursor:pointer;border:1px solid var(--line-strong);padding:5px 11px;border-radius:8px}.mini-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.card:has(>.table){overflow-x:auto}.card:has(>.table)>.table{min-width:760px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:14px 20px;border-bottom:1px solid var(--line)}.table td{padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.prow{cursor:pointer;transition:.12s}.table tr.prow:hover{background:var(--surface)}.pt-name{display:flex;align-items:center;gap:11px}.pt-name .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff;flex-shrink:0}.pt-name b{font-weight:600}.pt-name small{display:block;font-size:11.5px;color:var(--ink-faint);font-weight:400}.bal{font-variant-numeric:tabular-nums;font-weight:600}.bal.owed{color:var(--accent)}.bal.clear{color:var(--ink-faint);font-weight:500}.chart-head{display:flex;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}.chart-head .who{display:flex;align-items:center;gap:12px}.chart-head .who .av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:15px}.chart-head .who b{font-size:16px;font-weight:600;display:block}.chart-head .who small{font-size:12.5px;color:var(--ink-soft)}.chart-legend{display:flex;gap:13px;flex-wrap:wrap;margin-left:auto;align-items:center}.lg{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink-soft)}.lg .sw{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.12)}.odo-wrap{padding:22px 18px 24px;overflow-x:auto}.odo-inner{width:max-content;margin:0 auto;min-width:600px}.quad-labels{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);padding:0 4px}.quad-labels.top{margin-bottom:6px}.quad-labels.bot{margin-top:6px}.quad-labels .mid{flex:1}.quad-labels .orient{color:var(--primary);background:var(--primary-tint);padding:2px 8px;border-radius:6px;letter-spacing:.05em}.arch{display:flex;justify-content:center;gap:1px}.arch.upper{padding-bottom:14px;border-bottom:1.5px dashed var(--line-strong)}.arch.lower{padding-top:14px}.midline{text-align:center;font-size:9px;color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase;margin:3px 0}.tooth{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;padding:5px 1px 3px;border-radius:9px;transition:.13s;position:relative}.arch.lower .tooth{flex-direction:column-reverse}.tooth:hover{background:var(--surface)}.tooth:hover svg{transform:translateY(-2px)}.tooth svg{display:block;transition:.13s;filter:drop-shadow(0 1px 1px rgba(28,42,38,.12))}.tooth.sel{background:var(--primary-tint)}.tooth.sel .num{color:var(--primary);font-weight:700}.tooth .num{font-size:10px;color:var(--ink-faint);font-variant-numeric:tabular-nums;font-weight:600}.qgap{width:16px}.tooth .dots{position:absolute;top:1px;left:50%;transform:translate(-50%);display:flex;gap:2px;z-index:2}.arch.lower .tooth .dots{top:auto;bottom:1px}.tooth .dots i{width:5px;height:5px;border-radius:50%;box-shadow:0 0 0 1.5px var(--surface-2)}.inspect{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:22px 22px 24px;align-items:start}.surfmap{display:flex;flex-direction:column;align-items:center;gap:11px}.surfmap svg{width:148px;height:148px;border-radius:10px}.surfmap .sf{cursor:pointer;transition:.12s;stroke:#d8d0be;stroke-width:1.5}.surfmap .sf:hover{stroke:var(--primary);stroke-width:2}.surf-cap{font-size:11.5px;color:var(--ink-soft);text-align:center;line-height:1.5}.surf-cap b{color:var(--ink);font-weight:700}.insp-side{display:flex;flex-direction:column;gap:15px}.insp-tname{font-family:Fraunces,serif;font-size:22px;font-weight:500;line-height:1.1}.insp-tname small{display:block;font-family:Hanken Grotesk,sans-serif;font-size:12.5px;color:var(--ink-soft);font-weight:500;letter-spacing:0;margin-top:3px}.tool-grp{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}.tools{display:flex;flex-wrap:wrap;gap:7px}.tool{all:unset;cursor:pointer;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:7px 11px;border-radius:9px;border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink-soft);transition:.15s}.tool .sw{width:12px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.12)}.tool:hover{border-color:var(--line-strong)}.tool.sel{border-color:var(--ink);color:var(--ink);background:var(--surface)}.tool.whole.sel{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.insp-hint{font-size:12px;color:var(--ink-faint);line-height:1.5;border-top:1px solid var(--line);padding-top:12px}.plan{margin-top:18px}.plan-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.plan-row .sw{width:11px;height:11px;border-radius:3px;flex-shrink:0}.plan-row .d{flex:1;font-size:13.5px}.plan-row .d b{font-weight:600}.plan-row .d small{color:var(--ink-soft);display:block;font-size:11.5px}.plan-row .cost{font-variant-numeric:tabular-nums;font-weight:600;font-size:13.5px}.plan-empty{padding:30px 20px;text-align:center;color:var(--ink-faint);font-size:13.5px}.plan-foot{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1.5px solid var(--line-strong);background:var(--surface)}.plan-foot .t{font-size:13px;color:var(--ink-soft)}.plan-foot .v{font-family:Fraunces,serif;font-size:24px;font-weight:500}.sched{display:grid;grid-template-columns:64px 1fr 1fr;gap:0;padding:0 0 10px}.sched .sh{padding:14px 16px;font-size:12px;font-weight:600;color:var(--ink-soft);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface-2)}.sched .sh.chair{color:var(--primary)}.sched .slot{border-bottom:1px solid var(--line);border-left:1px solid var(--line);min-height:64px;padding:6px;position:relative}.sched .tlabel{border-bottom:1px solid var(--line);font-size:11.5px;color:var(--ink-faint);padding:8px 12px;text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.ev{border-radius:9px;padding:8px 10px;height:100%;border-left:3px solid}.ev b{font-size:12.5px;font-weight:600;display:block}.ev small{font-size:11px;opacity:.85}.ev.g{background:var(--primary-tint);border-color:var(--primary);color:var(--primary)}.ev.o{background:var(--accent-tint);border-color:var(--accent);color:#9c4421}.ev.b{background:#e7eef4;border-color:var(--blue);color:#235177}.inv-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;align-items:start}.inv-list .irow{display:flex;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--line);cursor:pointer;transition:.12s}.inv-list .irow:hover{background:var(--surface)}.inv-list .irow.sel{background:var(--primary-tint)}.inv-list .irow .info{flex:1}.inv-list .irow .info b{font-size:13.5px;font-weight:600;display:block}.inv-list .irow .info small{font-size:11.5px;color:var(--ink-faint)}.inv-list .irow .amt{font-variant-numeric:tabular-nums;font-weight:600;font-size:13.5px}.invoice{padding:28px}.invoice .ih{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--line)}.invoice .ih .no{font-family:Fraunces,serif;font-size:21px;font-weight:500}.invoice .ih small{color:var(--ink-soft);font-size:12.5px}.il{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px}.il .ln b{font-weight:600;display:block}.il .ln small{color:var(--ink-faint);font-size:11.5px}.il .lp{font-variant-numeric:tabular-nums;font-weight:600}.itot{display:flex;justify-content:space-between;padding-top:16px;font-size:13.5px;color:var(--ink-soft)}.itot.grand{font-size:16px;color:var(--ink);font-weight:700;padding-top:12px}.itot.grand .v{font-family:Fraunces,serif;font-size:22px;font-weight:500}.paystrip{margin-top:18px;display:flex;gap:10px}.paystrip .pm{flex:1;border:1px solid var(--line);border-radius:11px;padding:11px;text-align:center;font-size:12px;font-weight:600;color:var(--ink-soft)}.paystrip .pm.on{border-color:var(--primary);background:var(--primary-tint);color:var(--primary)}.paystrip .pm small{display:block;font-size:10px;font-weight:500;color:var(--ink-faint);margin-top:2px}.note{margin-top:22px;font-size:12px;color:var(--ink-faint);text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}.note svg{width:14px;height:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1b73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:none;place-items:center;z-index:50;padding:30px}.overlay.open{display:grid;animation:fade .2s both}.modal{background:var(--surface);border-radius:20px;box-shadow:0 30px 70px -20px #00000080;width:100%;max-width:560px;max-height:86vh;overflow-y:auto;animation:pop .3s both;position:relative}.modal-x{position:absolute;top:18px;right:18px;width:32px;height:32px;border-radius:9px;border:none;background:var(--bg);cursor:pointer;display:grid;place-items:center;color:var(--ink-soft);z-index:2}.modal-x svg{width:16px;height:16px}.pf-head{display:flex;align-items:center;gap:16px;padding:26px 28px 20px;position:relative}.pf-head .av{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:20px;flex-shrink:0}.pf-head h2{font-family:Fraunces,serif;font-weight:500;font-size:23px;letter-spacing:-.01em}.linkable{cursor:pointer;transition:.12s}.linkable:hover{color:var(--primary-soft)}.pf-head small{color:var(--ink-soft);font-size:13px}.pf-alerts{display:flex;gap:8px;flex-wrap:wrap;padding:0 28px 18px}.alert-tag{font-size:12px;font-weight:600;padding:5px 11px;border-radius:8px;display:flex;align-items:center;gap:6px}.alert-tag.warn{background:var(--accent-tint);color:#9c4421}.alert-tag.info{background:var(--primary-tint);color:var(--primary)}.alert-tag svg{width:13px;height:13px}.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pf-cell{background:var(--surface);padding:14px 28px}.pf-cell:nth-child(2n){padding-left:20px}.pf-cell.full{grid-column:1/-1}.pf-cell .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:600}.pf-cell .v{font-size:14px;font-weight:600;margin-top:3px}.pf-sec{padding:18px 28px}.pf-sec h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:10px}.hist-row{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);font-size:13px}.hist-row .hd{font-variant-numeric:tabular-nums;color:var(--ink-faint);width:56px;flex-shrink:0;font-weight:500}.hist-row .ht b{font-weight:600}.hist-row .ht small{display:block;color:var(--ink-soft);font-size:11.5px}.pf-foot{display:flex;gap:10px;padding:18px 28px 26px}.btn{all:unset;flex:1;text-align:center;padding:12px;border-radius:11px;font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-soft)}.btn.ghost{border:1.5px solid var(--line-strong);color:var(--ink)}.btn.ghost:hover{background:var(--bg)}.btn.danger{background:var(--accent);color:#fff}.btn.danger:hover{background:#b5562f}.confirm-modal{max-width:380px;padding:26px 26px 22px}.confirm-modal h3{font-family:Fraunces,serif;font-weight:500;font-size:20px;letter-spacing:-.01em;margin-bottom:8px}.confirm-modal p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}.confirm-foot{display:flex;gap:10px;margin-top:22px}.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:3px;margin-bottom:18px;gap:3px}.seg button{all:unset;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-soft);padding:7px 16px;border-radius:8px}.seg button.on{background:var(--surface-2);color:var(--primary);box-shadow:var(--shadow)}.stockbar{width:120px;height:7px;border-radius:4px;background:var(--bg);overflow:hidden;display:inline-block;vertical-align:middle}.stockbar i{display:block;height:100%;border-radius:4px}.qty{font-variant-numeric:tabular-nums;font-weight:600;margin-left:10px;font-size:13px}.low-tag{font-size:11px;font-weight:700;color:var(--accent);margin-left:8px}.rep-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-bottom:18px}.bars{display:flex;align-items:flex-end;gap:14px;height:200px;padding:24px 24px 14px}.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}.bar .col{width:100%;max-width:42px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--primary-soft),var(--primary));transition:height .8s cubic-bezier(.2,.8,.2,1);position:relative}.bar .col:after{content:attr(data-v);position:absolute;top:-20px;left:0;right:0;text-align:center;font-size:11px;font-weight:700;color:var(--ink)}.bar small{font-size:11px;color:var(--ink-faint);font-weight:600}.hbars{padding:20px 24px}.hbar{margin-bottom:16px}.hbar .lab{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}.hbar .lab span{color:var(--ink-soft);font-weight:500}.hbar .track{height:10px;border-radius:6px;background:var(--bg);overflow:hidden}.hbar .fill{height:100%;border-radius:6px;transition:width .9s cubic-bezier(.2,.8,.2,1)}.sec-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.sec-bar p{font-size:13px;color:var(--ink-soft);max-width:480px;min-width:0}.btn-new{all:unset;cursor:pointer;font-size:13px;font-weight:600;color:#fff;background:var(--primary);padding:9px 15px;border-radius:10px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex-shrink:0}.btn-new:hover{background:var(--primary-soft)}.btn-new svg{width:15px;height:15px}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-shrink:0}.tbtn{all:unset;cursor:pointer;width:30px;height:30px;border-radius:8px;display:inline-grid;place-items:center;flex-shrink:0;color:var(--ink-soft);border:1px solid var(--line);transition:.13s}.tbtn:hover{background:var(--bg);color:var(--ink)}.tbtn.danger:hover{color:var(--accent);border-color:var(--accent-tint);background:var(--accent-tint)}.tbtn.pay{color:var(--primary)}.tbtn.pay:hover{background:var(--primary-tint);color:var(--primary)}.tbtn svg{width:15px;height:15px}.pill.active{background:var(--primary-tint);color:var(--primary)}.pill.leave{background:#efe7d2;color:#8a7434}.role-tag{font-size:12px;color:var(--ink-soft);font-weight:500}.form-head{padding:24px 28px 4px}.form-head h2{font-family:Fraunces,serif;font-weight:500;font-size:22px;letter-spacing:-.01em}.form-head small{color:var(--ink-soft);font-size:12.5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;padding:16px 28px 6px}.fld{display:flex;flex-direction:column;gap:6px}.fld.full{grid-column:1/-1}.fld span{font-size:11.5px;font-weight:600;color:var(--ink-soft)}.fin{font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface-2);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;transition:.15s;width:100%}.fin:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}select.fin{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235A6862' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}textarea.fin{resize:vertical;min-height:62px;line-height:1.5}img.av{object-fit:cover}.img-field{display:flex;align-items:center;gap:14px}.img-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--line);flex-shrink:0}.img-placeholder{width:64px;height:64px;border-radius:50%;border:1.5px dashed var(--line-strong);display:grid;place-items:center;font-size:10.5px;color:var(--ink-faint);text-align:center;flex-shrink:0}.img-actions{display:flex;gap:8px;flex-wrap:wrap}.modal.wide{max-width:700px}.rx-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 28px 16px}.rx-head-line,.rx-line{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 30px;gap:8px;align-items:center}.rx-head-line{padding:0 28px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;margin-bottom:7px}.rx-lines{padding:0 28px}.rx-line{margin-bottom:8px}.rx-line .fin{padding:8px 10px;font-size:13px}.rx-line .rm{all:unset;cursor:pointer;color:var(--ink-faint);display:grid;place-items:center;height:34px;border-radius:8px}.rx-line .rm:hover{color:var(--accent);background:var(--accent-tint)}.rx-add{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--primary);margin:2px 28px 0;display:inline-flex;gap:6px;align-items:center}.rx-add:hover{text-decoration:underline}.rx-notes{padding:14px 28px 6px}.script{padding:28px}.script-h{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--primary);padding-bottom:14px;margin-bottom:4px}.script-h .rx-sym{font-family:Fraunces,serif;font-size:42px;color:var(--primary);line-height:.8}.script-h .clinic{text-align:right}.script-h .clinic b{font-family:Fraunces,serif;font-size:17px;font-weight:500;display:block}.script-h .clinic small{font-size:11px;color:var(--ink-soft)}.script-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.script-meta .k{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.smed{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.smed b{font-weight:600}.smed small{display:block;color:var(--ink-soft);font-size:12px}.smed .sig{text-align:right;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.rx-title{text-align:center;font-family:Fraunces,serif;font-size:18px;font-weight:500;margin:6px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.rx-table{width:100%;border-collapse:collapse;margin-top:6px}.rx-table th{background:var(--primary-tint);color:var(--primary);font-size:11px;text-transform:uppercase;letter-spacing:.03em;font-weight:700;padding:9px 12px;text-align:left;border:1px solid var(--line)}.rx-table td{padding:9px 12px;font-size:13px;border:1px solid var(--line);vertical-align:top}.rx-table th:first-child,.rx-table td:first-child{width:32px;text-align:center}.rx-notes-line{margin-top:14px;font-size:13px;color:var(--ink-soft)}.rx-sign{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px;font-size:12.5px;color:var(--ink-soft)}.rx-sign .sig{text-align:center}.rx-sign .docname{margin-top:32px;border-top:1px solid var(--line-strong);padding-top:5px;font-weight:600;color:var(--ink);min-width:170px}.visit-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;margin-bottom:18px;background:linear-gradient(120deg,var(--primary),#0F3E37);border:none;color:#eaf2ef;flex-wrap:wrap}.visit-hero h2{font-family:Fraunces,serif;font-weight:500;font-size:22px;color:#fff;letter-spacing:-.01em}.visit-hero p{font-size:13px;color:#a9c7bf;margin-top:4px;max-width:440px}.vh-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.vh-act .fin{background:#ffffff1f;border-color:#fff3;color:#fff}.vh-act .fin option{color:var(--ink)}.vh-act .btn-new{background:#fff;color:var(--primary)}.vh-act .btn-new:hover{background:#eaf2ef}.visit-top{display:flex;align-items:center;gap:16px;padding:18px 22px;flex-wrap:wrap}.visit-top .av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:16px}.visit-top .vmeta{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}.visit-top .vmeta label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}.visit-top .vmeta .fin{min-width:150px;font-size:13px;padding:8px 10px}.vtabs{display:flex;gap:4px;padding:0 22px;border-bottom:1px solid var(--line)}.vtab{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-soft);padding:13px 16px;border-bottom:2.5px solid transparent;margin-bottom:-1px}.vtab .n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--bg);color:var(--ink-soft);font-weight:700}.vtab:hover{color:var(--ink)}.vtab.on{color:var(--primary);border-bottom-color:var(--primary)}.vtab.on .n{background:var(--primary);color:#fff}.vpanel{padding:22px}.dx-palette{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.findings{margin-top:16px}.find-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.find-row .sw{width:12px;height:12px;border-radius:4px;flex-shrink:0}.find-row .ft{font-size:13.5px;font-weight:600;min-width:150px}.find-row .ft small{display:block;font-weight:500;color:var(--ink-soft);font-size:11.5px}.find-row .fnote{flex:1}.find-row .rm{all:unset;cursor:pointer;color:var(--ink-faint);padding:4px;border-radius:6px}.find-row .rm:hover{color:var(--accent);background:var(--accent-tint)}.find-empty{padding:24px;text-align:center;color:var(--ink-faint);font-size:13px;border:1.5px dashed var(--line);border-radius:12px}.proc-quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.proc-chip{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--primary);background:var(--primary-tint);padding:7px 12px;border-radius:20px;display:inline-flex;gap:6px;align-items:center}.proc-chip:hover{background:var(--primary);color:#fff}.proc-chip span{opacity:.7;font-weight:500}.proc-line{display:grid;grid-template-columns:1fr 120px 32px;gap:10px;align-items:center;margin-bottom:8px}.proc-line .fin{font-size:13px;padding:9px 11px}.proc-line .rm{all:unset;cursor:pointer;color:var(--ink-faint);display:grid;place-items:center;height:36px;border-radius:8px}.proc-line .rm:hover{color:var(--accent);background:var(--accent-tint)}.inv-totals{margin-top:18px;border-top:1.5px solid var(--line-strong);padding-top:16px;max-width:340px;margin-left:auto}.tline{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--ink-soft);margin-bottom:10px}.tline .v{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.tline.grand{font-size:16px;color:var(--ink);font-weight:700;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.tline.grand .v{font-family:Fraunces,serif;font-size:24px;font-weight:500}.disc-input{display:flex;gap:6px;align-items:center}.disc-input .fin{width:90px;padding:7px 9px;font-size:13px;text-align:right}.disc-input select.fin{width:54px;text-align:left;padding-right:24px}.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;max-width:340px;margin-left:auto}.pay-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}.visit-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:16px;padding:16px 22px;background:var(--surface);border-top:1px solid var(--line);border-radius:0 0 16px 16px;flex-wrap:wrap}.visit-foot .vsum{font-size:13px;color:var(--ink-soft);display:flex;gap:8px;flex-wrap:wrap}.visit-foot .vsum b{color:var(--ink);font-weight:600}.vchip{background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--ink-soft)}.visit-foot .sp{margin-left:auto;display:flex;gap:10px}.visit-foot .btn{flex:none;padding:12px 22px}.pill.paid{background:var(--primary-tint);color:var(--primary)}.pill.partial{background:#fbeedf;color:#9c6b1e}.pill.unpaid{background:var(--accent-tint);color:#9c4421}.tx-bill{margin-top:2px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.tx-bill .lab{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;margin-bottom:9px}.tx-bill .row{display:flex;gap:8px;align-items:center}.tx-bill .row .fin{width:84px;font-size:13px;padding:8px 10px;text-align:right}.tx-bill .add{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:#fff;background:var(--primary);padding:8px 12px;border-radius:9px;white-space:nowrap}.tx-bill .add:hover{background:var(--primary-soft)}.find-row.on{background:var(--primary-tint)}.tooth-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-top:8px}.tooth-editor b{font-weight:600}.tooth-editor .fin{font-size:13px;padding:8px 10px}.tooth-editor .add{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:#fff;background:var(--primary);padding:8px 12px;border-radius:9px;white-space:nowrap}.tooth-editor .add:hover{background:var(--primary-soft)}.tooth-editor .done{font-size:12.5px;font-weight:700;color:var(--primary);white-space:nowrap}.tooth-editor .rm{all:unset;cursor:pointer;color:var(--ink-faint);display:grid;place-items:center;width:30px;height:30px;border-radius:8px}.tooth-editor .rm:hover{color:var(--accent);background:var(--accent-tint)}.branch-switch{display:flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:7px 11px;color:var(--primary);flex-shrink:0}.branch-switch svg{width:16px;height:16px;flex-shrink:0}.branch-switch select{all:unset;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;padding-right:2px}.view-fade-enter-active{animation:fade .4s ease both}.invoice-doc{background:#fff;color:var(--ink)}.inv-band{height:14px;background:var(--primary)}.inv-band.bottom{margin-top:28px}.inv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;background:#f4f1ea;padding:22px 28px}.inv-brand{display:flex;gap:14px;align-items:center}.inv-logo{width:54px;height:54px;border-radius:50%;background:var(--primary);display:grid;place-items:center;flex-shrink:0}.inv-logo svg{width:30px;height:30px}.inv-brand b{font-family:Fraunces,serif;font-size:18px;font-weight:500;display:block}.inv-brand small{display:block;font-size:11.5px;color:var(--ink-soft)}.inv-title{text-align:right;min-width:190px}.inv-title .big{font-family:Fraunces,serif;font-size:30px;font-weight:500;color:var(--ink-faint);letter-spacing:.04em}.inv-title .meta{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line-strong);padding-top:6px;margin-top:8px;font-size:12px}.inv-title .meta span{color:var(--ink-faint);font-weight:600;letter-spacing:.04em}.inv-title .meta b{font-variant-numeric:tabular-nums}.inv-billto{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 28px 4px}.inv-billto .lab{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:8px}.inv-billto b{font-size:14px;font-weight:600}.inv-billto>div>div:not(.lab){font-size:13px;color:var(--ink-soft)}.inv-table{width:100%;border-collapse:collapse;margin-top:14px}.inv-table th{background:var(--primary);color:#fff;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;padding:10px 28px;text-align:left}.inv-table th:not(:first-child){text-align:right}.inv-table td{padding:11px 28px;font-size:13px;border-bottom:1px solid var(--line)}.inv-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.inv-table tbody tr:nth-child(2n){background:var(--surface)}.inv-foot{display:flex;justify-content:space-between;gap:24px;padding:18px 28px 0;align-items:flex-start;flex-wrap:wrap}.inv-remarks{max-width:260px;font-size:12px;color:var(--ink-soft);line-height:1.6}.inv-remarks .lab{font-weight:700;color:var(--ink);margin-bottom:6px}.inv-totals2{min-width:0;flex:1;max-width:340px}.inv-totals2 .row{display:flex;justify-content:space-between;gap:24px;padding:7px 14px;font-size:12.5px;border-bottom:1px solid var(--line)}.inv-totals2 .row span:first-child{text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--ink-faint)}.inv-totals2 .row span:last-child{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.inv-totals2 .row.balance{background:var(--primary-tint);border:none;margin-top:8px;padding:12px 14px;gap:10px;align-items:center}.inv-totals2 .row.balance span:first-child{font-family:Fraunces,serif;text-transform:none;font-size:14px;color:var(--ink);letter-spacing:0;white-space:nowrap}.inv-totals2 .row.balance span:last-child{font-family:Fraunces,serif;font-size:20px;color:var(--primary)}.inv-pay{display:flex;align-items:flex-start;gap:18px;padding:16px 28px}.inv-qr{width:220px;height:220px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px;flex-shrink:0}.inv-pay-info{font-size:12.5px;color:var(--ink-soft);line-height:1.7}.inv-pay-info .lab{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-bottom:6px}.inv-pay-info b{color:var(--ink);font-weight:600}.cal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:4px}.cal-nav button{all:unset;cursor:pointer;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-soft)}.cal-nav button:hover{background:var(--bg);color:var(--ink)}.cal-nav button svg{width:16px;height:16px}.cal-title{font-family:Fraunces,serif;font-size:20px;font-weight:500;min-width:170px;text-align:center}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.cal-weekdays div{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);text-align:center;padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-cell{min-height:104px;border:1px solid var(--line);border-radius:12px;padding:7px 8px;cursor:pointer;background:var(--surface-2);transition:.12s;display:flex;flex-direction:column;gap:4px;overflow:hidden}.cal-cell:hover{border-color:var(--line-strong)}.cal-cell.dim{background:var(--surface);opacity:.5}.cal-cell.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-tint)}.cal-daynum{font-size:12.5px;font-weight:600;color:var(--ink-soft);align-self:flex-start;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.cal-cell.is-today .cal-daynum{background:var(--primary);color:#fff}.cal-chip{font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid;font-variant-numeric:tabular-nums}.cal-chip.booked{background:#eae6dc;color:var(--ink-soft);border-color:var(--ink-faint)}.cal-chip.confirmed{background:var(--primary-tint);color:var(--primary);border-color:var(--primary)}.cal-chip.arrived{background:var(--accent-tint);color:#9c4421;border-color:var(--accent)}.cal-more{font-size:10.5px;color:var(--ink-faint);font-weight:600}.appt-detail-row{display:flex;align-items:center;gap:12px;padding:11px 20px;border-top:1px solid var(--line)}.appt-detail-row .at{font-variant-numeric:tabular-nums;font-weight:700;color:var(--primary);width:54px;flex-shrink:0}.appt-detail-row .ai{flex:1}.appt-detail-row .ai b{font-size:13.5px;font-weight:600;display:block}.appt-detail-row .ai small{font-size:11.5px;color:var(--ink-soft)}@media print{body:has(.overlay.open)>#app{display:none!important}body:has(.overlay.open) .overlay.open{position:static!important;inset:auto!important;display:block!important;background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0!important}body:has(.overlay.open) .modal{width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important;border-radius:0!important;animation:none!important;background:#fff!important;overflow:visible!important}.modal-x,.pf-foot{display:none!important}.invoice{padding:0!important}.script{padding:14mm!important}body:has(.print-doc)>#app{display:none!important}.print-doc{display:block!important}@page{size:A4;margin:12mm 14mm}}.fin-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.fin-bar .seg{margin-bottom:0}.fin-date{width:auto;padding:8px 12px}.fin-lbl{font-size:12px;font-weight:600;color:var(--ink-soft)}.fin-export{margin-left:auto}.fin-export svg{width:15px;height:15px}.print-doc{display:none}.settings-wrap{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start}.settings-nav{padding:10px}.settings-nav-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:8px 12px 6px}.settings-nav button{all:unset;display:flex;align-items:center;gap:11px;width:100%;box-sizing:border-box;padding:11px 13px;border-radius:11px;cursor:pointer;font-size:14px;font-weight:500;color:var(--ink-soft);position:relative;transition:.15s}.settings-nav button svg{width:18px;height:18px;flex-shrink:0}.settings-nav button:hover{background:var(--bg);color:var(--ink)}.settings-nav button.on{background:var(--accent-tint);color:var(--accent)}.settings-nav button.on:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--accent)}.settings-panel{overflow:hidden}.settings-panel-head{padding:20px 24px;border-bottom:1px solid var(--line)}.settings-panel-head h2{font-family:Fraunces,serif;font-weight:500;font-size:20px;letter-spacing:-.01em}.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:24px}.set-fld{display:flex;flex-direction:column;gap:9px}.set-fld>span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.set-fld>span i{font-style:normal;color:var(--ink-faint);text-transform:none;letter-spacing:0;font-weight:500}.set-img{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.set-img-prev{max-width:160px;max-height:64px;object-fit:contain;border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--surface)}.set-img-empty{display:grid;place-items:center;width:160px;height:64px;border:1.5px dashed var(--line-strong);border-radius:10px;font-size:11.5px;color:var(--ink-faint)}.set-img-empty.brand-default{display:flex;align-items:center;justify-content:flex-start;gap:11px;width:auto;min-width:160px;border-style:solid;border-color:var(--line);padding:0 16px}.brand-default .brand-mark{width:40px;height:40px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(140deg,#2a7268,#0f3e37);box-shadow:inset 0 0 0 1px #ffffff1f}.brand-default .brand-mark svg{width:22px;height:22px}.brand-default .brand-word{font-family:Fraunces,serif;font-weight:500;font-size:16px;color:var(--ink);letter-spacing:-.01em}.set-img-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-foot{display:flex;align-items:center;gap:14px;padding:16px 24px;border-top:1px solid var(--line)}.settings-foot .btn{flex:none;display:inline-flex;align-items:center;gap:8px;padding:11px 22px}.settings-foot .btn svg{width:16px;height:16px}.set-flash{font-size:13px;font-weight:600;color:var(--teal)}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:1200px){.topbar{gap:12px;padding:0 18px}.search{width:auto;max-width:200px}.cols,.rep-grid,.inv-grid,.settings-wrap{grid-template-columns:1fr}}@media(max-width:992px){.topbar .view-title span{display:none}.search{max-width:150px}.grid-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.topbar{gap:8px;padding:0 12px}.search{display:none}.branch-switch select{font-size:12px}.grid-stats,.form-grid,.settings-form{grid-template-columns:1fr}.content{padding:20px 16px 48px}}@media(max-width:768px){.overlay{padding:12px}.modal{overflow-x:hidden}.inv-head{gap:12px;padding:16px}.inv-brand{gap:10px}.inv-logo{width:42px;height:42px}.inv-logo svg{width:24px;height:24px}.inv-brand b{font-size:16px}.inv-brand small{font-size:10px}.inv-title{min-width:0}.inv-title .big{font-size:24px}.inv-title .meta{gap:10px;font-size:10.5px;padding-top:5px;margin-top:6px}.inv-billto{padding:14px 16px 0}.inv-table{table-layout:fixed}.inv-table th,.inv-table td{padding:8px 10px;font-size:11px;overflow-wrap:anywhere}.inv-table th:nth-child(2),.inv-table td:nth-child(2){width:13%}.inv-table th:nth-child(3),.inv-table td:nth-child(3){width:24%}.inv-table th:nth-child(4),.inv-table td:nth-child(4){width:24%}.inv-foot{gap:14px;padding:14px 16px 0}.inv-remarks{flex:1;max-width:none;font-size:11px}.inv-totals2{min-width:0;max-width:190px;flex:0 0 auto}.inv-totals2 .row{gap:10px;padding:6px 10px;font-size:11px}.inv-totals2 .row.balance{padding:10px;gap:8px}.inv-totals2 .row.balance span:first-child{font-size:12.5px}.inv-totals2 .row.balance span:last-child{font-size:17px}.inv-pay{gap:12px;padding:14px 16px}.inv-qr{width:120px;height:120px}.inv-pay-info{font-size:11px}.script{padding:16px}.script-h .rx-sym{font-size:32px}.script-meta{grid-template-columns:1fr}.rx-table th,.rx-table td{padding:7px 9px;font-size:12px}.rx-sign{gap:14px}.rx-sign .docname{min-width:120px}}.m-app{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}.m-app a{text-decoration:none;color:inherit}.m-app .appbar{flex:0 0 auto;min-height:52px;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 16px 10px;background:var(--surface);border-bottom:1px solid var(--line)}.m-app .appbar .title{flex:1;min-width:0}.m-app .appbar .title b{font-family:Fraunces,serif;font-weight:600;font-size:20px;letter-spacing:-.01em;display:block;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-app .appbar .title small{font-size:11px;color:var(--ink-faint)}.m-app .ic-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--ink);flex:0 0 auto;cursor:pointer}.m-app .ic-btn svg{width:19px;height:19px}.m-app .ic-btn.accent{background:var(--primary);border-color:var(--primary);color:#fff}.m-app .bell{position:relative}.m-app .bell:after{content:"";position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface-2)}.m-app .profile-av{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);overflow:hidden;padding:0;background:var(--surface-2);flex:0 0 auto;cursor:pointer}.m-app .profile-av .av{width:100%;height:100%;border-radius:0;font-size:13px}.m-app .profile-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40}.m-app .profile-pop{position:absolute;z-index:41;right:16px;top:calc(50px + env(safe-area-inset-top));width:240px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px #141e1b29;padding:6px}.m-app .profile-pop-head{display:flex;gap:11px;align-items:center;padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.m-app .profile-pop-head .av{width:40px;height:40px;border-radius:12px;font-size:14px}.m-app .pp-id{min-width:0;display:flex;flex-direction:column}.m-app .pp-id strong{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-app .pp-id small{font-size:11.5px;color:var(--ink-soft)}.m-app .pp-id small.muted{color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-app .profile-pop-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 10px;border:none;background:none;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);border-radius:10px;cursor:pointer;text-align:left}.m-app .profile-pop-item:active{background:var(--surface-2)}.m-app .profile-pop-item svg{width:18px;height:18px}.m-app .profile-pop-item.danger{color:var(--accent)}.m-app .scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px 16px calc(96px + env(safe-area-inset-bottom))}.m-app .scroll::-webkit-scrollbar{width:0}.m-app .tabbar{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);display:flex;padding:8px 6px calc(18px + env(safe-area-inset-bottom));z-index:20}.m-app .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;justify-content:center;color:var(--ink-faint);cursor:pointer;font-size:10.5px;font-weight:600;letter-spacing:.01em;position:relative}.m-app .tab svg{width:23px;height:23px;stroke-width:1.7;fill:none;stroke:currentColor}.m-app .tab.on{color:var(--primary)}.m-app .tab.on svg{stroke-width:2}.m-app .tab .center{width:46px;height:46px;margin-top:-18px;border-radius:16px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px -6px #cf643899}.m-app .tab .center svg{width:24px;height:24px;stroke-width:2.4;stroke:currentColor}.m-app .card{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.m-app .card.flush{padding:4px 16px}.m-app .card+.card{margin-top:14px}.m-app .sec-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:22px 4px 10px}.m-app .sec-title:first-child{margin-top:4px}.m-app .row-sb{display:flex;align-items:center;justify-content:space-between}.m-app .av{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;flex:0 0 auto;font-family:Hanken Grotesk,sans-serif;object-fit:cover}.m-app .pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;letter-spacing:.01em}.m-app .pill.arrived{background:var(--accent-tint);color:#a84b22}.m-app .pill.confirmed{background:var(--primary-tint);color:var(--primary)}.m-app .pill.booked{background:#ece7dc;color:#7c786c}.m-app .pill.paid{background:#dceee9;color:#1c7a6b}.m-app .pill.unpaid{background:var(--accent-tint);color:#a84b22}.m-app .pill.active{background:#dceee9;color:#1c7a6b}.m-app .pill.muted{background:#ece7dc;color:#7c786c}.m-app .pill.course{background:#efe7d2;color:#8a7434}.m-app .chip-bal{font-weight:700;font-size:13px}.m-app .chip-bal.owed{color:var(--accent)}.m-app .chip-bal.clear{color:var(--teal)}.m-app .btn{box-sizing:border-box;border:none;border-radius:13px;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;padding:13px 16px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;color:var(--ink)}.m-app .btn.primary{background:var(--primary);color:#fff}.m-app .btn.soft{background:var(--primary-tint);color:var(--primary)}.m-app .btn.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong)}.m-app .btn svg{width:18px;height:18px;stroke-width:2}.m-app .mini{border:1px solid var(--line-strong);background:var(--surface-2);color:var(--primary);font-family:inherit;font-weight:700;font-size:12px;padding:7px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}.m-app .hello{font-family:Fraunces,serif;font-weight:600;font-size:25px;letter-spacing:-.02em;line-height:1.1}.m-app .hello+.sub{color:var(--ink-soft);font-size:13px;margin-top:3px}.m-app .branch-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--primary);margin-top:12px;cursor:pointer}.m-app .branch-chip svg{width:14px;height:14px;stroke-width:1.8}.m-app .stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px}.m-app .stat{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:13px 10px;text-align:center}.m-app .stat .n{font-family:Fraunces,serif;font-weight:600;font-size:23px;line-height:1}.m-app .stat .l{font-size:10.5px;color:var(--ink-faint);margin-top:5px;font-weight:600;letter-spacing:.02em}.m-app .stat.a .n{color:var(--accent)}.m-app .stat.p .n{color:var(--primary)}.m-app .stat.t .n{color:var(--teal)}.m-app .hero{margin-top:16px;background:linear-gradient(135deg,var(--primary),var(--primary-soft));color:#fff;border-radius:20px;padding:18px;position:relative;overflow:hidden}.m-app .hero h3{font-family:Fraunces,serif;font-weight:600;font-size:19px;line-height:1.2;margin-bottom:6px}.m-app .hero p{font-size:12.5px;line-height:1.4;opacity:.85;margin-bottom:14px;max-width:85%}.m-app .hero .go{background:#fff;color:var(--primary);border:none;border-radius:12px;padding:11px 16px;font-weight:700;font-family:inherit;font-size:13.5px;display:inline-flex;gap:7px;align-items:center;cursor:pointer;white-space:nowrap;max-width:100%}.m-app .hero .go svg{width:15px;height:15px;flex-shrink:0}.m-app .hero .tooth-bg{position:absolute;right:-10px;bottom:-18px;opacity:.16}.m-app .hero .tooth-bg svg{width:120px;height:120px}.m-app .lrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.m-app .lrow:last-child{border-bottom:none}.m-app .lrow .meta{flex:1;min-width:0}.m-app .lrow .meta b{font-size:14.5px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-app .lrow .meta small{font-size:12px;color:var(--ink-faint)}.m-app .lrow .time{font-family:Fraunces,serif;font-weight:600;font-size:14px;width:46px;flex:0 0 auto;color:var(--primary)}.m-app .chev{color:var(--ink-faint);flex:0 0 auto;display:inline-flex}.m-app .chev svg{width:18px;height:18px;stroke-width:2;fill:none;stroke:currentColor}.m-app .dot-alert{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 auto}.m-app .search{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:11px 14px;margin-bottom:12px}.m-app .search svg{width:18px;height:18px;stroke:var(--ink-faint);stroke-width:2;fill:none;flex:0 0 auto}.m-app .search input{border:none;background:none;outline:none;font-family:inherit;font-size:14.5px;width:100%;color:var(--ink)}.m-app .fchips{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;margin:-2px 0 6px}.m-app .fchips::-webkit-scrollbar{height:0}.m-app .fchip{flex:0 0 auto;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink-soft);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.m-app .fchip.on{background:var(--primary);border-color:var(--primary);color:#fff}.m-app .badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.m-app .badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px}.m-app .badge svg{width:13px;height:13px;stroke-width:2;fill:none;stroke:currentColor}.m-app .badge.warn{background:var(--accent-tint);color:#a84b22}.m-app .badge.mem{background:var(--primary-tint);color:var(--primary)}.m-app .pt-hd{display:flex;align-items:center;gap:14px}.m-app .pt-hd .av{width:56px;height:56px;border-radius:17px;font-size:20px}.m-app .pt-hd .nm{font-family:Fraunces,serif;font-weight:600;font-size:21px;line-height:1.1}.m-app .pt-hd .mt{font-size:12.5px;color:var(--ink-faint);margin-top:2px}.m-app .balcard{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-top:14px}.m-app .balcard .lbl{font-size:11px;color:var(--ink-faint);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.m-app .balcard .v{font-family:Fraunces,serif;font-weight:600;font-size:22px}.m-app .acts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px}.m-app .act{background:var(--surface-2);border:1px solid var(--line);border-radius:15px;padding:13px 6px;text-align:center;cursor:pointer}.m-app .act svg{width:21px;height:21px;stroke:var(--primary);stroke-width:1.8;fill:none}.m-app .act span{display:block;font-size:11px;font-weight:600;margin-top:6px;color:var(--ink-soft)}.m-app .hist{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.m-app .hist:last-child{border-bottom:none}.m-app .hist .tl{width:8px;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding-top:5px}.m-app .hist .tl i{width:9px;height:9px;border-radius:50%;background:var(--primary);flex:0 0 auto}.m-app .hist .tl span{width:2px;flex:1;background:var(--line)}.m-app .hist .c b{display:block;font-size:13.5px;font-weight:600}.m-app .hist .c small{font-size:12px;color:var(--ink-faint);display:block;margin-top:1px}.m-app .hist .c .dt{display:block;margin-bottom:2px;font-size:11px;color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.m-app .palette{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;margin-bottom:4px}.m-app .palette::-webkit-scrollbar{height:0}.m-app .pchip{flex:0 0 auto;display:flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface-2);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;color:var(--ink-soft)}.m-app .pchip .sw{width:13px;height:13px;border-radius:5px;border:1px solid rgba(0,0,0,.12)}.m-app .pchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.m-app .arch{display:flex;justify-content:center;gap:3px;margin:4px 0}.m-app .arch .gap{width:9px;flex:0 0 auto}.m-app .tooth{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;flex:1 1 0;min-width:0}.m-app .tooth .crown{width:100%;max-width:19px;height:24px;border-radius:6px 6px 5px 5px;border:1.4px solid #C9BFA6;background:#fcfaf4}.m-app .tooth .crown.missing{background:repeating-linear-gradient(45deg,#EDE7DA,#EDE7DA 2px,transparent 2px,transparent 4px);border-style:dashed;border-color:#c2bba8}.m-app .tooth .nm{font-size:8.5px;color:var(--ink-faint);font-weight:600}.m-app .midline{text-align:center;font-size:9px;color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase;margin:5px 0}.m-app .planrow{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}.m-app .planrow:last-child{border-bottom:none}.m-app .planrow .sw{width:11px;height:11px;border-radius:4px;flex:0 0 auto}.m-app .planrow .d{flex:1;min-width:0}.m-app .planrow .d b{font-size:13.5px;font-weight:600;display:block}.m-app .planrow .d small{font-size:11.5px;color:var(--ink-faint)}.m-app .planrow .cost{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.m-app .planrow .cost-edit{display:inline-flex;align-items:center;gap:1px;color:var(--ink-faint)}.m-app .planrow .cost-edit input{width:56px;font-family:inherit;font-weight:700;font-size:14px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:8px;padding:5px 7px;outline:none}.m-app .planrow .cost-edit input:focus{border-color:var(--primary)}.m-app .planrow .fprice{display:inline-flex;align-items:center;gap:1px;color:var(--ink)}.m-app .planrow .fprice input{width:48px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:7px;padding:2px 5px;outline:none}.m-app .planrow .fprice input:focus{border-color:var(--primary)}.m-app .planfoot{display:flex;justify-content:space-between;align-items:center;padding-top:13px;margin-top:5px;border-top:1.5px solid var(--line-strong)}.m-app .planfoot .v{font-family:Fraunces,serif;font-weight:600;font-size:20px;color:var(--primary)}.m-app .empty{text-align:center;color:var(--ink-faint);font-size:13px;padding:22px 10px}.m-app .seg{display:flex;background:#e7e1d6;border-radius:13px;padding:4px;margin-bottom:14px}.m-app .seg button{flex:1;border:none;background:none;font-family:inherit;font-weight:700;font-size:13px;color:var(--ink-soft);padding:9px;border-radius:10px;cursor:pointer}.m-app .seg button.on{background:var(--surface-2);color:var(--primary);box-shadow:0 1px 3px #00000014}.m-app .inv-li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:13.5px}.m-app .inv-li:last-child{border-bottom:none}.m-app .inv-li .q{color:var(--ink-faint);font-size:12px}.m-app .tot-li{display:flex;justify-content:space-between;padding:5px 0;font-size:13.5px;color:var(--ink-soft)}.m-app .tot-li.grand{font-family:Fraunces,serif;font-weight:600;font-size:19px;color:var(--ink);padding-top:11px;margin-top:6px;border-top:1.5px solid var(--line-strong)}.m-app .menu{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.m-app .mitem{display:flex;align-items:center;gap:13px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer}.m-app .mitem:last-child{border-bottom:none}.m-app .mitem .mi{width:36px;height:36px;border-radius:11px;background:var(--primary-tint);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.m-app .mitem .mi svg{width:19px;height:19px;stroke-width:1.8;fill:none;stroke:currentColor}.m-app .mitem b{flex:1;font-size:14.5px;font-weight:600}.m-app .mitem small{color:var(--ink-faint);font-size:12px}.m-app .stockbar{display:inline-block;width:64px;height:7px;border-radius:5px;background:#e7e1d6;overflow:hidden;vertical-align:middle;margin-right:7px}.m-app .stockbar i{display:block;height:100%;border-radius:5px}.m-app .low-tag{font-size:9.5px;font-weight:800;color:var(--accent);margin-left:5px;letter-spacing:.04em}.m-app .bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:8px}.m-app .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.m-app .bar .col{width:100%;border-radius:7px 7px 0 0;background:linear-gradient(var(--primary-soft),var(--primary));min-height:3px}.m-app .bar small{font-size:10px;color:var(--ink-faint);font-weight:600}.m-app .hbar{margin:9px 0}.m-app .hbar .lab{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}.m-app .hbar .lab b{font-weight:600}.m-app .hbar .lab span{color:var(--ink-faint)}.m-app .hbar .track{height:9px;background:#e7e1d6;border-radius:6px;overflow:hidden}.m-app .hbar .fill{height:100%;border-radius:6px}.m-app .more-foot{margin-top:16px}.m-app .lang-seg{display:inline-flex;background:var(--bg);border:1px solid var(--line-strong);border-radius:11px;padding:3px;gap:3px}.m-app .lang-seg button{border:none;background:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;color:var(--ink-soft);padding:7px 14px;border-radius:8px}.m-app .lang-seg button.on{background:var(--surface-2);color:var(--primary);box-shadow:var(--shadow)}.m-app .toast{position:absolute;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%,18px);background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:11px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:50;box-shadow:0 10px 24px -8px #00000080;max-width:80%;text-align:center}.m-app .toast.show{opacity:1;transform:translate(-50%)}.m-app .fade{animation:mFade .28s ease}@keyframes mFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.m-app .m-field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.m-app .m-field>span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.m-app .m-input{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:11px;padding:11px 12px;outline:none}.m-app textarea.m-input{resize:vertical;min-height:64px}.m-app .m-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.m-app .add-row{width:100%;border:1px dashed var(--line-strong);background:none;color:var(--primary);font-family:inherit;font-weight:700;font-size:13px;padding:11px;border-radius:12px;cursor:pointer;margin-top:12px}.m-app .rm-x{border:none;background:none;color:var(--ink-faint);font-size:20px;line-height:1;cursor:pointer;padding:0 4px;flex:0 0 auto}.m-app .rx-badge{width:34px;height:34px;border-radius:10px;background:var(--primary-tint);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.m-app .rx-badge svg{width:18px;height:18px}.m-app .rx-meds{margin-top:10px}.m-app .rx-med{font-size:13px;color:var(--ink);line-height:1.45;padding:9px 0;border-top:1px solid var(--line)}.m-app .rx-med:first-child{border-top:none}.m-app .chist{padding:12px 0;border-top:1px solid var(--line)}.m-app .chist:first-child{border-top:none}.m-app .chist-date{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);margin-bottom:8px}.m-app .chist-tags{display:flex;flex-wrap:wrap;gap:6px}.m-app .chist-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 10px}.m-app .chist-tag .sw{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.m-app .preview-row{display:flex;gap:10px;margin-bottom:6px}.m-app .preview-row .btn{flex:1;min-width:0;padding:9px 10px;font-size:12.5px;gap:6px;white-space:nowrap}.m-app .preview-row .btn svg{width:15px;height:15px;flex-shrink:0}.m-app .vfoot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.m-app .vfoot .ftot{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.m-app .vfoot .ftot .v{font-family:Fraunces,serif;font-weight:600;font-size:22px;color:var(--primary)}.m-app .vcancel{display:block;width:100%;text-align:center;border:none;background:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-faint);padding:12px 0 2px}
