@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{font-family:Be Vietnam Pro,system-ui,sans-serif;color:#18312f;background:#f4f8f7;font-synthesis:none;--green:#078c7b;--dark:#143e3a;--line:#dce9e6;--muted:#667b78}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-size:17px}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,3vw,3.25rem);letter-spacing:-.045em;line-height:1.04}h2{font-size:1.65rem;letter-spacing:-.03em}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.15em;color:#0a9d8a;margin-bottom:.55rem}.muted,small{color:var(--muted)}.login-page,.splash{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 80% 10%,#c8f5ed,transparent 33%),radial-gradient(circle at 10% 90%,#ccecff,transparent 30%),#f7fbfa}.login-card{width:min(620px,100%);background:#fff;border:1px solid rgba(9,140,123,.15);border-radius:30px;padding:48px;box-shadow:0 35px 90px #0f463f24;text-align:center}.brand-lockup{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--dark)}.logo-crop{display:block;width:150px;height:104px;overflow:hidden}.logo-crop img{display:block;width:150px;height:auto;transform:translateY(-2px)}.brand-copy{display:grid;gap:3px;text-align:center}.brand-copy b{font-size:1.08rem}.brand-copy small{font-size:.72rem;color:#496763}.brand-lockup.compact{flex-direction:row;gap:10px;align-items:center}.brand-lockup.compact .logo-crop{width:54px;height:48px}.brand-lockup.compact .logo-crop img{width:62px;transform:translate(-4px,-2px)}.brand-lockup.compact .brand-copy{text-align:left}.brand-lockup.compact .brand-copy b{font-size:.86rem}.brand-lockup.compact .brand-copy small{font-size:.56rem;line-height:1.3}.login-card .muted{line-height:1.7}.form-stack{display:grid;gap:18px;text-align:left;margin-top:28px}.form-stack label,.form-grid label{font-size:.83rem;font-weight:700;color:#3d5552;display:grid;gap:8px}input,select,textarea{width:100%;border:1px solid #ccdcda;border-radius:13px;padding:13px 15px;background:#fff;color:#18312f;outline:none}input:focus,select:focus,textarea:focus{border-color:#1aaf9d;box-shadow:0 0 0 4px #1aaf9d1f}.form-error{color:#ad3030;background:#fff0f0;padding:12px;border-radius:10px}.splash{gap:12px;align-content:center}.splash img{width:220px;height:150px;object-fit:contain}.splash p{font-weight:700;color:var(--green)}.app-shell{min-height:100vh;display:grid;grid-template-columns:285px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#fafffe;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column}.brand{border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;padding:3px 8px 22px;color:var(--dark)}.sidebar nav{display:grid;gap:7px;margin-top:16px}.sidebar nav button{border:0;background:transparent;border-radius:14px;padding:14px 15px;display:flex;align-items:center;gap:13px;color:#526966;font-weight:650;text-align:left;transition:.2s}.sidebar nav button:hover{background:#edf8f6;transform:translate(3px)}.sidebar nav button.active{background:#daf4ef;color:#087e70}.sidebar nav button>span{width:24px;text-align:center;font-size:1.25rem}.sidebar nav em{margin-left:auto;background:#e55d5d;color:#fff;border-radius:99px;padding:2px 8px;font-size:.7rem;font-style:normal}.sidebar-user{margin-top:auto;border-top:1px solid var(--line);padding:20px 5px 2px;display:flex;align-items:center;gap:10px}.sidebar-user .avatar{width:42px;height:42px;border-radius:13px;background:#d9f4ef;color:#087d6f;display:grid;place-items:center;font-weight:800}.sidebar-user>div:nth-child(2){display:grid;flex:1;min-width:0}.sidebar-user b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.sidebar-user small{font-size:.68rem}.sidebar-user button{border:0;background:transparent;font-size:1.3rem;color:#78908d}.main{min-width:0;padding:0 42px}.topbar{min-height:132px;display:flex;justify-content:space-between;align-items:center;gap:20px}.topbar h1{font-size:2.3rem;margin-bottom:0}.topbar .eyebrow{margin-bottom:7px}.content{animation:rise .4s ease;padding-top:30px}.hero{border-radius:22px;padding:20px 28px;min-height:112px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#d6f8f1,#e7f7fd 60%,#c9edff);overflow:hidden;position:relative}.hero h2{font-size:1.65rem;margin-bottom:6px}.hero p:last-child{color:#53706c;margin:0;font-size:.78rem}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:20px}.metric{padding:22px}.metric p{color:#607572;font-size:.77rem;font-weight:700;margin-bottom:12px}.metric strong{display:block;font-size:2rem;line-height:1;color:#153f3a}.metric small{display:block;margin-top:9px;font-size:.69rem}.grid-two{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.panel{padding:25px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.panel-head h2{margin-bottom:0}.text-button{border:0;background:transparent;color:#078c7b;font-weight:800}.button{border:1px solid #cbdcda;background:#fff;color:#224945;border-radius:12px;padding:11px 16px;font-weight:750;transition:.2s}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 7px 18px #1259501f}.button.primary{background:var(--dark);color:#fff;border-color:var(--dark)}.button.danger{color:#aa3535;background:#fff5f5;border-color:#f0cccc}.button.small{padding:7px 10px;font-size:.73rem}.button.full{width:100%;padding:14px}.button:disabled{opacity:.45;cursor:not-allowed}.quick{display:grid;gap:11px}.quick button{border:1px solid var(--line);background:#fbfefd;border-radius:15px;padding:15px;display:flex;align-items:center;gap:13px;text-align:left;color:#0d8979;font-size:1.3rem}.quick button:hover{border-color:#88d9cd;background:#f0fbf9}.quick span{display:grid;color:#254b47;font-size:.86rem;font-weight:750}.quick small{font-size:.68rem;font-weight:500;margin-top:3px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.82rem}th{text-align:left;color:#778b88;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;padding:11px;border-bottom:1px solid var(--line)}td{padding:15px 11px;border-bottom:1px solid #edf3f2;vertical-align:middle}td b,td small{display:block}td small{margin-top:4px}.actions{display:flex;gap:7px;flex-wrap:wrap}.status,.role-pill{display:inline-flex;border-radius:99px;padding:6px 10px;font-size:.65rem;font-weight:800;white-space:nowrap;background:#eef3f2;color:#5c706d}.status-active,.status-confirmed,.status-completed{background:#e0f7ec;color:#14754f}.status-submitted,.status-pending_confirmation{background:#fff3d5;color:#90660b}.status-rejected,.status-inactive{background:#ffe8e8;color:#a13d3d}.status-arrived,.status-in_progress{background:#e4efff;color:#2662a0}.role-pill{background:#e5f5f2;color:#087d6f}.mono{font-family:ui-monospace,monospace}.empty{text-align:center;padding:52px 20px;color:#687d79}.empty>span{display:grid;place-items:center;width:55px;height:55px;border-radius:18px;background:#e5f6f3;color:#099380;margin:0 auto 18px;font-size:1.5rem}.empty h3{color:#284945;margin-bottom:8px}.empty p{font-size:.82rem}.setting{display:flex;align-items:center;gap:18px}.setting>span:first-child{font-size:2rem}.setting div{flex:1}.setting h3{margin:0 0 5px}.setting p{margin:0;color:#6b807d;font-size:.78rem}.footnote{font-size:.72rem;color:#6c807d;margin:18px 0 0}.alert{margin:0 0 18px;padding:13px 16px;border-radius:13px;display:flex;justify-content:space-between}.alert.success{background:#ddf7e9;color:#176e4d}.alert.error{background:#ffeded;color:#9f3535}.alert button{border:0;background:transparent;color:inherit;font-size:1.2rem}.loading{min-height:50vh;display:grid;place-items:center;color:#0a8e7d;font-weight:700}.main footer{padding:35px 0;color:#82928f;font-size:.65rem;text-align:center}.patient-name-actions{display:flex;align-items:center;gap:8px;min-width:260px}.patient-name-actions>span{margin-right:auto;font-weight:650}.patient-name-actions .action-menu{flex:none}.modal-backdrop{position:fixed;inset:0;background:#07201d94;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px;z-index:10;animation:fade .2s}.modal{background:#fff;border-radius:24px;padding:28px;width:min(650px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 100px #0000004d}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h2{font-size:2rem}.modal-head>button{border:0;background:#edf3f2;border-radius:50%;width:38px;height:38px;font-size:1.4rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 0 0 30px #ffffff1f}}@media(max-width:1250px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.dashboard-grid-primary{grid-template-columns:1fr}.dashboard-panel{min-height:auto}}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.main{padding:0 24px}}@media(max-width:760px){body{font-size:16px}.app-shell{display:block}.sidebar{position:relative;height:auto;padding:14px}.brand{padding-bottom:8px}.brand img{width:48px;height:48px}.sidebar nav{display:flex;overflow-x:auto;margin-top:5px;padding-bottom:5px}.sidebar nav button{white-space:nowrap;padding:10px}.sidebar-user{display:none}.main{padding:0 14px}.topbar{min-height:105px}.topbar .button{padding:10px;font-size:.72rem}.topbar h1{font-size:1.75rem}.hero{padding:28px}.hero h2{font-size:1.8rem}.pulse{display:none}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:17px}.panel{padding:18px}.form-grid{grid-template-columns:1fr}.form-grid .wide,.modal-actions{grid-column:auto}.login-card{padding:30px 22px}}.approval-stack{display:grid;gap:20px}.brand-lockup.compact .logo-crop{background:transparent}.brand-lockup.compact .logo-crop img{filter:none;opacity:1}.panel-note{margin:6px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}.schedule-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;padding:16px;margin-bottom:20px;background:#f4faf8;border:1px solid var(--line);border-radius:16px}.schedule-filters label{display:grid;gap:6px;font-size:.68rem;font-weight:800;color:#536b67;text-transform:uppercase;letter-spacing:.05em}.schedule-filters input,.schedule-filters select{padding:10px 12px;background:#fff;text-transform:none}.schedule-filters label:first-child{grid-column:span 2}.filter-toggles{display:flex;align-items:end;gap:8px;grid-column:span 2}.filter-toggles button{height:42px;padding:0 13px;border:1px solid #c9dcd8;border-radius:11px;background:#fff;color:#536b67;font-size:.72rem;font-weight:800;white-space:nowrap}.filter-toggles button:hover,.filter-toggles button.active{border-color:#12a08e;background:#e5f7f3;color:#087d70}.month-filter-navigation{display:flex;align-items:end;gap:7px;grid-column:span 2}.month-filter-navigation button{min-height:42px;padding:0 11px;border:1px solid #c9dcd8;border-radius:11px;background:#fff;color:#31534e;font:inherit;font-size:.7rem;font-weight:800;white-space:nowrap}.month-filter-navigation button:hover{border-color:#12a08e;background:#e5f7f3;color:#087d70}.schedule-filter-submit{display:flex;align-items:center;justify-content:flex-end;gap:14px;grid-column:1/-1;padding-top:12px;border-top:1px solid #d8e7e3}.schedule-filter-submit small{margin-right:auto;color:#637b76;font-size:.68rem}.schedule-filter-submit .button{min-width:150px;min-height:44px}.schedule-filters input[readonly]{border-color:#d7e5e2;background:#eef5f3;color:#47615c;font-weight:750}.clinical-grid{min-width:1300px}.clinical-grid th{position:sticky;top:0;background:#fff;z-index:1}.clinical-grid td{white-space:nowrap}.clinical-grid td:nth-child(5){white-space:normal;min-width:170px}@media(max-width:760px){.schedule-filters{grid-template-columns:1fr}.schedule-filters label:first-child,.month-filter-navigation,.filter-toggles{grid-column:1}.month-filter-navigation{flex-wrap:wrap}.schedule-filter-submit{align-items:stretch;flex-direction:column}.schedule-filter-submit .button{width:100%}.panel-head{align-items:flex-start}.panel-head>.button{flex:none}}.recent-tools{display:flex;align-items:center;gap:14px}.recent-tools label{display:flex;align-items:center;gap:7px;font-size:.7rem;font-weight:700;color:var(--muted)}.recent-tools select{width:auto;padding:7px 28px 7px 10px}.low-balance-row{background:#fffaf0}.balance-warning{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:10px;background:#fff0cc;color:#8b5b00;font-size:.7rem;font-weight:800}@media(max-width:760px){.recent-tools{align-items:flex-end;flex-direction:column;gap:6px}.recent-tools label{font-size:.62rem}}.patient-head-tools{display:flex;align-items:center;gap:10px}.patient-head-tools input{width:min(310px,32vw);background:#f8fbfa}.patient-page-size{display:flex;align-items:center;gap:8px;color:#526b67;font-size:.66rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.patient-page-size select{min-width:76px;padding:10px 28px 10px 11px;background-color:#fff}.patient-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 0 2px}.patient-pagination-nav{grid-column:2;display:flex;align-items:center;justify-content:center;gap:14px;color:#617873;font-size:.7rem;font-weight:700}.patient-pagination-nav span{min-width:190px;text-align:center;font-variant-numeric:tabular-nums}.patient-pagination>.patient-page-size{grid-column:3;justify-self:end}.edit-icon{width:34px;height:34px;border:1px solid #bddbd5;border-radius:10px;background:#eaf8f5;color:#087d6f;font-size:1rem;font-weight:800;display:grid;place-items:center;transition:.2s}.edit-icon:hover{background:#087d6f;color:#fff;transform:translateY(-1px)}input[readonly]{background:#eef3f2;color:#71827f;cursor:not-allowed}.patient-low-balance-filter{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid #efb8ae;border-radius:10px;background:#fff7f5;color:#a43b2d;font:inherit;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s}.patient-low-balance-filter span{display:grid;min-width:22px;height:22px;padding:0 5px;place-items:center;border-radius:999px;background:#f7d4cd;color:#8d2f23;font-size:.68rem}.patient-low-balance-filter:hover{border-color:#db7968;background:#ffefeb}.patient-low-balance-filter.active{border-color:#b94736;background:#b94736;color:#fff;box-shadow:0 0 0 3px #b947361f}.patient-low-balance-filter.active span{background:#fff;color:#9f382b}.patient-low-balance-filter:focus-visible{outline:3px solid rgba(185,71,54,.28);outline-offset:2px}@media(max-width:760px){.patient-head{display:grid}.patient-head-tools{width:100%;flex-wrap:wrap}.patient-head-tools input{width:100%;min-width:0}}.matrix-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 16px}.matrix-summary .metric{padding:16px}.matrix-summary .metric strong{font-size:1.55rem}.matrix-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.matrix-legend>span{padding:5px 9px;border-radius:8px;font-size:.62rem;font-weight:800}.matrix-legend small{margin-left:auto;font-size:.65rem}.legend-pending{background:#fff3d5;color:#90660b}.legend-confirmed{background:#e4efff;color:#2662a0}.legend-arrived{background:#eee7ff;color:#6847a8}.legend-completed{background:#e0f7ec;color:#14754f}.legend-cancelled{background:#ffe8e8;color:#a13d3d}.matrix-wrap{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:14px;isolation:isolate}.month-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.month-matrix th{position:sticky;top:0;z-index:3;background:#eff9f7;text-align:center;min-width:48px;border-right:1px solid #d9e8e5}.month-matrix th small{display:block;font-size:.53rem;margin-top:3px}.month-matrix td{height:43px;padding:5px 7px;text-align:center;border-right:1px solid #e3edeb}.month-matrix th.sunday-column{background:#f1effb;color:#625797}.month-matrix td.sunday-column{background:#faf9fe}.month-matrix td.sunday-column[class*=cell-]{box-shadow:inset 2px 0 #a39aca,inset -2px 0 #a39aca}.month-matrix .today-column{box-shadow:inset 2px 0 #e09126,inset -2px 0 #e09126}.month-matrix th.today-column{background:#fff0d8;color:#8b5208}.month-matrix .selected-day{box-shadow:inset 2px 0 #087d70,inset -2px 0 #087d70}.month-matrix th.selected-day{background:#d8f3ed;color:#075f55}.day-filter{width:100%;height:100%;padding:6px;border:0;background:transparent;color:inherit;cursor:pointer}.day-filter:hover{background:#dff3ef}.month-matrix .sticky-col{position:sticky;z-index:2;background:#fff;text-align:left}.month-matrix th.sticky-col{z-index:5;background:#e1f4f0}.month-matrix .code-col{left:0;min-width:125px}.month-matrix .name-col{left:125px;min-width:220px}.month-matrix .remaining-col{left:345px;min-width:78px;text-align:center}.month-matrix .diagnosis-col{left:423px;min-width:190px;max-width:190px;white-space:normal;box-shadow:7px 0 12px #1d4d461f}.matrix-cell{padding:3px!important}.matrix-cell button{border:0;width:34px;height:31px;border-radius:8px;background:transparent;color:#34524e;font-weight:800}.matrix-cell button:not(:disabled):hover{outline:2px solid #078c7b;transform:scale(1.05)}.matrix-cell button:disabled{cursor:default}.cell-pending_confirmation button{background:#fff3d5;color:#90660b}.cell-confirmed button{background:#e4efff;color:#2662a0}.cell-arrived button{background:#eee7ff;color:#6847a8}.cell-in_progress button{background:#ffe7cc;color:#97500d}.cell-completed button{background:#dff7ea;color:#14754f}.cell-cancelled button,.cell-no_show button,.cell-rejected button{background:#ffe8e8;color:#a13d3d}.month-matrix .period-remaining{min-width:104px;background:#f2f8f6;color:#185c4a;border-left:2px solid #bddbd4}.month-matrix .period-total{min-width:104px;background:#173f4a!important;color:#fff;font-size:1.05rem;border-left:3px solid #0b3039}.month-matrix td.period-total b{color:#fff}.density-compact .month-matrix td{height:32px;padding-top:2px;padding-bottom:2px}.density-compact .matrix-cell button{width:30px;height:25px;border-radius:6px}.density-compact .month-matrix th{height:38px}.density-compact .month-matrix th small{margin-top:1px}.realtime-line{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#4e6965;font-size:.7rem;font-weight:700;margin-bottom:10px}.live-dot{width:9px;height:9px;border-radius:50%;background:#19a974;box-shadow:0 0 0 5px #19a9741f;animation:pulse-live 1.8s infinite}.status-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.status-summary>div{display:flex;justify-content:space-between;align-items:center;background:#f4f9f8;padding:15px;border-radius:12px}.status-summary span{font-size:.75rem;color:#607773}.status-summary b{font-size:1.25rem;color:#17443e}.patient-bars{display:grid;gap:12px}.patient-bars>div{display:grid;grid-template-columns:minmax(140px,1fr) minmax(100px,1.5fr) 30px;align-items:center;gap:10px;font-size:.68rem}.patient-bars>div>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-bars>div>div{height:8px;background:#e7f0ee;border-radius:99px;overflow:hidden}.patient-bars i{display:block;height:100%;background:linear-gradient(90deg,#08a18d,#5ccfbc);border-radius:99px}.patient-bars b{text-align:right}@keyframes pulse-live{50%{opacity:.45;transform:scale(.85)}}.dashboard-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.dashboard-heading h2{margin:3px 0 7px;font-size:1.75rem}.dashboard-heading p:last-child{margin:0;color:#6b807d;font-size:.78rem}.dashboard-heading .realtime-line{margin:0 0 4px;white-space:nowrap}.dashboard-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.dashboard-kpis article{position:relative;min-height:130px;padding:21px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f9fcfb);overflow:hidden}.dashboard-kpis article:after{content:"";position:absolute;right:-22px;bottom:-28px;width:88px;height:88px;border-radius:50%;background:#14978412}.dashboard-kpis span,.dashboard-kpis small{display:block;color:#607572}.dashboard-kpis span{font-size:.74rem;font-weight:750}.dashboard-kpis strong{display:block;margin:12px 0 9px;color:#173f3a;font-size:2rem;line-height:1}.dashboard-kpis small{font-size:.68rem}.dashboard-kpis .kpi-held{border-color:#d8dff2;background:linear-gradient(145deg,#fff,#f6f8ff)}.dashboard-kpis .kpi-available{border-color:#bce4db;background:linear-gradient(145deg,#fff,#effbf8)}.dashboard-kpis .kpi-alert{border-color:#edcbb9;background:linear-gradient(145deg,#fff,#fff7f1)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.dashboard-grid-primary{grid-template-columns:1.35fr 1fr}.dashboard-panel{min-height:290px}.dashboard-panel .panel-head{align-items:flex-start}.chart-legend{display:flex;gap:14px;color:#657b77;font-size:.67rem}.chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:3px}.chart-legend .registered:before,.trend-columns .registered{background:#087f71}.chart-legend .used:before,.trend-columns .used{background:#75cfc2}.trend-chart{height:205px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:15px;padding:10px 6px 0;border-bottom:1px solid #e5eeec;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#edf3f2 50px)}.trend-month{text-align:center}.trend-columns{height:150px;display:flex;align-items:flex-end;justify-content:center;gap:5px}.trend-columns i{display:block;width:18px;min-height:0;border-radius:5px 5px 1px 1px;transition:height .25s}.trend-month b{display:block;margin-top:8px;font-size:.69rem;color:#405d59}.trend-month small{font-size:.59rem;color:#8a9b98}.completion-rate{display:grid;place-items:center;width:72px;height:72px;border:8px solid #d8f3ed;border-radius:50%;color:#0b7e70;font-size:1.05rem}.completion-rate small{display:block;font-size:.48rem;color:#718783;text-transform:uppercase}.dashboard-bars{display:grid;gap:18px}.dashboard-bars>div{display:grid;grid-template-columns:100px 1fr 30px;align-items:center;gap:12px;font-size:.7rem}.dashboard-bars>div>div{height:9px;border-radius:99px;background:#edf3f2;overflow:hidden}.dashboard-bars i{display:block;height:100%;min-width:3px;border-radius:99px}.dashboard-bars i.success,.balance-distribution i.success{background:#25a982}.dashboard-bars i.info,.balance-distribution i.info{background:#5d95d8}.dashboard-bars i.warning,.balance-distribution i.warning{background:#e5a83e}.dashboard-bars i.danger,.balance-distribution i.danger{background:#db6f65}.dashboard-bars b{text-align:right}.balance-distribution{display:grid;grid-template-columns:1fr 1fr;gap:13px}.balance-distribution>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:18px 15px;border:1px solid #e7efed;border-radius:14px;background:#fbfdfd}.balance-distribution i{width:9px;height:36px;border-radius:99px}.balance-distribution span{font-size:.72rem;color:#607572}.balance-distribution b{font-size:.85rem;color:#224945}.attention-count{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:12px;background:#fff0e8;color:#b75434;font-weight:850}.attention-list{display:grid}.attention-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 2px;border-bottom:1px solid #edf3f2}.attention-list span{min-width:0}.attention-list b,.attention-list small{display:block}.attention-list b{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attention-list small{margin-top:4px;font-size:.62rem}.attention-list strong{white-space:nowrap;padding:6px 9px;border-radius:9px;background:#fff5dc;color:#8a620c;font-size:.69rem}.attention-list strong.empty-balance{background:#ffeded;color:#aa3c35}.dashboard-empty{display:grid;place-items:center;min-height:170px;color:#6b807d;font-size:.77rem}.dashboard-note{margin:2px 0 24px;padding:12px 15px;border-left:3px solid #65bfb1;background:#f2faf8;color:#58716d;font-size:.68rem}@media(max-width:1000px){.matrix-summary{grid-template-columns:1fr 1fr}}@media(max-width:760px){.matrix-summary{grid-template-columns:1fr 1fr}.month-matrix .name-col{min-width:170px;left:105px}.month-matrix .code-col{min-width:105px}.month-matrix .remaining-col{left:275px;min-width:68px}.matrix-wrap{max-height:70vh}.status-summary{grid-template-columns:1fr}}.operation-queue{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.operation-tools{display:flex;align-items:center;gap:10px}.daily-capacity{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin:0 0 12px}.daily-capacity .metric{padding:13px}.daily-capacity .metric strong{font-size:1.4rem}.daily-capacity .metric:last-child{border-color:#ead8b8}.capacity-alert{margin:0 0 16px;padding:11px 13px;border:1px solid #edcf9f;border-radius:11px;background:#fff8e9;color:#80550d;font-size:.72rem;font-weight:750}.diagnosis-cell{min-width:190px;text-align:left!important;white-space:normal}@media(max-width:1200px){.schedule-filters{grid-template-columns:repeat(2,minmax(180px,1fr))}}.operation-queue .table-wrap table{min-width:1420px}.operation-queue td:nth-child(4),.operation-queue td:nth-child(5),.operation-queue td:nth-child(6){white-space:nowrap}.actions .button{white-space:nowrap}.modal textarea[name=reason]{min-height:90px}html{font-size:18px}body{font-size:19.8px;line-height:1.55;letter-spacing:-.005em}.app-shell{grid-template-columns:330px minmax(0,1fr)}.sidebar nav button{font-size:.9rem}.sidebar-user b{font-size:.82rem}.sidebar-user small{font-size:.7rem}.main{padding:0 36px}.panel{padding:26px}.panel-head h2{font-size:1.55rem}.panel-note{font-size:.82rem}.button{font-size:.8rem}.button.small{padding:8px 11px;font-size:.72rem}table{font-size:.83rem}th{font-size:.68rem}td{padding:14px 11px}.status,.role-pill{font-size:.68rem}.eyebrow{font-size:.7rem}.metric p{font-size:.78rem}.metric small{font-size:.7rem}.schedule-filters label{font-size:.69rem}.schedule-filters input,.schedule-filters select{font-size:.78rem}.matrix-legend>span,.matrix-legend small{font-size:.66rem}.month-matrix th small{font-size:.58rem}.month-matrix td{font-size:.76rem}.matrix-cell button{font-size:.75rem}.daily-timeline,.grouped-list{font-size:.8rem}.patient-table{min-width:1520px}.patient-table th:first-child,.patient-table td:first-child{position:sticky;left:0;z-index:2;min-width:315px;background:#fff;box-shadow:7px 0 14px #19403a14}.patient-table th:first-child{z-index:3;background:#eff9f7}.low-balance-row td:first-child{background:#fffaf0}.patient-row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.schedule-control{margin-bottom:16px;border:1px solid var(--line);border-radius:15px;background:#f7fbfa;overflow:hidden}.schedule-control>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 16px;color:#31534e;font-size:.76rem;font-weight:800;cursor:pointer;list-style:none}.schedule-control>summary::-webkit-details-marker{display:none}.schedule-control>summary:before{content:"▾";color:#078c7b}.schedule-control:not([open])>summary:before{content:"▸"}.schedule-control>summary span{margin-left:auto;color:#718682;font-size:.68rem;font-weight:650}.schedule-control .schedule-filters{margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:#f1f8f6}.matrix-summary,.daily-capacity{grid-template-columns:repeat(4,1fr)}.operation-queue{margin-top:18px;padding-top:18px}.operation-queue .panel-head{margin-bottom:14px}@media(max-width:1350px){html{font-size:16.2px}body{font-size:18px}.app-shell{grid-template-columns:290px minmax(0,1fr)}.patient-table th:first-child,.patient-table td:first-child{min-width:285px}.daily-capacity{grid-template-columns:repeat(2,1fr)}}.month-matrix .code-col{left:0;min-width:120px;width:120px}.month-matrix .name-col{left:120px;min-width:220px;width:220px}.month-matrix .birth-col{left:340px;min-width:150px;width:150px;text-align:center}.month-matrix .gender-col{left:490px;min-width:105px;width:105px;text-align:center}.month-matrix .diagnosis-col{left:595px;min-width:220px;max-width:220px;width:220px;box-shadow:none}.month-matrix .registered-col{left:815px;min-width:145px;width:145px;text-align:center}.month-matrix .used-col{left:960px;min-width:135px;width:135px;text-align:center}.month-matrix .available-col{left:1095px;min-width:170px;width:170px;text-align:center;box-shadow:8px 0 14px #1d4d4624}.month-matrix .period-total{position:static;min-width:115px}.month-matrix th.period-total{position:sticky;top:0;z-index:3}.vi-date-picker{position:relative;display:flex;align-items:center}.vi-date-display{width:100%;padding-right:42px!important;font-variant-numeric:tabular-nums}.vi-date-calendar{position:absolute;right:13px;color:#087d70;font-size:1rem}.vi-date-native{position:absolute!important;right:0;top:0;width:44px!important;height:100%;opacity:0;cursor:pointer;padding:0!important}.view-switch{display:flex;gap:4px;padding:4px;border-radius:12px;background:#edf5f3}.view-switch button{border:0;background:transparent;padding:8px 12px;border-radius:9px;color:#58706c;font-weight:800}.view-switch button.active{background:#fff;color:#087d70;box-shadow:0 2px 8px #193f3814}.timeline-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:4px 0 14px}.timeline-toolbar label{display:grid;gap:6px;min-width:220px;font-size:.68rem;font-weight:800;color:#536b67;text-transform:uppercase}.timeline-toolbar>span{font-size:.72rem;color:var(--muted);font-weight:700}.timeline-list{display:grid;gap:8px}.timeline-row{display:grid;grid-template-columns:130px minmax(260px,1fr) auto;align-items:center;gap:16px;padding:13px 15px;border:1px solid var(--line);border-left:5px solid #9db6b1;border-radius:12px;background:#fff}.timeline-row time{font-weight:900;font-variant-numeric:tabular-nums}.timeline-row>div{display:grid;gap:4px}.timeline-row small{color:var(--muted)}.free-slot{border-style:dashed;border-left-color:#23a990;background:#f5fcfa}.free-slot b{color:#087d70}.slot-pending_confirmation{border-left-color:#e2ad28;background:#fffbec}.slot-confirmed{border-left-color:#397bd1;background:#f4f8ff}.slot-arrived{border-left-color:#7857ba;background:#faf7ff}.slot-completed{border-left-color:#28a36c;background:#f3fcf7}.slot-cancelled,.slot-no_show,.slot-rejected{border-left-color:#d66767;background:#fff7f7}@media(max-width:760px){.timeline-row{grid-template-columns:1fr}.timeline-toolbar{align-items:stretch;flex-direction:column}}.appointment-list-table{border:0;border-radius:0}.appointment-list-table table{min-width:1420px}.diagnosis-compact{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-overdue{background:#ffe2c7;color:#9b4b00}.overdue-row{background:#fffaf4}.list-actions{min-width:330px;display:flex;flex-wrap:wrap;gap:6px}.grouped-list{display:grid;gap:16px}.list-controls{display:grid;grid-template-columns:minmax(210px,1fr) minmax(180px,.8fr) 150px auto;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e6;border-radius:14px;background:#f7fbfa}.list-controls label{display:grid;gap:6px;color:#526b67;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.list-controls select{padding:10px 12px;background:#fff}.list-controls .check-filter{height:42px;padding:0 13px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ccdcda;border-radius:11px;background:#fff;text-transform:none;white-space:nowrap}.list-controls .check-filter input{width:16px;height:16px;margin:0}.date-group{overflow:hidden;border:1px solid #dce8e5;border-radius:15px;background:#fff;box-shadow:0 5px 18px #193e3609}.date-group-head{padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #dce8e5;background:#f4faf8}.date-group-head>div{display:flex;align-items:baseline;gap:8px}.date-group-head b{font-size:.93rem;color:#173f38}.date-group-head small,.date-group-head>span{color:#67807b;font-size:.68rem}.date-group .appointment-list-table{overflow-x:auto}.date-group .appointment-list-table table{width:100%;min-width:1120px;table-layout:fixed}.date-group .appointment-list-table th{padding:10px 12px;color:#6d827e;background:#fbfdfc;font-size:.61rem;letter-spacing:.05em}.date-group .appointment-list-table td{height:54px;padding:10px 12px;font-size:.72rem}.date-group .appointment-list-table th:nth-child(1){width:120px}.date-group .appointment-list-table th:nth-child(2){width:110px}.date-group .appointment-list-table th:nth-child(3){width:115px}.date-group .appointment-list-table th:nth-child(4){width:90px}.date-group .appointment-list-table th:nth-child(5){width:150px}.date-group .appointment-list-table th:nth-child(6){width:70px}.date-group .appointment-list-table th:nth-child(7){width:145px}.date-group .appointment-list-table th:nth-child(8){width:150px}.date-group .appointment-list-table th:nth-child(9){width:155px}.date-group .actions{justify-content:flex-end;flex-wrap:nowrap}.date-group .status{white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:4px;color:#617873;font-size:.7rem;font-weight:700}.app-shell{transition:grid-template-columns .2s ease}.sidebar{transition:padding .2s ease}.brand-lockup.compact .logo-crop{width:78px;height:72px;overflow:visible;flex:0 0 78px}.brand-lockup.compact .logo-crop img{width:74px;height:70px;object-fit:contain;transform:none}.brand{min-height:92px;padding-bottom:10px}.sidebar-toggle{width:100%;min-height:38px;border:1px solid #d9e8e5;border-radius:11px;background:#f5faf9;color:#49645f;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.68rem;font-weight:800;cursor:pointer}.sidebar-toggle span{font-size:1.25rem;line-height:1}.sidebar nav button .nav-label{font:inherit}.sidebar-collapsed{grid-template-columns:104px minmax(0,1fr)}.sidebar-collapsed .sidebar{padding-inline:12px}.sidebar-collapsed .brand{justify-content:center;padding-inline:0}.sidebar-collapsed .brand-copy,.sidebar-collapsed .sidebar-toggle b,.sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-user>div:nth-child(2){display:none}.sidebar-collapsed .brand-lockup.compact .logo-crop{width:76px;flex-basis:76px}.sidebar-collapsed .sidebar nav button{justify-content:center;padding-inline:10px}.sidebar-collapsed .sidebar nav button>span{flex:0 0 28px}.sidebar-collapsed .sidebar nav em{position:absolute;margin:0 0 32px 31px}.sidebar-collapsed .sidebar-user{justify-content:center}.sidebar-collapsed .sidebar-user button{font-size:1rem}.login-card .logo-crop{width:180px;height:150px;overflow:visible}.login-card .logo-crop img{width:180px;height:150px;object-fit:contain;transform:none}.login-system-name{max-width:480px;margin:18px auto 8px;color:#155c52;font-size:.86rem;line-height:1.45;letter-spacing:.075em}.month-matrix th,.month-matrix td{padding-left:5px;padding-right:5px}.month-matrix th{line-height:1.2}.month-matrix td{height:38px}.month-matrix .code-col{left:0;min-width:90px;width:90px}.month-matrix .name-col{left:90px;min-width:165px;width:165px}.month-matrix .birth-col{left:255px;min-width:110px;width:110px}.month-matrix .gender-col{left:365px;min-width:76px;width:76px}.month-matrix .diagnosis-col{left:441px;min-width:150px;max-width:150px;width:150px}.month-matrix .registered-col{left:591px;min-width:118px;width:118px}.month-matrix .available-col{left:709px;min-width:132px;width:132px;box-shadow:7px 0 12px #1d4d4621}.month-matrix th:not(.sticky-col):not(.period-total),.month-matrix td:not(.sticky-col):not(.period-total){min-width:42px}.month-matrix .period-total{min-width:88px}.matrix-cell button{width:31px;min-width:31px;height:28px}.panel-note,.dashboard-note,.dashboard-heading p:last-child,.metric small,.matrix-legend small,.timeline-row small,.date-group-head small,.setting p,.empty p{color:#a65353}.dashboard-note{border-left-color:#e1a0a0;background:#fff3f3}.panel-note{padding:5px 8px;border-radius:7px;background:#fff4f4}@media(max-width:1350px){.sidebar-collapsed{grid-template-columns:96px minmax(0,1fr)}}.sidebar-toggle{margin-top:12px;flex:0 0 auto}.sidebar-collapsed .sidebar-user{margin-top:auto}.overview-recent{display:block}.overview-recent>.panel{width:100%}.overview-recent .table-wrap{max-height:none}.vi-date-picker{min-height:48px;border:1px solid #ccdcda;border-radius:13px;background:#fff;transition:border-color .18s,box-shadow .18s}.vi-date-picker:focus-within{border-color:#1aaf9d;box-shadow:0 0 0 4px #1aaf9d1f}.vi-date-picker .vi-date-display{border:0;box-shadow:none;background:transparent}.vi-date-calendar{z-index:2;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:9px;background:#e9f7f4;color:#087d70;font-size:.84rem;cursor:pointer}.vi-date-native{right:14px!important;top:50%!important;width:28px!important;height:28px!important;transform:translateY(-50%);opacity:0;pointer-events:none}.time-24-picker{position:relative;display:flex;align-items:center}.time-24-picker select{appearance:none;padding-right:48px;font-variant-numeric:tabular-nums;cursor:pointer}.time-24-picker>span{position:absolute;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e9f7f4;color:#087d70;pointer-events:none}.form-guidance{margin:0;padding:12px 14px;border:1px solid #efcccc;border-radius:12px;background:#fff4f4;color:#9b4f4f;font-size:.72rem;line-height:1.55}.splash{background:#f7fbfa}.splash p{font-size:.85rem;letter-spacing:.02em}.date-group .appointment-list-table th:nth-child(8){width:145px}.date-group .appointment-list-table th:nth-child(9){width:150px}.date-group .appointment-list-table th:nth-child(10){width:330px}.appointment-list-table.without-actions table{min-width:1080px}.approval-workspace{overflow:visible}.approval-tabs{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;padding:6px;border:1px solid #dce9e6;border-radius:16px;background:#f3f8f7}.approval-tabs button{min-height:54px;padding:10px 14px;border:0;border-radius:12px;background:transparent;color:#526b67;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;text-align:left}.approval-tabs button:hover{background:#fff}.approval-tabs button.active{background:#fff;color:#087d70;box-shadow:0 4px 14px #19403a17}.approval-tabs b{display:grid;place-items:center;min-width:29px;height:29px;padding:0 8px;border-radius:99px;background:#e2efed;color:#49645f;font-size:.7rem}.approval-tabs button.active b{background:#daf4ef;color:#087d70}.approval-content{margin-top:20px;padding-top:20px;border-top:1px solid #e4eeec}.approval-content-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}.approval-content-head h3{margin:0 0 5px;font-size:1.08rem;color:#214b45}.approval-content-head p{margin:0;color:#a65353;font-size:.7rem}.approval-content-head input{max-width:360px}@media(max-width:900px){.approval-tabs{grid-template-columns:1fr}.approval-content-head{align-items:stretch;flex-direction:column}.approval-content-head input{max-width:none}}.audit-filters{display:grid;grid-template-columns:minmax(260px,1.3fr) minmax(180px,.7fr) minmax(190px,.8fr) auto;gap:10px;margin-bottom:18px}.audit-table{min-width:1450px}.audit-table th:nth-child(1){width:180px}.audit-table th:nth-child(2){width:210px}.audit-table th:nth-child(3){width:150px}.audit-table th:nth-child(4){width:190px}.audit-table th:nth-child(6){width:150px}.audit-table td small{display:block;margin-top:3px}.audit-category{display:inline-flex;padding:6px 9px;border-radius:9px;background:#edf7f5;color:#267267;font-size:.68rem;font-weight:800}.audit-detail{position:relative}.audit-detail summary{color:#087d70;font-weight:800;cursor:pointer}.audit-detail>div{position:absolute;z-index:12;right:0;top:30px;width:520px;max-height:420px;overflow:auto;padding:16px;border:1px solid #d5e4e1;border-radius:14px;background:#fff;box-shadow:0 18px 48px #1437312e}.audit-detail pre{white-space:pre-wrap;word-break:break-word;padding:10px;border-radius:9px;background:#f5f8f7;font-size:.58rem;color:#405a56}.audit-detail small{color:#a65353}@media(max-width:1200px){.audit-filters{grid-template-columns:1fr 1fr}}.approval-tabs{grid-template-columns:repeat(2,minmax(180px,1fr))}.legend-planned{background:#e9f0fb;color:#315f95}.legend-progress{background:#fff0d9;color:#97500d}.matrix-cell button{width:38px;min-height:31px;height:auto;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.matrix-cell button span{display:flex;align-items:center;justify-content:center;gap:2px;line-height:1}.matrix-cell button i{font-size:.45rem;font-style:normal;font-weight:900;letter-spacing:-.02em}.matrix-cell .cell-actual{color:#14754f}.matrix-cell .cell-progress{color:#97500d}.matrix-cell .cell-planned{color:#315f95;opacity:.72}.matrix-cell .cell-cancelled-mark{color:#a13d3d;font-size:.9rem}.density-compact .matrix-cell button{width:32px;min-height:25px}.density-compact .matrix-cell button i{font-size:.4rem}.cancellation-review-table{min-width:1320px}.cancellation-review-table th:nth-child(1){width:220px}.cancellation-review-table th:nth-child(2){width:125px}.cancellation-review-table th:nth-child(3){width:250px}.cancellation-review-table th:nth-child(4){width:240px}.cancellation-review-table th:nth-child(5){width:190px}.cancellation-review-table th:nth-child(6){width:175px}.cancellation-review-table .request-type{display:inline-flex;padding:6px 9px;border-radius:9px;background:#fff0e8;color:#a44f34;font-size:.68rem;font-weight:850}.cancellation-review-table .cancellation-reason{white-space:normal;color:#8f4545;font-weight:700}.status-popup-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;pointer-events:none}.status-popup{position:relative;width:min(520px,calc(100vw - 48px));display:grid;grid-template-columns:48px minmax(0,1fr) 34px;align-items:center;gap:14px;padding:20px 18px 22px;border:1px solid;border-radius:20px;background:#fff;box-shadow:0 24px 80px #0f312c3d;overflow:hidden;pointer-events:auto;animation:status-popup-in .22s ease-out}.status-popup.success{border-color:#a8dfcf}.status-popup.error{border-color:#efbcbc}.status-popup-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;font-size:1.25rem;font-weight:900}.status-popup.success .status-popup-icon{background:#ddf7e9;color:#14704e}.status-popup.error .status-popup-icon{background:#ffeded;color:#a93838}.status-popup b{display:block;margin-bottom:5px;color:#214943;font-size:.85rem}.status-popup p{margin:0;color:#526b67;font-size:.76rem;line-height:1.55}.status-popup>button{align-self:start;width:32px;height:32px;padding:0;border:0;border-radius:10px;background:#eef3f2;color:#607572;font-size:1.15rem}.status-popup>button:hover{background:#e2ebe9;color:#264d47}.status-popup-timer{position:absolute;left:0;bottom:0;width:100%;height:4px;transform-origin:left;background:#26a887;animation:status-popup-timer 5s linear forwards}.status-popup.error .status-popup-timer{background:#d86161}@keyframes status-popup-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes status-popup-timer{to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.status-popup,.status-popup-timer{animation:none}}
