.breadcrumb a{color:var(--muted);text-decoration:none}.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.attendance-summary article{display:flex;gap:13px;padding:17px;border:1px solid var(--line);border-radius:10px;background:#fff}.attendance-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:10px;font-size:18px;font-weight:800}.attendance-icon.violet{background:var(--violet-soft);color:var(--violet)}.attendance-icon.green{background:var(--green-soft);color:var(--green)}.attendance-icon.amber{background:var(--amber-soft);color:var(--amber)}.attendance-summary p{margin:0 0 4px;color:#778399;font-size:12px}.attendance-summary strong{display:block;font-size:22px;line-height:1}.attendance-summary small{display:block;margin-top:5px;color:#96a0af;font-size:10px}.attendance-layout{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(420px,1.25fr);gap:18px}.filter-group{display:flex;gap:5px}.filter{padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#6c778b;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.filter.is-selected,.filter:hover{border-color:#cbc6ff;background:var(--violet-soft);color:var(--violet)}.appointment-list{display:grid;gap:5px}.appointment{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;padding:13px;border:1px solid transparent;border-radius:8px;background:#fff;text-align:left;cursor:pointer}.appointment:hover,.appointment.is-selected{background:#fafaff}.appointment.is-selected{border-color:#d9d5ff}.appointment time{color:#707d93;font-size:11px;font-weight:750}.appointment strong{display:block;color:#354056;font-size:12px}.appointment small{display:block;margin-top:4px;color:#8c96a7;font-size:11px}.appointment-state{padding:4px 6px;border-radius:4px;font-style:normal;font-size:9px;font-weight:750}.appointment-state.active{background:var(--green-soft);color:var(--green)}.appointment-state.scheduled{background:var(--amber-soft);color:var(--amber)}.session-top{display:flex;justify-content:space-between;gap:15px;padding-bottom:20px;border-bottom:1px solid var(--line)}.session-top h2{margin:0;font-size:18px}.session-top p:not(.eyebrow){margin:5px 0 0;color:#8590a3;font-size:12px}.attendance-badge{padding:6px 8px;border-radius:6px;background:var(--green-soft);color:var(--green);font-size:10px;font-weight:750;white-space:nowrap}.session-info{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:21px 0}.session-info div{display:grid;gap:5px}.session-info span{color:#8a95a8;font-size:11px}.session-info strong{color:#3c465a;font-size:13px}.session-info strong.blocked{color:#b16a00}.session-guard{display:flex;gap:12px;padding:15px;border:1px solid #f0dfc8;border-radius:9px;background:#fffaf4}.session-guard>span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--amber-soft);color:var(--amber);font-size:16px}.session-guard strong{display:block;color:#684a24;font-size:12px}.session-guard p{margin:4px 0 0;color:#937956;font-size:11px;line-height:1.45}.session-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.lifecycle{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:18px}.lifecycle h2{margin:0;font-size:16px}.lifecycle-row{display:flex;flex-wrap:wrap;gap:7px}.life{padding:7px 9px;border-radius:6px;background:#f3f4f7;color:#8a95a7;font-size:10px;font-weight:700}.life.complete{background:var(--green-soft);color:var(--green)}.life.blocked-life{background:var(--amber-soft);color:var(--amber)}@media(max-width:1050px){.attendance-layout{grid-template-columns:1fr}.lifecycle{align-items:start;flex-direction:column}}@media(max-width:720px){.attendance-summary{grid-template-columns:1fr}.panel-heading{align-items:start;flex-direction:column}.appointment{grid-template-columns:41px minmax(0,1fr)}.appointment-state{display:none}.session-top{align-items:start;flex-direction:column}.session-info{grid-template-columns:1fr}.session-actions{flex-wrap:wrap;justify-content:stretch}.session-actions button{flex:1}}
