
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.calendar-head h3{margin:0;font-size:22px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#75837e;margin:18px 0}.legend-green{color:#28734b}.legend-red{color:#ac4038}.legend-yellow{color:#91641d}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekday{text-align:center;color:#687c73;font-size:12px;padding:8px}.calendar-day{padding:12px 8px;min-height:92px;border:2px solid transparent;text-align:left;border-radius:10px;background:#f1f3f2;color:#61716c;display:flex;flex-direction:column;gap:8px;min-width:0}.calendar-day strong{font-size:18px}.calendar-day small{font-size:11px;font-weight:500;line-height:1.5}.calendar-day.green{background:#e5f3e8;color:#22643c}.calendar-day.red{background:#fce7e3;color:#9c332b}.calendar-day.yellow{background:#fff2d7;color:#82551b}.calendar-day[aria-pressed=true]{border-color:#164e43;box-shadow:0 0 0 1px #164e43}.calendar-day.today strong:after{content:' · 今天';font-size:10px;font-weight:500}.badge.employerAssisted{background:#fceae6!important;color:#aa4038!important}@media(max-width:760px){.calendar-grid{gap:4px}.calendar-day{min-height:78px;padding:8px 3px;gap:5px;border-radius:6px}.calendar-day strong{font-size:15px}.calendar-day small{font-size:9px}.calendar-day.today strong:after{content:'•'}.calendar-legend{gap:8px;font-size:11px}}
.daily{margin-bottom:24px}.daily h2{margin-top:8px}.daily-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:20px}.daily-controls label{display:grid;gap:7px;font-size:12px;color:#52706c}.daily-controls select{font:inherit;font-size:14px;padding:12px;border:1px solid #cddbd7;border-radius:9px;background:white;max-width:100%;color:#182f37}.daily-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:18px 0}.daily-stat{background:#f3f7f5;padding:16px 12px;border-radius:10px;font-size:12px;color:#52706c}.daily-stat strong{display:block;font-size:27px;color:#182f37;margin-top:8px}.daily-table-wrap{overflow-x:auto}.daily-table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.daily-table th{font-size:11px;color:#647b7c;background:#f6f8f7;font-weight:500;white-space:nowrap}.daily-table th,.daily-table td{padding:14px 12px;border-bottom:1px solid #e8edeb}.daily-table td{line-height:1.7}.daily-table td:first-child{min-width:140px}.daily-table time{white-space:nowrap}.daily-table small{display:block;color:#647b7c}.badge.onTime{background:#e5f2e9;color:#2c7250}.badge.late,.badge.employerAssisted{background:#fcf0d9;color:#8d5d21}.badge.overdue{background:#fceae6;color:#aa4038}@media(max-width:1000px){.daily-summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.daily-summary{grid-template-columns:repeat(2,1fr)}.daily-controls label:first-child{width:100%}.daily-controls select{width:100%}.daily{padding:18px}.daily-table th,.daily-table td{padding:12px 8px}.daily-table-wrap{max-width:100%}}
:root{font-family:"Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif;color:#182f37;background:#f3f6f5;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:11px 17px;font-weight:650}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #49a99c;outline-offset:3px}input:not([type=checkbox]){border:1px solid #cddbd7;border-radius:9px;padding:12px;background:#fff;min-width:0}input[type=checkbox]{accent-color:#187f72}p{line-height:1.7}.sidebar{position:fixed;width:236px;inset:0 auto 0 0;background:#103e3b;color:#eaf5f1;padding:37px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px}.brandmark{display:grid;place-items:center;width:39px;height:39px;background:#d8e8b1;border-radius:12px;color:#164c42;font-size:29px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:6px;color:#b0cbc3}.navitem{margin-top:50px;background:#28564f;border-radius:9px;padding:16px}.side-note{margin:42px 10px;font-size:24px;color:#b8d2c7;line-height:1.9}.side-bottom{margin-top:auto;font-size:11px;line-height:2;color:#a6c5bc}main{margin-left:236px;max-width:1640px;padding:46px 44px 24px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px}h1{font-size:29px;letter-spacing:-.7px;margin:10px 0}h2{font-size:20px;margin:0 0 8px}h3{font-size:20px;margin:12px 0 7px}.eyebrow{font-size:10px;letter-spacing:2px;color:#4b7d71;font-weight:750}.subtitle,.muted{color:#647b7c;font-size:13px}.subtitle{margin:0}.card{background:#fff;border:1px solid #dfe7e4;border-radius:15px;padding:23px;box-shadow:0 3px 8px #153d2c03}.toolbar{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#5f7477;margin:0 0 17px;gap:15px}.toolbar>div:last-child{display:flex;align-items:center;gap:15px}.quiet{background:#e9efec;color:#254d45}.primary{background:#146e61;color:white}.auto{white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metrics span{font-size:13px;color:#52706c}.metrics strong{display:block;font-size:42px;font-weight:600;margin:11px 0}.metrics small{font-size:11px;color:#758684}.red{color:#bc4d43}.amber{color:#a9742c}.systems{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.systems .card{padding:20px 24px;border-left:4px solid #adc8be}.section-label{font-size:12px;color:#648076}.systems p{font-size:12px;color:#667f7a;margin:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.section-head p{margin:0}.section-head form{display:flex;gap:8px;max-width:100%}.section-head input{width:200px}.filters{display:flex;justify-content:space-between;padding:20px 0 15px;font-size:12px;color:#65807a;border-bottom:1px solid #e8edeb}.family{padding:20px 0;border-bottom:1px solid #e8edeb}.family:last-child{border-bottom:0}.family-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.family h3{font-size:17px;margin:0;overflow-wrap:anywhere}.badge{font-size:11px;border-radius:6px;padding:6px 10px;white-space:nowrap;background:#edf0ef;color:#586e68}.badge.critical{background:#fceae6;color:#aa4038}.badge.warning{background:#fcf0d9;color:#8d5d21}.badge.observed{background:#e5f2e9;color:#2c7250}.family-meta{font-size:12px;color:#5e7871;margin:12px 0;line-height:1.8}.issues{padding:0;list-style:none;margin:10px 0;font-size:13px;line-height:1.8}.issues li:before{content:"•";margin-right:8px;color:#a06f40}summary{font-size:12px;color:#276e60;cursor:pointer;padding:8px 0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.detail-item{padding:14px;border-radius:8px;background:#f6f8f7;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.detail-item strong{display:block;color:#315b51}.detail-title{font-size:12px;color:#57796d;margin:12px 0 5px}.empty{text-align:center;padding:42px;color:#698079;font-size:14px}.more{display:block;margin:20px auto 0}.footnote{font-size:12px;color:#72837c;line-height:1.9;margin:20px 2px}.banner{border:1px solid #e6b3a8;background:#fff1ed;border-radius:9px;padding:13px;margin-bottom:15px;font-size:13px;color:#963f31}.login{max-width:520px;margin:65px auto;padding:36px}.login h2{margin-top:14px}.login p{font-size:13px;color:#627b72}.login form{display:grid;gap:12px;margin-top:25px}.login label{font-size:13px}.login #loginError{color:#a43c36}footer{font-size:11px;color:#7b8f86;border-top:1px solid #dee7e1;padding-top:20px;margin-top:30px;display:flex;justify-content:space-between}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:1150px){.sidebar{width:200px;padding:30px 18px}main{margin-left:200px;padding:32px 24px}.section-head{align-items:flex-start;flex-direction:column}.metrics{gap:10px}.metrics .card{padding:17px}.metrics strong{font-size:34px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px 20px}.navitem,.side-note,.side-bottom{display:none}main{margin:0;padding:25px 16px}h1{font-size:23px}.metrics{grid-template-columns:1fr 1fr}.systems,.detail-grid{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.section-head form{width:100%}.section-head input{flex:1;width:100%}.families{padding:18px}.family-top{align-items:flex-start}.filters{gap:10px}.filters span{font-size:10px}.login{margin:25px auto;padding:24px}footer{gap:10px;line-height:1.8}.toolbar>div:last-child{width:100%;justify-content:space-between}}