:root{--card-bg:#fff;--card-br:#e6e9ef;--ok:#16a34a;--ok-bg:#d1fae5;--miss:#ef4444;--miss-bg:#fee2e2;--shadow:0 12px 30px rgba(13,23,45,.08)}
.iwko-wrap{max-width:1100px;margin:18px auto;padding:8px}
.iwko-h{margin:10px 0 8px}
.iwko-classes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.iwko-class{display:block;padding:14px;border:1px solid var(--card-br);border-radius:18px;text-decoration:none;color:inherit;background:var(--card-bg);box-shadow:var(--shadow)}
.iwko-class-title{font-weight:700;margin-bottom:4px}.iwko-class-sub{opacity:.7;font-size:13px}
.iwko-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.iwko-student{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--card-br);border-radius:18px;text-decoration:none;color:inherit;background:var(--card-bg);box-shadow:var(--shadow)}
.iwko-avatar{width:44px;height:44px;border-radius:50%;border:1px solid var(--card-br);display:flex;align-items:center;justify-content:center;font-weight:800;background:#f7fafc}
.iwko-title{font-weight:700}.iwko-empty{padding:14px;border:1px dashed var(--card-br);border-radius:16px;background:#fafafa}
.iwko-back{display:inline-block;margin-bottom:10px}
.iwko-card{border:1px solid var(--card-br);border-radius:20px;padding:18px;background:var(--card-bg);box-shadow:var(--shadow)}
.center{display:flex;flex-direction:column;align-items:center;gap:10px}
.iwko-student-grid{display:grid;grid-template-columns:280px 1fr 1fr;gap:18px;align-items:start}
.iwko-bigavatar{width:124px;height:124px;border-radius:50%;border:1px solid var(--card-br);display:flex;align-items:center;justify-content:center;font-size:50px;font-weight:800;background:#f7fafc;box-shadow:inset 0 10px 24px rgba(0,0,0,.05)}
.iwko-name{font-weight:800}
.iwko-donut{width:168px;height:168px;border-radius:50%;background:conic-gradient(#0ea5e9 calc(var(--p)*1%), #e5e7eb 0);position:relative}
.iwko-donut::after{content:"";position:absolute;inset:16px;background:#fff;border-radius:50%}
.iwko-donut-label{position:relative;margin-top:-110px;font-size:26px;font-weight:800}.iwko-small{font-size:12px;opacity:.75}
.iwko-cal-header{font-weight:800;margin-bottom:8px}
.iwko-cal{display:grid;grid-template-columns:repeat(7,32px);gap:8px;margin-top:4px}
.iwko-cal.weekheads{margin-bottom:6px;opacity:.75}.iwko-cal.weekheads>div{font-size:12px;text-align:center}
.iwko-cell{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--card-br);font-size:12px;background:#fff;cursor:pointer;transition:transform .06s,box-shadow .1s}
.iwko-cell.ok{background:var(--ok-bg);border-color:var(--ok)}.iwko-cell.miss{background:var(--miss-bg);border-color:var(--miss)}
.iwko-cell.today{box-shadow:0 0 0 2px #0ea5e9 inset}.iwko-cell.selected{box-shadow:0 0 0 2px #0b1220 inset}
.iwko-cell.empty{border-color:transparent;background:transparent;cursor:default}.iwko-cell.busy{opacity:.6;pointer-events:none}
.iwko-row{margin-bottom:6px;color:#111}.iwko-row strong{color:#111}
.iwko-actions{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.btn.pill{border:none;border-radius:999px;padding:10px 18px;font-weight:800;letter-spacing:.2px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.08);transition:transform .06s,filter .12s}
.btn.pill:active{transform:translateY(1px)}.btn.ok{background:#22c55e;color:#0b3b1f}.btn.ok:hover{filter:brightness(1.02)}
.btn.miss{background:#f87171;color:#5a0a0a}.btn.miss:hover{filter:brightness(1.02)}


/* ===== Aanwezigheid per les (compact) ===== */
.iwko-divider{width:100%;border:0;border-top:1px solid #e5e7eb;margin:14px 0}
.iwko-subtitle{margin-bottom:8px;font-weight:700;opacity:.85}
.iwko-donut--sm{width:120px;height:120px}
.iwko-donut--sm::after{inset:12px}
.iwko-donut-label--sm{margin-top:-82px;font-size:20px}
