.phase3{--attendance-muted:#60736e}.attendance-tabs,.record-actions,.roster-actions,.attendance-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.attendance-tabs{margin-bottom:18px}.attendance-clock{display:flex;align-items:center;gap:8px;color:var(--attendance-muted);font-size:13px;margin:12px 0 22px}.attendance-clock svg{width:18px;flex-shrink:0}.attendance-toolbar{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin:20px 0}.attendance-toolbar label,.attendance-form label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}.attendance-toolbar label{flex:1;min-width:170px}.phase3 input,.phase3 select,.phase3 textarea{padding:12px 14px;border:1px solid #b7cfc7;border-radius:13px;background:#ffffffb8;color:#18392f;font:inherit;min-height:46px;max-width:100%;width:100%}.phase3 textarea{resize:vertical}.phase3 label small{font-weight:400;color:#60736e}.phase3 input[type=time]{direction:ltr}.attendance-form{display:grid;gap:17px;margin-top:20px}.attendance-form .checkbox-label{flex-direction:row;align-items:center}.attendance-form input[type=checkbox]{width:22px;min-height:22px}.attendance-form [hidden]{display:none}.attendance-chip,.request-chip{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:7px 10px;font-size:12px;font-weight:700;white-space:nowrap;background:#e7eef0;color:#4e6370}.attendance-chip svg,.request-chip svg{width:16px;height:16px}.attendance-chip.present{background:#d8f1df;color:#16663b}.attendance-chip.late{background:#ffead0;color:#965211}.attendance-chip.absent{background:#ffdee1;color:#b12d41}.attendance-chip.justified-absent{background:#f3dce7;color:#7d2351}.attendance-chip.justified-late{background:#eadcfa;color:#70339b}.request-chip.approved{background:#d8f1df;color:#16663b}.request-chip.rejected{background:#ffdee1;color:#a8273a}.request-chip.needs_info{background:#fff0cc;color:#805112}.roster-card{padding:24px}.attendance-totals{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:18px 0}.attendance-totals>div{display:flex;flex-direction:column;align-items:center;gap:8px;background:#ffffff63;border:1px solid #ffffffcf;border-radius:17px;padding:15px 4px}.attendance-totals strong{font-size:25px}.attendance-totals .attendance-chip{font-size:11px;padding:5px 6px}.roster-actions{padding:14px 0 20px;border-bottom:1px solid #dce7e2}.roster-actions small{color:#6c7d78}.roster-row{display:flex;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid #dce7e2}.roster-student{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.roster-student small{color:#64766d;font-size:12px}.roster-student .text-link{font-size:12px;align-self:start}.roster-row .compact{padding:9px 11px;font-size:12px;min-height:44px}.attendance-legend{margin:22px 0}.attendance-records{display:grid;grid-template-columns:1fr 1fr;gap:18px}.attendance-record{padding:24px}.attendance-record p{color:#60736e;line-height:1.65}.record-actions{margin-top:18px}.attendance-home{margin:22px 0;padding:24px}.attention-grid .attendance-home{margin:0}.attendance-home.needs-attention{background:linear-gradient(120deg,#fff3f5c9,#ffe4e7b0);border:1px solid #fff}.attendance-home p{line-height:1.65}.request-list{display:grid;gap:12px}.request-card{display:flex;text-align:right;align-items:center;gap:15px;width:100%;padding:20px;color:inherit}.request-card-copy{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}.request-card-copy small{color:#63786f}.request-card-copy>span{font-size:13px;color:#476358}.request-card>svg{width:18px}.request-card-icon{padding:14px;border-radius:18px;color:#246e57;background:#dcefe7}.request-card-icon svg{width:24px}.attendance-home .request-card{margin-bottom:12px;padding:13px;box-shadow:none}.attendance-empty{text-align:center;padding:40px 15px;color:#60756b}.attendance-empty>svg{width:38px;height:38px;color:#3d876d}.attendance-sheet,.request-sheet{max-width:650px}.record-summary p,.request-detail p{line-height:1.7}.record-summary h3{margin-bottom:8px}.attendance-history{margin:20px 0;border-top:1px solid #d6e2dc;padding-top:16px}.attendance-history summary{cursor:pointer;font-weight:600;padding:8px 0}.attendance-history>div,.attendance-history>p{font-size:12px;padding:10px 0;border-bottom:1px solid #e0e9e4}.conversation{display:grid;gap:12px;margin-top:22px}.conversation-message{border:1px solid #fff;border-radius:18px 18px 5px 18px;padding:16px;background:#edf3f1}.conversation-message.teacher-message{background:#dfefe6;border-radius:18px 18px 18px 5px}.conversation-message header{display:flex;justify-content:space-between;gap:8px;font-size:12px}.conversation-message time{color:#667b70}.conversation-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0}.attachment-link{display:flex;align-items:center;gap:6px;background:#ffffffa6;border:1px solid #c5d8ce;border-radius:10px;padding:10px;margin-top:9px;max-width:100%;overflow-wrap:anywhere;color:#28664e;text-align:start}.attachment-link svg{width:18px;flex-shrink:0}.request-explanation{padding:12px;background:#e7eff2;border-radius:12px;color:#4b626b;font-size:13px;line-height:1.6}.draft-note{font-size:12px;line-height:1.6}.phase3 button:disabled{opacity:.5;cursor:not-allowed}.phase3 .info-box{line-height:1.7}.phase3 .info-box svg{flex-shrink:0}.high-contrast .attendance-chip,.high-contrast .request-chip{border:1px solid currentColor}
@media(max-width:900px){.attendance-totals{grid-template-columns:repeat(3,1fr)}.attendance-records{grid-template-columns:1fr}}
@media(max-width:560px){.roster-card,.attendance-record,.attendance-home{padding:17px}.roster-row{flex-wrap:wrap;gap:10px}.roster-student{flex-basis:calc(100% - 55px)}.roster-row>.attendance-chip{margin-right:44px}.roster-row>.compact{margin-right:auto}.attendance-toolbar{gap:12px}.attendance-toolbar label{min-width:140px}.request-card{flex-wrap:wrap;padding:16px}.request-card-copy{flex-basis:calc(100% - 70px)}.request-card>.request-chip{margin-right:56px}.request-card>svg{margin-right:auto}.attendance-tabs .secondary-button{flex:1}.attendance-clock{align-items:start;line-height:1.6}.conversation-message header{flex-wrap:wrap}.attendance-totals .attendance-chip{font-size:10px}.record-actions>*{flex:1;justify-content:center}}
