@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@400;500;600;700&family=Pridi:wght@500;600&display=swap";:root{--ink:#18352c;--forest:#214d3d;--cream:#f4efe5;--paper:#fffdf8;--line:#d8d6ca;--gold:#b58a42;--red:#b44b3e;--amber:#d48a2c;--green:#3d7a5d}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);margin:0;font-family:IBM Plex Sans Thai,sans-serif}button,input,select{font:inherit}main{max-width:1480px;margin:auto;padding:0 32px}header{border-bottom:1px solid #cbc8bb;justify-content:space-between;align-items:center;height:88px;display:flex}.brand{align-items:center;gap:12px;display:flex}.mark{background:var(--forest);color:#fff;border-radius:50% 50% 46% 54%;place-items:center;width:46px;height:46px;font-family:Pridi;font-size:25px;display:grid}.brand b{letter-spacing:.14em;font-size:18px}.brand small{color:#61736b;display:block}.date{color:#68776f;font-size:14px}.hero{justify-content:space-between;align-items:end;gap:40px;padding:58px 0 48px;display:flex}.eyebrow{letter-spacing:.24em;color:var(--gold);font-size:12px;font-weight:700}.hero h1{letter-spacing:-.04em;margin:8px 0 18px;font:600 clamp(45px,7vw,90px)/.98 Pridi,serif}.hero h1 em{color:var(--forest);font-style:normal}.intro{color:#596c64;max-width:520px;font-size:18px}.summary{background:#fffdf88c;border:1px solid #cbc8bb;display:flex}.summary div{border-right:1px solid #cbc8bb;min-width:130px;padding:22px 28px}.summary div:last-child{border:0}.summary strong{font:600 36px Pridi;display:block}.summary span{color:#64746d;font-size:13px}.summary .danger strong{color:var(--red)}.summary .warn strong{color:var(--amber)}.toolbar{z-index:10;background:var(--forest);align-items:center;gap:10px;padding:14px;display:flex;position:sticky;top:0;box-shadow:0 8px 24px #18352c22}.search{background:#fff;flex:1;align-items:center;gap:10px;min-width:240px;padding:0 16px;display:flex}.search span{font-size:27px}.search input{border:0;outline:0;width:100%;height:48px}.toolbar select{background:#fff;border:0;height:48px;padding:0 35px 0 14px}.tabs{gap:4px;display:flex}.tabs button,.export{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff38;height:48px;padding:0 16px}.tabs button.active{color:var(--forest);background:#fff}.export{background:var(--gold);border-color:var(--gold);font-weight:600}.list-head{justify-content:space-between;align-items:center;padding:32px 4px 16px;display:flex}.list-head div{align-items:baseline;gap:16px;display:flex}.list-head span{color:#6e7a75;font-size:14px}.list-head button{color:var(--red);cursor:pointer;background:0 0;border:0}.stock-list{gap:28px;display:grid}.stock-category{gap:8px;display:grid}.stock-category-head{background:var(--forest);color:#fff;grid-template-columns:54px 1fr auto;align-items:center;gap:14px;height:auto;min-height:78px;padding:14px 20px;display:grid}.stock-category-head>span{color:#d9be87;border-right:1px solid #ffffff35;font:600 30px Pridi}.stock-category-head h2{margin:0;font:600 25px Pridi}.stock-category-head p{color:#d2ddd7;margin:0;font-size:12px}.category-stats{text-align:right;display:grid}.category-stats b{font-size:14px}.category-stats small{color:#efd49c}.stock-category-items{gap:8px;display:grid}.stock-card{background:var(--paper);border:1px solid var(--line);grid-template-columns:8px minmax(280px,1fr) 95px 190px 90px 150px;align-items:center;gap:20px;padding:18px 22px;transition:all .2s;display:grid}.stock-card:hover{transform:translateY(-1px);box-shadow:0 8px 25px #18352c13}.status-dot{background:var(--green);width:8px;height:100%;min-height:66px}.stock-card.low .status-dot{background:var(--amber)}.stock-card.empty .status-dot{background:var(--red)}.product h2{margin:5px 0 3px;font-size:18px}.product p{color:#7a857f;margin:0;font-size:13px}.meta{align-items:center;gap:6px;display:flex}.meta span{background:#eef0e9;padding:2px 8px;font-size:11px}.meta code{color:#77847e;font-size:11px}.system-qty{text-align:center;border-left:1px solid var(--line)}.system-qty small,.count small{color:#7a857f;font-size:12px;display:block}.system-qty strong{margin-right:5px;font:600 30px Pridi;display:inline-block}.system-qty span{font-size:12px}.count{text-align:center}.count>div{margin-top:5px;display:flex}.count button,.count input{border:1px solid var(--line);text-align:center;background:#fff;width:46px;height:38px}.count button{cursor:pointer;color:var(--forest);font-size:20px}.count input{border-left:0;border-right:0;width:68px;font-weight:700}.badge{text-align:center;border:1px solid;padding:6px 9px;font-size:12px}.badge.ok{color:var(--green);background:#edf5ef}.badge.low{color:#9a5b11;background:#fff3df}.badge.empty{color:var(--red);background:#fbecea}.proclinic{color:var(--forest);text-underline-offset:3px;font-size:12px}.empty-state{text-align:center;background:var(--paper);color:#718078;padding:80px}footer{color:#66756e;border-top:1px solid #cbc8bb;justify-content:space-between;margin-top:45px;padding:28px 4px 50px;font-size:13px;display:flex}.daily-check{background:#e8dfca;border:1px solid #c9b98d;grid-template-columns:minmax(210px,1fr) minmax(250px,1.4fr) auto auto auto;align-items:center;gap:10px;margin:22px 0 0;padding:16px;display:grid}.daily-check>div{align-items:center;gap:12px;display:flex}.daily-check label small{color:#6f705f;display:block}.step{color:var(--gold);font:600 30px Pridi}.daily-check input{background:#fffdf8;border:1px solid #b8ad91;height:46px;padding:0 14px}.daily-check button{border:1px solid var(--forest);height:46px;color:var(--forest);cursor:pointer;background:0 0;padding:0 15px}.daily-check .save{background:var(--forest);color:#fff}.daily-check button:disabled{opacity:.45;cursor:not-allowed}.print-report{display:none}.followup-alert{border:2px solid var(--amber);background:#fff8e9;margin:14px 0 0}.followup-head{background:#f3dfb7;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.followup-head span{letter-spacing:.16em;color:#95601a;font-size:11px}.followup-head h2{margin:0;font:600 24px Pridi}.followup-head button{color:#76501e;cursor:pointer;background:0 0;border:0}.followup-list{gap:1px;display:grid}.followup-list article{border-top:1px solid #ead9b8;grid-template-columns:95px 1fr auto;align-items:center;gap:14px;padding:13px 18px;display:grid}.followup-time b,.followup-time span{display:block}.followup-time b{color:var(--red)}.followup-time span{color:#7a6c56;font-size:11px}.followup-list h3{margin:0;font-size:16px}.followup-list p{color:#756d5e;margin:2px 0;font-size:12px}.followup-list a{color:var(--forest);font-size:12px}.followup-list>article>button{background:var(--forest);color:#fff;cursor:pointer;border:0;padding:9px 13px}.assistant-checklist{margin:22px 0 34px}.checklist-title{justify-content:space-between;align-items:end;padding:28px 4px 16px;display:flex}.checklist-title h2{margin:0;font:600 36px Pridi}.checklist-title p{margin:0}.checklist-title>div>span{color:#718078;font-size:13px}.progress-ring{align-items:baseline;display:flex}.progress-ring strong{color:var(--forest);font:600 42px Pridi}.progress-ring span{color:#718078}.progress-track{background:#d8d3c4;height:6px;margin-bottom:16px}.progress-track i{background:var(--gold);height:100%;transition:width .25s;display:block}.checklist-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.task-group{background:var(--paper);border:1px solid var(--line)}.task-group>header{background:#eef0e9;border:0;align-items:center;height:auto;min-height:74px;padding:13px 16px;display:flex}.task-group h3{margin:0;font:600 20px Pridi}.task-group header p{color:#6d7872;margin:0;font-size:12px}.task-group header b{color:var(--gold);margin-left:auto}.task-group label{cursor:pointer;border-top:1px solid #ebe8df;grid-template-columns:22px 32px 1fr;align-items:start;gap:7px;padding:9px 14px;font-size:14px;display:grid}.task-group label:hover{background:#f5f3eb}.task-group label.done{color:#84908b;text-decoration:line-through}.task-group input{width:17px;height:17px;accent-color:var(--forest)}.task-number{color:var(--gold);font:600 11px/20px monospace}.daily-notes{background:var(--paper);border:1px solid var(--line);margin-top:12px;padding:16px;display:block}.daily-notes b{margin-bottom:8px;display:block}.daily-notes textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:80px;font:inherit;background:#faf8f2;padding:12px}.closing-form{grid-template-columns:1.2fr 1fr;gap:12px;margin-top:12px;display:grid}.finance-box,.approval-box{background:var(--paper);border:1px solid var(--line);gap:12px;padding:18px;display:grid}.box-heading{border-bottom:1px solid var(--line);padding-bottom:10px}.box-heading span{letter-spacing:.18em;color:var(--gold);font-size:11px}.box-heading h3{margin:2px 0;font:600 22px Pridi}.finance-box>label:not(.accounting-check),.approval-box label{grid-template-columns:1fr 1.2fr;align-items:center;gap:12px;display:grid}.finance-box label span,.approval-box label span{color:#607069;font-size:13px}.finance-box input,.approval-box input{border:1px solid var(--line);height:42px;font:inherit;background:#faf8f2;padding:0 12px}.finance-box>label:not(.accounting-check) input{text-align:right;font-weight:600}.net-total{background:var(--forest);color:#fff;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.net-total strong{font:600 23px Pridi}.accounting-check{cursor:pointer;background:#eef0e9;align-items:center;gap:9px;padding:10px 12px;display:flex}.accounting-check input{width:19px;height:19px;accent-color:var(--forest)}.patient-ledger{background:var(--paper);border:1px solid var(--line);margin-top:12px;padding:20px}.ledger-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding-bottom:14px;display:flex}.ledger-heading p{margin:0}.ledger-heading h2{margin:0;font:600 28px Pridi}.ledger-heading span{color:#718078;font-size:12px}.ledger-heading>strong{color:var(--forest);font:600 38px Pridi}.ledger-heading small{font:400 13px sans-serif}.patient-form{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;display:grid}.patient-form label{gap:4px;display:grid}.patient-form label span{color:#617069;font-size:11px}.patient-form input,.patient-form select{border:1px solid var(--line);background:#faf8f2;min-width:0;height:40px;padding:0 10px}.patient-form .wide{grid-column:span 2}.patient-form button,.sync-finance{background:var(--forest);color:#fff;cursor:pointer;border:0;font-weight:600}.patient-form button:disabled{opacity:.4}.patient-table-wrap{margin-top:16px;overflow:auto}.patient-table{border-collapse:collapse;width:100%;min-width:1000px;font-size:12px}.patient-table th{text-align:left;background:#eef0e9;padding:8px}.patient-table td{border-bottom:1px solid #ebe8df;padding:7px 8px}.patient-table button{color:var(--red);cursor:pointer;background:0 0;border:0}.case-totals{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;display:grid}.case-totals div{background:#eef0e9;padding:12px}.case-totals span{color:#69756f;font-size:11px;display:block}.case-totals strong{font:600 21px Pridi}.ledger-summaries{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px;display:grid}.ledger-summaries>div{border:1px solid var(--line);padding:12px}.ledger-summaries h3{margin:0 0 6px;font:600 17px Pridi}.ledger-summaries p{border-top:1px solid #eee;justify-content:space-between;gap:8px;margin:0;padding:5px 0;font-size:11px;display:flex}.sync-finance{margin-top:12px;padding:10px 16px}.program-settings{border:1px solid var(--line);background:#f5f2e9;margin-top:14px}.program-settings summary{cursor:pointer;padding:11px 14px;font-weight:600}.program-settings summary span{float:right;color:var(--gold);font-size:12px}.program-add{border-top:1px solid var(--line);grid-template-columns:1fr 180px 150px auto;gap:8px;padding:12px;display:grid}.program-add input,.program-add select{border:1px solid var(--line);height:40px;padding:0 10px}.program-add button{background:var(--forest);color:#fff;cursor:pointer;border:0;padding:0 16px}.program-category-list{gap:12px;padding:0 12px 12px;display:grid}.program-category-list section{border:1px solid var(--line);background:#eef0e9}.program-category-list h3{margin:0;padding:8px 10px;font:600 16px Pridi}.program-category-list h3 span{float:right;color:#6c7771;font:400 11px IBM Plex Sans Thai}.program-price-list{gap:6px;padding:0 8px 8px;display:grid}.program-price-list>div{border:1px solid var(--line);background:#fff;grid-template-columns:minmax(220px,1fr) 180px auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.program-price-list b{font-size:12px}.program-price-list label{align-items:center;gap:6px;display:flex}.program-price-list label span{color:#617069;white-space:nowrap;font-size:11px}.program-price-list input{border:1px solid var(--line);text-align:right;width:100%;height:34px;padding:0 8px;font-weight:600}.program-price-list button{color:var(--red);cursor:pointer;background:0 0;border:0}.discount-field>div{gap:3px;display:flex}.discount-field>div button{height:26px;color:var(--forest);background:#e8dfca;flex:1;font-size:11px}.discount-field>div button:hover{background:var(--gold);color:#fff}@media (width<=1000px){main{padding:0 18px}.hero{flex-direction:column;align-items:start}.summary{width:100%}.summary div{flex:1}.toolbar{flex-wrap:wrap}.search{flex-basis:60%}.tabs{order:3;width:100%}.tabs button{flex:1}.stock-card{grid-template-columns:7px 1fr 80px 170px}.badge,.proclinic{display:none}.daily-check{grid-template-columns:1fr 1.5fr auto auto}.daily-check .save{grid-column:1/-1}}@media (width<=820px){.checklist-groups,.closing-form{grid-template-columns:1fr}}@media (width<=1000px){.patient-form{grid-template-columns:repeat(2,1fr)}.ledger-summaries{grid-template-columns:1fr}.case-totals{grid-template-columns:repeat(2,1fr)}}@media (width<=680px){.program-add,.program-price-list>div{grid-template-columns:1fr}.program-add button{height:40px}.program-price-list button{text-align:left}.followup-list article{grid-template-columns:70px 1fr}.followup-list>article>button{grid-column:1/-1}.patient-form .wide{grid-column:span 1}main{padding:0 10px}header{height:74px}.date{display:none}.hero{padding:35px 4px 30px}.summary div{min-width:0;padding:15px 10px}.summary strong{font-size:28px}.summary span{font-size:11px}.toolbar{margin:0 -10px}.toolbar select,.export{flex:1}.daily-check{grid-template-columns:1fr 1fr}.daily-check>div,.daily-check input,.daily-check .save{grid-column:1/-1}.checklist-title h2{font-size:27px}.stock-card{grid-template-columns:6px 1fr 130px;gap:10px;padding:14px 10px}.system-qty{display:none}.product h2{font-size:15px}.count button{width:34px}.count input{width:48px}.list-head span,.meta span:nth-child(2){display:none}footer{flex-direction:column;gap:6px}}@media print{@page{size:A4 landscape;margin:12mm}body{color:#111;background:#fff;font-family:IBM Plex Sans Thai,sans-serif}main{max-width:none;padding:0}header,.hero,.toolbar,.daily-check,.assistant-checklist,.list-head,.stock-list,footer{display:none!important}.print-report{display:block}.print-title{border-bottom:3px solid #214d3d;justify-content:space-between;align-items:end;padding-bottom:8px;display:flex}.print-title div{flex-direction:column;display:flex}.print-title div b{letter-spacing:.18em;color:#214d3d;font-size:25px}.print-title div span{color:#777;font-size:10px}.print-title h1{margin:0;font:600 25px Pridi}.print-meta{gap:10px;margin:12px 0;display:flex}.print-meta span{border:1px solid #ccc;flex:1;padding:7px 10px}.print-meta b{color:#777;font-size:9px;display:block}.print-task-summary{background:#e8dfca;justify-content:space-between;padding:7px 10px;font-size:10px;display:flex}.print-pending{border:1px solid #ddd;border-top:0;margin-bottom:10px;padding:6px 10px;font-size:8px;line-height:1.5}.print-finance{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;display:grid}.print-finance span{border:1px solid #ccc;padding:5px 7px;font-size:9px}.print-finance b{color:#666;font-size:8px;display:block}.print-case-summary{background:#f3efe4;justify-content:space-between;margin-bottom:8px;padding:6px 8px;font-size:8px;display:flex}table{border-collapse:collapse;width:100%;font-size:9px}th{color:#fff;text-align:left;background:#214d3d;padding:5px}td{border-bottom:1px solid #ddd;padding:4px 5px}tr:nth-child(2n) td{background:#f5f2e9}.signature{justify-content:space-between;margin-top:18px;font-size:10px;display:flex}.print-notes{border:1px solid #ddd;padding:7px;font-size:9px}.print-note{color:#777;text-align:center;margin-top:18px;font-size:8px}}.auth-shell{background:radial-gradient(circle at 20% 10%,#eef5e8 0,#0000 40%),#f7f4ed;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #dcd8cd;border-radius:24px;width:min(100%,460px);padding:38px;box-shadow:0 24px 70px #1f34261f}.auth-card h1{margin:.35rem 0 .5rem;font-size:2rem}.auth-card>p:not(.eyebrow){color:#667068;margin-bottom:24px}.auth-mark{color:#fff;background:#224b36;border-radius:16px;place-items:center;width:54px;height:54px;margin-bottom:22px;font-size:28px;font-weight:800;display:grid}.auth-card label{color:#263c30;gap:8px;margin:16px 0;font-weight:700;display:grid}.auth-card input{min-height:48px;font:inherit;border:1px solid #cfd5cf;border-radius:12px;padding:0 14px}.auth-primary{border:0;border-radius:12px;width:100%;min-height:50px;margin-top:8px;font-weight:800;color:#fff!important;background:#224b36!important}.auth-actions{justify-content:space-between;gap:12px;margin-top:12px;display:flex}.auth-actions button{color:#316b4d;background:0 0;border:0;padding:8px 0}.auth-message{color:#62532e;background:#f4efe2;border-radius:10px;padding:11px 13px;font-size:.92rem}.account-area{text-align:right;align-items:center;gap:16px;display:flex}.account-area div{display:grid}.account-area small{color:#68756d}.account-area button{background:#fff;border:1px solid #d3d9d4;border-radius:10px;padding:8px 12px}@media (width<=700px){.auth-card{padding:28px 22px}.account-area div{display:none}.account-area{gap:6px}}
