/* ═══════════════════════════════════════════════════
   ISET Student System — Frontend CSS v3.3.0
   Brand: #ffcb02 | Dark: #1a1200 | Built by ISET Team
═══════════════════════════════════════════════════ */
/* Google Fonts loaded via wp_enqueue_style in PHP for performance */

/* ── Prevent FOUC: render immediately with system font, swap to DM Sans when ready ── */
.ssas-root {
    font-family: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    max-width: 860px;
    margin: 0 auto;
    padding: 1.5rem 1rem 4rem;
    color: #111827;
    --green:  #16a34a;
    --orange: #d97706;
    --red:    #dc2626;
    --brand: #ffcb02;
    --blue:   #2563eb;
    --bg:     #f8faff;
    --card:   #ffffff;
    --border: #e5e7eb;
    --text:   #111827;
    --muted:  #6b7280;
}
.ssas-root * { box-sizing: border-box; margin:0; padding:0; }

/* ════════════════
   LOGIN
════════════════ */
.ssas-login-scene {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f0f4ff 0%, #fdf4ff 100%);
    border-radius: 24px;
    padding: 3rem 1rem;
}
.ssas-login-card {
    background: #fff;
    border-radius: 24px;
    padding: 2.8rem 2.4rem;
    width: 100%;
    max-width: 400px;
    box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 24px 64px rgba(0,0,0,.10);
    animation: ssasSlideUp .5s cubic-bezier(.16,1,.3,1);
}
.ssas-login-brand { text-align:center; margin-bottom:2rem; }
.ssas-brand-logo-wrap {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:.65rem;
}
.ssas-brand-logo {
    width:44px;
    height:44px;
    object-fit:contain;
    filter:drop-shadow(0 4px 14px rgba(255,203,2,.3));
    animation:ssasLogoIn .5s cubic-bezier(.175,.885,.32,1.275) both;
}
@keyframes ssasLogoIn {
    from { opacity:0; transform:scale(.6) rotate(-10deg); }
    to   { opacity:1; transform:scale(1)  rotate(0deg); }
}
.ssas-brand-title { font-size:1.5rem; font-weight:700; letter-spacing:-.03em; }
.ssas-brand-sub   { color:var(--muted); font-size:.875rem; margin-top:.3rem; }

.ssas-field-wrap {
    position:relative;
    display:flex;
    align-items:center;
    margin-bottom:1rem;
    background:#f9fafb;
    border:1.5px solid var(--border);
    border-radius:12px;
    transition:border-color .2s, box-shadow .2s;
}
.ssas-field-wrap:focus-within {
    border-color:#ffcb02;
    box-shadow:0 0 0 3px rgba(255,203,2,.15);
    background:#fff;
}
.ssas-field-icon { padding:0 .75rem; font-size:1rem; opacity:.6; flex-shrink:0; }
.ssas-field-input {
    flex:1; background:transparent; border:none; outline:none;
    padding:.85rem .5rem .85rem 0;
    font-family:'DM Sans',sans-serif; font-size:.95rem; color:var(--text);
}
.ssas-field-input::placeholder { color:var(--muted); }
.ssas-eye-btn {
    background:none; border:none; cursor:pointer;
    padding:0 .75rem; font-size:1rem; opacity:.5;
    transition:opacity .2s;
}
.ssas-eye-btn:hover { opacity:.9; }

.ssas-cta-btn {
    width:100%; padding:1rem;
    background:linear-gradient(135deg,#ffcb02,#e6b800);
    color:#1a1200; border:none; border-radius:12px;
    font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:600;
    cursor:pointer; margin-top:.5rem;
    display:flex; align-items:center; justify-content:center; gap:.5rem;
    transition:transform .15s, box-shadow .15s;
    box-shadow:0 4px 20px rgba(255,203,2,.5);
}
.ssas-cta-btn:hover  { transform:translateY(-1px); box-shadow:0 8px 28px rgba(255,203,2,.6); }
.ssas-cta-btn:active { transform:translateY(0); }

/* ════════════════
   TOPBAR
════════════════ */
.ssas-topbar {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:1rem;
    background:linear-gradient(135deg,#1a1200 0%,#2d2100 60%,#3d2e00 100%);
    border-radius:20px; padding:1.6rem 2rem;
    margin-bottom:1.25rem;
    position:relative; overflow:hidden;
    box-shadow:0 8px 32px rgba(30,27,75,.3);
}
.ssas-topbar::before {
    content:''; position:absolute; top:-40px; right:-40px;
    width:180px; height:180px;
    background:rgba(255,255,255,.06);
    border-radius:50%;
}
.ssas-topbar::after {
    content:''; position:absolute; bottom:-30px; right:80px;
    width:100px; height:100px;
    background:rgba(255,255,255,.04);
    border-radius:50%;
}
.ssas-topbar-left  { display:flex; align-items:center; gap:1rem; position:relative; z-index:1; }
.ssas-topbar-right { display:flex; align-items:center; gap:1rem; position:relative; z-index:1; }

.ssas-avatar-lg {
    width:64px; height:64px; border-radius:50%;
    background:linear-gradient(135deg,#ffcb02 0%,#f59e0b 100%); color:#1a1200;
    display:flex; align-items:center; justify-content:center;
    font-size:1.65rem; font-weight:900; flex-shrink:0;
    border:3px solid rgba(255,203,2,.55);
    box-shadow: 0 0 0 4px rgba(255,203,2,.18), 0 6px 24px rgba(255,203,2,.28);
    overflow:hidden;
    position:relative;
    transition: box-shadow .2s, transform .2s;
}
.ssas-avatar-lg:hover {
    transform: scale(1.06);
    box-shadow: 0 0 0 5px rgba(255,203,2,.28), 0 8px 32px rgba(255,203,2,.38);
}
.ssas-avatar-lg img {
    width:100%; height:100%; object-fit:cover; display:block;
    border-radius:50%;
}
/* Premium ring wrap around profile pic */
.ssas-profile-pic-wrap {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.ssas-profile-pic-wrap::after {
    content:'';
    position:absolute;
    inset:-4px;
    border-radius:50%;
    background: conic-gradient(#ffcb02 0deg, #f59e0b 90deg, #1a1200 180deg, #ffcb02 270deg, #f59e0b 360deg);
    z-index:-1;
    animation: ssas-ring-spin 4s linear infinite;
    opacity:.7;
}
@keyframes ssas-ring-spin { to { transform:rotate(360deg); } }

.ssas-hello       { font-size:.75rem; color:rgba(255,203,2,.75); text-transform:uppercase; letter-spacing:.12em; font-weight:600; }
.ssas-student-name { font-size:1.3rem; font-weight:800; color:#fff; margin-top:.15rem; letter-spacing:-.01em; }
.ssas-meta-chips  { display:flex; gap:.5rem; margin-top:.5rem; flex-wrap:wrap; }
.ssas-chip-tag {
    font-size:.72rem; font-weight:600;
    padding:.2em .7em; border-radius:999px;
    text-transform:uppercase; letter-spacing:.04em;
}
.ssas-chip-tag.batch   { background:rgba(255,255,255,.18); color:rgba(255,255,255,.9); }
.ssas-chip-tag.offline { background:rgba(255,255,255,.12); color:rgba(255,255,255,.75); }
.ssas-chip-tag.online  { background:rgba(56,189,248,.25);  color:#bae6fd; }

.ssas-live-clock {
    font-family:'DM Mono',monospace; font-size:1.2rem; font-weight:500;
    color:#fff; background:rgba(255,255,255,.12);
    border-radius:10px; padding:.4rem 1rem;
    border:1px solid rgba(255,255,255,.15);
    letter-spacing:.05em;
}
.ssas-logout-btn {
    background:rgba(255,255,255,.12); color:rgba(255,255,255,.85);
    border:1px solid rgba(255,255,255,.2); border-radius:10px;
    padding:.5rem 1rem; font-family:'DM Sans',sans-serif;
    font-size:.85rem; font-weight:500; cursor:pointer;
    transition:background .2s, color .2s;
}
.ssas-logout-btn:hover { background:rgba(255,255,255,.22); color:#fff; }

/* ════════════════
   STATS ROW
════════════════ */
.ssas-stats-row {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1rem; margin-bottom:1.25rem;
}
.ssas-stat-tile {
    background:#fff;
    border-radius:16px; padding:1.4rem 1.25rem;
    border:1px solid var(--border);
    position:relative; overflow:hidden;
    transition:transform .2s, box-shadow .2s;
}
.ssas-stat-tile:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.ssas-stat-tile::before {
    content:''; position:absolute;
    top:0; left:0; right:0; height:3px;
    border-radius:16px 16px 0 0;
}
.ssas-stat-tile.green::before  { background:linear-gradient(90deg,#16a34a,#4ade80); }
.ssas-stat-tile.orange::before { background:linear-gradient(90deg,#d97706,#fbbf24); }
.ssas-stat-tile.red::before    { background:linear-gradient(90deg,#dc2626,#f87171); }
.ssas-stat-tile.purple::before { background:linear-gradient(90deg,#ffcb02,#ffe066); }

.ssas-tile-val  { font-size:2.4rem; font-weight:800; line-height:1; letter-spacing:-.04em; }
.ssas-tile-key  { font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-top:.4rem; }
.ssas-tile-month { font-size:.72rem; color:var(--muted); margin-top:.2rem; }
.ssas-stat-tile.green  .ssas-tile-val { color:#16a34a; }
.ssas-stat-tile.orange .ssas-tile-val { color:#d97706; }
.ssas-stat-tile.red    .ssas-tile-val { color:#dc2626; }
.ssas-stat-tile.purple .ssas-tile-val { color:#92600a; }

/* ════════════════
   MARK PANEL
════════════════ */
.ssas-mark-panel {
    background:#fff; border-radius:20px;
    border:1px solid var(--border);
    padding:1.75rem 2rem; margin-bottom:1.25rem;
    box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.ssas-mark-panel-head {
    display:flex; align-items:flex-start; justify-content:space-between;
    gap:1rem; margin-bottom:1.25rem; flex-wrap:wrap;
}
.ssas-mark-title  { font-size:1.15rem; font-weight:700; }
.ssas-mark-window { font-size:.85rem; color:var(--muted); margin-top:.25rem; }

.ssas-marked-badge {
    display:flex; align-items:center; gap:.5rem;
    font-size:.9rem; font-weight:700;
    padding:.5rem 1.2rem; border-radius:999px;
}
.ssas-marked-badge.present { background:#dcfce7; color:#166534; }
.ssas-marked-badge.late    { background:#fef9c3; color:#92400e; }
.ssas-marked-badge.absent  { background:#fee2e2; color:#991b1b; }

.ssas-marked-info  { display:flex; flex-direction:column; gap:.5rem; }
.ssas-marked-time  { color:var(--muted); font-size:.9rem; }
.ssas-marked-sync  { display:flex; gap:.5rem; flex-wrap:wrap; }
.ssas-sync-pill {
    background:#f0f9ff; color:#0369a1;
    border:1px solid #bae6fd; border-radius:999px;
    font-size:.75rem; font-weight:600; padding:.2em .7em;
}

.ssas-mark-hint {
    font-size:.95rem; padding:.9rem 1.2rem;
    border-radius:12px; margin-bottom:1rem;
}
.ssas-mark-hint.present { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
.ssas-mark-hint.late    { background:#fffbeb; color:#92400e; border:1px solid #fde68a; }

.ssas-mark-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
    padding:1rem 2.5rem; border-radius:14px;
    background:linear-gradient(135deg,#ffcb02,#e6b800);
    color:#1a1200; border:none;
    font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:600;
    cursor:pointer; transition:transform .15s, box-shadow .15s;
    box-shadow:0 6px 20px rgba(255,203,2,.45);
    min-width:260px;
}
.ssas-mark-btn:hover  { transform:translateY(-2px); box-shadow:0 10px 30px rgba(255,203,2,.55); }
.ssas-mark-btn:active { transform:translateY(0); }
.ssas-mark-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

/* ════════════════
   ALERTS
════════════════ */
.ssas-alert {
    padding:.8rem 1rem; border-radius:10px;
    font-size:.875rem; border:1px solid transparent;
}
.ssas-alert.success { background:#f0fdf4; color:#166534; border-color:#bbf7d0; }
.ssas-alert.error   { background:#fef2f2; color:#991b1b; border-color:#fecaca; }
.ssas-alert.info    { background:#eff6ff; color:#1e40af; border-color:#bfdbfe; }
.ssas-alert.warning { background:#fffbeb; color:#92400e; border-color:#fde68a; }

/* ════════════════
   HISTORY
════════════════ */
.ssas-history-panel {
    background:#fff; border-radius:20px;
    border:1px solid var(--border);
    overflow:hidden;
    box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.ssas-history-head {
    display:flex; align-items:center; justify-content:space-between;
    padding:1.25rem 1.75rem; border-bottom:1px solid var(--border);
    font-weight:600; font-size:1rem;
}
.ssas-history-sub { font-size:.8rem; color:var(--muted); font-weight:400; }
.ssas-history-scroll { overflow-x:auto; }

.ssas-hist-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.ssas-hist-table th {
    padding:.7rem 1.5rem; text-align:left;
    font-size:.72rem; text-transform:uppercase; letter-spacing:.06em;
    color:var(--muted); background:#fafafa;
    border-bottom:1px solid var(--border); font-weight:600;
}
.ssas-hist-table td { padding:.75rem 1.5rem; border-bottom:1px solid #f3f4f6; }
.ssas-hist-table tr:last-child td { border:none; }
.ssas-hist-table tr:hover td { background:#fafafa; }
.ssas-day { font-family:'DM Mono',monospace; font-size:.8rem; color:var(--muted); }
.ssas-empty { padding:2rem; text-align:center; color:var(--muted); }

/* ════════════════
   BADGES
════════════════ */
.ssas-badge {
    display:inline-block;
    padding:.22em .75em; border-radius:999px;
    font-size:.72rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.05em;
}
.ssas-badge.present { background:#dcfce7; color:#166534; }
.ssas-badge.late    { background:#fef9c3; color:#92400e; }
.ssas-badge.absent  { background:#fee2e2; color:#991b1b; }
.ssas-badge.online  { background:#dbeafe; color:#1e40af; }
.ssas-badge.offline { background:#f1f5f9; color:#475569; }

/* ════════════════
   SUCCESS OVERLAY
════════════════ */
#ssas-overlay {
    position:fixed; inset:0; z-index:99999;
    background:rgba(10,10,20,.6);
    display:flex; align-items:center; justify-content:center;
    backdrop-filter:blur(6px);
    animation:ssasFadeIn .3s ease;
}
.ssas-overlay-card {
    background:#fff; border-radius:24px;
    padding:3rem 2.5rem; text-align:center;
    box-shadow:0 40px 80px rgba(0,0,0,.25);
    animation:ssasPopIn .45s cubic-bezier(.175,.885,.32,1.275);
    max-width:360px; width:90%;
}
.ssas-overlay-icon { font-size:4rem; margin-bottom:1rem; animation:ssasBounce .7s ease; }
.ssas-overlay-msg  { font-size:1.1rem; font-weight:700; color:#111827; }
.ssas-overlay-sub  { font-size:.875rem; color:var(--muted); margin-top:.4rem; }

/* ════════════════
   ANIMATIONS
════════════════ */
@keyframes ssasSlideUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:none} }
@keyframes ssasFadeIn  { from{opacity:0} to{opacity:1} }
@keyframes ssasPopIn   { from{opacity:0;transform:scale(.6)} to{opacity:1;transform:scale(1)} }
@keyframes ssasBounce  { 0%,60%,75%,90%,100%{transform:none} 45%{transform:translateY(-18px)} 70%{transform:translateY(-8px)} 80%{transform:translateY(-4px)} }

/* ════════════════
   CHIP TAGS (topbar)
════════════════ */
.ssas-chip-tag.code {
    background:rgba(255,255,255,.25);
    color:#fff;
    font-family:'DM Mono',monospace;
    letter-spacing:.03em;
}

/* ════════════════
   RESOURCE BAR
════════════════ */
.ssas-resources-bar {
    display:flex; flex-wrap:wrap; gap:.75rem;
    margin-bottom:1.25rem;
}
.ssas-resource-btn {
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.65rem 1.25rem; border-radius:12px;
    font-family:'DM Sans',sans-serif; font-size:.875rem; font-weight:600;
    text-decoration:none; transition:transform .15s, box-shadow .15s;
    border:none; cursor:pointer;
}
.ssas-resource-btn.drive {
    background:linear-gradient(135deg,#1a73e8,#1557b0);
    color:#fff;
    box-shadow:0 4px 14px rgba(26,115,232,.3);
}
.ssas-resource-btn.drive:hover {
    transform:translateY(-1px);
    box-shadow:0 6px 20px rgba(26,115,232,.4);
    color:#fff;
    text-decoration:none;
}
.ssas-resource-btn.youtube {
    background:linear-gradient(135deg,#ff0000,#cc0000);
    color:#fff;
    box-shadow:0 4px 14px rgba(255,0,0,.25);
}
.ssas-resource-btn.youtube:hover {
    transform:translateY(-1px);
    box-shadow:0 6px 20px rgba(255,0,0,.35);
    color:#fff;
    text-decoration:none;
}
.ssas-resource-btn.recorded {
    background:linear-gradient(135deg,#7c3aed,#5b21b6);
    color:#fff;
    box-shadow:0 4px 14px rgba(124,58,237,.3);
}
.ssas-resource-btn.recorded:hover {
    transform:translateY(-1px);
    box-shadow:0 6px 20px rgba(124,58,237,.4);
    color:#fff;
    text-decoration:none;
}
.ssas-rc-arrow { font-size:.7rem; margin-left:.2rem; transition:transform .2s; }
.ssas-rc-dropdown-wrap { position:relative; }
.ssas-rc-dropdown-wrap.open .ssas-rc-arrow { transform:rotate(180deg); }
.ssas-rc-dropdown-menu {
    display:none; position:absolute; top:calc(100% + 6px); left:0; z-index:999;
    background:#fff; border:1.5px solid #e5e7eb; border-radius:12px;
    box-shadow:0 8px 28px rgba(0,0,0,.13); min-width:240px; overflow:hidden;
}
.ssas-rc-dropdown-wrap.open .ssas-rc-dropdown-menu { display:block; }
.ssas-rc-dropdown-item {
    display:flex; align-items:center; gap:.5rem;
    padding:.65rem 1rem; font-size:.85rem; font-weight:600; color:#374151;
    text-decoration:none; border-bottom:1px solid #f3f4f6; transition:background .1s;
}
.ssas-rc-dropdown-item:last-child { border-bottom:none; }
.ssas-rc-dropdown-item:hover { background:#f5f3ff; color:#7c3aed; text-decoration:none; }

/* ════════════════
   MARK HINTS
════════════════ */
.ssas-mark-hint {
    padding:.85rem 1.1rem; border-radius:10px;
    font-size:.92rem; margin-bottom:1rem;
    border:1px solid transparent;
}
.ssas-mark-hint.present  { background:#f0fdf4; color:#166534; border-color:#bbf7d0; }
.ssas-mark-hint.late     { background:#fffbeb; color:#92400e; border-color:#fde68a; }
.ssas-mark-hint.blocked  { background:#fef2f2; color:#991b1b; border-color:#fecaca; }
.ssas-mark-hint.not_yet  { background:#eff6ff; color:#1e40af; border-color:#bfdbfe; }
.ssas-mark-btn-warn      { background:linear-gradient(135deg,#b45309,#92400e) !important; }
.ssas-already-done       { padding:.25rem 0; }
.ssas-done-row           { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.ssas-done-time          { color:var(--muted); font-size:.9rem; }
.ssas-done-pills         { display:flex; gap:.5rem; flex-wrap:wrap; }

/* ════════════════
   BATCH INFO CARD (redesigned)
════════════════ */
.ssas-batch-card {
    background: linear-gradient(135deg, #1e40af 0%, #2563eb 60%, #3b82f6 100%);
    border-radius: 18px;
    padding: 1.4rem 1.6rem 1.2rem;
    margin-bottom: 1.25rem;
    color: #fff;
    box-shadow: 0 4px 24px rgba(37,99,235,.22);
    position: relative;
    overflow: hidden;
}
.ssas-batch-card::before {
    content: '';
    position: absolute;
    top: -40px; right: -40px;
    width: 140px; height: 140px;
    border-radius: 50%;
    background: rgba(255,255,255,.07);
}
.ssas-batch-card::after {
    content: '';
    position: absolute;
    bottom: -30px; left: 30px;
    width: 90px; height: 90px;
    border-radius: 50%;
    background: rgba(255,255,255,.05);
}
.ssas-batch-card-header {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    margin-bottom: 1rem;
}
.ssas-batch-card-icon {
    font-size: 1.8rem;
    line-height: 1;
    flex-shrink: 0;
    margin-top: .1rem;
}
.ssas-batch-card-title-wrap { flex: 1; }
.ssas-batch-card-name {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .01em;
    margin-bottom: .35rem;
    text-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.ssas-batch-card-status-pill {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    padding: .2rem .65rem;
    border-radius: 999px;
    letter-spacing: .03em;
}
.ssas-batch-card-status-pill.live { background: rgba(255,255,255,.22); color: #fff; }
.ssas-batch-card-status-pill.break { background: rgba(254,243,199,.28); color: #fff7db; }
.ssas-batch-card-status-pill.done { background: rgba(255,255,255,.18); color: #bbf7d0; }
.ssas-batch-card-mode {
    flex-shrink: 0;
    background: rgba(255,255,255,.15);
    border-radius: 10px;
    padding: .3rem .75rem;
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
}
.ssas-batch-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .0rem;
    margin-bottom: 1rem;
    background: rgba(255,255,255,.1);
    border-radius: 12px;
    padding: .75rem 1rem;
}
.ssas-batch-meta-item {
    display: flex;
    flex-direction: column;
    min-width: 110px;
    flex: 1;
    padding: .1rem .5rem;
    border-right: 1px solid rgba(255,255,255,.15);
}
.ssas-batch-meta-item:last-child { border-right: none; }
.ssas-batch-meta-label {
    font-size: .68rem;
    font-weight: 600;
    opacity: .75;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .15rem;
}
.ssas-batch-meta-val {
    font-size: .83rem;
    font-weight: 700;
    color: #fff;
}
.ssas-batch-progress-wrap { position: relative; z-index: 1; }
.ssas-batch-progress-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .76rem;
    margin-bottom: .4rem;
    opacity: .9;
}
.ssas-batch-progress-label { font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: .68rem; }
.ssas-batch-progress-right { font-weight: 600; }
.ssas-batch-progress-bar {
    background: rgba(255,255,255,.2);
    border-radius: 999px;
    height: 8px;
    overflow: hidden;
}
.ssas-batch-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #a5f3fc, #38bdf8);
    transition: width .6s cubic-bezier(.4,0,.2,1);
}
.ssas-batch-progress-fill.done {
    background: linear-gradient(90deg, #bbf7d0, #4ade80);
}
@media (max-width: 560px) {
    .ssas-batch-card { padding: 1.1rem 1.1rem .95rem; }
    .ssas-batch-card-meta { padding: .6rem .75rem; }
    .ssas-batch-meta-item { min-width: 90px; }
    .ssas-batch-card-name { font-size: .95rem; }
}

/* ════════════════
   ALL-TIME STRIP
════════════════ */
.ssas-alltime-strip {
    display:flex; flex-wrap:wrap; align-items:center; gap:.75rem;
    background:#fff; border:1px solid var(--border);
    border-radius:14px; padding:1rem 1.4rem;
    margin-bottom:1.25rem; font-size:.85rem;
}
.ssas-alltime-label { font-weight:700; color:var(--muted); text-transform:uppercase; font-size:.72rem; letter-spacing:.06em; }
.ssas-alltime-item  { font-weight:600; }
.ssas-alltime-item.present { color:#16a34a; }
.ssas-alltime-item.late    { color:#d97706; }
.ssas-alltime-item.absent  { color:#dc2626; }
.ssas-alltime-item.total   { color:#374151; }
.ssas-alltime-pct { margin-left:auto; font-weight:700; font-size:.9rem; padding:.3em .9em; border-radius:999px; }
.ssas-alltime-pct.good { background:#dcfce7; color:#166534; }
.ssas-alltime-pct.warn { background:#fef9c3; color:#92400e; }
.ssas-alltime-pct.bad  { background:#fee2e2; color:#991b1b; }

/* ════════════════
   MONTH SECTION
════════════════ */
.ssas-month-section { margin-bottom:1.25rem; }
.ssas-month-header  {
    display:flex; align-items:center; justify-content:space-between;
    gap:1rem; flex-wrap:wrap; margin-bottom:1rem;
}
.ssas-month-form    { display:flex; align-items:center; gap:.6rem; }
.ssas-month-label   { font-size:1.05rem; }
.ssas-month-form select {
    padding:.55rem .9rem; border:1.5px solid var(--border);
    border-radius:10px; font-family:'DM Sans',sans-serif;
    font-size:.9rem; font-weight:600; color:var(--text);
    background:#fff; cursor:pointer;
    transition:border-color .2s;
}
.ssas-month-form select:focus { outline:none; border-color:#ffcb02; }
.ssas-pdf-btn {
    padding:.6rem 1.2rem; border-radius:10px;
    background:linear-gradient(135deg,#0f766e,#0d9488);
    color:#fff; border:none; font-family:'DM Sans',sans-serif;
    font-size:.85rem; font-weight:600; cursor:pointer;
    transition:opacity .15s, transform .15s;
    box-shadow:0 3px 12px rgba(15,118,110,.3);
    white-space:nowrap;
}
.ssas-pdf-btn:hover   { opacity:.9; transform:translateY(-1px); }
.ssas-pdf-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

/* ════════════════
   PROGRESS BAR
════════════════ */
.ssas-month-progress { margin-top:.75rem; }
.ssas-mpb-track {
    height:10px; border-radius:999px; overflow:hidden;
    background:#f1f5f9; display:flex;
}
.ssas-mpb-present { background:#16a34a; transition:width .4s ease; }
.ssas-mpb-late    { background:#d97706; transition:width .4s ease; }
.ssas-mpb-absent  { background:#ef4444; transition:width .4s ease; }
.ssas-mpb-legend  { display:flex; gap:1.25rem; margin-top:.5rem; font-size:.75rem; font-weight:600; }
.ssas-mpb-legend .p { color:#16a34a; }
.ssas-mpb-legend .l { color:#d97706; }
.ssas-mpb-legend .a { color:#dc2626; }

/* ════════════════
   RESPONSIVE
════════════════ */
@media (max-width:700px) {
    .ssas-stats-row { grid-template-columns:1fr 1fr; }
    .ssas-topbar    { flex-direction:column; align-items:flex-start; }
    .ssas-topbar-right { width:100%; justify-content:space-between; }
    .ssas-login-card   { padding:2rem 1.5rem; }
    .ssas-mark-panel   { padding:1.25rem; }
    .ssas-mark-btn     { width:100%; }
}
@media (max-width:420px) {
    .ssas-stats-row { grid-template-columns:1fr 1fr; }
}

/* ════════════════════════════
   STATUS BANNERS (break / completed)
════════════════════════════ */
.ssas-status-banner {
    display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap;
    border-radius:16px; padding:1.5rem 2rem;
    margin-bottom:1.25rem;
    box-shadow:0 2px 12px rgba(0,0,0,.07);
}
.ssas-status-banner.break {
    background:linear-gradient(135deg,#fffbeb,#fef3c7);
    border:1.5px solid #fcd34d;
}
.ssas-status-banner.completed {
    background:linear-gradient(135deg,#f0fdf4,#dcfce7);
    border:1.5px solid #86efac;
}
.ssas-status-icon { font-size:2.5rem; flex-shrink:0; }
.ssas-status-body { flex:1; }
.ssas-status-body strong { font-size:1.05rem; font-weight:700; display:block; margin-bottom:.25rem; }
.ssas-status-body p { font-size:.875rem; color:var(--muted); }
.ssas-call-btn {
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.75rem 1.5rem; border-radius:12px;
    font-family:'DM Sans',sans-serif; font-size:.9rem; font-weight:700;
    text-decoration:none; transition:transform .15s, box-shadow .15s;
    white-space:nowrap;
}
.ssas-call-btn { background:linear-gradient(135deg,#d97706,#b45309); color:#fff; box-shadow:0 4px 14px rgba(217,119,6,.3); }
.ssas-call-btn.cert { background:linear-gradient(135deg,#059669,#047857); box-shadow:0 4px 14px rgba(5,150,105,.3); }
.ssas-call-btn:hover { transform:translateY(-1px); text-decoration:none; color:#fff; }

/* Status chip colours */
.ssas-chip-tag.active    { background:rgba(34,197,94,.25); color:#166534; }
.ssas-chip-tag.break     { background:rgba(245,158,11,.25); color:#92400e; }
.ssas-chip-tag.completed { background:rgba(255,203,2,.18); color:#78450a; }

/* ── Email chip ── */
.ssas-chip-tag.email {
    background: rgba(255,203,2,.15);
    color: #e0e7ff;
    font-size: .68rem;
    text-transform: lowercase;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
}

/* ── Footer credit ── */
.ssas-footer-credit {
    text-align: center;
    font-size: .72rem;
    color: var(--muted);
    padding: 1.5rem 0 .5rem;
    opacity: .7;
}

/* ═══════════════════════════════════════
   EXAM PANEL (student dashboard)
═══════════════════════════════════════ */
.ssas-exam-panel {
    background:#fff; border-radius:20px;
    border:1px solid var(--border);
    margin-bottom:1.25rem;
    overflow:hidden;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.ssas-exam-panel-head {
    padding:1rem 1.75rem; font-weight:700; font-size:1rem;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    color:#fff;
}
.ssas-exam-card {
    display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
    padding:1rem 1.75rem; border-bottom:1px solid #f1f5f9;
}
.ssas-exam-card:last-child { border:none; }
.ssas-exam-card.done { opacity:.75; }
.ssas-exam-card-info { flex:1; }
.ssas-exam-card-title { font-weight:600; font-size:.95rem; }
.ssas-exam-card-meta  { font-size:.78rem; color:var(--muted); margin-top:.2rem; }
.ssas-exam-done-info  { display:flex; flex-direction:column; align-items:flex-end; gap:.25rem; }
.ssas-exam-start-btn  {
    padding:.65rem 1.4rem; border-radius:10px;
    background:linear-gradient(135deg,#ffcb02,#e6b800);
    color:#1a1200; border:none; font-family:'DM Sans',sans-serif;
    font-size:.875rem; font-weight:600; cursor:pointer;
    transition:transform .15s, box-shadow .15s;
    box-shadow:0 4px 14px rgba(255,203,2,.45);
    white-space:nowrap;
}
.ssas-exam-start-btn:hover { transform:translateY(-1px); }
.ssas-exam-start-btn.resume { background:linear-gradient(135deg,#0369a1,#0284c7); box-shadow:0 4px 14px rgba(3,105,161,.3); }

/* ═══════════════════════════════════════
   EXAM SCREEN (fullscreen overlay)
═══════════════════════════════════════ */
#ssas-exam-screen {
    position:fixed; inset:0; z-index:999999;
    background:#f8faff;
    display:flex; align-items:stretch;
    font-family:'DM Sans',sans-serif;
}
.ssas-exam-screen-inner {
    width:100%; display:flex; flex-direction:column;
}
.ssas-exam-header {
    display:flex; align-items:center; justify-content:space-between;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    color:#fff; padding:1rem 2rem; flex-shrink:0;
}
.ssas-exam-header-title { font-size:1.1rem; font-weight:700; }
.ssas-exam-header-right { display:flex; align-items:center; gap:1.25rem; }
.ssas-exam-timer-box {
    display:flex; align-items:center; gap:.4rem;
    background:rgba(255,255,255,.15); border-radius:8px;
    padding:.35rem .9rem;
}
.ssas-exam-timer-val { font-family:'DM Mono',monospace; font-size:1.1rem; font-weight:700; }
.ssas-exam-progress-text { font-size:.85rem; opacity:.85; }

#ssas-q-timer-bar-wrap {
    height:5px; background:#e5e7eb; flex-shrink:0;
}
#ssas-q-timer-bar {
    height:100%; transition:width .9s linear, background .3s;
}

.ssas-exam-body {
    flex:1; overflow-y:auto; display:flex; flex-direction:column;
    padding:1.5rem; max-width:820px; width:100%; margin:0 auto;
}

/* Question navigator dots */
.ssas-q-nav { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.25rem; }
.ssas-q-nav-dot {
    width:34px; height:34px; border-radius:8px;
    border:2px solid #e5e7eb; background:#fff;
    font-size:.78rem; font-weight:700; cursor:pointer;
    color:#374151; transition:all .15s;
}
.ssas-q-nav-dot.current  { border-color:#ffcb02; background:#ffcb02; color:#1a1200; }
.ssas-q-nav-dot.answered { border-color:#16a34a; background:#dcfce7; color:#166534; }

/* Question area */
.ssas-q-area {
    background:#fff; border-radius:16px; padding:1.75rem 2rem;
    border:1px solid var(--border); flex:1; margin-bottom:1.25rem;
    box-shadow:0 2px 12px rgba(0,0,0,.04); position:relative;
}
.ssas-q-num-badge {
    display:inline-block; background:#ffcb02; color:#1a1200;
    border-radius:8px; padding:.2em .65em; font-size:.8rem;
    font-weight:700; margin-bottom:.75rem;
}
.ssas-q-marks-badge {
    display:inline-block; background:#f1f5f9; color:#475569;
    border-radius:8px; padding:.2em .65em; font-size:.75rem;
    font-weight:600; margin-bottom:.75rem; margin-left:.4rem;
}
.ssas-q-text {
    font-size:1.05rem; font-weight:500; line-height:1.6;
    margin-bottom:1.25rem; color:#111827;
}
.ssas-q-options { display:flex; flex-direction:column; gap:.6rem; }
.ssas-mcq-option {
    display:flex; align-items:center; gap:.85rem;
    padding:.85rem 1.1rem; border-radius:12px;
    border:2px solid #e5e7eb; background:#fafafa;
    cursor:pointer; transition:all .15s;
}
.ssas-mcq-option:hover { border-color:#fde68a; background:#fffdf0; }
.ssas-mcq-option.selected { border-color:#ffcb02; background:#fffbeb; }
.ssas-mcq-option input[type=radio] { display:none; }
.ssas-mcq-key {
    width:28px; height:28px; border-radius:8px;
    background:#e5e7eb; color:#374151;
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; font-weight:700; flex-shrink:0;
}
.ssas-mcq-option.selected .ssas-mcq-key { background:#ffcb02; color:#1a1200; }
.ssas-mcq-text { font-size:.95rem; color:#111827; }
.ssas-q-short-ans {
    width:100%; padding:.85rem 1rem; border:2px solid #e5e7eb;
    border-radius:12px; font-family:'DM Sans',sans-serif;
    font-size:.95rem; line-height:1.6; resize:vertical; min-height:100px;
    transition:border-color .2s;
}
.ssas-q-short-ans:focus { outline:none; border-color:#ffcb02; }

/* Nav buttons */
.ssas-q-nav-btns { display:flex; gap:.75rem; justify-content:space-between; flex-wrap:wrap; }
.ssas-qbtn {
    padding:.75rem 1.75rem; border-radius:12px; border:none;
    font-family:'DM Sans',sans-serif; font-size:.95rem; font-weight:600;
    cursor:pointer; transition:all .15s;
}
.ssas-qbtn.prev   { background:#f1f5f9; color:#374151; }
.ssas-qbtn.prev:hover { background:#e2e8f0; }
.ssas-qbtn.next   { background:linear-gradient(135deg,#ffcb02,#e6b800); color:#1a1200; margin-left:auto;
    box-shadow:0 4px 14px rgba(255,203,2,.45); }
.ssas-qbtn.submit { background:linear-gradient(135deg,#059669,#047857); color:#fff;
    box-shadow:0 4px 14px rgba(5,150,105,.3); margin-left:auto; }

/* ═══════════════════════════════════════
   EXAM RESULT SCREEN
═══════════════════════════════════════ */
#ssas-exam-result-screen {
    position:fixed; inset:0; z-index:1000000;
    background:rgba(10,10,20,.65); backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center;
    font-family:'DM Sans',sans-serif;
}
.ssas-exam-result-card {
    background:#fff; border-radius:24px; padding:3rem 2.5rem;
    text-align:center; max-width:420px; width:90%;
    box-shadow:0 40px 80px rgba(0,0,0,.25);
    animation:ssasPopIn .45s cubic-bezier(.175,.885,.32,1.275);
}
.ssas-exam-result-icon { font-size:3.5rem; margin-bottom:.75rem; }
.ssas-exam-result-card h2 { font-size:1.35rem; font-weight:700; margin-bottom:1.25rem; }
.ssas-result-score-box {
    display:inline-flex; flex-direction:column; align-items:center;
    border:3px solid #ffcb02; border-radius:20px;
    padding:1.25rem 2.5rem; margin-bottom:1rem;
    background:#fffdf0;
}
.ssas-result-score { font-size:2.8rem; font-weight:800; color:#92600a; line-height:1; }
.ssas-result-label { font-size:.85rem; color:var(--muted); margin-top:.25rem; }
.ssas-result-pct   { font-size:1.5rem; font-weight:700; margin:.5rem 0; }
.ssas-result-msg   { font-size:.9rem; color:var(--muted); }

/* ═══════════════════════════════════════
   TABS
═══════════════════════════════════════ */
.ssas-tabs-wrap { margin-top:1.25rem; }

/* ── Tab nav: horizontal scroll on mobile, wrap on desktop ── */
.ssas-tab-nav {
    display: flex;
    gap: .35rem;
    flex-wrap: nowrap;          /* single row — scrolls horizontally on mobile */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;      /* hide scrollbar Firefox */
    -ms-overflow-style: none;   /* hide scrollbar IE/Edge */
    border-bottom: 2px solid #e5e7eb;
    margin-bottom: 1.25rem;
    padding-bottom: 0;
    /* subtle fade hints on both edges so user sees it's scrollable */
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
}
.ssas-tab-nav::-webkit-scrollbar { display: none; } /* hide scrollbar Chrome/Safari */

.ssas-tab-btn {
    flex-shrink: 0;             /* never shrink — scroll instead */
    padding: .6rem 1rem;
    border: none;
    background: none;
    font-family: 'DM Sans', sans-serif;
    font-size: .82rem;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: all .15s;
    border-radius: 8px 8px 0 0;
    white-space: nowrap;
}
.ssas-tab-btn:hover  { color:#1a1200; background:#fffbeb; }
.ssas-tab-btn.active { color:#1a1200; border-bottom-color:#ffcb02; background:#fffbeb; }

/* Auto-scroll active tab into view */
.ssas-tab-panel { display:none; }
.ssas-tab-panel.active { display:block; }
#ssas-tab-chat.active  { display:flex; flex-direction:column; }

/* Score sub-tabs */
.ssas-subtab-nav {
    display: flex;
    gap: .25rem;
    background: #f9fafb;
    border-radius: 10px;
    padding: .3rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
}
.ssas-subtab-nav::-webkit-scrollbar { display: none; }
.ssas-subtab-btn {
    flex: 0 0 auto;
    padding: .5rem .75rem;
    border: none;
    background: none;
    font-family: 'DM Sans', sans-serif;
    font-size: .8rem;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    border-radius: 7px;
    transition: all .15s;
    white-space: nowrap;
}
.ssas-subtab-btn:hover  { background:#fff; color:#1a1200; }
.ssas-subtab-btn.active { background:#1a1200; color:#ffcb02; }
.ssas-subtab-panel { display:none; }
.ssas-subtab-panel.active { display:block; }

/* ═══════════════════════════════════════
   MODULE CARDS
═══════════════════════════════════════ */
.ssas-module-card {
    display:flex; align-items:center; gap:1rem;
    border-radius:14px; padding:1rem 1.25rem;
    border:1.5px solid #e5e7eb; background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.ssas-module-card.ongoing { border-left:4px solid #ffcb02; }
.ssas-module-card.done    { border-left:4px solid #16a34a; }
.ssas-module-icon  { font-size:1.5rem; flex-shrink:0; }
.ssas-module-body  { flex:1; }
.ssas-module-name  { font-weight:700; font-size:.95rem; color:#111827; }
.ssas-module-topic { font-size:.8rem; color:#6b7280; margin-top:.2rem; }

/* ═══════════════════════════════════════
   CERTIFICATE TAB
═══════════════════════════════════════ */
.ssas-cert-panel {
    text-align:center; padding:3rem 2rem;
    background:linear-gradient(135deg,#fffbeb,#fff);
    border-radius:20px; border:2px solid #ffcb02;
    margin:.5rem 0;
}
.ssas-cert-icon    { font-size:4rem; margin-bottom:1rem; }
.ssas-cert-title   { font-size:1.4rem; font-weight:800; color:#1a1200; margin-bottom:.5rem; }
.ssas-cert-sub     { color:#6b7280; font-size:.9rem; margin-bottom:1.5rem; }
.ssas-cert-pending { color:#9ca3af; font-size:.875rem; margin-bottom:1rem; }
.ssas-cert-download-btn {
    display:inline-flex; align-items:center; gap:.6rem;
    background:linear-gradient(135deg,#ffcb02,#e6b800);
    color:#1a1200; font-weight:700; font-size:1rem;
    padding:1rem 2.5rem; border-radius:14px; text-decoration:none;
    box-shadow:0 6px 20px rgba(255,203,2,.4);
    transition:transform .15s,box-shadow .15s;
}
.ssas-cert-download-btn:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(255,203,2,.5); color:#1a1200; text-decoration:none; }

/* ═══════════════════════════════════════
   CERTIFICATE VERIFICATION PAGE
═══════════════════════════════════════ */
.ssas-verify-root {
    font-family:'DM Sans',sans-serif;
    max-width:680px; margin:0 auto; padding:2rem 1rem 4rem;
    color:#111827;
}
.ssas-verify-header {
    text-align:center; padding:2.5rem 1rem 2rem;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    border-radius:20px; margin-bottom:1.75rem;
}
.ssas-verify-logo  { font-size:3rem; margin-bottom:.5rem; }
.ssas-verify-title { font-size:1.6rem; font-weight:800; color:#ffcb02; margin-bottom:.4rem; letter-spacing:-.02em; }
.ssas-verify-sub   { font-size:.85rem; color:rgba(255,203,2,.65); }

.ssas-verify-form-wrap { margin-bottom:1.5rem; }
.ssas-verify-input-row {
    display:flex; gap:.75rem; align-items:center; flex-wrap:wrap;
}
.ssas-verify-input-wrap {
    flex:1; display:flex; align-items:center; min-width:240px;
    background:#fff; border:2px solid #e5e7eb; border-radius:12px;
    padding:0 1rem; transition:border-color .2s, box-shadow .2s;
}
.ssas-verify-input-wrap:focus-within {
    border-color:#ffcb02; box-shadow:0 0 0 3px rgba(255,203,2,.15);
}
.ssas-verify-input-icon { font-size:1rem; opacity:.5; margin-right:.5rem; flex-shrink:0; }
.ssas-verify-input {
    flex:1; border:none; outline:none; padding:.85rem 0;
    font-family:'DM Sans',sans-serif; font-size:.95rem; background:transparent;
}
.ssas-verify-btn {
    padding:.85rem 2rem; background:linear-gradient(135deg,#ffcb02,#e6b800);
    color:#1a1200; font-family:'DM Sans',sans-serif; font-size:.95rem; font-weight:700;
    border:none; border-radius:12px; cursor:pointer;
    box-shadow:0 4px 14px rgba(255,203,2,.4); transition:transform .15s,box-shadow .15s;
    white-space:nowrap;
}
.ssas-verify-btn:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(255,203,2,.5); }

/* Result cards */
.ssas-verify-result { border-radius:24px; overflow:hidden; margin-bottom:1.5rem; }
.ssas-verify-result.error {
    background:#fef2f2; border:2px solid #fca5a5;
    padding:2rem; text-align:center;
}
.ssas-verify-result.error .ssas-verify-result-icon { font-size:2.5rem; margin-bottom:.75rem; }
.ssas-verify-result.error .ssas-verify-result-msg  { color:#991b1b; font-size:.95rem; }
.ssas-verify-result.success {
    border:1px solid #e7cf7a;
    background:linear-gradient(180deg,#fffdf5 0%,#ffffff 42%);
    box-shadow:0 22px 48px rgba(26,18,0,.08);
}

/* Verified badge strip */
.ssas-verify-badge {
    display:flex; align-items:center; justify-content:center; gap:.6rem;
    padding:1rem 1.5rem; font-weight:800; font-size:.95rem; letter-spacing:.01em;
}
.ssas-verify-badge.certified { background:linear-gradient(135deg,#1a1200,#3d2e00); color:#ffcb02; }
.ssas-verify-badge.enrolled  { background:#ecfdf3; color:#166534; border-bottom:1px solid #bbf7d0; }
.ssas-verify-badge-icon { font-size:1rem; text-transform:uppercase; letter-spacing:.08em; }

/* Student card */
.ssas-verify-card {
    padding:1.5rem;
}
.ssas-verify-card-advanced {
    display:grid;
    gap:1rem;
}
.ssas-verify-hero {
    display:flex;
    gap:1rem;
    align-items:center;
    padding:1.2rem;
    border-radius:22px;
    background:linear-gradient(135deg,#1f1600 0%,#3b2b00 100%);
    color:#fff8de;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.ssas-verify-avatar {
    width:78px; height:78px; border-radius:24px;
    background:linear-gradient(135deg,#ffcb02,#f59e0b);
    color:#1a1200; font-size:2rem; font-weight:800;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.ssas-verify-hero-copy { flex:1; min-width:0; }
.ssas-verify-kicker {
    display:inline-flex; align-items:center;
    padding:.38rem .7rem; border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.08);
    color:#ffe7a1; font-size:.72rem; font-weight:700;
    letter-spacing:.08em; text-transform:uppercase;
}
.ssas-verify-name-row {
    display:flex; justify-content:space-between; align-items:flex-start;
    gap:1rem; flex-wrap:wrap; margin-top:.9rem;
}
.ssas-verify-name-block { min-width:0; }
.ssas-verify-nameplate {
    margin:0; color:#fff; font-size:1.65rem;
    line-height:1.08; font-weight:800; letter-spacing:-.03em;
}
.ssas-verify-student-code { margin-top:.45rem; }
.ssas-verify-student-code code {
    display:inline-block;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.14);
    color:#fff8de; padding:.35rem .8rem;
    border-radius:999px; font-size:.82rem;
    font-family:'DM Mono',monospace;
}
.ssas-verify-quickfacts {
    display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem;
}
.ssas-verify-quickfact {
    display:inline-flex; align-items:center;
    padding:.55rem .8rem; border-radius:14px;
    border:1px solid #f2e6bd; background:#fff;
    color:#4b3820; font-size:.84rem; font-weight:700;
}
.ssas-verify-detail-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.9rem;
}
.ssas-verify-detail-card {
    padding:1rem 1.05rem;
    border:1px solid #efe7cc;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 25px rgba(15,23,42,.04);
}
.ssas-verify-detail-label {
    display:block; margin-bottom:.45rem;
    color:#9a8b66; font-size:.72rem; font-weight:700;
    letter-spacing:.08em; text-transform:uppercase;
}
.ssas-verify-detail-value {
    display:block; color:#22170a; font-size:1rem;
    line-height:1.45; font-weight:700;
}

/* Status badges */
.ssas-verify-status {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:38px; padding:.45rem .95rem; border-radius:999px;
    font-size:.8rem; font-weight:800; white-space:nowrap;
}
.ssas-verify-status.completed { background:#dcfce7; color:#166534; }
.ssas-verify-status.active    { background:#f0fdf4; color:#166534; }
.ssas-verify-status.break     { background:#fffbeb; color:#92600a; }

.ssas-verify-meta-card {
    padding:1rem 1.1rem;
    border-radius:18px;
    border:1px solid #efe7cc;
    background:#fff;
}
.ssas-verify-meta-card.is-highlight {
    background:linear-gradient(135deg,#fff3c4,#ffe082);
    border-color:#f2c94c;
}
.ssas-verify-meta-card span {
    display:block;
    color:#9a8b66; font-size:.72rem; font-weight:700;
    letter-spacing:.08em; text-transform:uppercase;
}
.ssas-verify-meta-card strong {
    display:block;
    margin-top:.35rem;
    color:#1f1600; font-size:1.02rem; font-weight:800;
}
.ssas-verify-meta-card small {
    display:block;
    margin-top:.45rem;
    color:#7c6742; font-size:.78rem; line-height:1.55;
}

.ssas-verify-footer-note {
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
    padding:1rem 1.5rem 1.2rem; background:#fffaf0; border-top:1px solid #f3e2ac;
    font-size:.78rem; color:#7c6742;
}
.ssas-verify-credit {
    text-align:center; font-size:.72rem; color:#9ca3af; padding:1.5rem 0 .5rem; opacity:.7;
}

/* ═══════════════════════════════════════════════
   SCORES TAB — Score cards with ring
═══════════════════════════════════════════════ */
.ssas-score-tabs {
    display:flex; gap:.5rem; background:#f1f5f9;
    border-radius:12px; padding:.3rem; margin-bottom:1.25rem;
}
.ssas-score-tab {
    flex:1; display:flex; align-items:center; justify-content:center; gap:.4rem;
    padding:.55rem .5rem; border:none; background:transparent;
    font-family:'DM Sans',sans-serif; font-size:.82rem; font-weight:600;
    color:#6b7280; cursor:pointer; border-radius:9px; transition:all .15s;
    position:relative;
}
.ssas-score-tab:hover { background:#fff; color:#1a1200; }
.ssas-score-tab.active { background:#1a1200; color:#ffcb02; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.ssas-score-tab-badge {
    position:absolute; top:-4px; right:2px;
    background:#ffcb02; color:#1a1200; font-size:.6rem; font-weight:800;
    padding:.1em .4em; border-radius:99px; min-width:16px; text-align:center;
}
.ssas-score-tab.active .ssas-score-tab-badge { background:#ffcb02; color:#1a1200; }

.ssas-score-panel { display:none; }
.ssas-score-panel.active { display:block; }

.ssas-score-cards {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:1rem; padding:.25rem 0;
}
.ssas-score-card {
    background:#fff; border-radius:16px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    overflow:hidden; transition:transform .15s, box-shadow .15s;
}
.ssas-score-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.09); }
.ssas-score-card-top {
    padding:.85rem 1rem .6rem;
    background:linear-gradient(135deg,#fafafa,#f1f5f9);
    border-bottom:1px solid #e5e7eb;
    display:flex; justify-content:space-between; align-items:flex-start; gap:.5rem;
}
.ssas-score-card-module { font-weight:700; font-size:.875rem; color:#111827; line-height:1.3; }
.ssas-score-card-date   { font-size:.72rem; color:#9ca3af; white-space:nowrap; flex-shrink:0; margin-top:.1rem; }
.ssas-score-card-body   { display:flex; align-items:center; gap:1rem; padding:.85rem 1rem; }

/* SVG ring */
.ssas-score-ring { position:relative; width:60px; height:60px; flex-shrink:0; }
.ssas-ring-svg   { width:60px; height:60px; transform:rotate(-90deg); }
.ssas-ring-bg    { fill:none; stroke:#e5e7eb; stroke-width:3; }
.ssas-ring-fill  { fill:none; stroke-width:3; stroke-linecap:round; transition:stroke-dasharray .6s ease; }
.ssas-ring-text  {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:.72rem; font-weight:800; color:#111827;
}
.ssas-score-card-details { flex:1; }
.ssas-score-nums { display:flex; align-items:baseline; gap:.25rem; margin-bottom:.35rem; }
.ssas-score-val  { font-size:1.4rem; font-weight:800; color:#111827; line-height:1; }
.ssas-score-sep  { font-size:.875rem; color:#9ca3af; }
.ssas-score-max  { font-size:.875rem; color:#6b7280; }
.ssas-score-notes { font-size:.72rem; color:#6b7280; margin-bottom:.4rem; font-style:italic; }
.ssas-score-bar-wrap { height:5px; background:#f1f5f9; border-radius:99px; overflow:hidden; }
.ssas-score-bar  { height:100%; border-radius:99px; transition:width .6s ease; }

.ssas-score-empty {
    text-align:center; padding:3rem 1rem;
    background:#fafafa; border-radius:16px; border:1.5px dashed #e5e7eb;
}
.ssas-score-empty-icon { font-size:2.5rem; margin-bottom:.75rem; opacity:.5; }
.ssas-score-empty-text { font-weight:700; color:#374151; margin-bottom:.3rem; }
.ssas-score-empty-sub  { font-size:.8rem; color:#9ca3af; }

/* ═══════════════════════════════════════════════
   MODULES TAB — Section lists
═══════════════════════════════════════════════ */
.ssas-modules-wrap { display:flex; flex-direction:column; gap:1.25rem; padding:.25rem 0; }

.ssas-modules-section { background:#fff; border-radius:16px; border:1.5px solid #e5e7eb; overflow:hidden; }
.ssas-modules-section-head {
    display:flex; align-items:center; gap:.65rem;
    padding:.8rem 1.1rem; background:#f9fafb;
    border-bottom:1px solid #e5e7eb;
    font-weight:700; font-size:.82rem; color:#374151; text-transform:uppercase; letter-spacing:.05em;
}
.ssas-modules-section-dot {
    width:9px; height:9px; border-radius:50%; flex-shrink:0;
}
.ssas-modules-section-dot.ongoing   { background:#ffcb02; box-shadow:0 0 0 3px rgba(255,203,2,.25); }
.ssas-modules-section-dot.completed { background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.2); }
.ssas-modules-section-count {
    margin-left:auto; background:#e5e7eb; color:#6b7280;
    font-size:.72rem; padding:.15em .55em; border-radius:99px; font-weight:700;
}

.ssas-module-item {
    display:flex; align-items:center; justify-content:space-between;
    padding:.85rem 1.1rem; border-bottom:1px solid #f1f5f9;
    transition:background .1s;
}
.ssas-module-item:last-child { border-bottom:none; }
.ssas-module-item:hover { background:#fafafa; }
.ssas-module-item.ongoing   { border-left:3px solid #ffcb02; }
.ssas-module-item.completed { border-left:3px solid #16a34a; }

.ssas-module-item-left { display:flex; align-items:flex-start; gap:.75rem; }
.ssas-module-item-icon { font-size:1.15rem; flex-shrink:0; margin-top:.05rem; }
.ssas-module-item-info { }
.ssas-module-item-name { font-weight:600; font-size:.875rem; color:#111827; }
.ssas-module-item-topic {
    font-size:.775rem; color:#6b7280; margin-top:.2rem;
    display:flex; align-items:center; gap:.3rem; flex-wrap:wrap;
}
.ssas-module-topic-label { color:#9ca3af; }

.ssas-module-item-badge {
    font-size:.72rem; font-weight:700; padding:.25em .75em; border-radius:99px;
    white-space:nowrap; flex-shrink:0;
}
.ssas-module-item-badge.ongoing   { background:#fffbeb; color:#92600a; border:1px solid #fcd34d; }
.ssas-module-item-badge.completed { background:#dcfce7; color:#166534; border:1px solid #86efac; }

.ssas-modules-empty {
    text-align:center; padding:2.5rem 1rem;
    background:#fafafa; border-radius:16px; border:1.5px dashed #e5e7eb;
    color:#9ca3af; font-size:.875rem;
}

/* ═══════════════════════════════════════════════
   MODULE SCORES LIST — per-module score rows
═══════════════════════════════════════════════ */
.ssas-module-scores-list { display:flex; flex-direction:column; gap:1rem; padding:.25rem 0; }

.ssas-mod-score-block {
    background:#fff; border-radius:16px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
    overflow:hidden;
}
.ssas-mod-score-header {
    padding:.8rem 1.1rem;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    display:flex; align-items:center; justify-content:space-between;
}
.ssas-mod-score-name {
    font-weight:700; font-size:.9rem; color:#ffcb02; letter-spacing:-.01em;
}
.ssas-mod-score-row-wrap {
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:0;
}
.ssas-score-pill {
    display:flex; flex-direction:column; align-items:center;
    gap:.4rem; padding:.85rem .6rem;
    border-right:1px solid #f1f5f9;
    transition:background .1s;
}
.ssas-score-pill:last-child { border-right:none; }
.ssas-score-pill:hover { background:#fafafa; }
.ssas-score-pill.empty { opacity:.45; }
.ssas-score-pill-icon  { font-size:1.2rem; }
.ssas-score-pill-info  { display:flex; flex-direction:column; align-items:center; gap:.1rem; }
.ssas-score-pill-label { font-size:.7rem; font-weight:700; color:#374151; text-transform:uppercase; letter-spacing:.05em; }
.ssas-score-pill-date  { font-size:.65rem; color:#9ca3af; }
.ssas-score-pill-right { display:flex; flex-direction:column; align-items:center; gap:.15rem; }
.ssas-mini-ring {
    width:42px; height:42px;
    transform:rotate(-90deg);
}
.ssas-mini-ring .ssas-ring-bg   { fill:none; stroke:#e5e7eb; stroke-width:3.5; }
.ssas-mini-ring .ssas-ring-fill { fill:none; stroke-width:3.5; stroke-linecap:round; }
.ssas-score-pill-pct  { font-size:.8rem; font-weight:800; line-height:1; }
.ssas-score-pill-nums { font-size:.68rem; color:#6b7280; font-family:'DM Mono',monospace; }
.ssas-score-pill-nums span { color:#d1d5db; margin:0 .1rem; }

@media(max-width:480px){
    .ssas-mod-score-row-wrap { grid-template-columns:1fr; }
    .ssas-score-pill { flex-direction:row; justify-content:space-between; border-right:none; border-bottom:1px solid #f1f5f9; }
    .ssas-score-pill:last-child { border-bottom:none; }
    .ssas-score-pill-info { align-items:flex-start; }
}

/* ═══════════════════════════════════════════════
   SCORES TAB — Clean Section Tables
═══════════════════════════════════════════════ */
.ssas-scores-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: .25rem 0;
}

.ssas-score-summary-card {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(255, 203, 2, .26), transparent 34%),
        linear-gradient(135deg, #1f1600 0%, #4f3a00 42%, #fff8df 42%, #ffffff 100%);
    border: 1px solid rgba(242, 223, 149, .75);
    border-radius: 24px;
    padding: 1.2rem;
    box-shadow: 0 14px 34px rgba(26,18,0,.12);
}
.ssas-score-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}
.ssas-score-summary-copy {
    display: grid;
    gap: .55rem;
    min-width: 0;
}
.ssas-score-summary-eyebrow {
    font-size: .7rem;
    font-weight: 800;
    color: #ffda57;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ssas-score-summary-title {
    font-size: 1.18rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.2;
}
.ssas-score-summary-sub {
    max-width: 58ch;
    color: rgba(255,255,255,.8);
    font-size: .88rem;
    line-height: 1.65;
}
.ssas-score-summary-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.ssas-score-summary-tag {
    display: inline-flex;
    align-items: center;
    padding: .38rem .7rem;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff6d6;
    font-size: .74rem;
    font-weight: 700;
    line-height: 1;
    backdrop-filter: blur(4px);
}
.ssas-score-summary-orb {
    display: grid;
    place-items: center;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    flex-shrink: 0;
    padding: .8rem;
    box-shadow: inset 0 0 0 9px rgba(255,255,255,.18), 0 10px 24px rgba(15,23,42,.14);
}
.ssas-score-summary-orb.pass {
    background: radial-gradient(circle at 30% 30%, #ecfdf5, #86efac 62%, #166534 100%);
}
.ssas-score-summary-orb.avg {
    background: radial-gradient(circle at 30% 30%, #fff7ed, #fdba74 62%, #c2410c 100%);
}
.ssas-score-summary-orb.fail {
    background: radial-gradient(circle at 30% 30%, #fef2f2, #fca5a5 62%, #b91c1c 100%);
}
.ssas-score-summary-orb-value {
    font-size: 1.45rem;
    font-weight: 900;
    color: #0f172a;
    line-height: 1;
}
.ssas-score-summary-orb-label {
    margin-top: .2rem;
    font-size: .72rem;
    font-weight: 700;
    color: rgba(15,23,42,.72);
    text-transform: uppercase;
    letter-spacing: .08em;
    line-height: 1.2;
}
.ssas-score-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-top: 1.05rem;
}
.ssas-score-summary-stat {
    display: grid;
    gap: .35rem;
    padding: .95rem 1rem;
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(236, 230, 204, .95);
    box-shadow: 0 8px 20px rgba(15,23,42,.06);
}
.ssas-score-summary-label {
    font-size: .72rem;
    font-weight: 700;
    color: #7c8798;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.ssas-score-summary-value {
    font-size: 1.06rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.3;
}

.ssas-score-section {
    background: #fff;
    border-radius: 16px;
    border: 1.5px solid #e5e7eb;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
    overflow: hidden;
}

.ssas-score-section-head {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .85rem 1.25rem;
    background: linear-gradient(135deg, #1a1200, #3d2e00);
}
.ssas-score-section-icon  { font-size: 1.1rem; }
.ssas-score-section-title { font-weight: 700; font-size: .95rem; color: #ffcb02; flex: 1; }
.ssas-score-section-count {
    background: rgba(255,203,2,.2); color: #ffcb02;
    font-size: .72rem; font-weight: 700;
    padding: .15em .6em; border-radius: 99px;
    letter-spacing: .04em;
}

.ssas-score-table-wrap { overflow-x: auto; }

.ssas-score-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .855rem;
}
.ssas-score-table thead tr {
    background: #f9fafb;
    border-bottom: 1.5px solid #e5e7eb;
}
.ssas-score-table thead th {
    padding: .65rem 1.1rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6b7280;
    text-align: left;
}
.ssas-score-table tbody tr {
    border-bottom: 1px solid #f1f5f9;
    transition: background .1s;
}
.ssas-score-table tbody tr:last-child { border-bottom: none; }
.ssas-score-table tbody tr:hover { background: #fafafa; }
.ssas-score-table tbody td { padding: .75rem 1.1rem; vertical-align: middle; }

.ssas-st-module-cell {
    min-width: 240px;
}
.ssas-st-module {
    font-weight: 600;
    color: #111827;
    max-width: none;
    line-height: 1.4;
}
.ssas-st-date { color: #6b7280; white-space: nowrap; font-size: .8rem; }
.ssas-st-score { white-space: nowrap; }
.ssas-st-num   { font-size: 1rem; font-weight: 800; color: #111827; }
.ssas-st-sep   { color: #d1d5db; margin: 0 .2rem; font-size: .8rem; }
.ssas-st-max   { color: #9ca3af; font-size: .82rem; }
.ssas-score-note {
    display: grid;
    gap: .25rem;
    margin-top: .55rem;
    padding: .55rem .65rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.ssas-score-note-label {
    font-size: .66rem;
    font-weight: 800;
    color: #8b6a05;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ssas-score-note-text {
    font-size: .78rem;
    color: #475569;
    line-height: 1.55;
    word-break: break-word;
}

.ssas-st-result-wrap {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 110px;
}
.ssas-st-bar-track {
    flex: 1;
    height: 7px;
    background: #f1f5f9;
    border-radius: 99px;
    overflow: hidden;
}
.ssas-st-bar-fill {
    height: 100%;
    border-radius: 99px;
    transition: width .6s ease;
}
.ssas-st-bar-fill.pass { background: #16a34a; }
.ssas-st-bar-fill.avg  { background: #d97706; }
.ssas-st-bar-fill.fail { background: #dc2626; }

.ssas-st-pct {
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
    min-width: 38px;
    text-align: right;
}
.ssas-st-pct.pass { color: #16a34a; }
.ssas-st-pct.avg  { color: #d97706; }
.ssas-st-pct.fail { color: #dc2626; }

@media (max-width: 820px) {
    .ssas-score-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .ssas-score-summary-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .ssas-score-summary-title {
        font-size: 1.02rem;
    }
    .ssas-score-summary-sub {
        font-size: .84rem;
    }
    .ssas-score-summary-orb {
        width: 100px;
        height: 100px;
    }
    .ssas-score-summary-orb-value {
        font-size: 1.25rem;
    }
    .ssas-score-summary-grid {
        grid-template-columns: 1fr;
    }
    .ssas-score-summary-card {
        padding: 1rem;
    }
    .ssas-st-module-cell {
        min-width: 200px;
    }
    .ssas-score-note {
        padding: .5rem .58rem;
    }
    .ssas-score-note-text {
        font-size: .75rem;
    }
}

/* ═══════════════════════════════════════════════
   MODULES TAB — Student Portal
═══════════════════════════════════════════════ */
.ssas-modules-portal-wrap { display:flex; flex-direction:column; gap:1.25rem; padding:.25rem 0; }

.ssas-portal-mod-section {
    background:#fff; border-radius:16px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
    overflow:hidden;
}
.ssas-portal-mod-head {
    display:flex; align-items:center; gap:.65rem;
    padding:.75rem 1.1rem;
    font-weight:700; font-size:.78rem;
    text-transform:uppercase; letter-spacing:.06em;
}
.ssas-portal-mod-head.ongoing   { background:#fffbeb; color:#92600a; border-bottom:1.5px solid #fde68a; }
.ssas-portal-mod-head.not-completed { background:#fef2f2; color:#b91c1c; border-bottom:1.5px solid #fecaca; }
.ssas-portal-mod-head.completed { background:#f0fdf4; color:#166534; border-bottom:1.5px solid #bbf7d0; }
.ssas-portal-mod-dot {
    width:8px; height:8px; border-radius:50%; flex-shrink:0;
}
.ssas-portal-mod-head.ongoing  .ssas-portal-mod-dot { background:#ffcb02; box-shadow:0 0 0 3px rgba(255,203,2,.25); }
.ssas-portal-mod-head.not-completed .ssas-portal-mod-dot { background:#ef4444; box-shadow:0 0 0 3px rgba(239,68,68,.18); }
.ssas-portal-mod-head.completed .ssas-portal-mod-dot { background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.2); }
.ssas-portal-mod-count {
    margin-left:auto; background:rgba(0,0,0,.07);
    font-size:.7rem; padding:.15em .55em; border-radius:99px;
}

.ssas-portal-mod-item {
    display:flex; align-items:center; justify-content:space-between;
    padding:.8rem 1.1rem; border-bottom:1px solid #f1f5f9;
    transition:background .1s;
}
.ssas-portal-mod-item:last-child { border-bottom:none; }
.ssas-portal-mod-item:hover { background:#fafafa; }
.ssas-portal-mod-item.ongoing   { border-left:3px solid #ffcb02; }
.ssas-portal-mod-item.not-completed { border-left:3px solid #ef4444; }
.ssas-portal-mod-item.completed { border-left:3px solid #16a34a; }

.ssas-portal-mod-left { display:flex; align-items:flex-start; gap:.75rem; }
.ssas-portal-mod-icon { font-size:1.1rem; flex-shrink:0; margin-top:.1rem; }
.ssas-portal-mod-name  { font-weight:600; font-size:.9rem; color:#111827; }
.ssas-portal-mod-topic { font-size:.775rem; color:#6b7280; margin-top:.2rem; }

.ssas-portal-mod-badge {
    font-size:.72rem; font-weight:700; padding:.28em .8em;
    border-radius:99px; white-space:nowrap; flex-shrink:0;
}
.ssas-portal-mod-badge.ongoing   { background:#fffbeb; color:#92600a; border:1px solid #fcd34d; }
.ssas-portal-mod-badge.not-completed { background:#fef2f2; color:#b91c1c; border:1px solid #fca5a5; }
.ssas-portal-mod-badge.completed { background:#dcfce7; color:#166534; border:1px solid #86efac; }

/* ═══════════════════════════════════════════════
   PROJECTS TAB — Student Portal
═══════════════════════════════════════════════ */
.ssas-project-submit-card {
    background:#fff; border-radius:16px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    overflow:hidden; margin-bottom:1.25rem;
}
.ssas-project-submit-head {
    padding:.85rem 1.25rem;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    font-weight:700; font-size:.95rem; color:#ffcb02;
}
.ssas-project-form {
    display:grid; grid-template-columns:1fr 1fr;
    gap:.85rem; padding:1.1rem 1.25rem;
}
.ssas-pf-field { display:flex; flex-direction:column; gap:.3rem; }
.ssas-pf-field.full { grid-column:1/-1; }
.ssas-pf-label { font-size:.78rem; font-weight:700; color:#374151; }
.ssas-pf-req   { color:#dc2626; }
.ssas-pf-opt   { font-weight:400; color:#9ca3af; font-size:.72rem; margin-left:.3rem; }
.ssas-pf-input {
    padding:.6rem .85rem; border:1.5px solid #e5e7eb;
    border-radius:9px; font-size:.875rem; font-family:'DM Sans',sans-serif;
    outline:none; transition:border-color .15s;
    background:#fff; color:#111827;
}
.ssas-pf-input:focus { border-color:#ffcb02; }

.ssas-pf-file-wrap { display:flex; align-items:center; gap:.75rem; }
.ssas-pf-file-btn {
    padding:.5rem 1rem; background:#1a1200; color:#ffcb02;
    border-radius:9px; font-size:.8rem; font-weight:700;
    cursor:pointer; white-space:nowrap; transition:opacity .15s;
    font-family:'DM Sans',sans-serif;
}
.ssas-pf-file-btn:hover { opacity:.85; }
.ssas-pf-file-name { font-size:.8rem; color:#6b7280; }

/* Submissions list */
.ssas-project-list { display:flex; flex-direction:column; gap:.85rem; }
.ssas-project-list-head {
    font-weight:700; font-size:.85rem; color:#374151;
    padding:.5rem 0 .25rem; letter-spacing:-.01em;
}
.ssas-project-item {
    background:#fff; border-radius:14px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 1px 6px rgba(0,0,0,.04);
    padding:1rem 1.1rem;
    display:flex; flex-direction:column; gap:.5rem;
}
.ssas-project-item-top { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.ssas-project-item-name { font-weight:700; font-size:.9rem; color:#111827; }
.ssas-project-status-badge {
    font-size:.7rem; font-weight:700; padding:.2em .65em;
    border-radius:99px; white-space:nowrap; flex-shrink:0;
}
.ssas-project-status-badge.reviewed { background:#dcfce7; color:#166534; border:1px solid #86efac; }
.ssas-project-status-badge.pending  { background:#fffbeb; color:#92600a; border:1px solid #fcd34d; }

.ssas-project-item-meta { font-size:.78rem; color:#6b7280; }
.ssas-project-link { color:#ffcb02; text-decoration:none; font-weight:600; }
.ssas-project-link:hover { text-decoration:underline; }

.ssas-project-score-row { display:flex; flex-direction:column; gap:.4rem; margin-top:.25rem; }
.ssas-project-score-bar-wrap { height:7px; background:#f1f5f9; border-radius:99px; overflow:hidden; }
.ssas-project-score-bar { height:100%; border-radius:99px; }
.ssas-project-score-bar.pass { background:#16a34a; }
.ssas-project-score-bar.avg  { background:#d97706; }
.ssas-project-score-bar.fail { background:#dc2626; }
.ssas-project-score-txt { font-size:.8rem; font-weight:700; }
.ssas-project-score-txt.pass { color:#16a34a; }
.ssas-project-score-txt.avg  { color:#d97706; }
.ssas-project-score-txt.fail { color:#dc2626; }
.ssas-project-feedback { font-size:.78rem; color:#6b7280; font-style:italic; background:#f9fafb; padding:.4rem .7rem; border-radius:7px; border-left:3px solid #e5e7eb; }

@media(max-width:520px){
    .ssas-project-form { grid-template-columns:1fr; }
    .ssas-pf-field.full { grid-column:1; }
}

/* ═══════════════════════════════════════════════
   STUDENT STATUS SHORTCODE  [ssas_student_status]
═══════════════════════════════════════════════ */
.sss-root { font-family:'DM Sans',sans-serif; max-width:900px; margin:0 auto; padding:1.5rem 1rem; color:#1a1200; }

/* Search box */
.sss-search-wrap { background:linear-gradient(135deg,#1a1200 0%,#3d2e00 100%); border-radius:24px; padding:2.5rem 2rem; text-align:center; margin-bottom:2rem; box-shadow:0 8px 40px rgba(26,18,0,.18); }
.sss-search-brand { margin-bottom:1.5rem; }
.sss-search-icon  { font-size:2.5rem; margin-bottom:.5rem; }
.sss-search-title { font-size:1.6rem; font-weight:900; color:#ffcb02; margin:0 0 .35rem; letter-spacing:-.03em; }
.sss-search-sub   { font-size:.9rem; color:rgba(255,203,2,.65); margin:0; }
.sss-search-form  { max-width:520px; margin:0 auto; }
.sss-search-field-wrap { display:flex; align-items:center; background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.2); }
.sss-search-field-icon { padding:0 .9rem; font-size:1.1rem; color:#9ca3af; flex-shrink:0; }
.sss-search-input  { flex:1; border:none; outline:none; padding:.85rem .5rem; font-size:1rem; font-family:'DM Sans',sans-serif; color:#1a1200; background:transparent; }
.sss-search-btn    { display:flex; align-items:center; gap:.4rem; padding:.85rem 1.4rem; background:#ffcb02; color:#1a1200; border:none; font-weight:800; font-size:.95rem; font-family:'DM Sans',sans-serif; cursor:pointer; flex-shrink:0; transition:opacity .15s; }
.sss-search-btn:hover { opacity:.88; }
.sss-btn-arrow { font-size:1.1rem; }

/* Not found */
.sss-not-found { text-align:center; padding:3rem 1rem; background:#fef2f2; border-radius:18px; border:1.5px solid #fca5a5; }
.sss-nf-icon  { font-size:3rem; margin-bottom:.75rem; }
.sss-nf-title { font-size:1.2rem; font-weight:800; color:#dc2626; margin-bottom:.4rem; }
.sss-nf-sub   { color:#6b7280; font-size:.9rem; }

/* Profile header card */
.sss-profile-card { display:flex; align-items:center; gap:1.25rem; background:#fff; border-radius:20px; padding:1.5rem 1.75rem; border:1.5px solid #e5e7eb; box-shadow:0 4px 24px rgba(0,0,0,.07); margin-bottom:1.25rem; flex-wrap:wrap; }
.sss-profile-avatar { width:64px; height:64px; border-radius:18px; background:linear-gradient(135deg,#1a1200,#3d2e00); color:#ffcb02; font-size:1.8rem; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sss-profile-info   { flex:1; min-width:0; }
.sss-profile-name   { font-size:1.4rem; font-weight:900; color:#1a1200; letter-spacing:-.03em; margin-bottom:.5rem; }
.sss-profile-chips  { display:flex; flex-wrap:wrap; gap:.4rem; }
.sss-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.25em .75em; border-radius:99px; font-size:.75rem; font-weight:700; border:1.5px solid #e5e7eb; background:#f9fafb; color:#374151; }
.sss-chip.code   { background:#f1f5f9; border-color:#cbd5e1; color:#475569; }
.sss-chip.batch  { background:#fffbeb; border-color:#fcd34d; color:#92600a; }
.sss-chip.mode   { background:#eff6ff; border-color:#93c5fd; color:#1d4ed8; }

/* Attendance ring */
.sss-profile-pct { display:flex; flex-direction:column; align-items:center; gap:.25rem; flex-shrink:0; }
.sss-pct-ring    { width:72px; height:72px; transform:rotate(-90deg); }
.sss-pct-bg      { fill:none; stroke:#f1f5f9; stroke-width:3; }
.sss-pct-fill    { fill:none; stroke-width:3; stroke-linecap:round; transition:stroke-dasharray .6s ease; }
.sss-pct-text    { font-size:1.1rem; font-weight:900; color:#1a1200; margin-top:-4px; }
.sss-pct-label   { font-size:.65rem; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.06em; }

/* Details grid */
.sss-details-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-bottom:1.1rem; }
@media(max-width:640px){ .sss-details-grid { grid-template-columns:1fr; } }

/* Section cards */
.sss-section-card { background:#fff; border-radius:18px; padding:1.3rem 1.5rem; border:1.5px solid #e5e7eb; box-shadow:0 2px 12px rgba(0,0,0,.05); margin-bottom:1.1rem; }
.sss-full { grid-column:1/-1; }
.sss-section-head { font-size:.92rem; font-weight:800; color:#1a1200; padding-bottom:.75rem; margin-bottom:.85rem; border-bottom:2px solid #fffbeb; display:flex; align-items:center; gap:.4rem; }

/* Detail rows */
.sss-detail-rows { display:flex; flex-direction:column; gap:.45rem; }
.sss-detail-row  { display:flex; align-items:flex-start; gap:.6rem; padding:.4rem .5rem; border-radius:9px; transition:background .1s; overflow:hidden; }
.sss-detail-row:hover { background:#fafafa; }
.sss-detail-icon  { width:22px; text-align:center; font-size:.95rem; flex-shrink:0; }
.sss-detail-label { font-size:.78rem; font-weight:700; color:#9ca3af; width:100px; flex-shrink:0; text-transform:uppercase; letter-spacing:.04em; }
.sss-detail-value { font-size:.88rem; font-weight:600; color:#1a1200; flex:1; overflow-wrap:break-word; word-break:break-all; min-width:0; }

/* Attendance KPIs */
.sss-att-kpi-row { display:flex; gap:.65rem; margin-bottom:1rem; flex-wrap:wrap; }
.sss-att-kpi { flex:1; min-width:58px; display:flex; flex-direction:column; align-items:center; padding:.65rem .4rem; border-radius:12px; border:1.5px solid; }
.sss-att-kpi.present { background:#f0fdf4; border-color:#86efac; }
.sss-att-kpi.late    { background:#fffbeb; border-color:#fcd34d; }
.sss-att-kpi.absent  { background:#fef2f2; border-color:#fca5a5; }
.sss-att-kpi.total   { background:#f8fafc; border-color:#cbd5e1; }
.sss-att-kpi-n { font-size:1.5rem; font-weight:900; line-height:1; }
.sss-att-kpi.present .sss-att-kpi-n { color:#16a34a; }
.sss-att-kpi.late    .sss-att-kpi-n { color:#d97706; }
.sss-att-kpi.absent  .sss-att-kpi-n { color:#dc2626; }
.sss-att-kpi.total   .sss-att-kpi-n { color:#475569; }
.sss-att-kpi-l { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#9ca3af; margin-top:.2rem; }

/* Stacked progress bar */
.sss-att-bar-wrap { }
.sss-att-bar { display:flex; height:12px; border-radius:99px; overflow:hidden; background:#f1f5f9; }
.sss-att-seg { height:100%; transition:width .5s ease; }
.sss-att-seg.p { background:#16a34a; }
.sss-att-seg.l { background:#d97706; }
.sss-att-seg.a { background:#e5e7eb; }
.sss-att-bar-legend { display:flex; gap:1rem; margin-top:.5rem; font-size:.72rem; font-weight:700; }
.sss-att-bar-legend .p { color:#16a34a; }
.sss-att-bar-legend .l { color:#d97706; }
.sss-att-bar-legend .a { color:#9ca3af; }

/* Monthly table */
.sss-monthly-table-wrap { overflow-x:auto; }
.sss-monthly-table { width:100%; border-collapse:collapse; font-size:.84rem; }
.sss-monthly-table thead th { background:#f9fafb; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#6b7280; padding:.6rem .85rem; text-align:left; border-bottom:1.5px solid #f1f5f9; }
.sss-monthly-table tbody tr { border-bottom:1px solid #f9fafb; transition:background .1s; }
.sss-monthly-table tbody tr:hover { background:#fffbeb; }
.sss-monthly-table td { padding:.65rem .85rem; }
.sss-month-lbl { font-weight:700; color:#1a1200; white-space:nowrap; }
.sss-tc { text-align:center; font-weight:700; }
.sss-tc.present { color:#16a34a; }
.sss-tc.late    { color:#d97706; }
.sss-tc.absent  { color:#dc2626; }
.sss-rate-badge { display:inline-block; padding:.2em .65em; border-radius:99px; font-size:.72rem; font-weight:800; }
.sss-rate-badge.good { background:#dcfce7; color:#166534; }
.sss-rate-badge.warn { background:#fef9c3; color:#92600a; }
.sss-rate-badge.bad  { background:#fee2e2; color:#991b1b; }
.sss-bar-cell { min-width:100px; }
.sss-mini-bar { display:flex; height:8px; border-radius:99px; overflow:hidden; background:#f1f5f9; }
.sss-mini-bar div { height:100%; }

/* Modules */
.sss-mod-group-label { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; padding:.3rem .5rem; border-radius:6px; margin-bottom:.5rem; margin-top:.75rem; }
.sss-mod-group-label.ongoing   { color:#d97706; background:#fffbeb; }
.sss-mod-group-label.not-completed { color:#b91c1c; background:#fef2f2; }
.sss-mod-group-label.completed { color:#16a34a; background:#f0fdf4; }
.sss-mod-row { display:flex; align-items:center; gap:.75rem; padding:.55rem .75rem; border-radius:10px; margin-bottom:.35rem; border-left:3px solid; }
.sss-mod-row.ongoing   { background:#fffbeb; border-color:#fcd34d; }
.sss-mod-row.not-completed { background:#fef2f2; border-color:#fca5a5; }
.sss-mod-row.completed { background:#f0fdf4; border-color:#86efac; }
.sss-mod-name  { font-weight:700; font-size:.88rem; flex:1; }
.sss-mod-topic { font-size:.78rem; color:#6b7280; }
.sss-mod-badge { font-size:.68rem; font-weight:800; padding:.2em .65em; border-radius:99px; flex-shrink:0; }
.sss-mod-badge.ongoing   { background:#fef9c3; color:#92600a; }
.sss-mod-badge.not-completed { background:#fee2e2; color:#b91c1c; }
.sss-mod-badge.completed { background:#dcfce7; color:#166534; }

/* Scores table */
.sss-scores-table-wrap { overflow-x:auto; }
.sss-scores-table { width:100%; border-collapse:collapse; font-size:.84rem; }
.sss-scores-table thead th { background:#f9fafb; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#6b7280; padding:.6rem .85rem; text-align:left; border-bottom:1.5px solid #f1f5f9; }
.sss-scores-table tbody tr { border-bottom:1px solid #f9fafb; }
.sss-scores-table tbody tr:hover { background:#fffbeb; }
.sss-scores-table td { padding:.65rem .85rem; }
.sss-score-result { display:flex; align-items:center; gap:.6rem; }
.sss-score-bar-track { flex:1; height:8px; background:#f1f5f9; border-radius:99px; overflow:hidden; min-width:60px; }
.sss-score-bar-fill { height:100%; border-radius:99px; }
.sss-score-bar-fill.good { background:#16a34a; }
.sss-score-bar-fill.warn { background:#d97706; }
.sss-score-bar-fill.bad  { background:#dc2626; }

/* Footer */
.sss-footer { text-align:center; margin-top:2rem; padding-top:1.25rem; border-top:1px solid #f1f5f9; font-size:.75rem; color:#d1d5db; font-weight:600; letter-spacing:.04em; }

/* Student Status — Admin Bar & Export Button */
.sss-admin-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem 1.1rem;
    background: linear-gradient(90deg, #1a1200, #3d2e00);
    border-radius: 12px;
    margin-bottom: 1.1rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.sss-admin-label {
    font-size: .75rem;
    font-weight: 800;
    color: rgba(255,203,2,.7);
    text-transform: uppercase;
    letter-spacing: .07em;
}
.sss-export-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem 1.15rem;
    background: #ffcb02;
    color: #1a1200;
    border-radius: 9px;
    font-weight: 800;
    font-size: .82rem;
    text-decoration: none;
    font-family: 'DM Sans', sans-serif;
    border: none;
    cursor: pointer;
    transition: opacity .15s, transform .1s;
    white-space: nowrap;
}
.sss-export-btn:hover {
    opacity: .88;
    transform: translateY(-1px);
    color: #1a1200;
    text-decoration: none;
}

/* ══════════════════════════════
   STUDENT DASHBOARD — CONTACTS
══════════════════════════════ */
.ssas-contacts-section {
    margin-top:2rem;
    padding:1.25rem;
    background:#fff;
    border-radius:18px;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
    width:100%;
    box-sizing:border-box;
    overflow:hidden;
}
.ssas-contacts-heading {
    display:flex;
    align-items:center;
    gap:.5rem;
    font-size:.95rem;
    font-weight:900;
    color:#1a1200;
    margin-bottom:1rem;
}
.ssas-contacts-icon {
    width:30px;height:30px;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    font-size:.85rem;flex-shrink:0;
}
.ssas-contacts-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));
    gap:.65rem;
    width:100%;
}
.ssas-contact-card {
    display:flex;
    align-items:flex-start;
    gap:.65rem;
    padding:.85rem .9rem;
    background:#f9fafb;
    border-radius:12px;
    border:1.5px solid #e5e7eb;
    transition:border-color .15s,background .15s;
    width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:hidden;
}
.ssas-contact-card:hover{background:#fffbeb;border-color:#ffcb02;}
.ssas-contact-avatar {
    width:38px;height:38px;
    border-radius:9px;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    color:#ffcb02;
    font-size:.9rem;font-weight:900;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.ssas-contact-info{flex:1;min-width:0;overflow:hidden;width:0;}
.ssas-contact-name{font-weight:800;font-size:.84rem;color:#1a1200;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.06rem;}
.ssas-contact-desig{font-size:.7rem;color:#6b7280;font-weight:600;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.4rem;}
.ssas-contact-links{display:flex;flex-direction:column;gap:.25rem;}
.ssas-contact-btn{
    display:flex;align-items:center;gap:.3rem;
    padding:.28rem .55rem;
    border-radius:6px;font-size:.72rem;font-weight:700;
    text-decoration:none;
    width:100%;min-width:0;box-sizing:border-box;overflow:hidden;
    transition:opacity .12s;
}
.ssas-contact-btn .cbi{flex-shrink:0;font-size:.78rem;}
.ssas-contact-btn .cbv{
    flex:1;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ssas-contact-btn:hover{opacity:.8;text-decoration:none;}
.ssas-contact-btn.phone{background:#f0fdf4;color:#16a34a;border:1.5px solid #bbf7d0;}
.ssas-contact-btn.email{background:#eff6ff;color:#1d4ed8;border:1.5px solid #bfdbfe;}

/* ══════════════════════════════════
   STUDENT CHAT
══════════════════════════════════ */
/* ═══════════════════════════════════════
   CHAT — Group Chat
═══════════════════════════════════════ */
.ssas-chat-disabled {
    text-align:center; padding:3rem 1rem;
    color:#6b7280; font-size:.9rem; font-weight:600;
    background:#f9fafb; border-radius:16px;
    border:1.5px dashed #e5e7eb;
}
.ssas-chat-app {
    display:flex; height:520px;
    border-radius:16px; overflow:hidden;
    border:1.5px solid #e5e7eb;
    box-shadow:0 2px 14px rgba(0,0,0,.07);
    background:#fff;
}

/* ── People sidebar ── */
.ssas-chat-people {
    width:200px; flex-shrink:0;
    border-right:1.5px solid #f1f5f9;
    display:flex; flex-direction:column;
    background:#fafafa;
}
.ssas-chat-people-head {
    padding:.7rem .8rem;
    border-bottom:1.5px solid #f1f5f9;
    display:flex; flex-direction:column; gap:.45rem;
    background:#fff; flex-shrink:0;
}
.ssas-chat-search {
    width:100%; padding:.38rem .6rem;
    border:1.5px solid #e5e7eb; border-radius:8px;
    font-size:.75rem; font-family:inherit;
    outline:none; box-sizing:border-box; background:#fff;
}
.ssas-chat-search:focus { border-color:#ffcb02; }
.ssas-chat-people-list { flex:1; overflow-y:auto; }
.ssas-chat-person {
    display:flex; align-items:center; gap:.55rem;
    padding:.55rem .75rem; cursor:default;
    border-bottom:1px solid #f5f5f5;
    transition:background .1s; position:relative;
}
.ssas-chat-person:hover { background:#fffbeb; }

/* Avatar in sidebar */
.ssas-cp-av {
    width:32px; height:32px; border-radius:9px; flex-shrink:0;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    color:#ffcb02; font-size:.8rem; font-weight:900;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; position:relative;
}
.ssas-cp-av img { width:100%; height:100%; object-fit:cover; }
.ssas-online-dot {
    position:absolute; bottom:-2px; right:-2px;
    width:9px; height:9px; border-radius:50%;
    background:#22c55e; border:1.5px solid #fafafa;
    display:none;
}
.ssas-cp-av.online .ssas-online-dot { display:block; }
.ssas-cp-info { min-width:0; flex:1; }
.ssas-cp-name {
    font-size:.75rem; font-weight:700; color:#1a1200;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ssas-cp-code { font-size:.64rem; color:#9ca3af; }
.ssas-chat-loading { padding:.85rem; text-align:center; font-size:.75rem; color:#9ca3af; }

/* ── Conversation panel ── */
.ssas-chat-convo {
    flex:1; display:flex; flex-direction:column;
    min-width:0; background:#fff;
}
.ssas-chat-convo-head {
    display:flex; align-items:center; gap:.65rem;
    padding:.65rem .9rem;
    border-bottom:1.5px solid #f1f5f9;
    background:#fff; flex-shrink:0;
}

/* ── Messages area ── */
.ssas-chat-msgs {
    flex:1; overflow-y:auto;
    padding:.75rem .9rem;
    display:flex; flex-direction:column; gap:.55rem;
    background:#f9fafb;
}
.ssas-chat-empty-msg {
    text-align:center; color:#9ca3af;
    font-size:.82rem; padding:2rem 0; margin:auto;
}

/* ── Individual message ── */
.ssas-chat-msg { display:flex; flex-direction:column; max-width:78%; }
.ssas-chat-msg.mine   { align-self:flex-end;   align-items:flex-end; }
.ssas-chat-msg.theirs { align-self:flex-start; align-items:flex-start; }

/* Sender row (avatar + name) for others */
.ssas-chat-sender {
    display:flex; align-items:center; gap:.4rem;
    margin-bottom:.2rem;
}
.ssas-chat-sender-av {
    width:22px; height:22px; border-radius:6px; flex-shrink:0;
    background:linear-gradient(135deg,#1a1200,#3d2e00);
    color:#ffcb02; font-size:.6rem; font-weight:900;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
}
.ssas-chat-sender-av img { width:100%; height:100%; object-fit:cover; }
.ssas-chat-sender-name { font-size:.7rem; font-weight:700; color:#6b7280; }

/* Bubble */
.ssas-chat-bubble {
    padding:.5rem .8rem;
    border-radius:14px;
    font-size:.84rem; line-height:1.5;
    word-break:break-word; white-space:pre-wrap;
}
.ssas-chat-bubble a { color:inherit; text-decoration:underline; }
.ssas-chat-msg.mine   .ssas-chat-bubble {
    background:#1a1200; color:#ffcb02;
    border-bottom-right-radius:4px;
}
.ssas-chat-msg.theirs .ssas-chat-bubble {
    background:#fff; color:#1a1200;
    border:1.5px solid #e5e7eb;
    border-bottom-left-radius:4px;
}
.ssas-chat-time {
    font-size:.63rem; color:#9ca3af; margin-top:.18rem;
    padding:0 .2rem;
}

/* ── Input row ── */
.ssas-chat-input-row {
    display:flex; align-items:flex-end; gap:.5rem;
    padding:.6rem .8rem;
    border-top:1.5px solid #f1f5f9;
    background:#fff; flex-shrink:0;
}
.ssas-chat-textarea {
    flex:1; border:1.5px solid #e5e7eb; border-radius:10px;
    padding:.5rem .75rem; font-size:.85rem;
    font-family:inherit; resize:none; outline:none;
    min-height:36px; max-height:100px;
    transition:border-color .15s; box-sizing:border-box;
    line-height:1.45;
}
.ssas-chat-textarea:focus { border-color:#ffcb02; }
.ssas-chat-send-btn {
    width:36px; height:36px; flex-shrink:0;
    background:#1a1200; color:#ffcb02;
    border:none; border-radius:10px; cursor:pointer;
    font-size:.95rem; display:flex; align-items:center; justify-content:center;
    transition:opacity .12s;
}
.ssas-chat-send-btn:hover { opacity:.82; }

/* ── Date divider ── */
.ssas-chat-date-divider {
    text-align:center; font-size:.68rem; color:#9ca3af;
    margin:.35rem 0; position:relative;
}
.ssas-chat-date-divider::before,
.ssas-chat-date-divider::after {
    content:''; position:absolute; top:50%;
    width:30%; height:1px; background:#e5e7eb;
}
.ssas-chat-date-divider::before { left:0; }
.ssas-chat-date-divider::after  { right:0; }

/* ── Typing indicator bubble ── */
#ssas-typing-indicator { min-height:1.1em; transition:opacity .2s; }

@media(max-width:540px){
    .ssas-chat-app  { height:460px; }
    .ssas-chat-people { width:120px; }
    .ssas-cp-name   { font-size:.68rem; }
    .ssas-cp-code   { display:none; }
}

/* ══════════════════════════════════
   CONTACTS TAB
══════════════════════════════════ */
.ssas-contacts-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:1rem;
    padding:.25rem 0;
}
.ssas-contact-card {
    display:flex;
    align-items:flex-start;
    gap:.85rem;
    background:#fff;
    border:1.5px solid #e5e7eb;
    border-radius:14px;
    padding:1rem 1.1rem;
    box-shadow:0 1px 4px rgba(0,0,0,.04);
    transition:box-shadow .15s, border-color .15s;
}
.ssas-contact-card:hover {
    border-color:#ffcb02;
    box-shadow:0 4px 14px rgba(255,203,2,.15);
}
.ssas-contact-avatar {
    width:46px; height:46px; flex-shrink:0;
    border-radius:13px;
    background:linear-gradient(135deg,#1a1200,#3a2e00);
    color:#ffcb02;
    display:flex; align-items:center; justify-content:center;
    font-size:1.25rem; font-weight:700;
}
.ssas-contact-info { flex:1; min-width:0; }
.ssas-contact-name {
    font-size:.95rem; font-weight:700;
    color:#111827; margin-bottom:.15rem;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ssas-contact-desig {
    font-size:.78rem; color:#6b7280;
    margin-bottom:.6rem; font-weight:500;
}
.ssas-contact-actions { display:flex; flex-wrap:wrap; gap:.4rem; }
.ssas-contact-btn {
    display:inline-flex; align-items:center; gap:.3rem;
    padding:.3rem .7rem;
    border-radius:8px;
    font-size:.75rem; font-weight:600;
    text-decoration:none;
    transition:opacity .12s;
}
.ssas-contact-btn:hover { opacity:.8; }
.ssas-contact-btn.call { background:#dcfce7; color:#15803d; }
.ssas-contact-btn.wa   { background:#d1fae5; color:#065f46; }
.ssas-contact-btn.mail { background:#eff6ff; color:#1d4ed8; }

@media(max-width:540px){
    .ssas-contacts-grid { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════
   PLACEMENTS TAB  –  Student Frontend
════════════════════════════════════════════ */
.ssas-placement-section {
    padding: .25rem 0;
}
.ssas-placement-header-row {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-bottom: 1.25rem;
}
.ssas-placement-heading {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}
.ssas-placement-subtitle {
    font-size: .82rem;
    color: #94a3b8;
}
.ssas-placement-jobs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}
.ssas-pjob-card {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    padding: 1.1rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: .7rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    transition: box-shadow .2s, border-color .2s, transform .2s;
}
.ssas-pjob-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.10);
    border-color: #ffcb02;
    transform: translateY(-2px);
}
.ssas-pjob-head {
    display: flex;
    align-items: center;
    gap: .8rem;
}
.ssas-pjob-avatar {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #ffcb02, #f59e0b);
    color: #1e293b;
    font-size: 1.25rem;
    font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(245,158,11,.3);
}
.ssas-pjob-head-text {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.ssas-pjob-company {
    font-size: 1rem;
    font-weight: 700;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssas-pjob-date {
    font-size: .72rem;
    color: #94a3b8;
}
.ssas-pjob-desc {
    font-size: .85rem;
    color: #475569;
    line-height: 1.65;
    margin: 0;
    white-space: pre-line;
}
.ssas-pjob-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.ssas-pjob-pill {
    background: #f1f5f9;
    border-radius: 20px;
    padding: .2rem .6rem;
    font-size: .75rem;
    color: #475569;
    white-space: nowrap;
}
.ssas-pjob-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: linear-gradient(135deg, #ffcb02, #f59e0b);
    color: #1e293b;
    border-radius: 10px;
    padding: .45rem 1rem;
    font-size: .85rem;
    font-weight: 700;
    text-decoration: none;
    width: fit-content;
    margin-top: .1rem;
    box-shadow: 0 2px 8px rgba(245,158,11,.25);
    transition: opacity .15s, transform .15s;
}
.ssas-pjob-apply-btn:hover {
    opacity: .9;
    transform: translateY(-1px);
    color: #1e293b;
}

@media (max-width: 540px) {
    .ssas-placement-jobs-grid {
        grid-template-columns: 1fr;
    }
    .ssas-pjob-card {
        padding: .95rem 1rem;
    }
}

/* ════════════════════════════════════════
   PAYMENTS – STUDENT DASHBOARD
════════════════════════════════════════ */
.ssas-payments-section {
    padding: .5rem 0;
}
.ssas-pay-now-btn:hover {
    opacity: .88;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(79,70,229,.45) !important;
    transition: all .15s ease;
}

/* ════════════════════════════════════════
   REFERRAL PROGRAM — STUDENT DASHBOARD
════════════════════════════════════════ */
.ssas-referral-section { padding:.25rem 0; }

/* Form card */
.ssas-ref-form-card {
    background: linear-gradient(135deg, #fefce8 0%, #fff7ed 100%);
    border: 2px solid #fcd34d;
    border-radius: 20px;
    padding: 1.5rem;
    box-shadow: 0 4px 20px rgba(251,191,36,.15);
}
.ssas-ref-form-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.ssas-ref-form-icon {
    font-size: 2.2rem;
    line-height: 1;
    flex-shrink: 0;
}
.ssas-ref-form-title {
    font-size: 1rem;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: .2rem;
}
.ssas-ref-form-sub {
    font-size: .8rem;
    color: #64748b;
    line-height: 1.5;
}

/* Fields grid */
.ssas-ref-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
    margin-bottom: 1.1rem;
}
@media (max-width: 540px) {
    .ssas-ref-fields { grid-template-columns: 1fr; }
}
.ssas-ref-field-group { display: flex; flex-direction: column; gap: .3rem; }
.ssas-ref-label {
    font-size: .76rem;
    font-weight: 700;
    color: #374151;
    letter-spacing: .02em;
}
.ssas-ref-required { color: #ef4444; }
.ssas-ref-input {
    padding: .55rem .85rem;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    font-size: .88rem;
    background: #fff;
    color: #1e293b;
    transition: border-color .15s;
    outline: none;
    width: 100%;
    box-sizing: border-box;
}
.ssas-ref-input:focus { border-color: #fbbf24; box-shadow: 0 0 0 3px rgba(251,191,36,.15); }

/* Submit button */
.ssas-ref-submit-btn {
    width: 100%;
    padding: .75rem 1rem;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(217,119,6,.35);
    transition: transform .15s, box-shadow .15s;
}
.ssas-ref-submit-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(217,119,6,.45); }
.ssas-ref-submit-btn:disabled { opacity: .65; cursor: not-allowed; transform: none; }

/* Feedback message */
.ssas-ref-msg {
    margin-top: .75rem;
    padding: .6rem 1rem;
    border-radius: 10px;
    font-size: .83rem;
    font-weight: 600;
}
.ssas-ref-msg.success { background: #f0fdf4; color: #166534; border: 1px solid #86efac; }
.ssas-ref-msg.error   { background: #fff1f2; color: #be123c; border: 1px solid #fca5a5; }

/* List header */
.ssas-ref-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .85rem;
}
.ssas-ref-list-title {
    margin: 0;
    font-size: .95rem;
    font-weight: 800;
    color: #1e293b;
}

/* Individual referral card */
.ssas-ref-item {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    padding: 1rem 1.15rem;
    margin-bottom: .75rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    transition: box-shadow .15s;
}
.ssas-ref-item:hover { box-shadow: 0 3px 12px rgba(0,0,0,.08); }
.ssas-ref-item-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .6rem;
}
.ssas-ref-item-name {
    font-size: .95rem;
    font-weight: 800;
    color: #1e293b;
}
.ssas-ref-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    font-size: .78rem;
    color: #64748b;
    margin-bottom: .55rem;
}
.ssas-ref-item-meta span { display: flex; align-items: center; gap: .3rem; }
.ssas-ref-item-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
}
.ssas-ref-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .75rem;
    border-radius: 99px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: capitalize;
}
.ssas-ref-status-badge.pending   { background:#fef9c3; color:#92400e; }
.ssas-ref-status-badge.contacted { background:#dbeafe; color:#1e40af; }
.ssas-ref-status-badge.enrolled  { background:#dcfce7; color:#166534; }
.ssas-ref-status-badge.rejected  { background:#fee2e2; color:#b91c1c; }
.ssas-ref-earned-chip {
    background: linear-gradient(135deg,#f59e0b,#d97706);
    color: #fff;
    padding: .2rem .75rem;
    border-radius: 99px;
    font-size: .75rem;
    font-weight: 700;
}
.ssas-ref-note {
    font-size: .76rem;
    color: #64748b;
    background: #f8fafc;
    border-radius: 8px;
    padding: .35rem .65rem;
    margin-top: .5rem;
    font-style: italic;
}
/* Summary chips */
.ssas-ref-summary-chip {
    padding: .2rem .75rem;
    border-radius: 99px;
    font-size: .72rem;
    font-weight: 700;
}

/* ════════════════════════════════════════
   NOTIFICATIONS — STUDENT DASHBOARD
════════════════════════════════════════ */
.ssas-notices-section { padding:.25rem 0; }

.ssas-notice-card {
    border-radius: 14px;
    padding: 1rem 1.15rem;
    margin-bottom: .75rem;
    border-width: 1.5px;
    border-style: solid;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    animation: ssasSlideIn .25s ease;
}
@keyframes ssasSlideIn {
    from { opacity:0; transform:translateY(6px); }
    to   { opacity:1; transform:translateY(0); }
}
.ssas-notice-card.info    { background:#eff6ff; border-color:#bfdbfe; }
.ssas-notice-card.success { background:#f0fdf4; border-color:#bbf7d0; }
.ssas-notice-card.warning { background:#fffbeb; border-color:#fde68a; }
.ssas-notice-card.urgent  { background:#fff1f2; border-color:#fecdd3; }

.ssas-notice-card-title {
    font-size: .92rem;
    font-weight: 800;
    margin-bottom: .3rem;
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}
.ssas-notice-card.info    .ssas-notice-card-title { color:#1e40af; }
.ssas-notice-card.success .ssas-notice-card-title { color:#166534; }
.ssas-notice-card.warning .ssas-notice-card-title { color:#92400e; }
.ssas-notice-card.urgent  .ssas-notice-card-title { color:#be123c; }

.ssas-notice-card-body {
    font-size: .85rem;
    color: #374151;
    line-height: 1.65;
    white-space: pre-wrap;
    margin-bottom: .4rem;
}
.ssas-notice-card-date { font-size:.72rem; color:#9ca3af; }
.ssas-notice-type-badge {
    font-size:.68rem;
    font-weight:700;
    text-transform:uppercase;
    padding:.1rem .5rem;
    border-radius:99px;
    letter-spacing:.04em;
}

/* ════════════════════════════════════════
   LEAVE REQUESTS — STUDENT DASHBOARD
════════════════════════════════════════ */
.ssas-leave-section { padding:.25rem 0; }

.ssas-leave-form-card {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
    border: 2px solid #86efac;
    border-radius: 20px;
    padding: 1.5rem;
    box-shadow: 0 4px 20px rgba(34,197,94,.12);
}
.ssas-leave-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
    margin-bottom: 1.1rem;
}
@media (max-width: 540px) {
    .ssas-leave-fields { grid-template-columns: 1fr; }
}
.ssas-leave-label {
    font-size: .76rem;
    font-weight: 700;
    color: #374151;
}
.ssas-leave-input {
    padding: .55rem .85rem;
    border: 1.5px solid #d1fae5;
    border-radius: 10px;
    font-size: .88rem;
    background: #fff;
    color: #1e293b;
    width: 100%;
    box-sizing: border-box;
    outline: none;
    transition: border-color .15s;
}
.ssas-leave-input:focus { border-color: #34d399; box-shadow: 0 0 0 3px rgba(52,211,153,.15); }

.ssas-leave-submit-btn {
    width: 100%;
    padding: .75rem 1rem;
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(5,150,105,.3);
    transition: transform .15s, box-shadow .15s;
}
.ssas-leave-submit-btn:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(5,150,105,.4); }
.ssas-leave-submit-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

/* Leave request item card */
.ssas-leave-item {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    padding: 1rem 1.15rem;
    margin-bottom: .7rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.ssas-leave-item.approved { border-left: 4px solid #22c55e; }
.ssas-leave-item.rejected { border-left: 4px solid #ef4444; }
.ssas-leave-item.pending  { border-left: 4px solid #f59e0b; }

.ssas-leave-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .75rem;
    border-radius: 99px;
    font-size: .72rem;
    font-weight: 700;
}
.ssas-leave-status-badge.pending  { background:#fef9c3; color:#92400e; }
.ssas-leave-status-badge.approved { background:#dcfce7; color:#166534; }
.ssas-leave-status-badge.rejected { background:#fee2e2; color:#b91c1c; }

/* ═══════════════════════════════════════════════════
   MOBILE RESPONSIVE OVERHAUL  (≤ 600px)
   Pure CSS only — zero JS/PHP changes
═══════════════════════════════════════════════════ */

@media (max-width: 600px) {

    /* ── Root container ── */
    .ssas-root {
        padding: .75rem .65rem 3rem;
    }

    /* ── Top bar ── */
    .ssas-topbar {
        padding: 1.1rem 1rem;
        border-radius: 14px;
        flex-direction: column;
        align-items: flex-start;
        gap: .75rem;
    }
    .ssas-topbar-left  { gap: .75rem; }
    .ssas-topbar-right { width: 100%; justify-content: space-between; }
    .ssas-avatar-lg    { width: 52px; height: 52px; font-size: 1.35rem; }
    .ssas-student-name { font-size: 1.05rem; }
    .ssas-hello        { font-size: .72rem; }
    .ssas-meta-chips   { gap: .35rem; }
    .ssas-chip-tag     { font-size: .68rem; padding: .18rem .55rem; }

    /* ── Attendance stats tiles ── */
    .ssas-stats-row {
        grid-template-columns: 1fr 1fr;
        gap: .6rem;
    }
    .ssas-stat-tile  { padding: 1rem .85rem; border-radius: 12px; }
    .ssas-tile-val   { font-size: 1.85rem; }
    .ssas-tile-key   { font-size: .7rem; }

    /* ── Mark attendance panel ── */
    .ssas-mark-panel {
        padding: 1.1rem 1rem;
        border-radius: 14px;
    }
    .ssas-mark-panel-head { gap: .6rem; }
    .ssas-mark-title  { font-size: 1rem; }
    .ssas-mark-btn    {
        width: 100%;
        min-width: 0;
        padding: .85rem 1rem;
        font-size: .95rem;
    }

    /* ── Month header / dropdown ── */
    .ssas-month-header  { flex-direction: column; align-items: flex-start; gap: .65rem; }
    .ssas-month-form    { width: 100%; }
    .ssas-month-form select { width: 100%; font-size: .85rem; }
    .ssas-pdf-btn       { width: 100%; text-align: center; justify-content: center; }

    /* ── Attendance history table ── */
    .ssas-history-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .ssas-hist-table th,
    .ssas-hist-table td  { padding: .55rem .75rem; font-size: .8rem; }

    /* ── Score cards (already handled at 480px, reinforce) ── */
    .ssas-mod-score-row-wrap { grid-template-columns: 1fr; }
    .ssas-score-pill {
        flex-direction: row;
        justify-content: space-between;
        border-right: none;
        border-bottom: 1px solid #f1f5f9;
        padding: .75rem .85rem;
    }
    .ssas-score-pill:last-child { border-bottom: none; }
    .ssas-score-pill-info       { align-items: flex-start; }

    /* ── Score table (inside sub-tab) ── */
    .ssas-score-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* ── Modules section ── */
    .ssas-modules-section { border-radius: 12px; }

    /* ── Project submit form ── */
    .ssas-project-form { grid-template-columns: 1fr; }
    .ssas-project-submit-head { font-size: .88rem; padding: .75rem 1rem; }

    /* ── Project cards ── */
    .ssas-project-card  { border-radius: 12px; }
    .ssas-project-score-row { flex-direction: column; gap: .5rem; }

    /* ── Chat ── */
    .ssas-chat-app      { height: 420px; flex-direction: column; }
    .ssas-chat-people   {
        width: 100%;
        height: 52px;
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        border-right: none;
        border-bottom: 1.5px solid #f1f5f9;
        -webkit-overflow-scrolling: touch;
    }
    .ssas-chat-people-head { display: none; }
    .ssas-chat-search      { display: none; }
    .ssas-chat-people-list {
        display: flex;
        flex-direction: row;
        overflow-y: visible;
        overflow-x: auto;
        padding: .4rem .5rem;
        gap: .35rem;
    }
    .ssas-chat-person {
        flex-direction: column;
        align-items: center;
        border-bottom: none;
        border-right: 1px solid #f1f5f9;
        padding: .35rem .55rem;
        flex-shrink: 0;
        min-width: 58px;
        border-radius: 10px;
    }
    .ssas-cp-name { font-size: .62rem; text-align: center; white-space: nowrap; }
    .ssas-cp-code { display: none; }
    .ssas-cp-avatar-wrap { width: 30px; height: 30px; font-size: .75rem; border-radius: 8px; }
    .ssas-chat-convo    { flex: 1; min-height: 0; }
    .ssas-chat-msgs     { padding: .6rem .75rem; }
    .ssas-chat-msg      { max-width: 88%; }
    .ssas-chat-bubble   { font-size: .82rem; padding: .45rem .7rem; }
    .ssas-chat-textarea { font-size: .85rem; }

    /* ── Placement jobs ── */
    .ssas-placement-jobs-grid { grid-template-columns: 1fr; }
    .ssas-pjob-card { padding: .9rem .95rem; border-radius: 12px; }
    .ssas-pjob-company { font-size: .92rem; }
    .ssas-pjob-apply-btn { width: 100%; justify-content: center; }

    /* ── Payments ── */
    .ssas-payments-section table { font-size: .78rem; }
    .ssas-payments-section [style*="display:flex"] { flex-wrap: wrap; }

    /* ── Referral form ── */
    .ssas-ref-form-card   { padding: 1.1rem; border-radius: 14px; }
    .ssas-ref-form-header { gap: .65rem; }
    .ssas-ref-form-icon   { font-size: 1.75rem; }
    .ssas-ref-form-title  { font-size: .92rem; }
    .ssas-ref-fields      { grid-template-columns: 1fr; gap: .7rem; }
    .ssas-ref-submit-btn  { font-size: .88rem; padding: .7rem 1rem; }
    .ssas-ref-item        { border-radius: 12px; padding: .85rem 1rem; }
    .ssas-ref-item-top    { gap: .35rem; }
    .ssas-ref-item-meta   { gap: .3rem .75rem; font-size: .74rem; }

    /* ── Leave form ── */
    .ssas-leave-form-card { padding: 1.1rem; border-radius: 14px; }
    .ssas-leave-fields    { grid-template-columns: 1fr; gap: .7rem; }
    .ssas-leave-submit-btn { font-size: .88rem; padding: .7rem 1rem; }
    .ssas-leave-item      { border-radius: 12px; padding: .85rem 1rem; }

    /* ── Notices ── */
    .ssas-notice-card { padding: .85rem 1rem; border-radius: 12px; }

    /* ── Contacts grid ── */
    .ssas-contacts-grid { grid-template-columns: 1fr; }

    /* ── Status banner ── */
    .ssas-status-banner {
        padding: 1.1rem 1rem;
        border-radius: 12px;
        gap: .85rem;
    }
    .ssas-status-icon { font-size: 1.9rem; }
    .ssas-call-btn    { width: 100%; justify-content: center; padding: .7rem 1rem; }

    /* ── Overlay / success card ── */
    .ssas-overlay-card { padding: 2rem 1.25rem; margin: 1rem; border-radius: 18px; }

    /* ── Login card ── */
    .ssas-login-card  { padding: 1.75rem 1.25rem; border-radius: 18px; }
    .ssas-brand-title { font-size: 1.3rem; }

    /* ── Generic helper: tables inside panels get horizontal scroll ── */
    .ssas-tab-panel table {
        min-width: 0;
    }
    .ssas-tab-panel .ssas-table-scroll,
    .ssas-tab-panel .ssas-history-scroll,
    .ssas-tab-panel .ssas-score-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* ── Extra small (≤ 380px) ── */
@media (max-width: 380px) {
    .ssas-root        { padding: .5rem .45rem 3rem; }
    .ssas-topbar      { padding: .9rem .75rem; }
    .ssas-mark-panel  { padding: .9rem .75rem; }
    .ssas-stats-row   { gap: .45rem; }
    .ssas-stat-tile   { padding: .85rem .65rem; }
    .ssas-tile-val    { font-size: 1.6rem; }
    .ssas-tab-btn     { padding: .55rem .75rem; font-size: .76rem; }
    .ssas-ref-form-card,
    .ssas-leave-form-card { padding: .9rem .75rem; }
}

/* =========================================================
   PORTAL UI REFRESH
   Visual-only improvements for login and tab usability
   while preserving the current markup IDs and JS behavior.
========================================================= */
.ssas-root {
    max-width: 1120px;
}
.ssas-login-scene {
    position: relative;
    min-height: min(74vh, 760px);
    overflow: hidden;
    flex-direction: column;
    gap: 1rem;
    border: 1px solid rgba(255, 203, 2, .18);
    background:
        radial-gradient(circle at top left, rgba(255, 203, 2, .22), transparent 30%),
        radial-gradient(circle at bottom right, rgba(26, 18, 0, .08), transparent 26%),
        linear-gradient(135deg, #fffdf5 0%, #f7fafc 100%);
    box-shadow: 0 28px 64px rgba(15, 23, 42, .10);
}
.ssas-login-scene::before,
.ssas-login-scene::after {
    content: '';
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}
.ssas-login-scene::before {
    width: 220px;
    height: 220px;
    right: -70px;
    top: -70px;
    background: rgba(255, 203, 2, .12);
}
.ssas-login-scene::after {
    width: 160px;
    height: 160px;
    left: -50px;
    bottom: -50px;
    background: rgba(26, 18, 0, .05);
}
.ssas-login-card {
    position: relative;
    z-index: 1;
    max-width: 460px;
    border: 1px solid rgba(226, 232, 240, .95);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(14px);
    box-shadow: 0 30px 70px rgba(15, 23, 42, .14);
}
/* ── Portal Social Footer (after login) ── */
.ssas-portal-footer {
    margin-top: 1.5rem;
    padding: 1.25rem 1rem 0.5rem;
    border-top: 1px solid var(--border, #e2e8f0);
}
.ssas-portal-footer-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.ssas-portal-footer-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted, #94a3b8);
    flex-shrink: 0;
}
.ssas-portal-socials {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.ssas-portal-social {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.42rem 0.75rem 0.42rem 0.48rem;
    border-radius: 999px;
    text-decoration: none;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
    box-shadow: 0 4px 14px rgba(0,0,0,0.12);
    white-space: nowrap;
}
.ssas-portal-social:hover {
    transform: translateY(-2px);
    opacity: 0.92;
    box-shadow: 0 8px 22px rgba(0,0,0,0.18);
}
.ssas-psocial-icon {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.ssas-psocial-icon svg {
    width: 16px;
    height: 16px;
    display: block;
}
.ssas-portal-social .ssas-psocial-label {
    line-height: 1;
}
/* Brand colours */
.ssas-psocial-instagram { background: linear-gradient(135deg, #f97316 0%, #db2777 50%, #7c3aed 100%); }
.ssas-psocial-facebook  { background: #1877f2; }
.ssas-psocial-youtube   { background: #ff0000; }
.ssas-psocial-linkedin  { background: #0a66c2; }

@media (max-width: 480px) {
    .ssas-portal-footer-inner { gap: 0.5rem; }
    .ssas-psocial-label { display: none; }
    .ssas-portal-social { padding: 0.5rem; border-radius: 50%; width: 36px; height: 36px; justify-content: center; }
    .ssas-psocial-icon { width: 18px; height: 18px; }
    .ssas-psocial-icon svg { width: 18px; height: 18px; }
}

.ssas-brand-title {
    letter-spacing: -.04em;
}
.ssas-brand-sub {
    max-width: 28ch;
    margin: .35rem auto 0;
}
.ssas-login-pill-row {
    display: flex;
    gap: .45rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1rem;
}
.ssas-login-pill {
    padding: .38rem .72rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 203, 2, .26);
    background: rgba(255, 203, 2, .12);
    color: #7c5600;
    font-size: .73rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.ssas-login-form {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.ssas-field-wrap {
    border-radius: 16px;
    background: rgba(248, 250, 252, .92);
}
.ssas-field-icon {
    color: #7c8798;
}
.ssas-field-input {
    font-size: 1rem;
}
.ssas-cta-btn {
    min-height: 54px;
    border-radius: 16px;
}
.ssas-login-note {
    margin-top: 1rem;
    text-align: center;
    color: #64748b;
    font-size: .83rem;
    line-height: 1.6;
}
.ssas-tabs-wrap {
    margin-top: 1.4rem;
    padding: .95rem;
    border-radius: 24px;
    border: 1px solid #e6ebf2;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
    box-shadow: 0 20px 50px rgba(15, 23, 42, .06);
}
.ssas-tab-nav {
    padding: .45rem;
    border-radius: 18px;
    background: linear-gradient(180deg, #f8fafc, #f1f5f9);
    border: 1px solid #e2e8f0;
    scroll-snap-type: x proximity;
}
.ssas-tab-btn {
    min-height: 46px;
    border-radius: 14px;
    border: 1px solid transparent;
    padding: .72rem 1rem;
    scroll-snap-align: start;
}
.ssas-tab-btn:hover {
    border-color: #f3bf27;
    background: #fff8dc;
}
.ssas-tab-btn.active {
    background: linear-gradient(135deg, #1a1200, #3d2e00);
    color: #ffcb02;
    border-color: #1a1200;
    box-shadow: 0 12px 20px rgba(26, 18, 0, .16);
}
.ssas-tab-panel {
    padding-top: 1rem;
}

@media (max-width: 820px) {
    .ssas-login-scene {
        padding: 1.5rem .85rem;
        min-height: auto;
    }
    .ssas-login-card {
        max-width: 100%;
    }
    .ssas-tabs-wrap {
        padding: .72rem;
        border-radius: 20px;
    }
    .ssas-tab-nav {
        padding: .35rem;
    }
    .ssas-tab-btn {
        min-height: 42px;
        padding: .64rem .85rem;
        font-size: .8rem;
    }
}

/* =========================================================
   DASHBOARD DETAIL REFINEMENTS
========================================================= */
.ssas-mark-panel {
    background:
        radial-gradient(circle at top right, rgba(255, 203, 2, .14), transparent 24%),
        linear-gradient(180deg, #ffffff, #fffdfa);
    border: 1px solid rgba(255, 203, 2, .22);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .06);
}
.ssas-mark-quickstats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 0 0 1rem;
}
.ssas-mark-stat {
    padding: .8rem .9rem;
    border-radius: 16px;
    border: 1px solid #e7edf4;
    background: rgba(248, 250, 252, .92);
}
.ssas-mark-stat span {
    display: block;
    margin-bottom: .28rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #8a94a6;
}
.ssas-mark-stat strong {
    color: #111827;
    font-size: .92rem;
}
.ssas-batch-card {
    background:
        radial-gradient(circle at top right, rgba(255, 203, 2, .15), transparent 28%),
        linear-gradient(180deg, #ffffff, #fffcf4);
    color: #111827;
    border-color: rgba(255, 203, 2, .24);
    box-shadow: 0 20px 50px rgba(15, 23, 42, .07);
}
.ssas-batch-card-icon,
.ssas-batch-card-name,
.ssas-batch-meta-val,
.ssas-batch-progress-label,
.ssas-batch-progress-right {
    color: #111827;
    text-shadow: none;
}
.ssas-batch-card-mode {
    background: #fff7db;
    color: #3f2d00;
}
.ssas-batch-card-status-pill.live {
    background: #dcfce7;
    color: #166534;
}
.ssas-batch-card-status-pill.break {
    background: #ffedd5;
    color: #9a3412;
}
.ssas-batch-card-status-pill.done {
    background: #e2e8f0;
    color: #0f172a;
}
.ssas-batch-card-meta {
    background: rgba(255, 255, 255, .94);
}
.ssas-batch-meta-item {
    border-right-color: rgba(148, 163, 184, .24);
}
.ssas-batch-meta-label {
    opacity: 1;
    color: #64748b;
}
.ssas-batch-progress-bar {
    background: #e5e7eb;
}
.ssas-batch-progress-fill {
    background: linear-gradient(90deg, #f3bf27, #d97706);
}
.ssas-batch-card-header {
    align-items: flex-start;
}
.ssas-batch-highlight-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.ssas-batch-highlight {
    padding: .8rem .9rem;
    border-radius: 16px;
    border: 1px solid #e8edf4;
    background: rgba(255, 255, 255, .86);
}
.ssas-batch-highlight span {
    display: block;
    margin-bottom: .3rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #8a94a6;
}
.ssas-batch-highlight strong {
    color: #111827;
    font-size: .95rem;
}
.ssas-module-batch-overview {
    display: grid;
    gap: .9rem;
    margin: .25rem 0 1.2rem;
}
.ssas-module-batch-intro {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}
.ssas-module-batch-intro span {
    color: #92600a;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssas-module-batch-intro h3 {
    margin: 0;
    color: #0f172a;
    font-size: 1.18rem;
    line-height: 1.2;
}
.ssas-module-batch-intro p {
    margin: 0;
    color: #64748b;
    font-size: .86rem;
    line-height: 1.55;
}
.ssas-batch-card-in-modules {
    margin: 0;
    border: 1px solid rgba(255, 203, 2, .22);
    border-radius: 22px;
}
.ssas-batch-card-in-modules .ssas-batch-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #1a1200;
    color: #ffcb02;
    font-size: .95rem;
    font-weight: 900;
    box-shadow: 0 12px 28px rgba(26,18,0,.16);
}
@media (max-width: 900px) {
    .ssas-mark-quickstats,
    .ssas-batch-highlight-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .ssas-mark-quickstats,
    .ssas-batch-highlight-row {
        grid-template-columns: 1fr;
    }
    .ssas-mark-stat,
    .ssas-batch-highlight {
        border-radius: 14px;
    }
}

/* Certificate verification detail card overrides */
.ssas-verify-card-advanced {
    display:grid;
    gap:1rem;
}
.ssas-verify-meta-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    padding:0 1.5rem 1.5rem;
}
@media (max-width: 900px) {
    .ssas-verify-detail-grid,
    .ssas-verify-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .ssas-verify-hero,
    .ssas-verify-name-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .ssas-verify-status {
        align-self: flex-start;
    }
}
@media (max-width: 640px) {
    .ssas-verify-detail-grid,
    .ssas-verify-meta-grid {
        grid-template-columns: 1fr;
    }
    .ssas-verify-card,
    .ssas-verify-meta-grid,
    .ssas-verify-footer-note {
        padding-left:1rem;
        padding-right:1rem;
    }
    .ssas-verify-hero {
        padding:1rem;
    }
    .ssas-verify-avatar {
        width:64px;
        height:64px;
        border-radius:20px;
        font-size:1.7rem;
    }
}

/* Sequential exam flow */
.ssas-q-nav {
    display: none !important;
}
.ssas-exam-progress-text {
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.ssas-q-time-note {
    display: none;
    margin-bottom: .9rem;
    padding: .65rem .85rem;
    border-radius: 10px;
    background: #fff8dc;
    border: 1px solid #f5d565;
    color: #7c5600;
    font-size: .8rem;
    line-height: 1.55;
    font-weight: 600;
}
.ssas-q-nav-btns {
    justify-content: flex-end;
}
.ssas-mcq-option.locked {
    cursor: not-allowed;
    opacity: .8;
    background: #f8fafc;
    border-color: #dbe3ee;
}
.ssas-mcq-option.locked:hover {
    background: #f8fafc;
    border-color: #dbe3ee;
}
.ssas-q-short-ans[disabled] {
    background: #f8fafc;
    color: #6b7280;
    cursor: not-allowed;
}

/* Live exam dashboard card refresh */
.ssas-exam-panel {
    border-radius: 24px;
    background: linear-gradient(180deg, #fffdf6 0%, #ffffff 170px);
}
.ssas-exam-panel-head-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .95fr);
    gap: 1rem;
    align-items: stretch;
    padding: 1.2rem 1.25rem 1.25rem;
    border-bottom: 1px solid #edf2f7;
}
.ssas-exam-panel-summary {
    display: grid;
    gap: .65rem;
    min-width: 0;
}
.ssas-exam-panel-head {
    padding: 0;
    background: none;
    color: #0f172a;
    font-size: 1.08rem;
    line-height: 1.2;
}
.ssas-exam-panel-sub {
    margin: 0;
    max-width: 58ch;
    color: #475569;
    font-size: .92rem;
    line-height: 1.7;
}
.ssas-exam-panel-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.ssas-exam-panel-rule {
    display: grid;
    gap: .35rem;
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid #f2df95;
    background: linear-gradient(180deg, #fffdf5 0%, #fff5cc 100%);
    box-shadow: 0 10px 24px rgba(26, 18, 0, .06);
}
.ssas-exam-panel-rule-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .28rem .55rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .82);
    color: #8b6a05;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssas-exam-panel-rule strong {
    color: #111827;
    font-size: .92rem;
    line-height: 1.45;
}
.ssas-exam-panel-rule span:last-child {
    color: #5b6472;
    font-size: .8rem;
    line-height: 1.55;
}
.ssas-exam-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.2rem;
    align-items: center;
    padding: 1.15rem 1.25rem 1.2rem;
}
.ssas-exam-card.done {
    opacity: 1;
}
.ssas-exam-card-info {
    display: grid;
    gap: .75rem;
    min-width: 0;
}
.ssas-exam-card-title {
    font-size: 1rem;
    line-height: 1.45;
}
.ssas-exam-card-title .ssas-muted {
    display: inline-block;
    margin-top: .15rem;
    font-size: .82rem;
}
.ssas-exam-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 0;
}
.ssas-exam-card-meta span {
    display: inline-flex;
    align-items: center;
    padding: .42rem .72rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
}
.ssas-exam-card-notes {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.ssas-exam-card-chip {
    display: inline-flex;
    align-items: center;
    padding: .42rem .75rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e7edf4;
    color: #334155;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
}
.ssas-exam-start-btn,
.ssas-exam-done-info {
    justify-self: end;
}
.ssas-exam-card.submitted {
    background: linear-gradient(180deg, #ffffff 0%, #fffef8 100%);
}
.ssas-exam-submitted-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.ssas-exam-submitted-item {
    display: grid;
    gap: .28rem;
    padding: .9rem .95rem;
    border-radius: 16px;
    border: 1px solid #ece6cc;
    background: #fffdf5;
}
.ssas-exam-submitted-label {
    color: #8b6a05;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssas-exam-submitted-value {
    color: #0f172a;
    font-size: .9rem;
    line-height: 1.45;
    word-break: break-word;
}
/* ── Top 3 Scorers Widget ── */
.ssas-exam-top3-wrap {
    margin-top: .85rem;
    padding: .8rem 1rem;
    border-radius: 16px;
    border: 1px solid #e0d9f7;
    background: linear-gradient(135deg, #f5f3ff 0%, #faf8ff 100%);
}
.ssas-exam-top3-label {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6d28d9;
    margin-bottom: .6rem;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.ssas-exam-top3-icon {
    font-size: .85rem;
}
.ssas-exam-top3-list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.ssas-exam-top3-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .45rem .6rem;
    border-radius: 12px;
    background: rgba(255,255,255,.75);
    border: 1px solid rgba(109,40,217,.08);
}
.ssas-exam-top3-item.rank-1 { border-color: rgba(234,179,8,.35); background: rgba(254,252,232,.85); }
.ssas-exam-top3-item.rank-2 { border-color: rgba(148,163,184,.35); background: rgba(248,250,252,.85); }
.ssas-exam-top3-item.rank-3 { border-color: rgba(180,120,60,.25); background: rgba(255,251,245,.85); }
.ssas-exam-top3-avatar {
    position: relative;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
}
.ssas-exam-top3-avatar img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 1.5px solid #e2e8f0;
}
.ssas-exam-top3-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ede9fe;
    color: #5b21b6;
    font-size: .75rem;
    font-weight: 700;
    border: 1.5px solid #ddd6fe;
}
.ssas-exam-top3-medal {
    position: absolute;
    bottom: -3px;
    right: -4px;
    font-size: .72rem;
    line-height: 1;
}
.ssas-exam-top3-info {
    display: flex;
    flex-direction: column;
    gap: .08rem;
    min-width: 0;
}
.ssas-exam-top3-name {
    font-size: .8rem;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssas-exam-top3-score {
    font-size: .72rem;
    color: #6d28d9;
    font-weight: 600;
}
.ssas-exam-top3-score em {
    font-style: normal;
    color: #94a3b8;
    font-weight: 400;
}
/* ── /Top 3 Scorers Widget ── */

.ssas-exam-done-info {
    min-width: 220px;
    padding: .95rem 1rem;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    align-items: flex-start;
    gap: .45rem;
}
.ssas-exam-done-note {
    color: #64748b;
    font-size: .8rem;
    line-height: 1.55;
}
@media (max-width: 980px) {
    .ssas-exam-panel-head-wrap {
        grid-template-columns: 1fr;
    }
    .ssas-exam-panel-rules {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .ssas-exam-panel-head-wrap {
        padding: 1rem;
    }
    .ssas-exam-panel-rules {
        grid-template-columns: 1fr;
    }
    .ssas-exam-card {
        grid-template-columns: 1fr;
        align-items: flex-start;
        padding: 1rem;
    }
    .ssas-exam-submitted-grid {
        grid-template-columns: 1fr;
    }
    .ssas-exam-start-btn,
    .ssas-exam-done-info {
        width: 100%;
        justify-self: stretch;
    }
    .ssas-exam-start-btn {
        text-align: center;
    }
    .ssas-exam-done-info {
        align-items: flex-start;
    }
}
@media (max-width: 520px) {
    .ssas-exam-panel-head {
        font-size: 1rem;
    }
    .ssas-exam-panel-sub {
        font-size: .88rem;
    }
    .ssas-exam-card-title {
        font-size: .95rem;
    }
    .ssas-exam-submitted-item {
        padding: .85rem .9rem;
    }
    .ssas-exam-card-meta span,
    .ssas-exam-card-chip {
        width: 100%;
        justify-content: flex-start;
    }
}

/* =========================================================
   STUDENT LOGIN + PRIORITY CARDS
========================================================= */
.ssas-login-feature-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: 1.1rem 0 1.35rem;
}
.ssas-login-feature-card {
    display: flex;
    flex-direction: column;
    gap: .22rem;
    padding: .85rem .9rem;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    text-align: left;
    box-shadow: 0 12px 24px rgba(15, 23, 42, .06);
}
.ssas-login-feature-card strong {
    color: #0f172a;
    font-size: .9rem;
}
.ssas-login-feature-card span:last-child {
    color: #64748b;
    font-size: .74rem;
    line-height: 1.5;
}
.ssas-login-feature-kicker {
    color: #92400e;
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssas-login-feature-card.is-payment {
    border-color: #c7d2fe;
    background: linear-gradient(180deg, #eef2ff, #ffffff);
}
.ssas-login-feature-card.is-referral {
    border-color: #fde68a;
    background: linear-gradient(180deg, #fffbeb, #ffffff);
}
.ssas-login-feature-card.is-notice {
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #eff6ff, #ffffff);
}

.ssas-student-spotlight {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr) minmax(0, .9fr);
    gap: 1rem;
    margin: 1.4rem 0 1.2rem;
}
.ssas-spotlight-card {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    min-height: 100%;
    padding: 1.25rem 1.2rem;
    border-radius: 22px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}
.ssas-spotlight-card.is-payment {
    background: linear-gradient(135deg, #f8fafc, #ffffff 60%, #eef2ff);
}
.ssas-spotlight-card.is-payment.is-overdue {
    border-color: #fecaca;
    background: linear-gradient(135deg, #fff1f2, #ffffff 55%, #fee2e2);
}
.ssas-spotlight-card.is-payment.is-due-soon {
    border-color: #fde68a;
    background: linear-gradient(135deg, #fffbeb, #ffffff 55%, #fef3c7);
}
.ssas-spotlight-card.is-referral {
    border-color: #fde68a;
    background: linear-gradient(135deg, #fffbeb, #ffffff 55%, #fff7ed);
}
.ssas-spotlight-card.is-notice {
    border-color: #bfdbfe;
    background: linear-gradient(135deg, #eff6ff, #ffffff 55%, #f8fafc);
}
.ssas-spotlight-badge {
    align-self: flex-start;
    padding: .28rem .72rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, .08);
    color: #334155;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.ssas-spotlight-card.is-payment.is-overdue .ssas-spotlight-badge {
    background: #fee2e2;
    color: #b91c1c;
}
.ssas-spotlight-card.is-payment.is-due-soon .ssas-spotlight-badge {
    background: #fef3c7;
    color: #92400e;
}
.ssas-spotlight-title {
    margin: 0;
    color: #0f172a;
    font-size: 1.08rem;
    font-weight: 800;
}
.ssas-spotlight-copy {
    margin: 0;
    color: #0f172a;
    font-size: .93rem;
    font-weight: 700;
    line-height: 1.6;
}
.ssas-spotlight-meta,
.ssas-spotlight-foot {
    margin: 0;
    color: #64748b;
    font-size: .8rem;
    line-height: 1.65;
}
.ssas-spotlight-foot {
    margin-top: auto;
}
.ssas-spotlight-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: .15rem;
}
.ssas-spotlight-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .68rem 1rem;
    border: 0;
    border-radius: 14px;
    cursor: pointer;
    text-decoration: none;
    font-size: .84rem;
    font-weight: 800;
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.ssas-spotlight-btn:hover {
    transform: translateY(-1px);
    opacity: .96;
}
.ssas-spotlight-btn.primary {
    background: linear-gradient(135deg, #1d4ed8, #4338ca);
    color: #fff;
    box-shadow: 0 14px 28px rgba(37, 99, 235, .24);
}
.ssas-spotlight-btn.accent {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #fff;
    box-shadow: 0 14px 28px rgba(217, 119, 6, .22);
}
.ssas-spotlight-btn.dark {
    background: linear-gradient(135deg, #0f172a, #334155);
    color: #fff;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .22);
}

.ssas-tab-btn-highlight:not(.active) {
    border-color: rgba(255, 203, 2, .35);
    background: linear-gradient(180deg, #fffdf2, #fff7d6);
    color: #5b4000;
    box-shadow: inset 0 0 0 1px rgba(255, 203, 2, .12);
}
.ssas-tab-btn-highlight.payments:not(.active) {
    border-color: rgba(79, 70, 229, .2);
    background: linear-gradient(180deg, #eef2ff, #ffffff);
    color: #3730a3;
}
.ssas-tab-btn-highlight.referral:not(.active) {
    border-color: rgba(245, 158, 11, .22);
    background: linear-gradient(180deg, #fffbeb, #ffffff);
    color: #9a3412;
}
.ssas-tab-btn-highlight.notifications:not(.active) {
    border-color: rgba(59, 130, 246, .2);
    background: linear-gradient(180deg, #eff6ff, #ffffff);
    color: #1d4ed8;
}

.ssas-pjob-card.is-applied {
    border-color: #86efac;
    background: linear-gradient(180deg, #ffffff, #f0fdf4);
}
.ssas-pjob-status {
    font-size: .78rem;
    color: #475569;
    line-height: 1.6;
    padding: .7rem .8rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.ssas-pjob-card.is-applied .ssas-pjob-status {
    color: #166534;
    background: #ecfdf5;
    border-color: #a7f3d0;
}
.ssas-pjob-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}
.ssas-pjob-track-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .45rem 1rem;
    border-radius: 10px;
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.ssas-pjob-track-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 20px rgba(79, 70, 229, .18);
}
.ssas-pjob-track-btn.applied,
.ssas-pjob-track-btn:disabled {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
    cursor: default;
    box-shadow: none;
    transform: none;
}
.ssas-pjob-track-btn.loading {
    opacity: .75;
}

@media (max-width: 980px) {
    .ssas-student-spotlight {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ssas-spotlight-card.is-payment {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .ssas-login-feature-strip,
    .ssas-student-spotlight {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .ssas-spotlight-card {
        padding: 1rem;
        border-radius: 18px;
    }
    .ssas-spotlight-btn,
    .ssas-pjob-track-btn,
    .ssas-pjob-apply-btn {
        width: 100%;
    }
}

.ssas-modules-portal-wrap > .ssas-portal-mod-section { display:none; }
.ssas-module-hero { display:none; } /* replaced by sstu-mod-summary */

/* ══════════════════════════════════════════════
   STUDENT MODULE TAB — Clean List Layout
══════════════════════════════════════════════ */

/* Summary bar */
.sstu-mod-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .85rem 1.5rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, #1a1200 0%, #2e1e00 55%, #4a3400 100%);
    border-radius: 18px;
    margin-bottom: 1.1rem;
    box-shadow: 0 8px 28px rgba(26,18,0,.15);
}
.sstu-mod-summary-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 52px;
}
.sstu-mod-summary-stat strong {
    font-size: 1.45rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
    letter-spacing: -.03em;
}
.sstu-mod-summary-stat span {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: rgba(255,247,214,.65);
    margin-top: .25rem;
}
.sstu-mod-summary-focus {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem .45rem;
    padding: .55rem .85rem;
    background: rgba(255,203,2,.12);
    border: 1px solid rgba(255,203,2,.25);
    border-radius: 12px;
    flex: 1;
    min-width: 180px;
}
.sstu-mod-focus-label {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: rgba(255,203,2,.7);
}
.sstu-mod-focus-name {
    font-size: .84rem;
    font-weight: 700;
    color: #fff;
}
.sstu-mod-focus-topic {
    font-size: .78rem;
    color: rgba(255,247,214,.75);
}

/* Vertical list container */
.sstu-mod-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1.5px solid #e5e7eb;
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 18px rgba(15,23,42,.05);
}

/* Section group label */
.sstu-mod-group-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .55rem 1.25rem;
    font-size: .67rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    border-top: 1px solid transparent;
}
.sstu-mod-group-label span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px; height: 20px;
    border-radius: 99px;
    font-size: .68rem;
    font-weight: 900;
    background: currentColor;
}
/* Use pseudo-element for count number inside the circle */
.sstu-mod-group-ongoing { color: #92600a; background: #fffbf0; border-top-color: #fef3c7; }
.sstu-mod-group-pending { color: #b91c1c; background: #fff5f5; border-top-color: #fee2e2; }
.sstu-mod-group-done    { color: #15803d; background: #f0fdf4; border-top-color: #dcfce7; }
.sstu-mod-group-label span { background: rgba(0,0,0,.12); color: #fff; }

/* Individual module item */
.sstu-mod-item {
    border-top: 1px solid #f1f5f9;
    padding: 1rem 1.25rem 1rem 1.5rem;
    border-left: 4px solid transparent;
    transition: background .12s;
    position: relative;
}
.sstu-mod-item:hover { background: #fafbfd; }
.sstu-mod-item-ongoing       { border-left-color: #ffcb02; }
.sstu-mod-item-not-completed { border-left-color: #ef4444; }
.sstu-mod-item-completed     { border-left-color: #16a34a; }

/* Top row: name + badges */
.sstu-mod-item-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: .35rem;
}
.sstu-mod-item-name {
    margin: 0;
    font-size: .95rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.3;
    flex: 1;
    min-width: 0;
}
.sstu-mod-item-completed .sstu-mod-item-name {
    color: #9ca3af;
    text-decoration: line-through;
    text-decoration-color: #d1d5db;
}
.sstu-mod-item-badges {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}
.sstu-mod-status-badge {
    display: inline-block;
    padding: .26em .7em;
    border-radius: 99px;
    font-size: .67rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.sstu-badge-ongoing       { background: #fffbeb; color: #9a6700; border: 1px solid #fcd34d; }
.sstu-badge-not-completed { background: #fff1f2; color: #be123c; border: 1px solid #fda4af; }
.sstu-badge-completed     { background: #ecfdf5; color: #047857; border: 1px solid #86efac; }
.sstu-mod-days-badge {
    display: inline-block;
    padding: .26em .7em;
    border-radius: 99px;
    font-size: .67rem;
    font-weight: 700;
    background: #f8fafc;
    color: #475569;
    border: 1px solid #e2e8f0;
    white-space: nowrap;
}

/* Topic line */
.sstu-mod-item-topic {
    margin: .18rem 0 .5rem;
    font-size: .82rem;
    color: #64748b;
    line-height: 1.45;
}
.sstu-mod-topic-label {
    font-size: .67rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #94a3b8;
    margin-right: .2rem;
}

/* Date chips */
.sstu-mod-item-dates {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .65rem;
}
.sstu-date-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .75rem;
    color: #334155;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: .22rem .6rem;
}
.sstu-date-chip b {
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #94a3b8;
}

/* Timeline rows */
.sstu-mod-timeline {
    display: flex;
    flex-direction: column;
    border-left: 2px solid #e5e7eb;
    margin-left: .2rem;
    padding-left: 0;
    gap: 0;
}
.sstu-mod-tl-row {
    display: grid;
    grid-template-columns: 52px 12px 1fr;
    gap: 0 .65rem;
    align-items: start;
    padding: .45rem .5rem .45rem .7rem;
    border-radius: 0 8px 8px 0;
    transition: background .1s;
}
.sstu-mod-tl-row:hover { background: #f8fafc; }
.sstu-mod-tl-date {
    font-size: .72rem;
    font-weight: 800;
    color: #9a6700;
    white-space: nowrap;
    padding-top: .12rem;
    text-align: right;
}
.sstu-mod-tl-dot {
    width: 8px; height: 8px;
    border-radius: 99px;
    background: #fcd34d;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1.5px #fcd34d;
    margin-top: .25rem;
    flex-shrink: 0;
}
.sstu-mod-tl-copy {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    min-width: 0;
}
.sstu-mod-tl-copy strong {
    font-size: .82rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.35;
    word-break: break-word;
}
.sstu-mod-tl-copy span {
    font-size: .74rem;
    color: #64748b;
    line-height: 1.4;
    word-break: break-word;
}

/* No days placeholder */
.sstu-mod-no-days {
    margin: .3rem 0 0;
    font-size: .78rem;
    color: #94a3b8;
    font-style: italic;
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 860px) {
    .sstu-mod-summary { gap: .65rem 1rem; }
}
@media (max-width: 640px) {
    .sstu-mod-summary-focus { min-width: 100%; }
    .sstu-mod-item { padding: .85rem 1rem .85rem 1.25rem; }
    .sstu-mod-item-top { gap: .5rem; }
    .ssu-mod-tl-row { grid-template-columns: 48px 10px 1fr; }
    .sss-day-grid { grid-template-columns: 1fr; }
    .sss-day-person { flex-direction: column; }
    .sss-day-person-meta { text-align: left; }
}

/* ═══════════════════════════════════════════════════════════════
   STUDENT PORTAL — Module Table (mirrors admin smod-* layout)
   ════════════════════════════════════════════════════════════ */

/* Stats row */
.ssas-modules-portal-wrap .ssas-mod-stats-row {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}
.ssas-modules-portal-wrap .ssas-mod-stat {
    display: flex;
    align-items: center;
    gap: .65rem;
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 12px;
    padding: .65rem 1rem;
    flex: 1 1 120px;
}
.ssas-modules-portal-wrap .ssas-mod-stat-icon {
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .3rem .5rem;
    border-radius: 6px;
    flex-shrink: 0;
}
.ssas-modules-portal-wrap .ongoing-stat .ssas-mod-stat-icon  { background: #fffbeb; color: #92600a; }
.ssas-modules-portal-wrap .notdone-stat .ssas-mod-stat-icon  { background: #fef2f2; color: #b91c1c; }
.ssas-modules-portal-wrap .done-stat .ssas-mod-stat-icon     { background: #f0fdf4; color: #15803d; }
.ssas-modules-portal-wrap .total-stat .ssas-mod-stat-icon    { background: #f0f4ff; color: #3730a3; }
.ssas-modules-portal-wrap .ssas-mod-stat-body strong {
    display: block;
    font-size: 1.2rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.1;
}
.ssas-modules-portal-wrap .ssas-mod-stat-body span {
    font-size: .7rem;
    color: #6b7280;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Table wrapper */
.smod-student-table {
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
}

/* Column header row */
.smod-student-table .smod-table-head {
    display: grid;
    grid-template-columns: 90px 1fr 200px 70px;
    background: #f8fafc;
    border-bottom: 1.5px solid #e5e7eb;
    padding: 0;
}
.smod-student-table .smod-th {
    padding: .6rem .85rem;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #6b7280;
}

/* Each module row */
.smod-student-table .smod-row {
    display: grid;
    grid-template-columns: 90px 1fr 200px 70px;
    border-bottom: 1px solid #f1f5f9;
    border-left: 3px solid transparent;
    transition: background .15s;
    align-items: start;
}
.smod-student-table .smod-row:last-child  { border-bottom: none; }
.smod-student-table .smod-row:hover       { background: #fafbfd; }
.smod-student-table .smod-row-ongoing     { border-left-color: #ffcb02; }
.smod-student-table .smod-row-notdone     { border-left-color: #ef4444; }
.smod-student-table .smod-row-done        { border-left-color: #16a34a; }

/* Day panel spans all columns */
.smod-student-table .smod-row > .smod-days-panel {
    grid-column: 1 / -1;
}

/* Column cells */
.smod-student-table .smod-col-status,
.smod-student-table .smod-col-name,
.smod-student-table .smod-col-dates,
.smod-student-table .smod-col-days {
    padding: .85rem .85rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.smod-student-table .smod-col-status {
    padding-left: .85rem;
    padding-top: .9rem;
    align-items: flex-start;
}

/* Status badge */
.smod-student-table .smod-badge {
    display: inline-flex;
    align-items: center;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    white-space: nowrap;
}
.smod-student-table .smod-badge-ongoing { background: #fffbeb; color: #92600a; border: 1px solid #fde68a; }
.smod-student-table .smod-badge-notdone { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.smod-student-table .smod-badge-done    { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }

/* Module name + topic */
.smod-student-table .smod-name {
    font-weight: 700;
    font-size: .9rem;
    color: #111827;
    line-height: 1.3;
}
.smod-student-table .smod-topic {
    font-size: .78rem;
    color: #6b7280;
    font-style: italic;
}

/* Date chips */
.smod-student-table .smod-col-dates {
    flex-direction: column;
    gap: .3rem;
    padding-top: .9rem;
}
.smod-student-table .smod-date-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .75rem;
    color: #374151;
    background: #f3f4f6;
    border-radius: 6px;
    padding: .2rem .5rem;
    width: fit-content;
}
.smod-student-table .smod-date-label {
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9ca3af;
}

/* Days count */
.smod-student-table .smod-col-days {
    align-items: center;
    text-align: center;
    padding-top: .9rem;
}
.smod-student-table .smod-days-count {
    font-size: 1.2rem;
    font-weight: 800;
    color: #111827;
    line-height: 1;
}
.smod-student-table .smod-days-label {
    font-size: .65rem;
    color: #94a3b8;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Day-wise panel */
.smod-student-table .smod-days-panel {
    grid-column: 1 / -1;
    border-top: 1px dashed #e5e7eb;
    background: #f8fafc;
    padding: .5rem 1rem;
}
.smod-student-table .smod-days-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .75rem;
    font-weight: 600;
    color: #4b5563;
    margin-bottom: 0;
    user-select: none;
}
.smod-student-table .smod-days-toggle:hover .smod-days-toggle-label { color: #4338ca; }
.smod-student-table .smod-days-toggle-label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: color .12s;
}
.smod-student-table .smod-days-toggle-arrow {
    font-size: .6rem;
    color: #a5b4fc;
    transition: transform .2s;
}
.smod-student-table .smod-days-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 .4rem;
    border-radius: 999px;
    font-size: .63rem;
    font-weight: 800;
    background: #e0e7ff;
    color: #3730a3;
    letter-spacing: 0;
}
.smod-student-table .smod-days-badge-empty {
    background: #f1f5f9;
    color: #94a3b8;
}
/* Collapsed: list hidden */
.smod-student-table .smod-days-collapsed .smod-days-list-hidden {
    display: none;
}
/* Expanded: spacing + arrow */
.smod-student-table .smod-days-panel:not(.smod-days-collapsed) .smod-days-panel-head {
    margin-bottom: .4rem;
}
.smod-student-table .smod-days-panel:not(.smod-days-collapsed) .smod-days-toggle-arrow {
    transform: rotate(90deg);
}
.smod-student-table .smod-days-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.smod-student-table .smod-day-entry {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: .5rem;
    align-items: baseline;
    padding: .35rem 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: .8rem;
}
.smod-student-table .smod-day-entry:last-child { border-bottom: none; }
.smod-student-table .smod-day-date {
    font-size: .72rem;
    font-weight: 700;
    color: #6366f1;
    white-space: nowrap;
}
.smod-student-table .smod-day-text strong { color: #111827; font-weight: 600; }
.smod-student-table .smod-day-text em {
    display: block;
    color: #6b7280;
    font-size: .75rem;
    font-style: normal;
    margin-top: .1rem;
}

/* Section label (Ongoing / Pending / Completed) */
.smod-student-table .smod-section-label {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem 1rem;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    border-bottom: 1px solid #f1f5f9;
}
.smod-student-table .smod-sl-ongoing  { background: #fffbeb; color: #92600a; }
.smod-student-table .smod-sl-notdone  { background: #fef2f2; color: #b91c1c; }
.smod-student-table .smod-sl-done     { background: #f0fdf4; color: #15803d; }
.smod-student-table .smod-sl-count {
    background: rgba(0,0,0,.08);
    border-radius: 999px;
    padding: .05rem .45rem;
    font-size: .65rem;
}

/* ── Responsive ── */
@media (max-width: 700px) {
    .smod-student-table .smod-table-head { display: none; }
    .smod-student-table .smod-row {
        grid-template-columns: 1fr 1fr;
    }
    .smod-student-table .smod-col-status { grid-column: 1; grid-row: 1; }
    .smod-student-table .smod-col-days   { grid-column: 2; grid-row: 1; align-items: flex-end; }
    .smod-student-table .smod-col-name   { grid-column: 1 / -1; grid-row: 2; }
    .smod-student-table .smod-col-dates  { grid-column: 1 / -1; grid-row: 3; flex-direction: row; flex-wrap: wrap; }
    .smod-student-table .smod-days-panel { grid-column: 1 / -1; }
}

/* ═══════════════════════════════════════════════════════════════
   BATCH STATUS — Load Day Button (redesigned)
   ════════════════════════════════════════════════════════════ */

.sss-batch-date-form { margin-bottom: .85rem; }

.sss-load-day-row {
    display: flex;
    align-items: flex-end;
    gap: .65rem;
    flex-wrap: wrap;
}

.sss-load-day-field {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    flex: 1;
    min-width: 160px;
}

.sss-load-day-label {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7280;
}

.sss-load-day-input {
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    padding: .6rem .85rem;
    font-size: .9rem;
    font-family: inherit;
    color: #1a1200;
    background: #f9fafb;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    width: 100%;
    box-sizing: border-box;
}
.sss-load-day-input:focus {
    border-color: #ffcb02;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(255,203,2,.18);
}

.sss-load-day-btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .6rem 1.25rem;
    background: linear-gradient(135deg, #ffcb02, #f5b800);
    color: #1a1200;
    font-weight: 800;
    font-size: .88rem;
    font-family: inherit;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(255,203,2,.35);
    transition: transform .15s, box-shadow .15s, opacity .15s;
    flex-shrink: 0;
}
.sss-load-day-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 5px 16px rgba(255,203,2,.45);
}
.sss-load-day-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(255,203,2,.25);
}
.sss-load-day-btn-icon {
    font-size: 1rem;
    line-height: 1;
}

/* ═══════════════════════════════════════════════════════════════
   BATCH STATUS — Day-wise Student Lists (full redesign)
   ════════════════════════════════════════════════════════════ */

.sss-daylist-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .85rem;
}

/* Column card */
.sss-daylist-col {
    border-radius: 14px;
    overflow: hidden;
    border: 1.5px solid #e5e7eb;
    display: flex;
    flex-direction: column;
}
.sss-daylist-col--present { border-color: #86efac; }
.sss-daylist-col--late    { border-color: #fcd34d; }
.sss-daylist-col--absent  { border-color: #fca5a5; }

/* Column header */
.sss-daylist-head {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .65rem .9rem;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.sss-daylist-col--present .sss-daylist-head { background: #f0fdf4; color: #15803d; border-bottom: 1px solid #bbf7d0; }
.sss-daylist-col--late    .sss-daylist-head { background: #fffbeb; color: #92600a; border-bottom: 1px solid #fde68a; }
.sss-daylist-col--absent  .sss-daylist-head { background: #fef2f2; color: #b91c1c; border-bottom: 1px solid #fecaca; }

.sss-daylist-icon  { font-size: 1rem; line-height: 1; flex-shrink: 0; }
.sss-daylist-title { flex: 1; }
.sss-daylist-count {
    font-size: .7rem;
    font-weight: 900;
    padding: .15rem .45rem;
    border-radius: 999px;
    min-width: 20px;
    text-align: center;
}
.sss-daylist-col--present .sss-daylist-count { background: #dcfce7; color: #15803d; }
.sss-daylist-col--late    .sss-daylist-count { background: #fef9c3; color: #92600a; }
.sss-daylist-col--absent  .sss-daylist-count { background: #fee2e2; color: #b91c1c; }

/* Student rows */
.sss-daylist-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    background: #fff;
}

.sss-daylist-row {
    display: grid;
    grid-template-columns: 26px 1fr auto;
    align-items: center;
    gap: .5rem;
    padding: .55rem .9rem;
    border-bottom: 1px solid #f1f5f9;
    transition: background .12s;
}
.sss-daylist-row:last-child { border-bottom: none; }
.sss-daylist-row:hover { background: #fafafa; }

.sss-daylist-num {
    font-size: .68rem;
    font-weight: 800;
    color: #d1d5db;
    text-align: right;
    line-height: 1;
    flex-shrink: 0;
}

.sss-daylist-info {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.sss-daylist-name {
    font-weight: 700;
    font-size: .83rem;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sss-daylist-id {
    font-size: .7rem;
    font-weight: 600;
    color: #9ca3af;
    font-family: monospace;
}

.sss-daylist-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .15rem;
    flex-shrink: 0;
}

.sss-daylist-mode {
    font-size: .62rem;
    font-weight: 700;
    padding: .1rem .35rem;
    border-radius: 5px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sss-daylist-mode--online  { background: #eff6ff; color: #1d4ed8; }
.sss-daylist-mode--offline { background: #f3f4f6; color: #6b7280; }

.sss-daylist-time {
    font-size: .65rem;
    color: #9ca3af;
    font-variant-numeric: tabular-nums;
}

/* Empty state */
.sss-daylist-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: 1.75rem 1rem;
    background: #fff;
    flex: 1;
    color: #9ca3af;
    font-size: .8rem;
    font-weight: 600;
}
.sss-daylist-empty span:first-child { font-size: 1.5rem; }

/* ── Responsive ── */
@media (max-width: 860px) {
    .sss-daylist-grid { grid-template-columns: 1fr 1fr; }
    .sss-daylist-col--absent { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .sss-daylist-grid { grid-template-columns: 1fr; }
    .sss-daylist-col--absent { grid-column: auto; }
    .sss-load-day-row { flex-direction: column; align-items: stretch; }
    .sss-load-day-btn { justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   BATCH STATUS — Admin bar right group + Date pill + Day-off note
   ════════════════════════════════════════════════════════════ */

.sss-admin-bar-right {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.sss-batch-date-pill {
    display: inline-flex;
    align-items: center;
    padding: .3rem .75rem;
    background: rgba(255,203,2,.18);
    border: 1px solid rgba(255,203,2,.35);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    color: #ffcb02;
    letter-spacing: .04em;
    white-space: nowrap;
}

.sss-day-off-note {
    background: #fef9c3;
    border: 1.5px solid #fde047;
    border-radius: 10px;
    padding: .6rem .9rem;
    font-size: .82rem;
    color: #854d0e;
    margin-bottom: .75rem;
    line-height: 1.5;
}
.sss-day-off-note::before { content: "⚠️ "; }

.sss-fee-meta-pill {
    display: inline-flex;
    align-items: center;
    padding: .2rem .6rem;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    color: #475569;
    margin: .2rem .2rem 0 0;
}

/* ── Fees & Instalments ── */

/* 4-column summary KPI grid */
.sss-fee-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .75rem;
    margin-bottom: 1rem;
}
@media (max-width: 700px) {
    .sss-fee-summary-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
    .sss-fee-summary-grid { grid-template-columns: 1fr; }
}

.sss-fee-summary-card {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .85rem 1rem;
    border-radius: 14px;
    border: 1.5px solid #e5e7eb;
    background: #f9fafb;
    transition: box-shadow .15s;
}
.sss-fee-summary-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.07); }

/* Accent colours per card position */
.sss-fee-summary-card:nth-child(1) { background: #eff6ff; border-color: #bfdbfe; }
.sss-fee-summary-card:nth-child(2) { background: #f0fdf4; border-color: #bbf7d0; }
.sss-fee-summary-card:nth-child(3) { background: #f0fdf4; border-color: #86efac; }
.sss-fee-summary-card:nth-child(4) { background: #fff7ed; border-color: #fed7aa; }

.sss-fee-summary-card span {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7280;
}
.sss-fee-summary-card strong {
    font-size: 1.05rem;
    font-weight: 900;
    color: #1a1200;
    line-height: 1.2;
}

/* Pending balance value in warning orange */
.sss-fee-summary-card:nth-child(4) strong { color: #c2410c; }

/* Meta pills row */
.sss-fee-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: 1.1rem;
}

/* Payment plan cards list */
.sss-payment-plan-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sss-payment-card {
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.sss-payment-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .6rem;
    padding: .75rem 1.1rem;
    background: #f8fafc;
    border-bottom: 1.5px solid #f1f5f9;
}
.sss-payment-card-head h4 {
    margin: 0 0 .15rem;
    font-size: .88rem;
    font-weight: 800;
    color: #1a1200;
}
.sss-payment-card-head p {
    margin: 0;
    font-size: .75rem;
    color: #6b7280;
    font-weight: 500;
}
.sss-payment-balance {
    display: inline-flex;
    align-items: center;
    padding: .3rem .75rem;
    background: #fff7ed;
    border: 1.5px solid #fed7aa;
    border-radius: 99px;
    font-size: .78rem;
    font-weight: 800;
    color: #c2410c;
    white-space: nowrap;
}

/* Instalment table */
.sss-payment-table-wrap { overflow-x: auto; }

.sss-payment-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}
.sss-payment-table thead th {
    background: #f9fafb;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7280;
    padding: .55rem .9rem;
    text-align: left;
    border-bottom: 1.5px solid #f1f5f9;
    white-space: nowrap;
}
.sss-payment-table tbody tr {
    border-bottom: 1px solid #f9fafb;
    transition: background .1s;
}
.sss-payment-table tbody tr:last-child { border-bottom: none; }
.sss-payment-table tbody tr:hover { background: #fffbeb; }
.sss-payment-table td {
    padding: .6rem .9rem;
    color: #374151;
    font-weight: 600;
    vertical-align: middle;
}
.sss-payment-table td:first-child {
    font-size: .75rem;
    font-weight: 800;
    color: #9ca3af;
    width: 36px;
}

/* Paid / Pending badges inside table */
.sss-rate-badge.paid    { background: #dcfce7; color: #166534; }
.sss-rate-badge.pending { background: #fff7ed; color: #c2410c; }

/* Empty state */
.sss-payment-empty {
    padding: 1.1rem 1rem;
    font-size: .82rem;
    color: #9ca3af;
    font-style: italic;
    text-align: center;
}

/* Export PDF button — enhanced */
.sss-export-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem 1rem;
    background: #ffcb02;
    color: #1a1200 !important;
    border-radius: 9px;
    font-weight: 800;
    font-size: .8rem;
    text-decoration: none !important;
    font-family: inherit;
    border: none;
    cursor: pointer;
    transition: opacity .15s, transform .12s, box-shadow .15s;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(255,203,2,.3);
    flex-shrink: 0;
}
.sss-export-btn:hover {
    opacity: .92;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(255,203,2,.45);
    color: #1a1200 !important;
    text-decoration: none !important;
}
.sss-export-btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 4px rgba(255,203,2,.2);
}

@media (max-width: 560px) {
    .sss-admin-bar-right { width: 100%; justify-content: flex-end; }
    .sss-export-btn { font-size: .75rem; padding: .4rem .85rem; }
}

/* Advanced student exam flow */
.ssas-q-answer-state {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-left: .5rem;
    padding: .22rem .65rem;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
}
.ssas-q-answer-state.answered {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}
.ssas-q-answer-state.blank.locked {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}
.ssas-q-progress-rail {
    display: flex;
    flex-wrap: wrap;
    gap: .38rem;
    align-items: center;
    justify-content: center;
    padding: .85rem 0 .2rem;
}
.ssas-q-progress-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #cbd5e1;
    box-shadow: 0 0 0 3px transparent;
}
.ssas-q-progress-dot.answered {
    background: #16a34a;
}
.ssas-q-progress-dot.locked:not(.answered) {
    background: #dc2626;
}
.ssas-q-progress-dot.current {
    box-shadow: 0 0 0 3px rgba(255,203,2,.38);
    background: #ffcb02;
}
.ssas-q-options {
    display: grid;
    gap: .75rem;
}
.ssas-mcq-option {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    align-items: center;
    gap: .8rem;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    padding: .85rem .95rem;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.ssas-mcq-option:hover {
    border-color: #f3bf27;
    box-shadow: 0 10px 26px rgba(15,23,42,.07);
}
.ssas-mcq-option.selected {
    border-color: #1a1200;
    background: #fff8d8;
    box-shadow: 0 0 0 3px rgba(255,203,2,.22);
}
.ssas-mcq-option.locked {
    cursor: not-allowed;
    opacity: .72;
}
.ssas-mcq-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.ssas-mcq-key {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #111827;
    font-weight: 900;
}
.ssas-mcq-option.selected .ssas-mcq-key {
    background: #1a1200;
    color: #ffcb02;
}
.ssas-mcq-text {
    color: #111827;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

/* Simple working score filters */
.ssas-score-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    margin: 1rem 0;
}
.ssas-score-filter {
    border: 1.5px solid #e2e8f0;
    background: #fff;
    color: #334155;
    border-radius: 999px;
    padding: .48rem .9rem;
    font-size: .8rem;
    font-weight: 800;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.ssas-score-filter:hover {
    border-color: #f3bf27;
    background: #fff8d8;
}
.ssas-score-filter.active {
    background: #1a1200;
    color: #ffcb02;
    border-color: #1a1200;
}

/* Practical exam student flow */
.ssas-exam-card.practical {
    border-color: #bbf7d0;
    background: linear-gradient(180deg, #ffffff, #f0fdf4);
}
.ssas-practical-start-btn {
    border: none;
    border-radius: 12px;
    background: #166534;
    color: #dcfce7;
    padding: .72rem 1.05rem;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}
.ssas-practical-start-btn[disabled] {
    opacity: .65;
    cursor: wait;
}
#ssas-practical-screen {
    margin-top: 1.25rem;
}
.ssas-practical-workspace-shell {
    border: 1.5px solid #dbeafe;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
    overflow: hidden;
}
.ssas-practical-workspace-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%);
}
.ssas-practical-workspace-copy {
    min-width: 0;
}
.ssas-practical-workspace-kicker {
    color: #bfdbfe;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.ssas-practical-workspace-clock {
    min-width: 220px;
    padding: .8rem .9rem;
    border-radius: 16px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(191,219,254,.22);
}
.ssas-practical-subtitle {
    margin-top: .25rem;
    color: rgba(255,255,255,.82);
    font-size: .82rem;
    font-weight: 700;
}
.ssas-practical-timer-bar {
    margin-top: .55rem;
    height: 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    overflow: hidden;
}
.ssas-practical-timer-bar span {
    display: block;
    height: 100%;
    width: 100%;
    border-radius: 999px;
    background: #16a34a;
    transition: width .3s ease, background .3s ease;
}
.ssas-practical-alert {
    margin: 1rem 1.25rem 0;
    padding: .85rem 1rem;
    border-radius: 14px;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.5;
}
.ssas-practical-alert.info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
}
.ssas-practical-alert.warning {
    background: #fffbeb;
    border: 1px solid #fcd34d;
    color: #92400e;
}
.ssas-practical-alert.error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #b91c1c;
}
.ssas-practical-alert.success {
    background: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}
.ssas-practical-student-body {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: 1rem;
    padding: 1rem 1.25rem 1.25rem;
}
.ssas-practical-brief-card,
.ssas-practical-submit-wrap {
    margin-bottom: 0;
}
.ssas-practical-brief-body {
    padding: 1rem 1.25rem 1.15rem;
}
.ssas-practical-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}
.ssas-practical-stat-card {
    padding: .85rem .95rem;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.ssas-practical-stat-card span {
    display: block;
    font-size: .74rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}
.ssas-practical-stat-card strong {
    display: block;
    margin-top: .32rem;
    font-size: .98rem;
    color: #0f172a;
}
.ssas-practical-copy-block {
    margin-top: .95rem;
}
.ssas-practical-copy-block h4 {
    margin: 0 0 .45rem;
    color: #166534;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.ssas-practical-copy p,
.ssas-practical-empty-copy {
    margin: 0;
    color: #334155;
    line-height: 1.75;
    white-space: normal;
}
.ssas-practical-empty-copy {
    color: #64748b;
    font-style: italic;
}
.ssas-practical-file-link {
    display: inline-flex;
    margin-top: .75rem;
    padding: .62rem .9rem;
    border-radius: 10px;
    background: #dcfce7;
    color: #166534 !important;
    font-weight: 900;
    text-decoration: none !important;
}
.ssas-practical-task-media,
.ssas-practical-task-frame {
    width: 100%;
    margin-top: .75rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
}
.ssas-practical-task-media {
    max-height: 520px;
    object-fit: contain;
}
.ssas-practical-task-frame {
    min-height: 520px;
}
.ssas-practical-submit-note {
    padding: .85rem .95rem;
    border-radius: 12px;
    background: #fff8e1;
    border: 1px solid #fcd34d;
    color: #8a5b00;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.55;
}
.ssas-practical-textarea {
    min-height: 170px;
    resize: vertical;
}
.ssas-practical-form .ssas-pf-input[type="file"] {
    padding: .55rem .65rem;
}
.ssas-practical-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: .2rem;
}
.ssas-practical-inline-note {
    display: inline-flex;
    margin-top: .55rem;
    font-size: .76rem;
    color: #92400e;
    font-weight: 700;
}
@media (max-width: 860px) {
    .ssas-practical-workspace-head {
        flex-direction: column;
    }
    .ssas-practical-workspace-clock {
        min-width: 0;
        width: 100%;
    }
    .ssas-practical-student-body {
        grid-template-columns: 1fr;
    }
    .ssas-practical-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .ssas-practical-stat-grid {
        grid-template-columns: 1fr;
    }
}

/* Featured student content */
.ssas-featured-stream {
    position: relative;
    z-index: 3;
    isolation: isolate;
    clear: both;
    overflow: hidden;
    margin: 1.35rem 0 1.55rem;
    padding: 1rem;
    border-radius: 28px;
    border: 1px solid rgba(255,255,255,.76);
    background:
        radial-gradient(circle at 92% 8%, rgba(59,130,246,.14), transparent 30%),
        radial-gradient(circle at 6% 90%, rgba(236,72,153,.12), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,.9), rgba(248,250,252,.82));
    box-shadow: 0 22px 60px rgba(15,23,42,.08);
    backdrop-filter: blur(16px);
}
.ssas-featured-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .9rem;
}
.ssas-featured-kicker {
    display: block;
    color: #92600a;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssas-featured-head h2 {
    margin: .18rem 0 0;
    color: #0f172a;
    font-size: 1.2rem;
    line-height: 1.2;
}
.ssas-featured-controls {
    display: inline-flex;
    gap: .45rem;
}
.ssas-featured-nav {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(226,232,240,.95);
    border-radius: 50%;
    background: rgba(255,255,255,.9);
    color: #111827;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(15,23,42,.08);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ssas-featured-nav:hover {
    transform: translateY(-2px);
    background: #fffbeb;
    box-shadow: 0 16px 34px rgba(15,23,42,.12);
}
.ssas-featured-loading {
    padding: 1.2rem;
    border: 1px dashed #cbd5e1;
    border-radius: 18px;
    color: #94a3b8;
    font-weight: 800;
    text-align: center;
}
.ssas-featured-track {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: stretch;
    transition: transform .55s cubic-bezier(.22,1,.36,1);
    will-change: transform;
}
.ssas-featured-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    flex: 0 0 100%;
    border-radius: 24px;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 26px 70px rgba(15,23,42,.18);
}
.ssas-featured-card.is-glass {
    background: linear-gradient(135deg, #f8fafc, #e0f2fe);
    color: #0f172a;
}
.ssas-featured-card.is-aurora {
    background: linear-gradient(135deg, #111827, #4338ca 50%, #be185d);
}
.ssas-featured-card.is-minimal {
    background: #ffffff;
    color: #0f172a;
    border: 1px solid #e2e8f0;
}
.ssas-featured-media {
    position: relative;
    background: rgba(15,23,42,.35);
    cursor: zoom-in;
}
.ssas-featured-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15,23,42,0), rgba(15,23,42,.18));
    pointer-events: none;
}
.ssas-featured-media img,
.ssas-featured-media video,
.ssas-featured-media iframe {
    width: 100%;
    height: auto;
    display: block;
    border: 0;
    object-fit: contain;
}
.ssas-featured-inner-carousel {
    position: relative;
    width: 100%;
}
.ssas-featured-inner-carousel img {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
    transform: scale(1.03);
    transition: opacity .7s ease, transform 1.2s ease;
    position: absolute;
    top: 0;
    left: 0;
}
.ssas-featured-inner-carousel img:first-child {
    position: relative;
    visibility: hidden;
}
.ssas-featured-inner-carousel img.active {
    opacity: 1;
    transform: scale(1);
    position: absolute;
    top: 0;
    left: 0;
    visibility: visible;
}
.ssas-featured-inner-carousel img:first-child.active {
    position: relative;
    visibility: visible;
}
.ssas-featured-media-fallback {
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.8);
    font-weight: 900;
    background: linear-gradient(135deg, rgba(255,203,2,.24), rgba(59,130,246,.24));
}
.ssas-featured-copy {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .75rem;
    padding: 1.5rem;
}
.ssas-featured-badge {
    align-self: flex-start;
    border-radius: 999px;
    padding: .3rem .7rem;
    background: rgba(255,203,2,.94);
    color: #1a1200;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.ssas-featured-copy h3 {
    margin: 0;
    color: inherit;
    font-size: 1.65rem;
    line-height: 1.12;
}
.ssas-featured-copy p {
    margin: 0;
    color: currentColor;
    opacity: .78;
    font-size: .95rem;
    line-height: 1.62;
}
.ssas-featured-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .25rem;
}
.ssas-featured-cta,
.ssas-featured-expand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 999px;
    padding: .68rem 1rem;
    border: none;
    text-decoration: none;
    font-size: .84rem;
    font-weight: 900;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.ssas-featured-cta {
    background: #ffcb02;
    color: #1a1200;
    box-shadow: 0 14px 30px rgba(255,203,2,.24);
}
.ssas-featured-expand {
    background: rgba(255,255,255,.14);
    color: currentColor;
    border: 1px solid rgba(255,255,255,.24);
}
.ssas-featured-card.is-glass .ssas-featured-expand,
.ssas-featured-card.is-minimal .ssas-featured-expand {
    background: #f8fafc;
    border-color: #e2e8f0;
}
.ssas-featured-cta:hover,
.ssas-featured-expand:hover {
    transform: translateY(-2px);
    opacity: .92;
}
.ssas-featured-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.2rem;
    background: rgba(15,23,42,.76);
    backdrop-filter: blur(10px);
}
.ssas-featured-lightbox.open {
    display: flex;
}
.ssas-featured-lightbox-panel {
    position: relative;
    overflow: hidden;
    width: min(980px, 94vw);
    max-height: 90vh;
    border-radius: 26px;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 30px 90px rgba(0,0,0,.36);
}
.ssas-featured-lightbox-close {
    position: absolute;
    top: .75rem;
    right: .75rem;
    z-index: 3;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    background: rgba(15,23,42,.62);
    color: #fff;
    font-size: 1.4rem;
    cursor: pointer;
}
.ssas-featured-lightbox-body {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
}
.ssas-featured-lightbox-media {
    min-height: 520px;
    background: #020617;
}
.ssas-featured-lightbox-media img,
.ssas-featured-lightbox-media video,
.ssas-featured-lightbox-media iframe {
    width: 100%;
    height: 100%;
    min-height: 520px;
    border: 0;
    display: block;
    object-fit: contain;
}
.ssas-featured-lightbox-copy {
    padding: 1.7rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .8rem;
}
.ssas-featured-lightbox-copy span {
    align-self: flex-start;
    border-radius: 999px;
    padding: .3rem .72rem;
    background: #ffcb02;
    color: #1a1200;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}
.ssas-featured-lightbox-copy h3 {
    color: #fff;
    margin: 0;
    font-size: 1.6rem;
}
.ssas-featured-lightbox-copy p {
    color: rgba(255,255,255,.72);
    margin: 0;
    line-height: 1.7;
}
@media (prefers-color-scheme: dark) {
    .ssas-featured-stream {
        border-color: rgba(255,255,255,.12);
        background:
            radial-gradient(circle at 92% 8%, rgba(59,130,246,.2), transparent 30%),
            linear-gradient(135deg, rgba(15,23,42,.94), rgba(30,41,59,.88));
    }
    .ssas-featured-head h2 {
        color: #f8fafc;
    }
    .ssas-featured-nav {
        background: rgba(15,23,42,.76);
        border-color: rgba(255,255,255,.16);
        color: #f8fafc;
    }
}
@media (max-width: 860px) {
    .ssas-featured-track {
        /* no fixed min-height */
    }
    .ssas-featured-card,
    .ssas-featured-lightbox-body {
        grid-template-columns: 1fr;
    }
    .ssas-featured-media,
    .ssas-featured-media img,
    .ssas-featured-media video,
    .ssas-featured-media iframe,
    .ssas-featured-inner-carousel,
    .ssas-featured-media-fallback {
        min-height: unset;
    }
    .ssas-featured-lightbox-media,
    .ssas-featured-lightbox-media img,
    .ssas-featured-lightbox-media video,
    .ssas-featured-lightbox-media iframe {
        min-height: 260px;
    }
}
@media (max-width: 560px) {
    .ssas-featured-stream {
        padding: .75rem;
        border-radius: 22px;
        margin-bottom: 1.75rem;
    }
    .ssas-featured-track {
        /* height adapts to image */
    }
    .ssas-featured-head {
        align-items: flex-start;
    }
    .ssas-featured-copy {
        padding: 1rem;
    }
    .ssas-featured-copy h3 {
        font-size: 1.25rem;
    }
    .ssas-featured-copy p {
        font-size: .86rem;
    }
}

/* ══ EXAM SCORE TOTAL ROW ══ */
.ssas-score-total-row {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 14px;
    background: #1e293b;
    border-radius: 0 0 10px 10px;
    margin-top: -2px;
    font-size: 13px;
}
.ssas-score-total-label {
    font-weight: 700; color: #94a3b8; text-transform: uppercase;
    font-size: 10px; letter-spacing: .06em; flex: 1;
}
.ssas-score-total-val {
    font-weight: 900; color: #f1f5f9; font-size: 14px;
}

/* ══ EXAM TOP 3 STRIP ══ */
.ssas-exam-top3-strip {
    background: linear-gradient(135deg, #fefce8 0%, #fef9c3 100%);
    border: 1.5px solid #fde68a;
    border-radius: 12px;
    padding: 12px 14px;
    margin: 10px 0 6px;
}
.ssas-exam-top3-head {
    display: flex; align-items: center; gap: 7px;
    margin-bottom: 10px;
}
.ssas-exam-top3-icon { font-size: 15px; }
.ssas-exam-top3-title {
    font-size: 11px; font-weight: 800; color: #92400e;
    text-transform: uppercase; letter-spacing: .06em;
}
.ssas-exam-top3-list {
    display: flex; flex-direction: column; gap: 6px;
}
.ssas-exam-top3-item {
    display: flex; align-items: center; gap: 9px;
    padding: 6px 10px; border-radius: 8px;
    background: rgba(255,255,255,.7);
    border: 1px solid rgba(251,191,36,.3);
    transition: background .15s;
}
.ssas-exam-top3-item.is-me {
    background: #fff8e1;
    border-color: #fbbf24;
    box-shadow: 0 0 0 2px rgba(251,191,36,.25);
}
.ssas-exam-top3-medal { font-size: 16px; flex-shrink: 0; }
.ssas-exam-top3-avatar {
    width: 26px; height: 26px; border-radius: 50%;
    object-fit: cover; flex-shrink: 0;
}
.ssas-exam-top3-initials {
    width: 26px; height: 26px; border-radius: 50%;
    background: #1e293b; color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800; flex-shrink: 0;
}
.ssas-exam-top3-name {
    flex: 1; font-size: 13px; font-weight: 600; color: #1e293b;
    display: flex; align-items: center; gap: 6px;
}
.ssas-exam-top3-you {
    font-size: 9px; font-weight: 800; background: #1e293b;
    color: #fbbf24; padding: 1px 6px; border-radius: 99px;
    text-transform: uppercase; letter-spacing: .05em;
}
.ssas-exam-top3-score {
    font-size: 13px; font-weight: 800; color: #78350f;
}
.ssas-exam-top3-pct {
    font-size: 11px; font-weight: 600; color: #92400e;
}
@media (max-width: 480px) {
    .ssas-exam-top3-strip { padding: 10px; }
    .ssas-exam-top3-item { gap: 6px; padding: 5px 8px; }
    .ssas-exam-top3-score { font-size: 12px; }
}

/* ══ REPORT TAB ══ */
.ssas-report-tab-wrap {
    max-width: 540px; margin: 0 auto;
    padding: 2rem 1rem;
    display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
    text-align: center;
}
.ssas-report-hero { display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.ssas-report-hero-icon { font-size: 3rem; line-height: 1; }
.ssas-report-hero-title {
    font-size: 1.2rem; font-weight: 900; color: #1e293b; letter-spacing: -.02em;
}
.ssas-report-hero-sub {
    font-size: .88rem; color: #64748b; line-height: 1.55; max-width: 420px;
}
.ssas-report-sections {
    display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center;
}
.ssas-report-section-chip {
    background: #f1f5f9; border: 1px solid #e2e8f0;
    border-radius: 99px; padding: 5px 13px;
    font-size: .8rem; font-weight: 600; color: #475569;
}
.ssas-report-generate-btn {
    display: inline-flex; align-items: center; gap: .55rem;
    background: #1e293b; color: #fff;
    padding: .9rem 2rem; border-radius: 12px;
    font-size: 1rem; font-weight: 800; text-decoration: none;
    box-shadow: 0 4px 18px rgba(30,41,59,.22);
    transition: background .15s, transform .12s, box-shadow .15s;
    letter-spacing: -.01em;
}
.ssas-report-generate-btn:hover {
    background: #0f172a; transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(30,41,59,.32);
    color: #fff; text-decoration: none;
}
.ssas-report-note {
    font-size: .78rem; color: #94a3b8; line-height: 1.5;
}
