
:root{--nav:#153333;--teal:#0c7771;--ink:#183333;--sub:#657776;--line:#dce6e3;--bg:#f4f7f5;--white:#fff;--orange:#a45b14;--red:#b63c3c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #83c8c1;outline-offset:3px}input,select,textarea{width:100%;min-height:43px;padding:9px 11px;border:1px solid #baccc6;border-radius:9px;color:var(--ink);background:#fff;font-size:16px}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:700;color:var(--sub);margin-bottom:5px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:27px;letter-spacing:-.5px}h2{font-size:19px}h3{font-size:16px}.sub{font-size:13px;color:var(--sub)}.small{font-size:12px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:16px}#handoffform{align-self:start}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.btn{display:inline-flex;gap:6px;align-items:center;justify-content:center;border:1px solid #cddbd6;background:#fff;border-radius:9px;min-height:40px;padding:8px 13px;color:var(--ink);font-weight:650}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.danger{color:var(--red);border-color:#edd0d0}.btn.soft{background:#eaf3ef;border-color:transparent}.btn.tiny{font-size:13px;min-height:34px;padding:5px 10px}.pill{display:inline-block;font-size:12px;font-weight:650;padding:3px 9px;border-radius:6px;background:#eaf2ef;color:#316b62;white-space:nowrap}.pill.PENDING,.pill.WAITING_HUMAN,.pill.RESCHEDULE_REQUESTED,.pill.PREVIEW_ONLY{background:#fff0d9;color:#8d551a}.pill.CONFIRMED,.pill.HUMAN_ACTIVE{background:#dcefed;color:#10685f}.pill.COMPLETED,.pill.RESOLVED,.pill.ACCEPTED{background:#edf0f2;color:#596777}.pill.CANCELLED,.pill.HIGH{background:#fae7e7;color:#ac3434}.notice{border:1px solid #e3d1a9;background:#fff9ed;border-radius:10px;padding:11px 14px;font-size:13px;color:#80643b}.good{color:var(--teal)}.hidden{display:none!important}.empty{color:var(--sub);padding:28px;text-align:center}.muted{color:var(--sub)}.tag{font:11px/1.6 ui-monospace,monospace;letter-spacing:2px;text-transform:uppercase;color:#91b9ad}.divider{border:0;border-top:1px solid var(--line);margin:16px 0}.login{min-height:100dvh;display:grid;grid-template-columns:minmax(330px,1.1fr) 1fr}.hero{background:var(--nav);color:#fff;padding:clamp(35px,7vw,110px);display:flex;flex-direction:column;justify-content:center}.hero h1{font-size:clamp(36px,4vw,58px);line-height:1.25;margin:25px 0}.hero .sub{color:#bbd1c8;font-size:16px}.hero .stats{border-top:1px solid #41605b;margin-top:42px;padding-top:25px;display:flex;gap:45px}.hero strong{display:block;font-size:31px}.loginform{display:grid;place-items:center;padding:32px}.loginbox{width:min(420px,100%)}.brandmark{height:40px;width:40px;border-radius:12px;background:#d5ece1;color:#205d4f;display:grid;place-items:center;font-size:22px;font-weight:800}.layout{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--nav);padding:25px 17px;color:#fff;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:22px}.nav{display:grid;gap:5px}.nav button{background:none;border:none;color:#b7ccc5;border-radius:9px;text-align:left;padding:12px 13px;font-weight:650}.nav button.active{background:#315650;color:#fff}.sidebottom{margin-top:auto;font-size:12px;color:#adc5bc;padding:12px}.top{background:#ffffffdf;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:15px 28px;display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:20}.main{padding:25px 28px;max-width:1500px;margin:0 auto}.pagehead{display:flex;justify-content:space-between;align-items:start;gap:15px;margin:22px 0}.date{width:160px}#day{width:160px;min-height:36px;font-size:14px}.metric{font-size:28px;font-weight:750;line-height:1.1;margin-bottom:5px}.bar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:15px}.bar>div{min-width:140px}.bar select{font-size:14px}.overview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.overview .card{padding:17px 20px}.boardwrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:680px;background:white}.boardhint{display:none}.board{min-width:1020px}.boardhead{display:grid;position:sticky;top:0;z-index:8;background:#edf3f0;border-bottom:1px solid var(--line);height:46px}.boardhead>div{padding:12px 6px;text-align:center;font-size:12px;font-weight:700;border-right:1px solid var(--line)}.boardbody{display:grid;min-height:780px}.timecol,.roomcol{height:780px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 14px,#f0f4f2 14px,#f0f4f2 15px,transparent 15px,transparent 59px,#dce6e3 59px,#dce6e3 60px);border-right:1px solid var(--line)}.hour{position:absolute;font-size:11px;color:#82928c;left:7px}.booking{position:absolute;left:3px;right:3px;padding:3px 5px;border:1px solid #9dc8b6;border-left:3px solid #39866b;background:#e3f2ea;border-radius:5px;font-size:11px;text-align:left;overflow:hidden;line-height:1.2;min-height:15px;color:#164c3d}.booking.ST{background:#eeeafb;border-color:#c5b7e4;color:#604781}.booking.OT{background:#fff0d8;border-color:#dec291;color:#865e21}.booking.PT{background:#e2f0fa;border-color:#accbdf;color:#345f7d}.booking.NURSE,.booking.DOCTOR{background:#fae7e1;border-color:#e3b9ac;color:#8f5144}.booking strong{display:block;font-size:12px;margin-top:2px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;min-width:750px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--sub);background:#f6f9f7}.listcard{display:flex;gap:15px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:#fff}.listcard .grow{flex:1}.timeblock{font-size:17px;font-weight:800;min-width:90px}.result{border:1px solid var(--line);border-radius:12px;padding:17px;background:#fff}.sequence{display:flex;gap:10px;align-items:stretch;margin:14px 0}.lesson{flex:1;padding:13px;background:#f0f6f4;border-radius:9px;border-top:3px solid #679e89}.lesson.PT{border-color:#5d9fc7}.lesson.OT{border-color:#c19948}.lesson.ST{border-color:#9a85ba}.lesson b{display:block}.flow{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.flow>span{padding:5px 9px;border:1px solid var(--line);border-radius:6px;font-size:11px}.flow>span.on{border-color:var(--teal);background:#e3f3ed}.inbox{display:grid;grid-template-columns:260px minmax(0,1fr);gap:15px}.caseitem{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;width:100%;margin-bottom:8px}.caseitem.selected{border-color:var(--teal);background:#eaf4ee}.messages{max-height:300px;overflow:auto;display:grid;gap:10px;margin:14px 0}.message{background:#f0f4f2;padding:12px;border-radius:10px;white-space:pre-wrap}.previewbubble{background:#fff;border:1px solid #c5d9ce;border-radius:16px;padding:20px;max-width:400px;white-space:pre-wrap}.code{font:12px ui-monospace,monospace}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.span2{grid-column:1/-1}dialog{border:0;border-radius:18px;padding:25px;width:min(650px,94vw);max-height:90dvh;box-shadow:0 20px 80px #173f3533}dialog::backdrop{background:#172f3266}.dialoghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}#toast{position:fixed;right:20px;bottom:24px;max-width:min(460px,90vw);padding:13px 18px;background:#173c34;color:white;border-radius:10px;z-index:1000;box-shadow:0 8px 30px #0003}a{color:var(--teal)}
.test-accounts{border-top:1px solid var(--line);padding-top:16px}.test-account-list{list-style:none;margin:0;padding:0;display:grid}.test-account-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.test-account-details{min-width:0}.test-account-details b{display:block;font-size:13px}.test-account-list code{font:13px/1.5 ui-monospace,monospace;overflow-wrap:anywhere}.test-account-password{flex:0 0 auto;font-size:12px;color:var(--sub)}.test-account-password code{color:var(--ink)}
@media(max-width:900px){.boardhint{display:block}.layout{display:block}.sidebar{position:static;height:auto;padding:14px;gap:12px}.sidebottom{display:none}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap;padding:9px 12px;font-size:13px}.top{padding:12px 16px}.main{padding:18px 14px}.pagehead h1{font-size:24px}.inbox{grid-template-columns:1fr}.caselist{display:flex;overflow:auto;gap:8px}.caseitem{min-width:200px}.login{grid-template-columns:1fr}.hero{padding:32px}.hero h1{font-size:32px;margin:12px 0}.hero .stats{display:none}.hero .sub{font-size:13px}.loginform{padding:28px 22px}.pagehead{margin:18px 0}.grid3{grid-template-columns:1fr}.top .sub{font-size:11px}}
@media(max-width:560px){.formgrid,.grid2{grid-template-columns:1fr}.span2{grid-column:auto}.sequence{flex-direction:column}.overview .card{padding:12px}.overview .metric{font-size:24px}.overview .sub{font-size:11px}.bar>div{min-width:100px;flex:1}.pagehead{flex-direction:column}.timeblock{font-size:14px;min-width:78px}.top{flex-wrap:wrap}.card{padding:16px}.listcard{gap:10px}.loginbox h2{font-size:23px}}
.mobile-clinic{min-width:0}.mobile-calendar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;min-width:0;overflow:hidden}.mobile-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.mobile-calendar-toolbar h2{font-size:19px;margin:0}.mobile-calendar-month-toggle{display:inline-flex;align-items:center;gap:5px;min-height:40px;background:none;border:0;padding:0;color:var(--ink);font-size:19px;font-weight:750;text-align:left}.mobile-calendar-month-toggle span{font-size:13px;color:var(--sub)}.mobile-month-picker{padding:10px;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;background:#f7faf8}.mobile-month-picker-header{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.mobile-month-picker-header h3{font-size:16px;margin:0}.mobile-month-picker-header .btn{padding:5px 9px;min-height:34px}.mobile-month-weekdays,.mobile-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.mobile-month-weekdays{text-align:center;margin-bottom:4px;font-size:11px;color:var(--sub)}.mobile-month-grid button{display:grid;justify-items:center;align-content:center;gap:1px;min-width:0;min-height:39px;border:0;border-radius:8px;padding:3px 0;background:transparent;color:var(--ink);font-size:14px}.mobile-month-grid button.is-other-month{color:#87978f}.mobile-month-grid button.is-today{box-shadow:inset 0 0 0 1px var(--teal)}.mobile-month-grid button.is-selected{background:var(--teal);color:#fff}.mobile-month-dot{height:4px;width:4px;border-radius:50%;background:currentColor;opacity:.65}.mobile-month-dot.is-empty{visibility:hidden}.mobile-calendar-toolbar .row{gap:5px}.mobile-calendar-toolbar .btn{font-size:12px;padding:6px 9px}.mobile-date-nav{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:end}.mobile-date-nav>.btn{padding:7px;min-height:43px;font-size:20px}.mobile-date-nav label{font-size:11px;margin-bottom:3px}.mobile-date-nav input{font-size:16px;width:100%;min-width:0;min-height:43px}.mobile-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:12px 0 9px;margin-bottom:9px;border-bottom:1px solid var(--line)}.mobile-week button{display:grid;justify-items:center;gap:4px;min-width:0;border:0;border-radius:9px;background:transparent;color:var(--ink);padding:4px 1px;font-size:11px}.mobile-week strong{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;font-size:17px;font-weight:700}.mobile-week button.is-today strong{box-shadow:inset 0 0 0 1px var(--teal);color:var(--teal)}.mobile-week button.is-selected strong{background:var(--teal);color:#fff}.mobile-week button.is-selected{background:#edf7f3}.mobile-week .mobile-week-count{height:14px;font-size:10px;color:var(--sub);line-height:14px}.mobile-calendar-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.mobile-calendar-filters>div{min-width:0}.mobile-calendar-filters label{font-size:11px}.mobile-calendar-filters select{min-width:0;font-size:14px;padding:8px 6px}.mobile-day-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:13px}.mobile-day-heading strong{font-size:15px}.mobile-day-timeline{touch-action:pan-y;min-width:0}.mobile-day-timeline:focus-visible{outline:2px solid #83c8c1;outline-offset:3px}.mobile-hour{display:grid;grid-template-columns:42px minmax(0,1fr);gap:7px;min-width:0}.mobile-hour>time{padding-top:10px;font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums}.mobile-hour-events{min-width:0;min-height:43px;border-top:1px solid #e7eeeb;padding:7px 0 11px;display:grid;gap:7px}.mobile-event{width:100%;min-width:0;display:grid;gap:5px;text-align:left;border:1px solid #bddbd0;border-left:4px solid #39866b;background:#edf7f1;border-radius:10px;padding:10px;color:#164c3d;line-height:1.45;overflow-wrap:anywhere}.mobile-event.ST{background:#f3effb;border-color:#c5b7e4;color:#604781}.mobile-event.OT{background:#fff5e5;border-color:#dec291;color:#865e21}.mobile-event.PT{background:#edf6fc;border-color:#accbdf;color:#345f7d}.mobile-event.NURSE,.mobile-event.DOCTOR{background:#fff0eb;border-color:#e3b9ac;color:#8f5144}.mobile-event-time{font-size:13px;font-weight:750;font-variant-numeric:tabular-nums}.mobile-event-name{font-size:16px;font-weight:750}.mobile-event-meta{font-size:12px}.mobile-event-status{display:flex;gap:5px;flex-wrap:wrap}.mobile-event .pill{font-size:11px;padding:2px 6px}.mobile-calendar-footnote{margin:9px 0 0;font-size:11px}.mobile-calendar-summary{margin:12px 0;font-size:12px}.mobile-history,.mobile-cancelled{margin-top:14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}.mobile-history>summary,.mobile-cancelled>summary{padding:13px;font-size:14px;font-weight:700;cursor:pointer}.mobile-history[open]>summary,.mobile-cancelled[open]>summary{border-bottom:1px solid var(--line);margin-bottom:10px}.mobile-history>.card{border:0;margin-bottom:0!important;padding:12px}.mobile-cancelled>.listcard{margin:10px;flex-wrap:wrap}.mobile-cancelled .grow{min-width:130px}.mobile-clinic .overview{margin:14px 0}.mobile-clinic .overview .metric{font-size:23px}.mobile-clinic .overview .card{padding:12px 9px}.mobile-clinic .overview .sub{font-size:11px}
@media(max-width:900px){.main:has(.mobile-clinic){padding:12px 10px}.main:has(.mobile-clinic)>.notice{padding:8px 10px;font-size:11px}.mobile-clinic .pagehead{flex-direction:row;align-items:center;margin:12px 0;gap:8px}.mobile-clinic .pagehead>div{min-width:0}.mobile-clinic .pagehead h1{font-size:22px;margin-bottom:4px}.mobile-clinic .pagehead .sub{font-size:11px}.mobile-clinic .pagehead>.btn{font-size:13px;padding:7px 10px;white-space:nowrap}.mobile-clinic .mobile-calendar .empty{padding:16px 9px;font-size:13px}.mobile-clinic .listcard{flex-wrap:wrap}.mobile-clinic .listcard .grow{min-width:130px}}

.reply-review{border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0;background:#f8fbf9;min-width:0}.reply-review h3{margin-bottom:8px}.reply-review .notice{margin-bottom:12px}.reply-review-source{font-size:12px;color:var(--sub)}.reply-draft{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px;margin-top:12px;min-width:0}.reply-draft-title{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.reply-draft-title h4{margin:0;font-size:15px}.reply-draft textarea{min-height:130px;white-space:pre-wrap}.reply-draft textarea[readonly]{background:#f5f7f6}.reply-draft-text,.reply-draft-compare{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;padding:10px;background:#f3f7f5;border-radius:8px;font-size:14px}.reply-draft-compare{border:1px solid #d8b88e;background:#fff8eb}.reply-draft-meta{font-size:12px;color:var(--sub);margin:7px 0}.reply-draft-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.reply-draft-actions .btn{font-size:13px}.reply-draft-state{font-size:12px;white-space:pre-wrap;color:#89551c;margin:8px 0}.reply-draft-history{margin-top:12px;border-top:1px solid var(--line);padding-top:9px}.reply-draft-history summary{cursor:pointer;font-size:13px;font-weight:700}.reply-draft-history article{padding:10px 0;border-bottom:1px solid var(--line)}.reply-draft-history p{margin:5px 0}.reply-review .pill.PENDING_REVIEW{background:#fff0d9;color:#8d551a}.reply-review .pill.REJECTED{background:#fae7e7;color:#ac3434}.reply-review .pill.APPROVED{background:#dcefed;color:#10685f}.reply-demo,.reply-conversation-actions{border-top:1px solid var(--line);padding-top:15px;margin-top:15px}.reply-demo .notice{white-space:pre-wrap}.reply-review .reply-review-empty{padding:12px 0;color:var(--sub);font-size:13px}
@media(max-width:560px){.reply-review{padding:12px}.reply-draft{padding:11px}.reply-draft-actions .btn{max-width:100%;white-space:normal}.reply-draft-title{align-items:flex-start}.reply-draft textarea{font-size:16px}.reply-review h3{font-size:15px}}

.identity-control{min-width:0}.identity-control label{margin:9px 0 5px}.identity-control [hidden]{display:none!important}.identity-control .identity-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:500;line-height:1.5}.identity-check input[type=checkbox]{width:17px;height:17px;flex:0 0 17px;margin:2px 0}.identity-help,.identity-reference{font-size:12px;color:var(--sub);line-height:1.6;overflow-wrap:anywhere}.identity-help{margin:9px 0 0}.identity-reference code{user-select:all;color:var(--ink);font-size:12px}.therapy-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px}.therapy-controls>div{flex:1 1 210px;min-width:0}.therapy-controls .btn{margin-bottom:1px}.therapy-summary{border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0;overflow-wrap:anywhere}.therapy-summary h3{margin:0 0 8px}.therapy-total{margin:16px 0;background:#f4f8f6}.therapy-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:14px;margin-top:16px;min-width:0}.therapy-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.therapy-counts div{border-bottom:1px solid var(--line);padding-bottom:7px}.therapy-counts dt{font-size:12px;color:var(--sub)}.therapy-counts dd{margin:3px 0 0;font-size:20px;font-weight:700}.therapy-primary{padding:11px;border-radius:8px;background:#e5f2ed;line-height:1.6;font-size:13px}.therapy-primary p{font-size:19px;font-weight:700;margin:5px 0 0}.therapy-insufficient{background:#fff0d9;color:#80511b}.therapy-warning{font-size:13px;line-height:1.6;color:#80511b;background:#fff8ec;border-left:3px solid #d3a05a;padding:9px 11px}.therapy-summary .sub{white-space:normal;overflow-wrap:anywhere}
@media(max-width:560px){.therapy-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.therapy-controls input,.identity-control input,.identity-control select{font-size:16px;max-width:100%;min-width:0}.therapy-summary{padding:12px}.therapy-rows{grid-template-columns:minmax(0,1fr)}.therapy-primary p{font-size:17px}}


@media print{.sidebar,.top,.notice,.btn,.local-identity{display:none!important}.layout{display:block}.main{padding:0}}
[data-drag-booking=true]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.is-dragging{opacity:.72;z-index:20;cursor:grabbing}.calendar-drag-preview{position:fixed;z-index:2000;background:#123d36;color:white;padding:10px;border-radius:8px;pointer-events:none;font-size:13px}.referral-workflow{border-top:1px solid #ddd;padding-top:10px;margin-top:12px}
