/* Student cabinet — extends the registration page styles (register.css) */
.kb-state{padding:28px;text-align:center;color:#5b6475}
.kb-narrow{max-width:520px;margin:0 auto}
.kb-switch{display:inline-flex;padding:5px;border-radius:999px;background:rgba(0,122,214,.08);margin-bottom:22px}
.kb-switch button{border:0;background:none;padding:10px 20px;border-radius:999px;font:inherit;font-weight:600;font-size:14.5px;color:#4a5468;cursor:pointer}
.kb-switch button[aria-selected=true]{background:#fff;color:#0a5a9c;box-shadow:0 6px 16px -8px rgba(0,60,120,.35)}
.kb-eye{border:0;background:none;cursor:pointer;font-size:15px;opacity:.55;padding:0 4px}
.kb-eye:hover{opacity:1}

/* signed-in header */
.kb-user{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;padding:18px 22px;margin-bottom:16px}
.kb-who{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.kb-who i{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7cc4ff,#007AD6);color:#fff;font-style:normal;font-weight:700;font-size:18px}
.kb-who h2{margin:0;font-size:clamp(19px,3vw,25px);line-height:1.15}
.kb-who span{display:block;color:#5b6475;font-size:14px;margin-top:3px;overflow-wrap:anywhere}
.kb-badge{padding:8px 14px;border-radius:999px;font-weight:700;font-size:13.5px;background:rgba(0,122,214,.1);color:#0a5a9c}
.kb-badge.dragon{background:linear-gradient(135deg,rgba(255,170,0,.2),rgba(255,90,0,.16));color:#9a4a00}
.kb-out{height:42px;padding:0 18px;border-radius:999px;border:0;background:#fff;box-shadow:inset 0 0 0 1px rgba(28,28,31,.12);font:inherit;font-weight:600;cursor:pointer}

/* tabs */
.kb-tabs{display:flex;gap:6px;overflow-x:auto;padding:6px;border-radius:999px;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(28,28,31,.06);margin-bottom:16px;scrollbar-width:none}
.kb-tabs::-webkit-scrollbar{display:none}
.kb-tabs button{flex:none;display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:11px 18px;border-radius:999px;font:inherit;font-weight:600;font-size:14.5px;color:#46506a;cursor:pointer;white-space:nowrap}
.kb-tabs button.on{background:#fff;color:#0a5a9c;box-shadow:0 8px 18px -10px rgba(0,60,120,.45)}
.kb-tabs button.locked{opacity:.72}
.kb-tabs svg{width:15px;height:15px}
.kb-panel{display:grid;gap:16px}

/* panels */
.kb-card{padding:clamp(18px,3vw,28px);display:grid;gap:14px}
.kb-card h3{margin:0;font-size:19px}.kb-card>p{margin:0;color:#5b6475;font-size:14.5px;line-height:1.5}
.kb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.kb-tile{padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.62);box-shadow:inset 0 0 0 1px rgba(28,28,31,.06)}
.kb-tile span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#6b7385}
.kb-tile b{display:block;margin-top:6px;font-size:22px;line-height:1.2}.kb-tile small{display:block;margin-top:4px;color:#6b7385;font-size:13px}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.kb-grid>div{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(28,28,31,.06)}
.kb-grid span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#6b7385}
.kb-grid b{display:block;margin-top:5px;font-size:16px;line-height:1.3}.kb-grid small{display:block;color:#6b7385;font-size:12.5px;margin-top:2px}
.kb-pay{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:700}
.kb-pay.paid{background:rgba(31,157,85,.14);color:#167a41}.kb-pay.pending{background:rgba(201,138,18,.16);color:#9a6a0a}
.kb-wait{padding:18px;border-radius:18px;background:rgba(0,122,214,.07);color:#244a73;font-size:14.5px;line-height:1.5}

/* locked (non-course) panel */
.kb-lock{text-align:center;padding:clamp(28px,5vw,52px) 22px;display:grid;justify-items:center;gap:12px}
.kb-lock .ic{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:rgba(0,122,214,.1);color:#0a5a9c;font-size:28px}
.kb-lock h3{margin:0;font-size:clamp(20px,3vw,26px)}.kb-lock p{margin:0;max-width:520px;color:#5b6475;line-height:1.55}
.kb-cta{display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 28px;border:0;border-radius:999px;background:#007AD6;color:#fff;font:inherit;font-size:15.5px;font-weight:600;cursor:pointer;box-shadow:0 12px 26px -8px rgba(0,122,214,.6)}
.kb-cta:disabled{opacity:.6;cursor:default}
.kb-done{padding:14px 18px;border-radius:16px;background:rgba(31,157,85,.12);color:#146b3a;font-weight:600}

/* groups / schedule / attendance */
.kb-group{padding:18px 20px;border-radius:20px;background:rgba(255,255,255,.62);box-shadow:inset 0 0 0 1px rgba(28,28,31,.06);display:grid;gap:10px}
.kb-group h4{margin:0;font-size:18px}.kb-group .sub{color:#5b6475;font-size:14px}
.kb-chips{display:flex;flex-wrap:wrap;gap:8px}.kb-chips span{padding:6px 12px;border-radius:999px;background:rgba(0,122,214,.1);color:#0a5a9c;font-size:13px;font-weight:600}
.kb-table{width:100%;border-collapse:collapse;font-size:14.5px}
.kb-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#6b7385;padding:8px 10px;border-bottom:1px solid rgba(28,28,31,.08)}
.kb-table td{padding:11px 10px;border-bottom:1px solid rgba(28,28,31,.06);vertical-align:top}
.kb-day{font-weight:700;margin:12px 0 4px;color:#0a5a9c}
.kb-st{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:700}
.kb-st.present{background:rgba(31,157,85,.14);color:#167a41}.kb-st.late{background:rgba(201,138,18,.16);color:#9a6a0a}
.kb-st.excused{background:rgba(0,122,214,.12);color:#0a5a9c}.kb-st.absent{background:rgba(214,59,59,.13);color:#b32d2d}.kb-st.none{background:rgba(28,28,31,.07);color:#6b7385}
.kb-meter{height:12px;border-radius:99px;background:rgba(0,122,214,.12);overflow:hidden}.kb-meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7cc4ff,#007AD6)}
.kb-big{font-size:clamp(38px,6vw,56px);font-weight:700;line-height:1;color:#0a5a9c}
.kb-bar{display:grid;grid-template-columns:130px 1fr 64px;align-items:center;gap:12px;font-size:14.5px}
.kb-bar .t{height:10px;border-radius:99px;background:rgba(0,122,214,.12);overflow:hidden}.kb-bar .t i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7cc4ff,#007AD6)}
.kb-bar em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.kb-total{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:6px}
.kb-total .n small{font-size:.4em;color:#6b7385;font-weight:600}
.kb-total .rk{display:flex;gap:10px;flex-wrap:wrap}.kb-total .rk span{padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px rgba(28,28,31,.07);font-size:14px}
.kb-reg{padding:20px;border-radius:22px;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(28,28,31,.06);display:grid;gap:14px}
.kb-reg-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center}.kb-reg-top h4{margin:0;font-size:18px}
.kb-code{font-variant-numeric:tabular-nums;letter-spacing:.04em;padding:7px 13px;border-radius:999px;background:rgba(0,122,214,.1);color:#0a5a9c;font-weight:700;font-size:14px}
.kb-inline{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
@media (max-width:700px){.kb-inline{grid-template-columns:1fr}.kb-bar{grid-template-columns:96px 1fr 56px}}
