.atd-chip{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-right:12px;line-height:1.4}.atd-chip-trigger{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 12px;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:transparent;color:#fff;font-family:inherit;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer}.atd-chip-trigger:hover{background:#ffffff1a}.atd-chip-trigger:focus-visible{outline:2px solid #7dd3fc;outline-offset:2px}.atd-chip-text{font-variant-numeric:tabular-nums}.atd-chip-caret{width:14px;height:14px;flex:none;opacity:.8}.atd-chip-dot{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:#94a3b8}.atd-chip--working .atd-chip-dot{background:#22c55e}.atd-chip--break .atd-chip-dot{background:#f59e0b}.atd-chip--working .atd-chip-trigger{border-color:#22c55eb3}.atd-chip--break .atd-chip-trigger{border-color:#f59e0bcc}.atd-chip--overdue .atd-chip-trigger{border-color:#f87171}.atd-chip-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:2000;width:290px;padding:14px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#111827;box-shadow:0 12px 32px #0f172a40;font-size:13px;font-weight:400;line-height:1.5;text-align:left;white-space:normal}.atd-chip-panel-head{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:700}.atd-chip-rows{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0 0 10px;padding:0}.atd-chip-rows dt{margin:0;color:#6b7280;font-weight:600}.atd-chip-rows dd{margin:0;font-variant-numeric:tabular-nums}.atd-chip-note,.atd-chip-meta{margin:0 0 10px;color:#6b7280;font-size:12px}.atd-chip-warn{margin:0 0 10px;padding:8px 10px;border-radius:6px;background:#fef2f2;color:#b91c1c;font-size:12px}.atd-chip-actions{display:flex;justify-content:flex-end;gap:6px;margin:0;padding:0}.atd-action{height:30px;margin:0;padding:0 14px;border:1px solid transparent;border-radius:6px;font-family:inherit;font-size:13px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;color:#fff}.atd-action:disabled{opacity:.55;cursor:not-allowed}.atd-action--clockIn{background:#2563eb}.atd-action--breakStart{background:#f59e0b}.atd-action--breakEnd{background:#16a34a}.atd-action--clockOut{background:#ea580c}.atd-action:not(:disabled):hover{filter:brightness(1.08)}.atd-chip--control{margin-right:0}.atd-chip--control .atd-chip-trigger{height:29px;border-color:#475569;border-radius:6px;background:#0f172a;color:#e2e8f0;font-size:13px}.atd-chip--control.atd-chip--working .atd-chip-trigger{border-color:#16a34a}.atd-chip--control.atd-chip--break .atd-chip-trigger{border-color:#d97706}.atd-chip--control.atd-chip--overdue .atd-chip-trigger{border-color:#f87171}.atd-chip--control .atd-chip-trigger:hover{background:#1e293b}.atd-chip--control .atd-chip-panel{border-color:#334155;background:#1e293b;color:#e2e8f0;box-shadow:0 12px 32px #00000080}.atd-chip--control .atd-chip-rows dt,.atd-chip--control .atd-chip-note,.atd-chip--control .atd-chip-meta{color:#94a3b8}.atd-chip--control .atd-chip-warn{background:#dc262626;color:#fca5a5}.atd-dialog-text{margin:0 0 10px;font-size:14px;line-height:1.6}.atd-dialog-rows{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0 0 10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:6px;background:#f8f9fa;color:#111827;font-size:13px}.atd-dialog-rows dt{margin:0;color:#6b7280;font-weight:600}.atd-dialog-rows dd{margin:0;font-variant-numeric:tabular-nums}.atd-dialog-note{margin:0;color:#6b7280;font-size:12px;line-height:1.5}.atd-error{margin:8px 0 0;color:#e53935;font-size:13px}.attendance-mgmt-page .atd-tabs{margin:12px 0 0}.atd-search-box{display:flex;gap:6px}.atd-search-box .atd-search-option{width:110px;flex:none}.atd-member-filter{display:inline-flex;align-items:center;gap:10px;margin:10px 0 0;padding:6px 12px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff;color:#1e40af;font-size:13px}.atd-member-clear{height:auto;padding:0;border:none;background:none;color:#1d4ed8;font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer}.atd-current-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;font-size:14px;color:#555}.atd-count{margin-left:2px;font-size:16px;font-weight:700}.atd-count--working{color:#16a34a}.atd-count--break{color:#d97706}.atd-count--overdue{color:#dc2626}.atd-summary-time{color:#9ca3af;font-size:12px}.atd-summary-wrap{display:flex;align-items:baseline;gap:12px}.atd-applied-range{color:#6b7280;font-size:12px}.atd-hint{margin:8px 0 0;color:#6b7280;font-size:12px}.atd-row-actions{justify-content:center;flex-wrap:nowrap}.atd-link{height:auto;padding:0;border:none;background:none;color:#06c;font-size:inherit;text-align:left;cursor:pointer}.atd-link:hover,.atd-link:focus-visible{text-decoration:underline}.atd-muted{color:#9ca3af}.atd-person{display:inline-flex;flex-direction:column;line-height:1.4}.atd-sub{color:#6b7280;font-size:12px}.atd-stack{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.atd-num{font-variant-numeric:tabular-nums;white-space:nowrap}.atd-reason-cell{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.atd-badge{display:inline-block;padding:3px 10px;border-radius:12px;background:#f3f4f6;color:#4b5563;font-size:12px;font-weight:600;white-space:nowrap}.atd-status--working{background:#e7f7ee;color:#15803d}.atd-status--break{background:#fff7e6;color:#b45309}.atd-status--off{background:#f3f4f6;color:#4b5563}.atd-end--normal{background:#e6f0ff;color:#1d4ed8}.atd-end--auto{background:#fff1db;color:#b45309;border:1px dashed #f59e0b}.atd-end--forced{background:#ffe6e6;color:#b91c1c;border:1px solid #fca5a5}.atd-badge--overdue{background:#fee2e2;color:#b91c1c}.atd-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.atd-tag--auto{background:#fff1db;color:#b45309}.atd-tag--forced{background:#ffe6e6;color:#b91c1c}.atd-placeholder{margin:8px 0;color:#6b7280;font-size:14px}.atd-detail-head{display:flex;align-items:center;gap:8px;margin:0 0 12px}.atd-detail-grid{display:grid;grid-template-columns:90px minmax(0,1fr) 90px minmax(0,1fr);gap:8px 12px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--page-border-color, #e1e8ed);border-radius:8px;background:#f9fafb;font-size:13px}.atd-detail-grid dt{margin:0;color:#6b7280;font-weight:600}.atd-detail-grid dd{margin:0;color:#111827;word-break:break-all}.atd-detail-grid .atd-detail-reason{white-space:pre-wrap}.atd-detail-grid .atd-stack{align-items:flex-start}.atd-note{margin:0 0 12px;color:#b45309;font-size:12px;line-height:1.5}.atd-section-title{margin:4px 0 8px;font-size:14px;font-weight:700;color:#111827}.atd-break-table{width:100%}.atd-force-form{display:flex;flex-direction:column;gap:6px}.atd-force-form .atd-reason-input{width:100%;min-height:90px;height:auto;resize:vertical;line-height:1.5}.atd-required{color:#e53935}.atd-counter{color:#6b7280;font-size:12px;text-align:right}@media(max-width:720px){.atd-detail-grid{grid-template-columns:90px minmax(0,1fr)}.atd-chip-panel{width:min(290px,calc(100vw - 24px))}}.container{min-width:0}.recharts-text,.recharts-cartesian-axis-tick-value,.recharts-default-legend,.recharts-legend-item-text{font-size:11px}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-inline-block{display:inline-block}.flex-wrap{flex-wrap:wrap}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.align-items-center{align-items:center}.align-middle{vertical-align:middle}.h-100{height:100%}.position-relative{position:relative}.position-absolute{position:absolute}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.me-1{margin-right:.25rem}.ms-1{margin-left:.25rem}.mb-0{margin-bottom:0}.mb-3{margin-bottom:1rem}.p-0{padding:0}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}.ps-4{padding-left:1.5rem}.text-end{text-align:right}.text-center{text-align:center}.text-muted{color:#6c757d}.small{font-size:.875em}.fw-bold{font-weight:700}.fw-normal{font-weight:400}.fs-5{font-size:1.25rem}.fs-6{font-size:1rem}.user-select-none{-webkit-user-select:none;user-select:none}.text-primary{color:#0d6efd}.text-secondary{color:#6c757d}.text-success{color:#198754}.text-info{color:#0aa2c0}.text-warning{color:#cc9a06}.text-danger{color:#dc3545}.border{border:1px solid #dee2e6}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0aa2c0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.bg-white{background-color:#fff}.bg-light{background-color:#f8f9fa}.bg-danger{background-color:#dc3545}.rounded{border-radius:.375rem}.shadow-sm{box-shadow:0 .125rem .25rem #00000013}.row{display:flex;flex-wrap:wrap}.g-2{gap:.5rem}.col-6{flex:0 0 auto;width:calc(50% - .5rem);min-width:0}.col-md-3{flex:0 0 auto;width:calc(25% - .6rem);min-width:0}.col-md-4{flex:0 0 auto;width:calc(33.333% - .6rem);min-width:0}.col-md-6{flex:0 0 auto;width:calc(50% - .5rem);min-width:0}.row-cols-2>*{flex:0 0 auto;width:calc(50% - .5rem)}.row-cols-md-5>*{flex:0 0 auto;width:calc(20% - .6rem)}@media(max-width:768px){.col-md-3,.col-md-4,.col-md-6{width:100%}.row-cols-md-5>*{width:calc(50% - .5rem)}}.card.shadow-sm{background:#fff;border:1px solid #dee2e6;border-radius:.5rem}.card.shadow-sm>.card-header{border-bottom:1px solid #dee2e6;padding:.5rem .75rem}.card.shadow-sm>.card-body{padding:.75rem}.card.shadow-sm>.card-body.p-0{padding:0}.card-header.bg-white{background-color:#fff}.table-responsive{overflow-x:auto}.table-sm>:not(caption)>*>*{padding:.3rem .4rem}.table-light,.table-light>th,.table-light>td{background-color:#f8f9fa}.table-active{background-color:#ececec}.table-hover>tbody>tr:hover>*{background-color:#f5f5f5}.fetching-wrap{position:relative}.fetching-bar{position:absolute;top:0;left:0;right:0;height:3px;overflow:hidden;z-index:5;background:#0d6efd26;border-radius:2px 2px 0 0;pointer-events:none}.fetching-bar:before{content:"";position:absolute;top:0;bottom:0;width:40%;background:#0d6efd;border-radius:2px;animation:fetching-slide 1.1s ease-in-out infinite}@keyframes fetching-slide{0%{left:-40%}50%{left:30%}to{left:100%}}.fetching-badge{position:absolute;top:6px;right:8px;z-index:6;font-size:11px;font-weight:600;line-height:1;color:#0d6efd;background:#ffffffeb;border:1px solid rgba(13,110,253,.3);border-radius:10px;padding:3px 9px;pointer-events:none;display:inline-flex;align-items:center;gap:5px}.fetching-badge .fetching-dot{width:6px;height:6px;border-radius:50%;background:#0d6efd;animation:fetching-blink 1s ease-in-out infinite}@keyframes fetching-blink{0%,to{opacity:1}50%{opacity:.3}}.pagination-meta .fetching-inline{font-size:12px;font-weight:600;color:#0d6efd;margin-left:8px;display:inline-flex;align-items:center;gap:5px}.toast-item.toast-warn{border-left:4px solid #f59e0b}.toast-item.toast-warn .toast-icon{background:#f59e0b;color:#fff}.btn-group{display:inline-flex}.btn-group.btn-group-sm{gap:0}.btn-group.btn-group-sm>.btn{border-radius:0}.btn-group.btn-group-sm>.btn:first-child{border-top-left-radius:var(--btn-radius, 6px);border-bottom-left-radius:var(--btn-radius, 6px)}.btn-group.btn-group-sm>.btn:last-child{border-top-right-radius:var(--btn-radius, 6px);border-bottom-right-radius:var(--btn-radius, 6px)}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem}.btn-outline-primary{color:#0d6efd;border:1px solid #0d6efd;background:#fff}.btn-outline-primary:hover{color:#fff;background:#0d6efd}.btn-outline-secondary{color:#6c757d;border:1px solid #6c757d;background:#fff}.btn-outline-secondary:hover{color:#fff;background:#6c757d}.btn-outline-success{color:#198754;border:1px solid #198754;background:#fff}.btn-outline-success:hover{color:#fff;background:#198754}.date-range-presets{display:inline-flex;gap:4px;margin-left:8px;flex-wrap:wrap}.date-preset-chip{border:1px solid #d0d5dd;background:#fff;color:#475467;border-radius:var(--btn-radius, 6px);padding:2px 10px;font-size:12px;line-height:1.6;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.date-preset-chip:hover{border-color:#00b2eb;color:#00b2eb}.date-preset-chip.active{background:#00b2eb;border-color:#00b2eb;color:#fff}.selection-bar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:10px 16px;background:#eff8ff;border:1px solid #b2ddff;border-radius:8px;box-shadow:0 -2px 8px #1018280f}.selection-bar .selection-count{font-size:14px;font-weight:600;color:#175cd3}.selection-bar .selection-actions{display:inline-flex;gap:8px}.top-chip.sync-chip{font-variant-numeric:tabular-nums}.auto-query-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 10px;border-radius:12px;background:#ecfdf3;border:1px solid #abefc6;color:#067647;font-size:12px;font-weight:500;vertical-align:middle}.auto-query-badge .dot{width:6px;height:6px;border-radius:50%;background:#12b76a}th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable-th .sort-caret{display:inline-block;margin-left:4px;vertical-align:middle;opacity:.9}th.sortable-th.inactive .sort-caret{opacity:.3}.pop-content.large .filter-item,.pop-content.x-large .filter-item,.pop-content.xx-large .filter-item{width:100%;min-width:unset}.pop-content.large .filter-item>.form-box,.pop-content.large .filter-item>input:not([type=checkbox]):not([type=radio]),.pop-content.large .filter-item>select,.pop-content.large .filter-item>textarea,.pop-content.x-large .filter-item>.form-box,.pop-content.x-large .filter-item>input:not([type=checkbox]):not([type=radio]),.pop-content.x-large .filter-item>select,.pop-content.x-large .filter-item>textarea,.pop-content.xx-large .filter-item>.form-box,.pop-content.xx-large .filter-item>input:not([type=checkbox]):not([type=radio]),.pop-content.xx-large .filter-item>select,.pop-content.xx-large .filter-item>textarea{width:100%}.file-list .detail-link{text-decoration:underline;text-underline-offset:2px}.modal-form-fields{display:flex;flex-direction:column;gap:12px}.system-managed-note{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:#6b7280}.system-managed-badge{display:inline-block;margin-right:6px;padding:1px 6px;border:1px solid #d0d5dd;border-radius:var(--btn-radius, 6px);background:#f2f4f7;color:#475467;font-size:11px;line-height:1.6}
