:root{font-family:Inter,"Noto Sans TC",system-ui,sans-serif;color:#22352f;background:#f5f7f6;font-size:16px;letter-spacing:0}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{min-height:42px;border:1px solid transparent;border-radius:6px;padding:9px 16px;background:#087965;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{cursor:wait;opacity:.6}.secondary{background:#fff;color:#344a42;border-color:#cbd6d0}.icon{width:40px;min-width:40px;padding:9px}svg{width:20px;height:20px;flex-shrink:0}header{background:#fff;border-bottom:1px solid #dbe3df;min-height:76px;padding:18px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;gap:10px;align-items:center;color:#164d40;text-decoration:none;font-size:22px;font-weight:750}.brand span{font-size:15px;color:#687970;font-weight:500}.header-right{display:flex;align-items:center;gap:20px}time{font-size:14px;font-variant-numeric:tabular-nums;color:#64736d}main{max-width:1200px;margin:auto;padding:24px 32px 64px}h1{font-size:28px;line-height:1.3;margin:8px 0 12px}h2{font-size:20px;margin:0}p{line-height:1.6}.muted,small{color:#65756e}#notice{margin:0 0 20px;padding:12px 16px;border:1px solid #b8d8cb;background:#edf7f1;border-radius:4px;overflow-wrap:anywhere}#notice:empty{display:none}#notice.error,#form-error{color:#a12e31}#notice.error{background:#fff1f1;border-color:#f0babb}#auth{max-width:440px;margin:38px auto}.auth-heading{margin-bottom:28px}.auth-heading>svg{width:36px;height:36px;color:#0c7965}.auth-heading p{margin-bottom:6px;color:#65756e}label{display:grid;gap:8px;font-size:15px;font-weight:600;margin-bottom:18px}input,select{width:100%;min-width:0;border:1px solid #bdccc4;border-radius:5px;padding:12px;background:#fff;color:#22352f;min-height:46px}input[readonly]{background:#eaf0ec;color:#596c61}input:focus,select:focus{border-color:#0d846b;outline:2px solid #bde3d6}small{font-weight:400;font-size:14px}#auth-submit{width:100%;margin-top:10px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0 18px}.eyebrow{font-size:14px;margin:0;color:#147861;font-weight:600}.zone{font-size:14px;color:#637970;white-space:nowrap}.release-state{display:flex;align-items:flex-start;gap:10px;border-left:3px solid #cd951b;background:#fffae9;padding:12px 16px;margin:0 0 26px;color:#775921}.release-state p{margin:0;font-size:14px}.release-state svg{margin-top:2px}nav{display:flex;gap:20px;border-bottom:1px solid #cbd8d0}nav button{border-radius:0;background:transparent;color:#66756c;padding:14px 10px;border-bottom:3px solid transparent}nav .selected{border-bottom-color:#087965;color:#087965}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 0 18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;background:#fff}th{background:#ecf1ee;color:#576e61;font-size:14px;font-weight:600}td,th{padding:16px;border-bottom:1px solid #dbe4dd;overflow-wrap:anywhere}td{font-size:15px}td:last-child{width:130px;white-space:nowrap}td .icon+button{margin-left:8px}.status{font-size:14px;color:#13775e}.status.off{color:#946932}.empty{text-align:center;padding:48px 20px;border-bottom:1px solid #dbe4dd;color:#68786f}dialog{width:min(540px,calc(100% - 32px));max-height:90dvh;border:1px solid #c9d6cd;border-radius:8px;padding:24px;color:#22352f}dialog::backdrop{background:#14281d70}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #dce4df;padding-top:20px}.checkbox{display:flex;align-items:center;gap:10px}.checkbox input{width:18px;min-height:18px;height:18px;accent-color:#087965}footer{text-align:center;color:#75847b;font-size:13px;padding:24px}[hidden]{display:none!important}@media(max-width:650px){header{padding:14px 18px;flex-wrap:wrap}.brand span{display:none}.header-right{gap:12px}time{font-size:13px}main{padding:18px 16px 40px}h1{font-size:24px}.page-heading{align-items:flex-start;flex-direction:column;gap:0}.zone{margin-bottom:20px}#auth{margin-top:24px}nav{gap:8px}nav button{padding:12px 8px;font-size:14px}td,th{padding:12px}dialog{padding:18px}table{min-width:480px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s ease,opacity .15s ease}}
:root{--management-border:#d2ddd6}.block{display:block;margin-top:6px}#main-nav{flex-wrap:wrap;gap:4px;margin-bottom:12px}#main-nav button{font-size:15px}#main-nav button:disabled{cursor:not-allowed;opacity:.55}.filters{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 20px}.filters label{width:220px;margin:0}.filters input,.filters select{min-height:42px;padding:9px 12px}#management-editor{width:min(740px,calc(100% - 32px))}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}fieldset{border:0;border-top:1px solid var(--management-border);padding:16px 0 4px;margin:0 0 16px;min-width:0}legend{font-size:15px;font-weight:650;padding-right:12px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.check-grid .checkbox{font-weight:400;font-size:14px;overflow-wrap:anywhere}.check-grid input{flex:0 0 18px}#management-error{color:#a12e31}#management-content td{max-width:380px}details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;max-width:480px;max-height:360px;overflow:auto}.attendance-scroll{max-height:650px;overflow:auto;border:1px solid var(--management-border)}.attendance-grid{width:max-content;table-layout:fixed}.attendance-grid th,.attendance-grid td{border:1px solid var(--management-border);padding:0}.attendance-grid thead th{position:sticky;top:0;z-index:3;height:66px;min-width:90px;text-align:center;background:#eaf1ec}.attendance-grid .person-cell{position:sticky;left:0;z-index:2;width:220px;min-width:220px;max-width:220px;padding:16px;background:#fff;text-align:left;white-space:normal}.attendance-grid thead .person-cell{z-index:5;background:#eaf1ec}.attendance-grid .punch-kind{position:sticky;left:220px;z-index:2;background:#f4f7f5;min-width:60px;width:60px;text-align:center;padding:8px;font-size:14px}.attendance-grid thead .punch-kind{z-index:4}.day-cell{min-width:90px;width:90px;height:64px;background:#fff}.day-cell button{border-radius:0;width:100%;height:100%;min-height:64px;padding:8px;background:transparent;color:#22352f;font-weight:450;border:0;position:relative}.day-cell button:hover{background:#e2f1e9}.day-cell.off,.day-cell.leave{background:#f6f3e9}.day-cell.off button,.day-cell.leave button{color:#936b27}.day-cell.absent{background:#fce8e8}.day-cell.absent button{color:#ae3535}.employee-totals{display:grid;gap:5px;margin:10px 0;font-size:13px;font-weight:500;overflow-wrap:anywhere}.deduction{color:#b43b40}.performance{color:#117766}.money-actions{display:flex;gap:8px}.manual-mark{font-size:13px;color:#876125;margin-left:4px}@media(max-width:650px){.form-grid{grid-template-columns:1fr}.filters label{width:100%}.attendance-grid .person-cell{min-width:170px;width:170px;max-width:170px;padding:12px}.attendance-grid .punch-kind{left:170px}#main-nav button{font-size:14px;padding:10px 8px}.check-grid{grid-template-columns:1fr 1fr}}
#management-content .table-wrap table{min-width:850px}#management-content .table-wrap td{vertical-align:top}#management-content .table-wrap td:first-child{min-width:110px}
.toolbar-actions,.monitor-toolbar,.sharing-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.attendance-status{display:inline-block;padding:5px 9px;border-radius:4px;font-size:14px;font-weight:600;white-space:nowrap}.state-working{background:#d8f3e7;color:#096045}.state-off{background:#e2ecff;color:#2353a2}.state-meal{background:#fff0c5;color:#805a06}.state-toilet{background:#dbf4f5;color:#08717b}.state-away{background:#ffe3ed;color:#a1305b}.state-leave,.state-holiday{background:#f5edda;color:#816016}.state-absent{background:#fce1e3;color:#aa2838}.state-unknown,.state-disabled{background:#e8ecea;color:#596b62}.state-stale{background:#f6e0d7;color:#954228}.roster-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0 22px}.roster-summary strong{margin-right:12px}.roster-heading{font-size:18px;margin:26px 0 12px}.day-cell.clock_in{background:#e1f3e8}.day-cell.clock_in button{color:#146347}.day-cell.clock_out{background:#e6efff}.day-cell.clock_out button{color:#2557a3}.monitoring main{max-width:1800px}.monitor-toolbar{margin:0 0 12px;justify-content:space-between}.segmented{display:flex;gap:0}.segmented button{border-radius:0}.segmented button:first-child{border-radius:5px 0 0 5px}.segmented button:last-child{border-radius:0 5px 5px 0}.segmented button[aria-pressed=true]{background:#087965;color:white}.monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,530px),1fr));gap:20px;margin-top:24px}.monitor-person{border:1px solid #ccd8d0;border-radius:6px;overflow:hidden;background:white;min-width:0}.monitor-person header{padding:12px 16px;min-height:70px}.monitor-streams{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#d4ddd7}.monitor-frame{position:relative;aspect-ratio:16/10;min-width:0;background:#171c19}.monitor-frame video{width:100%;height:100%;object-fit:contain}.monitor-frame>span{position:absolute;left:10px;top:8px;padding:3px 6px;background:#ffffffdc;color:#294336;border-radius:3px;font-size:13px}.monitor-controls{display:flex;gap:8px;align-items:center;padding:12px}.monitor-controls>span{flex:1;font-size:14px;overflow-wrap:anywhere}.monitor-grid[data-mode=camera] .monitor-frame[data-kind^=screen],.monitor-grid[data-mode=screen] .monitor-frame[data-kind=camera]{display:none}.monitor-grid[data-mode=camera] .monitor-streams,.monitor-grid[data-mode=screen] .monitor-streams{grid-template-columns:1fr}.monitor-person:fullscreen{background:#fff;display:flex;flex-direction:column}.monitor-person:fullscreen .monitor-streams{flex:1;min-height:0}.monitor-person:fullscreen .monitor-frame{height:100%;aspect-ratio:auto}.share-previews{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.share-previews h2{font-size:18px;margin-bottom:12px}.share-previews video{width:100%;aspect-ratio:16/10;background:#171c19;object-fit:contain}#employee-auth{max-width:440px;margin:40px auto}#employee-message{padding:16px;background:#e9f3ed;border:1px solid #c0dacc}@media(max-width:650px){.section-heading{align-items:flex-start;gap:16px;flex-wrap:wrap}.toolbar-actions{gap:6px}.toolbar-actions button{font-size:14px;padding:8px 12px}.monitor-streams,.share-previews{grid-template-columns:1fr}.monitoring main{padding:18px 12px}.monitor-toolbar{align-items:flex-start;gap:14px}}
.attendance-grid .day-cell.annual,.attendance-grid .day-cell.special{background:#f6f3e9}.attendance-grid .day-cell.annual button,.attendance-grid .day-cell.special button{color:#936b27}.state-annual,.state-special{background:#f5edda;color:#816016}
.punch-current-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 18px;margin:18px 0 12px;border:1px solid #cbded6;border-radius:10px;background:#fff}.punch-current-status>span:first-child{font-size:14px;color:#5c7168}.punch-current-status .attendance-status{font-size:20px;padding:8px 12px;border-radius:7px}.punch-current-status #punch-elapsed{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;color:#29483d}.punch-current-status .state-rest{background:#eee7f6;color:#66518a}@media(max-width:500px){.punch-current-status{gap:8px;padding:12px}.punch-current-status .attendance-status{font-size:18px}.punch-current-status #punch-elapsed{font-size:16px}}
#page-reload{white-space:nowrap;min-height:44px}#page-reload kbd{font:600 11px system-ui,sans-serif;border:1px solid #d0dbd5;border-radius:4px;padding:2px 5px;color:#687b72;background:#f3f7f5}#page-reload:focus-visible{outline:3px solid #61b9a3;outline-offset:3px}@media(max-width:680px){#page-reload{padding:9px 10px;font-size:14px}#page-reload kbd{display:none}}
.employee-identity{display:flex;align-items:center;gap:16px}
#employee-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #cfe2da}
.avatar-settings summary{cursor:pointer;font-size:14px;color:#087b68;font-weight:600}
.avatar-settings[open]{max-width:420px;padding:12px;border:1px solid #cfdfd9;border-radius:10px;background:#fff}
.avatar-settings input{font-size:14px;max-width:100%;margin:8px 0}
.avatar-settings p{font-size:13px;margin:8px 0}
.employee-page .page-heading{background:#fff;border:1px solid #dde9e4;border-radius:18px;padding:20px 24px;box-shadow:0 4px 18px #244f3f06;gap:20px}
.employee-identity{gap:20px;min-width:0}
.employee-identity h1{font-size:28px;line-height:1.3;margin:0 0 5px;overflow-wrap:anywhere}
.avatar-edit{position:relative;flex:0 0 88px;width:88px;height:88px;min-height:88px;padding:0;border:3px solid #fff;border-radius:50%;background:#e5f2ed;box-shadow:0 0 0 1px #c9dfd5,0 4px 12px #1c574019;cursor:pointer;overflow:visible}
.avatar-edit:hover{box-shadow:0 0 0 3px #95cbb7,0 4px 12px #1c574019}
.avatar-edit:focus-visible{outline:3px solid #07816c;outline-offset:5px}
#avatar-edit #employee-avatar{display:block;width:100%;height:100%;border:0;border-radius:50%;object-fit:cover}
.avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#daf1e7,#bfddd1);color:#26745b;font-size:32px;font-weight:600}
.avatar-edit-badge{position:absolute;right:-2px;bottom:-2px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#087965;border:3px solid #fff;color:#fff;border-radius:50%;font-size:16px;line-height:1}
.avatar-edit-hint{font-size:13px;color:#698177;margin:0 0 8px}
.avatar-settings summary{display:inline-flex;align-items:center;padding:5px 10px;background:#ecf7f1;border:1px solid #cee5d9;border-radius:7px;font-size:13px;list-style:none}
.avatar-settings summary::-webkit-details-marker{display:none}
.avatar-settings[open]{margin-top:8px}
.avatar-feedback{font-size:13px;color:#087965;margin:6px 0 0}
.avatar-feedback:empty{display:none}
.avatar-settings button{min-height:36px;font-size:13px;padding:7px 12px}
.employee-page .page-heading.employee-profile{padding:20px 24px;gap:24px;border-radius:16px}
.employee-profile .employee-identity{gap:18px;flex:1}
.employee-profile .avatar-edit{flex-basis:76px;width:76px;height:76px;min-height:76px}
.employee-profile .employee-profile-copy{min-width:0}
.employee-profile .employee-identity h1{font-size:26px;margin:0 0 8px;line-height:1.2}
.employee-profile .punch-current-status{gap:10px;padding:0;margin:0;border:0;border-radius:0;background:transparent}
.employee-profile #punch-status-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.employee-profile .attendance-status{font-size:14px;padding:5px 10px;border-radius:20px;line-height:1.4}
.employee-profile #punch-elapsed{font-size:14px;font-weight:600;color:#536b62}
.employee-profile .avatar-edit-hint{display:none}
.employee-profile .avatar-settings{margin-top:7px}
.employee-profile .avatar-settings summary{padding:0;border:0;background:none;font-size:12px;color:#638076;text-decoration:underline;text-underline-offset:3px}
.employee-profile .avatar-settings[open]{padding:10px;margin-top:10px}
.employee-profile .employee-profile-time{flex:0 0 auto;text-align:right;color:#63786f;font-size:14px;font-variant-numeric:tabular-nums}
.employee-profile .zone{font-size:12px;margin:5px 0 0}
.employee-page .punch-section>.section-heading{margin-top:22px;margin-bottom:10px}
.employee-page .punch-section>.section-heading h2{font-size:18px;margin:0}
@media(max-width:650px){.employee-page .page-heading.employee-profile{flex-direction:row;align-items:center;flex-wrap:wrap;padding:16px;gap:14px}.employee-profile .employee-identity{gap:14px;flex-basis:100%}.employee-profile .avatar-edit{flex-basis:64px;width:64px;height:64px;min-height:64px}.employee-profile .employee-identity h1{font-size:22px}.employee-profile .employee-profile-time{margin-left:78px!important;text-align:left;font-size:12px}.employee-profile .employee-profile-time .zone{display:inline;margin-left:8px;font-size:11px}.employee-profile #punch-elapsed{font-size:13px}}
@media(max-width:600px){.employee-page .page-heading{padding:16px;align-items:flex-start;flex-wrap:wrap}.employee-identity{gap:14px}.employee-identity h1{font-size:24px}.avatar-edit{flex-basis:72px;width:72px;height:72px;min-height:72px}.avatar-fallback{font-size:28px}.employee-page .page-heading>div:last-child{margin-left:auto;font-size:12px}}
.employee-page .employee-update-warning{position:fixed;top:12px;left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);overflow:auto;z-index:90;display:flex;align-items:center;gap:14px;padding:16px 18px;margin:0;border:2px solid #dc4b36;border-left:6px solid #c83122;border-radius:14px;background:#fff1ed;color:#84271f;box-shadow:0 8px 28px #bb352127;animation:update-warning-emphasis 1.8s ease-out 3;writing-mode:horizontal-tb;text-align:left}
.employee-page .employee-update-warning[hidden]{display:none!important}
.employee-update-warning .update-warning-icon{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#c83122;color:#fff;font-size:30px;font-weight:800}
.employee-update-warning .update-warning-copy{flex:1;min-width:0}
.employee-update-warning h2{font-size:18px;font-weight:800;line-height:1.35;color:#a5271c;margin:0 0 6px;word-break:normal;overflow-wrap:break-word}
.employee-update-warning p{font-size:14px;line-height:1.6;font-weight:500;color:#853a30;margin:0}
.employee-update-warning>button{flex:0 0 auto;min-width:112px;min-height:44px;font-size:16px;font-weight:750;background:#c83122;color:#fff;border:1px solid #a62018;border-radius:10px;box-shadow:0 4px 12px #bb35212b;white-space:nowrap}
.employee-update-warning>button:focus-visible{outline:3px solid #962216;outline-offset:4px}
@keyframes update-warning-emphasis{0%,100%{box-shadow:0 8px 28px #bb352127}50%{box-shadow:0 0 0 5px #dc4b3622,0 8px 28px #bb35213b}}
@media(prefers-reduced-motion:reduce){.employee-page .employee-update-warning{animation:none}}
@media(max-width:650px){.employee-page .employee-update-warning{top:8px;padding:16px;gap:12px;flex-wrap:wrap;border-left-width:6px}.employee-update-warning .update-warning-icon{flex-basis:36px;width:36px;height:36px;font-size:25px}.employee-update-warning .update-warning-copy{flex-basis:calc(100% - 48px)}.employee-update-warning h2{font-size:20px}.employee-update-warning>button{width:100%;min-height:52px;font-size:18px}}
#admin-language{width:148px;font-size:14px;min-height:42px;padding:9px 12px;border-radius:9px}
@media(max-width:650px){#admin-language{width:126px}}
.person-scope-search{margin:0 0 8px;font-size:13px}.person-scope-search input{min-height:38px;padding:8px 12px}.person-scope-count{font-size:13px;margin:6px 0 10px}.person-scope-list{max-height:240px;overflow:auto;overscroll-behavior:contain;gap:6px!important;border:1px solid #d2ddd6;border-radius:8px;padding:8px;background:#f8faf9;margin-bottom:8px}.person-scope-list .person-scope-option{margin:0;padding:8px;border-radius:6px;gap:8px;font-size:13px;min-height:48px;background:#fff}.person-scope-option:hover{background:#edf6f2}.person-scope-option:has(input:checked){background:#e4f3ed}.person-scope-option span{min-width:0}.person-scope-option strong{font-size:13px;font-weight:600}.person-scope-option small{display:block;font-size:11px;font-weight:400;margin-top:3px}.management-scope-note{background:#edf6f2;border:1px solid #d5e8de;border-radius:8px;padding:10px 12px;margin-bottom:16px}.management-scope-note p{font-size:13px;margin:0 0 8px}.management-scope-note button{min-height:34px;padding:6px 10px;font-size:13px}@media(max-width:500px){.person-scope-list{grid-template-columns:1fr}}
.person-scope-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.person-scope-controls button{min-height:34px;padding:6px 10px;font-size:13px}.person-scope-controls output{min-width:42px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.person-scope-controls [data-picker-toggle]{margin-left:auto}.person-scope-picker .person-scope-option{padding:calc(8px * var(--picker-scale,1));min-height:calc(48px * var(--picker-scale,1))}.person-scope-picker .person-scope-option strong{font-size:calc(13px * var(--picker-scale,1))}.person-scope-picker .person-scope-option small{font-size:calc(11px * var(--picker-scale,1))}.person-scope-picker .person-scope-list{max-height:calc(240px * var(--picker-scale,1))}
.admin-login-dark{background:radial-gradient(ellipse at 18% 12%,#172721 0,transparent 45%),radial-gradient(ellipse at 85% 82%,#25201a 0,transparent 38%),#080b0c;color:#edf2ef;min-height:100dvh}.admin-login-dark>header{background:#090d10b8;border-color:#ffffff12;position:relative;z-index:1}.admin-login-dark .brand{color:#e7ede8}.admin-login-dark .brand span,.admin-login-dark time{color:#9baba2}.admin-login-dark main{position:relative;z-index:1}.admin-login-dark #auth{max-width:450px;margin:clamp(35px,9vh,100px) auto 30px;background:linear-gradient(145deg,#1c2426e8,#101618ef);border:1px solid #c8b99533;border-radius:22px;padding:38px;box-shadow:0 30px 100px #0008,0 1px 0 #ffffff0a inset}.admin-login-dark .auth-heading>svg{color:#cdbb91}.admin-login-dark .auth-heading p,.admin-login-dark small,.admin-login-dark footer{color:#8d9d94}.admin-login-dark label{color:#dce6df}.admin-login-dark input,.admin-login-dark select{background:#0b1114;color:#f0f5f2;border-color:#ffffff20;border-radius:9px}.admin-login-dark input:focus{border-color:#cdbb91;outline-color:#cdbb9130}.admin-login-dark #auth-submit{background:linear-gradient(110deg,#d7c79f,#bba87c);color:#18211d;border-radius:10px;min-height:48px}.admin-login-dark .secondary{background:#ffffff06;color:#c6d3cc;border-color:#ffffff20}.admin-login-dark #notice:empty{display:none}.admin-login-dark #notice{background:#16221c;color:#e1ece5;border-color:#456752}.admin-login-dark #notice.error{background:#341a1b;color:#ffb9b9;border-color:#774247}#admin-login-particles{display:none;position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.admin-login-dark #admin-login-particles{display:block}#admin-login-particles i{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#cfbd91;opacity:.35;box-shadow:0 0 12px #dacda4;animation:admin-particle-drift var(--duration) var(--delay) ease-in-out infinite alternate}@keyframes admin-particle-drift{from{transform:translate3d(-15px,35px,0);opacity:.15}to{transform:translate3d(35px,-55px,0);opacity:.65}}@media(prefers-reduced-motion:reduce){#admin-login-particles i{animation:none;opacity:.25}}@media(max-width:500px){.admin-login-dark #auth{padding:26px 22px;margin-top:35px}.admin-login-dark .header-right{gap:6px}}#management-form textarea{width:100%;min-height:180px;border:1px solid #bdccc4;border-radius:8px;padding:12px;font:inherit}
/* The management toolbar stays at the viewport top in web, PWA and desktop workspaces. */
body:has(main #admin)>header{position:sticky;top:0;z-index:60;flex-shrink:0;box-shadow:0 3px 12px #153f3410}
body:has(main #admin)>header .header-right{flex-wrap:wrap;justify-content:flex-end}
body:has(main #admin){scroll-padding-top:100px}
@media(max-width:650px){body:has(main #admin){scroll-padding-top:150px}}
.management-month-picker{display:grid;gap:.5rem;min-width:0;font-weight:600}.management-month-controls{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.5rem}.management-month-controls select{width:100%;min-width:0}
/* Startup recovery stays compact and wraps reference codes on small screens. */
#admin-recovery{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0;padding:14px 16px;border:1px solid #d79a40;border-radius:10px;background:#fff7e6;color:#693d08}
#admin-recovery[hidden]{display:none}
#admin-recovery small{display:block;flex-basis:100%;overflow-wrap:anywhere;font-size:12px}
#admin-recovery small:empty{display:none}
#admin-recovery button{padding:8px 14px;font-size:14px}

.owner-system-pressure{margin:1rem 0;padding:1rem;border:1px solid #c9dcd5;border-radius:12px;background:#fff}.owner-system-pressure summary{cursor:pointer;font-weight:700}.pressure-body{padding-top:1rem}.pressure-gauges{display:flex;gap:1rem;flex-wrap:wrap}.pressure-gauges label{display:grid;gap:.4rem;min-width:180px;flex:1}.pressure-gauges meter{width:100%;height:1.5rem}.pressure-detail{color:#526961}

.employee-page main{max-width:1100px}.employee-page .page-heading{padding-bottom:0}.employee-page .page-heading .zone{margin:4px 0}.employee-page #employee-message:empty{display:none}.employee-page #employee-language{width:145px}.punch-section{padding-bottom:24px;border-bottom:1px solid #ccd8d0}.punch-section .section-heading{padding-top:12px;padding-bottom:0}.punch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.punch-button{min-height:76px;font-size:20px;padding:14px;white-space:normal;overflow-wrap:anywhere}.punch-button:disabled{cursor:not-allowed;opacity:.6}.punch-in{background:#128253}.punch-out{background:#465367}.punch-meal{background:#ac7107}.punch-toilet{background:#087c8c}.punch-away{background:#bb3955}.punch-end{background:#2b65c8}#punch-result{margin:12px 0 0;min-height:26px;font-weight:600;overflow-wrap:anywhere}.employee-media,.employee-history{padding-top:28px}.employee-history h2{margin-bottom:16px}.employee-page .share-previews video{max-height:240px}.employee-page .share-previews{margin-top:22px}.employee-page #punch-history td:last-child{white-space:normal;width:auto}.employee-page header{flex-wrap:wrap}.employee-page .header-right{gap:10px}.employee-page button{letter-spacing:0}@media(max-width:650px){.employee-page header{padding:12px 16px}.employee-page .header-right{flex:1;justify-content:flex-end}.employee-page #employee-language{width:126px}.employee-page .brand{font-size:19px}.punch-button{font-size:18px;min-height:80px}.punch-grid{gap:10px}.employee-page .page-heading{flex-direction:row;align-items:center;flex-wrap:wrap}.employee-page .zone{font-size:12px}.employee-page table{min-width:0;table-layout:fixed}.employee-page td,.employee-page th{padding:10px 6px;font-size:13px}.employee-page .share-previews{grid-template-columns:1fr 1fr;gap:12px}.employee-page .share-previews h2{font-size:14px;overflow-wrap:anywhere}}
.employee-page textarea{font:inherit;width:100%;padding:12px;border:1px solid #bdccc4;border-radius:5px;resize:vertical;color:#22352f;background:white}.employee-page #leave-request-form{padding:16px 0}.leave-review-row{border-bottom:1px solid #ccd8d0;padding:16px 0;overflow-wrap:anywhere}.employee-page #leave-review-form h2{margin-bottom:12px}.employee-page #leave-history td:last-child{white-space:normal;width:auto}.employee-page #leave-history button{font-size:13px;padding:6px;min-height:36px}.employee-page #leave-message,.employee-page #review-error{overflow-wrap:anywhere}#leave-review-dialog{max-height:90dvh;overflow:auto}
.media-switches{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.media-switches section{border:1px solid #ccd8d0;border-radius:10px;padding:18px;background:#fff}.media-switches h3{margin:0;font-size:20px}.media-switches p{min-height:48px;line-height:1.5}.media-switches [role=status]{display:block;margin:12px 0;color:#466056}.media-switches button{min-height:48px;margin:4px 6px 4px 0;white-space:normal}.media-switches button[aria-pressed=true]{background:#e5f1eb;color:#095c48;border:1px solid #9cc8b7}@media(max-width:650px){.media-switches{grid-template-columns:1fr}.media-switches p{min-height:0}.media-switches button{width:100%}}
.media-switches:has(section[hidden]),.share-previews:has(section[hidden]){grid-template-columns:1fr}
.employee-camera-bar{margin:0 0 12px;padding:16px 18px;border:1px solid #cbded5;border-radius:12px;background:#fff;box-shadow:0 2px 6px #163d3010}.camera-control-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.camera-control-copy{min-width:0}.camera-control-copy h2{font-size:18px}.camera-control-copy p{margin:4px 0 0;font-size:13px;color:#65756e}.camera-control-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.camera-control-actions [role=status]{font-size:13px;font-weight:600;padding:5px 10px;border-radius:20px;background:#edf1ef;color:#596c61;white-space:nowrap}.camera-control-actions:has(button[aria-pressed=true]) [role=status]{background:#d8f3e7;color:#096045}.camera-control-actions button{min-height:40px;font-size:14px;max-width:280px;white-space:normal}.camera-control-actions button[aria-pressed=true]{background:#fff;color:#095c48;border-color:#a5ccba}.employee-camera-bar .camera-consent{margin:12px 0 0;padding-top:10px;border-top:1px solid #e4ece7;font-size:12px;line-height:1.5;color:#65756e}.employee-page .media-switches{grid-template-columns:1fr}.employee-page .media-switches:has(>section[hidden]){display:none}@media(max-width:650px){.employee-camera-bar{padding:14px}.camera-control-row{align-items:flex-start;flex-direction:column;gap:10px}.camera-control-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.camera-control-actions button{max-width:100%;flex:0 1 auto}}
.employee-page .leave-calendar{max-width:560px;margin:12px auto}.leave-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.leave-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.leave-calendar-weekday{text-align:center;font-size:12px;color:#61776e;padding:4px}.employee-page .leave-calendar-day{min-width:0;min-height:48px;padding:6px 2px;font-size:15px;border:1px solid #d3ded8;border-radius:8px;background:#fff;color:#22352f}.leave-calendar-day small{display:block;font-size:9px;line-height:1.3;overflow-wrap:anywhere}.employee-page .leave-calendar-day.selected{background:#0e7564;color:#fff;border-color:#0e7564}.employee-page .leave-calendar-day.pending{background:#fff4d8;color:#825e18;opacity:1}.employee-page .leave-calendar-day.approved{background:#def1e6;color:#195c40;opacity:1}.leave-calendar p{font-size:13px;color:#61776e;margin:10px 0}.employee-page #leave-request-form{max-width:560px;margin:auto}.employee-page #leave-request-form[hidden]{display:none}.employee-page #leave-selected{font-weight:700;color:#0e7564}.employee-page #employee-leave>details{margin-top:14px}.employee-page #leave-permission-message:empty{display:none}
.employee-page .break-reminder-panel{margin:10px 0 14px}.employee-page .break-reminder-panel[hidden]{display:none}.break-reminder-panel label{display:inline-flex;align-items:center;gap:8px;font-size:14px;margin:0;min-height:32px}.break-reminder-panel input{width:auto;margin:0}
.employee-camera-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}.employee-camera-bar .camera-control-row{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.employee-camera-bar .camera-control-actions{flex-shrink:1;flex-wrap:wrap}.employee-camera-bar .camera-consent{margin:0;width:100%}.camera-live-preview{position:relative;min-width:0;aspect-ratio:16/9;border-radius:9px;overflow:hidden;background:#182820}.camera-live-preview video{display:block;width:100%;height:100%;object-fit:contain}.camera-preview-label{position:absolute;top:10px;left:10px;background:#13261ed9;color:#fff;border-radius:5px;padding:4px 8px;font-size:12px}.camera-preview-empty{position:absolute;inset:40px 16px 16px;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;color:#c8d8d0;font-size:14px;line-height:1.5}.employee-camera-bar:has(#camera-toggle[aria-pressed=true]) .camera-preview-empty{display:none}.employee-page .share-previews{grid-template-columns:1fr}@media(max-width:650px){.employee-camera-bar{grid-template-columns:1fr;gap:14px}.employee-camera-bar .camera-control-actions{justify-content:flex-start}.camera-live-preview{width:100%}}
.employee-page .break-reminder-panel{margin:12px 0 20px;padding:16px 18px;border:2px solid #70b5a1;border-radius:10px;background:#edf8f3}.break-reminder-panel label{display:flex;gap:12px;min-height:36px;font-size:18px;font-weight:700;color:#145c49;cursor:pointer}.break-reminder-panel input[type=checkbox]{width:24px;height:24px;flex-shrink:0;accent-color:#087965;cursor:pointer}.break-reminder-panel .break-reminder-hint{margin:8px 0 0;font-size:14px;line-height:1.6;color:#446b5d}
.employee-page #punch-next-step{font-size:15px;color:#52685e;margin:12px 0}.punch-grid[data-state=off],.punch-grid[data-state=meal],.punch-grid[data-state=toilet],.punch-grid[data-state=away],.punch-grid[data-state=rest]{grid-template-columns:1fr}.punch-grid .punch-end{min-height:100px;background:#087965;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.punch-button small{font-size:14px;font-weight:400;line-height:1.5}.punch-checkout{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding-top:18px;border-top:1px solid #d4dfd8;color:#63756c;font-size:14px}.punch-checkout[hidden],#punch-buttons[hidden]{display:none}.punch-checkout .punch-out{min-height:44px;padding:10px 24px;font-size:16px;background:#fff;color:#465367;border:1px solid #b9c6c0}.punch-checkout .punch-out:hover:enabled{background:#eef2f0}
.employee-page .punch-end small{color:#fff;opacity:.9}
.employee-page .punch-checkout{display:block;margin-top:22px;padding-top:18px}.employee-page .punch-checkout[hidden]{display:none}.employee-page .punch-checkout .punch-out{width:100%;min-height:84px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 18px;padding:18px 24px;text-align:left;background:#465367;color:#fff;border:1px solid #465367;border-radius:10px;transition:background .15s,box-shadow .15s}.punch-checkout .punch-out>span:first-child{font-size:21px;font-weight:700;grid-column:1}.punch-checkout .punch-out small{grid-column:1;font-size:14px;color:#edf1f7;line-height:1.5}.punch-checkout .punch-out .checkout-arrow{grid-column:2;grid-row:1/3;align-self:center;font-size:28px}.employee-page .punch-checkout .punch-out:hover:enabled{background:#344156;box-shadow:0 3px 10px #293a5020}.employee-page .punch-checkout .punch-out:focus-visible{outline:3px solid #83b0e8;outline-offset:3px}@media(max-width:500px){.employee-page .punch-checkout .punch-out{padding:16px 18px}.punch-checkout .punch-out>span:first-child{font-size:19px}}
.break-reminder-alert{position:fixed;z-index:1000;right:24px;bottom:24px;width:min(420px,calc(100vw - 32px));padding:24px;border-radius:18px;border:2px solid #e3a148;background:#fff8ea;box-shadow:0 12px 45px #26382f40;box-sizing:border-box}.break-reminder-alert[hidden]{display:none}.break-reminder-alert>span{display:block;font-size:14px;font-weight:700;color:#875715;margin-bottom:10px}.break-reminder-alert>strong{display:block;font-size:26px;line-height:1.35;color:#663d07}.break-reminder-alert>p{font-size:15px;line-height:1.6;color:#795d34;margin:12px 0 20px}.break-reminder-alert-actions{display:flex;gap:10px;flex-wrap:wrap}.break-reminder-alert-actions button{flex:1;min-height:48px;white-space:normal;padding:12px 14px}.break-reminder-alert-actions button:first-child{background:#995c08;color:#fff}.break-reminder-alert[data-level=warning]{border-color:#85abc8;background:#eef7ff}.break-reminder-alert[data-level=warning]>strong{color:#254c6e}@media(max-width:500px){.break-reminder-alert{right:16px;bottom:16px;padding:20px}.break-reminder-alert>strong{font-size:23px}}
.signature-settings{margin-top:6px;max-width:420px;font-size:13px}
.signature-settings summary{color:#087d6c;cursor:pointer;font-weight:600}
.signature-settings label{margin-top:12px}.signature-settings textarea{font-size:14px;resize:vertical;min-height:80px}
.signature-help{font-size:12px;color:#647970;line-height:1.5;margin:8px 0}
.signature-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.signature-actions button{padding:8px 14px;font-size:13px}
.signature-preview{font-size:13px;color:#557168;margin:6px 0;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.punch-history-disclosure{border:1px solid #d0ded7;border-radius:12px;background:#fff;overflow:hidden}
.punch-history-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;min-height:48px;cursor:pointer;list-style:none;font-size:18px;font-weight:700;color:#244c40}
.punch-history-disclosure>summary::-webkit-details-marker{display:none}
.punch-history-disclosure>summary:hover{background:#eff7f3}
.punch-history-disclosure>summary:focus-visible{outline:3px solid #087d6c;outline-offset:-3px}
.punch-history-disclosure .history-chevron{font-size:24px;line-height:1;transition:transform .15s}
.punch-history-disclosure[open] .history-chevron{transform:rotate(180deg)}
.punch-history-disclosure[open]>summary{border-bottom:1px solid #d0ded7}
.punch-history-disclosure>.table-wrap{margin:0}
.employee-page .leave-calendar-day.attendance-work{background:#ddf5e7;color:#176443;opacity:1}
.employee-page .leave-calendar-day.attendance-work small{font-size:18px;font-weight:800}
.employee-page .leave-calendar-day.attendance-off,.employee-page .leave-calendar-day.attendance-leave,.employee-page .leave-calendar-day.attendance-annual,.employee-page .leave-calendar-day.attendance-special{background:#fff0d4;color:#895811;opacity:1}
.employee-page .leave-calendar-day small{font-size:11px;margin-top:3px}
.desktop-download-links button{display:block;width:100%;border:0;border-radius:8px;background:#08765d;color:white;padding:11px 14px;font:inherit;font-size:14px;text-align:left;cursor:pointer;margin:0}.desktop-download-links button:hover{background:#066451}.desktop-download-links button:disabled{opacity:.6}.desktop-mac-choice{padding:10px;border:1px solid #c7ded3;border-radius:8px;background:#f3faf6}.desktop-mac-choice[hidden]{display:none}.desktop-mac-choice label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.desktop-mac-choice select{max-width:220px;font-size:13px;padding:6px}.desktop-device-status{padding:8px 10px;background:#f0f7f3;border-radius:6px;color:#315c4b;font-size:13px;overflow-wrap:anywhere}
.desktop-download-menu{position:relative;flex-shrink:0;color:#244a3d}.desktop-download-menu>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:46px;padding:9px 14px;border:1px solid #b9d5c8;border-radius:6px;background:#f3faf6;color:#08765d;font-size:15px;font-weight:700;white-space:nowrap;cursor:pointer}.desktop-download-menu>summary::-webkit-details-marker{display:none}.desktop-download-menu>summary::after{content:'⌄';font-size:16px}.desktop-download-menu[open]>summary{background:#e1f2e9;border-color:#08765d}.desktop-download-menu>summary:focus-visible{outline:3px solid #61b9a3;outline-offset:3px}.desktop-download-menu .desktop-download-guide{position:absolute;right:0;top:calc(100% + 12px);z-index:100;width:min(430px,calc(100vw - 32px));border:1px solid #c7ded3;background:#fff;border-radius:14px;padding:20px;box-shadow:0 14px 40px #1d493122;font-size:14px;text-align:left;max-height:calc(100dvh - 110px);overflow:auto}.desktop-download-guide strong{display:block;font-size:17px;color:#164d40}.desktop-download-guide p{line-height:1.6;margin:12px 0}.desktop-download-links{display:grid;gap:8px}.desktop-download-links a{display:block;border-radius:8px;background:#08765d;color:white;text-decoration:none;padding:11px 14px;font-size:14px}.desktop-download-links a:hover{background:#066451}.desktop-download-guide .muted{font-size:12px;margin-bottom:0}.desktop-download-menu[hidden]{display:none}@media(max-width:650px){.employee-page>header{flex-wrap:wrap;gap:12px}.employee-page>header .header-right{gap:8px;flex-wrap:wrap}.desktop-download-menu>summary{padding:9px 11px;font-size:14px}.desktop-download-menu .desktop-download-guide{position:fixed;right:16px;top:128px;max-height:calc(100dvh - 144px)}}
.desktop-mac-tutorial{margin-top:12px;border-top:1px solid #c7ded3;padding-top:10px}.desktop-mac-tutorial>summary{cursor:pointer;color:#08765d;font-weight:650;font-size:13px}.desktop-mac-tutorial ol{padding-left:22px;margin:12px 0;font-size:13px;line-height:1.65}.desktop-mac-tutorial li+li{margin-top:8px}.desktop-download-links .desktop-help-link{display:inline-block;padding:0;background:transparent;color:#08765d;font-size:12px;text-decoration:underline}.desktop-download-links .desktop-help-link:hover{background:transparent}
.employee-camera-bar[data-camera-sync] .camera-live-preview{height:auto;aspect-ratio:16/9;position:relative}.employee-camera-bar[data-camera-sync] .camera-live-preview .monitor-placeholder{position:absolute;inset:40px 12px 12px;display:grid;place-items:center;color:#c8d8d0;text-align:center;font-size:14px}.employee-camera-bar[data-camera-sync] .camera-live-preview[data-media-state=live] .monitor-placeholder{display:none}
.employee-page .employee-profile{position:relative;isolation:isolate;overflow:hidden;min-height:180px;margin-bottom:18px;padding:26px!important}
.employee-profile[data-nationality]:not([data-nationality=""])::before{content:'';position:absolute;inset:0 0 0 52%;z-index:-1;background-image:var(--profile-flag);background-size:auto 118%;background-repeat:no-repeat;background-position:right center;opacity:.30;mask-image:linear-gradient(to right,transparent,#000 50%);pointer-events:none}
.employee-profile .employee-profile-time{align-self:flex-end;padding:7px 10px;border-radius:10px;background:#ffffffba}
#employee-nationality{font-size:14px;color:#5c786c;margin:8px 0}
.employee-profile .signature-preview{padding:8px 14px;border-radius:24px;background:#e4f2ecda;color:#416b5c}
.employee-page .punch-section{padding:22px 26px;background:#fff;border:1px solid #dde9e4;border-radius:16px;box-shadow:0 4px 18px #244f3f06;margin-bottom:22px}
.employee-page .punch-section>.section-heading{margin:0 0 12px;padding:0}
.employee-page .punch-grid[data-state=working]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.employee-page .punch-button{border-radius:12px;min-height:78px;box-shadow:0 4px 10px #125f4b12;transition:transform .15s,box-shadow .15s;background:linear-gradient(135deg,#258979,#0d7666);gap:12px;font-size:19px}
.employee-page .punch-button:hover:enabled{transform:translateY(-2px);box-shadow:0 6px 15px #125f4b20}
.employee-page .punch-symbol{font-size:25px;line-height:1;flex-shrink:0}
.employee-page .punch-checkout .punch-out{background:#fff;color:#4b6e63;box-shadow:none;min-height:54px;border-radius:10px;border-color:#bed0c9}
.employee-page .punch-checkout .punch-out small{color:#678175}
.employee-page .punch-checkout .punch-out:hover:enabled{background:#eff6f2;color:#365d4f}
.employee-page .punch-grid .punch-end{min-height:108px}
@media(max-width:650px){.employee-page .employee-profile{padding:20px!important;min-height:180px}.employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 35%;opacity:.18}.employee-page .punch-section{padding:18px}.employee-page .punch-grid[data-state=working]{grid-template-columns:1fr 1fr}.employee-page .punch-button{font-size:17px;min-height:76px}.employee-page .punch-symbol{font-size:22px}}
@media(prefers-reduced-motion:reduce){.employee-page .punch-button{transition:none}.employee-page .punch-button:hover:enabled{transform:none}}
.employee-page .break-reminder-panel{padding:12px 16px;border-width:1px;border-radius:11px;background:#f2f8f5}
.employee-page .break-reminder-panel label{font-size:14px;gap:9px}
.employee-page .break-reminder-panel .break-reminder-hint{font-size:12px;margin-top:6px;line-height:1.5}
/* Approved fabric-card layout: no scalloped cutout and no oversized washed-out emblem. */
.employee-page{background:radial-gradient(ellipse at 50% 0,#e5f1ed,#f3f7f5 75%)}
.employee-page .employee-profile{min-height:216px;padding:28px 30px!important}
.employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 48%;background-color:var(--flag-base);background-image:url('/flag-fabric-v1.png'),var(--profile-flag);background-size:cover,100% 100%;background-blend-mode:soft-light,normal;background-position:center;opacity:.78;mask-image:linear-gradient(to right,transparent 0%,#0002 20%,#000a 48%,#000 78%)}
.employee-profile .employee-identity{align-items:center;gap:24px;position:relative}
.employee-profile .avatar-edit{flex-basis:116px;width:116px;height:116px;min-height:116px}
.employee-profile .employee-profile-copy{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:5px 12px;max-width:64%;position:relative}
.employee-profile .employee-identity h1{font-size:28px;margin:0;grid-column:1;grid-row:1}
.employee-profile .punch-current-status{display:contents}
.employee-profile #punch-state{grid-column:2;grid-row:1;justify-self:start;white-space:nowrap}
.employee-profile #punch-elapsed{display:none}
.employee-profile #employee-nationality,.employee-profile .avatar-settings,.employee-profile .avatar-feedback,.employee-profile .signature-preview,.employee-profile .signature-settings{grid-column:1/-1}
.employee-profile #employee-nationality{font-size:14px;margin:3px 0 4px}
.employee-profile .signature-preview{order:3;min-width:200px;max-width:360px;margin:0;padding:8px 15px}
.employee-profile .avatar-settings{order:4;margin-top:2px}
.employee-profile .signature-settings{order:5}
.employee-profile .employee-profile-time{position:absolute;right:16px;bottom:14px;z-index:1;font-size:11px;background:#ffffffd9;padding:5px 8px}
.employee-profile .employee-profile-time time{font-size:11px}
.employee-profile .employee-profile-time .zone{font-size:10px;margin:2px 0 0}
#punch-summary{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-radius:9px;background:#e9f4ef;padding:12px 16px;margin:0 0 14px;color:#285d4c;font-variant-numeric:tabular-nums}
#punch-summary strong{display:flex;align-items:center;gap:8px;font-size:17px}
#punch-summary strong::before{content:'';width:10px;height:10px;border-radius:50%;background:#2da76b}
#punch-summary[data-state=off] strong::before{background:#8ca49a}
#punch-summary-time{padding-left:18px;border-left:1px solid #b8d5c8;font-size:15px}
.employee-page .punch-button{min-height:62px;border-radius:8px;font-size:18px}
.employee-page .punch-symbol{width:25px;height:25px;flex-shrink:0}
.employee-page .break-reminder-panel{border:0;background:transparent;padding:8px 0 0;margin:8px 0}
.employee-page .break-reminder-panel label{display:inline-flex;min-width:120px;margin:0 14px 0 0;vertical-align:middle}
.employee-page .break-reminder-panel .break-reminder-hint{display:inline;font-size:12px;color:#74877d}
.employee-page .break-reminder-panel .break-reminder-hint[role=status]{display:block;margin:6px 0 0}
.employee-page .punch-checkout{margin-top:12px;padding-top:12px}
.employee-page .punch-checkout .punch-out{min-height:54px;padding:12px 18px}
@media(max-width:650px){.employee-page .employee-profile{min-height:206px;padding:22px 20px 38px!important}.employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 40%;opacity:.45;mask-image:linear-gradient(to right,transparent,#000 70%)}.employee-profile .avatar-edit{flex-basis:76px;width:76px;height:76px;min-height:76px}.employee-profile .employee-identity{gap:16px}.employee-profile .employee-profile-copy{max-width:calc(100% - 92px);grid-template-columns:minmax(0,1fr)}.employee-profile .employee-identity h1{font-size:23px}.employee-profile #punch-state{grid-column:1;grid-row:2}.employee-profile .employee-profile-time{margin:0!important}#punch-summary{gap:10px}#punch-summary-time{font-size:13px;padding-left:10px}.employee-page .punch-button{min-height:64px;font-size:17px}.employee-page .break-reminder-panel .break-reminder-hint{display:block;margin-top:6px}}
.work-reminders{padding:22px 26px;margin:22px 0;background:#fff;border:1px solid #dde9e4;border-radius:16px}
.punch-confirm-dialog{width:min(440px,calc(100vw - 36px));border:1px solid #d8e7e1;border-radius:22px;padding:28px;color:#19483a;box-shadow:0 20px 70px #153f3433}.punch-confirm-dialog::backdrop{background:#143e345c;backdrop-filter:blur(3px)}.punch-dialog-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#e7f3ed;font-size:27px;margin-bottom:18px}.punch-confirm-dialog h2{font-size:23px;margin:0 0 12px}.punch-confirm-dialog p{white-space:pre-line;color:#61786e;line-height:1.9}.punch-confirm-dialog .dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.punch-confirm-dialog .dialog-actions button{flex:1;min-width:150px}.punch-confirm-dialog .punch-confirm-out{background:#a83d36}.camera-guide-active{outline:3px solid #21a27d;outline-offset:5px}
.work-reminder-actions .work-reminder-delete{color:#b33f46;border-color:#edcfd2;background:#fff9f9}.work-reminder-actions .work-reminder-delete:hover{background:#fcebed}
.work-reminders{background:linear-gradient(145deg,#fff 70%,#f1f8f5);box-shadow:0 8px 24px #164f3a06}.work-reminders h2{display:flex;align-items:center;gap:10px}.work-reminder-clock{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:15px;background:#e6f3ed;font-size:26px}.work-reminder-content{min-width:0;flex:1}.work-reminder-repeat{display:inline-block;padding:3px 9px;border-radius:8px;font-size:12px;background:#edf1fb;color:#50618b}.work-reminder-last{display:block;margin-top:8px;color:#648175}.work-reminder-time{font-variant-numeric:tabular-nums}.work-reminder-row[data-completed=true] .work-reminder-clock{background:#edf1ef;filter:grayscale(1)}
.work-reminders .section-heading{padding:0 0 16px}.work-reminder-help{font-size:13px;color:#647d71}.work-alarm-status{font-size:13px;color:#087965;margin:8px 0}.work-reminder-message{color:#a13427;font-size:14px}.work-reminder-message:empty{display:none}
.work-reminder-list{display:grid;gap:10px}.work-reminder-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #d9e8df;border-radius:12px;padding:16px;background:#f9fcfa}.work-reminder-row>div:first-child{min-width:0}.work-reminder-row strong{overflow-wrap:anywhere}.work-reminder-row p{font-size:13px;color:#65796e;margin:6px 0}.work-reminder-status{font-size:12px;background:#e2f1e9;color:#25684e;border-radius:12px;padding:3px 8px;margin-right:8px}.work-reminder-row[data-completed=true]{opacity:.65}.work-reminder-actions{display:flex;gap:8px;flex-shrink:0}.work-reminder-actions button{font-size:13px}
.work-reminder-editor .form-grid{display:grid;grid-template-columns:1fr;gap:0}.work-reminder-editor input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:#087965}.work-reminder-alarm{position:fixed;right:24px;bottom:24px;z-index:150;width:min(430px,calc(100vw - 32px));max-height:70dvh;overflow:auto;padding:22px;background:#fff8ee;border:2px solid #dc8b38;border-radius:16px;box-shadow:0 14px 42px #49361a30}.work-reminder-alarm h2{color:#9c5410;margin-bottom:16px}.work-due-item{padding:12px 0;border-top:1px solid #e8d4b8}.work-due-item strong{overflow-wrap:anywhere}.work-due-item p{font-size:13px;color:#6c624f}.work-due-item button{margin-right:8px}
@media(max-width:650px){.work-reminders{padding:18px}.work-reminder-row{align-items:flex-start;flex-direction:column}.work-reminder-actions{width:100%;flex-wrap:wrap}.work-reminder-alarm{right:16px;bottom:16px}}
.employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 42%;background-image:var(--profile-flag);background-color:transparent;background-blend-mode:normal;background-size:cover;background-position:center;mask-image:none;opacity:.95}
@media(max-width:650px){.employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 25%;opacity:.45}}
.world-clocks{background:#fff;border:1px solid #d8e7e1;border-radius:16px;padding:22px;margin:18px 0}.world-clock-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.world-clock-heading h2{font-size:21px}.world-clock-heading p{font-size:13px;margin:5px 0 0}.world-clock-tools{display:flex;gap:6px;flex-wrap:wrap}.world-clock-tools button{font-size:13px;min-height:36px;padding:8px 12px;border-radius:8px}.world-clock-tools [aria-pressed=true]{background:#e1f3ed;border-color:#97c9b8;color:#087965}.world-clock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.world-clock-card{border:1px solid #d6e6df;background:linear-gradient(145deg,#f6fbf8,#edf6f3);border-radius:13px;padding:16px;text-align:center;min-width:0}.world-clock-card h3{font-size:14px;font-weight:600;margin:0 0 13px;color:#47685c}.world-clock-digits{display:block;font-size:29px;font-weight:700;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#143e32}.world-clock-date{font-size:12px;margin:9px 0 0;color:#6e8278;font-variant-numeric:tabular-nums}.world-clock-editor{border:1px solid #d6e6df;border-radius:10px;padding:14px;background:#f9fcfa}.world-clock-editor legend{padding:0 8px}.world-clock-editor .checkbox{margin-bottom:10px}.world-clock-actions{display:flex;justify-content:center;gap:8px;margin-top:12px}.world-clock-actions button{min-height:30px;padding:4px 12px}.world-clock-face{display:none;width:116px;height:116px;border:5px solid #fff;background:#fff;border-radius:50%;margin:0 auto 10px;position:relative;box-shadow:0 2px 14px #183d3214}.world-clock-grid[data-mode=analog] .world-clock-face{display:block}.world-clock-grid[data-mode=analog] .world-clock-digits{font-size:18px}.clock-marker{position:absolute;inset:3px;transform-origin:center}.clock-marker::before{content:'';position:absolute;left:50%;top:1px;width:2px;height:6px;background:#8da99d}.clock-hand{position:absolute;left:calc(50% - 1.5px);bottom:50%;width:3px;transform-origin:50% 100%;border-radius:4px;background:#244f40}.clock-hand-hour{height:28px;width:4px;left:calc(50% - 2px)}.clock-hand-minute{height:40px}.clock-hand-second{height:43px;width:1px;background:#c48d47;left:calc(50% - .5px)}.clock-center{position:absolute;width:8px;height:8px;border-radius:50%;background:#244f40;left:calc(50% - 4px);top:calc(50% - 4px)}.employee-page .leave-calendar-day.attendance-expanded{min-height:72px;flex-direction:column;gap:0}.employee-page .leave-calendar-day .calendar-punch-time{font-size:10px;font-weight:500;line-height:1.35;margin:2px 0 0;white-space:nowrap}@media(max-width:550px){.world-clocks{padding:16px}.world-clock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-clock-card{padding:12px 6px}.world-clock-digits{font-size:23px}.world-clock-date{font-size:10px}.world-clock-card h3{font-size:12px}.world-clock-editor .check-grid{grid-template-columns:1fr}.world-clock-heading{gap:12px}}
.employee-page .leave-calendar-day.attendance-work .calendar-punch-time{font-size:10px;font-weight:500;line-height:1.35;margin:2px 0 0;white-space:nowrap}
.world-clock-placement{display:flex;align-items:center;gap:12px;font-size:13px;margin-bottom:16px}.world-clock-placement select{width:auto;max-width:100%;padding:7px 10px;font-size:13px}
.employee-page .world-clocks{padding:12px 14px;border-radius:12px;margin:12px 0}.world-clocks .world-clock-heading{gap:8px;margin-bottom:10px}.world-clocks .world-clock-heading h2{font-size:16px;margin:0}.world-clocks .world-clock-heading p{display:none}.world-clocks .world-clock-tools{gap:4px}.world-clocks .world-clock-tools button{font-size:12px;min-height:30px;padding:5px 8px}.world-clocks .world-clock-placement{gap:6px;margin:0;font-size:12px}.world-clocks .world-clock-placement select{font-size:12px;min-height:30px;padding:5px 7px}.world-clocks .world-clock-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:6px}.world-clocks .world-clock-card{padding:8px;border-radius:9px;display:grid;grid-template-columns:1fr;text-align:left;gap:3px;align-content:center}.world-clocks .world-clock-card h3{font-size:12px;line-height:1.35;margin:0;overflow-wrap:anywhere}.world-clocks .world-clock-digits,.world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:19px;line-height:1.2;letter-spacing:0}.world-clocks .world-clock-date{font-size:10px;line-height:1.35;margin:0;white-space:nowrap}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{grid-template-columns:48px minmax(0,1fr);column-gap:8px}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{width:44px;height:44px;border-width:2px;margin:0;grid-column:1;grid-row:1/4;align-self:center}.world-clocks .world-clock-grid[data-mode=analog] h3,.world-clocks .world-clock-grid[data-mode=analog] time,.world-clocks .world-clock-grid[data-mode=analog] .world-clock-date{grid-column:2}.world-clocks .clock-marker{inset:1px}.world-clocks .clock-marker::before{height:3px;width:1px}.world-clocks .clock-hand-hour{height:11px;width:2px;left:calc(50% - 1px)}.world-clocks .clock-hand-minute{height:16px;width:2px;left:calc(50% - 1px)}.world-clocks .clock-hand-second{height:18px}.world-clocks .clock-center{width:4px;height:4px;left:calc(50% - 2px);top:calc(50% - 2px)}.world-clocks .world-clock-editor{padding:8px;margin:0 0 8px}.world-clocks .world-clock-editor legend{font-size:12px}.world-clocks .world-clock-editor .check-grid{display:flex;flex-wrap:wrap;gap:5px}.world-clocks .world-clock-editor .checkbox{font-size:12px;margin:0;padding:5px 6px;gap:5px;border:1px solid #dce9e3;border-radius:6px;background:#fff;min-width:0}.world-clocks .world-clock-editor input{width:14px;height:14px;margin:0}.world-clocks .world-clock-editor small{display:block;font-size:10px;margin-top:6px}.world-clocks .world-clock-actions{grid-column:1/-1;gap:4px;margin:2px 0 0}.world-clocks .world-clock-actions button{min-height:24px;padding:2px 8px;font-size:12px}.world-clock-second-pane>h2{font-size:16px;margin:0 0 10px}.world-clock-second-pane{margin-top:8px}
@media(min-width:1200px){.employee-page main[data-clock-position=left],.employee-page main[data-clock-position=right],.employee-page main[data-clock-position=both]{max-width:min(1100px,calc(100% - 520px))}.employee-page .world-clocks:not([data-position=top]){position:fixed;top:96px;left:16px;width:232px;max-height:calc(100dvh - 112px);padding:12px;margin:0;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;z-index:10}.employee-page .world-clocks[data-position=right]{left:auto;right:16px}.world-clocks:not([data-position=top]) .world-clock-grid{grid-template-columns:1fr}.world-clocks:not([data-position=top]) .world-clock-placement{flex-wrap:wrap;gap:4px}.world-clocks[data-position=both] .world-clock-second-pane{position:fixed;right:16px;top:96px;width:232px;max-height:calc(100dvh - 112px);box-sizing:border-box;overflow:auto;overscroll-behavior:contain;padding:12px;background:#fff;border:1px solid #d8e7e1;border-radius:12px;margin:0;scrollbar-width:thin}}
@media(max-width:1199px){.world-clocks[data-position=both]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.world-clocks[data-position=both]>.world-clock-heading,.world-clocks[data-position=both]>.world-clock-editor{grid-column:1/-1}.world-clocks[data-position=both] .world-clock-second-pane{margin:0}.world-clocks[data-position=both] .world-clock-second-pane>h2{display:none}.world-clocks[data-position=both] .world-clock-grid{grid-template-columns:1fr}}
@media(min-width:551px){.world-clocks[data-position=top] .world-clock-grid[data-mode=analog]{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}.world-clocks:not([data-position=top]) .world-clock-card{padding:6px}}
@media(max-width:550px){.world-clocks .world-clock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{grid-template-columns:32px minmax(0,1fr);column-gap:5px}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{width:28px;height:28px}.world-clocks .clock-hand-hour{height:7px}.world-clocks .clock-hand-minute{height:10px}.world-clocks .clock-hand-second{height:12px}.world-clocks .world-clock-date{font-size:9px;white-space:normal}.world-clocks .world-clock-digits,.world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:16px}}
/* Quiet, compact clock widgets: segmented controls and watch-style faces. */
.employee-page .world-clocks,.world-clocks[data-position=both] .world-clock-second-pane{background:linear-gradient(160deg,#ffffff,#f7faf9);border:1px solid #e1e9e5;box-shadow:0 8px 28px #244a3c08;border-radius:16px}
.world-clocks[hidden]{display:none!important}.world-clocks .world-clock-heading h2,.world-clock-second-pane>h2{font-size:14px;font-weight:650;letter-spacing:.02em;color:#35594d}.world-clocks .world-clock-heading h2::before,.world-clock-second-pane>h2::before{content:'◷';display:inline-block;margin-right:7px;color:#749a8b;font-size:17px;vertical-align:-1px}.world-clocks .world-clock-tools{align-items:center;gap:7px}.world-clock-modes{display:flex;padding:3px;background:#edf2ef;border-radius:9px;gap:2px}.world-clocks .world-clock-modes button{border:0;background:transparent;border-radius:6px;box-shadow:none;font-size:11px;font-weight:500;color:#718078;padding:4px 8px;min-height:25px;line-height:1.3}.world-clocks .world-clock-modes [aria-pressed=true]{background:#fff;color:#1e6753;box-shadow:0 1px 4px #274d3e14}.world-clocks .world-clock-tools .world-clock-edit-button{border:0;background:transparent;min-height:30px;width:30px;padding:2px;color:#688376;font-size:18px;box-shadow:none}.world-clocks .world-clock-edit-button:hover{background:#e7f0eb}.world-clocks .world-clock-placement{color:#8a9991;font-weight:400;font-size:10px}.world-clocks .world-clock-placement select{border:0;background:#eff4f1;color:#507563;font-size:11px;min-height:27px;padding:4px 7px;border-radius:7px;box-shadow:none}.world-clocks .world-clock-grid{gap:4px}.world-clocks .world-clock-card{border:0;border-radius:10px;background:#edf4f080;box-shadow:none;gap:2px;padding:8px}.world-clocks .world-clock-card h3{color:#6b8175;font-size:11px;font-weight:500;line-height:1.35}.world-clocks .world-clock-digits,.world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{color:#234d3c;font-size:20px;font-weight:600;letter-spacing:.01em;line-height:1.15}.world-clocks .world-clock-date{color:#98a59e;font-size:9px;font-weight:400;line-height:1.4}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{background:radial-gradient(circle at 35% 25%,#3d6c5b,#1e4537);border:2px solid #d4e1d9;box-shadow:0 2px 5px #25493b13,inset 0 0 0 1px #ffffff12}.world-clocks .clock-marker::before{background:#b9cfc3}.world-clocks .clock-hand{background:#f2f6ee}.world-clocks .clock-hand-second{background:#d6b67d}.world-clocks .clock-center{background:#e5d6b6;border:1px solid #244c3b;box-sizing:border-box}.world-clocks .world-clock-editor{border:0;background:#eff5f2;border-radius:10px}.world-clocks .world-clock-editor .checkbox{border:0;background:#fff;font-size:11px;border-radius:6px;color:#607e6e}.world-clocks .world-clock-editor legend{color:#6b8175;font-size:11px}
@media(min-width:1200px){.world-clocks .world-clock-heading{gap:7px}.world-clocks .world-clock-heading>div:first-child{flex:1 1 100%}.world-clocks .world-clock-placement{flex:1 1 100%;margin:0 0 3px}.world-clocks .world-clock-placement>span{display:none}.world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{column-gap:9px}.world-clocks .world-clock-card{padding:7px}.world-clock-second-pane>h2{margin-bottom:12px}}
@media(max-width:550px){.world-clocks .world-clock-digits,.world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:16px}.world-clocks .world-clock-card h3{font-size:10px}.world-clocks .world-clock-date{font-size:9px}}
.employee-page .world-clocks[data-position=top]{position:sticky;top:8px;z-index:20;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;box-shadow:0 6px 24px #244a3c12}
.personal-memos{border:1px solid #dce7e1;background:#fff;border-radius:16px;padding:18px 22px;margin:18px 0}.memo-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.memo-heading h2{font-size:20px;margin:0}.memo-heading>button{margin-left:auto;padding:8px 12px;font-size:13px;min-height:34px}.memo-count{font-size:11px;color:#6f897b;background:#edf5f0;border-radius:20px;padding:4px 8px}.memo-hint,.memo-empty{font-size:12px;color:#8a9b90;line-height:1.6}.memo-message,.memo-error{font-size:12px;color:#b34f4f}.memo-message:empty,.memo-error:empty{display:none}.memo-list{display:grid;gap:8px}.memo-card{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f5f9f6;border:1px solid #e6eee8;border-radius:10px}.memo-card>input{width:18px;height:18px;margin:3px 0 0;flex-shrink:0;accent-color:#19795d}.memo-copy{flex:1;min-width:0;overflow-wrap:anywhere}.memo-copy strong{font-size:14px;color:#355b48}.memo-copy p{font-size:13px;color:#6a8073;margin:5px 0 0;white-space:pre-wrap;line-height:1.6}.memo-card[data-completed=true]{background:#fafbf9}.memo-card[data-completed=true] .memo-copy{opacity:.55}.memo-card[data-completed=true] strong{text-decoration:line-through}.memo-actions{display:flex;gap:4px;flex-shrink:0}.memo-actions button,.memo-deleted-row button{background:transparent;border:0;min-height:28px;padding:3px 6px;font-size:12px;color:#789083}.memo-trash{font-size:12px;color:#91a096;margin-top:12px}.memo-deleted-row{display:flex;justify-content:space-between;padding:6px;gap:12px}.memo-dialog{width:min(480px,calc(100vw - 32px));border:1px solid #dce7df;border-radius:16px;padding:22px;max-height:calc(100dvh - 40px);overflow:auto;box-sizing:border-box;box-shadow:0 20px 60px #153b3329}.memo-dialog::backdrop{background:#15352e55}.memo-dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.memo-dialog-heading h2{font-size:20px}.memo-dialog-heading button{font-size:22px;padding:2px 10px;min-height:32px}.memo-dialog label{display:block;font-size:13px;margin:12px 0;color:#426952}.memo-dialog input:not([type=checkbox]),.memo-dialog textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box;font:inherit;line-height:1.5;padding:10px;border:1px solid #ccddd2;border-radius:8px;resize:vertical}.memo-dialog .checkbox{display:flex;align-items:center;gap:8px}.memo-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.memo-dialog-actions button{font-size:13px;min-height:36px;padding:7px 16px}
@media(max-width:650px){.personal-memos{padding:16px}.memo-card{gap:8px;flex-wrap:wrap}.memo-actions{margin-left:auto}.memo-copy{flex-basis:calc(100% - 32px)}}
.employee-announcements{background:#fff;border:1px solid #dce7df;border-radius:16px;padding:18px 22px;margin:18px 0}.announcement-heading{display:flex;gap:12px;align-items:center;margin-bottom:12px}.announcement-heading h2{font-size:20px;margin:0}.announcement-count,.announcement-priority{font-size:11px;padding:4px 8px;border-radius:20px;background:#eaf4ee;color:#3a785b}.announcement-list{display:grid;gap:10px}.announcement-card{border:1px solid #e1e9e3;border-radius:12px;background:#fafcfb;padding:16px;margin-bottom:12px}.announcement-card[data-priority=urgent]{border-left:3px solid #cf715a}.announcement-card[data-priority=important]{border-left:3px solid #c5a05b}.announcement-card-heading{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.announcement-card-heading h3{font-size:16px;margin:0}.announcement-priority[data-priority=urgent]{background:#fff0e8;color:#b05945}.announcement-priority[data-priority=important]{background:#fbf3de;color:#967339}.announcement-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:14px;color:#4d695a;margin:12px 0}.announcement-publisher{font-size:11px;color:#8a9d90}.announcement-read{display:flex;align-items:center;gap:8px;font-size:12px;color:#3e8162;margin-top:12px}.announcement-read input{width:17px;height:17px;accent-color:#268468}.announcement-card[data-read=true]{background:#fcfdfb}.announcement-card[data-read=true] .announcement-content{color:#819386}.announcement-error{font-size:12px;color:#b35947}.announcement-error:empty{display:none}.announcement-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.announcement-admin-toolbar p{font-size:12px;line-height:1.6}.announcement-admin-toolbar button{flex-shrink:0}.announcement-admin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.announcement-admin-actions button{font-size:12px;min-height:32px;padding:6px 10px}.announcement-unread{color:#b17742;font-size:13px}.announcement-read-done{color:#36805a}.announcement-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #d5e3d9;border-radius:16px;padding:22px;box-sizing:border-box}.announcement-dialog::backdrop{background:#15382e55}.announcement-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.announcement-dialog-heading h2{font-size:20px}.announcement-dialog-heading button{min-height:30px;padding:2px 10px;font-size:22px}.announcement-dialog form>label{display:block;margin:12px 0;font-size:13px}.announcement-dialog input:not([type=checkbox]),.announcement-dialog textarea,.announcement-dialog select{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:9px;border:1px solid #cbded1;border-radius:8px;font:inherit}.announcement-dialog form>button{margin-top:14px}.announcement-audience fieldset{border:1px solid #dfebe2;border-radius:10px;padding:10px;margin:10px 0}.announcement-audience legend{font-size:12px}.announcement-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:180px;overflow:auto}.announcement-choice-grid .checkbox{font-size:12px;gap:6px;margin:0}.announcement-choice-grid input{width:15px;height:15px}.announcement-report{width:100%;font-size:12px;min-width:0}.announcement-recipient-preview{line-height:1.8;font-size:13px;max-height:200px;overflow:auto}.announcement-dialog .muted{font-size:12px;line-height:1.6}
@media(max-width:650px){.employee-announcements{padding:16px}.announcement-admin-toolbar{flex-wrap:wrap}.announcement-choice-grid{grid-template-columns:1fr}.announcement-report td,.announcement-report th{padding:8px 4px}}
.employee-page[data-header-clocks=true]>header{position:fixed;inset:0 0 auto;z-index:50;box-sizing:border-box;display:flex;align-items:center;gap:14px;padding:10px 20px;background:#fffffff5;border-bottom:1px solid #e0e9e3;box-shadow:0 2px 12px #2d4b3908;backdrop-filter:blur(10px)}
.employee-page[data-header-clocks=true] main{padding-top:calc(var(--clock-header-height,74px) + 12px)}
.employee-page[data-header-clocks=true]>header>.brand{flex-shrink:0}.employee-page[data-header-clocks=true]>header>.header-right{flex-shrink:0}
.employee-page[data-header-clocks=true]>header .world-clocks[data-position=top]{position:relative;top:auto;flex:1;min-width:0;display:flex;align-items:center;gap:4px;max-height:none;overflow:visible;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.employee-page[data-header-clocks=true]>header .world-clocks>.world-clock-grid{display:flex;gap:8px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain;align-items:center;order:0;padding:2px 0}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{display:flex;flex-direction:column;align-items:flex-start;flex:0 0 auto;padding:3px 10px;gap:2px;background:transparent;border-radius:0;border-left:1px solid #e6ede8;min-width:92px}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card h3{font-size:10px;font-weight:500;white-space:nowrap;line-height:1.3;color:#80968a}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-digits,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:17px;line-height:1.2;font-weight:600;letter-spacing:.01em;color:#315b45}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-face,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-date,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-actions{display:none!important}
.employee-page[data-header-clocks=true]>header .world-clocks>.world-clock-heading{order:1;display:flex;margin:0;gap:0;flex:0 0 auto}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-heading>div:first-child,.employee-page[data-header-clocks=true]>header .world-clocks[data-editing=false] .world-clock-modes,.employee-page[data-header-clocks=true]>header .world-clocks[data-editing=false] .world-clock-placement{display:none}
.employee-page[data-header-clocks=true]>header .world-clocks[data-editing=true]>.world-clock-heading{position:absolute;top:50px;right:0;z-index:52;width:236px;display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:#fff;border:1px solid #dce6df;border-radius:10px;box-shadow:0 10px 24px #1d40371c;box-sizing:border-box}
.employee-page[data-header-clocks=true]>header .world-clocks[data-editing=true] .world-clock-heading .world-clock-placement{display:flex;flex:1 1 100%}
.employee-page[data-header-clocks=true]>header .world-clocks>.world-clock-editor{position:absolute;top:144px;right:0;z-index:52;width:236px;max-height:calc(100dvh - 230px);overflow:auto;margin:0;background:#f7faf8;box-sizing:border-box;box-shadow:0 10px 24px #1d40371c;border:1px solid #dce6df}
.employee-page .punch-power{background:#a94c00;color:#fff;border:2px solid #ffbd66}.employee-page .punch-network{background:#b42318;color:#fff;border:2px solid #ffb4ab}.attendance-status.state-power{background:#fff0cc;color:#8a3b00;border:1px solid #efa633}.attendance-status.state-network{background:#ffe4e0;color:#a11c13;border:1px solid #ee8b80}.monitor-outage-state{border:0;min-height:30px;padding:5px 9px;cursor:pointer;font-size:inherit}.monitor-outage-state:hover{box-shadow:0 0 0 2px #88ba9f}.punch-outage-confirm{border:2px solid #e08a27;background:#fff8ed}.punch-outage-confirm h2{color:#963d00}.punch-outage-confirm .dialog-actions button:last-child{background:#a94c00;color:#fff}
.delivery-recovery:not([hidden]){display:grid;gap:10px;margin:12px 0;padding:14px;border:1px solid #d79a40;border-radius:12px;background:#fff7e6;color:#693d08}
.sync-status:not([hidden]){font-size:14px;line-height:1.5;border:1px solid #d79a40;background:#fff7e6;color:#693d08;border-radius:8px;padding:8px 12px;margin:8px 0}
.delivery-recovery>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:14px}
.delivery-recovery button,#punch-history button{min-height:36px;padding:6px 12px;font-size:14px;margin-left:8px}
@media(max-width:900px){.employee-page[data-header-clocks=true]>header{flex-wrap:wrap;gap:8px;padding:8px 14px}.employee-page[data-header-clocks=true]>header>.brand{order:0}.employee-page[data-header-clocks=true]>header>.header-right{order:1;flex:1;justify-content:flex-end}.employee-page[data-header-clocks=true]>header .world-clocks[data-position=top]{order:2;flex-basis:100%;max-width:100%}.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card{min-width:90px;padding:2px 8px}.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-digits{font-size:15px}}

.monitoring main{max-width:none;padding:12px 20px 24px}
.monitoring #admin>.page-heading,.monitoring #admin>.release-state{display:none}
.monitoring #notice:empty{display:none}
.monitoring #main-nav{margin-bottom:4px;gap:2px}
.monitoring #main-nav button{padding:8px 10px;font-size:14px;min-height:36px}
.monitoring #management-panel>.section-heading{padding:8px 0;align-items:center}
.monitoring #management-filters{gap:8px;margin-bottom:8px}
.monitoring #management-filters label{width:180px;font-size:12px;gap:3px}
.monitoring #management-filters input,.monitoring #management-filters select{min-height:34px;padding:6px 8px}
.monitoring #management-filters>.monitor-department-filter{flex:1 1 100%;margin:0;padding:8px 12px 12px;border:1px solid #cbd6d0;border-radius:6px;background:#fff}
.monitor-department-filter legend{font-size:14px;padding:0 6px}
.monitor-department-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:14px}
.monitor-department-heading>div{display:flex;gap:6px}
.monitor-department-heading button{min-height:34px;padding:6px 12px;font-size:14px}
.monitor-department-options{display:flex;flex-wrap:wrap;gap:8px}
.monitoring #management-filters .monitor-department-options label{display:flex;flex:0 1 auto;width:auto;min-height:42px;max-width:100%;gap:8px;padding:8px 12px;border:1px solid #cbd6d0;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;overflow-wrap:anywhere}
.monitoring #management-filters .monitor-department-options label:has(:checked){color:#086a58;border-color:#087965;background:#edf7f1}
.monitoring #management-filters .monitor-department-options label:focus-within{outline:2px solid #087965;outline-offset:2px}
.monitoring #management-filters .monitor-department-options input{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0}
.monitor-toolbar{justify-content:flex-start;gap:8px;margin-bottom:10px}
.monitor-grid[data-mode=camera] .monitor-person[data-screen-viewing=true] .monitor-frame[data-kind^=screen]{display:block}
.monitor-person[data-screen-viewing=true] .monitor-streams{grid-template-columns:repeat(2,minmax(0,1fr))}
.monitor-toolbar button{font-size:13px;min-height:34px;padding:6px 10px}
.monitor-toolbar>a{font-size:13px;margin-right:auto}
.monitor-toolbar .monitor-density{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;white-space:nowrap}
.monitor-density select{width:132px;min-height:34px;padding:5px 8px}
.monitor-toolbar .monitor-shared{margin:0;font-size:13px;gap:5px}
#monitor-share-count{font-size:12px;font-variant-numeric:tabular-nums}
.monitor-grid{--cols:4;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:10px;margin-top:0;align-items:start}
.monitor-grid[data-density="3"]{--cols:3}
.monitor-grid[data-density="6"]{--cols:6}
.monitor-grid[data-duty-only=true] .monitor-person:not([data-duty=true]){display:none}
.monitor-grid .monitor-person[data-department-color]{border-top:4px solid var(--department-color,#64748b)}
.monitor-person[data-position-fixed=true] .monitor-drag{color:#2563eb}
.department-color-swatch{display:inline-block;width:28px;height:28px;border-radius:6px;border:1px solid #0002;vertical-align:middle}
.person-nationality-flag{display:inline-block;margin-left:7px;font-size:1.15em;line-height:1;vertical-align:baseline;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
#fields input[type=color]{width:84px;height:44px;padding:4px;cursor:pointer}
.monitor-grid .monitor-person[data-camera-warning=warning] .monitor-frame[data-kind=camera]{background:#fff1f0!important}
.monitor-grid .monitor-person[data-camera-warning=critical]{outline:2px solid #dc2626;outline-offset:-1px}
.monitor-grid .monitor-person[data-camera-warning=critical] .monitor-frame[data-kind=camera]{background:#fee2e2!important}
.monitor-grid .monitor-person[data-camera-warning=critical] header{background:#fff1f0!important}
.monitor-frame .monitor-camera-warning-text{position:absolute;top:auto;bottom:6px;left:6px;right:6px;background:#fff1f0;color:#9f1239;font-size:11px;font-weight:700;z-index:2;text-align:center;border-radius:5px;padding:4px}
.monitor-person[data-camera-warning=critical] .monitor-camera-warning-text{background:#dc2626;color:white}
.monitor-person[data-camera-warning] .monitor-camera-warning-text[hidden]{display:none}
.monitor-person header{min-height:38px;padding:6px 8px;gap:6px;flex-wrap:nowrap}
.monitor-person header>div{min-width:0;flex:1;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.monitor-person header strong{font-size:14px;overflow-wrap:anywhere;line-height:1.2}
.monitor-person header small{font-size:11px;margin:0;overflow-wrap:anywhere;line-height:1.2}
.monitor-person .attendance-status{font-size:11px;padding:3px 5px}
.monitor-streams{aspect-ratio:32/10;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);overflow:hidden}
.monitor-streams:has(.monitor-frame[data-kind=screen2]){aspect-ratio:16/10}
.monitor-grid[data-mode=camera] .monitor-streams,.monitor-grid[data-mode=screen] .monitor-streams{aspect-ratio:16/9}
.monitor-grid[data-mode=screen] .monitor-streams:has(.monitor-frame[data-kind=screen2]){grid-template-columns:repeat(2,minmax(0,1fr))}
.monitor-frame{aspect-ratio:auto;min-height:0;overflow:hidden}
.monitor-frame video{display:block;object-fit:contain}
.monitor-frame>span{left:4px;top:4px;font-size:10px;padding:2px 4px;max-width:calc(100% - 8px);overflow-wrap:anywhere}
.monitor-controls{padding:4px 6px;gap:4px;min-height:32px}
.monitor-controls>span{font-size:11px;line-height:1.2}
.monitor-controls .icon{width:28px;min-width:28px;min-height:26px;padding:4px}
.monitor-controls svg{width:16px;height:16px}
#management-panel:fullscreen{background:#f5f7f6;padding:12px 16px;overflow:auto}
.monitor-person:fullscreen{display:flex;background:#141916;padding:0}
.monitor-person:fullscreen>header,.monitor-person:fullscreen>.monitor-controls{background:#fff;flex-shrink:0}
.monitor-grid .monitor-person:fullscreen .monitor-streams{aspect-ratio:auto;height:0;flex:1;grid-auto-rows:minmax(0,1fr)}
.monitor-person:fullscreen .monitor-frame{height:auto;min-height:0}
.monitor-frame{background:#edf2f0}
.monitor-frame video{background:#141916}
.monitor-frame:not([data-media-state=live]) video{visibility:hidden}
.monitor-placeholder{position:absolute;inset:32px 8px 8px;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;color:#496057;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.monitor-frame[data-media-state=live] .monitor-placeholder{display:none}
.monitor-frame[data-media-state=connecting] .monitor-placeholder::before{content:'';width:14px;height:14px;flex:0 0 14px;margin-right:8px;border:2px solid #9abbb0;border-top-color:#087965;border-radius:50%;animation:monitor-spin 1s linear infinite}
.monitor-frame[data-media-state=error]{background:#fff2e8}
.monitor-frame[data-media-state=error] .monitor-placeholder{color:#8a4b17}
.monitor-frame[data-media-state=blocked]{background:#e8f1fd}
.monitor-frame[data-media-state=blocked] .monitor-placeholder{color:#24558a}
.monitor-frame>span{font-size:12px;left:8px;top:6px}
.monitor-controls{padding:10px;flex-wrap:wrap;gap:8px;align-items:flex-start}
.monitor-controls>span{flex:1 1 100%;font-size:14px;line-height:1.5}
.monitor-card-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;width:100%}
.monitor-card-actions button{min-height:40px;font-size:14px;padding:8px 10px}
.monitor-card-actions .icon{margin-left:auto;width:40px;min-width:40px;min-height:40px}
.monitor-person header strong{font-size:16px;line-height:1.4}
.monitor-person header small,.monitor-person .attendance-status{font-size:13px;line-height:1.4}
@keyframes monitor-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.monitor-placeholder::before{animation:none!important}}
@media(max-width:1200px){.monitor-grid[data-density="6"]{--cols:4}.monitor-grid[data-density="4"]{--cols:3}}
@media(max-width:850px){.monitor-grid[data-density]{--cols:2}.monitoring main{padding:10px}.monitoring #management-filters label{flex:1 1 140px;width:auto}.monitor-toolbar>a{margin-right:0}}
@media(max-width:500px){.monitor-grid[data-density]{--cols:1}.monitor-streams{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-toolbar{gap:6px}.monitor-toolbar .monitor-shared{font-size:12px}}
.monitor-person header .monitor-drag{flex:0 0 32px;width:32px;min-height:44px;padding:6px;cursor:grab;touch-action:none;background:transparent;border:1px solid transparent}
.monitor-drag:focus-visible,.monitor-frame:focus-visible{outline:3px solid #0e7564;outline-offset:-3px}
.monitor-drag svg{width:20px;height:20px}.monitor-dragging{outline:3px solid #0e7564;opacity:.75}.monitor-dragging .monitor-drag{cursor:grabbing}
.monitor-frame{cursor:zoom-in}.monitor-frame .monitor-enlarge-hint{left:auto;top:auto;right:6px;bottom:6px;font-size:12px;color:#fff;background:#1b342dcc;pointer-events:none}
.monitor-order-note{font-size:14px;color:#496057;margin:8px 0 12px}
.bulk-email-field{min-width:0;display:grid;gap:8px}.bulk-email-field small{font-size:13px;line-height:1.5;color:#496057;overflow-wrap:anywhere}
.monitor-preview{width:min(1200px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:20px;border:0;border-radius:12px;overflow:auto}
.monitor-preview::backdrop{background:#0c1b18d9}.monitor-preview .dialog-heading h2{font-size:20px;overflow-wrap:anywhere}.monitor-preview .dialog-heading button{flex-shrink:0;min-height:44px}
.preview-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;background:#101a16;border-radius:8px;overflow:hidden}.preview-stage video{display:block;width:100%;height:min(65dvh,720px);object-fit:contain}.preview-stage p{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;color:#fff;padding:24px;text-align:center;font-size:16px;background:#101a16}.preview-stage p[hidden]{display:none}
#management-editor.bulk-editor{width:min(1240px,calc(100% - 24px))}.bulk-person-row{position:relative;margin:12px 0;border:1px solid #cbd6d0;border-radius:8px;padding:14px;background:#f7faf8}.bulk-person-row legend{padding:0 8px}.bulk-row-fields{display:grid;grid-template-columns:1.1fr 1fr 1.4fr 1.3fr 1fr 1fr;gap:12px}.bulk-row-fields label{font-size:14px;margin:0;min-width:0}.bulk-row-fields input,.bulk-row-fields select{width:100%;min-height:44px;font-size:16px;padding:10px;box-sizing:border-box}.bulk-remove{display:block;margin:0 0 12px auto;min-height:44px}.bulk-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}.bulk-defaults label{font-size:14px}.bulk-editor .dialog-actions{position:sticky;bottom:0;background:#fff;padding:16px 0 0}.bulk-editor input[type=password]{font-family:inherit}
@media(max-width:900px){.bulk-row-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-preview{padding:12px}.monitor-preview .dialog-heading{align-items:flex-start;gap:12px}.monitor-preview .dialog-heading h2{font-size:18px}.preview-stage video{height:60dvh}}
@media(max-width:500px){.bulk-row-fields,.bulk-defaults{grid-template-columns:minmax(0,1fr)}.bulk-toolbar{flex-wrap:wrap}.bulk-editor .dialog-actions button{min-height:44px;font-size:16px}.monitor-preview .dialog-heading{flex-wrap:wrap}}
.media-diagnostics{padding:0 12px 12px;font-size:12px;color:#52645d;overflow-wrap:anywhere}.media-diagnostics summary{cursor:pointer;min-height:32px;padding:8px 0}.media-diagnostics small{display:block;line-height:1.5}
.monitor-grid .monitor-person:not([data-screen-viewing=true]) .monitor-frame[data-kind^=screen]{display:none}.monitor-grid .monitor-person:not([data-screen-viewing=true]) .monitor-streams{grid-template-columns:1fr}
.monitor-grid{gap:8px}
.monitor-person header{min-height:36px;padding:4px 6px;gap:4px}
.monitor-person header>div{display:block;overflow:hidden}
.monitor-person header strong{display:block;font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.monitor-person header small{display:block;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1px 0 0}
.monitor-person header .monitor-drag{flex-basis:24px;width:24px;min-height:36px;padding:2px}
.monitor-person .attendance-status{font-size:12px;padding:3px 5px}
.monitor-options{margin:0;border-top:1px solid #d2ddd6}
.monitor-options>summary{display:flex;align-items:center;gap:6px;min-height:32px;padding:4px 8px;box-sizing:border-box;cursor:pointer;font-size:12px;list-style:none}
.monitor-options>summary::-webkit-details-marker{display:none}
.monitor-options>summary [data-media-status]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#496057}
.monitor-options-label{flex-shrink:0;font-weight:600;color:#087965}
.monitor-options-label::before{content:'＋ ';font-weight:400}.monitor-options[open] .monitor-options-label::before{content:'－ '}
.monitor-options>summary:focus-visible{outline:2px solid #087965;outline-offset:-2px}
.monitor-options .monitor-controls{padding:6px 8px;gap:4px;min-height:0}
.monitor-options .monitor-card-actions{gap:4px}
.monitor-options .monitor-card-actions button{min-height:34px;font-size:12px;padding:6px 8px}
.monitor-options .monitor-card-actions .icon{width:34px;min-width:34px;min-height:34px}
.monitor-options .media-diagnostics{padding:0 8px 6px;margin:0}
.monitor-person:not(:fullscreen) .monitor-frame[data-kind=camera] video{object-fit:cover;object-position:50% 40%;transform:scale(1.12)}
.monitor-person:fullscreen .monitor-frame video{object-fit:contain;transform:none}
.monitoring #management-filters{align-items:flex-end}
.monitoring #management-filters>.monitor-department-filter{flex:0 1 280px;min-width:200px;padding:0;margin:0}
.monitor-department-filter>summary{min-height:40px;box-sizing:border-box;padding:8px 10px;margin:0;cursor:pointer;gap:8px;list-style:none}
.monitor-department-filter>summary::-webkit-details-marker{display:none}
.monitor-department-filter>summary::after{content:'＋';color:#087965}
.monitor-department-filter[open]>summary::after{content:'－'}
.monitor-department-filter[open]{flex-basis:100%!important}
.monitor-department-actions{display:flex;gap:6px;padding:4px 10px 8px}
.monitor-department-actions button{min-height:36px;padding:6px 12px;font-size:14px}
.monitor-department-filter .monitor-department-options{padding:0 10px 10px}
.monitor-toolbar{position:sticky;top:8px;z-index:5;background:#f5f7f6;padding:6px 0;border-bottom:1px solid #d2ddd6;margin-bottom:6px}
.monitor-alerts{margin:0 0 6px;border:1px solid #d2ddd6;border-radius:6px;background:white;font-size:14px}
.monitor-alerts>summary{min-height:36px;box-sizing:border-box;padding:7px 10px;cursor:pointer}
#camera-missing-count{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;font-variant-numeric:tabular-nums;background:#edf2f0;color:#496057}
#camera-missing-count[data-warning=true]{background:#fff0c5;color:#805a06;font-weight:600}
.monitor-alerts-body{padding:0 10px 10px}.monitor-alerts-body>p{margin:6px 0;font-size:13px}
.monitor-order-note{margin:4px 0 8px;font-size:12px}
.monitor-person:fullscreen>.monitor-options{background:white;flex-shrink:0}
@media(max-width:850px){.monitor-toolbar{top:0}.monitoring #management-filters>.monitor-department-filter{flex:1 1 100%;min-width:0}.monitoring #management-filters label{min-width:0}.monitor-toolbar .monitor-density{margin-left:auto}.monitor-toolbar>a{display:none}.monitor-options>summary,.monitor-options .monitor-card-actions button,.monitor-department-filter>summary,.monitor-department-actions button{min-height:44px}.monitor-options .monitor-card-actions .icon{width:44px;min-width:44px;min-height:44px}}
@media(max-width:500px){.monitor-grid[data-density="4"],.monitor-grid[data-density="6"]{--cols:2}.monitoring main{padding:8px}.monitor-toolbar{gap:4px}.monitor-toolbar #connect-all{font-size:12px}.monitor-toolbar .monitor-density select{width:120px}.monitor-person header{gap:2px;padding:4px}.monitor-person header .monitor-drag{flex-basis:20px;width:20px;min-height:44px}.monitor-person .attendance-status{font-size:12px;padding:3px}.monitor-person header small{font-size:12px}.monitor-options>summary{padding:4px 6px}.monitor-options>summary [data-media-status]{font-size:12px}.monitor-options .monitor-card-actions{display:grid;grid-template-columns:1fr 1fr}.monitor-options .monitor-card-actions button{padding:6px 4px}.monitor-options .monitor-card-actions .icon{margin-left:0;width:100%}.monitor-frame .monitor-enlarge-hint{font-size:12px;right:4px;bottom:4px}.monitor-placeholder{font-size:12px;padding:4px;inset:26px 4px 4px}}
@media(max-width:350px){.monitor-grid[data-density]{--cols:1}}
.monitor-person header{position:relative;height:56px;min-height:56px;box-sizing:border-box}
.monitor-person header[data-nationality]:not([data-nationality=""]){overflow:hidden;background:linear-gradient(100deg,#fff 30%,#f8fafc)}
.monitor-person header[data-nationality]:not([data-nationality=""])::before{content:'';position:absolute;inset:0 0 0 35%;background-image:var(--nationality-flag,linear-gradient(135deg,#94a3b8,#e2e8f0));background-size:auto 100%;background-repeat:no-repeat;background-position:right center;opacity:.09;mask-image:linear-gradient(to right,transparent,#000 45%);pointer-events:none;z-index:0}
.monitor-person header[data-nationality]>button,.monitor-person header[data-nationality]>.attendance-status{position:relative;z-index:1}
.monitor-person header[data-nationality]>div{z-index:1}
.monitor-person header[data-nationality=vn]:not([data-nationality=""])::before{inset:0 0 0 40%;background-size:auto 120%;background-position:right center;opacity:.20;mask-image:linear-gradient(to right,transparent,#000 42%)}
.monitor-person header[data-nationality=tw]:not([data-nationality=""])::before,.monitor-person header[data-nationality=cn]:not([data-nationality=""])::before{inset:0 0 0 32%;background-size:auto 115%;background-position:right center;opacity:.24;mask-image:linear-gradient(to right,transparent,#000 42%)}
.monitor-nationality-scope{padding:10px 12px;border:1px solid #d2ddd6;border-radius:8px;margin:8px 0}
.monitor-nationality-scope>label{font-weight:700;margin:0 0 8px}.monitor-nationality-options{padding-left:12px;border-left:3px solid #e4eeea}.monitor-nationality-options .check-grid{margin-top:8px}
.monitor-person[data-camera-warning=critical] header::before{opacity:0!important}
.monitor-camera-exemption{position:absolute;right:8px;bottom:5px;display:inline-block;margin:0;padding:2px 7px;border-radius:5px;background:#7c3aed;color:#fff;font-size:11px;line-height:1.3;font-weight:600}
.monitor-person[data-camera-exempt=true] header .attendance-status{align-self:flex-start;margin-top:1px}
.monitor-person[data-camera-exempt=true]{border-color:#bb95ef}
.monitor-person[data-camera-exempt=true] .monitor-frame[data-kind=camera][data-media-state=idle]{background:#eadbff}
.monitor-person[data-camera-exempt=true] .monitor-frame[data-kind=camera][data-media-state=idle] .monitor-placeholder{color:#6528a6;font-weight:600}
.monitor-person[data-camera-exempt=true] .monitor-options{background:#f6efff;border-top-color:#cfb4f2}
.monitor-person[data-camera-exempt=true] .monitor-options>summary [data-media-status]{color:#6528a6}
.monitor-avatar-small{float:left;width:38px;height:38px;object-fit:cover;border-radius:50%;margin-right:8px}
.monitor-avatar-large{position:absolute;width:clamp(48px,33%,110px);height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;left:50%;top:40%;transform:translate(-50%,-50%);box-shadow:0 2px 10px #6528a633}
.monitor-frame:not([data-media-state=idle]) .monitor-avatar-large{display:none}
.monitor-frame[data-media-state=idle] .monitor-avatar-large:not([hidden])~.monitor-placeholder{top:auto;bottom:18px;min-height:0;height:auto;display:block;text-align:center;position:absolute;width:100%;padding:0}
.monitor-avatar-fallback{position:absolute;width:clamp(48px,33%,110px);aspect-ratio:1;left:50%;top:40%;transform:translate(-50%,-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d6e8df;color:#28705a;font-size:32px;font-weight:700}
.monitor-frame[data-avatar-mode=true]{background:linear-gradient(145deg,#f3f8f5,#dfede6);container-type:size}
.monitor-frame[data-avatar-mode=true] .monitor-placeholder{top:auto;bottom:18px;min-height:0;height:auto;display:block;text-align:center;position:absolute;left:8px;right:8px;padding:0;font-size:13px}
.monitor-signature{position:absolute;left:55%;top:6px;width:clamp(56px,26%,104px);height:24px;padding:3px 6px;border:1px solid #ffffffc9;border-radius:7px;background:#ffffffed;color:#3b4654;box-shadow:none;z-index:2;font-size:11px;line-height:16px;text-align:center;user-select:text;box-sizing:border-box}
.signature-viewport{height:16px;overflow:hidden;white-space:nowrap;text-align:left}
.signature-scroll{display:inline-block;white-space:nowrap;line-height:16px;will-change:transform}
.monitor-frame[data-avatar-mode=true] .monitor-avatar-large,.monitor-frame[data-avatar-mode=true] .monitor-avatar-fallback{--avatar-size:min(33cqw,110px,max(24px,calc(100cqh - 80px)));left:50%;top:50%;width:var(--avatar-size);height:var(--avatar-size)}
.monitor-frame[data-avatar-mode=true] .monitor-enlarge-hint{top:8px;bottom:auto;right:8px;font-size:10px;padding:3px 5px;border-radius:4px;background:#34433c66}
.monitor-frame[data-has-signature=true] .monitor-enlarge-hint{top:36px}
.monitor-frame[data-kind=camera][data-avatar-mode=true][data-media-state=idle] .monitor-placeholder{width:auto;left:8px;right:8px;top:auto;bottom:10px;font-size:11px;line-height:14px;min-height:0;height:auto;padding:0;text-align:center}
.monitor-person[data-camera-exempt=true] .monitor-frame[data-kind=camera][data-media-state=idle] .monitor-placeholder{display:none}
.monitor-person[data-camera-exempt=true] .monitor-frame[data-avatar-mode=true] .monitor-avatar-large,.monitor-person[data-camera-exempt=true] .monitor-frame[data-avatar-mode=true] .monitor-avatar-fallback{--avatar-size:min(55cqw,180px,max(24px,calc(100cqh - 50px)));top:calc(50% + 15px);font-size:clamp(32px,15cqw,64px)}
.mood-preview{width:min(680px,calc(100% - 24px));background:#faf7ff}
.mood-reader{padding:24px;border-radius:16px;background:#fff;border:1px solid #e5d8f4}
.mood-reader-identity{display:flex;align-items:center;gap:12px;color:#6528a6;font-size:20px}
.mood-reader-identity img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.mood-reader-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(20px,3vw,28px);line-height:1.8;margin:24px 0 0;color:#30243e}
.mood-reader-text[data-empty=true]{font-size:18px;color:#788078}
.monitor-signature[data-scrolling=true] .signature-scroll{animation:signature-scroll var(--signature-duration,16s) linear infinite}
.monitor-signature:hover .signature-scroll,.monitor-signature:focus .signature-scroll{animation-play-state:paused}
.monitor-signature:focus{outline:2px solid #087d6c;outline-offset:2px}
@keyframes signature-scroll{from{transform:translateX(var(--signature-start))}to{transform:translateX(var(--signature-travel))}}
@media(prefers-reduced-motion:reduce){.monitor-signature[data-scrolling=true] .signature-scroll{animation:none;will-change:auto}.signature-viewport{overflow:auto}}
.monitor-person header[data-nationality]:not([data-nationality=""])::before{background-image:url('/flag-fabric-v1.png'),var(--nationality-flag);background-size:cover,auto 100%;background-blend-mode:soft-light,normal;background-position:center,right center;opacity:.30}
.monitor-person header[data-nationality=vn]:not([data-nationality=""])::before{background-size:cover,auto 120%;background-position:center,right center;opacity:.35;background-blend-mode:soft-light}
.monitor-person header[data-nationality=tw]:not([data-nationality=""])::before,.monitor-person header[data-nationality=cn]:not([data-nationality=""])::before{background-size:cover,auto 115%;background-position:center,right center;opacity:.35}
/* One feathered fabric treatment for every flag; cover prevents a visible image edge. */
.monitor-person header[data-nationality]:is([data-nationality=ph],[data-nationality=tw],[data-nationality=cn]):not([data-nationality=""])::before{inset:0 0 0 32%;background-color:var(--flag-base);background-size:cover,100% 100%;background-position:center;opacity:.36;mask-image:linear-gradient(to right,transparent 0%,#0003 20%,#000a 48%,#000 78%)}
.monitor-person header[data-nationality]:is([data-nationality=ph],[data-nationality=tw],[data-nationality=cn]):not([data-nationality=""])::before{inset:0 0 0 22%;background-image:var(--nationality-flag);background-color:transparent;background-blend-mode:normal;background-size:100% 100%;background-position:center;mask-image:none;opacity:.53}

.attendance-page main{max-width:none;padding:8px 20px 16px}
.attendance-page>header{min-height:56px;padding:8px 24px}
.attendance-page .page-heading{padding:4px 0 8px}
.attendance-page .page-heading>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.attendance-page .page-heading h1{font-size:16px;margin:0}
.attendance-page .page-heading p{margin:0;font-size:14px}
.attendance-page .release-state{padding:6px 10px;margin-bottom:8px}
.attendance-page .release-state p{font-size:12px}
.attendance-page #notice{padding:6px 10px;margin-bottom:8px;font-size:14px}
.attendance-page #main-nav{margin-bottom:0}
.attendance-page #main-nav button{padding:8px;min-height:38px}
.attendance-page footer{display:none}
.attendance-page #management-panel>.section-heading{padding:12px 0}
.attendance-page .filters{gap:12px;margin-bottom:12px}
.attendance-page .filters label{display:flex;align-items:center;gap:8px;width:auto}
.attendance-page .filters input,.attendance-page .filters select{width:180px;min-height:36px;padding:6px 10px}
.attendance-toolbar,.attendance-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.attendance-toolbar>.icon{margin-left:auto}
.attendance-legend{font-size:14px;color:#52665b;gap:16px}
.clock-in-label{color:#146347}.clock-out-label{color:#2557a3}
.attendance-page .attendance-scroll{max-height:none;min-height:0;overflow:visible;background:white}
.compact-grid{width:100%;min-width:0;table-layout:fixed;font-variant-numeric:tabular-nums}
.compact-grid.summary-grid{min-width:0}
.attendance-grid.compact-grid th,.attendance-grid.compact-grid td{font-size:14px;min-width:0}
.attendance-grid.compact-grid thead th{height:44px}
.attendance-grid.compact-grid thead small{font-size:12px;margin:0}
.attendance-grid.compact-grid .person-cell{width:164px;min-width:164px;max-width:164px;padding:4px 6px;position:static;vertical-align:middle}
.compact-grid .person-heading{display:flex;align-items:center;gap:5px;line-height:1.25}
.compact-grid .person-cell strong{font-size:14px;display:block;min-width:0;overflow-wrap:anywhere}
.compact-grid .person-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:2px}
.compact-grid .person-cell small{font-size:12px;margin:0;min-width:0;overflow-wrap:anywhere;line-height:1.25}
.compact-grid .employee-totals{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 3px;margin:2px 0 0;font-size:12px;font-weight:400;line-height:1.3}
.compact-grid .employee-totals .net-total{display:inline;margin:0}
.compact-grid .money-actions{display:flex;flex-shrink:0;gap:3px;float:none;margin:0}
.compact-grid .money-actions button{width:24px;min-width:24px;min-height:24px;height:24px;padding:2px}
.compact-grid .person-cell small{padding-right:0}
.compact-grid .person-heading .personnel-drag{width:24px;min-width:24px;min-height:24px;height:24px;padding:0;flex-shrink:0;line-height:1;font-size:14px}
.attendance-grid.compact-grid .punch-kind{position:static;width:22px;min-width:22px;padding:0;font-size:12px}
.compact-grid .day-cell{width:auto;min-width:0;height:32px}
.compact-grid .day-cell button{font-size:12px;min-height:32px;padding:2px;line-height:1.35;white-space:normal;overflow-wrap:normal}
.compact-grid .day-cell button:disabled{opacity:1;cursor:default}
.compact-grid .day-cell button:focus-visible{outline:2px solid #087965;outline-offset:-2px;z-index:1}
.compact-grid.summary-grid .day-cell button{font-size:12px;min-height:38px}
.compact-grid.summary-grid .person-cell small{padding-right:0}
.compact-grid .manual-mark{font-size:10px;margin-left:0}
.attendance-page .attendance-scroll{container-type:inline-size}
.attendance-grid.compact-grid.time-grid{width:100%;min-width:0}
.time-grid[data-days="28"]{--attendance-days:28}.time-grid[data-days="29"]{--attendance-days:29}.time-grid[data-days="30"]{--attendance-days:30}.time-grid[data-days="31"]{--attendance-days:31}
.attendance-grid.time-grid th:not(.person-cell):not(.person-number):not(.punch-kind),.attendance-grid.time-grid .day-cell{width:auto;min-width:0}
.compact-grid .day-cell button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;box-sizing:border-box;overflow:hidden;padding:3px 7px;max-width:100%;font-variant-numeric:tabular-nums}
.compact-grid .day-time,.compact-grid .day-value{display:flex;flex-direction:column;align-items:center;white-space:nowrap;max-width:100%;line-height:1.25}
.compact-grid .day-offset{font-size:9px;color:#63796e;line-height:1.1}
.compact-grid .manual-mark{position:absolute;right:2px;top:2px;font-size:9px;line-height:1}
.attendance-edit-tools{border-top:1px solid #d4dfd9;padding-top:14px;margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.attendance-edit-tools p{width:100%;font-size:13px;color:#647970;margin:0 0 3px}
.attendance-edit-tools .danger{background:#fff4f2;color:#a53227;border:1px solid #e5b3ac}
.attendance-clear-summary{padding:12px 16px;border-radius:10px;background:#fff4f2;border:1px solid #edc9c1;color:#773b32}
.attendance-clear-summary p{font-size:14px;line-height:1.7;margin:6px 0 0}
.compact-grid .summary-total{width:32px;text-align:center;background:#edf3fb;padding:2px}
.compact-grid th.summary-total:nth-last-child(-n+3),.compact-grid .summary-money{width:58px;white-space:normal;padding:3px;font-size:12px}
.net-total{font-weight:650;overflow-wrap:anywhere}
.danger{background:#ac3037;color:#fff}
button[data-delete-person]{color:#ac3037;border-color:#e0b7ba}
.employee-totals .net-total{margin-top:3px}
.compact-grid.summary-grid .day-cell.work{background:#e1f3e8}
.attendance-details{border-bottom:1px solid #d2ddd6;margin-top:8px}
.attendance-details>summary{padding:12px 0;cursor:pointer;font-weight:600;font-size:14px}
#management-panel:fullscreen{overflow:auto;background:#f5f7f6;padding:16px}
#management-panel:fullscreen .attendance-scroll{max-height:none}
.attendance-week{font-size:14px;margin:18px 0 8px}
.attendance-month-totals section{padding:10px 0;border-bottom:1px solid #d2ddd6}
.attendance-month-totals section>div{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:6px;font-size:14px}
.state-rest{background:#eae2fa;color:#62418d}
.punch-rest{background:#7657a3}
@media(max-width:650px){.attendance-page main{padding:12px 10px}.attendance-page .filters label{display:grid;width:calc(50% - 6px)}.attendance-page .filters input,.attendance-page .filters select{width:100%}.attendance-toolbar .segmented{width:100%}.attendance-toolbar .segmented button{flex:1;font-size:14px;padding:8px}.attendance-grid.compact-grid .person-cell{width:124px;min-width:124px;max-width:124px}.compact-grid .person-cell small{padding-right:0}.compact-grid .day-cell button{font-size:12px}}
@media(pointer:coarse){.compact-grid .person-heading .personnel-drag,.compact-grid .money-actions button{width:32px;min-width:32px;height:32px;min-height:32px}.compact-grid .person-meta{flex-wrap:wrap}}
.personnel-drag{cursor:grab;touch-action:none;user-select:none;padding:4px 8px;min-width:32px;min-height:32px;font-weight:700}
.personnel-drag:active{cursor:grabbing}
.personnel-dragging{opacity:.55;outline:2px solid #0e7564}
.personnel-drop{outline:2px dashed #0e7564}
.personnel-drop-before{box-shadow:inset 0 3px #087965}.personnel-drop-after{box-shadow:inset 0 -3px #087965}
.personnel-drop-before>th,.personnel-drop-before>td{box-shadow:inset 0 3px #087965}.personnel-drop-after>th,.personnel-drop-after>td{box-shadow:inset 0 -3px #087965}
.personnel-drag-preview{position:fixed;z-index:10000;pointer-events:none;box-sizing:border-box;padding:10px 14px;border:1px solid #087965;border-radius:8px;background:#fff;color:#22352f;font-size:14px;font-weight:700;box-shadow:0 8px 24px #163e3030;will-change:transform;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-grid .person-stripe-white{--person-stripe:#fff}.compact-grid .person-stripe-tint{--person-stripe:#edf4f1}
.attendance-grid.compact-grid tbody tr .person-cell,.attendance-grid.compact-grid tbody tr .person-number,.attendance-grid.compact-grid tbody tr .punch-kind,.compact-grid tbody tr .day-cell:not(.clock_in):not(.clock_out):not(.off):not(.leave):not(.annual):not(.special):not(.absent){background:var(--person-stripe,#fff)}
.attendance-grid.compact-grid .person-number{width:28px;min-width:28px;max-width:28px;padding:0;text-align:center;vertical-align:middle;color:#61736d;background:#f4f8f6;font-size:13px;font-weight:500}
.compact-grid .person-heading strong{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-grid .person-heading:has(.personnel-drag){cursor:grab;touch-action:none;user-select:none}
.compact-grid .person-heading .personnel-drag{border:0;background:transparent;margin:0;min-height:24px}
.compact-grid .person-meta small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finance-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding:20px;border:1px solid #c6d7d1;border-radius:12px;margin:20px 0;background:#fff}
.finance-form label{display:flex;flex-direction:column;gap:8px}.finance-form button{align-self:end}.finance-message{color:#963c11;grid-column:1/-1}.finance-section{margin-top:28px}.finance-form input[type=file]{max-width:100%;font-size:14px}
.attendance-grid.compact-grid.time-grid .person-cell{width:132px;min-width:0;max-width:132px}
.attendance-grid.compact-grid.time-grid .person-number{width:22px;min-width:0;max-width:22px;font-size:11px}
.attendance-grid.compact-grid.time-grid .punch-kind{width:18px;min-width:0;font-size:10px}
.compact-grid.time-grid .day-cell button,.compact-grid.time-grid .day-cell:is(.clock_in,.clock_out) button{font-size:clamp(7px,calc((100cqw - 174px) / var(--attendance-days,31) * .34),12px);padding:2px 0;letter-spacing:-.25px;font-variant-numeric:tabular-nums}
.attendance-grid.compact-grid.time-grid thead th:not(.person-cell):not(.person-number):not(.punch-kind){font-size:clamp(8px,calc((100cqw - 174px) / var(--attendance-days,31) * .4),13px)}
.attendance-grid.compact-grid.time-grid thead small{font-size:clamp(7px,calc((100cqw - 174px) / var(--attendance-days,31) * .3),10px)}
.compact-grid.time-grid .day-offset{font-size:clamp(6px,calc((100cqw - 174px) / var(--attendance-days,31) * .25),9px);letter-spacing:-.3px}
.compact-grid.time-grid .manual-mark{font-size:7px;top:1px;right:1px}
@media(max-width:650px){.compact-grid.time-grid .day-cell button,.compact-grid.time-grid .day-cell:is(.clock_in,.clock_out) button{font-size:12px}.compact-grid.time-grid .day-offset{font-size:9px}.attendance-grid.compact-grid.time-grid thead th:not(.person-cell):not(.person-number):not(.punch-kind){font-size:12px}.attendance-grid.compact-grid.time-grid thead small{font-size:10px}}
.payroll-sheet{margin:16px 0 24px}
.payroll-sheet-tools{display:flex;align-items:center;justify-content:flex-end;margin-bottom:8px}
.payroll-sheet-tools label{display:flex;align-items:center;gap:8px;font-size:14px}
.payroll-sheet-tools select{width:100px;min-height:36px;padding:5px 8px}
.payroll-sheet-grid{overflow-x:auto;border:1px solid #9aaeb8;border-radius:0}
.payroll-sheet-grid table{width:100%;min-width:1020px;table-layout:fixed;border-collapse:collapse;margin:0}
.payroll-sheet-grid th,.payroll-sheet-grid td{border:1px solid #b2c2cf;padding:0;text-align:center;font-size:16px}
.payroll-sheet-grid th{padding:10px 6px;color:#152631;background:#ffdf73;font-weight:650}
.payroll-sheet-grid th:first-child{width:120px;background:#087965;color:#fff}
.payroll-sheet-grid th:nth-child(2){width:90px;background:#e86058;color:#fff}
.payroll-sheet-grid th:nth-child(3){background:#58dbe6}.payroll-sheet-grid th:nth-child(4){background:#77d694}.payroll-sheet-grid th:last-child{width:24%;background:#6898df;color:#112d52}
.payroll-sheet-grid td{background:#ecf3fc;height:48px;vertical-align:top}
.payroll-sheet-grid td input{display:block;box-sizing:border-box;width:100%;height:48px;min-height:48px;line-height:24px;margin:0;border:0;border-radius:0;background:transparent;text-align:right;padding:12px 10px;font-size:16px;font-family:inherit;font-variant-numeric:tabular-nums;box-shadow:none}
.payroll-sheet-grid td:last-child input{text-align:left}
.payroll-sheet-grid td textarea{display:block;box-sizing:border-box;width:100%;min-height:48px;field-sizing:content;line-height:24px;margin:0;padding:12px 10px;border:0;border-radius:0;background:transparent;text-align:left;font:inherit;line-height:1.5;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:none}
.payroll-sheet-grid td textarea:focus{background:#fff;outline:2px solid #087965;outline-offset:-2px}
.payroll-deduction-details td:last-child,.finance-payroll-notes td{white-space:pre-wrap;overflow-wrap:anywhere}
.payroll-sheet-grid td input:focus{background:#fff;outline:2px solid #087965;outline-offset:-2px}
.payroll-sheet-grid td input[type=number]{appearance:textfield;-moz-appearance:textfield}
.payroll-sheet-grid td input::-webkit-inner-spin-button,.payroll-sheet-grid td input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.payroll-sheet-grid output{display:flex;box-sizing:border-box;align-items:center;justify-content:flex-end;min-height:48px;line-height:24px;padding:12px 10px;text-align:right;font-variant-numeric:tabular-nums}
.payroll-month-label{display:flex;align-items:center;justify-content:center;min-height:48px;line-height:24px;padding:12px 6px;box-sizing:border-box}
.payroll-sheet-grid output.payroll-adjustment-total{display:block;min-height:0;font-size:14px;padding:0 8px 6px;line-height:1.4;color:#596e68;font-weight:400}
.payroll-sheet-grid output[hidden]{display:none}
.payroll-sheet-grid td:nth-child(7){background:#fff4cb;font-weight:700}
.payroll-sheet-hint{font-size:13px;line-height:1.5;margin:8px 0}
.payroll-sheet-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.payroll-sheet-footer button{width:auto;min-width:140px;min-height:40px;padding:8px 20px}
.payroll-international table{min-width:1140px}.payroll-international th:nth-child(3){background:#58dbe6}.payroll-international th:nth-child(4){background:#ffdf73}.payroll-international th:nth-child(5){background:#77d694}.payroll-international th:nth-child(6){background:#f5d2d2}.payroll-international th:nth-child(7){background:#c2e8de}.payroll-international th:nth-child(8){background:#e9c9c4}
.payroll-international td:nth-child(7){background:#e0f1eb;font-weight:700}.payroll-international td:nth-child(6){color:#b3363b;font-weight:650}
.payroll-rate-form{border:1px solid #cad7d1;padding:12px 14px;margin:12px 0;background:#fff;border-radius:8px}
.payroll-rate-form label{display:block;font-size:14px}.payroll-rate-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.payroll-rate-line input{width:160px;min-height:36px;padding:6px 10px}.payroll-rate-line button{min-height:36px;padding:6px 14px}.payroll-rate-form small{display:block;margin-top:6px}
.payroll-extra-details{margin-top:10px;border-bottom:1px solid #cad7d1;padding:8px 0;font-size:14px}.payroll-extra-details summary{cursor:pointer}.payroll-extra-fields{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.payroll-extra-fields label{max-width:280px}.payroll-deduction-details{margin:16px 0 24px}.payroll-deduction-details h3{font-size:16px}

.payroll-person-label{display:flex;align-items:center;justify-content:center;min-height:48px;line-height:24px;padding:12px 10px;box-sizing:border-box;overflow-wrap:anywhere;font-weight:650}
.payroll-sheet-tools{gap:12px;flex-wrap:wrap}.payroll-sheet-tools label{margin-bottom:0}
.payroll-sheet-tools .payroll-language{margin-right:auto}.payroll-sheet-tools .payroll-language select{width:160px}
.payroll-sheet-grid td,#management-content .payroll-sheet-grid td{vertical-align:middle}
.payroll-sheet-grid td input,.payroll-sheet-grid td:last-child input,.payroll-sheet-grid td textarea{text-align:center}
.payroll-sheet-grid output{justify-content:center;text-align:center}
.receipt-dialog{width:min(1100px,calc(100% - 32px));max-height:94dvh;padding:20px}
.receipt-dialog .dialog-heading{margin-bottom:12px}.receipt-dialog h2{font-size:18px;overflow-wrap:anywhere}
.receipt-controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.receipt-download{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border:1px solid #cbd6d0;border-radius:6px;text-decoration:none;font-weight:600}
.receipt-viewport{max-height:70dvh;overflow:auto;text-align:center;background:#eef2f0;border:1px solid #dbe4dd;border-radius:6px}
.receipt-viewport img{display:block;max-width:100%;max-height:70dvh;width:auto;height:auto;object-fit:contain;margin:auto}
.receipt-viewport.receipt-original img{max-width:none;max-height:none;margin:0}
.special-balances{margin:12px 0 24px;border:1px solid #d2ddd6;border-radius:10px;background:#fff;overflow:hidden}
.special-balances>summary{cursor:pointer;padding:14px 16px;font-size:16px;font-weight:650;color:#254c44}
.special-balances>summary small{font-size:12px;font-weight:400;color:#73847e;margin-left:10px}
.special-balances[open]>summary{border-bottom:1px solid #dce5e0}
.special-balances>.muted{font-size:13px;line-height:1.6;padding:0 16px}
.special-balances>.table-wrap{margin:0 16px 16px}
.attendance-grid .person-resigned .person-cell,.attendance-grid .person-resigned .punch-kind,.attendance-grid .person-resigned .day-cell,.attendance-grid .person-resigned .day-cell button,.attendance-grid .person-resigned .day-time,.attendance-grid .person-resigned .day-offset,.attendance-grid .person-resigned .day-value,.attendance-grid .person-resigned .manual-mark{color:#111!important}.attendance-grid .person-resigned .day-cell,.attendance-grid .person-resigned .person-cell,.attendance-grid .person-resigned .punch-kind{background:#f1f2f2!important}.attendance-grid .person-resigned .person-meta small{color:#111}.attendance-grid .person-resigned .person-cell strong::after{content:' · 離職';font-size:11px;font-weight:500;color:#111}
.attendance-grid .person-resigned td,.attendance-grid .person-resigned th{background:#f1f2f2!important}.attendance-grid .person-resigned *,.attendance-month-totals .person-resigned,.attendance-month-totals .person-resigned *{color:#111!important}
.attendance-reason-shortcuts{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 16px}.attendance-reason-shortcuts small{width:100%;font-size:12px}.attendance-reason-shortcuts button{min-height:30px;padding:5px 9px;font-size:12px;max-width:100%;overflow-wrap:anywhere}
.attendance-reason-chip{display:inline-flex;align-items:center;border:1px solid #d0ded7;border-radius:9px;background:#f7faf8;overflow:hidden}.attendance-reason-shortcuts .attendance-reason-chip .secondary{border:0;border-radius:0;background:transparent;margin:0;padding:7px 10px;min-height:32px}.attendance-reason-remove{border:0;border-left:1px solid #e3ebe6;background:transparent;color:#8ba092;font-size:20px;line-height:1;min-height:32px;padding:5px 9px;border-radius:0;margin:0}.attendance-reason-remove:hover{color:#b94d4d;background:#fff1ef}.attendance-reason-restore{border:0;background:transparent;box-shadow:none;color:#758d7e;text-decoration:underline;font-size:12px;padding:5px;min-height:28px}

body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
#install-workroom{white-space:normal;font-size:14px;min-height:44px}
#workroom-install-guide{line-height:1.7}
#workroom-install-guide p{font-size:16px}
.monitor-person.monitor-expanded{position:fixed!important;inset:0!important;z-index:1000!important;display:flex!important;flex-direction:column;background:#141916;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.monitor-person.monitor-expanded>header,.monitor-person.monitor-expanded>.monitor-controls,.monitor-person.monitor-expanded>.monitor-options{background:#fff;flex-shrink:0}
.monitor-person.monitor-expanded .monitor-frame video{object-fit:contain!important;transform:none!important}
.monitor-person.monitor-expanded .monitor-streams{flex:1;min-height:0;aspect-ratio:auto!important;height:auto!important;grid-auto-rows:minmax(0,1fr)}
.monitor-person.monitor-expanded .monitor-frame{min-height:0;aspect-ratio:auto}
@media(max-width:680px){
  body>header{padding:12px 14px;gap:10px;align-items:center}
  .header-right{flex-wrap:wrap;gap:8px;justify-content:flex-end}
  .header-right time{display:none}
  button,input,select,textarea{font-size:16px}
  input,select,textarea{min-height:44px}
  #main-nav,.monitoring #main-nav{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:6px 0;scrollbar-width:thin;scroll-snap-type:x proximity}
  #main-nav button,.monitoring #main-nav button{flex:0 0 auto;min-height:44px;padding:10px 12px;font-size:14px;scroll-snap-align:start}
  .monitoring main{padding:8px 12px 24px}
  .monitoring .monitor-grid,.monitoring .monitor-grid[data-density]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .monitoring .monitor-grid[data-density="3"]{grid-template-columns:minmax(0,1fr)!important}
  .monitor-person header{min-height:44px;padding:4px;gap:2px}
  .monitor-person header strong{font-size:14px;line-height:1.25}
  .monitor-person header small,.monitor-person .attendance-status{font-size:12px}
  .monitoring .monitor-streams{aspect-ratio:auto!important;grid-template-columns:1fr!important;grid-auto-rows:auto}
  .monitoring .monitor-frame{aspect-ratio:16/9;min-height:0}
  .monitor-frame>span{font-size:12px}
  .monitor-controls{padding:10px 12px;gap:10px}
  .monitor-controls>span{font-size:14px;line-height:1.5}
  .monitor-controls .icon{width:44px;min-width:44px;min-height:44px}
  .monitor-card-actions button{min-height:44px;font-size:16px}
  .monitoring .monitor-person[data-sharing=false] .monitor-frame{aspect-ratio:16/9;min-height:0}
  .monitor-controls svg{width:20px;height:20px}
  .monitor-toolbar button{min-height:44px;font-size:14px;padding:10px 12px}
  .monitor-toolbar .monitor-density{display:flex;font-size:12px}
  .monitor-toolbar .monitor-density select{width:116px;font-size:14px}
  .monitor-toolbar .monitor-shared,.monitor-toolbar>a,#monitor-share-count{font-size:14px}
  .monitor-toolbar .segmented{width:100%}
  .monitor-toolbar .segmented button{flex:1;white-space:normal}
  .monitor-department-heading{flex-wrap:wrap}
  .monitor-department-heading button{min-height:44px}
  .monitoring #management-filters label{font-size:14px;width:100%}
  .monitoring #management-filters input,.monitoring #management-filters select{min-height:44px;font-size:16px}
  .monitoring #management-filters .monitor-department-options label{min-height:44px;font-size:14px}
  .monitoring #management-filters .monitor-department-options input{min-height:20px;width:20px;height:20px}
}
@media(max-width:350px){.monitoring .monitor-grid,.monitoring .monitor-grid[data-density]{grid-template-columns:minmax(0,1fr)!important}}
.touch-month-picker{display:inline-grid;grid-template-columns:minmax(88px,1.2fr) minmax(68px,1fr);gap:8px;min-width:180px;max-width:100%;vertical-align:middle}.touch-month-picker select{min-width:0;width:100%;min-height:46px;font-size:16px;border-radius:12px;background-color:#fff}.leave-calendar-toolbar>.touch-month-picker{flex:1;max-width:280px}.mobile-app-nav{display:none}
.pressure-launch{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:14px;background:#e5f3ed;color:#087662;border:1px solid #bbd8cb;margin-right:auto}.pressure-launch:hover{background:#cce9dc}.pressure-dashboard{width:min(1080px,calc(100vw - 40px));max-width:1080px;max-height:90dvh;padding:0;border:0;border-radius:24px;background:#f3f7f5;color:#183d31;box-shadow:0 24px 100px #082e354d}.pressure-dashboard::backdrop{background:#102d295c}.pressure-dashboard-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px;background:#fff;border-bottom:1px solid #dce7e0;z-index:2}.pressure-dashboard-header h2{font-size:26px;margin:5px 0 0}.pressure-eyebrow{font-size:11px;letter-spacing:.12em;color:#658579}.pressure-dashboard-body{padding:24px 28px}.pressure-dashboard .pressure-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pressure-metric,.pressure-trend,.pressure-maintenance{background:#fff;border:1px solid #dce7e0;border-radius:16px;padding:20px}.pressure-metric span{display:block;font-size:13px;color:#657c72}.pressure-metric strong{display:block;font-size:30px;line-height:1.4;margin-top:8px}.pressure-trend,.pressure-maintenance{margin-top:18px}.pressure-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.pressure-chart-heading select{width:auto}.pressure-chart{min-height:180px;display:grid;align-items:center;margin-top:20px}.pressure-chart svg{display:block;width:100%;height:auto}.pressure-chart-caption,.pressure-detail{font-size:13px;color:#62786e;line-height:1.7}.pressure-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:680px){
 body>header{position:sticky;top:0;z-index:50;background:#fffffff5;border-bottom:1px solid #dce8e1;box-shadow:0 2px 12px #173e3008}body>header .brand{font-size:18px;gap:6px}body>header .brand span{font-size:11px}body>header .header-right{gap:6px}body>header button{min-height:44px;padding:8px 12px}body>header select{max-width:126px}#install-workroom{font-size:12px}.pressure-launch{flex-basis:42px;width:42px;margin-left:2px}.pressure-dashboard{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.pressure-dashboard-header{padding:calc(14px + env(safe-area-inset-top)) 16px 14px}.pressure-dashboard-header h2{font-size:22px}.pressure-dashboard-body{padding:12px 14px calc(24px + env(safe-area-inset-bottom))}.pressure-dashboard .pressure-gauges{grid-template-columns:1fr 1fr;gap:8px}.pressure-metric{padding:14px}.pressure-metric strong{font-size:25px}.pressure-trend,.pressure-maintenance{padding:14px}.pressure-chart{min-height:130px}.pressure-chart-heading{flex-wrap:wrap}.pressure-chart-heading select{width:100%}
 .employee-page main{padding:16px 12px calc(100px + env(safe-area-inset-bottom))}.employee-page .header-right{flex-wrap:nowrap}.employee-page .header-right button{font-size:13px}.employee-page .brand span{display:none}.employee-page #employee-language{width:108px}.employee-page #employee-sharing{gap:14px}.employee-page [data-workspace-module]{min-width:0!important;width:100%!important;grid-column:1/-1!important;scroll-margin-top:96px}.employee-page .punch-section,.employee-page .employee-history,.employee-page .employee-camera-bar{border:1px solid #dbe8e0;border-radius:20px;background:#fff;padding:18px 14px;margin:0 0 14px;box-shadow:0 3px 14px #173e3007}.employee-page .punch-button{min-height:76px;border-radius:16px;font-size:17px;font-weight:700;box-shadow:0 3px 0 #0000000c}.employee-page .punch-grid{gap:10px}.employee-page .punch-button:active:enabled{transform:translateY(1px)}.employee-page .punch-checkout .punch-out{border-radius:16px}.employee-page .section-heading{padding-top:0}.employee-page .employee-profile{padding:16px;border-radius:20px;margin-bottom:14px}.employee-page .form-grid{grid-template-columns:1fr}.employee-page .camera-live-preview{max-height:220px}.employee-page .table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}.employee-page .leave-calendar-grid{gap:4px}.employee-page .leave-calendar-grid button{min-height:48px;padding:5px 1px;font-size:14px}.employee-page .leave-calendar-toolbar{gap:6px}.employee-page .leave-calendar-toolbar>button{min-width:44px;padding:8px}.employee-page .touch-month-picker{min-width:0}.employee-page dialog:not(.pressure-dashboard){max-width:calc(100vw - 24px);max-height:85dvh;overflow:auto;border-radius:22px}.mobile-app-nav{position:fixed;display:grid!important;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;z-index:80;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fffffffa;border-top:1px solid #d5e5dc;box-shadow:0 -4px 20px #173e3010;gap:4px}.mobile-app-nav button{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:52px;border:0;background:transparent;color:#688076;border-radius:14px;font-size:12px;padding:6px}.mobile-app-nav button[aria-current=true]{background:#e4f4ec;color:#086d58;font-weight:700}.mobile-nav-icon{font-size:23px;line-height:1}.break-reminder-alert{bottom:calc(86px + env(safe-area-inset-bottom));max-height:65dvh;overflow:auto}.employee-page [hidden] .mobile-app-nav{display:none!important}
}
@media(max-width:680px){.employee-page .employee-profile{min-height:144px;padding:16px 16px 34px!important;justify-content:flex-start}.employee-profile .avatar-edit{width:64px;height:64px;min-height:64px;flex-basis:64px}.employee-profile .employee-profile-copy{max-width:calc(100% - 80px)}.employee-profile .employee-identity h1{font-size:21px}.mobile-nav-icon svg{display:block;width:23px;height:23px}}
.pressure-legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 18px;font-size:13px;font-weight:600}.pressure-legend [data-level=normal]{color:#087f5b}.pressure-legend [data-level=watch]{color:#986300}.pressure-legend [data-level=high]{color:#bd2929}.pressure-legend [data-level=info]{color:#2563b0}
.pressure-metric[data-level=normal]{background:#edfaf3;border-color:#a9ddc2;border-top:4px solid #15946a}.pressure-metric[data-level=watch]{background:#fff8e6;border-color:#ecd08b;border-top:4px solid #d39a15}.pressure-metric[data-level=high]{background:#fff0ef;border-color:#efb4ae;border-top:4px solid #d94a43}.pressure-metric[data-level=info]{background:#eef5ff;border-color:#bbd2f2;border-top:4px solid #4584d7}.pressure-metric[data-level=unknown]{background:#f1f4f7;border-top:4px solid #8392a4}.pressure-metric[data-level=watch] strong{color:#8c5c00}.pressure-metric[data-level=high] strong{color:#b92f29}.pressure-metric[data-level=info] strong{color:#225ea6}.pressure-badge{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;color:inherit}.pressure-status{border-radius:12px;padding:12px 16px;border:1px solid transparent}.pressure-status[data-level=normal]{color:#096545;background:#dcf4e6;border-color:#b1dec4}.pressure-status[data-level=watch]{color:#805500;background:#fff0c5;border-color:#eccf83}.pressure-status[data-level=high]{color:#a32323;background:#ffe0dd;border-color:#eaa9a3}.pressure-status[data-level=unknown]{color:#475569;background:#e8edf3}
.pressure-launch[data-level=normal]{background:#dcf4e6;color:#087f5b;border-color:#99d3b5}.pressure-launch[data-level=watch]{background:#fff0bc;color:#8c5c00;border-color:#d8af43}.pressure-launch[data-level=high]{background:#ffe0dc;color:#b52b29;border-color:#e39087}.pressure-launch[data-level=unknown]{background:#e9eef3;color:#64748b;border-color:#bac5d2}.pressure-launch{position:relative}.pressure-launch::after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;right:5px;top:5px;background:currentColor;border:2px solid #fff}

.employee-page{--workspace-bg:#eff6f3;--workspace-panel:#fff;--workspace-line:#dce8e2;--workspace-text:#203e33;--workspace-muted:#647e71;--workspace-soft:#edf5f1}
.employee-page[data-workspace-skin=sand]{--workspace-bg:#f7f3eb;--workspace-panel:#fffdf8;--workspace-line:#e7dfcf;--workspace-text:#443e31;--workspace-muted:#817563;--workspace-soft:#f5efe3}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]){--workspace-bg:#101923;--workspace-panel:#192633;--workspace-line:#304356;--workspace-text:#edf4f6;--workspace-muted:#adbfca;--workspace-soft:#223343}
body.employee-page{background:var(--workspace-bg);color:var(--workspace-text)}
.employee-page[data-workspace-skin]>header{background:var(--workspace-panel);border-color:var(--workspace-line);color:var(--workspace-text)}.employee-page[data-workspace-skin] .brand,.employee-page[data-workspace-skin] .brand span{color:var(--workspace-text)}
#employee-sharing[data-workspace-layout=true]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;align-items:start}
#employee-sharing[hidden]{display:none!important}
#employee-sharing[data-workspace-layout=true]>[data-workspace-module]{position:relative;grid-column:var(--module-column)/span var(--module-width);grid-row:var(--module-row);order:var(--module-order);min-width:0;margin:0!important;background:var(--workspace-panel);color:var(--workspace-text);border-color:var(--workspace-line);border-radius:16px}
#employee-sharing>[data-layout-hidden=true],#employee-sharing>[hidden]{display:none!important}
#employee-sharing[data-workspace-layout=true]>[data-workspace-module]:not(.employee-profile){padding:20px;border:1px solid var(--workspace-line)}
#employee-sharing[data-workspace-layout=true]>.world-clocks{grid-column:1/-1}#employee-sharing[data-workspace-layout=true] .section-heading{padding-top:0}
.workspace-appearance-button{font-size:12px;padding:7px 10px;min-height:36px;white-space:nowrap;border-color:var(--workspace-line)!important;background:var(--workspace-soft)!important;color:var(--workspace-text)!important}
.employee-page>header .header-right{gap:6px;flex-wrap:wrap}
.employee-page>header .header-right button,.employee-page>header .header-right .desktop-download-menu>summary{min-height:32px;padding:5px 9px;font-size:12px;border-radius:8px;gap:5px}
.employee-page>header .workspace-appearance-button{min-height:32px;font-size:12px;padding:5px 9px}
.employee-page>header #employee-language{width:115px;min-height:32px;padding:5px 8px;font-size:12px;border-radius:8px}
.employee-page>header .desktop-download-menu>summary::after{font-size:12px}
.workspace-layout-dialog{width:min(850px,calc(100vw - 28px));max-height:90dvh;border:1px solid var(--workspace-line);border-radius:20px;padding:24px;background:var(--workspace-panel);color:var(--workspace-text);box-shadow:0 30px 90px #071b3340}
.workspace-layout-dialog::backdrop{background:#101c2d80;backdrop-filter:blur(4px)}
.workspace-layout-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.workspace-layout-heading h2{font-size:23px}.workspace-layout-heading button{min-height:32px;padding:4px 10px;font-size:22px}
.workspace-layout-hint{font-size:13px;line-height:1.6;color:var(--workspace-muted);margin:10px 0 18px}
.workspace-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.workspace-presets button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:18px 14px;min-height:108px;border:1px solid var(--workspace-line);background:var(--workspace-soft);color:var(--workspace-text);border-radius:14px}
.workspace-presets button strong{font-size:16px}.workspace-presets button small{font-size:12px;font-weight:400;line-height:1.5;color:var(--workspace-muted)}.workspace-presets [aria-pressed=true]{outline:2px solid #2b9274;outline-offset:1px}.workspace-presets button[data-preset=classic]::before{content:'▤';font-size:25px;color:#4a947d}.workspace-presets button[data-preset=focus]::before{content:'▥';font-size:25px;color:#aa884b}.workspace-presets button[data-preset=night]::before{content:'☾';font-size:25px;color:#7e9ab9}
.workspace-presets button:last-child{grid-column:1/-1;min-height:38px;align-items:center;padding:9px}
.workspace-layout-dialog>label{display:flex;align-items:center;gap:14px;font-size:13px}.workspace-layout-dialog>label select{width:200px}
.workspace-layout-actions{display:flex;gap:8px;flex-wrap:wrap}.workspace-layout-actions button{font-size:13px;min-height:36px}.workspace-layout-status{font-size:12px;color:var(--workspace-muted)}
.workspace-module-list{display:grid;gap:8px}.workspace-module-settings{display:grid;grid-template-columns:minmax(110px,1fr) 60px 60px 100px 65px;gap:12px;align-items:center;padding:14px;border:1px solid var(--workspace-line);border-radius:12px;background:var(--workspace-soft)}
.workspace-layout-advanced>summary{cursor:pointer;font-size:13px;font-weight:600;padding:12px;background:var(--workspace-soft);border-radius:10px;margin-bottom:12px}
#employee-sharing .employee-profile>.workspace-module-tools{position:absolute;top:8px;left:12px}
#employee-sharing [data-module-width="4"] :is(.work-reminder-row,.memo-card,.work-reminder-actions,.memo-actions,.section-heading){flex-wrap:wrap}
#employee-sharing [data-module-width="4"] :is(.work-reminder-actions,.memo-actions){max-width:100%}
#employee-sharing [data-module-width="4"] .form-grid{grid-template-columns:1fr}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon])[data-header-clocks=true]>header .world-clocks .world-clock-digits{color:#edf4f6}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon])[data-header-clocks=true]>header .world-clocks .world-clock-card h3{color:#adbfca}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon])[data-header-clocks=true]>header .world-clocks[data-editing=true]>.world-clock-heading,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon])[data-header-clocks=true]>header .world-clocks>.world-clock-editor{background:var(--workspace-panel);border-color:var(--workspace-line)}
.workspace-module-settings>strong{font-size:13px}.workspace-module-settings label{font-size:10px;gap:4px;margin:0;color:var(--workspace-muted)}.workspace-module-settings input,.workspace-module-settings select{font-size:12px;min-height:34px;padding:6px}.workspace-module-settings input[type=checkbox]{width:18px;height:18px;min-height:18px}.workspace-module-settings>small{font-size:10px;color:var(--workspace-muted);line-height:1.4}
.workspace-module-tools{display:flex;align-items:center;gap:3px;position:relative;z-index:3;margin:0 0 12px}.workspace-module-tools button{font-size:13px;min-height:28px;min-width:28px;padding:3px 6px;border:1px solid var(--workspace-line);background:var(--workspace-soft);color:var(--workspace-text)}.workspace-module-tools [draggable=true]{cursor:grab;font-size:19px;touch-action:none}
#employee-sharing[data-arranging=true]>[data-workspace-module]{outline:2px dashed #83bca9;outline-offset:3px}#employee-sharing[data-dragging=true]>[data-workspace-module]{outline-color:#2b9274}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .muted,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) small,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .work-reminder-help,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .memo-hint,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .world-clock-date{color:var(--workspace-muted)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .secondary,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) input,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) select,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) textarea{background:var(--workspace-soft);color:var(--workspace-text);border-color:var(--workspace-line)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) :is(.memo-card,.work-reminder-row,.world-clock-card,.punch-history-disclosure,.media-switches section,.world-clock-editor,.announcement-card){background:var(--workspace-soft);color:var(--workspace-text);border-color:var(--workspace-line)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) :is(.memo-copy strong,.memo-heading h2,.work-reminders h2,.world-clock-digits,.world-clock-card h3,.world-clock-heading h2,.employee-profile h1,.avatar-settings summary,.signature-settings summary){color:var(--workspace-text)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile::before{opacity:.35}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile-copy>p,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) #punch-next-step{color:var(--workspace-muted)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) :is(.memo-dialog,.work-reminder-editor,.world-clocks){background:var(--workspace-panel);color:var(--workspace-text);border-color:var(--workspace-line)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) table{background:var(--workspace-soft);color:var(--workspace-text)}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) th{background:var(--workspace-panel);color:var(--workspace-text)}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) td,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) th{border-color:var(--workspace-line)}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .work-alarm-status{color:#85d5b5}
.world-clocks .clock-hand-second{display:none}
.employee-page .world-clocks .world-clock-grid{gap:var(--clock-gap,8px)}
.employee-page .world-clocks .world-clock-card{padding:calc(8px * var(--clock-scale,1));gap:calc(3px * var(--clock-scale,1))}
.employee-page .world-clocks .world-clock-card h3{font-size:calc(11px * var(--clock-scale,1))}
.employee-page .world-clocks .world-clock-digits{font-size:calc(20px * var(--clock-scale,1))}
.employee-page .world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{width:calc(44px * var(--clock-scale,1));height:calc(44px * var(--clock-scale,1))}
.employee-page .world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{grid-template-columns:calc(48px * var(--clock-scale,1)) minmax(0,1fr)}
.employee-page[data-header-clocks=true]>header .world-clocks>.world-clock-grid{gap:var(--clock-gap,8px)}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card h3{font-size:calc(10px * var(--clock-scale,1))}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-digits,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:calc(17px * var(--clock-scale,1))}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{display:grid;grid-template-columns:calc(34px * var(--clock-scale,1)) minmax(0,1fr);column-gap:8px}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{display:block!important;width:calc(30px * var(--clock-scale,1));height:calc(30px * var(--clock-scale,1));grid-column:1;grid-row:1/3;border-width:1px}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .clock-hand-hour{height:30%}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .clock-hand-minute{height:40%}
.world-clocks .clock-density{display:grid;grid-template-columns:1fr auto;gap:6px;margin:12px 0;font-size:11px;color:inherit}.world-clocks .clock-density input{grid-column:1/-1;grid-row:2;min-height:20px;padding:0;width:100%;accent-color:#2b9274}.world-clocks .clock-density output{font-variant-numeric:tabular-nums}
@media(max-width:850px){#employee-sharing[data-workspace-layout=true]{display:flex;flex-direction:column;gap:14px}#employee-sharing[data-workspace-layout=true]>[data-workspace-module]{width:100%}.workspace-module-settings{grid-template-columns:1fr 52px 52px 90px}.workspace-module-settings label:last-child,.workspace-module-settings>small{grid-column:1/-1}.workspace-layout-dialog{padding:18px}.workspace-presets{gap:7px}.workspace-presets button{padding:12px 9px}.workspace-presets button strong{font-size:13px}}
/* Feather the flag into each skin instead of a hard rectangular seam. */
.employee-page .employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0 0 0 22%;background-size:cover;background-position:right center;opacity:.9;mask-image:linear-gradient(90deg,transparent 0%,#0000 10%,#0005 35%,#000c 63%,#000 90%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#0000 10%,#0005 35%,#000c 63%,#000 90%)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile[data-nationality]:not([data-nationality=""])::before{opacity:.65;filter:saturate(.92) brightness(.72)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile #employee-nationality{color:#b7cfc3}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile .signature-preview{background:#253e49;border:1px solid #486572;color:#e0efe9}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile .employee-profile-time{background:#172b39dc;border:1px solid #78929c44}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile .employee-profile-time time,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile .employee-profile-time .zone{color:#d6e5e3}
@media(max-width:650px){.employee-page .employee-profile[data-nationality]:not([data-nationality=""])::before{inset:0;opacity:.48;mask-image:linear-gradient(90deg,transparent 12%,#0003 46%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 12%,#0003 46%,#000 100%)}.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .employee-profile[data-nationality]:not([data-nationality=""])::before{opacity:.42}}
.work-alarm-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--workspace-line,#dce8e2);border-radius:12px;background:var(--workspace-soft,#edf5f1);margin:8px 0 12px}
.work-alarm-copy{min-width:0}.work-alarm-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:20px;font-size:12px;font-weight:650;background:#fff0d4;color:#895800}
.work-alarm-control[data-state=ready] .work-alarm-badge{background:#dbf4e8;color:#176543}.work-alarm-control[data-state=error] .work-alarm-badge{background:#ffe6e2;color:#a3271c}
.work-alarm-status{font-size:12px;line-height:1.5;margin:6px 0 0;color:var(--workspace-muted,#647e71)}
.work-alarm-control button{font-size:12px;min-height:36px;white-space:normal;flex-shrink:0;padding:8px 12px;max-width:145px}
.workspace-layout-dialog .workspace-save-layout,.workspace-edit-save-bar .workspace-save-layout{background:#087965;color:#fff;border:2px solid #75d5ad;font-size:16px;font-weight:750;padding:12px 22px;min-height:48px;box-shadow:0 6px 18px #174f3333}
.announcement-language-select{font-size:12px;min-height:30px;padding:5px 8px;width:auto;margin-left:auto;max-width:140px}
.workspace-edit-save-bar{position:fixed;right:24px;bottom:24px;z-index:80;padding:8px;background:var(--workspace-panel);border:1px solid var(--workspace-line);border-radius:16px;box-shadow:0 12px 35px #0b302633}.workspace-edit-save-bar[hidden]{display:none}
/* Wrap compact clocks naturally; never crop a country or expose a scrollbar. */
.employee-page[data-header-clocks=true]>header .world-clocks>.world-clock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(88px,100%),1fr));overflow:visible;gap:clamp(3px,var(--clock-gap,8px),12px);min-width:0}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{min-width:0;padding:3px 6px;flex:none;border-left-color:var(--workspace-line)}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card h3{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-card{grid-template-columns:26px minmax(0,1fr);column-gap:5px}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-face{width:25px;height:25px}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-digits,.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:clamp(12px,calc(16px * var(--clock-scale,1)),23px)}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-card{container-type:inline-size}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-digits{font-size:clamp(11px,min(calc(16px * var(--clock-scale,1)),22cqi),23px)}
.employee-page[data-header-clocks=true]>header .world-clocks .world-clock-grid[data-mode=analog] .world-clock-digits{font-size:clamp(10px,min(calc(16px * var(--clock-scale,1)),15cqi),23px)}
#employee-sharing .personal-memos .memo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:16px}
#employee-sharing .personal-memos .memo-card{position:relative;display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;min-height:150px;padding:27px 15px 15px;background:linear-gradient(145deg,#fff6bd,#ffe997);border:1px solid #ead68a;border-radius:3px 3px 16px 3px;color:#5b4c20;box-shadow:2px 5px 0 #d4bc6b22,0 7px 18px #513e1612}
#employee-sharing .personal-memos .memo-card:nth-child(3n+2){background:linear-gradient(145deg,#e5f2ff,#cee4f7);border-color:#b7d3e9;color:#2a4d66}
#employee-sharing .personal-memos .memo-card:nth-child(3n+3){background:linear-gradient(145deg,#ffe8ef,#ffd5e0);border-color:#e9bac8;color:#6d3e4b}
#employee-sharing .personal-memos .memo-card::before{content:'';position:absolute;top:-6px;left:calc(50% - 24px);width:48px;height:17px;transform:rotate(-3deg);background:#f7faf3b3;border:1px solid #ffffff88;box-shadow:0 1px 3px #3b31161a;pointer-events:none}
#employee-sharing .personal-memos .memo-copy{flex:1;min-width:0}#employee-sharing .personal-memos .memo-copy strong,#employee-sharing .personal-memos .memo-copy p{color:inherit}
#employee-sharing .personal-memos .memo-actions{width:100%;justify-content:flex-end;margin-top:auto}#employee-sharing .personal-memos .memo-actions button{color:inherit}
#employee-sharing .personal-memos .memo-empty{min-height:130px;display:grid;place-items:center;text-align:center;padding:20px;border:1px dashed #dacb92;border-radius:5px 5px 18px 5px;background:linear-gradient(145deg,#fff9df,#ffefbb);color:#887338}
#employee-sharing .leave-calendar{position:relative;padding-top:13px;background:var(--workspace-panel);border:1px solid var(--workspace-line);border-radius:12px;box-shadow:0 5px 0 var(--workspace-soft);overflow:hidden}
#employee-sharing .leave-calendar::before,#employee-sharing .leave-calendar::after{content:'';position:absolute;top:4px;width:7px;height:18px;border-radius:5px;background:#91aaa0;box-shadow:inset 1px 0 2px #fff9;z-index:1}
#employee-sharing .leave-calendar::before{left:22%}#employee-sharing .leave-calendar::after{right:22%}
#employee-sharing .leave-calendar-toolbar{margin-top:5px;padding:10px 12px;background:var(--workspace-soft);border-bottom:1px solid var(--workspace-line)}
#employee-sharing .leave-calendar-grid{gap:5px;padding:10px}
#employee-sharing .leave-calendar-weekday{font-size:11px;font-weight:600}
#employee-sharing .leave-calendar-day{border-radius:7px;box-shadow:0 1px 2px #153a2010;min-height:45px;font-size:14px}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) #employee-sharing .personal-memos .memo-card,.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) #employee-sharing .personal-memos .memo-empty{filter:brightness(.85)}
.work-reminder-help-details{font-size:12px;color:var(--workspace-muted,#647e71);margin:10px 0 14px}.work-reminder-help-details>summary{cursor:pointer;font-weight:600;padding:4px 0}.work-reminder-help-details .work-reminder-help{font-size:12px;margin-top:8px;line-height:1.7}
.work-tone-settings{font-size:12px;color:var(--workspace-muted,#647e71);margin:10px 0}.work-tone-settings>summary{cursor:pointer;font-weight:650}.work-tone-name{overflow-wrap:anywhere;margin:10px 0 8px}.work-tone-settings button{font-size:12px;min-height:32px;padding:5px 8px;margin-right:5px}.work-tone-message{font-size:11px;line-height:1.5}
.work-tone-note{display:block;font-size:11px;line-height:1.5;margin-top:8px;color:var(--workspace-muted)}
.employee-page:is([data-workspace-skin=night],[data-workspace-skin=neon]) .work-alarm-status{color:#b5cbd1}
@media(max-width:650px){.work-alarm-control{flex-wrap:wrap}.work-alarm-control button{max-width:none}}
/* Slow LED ribbons: stable readable surfaces, no strobe or media overlays. */
.employee-page[data-workspace-skin=neon]{--workspace-bg:#090b18;--workspace-panel:#15152b;--workspace-line:#4d426e;--workspace-text:#f4f0ff;--workspace-muted:#bdb4d8;--workspace-soft:#24213b;--glow-ribbon:linear-gradient(110deg,#b565ff,#5267ff,#35dfed,#d457ff,#b565ff);--glow-shadow:#9b54ff30;background-image:radial-gradient(ellipse at 12% 0%,#6236a426,transparent 45%),radial-gradient(ellipse at 90% 35%,#127c9230,transparent 45%)}
.employee-page[data-workspace-skin=rainbow]{--workspace-bg:#f7f7fc;--workspace-panel:#fff;--workspace-line:#e0dced;--workspace-text:#302c45;--workspace-muted:#736b88;--workspace-soft:#f5f2fb;--glow-ribbon:linear-gradient(110deg,#f6a1c6,#c8a7ff,#90c8ff,#90ded4,#f7d69e,#f6a1c6);--glow-shadow:#c7a2e32b;background-image:radial-gradient(ellipse at 10% 0%,#f4d4ee80,transparent 45%),radial-gradient(ellipse at 95% 40%,#c9e9f880,transparent 45%)}
.employee-page:is([data-workspace-skin=neon],[data-workspace-skin=rainbow]) #employee-sharing[data-workspace-layout=true]>[data-workspace-module]{border:1px solid transparent;background:linear-gradient(var(--workspace-panel),var(--workspace-panel)) padding-box,var(--glow-ribbon) border-box;background-size:100% 100%,300% 100%;animation:workspace-led-flow 12s ease-in-out infinite,workspace-led-breathe 7s ease-in-out infinite;box-shadow:0 6px 22px var(--glow-shadow)}
.employee-page:is([data-workspace-skin=neon],[data-workspace-skin=rainbow])>header{border-bottom:2px solid transparent;background:linear-gradient(var(--workspace-panel),var(--workspace-panel)) padding-box,var(--glow-ribbon) border-box;background-size:100% 100%,300% 100%;animation:workspace-led-flow 12s ease-in-out infinite}
.employee-page[data-workspace-skin=neon] :is(.section-heading h2,.work-reminders h2,.memo-heading h2,.world-clock-heading h2){color:#eee4ff;text-shadow:0 0 18px #b578ff44}
.employee-page[data-workspace-skin=neon] .workspace-presets [aria-pressed=true]{outline-color:#b38aff}
.employee-page[data-workspace-skin=neon] #employee-sharing .personal-memos .memo-card{filter:none}
.employee-page[data-workspace-skin=rainbow] .workspace-presets [aria-pressed=true]{outline-color:#a879c7}
@keyframes workspace-led-flow{0%,100%{background-position:0 0,0% 50%}50%{background-position:0 0,100% 50%}}
@keyframes workspace-led-breathe{0%,100%{box-shadow:0 6px 22px var(--glow-shadow)}50%{box-shadow:0 6px 28px var(--glow-shadow),0 0 8px var(--glow-shadow)}}
@media(prefers-reduced-motion:reduce){.employee-page:is([data-workspace-skin=neon],[data-workspace-skin=rainbow])>header,.employee-page:is([data-workspace-skin=neon],[data-workspace-skin=rainbow]) #employee-sharing[data-workspace-layout=true]>[data-workspace-module]{animation:none;background-position:0 0,50% 50%}}
