:root{--primary:#1C1410;--primary-mid:#3E2723;--primary-light:#6D4C41;--primary-wash:rgba(28,20,16,0.06);--accent:#8D6E63;--accent-light:#D7CCC8;--accent-wash:rgba(141,110,99,0.14);--bg:#FFFFFF;--surface:#FFFFFF;--border:#E0E0E0;--border-light:#EEEEEE;--text-1:#000000;--text-2:#424242;--text-3:#9E9E9E;--success:#2E7D32;--warn:#6D4C41;--danger:#B71C1C;--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 30px rgba(0,0,0,0.12);--radius:14px;--radius-sm:10px;--font:-apple-system,"SF Pro Display","Segoe UI",system-ui,Roboto,sans-serif;--safe-b:env(safe-area-inset-bottom,0px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text-1);font-size:15px;line-height:1.5;min-height:100vh;-webkit-tap-highlight-color:transparent}.top-bar{position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(135deg,var(--primary) 0,var(--primary-mid) 130%);justify-content:space-between;height:64px;padding:env(safe-area-inset-top,0) 16px 0;box-shadow:var(--shadow-md)}.top-bar,.top-bar-brand{display:flex;align-items:center}.top-bar-brand{gap:10px}.top-bar-logo{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center}.top-bar-logo img{width:24px;height:auto;display:block}.top-bar-title{font-size:16px;font-weight:800;color:#fff;line-height:1.2}.top-bar-subtitle{font-size:11px;font-weight:600;color:var(--accent-light);letter-spacing:.04em;text-transform:uppercase}.top-bar-right{gap:10px}.top-bar-avatar,.top-bar-right{display:flex;align-items:center}.top-bar-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0,var(--primary-light) 100%);justify-content:center;font-weight:700;font-size:12px;letter-spacing:.02em;color:#fff;border:2px solid rgba(255,255,255,.45);flex-shrink:0;-webkit-user-select:none;user-select:none}.top-bar-avatar.has-photo{background-size:cover;background-position:50%;background-color:var(--primary-light)}.top-bar-avatar{cursor:pointer;font-family:var(--font);padding:0}.top-bar-right{position:relative}.profile-menu{position:absolute;top:calc(100% + 12px);right:0;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px;display:none;z-index:110}.profile-menu.open{display:block}.profile-menu-name{padding:8px 10px 0;font-size:14px;font-weight:700;color:var(--text-1)}.profile-menu-meta{padding:0 10px 8px;font-size:12px;color:var(--text-3);text-transform:capitalize;border-bottom:1px solid var(--border-light);margin-bottom:4px}.profile-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:none;background:none;border-radius:8px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--danger);cursor:pointer;text-align:left}.profile-menu-item:active,.profile-menu-item:hover{background:var(--primary-wash)}.settings-top{gap:8px;margin-bottom:16px}.settings-back,.settings-top{display:flex;align-items:center}.settings-back{width:36px;height:36px;margin-left:-8px;border:none;background:none;justify-content:center;border-radius:50%;color:var(--text-1);cursor:pointer}.settings-back:active{background:var(--primary-wash)}.settings-back svg{width:22px;height:22px}.settings-list{background:var(--surface);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.settings-row{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:none;border-bottom:1px solid var(--border-light);background:none;font-family:var(--font);font-size:15px;font-weight:600;color:var(--text-1);text-align:left;cursor:pointer}.settings-row:last-child{border-bottom:none}.settings-row-icon,.settings-row:active{background:var(--primary-wash)}.settings-row-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-row-icon svg{width:20px;height:20px}.settings-row-label{flex:1 1}.settings-row-chev{width:18px;height:18px;color:var(--text-3);flex-shrink:0}.settings-row.danger{color:var(--danger)}.settings-row.danger .settings-row-icon{background:rgba(183,28,28,.08)}.settings-org{font-size:13px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin:-6px 0 12px}.settings-profile{display:flex;align-items:center;gap:14px;margin-bottom:14px}.settings-avatar{width:52px;height:52px;font-size:17px}.settings-name{font-size:17px;font-weight:800}.settings-meta{font-size:13px;color:var(--text-3);word-break:break-all}.settings-field{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border-light);font-size:14px}.settings-field span{color:var(--text-3)}.settings-field b{font-weight:600;text-align:right;word-break:break-all}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}.settings-toggle-title{display:block;font-size:15px;font-weight:700}.settings-toggle-sub{display:block;font-size:13px;color:var(--text-3);margin-top:2px}.switch{position:relative;width:48px;height:28px;flex-shrink:0}.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.switch-track{position:absolute;inset:0;border-radius:999px;background:var(--border);transition:background .2s ease}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s ease}.switch input:checked+.switch-track{background:var(--primary-light)}.switch input:checked+.switch-track:after{transform:translateX(20px)}.switch input:disabled{cursor:default}.pf-hero{display:flex;align-items:center;gap:16px}.pf-avatar{position:relative;width:84px;height:84px;flex-shrink:0}.pf-avatar-img{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block;background:var(--border-light)}.pf-avatar-empty{display:flex;align-items:flex-end;justify-content:center;color:#b0b0b0;overflow:hidden}.pf-avatar-empty svg{width:70px;height:70px}.pf-cam{position:absolute;right:-4px;bottom:-4px;width:32px;height:32px;border-radius:50%;border:2px solid var(--surface);background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.pf-cam svg{width:16px;height:16px}.pf-name{font-size:19px;font-weight:800}.pf-sub{font-size:14px;color:var(--text-3);margin-top:2px}.pf-row{display:flex;gap:12px;padding:10px 0;font-size:14px}.pf-row span{flex:0 0 42%;color:var(--text-2)}.pf-row b{flex:1 1;font-weight:600;word-break:break-word}.staff-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.staff-details-grid .form-input{min-width:0;font-size:14px;padding:10px 12px}.settings-warn{font-size:14px;color:var(--text-2);margin-bottom:16px}.sync-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-wash);border:1px solid var(--accent-light);border-radius:var(--radius-sm);padding:10px 10px 10px 14px;margin-top:14px}.status-hero .sync-banner{text-align:left}.sync-banner-text{font-size:13px;font-weight:700;color:var(--primary-mid)}.sync-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:8px 14px;border-radius:999px;border:none;background:var(--primary);color:#fff;font-family:var(--font);font-size:12px;font-weight:700;cursor:pointer;transition:transform .08s ease,opacity .15s ease}.sync-btn:active{transform:scale(.95)}.sync-btn:disabled{opacity:.55;cursor:default;transform:none}.sync-btn svg{width:13px;height:13px}.sync-btn.syncing svg{animation:sync-spin .8s linear infinite}@keyframes sync-spin{to{transform:rotate(1turn)}}.status-hero.in.pending .dot{background:var(--accent)}.offline-banner{margin-top:calc(64px + env(safe-area-inset-top, 0px));background:var(--danger);color:#fff;text-align:center;font-size:12px;font-weight:700;padding:0 12px;max-height:0;opacity:0;overflow:hidden;transition:max-height .25s ease,opacity .2s ease,padding .25s ease}.offline-banner.show{max-height:120px;opacity:1;padding:8px 12px}.app{padding-bottom:calc(64px + var(--safe-b))}.app-scroll{padding:16px;max-width:480px;margin:0 auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:90;padding-bottom:var(--safe-b);box-shadow:0 -2px 12px rgba(0,0,0,.06)}.bottom-nav-inner{display:flex;justify-content:space-around;align-items:center;height:56px;max-width:480px;margin:0 auto}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;font-family:var(--font);font-size:10px;font-weight:600;color:var(--text-3);padding:6px 16px;cursor:pointer}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item svg{width:24px;height:24px}.card{background:var(--surface);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:var(--radius);padding:18px;margin-bottom:14px}.section-title{font-size:20px;font-weight:800;margin-bottom:14px;letter-spacing:-.02em}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.page-header .section-title{margin-bottom:0}.team-group-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:18px 0 8px;padding-top:10px;border-top:1px solid var(--border-light)}.team-group-title:first-child{margin-top:0;padding-top:0;border-top:none}.status-hero{text-align:center;padding:28px 18px}.status-hero .dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px}.status-hero.in .dot{background:var(--success)}.status-hero.out .dot{background:var(--text-3)}.status-hero .label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.status-hero .place{font-size:24px;font-weight:800;margin:8px 0 4px}.status-hero .since{font-size:14px;color:var(--text-2)}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-label{font-size:12px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select,.form-textarea{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);font-family:var(--font);font-size:15px;color:var(--text-1);background:var(--surface);outline:none;-webkit-appearance:none;width:100%}.search-input{font-size:16px}.form-textarea{resize:vertical;min-height:60px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 20px;border-radius:var(--radius-sm);border:none;font-family:var(--font);font-size:16px;font-weight:700;cursor:pointer;width:100%}.btn:active{transform:scale(.98)}.btn-in{background:var(--primary);color:#fff}.btn-out{background:var(--accent);color:#fff}.btn-secondary{background:var(--surface);color:var(--text-1);border:1px solid var(--border);font-weight:600}.btn-primary,.btn-secondary{font-size:14px;padding:10px 16px;width:auto}.btn-primary{background:var(--primary);color:#fff}.distance-flag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;margin-top:10px}.distance-flag.ok{background:rgba(16,185,129,.12);color:var(--success)}.distance-flag.far{background:rgba(239,68,68,.12);color:var(--danger)}.weekoff-chip-row{display:flex;flex-wrap:wrap;margin-top:4px}.record-card{background:var(--surface);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:var(--radius);padding:16px;margin-bottom:10px}.record-card .rc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.record-card .rc-name{font-weight:700;font-size:15px}.record-card .rc-loc{font-size:11px;padding:3px 10px;border-radius:12px;background:var(--primary-wash);color:var(--primary-mid);font-weight:700;letter-spacing:.02em;white-space:nowrap}.record-card .rc-row{font-size:13px;color:var(--text-2);margin-top:3px;display:flex;align-items:center;gap:6px}.record-card .rc-photo{width:32px;height:32px;border-radius:8px;object-fit:cover}.rc-timeline{position:relative;padding-left:20px}.rc-timeline:before{content:"";position:absolute;left:3px;top:7px;bottom:7px;width:2px;background:var(--border)}.rc-tl-row{position:relative;display:flex;align-items:center;gap:8px;padding:5px 0;flex-wrap:wrap}.rc-tl-dot{position:absolute;left:-20px;top:50%;margin-top:-4px;width:8px;height:8px;border-radius:50%;background:var(--text-3)}.rc-tl-dot.in{background:var(--success)}.rc-tl-dot.out{background:var(--primary-mid)}.rc-tl-dot.open{background:var(--warn);box-shadow:0 0 0 4px rgba(109,76,65,.16)}.rc-tl-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);width:24px;flex-shrink:0}.rc-tl-date{font-size:11px;font-weight:600;color:var(--text-3)}.rc-tl-time{font:700 13px/1 ui-monospace,SF Mono,Menlo,monospace;color:var(--text-1)}.rc-tl-photo{width:26px;height:26px;border-radius:7px;object-fit:cover;border:1px solid var(--border-light);margin-left:auto;cursor:pointer}.rc-tl-dist{font-size:11px;font-weight:700}.rc-tl-dist.ok{color:var(--success)}.rc-tl-dist.far{color:var(--danger)}.rc-tl-open-label{font-size:13px;font-weight:700;color:var(--warn)}.rc-summary{display:flex;align-items:center;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light);font-size:12.5px;font-weight:600}.rc-summary .rc-summary-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.rc-summary.on_time{color:var(--success)}.rc-summary.on_time .rc-summary-dot{background:var(--success)}.rc-summary.overtime{color:var(--accent)}.rc-summary.overtime .rc-summary-dot{background:var(--accent)}.rc-summary.undertime{color:var(--danger)}.rc-summary.undertime .rc-summary-dot{background:var(--danger)}.rc-summary.week_off{color:var(--text-2)}.rc-summary.week_off .rc-summary-dot{background:var(--text-3)}.rc-note{font-size:12px;color:var(--text-2);margin-top:8px;padding-left:20px}.rc-note b{font-weight:700;color:var(--text-1)}.chevron{display:inline-block;transition:transform .25s ease}.chevron.rotated{transform:rotate(90deg)}.expandable{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease,opacity .2s ease,margin-top .3s ease}.expandable.expanded{max-height:4000px;opacity:1;margin-top:6px}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.loc-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.loc-chip{display:flex;gap:5px;padding:5px 10px;border-radius:14px;font-size:12px}.loc-chip input{width:auto}.loc-hint{font-size:11px;color:var(--text-3);margin-top:6px}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:36px 28px;width:100%;max-width:380px;box-shadow:var(--shadow-md);text-align:center}.login-title{font-size:20px;font-weight:800;color:var(--primary);margin-bottom:4px}.login-sub{font-size:13px;color:var(--text-3);margin-bottom:24px}.login-error{color:var(--danger);font-size:13px;text-align:left;display:none;margin-bottom:10px}.toast{position:fixed;bottom:calc(80px + var(--safe-b));left:50%;transform:translateX(-50%) translateY(80px);opacity:0;pointer-events:none;background:var(--primary);color:#fff;padding:12px 24px;border-radius:26px;box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;z-index:500;transition:transform .3s,opacity .3s;max-width:90vw;text-align:center}.toast.show{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}.camera-modal{position:fixed;inset:0;z-index:600;background:#000;display:none;flex-direction:column}.camera-modal.open{display:flex}.camera-video-wrap{flex:1 1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.camera-video-wrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-top{position:absolute;top:0;left:0;right:0;padding:calc(16px + env(safe-area-inset-top, 0px)) 16px 16px;display:flex;justify-content:space-between;z-index:2}.camera-close{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:#fff;cursor:pointer}.camera-close,.camera-controls{display:flex;align-items:center;justify-content:center}.camera-controls{padding:24px;padding-bottom:calc(24px + var(--safe-b));background:#000}.shutter-btn{width:72px;height:72px;border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.4);cursor:pointer}.shutter-btn:active{transform:scale(.92)}.camera-status{position:absolute;bottom:16px;left:16px;right:16px;text-align:center;color:#fff;font-size:13px;background:rgba(0,0,0,.5);padding:8px 12px;border-radius:10px;z-index:2}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-nav-btn{width:auto;padding:8px 16px;font-size:16px;font-weight:700}.cal-month-label{font-size:15px;font-weight:700;color:var(--primary)}.cal-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-3);margin-bottom:14px}.cal-legend span{display:flex;align-items:center;gap:6px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px}.cal-dow{text-align:center;font-size:11px;font-weight:700;color:var(--text-3);padding-bottom:6px}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;position:relative}.cal-cell.empty{visibility:hidden}.cal-daynum{font-size:13px;font-weight:600;color:var(--text-2)}.cal-cell.has-record{cursor:pointer}.cal-cell.has-record:active{background:var(--accent-wash)}.cal-cell.today{box-shadow:0 0 0 2px var(--primary) inset}.cal-cell.today .cal-daynum{color:var(--primary);font-weight:800}.cal-cell.today[class*=fill-]{box-shadow:none}.cal-cell.fill-green{background:var(--success)}.cal-cell.fill-red{background:var(--danger)}.cal-cell.fill-partial{background:#66BB6A}.cal-cell.fill-open{background:var(--warn)}.cal-cell.fill-gray{background:#7a7a7a}.cal-cell.fill-partial .cal-daynum{color:#0B3D12;font-weight:800}.cal-cell.fill-gray .cal-daynum,.cal-cell.fill-green .cal-daynum,.cal-cell.fill-open .cal-daynum,.cal-cell.fill-red .cal-daynum{color:#fff;font-weight:800}.cal-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.cal-dot.green{background:var(--success)}.cal-dot.partial{background:#66BB6A}.cal-dot.red{background:var(--danger)}.cal-dot.open{background:var(--warn)}.cal-dot.gray{background:#7a7a7a}.pattern-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light)}.pattern-row:last-of-type{border-bottom:none}.pattern-day-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-1);width:110px;flex-shrink:0}.pattern-day-label input{width:auto;margin:0}.pattern-time{width:auto;flex:1 1;padding:8px 10px;font-size:13px}.pattern-dash{color:var(--text-3);font-size:13px}.pattern-off-label{font-size:12px;color:var(--text-3);font-style:italic}.day-modal-overlay{position:fixed;inset:0;z-index:650;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}.day-modal-overlay.open{opacity:1;visibility:visible;transition:opacity .25s ease,visibility 0s linear 0s}.day-modal{background:var(--surface);width:100%;max-width:480px;max-height:82vh;border-radius:20px 20px 0 0;overflow-y:auto;padding:0 18px calc(18px + var(--safe-b));transform:translateY(100%);transition:transform .28s cubic-bezier(.32,.72,0,1)}.day-modal-overlay.open .day-modal{transform:translateY(0)}.day-modal-header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;background:var(--surface);padding-top:18px;padding-bottom:14px}.day-modal-title{font-size:16px;font-weight:800;color:var(--primary)}.photo-capture-box{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.photo-capture-box .pc-empty{display:flex;align-items:center;gap:10px}.photo-capture-box .pc-preview{display:flex;align-items:center;gap:12px}.photo-capture-box img.pc-thumb{width:56px;height:56px;border-radius:10px;object-fit:cover}.geo-status{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;font-size:12px;font-weight:700;margin-top:8px}.geo-status.ok{background:rgba(46,125,50,.12);color:var(--success)}.geo-status.far{background:rgba(183,28,28,.12);color:var(--danger)}.geo-status.pending{background:var(--primary-wash);color:var(--text-2)}.empty-state{text-align:center;padding:40px 20px;color:var(--text-3)}.photo-lightbox{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top, 0px)) 24px 24px}.photo-lightbox.open{display:flex}.photo-lightbox img{max-width:100%;max-height:100%;border-radius:12px;object-fit:contain}.confirm-overlay{position:fixed;inset:0;z-index:720;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:20px}.confirm-overlay.open{display:flex}.confirm-card{background:var(--surface);border-radius:18px;padding:24px;max-width:320px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.confirm-title{font-size:17px;font-weight:800;margin-bottom:8px}.confirm-body{font-size:13px;color:var(--text-2);margin-bottom:20px}.confirm-actions{display:flex;gap:10px}.confirm-actions .btn{width:auto;flex:1 1}.dd-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:15px;color:var(--text-1);cursor:pointer}.dd-btn:after{content:"";flex-shrink:0;width:7px;height:7px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}.dd-btn.open{border-color:var(--primary-light)}.dd-btn.open:after{transform:translateY(2px) rotate(-135deg)}.dd-btn:disabled{opacity:.6;cursor:default}.dd-menu{position:fixed;z-index:1000;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:4px}.dd-item{padding:10px 12px;border-radius:8px;font-size:15px;color:var(--text-1);cursor:pointer}.dd-item:hover{background:var(--primary-wash)}.dd-item.selected{background:var(--accent-wash);font-weight:700}.dd-item.disabled{color:var(--text-3);cursor:default}.rc-flags{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.rc-flag{font-size:11px;padding:3px 10px;border-radius:12px;background:rgba(183,28,28,.12);color:var(--danger);font-weight:700}.dash-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.dash-total{font-size:12px;color:var(--text-3);font-weight:600}.dash-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dash-tile{border:1px solid var(--border-light);background:var(--surface);border-radius:var(--radius-sm);padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font-family:var(--font);color:var(--text-1);transition:transform .08s ease}.dash-tile:active{transform:scale(.96)}.dash-tile.open{border-color:currentColor;box-shadow:var(--shadow-sm)}.dash-num{font-size:22px;font-weight:800;line-height:1.1}.dash-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.dash-tile.ok{color:var(--success);background:rgba(46,125,50,.1)}.dash-tile.warn{color:#B26A00;background:rgba(245,158,11,.14)}.dash-tile.bad{color:var(--danger);background:rgba(183,28,28,.1)}.dash-tile.off{color:var(--text-2);background:var(--primary-wash)}.dash-note{margin-top:10px;font-size:12px;color:var(--text-3)}.dash-list{margin-top:4px}.dash-person{display:flex;justify-content:space-between;gap:10px;padding:9px 2px;border-top:1px solid var(--border-light);font-size:14px;font-weight:600}.dash-person:first-child{margin-top:10px}.dash-meta{font-weight:500}.dash-empty,.dash-meta{color:var(--text-3);font-size:13px}.dash-empty{margin-top:10px}:root[data-theme=dark]{color-scheme:dark;--primary:#C9A593;--primary-mid:#8D6E63;--primary-light:#D9BDAE;--primary-wash:rgba(255,255,255,0.07);--accent:#B8947F;--accent-light:#E3D3CA;--accent-wash:rgba(201,165,147,0.16);--bg:#000000;--surface:#0F0F10;--border:#262322;--border-light:#1B1918;--text-1:#F5EFEB;--text-2:#CDBFB7;--text-3:#8F847E;--success:#66BB6A;--warn:#BCAAA4;--danger:#EF6C6C;--shadow-sm:0 1px 3px rgba(0,0,0,0.6);--shadow-md:0 4px 12px rgba(0,0,0,0.6);--shadow-lg:0 8px 30px rgba(0,0,0,0.7)}:root[data-theme=dark] .top-bar{background:linear-gradient(135deg,#000000,#1A1411 130%);border-bottom:1px solid #1b1918;box-shadow:none}:root[data-theme=dark] .bottom-nav{box-shadow:0 -2px 12px rgba(0,0,0,.5)}:root[data-theme=dark] .dash-tile.warn{color:#FFB74D}:root[data-theme=dark] .dash-tile.ok{background:rgba(102,187,106,.14)}:root[data-theme=dark] .dash-tile.bad{background:rgba(239,108,108,.14)}:root[data-theme=dark] .toast{background:#26221F;color:#F5EFEB}:root[data-theme=dark] .form-input,:root[data-theme=dark] .form-select,:root[data-theme=dark] .form-textarea{background:var(--bg);color:var(--text-1)}:root[data-theme=dark] .switch-track{background:#3A3532}.settings-badge{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--danger);color:#fff;font-size:12px;font-weight:700;align-items:center;justify-content:center}.settings-check{width:20px;height:20px;color:var(--primary);flex-shrink:0}.link-btn{display:block;margin:10px auto 0;background:none;border:none;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-2);text-decoration:underline;cursor:pointer}.unsynced-item{display:flex;align-items:flex-start;gap:12px;position:relative;padding:14px}.unsynced-thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;background:var(--border-light);flex-shrink:0}.unsynced-body{flex:1 1;min-width:0}.unsynced-title{font-size:15px;font-weight:700;margin-bottom:2px}.unsynced-discard{border:none;background:none;color:var(--text-3);font-size:16px;cursor:pointer;padding:4px 6px}:root[data-theme=dark] .sync-banner-text{color:var(--accent-light)}.dash-gps{margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35)}.dash-gps-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#B26A00;margin-bottom:6px}.dash-gps-row{font-size:13px;padding:5px 0;border-top:1px solid rgba(245,158,11,.25)}.dash-gps-row:first-of-type{border-top:none}:root[data-theme=dark] .dash-gps-title{color:#FFB74D}.install-steps{padding-left:20px;font-size:14px;color:var(--text-2);display:grid;gap:8px}.staff-view{margin-top:6px}.staff-view .pf-row{padding:7px 0;font-size:13px;border-top:1px solid var(--border-light)}.staff-view .pf-row:first-child{border-top:none}.staff-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.staff-actions .btn{width:auto;flex:1 1 auto;min-width:120px;font-size:14px;padding:11px 14px}.staff-edit .form-input,.staff-edit .form-select{width:100%}.pw-row{display:flex;gap:8px;align-items:center;margin-top:4px}.pw-row .form-input{flex:1 1;min-width:0}.pw-btn{width:auto!important;flex:0 0 auto!important;min-width:0!important;padding:10px 12px!important;font-size:13px!important}.loc-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.loc-chip input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.loc-chip:has(input:checked){background:var(--primary);border-color:var(--primary);color:#fff}.loc-chip:has(input:checked):before{content:"✓";font-size:12px;font-weight:800}.loc-chip:has(input:focus-visible){outline:2px solid var(--primary-light);outline-offset:2px}.loc-chip:active{transform:scale(.97)}.weekoff-chip-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px}.weekoff-chip-row .loc-chip{padding:10px 0;font-size:12px}.weekoff-chip-row .loc-chip:before{display:none}.loc-chip-row{margin-top:6px}.staff-edit .loc-hint,.staff-view+.loc-hint{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-top:18px}.team-tabs{position:relative;display:flex;gap:4px;padding:4px;margin-bottom:14px;background:var(--primary-wash);border-radius:12px}.team-tab-indicator{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 16px) / 3);border-radius:9px;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .28s cubic-bezier(.4,0,.2,1)}.team-tab{position:relative;z-index:1;flex:1 1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 6px;border:none;border-radius:9px;background:transparent;font-family:var(--font);font-size:14px;font-weight:700;color:var(--text-2);cursor:pointer;transition:color .2s ease;-webkit-tap-highlight-color:transparent}.team-tab:focus{outline:none}.team-tab:focus-visible{outline:2px solid var(--primary-light);outline-offset:-2px}.team-tab.active{color:var(--text-1)}.team-tab-count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary-wash);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.team-tab.active .team-tab-count{background:var(--primary);color:#fff}.team-pane.enter{animation:team-pane-in .28s cubic-bezier(.4,0,.2,1)}@keyframes team-pane-in{0%{opacity:0;transform:translateX(calc(var(--dir, 1) * 28px))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.team-tab,.team-tab-count,.team-tab-indicator{transition:none}.team-pane.enter{animation:none}}.dash-refresh{border:none;background:none;padding:2px 0 0 8px;color:var(--text-3);cursor:pointer;vertical-align:middle}.dash-refresh svg{width:15px;height:15px}.dash-refresh:active{color:var(--text-1)}.dash-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.dash-chip{padding:5px 11px;border-radius:999px;background:var(--primary-wash);font-size:12px;font-weight:600;color:var(--text-2)}.dash-chip b{color:var(--text-1);margin-left:2px}.dash-attn{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.35)}.dash-attn-row{font-size:14px;padding:8px 0;border-top:1px solid rgba(245,158,11,.25)}.dash-attn-row:first-of-type{border-top:none}.dash-attn-row a{color:var(--text-1);font-weight:600}.bottom-nav-item,.week-col.today .week-col.today .week-day,.week-col.today :root[data-theme=dark] :root[data-theme=dark] .week-col.today .bottom-nav-inner{position:relative}.bottom-nav-item{z-index:1;border-radius:12px;transition:color .2s ease;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active{background:none}.bottom-nav-indicator{position:absolute;left:0;top:0;z-index:0;border-radius:12px;background:var(--primary-wash);pointer-events:none}.bottom-nav-inner.ready .bottom-nav-indicator{transition:transform .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1)}.bottom-nav-item svg{transition:transform .2s ease}.bottom-nav-item.active svg{animation:nav-pop .38s cubic-bezier(.34,1.56,.64,1)}@keyframes nav-pop{0%{transform:scale(.8) translateY(2px)}to{transform:scale(1) translateY(0)}}.bottom-nav-item:active svg{transform:scale(.9)}:root[data-theme=dark] .bottom-nav-item{color:#9C8F88}:root[data-theme=dark] .bottom-nav-item.active{color:var(--primary);background:none}:root[data-theme=dark] .bottom-nav-indicator{background:rgba(201,165,147,.18)}:root[data-theme=dark] .bottom-nav{background:#000000;border-top-color:#1B1918;box-shadow:none}@media (prefers-reduced-motion:reduce){.bottom-nav-inner.ready .bottom-nav-indicator{transition:none}.bottom-nav-item.active svg{animation:none}}:root{--on-primary:#FFFFFF}:root[data-theme=dark]{--on-primary:#1C1410}:root[data-theme=dark] .btn-in,:root[data-theme=dark] .btn-out,:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .pf-cam,:root[data-theme=dark] .sync-btn{color:var(--on-primary)}:root[data-theme=dark] .loc-chip:has(input:checked){color:var(--on-primary)}:root[data-theme=dark] .team-tab.active .team-tab-count{color:var(--on-primary)}:root[data-theme=dark] .top-bar-avatar{color:var(--on-primary);border-color:rgba(255,255,255,.35)}:root[data-theme=dark] .switch input:checked+.switch-track{background:var(--primary)}:root[data-theme=dark] .team-tab.active,:root[data-theme=dark] .team-tab.active .team-tab-count+*{color:var(--text-1)}:root[data-theme=dark] .team-tab-indicator{background:#1C1918}.camera-video-wrap video.rear{transform:none}.camera-close:disabled{opacity:.5}.camera-top .camera-close:last-child{margin-left:auto}.sidebar-signout,.top-bar-userinfo{display:none}@media (min-width:1024px){:root:not([data-theme=dark]){--bg:#F4F1EF}body{background:var(--bg)}.top-bar{top:0;bottom:0;left:0;right:auto;width:252px;height:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:24px 16px 16px;background:linear-gradient(180deg,#1C1410,#2A1D18)!important;border:none!important;box-shadow:2px 0 24px rgba(0,0,0,.08)!important}.top-bar-brand{padding:2px 10px 0;gap:12px}.top-bar-logo{width:40px;height:40px;border-radius:12px}.top-bar-logo img{width:28px}.top-bar-title{font-size:19px}.top-bar-right{position:absolute;left:14px;right:14px;bottom:14px;padding:10px;border-radius:14px;background:rgba(255,255,255,.07);gap:10px}.top-bar-userinfo{display:flex;flex-direction:column;min-width:0;color:#fff;line-height:1.25}.top-bar-userinfo b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-userinfo span{font-size:11px;color:var(--accent-light);text-transform:capitalize}.profile-menu{top:auto;bottom:calc(100% + 8px);left:0;right:0;min-width:0}.bottom-nav{top:96px;bottom:90px;left:0;right:auto;width:252px;background:transparent!important;border:none!important;box-shadow:none!important;padding:0 14px;z-index:101;overflow-y:auto}.bottom-nav-inner{flex-direction:column;align-items:stretch;justify-content:flex-start;height:auto;max-width:none;gap:4px;margin:0}.bottom-nav-item{flex-direction:row;justify-content:flex-start;width:100%;gap:12px;padding:12px 14px;font-size:14px;font-weight:600;color:rgba(255,255,255,.62)!important;border-radius:12px}.bottom-nav-item svg{width:20px;height:20px}.bottom-nav-item.active,.bottom-nav-item:hover{color:#fff!important}.bottom-nav-indicator{background:rgba(255,255,255,.13)!important;border-radius:12px}.bottom-nav-item{cursor:pointer}.offline-banner{margin-top:0;margin-left:252px}.app{margin-left:252px;padding-bottom:0}.app-scroll{max-width:1360px;padding:32px 40px 56px}.app-scroll[data-page=settings]{max-width:760px}.app-scroll[data-page=home]:not([data-role=admin]){max-width:640px}.app-scroll[data-page=records]:not([data-role=admin]):not([data-role=manager]),.app-scroll[data-page=roster]:not([data-role=admin]):not([data-role=manager]){max-width:760px}.section-title{font-size:26px}.page-header,.section-title{margin-bottom:18px}.card{border-radius:16px;padding:22px;box-shadow:0 1px 2px rgba(0,0,0,.04);border-color:var(--border-light)}:root:not([data-theme=dark]) .card{background:#fff;border-color:#ECE6E2}.hrm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.hrm-title{font-size:28px;font-weight:800;letter-spacing:-.02em}.hrm-sub{font-size:14px;color:var(--text-3);margin-top:2px}.hrm-actions{display:flex;gap:10px}.hrm-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:14px;font-weight:600;color:var(--text-1);cursor:pointer}.hrm-btn svg{width:16px;height:16px}.hrm-btn:hover{background:var(--primary-wash)}.hrm-btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary,#fff)}.hrm-btn.primary:hover{opacity:.92}.hrm-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:20px}.hrm-kpi{display:flex;align-items:center;gap:14px;padding:18px;border-radius:16px;background:var(--surface);border:1px solid var(--border-light)}:root:not([data-theme=dark]) .hrm-kpi{background:#fff;border-color:#ECE6E2}.hrm-kpi-icon{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--primary-wash);color:var(--text-2)}.hrm-kpi-icon svg{width:22px;height:22px}.hrm-kpi.ok .hrm-kpi-icon{background:rgba(46,125,50,.12);color:var(--success)}.hrm-kpi.warn .hrm-kpi-icon{background:rgba(245,158,11,.16);color:#B26A00}.hrm-kpi.bad .hrm-kpi-icon{background:rgba(183,28,28,.1);color:var(--danger)}.hrm-kpi-num{font-size:28px;font-weight:800;line-height:1.05;letter-spacing:-.02em}.hrm-kpi-label{font-size:13px;font-weight:700;color:var(--text-2);margin-top:2px}.hrm-kpi-sub{font-size:12px;color:var(--text-3);margin-top:1px}.hrm-grid{grid-template-columns:minmax(0,1fr) 360px;margin-bottom:20px;align-items:start}.hrm-grid,.hrm-grid2{display:grid;gap:20px}.hrm-grid2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.hrm-side{display:flex;flex-direction:column;gap:0}.hrm-side .card{margin-bottom:16px}.hrm-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.hrm-card-title{font-size:17px;font-weight:800}.hrm-search{width:280px;padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);font-family:var(--font);font-size:14px;color:var(--text-1);outline:none}.hrm-search:focus{border-color:var(--primary-light)}.hrm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.hrm-chip{padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;transition:all .15s ease}.hrm-chip span{margin-left:4px;opacity:.7}.hrm-chip:hover{background:var(--primary-wash)}.hrm-chip.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary,#fff)}.hrm-table-wrap{overflow-x:auto}.hrm-table{width:100%;border-collapse:collapse;font-size:14px}.hrm-table th{text-align:left;padding:10px 12px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);white-space:nowrap}.hrm-table td,.hrm-table th{border-bottom:1px solid var(--border-light)}.hrm-table td{padding:12px;vertical-align:middle}.hrm-table tbody tr:hover{background:var(--primary-wash)}.hrm-table tbody tr:last-child td{border-bottom:none}.hrm-emp{gap:12px}.hrm-avatar,.hrm-emp{display:flex;align-items:center}.hrm-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--primary-light));color:var(--on-primary,#fff);justify-content:center;font-size:12px;flex-shrink:0}.hrm-avatar,.hrm-emp-name{font-weight:700}.hrm-emp-sub{font-size:12px}.hrm-detail,.hrm-emp-sub,.hrm-muted{color:var(--text-3)}.hrm-detail{font-size:12px;margin-top:3px}.hrm-detail,.hrm-emp-name{white-space:nowrap}.hrm-empty{text-align:center;color:var(--text-3);padding:28px 0!important}.hrm-pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.hrm-pill.ok{background:rgba(46,125,50,.12);color:var(--success)}.hrm-pill.warn{background:rgba(245,158,11,.16);color:#B26A00}.hrm-pill.bad{background:rgba(183,28,28,.1);color:var(--danger)}.hrm-pill.off{background:var(--primary-wash);color:var(--text-2)}.hrm-pill.soon{background:rgba(33,150,243,.12);color:#1E6FBF}.hrm-dept{margin-top:14px}.hrm-dept-top{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.hrm-dept-bar{height:8px;border-radius:999px;background:var(--primary-wash);overflow:hidden}.hrm-dept-bar span{display:block;height:100%;border-radius:999px;background:var(--primary-light);transition:width .4s ease}.hrm-grid2 .card{margin-bottom:0}.team-pane{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;align-items:start}.team-pane .team-group-title{grid-column:1/-1;margin-top:8px}.app-scroll[data-page=roster] .record-card,.team-pane .record-card{margin-bottom:0}.app-scroll[data-page=roster][data-role=admin],.app-scroll[data-page=roster][data-role=manager]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;align-items:start}.app-scroll[data-page=roster]>.empty-state,.app-scroll[data-page=roster][data-role=admin]>.section-title,.app-scroll[data-page=roster][data-role=manager]>.section-title{grid-column:1/-1;margin-bottom:0}.app-scroll[data-page=team]>.search-input,.app-scroll[data-page=team]>.team-tabs{max-width:420px}.app-scroll[data-page=team]>#addStaffToggleBtn{width:auto!important;padding:11px 20px}#addStaffCard .card{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;max-width:900px}#addStaffCard .card>.form-group:has(.loc-chip-row),#addStaffCard .card>.form-group:has(.weekoff-chip-row),#addStaffCard .card>.loc-hint,#addStaffCard .card>button{grid-column:1/-1}.filter-row{gap:12px}.records-filter-card{display:flex;gap:14px;align-items:flex-start}.records-filter-card .filter-row{flex:1 1;margin-bottom:0!important}.rec-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.rec-stat{background:var(--surface);border:1px solid var(--border-light);border-radius:14px;padding:14px 18px;display:flex;flex-direction:column}:root:not([data-theme=dark]) .rec-stat{background:#fff;border-color:#ECE6E2}.rec-stat b{font-size:24px;font-weight:800;letter-spacing:-.02em}.rec-stat span{font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.rec-table td{font-size:13.5px;white-space:nowrap}.rec-table td.rec-notes{white-space:normal}.rec-table .hrm-detail.late{color:var(--danger);font-weight:600}.rec-notes{max-width:280px}.rec-gps{font-size:12px;font-weight:600;color:#B26A00}.rec-note{font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rec-photos{display:flex;gap:6px}.rec-photo{width:34px;height:34px;border-radius:8px;object-fit:cover;cursor:pointer;border:1px solid var(--border);background:var(--primary-wash)}.rec-photo:hover{transform:scale(1.06)}.hrm-card{margin-bottom:0}}.wk{display:flex;gap:10px;margin-top:10px;height:190px}.wk-axis{display:flex;flex-direction:column;justify-content:space-between;padding:0 0 38px;font-size:11px;font-weight:600;color:var(--text-3);text-align:right;min-width:16px;line-height:1}.wk-axis span:first-child{margin-top:28px}.wk-plot{position:relative;flex:1 1;min-width:0}.wk-grid{position:absolute;left:0;right:0;top:28px;bottom:38px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.wk-grid i{display:block;height:0;border-top:1px dashed var(--border);opacity:.8}.wk-grid i:last-child{border-top-style:solid}.wk-cols{gap:8px;height:100%}.wk-col,.wk-cols{position:relative;display:flex}.wk-col{flex:1 1;min-width:0;flex-direction:column;align-items:center;background:none;border:none;padding:0;font-family:var(--font);color:inherit;cursor:pointer;border-radius:10px;-webkit-tap-highlight-color:transparent;transition:background .15s ease}.wk-col.open,.wk-col:focus-visible,.wk-col:hover{background:var(--primary-wash);outline:none}.wk-val{height:28px;padding-bottom:4px;font-size:12px;font-weight:700;color:var(--text-2)}.wk-barwrap,.wk-val{display:flex;align-items:flex-end}.wk-barwrap{flex:1 1;width:100%;justify-content:center;padding:0 12%}.wk-bar{display:block;width:100%;max-width:46px;height:var(--h);min-height:4px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--accent) 0,var(--accent-light) 160%);opacity:.55;transform-origin:bottom;animation:wk-grow .55s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i) * 45ms);transition:opacity .15s ease,filter .15s ease}.wk-col.empty .wk-bar{height:4px;opacity:.3;background:var(--border)}.wk-col.today .wk-bar{opacity:1;background:linear-gradient(180deg,var(--primary-light) 0,var(--primary) 100%)}.wk-col.open .wk-bar,.wk-col:hover .wk-bar{opacity:1;filter:brightness(1.05)}@keyframes wk-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.wk-lab{height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;gap:1px}.wk-lab b{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.wk-lab i{font-style:normal;font-size:13px;font-weight:700;color:var(--text-2)}.wk-col.today .wk-lab b,.wk-col.today .wk-lab i,.wk-col.today .wk-val{color:var(--text-1)}.wk-tip{position:absolute;z-index:20;left:0;top:0;width:max-content;min-width:190px;max-width:250px;padding:12px 14px;border-radius:12px;background:#1C1410;color:#F5EFEB;box-shadow:0 10px 30px rgba(0,0,0,.28);text-align:left;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .16s ease,visibility 0s linear .16s}.wk-tip.show{opacity:1;visibility:visible;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .16s ease,visibility 0s}.wk-tip-body{display:flex;flex-direction:column;gap:3px;transition:opacity .09s ease}.wk-tip-date{font-size:12px;font-weight:700;color:#D7CCC8}.wk-tip-main{font-size:13px;color:#F5EFEB}.wk-tip-main strong{font-size:20px;font-weight:800;margin-right:2px}.wk-tip-meta{font-size:12px;color:#A89B94}.wk-late{color:#FFB74D;font-weight:700}.wk-tip-list{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}.wk-tip-list>span{display:flex;justify-content:space-between;gap:14px;font-size:12px}.wk-tip-list i{font-weight:600;overflow:hidden;text-overflow:ellipsis}.wk-tip-list em,.wk-tip-list i{font-style:normal;white-space:nowrap}.wk-tip-list em{color:#A89B94}.wk-tip-list em.late{color:#FFB74D}.wk-more{color:#A89B94;font-size:11.5px!important}:root[data-theme=dark] .wk-tip{background:#1F1B19;border:1px solid #332d2a}:root[data-theme=dark] .wk-bar{background:linear-gradient(180deg,var(--primary) 0,rgba(201,165,147,.35) 160%);opacity:.5}:root[data-theme=dark] .wk-col.today .wk-bar{opacity:1;background:linear-gradient(180deg,var(--primary-light) 0,var(--primary) 100%)}@media (min-width:1024px){.wk{height:240px}.wk-col{border-radius:12px}}@media (prefers-reduced-motion:reduce){.wk-bar{animation:none}.wk-tip,.wk-tip-body{transition:none}}.hrm-table tbody.animate tr{animation:hrm-row-in .28s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--r, 0) * 30ms)}@keyframes hrm-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hrm-dept-bar span{width:var(--w,0);animation:hrm-bar-grow .7s cubic-bezier(.22,1,.36,1) both}@keyframes hrm-bar-grow{0%{width:0}to{width:var(--w)}}.hrm-chip,.hrm-pill,.hrm-table tbody tr{transition:background .18s ease,color .18s ease,border-color .18s ease}@media (prefers-reduced-motion:reduce){.hrm-dept-bar span,.hrm-table tbody.animate tr{animation:none}}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:16px 0 8px;font-size:13px;color:var(--text-2)}.pager-info b{color:var(--text-1)}.pager-nav{display:flex;align-items:center;gap:4px}.pager-btn{min-width:34px;height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-1);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.pager-btn:hover:not(:disabled):not(.active){background:var(--primary-wash)}.pager-btn.arrow{font-size:18px;line-height:1}.pager-btn.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary,#fff);cursor:default}.pager-btn:disabled{opacity:.4;cursor:default}.pager-gap{padding:0 4px;color:var(--text-3)}.pager-of{display:none;padding:0 8px;font-weight:600;color:var(--text-2)}.pager-size{display:inline-flex;align-items:center;gap:8px;font-weight:600}@media (max-width:1023px){.pager{justify-content:center}.pager-info{width:100%;text-align:center}.pager-btn.num,.pager-gap{display:none}.pager-of{display:inline}}.pager-btn.active{animation:pager-pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pager-pop{0%{transform:scale(.8)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.pager-btn.active{animation:none}}.dd-menu{transform-origin:top center;animation:dd-in .17s cubic-bezier(.22,1,.36,1) both;box-shadow:0 12px 32px rgba(0,0,0,.16)}.dd-menu.up{transform-origin:bottom center}.dd-menu.closing{animation:dd-out .12s ease-in both;pointer-events:none}@keyframes dd-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}.dd-menu.up{--dd-from:6px;animation-name:dd-in-up}.dd-menu.up.closing{animation-name:dd-out-up}@keyframes dd-in-up{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}@keyframes dd-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px) scale(.98)}}@keyframes dd-out-up{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(4px) scale(.98)}}.dd-item{display:flex;align-items:center;justify-content:space-between;gap:14px;white-space:nowrap;transition:background .12s ease}.dd-item.selected:after{content:"✓";font-weight:800;color:var(--success)}.dd-menu{min-width:124px}.dd-btn{transition:border-color .15s ease,box-shadow .15s ease}.dd-btn.open{box-shadow:0 0 0 3px var(--primary-wash)}:root[data-theme=dark] .dd-menu{box-shadow:0 12px 32px rgba(0,0,0,.6)}.pager-size .dd-btn{width:auto;min-width:82px;padding:7px 12px;font-size:13px;font-weight:700;gap:12px}@media (prefers-reduced-motion:reduce){.dd-menu,.dd-menu.closing{animation:none}}@media (min-width:1024px){.top-bar-userinfo{flex:1 1}.sidebar-signout{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border:none;border-radius:10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);cursor:pointer;transition:background .18s ease,color .18s ease,transform .12s ease}.sidebar-signout:hover{background:rgba(239,108,108,.22);color:#FF9E9E}.sidebar-signout:active{transform:scale(.92)}.sidebar-signout:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}}.range-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.range-chip{padding:8px 15px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .1s ease}.range-chip:hover{background:var(--primary-wash)}.range-chip:active{transform:scale(.96)}.range-chip.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary,#fff)}@media (max-width:1023px){.range-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.range-chips::-webkit-scrollbar{display:none}.range-chip{flex-shrink:0}}.rec-row{cursor:pointer}.rc-flag.edited,.rec-edited{display:inline-block;margin-left:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(33,150,243,.12);color:#1E6FBF;vertical-align:middle}.record-card.clickable{cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease}.record-card.clickable:hover{box-shadow:var(--shadow-md)}.dash-attn-row.clickable{cursor:pointer;border-radius:8px;transition:background .15s ease}.dash-attn-row.clickable:hover{background:rgba(245,158,11,.12)}.dash-fix{margin-top:3px;font-size:12px;font-weight:700;color:#B26A00}body.no-scroll{overflow:hidden}.drawer-overlay{position:fixed;inset:0;z-index:640;background:rgba(0,0,0,.45);display:flex;justify-content:flex-end;opacity:0;visibility:hidden;transition:opacity .28s ease,visibility 0s linear .34s}.drawer-overlay.open{opacity:1;visibility:visible;transition-delay:0s}.drawer{width:100%;max-width:520px;height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .34s cubic-bezier(.22,1,.36,1);will-change:transform}.drawer-overlay.open .drawer{transform:none}.drawer-body{display:flex;flex-direction:column;height:100%;min-height:0}.drawer-head{justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--border-light)}.drawer-head,.drawer-who{display:flex;align-items:center}.drawer-who{gap:14px;min-width:0}.drawer-name{font-size:18px;font-weight:800}.drawer-sub{font-size:13px;color:var(--text-3)}.drawer-close{width:36px;height:36px;border:none;border-radius:50%;background:var(--primary-wash);color:var(--text-1);font-size:16px;cursor:pointer;flex-shrink:0}.drawer-scroll{flex:1 1;overflow-y:auto;padding:8px 22px 28px}.drawer-section{padding:18px 0;border-bottom:1px solid var(--border-light)}.drawer-section:last-child{border-bottom:none}.drawer-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.drawer-h span{font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--text-3)}.drawer-status{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.drawer-status .rec-edited{margin-left:0}.drawer .pf-row{padding:8px 0;font-size:14px}.drawer-photos{display:flex;gap:12px;margin-top:14px}.drawer-photo{margin:0;text-align:center}.drawer-photo img{width:96px;height:96px;border-radius:12px;object-fit:cover;cursor:pointer;border:1px solid var(--border);background:var(--primary-wash)}.drawer-photo figcaption{font-size:11.5px;color:var(--text-3);margin-top:4px}.drawer-edit{background:var(--primary-wash);margin:0 -22px;padding:18px 22px;border-radius:0}.drawer .form-label em,.drawer-edit .form-label em{font-style:normal;font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-3)}.drawer-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:12px;color:var(--text-3);align-items:center}.drawer-quick button{padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background .15s ease}.drawer-quick button:hover{background:var(--primary-wash)}.drawer-quick.reasons{margin:0 0 8px}.hist{flex-direction:column;gap:14px}.hist,.hist-item{position:relative;display:flex}.hist-item{gap:12px}.hist-item:not(:last-child):before{content:"";position:absolute;left:4px;top:16px;bottom:-14px;width:2px;background:var(--border)}.hist-dot{width:10px;height:10px;border-radius:50%;background:var(--primary-light);margin-top:6px;flex-shrink:0;box-shadow:0 0 0 3px var(--primary-wash)}.hist-main{min-width:0;font-size:13.5px}.hist-line{line-height:1.5}.hist-line s{color:var(--text-3)}.hist-reason{margin-top:3px;color:var(--text-2);font-style:italic}.hist-meta{margin-top:2px;font-size:12px;color:var(--text-3)}@media (max-width:1023px){.drawer-overlay{align-items:flex-end;justify-content:center}.drawer{max-width:560px;height:min(90vh,780px);max-height:none;border-radius:20px 20px 0 0;transform:translateY(100%);box-shadow:0 -12px 40px rgba(0,0,0,.3)}.drawer-overlay.open .drawer{transform:none}.drawer-head{padding:16px 18px}.drawer-scroll{padding:4px 18px 24px}.drawer-edit{margin:0 -18px;padding:16px 18px}}@media (prefers-reduced-motion:reduce){.drawer,.drawer-overlay{transition:none}}.pk-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;cursor:pointer;font-family:var(--font);color:var(--text-1);transition:border-color .15s ease,box-shadow .15s ease}.pk-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pk-btn svg{flex-shrink:0;transition:color .15s ease}.pk-btn svg,.pk-btn.empty span{color:var(--text-3)}.pk-btn.open{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-wash)}.pk-btn.open svg{color:var(--text-1)}.pk-btn:disabled{opacity:.6;cursor:default}.pk-btn.pattern-time{width:auto}.dp-pop{position:fixed;z-index:1100;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow-y:auto;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:0 18px 48px rgba(0,0,0,.22);color:var(--text-1);-webkit-user-select:none;user-select:none;transform-origin:top left;animation:dd-in .18s cubic-bezier(.22,1,.36,1) both}.dp-pop.up{transform-origin:bottom left;animation-name:dd-in-up}.dp-pop.closing{animation-name:dd-out;animation-duration:.12s;pointer-events:none}.dp-pop.up.closing{animation-name:dd-out-up}.dp-wrap{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.dp-cal{width:266px}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dp-title{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;margin-left:-6px;border:none;border-radius:8px;background:none;font-family:var(--font);font-size:15px;font-weight:800;color:var(--text-1);cursor:pointer;transition:background .12s ease}button.dp-title:hover{background:var(--primary-wash)}span.dp-title{cursor:default}.dp-navs{display:flex;gap:2px}.dp-nav{width:32px;height:32px;border:none;border-radius:8px;background:none;font-size:20px;line-height:1;color:var(--text-2);cursor:pointer;transition:background .12s ease}.dp-nav:hover{background:var(--primary-wash);color:var(--text-1)}.dp-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.dp-dow span{text-align:center;font-size:11px;font-weight:700;color:var(--text-3);padding:4px 0}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-day{aspect-ratio:1;min-height:34px;border:none;border-radius:10px;background:none;font-family:var(--font);font-size:13.5px;font-weight:600;color:var(--text-1);cursor:pointer;transition:background .12s ease,transform .1s ease}.dp-day:hover:not(:disabled):not(.sel){background:var(--primary-wash)}.dp-day:active:not(:disabled){transform:scale(.92)}.dp-day.out{color:var(--text-3);font-weight:500}.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--primary-light)}.dp-day.sel{background:var(--primary);color:var(--on-primary,#fff);box-shadow:none}.dp-day:disabled{opacity:.3;cursor:default}.dp-months,.dp-years{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.dp-months{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-light)}.dp-month,.dp-year{padding:9px 0;border:none;border-radius:9px;background:none;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-1);cursor:pointer}.dp-month:hover,.dp-year:hover{background:var(--primary-wash)}.dp-month.sel,.dp-year.sel{background:var(--primary);color:var(--on-primary,#fff)}.dp-time{display:flex;gap:6px;height:262px}.dp-col{display:flex;flex-direction:column;gap:2px;width:52px;overflow-y:auto;scrollbar-width:thin;padding-right:2px}.dp-col.ampm{overflow:visible}.dp-t{flex-shrink:0;height:34px;border:none;border-radius:9px;background:none;font-family:var(--font);font-size:13.5px;font-weight:600;color:var(--text-1);cursor:pointer;transition:background .12s ease}.dp-t:hover:not(.sel){background:var(--primary-wash)}.dp-t.sel{background:var(--primary);color:var(--on-primary,#fff)}.dp-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-light)}.dp-link{padding:6px 10px;margin-left:-10px;border:none;border-radius:8px;background:none;font-family:var(--font);font-size:13px;font-weight:700;color:var(--text-2);cursor:pointer}.dp-link+.dp-link{margin-left:4px}.dp-link:hover{background:var(--primary-wash);color:var(--text-1)}.dp-done{padding:8px 20px;border:none;border-radius:9px;background:var(--primary);color:var(--on-primary,#fff);font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer}.dp-done:hover{opacity:.92}@media (max-width:560px){.dp-wrap{flex-direction:column}.dp-cal,.dp-time{width:100%}.dp-time{height:150px}.dp-col{flex:1 1;width:auto}}:root[data-theme=dark] .dp-pop{box-shadow:0 18px 48px rgba(0,0,0,.7)}@media (prefers-reduced-motion:reduce){.dp-pop,.dp-pop.closing{animation:none}}.drawer-quick button.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary,#fff)}.drawer-hint{margin-top:6px;font-size:12px;line-height:1.45;color:var(--text-3)}.drawer-skeleton{padding:28px 22px;display:flex;flex-direction:column;gap:14px}.sk-line{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--primary-wash) 25%,var(--border-light) 50%,var(--primary-wash) 75%);background-size:200% 100%;animation:sk-shimmer 1.2s ease-in-out infinite;margin:6px 0}.sk-line.w60{width:60%}.sk-line.w80{width:80%}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk-line{animation:none}}.device-block{position:fixed;inset:0;z-index:560;background:var(--bg);align-items:center;justify-content:center;padding:24px}.device-block-card{max-width:460px;text-align:center;padding:40px 34px;border-radius:22px;background:var(--surface);border:1px solid var(--border-light);box-shadow:var(--shadow-md)}.device-block-icon{width:76px;height:76px;margin:0 auto 20px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary,#fff)}.device-block-card h1{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:12px}.device-block-card p{font-size:15px;color:var(--text-2);line-height:1.55;margin-bottom:10px}.device-block-card .device-block-sub{font-size:13.5px;color:var(--text-3);margin-bottom:24px}.device-block-actions{display:flex;gap:10px}.device-block-actions .btn{flex:1 1;width:auto;font-size:15px;padding:13px 16px}.rec-ot{color:var(--success);font-weight:700}.flag-row,.note-row{display:flex;flex-direction:column;gap:2px;padding:10px 12px;margin-bottom:8px;border-radius:10px;font-size:13.5px}.flag-row b,.note-row b{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.flag-row span,.note-row span{color:var(--text-1);line-height:1.5}.flag-row.late{background:rgba(183,28,28,.08)}.flag-row.late b{color:var(--danger)}.flag-row.gps{background:rgba(245,158,11,.12)}.flag-row.gps b{color:#B26A00}.flag-row.info{background:rgba(33,150,243,.1)}.flag-row.info b{color:#1E6FBF}.note-row{background:var(--primary-wash)}.note-row b{color:var(--text-2)}:root[data-theme=dark] .flag-row.gps b{color:#FFB74D}.rep-actions{display:flex;gap:8px}.rep-btn{width:auto;padding:8px 14px;font-size:13px}.month-nav{display:flex;align-items:center;gap:12px;margin-bottom:16px}.month-arrow{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:22px;line-height:1;color:var(--text-1);cursor:pointer;transition:background .15s ease}.month-arrow:hover:not(:disabled){background:var(--primary-wash)}.month-arrow:disabled{opacity:.35;cursor:default}.month-label{flex:1 1;text-align:center;font-size:18px;font-weight:800;display:flex;flex-direction:column;line-height:1.2}.month-label span{font-size:12px;font-weight:500;color:var(--text-3)}.rep-stats{grid-template-columns:repeat(6,1fr)}.rec-stat.bad b{color:var(--danger)}.rec-stat.ok b{color:var(--success)}.rec-ut{color:var(--danger)}.pct,.rec-ut{font-weight:700}.pct{display:flex;align-items:center;gap:8px;min-width:100px}.pct-bar{flex:1 1;height:6px;border-radius:999px;background:var(--primary-wash);overflow:hidden;min-width:40px}.pct-bar i{display:block;height:100%;border-radius:999px;background:var(--primary-light)}.rep-note{margin-top:14px;font-size:12.5px;color:var(--text-3);line-height:1.5}.rep-cards{display:none}.rep-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.rep-line{display:flex;justify-content:space-between;font-size:13.5px;padding:3px 0;color:var(--text-2)}.ts-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ts-stat{background:var(--primary-wash);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.ts-stat b{font-size:20px;font-weight:800}.ts-stat span{font-size:11.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.ts-stat.bad b{color:var(--danger)}.ts-stat.warn b{color:#B26A00}.ts-stat.ok b{color:var(--success)}.ts-table td,.ts-table th{padding:8px;font-size:13px;white-space:nowrap}.ts-table tr.row-absent{background:rgba(183,28,28,.05)}@media (max-width:1023px){.rep-table{display:none}.rep-cards{display:block}.rep-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.month-label{font-size:16px}}@media (min-width:1024px){.rep-stats{margin-bottom:16px}}@media print{.bottom-nav,.btn,.device-block,.drawer-close,.month-arrow,.offline-banner,.pager,.rep-actions,.toast,.top-bar{display:none!important}body{background:#fff!important;color:#000!important}.app{margin:0!important}.app,.app-scroll{padding:0!important}.app-scroll{max-width:none!important}.card,.rec-stat{box-shadow:none!important;border:1px solid #ddd!important;background:#fff!important}.rep-table{display:block!important}.rep-cards,body.print-drawer .app,body.print-drawer .top-bar{display:none!important}body.print-drawer .drawer-overlay{position:static!important;background:none!important;opacity:1!important;visibility:visible!important;display:block!important}body.print-drawer .drawer{max-width:none!important;width:100%!important;height:auto!important;box-shadow:none!important;transform:none!important;border-radius:0!important}body.print-drawer .drawer-scroll{overflow:visible!important}body:not(.print-drawer) .drawer-overlay{display:none!important}.hrm-table td,.hrm-table th{border-bottom:1px solid #ddd!important}}@media (min-width:1024px){.rep-table .hrm-table th{padding:10px 8px;font-size:11px;letter-spacing:.03em}.rep-table .hrm-table td{padding:12px 8px;font-size:13.5px}.rep-table .pct{min-width:86px;gap:6px}.rep-table .hrm-avatar{width:34px;height:34px}}.ts-table .hrm-detail.late{color:var(--danger);font-weight:600}.ts-table td,.ts-table th{padding:8px 6px;font-size:12.5px}.hrm-pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.hrm-pill.ok{background:rgba(46,125,50,.12);color:var(--success)}.hrm-pill.warn{background:rgba(245,158,11,.16);color:#B26A00}.hrm-pill.bad{background:rgba(183,28,28,.1);color:var(--danger)}.hrm-pill.off{background:var(--primary-wash);color:var(--text-2)}.hrm-pill.soon{background:rgba(33,150,243,.12);color:#1E6FBF}.hrm-detail,.hrm-muted{color:var(--text-3)}.hrm-detail{font-size:12px;white-space:nowrap;margin-top:3px}.hrm-table-wrap{overflow-x:auto}.hrm-table{width:100%;border-collapse:collapse;font-size:14px}.hrm-table th{text-align:left;padding:10px 12px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);white-space:nowrap}.hrm-table td,.hrm-table th{border-bottom:1px solid var(--border-light)}.hrm-table td{padding:12px;vertical-align:middle}.hrm-table tbody tr:last-child td{border-bottom:none}.hrm-empty{text-align:center;color:var(--text-3);padding:24px 0!important}.rec-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.rec-stat{background:var(--surface);border:1px solid var(--border-light);border-radius:14px;padding:12px 16px;display:flex;flex-direction:column}.rec-stat b{font-size:22px;font-weight:800;letter-spacing:-.02em}.rec-stat span{font-size:11.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}@media (min-width:1024px){.rec-stats{grid-template-columns:repeat(4,1fr);gap:14px}.rep-stats{grid-template-columns:repeat(6,1fr)}}.hrm-emp{gap:12px}.hrm-avatar,.hrm-emp{display:flex;align-items:center}.hrm-avatar{position:relative;overflow:hidden;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--primary-light));color:var(--on-primary,#fff);justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.hrm-avatar.lg{width:52px;height:52px;font-size:16px}.hrm-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}.hrm-emp-name{font-weight:700;white-space:nowrap}.hrm-emp-sub{font-size:12px;color:var(--text-3)}@media (max-width:560px){.ts-table td,.ts-table th{padding:7px 3px;font-size:11.5px}.ts-table .hrm-pill{padding:3px 7px;font-size:10.5px}.ts-table th{font-size:10px;letter-spacing:0}.ts-table td:first-child b{font-size:11.5px}.drawer-scroll .hrm-table-wrap{margin:0 -6px}}.ts-table .hrm-detail{white-space:normal;max-width:120px;line-height:1.3}@media (max-width:560px){.ts-table .hrm-detail{max-width:88px;font-size:11px}.ts-table td,.ts-table th{white-space:normal}.ts-table td:nth-child(n+3){white-space:nowrap}}.rep-line.total{margin-top:4px;padding-top:8px;border-top:1px solid var(--border-light);font-size:14.5px;color:var(--text-1);font-weight:700}