.attendance-page{display:flex;flex-direction:column;gap:22px}.attendance-hero{border-radius:28px;padding:28px;background:radial-gradient(circle at top right,rgba(209,255,38,.18),transparent 35%),linear-gradient(135deg,#ffffff,#f4f7fb);border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 50px rgba(15,23,42,.08)}.attendance-kpis{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px}.attendance-kpi{border-radius:22px;padding:20px;background:#ffffff;border:1px solid rgba(15,23,42,.08);box-shadow:0 16px 38px rgba(15,23,42,.08)}.attendance-kpi span{display:block;margin-top:14px;font-size:12px;font-weight:900;letter-spacing:.12em;color:#64748b;text-transform:uppercase}.attendance-kpi strong{display:block;font-size:42px;line-height:1;color:#0f172a}.attendance-card{border-radius:24px;padding:22px;background:#ffffff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.07)}.attendance-card-header{margin-bottom:18px}.attendance-card-header h2{margin:0;font-size:24px}.attendance-table-wrap{overflow-x:auto}.attendance-table{width:100%;border-collapse:separate;border-spacing:0 10px}.attendance-table th{padding:0 14px 8px;text-align:left;font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.1em}.attendance-table td{padding:14px;background:#f8fafc;border-top:1px solid rgba(15,23,42,.06);border-bottom:1px solid rgba(15,23,42,.06);vertical-align:middle}.attendance-table td:first-child{border-left:1px solid rgba(15,23,42,.06);border-radius:16px 0 0 16px}.attendance-table td:last-child{border-right:1px solid rgba(15,23,42,.06);border-radius:0 16px 16px 0}.attendance-person strong{display:block;color:#0f172a;font-weight:900}.attendance-person span{color:#64748b;font-size:13px}.attendance-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.attendance-badge.present{background:rgba(34,197,94,.12);color:#15803d}.attendance-badge.absent{background:rgba(100,116,139,.14);color:#475569}.attendance-badge.entry{background:rgba(34,197,94,.12);color:#15803d}.attendance-badge.exit{background:rgba(59,130,246,.12);color:#1d4ed8}.attendance-action{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:9px 13px;background:#ffffff;color:#0f172a;font-size:13px;font-weight:800;text-decoration:none;border:1px solid rgba(15,23,42,.08)}.attendance-action:hover{background:#f1f5f9}.attendance-empty{padding:18px;border-radius:16px;background:#f8fafc;color:#64748b}@media (max-width:1100px){.attendance-kpis{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media (max-width:700px){.attendance-kpis{grid-template-columns:1fr}}.feedback-stack{position:fixed;right:22px;bottom:22px;z-index:1200;display:grid;width:min(420px,calc(100vw - 32px));gap:10px;pointer-events:none}.feedback-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;padding:14px;border:1px solid rgba(96,165,250,.38);border-radius:15px;background:rgba(15,23,42,.97);box-shadow:0 22px 60px rgba(0,0,0,.42);color:#dbeafe;pointer-events:auto;animation:feedback-enter .18s ease-out}.feedback-toast.success{border-color:rgba(34,197,94,.5);color:#bbf7d0}.feedback-toast.error{border-color:rgba(239,68,68,.58);color:#fecaca}.feedback-toast.warning{border-color:rgba(245,158,11,.55);color:#fde68a}.feedback-toast.info{border-color:rgba(96,165,250,.48);color:#bfdbfe}.feedback-toast strong{display:block;margin-bottom:2px;color:#f8fafc;font-size:14px}.feedback-toast p{margin:0;color:#d7e0ec;font-size:14px;line-height:1.45}.feedback-toast button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:rgba(148,163,184,.1);color:#cbd5e1;cursor:pointer}.feedback-confirm-backdrop{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:20px;background:rgba(2,6,23,.74);backdrop-filter:blur(7px)}.feedback-confirm{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;width:min(500px,100%);padding:24px;border:1px solid rgba(148,163,184,.25);border-radius:22px;background:#0f172a;box-shadow:0 30px 90px rgba(0,0,0,.55);color:#f8fafc}.feedback-confirm-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(59,130,246,.16);color:#93c5fd}.feedback-confirm-icon.warning{background:rgba(245,158,11,.15);color:#fcd34d}.feedback-confirm-icon.danger{background:rgba(239,68,68,.15);color:#fca5a5}.feedback-confirm h2{margin:0 0 8px;font-size:20px}.feedback-confirm p{margin:0;color:#b8c4d4;font-size:15px;line-height:1.55}.feedback-confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.feedback-button{min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:12px;background:#2563eb;color:white;font:inherit;font-weight:800;cursor:pointer}.feedback-button.secondary{border-color:rgba(148,163,184,.24);background:#172033;color:#e2e8f0}.feedback-button.warning{background:#d97706}.feedback-button.danger{background:#dc2626}@keyframes feedback-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.feedback-stack{right:16px;bottom:16px}.feedback-confirm{grid-template-columns:1fr;padding:20px}.feedback-confirm-icon{width:42px;height:42px}.feedback-confirm-actions{grid-column:1;display:grid}.feedback-confirm-actions .feedback-button.danger,.feedback-confirm-actions .feedback-button.primary,.feedback-confirm-actions .feedback-button.warning{order:-1}}@media (prefers-reduced-motion:reduce){.feedback-toast{animation:none}}