@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary:#1d5c57;--primary-hover:#164a46;--primary-soft:#e8f2f0;--accent:#2a7068;--bg:#f4f7f6;--surface:#fff;--surface-alt:#f8fbfa;--border:#e1e9e7;--border-strong:#cfdcd9;--text:#1b2b29;--muted:#6b7c79;--danger:#c0392b;--danger-soft:#fdf0ef;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #1028250d, 0 6px 20px #1028250d;--shadow-lg:0 18px 50px #1028252e;--bottom-nav-h:0px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:Plus Jakarta Sans Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100dvh;margin:0}body.no-scroll{overflow:hidden}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--primary)}code{background:var(--primary-soft);border-radius:5px;padding:1px 6px;font-size:.9em}.accent{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12.5px}.topbar{z-index:30;-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top);background:#ffffffeb;position:sticky;top:0}.topbar-inner{align-items:center;gap:24px;max-width:1120px;height:62px;margin:0 auto;padding:0 20px;display:flex}.brand{letter-spacing:-.01em;color:var(--primary);align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex}.brand img{border-radius:9px}.tabs-top{gap:4px;margin-right:auto;display:flex}.tabs-top .tab{color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.tabs-top .tab:hover{background:var(--surface-alt);color:var(--text)}.tabs-top .tab.is-active{background:var(--primary-soft);color:var(--primary)}.install-btn{margin-left:auto}.tabs-top+.install-btn{margin-left:0}.main{max-width:1120px;padding:28px 20px calc(48px + var(--bottom-nav-h));margin:0 auto}.tabs-bottom{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:26px;font-weight:800}.page-sub{color:var(--muted);margin-top:2px}.head-actions{flex-wrap:wrap;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 18px;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{height:34px;padding:0 12px;font-size:13px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary-soft)}.btn-ghost{color:var(--muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-alt);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a5301f}.btn-danger-text,.btn-danger-text:hover:not(:disabled){color:var(--danger)}.btn-danger-text:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--muted);border-radius:9px;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-alt);color:var(--text)}.icon-btn-danger{color:var(--danger)}.icon-btn-danger:hover{background:var(--danger-soft);color:var(--danger);border-color:#f2c9c4}.link-btn{color:var(--primary);background:0 0;border:none;align-items:center;gap:6px;margin-top:14px;padding:6px 4px;font-size:14px;font-weight:700;display:inline-flex}.link-btn:hover{text-decoration:underline}.form{gap:16px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{gap:6px;display:grid}.field-label{color:var(--text);font-size:13px;font-weight:700}.field-hint{color:var(--muted);font-size:12px}.field-error{color:var(--danger);font-size:12px;font-weight:600}.input{border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;outline:none;width:100%;height:44px;padding:0 14px;font-weight:600;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:#a3b1ae;font-weight:500}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1d5c5724}.input-error{border-color:var(--danger)}.input-num{text-align:center;-moz-appearance:textfield;padding:0 6px}.input-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.per-tablet-preview{background:var(--primary-soft);color:var(--primary);border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:600;display:flex}.per-tablet-preview strong{font-size:18px}.search-box{color:var(--muted);align-items:center;margin-bottom:16px;display:flex;position:relative}.search-box>svg{pointer-events:none;position:absolute;left:14px}.search-box input{border:1px solid var(--border-strong);background:var(--surface);width:100%;height:48px;box-shadow:var(--shadow);border-radius:12px;outline:none;padding:0 44px;font-weight:500}.search-box input::-webkit-search-cancel-button{display:none}.search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1d5c5724}.search-clear{background:var(--surface-alt);width:28px;height:28px;color:var(--muted);border:none;border-radius:50%;place-items:center;display:grid;position:absolute;right:10px}.med-row{border-top:1px solid var(--border);grid-template-columns:minmax(180px,2.4fr) 1fr .7fr 1fr 96px;align-items:center;gap:12px;padding:14px 20px;display:grid}.med-row-head,.item-head{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-alt);font-size:11.5px;font-weight:700}.med-row-head{border-radius:var(--radius) var(--radius) 0 0;border-top:none;padding-top:12px;padding-bottom:12px}.med-name{font-weight:700}.row-actions{justify-content:flex-end;gap:8px;display:flex}.invoice{margin-bottom:18px;padding:20px;scroll-margin-top:80px}.invoice-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.invoice-tag{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:800;display:inline-block}.patient-field{max-width:340px;margin-bottom:16px}.items{border:1px solid var(--border);border-radius:12px}.item-row{border-top:1px solid var(--border);grid-template-columns:minmax(220px,2.6fr) 1fr .7fr 1fr .8fr 1.1fr 56px;align-items:center;gap:12px;padding:10px 14px;display:grid}.item-head{border-top:none;border-radius:12px 12px 0 0;padding-top:12px;padding-bottom:12px}.item-duration .input-num{max-width:64px;height:40px}.item-amount{color:var(--primary);font-weight:800}.item-remove{justify-content:center;display:flex}.items-empty{color:var(--muted);text-align:center;border-top:1px solid var(--border);padding:18px}.invoice-foot{border-top:1px dashed var(--border-strong);justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px;padding-top:14px;display:flex}.invoice-total{text-align:right;display:grid}.invoice-total span{color:var(--muted);font-size:12px}.invoice-total strong{color:var(--primary);letter-spacing:-.01em;font-size:24px;font-weight:800}.add-invoice{border:2px dashed var(--border-strong);border-radius:var(--radius);width:100%;color:var(--primary);background:0 0;justify-content:center;align-items:center;gap:8px;padding:18px;font-size:15px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.add-invoice:hover{background:var(--primary-soft);border-color:var(--primary)}.combo{position:relative}.combo-control{border:1px solid var(--border-strong);background:var(--surface);cursor:text;border-radius:10px;align-items:center;gap:8px;height:44px;padding:0 10px 0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.combo-open .combo-control{border-color:var(--primary);box-shadow:0 0 0 3px #1d5c5724}.combo-search,.combo-chevron{color:var(--muted);flex-shrink:0}.combo-chevron{transition:transform .15s}.combo-open .combo-chevron{transform:rotate(180deg)}.combo-input{text-overflow:ellipsis;background:0 0;border:none;outline:none;flex:1;min-width:0;height:100%;font-weight:600}.combo-input::placeholder{color:#a3b1ae;font-weight:500}.combo-clear{width:20px;height:20px;color:var(--muted);background:#e4ebe9;border:none;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.combo-clear:hover{color:var(--text);background:#d4dfdc}.combo-list{z-index:20;background:var(--surface);border:1px solid var(--border);min-width:260px;max-height:280px;box-shadow:var(--shadow-lg);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.combo-option{cursor:pointer;border-radius:8px;flex-direction:column;padding:9px 12px;display:flex}.combo-option.is-active{background:var(--surface-alt)}.combo-option.is-selected{background:var(--primary-soft)}.combo-option-name{font-weight:700}.combo-option-meta{color:var(--muted);font-size:12px}.combo-create{border-top:1px solid var(--border);color:var(--primary);border-radius:0 0 8px 8px;flex-direction:row;align-items:center;gap:8px;margin-top:4px;font-weight:700}.combo-create:first-child{border-top:none;margin-top:0}.combo-empty{color:var(--muted);text-align:center;padding:12px}.state-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-items:center;gap:10px;padding:48px 24px;display:grid}.state-card p{color:var(--muted);max-width:420px}.state-card .btn{margin-top:8px}.state-icon{background:var(--primary-soft);width:60px;height:60px;color:var(--primary);border-radius:18px;place-items:center;display:grid}.skeleton-row{background:linear-gradient(90deg,#eef3f2 25%,#f7faf9 50%,#eef3f2 75%) 0 0/200% 100%;border-radius:10px;height:58px;margin:12px 16px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.modal-backdrop{z-index:50;background:#0f1e1c73;place-items:center;padding:20px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-height:calc(100dvh - 40px);box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;animation:.18s ease-out pop;display:flex}.modal-md{max-width:500px}.modal-sm{max-width:400px}.modal-head{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.modal-head h2{font-size:18px;font-weight:800}.modal-head .icon-btn{border:none}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px 18px;display:flex}.confirm-text{color:var(--muted)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toasts{z-index:60;left:50%;top:calc(72px + env(safe-area-inset-top));pointer-events:none;gap:8px;width:min(420px,100% - 32px);display:grid;position:fixed;transform:translate(-50%)}.toast{color:#fff;background:var(--primary);box-shadow:var(--shadow-lg);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;animation:.18s ease-out pop}.toast-error{background:var(--danger)}.sheets{z-index:40;right:20px;bottom:calc(20px + var(--bottom-nav-h) + env(safe-area-inset-bottom));gap:12px;width:min(400px,100% - 24px);display:grid;position:fixed}.sheet{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:18px;padding:18px;animation:.22s ease-out pop;position:relative}.sheet-close{border:none;width:30px;height:30px;position:absolute;top:10px;right:10px}.sheet-row{align-items:center;gap:14px;padding-right:24px;display:flex}.sheet h3{font-size:16px;font-weight:800}.sheet p{color:var(--muted);font-size:13.5px}.sheet-icon{border-radius:13px;flex-shrink:0;width:52px;height:52px}.sheet-badge{background:var(--primary-soft);width:44px;height:44px;color:var(--primary);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.sheet-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.ios-steps{background:var(--surface-alt);border-radius:12px;gap:8px;margin:14px 0 0;padding:14px 14px 14px 34px;font-size:14px;display:grid}.inline-icon{vertical-align:-4px;color:#007aff}@media (width<=860px){.item-row{grid-template-columns:repeat(3,1fr);gap:10px 12px;padding:14px}.item-head{display:none}.item-row:nth-child(2){border-top:none}.item-med{grid-column:1/-1;gap:8px;display:flex}.item-med .combo{flex:1;min-width:0}.item-row{position:relative}.item-row>[data-label]:before{content:attr(data-label);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:700;display:block}.item-duration .input-num{max-width:none}.item-amount{text-align:right;grid-column:span 2;align-self:end;padding-bottom:8px;font-size:17px}.item-remove{position:absolute;top:14px;right:14px}.item-med{padding-right:48px}}@media (width<=720px){:root{--bottom-nav-h:64px}.topbar-inner{height:56px;padding:0 16px}.tabs-top{display:none}.tabs-bottom{z-index:30;height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);background:#fffffff5;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.tabs-bottom .tab{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:700;text-decoration:none;display:flex}.tabs-bottom .tab.is-active{color:var(--primary)}.main{padding:20px 14px calc(32px + var(--bottom-nav-h) + env(safe-area-inset-bottom))}.page-head h1{font-size:22px}.head-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.head-actions .btn-primary{order:-1;grid-column:1/-1}.head-actions .btn-danger-text{order:1}.invoice{padding:16px}.patient-field{max-width:none}.invoice-foot{flex-direction:column;align-items:stretch}.invoice-total strong{font-size:22px}.med-row{grid-template-columns:repeat(3,1fr);gap:8px 12px;padding:14px 16px;position:relative}.med-row-head{display:none}.med-row:nth-child(2){border-top:none}.med-name{grid-column:1/-1;padding-right:90px;font-size:15.5px}.med-row>[data-label]:before{content:attr(data-label);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;display:block}.row-actions{position:absolute;top:10px;right:12px}.form-row{grid-template-columns:1fr}.modal-backdrop{place-items:end stretch;padding:0}.modal{max-width:none;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0}.sheets{width:auto;left:12px;right:12px;bottom:calc(12px + var(--bottom-nav-h) + env(safe-area-inset-bottom))}}
