/* Stijl overgenomen van het Blueprofs Beoordelingstool-project: platte,
   rechthoekige kaarten zonder schaduw, Arial, donker/teal kleurenpalet. */

:root {
    --kleur-donker: #1a2b35;
    /* Overgenomen uit het Blueprofs-logo (dominante pixelkleur van het
       druppel-icoon en de "Blue"-tekst). */
    --kleur-accent: #386e7a;
    --kleur-accent-hover: #2f5b65;
    /* Randen/achtergronden hier zijn heel licht gedesatureerde tinten van
       het blauw; hun tint is licht meegeschoven met de nieuwe accentkleur. */
    --kleur-rand: #c8ced0;
    --kleur-rand-tabel: #d0dade;
    --kleur-rand-kaart: #e5e5e5;
    --kleur-rand-rij: #e8ebec;
    --kleur-bg-input: #fafafa;
    --kleur-bg-tabelkop: #eef3f5;
    --kleur-tekst-gedempt: #555;
    --kleur-tekst-meta: #888;
    --kleur-tekst-zwak: #aaa;

    --kleur-danger: #b94040;
    --kleur-danger-rand: #d0aaaa;

    --kleur-succes-bg: #eef6f0;
    --kleur-succes-rand: #81b99a;
    --kleur-succes-tekst: #1a4028;

    --kleur-danger-bg: #fdecea;
    --kleur-danger-rand-msg: #e57373;
    --kleur-danger-tekst-msg: #721c24;

    --kleur-warning-bg: #fdf3e0;
    --kleur-warning-rand-msg: #d9a441;
    --kleur-warning-tekst-msg: #7a5210;

    /* Statusbadges: twee hergebruiken de succes/danger/warning-tinten
       hierboven, twee zijn nieuwe, even gedempte varianten in dezelfde stijl. */
    --kleur-status-ingediend-bg: #eaeaf9;
    --kleur-status-ingediend-tekst: #3d3f80;
    --kleur-status-gesprek-bg: #e3f0f7;
    --kleur-status-gesprek-tekst: #1c5877;
    --kleur-status-niet-relevant-bg: #f0f0f0;
    --kleur-status-niet-relevant-tekst: #888;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 0;
    font-family: Arial, Helvetica, sans-serif;
    background: #fff;
    color: var(--kleur-donker);
    min-height: 100vh;
}

a {
    color: var(--kleur-accent);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.link-bold {
    font-weight: 700;
}

.container {
    width: 100%;
    max-width: 1200px;
    margin: 36px auto 60px;
    padding: 0 36px;
}

/* Header */
.app-header {
    margin-bottom: 24px;
}

.app-header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.app-header__merk {
    display: inline-block;
    line-height: 0;
}

.app-header__logo {
    height: 51px;
    width: auto;
}

.app-header__account {
    font-size: 0.9em;
    color: var(--kleur-tekst-meta);
}

.app-header__account strong {
    color: var(--kleur-donker);
}

.app-header__account a {
    color: var(--kleur-accent);
    text-decoration: none;
}

.app-header__account a:hover {
    text-decoration: underline;
}

.uitlog-form {
    display: inline;
}

.link-knop {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: var(--kleur-accent);
    cursor: pointer;
}

.link-knop:hover {
    text-decoration: underline;
}

.breadcrumb {
    font-size: 0.82em;
    color: var(--kleur-tekst-meta);
    margin-bottom: 16px;
}

.breadcrumb a {
    color: var(--kleur-accent);
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb .scheiding {
    margin: 0 6px;
    color: var(--kleur-rand);
}

.breadcrumb .huidig {
    color: var(--kleur-donker);
}

h1 {
    font-size: 1.3em;
    font-weight: 700;
    color: var(--kleur-donker);
    margin: 0 0 4px;
}

h2 {
    font-size: 1em;
    font-weight: 700;
    color: var(--kleur-donker);
    margin: 0 0 16px;
}

/* Kaarten */
.kaart {
    border: 1px solid var(--kleur-rand-kaart);
    padding: 24px 28px 28px;
    margin-top: 12px;
}

.kaart:first-of-type {
    margin-top: 20px;
}

/* Knoppen */
.knop {
    display: inline-block;
    padding: 9px 20px;
    background: var(--kleur-accent);
    color: #fff;
    border: none;
    font-size: 0.95em;
    font-weight: bold;
    letter-spacing: 0.01em;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}

.knop:hover {
    background: var(--kleur-accent-hover);
}

.knop:disabled {
    opacity: 0.6;
    cursor: default;
}

.knop-secundair {
    background: #fff;
    color: var(--kleur-donker);
    border: 1px solid var(--kleur-rand);
}

.knop-secundair:hover {
    background: var(--kleur-bg-input);
}

.knop-danger {
    background: #fff;
    color: var(--kleur-danger);
    border: 1px solid var(--kleur-danger-rand);
}

.knop-danger:hover {
    background: #fdf5f5;
}

.knop-klein {
    padding: 5px 12px;
    font-size: 0.88em;
    font-weight: normal;
    letter-spacing: normal;
}

/* Formulieren */
label {
    display: block;
    font-weight: bold;
    font-size: 0.88em;
    color: var(--kleur-donker);
    margin-bottom: 4px;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="datetime-local"],
select,
textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    font-size: 0.95em;
    font-family: inherit;
    border: 1px solid var(--kleur-rand);
    background: var(--kleur-bg-input);
    color: var(--kleur-donker);
    outline: none;
}

input[type="checkbox"] {
    width: auto;
}

/* Tabellen */
table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92em;
}

thead tr {
    background: var(--kleur-bg-tabelkop);
}

th {
    padding: 9px 12px;
    text-align: left;
    color: var(--kleur-donker);
    font-weight: 700;
    border-bottom: 2px solid var(--kleur-rand-tabel);
}

td {
    padding: 9px 12px;
    vertical-align: top;
}

tbody tr {
    border-bottom: 1px solid var(--kleur-rand-rij);
}

/* Badges/pillen */
.badge {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    font-size: 0.85em;
    background: var(--kleur-bg-tabelkop);
    color: var(--kleur-donker);
    margin: 0.1rem 0.2rem 0.1rem 0;
}

.badge-succes {
    background: var(--kleur-succes-bg);
    color: var(--kleur-succes-tekst);
}

.badge-fout {
    background: var(--kleur-danger-bg);
    color: var(--kleur-danger-tekst-msg);
}

.badge-neutraal {
    background: var(--kleur-status-niet-relevant-bg);
    color: var(--kleur-status-niet-relevant-tekst);
}

/* Statusbadges: elke status krijgt een eigen, gedempte kleur zodat de
   tabel in één oogopslag te scannen is. */
.badge-status-nieuw {
    background: var(--kleur-bg-tabelkop);
    color: var(--kleur-donker);
}

.badge-status-mee_bezig {
    background: var(--kleur-warning-bg);
    color: var(--kleur-warning-tekst-msg);
}

.badge-status-ingediend {
    background: var(--kleur-status-ingediend-bg);
    color: var(--kleur-status-ingediend-tekst);
}

.badge-status-gesprek {
    background: var(--kleur-status-gesprek-bg);
    color: var(--kleur-status-gesprek-tekst);
}

.badge-status-gegund {
    background: var(--kleur-succes-bg);
    color: var(--kleur-succes-tekst);
}

.badge-status-afgewezen {
    background: var(--kleur-danger-bg);
    color: var(--kleur-danger-tekst-msg);
}

.badge-status-niet_relevant {
    background: var(--kleur-status-niet-relevant-bg);
    color: var(--kleur-status-niet-relevant-tekst);
}

/* Deadline binnen 3 dagen: klein, vierkant vlaggetje achter de datum (geen
   tekstkleur meer op de datum zelf). white-space: nowrap houdt datum + vlag
   op één regel. */
.col-deadline {
    white-space: nowrap;
}

.badge-deadline {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.5rem;
    font-size: 0.78em;
    font-weight: 700;
    background: var(--kleur-warning-bg);
    color: var(--kleur-warning-tekst-msg);
}

/* Meldingen (flash-berichten) */
.meldingen {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
}

.melding {
    padding: 10px 14px;
    margin-bottom: 4px;
    font-size: 0.9em;
}

.melding-success {
    background: var(--kleur-succes-bg);
    border-left: 3px solid var(--kleur-succes-rand);
    color: var(--kleur-succes-tekst);
}

.melding-warning {
    background: var(--kleur-warning-bg);
    border-left: 3px solid var(--kleur-warning-rand-msg);
    color: var(--kleur-warning-tekst-msg);
}

.melding-danger {
    background: var(--kleur-danger-bg);
    border-left: 3px solid var(--kleur-danger-rand-msg);
    color: var(--kleur-danger-tekst-msg);
}

.leeg {
    padding: 1.5rem;
    text-align: center;
    color: var(--kleur-tekst-meta);
}

.tekst-gedempt {
    color: var(--kleur-tekst-gedempt);
}

.tekst-meta {
    color: var(--kleur-tekst-meta);
}

/* Overzichtspagina: filters en sync-balk */
.sync-rij {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 16px;
}

.laatste-sync {
    color: var(--kleur-tekst-meta);
    font-size: 0.85em;
    margin: 0;
}

.sync-status {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85em;
    color: var(--kleur-tekst-gedempt);
}

.spinner {
    display: inline-block;
    width: 0.9rem;
    height: 0.9rem;
    border: 2px solid var(--kleur-rand);
    border-top-color: var(--kleur-accent);
    border-radius: 50%;
    animation: sync-spin 0.8s linear infinite;
}

@keyframes sync-spin {
    to { transform: rotate(360deg); }
}

form.filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 20px;
}

form.filters input[type="text"] {
    flex: 1 1 220px;
}

form.filters select {
    width: auto;
}

form.filters label.checkbox {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: normal;
    font-size: 0.9em;
    white-space: nowrap;
    color: var(--kleur-tekst-gedempt);
}

.resultaattelling {
    color: var(--kleur-tekst-gedempt);
    font-size: 0.9em;
    margin: 0 0 12px;
}

.paginering {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 20px;
    font-size: 0.9em;
}

.paginering a {
    padding: 5px 10px;
    border: 1px solid var(--kleur-rand);
    text-decoration: none;
}

.paginering a:hover {
    background: var(--kleur-bg-input);
}

.paginering-huidig {
    padding: 5px 10px;
    background: var(--kleur-accent);
    color: #fff;
    font-weight: 700;
}

.paginering-ellipsis {
    padding: 5px 4px;
    color: var(--kleur-tekst-meta);
}

.wis-filters {
    font-size: 0.9em;
    text-decoration: none;
}

.wis-filters:hover {
    text-decoration: underline;
}

/* Detailpagina */
.terug-link {
    display: inline-block;
    margin-bottom: 16px;
    font-size: 0.9em;
    text-decoration: none;
}

.terug-link:hover {
    text-decoration: underline;
}

.subtitel {
    color: var(--kleur-tekst-gedempt);
    margin: 0 0 20px;
}

dl {
    display: grid;
    grid-template-columns: 200px 1fr;
    row-gap: 0.6rem;
    column-gap: 1rem;
    margin: 0;
}

dt {
    font-weight: 700;
    color: var(--kleur-donker);
    font-size: 0.92em;
}

dd {
    margin: 0;
    font-size: 0.92em;
    color: var(--kleur-tekst-gedempt);
    white-space: pre-line;
}

.label-toevoegen-form {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.label-toevoegen-form select {
    width: auto;
}

.label-verwijder-knop {
    background: none;
    border: none;
    color: inherit;
    font-size: 0.95em;
    line-height: 1;
    padding: 0;
    margin-left: 0.35rem;
    cursor: pointer;
}

.status-form {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.status-form select {
    width: auto;
}

/* Loginpagina */
.login-pagina {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 100vh;
}

.login-kaart {
    width: 100%;
    max-width: 380px;
    margin: 80px auto 40px;
    padding: 0 24px;
}

.login-kaart__logo {
    text-align: center;
    margin-bottom: 20px;
}

.login-kaart__logo-afbeelding {
    height: 42px;
    width: auto;
}

.login-kaart__titel {
    text-align: center;
    margin-bottom: 28px;
}

.login-kaart form {
    text-align: center;
}

.login-kaart .veld {
    margin-bottom: 16px;
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
}

.login-kaart label {
    text-align: center;
}

.login-kaart .knop {
    width: 100%;
    max-width: 280px;
}

.login-kaart .terug-link {
    display: block;
    text-align: center;
    margin-top: 20px;
}
