*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:#f2f5f9;color:#1d2733;line-height:1.55}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
header{background:linear-gradient(90deg,#1d4e89,#2e7d6b);color:#fff;padding:14px 0;margin-bottom:24px}
header .wrap{display:flex;justify-content:space-between;align-items:center}
.logo{color:#fff;font-weight:800;text-decoration:none;font-size:22px;letter-spacing:2px}
nav a{color:#dfe9f5;text-decoration:none;margin-left:16px}nav a:hover{color:#fff}
h1{margin-bottom:14px;font-size:24px}h2{margin:26px 0 12px}
.center-card{max-width:420px;margin:6vh auto;background:#fff;padding:34px 28px;border-radius:16px;
box-shadow:0 8px 30px rgba(20,40,80,.12);text-align:center}
.brand{font-size:34px;letter-spacing:6px;color:#1d4e89}
.sub{color:#66788c;margin:4px 0 22px}
.form{text-align:left}.form.wide{max-width:640px;margin:0 auto;background:#fff;padding:24px;border-radius:14px;box-shadow:0 4px 16px rgba(20,40,80,.08)}
.form label{display:block;margin-bottom:14px;font-size:14px;font-weight:600}
.form input,.form select,.form textarea{width:100%;padding:11px;margin-top:5px;border:1.5px solid #ccd6e2;border-radius:8px;font-size:15px;font-family:inherit}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:#2e7d6b}
.form .chk{display:flex;gap:8px;align-items:center}.form .chk input{width:auto}
.hint{display:block;font-weight:400;color:#7b8a9c;font-size:12.5px;margin-top:3px}
.btn{display:inline-block;background:#1d4e89;color:#fff;border:0;border-radius:8px;padding:11px 22px;
text-decoration:none;font-size:15px;cursor:pointer;margin-top:8px;font-weight:600}
.btn:hover{background:#163a68}.btn.big{width:100%;padding:13px;font-size:16px}
.btn:disabled{opacity:.6;cursor:wait}
.btn.ghost{background:#e7edf4;color:#1d4e89}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 16px}
.flash.error{background:#fdecea;color:#b03a2e}.flash.ok{background:#e8f6ef;color:#1e7a4f}
.hello{margin-bottom:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
a.card.cat{display:block;background:#fff;border-radius:14px;padding:20px;text-decoration:none;color:inherit;
box-shadow:0 3px 12px rgba(20,40,80,.08);transition:transform .15s}
a.card.cat:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(20,40,80,.14)}
a.card.cat h3{color:#1d4e89;margin-bottom:6px}
.badge{display:inline-block;background:#e8f1fb;color:#1d4e89;border-radius:20px;padding:3px 12px;font-size:13px;margin-top:10px}
.card.course{display:block;background:#fff;border-radius:14px;padding:18px;box-shadow:0 3px 12px rgba(20,40,80,.08);
cursor:pointer;position:relative}
.card.course:hover{box-shadow:0 6px 18px rgba(20,40,80,.16)}
.card.course.disabled{opacity:.62;cursor:default}
.card.course h3{margin-bottom:6px;padding-right:26px}
.radio{position:absolute;top:18px;right:16px;width:20px;height:20px;accent-color:#1d4e89}
.meta{color:#66788c;font-size:13.5px}
.places{margin-top:10px;font-weight:700}
.places.few{color:#c07d16}.places.none{color:#98a5b3}
.back{display:inline-block;margin-bottom:14px;color:#1d4e89;text-decoration:none}
.big-check{font-size:64px;color:#1e7a4f;line-height:1}
table{width:100%;border-collapse:collapse;background:#fff;font-size:14px;margin:10px 0 20px;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(20,40,80,.07)}
th,td{padding:10px 12px;border-bottom:1px solid #e6ecf2;text-align:left}
th{background:#eef3f9}.actions a{margin-right:10px}
button.link{background:none;border:0;color:#b03a2e;cursor:pointer;font-size:14px}
.stats{margin-bottom:14px}.modal{background:#fff;padding:20px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin:12px 0}
.cat-form{margin-top:8px}
@media(max-width:600px){
  .cards{grid-template-columns:1fr}
  h1{font-size:21px}
  table{font-size:13px}
  .actions a{display:inline-block;margin:2px 8px 2px 0}
}
