:root {
    --accent: #0B7CAC;
    --bg: #f5f9ff;
    --card: #ffffff;
    --text: #222222;
    --border: #d0e0ff;
    --shadow: rgba(0,0,0,.05);
    --ok: #28a745;
    --bad: #dc3545;
}
[data-theme="dark"] {
    --bg: #121212;
    --card: #1e1e1e;
    --text: #e0e0e0;
    --accent: #4dabf7;
    --border: #333;
    --shadow: rgba(0,0,0,.25);
    --ok: #34ce57;
    --bad: #f8616d;
}

* { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0;
     font-family: "Segoe UI", Arial, sans-serif;
     }
body {
     background: var(--bg); 
     color: var(--text); 
     line-height: 1.4; 
     transition: background .25s, color .25s; min-height: 100vh; display: flex; flex-direction: column; }

header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem; background: var(--card);
    border-bottom: 2px solid var(--border); 
    }
.logo-wrap { 
    display: flex;
    align-items: center;
    gap: 1rem; 
    }
header img { 
    height: 60px;
 }
h1 { 
    font-size: 1.4rem; 
    color: var(--accent); 
}
#themeToggle {
    background: none;
    border: none;
    font-size: 1.6rem;
    cursor: pointer;
    padding: .2rem .4rem;
    border-radius: 4px;
    transition: background .2s;
    width: 40px; 
    height: 40px; 
    display: flex; 
    align-items: center;
    justify-content: center;
}
#themeToggle:hover { 
    background: var(--border); 
}

main { 
    flex: 1; 
    max-width: 900px; 
    margin: 2rem auto; 
    padding: 0 1rem; 
}
.hidden { 
    display: none !important; 
}

#loginForm, #testContainer, #resultBox, #matchContest, #stubContest {
    background: var(--card); 
    border: 1px solid var(--border); 
    border-radius: 8px;
    padding: 2rem 1.5rem; 
    box-shadow: 0 2px 6px var(--shadow);
}
#loginForm h2, #testContainer h2, #resultBox h2, #matchContest h2, #stubContest h2 { 
    margin-bottom: 1rem;
 }
#loginForm label { 
    display: block; 
    margin-bottom: .25rem; 
    font-weight: 600; 
}
#loginForm input, #loginForm select, button {
    width: 100%;
    padding: .6rem;
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: 4px; 
    font-size: 1rem; 
    background: var(--bg); 
    color: var(--text);
}
button { 
    cursor: pointer; 
    background: var(--accent); 
    color: #fff; 
    border: none; 
}
button:hover { 
    opacity: .9; 
}

#progress { 
    margin-bottom: 1rem; 
    font-weight: 600;
 }
.question h3 { 
    margin-bottom: .6rem;
 }
.answers label {
    display: flex;
    align-items: center;
    padding: .5rem;
    border: 1px solid transparent;
    border-radius: 4px; cursor: pointer;
}
.answers label:hover { 
    background: var(--border); 
}
.answers input { 
    margin-right: .6rem;
 }

/* --- матчинг --- */
.match-grid { 
    display: flex; 
    gap: 2rem;
    margin-top: 1rem;
    flex-wrap: wrap; 
}
.match-col { 
    flex: 1 1 300px;
 }
.match-item, .match-logo {
    padding: .75rem; 
    margin: .5rem 0; 
    border: 2px solid var(--border); 
    border-radius: 6px;
    cursor: pointer; 
    transition: border .2s, box-shadow .2s;
}
.match-item:hover, .match-logo:hover { 
    border-color: var(--accent); 
    box-shadow: 0 0 6px var(--accent); 
}
.selected { 
    border-color: var(--accent) !important; 
    background: rgba(77, 171, 247, .15); 
}
.ok { 
    border-color: var(--ok) !important; 
}
.bad { 
    border-color: var(--bad) !important; 
}
.match-logo img { 
    height: 60px; 
    display: block; 
    margin: 0 auto;
 }
#matchResult { 
    margin-top: 1rem; 
    font-weight: 600; 
}

/* поле ввода 3-го конкурса */
#inputAnswer {
    width: 100%;
    max-width: 400px; /* не растягивается на всю ширину */
    padding: .6rem;
    margin: .5rem 0;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 1rem;
    background: var(--bg);
    color: var(--text);
}
#inputSubmit { 
    width: auto; 
    padding: .6rem 1.4rem; 
    margin: 0; }

/* блок ошибок */
#errorsBox { 
    display: none; 
    background: var(--card); 
    border: 1px solid var(--border); 
    border-radius: 8px; 
    padding: 1.5rem; 
    margin-top: 1.5rem; 
}
#errorsBox h3 {
     margin-bottom: .5rem; 
     color: var(--accent); 
}
.error-item { 
    margin: .5rem 0; 
    padding: .5rem; 
    border-left: 4px solid var(--bad); 
    background: rgba(220, 53, 69, .08); 
}

/* --- ребусы --- */
.rebus-desc { 
    font-size: 1rem; 
    margin: .5rem 0 1rem; 
    color: var(--text); 
}
.rebus-img  { 
    max-width: 100%; 
    height: auto; 
    margin: 1rem 0; 
    border-radius: 6px; 
}
#rebusAnswer { 
    width: 100%; 
    max-width: 400px; 
    padding: .6rem; 
    margin: .5rem 0; 
    border: 1px solid var(--border); 
    border-radius: 4px; 
    font-size: 1rem; 
    background: var(--bg); 
    color: var(--text); 
}
#rebusSubmit { 
    width: auto; 
    padding: .6rem 1.4rem; 
    margin: 0; 
}

/* --- диплом --- */
#diploma {
    
    border: 3px solid var(--accent); 
    border-radius: 8px; 
    padding: 2rem 1rem;
    margin: 1.5rem 0; 
    background: var(--bg);
}
#diploma h1 {
    text-align: center;
    vertical-align: top;
    margin-bottom: 4rem;
    color: red;
}

#diploma h3 { 
    margin-bottom: .6rem; 
}
#diploma .small { 
    font-size: .9rem; 
    margin-top: 1rem; 
}

/* --- ошибки --- */
#errorsBox { 
    display: none; 
    background: var(--card); 
    border: 1px solid var(--border); 
    border-radius: 8px; 
    padding: 1.5rem; 
    margin-top: 1.5rem; 
}
#errorsBox h3 { 
    margin-bottom: .5rem; 
    color: var(--accent); 
}
.error-item { 
    margin: .5rem 0; 
    padding: .5rem; 
    border-left: 4px solid var(--bad); 
    background: rgba(220, 53, 69, .08); 
}

/* --- footer --- */
footer {
    text-align: center; 
    font-size: .8rem; 
    color: var(--text);
    padding: 1.5rem 1rem; 
    background: var(--card); 
    border-top: 1px solid var(--border);
    margin-top: auto;
}

@media print {
    body * { visibility: hidden; }
    #diploma, #diploma * { visibility: visible; }
    #diploma { position: absolute; top: 0; left: 0; width: 100%; }
}
@media (max-width: 480px) {
    header img { height: 46px; }
    h1 { font-size: 1.1rem; }
    main { margin: 1rem auto; }
    #loginForm, #testContainer, #resultBox, #matchContest, #stubContest { padding: 1.2rem 1rem; }
}
