:root{
    --bg:#f3f7ff;
    --surface:#ffffff;
    --surface-2:#eef5ff;
    --ink:#10243f;
    --muted:#5a6b82;
    --line:#d5e1f2;
    --primary:#084fc7;
    --primary-2:#063c97;
    --yellow:#f5bf26;
    --yellow-2:#e3a90d;
    --teal:#087c9f;
    --success:#157347;
    --warning:#b8860b;
    --danger:#b42318;
    --shadow:0 18px 50px rgba(18,32,51,.08);
    --radius:12px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:Inter,Segoe UI,Arial,sans-serif;
    color:var(--ink);
    background:
        radial-gradient(circle at top left,rgba(245,191,38,.18) 0 240px,transparent 360px),
        linear-gradient(180deg,#eaf2ff 0%,#f8fbff 100%);
    line-height:1.5;
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}
.topbar{
    position:sticky;top:0;z-index:20;
    background:rgba(255,255,255,.9);
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(213,225,242,.88);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700}
.brand:hover{text-decoration:none}
.brand-mark{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:10px;
    background:linear-gradient(135deg,var(--primary),#0a72d7);
    color:#fff;font-size:14px;letter-spacing:.06em;
    border:2px solid rgba(245,191,38,.75);
    box-shadow:0 10px 24px rgba(8,79,199,.25);
}
.brand-text{font-size:15px}
.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}
.nav a,.nav .nav-user{font-size:14px;color:var(--muted)}
.button,.button-small{
    display:inline-flex;align-items:center;justify-content:center;
    border:1px solid transparent;border-radius:10px;padding:12px 18px;
    background:var(--primary);color:#fff;font-weight:700;text-decoration:none;
    box-shadow:0 8px 20px rgba(8,79,199,.2);
    cursor:pointer;
}
.button:hover,.button-small:hover{background:var(--primary-2);text-decoration:none;color:#fff}
.button:disabled,.button-small:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.button-small{padding:9px 13px;font-size:14px}
.button-outline{
    background:var(--yellow);color:#10243f;border-color:#d99c00;box-shadow:0 8px 20px rgba(245,191,38,.22);
}
.button-outline:hover{background:var(--yellow-2);color:#10243f}
.hero{
    padding:64px 0 40px;
}
.hero-grid{
    display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:stretch;
}
.eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--primary);margin-bottom:16px;
}
.hero h1{
    margin:0 0 16px;font-size:clamp(40px,5vw,66px);line-height:1.02;letter-spacing:-.03em;
}
.hero h1::after{
    content:"";
    display:block;
    width:84px;height:8px;
    margin-top:18px;
    border-radius:999px;
    background:var(--yellow);
}
.hero p{max-width:62ch;color:var(--muted);font-size:18px;margin:0 0 24px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-metrics{
    display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px
}
.metric{
    background:rgba(255,255,255,.92);border:1px solid var(--line);
    border-radius:var(--radius);padding:16px 18px;
}
.metric strong{display:block;font-size:24px}
.metric:first-child{border-top:4px solid var(--yellow)}
.metric span{font-size:13px;color:var(--muted)}
.hero-panel{
    background:
        linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
    border:1px solid var(--line);border-top:6px solid var(--yellow);
    border-radius:18px;box-shadow:var(--shadow);
    padding:24px;
}
.hero-panel h2{margin:0 0 10px;font-size:22px}
.hero-panel p,.hero-panel li{color:var(--muted)}
.check-list{margin:0;padding-left:18px;display:grid;gap:10px}
.section{padding:22px 0 48px}
.section-header{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px}
.section h2{margin:0;font-size:30px;letter-spacing:-.02em}
.section p.lead{margin:4px 0 0;color:var(--muted)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.panel{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:22px;
}
.panel::selection,.hero-panel::selection{background:var(--yellow);color:#10243f}
.panel h3{margin-top:0}
.panel-muted{background:linear-gradient(180deg,#f2f7ff,#eaf3ff)}
.form-grid{display:grid;gap:14px}
label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
input,select,textarea{
    width:100%;border:1px solid #cbd6e3;border-radius:10px;padding:12px 14px;
    font:inherit;background:#fff;color:var(--ink);
}
input:focus,select:focus,textarea:focus{
    outline:3px solid rgba(245,191,38,.35);
    border-color:var(--primary);
}
textarea{min-height:110px;resize:vertical}
.help{font-size:13px;color:var(--muted);margin-top:6px}
.row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stack{display:grid;gap:12px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{padding:12px 14px;border-bottom:1px solid #edf1f6;text-align:left;vertical-align:top}
th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f8fbff}
th:first-child{box-shadow:inset 4px 0 0 var(--yellow)}
tr:hover td{background:#fbfdff}
.badge{
    display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;
    font-size:12px;font-weight:700;border:1px solid transparent;
}
.badge-success{color:var(--success);background:#e8f6ee;border-color:#c7ead3}
.badge-warning{color:#6f4c00;background:#fff3ca;border-color:#f3d278}
.badge-danger{color:var(--danger);background:#fde8e6;border-color:#f6c1bb}
.badge-neutral{color:#475569;background:#eef2f7;border-color:#d7e0ea}
.alert{
    padding:13px 16px;border-radius:12px;margin:14px 0;border:1px solid transparent;
}
.alert-success{background:#eaf7ef;border-color:#c8ead4;color:#14603a}
.alert-error{background:#fdecec;border-color:#f6c1c1;color:#a82525}
.alert-warning{background:#fff8de;border-color:#f1df9c;color:#8b6800}
.landing-section{padding:32px 0}
.landing-surface{
    background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:20px;
    box-shadow:var(--shadow);padding:28px;
}
.feature-list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.feature{
    padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;
    border-top:4px solid var(--primary);
}
.feature:nth-child(even){border-top-color:var(--yellow)}
.feature h3{margin:0 0 8px;font-size:17px}
.feature p{margin:0;color:var(--muted);font-size:14px}
.site-footer{
    margin-top:26px;border-top:4px solid var(--yellow);background:#092b68;color:#dce8ff;
}
.site-footer a{color:#fff;font-weight:700}
.site-footer a:hover{color:var(--yellow)}
.footer-inner{
    display:flex;justify-content:space-between;gap:20px;align-items:center;
    padding:22px 0;color:#dce8ff;font-size:14px;flex-wrap:wrap;
}
.footer-meta{display:flex;gap:14px;flex-wrap:wrap}
.meta-box{
    border:1px dashed #cdd7e3;border-left:4px solid var(--yellow);
    border-radius:14px;padding:18px;background:#fbfdff;
}
.muted{color:var(--muted)}
.split{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.question{
    border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;
}
.question h4{margin:0 0 10px;font-size:18px}
.choices{display:grid;gap:10px}
.choice{
    display:flex;gap:10px;align-items:flex-start;padding:10px 12px;
    border:1px solid #dbe4ef;border-radius:10px;background:#fdfefe;
}
.choice:hover{border-color:var(--primary);background:#f7fbff}
.choice input{width:auto;margin-top:4px}
.choice strong{display:block}
.exam-timer{
    margin-top:16px;
    padding:16px;
    border-radius:14px;
    border:1px solid #c6d8ef;
    border-left:5px solid var(--yellow);
    background:#ffffff;
    box-shadow:0 10px 26px rgba(8,79,199,.08);
}
.exam-timer span,.exam-timer small{display:block;color:var(--muted)}
.exam-timer span{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.exam-timer strong{
    display:block;
    margin:6px 0 2px;
    font-size:32px;
    line-height:1;
    color:#082b68;
    font-variant-numeric:tabular-nums;
}
.exam-timer.timer-warning{
    border-left-color:var(--yellow);
    background:#fff8df;
}
.exam-timer.timer-danger{
    border-left-color:var(--danger);
    background:#fff0ee;
}
.exam-timer.timer-danger strong{color:var(--danger)}
.score{
    display:flex;gap:14px;flex-wrap:wrap;margin:14px 0 0;
}
.score-card{
    background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;min-width:160px;
}
.score-card span{display:block;color:var(--muted);font-size:13px}
.score-card strong{display:block;font-size:24px}
.admin-login{
    width:min(1180px,calc(100% - 32px));
    margin:46px auto 20px;
    display:grid;
    grid-template-columns:minmax(360px,1.05fr) .95fr;
    gap:24px;
    align-items:stretch;
}
.admin-login-card{
    background:#fff;
    border:1px solid var(--line);
    border-top:7px solid var(--yellow);
    border-radius:18px;
    box-shadow:0 24px 70px rgba(8,43,104,.14);
    padding:34px;
}
.admin-login-brand{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-bottom:22px}
.admin-login h1{margin:0 0 10px;font-size:clamp(32px,4vw,52px);line-height:1.05;letter-spacing:-.03em;color:#082b68}
.admin-login p{color:var(--muted);margin:0}
.admin-login-form{
    margin-top:18px;
    padding-top:20px;
    border-top:1px solid var(--line);
}
.admin-login-foot{
    margin-top:18px;
    padding:16px;
    border-radius:14px;
    background:#f7fbff;
    border:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    flex-wrap:wrap;
}
.admin-login-foot strong,.admin-login-foot span{display:block}
.admin-login-foot span{color:var(--muted);font-size:13px;margin-top:2px}
.admin-login-side{
    background:#082b68;
    color:#fff;
    border-radius:18px;
    border:1px solid #0b397e;
    box-shadow:0 24px 70px rgba(8,43,104,.18);
    padding:28px;
    display:grid;
    gap:16px;
    align-content:center;
    position:relative;
    overflow:hidden;
}
.admin-login-side::before{
    content:"";
    position:absolute;
    inset:0 0 auto auto;
    width:220px;height:220px;
    background:linear-gradient(135deg,rgba(245,191,38,.45),rgba(245,191,38,0));
}
.admin-signal{
    position:relative;
    border:1px solid rgba(255,255,255,.18);
    border-left:5px solid var(--yellow);
    border-radius:14px;
    padding:18px;
    background:rgba(255,255,255,.06);
}
.admin-signal span{display:block;color:var(--yellow);font-weight:800;font-size:13px;margin-bottom:8px}
.admin-signal strong{display:block;font-size:18px;margin-bottom:6px}
.admin-signal p{color:#dce8ff}
.admin-dashboard{padding-top:28px}
.admin-hero{
    background:#082b68;
    color:#fff;
    border-radius:20px;
    border:1px solid #0b397e;
    border-bottom:7px solid var(--yellow);
    box-shadow:0 22px 60px rgba(8,43,104,.16);
    padding:30px;
    margin-bottom:22px;
}
.admin-hero .eyebrow{color:var(--yellow)}
.admin-hero h2{font-size:clamp(32px,4vw,50px);color:#fff}
.admin-hero .lead{color:#dce8ff}
.admin-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    margin-top:22px;
}
.admin-stat{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
    padding:18px;
}
.admin-stat span{display:block;color:#dce8ff;font-size:13px}
.admin-stat strong{display:block;font-size:34px;line-height:1.1;margin-top:6px;color:#fff}
.admin-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}
.admin-toolbar a{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:10px;
    padding:9px 13px;
    color:#fff;
    background:rgba(255,255,255,.08);
    font-weight:700;
}
.admin-toolbar a:hover{background:var(--yellow);color:#10243f;text-decoration:none}
.admin-section{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:var(--shadow);
    padding:22px;
    margin-bottom:18px;
}
.admin-section>h3,.admin-section .section-title{margin:0 0 6px;color:#082b68}
.admin-section-intro{color:var(--muted);margin:0 0 18px}
.admin-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-form-card{
    border:1px solid var(--line);
    border-top:5px solid var(--yellow);
    border-radius:14px;
    padding:18px;
    background:#fbfdff;
}
.admin-table-card{
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    background:#fff;
}
.admin-table-card h3{
    margin:0;
    padding:16px 18px;
    background:#f7fbff;
    border-bottom:1px solid var(--line);
    color:#082b68;
}
.admin-action-row{display:flex;gap:8px;flex-wrap:wrap}
.audit-meta{
    margin:0;
    max-width:360px;
    white-space:pre-wrap;
    word-break:break-word;
    font-size:12px;
    line-height:1.45;
    color:#10243f;
    background:#f7fbff;
    border:1px solid var(--line);
    border-left:4px solid var(--yellow);
    border-radius:10px;
    padding:10px;
}
.review-list{display:grid;gap:16px}
.review-card{
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow);
    padding:20px;
}
.review-card.review-correct{border-top:5px solid var(--success)}
.review-card.review-incorrect{border-top:5px solid var(--danger)}
.review-card-head{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
    margin-bottom:16px;
}
.review-number{
    display:block;
    color:var(--primary);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:6px;
}
.review-card h3{
    margin:0 0 8px;
    font-size:20px;
    color:#082b68;
}
.review-answer-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}
.review-answer{
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8fbff;
    padding:14px;
}
.review-answer span{
    display:block;
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:8px;
}
.review-answer strong{
    display:block;
    color:#10243f;
    word-break:break-word;
}
.answer-right{
    border-color:#c7ead3;
    background:#eef8f2;
}
.answer-wrong{
    border-color:#f6c1bb;
    background:#fff3f2;
}
.review-explanation{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--line);
}
.review-explanation strong{display:block;margin-bottom:6px;color:#082b68}
.review-explanation p{margin:0;color:var(--muted)}
.preview-page .topbar{box-shadow:0 10px 30px rgba(8,43,104,.08)}
.preview-hero{
    min-height:calc(100vh - 76px);
    display:flex;
    align-items:center;
}
.preview-page .admin-dashboard{padding-top:36px}
.preview-page button{font:inherit}
@media (max-width: 980px){
    .hero-grid,.grid-3,.grid-2,.feature-list,.row,.row-3,.admin-login,.admin-stat-grid,.admin-card-grid,.review-answer-grid{grid-template-columns:1fr}
    .review-card-head{flex-direction:column}
    .hero-metrics{grid-template-columns:1fr}
    .section-header,.split,.topbar-inner,.footer-inner{align-items:flex-start;flex-direction:column}
    table{min-width:720px}
}
