/* Cesuur/Cijfer Berekenaar — SeptemberTotSeptember design language.
   Loads AFTER /assets/s2s-shell.css and /assets/s2s-base.css (navy header,
   design tokens, .btn, .app-nav). Like pdfTools, blue is used ONLY as a small
   accent (primary buttons, active tab); headings and cards stay navy/neutral. */

.container-narrow {
    max-width: 820px;
}

/* Page header */
.page-header {
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--s2s-border);
}
.page-header h1 {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--s2s-text-strong);
}

/* Tab styling */
.tabs {
    display: flex;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--s2s-border);
    flex-wrap: wrap;
}

.tab-button {
    background: none;
    border: none;
    padding: .7rem 1.3rem;
    font-size: .95rem;
    font-family: inherit;
    color: var(--s2s-text-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
    font-weight: 500;
}

.tab-button:hover {
    color: var(--s2s-text-strong);
}

.tab-button.active {
    color: var(--s2s-primary);
    border-bottom-color: var(--s2s-primary);
}

.tab-content { display: none; }
.tab-content.active { display: block; }

/* Form + result cards — white surface, neutral border (pdfTools .zone look) */
.form-section,
.result-item {
    background: var(--s2s-surface);
    border: 1px solid var(--s2s-border);
    border-radius: var(--s2s-radius);
    box-shadow: var(--s2s-shadow-sm);
    padding: 1.2rem 1.3rem;
    margin-bottom: 1.25rem;
}

.form-group { margin-bottom: 1.1rem; }
.form-group:last-child { margin-bottom: 0; }

.form-group label {
    display: block;
    margin-bottom: .4rem;
    font-weight: 600;
    color: var(--s2s-text-strong);
}

.form-group input[type="number"],
.form-group input[type="text"] {
    width: 100%;
    max-width: 220px;
    padding: .5rem .7rem;
    border: 1px solid var(--s2s-border);
    border-radius: var(--s2s-radius-sm);
    font-family: inherit;
    font-size: .9rem;
    background: var(--s2s-surface);
    color: var(--s2s-text);
}

.form-group input[type="number"]:focus,
.form-group input[type="text"]:focus {
    outline: 2px solid var(--s2s-primary);
    outline-offset: -1px;
    border-color: transparent;
}

.radio-group {
    display: flex;
    gap: 1.25rem;
    margin-top: .4rem;
}

.radio-group label {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: normal;
    cursor: pointer;
    color: var(--s2s-text);
}

.radio-group input[type="radio"] { margin: 0; }

/* Results */
.results-section { margin-top: 1.5rem; }

/* Formula box — navy, matches the s2s header */
.formula-box {
    background: var(--s2s-text-strong);
    color: #e5e7eb;
    padding: .9rem 1rem;
    border-radius: var(--s2s-radius-sm);
    margin-top: .6rem;
    font-family: 'Courier New', monospace;
    overflow-x: auto;
}

.formula-box code {
    font-size: .9rem;
    line-height: 1.4;
}

/* Table — neutral header, not a blue block */
.table-container {
    overflow-x: auto;
    margin-top: 1rem;
}

table {
    width: 100%;
    border-collapse: collapse;
    background: var(--s2s-surface);
    border: 1px solid var(--s2s-border);
    border-radius: var(--s2s-radius);
    overflow: hidden;
}

th, td {
    padding: .6rem .9rem;
    text-align: left;
    border-bottom: 1px solid var(--s2s-border-soft);
}

th {
    background: var(--s2s-border-soft);
    color: var(--s2s-text-strong);
    font-weight: 600;
}

tr:hover { background: var(--s2s-border-soft); }
tr:last-child td { border-bottom: none; }

/* Grade result */
#openGradeResult,
#closedGradeResult,
#linearGradeResult {
    font-weight: 700;
    color: var(--s2s-text-strong);
    font-size: 1.05rem;
    margin-left: .6rem;
}

/* Headings — navy, blue reserved for accents only */
main { margin-bottom: 2.5rem; }

h2 {
    color: var(--s2s-text-strong);
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0 0 1rem;
}

h3 {
    color: var(--s2s-text-strong);
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 .75rem;
}

.result-item p { margin-bottom: .6rem; font-size: .95rem; }

/* Footer */
footer {
    text-align: center;
    padding-top: 1.25rem;
    border-top: 1px solid var(--s2s-border);
    color: var(--s2s-text-muted);
    font-size: .85rem;
}

/* Responsive */
@media (max-width: 640px) {
    .tabs { flex-direction: column; }

    .tab-button {
        text-align: center;
        border-bottom: none;
        border-left: 2px solid transparent;
    }

    .tab-button.active {
        border-bottom-color: transparent;
        border-left-color: var(--s2s-primary);
    }

    .radio-group { flex-direction: column; gap: .6rem; }

    .form-group input[type="number"],
    .form-group input[type="text"] { max-width: 100%; }
}
