@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
.ui-v2{color:#1a1208;background-color:#f2efe9;min-height:100%;font-family:Noto Sans TC,sans-serif;font-size:16px}.ui-v2 *,.ui-v2 :before,.ui-v2 :after{box-sizing:border-box}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#ede9e3}::-webkit-scrollbar-thumb{background:#c8bdb0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8998a}.payroll-table{border-collapse:collapse;width:100%;min-width:1700px;font-size:15px}.payroll-table th{color:#f9fafb;text-align:center;white-space:nowrap;z-index:10;background-color:#4b5563;border:1px solid #374151;padding:13px 11px;font-size:13.5px;font-weight:600;position:sticky;top:0}.payroll-table td{text-align:center;white-space:nowrap;color:#1a1208;border:1px solid #e5e7eb;padding:12px 11px;font-size:15px}.payroll-table tbody tr:nth-child(2n){background-color:#fafaf8}.payroll-table tbody tr:nth-child(odd){background-color:#fff}.payroll-table tbody tr:hover{background-color:#eff6ff;transition:background-color .12s}.payroll-table tbody tr.payroll-section-row td,.payroll-table tbody tr.payroll-section-row:nth-child(2n) td,.payroll-table tbody tr.payroll-section-row:nth-child(odd) td,.payroll-table tbody tr.payroll-section-row:hover td{color:#6b5f52;text-align:left;background:#f3f0ea;padding:9px 14px;font:800 13px Noto Sans TC,sans-serif}.payroll-table tfoot td{color:#111827;background-color:#e5e7eb;font-weight:700}.payroll-table tbody tr.payroll-loading-row td,.payroll-table tbody tr.payroll-loading-row:nth-child(2n) td,.payroll-table tbody tr.payroll-loading-row:nth-child(odd) td,.payroll-table tbody tr.payroll-loading-row:hover td{background:#fff;border-color:#e5e7eb;height:100%}.payroll-loading-overlay{z-index:40;color:#6b5f52;pointer-events:none;background:#ffffffe0;justify-content:center;align-items:center;gap:10px;font:600 14px Noto Sans TC,sans-serif;display:flex;position:absolute;inset:0}.payroll-loading-spinner{border:2.5px solid #e5e7eb;border-top-color:#4b5563;border-radius:50%;width:22px;height:22px;animation:.7s linear infinite payroll-spin;display:inline-block}@keyframes payroll-spin{to{transform:rotate(360deg)}}.page-loading{color:#64748b;justify-content:center;align-items:center;gap:10px;min-height:240px;font:600 15px Noto Sans TC,sans-serif;display:flex}.page-loading.is-overlay{z-index:30;background:#ffffffe0;min-height:0;position:absolute;inset:0}.page-loading.is-compact{min-height:120px}.page-loading-spinner{border:2.5px solid #e5e7eb;border-top-color:#4b5563;border-radius:50%;width:22px;height:22px;animation:.7s linear infinite payroll-spin;display:inline-block}.page-loading-host{flex:auto;min-height:240px;position:relative}.payroll-fit{flex:1;min-height:0;overflow:hidden}.payroll-fit-body{flex-direction:column;flex:1;min-height:0;padding:10px 0 0;display:flex}.payroll-fit-table{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.payroll-table-scroll{flex:1;min-height:0;overflow:auto}.payroll-fit-table.is-loading .payroll-table-scroll{flex-direction:column;display:flex;overflow:hidden}.payroll-fit-table.is-loading .payroll-table{flex:1;height:100%}.payroll-fit-table.is-loading tbody,.payroll-fit-table.is-loading .payroll-loading-row{height:100%}.payroll-summary-bar{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.payroll-summary-chip{white-space:nowrap;background:#fff;border:1px solid #e5e0d8;border-radius:8px;align-items:baseline;gap:8px;width:auto;padding:8px 12px;display:flex;box-shadow:0 1px 2px #0f172a0f}.payroll-summary-chip span{color:#8a7d70;font-size:12px;line-height:1.2}.payroll-summary-chip strong{color:#1a1208;font:700 15px/1.2 JetBrains Mono,monospace}.payroll-summary-chip.is-mpf{background:#fffbeb;border-color:#fde68a}.payroll-summary-chip.is-mpf span{color:#92400e}.payroll-summary-chip.is-mpf strong{color:#78350f}.payroll-table .sticky-col-pos,.payroll-table .sticky-col-name{position:sticky}.payroll-table tbody tr:nth-child(2n) td.sticky-col-pos,.payroll-table tbody tr:nth-child(2n) td.sticky-col-name{background:#fafaf8}.payroll-table tbody tr:hover td.sticky-col-pos,.payroll-table tbody tr:hover td.sticky-col-name{background:#eff6ff}.employee-management,.employee-editor{color:#172033}.employee-management input[type=date],.employee-editor input[type=date],.employee-management input[type=month],.employee-editor input[type=month]{max-width:11.5rem}.employee-hero{box-sizing:border-box;background:#fff;border:1px solid #dce3ea;border-radius:15px;justify-content:space-between;align-items:center;gap:20px;padding:14px 24px;display:flex;box-shadow:0 2px 5px #0f172a17}.employee-eyebrow{color:#354156;letter-spacing:.04em;margin-bottom:6px;font-size:13px;font-weight:700}.employee-hero h2{margin:0;font-family:Noto Serif TC,serif;font-size:30px;line-height:1.25}.employee-hero p{color:#3e4a5c;margin:7px 0 0;font-size:15px;font-weight:700}.employee-hero-actions,.employee-stats,.employee-toolbar-controls{align-items:center;display:flex}.employee-hero-actions{gap:20px}.employee-stats{color:#6b5f52;gap:18px;font-size:13px}.employee-stats span{white-space:nowrap;border-right:1px solid #e5e0d8;padding-right:18px}.employee-stats span:last-child{border-right:0;padding-right:0}.employee-stats strong{color:#172033;font:700 18px JetBrains Mono,monospace;display:block}.employee-primary-button,.employee-secondary-button,.employee-cancel-button{cursor:pointer;border:0;border-radius:9px;font:700 14px Noto Sans TC,sans-serif;transition:transform .12s,box-shadow .12s,background .12s}.employee-primary-button{color:#fff;background:#1f65df;padding:11px 18px;box-shadow:0 4px 12px #1f65df3d}.employee-primary-button:hover{background:#1857c6;transform:translateY(-1px)}.employee-primary-button.is-busy{justify-content:center;align-items:center;gap:8px;display:inline-flex}.employee-save-spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite payroll-spin;display:inline-block}.employee-editor-saving{z-index:8;color:#334155;background:#ffffffc7;justify-content:center;align-items:center;gap:10px;font:700 15px Noto Sans TC,sans-serif;display:flex;position:absolute;inset:0}.employee-editor-saving .employee-save-spinner{border-color:#1f65df #e5e7eb #e5e7eb;width:22px;height:22px}.employee-secondary-button,.employee-cancel-button{color:#475569;background:#fff;border:1px solid #dfe4ea;padding:10px 15px}.employee-secondary-button.is-active{color:#1f65df;background:#eef5ff;border-color:#b8cef7}.employee-toolbar{background:#fff;border:1px solid #e5e0d8;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:18px;padding:12px 16px;display:flex;box-shadow:0 1px 7px #3f2d1b0d}.employee-search{background:#f8fafc;border:1px solid #dfe4ea;border-radius:9px;flex:0 0 240px;align-items:center;gap:10px;width:240px;max-width:240px;padding:0 14px;display:flex}.employee-search span{color:#718096;font-size:24px;transform:rotate(-15deg)}.employee-search input{color:#172033;background:0 0;border:0;outline:0;width:100%;padding:11px 0;font:500 14px Noto Sans TC,sans-serif}.employee-toolbar-controls{gap:12px;margin-left:auto}.employee-result-count{color:#6b5f52;white-space:nowrap;font:600 13px JetBrains Mono,monospace}.employee-filter-row{flex-wrap:wrap;flex:180px;gap:8px;min-width:0;display:flex}.employee-filter{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e7ee;border-radius:999px;padding:7px 13px;font:600 13px Noto Sans TC,sans-serif}.employee-toolbar-io{align-items:center;gap:8px;margin-left:auto;display:flex}.employee-toolbar-io .employee-secondary-button{min-height:34px}.employee-extra-filters{flex-wrap:wrap;flex:100%;align-items:flex-end;gap:10px 12px;display:flex}.employee-extra-filters label{color:#6b5f52;flex-direction:column;gap:4px;font-size:12px;font-weight:700;display:flex}.employee-extra-filters select,.employee-extra-filters input[type=date]{color:#172033;background:#fff;border:1px solid #dfe4ea;border-radius:9px;min-width:132px;padding:7px 10px;font:500 13px Noto Sans TC,sans-serif}.employee-date-range{align-items:center;gap:6px;display:flex}.employee-date-range em{color:#9e8e7c;font-size:12px;font-style:normal;font-weight:700}.employee-filter.is-active{color:#92400e;background:#fef3e2;border-color:#d97706}.employee-list-heading{justify-content:space-between;align-items:flex-end;margin:23px 2px 12px;display:flex}.employee-list-heading h3{color:#172033;margin:0;font-family:Noto Serif TC,serif;font-size:18px}.employee-list-heading p,.employee-list-heading>span{color:#8a7d70;margin:4px 0 0;font-size:12px}.employee-list-stage{min-height:280px;position:relative}.employee-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.employee-profile-card{color:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e7ee;border-radius:13px;padding:0;transition:border-color .14s,box-shadow .14s,transform .14s;overflow:hidden;box-shadow:0 1px 5px #2d37480f}.employee-profile-card:hover,.employee-profile-card:focus-visible{border-color:#94b8f6;outline:none;transform:translateY(-2px);box-shadow:0 8px 22px #2b5aa021}.employee-card-top{align-items:center;gap:13px;padding:17px;display:flex;position:relative}.employee-avatar{color:#1e40af;background:linear-gradient(135deg,#eef6ff,#c7ddff);border:3px solid #dbeafe;border-radius:50%;flex:0 0 54px;place-items:center;width:54px;height:54px;font:800 15px Noto Serif TC,serif;display:grid;overflow:hidden}.employee-avatar img{object-fit:cover;width:100%;height:100%;display:block}.employee-avatar.has-photo{cursor:pointer}.employee-avatar.is-compact{border-width:2px;flex-basis:40px;width:40px;height:40px;font-size:12px}.employee-avatar.is-editor{cursor:default;background:#ececec;border:1px solid #d9dde3;border-bottom:0;border-radius:8px 8px 0 0;flex-basis:120px;width:120px;height:150px;padding:0;font-size:22px;position:relative}.employee-avatar.is-editor.is-placeholder{background:#ececec}.employee-avatar.is-editor.is-placeholder img,.employee-avatar.is-editor.is-placeholder .employee-photo-silhouette{object-fit:cover;width:100%;height:100%}.employee-photo-silhouette{display:block}.employee-photo-hint{color:#fff;background:#0f172a8c;padding:6px 4px;font-size:11px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.employee-camera-dialog{width:min(860px,100vw - 32px)}.employee-camera-stage{background:#6b4450;margin-top:8px;position:relative;overflow:hidden}.employee-camera-preview{object-fit:cover;background:#4a3038;border-radius:0;width:100%;height:420px;margin:0;display:block}.employee-camera-stage.is-mirror .employee-camera-preview{transform:scaleX(-1)}.employee-camera-oval{pointer-events:none;background:#ffffff38;border-radius:50%;width:min(42%,260px);height:68%;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.employee-camera-mirror{color:#fff;cursor:pointer;background:#0f172ac7;border:0;border-radius:6px;padding:6px 12px;font:700 12px Noto Sans TC,sans-serif;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.employee-photo-crop-backdrop{z-index:95}.employee-photo-crop-dialog{width:min(820px,100vw - 32px)}.employee-photo-crop-stage{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#d9d9d9;height:420px;margin-top:8px;position:relative;overflow:hidden}.employee-photo-crop-stage:active{cursor:grabbing}.employee-photo-crop-image{transform-origin:50%;pointer-events:none;max-width:none;position:absolute;top:50%;left:50%}.employee-photo-crop-frame{pointer-events:none;border:2px solid #fff;width:240px;height:320px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #0000000f}.employee-photo-crop-oval{background:#ffffff8c;border-radius:50%;position:absolute;inset:8% 10% 16%}.employee-photo-crop-tools{z-index:2;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.employee-photo-crop-tools button{color:#fff;cursor:pointer;background:#373737e0;border:0;border-radius:4px;place-items:center;width:28px;height:28px;display:grid}.employee-photo-crop-tools svg{width:16px;height:16px}.employee-photo-crop-hint{color:#64748b;margin:10px 0 0;font-size:13px}.employee-photo-crop-save,.employee-photo-crop-cancel{cursor:pointer;border-radius:4px;min-width:88px;padding:8px 22px;font:700 14px Noto Sans TC,sans-serif}.employee-photo-crop-save{color:#fff;background:#ff4d4f;border:0}.employee-photo-crop-save:hover:not(:disabled){background:#f5222d}.employee-photo-crop-save:disabled,.employee-photo-crop-cancel:disabled{opacity:.6;cursor:default}.employee-photo-crop-cancel{color:#334155;background:#fff;border:1px solid #d9d9d9}.employee-view-toggle{background:#f7f5f1;border:1px solid #dce3ea;border-radius:10px;padding:3px;display:inline-flex}.employee-view-toggle button{color:#6b5f52;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:64px;padding:6px 12px;font-size:13px;font-weight:700}.employee-view-toggle button.is-active{color:#172033;background:#fff;box-shadow:0 1px 3px #0f172a1a}.staff-move{gap:14px;display:grid}.staff-move-head,.staff-move-card header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.staff-move-head h3,.staff-move-card h4{margin:0;font:800 18px Noto Serif TC,serif}.staff-move-head p,.staff-move-card header p{color:#667085;margin:4px 0 0;font-size:13px}.staff-move-head label{color:#667085;gap:4px;font-size:12px;font-weight:700;display:grid}.staff-move-head select{background:#fff;border:1px solid #dce4ed;border-radius:8px;height:38px;padding:0 10px;font:700 14px Noto Sans TC,sans-serif}.staff-move-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.staff-move-kpis article{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:16px}.staff-move-kpis span{color:#667085;font-size:13px;font-weight:700}.staff-move-kpis strong{color:#1d2939;margin-top:6px;font:800 28px/1 JetBrains Mono,monospace;display:block}.staff-move-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:14px;display:grid}.staff-move-card{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:16px}.staff-move-card header p{align-items:center;gap:8px;display:flex}.staff-move-card header i,.staff-move i{border-radius:2px;width:10px;height:10px;display:inline-block}.staff-move .is-hire{color:#1d4ed8;background:#2563eb}.staff-move .is-leave{color:#e11d48;background:#e11d48}.staff-move-kpis .is-hire,.staff-move-kpis .is-leave,.staff-move-table .is-hire,.staff-move-table .is-leave{background:0 0}.staff-move-months{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px;min-height:200px;display:grid}.staff-move-months small{color:#667085;text-align:center;margin-top:6px;font-size:12px;font-weight:700;display:block}.staff-move-col{justify-content:center;align-items:flex-end;gap:6px;height:160px;display:flex}.staff-move-col>span{justify-content:center;align-items:flex-end;width:18px;height:100%;display:flex}.staff-move-col>span>i{border-radius:0;width:14px;height:128px;display:block;position:relative}.staff-move-col b{border-radius:4px 4px 0 0;width:14px;position:absolute;bottom:0;left:0;right:0}.staff-move-col em{background:0 0;font:700 12px/1 JetBrains Mono,monospace;position:absolute;top:-2px;left:50%;transform:translate(-50%,-100%)}.staff-move-col .hire-num{color:#1d4ed8}.staff-move-col .leave-num{color:#e11d48}.staff-move-stores{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.staff-move-stores li{grid-template-columns:minmax(0,1fr) 88px auto;align-items:center;gap:10px;display:grid}.staff-move-stores small{color:#98a2b3;margin-top:2px;font-size:12px;display:block}.staff-move-stores em{white-space:nowrap;font:700 12px JetBrains Mono,monospace}.staff-move-bars{gap:4px;display:grid}.staff-move-bars b{background:#eef2f6;border-radius:999px;height:6px;display:block;overflow:hidden}.staff-move-bars i{border-radius:inherit;height:100%;display:block}.staff-move-table{border-collapse:collapse;background:#fff;border:1px solid #e6ebf2;border-radius:14px;width:100%;overflow:hidden}.staff-move-table th,.staff-move-table td{text-align:left;border-top:1px solid #f2f4f7;padding:10px 12px;font-size:13px}.staff-move-table th{color:#98a2b3;font-size:12px}@media (max-width:900px){.staff-move-kpis,.staff-move-grid{grid-template-columns:1fr 1fr}.staff-move-months{grid-template-columns:repeat(6,minmax(0,1fr))}}.employee-directory-table-wrap{background:#fff;border:1px solid #dce3ea;border-radius:13px;overflow-x:auto;box-shadow:0 2px 5px #0f172a14}.employee-directory-table{border-collapse:collapse;width:100%;min-width:1100px}.employee-directory-table th,.employee-directory-table td{text-align:left;white-space:nowrap;color:#334155;border-bottom:1px solid #edf0f4;padding:10px 12px;font-size:13px}.employee-directory-table th{color:#6b5f52;background:#f8f6f2;font-size:12px;font-weight:700}.employee-directory-table tbody tr{cursor:pointer}.employee-directory-table tbody tr:hover{background:#f8fbff}.employee-directory-table td strong{color:#172033}.employee-photo-uploader{flex-direction:column;align-items:flex-start;gap:8px;margin:0;display:flex}.employee-basic-identity{grid-template-columns:120px minmax(0,1fr);align-items:start;gap:8px 24px;margin-bottom:22px;display:grid}.employee-basic-identity-fields{grid-template-columns:repeat(2,200px);gap:19px 22px;margin-top:22px;display:grid}.employee-basic-identity-fields .employee-field input{padding:8px 10px}.employee-photo-frame{width:120px}.employee-photo-edit{box-sizing:border-box;color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #d9dde3;border-radius:0 0 8px 8px;width:120px;padding:7px 0;font:800 13px Noto Sans TC,sans-serif;display:block}.employee-photo-edit:hover:not(:disabled){background:#eef2f7}.employee-photo-edit:disabled{opacity:.65;cursor:default}.employee-photo-edit-dialog{width:min(640px,100vw - 32px)}.employee-photo-edit-stage{grid-template-columns:minmax(0,1fr) 168px;align-items:stretch;gap:18px;margin-top:4px;display:grid}.employee-photo-edit-options{flex-direction:column;justify-content:center;gap:10px;display:flex}.employee-photo-edit-options button{color:#172033;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9dde3;border-radius:10px;width:100%;padding:11px 14px;font:700 14px Noto Sans TC,sans-serif}.employee-photo-edit-options button:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.employee-photo-edit-options button:disabled{opacity:.6;cursor:default}.employee-photo-edit-options button.is-danger{color:#be123c;background:#fff1f2;border-color:#fecaca}.employee-photo-edit-preview{aspect-ratio:3/4;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;place-items:center;min-height:280px;max-height:360px;display:grid;overflow:hidden}.employee-photo-edit-preview img,.employee-photo-edit-preview .employee-photo-silhouette{object-fit:cover;width:100%;height:100%;display:block}.employee-photo-label{color:#526074;flex:100%;font-size:12px;font-weight:800}.employee-photo-label b,.employee-field b,.employee-bank-box label b{color:#dc2626}.employee-photo-overlay{color:#fff;opacity:0;cursor:pointer;background:#0f172a8c;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;inset:0}.employee-avatar.is-editor:hover .employee-photo-overlay,.employee-photo-overlay:focus-within{opacity:1}.employee-photo-overlay input{opacity:0;cursor:pointer;position:absolute;inset:0}.employee-photo-uploader>.is-error{color:#b91c1c;font-size:13px}.employee-photo-lightbox{z-index:90;background:#0f172ab8;place-items:center;display:grid;position:fixed;inset:0}.employee-photo-lightbox img{object-fit:contain;background:#fff;border-radius:16px;max-width:min(90vw,640px);max-height:80vh}.employee-photo-lightbox button{color:#fff;cursor:pointer;background:0 0;border:0;font-size:32px;position:absolute;top:18px;right:22px}.employee-avatar.is-kitchen{color:#06603f;background:linear-gradient(135deg,#effdf6,#c8f1df);border-color:#c8f1df}.employee-card-identity{min-width:0}.employee-name-line{align-items:center;gap:7px;display:flex}.employee-name-line strong{color:#172033;text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.employee-card-identity>span{color:#64748b;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-top:3px;font-size:11px;display:block;overflow:hidden}.employee-card-identity code{color:#475569;margin-top:4px;font-size:12px;display:inline-block}.employee-department-badge{color:#1e40af;white-space:nowrap;background:#dbeafe;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.employee-department-badge.is-kitchen{color:#065f46;background:#d1fae5}.employee-department-badge.is-terminated{color:#991b1b;background:#fee2e2}.employee-face-status{white-space:normal;margin-top:4px;font-size:12px;font-style:normal;font-weight:700;display:block}.employee-face-status.is-ok{color:#047857}.employee-face-status.is-bad{color:#b42318}.employee-profile-card.is-terminated{opacity:.78}.employee-directory-table tbody tr.is-terminated td{color:#7b6f64}.employee-card-arrow{color:#a6b0bf;font-size:24px;position:absolute;top:15px;right:15px}.employee-role-row{color:#596577;background:#fbfcfd;border-top:1px solid #edf0f4;justify-content:space-between;padding:8px 17px;font-size:12px;font-weight:700;display:flex}.employee-card-details{color:#334155;background:#f7f9fb;grid-template-columns:1fr 1fr;gap:12px;padding:14px 17px 16px;font:600 12px JetBrains Mono,monospace;display:grid}.employee-card-details small{color:#94a0af;margin-bottom:3px;font:500 10px Noto Sans TC,sans-serif;display:block}.employee-empty-state{color:#64748b;text-align:center;background:#fff;border:1px dashed #ced6df;border-radius:14px;padding:55px 20px}.employee-empty-state>span{font-size:34px}.employee-empty-state h3{margin:8px 0 14px}.employee-empty-state button{color:#1f65df;cursor:pointer;background:0 0;border:0;font-weight:700}.employee-editor{background:#fff;border:1px solid #e1e5eb;border-radius:16px;flex-direction:column;width:min(980px,100%);max-height:min(860px,100vh - 48px);display:flex;position:relative;overflow:hidden;box-shadow:0 24px 64px #0f172a47}.employee-editor-backdrop{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73;place-items:center;padding:24px 20px;display:grid;position:fixed;inset:0}.employee-editor h2{margin:0;font-family:Noto Serif TC,serif;font-size:22px;line-height:1.25}.employee-editor-close{color:#475569;cursor:pointer;background:0 0;border:0;flex:none;width:36px;height:36px;margin-left:4px;font-size:28px;line-height:1}.employee-editor-close:disabled{opacity:.5;cursor:default}.employee-editor-header{box-sizing:border-box;background:#fff;border-bottom:1px solid #e7ebef;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px 12px 22px;display:flex}.employee-editor-title{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.employee-editor:focus{outline:none}.employee-editor-title span{color:#354156;letter-spacing:.04em;font-size:13px;font-weight:700}.employee-back-button{color:#334155;cursor:pointer;background:#fff;border:1px solid #dfe4ea;border-radius:9px;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.employee-editor-summary{color:#7b6f63;flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;display:flex}.employee-editor-summary span:first-child{color:#334155;font:700 13px JetBrains Mono,monospace}.employee-editor-tabs{border-bottom:1px solid #e7ebef;flex:none;padding:0 24px;display:flex;overflow-x:auto}.employee-editor-tabs button{color:#596577;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:15px 17px 13px;font:700 14px Noto Sans TC,sans-serif}.employee-editor-tabs button.is-active{color:#1f65df;border-bottom-color:#1f65df}.employee-editor-body{overscroll-behavior:contain;border:0;flex:auto;min-width:0;min-height:0;margin:0;padding:22px 26px 24px;overflow:auto}.employee-editor-body>fieldset{border:0;width:100%;min-width:0;min-height:0;margin:0;padding:0;display:block}.employee-editor-body.is-frozen input,.employee-editor-body.is-frozen select,.employee-editor-body.is-frozen textarea,.employee-editor-body.is-frozen button{pointer-events:none;opacity:.78}.employee-section-heading{margin-bottom:22px}.employee-section-heading h3{color:#172033;margin:0;font-family:Noto Serif TC,serif;font-size:18px}.employee-section-heading p{color:#8993a0;margin:5px 0 0;font-size:12px}.employee-term-current{background:#fff;border:1px solid #d9dee7;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:10px 14px;display:flex}.employee-term-current strong{color:#172033;font-size:14px}.employee-term-current select{margin:0}.employee-term-history{border-top:1px solid #e7ebf0;margin-top:22px;padding-top:16px}.employee-term-history h4{color:#172033;margin:0 0 10px;font-size:13px;font-weight:800}.employee-term-history ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.employee-term-history li{color:#344054;background:#f7f8fa;border-radius:10px;grid-template-columns:110px 140px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:grid}.employee-term-history li strong{font-family:JetBrains Mono,monospace;font-weight:700}.employee-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 22px;display:grid}.employee-field{flex-direction:column;gap:7px;min-width:0;display:flex}.employee-field.is-wide{grid-column:1/-1}.employee-field>span{color:#344054;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.employee-field b{color:#dc2626}.employee-field input,.employee-field select,.employee-field textarea{color:#1e293b;background:#f8fafc;border:1px solid #ccd6e2;border-radius:9px;outline:none;width:100%;padding:12px 14px;font:500 14px Noto Sans TC,sans-serif;transition:border-color .12s,box-shadow .12s,background .12s}.employee-field input:focus,.employee-field select:focus,.employee-field textarea:focus{background:#fff;border-color:#6d9ded;box-shadow:0 0 0 3px #1f65df1a}@keyframes employee-required-flash{0%,to{box-shadow:0 0 #dc262600}45%{box-shadow:0 0 0 4px #dc262652}}.employee-field.is-invalid input,.employee-field.is-invalid select,.employee-field.is-invalid textarea,.employee-bank-box.is-invalid,.employee-bank-box.is-invalid input,.employee-bank-box.is-invalid select,.employee-photo-uploader.is-invalid .employee-avatar.is-editor,.employee-photo-uploader.is-invalid .employee-photo-edit{background:#fff5f5;border-color:#dc2626}.employee-field.is-flash input,.employee-field.is-flash select,.employee-field.is-flash textarea,.employee-bank-box.is-flash,.employee-photo-uploader.is-flash .employee-avatar.is-editor,.employee-photo-uploader.is-flash .employee-photo-edit{animation:.55s ease-in-out 3 employee-required-flash}.employee-field input:disabled{color:#9aa4b2;cursor:not-allowed}.employee-field textarea{resize:vertical}.employee-field small{color:#8993a0;font-size:11px}.employee-field small.is-error{color:#dc2626}.employee-export-backdrop{z-index:80;background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.employee-export-dialog{background:#fff;border:1px solid #dce3ea;border-radius:16px;width:min(520px,100vw - 32px);padding:22px 24px 18px;box-shadow:0 18px 48px #0f172a2e}.employee-export-dialog header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.employee-export-dialog h2{margin:0;font:800 22px Noto Serif TC,serif}.employee-export-dialog header button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1}.employee-export-dialog>p{color:#64748b;margin:10px 0 16px;font-size:13px}.employee-export-options{gap:10px;display:grid}.employee-export-options label{color:#172033;cursor:pointer;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.employee-export-options input{width:16px;height:16px}.employee-import-dropzone{color:#64748b;cursor:pointer;background:#f8fafc;border:1.5px dashed #c5cdd6;border-radius:14px;place-items:center;gap:8px;width:100%;min-height:168px;margin:14px 0 8px;padding:24px;display:grid}.employee-import-dropzone strong{color:#172033;font-size:16px}.employee-import-dropzone span{font-size:13px}.employee-import-dropzone.is-dragging,.employee-import-dropzone.has-file{background:#fff7ed;border-color:#d97706}.employee-help-button{color:#64748b;cursor:pointer;vertical-align:middle;background:#fff;border:1px solid #cbd5e1;border-radius:999px;place-items:center;width:18px;height:18px;margin-left:6px;font:700 12px Noto Sans TC,sans-serif;display:inline-grid}.employee-help-backdrop{z-index:90;background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.employee-help-dialog{background:#fff;border:1px solid #dce3ea;border-radius:16px;width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);padding:22px 24px 20px;overflow:auto;box-shadow:0 18px 48px #0f172a2e}.employee-help-dialog header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.employee-help-dialog h2,.employee-help-dialog h3,.employee-help-dialog h4{margin:0}.employee-help-dialog h2{font:800 22px Noto Serif TC,serif}.employee-help-dialog header button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1}.employee-help-body{gap:18px;margin-top:14px;display:grid}.employee-help-body article{gap:8px;display:grid}.employee-help-ordinance{color:#92400e;margin:0;font-weight:700}.employee-help-links{flex-wrap:wrap;gap:10px 14px;margin:0;display:flex}.employee-help-links a{color:#1d4ed8}.employee-help-body ul{margin:0;padding-left:18px}.employee-help-dialog table{border-collapse:collapse;width:100%;font-size:13px}.employee-help-dialog th,.employee-help-dialog td{text-align:left;border:1px solid #e5e7eb;padding:6px 8px}.employee-help-dialog tr.is-highlight td{background:#fef3e2}.employee-help-note{background:#f8fafc;border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.employee-inline-link{color:#047857;cursor:pointer;background:0 0;border:0;font:700 13px Noto Sans TC,sans-serif}.employee-basepay-box{background:#f8fafc;border:1px solid #dfe5ec;border-radius:12px;grid-column:1/-1;gap:10px;padding:12px;display:grid}.employee-basepay-actions{gap:8px;display:flex}.employee-export-dialog footer{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.employee-bank-grid{grid-column:1/-1;gap:12px;display:grid}.employee-bank-box{background:#f8fafcd1;border:1px solid #dfe5ec;border-radius:12px;gap:9px;padding:15px;display:grid}.employee-bank-box label{color:#344054;font-size:12px;font-weight:800}.employee-bank-box input,.employee-bank-box select{color:#1e293b;background:#f8fafc;border:1px solid #ccd6e2;border-radius:9px;outline:none;width:100%;padding:12px 14px;font:500 14px Noto Sans TC,sans-serif;transition:border-color .12s,box-shadow .12s,background .12s}.employee-bank-box input:focus,.employee-bank-box select:focus{background:#fff;border-color:#6d9ded;box-shadow:0 0 0 3px #1f65df1a}.employee-bank-box .employee-bank-code-input,.employee-bank-box input[inputmode=numeric]{letter-spacing:.07em;font-family:JetBrains Mono,monospace}.employee-bank-box p{margin:0;font-size:11px;font-weight:700}.employee-bank-box p.is-recognized{color:#2563eb}.employee-bank-box p.is-warning{color:#d97706}.employee-mpf-note{color:#64748b;margin:0;font-size:13px;line-height:1.5}.employee-check{color:#334155;cursor:pointer;align-items:center;gap:8px;font:600 14px/1.4 Noto Sans TC,sans-serif;display:inline-flex}.employee-editor-footer{background:#f8fafc;border-top:1px solid #e1e6eb;flex:none;align-items:center;gap:12px;padding:12px 22px;display:flex}.employee-save-feedback{color:#047857;flex:1;font-size:13px;font-weight:700}.employee-save-feedback .is-error{color:#dc2626}.employee-editor-footer .employee-primary-button{min-width:120px}.employee-terminate-button{color:#be123c;cursor:pointer;background:#fff1f2;border:1px solid #fecaca;border-radius:8px;padding:8px 14px;font:800 13px Noto Sans TC,sans-serif}.employee-terminate-button:hover:not(:disabled){background:#ffe4e6;border-color:#f87171}.employee-terminate-button:disabled{opacity:.6;cursor:default}.employee-terminate-backdrop{z-index:85;background:#0f172a66;place-items:center;display:grid;position:fixed;inset:0}.employee-terminate-dialog{background:#fff;border-radius:14px;width:min(420px,92vw);padding:20px 22px 16px;box-shadow:0 18px 50px #0f172a38}.employee-terminate-dialog h3{margin:0 0 8px;font-size:18px}.employee-terminate-dialog>p{color:#64748b;margin:0 0 14px;font-size:13px;line-height:1.5}.employee-terminate-dialog label{color:#526074;gap:6px;margin-bottom:10px;font-size:12px;font-weight:800;display:grid}.employee-terminate-dialog input,.employee-terminate-dialog textarea{border:1px solid #d5dde7;border-radius:8px;padding:8px 10px;font:600 14px Noto Sans TC,sans-serif}.employee-terminate-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.employee-terminate-actions button{color:#44403c;cursor:pointer;background:#fff;border:1px solid #d6d3d1;border-radius:8px;padding:7px 12px;font:800 13px Noto Sans TC,sans-serif}.employee-terminate-actions button.is-confirm{color:#be123c;background:#fff1f2;border-color:#fecaca}.employee-rehire-button{color:#047857;cursor:pointer;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:8px 14px;font:800 13px Noto Sans TC,sans-serif}.employee-rehire-button:hover:not(:disabled){background:#d1fae5;border-color:#34d399}.employee-rehire-dialog{width:min(460px,92vw)}.employee-rehire-choice{border:1px solid #e2e8f0;border-radius:10px;margin:0 0 12px;padding:10px 12px}.employee-rehire-choice legend{color:#526074;padding:0 4px;font-size:12px;font-weight:800}.employee-rehire-choice label,.employee-rehire-toggle{color:#334155;align-items:center;gap:8px;margin-bottom:8px;font:600 13px/1.4 Noto Sans TC,sans-serif;display:flex}.employee-rehire-choice input[type=text],.employee-rehire-choice input:not([type=radio]):not([type=checkbox]){width:100%;margin-top:4px}.employee-rehire-error{color:#be123c;margin:0 0 8px;font-size:13px}.employee-terminate-actions button.is-rehire{color:#047857;background:#ecfdf5;border-color:#6ee7b7}@media (max-width:1400px){.employee-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1150px){.employee-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-hero{align-items:flex-start}.employee-hero-actions{flex-direction:column;align-items:flex-end}}@media (max-width:820px){.employee-hero,.employee-editor-header{flex-direction:column;align-items:stretch}.employee-editor-backdrop{align-items:stretch;padding:10px}.employee-editor{width:100%;max-height:calc(100vh - 20px)}.employee-editor-header{padding-right:48px;position:relative}.employee-editor-close{position:absolute;top:8px;right:8px}.employee-hero-actions{align-items:stretch}.employee-stats{justify-content:space-between}.employee-toolbar{align-items:stretch}.employee-search{flex:100%;width:100%;max-width:none}.employee-toolbar-controls,.employee-filter-row{width:100%;margin-left:0}.employee-card-grid,.employee-form-grid,.employee-basic-identity-fields,.employee-basic-identity{grid-template-columns:1fr}.employee-basic-identity-fields{margin-top:0}.employee-photo-edit-stage{grid-template-columns:1fr}.employee-photo-edit-preview{min-height:220px;max-height:280px}.employee-photo-crop-stage,.employee-camera-preview{height:300px}.employee-photo-crop-frame{width:180px;height:240px}.employee-field.is-wide{grid-column:auto}.employee-editor-summary{align-items:flex-start}}.schedule-management{color:#172033;flex-direction:column;display:flex}.schedule-hero{box-sizing:border-box;background:#fff;border:1px solid #dce3ea;border-radius:15px;justify-content:space-between;align-items:center;gap:24px;padding:14px 24px;display:flex;box-shadow:0 2px 5px #0f172a17}.schedule-eyebrow{color:#354156;letter-spacing:.04em;margin-bottom:5px;font-size:13px;font-weight:700}.schedule-hero h2{margin:0;font-family:Noto Serif TC,serif;font-size:30px;line-height:1.25}.schedule-hero-copy{flex:none}.schedule-hero-side{flex-direction:column;align-items:flex-end;gap:10px;min-width:0;display:flex}.schedule-hero-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.schedule-hero-tools .schedule-week-picker{margin-left:0}.schedule-export-modal{width:min(480px,100%)}.schedule-export-choices{gap:8px;display:grid}.schedule-export-choices button{color:#263247;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:9px;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:12px 14px;font:700 14px Noto Sans TC,sans-serif;display:flex}.schedule-export-choices button span{color:#6b7280;font:600 12px JetBrains Mono,monospace}.schedule-export-choices button.is-selected{color:#1d4ed8;background:#eaf2ff;border:2px solid #1e3a5f}.schedule-export-range{align-items:center;gap:8px;margin-top:10px;display:flex}.schedule-export-range input{border:1px solid #d3dce6;border-radius:8px;flex:1;min-width:0;padding:8px 10px;font:600 13px Noto Sans TC,sans-serif}.schedule-export-range span{color:#6b7280;font-size:13px;font-weight:700}.schedule-export-modal .schedule-modal-actions button.is-ghost{color:#435066;background:#fff;border:1px solid #ccd6e2}.schedule-export-modal .schedule-modal-actions button:disabled{opacity:.45;cursor:not-allowed}.schedule-hero p{color:#3e4a5c;margin:6px 0 0;font-size:15px;font-weight:700}.schedule-statuses{align-items:center;gap:10px;display:flex}.schedule-statuses>span,.schedule-status-pill{color:#047857;background:#eefbf4;border:1px solid #dcefe5;border-radius:999px;padding:7px 11px;font:700 12px Noto Sans TC,sans-serif}.schedule-status-pill{cursor:pointer}.schedule-status-pill.has-warning{color:#a5500e;background:#fff8e6;border-color:#f4d18c}.schedule-compliance-banner{color:#8f3f0b;text-align:left;cursor:pointer;background:#fffbeb;border:1px solid #efb73e;border-radius:10px;align-items:center;gap:8px;width:100%;margin-top:14px;padding:12px 16px;font:600 13px Noto Sans TC,sans-serif;display:flex}.schedule-compliance-banner>span{color:#fff;background:#f59e0b;border-radius:50%;place-items:center;width:23px;height:23px;font-size:11px;display:grid}.schedule-controls{background:#fff;border:1px solid #e5e0d8;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding:13px 15px;display:flex}.schedule-branch-select{color:#5b6778;background:#f8fafc;border:1px solid #e1e7ee;border-radius:8px;align-items:center;gap:8px;min-width:210px;padding:7px 10px;font-size:12px;font-weight:700;display:flex}.schedule-branch-select select{color:#243046;background:0 0;border:0;outline:0;flex:1;font:700 13px Noto Sans TC,sans-serif}.schedule-coverage{color:#697486;border:1px solid #e1e7ee;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.schedule-coverage strong{color:#1f65df;font:800 13px JetBrains Mono,monospace}.schedule-control-spacer{flex:1}.schedule-copy-button,.schedule-action-button,.schedule-week-picker button{color:#344054;cursor:pointer;background:#fff;border:1px solid #ccd6e2;border-radius:8px;font:700 13px Noto Sans TC,sans-serif}.schedule-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-copy-button,.schedule-action-button{white-space:nowrap;padding:10px 13px}.schedule-copy-button{color:#4f46e5;background:#f2f5ff;border-color:#aebff9}.schedule-action-button:hover{background:#f4f7fa}.schedule-week-picker{border:1px solid #ccd6e2;border-radius:8px;align-items:center;display:flex;overflow:hidden}.schedule-week-picker button{border:0;border-radius:0;width:34px;height:36px;font-size:20px}.schedule-week-picker strong{color:#263247;text-align:center;min-width:198px;padding:0 10px;font:700 12px JetBrains Mono,monospace}.schedule-swap-notice,.schedule-toast{color:#1d4ed8;background:#eef5ff;border-radius:8px;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 13px;font-size:12px;font-weight:700;display:flex}.schedule-swap-notice button{color:#1d4ed8;cursor:pointer;background:0 0;border:0;font-weight:800}.schedule-toast{z-index:90;color:#fff;background:#172033;position:fixed;bottom:25px;right:28px;box-shadow:0 8px 24px #17203340}.schedule-table-card{background:#fff;border:1px solid #dfe5ec;border-radius:13px;flex-direction:column;margin-top:14px;display:flex;position:relative;overflow:visible;box-shadow:0 1px 7px #2d37480f}.schedule-legend{white-space:nowrap;border-bottom:1px solid #e5eaf0;align-items:center;gap:6px;padding:11px 15px;display:flex;overflow-x:auto}.schedule-legend>strong{color:#596577;margin-right:3px;font-size:12px}.shift-chip{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.tone-blue{color:#1d4ed8!important;background:#dbeafe!important}.tone-sky{color:#0369a1!important;background:#e0f2fe!important}.tone-indigo{color:#4338ca!important;background:#e0e7ff!important}.tone-violet{color:#6d28d9!important;background:#ede9fe!important}.tone-amber{color:#a16207!important;background:#fef3c7!important}.tone-teal{color:#0f766e!important;background:#ccfbf1!important}.tone-green{color:#15803d!important;background:#dcfce7!important}.tone-orange{color:#c2410c!important;background:#ffedd5!important}.tone-red{color:#b91c1c!important;background:#fee2e2!important}.tone-rose{color:#be123c!important;background:#ffe4e6!important}.tone-cyan{color:#0e7490!important;background:#cffafe!important}.tone-pink{color:#be185d!important;background:#fce7f3!important}.tone-mint{color:#047857!important;background:#d1fae5!important}.schedule-empty-cell{color:#6b7280;text-align:center;padding:48px 16px;font-size:15px}.schedule-table-scroll{overflow:visible}.schedule-grid-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1020px}.schedule-grid-table th,.schedule-grid-table td{border-bottom:1px solid #e4e9ef;border-right:1px solid #e4e9ef}.schedule-grid-table th{z-index:5;color:#4b5565;text-align:center;background:#f8fafc;height:62px;font-size:12px;position:sticky;top:0;box-shadow:inset 0 -1px #e4e9ef}.schedule-grid-table th:first-child,.schedule-grid-table td:first-child{width:186px;max-width:186px}.schedule-grid-table th:first-child{z-index:7;text-align:left;padding-left:14px;left:0}.schedule-grid-table th span,.schedule-grid-table th strong{display:block}.schedule-grid-table th strong{color:#172033;margin-top:4px;font:800 15px JetBrains Mono,monospace}.schedule-grid-table .is-weekend{background:#fffdf2}.schedule-group-row td{color:#536071;background:#f2f5f8;height:34px;padding:0 14px;font-size:12px;font-weight:800}.schedule-employee-cell{z-index:3;background:#fff;align-items:center;gap:10px;height:92px;padding:8px 12px 8px 14px;display:flex;position:sticky;left:0}.schedule-avatar{color:#1d4ed8;background:#dbeafe;border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;font-family:Noto Serif TC,serif;font-size:14px;font-weight:800;display:grid}.schedule-avatar.is-kitchen{color:#047857;background:#d1fae5}.schedule-employee-cell strong{color:#172033;text-overflow:ellipsis;white-space:nowrap;max-width:118px;font-size:14px;display:block;overflow:hidden}.schedule-employee-cell span{color:#8993a0;margin-top:3px;font-size:12px;display:block}.schedule-employee-cell .schedule-employee-attention-mark{color:#dc2626;text-shadow:0 1px #fff,0 0 8px #dc26262e;place-items:center;width:28px;height:36px;margin:0;font-size:28px;font-weight:900;line-height:1;display:grid;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.schedule-grid-table tbody td:not(:first-child){height:92px;padding:6px}.schedule-cell-button{color:#c0c8d2;cursor:pointer;background:0 0;border:1px dashed #0000;border-radius:7px;place-content:center;width:100%;height:100%;min-height:76px;display:grid}.schedule-cell-button:hover{color:#1f65df;background:#f2f7ff;border-color:#86acec}.schedule-cell-button>span{opacity:0;font-size:18px}.schedule-cell-button:hover>span{opacity:1}.schedule-cell-button.has-shift{border:0}.schedule-cell-button.has-shift strong{font-size:13px}.schedule-cell-button.has-shift small{letter-spacing:-.02em;opacity:.95;margin-top:4px;font:700 14px JetBrains Mono,monospace;display:block}.schedule-cell-button.has-shift em{opacity:.82;margin-top:3px;font-size:10px;font-style:normal;font-weight:800;display:block}.schedule-modal-backdrop,.schedule-drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a85;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.schedule-compliance-modal,.schedule-preset-modal{background:#fff;border-radius:16px;width:min(720px,100%);padding:28px 30px;box-shadow:0 24px 70px #0f172a47}.schedule-modal-title{border-bottom:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:20px;padding-bottom:18px;display:flex}.schedule-modal-title>div{align-items:baseline;gap:10px;display:flex}.schedule-modal-title span{font-family:Noto Serif TC,serif;font-size:20px;font-weight:800}.schedule-modal-title h2{margin:0;font-family:Noto Serif TC,serif;font-size:22px}.schedule-modal-title>strong{color:#475569;font:700 13px JetBrains Mono,monospace}.schedule-audit-warning{color:#863b0b;background:#fffbeb;border:1px solid #f0b83f;border-radius:11px;margin-top:20px;padding:18px}.schedule-audit-warning h3,.schedule-audit-success h3{margin:0;font-size:17px}.schedule-audit-warning p{color:#6c4a2c;margin:8px 0 10px;font-size:13px}.schedule-audit-warning ul{margin:0;padding-left:22px;font-size:13px}.schedule-audit-warning li+li{margin-top:5px}.schedule-audit-success{color:#11633d;background:#f0fdf4;border:1px solid #a7e3c0;border-radius:11px;align-items:center;gap:14px;margin-top:20px;padding:18px;display:flex}.schedule-audit-success>span{color:#fff;background:#059669;border-radius:50%;place-items:center;width:36px;height:36px;font-size:19px;display:grid}.schedule-audit-success p{color:#4e7864;margin:5px 0 0;font-size:12px}.schedule-legal-note{color:#7b8490;margin:15px 0 0;font-size:11px;line-height:1.6}.schedule-modal-actions{border-top:1px solid #e4e9ef;justify-content:flex-end;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.schedule-modal-actions a{color:#1f65df;margin-right:auto;font-size:12px;font-weight:700;text-decoration:none}.schedule-modal-actions button{color:#fff;cursor:pointer;background:#172033;border:0;border-radius:8px;padding:10px 23px;font:700 14px Noto Sans TC,sans-serif}.schedule-drawer-backdrop{justify-content:flex-end;padding:0;display:flex}.schedule-drawer{background:#fff;width:min(510px,100%);height:100%;padding:24px 27px;overflow-y:auto;box-shadow:-16px 0 45px #0f172a33}.schedule-shift-modal{background:#fff;border-radius:16px;width:min(440px,100vw - 32px);max-height:min(88vh,720px);padding:20px 22px 16px;overflow-y:auto;box-shadow:0 24px 70px #0f172a47}.schedule-shift-modal .schedule-drawer-actions{margin-top:16px;padding:12px 0 0;position:static;bottom:auto}.schedule-shift-back{color:#1d4ed8;cursor:pointer;background:0 0;border:0;margin-right:2px;padding:0;font:700 13px Noto Sans TC,sans-serif}.schedule-choose-options{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.schedule-choose-options button{color:#1e3a5f;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:12px;min-height:88px;padding:18px 12px;font:800 18px Noto Sans TC,sans-serif}.schedule-choose-options button:hover{background:#eff6ff;border-color:#93c5fd}.schedule-choose-options button.is-rest{color:#047857}.schedule-choose-options button.is-rest:hover{background:#ecfdf5;border-color:#6ee7b7}.schedule-shift-modal.is-choose{width:min(380px,100vw - 32px)}.schedule-drawer-header{border-bottom:1px solid #e4e9ef;justify-content:space-between;align-items:center;padding-bottom:15px;display:flex}.schedule-drawer-header>div{align-items:center;gap:12px;display:flex}.schedule-drawer-header span{font-family:Noto Serif TC,serif;font-size:22px;font-weight:800}.schedule-drawer-header h2{color:#475569;background:#f1f5f9;border-radius:7px;margin:0;padding:5px 9px;font:700 13px JetBrains Mono,monospace}.schedule-drawer-header button{color:#64748b;cursor:pointer;background:0 0;border:0;font-size:25px}.schedule-person-card{background:#f8fafc;border:1px solid #dfe6ee;border-radius:11px;align-items:center;gap:13px;margin-top:18px;padding:16px;display:flex}.schedule-person-card>div{background:#fff;border:1px solid #dae3ed;border-radius:50%;place-items:center;width:44px;height:44px;font-size:18px;font-weight:800;display:grid}.schedule-person-card strong{font-size:17px;display:block}.schedule-person-card small{color:#687486;margin-top:4px;font-size:11px;display:block}.schedule-leave-stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.schedule-leave-stats>div{background:#f8fafc;border:1px solid #e4e9ef;border-radius:9px;padding:10px 12px}.schedule-leave-stats span{color:#687486;font-size:11px;font-weight:700;display:block}.schedule-leave-stats strong{color:#172033;margin-top:3px;font:800 16px JetBrains Mono,monospace;display:block}.schedule-leave-stats>div.is-low{background:#fef2f2;border-color:#fecaca}.schedule-leave-stats>div.is-low strong{color:#b91c1c}.schedule-support-block{margin-top:18px}.schedule-support-block>p{color:#5b6778;margin:0 0 8px;font-size:12px}.schedule-support-toggle{color:#1d4ed8;text-align:left;cursor:pointer;background:#f8fbff;border:1px dashed #bcd2f7;border-radius:11px;width:100%;padding:12px 14px;font:700 13px Noto Sans TC,sans-serif}.schedule-support-toggle.is-on{background:#eaf2ff;border-style:solid}.schedule-support-picks{gap:6px;margin-top:8px;display:grid}.schedule-support-picks button{color:#263247;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:8px;width:100%;padding:10px 12px;font:700 13px Noto Sans TC,sans-serif}.schedule-support-picks button:hover{background:#f2f7ff}.schedule-support-picks span{color:#6b7280;font-size:12px}.schedule-support-field{background:#f3f8ff;border:1px solid #c7ddff;border-radius:11px;margin-top:18px;padding:15px;display:block}.schedule-support-field>span{color:#1d4ed8;margin-bottom:8px;font-size:13px;font-weight:800;display:block}.schedule-support-field select,.schedule-leave-box select{color:#263247;background:#fff;border:1px solid #bcd2f7;border-radius:8px;width:100%;padding:10px 12px;font:600 13px Noto Sans TC,sans-serif}.schedule-shift-options,.schedule-time-adjust,.schedule-leave-box{margin-top:20px}.schedule-shift-options h3,.schedule-time-adjust h3,.schedule-leave-box h3{color:#435066;margin:0 0 10px;font-size:13px}.schedule-shift-options>div,.schedule-work-source{grid-template-columns:1fr 1fr;gap:8px;display:grid}.schedule-shift-options button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:9px;padding:12px;font:700 14px Noto Sans TC,sans-serif}.schedule-shift-options button.is-selected{color:#1d4ed8;background:#eaf2ff;border:2px solid #1e3a5f}.schedule-mode-tabs{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.schedule-mode-tabs button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:9px;padding:12px;font:800 15px Noto Sans TC,sans-serif}.schedule-mode-tabs button.is-selected{color:#1d4ed8;background:#eaf2ff;border:2px solid #1e3a5f}.schedule-mode-tabs button.is-rest.is-selected{color:#047857;background:#ecfdf5;border-color:#047857}.schedule-field{margin-top:16px;display:block}.schedule-field>span{color:#435066;margin-bottom:8px;font-size:13px;font-weight:700;display:block}.schedule-field select,.schedule-field input[type=date]{color:#263247;background:#fff;border:1px solid #d5dde7;border-radius:8px;width:100%;padding:10px 12px;font:600 13px Noto Sans TC,sans-serif}.schedule-field-hint{color:#6b7280;margin:8px 0 0;font-size:12px}.schedule-date-span{gap:8px;display:flex}.schedule-date-span button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:8px;flex:1;padding:10px;font:700 13px Noto Sans TC,sans-serif}.schedule-date-span button.is-selected{color:#047857;background:#ecfdf5;border:2px solid #047857}.schedule-date-range{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.schedule-date-range label{color:#596577;font-size:12px;font-weight:700}.schedule-date-range input{width:100%;margin-top:6px;display:block}.schedule-cross-day{color:#435066;cursor:pointer;align-items:center;gap:8px;margin-top:10px;font:600 13px Noto Sans TC,sans-serif;display:flex}.schedule-time-adjust{background:#f8fafc;border:1px solid #e0e6ed;border-radius:11px;padding:16px}.schedule-time-adjust strong.schedule-template-time{color:#172033;font:800 22px JetBrains Mono,monospace;display:block}.schedule-time-adjust>div{grid-template-columns:1fr 1fr;gap:12px;display:grid}.schedule-time-adjust label{color:#596577;font-size:12px;font-weight:700}.schedule-time-adjust input[type=time]{color:#263247;background:#fff;border:1px solid #d5dde7;border-radius:8px;width:100%;margin-top:6px;padding:10px;display:block}.schedule-time-adjust input.is-invalid,.v2-inline-form input.is-invalid,.store-admin-table input.is-invalid{color:#991b1b;background:#fef2f2;border-color:#dc2626}.schedule-time-error{color:#dc2626;margin:8px 0 0;font-size:12px;font-weight:700}.schedule-leave-box{background:#f2fdf6;border:1px solid #bceacb;border-radius:11px;padding:16px}.schedule-leave-box h3{color:#047857}.schedule-leave-box>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.schedule-leave-box button{color:#365c48;cursor:pointer;background:#fff;border:1px solid #cfead9;border-radius:9px;padding:12px;font:700 14px Noto Sans TC,sans-serif}.schedule-leave-box button.is-selected{color:#047857;background:#ecfdf5;border:2px solid #047857}.schedule-drawer-actions{background:#fff;border-top:1px solid #e2e8ef;justify-content:flex-end;gap:10px;margin-top:24px;padding:15px 0 24px;display:flex;position:sticky;bottom:-24px}.schedule-drawer-actions button{color:#435066;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 19px;font:700 14px Noto Sans TC,sans-serif}.schedule-drawer-actions button:last-child{color:#fff;background:#172033;box-shadow:0 4px 12px #1720332e}.schedule-drawer-actions button:last-child:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.schedule-preset-modal{width:min(560px,100%)}.schedule-preset-list{gap:9px;margin-top:18px;display:grid}.schedule-preset-list>div{grid-template-columns:1fr 110px auto 110px;align-items:center;gap:8px;display:grid}.schedule-preset-list strong{color:#435066;font-size:13px}.schedule-preset-list input{border:1px solid #d3dce6;border-radius:7px;padding:8px}.schedule-preset-list span{color:#8a94a2;font-size:11px}@media (max-width:1180px){.schedule-controls{flex-wrap:wrap}.schedule-control-spacer{display:none}.schedule-week-picker{margin-left:auto}}@media (max-width:820px){.branch-page-header{flex-direction:column;align-items:flex-start;margin:16px 18px 0}.branch-page-header-actions{flex-wrap:wrap;width:100%}.schedule-hero{flex-direction:column;align-items:flex-start}.schedule-hero-side,.schedule-hero-tools{justify-content:flex-start;align-items:flex-start;width:100%}.schedule-statuses{flex-wrap:wrap}.schedule-controls{flex-direction:column;align-items:stretch}.schedule-week-picker{justify-content:space-between;width:100%;margin-left:0}.schedule-week-picker strong{min-width:0}.schedule-modal-title{flex-direction:column;align-items:flex-start}.schedule-modal-title>div{flex-wrap:wrap}.schedule-compliance-modal{padding:22px}.schedule-legal-note{font-size:10px}}.branch-page-header{box-sizing:border-box;color:#172033;background:#fff;border:1px solid #dce3ea;border-radius:15px;flex:none;justify-content:space-between;align-items:center;gap:20px;margin:24px 28px 0;padding:14px 24px;display:flex;box-shadow:0 2px 5px #0f172a17}.branch-page-header>div:first-child>span{color:#354156;letter-spacing:.04em;font-size:13px;font-weight:700;display:block}.branch-page-header h1{color:#172033;letter-spacing:.01em;margin:5px 0 0;font:800 30px/1.25 Noto Serif TC,serif}.branch-page-header p{color:#3e4a5c;margin:4px 0 0;font-size:15px;font-weight:700}.branch-page-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.branch-page-header-actions button,.branch-page-header-actions select,.branch-page-header-actions input[type=month]{box-sizing:border-box;color:#344054;cursor:pointer;background:#fff;border:1px solid #dce4ed;border-radius:9px;height:42px;min-height:42px;padding:0 16px;font:700 14px/1 Noto Sans TC,sans-serif}.branch-page-header-actions button.is-primary{color:#fff;background:#172033;border-color:#172033}.operations-dashboard{color:#172033;flex-direction:column;flex:1 0 auto;gap:14px;min-width:0;display:flex}.app-main.is-fill .operations-dashboard{flex:auto;min-height:0;overflow:hidden}.home-board{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.home-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.home-kpi{text-align:left;cursor:pointer;background:#fff;border:1px solid #e6ebf2;border-radius:14px;gap:6px;min-height:118px;padding:16px 18px;display:grid}.home-kpi span{color:#667085;font-size:13px;font-weight:700}.home-kpi strong{color:#1d2939;font:800 28px/1 JetBrains Mono,monospace}.home-kpi strong small{margin-left:4px;font:700 14px Noto Sans TC,sans-serif}.home-kpi em{color:#98a2b3;font-size:12px;font-style:normal}.home-kpi.is-red strong{color:#e11d48}.home-kpi.is-blue strong{color:#2563eb}.home-kpi.is-orange strong{color:#ea580c}.home-kpi.is-purple strong{color:#7c3aed}.home-main{flex:1;grid-template-columns:minmax(0,1.7fr) minmax(280px,360px);align-items:stretch;gap:14px;min-height:0;display:grid}.home-side{flex-direction:column;gap:14px;height:100%;min-height:0;display:flex}.home-panel{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:16px}.home-panel>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.home-panel h2{margin:0;font:800 16px Noto Serif TC,serif}.home-panel header button,.home-filters button{color:#2463eb;cursor:pointer;background:0 0;border:0;font:700 13px Noto Sans TC,sans-serif}.home-filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.home-filters button{color:#475467;background:#f4f6f8;border-radius:999px;padding:6px 10px}.home-filters button.is-on{color:#1d4ed8;background:#e8f0ff}.home-filters b{margin-left:4px}.home-face-tools{color:#475467;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:-4px 0 12px;font-size:13px;display:flex}.home-face-tools button{color:#fff;cursor:pointer;background:#1d4ed8;border:0;border-radius:8px;padding:6px 12px;font:700 13px Noto Sans TC,sans-serif}.home-face-tools button:disabled{opacity:.5;cursor:default}.home-issue-modal-body p.home-batch-line{color:#475467;margin:0;font-weight:700;display:block}.home-issue-modal-body .home-batch-warn span{color:#c2410c}.home-batch-warn{color:#c2410c;background:#fff7ed;border-radius:10px;gap:4px;padding:10px 12px;display:grid}.home-batch-warn strong{font-size:14px}.home-batch-warn span{font-weight:700}.home-batch-devices{gap:8px;margin:0;padding:0;list-style:none;display:grid}.home-batch-devices li{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-batch-devices em{font-style:normal;font-weight:800}.home-batch-devices em.is-on{color:#067647}.home-batch-devices em.is-off{color:#c2410c}.home-issues{flex-direction:column;height:100%;min-height:0;display:flex}.home-issues .home-table-wrap{flex:1;height:auto;min-height:0;max-height:none}.home-roster{flex:none;min-height:280px}.home-passages{flex-direction:column;flex:1;min-height:0;display:flex}.home-passages .home-feed{flex:1;align-content:start;min-height:0;overflow:auto}.home-table-wrap{min-height:0;overflow:auto}.home-table thead th{background:#fff;position:sticky;top:0}.home-table{border-collapse:collapse;width:100%;font-size:13px}.home-table th{color:#98a2b3;text-align:left;padding:8px 10px;font-size:12px;font-weight:700}.home-table td{border-top:1px solid #f2f4f7;padding:10px}.home-table tr{cursor:pointer}.home-person{align-items:center;gap:8px;font-weight:700;display:flex}.home-person img,.home-person i{object-fit:cover;text-align:center;background:#eef2f6;border-radius:50%;width:28px;height:28px;font-style:normal;line-height:28px}.home-table .is-red{color:#e11d48}.home-table .is-orange{color:#c2410c}.home-table .is-gray{color:#667085}.home-table .is-blue{color:#1d4ed8}.home-status{border-radius:999px;padding:3px 8px;font-size:12px;font-style:normal;font-weight:700}.home-status.is-red{background:#fff1f2}.home-status.is-orange{background:#fff7ed}.home-status.is-gray{background:#f2f4f7}.home-status.is-blue{background:#eff6ff}.home-stores,.home-feed{gap:12px;margin:0;padding:0;list-style:none;display:grid}.home-stores li{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-stores strong,.home-stores small{display:block}.home-stores small{color:#98a2b3;margin-top:2px;font-size:12px}.home-stores b{background:#eef2f6;border-radius:999px;height:6px;margin-top:8px;display:block;overflow:hidden}.home-stores i{border-radius:inherit;background:#3b82f6;height:100%;display:block}.home-stores em{white-space:nowrap;font-style:normal;font-weight:700}.home-feed li{align-items:baseline;gap:10px;display:flex}.home-feed time{color:#98a2b3;font:700 12px JetBrains Mono,monospace}.home-upcoming h2{margin:0 0 10px;font:800 16px Noto Serif TC,serif}.home-upcoming>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.home-upcoming button{text-align:left;cursor:pointer;background:#fff;border:1px solid #e6ebf2;border-radius:14px;gap:4px;min-height:118px;padding:14px;display:grid}.home-upcoming strong{color:#1d2939;font:800 24px/1 JetBrains Mono,monospace}.home-upcoming strong small{margin-left:4px;font:700 13px Noto Sans TC,sans-serif}.home-upcoming span{font-weight:700}.home-upcoming em{color:#98a2b3;font-size:12px;font-style:normal}@media (max-width:1100px){.home-kpis,.home-upcoming>div,.home-main{grid-template-columns:1fr 1fr}.app-main.is-fill:has(.operations-dashboard){overflow:auto}.app-main.is-fill .operations-dashboard{flex:none;overflow:visible}.home-main{flex:none}.home-issues{height:520px}.home-side{height:auto}.home-passages{flex:none;height:360px}}@media (max-width:760px){.home-kpis,.home-upcoming>div,.home-main{grid-template-columns:1fr}}.dashboard-welcome-card{box-sizing:border-box;background:#fff;border:1px solid #dce3ea;border-radius:15px;justify-content:space-between;align-items:center;gap:20px;padding:14px 24px;display:flex;box-shadow:0 2px 5px #0f172a17}.dashboard-welcome-card>div:first-child>span{color:#354156;letter-spacing:.04em;font-size:13px;font-weight:700;display:block}.dashboard-welcome-card h1{letter-spacing:.01em;margin:5px 0 0;font:800 30px/1.25 Noto Serif TC,serif}.dashboard-welcome-card p{color:#3e4a5c;margin:4px 0 0;font-size:15px;font-weight:700}.dashboard-welcome-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.dashboard-welcome-actions time{background:#fff;border:1px solid #d5deea;border-radius:10px;padding:11px 15px;font:700 15px JetBrains Mono,monospace}.dashboard-welcome-actions time span{margin-left:12px;font-family:Noto Sans TC,sans-serif}.dashboard-welcome-actions strong{color:#159a5b;white-space:nowrap;background:#eefbf4;border-radius:999px;align-items:center;gap:7px;padding:9px 13px;font-size:13px;display:flex}.dashboard-welcome-actions strong i{background:#4bd489;border-radius:50%;width:9px;height:9px}.dashboard-welcome-actions button{color:#344054;cursor:pointer;background:#fff;border:1px solid #dce4ed;border-radius:9px;min-height:42px;padding:8px 15px;font:700 14px Noto Sans TC,sans-serif}.dashboard-welcome-actions button[aria-label]{width:42px;padding:0;font-size:20px}.dashboard-main-grid{flex:1;grid-template-columns:minmax(0,1fr) minmax(360px,460px);grid-template-areas:"todos modules";align-items:stretch;gap:14px;min-height:0;display:grid}.dashboard-modules-card,.dashboard-todos-card{background:#fff;border:1px solid #dce3ea;border-radius:13px;flex-direction:column;min-width:0;height:100%;min-height:0;padding:16px;display:flex;box-shadow:0 2px 5px #0f172a14}.dashboard-modules-card{grid-area:modules}.dashboard-todos-card{grid-area:todos}.dashboard-section-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.dashboard-section-title h2{color:#1d2939;margin:0;font:800 18px Noto Serif TC,serif}.dashboard-section-title h2 span{color:#f59e0b}.dashboard-section-title>span{color:#667085;text-align:right;font-size:12px}.dashboard-section-title>button{color:#2463eb;cursor:pointer;background:0 0;border:0;padding:0;font:700 13px Noto Sans TC,sans-serif}.dashboard-passage-list{flex:1;align-content:start;gap:0;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.dashboard-passage-list li{border-bottom:1px solid #eef1f5;grid-template-columns:minmax(0,1fr) 44px 56px;align-items:center;gap:10px;padding:10px 0;display:grid}.dashboard-passage-punch{white-space:nowrap;justify-self:center;font-size:13px;font-style:normal;font-weight:700}.dashboard-passage-punch.is-in{color:#047857}.dashboard-passage-punch.is-out{color:#b45309}.dashboard-passage-punch.is-door{color:#667085}.dashboard-passage-list li>div{min-width:0}.dashboard-passage-list strong{color:#1d2939;text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.dashboard-passage-list small{color:#98a2b3;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;display:block;overflow:hidden}.dashboard-passage-list img,.dashboard-passage-photo{object-fit:cover;background:#f2f4f7;border-radius:50%;width:56px;height:56px}.dashboard-device-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.dashboard-device-card{text-align:left;background:#fff;border:1px solid #dfe6ee;border-radius:8px;gap:4px;min-width:0;padding:8px;display:grid}.dashboard-device-card.is-on{background:#f7fdf9;border-color:#b7ebc9}.dashboard-device-card.is-off{background:#fff8f8;border-color:#fecaca}.dashboard-device-card>header{grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.dashboard-device-card>header>div{min-width:0}.dashboard-device-svg{color:#1d2939;width:22px;height:26px}.dashboard-device-card strong{color:#1d2939;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.2;display:block;overflow:hidden}.dashboard-device-card small{color:#667085;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;display:block;overflow:hidden}.dashboard-device-card em{border-radius:999px;padding:2px 7px;font-size:11px;font-style:normal;font-weight:700}.dashboard-device-card.is-on em{color:#159a5b;background:#e8f8ee}.dashboard-device-card.is-off em{color:#dc2626;background:#fee2e2}.dashboard-device-counts{background:#f4f6f8;border:1px solid #e6ebf2;border-radius:8px;grid-template-columns:1fr 1fr;width:100%;display:grid}.dashboard-device-counts span{color:#344054;justify-content:center;align-items:center;gap:6px;min-height:28px;font:700 13px JetBrains Mono,monospace;display:flex}.dashboard-device-counts span+span{border-left:1px solid #e6ebf2}.dashboard-device-counts svg{color:#667085;width:18px;height:18px}.dashboard-device-apply{gap:2px;width:100%;margin-top:6px;display:grid}.dashboard-device-apply b{font-size:12px}.dashboard-device-apply.is-0 b{color:#159a5b}.dashboard-device-apply.is-1 b{color:#b45309}.dashboard-device-apply.is-2 b,.dashboard-device-apply.is-3 b,.dashboard-device-card small.is-fail{color:#dc2626}.dashboard-device-refresh{color:#344054;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:6px;width:100%;margin-top:2px;padding:4px 8px;font-size:12px}.dashboard-device-refresh:disabled{cursor:default;opacity:.6}.dashboard-offline-block{margin-top:16px}.dashboard-offline-block h3{margin:0 0 8px;font-size:14px}.dashboard-offline-block ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dashboard-offline-block li{border:1px solid #e6ebf2;border-radius:8px;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto auto;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:grid}.dashboard-offline-block li span{color:#667085}.dashboard-device-apply small{color:#b42318;white-space:normal;font-size:11px}.dashboard-todo-list{flex:1;align-content:start;gap:10px;min-height:0;display:grid;overflow:auto}.dashboard-todo{color:#243047;text-align:left;cursor:pointer;background:#fff8f8;border:1px solid #fecaca;border-radius:11px;justify-content:space-between;align-items:flex-start;gap:20px;min-height:102px;padding:16px 18px;transition:border-color .15s,background .15s;display:flex}.dashboard-todo:hover{background:#fff2f3;border-color:#fda4af}.dashboard-todo span{flex-direction:column;display:flex}.dashboard-todo span strong{font:800 16px Noto Serif TC,serif}.dashboard-todo span small{color:#48566a;margin-top:7px;font-size:12px}.dashboard-todo>b{color:#e60012;font:800 22px JetBrains Mono,monospace}.dashboard-todo-summary{color:#596579;border-top:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:18px;margin-top:auto;padding:12px 3px 0;font-size:11px;display:flex}.dashboard-todo-summary strong{color:#dc2626}.dashboard-todo-summary small{color:#8a94a2}.dashboard-todo-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a7a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dashboard-todo-modal{background:#fff;border-radius:18px;width:min(780px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 26px 70px #0f172a4d}.dashboard-passage-modal{flex-direction:column;display:flex;overflow:hidden}.dashboard-passage-modal header p input[type=date]{border:1px solid #d0d5dd;border-radius:6px;margin-right:8px;padding:4px 8px;font:600 13px Noto Sans TC,sans-serif}.dashboard-passage-modal-list{min-height:0;padding:8px 24px 20px;overflow:auto}.dashboard-passage-modal-list .dashboard-passage-list{max-height:none}.dashboard-todo-modal>header{border-bottom:1px solid #e5eaf0;justify-content:space-between;align-items:flex-start;gap:20px;padding:16px 24px;display:flex}.dashboard-todo-modal h2{margin:0;font:800 23px Noto Serif TC,serif}.dashboard-todo-modal h2 span{color:#f59e0b}.dashboard-todo-modal header p{color:#526074;margin:8px 0 0;font-size:14px}.dashboard-todo-modal header>button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:29px;line-height:1}.dashboard-todo-modal-list{gap:14px;padding:28px;display:grid}.dashboard-todo-modal-list>button{color:#243047;text-align:left;cursor:pointer;background:#fff8f8;border:1px solid #fecaca;border-radius:14px;justify-content:space-between;align-items:flex-start;gap:24px;min-height:138px;padding:24px;display:flex}.dashboard-todo-modal-list>button:hover{border-color:#fb7185}.dashboard-todo-modal-list span{flex-direction:column;display:flex}.dashboard-todo-modal-list strong{font:800 19px Noto Serif TC,serif}.dashboard-todo-modal-list small{color:#4b596e;margin-top:10px;font-size:14px}.dashboard-todo-modal-list em{color:#344054;margin-top:13px;font-size:13px;font-style:normal;font-weight:700}.dashboard-todo-modal-list b{color:#e60012;font:800 28px JetBrains Mono,monospace}.dashboard-todo-modal>footer{background:#f8fafc;justify-content:flex-end;padding:18px 28px;display:flex}.dashboard-todo-modal>footer button{color:#344054;cursor:pointer;background:#fff;border:1px solid #d8e0e9;border-radius:9px;padding:10px 25px;font:700 14px Noto Sans TC,sans-serif}.dashboard-todo-modal>footer button.is-primary{color:#fff;background:#172033;border-color:#172033}.home-issue-modal{width:min(520px,100%)}.home-issue-modal>footer{gap:10px}.home-issue-modal-body{gap:14px;max-height:min(420px,60vh);padding:20px 24px;display:grid;overflow:auto}.home-issue-reapply{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.home-issue-reapply button{color:#fff;cursor:pointer;background:#1d4ed8;border:0;border-radius:8px;padding:8px 14px;font:700 13px Noto Sans TC,sans-serif}.home-issue-reapply button:disabled{opacity:.6;cursor:default}.home-issue-reapply em{color:#475467;font-style:normal;font-weight:700}.home-issue-day{border-bottom:1px solid #eef2f6;gap:8px;padding-bottom:12px;display:grid}.home-issue-day:last-child{border-bottom:0;padding-bottom:0}.home-miss{color:#e11d48;font-style:normal;font-weight:800}.home-issue-modal-body p{color:#1d2939;grid-template-columns:72px minmax(0,1fr);gap:12px;margin:0;font-weight:700;display:grid}.home-makeup-day{border-bottom:1px solid #eef2f6;gap:8px;padding-bottom:12px;display:grid}.home-makeup-day:last-child{border-bottom:0;padding-bottom:0}.home-makeup-day>strong{color:#1d2939}.home-makeup-action{justify-items:start;gap:8px;display:grid}.home-makeup-action>button{color:#fff;cursor:pointer;background:#dc2626;border:1px solid #dc2626;border-radius:6px;min-width:88px;padding:6px 12px;font:800 14px Noto Sans TC,sans-serif}.home-makeup-action>button:disabled{opacity:.6;cursor:default}.home-makeup-confirm{background:#fff;border:1px solid #fecaca;border-radius:9px;gap:6px;width:100%;padding:12px;display:grid}.home-makeup-confirm strong{color:#1e293b;font-size:14px}.home-makeup-confirm small{color:#64748b;font:600 12px JetBrains Mono,monospace}.home-makeup-confirm button{color:#b91c1c;text-align:left;cursor:pointer;background:#fff1f2;border:1px solid #fecaca;border-radius:7px;padding:8px 10px;font:800 13px Noto Sans TC,sans-serif}.home-makeup-confirm button:disabled{opacity:.6;cursor:default}.home-makeup-note{font-weight:700;color:#475467!important;display:block!important}.home-issue-modal-body span{color:#98a2b3;font-weight:700}.home-table td:last-child{white-space:normal;max-width:220px}@media (max-width:1220px){.dashboard-welcome-card{flex-direction:column;align-items:flex-start}.dashboard-welcome-actions{flex-wrap:wrap;width:100%}.operations-dashboard{flex:none}.app-main.is-fill .operations-dashboard{flex:auto}.dashboard-main-grid{flex:none;grid-template-columns:1fr;grid-template-areas:"modules""todos"}.dashboard-modules-card,.dashboard-todos-card{height:auto}.dashboard-device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-todos-card{min-height:0}.dashboard-todo-summary{margin-top:18px}}@media (max-width:760px){.dashboard-welcome-card{padding:14px}.dashboard-welcome-card h1{font-size:24px}.dashboard-welcome-actions strong{order:-1;width:100%}.dashboard-device-grid{grid-template-columns:1fr 1fr}.dashboard-modules-card,.dashboard-todos-card{padding:17px}.dashboard-section-title{flex-direction:column;align-items:flex-start}.dashboard-todo{min-height:108px;padding:18px}.dashboard-todo-summary{flex-direction:column;align-items:flex-start}.dashboard-todo-modal-backdrop{padding:12px}.dashboard-todo-modal>header{padding:14px 16px}.dashboard-todo-modal-list{padding:18px}}.attendance-management{color:#1e293b;flex-direction:column;gap:13px;height:calc(100vh - 48px);min-height:560px;display:flex}.attendance-header-card{box-sizing:border-box;background:#fff;border:1px solid #dce3ea;border-radius:15px;flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 24px;display:grid;box-shadow:0 2px 5px #0f172a17}.attendance-heading{align-items:center;gap:12px;display:flex}.attendance-header-actions{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.attendance-header-actions button,.attendance-refresh,.attendance-export{box-sizing:border-box;white-space:nowrap;height:38px;min-height:38px;padding:0 12px;font-size:14px}.attendance-search{width:180px}.attendance-search input,.attendance-header-tools>select{box-sizing:border-box;height:38px;padding:0 10px;font-size:14px}.attendance-header-tools>select{width:112px}.attendance-month-picker strong{min-height:36px;font-size:16px}.attendance-heading span{color:#354156;letter-spacing:.04em;font-size:13px;font-weight:700}.attendance-heading h2{color:#172033;white-space:nowrap;margin:4px 0 0;font:800 30px/1.25 Noto Serif TC,serif}.attendance-heading p{color:#3e4a5c;white-space:nowrap;margin:0;font-size:15px;font-weight:700}.attendance-header-tools{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.attendance-search{width:180px;display:block;position:relative}.attendance-search span{color:#718096;font-size:16px;position:absolute;top:50%;left:12px;transform:translateY(-52%)}.attendance-search input,.attendance-header-tools>select{box-sizing:border-box;color:#344054;background:#f8fafc;border:1px solid #ccd6e2;border-radius:9px;outline:none;width:100%;height:38px;padding:0 10px;font:600 14px Noto Sans TC,sans-serif}.attendance-search input{padding-left:32px}.attendance-search input:focus,.attendance-header-tools>select:focus{background:#fff;border-color:#86a9e9;box-shadow:0 0 0 3px #1f65df17}.attendance-header-tools>select{background:#fff;width:112px}.attendance-refresh{color:#344054;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #ccd6e2;border-radius:9px;align-items:center;gap:6px;height:38px;padding:0 12px;font:700 14px Noto Sans TC,sans-serif;display:inline-flex}.attendance-refresh:disabled{opacity:.55;cursor:not-allowed}.attendance-refresh-icon{font-size:18px;line-height:1;display:inline-block}.attendance-refresh-icon.is-spinning{animation:.7s linear infinite attendance-spin}@keyframes attendance-spin{to{transform:rotate(360deg)}}.attendance-sync-dialog{background:#fff;border-radius:16px;width:min(360px,100vw - 32px);padding:22px 22px 20px;box-shadow:0 18px 40px #0f172a2e}.attendance-sync-dialog h2{color:#172033;margin:0 0 8px;font:800 22px/1.3 Noto Serif TC,serif}.attendance-sync-dialog p{color:#64748b;margin:0 0 16px;font-size:13px;line-height:1.55}.attendance-sync-track{background:#e8eef5;border-radius:99px;height:8px;overflow:hidden}.attendance-sync-fill{background:#2563eb;border-radius:99px;height:100%;transition:width .35s}.attendance-sync-pct{color:#334155;text-align:right;margin:10px 0 0;font:700 13px JetBrains Mono,monospace}.attendance-month-picker{background:#f8fafc;border:1px solid #ccd6e2;border-radius:9px;grid-template-columns:18px minmax(115px,auto) 18px;align-items:stretch;display:grid;overflow:hidden}.attendance-month-picker button{color:#475569;cursor:pointer;background:0 0;border:0;padding:0;font-size:20px}.attendance-month-picker strong{white-space:nowrap;place-items:center;min-height:36px;padding:0 8px;font:700 15px JetBrains Mono,monospace;display:grid}.attendance-export{color:#344054;cursor:pointer;background:#fff;border:1px solid #ccd6e2;border-radius:9px;justify-self:end;height:38px;min-height:38px;padding:0 12px;font:700 14px Noto Sans TC,sans-serif}.attendance-message{z-index:100;color:#fff;background:#172033;border-radius:9px;padding:10px 15px;font-size:18px;font-weight:700;position:fixed;top:24px;right:32px;box-shadow:0 8px 24px #0f172a38}.attendance-workspace{flex:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px;min-height:0;display:grid;position:relative}.attendance-view-toggle{background:#f7f5f1;border:1px solid #dce3ea;border-radius:10px;padding:3px;display:inline-flex}.attendance-view-toggle button{color:#6b5f52;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:72px;padding:6px 12px;font:700 13px Noto Sans TC,sans-serif}.attendance-view-toggle button.is-active{color:#172033;background:#fff;box-shadow:0 1px 3px #0f172a1a}.attendance-workspace.is-day{grid-template-columns:minmax(0,1fr)}.attendance-day-card{min-width:0}.attendance-panel-header input[type=date]{background:#fff;border:1px solid #dce4ed;border-radius:8px;height:34px;padding:0 8px;font:700 13px Noto Sans TC,sans-serif}.attendance-overview-card,.attendance-daily-card,.attendance-legend-card{background:#fff;border:1px solid #dce3ea;border-radius:12px;min-width:0;overflow:hidden;box-shadow:0 2px 5px #0f172a12}.attendance-overview-card,.attendance-daily-card{flex-direction:column;min-height:0;display:flex}.attendance-detail-column{flex-direction:column;gap:13px;min-width:0;min-height:0;display:flex}.attendance-daily-card{flex:auto}.attendance-panel-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:9px;min-height:48px;padding:10px 13px;display:flex}.attendance-panel-header strong{color:#3e4b5e;margin-right:auto;font-size:18px}.attendance-panel-header select{color:#526074;background:#fff;border:1px solid #d4dce6;border-radius:7px;padding:5px 7px;font-size:16.5px}.attendance-panel-header span{color:#617084;background:#fff;border:1px solid #d9e1ea;border-radius:6px;padding:4px 7px;font-size:15px}.attendance-daily-card .attendance-panel-header span{color:#2563eb;background:0 0;border:0;font-weight:800}.attendance-table-scroll{flex:auto;min-height:0;overflow:auto}.attendance-overview-table,.attendance-daily-table{border-collapse:collapse;width:100%;font-size:16.5px}.attendance-overview-table{min-width:650px}.attendance-daily-table{table-layout:fixed;min-width:640px}.attendance-overview-table thead,.attendance-daily-table thead{z-index:2;color:#64748b;background:#f8fafc;position:sticky;top:0;box-shadow:0 1px #dfe5ec}.attendance-overview-table th,.attendance-overview-table td,.attendance-daily-table th,.attendance-daily-table td{text-align:center;white-space:nowrap;border-bottom:1px solid #edf1f5;padding:9px 8px}.attendance-overview-table th:nth-child(2),.attendance-overview-table td:nth-child(2),.attendance-daily-table th,.attendance-daily-table td{text-align:left}.attendance-overview-table th.attendance-seq,.attendance-overview-table td.attendance-seq{color:#94a3b8;text-align:center;width:42px;padding-left:6px;padding-right:6px;font:600 13px JetBrains Mono,monospace}.attendance-overview-table tbody tr{cursor:pointer;outline:none;transition:background .12s,box-shadow .12s}.attendance-overview-table tbody tr:hover{background:#f8fafc}.attendance-overview-table tbody tr.is-selected{background:#eff6ff;box-shadow:inset 3px 0 #3b82f6}.attendance-overview-table td strong{color:#1e293b;font-size:18px;display:block}.attendance-overview-table td small{color:#8993a0;margin-top:3px;font-size:13.5px;display:block}.attendance-overview-table code,.attendance-daily-table code{color:#526074;font:600 15px JetBrains Mono,monospace}.attendance-overview-table td.is-ot{color:#ea580c;font-weight:800}.attendance-overview-table td.is-late{color:#b45309;font-family:JetBrains Mono,monospace}.attendance-overview-table td.is-deficit{color:#dc2626;font-weight:800}.attendance-daily-table th,.attendance-daily-table td{text-align:center;padding-left:6px;padding-right:6px}.attendance-daily-table th:first-child,.attendance-daily-table td:first-child{width:130px}.attendance-daily-table th:nth-child(2),.attendance-daily-table td:nth-child(2){width:220px;min-width:220px}.attendance-daily-table th:nth-child(3),.attendance-daily-table td:nth-child(3){text-overflow:ellipsis;width:120px;max-width:140px;overflow:hidden}.attendance-daily-table tbody tr.is-clickable{cursor:pointer}.attendance-daily-table tbody tr.is-clickable.is-selected{background:#eef4ff}.attendance-day-backdrop{place-items:center;display:grid}.attendance-day-modal{background:#fff;border-radius:14px;width:min(520px,94vw);padding:22px 24px 18px;box-shadow:0 18px 50px #0f172a38}.attendance-day-person{color:#475569;margin:12px 0 0;font-size:13px;font-weight:700}.attendance-day-facts{gap:10px;margin:16px 0 0;display:grid}.attendance-day-facts>div{grid-template-columns:88px 1fr;align-items:center;gap:10px;display:grid}.attendance-day-facts dt{color:#64748b;font-size:12px;font-weight:700}.attendance-day-facts dd{color:#172033;margin:0;font:700 14px Noto Sans TC,sans-serif}.attendance-day-actual{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attendance-day-actual button{color:#3730a3;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;padding:3px 8px;font:800 12px Noto Sans TC,sans-serif}.attendance-day-actual button:hover:not(:disabled){background:#e0e7ff;border-color:#818cf8}.attendance-day-actual button:disabled{cursor:default;opacity:.7}.attendance-day-actual button.is-revert{color:#be123c;background:#fff1f2;border-color:#fecaca}.attendance-day-actual button.is-revert:hover:not(:disabled){background:#ffe4e6;border-color:#f87171}.attendance-day-confirm{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-top:12px;padding:10px 12px}.attendance-day-confirm p{color:#92400e;margin:0 0 8px;font-size:13px;font-weight:700;line-height:1.45}.attendance-day-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.attendance-day-confirm-actions button{color:#44403c;cursor:pointer;background:#fff;border:1px solid #d6d3d1;border-radius:6px;padding:5px 10px;font:800 12px Noto Sans TC,sans-serif}.attendance-day-confirm-actions button.is-primary{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}.attendance-day-confirm-actions button:disabled{opacity:.6;cursor:default}.attendance-day-error{color:#b91c1c;margin:10px 0 0;font-size:12px;font-weight:700}.attendance-day-log{border-top:1px solid #edf1f5;margin-top:14px;padding-top:12px}.attendance-day-log h3{color:#64748b;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:800}.attendance-day-log>p{color:#94a3b8;margin:0;font-size:12px}.attendance-day-log ol{margin:0;padding-left:18px}.attendance-day-log li{color:#1e293b;margin:0 0 7px;font-size:12px;font-weight:700;line-height:1.45}.attendance-daily-table th:nth-child(4),.attendance-daily-table td:nth-child(4){width:110px}.attendance-daily-table th:last-child,.attendance-daily-table td:last-child{width:104px}.attendance-daily-table tbody tr:hover{background:#f8fafc}.attendance-daily-table td.is-daily-overtime{color:#ea580c;font-family:JetBrains Mono,monospace;font-weight:800}.attendance-daily-table td.is-daily-undertime{color:#dc2626;font-family:JetBrains Mono,monospace;font-weight:800}.attendance-clock-cell{position:relative}.attendance-clock-pair{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.attendance-clock-sep{color:#64748b;font:800 13px JetBrains Mono,monospace}.attendance-missing-clock-wrap{align-items:center;gap:6px;display:inline-flex;position:relative}.attendance-missing-clock-button{color:#fff;cursor:pointer;background:#dc2626;border:1px solid #dc2626;border-radius:6px;justify-content:center;align-items:center;width:132px;min-height:30px;padding:4px 9px;font:800 14px Noto Sans TC,sans-serif;display:inline-flex;box-shadow:0 2px 5px #dc262633}.attendance-missing-clock-button.is-slot{width:auto;min-width:76px;padding:4px 8px;font-size:13px}.attendance-missing-clock-button:hover,.attendance-missing-clock-button[aria-expanded=true]{background:#b91c1c;border-color:#991b1b}.attendance-clock-option{z-index:20;color:#1e293b;background:#fff;border:1px solid #fecaca;border-radius:9px;gap:7px;width:230px;padding:12px;display:grid;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 12px 28px #0f172a33}.attendance-clock-option.is-end{left:auto;right:0}.attendance-clock-option:before{content:"";background:#fff;border-top:1px solid #fecaca;border-left:1px solid #fecaca;width:10px;height:10px;position:absolute;top:-6px;left:24px;transform:rotate(45deg)}.attendance-clock-option.is-end:before{left:auto;right:24px}.attendance-clock-option strong{font-size:14px}.attendance-clock-option small{color:#64748b;font:600 12px JetBrains Mono,monospace}.attendance-clock-option button{color:#b91c1c;text-align:left;cursor:pointer;background:#fff1f2;border:1px solid #fecaca;border-radius:7px;padding:8px 10px;font:800 13px Noto Sans TC,sans-serif}.attendance-clock-option button:hover{background:#fee2e2;border-color:#ef4444}.attendance-modified-time{align-items:center;gap:5px;display:inline-flex}.attendance-modified-time em,.attendance-modified-flag{color:#c2410c;font-size:12px;font-style:normal;font-weight:800}.attendance-day-facts input[type=time]{border:1px solid #d5dde7;border-radius:7px;width:100%;padding:6px 8px;font:700 14px JetBrains Mono,monospace}.attendance-legend-card{flex:none;min-height:88px;padding:12px 13px}.attendance-legend-card h3{color:#64748b;letter-spacing:.04em;text-transform:uppercase;margin:0 0 9px;font-size:15px}.attendance-legend-card>div{flex-wrap:wrap;gap:6px;display:flex}.attendance-status{white-space:nowrap;border:1px solid;border-radius:5px;padding:3px 7px;font-size:13.5px;font-weight:700;line-height:1.2;display:inline-block}.attendance-status.tone-green{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.attendance-status.tone-orange{color:#c2410c;background:#ffedd5;border-color:#fed7aa}.attendance-status.tone-amber{color:#a16207;background:#fef3c7;border-color:#fde68a}.attendance-status.tone-red{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.attendance-status.tone-mint{color:#047857;background:#d1fae5;border-color:#a7f3d0}.attendance-status.tone-gray{color:#374151;background:#fff;border-color:#d1d5db}.attendance-status.tone-blue{color:#1d4ed8;background:#dbeafe;border-color:#bfdbfe}.attendance-status.tone-purple{color:#7e22ce;background:#f3e8ff;border-color:#e9d5ff}.attendance-status.tone-yellow{color:#a16207;background:#fef9c3;border-color:#fde68a}.attendance-status.tone-pink{color:#be185d;background:#fce7f3;border-color:#fbcfe8}.attendance-status.tone-coral{color:#ea580c;background:#ffedd5;border-color:#fed7aa}.attendance-status.tone-crimson{color:#dc2626;background:#fee2e2;border-color:#fecaca}.employee-attention-mark{color:#dc2626;margin-left:6px;font-weight:900;display:inline-block}.employee-profile-card.is-employee-attention,.attendance-overview-table tr.is-employee-attention{animation:.55s ease-in-out 3 employee-attention-flash}@keyframes employee-attention-flash{0%,to{background-color:inherit;box-shadow:none}50%{background-color:#fee2e2;box-shadow:inset 4px 0 #dc2626,inset -4px 0 #dc2626}}.schedule-grid-table tr.is-employee-attention>td,.schedule-grid-table tr.is-employee-attention>td .schedule-cell-button{animation:.55s ease-in-out 3 schedule-cell-attention-flash}@keyframes schedule-cell-attention-flash{0%,to{box-shadow:none}50%{box-shadow:inset 0 0 0 999px #fecacaeb,inset 0 0 0 2px #dc2626}}@media (max-width:1180px){.attendance-management{height:auto;min-height:0}.attendance-header-card{grid-template-columns:auto minmax(0,1fr) auto}.attendance-header-tools{flex-wrap:nowrap;grid-area:auto}.attendance-workspace{grid-template-columns:1fr}.attendance-overview-card{min-height:480px}.attendance-daily-card{min-height:520px}}@media (max-width:720px){.attendance-header-card{grid-template-columns:1fr}.attendance-export{justify-self:stretch}.attendance-search,.attendance-header-tools>select{width:100%}.attendance-month-picker{flex:1}.attendance-heading h2{white-space:normal}}.attendance-heading span{font-size:clamp(12px,1vw,13px)}.attendance-heading h2{font-size:clamp(28px,2.35vw,30px)}.attendance-search input,.attendance-header-tools>select{font-size:14px}.attendance-month-picker strong{font-size:15px}.attendance-export{font-size:14px}.attendance-panel-header strong{font-size:clamp(16px,1.55vw,20px)}.attendance-panel-header select{font-size:clamp(14px,1.3vw,17px)}.attendance-panel-header span{font-size:clamp(13px,1.18vw,15.5px)}.attendance-overview-table,.attendance-daily-table{font-size:clamp(15px,1.42vw,18px)}.attendance-overview-table td strong{font-size:clamp(17px,1.58vw,20px)}.attendance-overview-table td small{font-size:clamp(12px,1.1vw,14px)}.attendance-overview-table code,.attendance-daily-table code{font-size:clamp(14px,1.25vw,16px)}.attendance-legend-card h3{font-size:clamp(13px,1.2vw,16px)}.attendance-status{font-size:clamp(12px,1.1vw,14.5px)}@media (max-width:1180px){.attendance-management{min-width:900px;height:calc(100vh - 48px);min-height:560px}.attendance-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.attendance-overview-card,.attendance-daily-card{min-height:0}}.auth-page{color:#172033;background:#f2efe9;grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr);min-height:100vh;font-family:Noto Sans TC,system-ui,sans-serif;display:grid}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,#172033 0%,#263b5d 62%,#92400e 150%);flex-direction:column;justify-content:center;padding:clamp(48px,7vw,104px);display:flex;position:relative;overflow:hidden}.auth-brand-panel:before,.auth-brand-panel:after{content:"";border:1px solid #ffffff1f;border-radius:50%;position:absolute}.auth-brand-panel:before{width:440px;height:440px;top:-180px;right:-250px}.auth-brand-panel:after{width:270px;height:270px;bottom:-110px;left:-160px}.auth-brand-mark{letter-spacing:.08em;background:#ffffff17;border:1px solid #fff6;border-radius:16px;place-items:center;width:58px;height:58px;margin-bottom:36px;font:800 20px/1 ui-monospace,monospace;display:grid}.auth-brand-panel>p{color:#fbbf24;letter-spacing:.15em;margin:0 0 14px;font-size:13px;font-weight:800}.auth-brand-panel h1{letter-spacing:-.03em;margin:0;font-family:Noto Serif TC,serif;font-size:clamp(38px,4vw,62px);line-height:1.25}.auth-brand-panel .auth-login-brand-title{white-space:nowrap;font-size:clamp(24px,1.8vw,32px)}.auth-brand-panel>span{color:#dbe4f1;max-width:510px;margin-top:24px;font-size:17px;line-height:1.8}.auth-brand-panel ul{flex-wrap:wrap;gap:9px;margin:34px 0 0;padding:0;list-style:none;display:flex}.auth-brand-panel li{color:#e7edf7;background:#ffffff0f;border:1px solid #ffffff29;border-radius:999px;padding:7px 11px;font-size:12px}.auth-form-panel{place-items:center;padding:44px 5vw;display:grid}.auth-card{background:#fff;border:1px solid #e0d9ce;border-radius:22px;width:min(100%,500px);padding:clamp(32px,4vw,54px);box-shadow:0 22px 60px #3d30201a}.auth-card-heading{margin-bottom:32px}.auth-card-heading span,.auth-dialog header span{color:#b45309;letter-spacing:.14em;font-size:12px;font-weight:900}.auth-card-heading h2{margin:8px 0 9px;font-family:Noto Serif TC,serif;font-size:34px}.auth-card-heading p,.auth-dialog>p{color:#64748b;margin:0;line-height:1.65}.auth-card label,.auth-dialog label{color:#334155;gap:8px;margin-top:18px;font-size:14px;font-weight:800;display:grid}.auth-card input,.auth-dialog input,.auth-dialog select{box-sizing:border-box;color:#172033;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;outline:0;width:100%;height:50px;padding:0 14px;font:500 16px/1 Noto Sans TC,system-ui,sans-serif;transition:border-color .15s,box-shadow .15s}.auth-card input:focus,.auth-dialog input:focus,.auth-dialog select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb24}.auth-primary-button{color:#fff;cursor:pointer;background:#172033;border:0;border-radius:10px;width:100%;height:52px;margin-top:24px;font:800 16px/1 Noto Sans TC,sans-serif}.auth-primary-button:hover:not(:disabled){background:#263b5d}.auth-primary-button:disabled{opacity:.55;cursor:not-allowed}.auth-text-button{color:#2563eb;cursor:pointer;background:0 0;border:0;margin:17px auto 0;font-weight:800;display:block}.auth-register-link{color:#172033;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;height:48px;margin-top:13px;font:800 15px/1 Noto Sans TC,sans-serif;display:block}.auth-register-link:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.auth-register-link:disabled{opacity:.55;cursor:not-allowed}.auth-card>small{color:#94a3b8;text-align:center;border-top:1px solid #e2e8f0;margin-top:28px;padding-top:19px;line-height:1.6;display:block}.auth-message{border-radius:9px;gap:4px;margin-top:18px;padding:12px 14px;font-size:14px;line-height:1.55;display:grid}.auth-message.is-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.auth-message.is-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.auth-password-hint{color:#64748b;margin:12px 0 0;font-size:13px}.auth-loading-screen{color:#475569;background:#f2efe9;place-items:center;min-height:100vh;font:700 16px/1 Noto Sans TC,sans-serif;display:grid}.auth-page.is-setup{grid-template-columns:1fr}.auth-register-card{width:min(100%,560px);padding-top:36px;padding-bottom:36px}.auth-register-card .auth-card-heading{margin-bottom:22px}.auth-register-card label{margin-top:14px}.auth-code-row{grid-template-columns:minmax(0,1fr) 148px;gap:10px;display:grid}.auth-code-row button{color:#fff;cursor:pointer;background:#172033;border:0;border-radius:10px;height:50px;font:800 13px/1.2 Noto Sans TC,sans-serif}.auth-code-row button:hover:not(:disabled){background:#263b5d}.auth-code-row button:disabled{opacity:.5;cursor:not-allowed}.auth-dialog-backdrop{z-index:10000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-dialog{background:#fff;border-radius:18px;width:min(100%,520px);padding:30px;box-shadow:0 30px 80px #0f172a47}.auth-dialog header{justify-content:space-between;align-items:flex-start;display:flex}.auth-dialog header h2{margin:6px 0 16px;font-family:Noto Serif TC,serif;font-size:28px}.auth-dialog header>button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:30px}.auth-dialog footer{justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.auth-dialog footer button{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:9px;min-width:100px;padding:11px 16px;font-weight:800}.auth-dialog footer button.is-primary{color:#fff;background:#2563eb;border-color:#2563eb}@media (max-width:860px){.auth-page{grid-template-columns:1fr}.auth-brand-panel{min-height:270px;padding:38px 7vw}.auth-brand-panel h1{font-size:36px}.auth-brand-panel>span,.auth-brand-panel ul{display:none}.auth-brand-mark{margin-bottom:20px}.auth-form-panel{padding:28px 18px}.auth-code-row{grid-template-columns:1fr}.auth-code-row button{width:100%}}.sidebar-profile-settings{appearance:none;box-sizing:border-box;text-align:left;cursor:pointer;background:#fff;border-bottom:0;border-left:0;border-right:0;width:100%;font-family:Noto Sans TC,sans-serif;transition:background .15s,box-shadow .15s;display:block}.sidebar-profile-settings:hover,.sidebar-profile-settings.is-active{background:#fef7ed}.sidebar-profile-settings:focus-visible{outline-offset:-3px;outline:2px solid #d97706}.sidebar-profile-settings[aria-disabled=true]{cursor:default}.sidebar-account{z-index:30;border-top:1px solid #e5e0d8;padding:12px 14px 14px;position:relative}.sidebar-account-trigger{appearance:none;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-width:0;padding:4px 2px;display:flex}.sidebar-account-avatar{color:#92400e;background:#fff;border:2px solid #d97706;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid}.sidebar-account-name{color:#4b4035;text-overflow:ellipsis;white-space:nowrap;min-width:0;font:700 14px/1.3 Noto Sans TC,sans-serif;overflow:hidden}.sidebar-account-trigger:hover .sidebar-account-avatar,.sidebar-account-trigger.is-open .sidebar-account-avatar,.sidebar-account-trigger:focus-visible .sidebar-account-avatar{background:#fef3e2}.sidebar-account-trigger:focus-visible{outline-offset:2px;outline:2px solid #d97706}.sidebar-account-menu{background:#fff;border:1px solid #e5e0d8;border-radius:12px;width:196px;padding:14px 14px 8px;position:absolute;bottom:calc(100% + 8px);left:12px;box-shadow:0 10px 28px #3d302024}.sidebar-account-menu-meta{border-bottom:1px solid #f0ebe4;padding:0 4px 10px}.sidebar-account-menu-meta span{color:#b45309;font:700 12px/1.3 Noto Sans TC,sans-serif;display:block}.sidebar-account-menu-meta strong{color:#4b4035;word-break:break-all;margin-top:2px;font:700 13px/1.35 Noto Sans TC,sans-serif;display:block}.sidebar-account-menu-item{appearance:none;color:#4b4035;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;margin-top:4px;padding:8px 4px;font:700 14px/1.2 Noto Sans TC,sans-serif;text-decoration:none;display:flex}.sidebar-account-menu-item svg{color:#92400e;flex:none}.sidebar-account-menu-item:hover,.sidebar-account-menu-item:focus-visible{background:#fef3e2}.sidebar-account-menu-item:disabled{opacity:.55;cursor:default}.logout-confirm-backdrop{z-index:120;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.logout-confirm-dialog{color:#172033;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:18px;width:min(420px,100%);padding:28px;animation:.18s ease-out logout-dialog-in;box-shadow:0 24px 70px #0f172a3d}.logout-confirm-icon{color:#c2410c;background:#fff7ed;border-radius:14px;place-items:center;width:52px;height:52px;margin:0 auto 14px;font-size:27px;font-weight:800;display:grid}.logout-confirm-dialog h2{margin:0;font-family:Noto Serif TC,serif;font-size:23px}.logout-confirm-dialog p{color:#718096;margin:9px 0 22px;font-size:13px;line-height:1.6}.logout-confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.logout-confirm-actions button{color:#475569;cursor:pointer;background:#fff;border:1px solid #d8e0e9;border-radius:10px;min-height:44px;font:800 15px/1 Noto Sans TC,sans-serif}.logout-confirm-actions button:hover{background:#f8fafc}.logout-confirm-actions button.is-confirm{color:#fff;background:#172033;border-color:#172033}.logout-confirm-actions button.is-confirm:hover{background:#283449}.logout-confirm-actions button:disabled{opacity:.55;cursor:not-allowed}@keyframes logout-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.employee-account-page{color:#172033;background:#f2efe9;min-height:100vh;padding:clamp(22px,4vw,52px)}.employee-account-header,.employee-account-profile,.employee-account-grid article,.employee-account-binding-note{background:#fff;border:1px solid #e0d9ce;border-radius:16px;box-shadow:0 3px 12px #3d30200f}.employee-account-header{justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;display:flex}.employee-account-header span,.employee-account-profile span{color:#b45309;letter-spacing:.12em;font-size:11px;font-weight:900}.employee-account-header h1{margin:5px 0 3px;font-family:Noto Serif TC,serif;font-size:clamp(25px,3vw,35px)}.employee-account-header p{color:#64748b;margin:0}.employee-account-header button{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:9px;padding:11px 17px;font-weight:800}.employee-account-profile{align-items:center;gap:15px;margin-top:16px;padding:20px 24px;display:flex}.employee-account-avatar{color:#fff;background:#172033;border-radius:50%;place-items:center;width:54px;height:54px;font-size:22px;font-weight:800;display:grid}.employee-account-profile strong,.employee-account-profile small{display:block}.employee-account-profile strong{margin-top:3px;font-size:17px}.employee-account-profile small{color:#94a3b8;margin-top:3px}.employee-account-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.employee-account-grid article{padding:24px}.employee-account-grid article>span{background:#eef2f7;border-radius:10px;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.employee-account-grid h2{margin:16px 0 7px;font-size:19px}.employee-account-grid p,.employee-account-binding-note p{color:#64748b;margin:0;font-size:13px;line-height:1.7}.employee-account-binding-note{background:#fffbeb;border-color:#fde68a;margin-top:16px;padding:18px 22px}.employee-account-binding-note strong{color:#92400e;margin-bottom:4px;display:block}@media (max-width:760px){.employee-account-header{flex-direction:column;align-items:flex-start}.employee-account-grid{grid-template-columns:1fr}}.system-settings-page{color:#172033;width:min(1480px,100%);margin:0 auto}.settings-section-switch{background:#fff;border:1px solid #e3e7ed;border-radius:12px;align-items:center;gap:5px;margin-bottom:12px;padding:5px;display:flex;box-shadow:0 2px 7px #0f172a0d}.settings-section-switch button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:34px;padding:7px 15px;font:700 13px/1.2 Noto Sans TC,sans-serif;transition:background .15s,color .15s,box-shadow .15s}.settings-section-switch button:hover{background:#f1f5f9}.settings-section-switch button.is-active{color:#fff;background:#172033;box-shadow:0 2px 5px #0f172a2e}.store-accounts-page{gap:14px;display:grid}.store-accounts-header,.store-admin-card{background:#fff;border:1px solid #e3e7ed;border-radius:16px;box-shadow:0 2px 7px #0f172a0f}.store-accounts-header{padding:14px 22px}.store-accounts-back{color:#64748b;cursor:pointer;background:0 0;border:0;margin-bottom:12px;padding:0;font:700 12px/1.2 Noto Sans TC,sans-serif}.store-accounts-back:hover{color:#172033}.store-accounts-title{align-items:center;gap:13px;display:flex}.store-accounts-title-icon{color:#334155;background:#eef2f7;border-radius:11px;place-items:center;width:44px;height:44px;font-size:25px;font-weight:700;display:grid}.store-accounts-title>div>span{color:#64748b;letter-spacing:.08em;font-size:11px;font-weight:800}.store-accounts-title h1{margin:2px 0 0;font-family:Noto Serif TC,serif;font-size:clamp(23px,2vw,30px);line-height:1.25}.store-accounts-title p{color:#6b778a;margin:4px 0 0;font-size:13px}.store-accounts-notice{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.store-accounts-notice.is-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.store-admin-card{overflow:hidden}.store-admin-card>header{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;display:flex}.store-admin-card>header h2{color:#1e293b;margin:0;font-size:17px}.store-admin-card>header p{color:#8793a4;margin:3px 0 0;font-size:11px}.store-refresh-button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dce3eb;border-radius:9px;min-height:36px;padding:7px 12px;font:700 12px/1.2 Noto Sans TC,sans-serif}.store-refresh-button:hover{background:#f8fafc}.store-admin-table-wrap{overflow-x:auto}.store-admin-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:980px}.store-admin-table th{color:#718096;letter-spacing:.03em;text-align:left;background:#f8fafc;padding:11px 16px;font-size:11px;font-weight:800}.store-admin-table td{color:#526174;vertical-align:middle;border-top:1px solid #edf0f4;padding:15px 16px;font-size:13px}.store-admin-table td strong{color:#1e293b;font-weight:700}.store-admin-table .is-right{text-align:right}.store-status-badge,.account-role-badge,.account-security-label{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.store-status-badge.is-active{color:#047857;background:#ecfdf5}.store-status-badge.is-active i{background:#10b981;border-radius:50%;width:6px;height:6px}.store-status-badge.is-neutral{color:#64748b;background:#f1f5f9}.store-device-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.store-device-badge.is-online{color:#047857;background:#ecfdf5}.store-device-badge.is-offline{color:#b91c1c;background:#fef2f2}.store-device-badge.is-partial{color:#b45309;background:#fffbeb}.store-device-badge.is-neutral{color:#64748b;background:#f1f5f9}.account-name-edit{align-items:center;gap:6px;min-width:0;display:flex}.account-name-edit input{box-sizing:border-box;color:#172033;background:#f8fafc;border:1px solid #d7e0ea;border-radius:8px;flex:1;min-width:0;height:34px;padding:0 10px;font:500 13px/1 Noto Sans TC,sans-serif}.account-name-edit input:focus{background:#fff;border-color:#64748b;outline:none}.account-role-badge.is-hq{color:#7e22ce;background:#faf5ff}.account-role-badge.is-manager{color:#1d4ed8;background:#eff6ff}.account-security-label{color:#64748b;background:#f1f5f9}.account-reset-button{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #dbe4ef;border-radius:8px;padding:7px 10px;font:700 12px/1.2 Noto Sans TC,sans-serif}.account-reset-button:hover{background:#eff6ff;border-color:#93c5fd}.account-reset-button:disabled{opacity:.5;cursor:not-allowed}.system-settings-header,.settings-workspace{background:#fff;border:1px solid #e3e7ed;border-radius:16px;box-shadow:0 2px 7px #0f172a0f}.system-settings-header{padding:14px 22px}.system-settings-title-row{align-items:center;gap:14px;display:flex}.system-settings-title-row>div{min-width:0}.system-settings-eyebrow{color:#64748b;letter-spacing:.09em;margin-bottom:2px;font-size:12px;font-weight:800;display:block}.system-settings-title-row h1{align-items:center;gap:8px;margin:0;font-family:Noto Serif TC,serif;font-size:clamp(24px,2vw,32px);line-height:1.25;display:flex}.system-settings-title-row p{color:#687386;margin:4px 0 0;font-size:14px}.settings-back-button,.settings-help-button{color:#334155;cursor:pointer;background:#fff;border:1px solid #dce3eb;border-radius:10px;flex:none;place-items:center;width:42px;height:42px;font:700 22px/1 Noto Sans TC,sans-serif;display:grid}.settings-help-button{color:#2563eb;border-radius:50%;width:36px;height:36px;margin-left:2px;font-size:16px}.settings-back-button:hover,.settings-help-button:hover{background:#f8fafc;border-color:#b9c5d3}.system-settings-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.system-settings-actions button,.settings-footer-actions button{color:#475569;cursor:pointer;background:#fff;border:1px solid #dce3eb;border-radius:9px;min-height:38px;padding:8px 14px;font:700 13px/1.2 Noto Sans TC,sans-serif}.system-settings-actions button:hover,.settings-footer-actions button:hover{background:#f8fafc}.system-settings-actions button.is-primary,.settings-footer-actions button.is-primary{color:#fff;background:#172033;border-color:#172033}.system-settings-actions button.is-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.system-settings-actions button.is-danger:hover{background:#fee2e2}.system-settings-actions button:disabled,.settings-footer-actions button:disabled{opacity:.45;cursor:not-allowed}.settings-dirty-indicator{color:#b45309;margin-right:auto;font-size:12px;font-weight:700}.settings-updated-note{color:#94a3b8;text-align:right;margin:8px 0 0;font-size:11px}.settings-notice{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin:12px 0;padding:10px 14px;font-size:13px;font-weight:600}.settings-notice.is-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.settings-account-profile{background:#f8fafc;border:1px solid #eef1f5;border-radius:12px;align-items:center;gap:14px;margin-bottom:22px;padding:16px 18px;display:flex}.settings-account-avatar{color:#fff;background:#92400e;border-radius:50%;place-items:center;width:48px;height:48px;font-size:18px;font-weight:800;display:grid}.settings-account-profile strong,.settings-account-profile small{display:block}.settings-account-profile strong{color:#172033;font-size:16px}.settings-account-profile small{color:#64748b;margin-top:3px;font-size:13px}.settings-account-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;display:grid}.settings-account-form .system-settings-actions{grid-column:1/-1;margin-top:0}.settings-workspace{margin-top:14px;overflow:hidden}.settings-tabs{background:#f8fafc;border-bottom:1px solid #e3e7ed;flex-wrap:wrap;gap:6px;padding:10px;display:flex}.settings-tabs button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;min-height:38px;padding:8px 15px;font:700 14px/1.2 Noto Sans TC,sans-serif;display:inline-flex}.settings-tabs button:hover{background:#edf1f5}.settings-tabs button.is-active{color:#fff;background:#172033;box-shadow:0 2px 5px #0f172a29}.settings-tabs button span{font-size:17px}.settings-content{min-height:410px;padding:22px}.settings-section-heading{border-bottom:1px solid #eef1f5;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding-bottom:14px;display:flex}.settings-section-heading h2{margin:0;font-size:21px}.settings-section-heading p{color:#7c8798;margin:5px 0 0;font-size:13px}.settings-section-heading>span{color:#cbd5e1;letter-spacing:.12em;font-size:12px;font-weight:800}.settings-field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 20px;display:grid}.settings-field{min-width:0;display:block}.settings-field>span{color:#334155;margin-bottom:7px;font-size:13px;font-weight:700;display:block}.settings-field input,.settings-field select{box-sizing:border-box;color:#172033;background:#f8fafc;border:1px solid #d7e0ea;border-radius:9px;outline:none;width:100%;height:44px;padding:0 12px;font:500 15px/1 Noto Sans TC,sans-serif}.settings-field input:focus,.settings-field select:focus{background:#fff;border-color:#64748b;box-shadow:0 0 0 3px #64748b1f}.settings-field small{color:#8793a4;margin-top:5px;font-size:10px;line-height:1.45;display:block}.settings-compliance-note{color:#854d0e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin:-5px 0 18px;padding:11px 13px;font-size:12px}.settings-compliance-note strong{margin-right:6px}.settings-footer-actions{background:#f8fafc;border-top:1px solid #e3e7ed;justify-content:flex-end;gap:9px;padding:13px 22px;display:flex}@media (max-width:1100px){.settings-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.system-settings-header{padding:14px 16px}.system-settings-title-row{align-items:flex-start}.settings-help-button{display:none}.system-settings-actions{justify-content:flex-start}.settings-dirty-indicator{flex-basis:100%}.settings-content{padding:16px}.settings-field-grid,.settings-account-form{grid-template-columns:1fr}.store-admin-card>header{flex-direction:column;align-items:flex-start}}.v2-page{color:#172033;flex-direction:column;gap:14px;display:flex}.v2-card{background:#fff;border:1px solid #dce3ea;border-radius:13px;padding:16px 18px 20px;box-shadow:0 2px 5px #0f172a14}.v2-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.v2-card-header h2{margin:0 0 4px;font:800 18px Noto Serif TC,serif}.v2-card-header p,.v2-muted{color:#667085;margin:0;font-size:13px}.v2-inline-form{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.v2-inline-form input,.v2-inline-form select,.v2-form-grid input,.v2-form-grid select{background:#fff;border:1px solid #d4dce6;border-radius:8px;min-height:38px;padding:6px 10px;font:600 13px Noto Sans TC,sans-serif}.v2-inline-form button,.v2-header-actions button,.v2-header-actions select,.v2-header-actions input[type=month]{color:#344054;cursor:pointer;background:#fff;border:1px solid #dce4ed;border-radius:9px;min-height:38px;padding:8px 14px;font:700 13px Noto Sans TC,sans-serif}.v2-inline-form button:disabled{opacity:.4;cursor:not-allowed}.v2-inline-form button.is-primary,.v2-header-actions button.is-primary,.v2-header-actions .is-primary{color:#fff;background:#172033;border-color:#172033}.v2-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.v2-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.v2-dl{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;margin:8px 0 0;display:grid}.v2-dl div{background:#f8fafc;border:1px solid #edf1f5;border-radius:10px;padding:10px 12px}.v2-dl dt{color:#667085;font-size:12px}.v2-dl dd{margin:4px 0 0;font:700 16px JetBrains Mono,monospace}.settings-section-switch{flex-wrap:wrap}.operations-dashboard.v2-page{padding:0}.leave-page{flex:1;gap:10px;min-height:0;overflow:hidden}.leave-page .employee-hero{flex:none}.leave-layout{flex:1;grid-template-columns:minmax(248px,280px) minmax(0,1fr);align-items:stretch;gap:16px;min-height:0;display:grid}.leave-rail{background:#fff;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.leave-picker{flex:auto;min-height:0;overflow:auto}.leave-picker-title{z-index:1;letter-spacing:.04em;text-transform:uppercase;color:#667085;background:#fff;border-bottom:1px solid #edf1f5;padding:10px 14px;font-size:12px;font-weight:800;position:sticky;top:0}.leave-picker button{text-align:left;cursor:pointer;background:0 0;border-top:0;border-bottom:1px solid #edf1f5;border-left:3px solid #0000;border-right:0;width:100%;padding:9px 14px;display:block}.leave-picker button strong{color:#1f2937;font:700 14px Noto Sans TC,sans-serif;display:block}.leave-picker button span{color:#8a7d70;margin-top:3px;font-size:12px;display:block}.leave-picker button.is-selected{background:#fffbeb;border-left-color:#f59e0b}.leave-picker button.is-selected strong{color:#92400e}.leave-picker-summary{color:#667085;background:#fafbfc;border-top:1px solid #edf1f5;padding:10px 14px 12px;font-size:12px;line-height:1.6}.leave-picker-summary p{margin:0}.leave-sheet-stage{background:#f7f4ee;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;align-items:stretch;min-width:0;min-height:0;padding:18px 20px 24px;display:flex;overflow:auto}.leave-sheet{box-sizing:border-box;color:#111;background:#fff;border:1px solid #e5e0d8;flex-direction:column;flex:1 0 auto;width:100%;min-width:0;margin:0;padding:28px 32px 32px;display:flex;box-shadow:0 2px 8px #0f172a14}.leave-sheet>header{margin-bottom:22px}.leave-sheet>header h1,.leave-sheet>header h2{text-align:center;margin:0;font-family:Noto Serif TC,PMingLiU,serif}.leave-sheet>header h1{font-size:26px;font-weight:800}.leave-sheet>header h2{color:#3f4b5e;margin-top:6px;font-size:16px;font-weight:700}.leave-kpis{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.leave-kpis span{color:#667085;background:#faf8f4;border:1px solid #e8e2d8;border-radius:999px;align-items:baseline;gap:4px;padding:6px 12px;font-size:12px;display:inline-flex}.leave-kpis b{color:#172033;font:800 15px JetBrains Mono,Noto Sans TC,sans-serif}.leave-blank{color:#8a7d70;text-align:center;margin:auto 0;padding:48px 12px}.leave-depts{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px 36px;display:grid}.leave-depts.is-single{grid-template-columns:minmax(0,520px);justify-content:center}.leave-depts h3{border-bottom:2px solid #172033;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 10px;padding-bottom:8px;font:800 16px Noto Serif TC,PMingLiU,serif;display:flex}.leave-depts h3 em{color:#8a7d70;font:600 12px Noto Sans TC,sans-serif}.leave-depts table{border-collapse:collapse;table-layout:fixed;width:100%}.leave-depts th,.leave-depts td{vertical-align:middle;border-bottom:1px solid #ece7df;padding:9px 10px}.leave-depts th{color:#667085;letter-spacing:.04em;text-align:center;background:#f7f4ee;font:700 12px Noto Sans TC,sans-serif}.leave-depts th:first-child,.leave-depts td:first-child{text-align:left;width:42%;padding-left:12px}.leave-depts td:not(:first-child),.leave-depts th:not(:first-child){text-align:center;width:19.33%;font:600 14px JetBrains Mono,Noto Sans TC,sans-serif}.leave-depts td:first-child strong{color:#172033;font:700 14px Noto Sans TC,sans-serif;display:block}.leave-depts td:first-child small{color:#8a7d70;margin-top:2px;font-size:11px;display:block}.leave-depts th.is-al,.leave-depts td.is-al{background:#e8f0fa}.leave-depts td.is-neg{color:#dc2626}.leave-depts table.is-bank{table-layout:auto}.leave-depts table.is-bank th:first-child,.leave-depts table.is-bank td:first-child{width:16%;min-width:72px}.leave-depts table.is-bank th:not(:first-child),.leave-depts table.is-bank td:not(:first-child){width:auto;min-width:48px;padding:8px 4px;font-size:12px}@media (max-width:1100px){.leave-depts{grid-template-columns:1fr}.leave-depts.is-single{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){.leave-page{overflow:auto}.leave-layout{grid-template-columns:1fr;overflow:visible}.leave-rail{max-height:280px}}.payslip-page{flex:1;gap:10px;min-height:0;overflow:hidden}.payslip-page .employee-hero{flex:none}.payslip-layout{flex:1;grid-template-columns:minmax(248px,280px) minmax(0,1fr);align-items:stretch;gap:16px;min-height:0;display:grid}.payslip-sheet-stage{background:#f7f4ee;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;align-items:center;min-width:0;min-height:0;padding:18px 20px 24px;display:flex;overflow:auto}.payslip-card{box-sizing:border-box;background:#fff;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;flex:1 0 auto;width:min(760px,100%);padding:34px 40px;display:flex;box-shadow:0 2px 5px #0f172a17}.payslip-card>header{text-align:center;border-bottom:2px solid #dce3ea;margin-bottom:22px;padding-bottom:18px}.payslip-card>header h2{margin:0;font:700 22px Noto Serif TC,serif}.payslip-card>header p{color:#4b5563;margin:6px 0 0;font-size:17px}.payslip-grid{grid-template-columns:minmax(0,1fr) 210px;gap:22px 24px;width:min(680px,100%);margin:0 auto;padding-left:12px;display:grid}.payslip-row{border-bottom:1px solid #edf1f5;justify-content:space-between;align-items:baseline;gap:20px;padding:8px 0;display:flex}.payslip-row span{color:#667085;flex:0 0 7.8em}.payslip-row-value{flex-direction:column;flex:1;align-items:flex-end;gap:2px;min-width:0;display:flex}.payslip-row strong{text-align:right;min-width:0}.payslip-note{color:#b91c1c;text-align:right;font-size:11.5px;font-style:normal;line-height:1.35}.payslip-row.is-mono strong{font-family:JetBrains Mono,monospace}.payslip-row.is-bold strong{font-weight:800}.payslip-row.is-large strong{font-size:20px}.payslip-row.is-green strong{color:#047857;background:#ecfdf5;border-radius:6px;padding:2px 10px}.payslip-row.is-red strong{color:#b91c1c}.payslip-grid aside{background:#f9fafb;border:1px solid #dce3ea;border-radius:10px;padding:14px 16px}.payslip-grid aside h3{color:#667085;margin:0 0 12px;font-size:12px}.payslip-mini{justify-content:space-between;margin-bottom:8px;font-size:13.5px;display:flex}.payslip-mini b{font-family:JetBrains Mono,monospace}.payslip-grid aside .payslip-note{text-align:left;margin:0 0 10px}.payslip-card>footer{border-top:1px solid #dce3ea;justify-content:space-between;align-items:flex-end;width:min(620px,100%);margin:auto auto 0;padding:24px 0 0 12px;display:flex}.payslip-picker{background:#fff;border:1px solid #dce3ea;border-radius:12px;min-width:0;min-height:0;overflow:auto}.payslip-picker-tabs{border-bottom:1px solid #edf1f5;display:flex}.payslip-picker-tabs button{color:#667085;border-bottom:0;border-left:0;flex:1;justify-content:center;padding:10px 8px;font:700 13px Noto Sans TC,sans-serif}.payslip-picker-tabs button.is-active{color:#111827;background:#f8fafc;box-shadow:inset 0 -2px #111827}.payslip-sheet-hint{color:#8a7d70;text-align:center;margin:0 0 10px;font-size:12px}.payslip-picker-title,.payslip-dept{letter-spacing:.04em;text-transform:uppercase;color:#667085;border-bottom:1px solid #edf1f5;padding:10px 14px;font-size:12px;font-weight:800}.payslip-dept{color:#1e40af;background:#f8fafc}.payslip-picker button{text-align:left;color:#4b5563;cursor:pointer;background:0 0;border-top:0;border-bottom:1px solid #edf1f5;border-left:3px solid #0000;border-right:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 16px;font:600 15px Noto Sans TC,sans-serif;display:flex}.payslip-picker button span{color:#6b7280;background:#f3f4f6;border-radius:999px;flex:none;padding:1px 6px;font:700 11px Noto Sans TC,sans-serif}.payslip-empty{color:#8a7d70;margin:0;padding:16px;font-size:13px}.payslip-picker button.is-selected{color:#92400e;background:#fffbeb;border-left-color:#f59e0b;font-weight:800}.payslip-card>footer i{border-bottom:1.5px solid #94a3b8;width:200px;margin-top:26px;display:block}.sidebar-month-select{position:relative}.sidebar-month-trigger{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%239E8E7C' d='M1.4 1.2 6 5.8 10.6 1.2'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px!important}.sidebar-month-menu{z-index:40;background:#f9fafb;border:1px solid #e5e0d8;border-radius:7px;max-height:168px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden auto;box-shadow:0 8px 20px #0f172a1a}.sidebar-month-menu button{color:#111827;text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f0ebe3;width:100%;padding:8px 10px;font-family:Noto Sans TC,sans-serif;font-size:15px;display:block}.sidebar-month-menu button:last-child{border-bottom:none}.sidebar-month-menu button.is-selected{color:#92400e;background:#fef3e2;font-weight:700}.sidebar-month-menu button:hover:not(.is-selected){background:#fff7ed}.typhoon-dialog{background:#fff;border-radius:16px;width:min(420px,100vw - 32px);padding:18px 20px 16px;box-shadow:0 18px 40px #0f172a2e}.typhoon-dialog-hint{color:#64748b;margin:8px 0 14px;font-size:13px;line-height:1.5}.typhoon-date-add{color:#334155;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.typhoon-date-add input{background:#f8fafc;border:1px solid #d7e0ea;border-radius:8px;flex:1;height:38px;padding:0 10px}.typhoon-cal-weekdays,.typhoon-cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.typhoon-cal-weekdays{color:#94a3b8;text-align:center;margin-bottom:8px;font-size:12px;font-weight:700}.typhoon-cal-grid button,.typhoon-cal-grid span{color:#172033;cursor:pointer;background:#f8fafc;border:1px solid #0000;border-radius:8px;height:36px;font:700 14px Noto Sans TC,sans-serif}.typhoon-cal-grid span{cursor:default;background:0 0}.typhoon-cal-grid button.is-selected{color:#6d28d9;background:#f3e8ff;border-color:#7c3aed}.typhoon-other{color:#64748b;margin-top:14px;font-size:12px;font-weight:700}.typhoon-other>div{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.typhoon-other button{color:#6d28d9;cursor:pointer;background:#faf5ff;border:1px solid #e9d5ff;border-radius:999px;padding:4px 10px;font-size:12px}.typhoon-dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.typhoon-dialog-actions button{color:#344054;cursor:pointer;background:#fff;border:1px solid #dce4ed;border-radius:9px;min-height:38px;padding:8px 14px;font:700 13px Noto Sans TC,sans-serif}.typhoon-dialog-actions button.is-primary{color:#fff;background:#172033;border-color:#172033}.typhoon-dialog-actions button:disabled{opacity:.45;cursor:not-allowed}.bonus-page{flex:1;gap:10px;min-height:0;overflow:hidden}.bonus-page .employee-hero{flex:none}.bonus-layout{flex:1;grid-template-columns:minmax(248px,280px) minmax(0,1fr);align-items:stretch;gap:16px;min-height:0;display:grid}.bonus-rail{background:#fff;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.bonus-picker,.bonus-attendance{background:0 0;border:0;border-radius:0;overflow:auto}.bonus-picker{flex:auto;min-height:0;max-height:none}.bonus-picker-title{z-index:1;letter-spacing:.04em;text-transform:uppercase;color:#667085;background:#fff;border-bottom:1px solid #edf1f5;padding:10px 14px;font-size:12px;font-weight:800;position:sticky;top:0}.bonus-picker button{text-align:left;cursor:pointer;background:0 0;border-top:0;border-bottom:1px solid #edf1f5;border-left:3px solid #0000;border-right:0;width:100%;padding:9px 14px;display:block}.bonus-picker button strong{color:#1f2937;font:700 14px Noto Sans TC,sans-serif;display:block}.bonus-picker button span{color:#8a7d70;margin-top:3px;font-size:12px;display:block}.bonus-picker button.is-selected{background:#fffbeb;border-left-color:#f59e0b}.bonus-picker button.is-selected strong{color:#92400e}.bonus-picker-summary{color:#667085;background:#fafbfc;border-top:1px solid #edf1f5;padding:10px 14px 12px;font-size:12px;line-height:1.6}.bonus-picker-summary p{margin:0}.bonus-attendance-hint,.bonus-attendance-empty{color:#8a7d70;margin:0;padding:6px 14px 8px;font-size:12px}.bonus-attendance-hint{z-index:1;background:#fafbfc;border-bottom:1px solid #edf1f5;position:sticky;top:37px}.bonus-attendance-row{border-bottom:1px solid #edf1f5;padding:8px 14px 9px}.bonus-attendance-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bonus-attendance-row strong{text-overflow:ellipsis;white-space:nowrap;color:#1f2937;min-width:0;font:700 13px Noto Sans TC,sans-serif;overflow:hidden}.bonus-attendance-head span{color:#667085;flex:none;font:600 11px JetBrains Mono,Noto Sans TC,sans-serif}.bonus-attendance-bar{background:#edf1f5;border-radius:99px;height:5px;margin-top:5px;overflow:hidden}.bonus-attendance-bar span{background:#16a34a;border-radius:99px;height:100%;margin:0;display:block}.bonus-attendance-bar.is-mid span{background:#d97706}.bonus-attendance-bar.is-low span{background:#dc2626}@media (max-width:900px){.bonus-page{overflow:auto}.bonus-layout{grid-template-columns:1fr;overflow:visible}.bonus-rail,.bonus-picker{max-height:none}.bonus-attendance{max-height:280px}.bonus-sheet-stage{min-height:0}}.bonus-sheet-stage{background:#f7f4ee;border:1px solid #dce3ea;border-radius:12px;flex-direction:column;align-items:center;min-width:0;min-height:0;padding:18px 20px 24px;display:flex;overflow:auto}.bonus-sheet{box-sizing:border-box;color:#111;background:#fff;border:1px solid #e5e0d8;flex-direction:column;flex:1 0 auto;width:min(760px,100%);min-width:0;margin:0;padding:32px 28px 36px;display:flex;box-shadow:0 2px 8px #0f172a14}.bonus-sheet.is-editing{width:min(860px,100%);padding-right:18px}.bonus-sheet header{text-align:center;margin-bottom:22px}.bonus-sheet header h1,.bonus-sheet header h2{margin:0 0 8px;font:700 22px/1.45 Noto Serif TC,PMingLiU,serif}.bonus-sheet header h2{font-size:20px}.bonus-note{text-align:center;color:#111;background:0 0;border:none;width:100%;font:700 16px/1.5 Noto Serif TC,PMingLiU,serif;display:block}.bonus-note:focus{outline:none;box-shadow:inset 0 -1px #111}p.bonus-note{margin:0}.bonus-line{align-items:stretch;gap:10px;display:flex}.bonus-line-cells{flex:1;grid-template-columns:38% 32% 30%;min-width:0;display:grid}.bonus-line-cells>*{color:#111;border:1px solid #111;padding:7px 12px;font:500 16px/1.4 Noto Serif TC,PMingLiU,serif}.bonus-line+.bonus-line .bonus-line-cells>*{border-top:none}.bonus-line.is-head .bonus-line-cells>*{text-align:center;font-weight:700}.bonus-line-cells>:nth-child(2),.bonus-line-cells>:nth-child(3){text-align:center}.bonus-line-cells>.is-empty{text-align:center;color:#6b5f52;grid-column:1/-1;font-family:Noto Sans TC,sans-serif}.bonus-remove,.bonus-remove-slot{flex:0 0 52px;align-self:center;width:52px}.bonus-remove{color:#dc2626;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;height:28px;padding:0;font:700 12px Noto Sans TC,sans-serif}.bonus-remove:hover{background:#fee2e2}.bonus-name{text-align:left;color:#111;background:0 0;border:none;width:100%;font:500 16px/1.4 Noto Serif TC,PMingLiU,serif}.bonus-name:focus,.bonus-amount:focus{outline:none}.bonus-add-wrap{width:calc(100% - 62px);margin-top:10px;position:relative}.bonus-add{color:#15803d;cursor:pointer;background:#f0fdf4;border:1px dashed #16a34a;border-radius:8px;width:100%;min-height:36px;font:700 14px Noto Sans TC,sans-serif}.bonus-add:hover{background:#dcfce7}.bonus-add-menu{z-index:8;background:#fff;border:1px solid #dce3ea;border-radius:10px;max-height:220px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 8px 20px #0f172a1f}.bonus-add-menu p{color:#8a7d70;margin:0;padding:12px 14px;font-size:13px}.bonus-add-menu button{text-align:left;color:#1f2937;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #edf1f5;width:100%;padding:9px 14px;font:600 14px Noto Sans TC,sans-serif;display:block}.bonus-add-menu button:hover{background:#f0fdf4}.bonus-amount{text-align:center;color:#111;background:0 0;border:none;width:100%;font:500 16px/1.4 Noto Serif TC,PMingLiU,serif}.bonus-sign{cursor:pointer;color:#111;background:0 0;border:none;width:100%;min-height:28px;font:700 16px Noto Sans TC,sans-serif;display:block}.bonus-sign:disabled{cursor:default}.bonus-sheet footer{grid-template-columns:38% 32% 30%;align-items:start;width:100%;margin-top:auto;padding-top:16px;font:700 16px/1.4 Noto Serif TC,PMingLiU,serif;display:grid}.bonus-sheet.is-editing footer{width:calc(100% - 62px)}.bonus-sheet footer strong{text-align:center}.payroll-print-title{display:none}@media print{.bonus-rail,.bonus-picker,.bonus-attendance,.leave-rail,.payslip-picker,.payslip-sheet-hint,.settings-notice,.logout-confirm-backdrop{display:none!important}body:has(.payroll-fit) .ui-v2>aside{display:none!important}body:has(.payslip-page) .ui-v2>aside{display:none!important}body:has(.bonus-page) .ui-v2>aside{display:none!important}body:has(.leave-page) .ui-v2>aside{display:none!important}body:has(.bonus-page) .bonus-page .employee-hero{display:none!important}body:has(.leave-page) .leave-page .employee-hero{display:none!important}body:has(.payroll-fit) .v2-page .employee-hero{display:none!important}body:has(.payslip-page) .v2-page .employee-hero{display:none!important}.bonus-page,.payslip-page,.leave-page{height:auto!important;overflow:visible!important}.bonus-layout,.payslip-layout,.leave-layout{display:block}.bonus-sheet-stage,.payslip-sheet-stage,.leave-sheet-stage{background:0 0;border:none;padding:0;display:block;overflow:visible}body:has(.payroll-fit) .ui-v2{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.payslip-page) .ui-v2{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.bonus-page) .ui-v2{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.leave-page) .ui-v2{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.payroll-fit) .ui-v2 main{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.payslip-page) .ui-v2 main{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.bonus-page) .ui-v2 main{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}body:has(.leave-page) .ui-v2 main{background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}.bonus-sheet,.payslip-card,.leave-sheet{width:100%;max-width:none;box-shadow:none;border:none;margin:0;padding:18px 28px}.payslip-grid{grid-template-columns:minmax(0,1fr) 32%!important;width:100%!important;max-width:none!important;display:grid!important}.payslip-side{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:block!important}.leave-depts{break-inside:avoid}.bonus-sign-mark{visibility:hidden}.bonus-remove,.bonus-remove-slot,.bonus-add-wrap,.branch-page-header,.payroll-screen-only,.payroll-loading-overlay{display:none!important}body:has(.payroll-fit) .app-sidebar{display:none!important}body:has(.payslip-page) .app-sidebar{display:none!important}body:has(.bonus-page) .app-sidebar{display:none!important}body:has(.leave-page) .app-sidebar{display:none!important}.payroll-print-title{color:#111;margin:0 0 10px;font:700 18px/1.3 Noto Serif TC,serif;display:block!important}.payroll-fit,.payroll-fit-body,.payroll-fit-table,.payroll-table-scroll{background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}body:has(.payroll-fit) .app-shell{background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}body:has(.payroll-fit) .app-main{background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}.payroll-fit-table{box-shadow:none!important;border:none!important}.payroll-table,.payroll-table th,.payroll-table td,.payroll-table .sticky-col-pos,.payroll-table .sticky-col-name{width:auto!important;min-width:0!important;max-width:none!important;position:static!important;left:auto!important}.payroll-fit-body{width:100%!important}.payroll-table{table-layout:fixed;font-size:11px;width:100%!important;min-width:0!important}.payroll-table th{line-height:1.2;white-space:normal!important;padding:3px 2px!important;font-size:10px!important}.payroll-table td{line-height:1.2;overflow:hidden;white-space:nowrap!important;padding:2px!important;font-size:11px!important}.payroll-table td:nth-child(17),.payroll-table td:nth-child(18){word-break:break-all;white-space:normal!important}.payroll-table input,.payroll-table button{color:inherit;font:inherit;background:0 0;border:0}@page{size:A4 landscape;margin:6mm}.bonus-sheet,.bonus-sheet.is-editing,.bonus-sheet footer{width:100%}.bonus-note:focus{box-shadow:none}}.set-page{color:#4b4035;width:min(920px,100%);margin:0 auto;padding-bottom:48px}.set-panel{margin-top:4px}.set-head h1{color:#92400e;margin:0;font-family:Noto Serif TC,serif;font-size:clamp(26px,3vw,34px)}.set-head p{color:#9e8e7c;margin:6px 0 0;font-size:14px}.set-tabs{border-bottom:1px solid #e5e0d8;gap:4px;margin:18px 0 0;display:flex}.set-tabs button{color:#9e8e7c;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px 12px;font:700 14px/1.2 Noto Sans TC,sans-serif}.set-tabs button.is-on{color:#92400e;border-bottom-color:#d97706}.set-profile{align-items:center;gap:16px;padding:22px 0 8px;display:flex}.set-profile>.sidebar-account-avatar{color:#92400e;font-size:inherit;margin:0;display:grid}.set-profile strong,.set-profile>div span,.set-profile>div em{display:block}.set-profile strong{font-size:18px}.set-profile>div span{color:#6b5d4e;margin-top:3px;font-size:13px}.set-profile em{color:#b45309;margin-top:4px;font-size:12px;font-style:normal;font-weight:700}.set-avatar{color:#92400e;background:#fef3e2;border:2px solid #d97706;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:grid}.set-avatar.is-sm{width:38px;height:38px;font-size:14px}.set-section{margin-top:28px}.set-section-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:4px;display:flex}.set-section h2{margin:0;font-size:15px}.set-section p{color:#9e8e7c;margin:4px 0 0;font-size:13px}.set-device-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:12px;display:grid}.set-device-card{background:#fff;border:1px solid #efe8de;border-radius:14px;padding:14px 16px 12px}.set-device-card header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.set-device-card header strong{font-size:15px}.set-device-card header span,.set-device-card em{align-items:center;gap:6px;font-size:11px;font-style:normal;font-weight:800;display:inline-flex}.set-device-card header span i{background:currentColor;border-radius:50%;width:8px;height:8px}.set-device-card header span.is-on,.set-device-card em.is-on{color:#047857}.set-device-card header span.is-mid{color:#b45309}.set-device-card header span.is-off,.set-device-card em.is-off{color:#9e8e7c}.set-device-card header span.is-wait,.set-device-card em.is-wait{color:#b45309}.set-device-card ul{margin:0;padding:0;list-style:none}.set-device-card li{border-top:1px solid #efe8de;justify-content:space-between;align-items:center;gap:8px;padding:8px 0 2px;display:flex}.set-device-card li b{font-size:13px;font-weight:600}.set-device-card .set-empty{margin:8px 0 0}.set-list{border-top:1px solid #efe8de}.set-row,.set-person{border-bottom:1px solid #efe8de;grid-template-columns:128px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:56px;padding:12px 0;display:grid}.set-row.is-open{align-items:start;padding:14px 0 16px}.set-row-label{color:#6b5d4e;font-size:13px;font-weight:700}.set-row-value{min-width:0;font-size:14px}.set-muted{color:#9e8e7c}.set-status{align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.set-status i{background:currentColor;border-radius:50%;width:8px;height:8px}.set-status.is-on{color:#047857}.set-status.is-off{color:#9e8e7c}.set-person{grid-template-columns:auto minmax(0,1fr) auto}.set-person-copy strong,.set-person-copy span,.set-person-copy small{display:block}.set-person-copy strong{align-items:center;gap:8px;font-size:14px;display:flex}.set-person-copy strong em{color:#92400e;background:#fef3e2;border-radius:999px;padding:1px 6px;font-size:11px;font-style:normal;font-weight:800}.set-person-copy span{color:#6b5d4e;margin-top:2px;font-size:13px}.set-person-copy small{color:#9e8e7c;margin-top:3px;font-size:12px}.set-inline{flex-wrap:wrap;grid-column:2/-1;gap:8px;display:flex}.set-pass{grid-column:2/-1;gap:12px;display:grid}.set-pass label,.set-form label,.set-confirm-email{gap:6px;display:grid}.set-pass label span,.set-form label span,.set-confirm-email span{font-size:12px;font-weight:700}.set-inline input,.set-pass input,.set-form input,.set-form select,.set-form textarea,.set-confirm-email input{box-sizing:border-box;color:#4b4035;background:#fff;border:1px solid #e5e0d8;border-radius:10px;min-width:0;height:40px;padding:0 12px;font:500 14px/1 Noto Sans TC,sans-serif}.set-inline input{flex:180px}.set-form textarea{resize:vertical;height:auto;min-height:96px;padding:10px 12px;line-height:1.5}.digest-form{gap:14px;margin-top:16px;display:grid}.digest-dialog .set-dialog-actions{flex-wrap:wrap}.digest-form fieldset{border:0;margin:0;padding:0}.digest-form legend{color:#6b5d4e;margin-bottom:8px;font-size:12px;font-weight:700}.digest-status{color:#6b5d4e;margin:0;font-size:13px;line-height:1.6}.set-primary,.set-ghost,.set-danger,.set-text,.set-more{cursor:pointer;font-family:Noto Sans TC,sans-serif}.set-primary,.set-ghost,.set-danger{border-radius:10px;height:40px;padding:0 14px;font-size:13px;font-weight:700}.set-primary{color:#fff;background:#92400e;border:0}.set-ghost{color:#6b5d4e;background:#fff;border:1px solid #e5e0d8}.set-danger{color:#fff;background:#b91c1c;border:0}.set-text{color:#92400e;background:0 0;border:0;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700}.set-empty{color:#9e8e7c;align-items:center;gap:10px;margin:12px 0 0;font-size:13px;display:flex}.set-more{color:#6b5d4e;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:18px;line-height:1}.set-more:hover,.set-text:hover{background:#fef3e2}.set-menu-wrap{position:relative}.set-menu{z-index:20;background:#fff;border:1px solid #e5e0d8;border-radius:12px;min-width:148px;padding:6px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 12px 32px #3d30201f}.set-menu button{color:#4b4035;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:8px 10px;font:700 13px/1.3 Noto Sans TC,sans-serif;display:block}.set-menu button:hover{background:#fef3e2}.set-menu button.is-danger{color:#b91c1c}.set-menu button:disabled{color:#c4b8aa;cursor:not-allowed}.set-dialog-backdrop{z-index:90;background:#3d302061;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.set-dialog{background:#fff;border-radius:16px;width:min(440px,100%);padding:22px 22px 18px;box-shadow:0 24px 60px #3d302038}.set-dialog header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.set-dialog h2{color:#92400e;margin:0;font-family:Noto Serif TC,serif;font-size:22px}.set-dialog header>button{color:#9e8e7c;cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1}.set-dialog-body,.set-form{gap:12px;margin-top:14px;display:grid}.set-dialog-body p,.set-form p{color:#6b5d4e;margin:0;font-size:14px;line-height:1.6}.set-store-access-list{gap:8px;display:grid}.set-form label.set-store-check{cursor:pointer;background:#fff;border:1px solid #e5e0d8;border-radius:10px;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 12px;display:flex}.set-form label.set-store-check input{accent-color:#92400e;border:0;border-radius:4px;flex:none;width:18px;height:18px;margin:0;padding:0}.set-form label.set-store-check span{color:#4b4035;font-size:15px;font-weight:700}.set-dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.set-password{color:#4b4035;letter-spacing:.04em;word-break:break-all;background:#faf8f5;border-radius:10px;padding:12px 14px;font:700 16px/1.4 JetBrains Mono,ui-monospace,monospace;display:block}.set-toast{z-index:80;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #3d302029}.set-toast.is-success{color:#047857;background:#ecfdf5}.set-toast.is-error{color:#b91c1c;background:#fef2f2}.set-primary:disabled,.set-ghost:disabled,.set-danger:disabled,.set-text:disabled{opacity:.5;cursor:not-allowed}.app-shell{background:#f2efe9;max-width:100vw;height:100dvh;display:flex;overflow:hidden}.app-sidebar{z-index:20;background:#fff;border-right:1px solid #e5e0d8;flex-direction:column;flex:0 0 220px;width:220px;min-width:220px;display:flex;box-shadow:2px 0 8px #0000000d}.app-main{flex-direction:column;flex:auto;min-width:0;max-width:100%;min-height:0;padding:24px 28px;display:flex;overflow:auto}.app-main.is-padded{padding:14px 28px 24px}.app-main.is-fill{padding:10px 28px 8px;overflow:hidden}.app-main>*,.branch-page-header,.employee-hero,.employee-toolbar,.attendance-header-card,.attendance-management,.v2-card,.v2-card-header,.set-section-head,.set-dialog,.employee-editor,.dashboard-welcome-card,.leave-page,.bonus-page,.payslip-page,.v2-page,.payroll-fit,.payroll-fit-body,.payroll-fit-table{min-width:0;max-width:100%}.branch-page-header-actions,.v2-header-actions,.employee-hero-actions,.employee-toolbar-io,.dashboard-welcome-actions,.attendance-header-tools,.set-section-head,.employee-editor-footer,.schedule-drawer-actions{flex-wrap:nowrap;min-width:0}.branch-page-header-actions,.v2-header-actions,.employee-toolbar-io,.dashboard-welcome-actions,.attendance-header-tools{scrollbar-width:thin;flex-shrink:1;overflow-x:auto}.attendance-heading,.branch-page-header>div:first-child,.employee-hero>div:first-child,.set-section-head>div,.v2-card-header>div{min-width:0}.attendance-heading h2,.attendance-heading p,.branch-page-header h1,.employee-hero h2{text-overflow:ellipsis;overflow:hidden}.employee-editor-footer .employee-save-feedback{overflow-wrap:anywhere;min-width:0}.employee-editor-footer button,.branch-page-header-actions>*,.v2-header-actions>*,.employee-hero-actions>*,.attendance-header-tools>*{flex-shrink:0}.payroll-table-scroll,.employee-directory-table-wrap,.schedule-table-scroll,.store-admin-table-wrap,.attendance-table-scroll,.leave-sheet-stage,.leave-depts,.bonus-layout,.leave-layout{min-width:0;max-width:100%}.set-dialog,.employee-editor,.dashboard-todo-modal,.attendance-sync-dialog,.schedule-preset-modal,.schedule-compliance-modal{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.attendance-management{min-width:0}@media (max-width:1440px){.app-sidebar{flex-basis:188px;width:188px;min-width:188px}.app-main,.app-main.is-padded{padding-left:16px;padding-right:16px}.app-main.is-fill{padding-left:14px;padding-right:14px}.employee-hero,.branch-page-header,.attendance-header-card{gap:12px;padding-left:16px;padding-right:16px}.employee-hero h2,.branch-page-header h1,.attendance-heading h2{font-size:26px}.employee-hero-actions{flex-direction:row;align-items:center;gap:12px}.attendance-header-card{grid-template-columns:auto minmax(0,1fr) auto}.attendance-header-tools{grid-area:auto;justify-content:flex-end}.attendance-management{min-width:0;height:calc(100dvh - 36px);min-height:0}.dashboard-welcome-card{flex-direction:row;align-items:center}.dashboard-welcome-actions{width:auto}.schedule-controls,.branch-page-header,.branch-page-header-actions{flex-direction:row;align-items:center;width:auto}}@media (max-width:1180px){.app-sidebar{flex-basis:168px;width:168px;min-width:168px}.employee-search{flex-basis:180px;width:180px;max-width:180px}.employee-toolbar{flex-wrap:nowrap;overflow-x:auto}.attendance-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.leave-layout,.bonus-layout{grid-template-columns:minmax(200px,230px) minmax(0,1fr)}}@media (max-width:860px){.app-sidebar{flex-basis:156px;width:156px;min-width:156px}.employee-hero,.branch-page-header,.employee-editor-header,.dashboard-welcome-card{flex-direction:column;align-items:stretch}.employee-hero-actions,.branch-page-header-actions,.v2-header-actions,.dashboard-welcome-actions,.attendance-header-tools{justify-content:flex-start;width:100%}.attendance-header-card,.attendance-workspace,.leave-layout,.bonus-layout{grid-template-columns:1fr}.employee-search{flex:160px;width:auto;max-width:none}}@media (max-width:720px){.set-row,.set-person{grid-template-columns:minmax(0,1fr) auto}.set-row-label,.set-inline,.set-pass{grid-column:1/-1}}.change-log-page{flex-direction:column;gap:14px;min-height:0;display:flex}.change-log-tools{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.change-log-mail{color:#92400e;cursor:pointer;background:#fff7ed;border:1px solid #e7d3b8;border-radius:10px;padding:8px 14px;font:700 14px Noto Sans TC,sans-serif}.change-log-mail:hover{background:#ffedd5}.digest-backdrop{z-index:90;background:#0f172a73;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0}.digest-dialog{box-sizing:border-box;background:#fff;border:1px solid #e7e1d8;border-radius:16px;width:min(420px,100%);max-height:min(760px,100vh - 48px);padding:20px 20px 16px;overflow:auto;box-shadow:0 18px 48px #0f172a2e}.digest-dialog header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.digest-dialog h2{margin:0;font:800 22px Noto Serif TC,serif}.digest-dialog header p{color:#64748b;margin:6px 0 0;font-size:13px;font-weight:500}.digest-dialog header button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1}.digest-note{border-radius:10px;margin:14px 0 0;padding:8px 12px;font-size:13px;font-weight:700}.digest-note.is-success{color:#047857;background:#ecfdf5}.digest-note.is-error{color:#b91c1c;background:#fef2f2}.digest-lead{justify-content:space-between;align-items:center;gap:16px;display:flex}.digest-lead strong{color:#292524;font:700 15px Noto Sans TC,sans-serif;display:block}.digest-lead p{color:#78716c;margin:4px 0 0;font-size:13px;line-height:1.5}.digest-switch{cursor:pointer;background:#d6d3d1;border:0;border-radius:999px;flex:none;width:44px;height:26px;padding:3px}.digest-switch i{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;display:block}.digest-switch.is-on{background:#92400e}.digest-switch.is-on i{transform:translate(18px)}.digest-switch:focus-visible,.digest-more-toggle:focus-visible,.digest-chips button:focus-visible{outline-offset:2px;outline:2px solid #92400e}.digest-more-block{gap:10px;display:grid}.digest-more-toggle{color:#57534e;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:0;font:600 13px Noto Sans TC,sans-serif;display:flex}.digest-more-toggle small{color:#92400e;flex:none;font-size:13px;font-weight:700}.digest-more{gap:8px;display:grid}.digest-more p{color:#78716c;margin:4px 0 0;font-size:12px;font-weight:700}.digest-chips{flex-wrap:wrap;gap:8px;display:flex}.digest-chips button{color:#57534e;cursor:pointer;background:#fff;border:1px solid #e7e1d8;border-radius:999px;height:34px;padding:0 12px;font:600 13px Noto Sans TC,sans-serif}.digest-chips button.is-on{color:#92400e;background:#fff7ed;border-color:#92400e}.digest-dialog .set-dialog-actions{justify-content:flex-end}.change-log-tabs{background:#f7f4ee;border:1px solid #e5e0d8;border-radius:10px;padding:4px;display:flex}.change-log-tabs button{color:#6b5f52;cursor:pointer;background:0 0;border:0;border-radius:8px;min-width:96px;padding:8px 14px;font:700 14px Noto Sans TC,sans-serif}.change-log-tabs button.is-active{color:#92400e;background:#fff;box-shadow:0 1px 3px #0f172a14}.change-log-card{background:#fff;border:1px solid #dce3ea;border-radius:15px;min-height:240px;box-shadow:0 2px 5px #0f172a17}.change-log-scroll{overflow:auto}.change-log-table{border-collapse:collapse;width:100%;font-size:14px}.change-log-table th,.change-log-table td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1f5;padding:12px 16px}.change-log-table th{color:#667085;background:#fafaf8;font-size:12px;font-weight:800;position:sticky;top:0}.change-log-table td:nth-child(4){min-width:240px}.change-log-empty,.change-log-error{color:#667085;margin:0;padding:28px 20px}.change-log-error{color:#b91c1c;padding:0;font-weight:700}
