*{box-sizing:border-box}
body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    background:#f7fafc;
    color:#102a43;
    font-size:18px;
    line-height:1.55;
}
a{color:#0f766e}
.topbar{
    background:#102A43;
    color:#fff;
    padding:14px 22px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.topbar a{color:#fff;text-decoration:none;margin-left:16px}
.auth-wrap{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px;
}
.auth-card{
    background:#fff;
    width:min(520px,100%);
    border-radius:24px;
    padding:34px;
    box-shadow:0 15px 40px rgba(16,42,67,.12);
}
.auth-card h1{font-size:34px;margin:0 0 10px}
label{display:block;font-weight:700;margin:14px 0 6px}
input,select,textarea,button{
    width:100%;
    font-size:18px;
    border-radius:14px;
    border:1px solid #cbd5e1;
    padding:14px;
}
button,.btn{
    display:inline-block;
    background:#ffb703;
    color:#071725;
    font-weight:900;
    border:0;
    text-decoration:none;
    cursor:pointer;
    border-radius:14px;
    padding:14px 18px;
    text-align:center;
}
.error{
    background:#fee2e2;
    color:#991b1b;
    padding:12px;
    border-radius:12px;
    margin:12px 0;
}
.success{
    background:#dcfce7;
    color:#166534;
    padding:12px;
    border-radius:12px;
    margin:12px 0;
}
.layout{
    display:grid;
    grid-template-columns:280px 1fr 420px;
    gap:20px;
    max-width:1500px;
    margin:0 auto;
    padding:20px;
}
.sidebar,.content,.assistant,.panel{
    background:#fff;
    border-radius:22px;
    padding:24px;
    box-shadow:0 10px 28px rgba(16,42,67,.08);
}
.sidebar{height:calc(100vh - 90px);overflow:auto;position:sticky;top:20px}
.assistant{height:calc(100vh - 90px);overflow:auto;position:sticky;top:20px}
h1{font-size:38px;line-height:1.15;margin:14px 0}
h2{margin-top:0}
.badge{
    display:inline-block;
    padding:8px 12px;
    background:#dcfce7;
    color:#166534;
    border-radius:99px;
    font-weight:700;
}
.muted{color:#64748b;font-size:15px}
.lessons{list-style:none;padding:0;margin:20px 0}
.lessons li{margin-bottom:8px}
.lessons a{
    display:block;
    text-decoration:none;
    color:#102a43;
    padding:10px;
    border-radius:12px;
    background:#f8fafc;
}
.lessons a:hover{background:#e6fffa}
.lesson-body{
    background:#fff7e6;
    border-left:6px solid #ffb703;
    padding:22px;
    border-radius:18px;
    margin-top:20px;
}
textarea{min-height:160px;resize:vertical}
.result{
    white-space:pre-wrap;
    background:#f0fdfa;
    border:1px solid #99f6e4;
    border-radius:18px;
    padding:18px;
    min-height:160px;
    margin-top:14px;
}
.course-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
@media(max-width:1100px){
    .layout,.course-grid{grid-template-columns:1fr}
    .sidebar,.assistant{height:auto;position:relative;top:auto}
}
