.attendance-form{max-width:640px;margin:0 auto var(--sp-5);background:#fff;border:1px solid var(--c-line-dark);border-radius:var(--radius-md);padding:var(--sp-3)}.attendance-form__row{display:grid;gap:var(--sp-2);grid-template-columns:1fr 1fr;margin-bottom:var(--sp-2)}@media (max-width: 560px){.attendance-form__row{grid-template-columns:1fr}}.attendance-form__field label{display:block;font-size:var(--fs-small);color:var(--text-on-light-secondary);margin-bottom:6px}.attendance-form__field input{width:100%;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--c-line-dark);background:var(--bg-light);font:inherit;color:var(--text-on-light);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.attendance-form__field input::placeholder{color:var(--text-on-light-secondary);opacity:.7}.attendance-form__field input:hover{border-color:var(--c-slate)}.attendance-form__field input:focus{outline:none;border-color:var(--c-blue);box-shadow:0 0 0 3px #0248c126}.attendance-form__actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.attendance-form__error{margin-top:var(--sp-2);color:#d64545;font-size:var(--fs-small)}.attendance-qr-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:var(--sp-3)}.attendance-qr-modal[hidden]{display:none}.attendance-qr-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0e1fa8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.attendance-qr-modal__card{position:relative;width:100%;max-width:360px;padding:var(--sp-3);background:var(--c-navy);border:1px solid var(--c-line);border-radius:var(--radius-lg);box-shadow:0 30px 70px #0000008c;text-align:center}.attendance-qr-modal__card #qr-reader{border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--sp-2)}.attendance-result{max-width:640px;margin:0 auto;background:#fff;border:1px solid var(--c-line-dark);border-radius:var(--radius-md);padding:var(--sp-3)}.attendance-result[hidden]{display:none}.attendance-result__head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.attendance-result__badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--c-yellow);color:var(--c-navy);font-size:1.25rem;flex-shrink:0}.attendance-result__name{font-size:var(--fs-body-lg);font-weight:800;color:var(--text-on-light)}.attendance-result__team{font-size:var(--fs-small);color:var(--text-on-light-secondary)}.attendance-result__days{display:grid;gap:var(--sp-2);grid-template-columns:repeat(3,1fr)}@media (max-width: 560px){.attendance-result__days{grid-template-columns:1fr}}.attendance-day{padding:var(--sp-2);border-radius:var(--radius-sm);text-align:center;border:1px solid var(--c-line-dark)}.attendance-day__label{font-size:var(--fs-small);color:var(--text-on-light-secondary);margin-bottom:4px}.attendance-day__status{font-weight:700}.attendance-day--checked{background:#2ecc711f;border-color:#2ecc7166}.attendance-day--checked .attendance-day__status{color:#1f9d52}.attendance-day--pending .attendance-day__status{color:var(--text-on-light-secondary)}
