.attendance-light{vertical-align:middle;background:#a0a8b4;border:1px solid #0002;border-radius:50%;flex:0 0 11px;width:11px;height:11px;display:inline-block}.attendance-light.green{background:#198754;box-shadow:0 0 0 3px #19875416}.attendance-light.yellow{background:#e4a600;box-shadow:0 0 0 3px #e4a60020}.attendance-light.red{background:#d73742;box-shadow:0 0 0 3px #d7374216}.attendance-light.blue{background:#577cbd}.alert-dot.green{background:#198754}.attendance-caption{color:#536279;border-bottom:1px solid #e2e7ef;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:14px 18px;font-size:14px;display:flex}.attendance-caption p{margin:0;line-height:1.6}.attendance-caption button{font:inherit;color:#365dc2;background:#fff;border:1px solid #dce3f0;border-radius:6px;padding:6px 10px}.attendance-caption .error{color:#b02632}.attendance-row-status{white-space:nowrap;font-size:14px;font-weight:600;display:inline-flex}.attendance-row-status.green{color:#157243}.attendance-row-status.yellow{color:#916700}.attendance-row-status.red{color:#bf2936}.attendance-row-status.gray{color:#697689}.attendance-status-detail{color:#68758a;margin-top:4px;font-size:12px;display:block}.attendance-time-value{font:inherit;font-variant-numeric:tabular-nums;color:inherit;cursor:pointer;background:#fff9;border:1px solid #d9e1ec;border-radius:6px;min-width:62px;padding:6px 8px}.attendance-time-value:disabled{cursor:default;opacity:.6}.attendance-time-editor{min-width:140px}.attendance-time-editor input{width:130px;padding:5px;font-size:14px}.attendance-time-editor button{background:#fff;border:1px solid #d9e1ec;border-radius:5px;margin:5px 4px 0 0;padding:5px 9px;font-size:14px}.attendance-time-editor p{white-space:normal;color:#b02632;max-width:210px;font-size:14px;line-height:1.5}.attendance-notices{z-index:75;color:#263751;background:#fff;border:1px solid #c9d4e7;border-radius:12px;width:min(410px,100vw - 24px);position:fixed;bottom:20px;right:20px;overflow:hidden;box-shadow:0 8px 32px #13294b26}.attendance-notices-heading{background:#f2f5fb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 15px;display:flex}.attendance-notices-heading strong{font-size:16px}.attendance-notices-heading span{color:#596a83;font-size:14px}.attendance-notices-list{overscroll-behavior:contain;max-height:min(36vh,340px);overflow:auto}.attendance-notices article{border-top:1px solid #e5eaf1;align-items:flex-start;gap:12px;padding:14px;display:flex}.attendance-notices article>i{margin-top:6px}.attendance-notices article>div{flex:1;min-width:0}.attendance-notices article>div>button{text-align:left;color:inherit;font:inherit;background:0 0;border:0;padding:0;font-size:16px}.attendance-notices article p{color:#58677d;margin:5px 0;font-size:14px;line-height:1.55}.attendance-notices article small{color:#798397;font-size:12px}.attendance-confirm{white-space:nowrap;font:inherit;color:#284faf;cursor:pointer;background:#edf2ff;border:1px solid #cfdbf6;border-radius:7px;flex:none;padding:7px 11px;font-size:14px}.attendance-confirm:disabled{opacity:.5;cursor:wait}.attendance-notices-error{color:#b02632;margin:0;padding:8px 14px;font-size:14px}.notification-entry.requires-confirmation{align-items:center;gap:10px;display:flex}.notification-entry.requires-confirmation>.attendance-confirm{margin-left:auto}@media (width<=700px){.attendance-notices{width:min(390px,100vw - 24px);bottom:76px;right:12px}.attendance-notices-list{max-height:27vh}.attendance-notices article{gap:9px;padding:11px}}@media print{.attendance-notices,.attendance-time-editor{display:none!important}}.hq-sync-panel{color:#24334b;background:#fff;border:1px solid #cbd5e1;border-radius:10px;margin:16px 0;padding:14px 18px;font-size:14px}.hq-sync-panel summary{cursor:pointer;line-height:1.7}.hq-sync-content{padding-top:10px;line-height:1.7}.hq-sync-content p{margin:6px 0}.hq-sync-actions{flex-wrap:wrap;align-items:end;gap:10px;margin:12px 0;display:flex}.hq-sync-actions label{flex-direction:column;gap:4px;display:flex}.hq-sync-actions input,.hq-sync-actions select,.hq-sync-actions button{background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:8px;font-size:14px}.hq-sync-actions button{color:#1e40af;cursor:pointer;background:#eaf0ff}.hq-sync-actions button:disabled{opacity:.5;cursor:default}.hq-sync-content ul{max-height:220px;overflow:auto}.hq-sync-content .error{color:#b91c1c}.student-scope-note{color:#536279;margin:12px 0;font-size:14px;line-height:1.6}.student-table .student-activity-private{text-align:center;color:#697689;font-size:14px}.student-table button:disabled,.student-table input:disabled{cursor:default}.attendance-history-card{min-width:0}.attendance-history-card .detail-card-heading{flex-wrap:wrap;gap:12px}.attendance-history-card .detail-card-heading p{color:#637086;margin:5px 0 0;font-size:14px}.attendance-history-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.attendance-history-controls input,.attendance-history-controls button,.attendance-history-message button{color:#304665;min-height:36px;font:inherit;background:#fff;border:1px solid #d9e1ec;border-radius:6px;padding:6px 9px;font-size:14px}.attendance-history-controls button:disabled{opacity:.5;cursor:default}.attendance-history-summary{color:#536279;background:#f3f6fa;border-radius:8px;flex-wrap:wrap;gap:8px 16px;margin:0 0 14px;padding:12px;font-size:14px;display:flex}.attendance-history-summary b{color:#253957;margin-left:4px}.attendance-history-scroll{max-height:380px;overflow:auto}.attendance-history-table{width:100%}.attendance-history-table th,.attendance-history-table td{white-space:nowrap;font-size:14px}.attendance-history-table thead th{z-index:1;background:#f3f6fa;position:sticky;top:0}.attendance-history-status{align-items:center;gap:9px}.attendance-history-message{color:#536279;padding:20px 4px;font-size:14px;line-height:1.6}.attendance-history-message[role=alert]{color:#b02632}.attendance-history-legend,.attendance-history-note{color:#637086;margin:12px 0 0;font-size:14px;line-height:1.6}@media print{.attendance-history-controls{display:none}.attendance-history-scroll{max-height:none;overflow:visible}}
