.attendance-view{margin-top:40px}.attendance-toolbar{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.attendance-toolbar h2{margin:5px 0 3px;font-size:25px;font-weight:normal}.attendance-toolbar p{margin:0;color:var(--muted);font:11px Arial,sans-serif}.attendance-actions{display:flex;gap:9px}.secondary-button{padding:10px 13px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);cursor:pointer;font:11px Arial,sans-serif}.attendance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.attendance-stat{position:relative;min-height:125px;padding:18px 19px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.attendance-stat:before{content:'';position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--stat-color)}.teal-stat{--stat-color:var(--teal)}.coral-stat{--stat-color:var(--coral)}.gold-stat{--stat-color:var(--gold)}.ink-stat{--stat-color:var(--navy)}.attendance-stat span,.attendance-stat small{display:block;color:var(--muted);font:10px Arial,sans-serif}.attendance-stat strong{display:block;margin:9px 0 2px;font-size:27px;font-weight:normal}.attendance-stat small{font-size:9px}.attendance-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.presence-panel,.capture-panel,.absence-panel,.register-panel{min-height:250px}.presence-panel select{padding:7px 24px 7px 8px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--muted);font:10px Arial,sans-serif}.presence-row{display:grid;grid-template-columns:145px 1fr 40px 62px;align-items:center;gap:13px;padding:17px 0;border-top:1px solid var(--line)}.presence-row:first-of-type{margin-top:14px}.class-label{display:grid;gap:3px}.class-label strong{font:11px Arial,sans-serif;font-weight:normal}.class-label span{color:var(--muted);font:9px Arial,sans-serif}.presence-bar{height:7px;background:#edf1ed}.presence-bar i{display:block;height:100%;background:var(--teal)}.presence-value{font:11px Arial,sans-serif;font-weight:normal;text-align:right}.presence-status{font:9px Arial,sans-serif;text-align:right}.presence-status.good{color:var(--teal)}.presence-status.watch{color:#a87811}.presence-status.attention{color:var(--coral)}.capture-method{display:flex;align-items:center;gap:11px;padding:14px 0;border-top:1px solid var(--line)}.capture-method:first-of-type{margin-top:14px}.capture-icon,.alert-avatar,.check-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;font:bold 11px Arial,sans-serif}.capture-icon.qr{background:var(--teal-soft);color:var(--teal)}.capture-icon.rfid{background:#e0edf0;color:#487c85}.capture-icon.manual{background:#fbf1d9;color:#a87811}.capture-method div{display:grid;gap:3px}.capture-method strong{font:11px Arial,sans-serif;font-weight:normal}.capture-method small{color:var(--muted);font:9px Arial,sans-serif}.capture-method>b{margin-left:auto;color:var(--teal);font:9px Arial,sans-serif;font-weight:normal}.capture-note{margin:14px 0 0;color:var(--muted);font:9px Arial,sans-serif}.lower-attendance{margin-top:14px}.absence-row,.register-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid var(--line)}.absence-row:first-of-type,.register-row:first-of-type{margin-top:14px}.coral-avatar{background:#f9e3dd;color:#b75f50}.gold-avatar{background:#fbf1d9;color:#a87811}.teal-avatar{background:var(--teal-soft);color:var(--teal)}.absence-row div,.register-row div{display:grid;gap:3px}.absence-row strong,.register-row strong{font:11px Arial,sans-serif;font-weight:normal}.absence-row small,.register-row small{color:var(--muted);font:9px Arial,sans-serif}.alert-sent,.alert-pending{margin-left:auto;font:9px Arial,sans-serif}.alert-sent{color:var(--teal)}.alert-pending{color:#a87811}.register-row time{margin-left:auto;color:var(--muted);font:10px Arial,sans-serif}.check-icon{background:var(--teal-soft);color:var(--teal)}@media(max-width:950px){.attendance-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.attendance-toolbar{align-items:start;gap:16px;flex-direction:column}.attendance-actions{width:100%}.attendance-actions button{flex:1}.attendance-stats,.attendance-grid{grid-template-columns:1fr}.presence-row{grid-template-columns:115px 1fr 35px}.presence-status{display:none}.absence-row .alert-sent,.absence-row .alert-pending{display:none}}
