.role-toggle{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:11px;background:#fff}.role-toggle button{min-height:34px;padding:0 11px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:600}.role-toggle button.active{background:var(--blush-2);color:var(--berry)}
.attendance-tabs{margin-bottom:18px}.group-attendance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.attendance-group-card{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:13px;width:100%;padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff;text-align:left;color:var(--ink)}.attendance-group-card:hover{border-color:#d8a6ba;box-shadow:0 7px 20px rgba(83,38,55,.06)}.attendance-group-card .group-mark{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:var(--blush-2);font-size:1.45rem}.attendance-group-card>span:nth-child(2){display:grid;gap:3px}.attendance-group-card small{color:var(--muted)}.mini-stats{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.mini-stats span{padding:4px 7px;border-radius:7px;background:#f5f1f2;color:#66565c;font-size:.72rem}.mini-stats .ok{background:#e7f3ed;color:#34715a}.mini-stats .warn{background:#fff2d9;color:#8a6325}.roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.roster-table td:last-child{text-align:right}.status-select{min-height:37px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 30px 0 10px;color:var(--ink)}
.photo-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px}.photo-stage-panel{padding:16px}.photo-stage{position:relative;min-height:430px;overflow:hidden;border-radius:18px;background:linear-gradient(150deg,#f5c97c 0 35%,#b8d2a7 35% 65%,#7da68b 65%);display:flex;align-items:flex-end;justify-content:center;gap:24px;padding:58px 30px 36px}.photo-child{width:105px;height:175px;display:grid;place-items:center;border-radius:55px 55px 24px 24px;background:rgba(255,255,255,.76);font-size:4rem;box-shadow:0 12px 30px rgba(62,51,41,.13)}.privacy-cover{position:absolute;left:58%;top:29%;width:96px;height:96px;min-width:64px;min-height:64px;resize:both;overflow:hidden;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:var(--berry);color:#fff;font-size:2.3rem;box-shadow:0 8px 24px rgba(67,31,45,.25);cursor:move;touch-action:none}.privacy-cover:after{content:"Lilly cover";position:absolute;left:50%;bottom:-29px;transform:translateX(-50%);white-space:nowrap;padding:4px 7px;border-radius:7px;background:#32272b;color:#fff;font-size:.65rem}.photo-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;color:var(--muted);font-size:.82rem}.photo-caption strong{color:var(--ink)}
.tag-panel{display:grid;align-content:start;gap:12px}.tag-search{display:grid;grid-template-columns:1fr 130px;gap:8px}.kid-results{display:grid;gap:6px;max-height:305px;overflow:auto;padding-right:3px}.kid-result{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;width:100%;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;color:var(--ink)}.kid-result.selected{border-color:#ce88a4;background:#fff7fa}.kid-result>span:nth-child(2){display:grid}.kid-result small{color:var(--muted);margin-top:2px}.consent-badge{font-size:.68rem;padding:4px 6px;border-radius:7px;background:#e8f3ed;color:#2e7459}.consent-badge.blocked{background:#fff0d4;color:#8b6020}.consent-alert{display:grid;grid-template-columns:30px 1fr;gap:9px;padding:12px;border:1px solid #e4bc72;border-radius:13px;background:#fff9ec;color:#674c18}.consent-alert>span:first-child{font-size:1.25rem}.consent-alert small{display:block;margin-top:3px}.publish-checks{display:grid;gap:8px}.publish-check{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:11px;background:#f8f5f6}.publish-check span{color:var(--muted);font-size:.8rem}.publish-check strong{font-size:.8rem}.mask-ready{color:#34715a}.teacher-dashboard .metric-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:1050px){.photo-workspace{grid-template-columns:1fr}.photo-stage{min-height:360px}.group-attendance-grid{grid-template-columns:1fr}}
@media(max-width:760px){.role-toggle{order:2;width:100%}.role-toggle button{flex:1}.tag-search{grid-template-columns:1fr}.photo-stage{min-height:300px}.photo-child{width:82px;height:140px;font-size:3rem}}
