:root {
    --kopkleur: #03638f;
    --kopkleur-text: #fff;
    --accent-blauw: #16688f;
    --button-blauw: #03638f;
    --button-hover: #02486b;
    --prio-hoog: #ffe0e0;
    --prio-middel: #fffbe7;
    --prio-laag: #e8ffe8;
    --light-bg: #f7f9fa;
    --border-radius: 7px;
    --box-shadow: 0 2px 8px rgba(30,60,120,0.04);
}

/* Algemene body/layout */
body {
    background: var(--light-bg);
    font-family: 'Segoe UI', Arial, sans-serif;
    font-size: 1em;
    color: #222;
    margin: 0;
    padding: 0 0 32px 0;
}

/* Koppen */
h1, h2, h3 {
    color: var(--kopkleur);
    font-family: 'Segoe UI', Arial, sans-serif;
    font-weight: 700;
    margin-bottom: 8px;
}
h1 { font-size: 2em; margin: 32px 0 20px 0; }
h2 { font-size: 1.3em; margin-top: 24px; }
h3 { font-size: 1.08em; margin-top: 28px; }

/* Tabelstijl */
table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    box-shadow: var(--box-shadow);
    margin-bottom: 18px;
}
th, td {
    padding: 10px 10px;
    border: 1px solid #d6e0e7;
    text-align: left;
    vertical-align: top;
}
th {
    background: var(--kopkleur);
    color: var(--kopkleur-text);
    font-weight: 600;
    font-size: 1em;
    border-color: #035075;
}
th.sortable { cursor: pointer; text-decoration: underline; }
th.sortable a { color: var(--kopkleur-text); }
tr:hover { background: #f4fafd; }
tr.prio-hoog { background: var(--prio-hoog) !important; }
tr.prio-middel { background: var(--prio-middel) !important; }
tr.prio-laag { background: var(--prio-laag) !important; }

/* Buttons en filters */
button,
input[type="submit"],
.logout-btn {
    background: var(--button-blauw);
    color: #fff;
    border: none;
    padding: 8px 18px;
    border-radius: var(--border-radius);
    font-size: 1em;
    margin-right: 6px;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s;
}
button:hover,
input[type="submit"]:hover,
.logout-btn:hover {
    background: var(--button-hover);
}
button:disabled,
input[type="submit"]:disabled {
    opacity: 0.6;
    cursor: default;
}
.filterbar { margin-bottom: 8px; }
.filterbar button {
    margin-bottom: 2px;
}
.subfilter {
    margin-bottom: 18px;
}
.subfilter label {
    font-weight: 500;
    color: #16688f;
}
select, input[type="text"], textarea, input[type="number"] {
    font-size: 1em;
    padding: 7px 8px;
    border-radius: var(--border-radius);
    border: 1px solid #b0cad7;
    margin-top: 3px;
    margin-bottom: 10px;
    background: #f8fafc;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
}
input[type="file"] {
    margin-top: 3px;
}
textarea {
    min-height: 80px;
    resize: vertical;
}

.formbox {
    background: #fff;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 20px;
    margin-top: 16px;
    margin-bottom: 24px;
    max-width: 680px;
}
.formbox label {
    font-weight: 500;
    color: #16688f;
}
.formbox textarea,
.formbox input[type="text"],
.formbox input[type="number"] {
    margin-bottom: 14px;
}

.submitrow {
    margin-top: 10px;
}

.tip {
    font-size: 0.93em;
    color: #999;
    margin-bottom: 4px;
}

.footer .logout-btn {
    background: #fff;
    color: #03638f;
    border: 1px solid #fff;
    font-weight: 600;
    transition: background .12s, color .12s;
}
.footer .logout-btn:hover {
    background: #03638f;
    color: #fff;
    border-color: #fff;
}

.primary-btn {
    display: inline-block;
    background: var(--button-blauw);
    color: #fff;
    border: none;
    border-radius: var(--border-radius);
    padding: 9px 22px;
    font-size: 1em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    margin-left: 8px;
    margin-top: 8px;
    transition: background 0.16s;
    box-shadow: 0 2px 8px rgba(30,60,120,0.03);
}
.primary-btn:hover {
    background: var(--button-hover);
    color: #fff;
    text-decoration: underline;
}

/* Speciale knoppen (verwijderen/markeren/bewerken) */
.delete-btn {
    background: #e44848;
    color: #fff;
    border: none;
    border-radius: var(--border-radius);
    padding: 7px 16px;
    font-size: 1em;
    cursor: pointer;
    margin-bottom: 3px;
    margin-right: 5px;
}
.delete-btn:hover { background: #a83030; }
.mark-btn {
    background: var(--accent-blauw);
    color: #fff;
    border: none;
    border-radius: var(--border-radius);
    padding: 7px 14px;
    font-size: 1em;
    margin-bottom: 3px;
    cursor: pointer;
}
.mark-btn:hover { background: #004666; }
.edit-btn {
    background: #43a1e4;
    color: #fff;
    border: none;
    border-radius: var(--border-radius);
    padding: 7px 14px;
    font-size: 1em;
    margin-bottom: 3px;
    margin-right: 5px;
    cursor: pointer;
}
.edit-btn:hover {
    background: #2170af;
}
.laatste-update-label {
    color: var(--accent-blauw);
    font-weight: bold;
    font-size: 1em;
    margin-left: 8px;
}

/* Navigatie en links */
a {
    color: var(--accent-blauw);
    text-decoration: none;
    transition: color 0.14s;
}
a:hover, .edit-link:hover {
    color: #003e5d;
    text-decoration: underline;
}
.edit-link {
    color: var(--accent-blauw);
    font-weight: 600;
    margin-left: 12px;
    font-size: 1em;
}

/* Beschrijving-box */
.beschrijvingsbox {
    background: #e9f6fa;
    border-radius: var(--border-radius);
    margin: 18px 0 18px 0;
    padding: 16px 18px 14px 14px;
    font-size: 1.06em;
    line-height: 1.45;
    border: 1px solid #bee1f2;
    max-width: 980px;
}

/* Tabel koptekst special styling */
.topic-header-table {
    margin-bottom: 0;
    max-width: 800px;
}
.topic-header-table th {
    background: var(--kopkleur);
    color: var(--kopkleur-text);
}

/* Footer */
.footer {
    margin-top: 60px;
    padding: 14px 0 6px 0;
    color: #fff;
    background: var(--kopkleur);
    text-align: center;
    font-size: 0.98em;
    letter-spacing: 0.03em;
    border-radius: var(--border-radius) var(--border-radius) 0 0;
}

/* Mobielvriendelijk */
@media (max-width: 700px) {
    body { padding: 0 0 18px 0; }
    table, thead, tbody, th, td, tr { display: block; }
    th { position: absolute; left: -9999px; top: -9999px; }
    td { border: none; position: relative; padding-left: 40%; }
    td:before {
        position: absolute; left: 8px; width: 35%; white-space: nowrap;
        font-weight: bold; color: #888;
    }
    td[data-label]:before { content: attr(data-label); }
    .formbox, .beschrijvingsbox { max-width: 98vw; }
}

/* Uitlogknop positie fix voor mobiel */
@media (max-width: 480px) {
    .logout-btn { position: static !important; width: 100%; margin-top: 10px; float: none;}
}
