:root{
  --bg:#f3f6fb;
  --panel:#ffffff;
  --text:#0f172a;
  --muted:#6b7892;
  --line:#dfe7f3;
  --primary:#1664ff;
  --primary-dark:#0c4ed0;
  --danger:#dc2626;
  --danger-soft:#fff1f2;
  --green:#16a34a;
  --green-soft:#dcfce7;
  --orange:#f59e0b;
  --orange-soft:#fef3c7;
  --sidebar:#0e1728;
  --sidebar-soft:#1f2a3d;
  --shadow:0 16px 42px rgba(15,23,42,.08);
  --radius:18px;
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:#155eef;text-decoration:none;font-weight:800}
a:hover{text-decoration:underline}
img{max-width:100%}

/* Layout */
.app-shell{display:flex;min-height:100vh;background:var(--bg)}
.sidebar{width:224px;position:fixed;left:0;top:0;bottom:0;z-index:20;display:flex;flex-direction:column;gap:22px;background:var(--sidebar);padding:18px 14px;overflow:auto}
.brand{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:17px;min-height:74px;padding:12px;box-shadow:0 12px 28px rgba(0,0,0,.16);text-decoration:none}
.brand img{display:block;width:100%;height:auto;max-height:64px;object-fit:contain}
.nav{display:flex;flex-direction:column;gap:7px}
.nav a{display:flex;align-items:center;min-height:42px;padding:11px 12px;border-radius:12px;color:#e6efff;text-decoration:none;font-weight:800;transition:.15s ease;background:transparent}
.nav a:hover,.nav a.active{background:var(--sidebar-soft);color:#fff;text-decoration:none}
.main{width:calc(100% - 224px);min-height:100vh;margin-left:224px;padding:28px 32px 48px;background:var(--bg)}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px}
.topbar h1{margin:0;color:var(--text);font-size:28px;line-height:1.12;font-weight:900;letter-spacing:-.02em}
.topbar p{margin:6px 0 0;color:var(--muted)}
.admin-pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 15px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.admin-pill strong{font-weight:900;color:#334155}
.admin-pill span{color:#9ca3af}
.admin-pill a{color:#334155;text-decoration:none;font-weight:900}
.admin-pill a:hover{color:var(--primary)}

/* Cards */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden}
.panel.roomy{overflow:hidden}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line);background:#fff}
.panel-head h2{margin:0;color:var(--text);font-size:20px;line-height:1.2;font-weight:900;letter-spacing:-.01em}
.panel-head p{margin:6px 0 0;color:var(--muted)}
.panel-body{padding:22px 24px}
.narrow-panel{max-width:980px}
.section-actions,.table-actions,.form-actions,.filter-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* Statistics */
.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px;margin-bottom:22px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.stat-card span{display:block;color:var(--muted);font-size:13px;font-weight:800}
.stat-card strong{display:block;margin-top:8px;color:var(--text);font-size:34px;line-height:1;font-weight:900;letter-spacing:-.02em}

/* Tables */
.table-wrap{width:100%;overflow:auto;background:#fff}
table{width:100%;border-collapse:collapse;border-spacing:0}
th,td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}
th{background:#f8fbff;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:900;white-space:nowrap}
td{color:var(--text)}
td code{display:inline-flex;align-items:center;background:#f1f5f9;border-radius:8px;padding:4px 7px;color:#334155;font-size:12px;font-weight:800}
.empty{text-align:center;color:var(--muted);padding:36px!important}
.user-cell{display:flex;align-items:center;gap:12px;min-width:220px}
.user-cell img,.avatar-fallback{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.avatar-fallback,.big-avatar{display:flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;font-weight:900}
.user-cell strong{display:block;color:var(--text);font-weight:900}
.user-cell span,.muted{display:block;color:var(--muted);font-size:13px}
.table-link,.link-button{appearance:none;border:0;background:transparent;color:#155eef;font-weight:900;text-decoration:none;cursor:pointer;padding:0;font:inherit;white-space:nowrap}
.table-link:hover,.link-button:hover{text-decoration:underline}
.inline-form{display:inline;margin:0}

/* Forms */
input,select,textarea{width:100%;height:40px;border:1px solid #cfd8e6;border-radius:12px;background:#fff;color:var(--text);padding:10px 12px;font:inherit;outline:none;transition:border-color .15s ease, box-shadow .15s ease}
textarea{height:auto;min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(22,100,255,.12)}
label{font-weight:800;color:#334155}
label span{display:block;margin-bottom:7px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.filters-form,.settings-form,.edit-form,.search-form{padding:22px 24px;display:grid;gap:16px}
.filters-form{grid-template-columns:2fr 1.2fr 1fr 1fr 1fr 1fr;align-items:end}
.settings-form{grid-template-columns:repeat(3,minmax(220px,1fr));align-items:end}
.edit-form{grid-template-columns:1fr;max-width:900px}
.search-form{grid-template-columns:1fr auto;align-items:end;padding:0;min-width:min(560px,100%)}
.settings-form .form-actions,.edit-form .form-actions{grid-column:1/-1;align-items:center;padding-top:4px}
.filter-actions{align-items:end}

/* Buttons */
button,.btn,button.btn,input[type="submit"]{appearance:none;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:12px;padding:10px 15px;min-height:40px;font:inherit;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.15s ease;line-height:1.1;white-space:nowrap}
button:hover,.btn:hover,input[type="submit"]:hover{border-color:#c7d2e5;background:#f8fbff;text-decoration:none}
.btn.primary,button.primary,button.btn.primary,input[type="submit"].primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 8px 18px rgba(22,100,255,.22)}
.btn.primary:hover,button.primary:hover,button.btn.primary:hover,input[type="submit"].primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
.btn.danger,button.danger,button.btn.danger{background:var(--danger-soft);border-color:#fecdd3;color:var(--danger)}
.btn.danger:hover,button.danger:hover,button.btn.danger:hover{background:#ffe4e6}
.btn.small,button.small,button.btn.small{min-height:32px;padding:7px 10px;border-radius:10px;font-size:12px}
.button-stack{display:flex;flex-direction:column;gap:10px;margin-top:18px}

/* Status and alerts */
.alert{border-radius:14px;padding:14px 18px;margin:0 0 18px;font-weight:800;border:1px solid transparent}
.alert.success{background:var(--green-soft);color:#166534;border-color:#bbf7d0}
.alert.danger,.alert-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.score{font-weight:900;color:#0f172a}
.status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900;background:#eef2ff;color:#3730a3;white-space:nowrap}
.status.finished{background:#dcfce7;color:#166534}
.status.in_progress{background:#fef3c7;color:#92400e}
.status.reset{background:#fee2e2;color:#991b1b}

/* Detail */
.detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.75fr);gap:22px}
.profile-panel,.result-card{padding:24px}
.big-user{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.big-user img,.big-avatar{width:86px;height:86px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.big-user h2{margin:0 0 6px;color:var(--text);font-size:24px}
.big-user p{margin:3px 0;color:var(--muted)}
.info-list{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}
.info-list div{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:13px}
.info-list span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.info-list strong{display:block;margin-top:5px;color:var(--text)}
.result-card span{display:block;color:var(--muted);font-weight:900}
.result-card>strong{display:block;margin:10px 0;color:var(--text);font-size:48px;line-height:1;font-weight:900;letter-spacing:-.03em}
.result-card p{color:var(--muted)}
.progress{height:12px;background:#edf2f7;border-radius:999px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--primary);border-radius:999px}
.answers-list{padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.answer-item{border:1px solid var(--line);border-radius:15px;padding:17px;background:#fff}
.answer-item.correct{border-color:#bbf7d0;background:#f0fdf4}
.answer-item.wrong{border-color:#fecaca;background:#fff7f7}
.answer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.answer-top strong{font-weight:900}.answer-top span{font-weight:900}
.question-text{font-weight:900;line-height:1.5;margin:0 0 12px}
.answer-lines{display:grid;gap:8px}.answer-lines span{color:var(--muted);font-weight:900}.correct-text{color:#166534}

/* Login: fully styled and self-contained fallback-friendly */
body.auth-body,body.login-body{min-height:100vh;background:linear-gradient(135deg,#eef6ff 0%,#f7fbff 56%,#ffffff 100%);display:flex;align-items:center;justify-content:center;padding:24px}
.auth-page,.login-page{width:100%;display:flex;align-items:center;justify-content:center}
.auth-shell,.login-shell{width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 70px rgba(15,23,42,.13)}
.auth-hero,.login-hero{background:linear-gradient(135deg,#0e1728 0%,#14243d 55%,#0c4468 100%);color:#fff;padding:42px;display:flex;flex-direction:column;justify-content:center;gap:24px;min-height:560px}
.auth-hero-logo,.login-hero-logo{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:22px;padding:18px;box-shadow:0 18px 36px rgba(0,0,0,.18);width:min(320px,100%)}
.auth-hero-logo img,.login-hero-logo img{display:block;width:100%;max-height:130px;object-fit:contain}
.auth-hero h1,.login-hero h1{font-size:36px;line-height:1.08;margin:0;letter-spacing:-.03em}
.auth-hero p,.login-hero p{font-size:16px;line-height:1.65;color:#cbd5e1;margin:0;max-width:520px}
.auth-hero-badge,.login-badge{display:inline-flex;width:max-content;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 13px;color:#e6f5ff;font-weight:900}
.auth-card,.login-card{padding:42px;display:flex;flex-direction:column;justify-content:center;background:#fff}
.auth-card h2,.login-card h2{margin:0 0 7px;color:var(--text);font-size:30px;line-height:1.15;font-weight:900;letter-spacing:-.02em}
.auth-card p,.login-card p{margin:0 0 24px;color:var(--muted)}
.auth-form,.login-form{display:grid;gap:14px}
.auth-form label,.login-form label{display:grid;gap:7px;font-weight:900;color:#334155}
.auth-form input,.login-form input{height:46px;border-radius:13px}
.auth-form button,.login-form button{width:100%;height:46px;margin-top:4px;border-radius:13px;background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(22,100,255,.24)}
.auth-form button:hover,.login-form button:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.auth-foot,.login-foot{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center}

/* Print */
.print-only{display:none}
@media print{body{background:#fff}.sidebar,.topbar,.admin-pill,.nav,.button-stack,.panel-head a,.panel-head .btn,.no-print{display:none!important}.main{margin:0;width:100%;padding:0}.panel{border:0;box-shadow:none;border-radius:0}.print-only{display:block}.answer-item{page-break-inside:avoid}}

/* Responsive */
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}.filters-form{grid-template-columns:1fr 1fr 1fr}.settings-form{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}}
@media(max-width:860px){.sidebar{position:static;width:100%;height:auto}.app-shell{display:block}.brand{max-width:220px}.main{margin-left:0;width:100%;padding:18px}.topbar{flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr}.filters-form,.settings-form,.search-form{grid-template-columns:1fr}.info-list{grid-template-columns:1fr}.auth-shell,.login-shell{grid-template-columns:1fr}.auth-hero,.login-hero{min-height:auto;padding:28px}.auth-card,.login-card{padding:28px}}
@media(max-width:560px){body.auth-body,body.login-body{padding:12px}.main{padding:14px}.stats-grid{grid-template-columns:1fr}.panel-head{padding:18px}.filters-form,.settings-form,.edit-form,.answers-list{padding:18px}.auth-hero-logo,.login-hero-logo{width:100%}.auth-hero h1,.login-hero h1{font-size:28px}.auth-card h2,.login-card h2{font-size:26px}}
/* Patch V11 logout button and safe spacing fixes */
.admin-pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.logout-form{display:inline;margin:0;padding:0}
.logout-button{border:0;background:transparent;color:#506078;font:inherit;font-weight:900;cursor:pointer;padding:0;margin:0;line-height:1;text-decoration:none}
.logout-button:hover{color:#1664ff;text-decoration:underline}
.topbar{gap:18px}
@media(max-width:720px){.admin-pill{align-self:flex-start}.topbar{align-items:flex-start}}
