.attendance-grid-toolbar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 22px;border-top:1px solid #ddd;color:#111;background:#fff}.grid-toolbar-start,.grid-toolbar-end{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.grid-title{font-size:13px;font-weight:750}.grid-group-label{display:flex;align-items:center;gap:8px;margin:0;font-size:11px}.grid-group-label select{width:auto;min-height:34px;padding:5px 25px 5px 9px;font-size:12px}.grid-toolbar-end .text-link{font-size:11px}.grid-column-menu{position:relative;font-size:12px}.grid-column-menu summary{cursor:pointer;list-style:none}.grid-column-menu>div{position:absolute;right:0;top:28px;z-index:60;background:#fff;border:1px solid #111;border-radius:6px;padding:16px;min-width:220px;box-shadow:0 8px 24px #0002}.grid-column-menu label{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:12px}.attendance-grid-toolbar input[type=checkbox],.attendance-grid-table input[type=checkbox]{width:15px;height:15px;min-height:0;padding:0;margin:0;accent-color:var(--accent, #ff5b00);cursor:pointer}.attendance-grid-viewport{position:relative;overflow:auto;max-height:60vh;min-height:280px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;scrollbar-gutter:stable;background:#fff}.attendance-grid-table{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:100%;color:#111}.attendance-grid-table th,.attendance-grid-table td{text-align:left;white-space:normal;vertical-align:middle;border-right:1px solid #ddd;border-bottom:1px solid #ddd;padding:9px 10px;background:#fff;font-size:12px;overflow-wrap:anywhere}.attendance-grid-table thead th{position:sticky;z-index:30;padding:0;background:#fff;text-transform:none;letter-spacing:normal}.attendance-grid-table .grid-header-row th{top:0;height:46px}.attendance-grid-table .grid-filter-row th{top:46px;height:44px;padding:6px 8px}.grid-sort-button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;text-align:left;background:transparent;border:0;color:#111;padding:10px 12px;font-size:12px;font-weight:650;min-height:45px}.grid-sort-button span{color:var(--accent, #ff5b00);font-size:16px}.grid-resize{position:absolute;right:0;top:0;width:7px;height:100%;cursor:col-resize;touch-action:none}.grid-resize:hover,.grid-resize:focus-visible{background:var(--accent, #ff5b00);outline:none}.grid-filter-row input{width:100%;min-height:30px;height:30px;padding:4px 7px;border:1px solid #ddd;border-radius:3px;font-size:11px;color:#111;background:#fff}.grid-filter-row input:focus{border-color:var(--accent, #ff5b00);outline:1px solid var(--accent, #ff5b00);box-shadow:none}.attendance-grid-table .grid-select-col{position:sticky;left:0;z-index:12;width:44px;text-align:center;padding:8px}.attendance-grid-table .grid-pinned{position:sticky;left:44px;z-index:11;box-shadow:2px 0 0 #ddd}.attendance-grid-table thead .grid-select-col,.attendance-grid-table thead .grid-pinned{z-index:40}.grid-data-row{height:62px}.grid-data-row:hover td{background:#fff7f0}.grid-data-row.is-selected td{background:var(--accent-soft, #fff0e5);border-bottom-color:var(--accent, #ff5b00)}.grid-employee{display:flex;align-items:center;gap:10px}.grid-employee strong{font-size:12px;line-height:1.4;display:block}.grid-employee small,.attendance-grid-table td>small{display:block;font-size:10px;line-height:1.7;margin-top:3px;color:#111}.grid-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:29px;height:29px;border-radius:50%;background:var(--accent, #ff5b00);color:#111;font-size:10px;font-weight:750}.grid-movement{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.grid-movement strong{font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.grid-gps{padding:3px 5px;font-size:10px;border-radius:3px;white-space:nowrap}.grid-no-gps,.grid-missing{font-size:10px;color:#111}.grid-presence{font-size:11px}.grid-presence.is-inside:before{content:'● ';color:var(--accent, #ff5b00)}.attendance-grid-table .grid-group-row td{padding:0;background:#fff;border-left:3px solid var(--accent, #ff5b00)}.grid-group-row button{display:flex;align-items:center;gap:9px;width:100%;padding:11px 14px;background:transparent;color:#111;border:0;text-align:left;font-size:12px}.grid-group-row b{font-size:11px;font-weight:400}.attendance-grid-table .grid-empty{text-align:center;padding:50px 20px}.attendance-grid-footer{padding:13px 22px;font-size:11px;color:#111;background:#fff}.grid-is-resizing,.grid-is-resizing *{cursor:col-resize!important;user-select:none!important}.daily-panel{overflow:visible}.daily-panel .panel-head{border-radius:12px 12px 0 0}.attendance-grid-toolbar .button.small{font-size:11px;padding:9px 13px}@media(max-width:760px){.attendance-grid-toolbar{padding:15px;gap:15px}.grid-toolbar-start,.grid-toolbar-end{gap:12px}.attendance-grid-viewport{max-height:65vh}.attendance-grid-footer{padding:13px 15px}}

.attendance-grid-table .grid-selection-width{width:44px}

/* Closed grid borders, including empty space below the last record. */
.daily-panel,.content>.panel{border:1px solid #111;overflow:hidden}.attendance-grid-viewport{min-height:0;border-bottom:1px solid #ccc}.attendance-grid-table th,.attendance-grid-table td{border-bottom:1px solid #ddd!important}.attendance-grid-table tr:last-child td{border-bottom:0!important}.attendance-grid-table{border-left:1px solid #ddd}.attendance-grid-table th:last-child,.attendance-grid-table td:last-child{border-right:1px solid #ddd}.daily-panel .panel-head{display:flex;align-items:center;gap:18px}.daily-panel .panel-head>div:first-child{flex:1}.daily-panel .panel-head .roster-sync{font-size:10px}.attendance-grid-footer{border-bottom:0}.section-grid-table td:first-child,.section-grid-table th:first-child{position:sticky;left:0;z-index:12;background:#fff;box-shadow:2px 0 0 #ddd}.section-grid-table thead th:first-child{z-index:40}.section-grid-table .grid-filter-row td{position:sticky;top:46px;z-index:30;background:#fff;padding:6px 8px}.section-grid-table .grid-filter-row td:first-child{z-index:40}.section-grid-table tbody td{height:62px}.content .panel-head{gap:16px;flex-wrap:wrap}.content .panel-head h2{margin-right:auto}.content .table-wrap+.empty{border-top:1px solid #ddd}

.daily-panel .panel-head [data-daily="refresh"]{order:3}.attendance-grid-table tr:last-child td{border-bottom:1px solid #ddd!important}

.daily-inline-date{display:flex;align-items:center;gap:9px;margin:0;font-size:11px}.daily-inline-date input{width:155px;min-height:36px;font-size:12px;padding:7px}.daily-panel #attendance-date-form{margin:0}

.employee-photo{display:block;width:44px;height:44px;object-fit:cover;border:1px solid var(--accent, #ff5b00);border-radius:50%}.employee-photo.profile-photo{width:96px;height:96px;margin-bottom:16px}

.employee-dialog{width:min(1050px,calc(100% - 32px))}.employee-profile-layout{display:grid;grid-template-columns:280px 1fr;gap:32px}.employee-profile-layout aside{border-right:1px solid #ddd;padding-right:24px}.employee-photo.large-photo{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:12px;margin-bottom:18px}.employee-photo-placeholder{display:grid;place-items:center;aspect-ratio:1;border:1px solid #ddd;border-radius:12px;text-align:center;padding:24px;font-size:13px}.employee-profile-layout aside h3{margin-bottom:10px}.employee-profile-layout aside p{font-family:monospace;font-size:14px}.employee-name-button{background:none;border:0;padding:0;color:#111;text-align:left;font-weight:650;font-size:12px;cursor:pointer}.employee-name-button:hover{text-decoration:underline;text-decoration-color:var(--accent, #ff5b00)}.content [data-employee-id]{cursor:pointer}input[readonly]{background:#fff7f0;border-color:#ddd}.grid-movement{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.grid-evidence{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.grid-no-gps{border:1px solid #ddd;padding:3px 5px;border-radius:3px;white-space:nowrap}.grid-method{font-size:11px;font-weight:700;color:#111}.attendance-grid-table .grid-data-row{height:78px}@media(max-width:760px){.employee-profile-layout{grid-template-columns:1fr}.employee-profile-layout aside{border-right:0;border-bottom:1px solid #ddd;padding:0 0 20px}.employee-photo.large-photo{max-width:260px}}

.attendance-location-alert{color:#b45309;font-size:18px;display:inline-block;margin-left:5px}
