*{box-sizing:border-box}body{margin:0;font-family:Arial;background:#f3f6fb;color:#172033}
.layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
aside{background:#101828;color:white;padding:22px}aside h2{margin:0}aside small{color:#98a2b3}
nav{display:grid;gap:8px;margin-top:28px}nav a{color:#d0d5dd;text-decoration:none;padding:12px;border-radius:10px}
nav a.active,nav a:hover{background:#1d2939;color:white}
main header{background:white;padding:18px 28px;border-bottom:1px solid #e4e7ec}
main section{padding:26px}.card{background:white;border:1px solid #e4e7ec;border-radius:16px;padding:20px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stats .card b{display:block;font-size:38px;color:#2563eb}.stats .card span{color:#667085}
input,textarea,select{width:100%;padding:12px;border:1px solid #d0d5dd;border-radius:10px;margin:7px 0 14px}
button{border:0;border-radius:10px;padding:12px 18px;background:#2563eb;color:white;font-weight:bold;cursor:pointer}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #eaecf0}
.login{display:grid;place-items:center;min-height:100vh}.login .card{width:min(430px,calc(100% - 32px))}.error{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px}
.home{max-width:600px;margin:70px auto}.home a{display:inline-block;background:#2563eb;color:white;text-decoration:none;padding:12px 18px;border-radius:10px}
@media(max-width:800px){.layout{grid-template-columns:1fr}aside{position:static}}

.success{background:#dcfce7;color:#166534;padding:14px;border-radius:10px;margin-bottom:16px}
.link-button{display:inline-block;background:#e8eef8;color:#172033;text-decoration:none;padding:8px 12px;border-radius:8px}
.question-card{border-top:1px solid #e5e7eb;padding:18px 0}.question-card:first-child{border-top:0}
.danger{background:#dc2626}.muted{color:#667085}
.error-message {
    margin-bottom: 16px;
    padding: 14px;
    border-radius: 10px;
    background: #fee2e2;
    color: #991b1b;
    font-weight: 700;
}

.filter-row {
    display: grid;
    grid-template-columns: 240px 1fr auto auto;
    gap: 10px;
    align-items: center;
}

.table-scroll {
    overflow-x: auto;
}

.school-edit-form {
    display: grid;
    grid-template-columns:
        minmax(180px, 0.8fr)
        minmax(180px, 0.8fr)
        minmax(300px, 2fr)
        90px
        auto;
    gap: 8px;
    align-items: center;
}

.subject-edit-form {
    display: grid;
    grid-template-columns:
        minmax(240px, 2fr)
        100px
        100px
        90px
        auto;
    gap: 8px;
    align-items: center;
}

.school-edit-form input,
.school-edit-form select,
.subject-edit-form input {
    margin: 0;
}

.inline-checkbox {
    display: flex;
    gap: 7px;
    align-items: center;
    margin: 0;
}

.inline-checkbox input {
    width: auto;
    margin: 0;
}

.delete-form {
    margin-top: 8px;
}

@media (max-width: 950px) {
    .filter-row,
    .school-edit-form,
    .subject-edit-form {
        grid-template-columns: 1fr;
    }
}
.olympiad-edit-form {
    display: grid;
    grid-template-columns: 1fr 100px auto;
    gap: 10px;
    align-items: center;
}

.olympiad-edit-form input {
    margin: 0;
}

@media (max-width: 800px) {
    .olympiad-edit-form {
        grid-template-columns: 1fr;
    }
}
.form-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.section-divider {
    margin: 28px 0;
    border: 0;
    border-top: 1px solid #e4e7ec;
}
.ranking-medal {
    font-size: 24px;
}