:root { --ink:#172033; --muted:#667085; --line:#e4e7ec; --bg:#f6f8fb; --blue:#1438a6; }
html, body { margin:0; min-height:100%; font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:var(--bg); }
a { color:inherit; }
.topbar { height:68px; padding:0 24px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:700; }
.brand img { width:38px; height:38px; object-fit:contain; }
.user-area { display:flex; align-items:center; gap:12px; font-size:14px; }
.user-area form { margin:0; }
.content-wrap { width:min(1120px, calc(100% - 32px)); margin:32px auto 64px; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:24px; }
.page-heading h1 { margin:3px 0 6px; font-size:34px; }
.page-heading p { margin:0; color:var(--muted); }
.eyebrow { text-transform:uppercase; letter-spacing:.08em; font-size:12px; font-weight:700; color:var(--blue)!important; }
.panel, .auth-card, .login-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; box-shadow:0 2px 8px rgba(16,24,40,.04); }
.competition-list { display:grid; gap:10px; }
.competition-row { background:#fff; border:1px solid var(--line); border-radius:12px; padding:17px 18px; text-decoration:none; display:flex; align-items:center; justify-content:space-between; gap:16px; transition:.15s ease; }
.competition-row:hover { border-color:#b8c2db; transform:translateY(-1px); }
.competition-row strong { display:block; font-size:17px; }
.competition-row span { display:block; margin-top:3px; color:var(--muted); font-size:14px; }
.competition-date { white-space:nowrap; font-weight:600; }
.tool-stack { display:grid; gap:20px; }
.panel h2 { margin:0 0 6px; font-size:23px; }
.panel > p, .section-header p { color:var(--muted); }
.section-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.count-badge { background:#eef2ff; color:var(--blue); padding:6px 10px; border-radius:999px; font-size:13px; font-weight:700; white-space:nowrap; }
.event-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-top:16px; }
.event-card { border:1px solid var(--line); border-radius:10px; padding:13px; }
.check-list { display:grid; gap:7px; margin-top:9px; }
.check-list label, .check-inline { display:flex; gap:8px; align-items:center; }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-top:15px; }
.diploma-table-wrap { overflow-x:auto; margin-top:14px; }
.back-link { display:inline-block; margin-bottom:18px; text-decoration:none; color:var(--muted); }
.login-page { min-height:calc(100vh - 160px); display:grid; place-items:center; }
.login-card { max-width:520px; text-align:center; padding:40px; }
.login-logo { width:110px; max-height:82px; object-fit:contain; margin-bottom:14px; }
.login-card p { color:var(--muted); margin-bottom:24px; }
.login-card small { display:block; color:var(--muted); margin-top:14px; }
.auth-card { max-width:600px; margin:80px auto; }
@media (max-width:700px) { .topbar { padding:0 14px; } .brand span { display:none; } .user-area span { display:none; } .content-wrap { width:min(100% - 20px,1120px); margin-top:20px; } .page-heading { flex-direction:column; } .competition-row { align-items:flex-start; } }
