/* Touch-first, explicit status; no flashing, sound, auto-open or countdown obstruction. */
.absence-bar{display:flex;align-items:center;gap:18px;justify-content:flex-end;border:1px solid #3c5165;border-radius:14px;padding:14px 20px;background:#1b2937;flex:none}
.absence-label{margin-right:auto;font-size:clamp(19px,1.6vw,30px);font-weight:600}.absence-label small{display:block;color:#e6c78c;font-size:clamp(15px,1.1vw,21px);margin-top:5px}
.absence-bar[data-state="sent"] .absence-label small{color:#a7dfc1}
.absence-bar button,.absence-dialog button{touch-action:manipulation;cursor:pointer}
.absence-bar button{min-height:68px;min-width:190px;padding:12px 24px;border-radius:10px;font-size:clamp(21px,1.5vw,30px);font-weight:600}
.absence-none{background:#244d43;border:1px solid #74ad94;color:#dbf9e8}
.absence-some{background:#4b3d28;border:1px solid #c8a462;color:#ffe4b1}
.absence-reminder{background:#503b23;border:2px solid #d2a754;color:#ffe8b5;padding:12px 20px;display:flex;gap:16px;align-items:center;border-radius:12px;font-size:clamp(20px,1.4vw,30px);margin-bottom:12px;flex:none}
.absence-reminder button{font-size:inherit;padding:10px 20px;white-space:nowrap;min-height:58px}
.absence-edit{position:fixed;right:0;top:66%;z-index:16;max-width:154px;min-height:48px;padding:8px 12px;border:1px solid #80b49b;border-right:0;border-radius:10px 0 0 10px;background:#24493f;color:#d9f5e5;font-size:16px;font-weight:600;line-height:1.5;white-space:nowrap;touch-action:manipulation;box-shadow:0 3px 14px #0004}
.absence-receipt{position:fixed;right:20px;bottom:18px;z-index:30;max-width:calc(100vw - 40px);padding:10px 16px;border:1px solid #80b49b;border-radius:8px;background:#24493f;color:#d9f5e5;font-size:18px;pointer-events:none}
.absence-dialog{width:min(var(--absence-width,640px),96vw);max-width:96vw;max-height:90svh;padding:0;border:1px solid #667e95;border-radius:14px;background:#152330;color:#e5eef7;box-sizing:border-box}
.absence-dialog::backdrop{background:#0008}
.absence-shell{display:flex;flex-direction:column;max-height:89svh}
.absence-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid #425265;flex:none}
.absence-dialog-heading h2{font-size:clamp(20px,1.6vw,28px);margin:0 0 4px}
.absence-dialog-heading p{font-size:17px;margin:0;color:#c8d8e7}
.absence-dialog button{border-radius:8px;min-height:48px;padding:8px 16px;font-size:20px;border:1px solid #7d95ac;background:#2b4155;color:#edf5ff}
.absence-dialog button:disabled{opacity:.5;cursor:default}
.absence-dialog button:focus-visible{outline:3px solid #e4ca82;outline-offset:2px}
.absence-dialog .absence-primary{background:#356b56;border-color:#a5d6ba;min-width:160px;font-weight:700}
.absence-body{overflow:auto;overscroll-behavior:contain;padding:16px 20px;min-height:0}
.absence-body h3{font-size:24px;margin:8px 0 14px}
.absence-body p{font-size:18px;line-height:1.6}
.absence-seats{display:grid;grid-template-columns:repeat(var(--seat-columns,6),minmax(0,1fr));grid-auto-rows:var(--seat-height,64px);align-content:start;gap:8px;min-height:0;overflow:auto;overscroll-behavior:contain;padding:3px}
.absence-shell[data-step="seats"] .absence-body{display:flex;flex-direction:column;overflow:hidden}
#absenceStepseats{display:flex;flex-direction:column;min-height:0}
#absenceStepseats .absence-footer{flex:none}
.absence-dialog .absence-seat{position:relative;min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;padding:6px 9px;border:2px solid #4e657a;background:#203345;text-align:left}
.absence-seat strong{font-size:18px;color:#a9c8e3;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.absence-seat b{font-size:20px;line-height:1.2;overflow-wrap:anywhere;min-width:0;font-weight:600}
.absence-seats[data-dense="true"] .absence-seat{flex-direction:column;gap:2px;padding:4px}
.absence-seats[data-dense="true"] .absence-seat strong{font-size:14px;line-height:1.1}
.absence-seats[data-dense="true"] .absence-seat b{font-size:16px;line-height:1.1}
.absence-dialog .absence-seat[aria-pressed="true"]{border-color:#efbb5d;background:#584427;box-shadow:inset 0 0 0 1px #efbb5d}
.absence-seat[aria-pressed="true"]::after{content:"✓";position:absolute;top:0;right:3px;font-size:14px;color:#ffe0a1}
.absence-footer{display:flex;gap:12px;align-items:center;justify-content:flex-end;padding:14px 0 0}
.absence-footer strong{margin-right:auto;font-size:20px}
.absence-message{font-size:18px;color:#ffd4a5;padding:0 20px;flex:none;min-height:0;max-height:70px;overflow:auto}
.absence-message:empty{display:none}
.absence-confirm-list{max-height:40svh;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px}
.absence-confirm-list p{padding:8px;border-bottom:1px solid #465f74;margin:0;font-variant-numeric:tabular-nums}
.absence-success{text-align:center;padding:16px 0}.absence-success h3{color:#b8e8cc}
.has-absence .classroom-heading{min-height:90px}
.has-absence .clock-content{padding:12px 0 20px}
.has-absence .exam-details{padding-top:20px;padding-bottom:20px}
@media(max-height:900px) and (min-width:701px){
 .absence-bar{padding:8px 14px}.absence-bar button{min-height:54px;min-width:155px;font-size:22px}
 .has-absence .classroom-heading{min-height:84px}.has-absence .clock-content{padding:8px 0 12px}
 .has-absence .exam-details{padding:14px 0}.has-absence .room-picker-strip{padding-top:12px}
 .has-absence .countdown{font-size:clamp(60px,min(10vw,13vh),120px)}

}
@media(max-width:700px){
 .absence-bar{flex-wrap:wrap;gap:8px;padding:10px}.absence-label{width:100%;font-size:19px}
 .absence-bar button{flex:1;min-width:100px;min-height:52px;font-size:17px;padding:8px}
 .absence-reminder{font-size:16px;flex-wrap:wrap}.absence-dialog-heading{padding:10px 12px;gap:8px;align-items:flex-start}
 .absence-dialog-heading h2{font-size:18px}.absence-dialog-heading p{font-size:15px}
 .absence-dialog button{font-size:17px;min-height:44px;padding:8px 10px}
 .absence-dialog .absence-primary{min-width:0}.absence-body{padding:10px 12px}
 .absence-dialog .absence-seat{min-height:44px;padding:4px 5px;gap:5px}.absence-seat strong{font-size:14px}.absence-seat b{font-size:16px}
 .absence-footer{flex-wrap:wrap;gap:8px}.absence-footer strong{font-size:17px;width:100%}
 .absence-message{font-size:16px;padding:0 12px}.absence-body p{font-size:16px}
 .absence-edit{max-width:106px;min-height:48px;font-size:14px;padding:8px 10px;white-space:normal}
}
