.class-check-search input,
.absence-create-form select,
.absence-create-form textarea,
.substitute-form select,
.substitute-form input {
    width: 100%;
    padding: 12px;
    border: 1px solid #b9c8db;
    border-radius: 9px;
    background: #fff;
    font: inherit;
}

.absence-lessons {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.absence-date-range{display:grid;grid-template-columns:1fr 1fr;gap:10px}.absence-period-preview{display:grid;gap:14px;margin-bottom:20px}.absence-day{padding:16px;border:1px solid #d8e2ef;border-radius:12px;background:#f8fafc}.absence-day.is-available{border-left:5px solid #15945c;background:#f1fbf6}.absence-day.is-skipped{border-left:5px solid #94a3b8}.absence-day>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.absence-day>header div{display:flex;gap:9px}.absence-day>header span,.absence-day>header small,.absence-day>p{color:#64748b}.absence-day>p{margin:0}.absence-day .absence-lessons{margin:0}.absence-batch-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.absence-batch-nav a{padding:9px 13px;border:1px solid #c3d2e5;border-radius:999px;color:#31506f;background:#fff}.absence-batch-nav a.is-current{border-color:#176ff2;color:#fff;background:#176ff2}

.absence-lessons article {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px;
    border-radius: 10px;
    background: #eef5ff;
}

.absence-lessons article strong { color: #176ff2; }
.absence-lessons article span { color: #64748b; font-size: 12px; }

.absence-create-form {
    display: grid;
    grid-template-columns: 240px 1fr auto;
    align-items: end;
    gap: 14px;
    padding-top: 20px;
    border-top: 1px solid #dbe4ef;
}

.absence-create-form label,
.substitute-form label {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-weight: 700;
}

.substitution-rule {
    margin-bottom: 20px;
    padding: 16px 20px;
    border: 1px solid #f0c879;
    border-radius: 12px;
    color: #704b08;
    background: #fff4d9;
}

.substitution-lesson__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.substitution-lesson__header h2 { margin: 8px 0 4px; }
.substitution-lesson__header p { margin: 0; color: #64748b; }

.period-badge,
.substitution-status {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.period-badge { color: #0756bd; background: #e0edff; }
.substitution-status.is-assigned { color: #087947; background: #d9f7e8; }
.substitution-status.is-uncovered { color: #b4233b; background: #ffe0e5; }
.substitution-status.is-suggested { color: #0756bd; background: #e0edff; }
.substitute-form label small { color: #64748b; font-size: 12px; font-weight: 600; }
.current-substitute { margin: 16px 0; padding: 12px; border-radius: 9px; color: #087947; background: #e8faf1; }

.substitute-form {
    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    align-items: start;
    gap: 12px;
    margin-top: 18px;
}

.substitute-form > .button { margin-top: 27px; min-height: 45px; }

.no-candidates { margin: 12px 0 0; color: #b4233b; font-weight: 700; }

@media (max-width: 900px) {
    .absence-lessons { grid-template-columns: repeat(2, 1fr); }
    .absence-create-form, .substitute-form { grid-template-columns: 1fr; }
    .substitute-form > .button { margin-top: 0; }
}

@media (max-width: 560px) {
    .absence-lessons { grid-template-columns: 1fr; }
    .absence-date-range { grid-template-columns: 1fr; }
}
