:root{
    --bg:#f4f7fb; --card:#ffffff; --text:#132238; --muted:#667085; --primary:#2563eb; --primary-2:#1d4ed8; --dark:#0f172a; --green:#16a34a; --orange:#f97316; --danger:#dc2626; --ring:rgba(37,99,235,.18); --border:#e5e7eb; --shadow:0 20px 50px rgba(15,23,42,.10); --radius:22px;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--text)}
a{text-decoration:none;color:inherit}.app-body{background:linear-gradient(135deg,#eef5ff 0%,#f8fbff 42%,#eef2ff 100%)}
.app-shell{display:grid;grid-template-columns:290px 1fr;min-height:100vh}.sidebar{background:rgba(15,23,42,.96);color:white;padding:28px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:14px;margin-bottom:32px}.brand-mark,.login-logo{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#60a5fa,#2563eb);font-weight:900;letter-spacing:.5px;box-shadow:0 16px 30px rgba(37,99,235,.35)}.brand-title{font-size:19px;font-weight:800}.brand-subtitle{font-size:13px;color:#cbd5e1}.nav-list{display:grid;gap:10px}.nav-item{padding:12px 14px;border-radius:14px;color:#cbd5e1}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:white}.sidebar-note{position:absolute;left:28px;right:28px;bottom:28px;padding:16px;border-radius:18px;background:rgba(255,255,255,.08);color:#dbeafe;line-height:1.5;font-size:14px}.main-content{padding:34px;min-width:0}.hero-panel,.glass-header{border-radius:30px;padding:34px;background:linear-gradient(135deg,rgba(37,99,235,.95),rgba(14,165,233,.82));color:white;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:28px;align-items:center;margin-bottom:24px;position:relative;overflow:hidden}.hero-panel:after,.glass-header:after{content:"";position:absolute;right:-80px;top:-80px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.14)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:800;margin:0 0 8px}.hero-panel h1,.glass-header h1{font-size:38px;line-height:1.1;margin:0 0 12px}.hero-text,.glass-header p{max-width:760px;line-height:1.65;opacity:.94}.hero-stat-card{min-width:190px;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.28);border-radius:24px;padding:20px;z-index:1}.hero-stat-card span,.hero-stat-card small{display:block;opacity:.85}.hero-stat-card strong{font-size:52px;display:block;margin:8px 0}.card-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);margin-bottom:24px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.section-head h2,.card-panel h2{margin:0;font-size:24px}.pill{display:inline-flex;padding:8px 13px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:800;font-size:13px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-form.one-col{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:8px}.field label{font-weight:800}.field input,.field textarea,.field select,.login-form input{width:100%;padding:13px 14px;border:1px solid #d0d5dd;border-radius:14px;font-size:15px;background:#fff;outline:none}.field input:focus,.field textarea:focus,.field select:focus,.login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 5px var(--ring)}.col-2{grid-column:span 2}.help-text,.muted{color:var(--muted);line-height:1.55}.form-actions{display:flex;gap:12px;align-items:center}.btn{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:white;box-shadow:0 12px 24px rgba(37,99,235,.25)}.btn-soft{background:#f1f5f9;color:#1e293b}.btn-dark{background:#0f172a;color:white}.btn-full{width:100%;padding:14px 18px}.alert{padding:14px 16px;border-radius:16px;margin:16px 0;font-weight:700}.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.alert-danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.session-card{border:1px solid var(--border);border-radius:22px;padding:20px;background:linear-gradient(180deg,#fff,#f8fafc)}.session-top{display:flex;justify-content:space-between;gap:12px}.session-top h3{margin:0 0 6px;font-size:20px}.session-top p{margin:0;color:var(--muted)}.code-badge{align-self:flex-start;background:#111827;color:#fef08a;border-radius:14px;padding:9px 12px;font-size:20px;font-weight:900;letter-spacing:.08em}.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.mini-stats div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px;text-align:center}.mini-stats strong{display:block;font-size:22px}.mini-stats span{font-size:12px;color:var(--muted)}.status-line{font-weight:800;margin-bottom:14px;color:#475569}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.status-dot.on{background:#22c55e}.status-dot.off{background:#ef4444}.actions-wrap{display:flex;flex-wrap:wrap;gap:10px}.empty-state,.empty-cell{text-align:center;color:var(--muted);padding:28px}.page-bg{background:linear-gradient(135deg,#f8fbff,#eef2ff);min-height:100vh;padding:30px}.container-xl{max-width:1240px;margin:0 auto}.container-md{max-width:860px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.back-link{font-weight:900;color:#1d4ed8}.glass-header.compact{display:block}.two-col-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:22px}.paste-area{width:100%;min-height:330px;padding:16px;border:1px solid #d0d5dd;border-radius:18px;font-family:Consolas,monospace;font-size:14px}.soft-panel{background:#f8fafc}.sample-box{background:#0f172a;color:#dbeafe;border-radius:18px;padding:18px;white-space:pre-wrap;overflow:auto}.tip-list{display:grid;gap:12px;margin-top:18px}.tip-list div{display:flex;gap:12px;align-items:flex-start}.tip-list b{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#dbeafe;color:#1d4ed8}.table-wrap{overflow:auto}.modern-table{width:100%;border-collapse:separate;border-spacing:0}.modern-table th{text-align:left;background:#f8fafc;color:#475569;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.modern-table th,.modern-table td{padding:13px 14px;border-bottom:1px solid var(--border)}.modern-table tbody tr:hover{background:#f8fafc}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.summary-card{background:white;border-radius:22px;padding:22px;box-shadow:var(--shadow);border:1px solid var(--border)}.summary-card span{color:var(--muted);font-weight:800}.summary-card b{display:block;font-size:38px;margin-top:8px}.login-body{min-height:100vh;background:#0f172a;display:grid;place-items:center;overflow:hidden}.login-visual{position:relative;width:100%;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#2563eb 0,#0f172a 36%,#020617 100%)}.orb{position:absolute;border-radius:50%;filter:blur(4px);opacity:.6}.orb-1{width:260px;height:260px;background:#38bdf8;left:7%;top:12%}.orb-2{width:180px;height:180px;background:#818cf8;right:12%;bottom:14%}.login-card{position:relative;width:min(440px,100%);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);padding:34px;border-radius:30px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.login-logo{color:white;margin:0 auto 18px}.login-card h1{text-align:center;line-height:1.15;margin:0 0 10px}.login-card p,.login-footnote{text-align:center;color:var(--muted);line-height:1.55}.login-form{display:grid;gap:9px;margin-top:18px}.login-form label{font-weight:900}.student-shell{max-width:860px;margin:0 auto}.student-hero{text-align:center;color:white;border-radius:34px;padding:42px 24px;background:linear-gradient(135deg,#16a34a,#0ea5e9);box-shadow:var(--shadow);margin-bottom:20px}.checkmark{width:70px;height:70px;border-radius:50%;background:white;color:#16a34a;display:grid;place-items:center;margin:0 auto 14px;font-size:42px;font-weight:900}.student-hero h1{font-size:36px;margin:0 0 8px}.student-info-card{display:grid;gap:12px}.info-row{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding:11px 0}.info-row:last-child{border-bottom:0}.info-row span{color:var(--muted);font-weight:800}.student-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.action-card{padding:20px;border-radius:22px;color:white;box-shadow:var(--shadow)}.action-card strong,.action-card span{display:block}.action-card strong{font-size:19px;margin-bottom:6px}.action-card span{opacity:.9}.action-card.green{background:linear-gradient(135deg,#16a34a,#22c55e)}.action-card.orange{background:linear-gradient(135deg,#f97316,#fb923c)}.action-card.dark{background:linear-gradient(135deg,#0f172a,#334155)}.muted-card{background:#e2e8f0;color:#475569}.question-card{background:white;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px;padding:22px;margin-bottom:18px}.question-number{display:inline-flex;padding:7px 11px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-weight:900;margin-bottom:12px}.question-card h3{margin:0 0 16px}.option-row{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid #e2e8f0;border-radius:16px;margin-top:10px;cursor:pointer}.option-row:hover{background:#f8fafc;border-color:#bfdbfe}.option-row input{margin-top:3px}.wall-body{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e3a8a,#0e7490);color:white}.wall-header{padding:30px 38px;display:flex;justify-content:space-between;gap:20px;align-items:center}.wall-header h1{font-size:42px;margin:0 0 8px}.wall-code-box{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:22px;padding:16px 20px;min-width:300px}.wall-code-box span,.wall-code-box small{display:block;opacity:.82}.wall-code-box b{display:block;margin:6px 0;color:#fef08a}.wall-board{padding:0 38px 40px;column-count:4;column-gap:20px}.wall-note{display:inline-block;width:100%;break-inside:avoid;margin:0 0 20px;padding:20px;border-radius:24px;box-shadow:0 20px 45px rgba(0,0,0,.25);color:#0f172a;transform:rotate(-.4deg)}.wall-note:nth-child(2n){transform:rotate(.6deg)}.wall-note:nth-child(3n){transform:rotate(-.8deg)}.wall-tag{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.11);font-size:13px;font-weight:900}.wall-note p{font-size:19px;line-height:1.48;font-weight:700}.wall-meta{font-weight:900;border-top:1px solid rgba(0,0,0,.12);padding-top:10px}.wall-time{font-size:12px;color:#475569;margin-top:4px}.hide-link{display:inline-block;margin-top:8px;color:#991b1b;font-size:12px;font-weight:900}.note-yellow{background:#fef3c7}.note-blue{background:#bae6fd}.note-green{background:#bbf7d0}.note-pink{background:#fecdd3}.note-purple{background:#ddd6fe}.wall-empty{background:rgba(255,255,255,.14);color:white;border-radius:24px}.wall-footer{text-align:center;padding:18px;color:#dbeafe}.one-col{grid-template-columns:1fr}@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar-note{position:static;margin-top:24px}.session-grid,.two-col-layout{grid-template-columns:1fr}.wall-board{column-count:3}.student-actions{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.main-content,.page-bg{padding:18px}.hero-panel,.glass-header,.wall-header{display:block;padding:24px}.hero-panel h1,.glass-header h1,.wall-header h1{font-size:30px}.grid-form,.summary-grid{grid-template-columns:1fr}.col-2{grid-column:span 1}.mini-stats{grid-template-columns:repeat(2,1fr)}.wall-board{column-count:1;padding:0 18px 30px}.wall-code-box{min-width:0}.topbar{align-items:flex-start;flex-direction:column}}@media print{.sidebar,.topbar,.actions-wrap,.hide-link,.wall-footer{display:none!important}.app-shell{display:block}.main-content,.page-bg{padding:0;background:white}.card-panel,.summary-card,.question-card{box-shadow:none}.glass-header,.hero-panel{background:white;color:black;box-shadow:none;border:1px solid #ddd}.modern-table th,.modern-table td{font-size:12px;padding:8px}}
/* ===== Landing / 403 friendly fix ===== */
.landing-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .28), transparent 32%),
        radial-gradient(circle at bottom right, rgba(20, 184, 166, .24), transparent 34%),
        linear-gradient(135deg, #0f172a 0%, #1e293b 48%, #0f172a 100%);
    color: #0f172a;
}
.landing-shell {
    width: min(1120px, calc(100% - 32px));
    min-height: 100vh;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.25fr .85fr;
    gap: 24px;
    align-items: center;
    padding: 32px 0;
}
.card-glass {
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10);
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
    backdrop-filter: blur(18px);
    border-radius: 28px;
}
.landing-hero {
    color: white;
    padding: 42px;
}
.brand-row {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 44px;
}
.brand-icon {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: linear-gradient(135deg, #38bdf8, #22c55e);
    display: grid;
    place-items: center;
    font-weight: 900;
    font-size: 28px;
    color: white;
    box-shadow: 0 16px 35px rgba(56,189,248,.32);
}
.brand-title {font-weight: 800; font-size: 20px;}
.brand-subtitle {opacity: .78; margin-top: 2px;}
.landing-hero h1 {
    font-size: clamp(34px, 5vw, 60px);
    line-height: 1.02;
    margin: 0 0 18px;
    letter-spacing: -1.5px;
}
.hero-text {
    max-width: 720px;
    font-size: 18px;
    line-height: 1.65;
    color: rgba(255,255,255,.82);
}
.landing-panel {
    padding: 30px;
    border-radius: 26px;
}
.landing-panel h2 {margin: 0 0 8px;}
.form-stack {display: grid; gap: 10px;}
.form-stack input, .form-stack textarea, .form-stack select {
    width: 100%;
    box-sizing: border-box;
}
.full {width: 100%; text-align: center; justify-content: center;}
.divider {height: 1px; background: #e5e7eb; margin: 24px 0;}
.helper-box {
    margin-top: 20px;
    padding: 14px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    font-size: 14px;
    line-height: 1.65;
}
.stat-grid.mini {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 34px;
}
.stat-card {
    border-radius: 20px;
    padding: 18px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
}
.stat-card span {display: block; font-size: 30px; font-weight: 900; color: white;}
.stat-card small {display: block; margin-top: 4px; color: rgba(255,255,255,.75);}
.auth-body {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #e0f2fe, #f8fafc);
}
.auth-card {
    width: min(430px, calc(100% - 32px));
    background: white;
    border-radius: 24px;
    padding: 28px;
    box-shadow: 0 24px 70px rgba(15,23,42,.16);
}
.link {display: inline-block; margin-top: 16px; color: #2563eb; text-decoration: none; font-weight: 700;}
@media (max-width: 900px) {
    .landing-shell {grid-template-columns: 1fr;}
    .landing-hero {padding: 28px;}
}
@media (max-width: 560px) {
    .stat-grid.mini {grid-template-columns: 1fr;}
}

/* ===== Teacher management additions ===== */
.teacher-login-body .login-card { max-width: 480px; }
.top-actions { display:flex; gap:10px; flex-wrap:wrap; }
.management-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; margin-bottom:24px; }
.quick-actions-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:14px 0 18px; }
.quick-card { display:block; background:#fff; border:1px solid var(--border); border-radius:18px; padding:16px; box-shadow:0 10px 24px rgba(15,23,42,.06); }
.quick-card:hover { transform:translateY(-2px); border-color:#bfdbfe; }
.quick-card b { display:block; font-size:18px; color:#1d4ed8; margin-bottom:4px; }
.quick-card span { color:var(--muted); font-size:13px; }
.switch-line { display:flex; align-items:center; gap:10px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; padding:13px 14px; font-weight:800; }
.switch-line input { width:18px; height:18px; }
.paste-area.small { min-height:180px; }
.mt-20 { margin-top:20px; }
.btn-danger, .btn-danger-mini { background:#dc2626; color:white; }
.btn-danger-mini { padding:8px 11px; border-radius:11px; font-size:13px; }
.danger-zone { border-color:#fecaca; background:linear-gradient(180deg,#fff,#fff7f7); }
.danger-actions { display:flex; flex-wrap:wrap; gap:12px; }
.divider { height:1px; background:var(--border); margin:24px 0; }
.helper-box { background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; padding:14px; margin-top:18px; color:#475569; line-height:1.6; }
.stat-grid.mini { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px; }
.stat-card { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); border-radius:20px; padding:18px; color:white; }
.stat-card span { display:block; font-size:34px; font-weight:900; }
.stat-card small { opacity:.82; }
.landing-panel.card { background:white; border-radius:28px; padding:30px; box-shadow:0 24px 80px rgba(0,0,0,.22); }
@media(max-width:1050px){ .management-grid{grid-template-columns:1fr}.quick-actions-grid{grid-template-columns:1fr}.top-actions{width:100%}.top-actions .btn{flex:1}.stat-grid.mini{grid-template-columns:1fr}.landing-shell{grid-template-columns:1fr;align-items:start} }

/* ===== Modern upgrade: group attendance, note questions, cleaner UI ===== */
.modern-admin-body,
.modern-page-bg { background:
    radial-gradient(circle at 8% 6%, rgba(37,99,235,.18), transparent 28%),
    radial-gradient(circle at 92% 18%, rgba(20,184,166,.14), transparent 30%),
    linear-gradient(135deg,#f8fbff,#eef4ff 52%,#f8fafc); }
.modern-sidebar { background:linear-gradient(180deg,#07111f,#0f172a 58%,#111827); box-shadow:18px 0 60px rgba(15,23,42,.18); }
.hero-panel-modern,
.modern-header { background:
    radial-gradient(circle at top right, rgba(255,255,255,.24), transparent 28%),
    linear-gradient(135deg,#1d4ed8,#0891b2 56%,#0f766e); }
.modern-card { border:1px solid rgba(148,163,184,.24); box-shadow:0 24px 70px rgba(15,23,42,.095); }
.modern-session-card { position:relative; overflow:hidden; background:linear-gradient(180deg,#ffffff,#f8fbff); }
.modern-session-card:before { content:""; position:absolute; inset:0 0 auto 0; height:5px; background:linear-gradient(90deg,#2563eb,#14b8a6,#22c55e); }
.compact-stats { grid-template-columns:repeat(3,1fr); }
.group-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.group-card { background:linear-gradient(180deg,#fff,#f8fafc); border:1px solid var(--border); border-radius:22px; padding:18px; box-shadow:0 14px 34px rgba(15,23,42,.07); }
.group-card-form { display:grid; gap:12px; margin-bottom:12px; }
.group-add-form { align-items:end; }
.edit-list { display:grid; gap:16px; }
.edit-card { border:1px solid var(--border); background:#fff; border-radius:22px; padding:18px; box-shadow:0 10px 28px rgba(15,23,42,.055); }
.note-edit-card { background:linear-gradient(180deg,#fff,#fffaf1); }
.inline-delete-form { display:inline-flex; margin-top:8px; }
.student-inline-form input,
.modern-table input,
.modern-table select { width:100%; min-width:140px; border:1px solid #dbe3ef; border-radius:12px; padding:9px 10px; outline:none; background:#fff; }
.modern-table input:focus,
.modern-table select:focus { border-color:#2563eb; box-shadow:0 0 0 4px rgba(37,99,235,.12); }
.report-filter-form { display:flex; gap:12px; flex-wrap:wrap; align-items:center; width:100%; }
.report-filter-form label { font-weight:900; color:#334155; }
.report-filter-form select { min-width:280px; padding:12px 14px; border:1px solid #d0d5dd; border-radius:14px; background:#fff; }
.note-question-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.note-question-chip { background:white; border:1px solid var(--border); border-radius:18px; padding:14px 16px; box-shadow:0 10px 28px rgba(15,23,42,.06); }
.note-question-chip b { display:block; color:#1d4ed8; margin-bottom:4px; }
.note-question-chip span { display:block; color:var(--muted); line-height:1.5; font-size:14px; }
.return-btn { margin-top:12px; }
.bottom-actions { margin:18px 0 0; display:flex; justify-content:center; }
.student-hero-modern { background:
    radial-gradient(circle at top left, rgba(255,255,255,.28), transparent 30%),
    linear-gradient(135deg,#16a34a,#0891b2 58%,#2563eb); }
.modern-login-body .login-visual { background:
    radial-gradient(circle at 10% 10%, #38bdf8 0, transparent 30%),
    radial-gradient(circle at 90% 80%, #22c55e 0, transparent 24%),
    linear-gradient(135deg,#020617,#0f172a 48%,#172554); }
.modern-login-card { border:1px solid rgba(255,255,255,.22); box-shadow:0 36px 110px rgba(0,0,0,.42); }
.center-link { text-align:center; display:block; }
.modern-landing-body { background:
    radial-gradient(circle at 12% 12%, rgba(56,189,248,.32), transparent 30%),
    radial-gradient(circle at 88% 78%, rgba(34,197,94,.22), transparent 28%),
    linear-gradient(135deg,#020617,#0f172a 52%,#172554); }
.modern-landing-hero { min-height:620px; display:flex; flex-direction:column; justify-content:center; }
.modern-landing-panel { border:1px solid rgba(255,255,255,.14); }
.modern-wall-body { background:
    radial-gradient(circle at 10% 5%, rgba(56,189,248,.22), transparent 26%),
    radial-gradient(circle at 90% 20%, rgba(34,197,94,.18), transparent 28%),
    linear-gradient(135deg,#020617,#1e3a8a 56%,#0f766e); }
.wall-code-box small { line-height:1.55; }
@media(max-width:1050px){ .group-grid,.note-question-list{grid-template-columns:1fr}.compact-stats{grid-template-columns:repeat(2,1fr)} }
@media(max-width:700px){ .report-filter-form{display:grid}.report-filter-form select{min-width:0;width:100%}.group-add-form{grid-template-columns:1fr}.compact-stats{grid-template-columns:repeat(2,1fr)} }
@media print{ .report-filter-card,.bottom-actions,.return-btn{display:none!important} }

/* ===== QR attendance dynamic ===== */
.qr-login-context {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px 14px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    padding: 14px;
    margin: 16px 0;
    color: #e2e8f0;
}
.qr-login-context span { color: rgba(226,232,240,.74); font-size: 13px; font-weight: 700; }
.qr-login-context b { color: #fff; }
.qr-display-body {
    margin: 0;
    min-height: 100vh;
    color: #e5eefc;
    background:
        radial-gradient(circle at 12% 14%, rgba(59,130,246,.38), transparent 28%),
        radial-gradient(circle at 88% 86%, rgba(20,184,166,.25), transparent 30%),
        linear-gradient(135deg,#020617,#0f172a 52%,#172554);
}
.qr-display-shell { width: min(1260px, calc(100% - 32px)); margin: 0 auto; padding: 22px 0 42px; }
.qr-topbar .back-link { color: #dbeafe; }
.qr-stage { display: grid; grid-template-columns: 1fr 460px; gap: 28px; align-items: stretch; margin-top: 24px; }
.qr-info-panel,
.qr-card-live {
    border: 1px solid rgba(255,255,255,.15);
    background: rgba(15,23,42,.62);
    backdrop-filter: blur(18px);
    border-radius: 32px;
    box-shadow: 0 30px 90px rgba(0,0,0,.34);
}
.qr-info-panel { padding: 36px; display: flex; flex-direction: column; justify-content: center; }
.qr-info-panel h1 { color: #fff; font-size: clamp(34px, 5vw, 60px); line-height: 1.02; margin: 8px 0 12px; }
.qr-info-panel p { color: #cbd5e1; font-size: 18px; line-height: 1.6; }
.qr-group-select { margin-top: 26px; display: grid; gap: 10px; }
.qr-group-select label { font-weight: 900; color: #bfdbfe; }
.qr-group-select select {
    width: 100%;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.92);
    color: #0f172a;
    border-radius: 18px;
    padding: 14px 16px;
    font-size: 16px;
    font-weight: 800;
}
.qr-security-box {
    margin-top: 26px;
    display: grid;
    gap: 8px;
    background: rgba(34,197,94,.10);
    border: 1px solid rgba(74,222,128,.30);
    border-radius: 22px;
    padding: 18px;
}
.qr-security-box b { color: #bbf7d0; font-size: 18px; }
.qr-security-box span { color: #e2e8f0; line-height: 1.55; }
.qr-security-box small { color: #cbd5e1; line-height: 1.5; }
.qr-card-live { padding: 22px; display: grid; gap: 16px; align-content: start; }
.qr-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; color: #cbd5e1; }
.qr-card-head span { font-size: 20px; font-weight: 900; color: #fff; }
.qr-card-head b { color: #93c5fd; font-size: 14px; }
.qr-image-wrap {
    min-height: 386px;
    display: grid;
    place-items: center;
    background: white;
    border-radius: 26px;
    border: 10px solid rgba(255,255,255,.12);
    overflow: hidden;
    position: relative;
}
.qr-image-wrap img { width: min(340px, 90%); height: auto; image-rendering: crisp-edges; }
.qr-error {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    text-align: center;
    background: #fff7f7;
    color: #991b1b;
    font-weight: 900;
    line-height: 1.5;
}
.qr-countdown-ring {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(37,99,235,.28), rgba(20,184,166,.22));
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 24px;
    padding: 18px;
}
.qr-countdown-ring span { font-size: 72px; line-height: 1; font-weight: 1000; color: #fef08a; text-shadow: 0 5px 22px rgba(250,204,21,.28); }
.qr-countdown-ring small { color: #dbeafe; font-weight: 800; margin-top: 4px; }
.qr-live-note { text-align: center; color: #cbd5e1; font-size: 14px; line-height: 1.55; }
@media(max-width: 980px){
    .qr-stage { grid-template-columns: 1fr; }
    .qr-card-live { max-width: 520px; width: 100%; justify-self: center; }
}
@media(max-width: 560px){
    .qr-display-shell { width: min(100% - 20px, 1260px); }
    .qr-info-panel { padding: 22px; border-radius: 24px; }
    .qr-card-live { padding: 14px; border-radius: 24px; }
    .qr-image-wrap { min-height: 320px; border-width: 6px; }
    .qr-countdown-ring span { font-size: 54px; }
}

/* ===== Landing page v2 polish ===== */
.landing-v2-body {
    margin: 0;
    min-height: 100vh;
    color: #e5eefc;
    background:
        radial-gradient(circle at 8% 10%, rgba(59,130,246,.38), transparent 28%),
        radial-gradient(circle at 88% 18%, rgba(20,184,166,.28), transparent 30%),
        linear-gradient(135deg, #020617, #0f172a 52%, #172554);
}
.landing-v2-bg { position: fixed; inset: 0; pointer-events: none; overflow: hidden; }
.landing-v2-bg:before,
.landing-v2-bg:after { content:""; position:absolute; border-radius:999px; filter:blur(4px); opacity:.26; }
.landing-v2-bg:before { width:420px; height:420px; left:-120px; bottom:-90px; background:#38bdf8; }
.landing-v2-bg:after { width:300px; height:300px; right:6%; top:14%; background:#22c55e; }
.landing-v2-shell { position: relative; width:min(1180px, calc(100% - 32px)); margin:0 auto; padding:24px 0 56px; }
.landing-v2-nav { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:28px; }
.landing-v2-brand { display:flex; align-items:center; gap:14px; color:#fff; }
.landing-v2-brand span { width:54px; height:54px; border-radius:18px; display:grid; place-items:center; background:linear-gradient(135deg,#38bdf8,#2563eb,#22c55e); color:#fff; font-weight:1000; box-shadow:0 16px 36px rgba(56,189,248,.24); }
.landing-v2-brand b { display:block; font-size:20px; }
.landing-v2-brand small { display:block; color:#cbd5e1; margin-top:3px; }
.landing-v2-nav-actions { display:flex; flex-wrap:wrap; gap:10px; }
.landing-v2-hero { display:grid; grid-template-columns:minmax(0,1.08fr) 430px; gap:34px; align-items:center; padding:34px 0 22px; }
.landing-v2-copy h1 { font-size:clamp(42px, 6vw, 74px); line-height:.98; letter-spacing:-2.5px; margin:0 0 20px; color:#fff; }
.landing-v2-copy p { color:#cbd5e1; font-size:18px; line-height:1.7; max-width:760px; }
.landing-v2-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0; }
.landing-v2-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 160px)); gap:14px; }
.landing-v2-stats div { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.08); border-radius:22px; padding:18px; backdrop-filter:blur(18px); }
.landing-v2-stats b { display:block; font-size:36px; color:#fff; }
.landing-v2-stats span { color:#cbd5e1; font-weight:800; font-size:13px; }
.landing-v2-panel { display:grid; place-items:center; }
.phone-card { width:100%; background:rgba(255,255,255,.96); color:#0f172a; border-radius:36px; padding:22px; box-shadow:0 38px 120px rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.24); }
.phone-top { display:flex; gap:6px; margin-bottom:16px; }
.phone-top span { width:10px; height:10px; border-radius:50%; background:#cbd5e1; }
.qr-preview-box { display:grid; place-items:center; gap:8px; background:linear-gradient(180deg,#f8fafc,#eff6ff); border:1px solid #dbeafe; border-radius:28px; padding:24px; margin-bottom:18px; text-align:center; }
.qr-preview-box strong { font-size:20px; color:#1d4ed8; }
.qr-preview-box small { color:#64748b; font-weight:800; }
.fake-qr { width:172px; height:172px; display:grid; grid-template-columns:repeat(7,1fr); gap:5px; background:#fff; padding:12px; border-radius:18px; box-shadow:inset 0 0 0 1px #e2e8f0; }
.fake-qr i { display:block; border-radius:4px; background:#e2e8f0; }
.fake-qr i.on { background:#0f172a; }
.landing-code-form { display:grid; gap:10px; }
.landing-code-form label { font-weight:900; color:#334155; }
.landing-code-form input { width:100%; border:1px solid #cbd5e1; border-radius:16px; padding:14px 15px; font-size:18px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; outline:none; }
.landing-code-form input:focus { border-color:#2563eb; box-shadow:0 0 0 5px rgba(37,99,235,.14); }
.mini-note { margin:14px 0 0; color:#64748b; text-align:center; font-size:14px; line-height:1.55; }
.landing-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:32px 0; }
.landing-feature-grid article { background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.13); border-radius:24px; padding:20px; backdrop-filter:blur(18px); }
.landing-feature-grid span { display:inline-flex; padding:7px 10px; border-radius:999px; background:rgba(147,197,253,.16); color:#bfdbfe; font-weight:1000; margin-bottom:12px; }
.landing-feature-grid b { display:block; color:#fff; font-size:18px; margin-bottom:8px; }
.landing-feature-grid p { margin:0; color:#cbd5e1; line-height:1.55; font-size:14px; }
.landing-latest-card { background:rgba(255,255,255,.96); color:#0f172a; border-radius:30px; padding:26px; box-shadow:0 30px 90px rgba(0,0,0,.24); }
.landing-session-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.landing-session-item { display:grid; grid-template-columns:1fr auto; gap:8px 14px; align-items:center; border:1px solid #e2e8f0; background:#fff; border-radius:20px; padding:16px; }
.landing-session-item:hover { border-color:#93c5fd; transform:translateY(-2px); }
.landing-session-item b { display:block; font-size:17px; color:#0f172a; }
.landing-session-item span { display:block; color:#64748b; margin-top:4px; }
.landing-session-item em { font-style:normal; background:#0f172a; color:#fef08a; border-radius:14px; padding:9px 12px; font-weight:1000; letter-spacing:.06em; }
.landing-session-item small { grid-column:1 / -1; color:#2563eb; font-weight:900; }
@media(max-width: 980px){
    .landing-v2-hero { grid-template-columns:1fr; }
    .landing-feature-grid { grid-template-columns:repeat(2,1fr); }
    .phone-card { max-width:460px; }
}
@media(max-width: 620px){
    .landing-v2-nav { align-items:flex-start; flex-direction:column; }
    .landing-v2-actions, .landing-v2-nav-actions { width:100%; }
    .landing-v2-actions .btn, .landing-v2-nav-actions .btn { flex:1; }
    .landing-v2-stats, .landing-feature-grid, .landing-session-list { grid-template-columns:1fr; }
    .landing-v2-copy h1 { letter-spacing:-1.2px; }
}

/* ===== Student QR scan page contrast polish ===== */
.qr-scan-page .login-visual{
    align-items:start;
    padding:22px 16px 36px;
    background:
        radial-gradient(circle at 12% 0%, rgba(59,130,246,.36), transparent 34%),
        radial-gradient(circle at 92% 90%, rgba(34,197,94,.22), transparent 28%),
        linear-gradient(135deg,#020617,#0f172a 48%,#172554);
}
.qr-student-card{
    width:min(520px,100%);
    margin-top:18px;
    background:#ffffff;
    color:#0f172a;
    border:1px solid #dbeafe;
    box-shadow:0 34px 110px rgba(2,6,23,.38);
}
.qr-student-card .login-logo{width:72px;height:72px;border-radius:24px;margin-bottom:20px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-size:20px;}
.qr-student-card h1{color:#0f172a;font-size:clamp(34px,8vw,48px);letter-spacing:-.045em;margin-bottom:12px;}
.qr-student-card .qr-scan-subtitle{max-width:400px;margin:0 auto 18px;color:#334155;font-size:18px;font-weight:750;line-height:1.55;}
.qr-login-context.qr-login-context-contrast{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0 20px;padding:0;background:transparent;border:0;color:#0f172a;}
.qr-login-context-contrast div{display:grid;grid-template-columns:112px 1fr;gap:10px;align-items:center;padding:13px 14px;border-radius:18px;background:linear-gradient(135deg,#0f172a,#1e3a8a);border:1px solid #1d4ed8;box-shadow:0 10px 28px rgba(37,99,235,.12);}
.qr-login-context-contrast span{color:#bfdbfe;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;}
.qr-login-context-contrast b{color:#ffffff;font-size:17px;line-height:1.3;}
.qr-student-card .login-form label{color:#0f172a;font-size:18px;}
.qr-student-card .login-form input{min-height:58px;border:2px solid #cbd5e1;border-radius:20px;color:#0f172a;font-size:18px;font-weight:900;background:#ffffff;}
.qr-student-card .login-form input::placeholder{color:#94a3b8;font-weight:700;}
.qr-student-card .login-form input:focus{border-color:#2563eb;box-shadow:0 0 0 6px rgba(37,99,235,.14);}
.qr-student-card .btn-primary{min-height:58px;border-radius:20px;font-size:17px;background:linear-gradient(135deg,#2563eb,#1d4ed8);}
.qr-expired-box{padding:18px;border-radius:22px;background:#fee2e2;color:#7f1d1d;border:1px solid #fecaca;font-weight:900;line-height:1.55;text-align:center;}
.qr-scan-page .login-footnote,.qr-scan-page .center-link{display:none!important;}
@media(max-width:560px){.qr-student-card{padding:28px 22px;border-radius:28px}.qr-login-context-contrast div{grid-template-columns:1fr;gap:4px}.qr-student-card h1{font-size:40px}.qr-student-card .qr-scan-subtitle{font-size:16px}}
.qr-scan-page.login-body{overflow:auto;display:block;}


/* ===== QR student scan contrast fix v4 ===== */
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin:20px 0 22px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
}
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .qr-context-row,
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast > div{
    display:grid !important;
    grid-template-columns:120px minmax(0,1fr) !important;
    gap:12px !important;
    align-items:center !important;
    padding:15px 16px !important;
    border-radius:20px !important;
    background:linear-gradient(135deg,#0f172a,#1e3a8a) !important;
    border:1px solid rgba(147,197,253,.72) !important;
    box-shadow:0 14px 34px rgba(15,23,42,.24) !important;
    color:#ffffff !important;
}
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .qr-context-row span,
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast > div > span{
    color:#dbeafe !important;
    opacity:1 !important;
    font-size:12px !important;
    line-height:1.25 !important;
    font-weight:950 !important;
    text-transform:uppercase !important;
    letter-spacing:.06em !important;
    text-align:left !important;
}
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .qr-context-row b,
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast > div > b{
    color:#ffffff !important;
    font-size:18px !important;
    line-height:1.3 !important;
    font-weight:950 !important;
    text-align:left !important;
    overflow-wrap:anywhere !important;
}
body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .countdown-row{
    background:linear-gradient(135deg,#7c2d12,#dc2626) !important;
    border-color:rgba(254,202,202,.85) !important;
}
body.qr-scan-page #qrLoginCountdown{
    display:inline-flex !important;
    min-width:34px !important;
    justify-content:center !important;
    padding:3px 8px !important;
    margin-right:4px !important;
    border-radius:999px !important;
    background:#ffffff !important;
    color:#b91c1c !important;
    font-weight:1000 !important;
}
@media(max-width:560px){
    body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .qr-context-row,
    body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast > div{
        grid-template-columns:1fr !important;
        gap:5px !important;
        padding:14px 15px !important;
    }
    body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast .qr-context-row b,
    body.qr-scan-page .qr-student-card .qr-login-context.qr-login-context-contrast > div > b{
        font-size:17px !important;
    }
}

/* v6: logo ảnh tùy chỉnh */
.login-logo.has-logo,
.brand-mark.has-logo,
.brand-logo.has-logo,
.qr-brand-mark.has-logo {
    background: #fff !important;
    padding: 5px !important;
    overflow: hidden !important;
}
.login-logo img,
.brand-mark img,
.brand-logo img,
.qr-brand-mark img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}


/* v7: khóa kích thước logo ảnh ở các trang đăng nhập để không bị tràn vào form */
.login-card > .login-logo,
.login-shell .login-logo {
    width: 98px !important;
    height: 98px !important;
    margin: 10px auto 24px !important;
    border-radius: 32px !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;
}
.login-card > .login-logo.has-logo,
.login-shell .login-logo.has-logo {
    background: #fff !important;
    border: 1px solid #dbe3ef !important;
    padding: 9px !important;
    box-sizing: border-box !important;
}
.login-card > .login-logo img,
.login-shell .login-logo img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}


/* v8: phóng lớn logo và ảnh giới thiệu trang chủ */
body.index-modern .topbar { min-height: 132px !important; padding-top: 38px !important; }
body.index-modern .brand-logo { width: 84px !important; height: 84px !important; border-radius: 28px !important; }
body.index-modern .brand-logo.has-logo { padding: 8px !important; }
body.teacher-login-modern .login-logo { width: 98px !important; height: 98px !important; margin: 10px auto 24px !important; border-radius: 32px !important; }
body.teacher-login-modern .login-logo.has-logo { padding: 9px !important; }
.manage-topbar .brand-mark { width: 74px !important; height: 74px !important; border-radius: 26px !important; }
.manage-topbar .brand-mark.has-logo { padding: 8px !important; }
.home-illustration { width: 100%; aspect-ratio: 1/1; display:block; object-fit:cover; border-radius:30px; }
.illustration-main-card { padding:16px; overflow:hidden; }
.hero-code-box { margin-top:16px; border-radius:28px; border:1px solid rgba(148,163,184,.24); overflow:hidden; }


/* v9: Sửa lỗi logo/nền ở trang sinh viên quét QR và cố định biểu tượng QR */
body.qr-scan-page .login-visual{
    background:
        radial-gradient(circle at 16% 4%, rgba(59,130,246,.30), transparent 32%),
        radial-gradient(circle at 92% 86%, rgba(20,184,166,.22), transparent 30%),
        linear-gradient(135deg,#020617,#0f172a 50%,#172554) !important;
    overflow-x:hidden !important;
}
body.qr-scan-page .login-card.qr-student-card{
    position:relative !important;
    overflow:hidden !important;
    isolation:isolate !important;
    background:#ffffff !important;
}
body.qr-scan-page .login-card.qr-student-card::before,
body.qr-scan-page .login-card.qr-student-card::after{
    content:"" !important;
    position:absolute !important;
    z-index:-1 !important;
    pointer-events:none !important;
    border-radius:999px !important;
}
body.qr-scan-page .login-card.qr-student-card::before{
    width:220px !important;
    height:220px !important;
    right:-120px !important;
    top:-110px !important;
    background:rgba(37,99,235,.08) !important;
}
body.qr-scan-page .login-card.qr-student-card::after{
    width:170px !important;
    height:170px !important;
    left:-95px !important;
    bottom:-95px !important;
    background:rgba(6,182,212,.08) !important;
}
body.qr-scan-page .qr-scan-logo-fallback{
    width:76px !important;
    height:76px !important;
    margin:0 auto 20px !important;
    border-radius:26px !important;
    display:grid !important;
    place-items:center !important;
    background:linear-gradient(135deg,#2563eb,#06b6d4) !important;
    color:#fff !important;
    font-size:20px !important;
    font-weight:1000 !important;
    letter-spacing:.02em !important;
    box-shadow:0 18px 42px rgba(37,99,235,.28) !important;
    overflow:hidden !important;
}
body.qr-scan-page .qr-scan-logo-fallback img,
body.qr-scan-page .qr-student-card > .login-logo img{
    display:none !important;
}

/* ===== Student note form v10 ===== */
.note-answer-panel { overflow: hidden; }
.note-answer-head { align-items: flex-start; }
.note-answer-head .muted { margin: 6px 0 0; }
.note-answer-form { display: grid; gap: 16px; }
.note-answer-item {
    border: 1px solid #dbeafe;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border-radius: 22px;
    padding: 18px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}
.note-answer-title {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
    align-items: start;
    margin-bottom: 12px;
}
.note-answer-title > span {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 1000;
    background: linear-gradient(135deg, #2563eb, #06b6d4);
    box-shadow: 0 12px 24px rgba(37, 99, 235, .20);
}
.note-answer-title label {
    display: block;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    line-height: 1.25;
}
.note-answer-title small {
    display: block;
    color: #64748b;
    font-size: 14px;
    line-height: 1.55;
    margin-top: 4px;
}
.note-answer-item textarea {
    width: 100%;
    min-height: 128px;
    resize: vertical;
    border: 1px solid #d0d5dd;
    border-radius: 18px;
    background: #fff;
    color: #0f172a;
    font-size: 16px;
    line-height: 1.6;
    padding: 15px 16px;
    outline: none;
}
.note-answer-item textarea:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 5px rgba(37, 99, 235, .12);
}
.note-form-note { margin: 0; }
@media(max-width: 700px) {
    .note-answer-title { grid-template-columns: 36px 1fr; }
    .note-answer-title > span { width:36px; height:36px; border-radius:12px; }
    .note-answer-title label { font-size: 17px; }
    .note-answer-item { padding: 15px; border-radius: 20px; }
}

/* ===== v11: note statistics and student logout close page ===== */
.note-stat-panel { margin-top: 18px; }
.note-stat-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 16px 0 18px;
}
.note-stat-card {
    border: 1px solid #dbeafe;
    border-radius: 20px;
    padding: 16px 18px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.note-stat-card span {
    display: block;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 8px;
}
.note-stat-card b {
    display: block;
    color: #0f172a;
    font-size: 26px;
    line-height: 1.15;
    font-weight: 1000;
}
.note-detail-head { margin-top: 18px; }
.note-detail-head h3 { margin: 0; font-size: 20px; color: #0f172a; }
.note-stat-table-wrap,
.note-response-table-wrap {
    max-height: 420px;
    overflow: auto;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
}
.note-stat-table th,
.note-response-table th {
    position: sticky;
    top: 0;
    z-index: 2;
}
.note-content-cell {
    min-width: 280px;
    max-width: 520px;
    white-space: normal;
    line-height: 1.55;
}
.logout-close-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}
.logout-close-card {
    width: min(520px, 100%);
    border-radius: 32px;
    background: #fff;
    padding: 34px 28px;
    text-align: center;
    box-shadow: 0 26px 70px rgba(15, 23, 42, .16);
    border: 1px solid rgba(148, 163, 184, .22);
}
.logout-close-card h1 { margin: 12px 0 8px; color: #0f172a; font-size: 30px; }
.logout-close-card p { margin: 0; color: #64748b; font-size: 17px; line-height: 1.6; }
.close-fallback {
    margin-top: 18px;
    padding: 14px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
@media (max-width: 900px) {
    .note-stat-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .note-stat-cards { grid-template-columns: 1fr; }
    .note-content-cell { min-width: 220px; }
}
.alert-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
