*{box-sizing:border-box}html,body{color:#59493f;background:#f6f1eb;min-height:100%;margin:0;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.splash{color:#826a5b;place-items:center;min-height:100vh;display:grid}.login-page{background:radial-gradient(circle at top,#fffaf4,#eaded2);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:#fff;border:1px solid #e4d7cd;border-radius:28px;width:min(430px,100%);padding:42px;box-shadow:0 24px 80px #765c4822}.login-mark{color:#fff;background:#8e6753;border-radius:22px;place-items:center;width:70px;height:70px;margin:auto;font-size:30px;font-weight:800;display:grid}.login-card h1{margin:8px 0 10px;font-size:28px}.login-card>small{color:#a38674}.login-card p{color:#867365;margin-bottom:28px}.login-card form{text-align:left;gap:16px;display:grid}.login-card label,.field{gap:7px;font-size:14px;font-weight:700;display:grid}.login-card input,.field input,.field select,.field textarea,.toolbar input{color:#59493f;background:#fff;border:1px solid #d9ccc2;border-radius:12px;width:100%;padding:12px}.field textarea{resize:vertical;min-height:90px}.primary{font-weight:700;color:#fff!important;background:#8e6753!important;border:0!important;border-radius:12px!important;padding:11px 18px!important}.login-card .primary{margin-top:7px}.security-note{margin-top:20px;display:block}.form-error,.page-error{color:#a74435;background:#fff0ed;border-radius:10px;padding:12px}.app-shell{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.app-shell>aside{background:#fffaf6;border-right:1px solid #e7ddd5;flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:4px 8px 22px;display:flex}.brand>b{color:#fff;background:#8e6753;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.brand span{font-weight:800}.brand small{color:#9a8576;margin-top:3px;font-weight:400;display:block}.app-shell nav{gap:4px;display:grid;overflow:auto}.app-shell nav button{text-align:left;color:#746154;background:0 0;border:0;border-radius:11px;padding:11px 14px;position:relative}.app-shell nav button.active{color:#795542;background:#efe3da;font-weight:800}.app-shell nav i{background:#c95d4a;border-radius:50%;width:7px;height:7px;position:absolute;top:15px;right:12px}.account{border-top:1px solid #eadfd7;gap:4px;margin-top:auto;padding:18px 10px 0;display:grid}.account small{color:#9a8576}.account button{color:#9a6754;background:0 0;border:0;justify-self:start;padding:6px 0}.app-shell>main{min-width:0;padding:28px 34px}.top{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.top small{color:#9a8576}.top h1{margin:4px 0;font-size:28px}.role-pills{gap:6px;display:flex}.role-pills span,.mini-role{background:#eadfd7;border-radius:99px;margin:2px;padding:5px 9px;font-size:12px;display:inline-block}.toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.toolbar h2{margin:0;font-size:20px}.toolbar>div{align-items:center;gap:8px;display:flex}.toolbar button,.row-actions button,.card-grid article>button,.modal footer button,.tag-list button{color:#705b4e;background:#fff;border:1px solid #d9cbc0;border-radius:10px;padding:9px 13px}.page-error{justify-content:space-between;margin-bottom:15px;display:flex}.page-error button{color:inherit;background:0 0;border:0}.loading-bar{z-index:99;background:#9b7059;height:3px;animation:1s infinite pulse;position:fixed;top:0;left:0;right:0}@keyframes pulse{50%{opacity:.35}}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric-grid article,.panel,.card-grid article{background:#fff;border:1px solid #e7ddd5;border-radius:18px;padding:20px}.metric-grid article{gap:4px;display:grid}.metric-grid small{color:#998577}.metric-grid b{color:#795744;font-size:34px}.metric-grid span{color:#9c897c;font-size:13px}.dashboard{grid-template-columns:1.3fr 1fr;gap:18px;display:grid}.dashboard .metric-grid{grid-column:1/-1}.panel h2{margin:0 0 15px;font-size:18px}.list-row{border-bottom:1px solid #eee5df;grid-template-columns:1fr auto auto;gap:12px;padding:12px 0;display:grid}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.card-grid article header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.doctor-card header>div,.user-card header>div{margin-right:auto}.card-grid h3{margin:0 0 5px}.avatar{color:#795744;background:#eadfd7;border-radius:50%;place-items:center;width:46px;height:46px;font-weight:800;display:grid}.card-grid dl{grid-template-columns:95px 1fr;gap:9px;margin:0 0 18px;font-size:14px;display:grid}.card-grid dt{color:#9b887a}.card-grid dd{margin:0}.clinic-card{border-top:5px solid}.event-card p{color:#77665a}.status{white-space:nowrap;background:#eee6df;border-radius:99px;padding:4px 8px;font-size:12px;display:inline-block}.status.active,.status.normal,.status.sent,.status.approved,.status.bound{color:#3e7054;background:#e2f0e8}.status.inactive,.status.cancelled{color:#777;background:#eee}.status.pending,.status.rescheduled,.status.changed{color:#8a671d;background:#fff0d6}.status.failed{color:#a44034;background:#ffe2de}.schedule-list{gap:8px;display:grid}.schedule-list article{border:1px solid #eee3db;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.schedule-list article>i{border-radius:5px;width:5px;height:42px}.schedule-list article>div:first-of-type{margin-right:auto;display:grid}.schedule-list small{color:#938074;margin-top:4px}.cancelled{opacity:.55;text-decoration:line-through}.danger{color:#a84336!important;border-color:#e7b8b0!important}.legend{flex-wrap:wrap;gap:14px;margin-bottom:13px;display:flex}.legend span{font-size:13px}.legend i{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.calendar{background:#fff;border:1px solid #e4d8cf;border-radius:18px;overflow:hidden}.week,.days{grid-template-columns:repeat(7,1fr);display:grid}.week b{text-align:center;background:#f0e5dd;padding:12px}.days>div{border-top:1px solid #eee3db;border-right:1px solid #eee3db;min-height:135px;padding:9px;overflow:hidden}.days>div.blank{background:#faf7f4}.days>div>b{font-size:13px}.days>div>button{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:#f8f2ed;border:0;border-left:4px solid;border-radius:5px;width:100%;margin-top:5px;padding:5px;font-size:12px;display:block;overflow:hidden}.days em{color:#fff;background:#9a725c;border-radius:4px;margin-left:3px;padding:2px;font-size:9px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid #eee4dc;padding:13px;font-size:14px}.notification-list,.audit-list{gap:10px;display:grid}.notification-list article,.audit-list article{background:#fff;border:1px solid #e7ddd5;border-radius:14px;justify-content:space-between;gap:15px;padding:16px;display:flex}.notification-list p,.audit-list p{color:#766459;margin:7px 0}.notification-list small,.audit-list small{color:#a08d80}.error-text{color:#a84336;margin-top:8px;font-size:13px;display:block}.notice-hint{background:#f2e8df;border-left:4px solid #9a725c;border-radius:8px;margin-bottom:16px;padding:12px 14px}.empty{text-align:center;color:#9b887b;padding:50px}.overlay{z-index:100;background:#44383099;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fffaf6;border-radius:22px;width:min(680px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 90px #392b2466}.modal>header{z-index:2;background:#fffaf6;border-bottom:1px solid #eadfd7;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal h2{margin:3px 0}.modal>header>button{color:#8d7667;background:0 0;border:0;font-size:28px}.form-body{gap:16px;padding:22px 24px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.checks{flex-wrap:wrap;gap:9px;display:flex}.checks label,.big-check{background:#f2e8e0;border-radius:10px;padding:9px 12px;font-size:14px}.checks input,.big-check input{margin-right:6px}.notify-choice{background:#f3e9e1;border-radius:12px;grid-template-columns:1fr 1fr;gap:8px;padding:15px;display:grid}.notify-choice>b{grid-column:1/-1}.notify-choice label{font-size:14px}.modal footer{background:#fffaf6;border-top:1px solid #eadfd7;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex;position:sticky;bottom:0}.toast{color:#fff;z-index:200;background:#5d493d;border-radius:12px;padding:13px 20px;position:fixed;bottom:25px;right:25px}.inline-form{gap:8px;display:flex}.inline-form input{border:1px solid #d9cbc0;border-radius:10px;flex:1;padding:10px}.tag-list{gap:8px;display:grid}.tag-list>span{border-bottom:1px solid #eee2da;align-items:center;gap:9px;padding:10px;display:flex}.tag-list button{margin-left:auto}.calendar-month-nav{align-items:center;gap:5px;margin-bottom:18px;display:flex}.calendar-month-nav h2{margin:0;font-size:20px}.calendar-month-nav button{color:#d32f2f;background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;font-size:38px;font-weight:900;line-height:1;display:grid}.calendar-month-nav button:hover,.calendar-month-nav button:focus-visible{background:#fde8e8;outline:0}.mobile-logout,.mobile-install,.mobile-menu-toggle{display:none}.mobile-header-actions{align-items:center;gap:7px;display:flex}.checks label,.big-check{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.checks input,.big-check input{flex:none;width:auto;margin:0}.install-area{text-align:left;border-top:1px solid #eadfd7;gap:7px;margin-top:18px;padding-top:16px;display:grid}.install-area>b{color:#6f5343;font-size:15px}.install-area>span{color:#806d60;font-size:13px;line-height:1.55}.install-area .install-button{color:#7b5744;background:#f0e2d8;border:0;border-radius:12px;width:100%;margin-top:3px;padding:11px 14px;font-weight:800}.connection-banner,.update-banner{z-index:300;color:#fff;text-align:center;background:#57463c;border-radius:0 0 12px 12px;width:max-content;max-width:calc(100% - 24px);padding:8px 14px;font-size:13px;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 5px 18px #3e302933}.update-banner{background:#795744;align-items:center;gap:12px;display:flex}.update-banner button{color:#795744;background:#fff;border:1px solid #fff8;border-radius:8px;padding:5px 9px;font-weight:800}.install-guide-overlay{z-index:400;background:#443830aa;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.install-guide{text-align:center;background:#fffaf6;border-radius:24px;width:min(430px,100%);max-height:calc(100dvh - 40px);padding:27px 24px 23px;position:relative;overflow:auto;box-shadow:0 28px 90px #2f211b77}.install-guide-close{color:#765f51;background:#f0e5dd;border:0;border-radius:50%;width:38px;height:38px;font-size:25px;line-height:1;position:absolute;top:12px;right:13px}.install-guide-icon{color:#fff;background:#8e6753;border-radius:19px;place-items:center;width:66px;height:66px;margin:0 auto 10px;font-size:28px;font-weight:800;display:grid}.install-guide>small{color:#9b8374}.install-guide h2{margin:5px 0 7px;font-size:23px}.install-guide-lead{color:#7d695c;margin:0;line-height:1.55}.install-guide ol{counter-reset:install-step;text-align:left;gap:10px;margin:19px 0;padding:0;list-style:none;display:grid}.install-guide li{counter-increment:install-step;background:#fff;border:1px solid #e7dbd2;border-radius:13px;min-height:51px;padding:9px 10px 9px 51px;position:relative}.install-guide li:before{content:counter(install-step);color:#fff;background:#8e6753;border-radius:50%;place-items:center;width:29px;height:29px;font-weight:800;display:grid;position:absolute;top:10px;left:12px}.install-guide li b,.install-guide li span{display:block}.install-guide li b{font-size:14px}.install-guide li span{color:#8c786b;margin-top:3px;font-size:12px;line-height:1.45}.install-guide-done{width:100%}.install-browser-note{color:#9c5a45;margin:12px 0 0;font-size:12px;line-height:1.5}.management-list{background:#fff;border:1px solid #e7ddd5;border-radius:14px;padding:0 22px}.management-row{border-bottom:1px solid #e9e1da;align-items:center;gap:16px;min-height:76px;padding:14px 4px;display:flex}.management-row:last-child{border-bottom:0}.management-row>i{border-radius:6px;flex:none;width:6px;height:42px}.management-main{min-width:180px;margin-right:auto}.management-main h3{margin:0 0 5px;font-size:16px}.management-main h3 em{color:#9a725c;margin-left:7px;font-size:11px;font-style:normal}.management-main p{color:#8b796d;margin:0;font-size:13px}.management-meta{color:#806d60;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:13px;display:flex}.management-row>button{color:#8e6753;white-space:nowrap;background:0 0;border:0;padding:8px 4px}.history-count{color:#9a8576;font-size:13px}.history-filters{background:#fff;border:1px solid #e7ddd5;border-radius:14px;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:10px;margin-bottom:14px;padding:14px;display:grid}.history-filters label{color:#806c5e;gap:5px;font-size:12px;font-weight:700;display:grid}.history-filters input,.history-filters select{background:#fff;border:1px solid #d9ccc2;border-radius:9px;width:100%;padding:9px}.history-filters button{color:#705b4e;background:#fff;border:1px solid #d9cbc0;border-radius:9px;padding:9px 12px}@media (width<=1000px){.card-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.dashboard .metric-grid{grid-column:auto}.days>div{min-height:105px}.days>div>button{font-size:11px}}@media (width<=720px){.app-shell{padding-bottom:74px;display:block}.app-shell>aside{z-index:50;background:#fff;border-top:1px solid #e4d8cf;width:100%;height:68px;padding:7px;display:block;position:fixed;top:auto;bottom:0}.brand,.account{display:none}.app-shell nav{gap:3px;display:flex;overflow-x:auto}.app-shell nav button{text-align:center;min-width:92px;padding:9px 7px;font-size:12px}.app-shell>main{padding:18px 14px}.top{margin-bottom:18px}.top h1{font-size:23px}.role-pills{display:none}.toolbar{flex-direction:column;align-items:flex-start}.toolbar>div{flex-wrap:wrap;width:100%}.toolbar input{flex:1}.card-grid,.metric-grid{grid-template-columns:1fr}.dashboard .metric-grid{grid-column:1}.dashboard{display:block}.dashboard>*{margin-bottom:14px}.form-grid,.history-filters{grid-template-columns:1fr}.modal{border-radius:16px;max-height:95vh}.form-body{padding:18px}.notify-choice{grid-template-columns:1fr}.notify-choice>b{grid-column:auto}.calendar{overflow-x:auto}.week,.days{min-width:720px}.days>div{min-height:110px}.row-actions{flex-direction:column;display:flex}.schedule-list article,.notification-list article,.audit-list article{align-items:flex-start}.login-card{padding:30px 24px}.app-shell{padding-bottom:calc(74px + env(safe-area-inset-bottom))}.app-shell>aside{height:calc(68px + env(safe-area-inset-bottom));padding-bottom:calc(7px + env(safe-area-inset-bottom))}.app-shell>main{padding-top:calc(18px + env(safe-area-inset-top))}.mobile-logout,.mobile-install{color:#8e6753;white-space:nowrap;background:#fffaf6;border:1px solid #d9cbc0;border-radius:9px;padding:7px 9px;font-size:12px;display:block}.mobile-install{color:#fff;background:#8e6753;border-color:#8e6753}.login-page{padding:calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left))}.modal footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.install-guide-overlay{padding:calc(14px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}.install-guide{max-height:calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:23px 18px 18px}.connection-banner,.update-banner{top:env(safe-area-inset-top)}}.notification-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.notification-actions button{color:#fff;white-space:nowrap;background:#8e6753;border:0;border-radius:10px;padding:9px 13px;font-weight:700}@media (width<=720px){.notification-actions{justify-content:space-between;width:100%}.app-shell{padding-bottom:0}.app-shell>main{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.top{z-index:110;position:relative}.mobile-menu-toggle{color:#765f51;background:#fffaf6;border:1px solid #d9cbc0;border-radius:10px;place-content:center;gap:4px;width:42px;height:42px;padding:0;display:grid}.mobile-menu-toggle span{background:currentColor;border-radius:2px;width:19px;height:2px;display:block}.mobile-menu-toggle[aria-expanded=true]{color:#fff;background:#8e6753;border-color:#8e6753}.mobile-nav-backdrop{z-index:90;background:#44383044;border:0;position:fixed;inset:0}.app-shell>aside{z-index:100;top:calc(68px + env(safe-area-inset-top));width:min(230px,100% - 24px);height:auto;max-height:calc(100dvh - 86px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:#fffaf6;border:1px solid #e4d8cf;border-radius:16px;padding:12px;display:none;bottom:auto;left:auto;right:12px;overflow:auto;box-shadow:0 18px 45px #44383033}.app-shell>aside.mobile-nav-open{flex-direction:column;display:flex}.app-shell>aside .brand{padding:3px 4px 12px;display:flex}.app-shell>aside .account{margin-top:12px;padding:12px 4px 2px;display:grid}.app-shell>aside nav{gap:4px;display:grid;overflow:visible}.app-shell>aside nav button{text-align:left;align-items:center;gap:7px;width:100%;min-width:0;padding:12px 13px;font-size:15px;display:flex}.app-shell>aside nav i{flex:none;margin:0;position:static}.viewer-shell>aside nav{width:auto;overflow:visible}.viewer-shell>aside nav button{flex:initial}}.template-editor-grid{grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);align-items:start}.template-editor-grid .field{grid-column:1/-1}.template-editor-grid textarea{min-height:260px;line-height:1.55}.template-help{color:#705b4e;background:#f7f0ea;border:1px solid #eadfd7;border-radius:13px;gap:7px;padding:14px;display:grid}.template-help small,.line-preview small{color:#927d6d;line-height:1.5}.line-preview{gap:9px;display:grid}.line-preview>b{color:#705b4e}.line-preview>div{white-space:pre-wrap;color:#31432c;background:#dbeccf;border-radius:14px 14px 14px 3px;min-height:180px;padding:14px;line-height:1.55;box-shadow:inset 0 0 0 1px #b8d6aa}.notification-template-modal{width:min(820px,100%)}@media (width<=720px){.template-editor-grid{grid-template-columns:1fr}.template-editor-grid textarea{min-height:200px}.management-list{padding:0 14px}.management-row{flex-wrap:wrap;align-items:flex-start;gap:10px}.management-main{width:calc(100% - 18px);min-width:0}.management-meta{justify-content:flex-start;width:100%;padding-left:16px}.management-row>button{margin-left:auto}}.attachment-help,.attachment-selected{color:#806d60;font-size:12px;line-height:1.45;display:block}.attachment-selected{color:#6f5343;font-weight:600}.notification-columns{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:22px;display:grid}.notification-section{margin:0}.notification-section-heading{background:#f2e8df;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 2px 10px;padding:10px 12px;display:flex}.notification-section-heading h3{margin:0;font-size:18px}.notification-section-heading p{color:#8d796b;margin:4px 0 0;font-size:13px}.schedule-month-list{gap:10px;display:grid}.schedule-month-group,.notification-history{background:#fff;border:1px solid #e7ddd5;border-radius:14px;overflow:hidden}.schedule-month-group summary,.notification-history summary{cursor:pointer;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:10px;padding:15px 14px;list-style:none;display:grid}.schedule-month-group summary::-webkit-details-marker{display:none}.notification-history summary::-webkit-details-marker{display:none}.schedule-month-group summary span{gap:5px;min-width:0;display:grid}.schedule-month-group summary b{line-height:1.4}.schedule-month-group summary small{color:#8d796b;line-height:1.45}.schedule-month-group summary i,.notification-history summary i{background:#c4a17f;border-radius:50%;width:18px;height:18px;position:relative}.schedule-month-group summary i:after,.notification-history summary i:after{content:"";border-bottom:2px solid #fff;border-right:2px solid #fff;width:6px;height:6px;position:absolute;top:4px;left:5px;transform:rotate(45deg)}.schedule-month-group[open] summary i:after,.notification-history[open] summary i:after{top:7px;transform:rotate(225deg)}.schedule-month-rows{border-top:1px solid #eee3db;padding:0 14px}.schedule-month-rows article{border-bottom:1px solid #eee3db;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;display:flex}.schedule-month-rows article:last-child{border-bottom:0}.schedule-month-rows p{color:#766459;margin:6px 0 0}.notification-history summary{color:#806b5c;font-weight:700}.notification-history .notification-list{padding:0 16px 16px}.notification-history-section .empty,.notification-section>.empty{background:#fff;border:1px solid #e7ddd5;border-radius:14px;padding:24px 12px}@media (width<=1100px){.notification-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.notification-history-section{grid-column:1/-1}}@media (width<=720px){.notification-columns{grid-template-columns:1fr;gap:18px}.notification-history-section{grid-column:auto}.notification-section-heading{align-items:flex-start}.schedule-month-rows article{flex-direction:column;align-items:flex-start}.schedule-month-rows .notification-actions{justify-content:space-between;width:100%}.notification-history .notification-list{padding:0 12px 12px}}.notification-section-heading{align-items:center;height:64px}.schedule-month-group summary,.notification-history summary,.notification-list article{height:94px;overflow:hidden}.notification-section-heading p{display:none}@media (width<=720px){.notification-section-heading{border-radius:14px}.notification-columns>.notification-section:nth-child(2) .notification-list article{align-items:center;gap:6px;padding:12px;display:flex}.notification-columns>.notification-section:nth-child(2) .notification-list article>div:first-child{flex:1;min-width:0}.notification-columns>.notification-section:nth-child(2) .notification-list article p{white-space:nowrap;margin:5px 0 0;font-size:12px}.notification-columns>.notification-section:nth-child(2) .notification-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:5px;width:auto}.notification-columns>.notification-section:nth-child(2) .notification-actions .status{padding:4px 6px;font-size:11px}.notification-columns>.notification-section:nth-child(2) .notification-actions .primary{font-size:12px;border-radius:9px!important;padding:8px 9px!important}}.notification-section-heading{border-radius:14px}@media (width<=720px){.schedule-month-rows article{flex-direction:initial;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name name""summary actions";align-items:center;gap:4px 8px;display:grid}.schedule-month-rows article>div:first-child{display:contents}.schedule-month-rows article>div:first-child>b{grid-area:name}.schedule-month-rows article>div:first-child>p{white-space:nowrap;grid-area:summary;margin:0;font-size:12px}.schedule-month-rows article>.notification-actions{flex-wrap:nowrap;grid-area:actions;justify-content:flex-end;gap:5px;width:auto}.schedule-month-rows article>.notification-actions .status{padding:4px 6px;font-size:11px}.schedule-month-rows article>.notification-actions .primary{font-size:12px;border-radius:9px!important;padding:8px 9px!important}.schedule-month-rows article>div:first-child>.error-text{grid-column:1/-1}}.metric-clear-button{color:#8e6753;background:#fff;border:1px solid #d9cbc0;border-radius:8px;justify-self:start;margin-top:5px;padding:5px 10px;font-size:12px;font-weight:700}.status.cleared{color:#3e7054;background:#e2f0e8}.dashboard-metric-grid{grid-template-columns:repeat(3,1fr)}.week,.days{grid-template-columns:minmax(68px,.52fr) repeat(6,minmax(128px,1fr))}.calendar-clinic-row{align-items:center;gap:5px;min-width:0;margin-top:4px;display:flex}.calendar-leave-summary-cell{padding:8px 12px}.calendar-leading-placeholder{display:none}.calendar-month-leaves{color:#725c50;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-size:12px;line-height:1.45;display:flex}.calendar-month-leaves>b{color:#8e6753}.calendar-month-leaves>span{white-space:nowrap}.clinic-short-label{color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;flex:none;max-width:68px;padding:3px 5px;font-size:11px;font-weight:400;line-height:1.2;overflow:hidden}.calendar-doctors{align-items:center;gap:3px;min-width:0;display:flex;overflow:hidden}.calendar-doctor-action{min-width:0;display:inline-flex;position:relative}.calendar-doctor-action>button{color:#59493f;text-overflow:ellipsis;white-space:nowrap;background:#f8f2ed;border:0;border-radius:4px;min-width:0;padding:2px 3px;font-size:11px;font-weight:700;line-height:1.3;overflow:hidden}.calendar-quick-actions{gap:4px;margin-left:4px;display:flex}.calendar-quick-actions>button{color:#705b4e;white-space:nowrap;background:#fff;border:1px solid #d9cbc0;border-radius:6px;padding:2px 5px;font-size:11px}.days em{float:none;flex:none;align-self:center;align-items:center;margin-left:5px;padding:2px 4px;font-style:normal;font-weight:400;line-height:1.2;display:inline-flex}.schedule-time{white-space:nowrap;margin-left:3px;font-weight:400}.schedule-time-range{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.schedule-time-range>select{min-width:0}.schedule-time-range>i{color:#806d60;font-style:normal}.event-date-hour{grid-template-columns:minmax(0,1fr) 96px;gap:8px;display:grid}.event-date-hour>input,.event-date-hour>select{min-width:0}.today-schedule-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.today-schedule-heading h2{margin:0}.today-schedule-heading .primary{flex:none;padding:8px 12px!important}.update-banner{width:100%;max-width:none;min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));box-shadow:none;z-index:1000;isolation:isolate;background:#443830cc;border-radius:0;grid-template-rows:auto auto;align-content:center;justify-items:center;gap:20px;display:grid;inset:0;transform:none}.update-banner:before{content:"";z-index:0;background:#fffaf6;border-radius:24px;width:min(430px,100% - 28px);height:230px;position:absolute;box-shadow:0 30px 100px #2f211b99}.update-banner span{z-index:1;color:#59493f;font-size:24px;font-weight:800;position:relative}.update-banner span:before{content:"系統更新通知";color:#9b8374;margin-bottom:8px;font-size:13px;font-weight:500;display:block}.update-banner span:after{content:"請先完成更新後再繼續使用系統";color:#7d695c;margin-top:10px;font-size:14px;font-weight:400;display:block}.update-banner button{z-index:1;color:#fff;background:#8e6753;border:0;border-radius:12px;width:min(330px,100% - 56px);padding:12px 18px;font-weight:800;position:relative}.batch-schedule-intro{color:#715d50;background:#f2e8df;border-radius:10px;margin:0;padding:11px 13px;font-size:14px;line-height:1.55}.batch-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;display:grid}.batch-weekdays label{cursor:pointer;background:#fff;border:1px solid #ded1c7;border-radius:10px;place-items:center;gap:4px;padding:9px 4px;font-size:13px;display:grid}.batch-weekdays label.selected{color:#fff;background:#8e6753;border-color:#8e6753}.batch-weekdays input{width:auto;margin:0}.batch-date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.batch-date-grid button{color:#765f51;background:#fff;border:1px solid #e2d6cd;border-radius:9px;place-items:center;gap:1px;min-height:57px;padding:6px 2px;display:grid}.batch-date-grid button.selected{background:#efe2d8;border-color:#8e6753;box-shadow:inset 0 0 0 1px #8e6753}.batch-date-grid button.blocked{background:#fff0ed;border-color:#d99d91}.batch-date-grid small,.batch-date-grid em{font-size:10px;font-style:normal}.batch-date-grid em,.batch-warning{color:#a74435}.batch-warning,.batch-summary{background:#fff0ed;border-radius:9px;padding:10px 12px;font-size:13px}.batch-summary{color:#466753;background:#e8f1ea}.leave-date-actions{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.leave-date-actions>span{color:#806d62;font-size:13px}.leave-date-actions>div{gap:6px;display:flex}.leave-date-actions button{color:#765f51;white-space:nowrap;background:#fff;border:1px solid #d9c9bd;border-radius:8px;min-height:34px;padding:6px 10px}.leave-date-grid button{min-height:54px}.notification-list article{align-items:center}.notification-list article>.status{flex:none;align-self:center;width:max-content;height:max-content;margin-left:auto;padding:4px 8px;font-style:normal;line-height:1.2}.days>div:nth-child(7n){border-right:0}.calendar-controls{justify-content:space-between;align-items:center;gap:16px;display:flex}.calendar-action-buttons{align-items:center;gap:8px;display:flex}.calendar-print-button{color:#8e6753;background:#fff;border:1px solid #d9cbc0;border-radius:10px;padding:10px 16px;font-weight:700}.export-dialog-backdrop{z-index:120;background:#3a2b2380;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.export-dialog{background:#fff;border-radius:18px;width:min(420px,100%);padding:24px;position:relative;box-shadow:0 24px 70px #36251d40}.export-dialog h2{margin:0 0 18px}.export-dialog label{color:#5b463b;gap:7px;margin-top:14px;font-weight:700;display:grid}.export-dialog select{color:#4b4039;background:#fff;border:1px solid #d9cbc0;border-radius:10px;width:100%;min-height:44px;padding:9px 12px}.export-dialog p{color:#806d62;margin:14px 0 0;font-size:13px;line-height:1.55}.export-dialog footer{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.export-dialog-close{background:#f5efeb;border:0;border-radius:50%;width:34px;height:34px;font-size:22px;position:absolute;top:12px;right:12px}.calendar-print-snapshot{display:none}.daily-date-nav{align-items:center;gap:5px;display:inline-flex}.daily-date-nav>button{color:#d32f2f;background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;font-size:38px;font-weight:900;line-height:1;display:grid}.daily-date-nav>button:hover,.daily-date-nav>button:focus-visible{background:#fde8e8;outline:0}.daily-add-button{white-space:nowrap;flex:none}.app-shell[data-view=daily] .toolbar,.app-shell[data-view=daily] .toolbar>div{align-items:center}.app-shell[data-view=daily] .toolbar h2,.app-shell[data-view=daily] .daily-date-nav,.app-shell[data-view=daily] .daily-date-nav>button,.app-shell[data-view=daily] .daily-date-nav>span,.app-shell[data-view=daily] .toolbar input[type=date],.app-shell[data-view=daily] .daily-add-button{height:44px}.app-shell[data-view=daily] .toolbar h2,.app-shell[data-view=daily] .daily-date-nav>span,.app-shell[data-view=daily] .daily-add-button{justify-content:center;align-items:center;display:flex}.app-shell[data-view=daily] .daily-date-nav>span{white-space:nowrap;font-size:16px;line-height:1.2}@media (width>=721px){.app-shell[data-view=daily] .schedule-list .row-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.app-shell[data-view=daily] .schedule-list .row-actions button{color:#8e6753;white-space:nowrap;background:0 0;border:0;border-radius:0;padding:8px 4px}}.print-title,.mobile-dashboard{display:none}.viewer-today-panel h2{justify-content:space-between;align-items:center;display:flex}.viewer-today-panel h2 span{color:#795744;text-align:center;background:#efe3da;border-radius:99px;min-width:28px;padding:3px 8px;font-size:13px}.viewer-event-list{gap:8px;display:grid}.viewer-event-row{border:1px solid #eee3db;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px 12px;display:grid}.viewer-event-row b,.viewer-event-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.viewer-event-row small{color:#938074;grid-column:1/-1}.doctor-management-row{flex-wrap:wrap}.doctor-management-main{align-items:center;gap:14px;display:flex}.doctor-management-main h3{min-width:76px;margin:0}.doctor-detail-buttons{gap:7px;display:flex}.doctor-detail-buttons button{color:#705b4e;background:#fff;border:1px solid #d9cbc0;border-radius:99px;padding:6px 13px;font-size:13px;font-weight:700}.doctor-detail-buttons button.active{color:#fff;background:#8e6753;border-color:#8e6753}.doctor-detail-panel{background:#f6f0eb;border-radius:12px;width:100%;margin:0 0 2px 22px;padding:12px 14px}.doctor-detail-panel>b{margin-bottom:8px;font-size:13px;display:block}.doctor-detail-panel>div{flex-wrap:wrap;gap:6px;display:flex}.doctor-detail-panel span{background:#fff;border:1px solid #e1d5cc;border-radius:99px;padding:5px 9px;font-size:12px}.doctor-detail-panel small{color:#998577}@media (width<=720px){html,body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%;max-width:100%;overflow-x:hidden}input,select,textarea{font-size:16px}.leave-date-actions{align-items:flex-start}.leave-date-grid{gap:4px}.leave-date-grid button{min-height:48px;padding:4px 1px}.app-shell,.app-shell>main,.top,.dashboard,.calendar-print-area,.toolbar,.management-list,.notification-list,.audit-list{min-width:0;max-width:100%}.app-shell>main{width:100%;overflow-x:hidden}.top>div:first-child,.toolbar>div,.schedule-list article>div,.notification-list article>div,.audit-list article>div,.list-row>*{min-width:0}.top h1,.toolbar h2,.notification-list p,.audit-list p,.management-main p,.list-row>*{overflow-wrap:anywhere}.calendar-print-area{overflow:hidden}.calendar{border-radius:12px;width:100%;max-width:100%;overflow:hidden}.week,.days{grid-template-columns:minmax(0,.68fr) repeat(6,minmax(0,1fr));min-width:0}.week b{background:#eee5de;min-width:0;padding:8px 0;font-size:11px;font-weight:700}.days{grid-auto-rows:minmax(64px,auto)}.days>div{min-width:0;min-height:64px;padding:3px;overflow:visible}.days>.calendar-leave-summary-cell{min-height:auto;padding:7px 8px;overflow:hidden;grid-column:1/-1!important}.days>.calendar-leading-placeholder{min-height:64px;padding:3px;display:block;overflow:hidden}.calendar-leave-summary-cell .calendar-month-leaves{gap:3px 10px;width:100%;min-width:0}.calendar-leave-summary-cell .calendar-month-leaves>span{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.days>div>b{margin:0 0 3px 2px;font-size:11px;line-height:1.2;display:block}.calendar-clinic-row{gap:1px;margin-top:3px;padding:0;display:grid;overflow:visible}.calendar-clinic-row:not(.calendar-clinic-empty){background:0 0;border-radius:0;padding:0}.calendar-clinic-row:not(.calendar-clinic-empty) .clinic-short-label{margin-bottom:0}.calendar-clinic-row:not(.calendar-clinic-empty) .calendar-doctors{width:100%}.calendar-clinic-empty{display:none}.clinic-short-label{color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;width:fit-content;max-width:100%;margin-bottom:0;padding:2px 4px;font-size:9px;line-height:1.2;display:inline-flex;overflow:hidden}.calendar-doctors{gap:1px;display:grid;overflow:visible}.calendar-doctor-action{display:block}.calendar-doctor-action>button{color:#59493f;text-align:left;background:#f8f2ed;border-radius:4px;width:100%;max-width:100%;padding:2px 3px;font-size:10px;font-weight:700;line-height:1.2;display:block}.calendar-doctor-action .schedule-time{margin-left:0;font-size:9px;font-weight:400;display:block}.calendar-doctor-action em{vertical-align:middle;align-items:center;margin-left:3px;padding:1px 3px;font-size:8px;line-height:1.1;display:inline-flex}.calendar-quick-actions{z-index:8;background:#fff;border:1px solid #d9cbc0;border-radius:6px;gap:2px;margin:2px 0 0;padding:3px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #44383033}.calendar-quick-actions>button{padding:3px 5px;font-size:9px}.calendar-controls{width:100%;min-width:0}.calendar-month-nav{min-width:0;margin-bottom:8px}.calendar-month-nav h2{white-space:nowrap}.calendar-print-button,.app-shell[data-view=calendar] .top h1,.app-shell[data-view=daily] .top h1{display:none}.app-shell[data-view=calendar] .top,.app-shell[data-view=daily] .top{margin-bottom:10px}.app-shell[data-view=daily] .toolbar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:9px;display:grid}.app-shell[data-view=daily] .toolbar>div{display:contents}.app-shell[data-view=daily] .toolbar h2,.app-shell[data-view=daily] .toolbar input,.app-shell[data-view=daily] .daily-add-button{width:100%;min-width:0;margin:0}.app-shell[data-view=daily] .daily-date-nav{text-align:center;grid-template-columns:32px minmax(0,1fr) 32px;align-items:stretch;gap:2px;height:52px;display:grid}.app-shell[data-view=daily] .toolbar h2,.app-shell[data-view=daily] .daily-date-nav>span{overflow-wrap:normal;white-space:nowrap;height:52px;font-size:16px;line-height:1.2}.app-shell[data-view=daily] .daily-date-nav>span{justify-content:center;align-items:center;display:flex}.app-shell[data-view=daily] .daily-date-nav>button{width:32px;height:52px}.app-shell[data-view=daily] .toolbar input[type=date]{max-width:100%;height:52px;appearance:none;inline-size:100%;min-inline-size:0;max-inline-size:100%;display:block;width:100%!important;min-width:0!important}.app-shell[data-view=daily] .daily-add-button{justify-content:center;align-items:center;height:52px;display:flex;padding:9px 8px!important}.app-shell[data-view=daily] .schedule-list article{grid-template-columns:5px minmax(0,1fr) auto;gap:8px;display:grid}.app-shell[data-view=daily] .schedule-list article>div:first-of-type{margin-right:0}.app-shell[data-view=daily] .schedule-list .row-actions{flex-flow:row;align-self:center;align-items:center;gap:4px;min-width:max-content;display:flex}.app-shell[data-view=daily] .schedule-list .row-actions button{white-space:nowrap;min-width:44px;padding:5px 7px;font-size:13px;line-height:1.2}.app-shell[data-view=clinics] .toolbar{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.app-shell[data-view=clinics] .toolbar>div{flex-wrap:nowrap;flex:none;width:auto}.app-shell[data-view=clinics] .toolbar h2{white-space:nowrap;min-width:0}.app-shell[data-view=clinics] .toolbar .primary{white-space:nowrap;min-height:44px}.app-shell[data-view=doctors] .toolbar,.app-shell[data-view=leaves] .toolbar,.app-shell[data-view=events] .toolbar,.app-shell[data-view=notifications] .toolbar,.app-shell[data-view=users] .toolbar{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.app-shell[data-view=doctors] .toolbar>div,.app-shell[data-view=leaves] .toolbar>div,.app-shell[data-view=events] .toolbar>div,.app-shell[data-view=notifications] .toolbar>div,.app-shell[data-view=users] .toolbar>div{flex-wrap:nowrap;flex:none;width:auto}.app-shell[data-view=doctors] .toolbar h2,.app-shell[data-view=leaves] .toolbar h2,.app-shell[data-view=events] .toolbar h2,.app-shell[data-view=notifications] .toolbar h2,.app-shell[data-view=users] .toolbar h2{white-space:nowrap;min-width:0}.app-shell[data-view=doctors] .toolbar button,.app-shell[data-view=leaves] .toolbar button,.app-shell[data-view=events] .toolbar button,.app-shell[data-view=notifications] .toolbar button,.app-shell[data-view=users] .toolbar button{white-space:nowrap;min-height:44px;padding:9px 10px!important}.app-shell[data-view=dashboard] .schedule-list article{grid-template-columns:5px minmax(0,1fr) auto;gap:8px;display:grid}.app-shell[data-view=dashboard] .schedule-list article>div:first-of-type{margin-right:0}.app-shell[data-view=dashboard] .schedule-list .row-actions{flex-flow:row;align-self:center;align-items:center;gap:4px;min-width:max-content;display:flex}.app-shell[data-view=dashboard] .schedule-list .row-actions button,.app-shell[data-view=doctors] .management-row>button,.app-shell[data-view=clinics] .management-row>button,.app-shell[data-view=leaves] .management-row>button,.app-shell[data-view=events] .management-row>button,.app-shell[data-view=users] .management-row>button{white-space:nowrap;min-width:44px;margin:0;padding:5px 7px;font-size:13px;line-height:1.2}.app-shell[data-view=clinics] .management-row,.app-shell[data-view=leaves] .management-row,.app-shell[data-view=events] .management-row{grid-template-columns:6px minmax(0,1fr) repeat(2,auto);align-items:center;gap:6px;display:grid}.app-shell[data-view=clinics] .management-row>i,.app-shell[data-view=leaves] .management-row>i,.app-shell[data-view=events] .management-row>i{grid-area:1/1/span 2}.app-shell[data-view=clinics] .management-main,.app-shell[data-view=leaves] .management-main,.app-shell[data-view=events] .management-main{grid-area:1/2;width:auto;margin-right:0}.app-shell[data-view=clinics] .management-meta,.app-shell[data-view=leaves] .management-meta,.app-shell[data-view=events] .management-meta{grid-area:2/2/auto/-1;width:auto;padding-left:0}.app-shell[data-view=clinics] .management-row>button,.app-shell[data-view=leaves] .management-row>button,.app-shell[data-view=events] .management-row>button{grid-row:1}.app-shell[data-view=users] .management-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.app-shell[data-view=users] .management-main{grid-area:1/1;width:auto;margin-right:0}.app-shell[data-view=users] .management-meta{grid-area:2/1/auto/-1;width:auto;padding-left:0}.app-shell[data-view=users] .management-row>button{grid-area:1/2}.calendar-print-area .legend{gap:4px 8px;margin-bottom:8px}.calendar-print-area .legend span{font-size:10px}.notification-list article,.audit-list article{width:100%;min-width:0}.notification-list article>.status{margin-left:0}.doctor-management-row{grid-template-columns:6px minmax(0,1fr) auto;align-items:start;display:grid;position:relative}.doctor-management-row>i{grid-row:1/span 2}.doctor-management-main{gap:8px;width:auto;display:grid}.doctor-management-main h3{min-width:0}.doctor-management-row>.management-meta{grid-column:2/-1;width:auto;padding-left:0}.doctor-management-row>button{grid-area:1/3;margin:0}.doctor-management-row>.line-binding-button{white-space:nowrap;min-width:180px;padding:8px 12px}.doctor-detail-panel{grid-column:2/-1;width:auto;margin:0;padding:10px}.doctor-detail-buttons button{flex:1;padding:7px 12px}.viewer-shell>aside nav{width:100%;overflow:hidden}.viewer-shell>aside nav button{flex:1 1 0;min-width:0}.app-shell:has(.mobile-dashboard){height:100dvh;min-height:0;overflow:hidden}.app-shell:has(.mobile-dashboard)>main{height:calc(100dvh - 74px - env(safe-area-inset-bottom));overflow:hidden}.mobile-dashboard{height:calc(100dvh - 178px - env(safe-area-inset-top) - env(safe-area-inset-bottom));grid-template-rows:minmax(0,1fr) 118px;grid-template-columns:1fr;gap:10px;min-height:0;display:grid;overflow:hidden}.desktop-dashboard{display:none}.viewer-today-panel{border-radius:15px;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:13px;display:grid;overflow:hidden}.viewer-today-panel .schedule-list,.viewer-event-list{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;min-height:0;overflow:hidden auto}.viewer-today-panel h2{margin-bottom:9px;font-size:16px}.viewer-today-panel .schedule-list,.viewer-event-list{gap:5px}.viewer-today-panel .schedule-list article,.viewer-event-row{padding:7px 9px}.viewer-today-panel .schedule-list article>i{height:34px}.viewer-today-panel .empty{padding:32px 10px}.viewer-today-panel:last-child .empty{place-items:center;height:100%;padding:8px 10px;display:grid}.checks label,.big-check,.inline-form,.inline-form input,.card-grid dl,.card-grid dd,.event-card p{min-width:0;max-width:100%}.checks label,.big-check,.card-grid dd,.event-card p{white-space:normal;overflow-wrap:anywhere}}@media (width<=360px){.calendar-controls{flex-direction:column;align-items:flex-start}.calendar-action-buttons{width:100%}}.delete-schedule-modal{width:min(560px,100%)}.delete-scope-options{gap:10px;display:grid}.delete-scope-options>label{cursor:pointer;background:#fff;border:1px solid #ddcfc4;border-radius:13px;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:15px;display:grid}.delete-scope-options>label.selected{background:#f5ebe4;border-color:#9a6d57;box-shadow:0 0 0 1px #9a6d57}.delete-scope-options input{margin-top:4px}.delete-scope-options span{gap:4px;display:grid}.delete-scope-options small{color:#8e796b;line-height:1.45}@media print{@page{size:landscape;margin:5mm}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:0;background:#fff!important}body>:not(.calendar-print-snapshot){display:none!important}.calendar-print-snapshot{object-fit:contain;object-position:center;width:100%;height:calc(100vh - 1mm);margin:0 auto;display:block}}
