/* v3.6.0 — canonical check-in + Admin attendance editor */
.obsl-admin-add{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;margin-left:8px!important;min-height:36px!important;padding:7px 13px!important;border-radius:10px!important;background:#1769ff!important;color:#fff!important;border:1px solid #1769ff!important;box-shadow:0 7px 18px rgba(23,105,255,.20)!important;font-weight:750!important;vertical-align:middle!important}
.obsl-admin-add:hover{background:#075be9!important;transform:translateY(-1px)}
.obsl-attendance-editable{cursor:pointer}.obsl-attendance-editable:hover>td{background:rgba(23,105,255,.07)!important}
.obsl-no-checkin{color:#7a879a!important;font-weight:700!important}
.obsl-date-corrected{color:#1769ff!important;font-weight:650!important}
body.obsl-attendance-modal-open{overflow:hidden!important}
.obsl-attendance-modal[hidden]{display:none!important}
.obsl-attendance-modal{position:fixed;inset:0;z-index:25000;display:grid;place-items:center;padding:16px}
.obsl-attendance-backdrop{position:absolute;inset:0;background:rgba(15,27,48,.48);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.obsl-attendance-dialog{position:relative;width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#fff;border:1px solid rgba(143,160,188,.36);border-radius:20px;box-shadow:0 30px 80px rgba(15,27,48,.32);padding:22px;color:#172238}
.obsl-attendance-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#eef3fa;color:#26364e;font-size:24px;line-height:1;cursor:pointer}
.obsl-attendance-dialog-head{display:flex;align-items:center;gap:12px;padding-right:38px;margin-bottom:18px}
.obsl-attendance-dialog-head h3{margin:0 0 3px;font-size:20px}.obsl-attendance-dialog-head small{color:#6f7d91}
.obsl-attendance-dialog-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:#eaf1ff;color:#1769ff;font-size:23px}
.obsl-attendance-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.obsl-attendance-form label{display:grid;gap:6px;min-width:0}.obsl-attendance-form label.wide{grid-column:1/-1}
.obsl-attendance-form label>span{font-size:12px;font-weight:800;color:#465771}
.obsl-attendance-form input,.obsl-attendance-form select{width:100%;min-height:42px;padding:8px 11px;border:1px solid #cbd5e4;border-radius:10px;background:#fff;color:#172238;font:inherit;box-sizing:border-box}
.obsl-attendance-form input:focus,.obsl-attendance-form select:focus{outline:3px solid rgba(23,105,255,.13);border-color:#1769ff}
.obsl-attendance-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:18px;margin-top:18px;border-top:1px solid #e3e9f2}.obsl-attendance-actions .grow{flex:1 1 20px}
.obsl-attendance-actions .btn{min-height:38px;border-radius:10px}.obsl-attendance-actions .btn:disabled{opacity:.45;cursor:not-allowed}
.obsl-attendance-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:26000;max-width:min(560px,calc(100vw - 28px));padding:11px 16px;border-radius:12px;background:#153d2d;color:#fff;box-shadow:0 14px 36px rgba(0,0,0,.24);font-weight:700;opacity:0;transform:translate(-50%,14px);transition:.2s ease;pointer-events:none;text-align:center}
.obsl-attendance-toast.error{background:#a72828}.obsl-attendance-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.obsl-admin-add{min-height:34px!important;padding:6px 10px!important}.obsl-attendance-modal{padding:6px;align-items:end}.obsl-attendance-dialog{width:100%;max-height:92dvh;border-radius:18px 18px 10px 10px;padding:18px 14px}.obsl-attendance-form{grid-template-columns:1fr}.obsl-attendance-form label.wide{grid-column:auto}.obsl-attendance-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.obsl-attendance-actions .grow{display:none}.obsl-attendance-actions .btn{width:100%;padding-inline:8px}}

/* v3.8.11: empty attendance cells are neutral, never late/error outlined. */
.obsl-no-checkin,.obsl-no-checkout{color:#7a879a!important;font-weight:700!important;outline:none!important;box-shadow:none!important}
.rollcall-table td.obsl-no-checkin,.rollcall-table td.obsl-no-checkout,
.attendance-news-table td.obsl-no-checkin,.attendance-news-table td.obsl-no-checkout,
.attendance-full-table td.obsl-no-checkin,.attendance-full-table td.obsl-no-checkout{outline:none!important;box-shadow:none!important}
