.attendance-count-badge{min-width:35px}
.subject-attendance-editor-popup{border-radius:24px!important}
.subject-attendance-editor{max-width:100%;overflow:hidden}
.subject-attendance-session{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.subject-attendance-session>div{min-width:0;padding:12px 14px;border:1px solid var(--bs-border-color);border-radius:14px;background:color-mix(in srgb,var(--bs-body-bg) 92%,var(--bs-primary) 8%)}
.subject-attendance-session small{display:block;color:var(--bs-secondary-color);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.subject-attendance-session strong{display:block;overflow-wrap:anywhere;margin-top:2px}
.subject-attendance-student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:420px;overflow:auto;padding:2px 4px 2px 2px}
.subject-attendance-student{display:grid;grid-template-columns:minmax(130px,1fr) minmax(260px,1.35fr);align-items:center;gap:12px;padding:12px;border:1px solid var(--bs-border-color);border-radius:16px;background:var(--bs-body-bg)}
.subject-attendance-student-info{min-width:0}
.subject-attendance-student-info strong,.subject-attendance-student-info small{display:block;overflow-wrap:anywhere}
.subject-attendance-student-info small{color:var(--bs-secondary-color)}
.subject-attendance-statuses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;align-items:center}
.subject-attendance-status{margin:0;cursor:pointer;min-width:0}
.subject-attendance-status input{position:absolute;opacity:0;pointer-events:none}
.subject-attendance-status span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border:1px solid var(--bs-border-color);border-radius:11px;background:var(--bs-tertiary-bg);transition:.15s ease}
.subject-attendance-status strong{line-height:1;font-size:1rem}.subject-attendance-status small{font-size:.65rem;color:var(--bs-secondary-color)}
.subject-attendance-status input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--bs-primary) 35%,transparent);outline-offset:2px}
.subject-attendance-status input:checked+span{color:#fff;border-color:transparent;box-shadow:0 5px 14px rgba(15,23,42,.15)}
.subject-attendance-status.status-h input:checked+span{background:var(--bs-success)}
.subject-attendance-status.status-d input:checked+span{background:var(--bs-primary)}
.subject-attendance-status.status-i input:checked+span{background:var(--bs-info);color:#073642}
.subject-attendance-status.status-s input:checked+span{background:var(--bs-warning);color:#3d2b00}
.subject-attendance-status.status-a input:checked+span{background:var(--bs-danger)}
.subject-attendance-status.is-disabled{cursor:not-allowed}.subject-attendance-status.is-disabled span{opacity:.46;filter:grayscale(.35)}
.subject-attendance-audit{border:1px solid var(--bs-border-color);border-radius:14px;padding:10px 12px;background:var(--bs-tertiary-bg)}
.subject-attendance-audit summary{cursor:pointer;font-weight:600}
.subject-attendance-audit-wrap{max-height:260px;overflow:auto;border-radius:10px;background:var(--bs-body-bg)}
.subject-attendance-reason{min-width:180px;white-space:normal;overflow-wrap:anywhere}
.subject-attendance-empty{text-align:center;padding:22px;color:var(--bs-secondary-color)}
@media(max-width:900px){.subject-attendance-session{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-attendance-student-list{grid-template-columns:1fr}.subject-attendance-student{grid-template-columns:minmax(120px,.8fr) minmax(250px,1.2fr)}}
@media(max-width:576px){.subject-attendance-editor-popup{width:calc(100% - 18px)!important;padding:14px!important}.subject-attendance-session{grid-template-columns:1fr 1fr;gap:7px}.subject-attendance-session>div{padding:9px 10px}.subject-attendance-student-list{max-height:52vh}.subject-attendance-student{grid-template-columns:1fr;gap:8px;padding:10px}.subject-attendance-statuses{gap:4px}.subject-attendance-status span{min-height:44px}.subject-attendance-audit-wrap table{min-width:720px}}

/* v3.17.0: D = dispensasi/hadir administratif */
.attendance-status-D,[data-status="D"]{font-weight:800}


/* v3.17.1: D otomatis, terkunci, dan bantuan kontekstual */
.subject-d-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 16px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--bs-primary) 22%,var(--bs-border-color));border-radius:16px;background:color-mix(in srgb,var(--bs-primary-bg-subtle) 58%,var(--bs-body-bg))}
.subject-d-toolbar-copy{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;font-size:.86rem;color:var(--bs-secondary-color)}
.subject-info-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;padding:0;border:1px solid color-mix(in srgb,var(--bs-primary) 34%,var(--bs-border-color));border-radius:50%;background:var(--bs-body-bg);color:var(--bs-primary);font:800 .82rem/1 system-ui;box-shadow:0 3px 9px rgba(15,23,42,.07)}
.subject-info-button:hover,.subject-info-button:focus-visible{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary);outline:none}
.subject-d-card{border-color:color-mix(in srgb,var(--bs-primary) 38%,var(--bs-border-color))!important;background:linear-gradient(145deg,color-mix(in srgb,var(--bs-primary-bg-subtle) 76%,var(--bs-body-bg)),var(--bs-body-bg));overflow:visible}
.subject-d-badge{font-size:.8rem;padding:.48rem .65rem;border-radius:999px}
.subject-d-card-summary{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding:11px 12px;border-radius:13px;background:color-mix(in srgb,var(--bs-primary) 10%,var(--bs-body-bg))}
.subject-d-card-summary strong,.subject-d-card-summary small{display:block;overflow-wrap:anywhere}
.subject-d-card-summary small{color:var(--bs-secondary-color)}
.subject-d-card-lock{display:flex;align-items:center;gap:6px;margin-top:10px;color:var(--bs-primary);font-size:.76rem;font-weight:700}
.subject-attendance-d-locked{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px;border:1px solid color-mix(in srgb,var(--bs-primary) 28%,var(--bs-border-color));border-radius:13px;background:color-mix(in srgb,var(--bs-primary-bg-subtle) 72%,var(--bs-body-bg))}
.subject-attendance-d-mark{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:48px;min-height:42px;padding:0 8px;border-radius:10px;background:var(--bs-primary);color:#fff;font-weight:850}
.subject-attendance-d-copy{min-width:0}.subject-attendance-d-copy strong,.subject-attendance-d-copy small{display:block;overflow-wrap:anywhere}.subject-attendance-d-copy small{color:var(--bs-secondary-color);font-size:.7rem}
.subject-attendance-stale-d{grid-column:1/-1;display:flex;align-items:flex-start;gap:6px;margin-top:3px;padding:7px 9px;border-radius:10px;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);font-size:.72rem}
.subject-attendance-editor-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;margin-bottom:12px;padding:10px 12px;border-radius:13px;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);font-size:.82rem}
.subject-d-detail-popup{border-radius:24px!important}
.subject-d-detail-badge{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:15px;background:color-mix(in srgb,var(--bs-primary) 12%,var(--bs-body-bg));color:var(--bs-primary)}
.subject-d-detail-badge i{font-size:1.5rem}.subject-d-detail-badge strong,.subject-d-detail-badge small{display:block}.subject-d-detail-badge small{color:var(--bs-secondary-color)}
.subject-d-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.subject-d-detail-item{min-width:0;padding:10px 11px;border:1px solid var(--bs-border-color);border-radius:12px;background:var(--bs-tertiary-bg)}
.subject-d-detail-item.is-wide{grid-column:1/-1}.subject-d-detail-item small,.subject-d-detail-item strong{display:block;overflow-wrap:anywhere}.subject-d-detail-item small{margin-bottom:2px;color:var(--bs-secondary-color);font-size:.69rem;text-transform:uppercase;letter-spacing:.04em}.subject-d-detail-item strong{font-size:.86rem}
.subject-d-policy-list{display:grid;gap:8px}.subject-d-policy-list>div{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:9px 10px;border-radius:11px;background:var(--bs-tertiary-bg)}.subject-d-policy-list i{color:var(--bs-primary);margin-top:2px}

@media(max-width:576px){
  .subject-d-toolbar{align-items:stretch;flex-direction:column}
  .subject-d-toolbar .btn{width:100%}
  .subject-d-detail-grid{grid-template-columns:1fr}
  .subject-d-detail-item.is-wide{grid-column:auto}
}
