*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: system-ui, -apple-system, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #1a1a1a;
    background: #f5f5f0;
}

/* Header */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1.5rem;
    background: #2d5a27;
    color: #fff;
}
header .logo { font-weight: 600; font-size: 1.1rem; }
header .logout {
    color: #cde8c8;
    text-decoration: none;
    font-size: 0.9rem;
}
header .logout:hover { text-decoration: underline; }

/* Login */
.login-wrap {
    max-width: 360px;
    margin: 5rem auto;
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.login-wrap h1 {
    margin-bottom: 1.25rem;
    font-size: 1.4rem;
    color: #2d5a27;
}

/* Agent */
.agent-wrap {
    max-width: 1100px;
    margin: 2rem auto;
    padding: 0 1rem;
}

/* Gedeeld */
label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
    margin-top: 1.25rem;
}
input[type="text"],
input[type="email"],
input[type="password"],
textarea {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid #bbb;
    border-radius: 5px;
    font-size: 1rem;
    font-family: inherit;
    background: #fff;
}
textarea { resize: vertical; }
input:focus, textarea:focus { outline: 2px solid #2d5a27; border-color: transparent; }

/* Klantcontext-velden */
.klantcontext {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
    margin-top: 1.25rem;
}
.klantcontext label { margin-top: 0; }
.optioneel { font-weight: 400; color: #777; font-size: 0.85rem; }

button {
    margin-top: 0.75rem;
    padding: 0.6rem 1.4rem;
    background: #2d5a27;
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    cursor: pointer;
}
button:hover  { background: #234820; }
button:disabled { background: #888; cursor: not-allowed; }

/* Resultaat */
#result { margin-top: 1.5rem; }
#answer {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 1rem;
    white-space: pre-wrap;
    line-height: 1.7;
}
#sources-line {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: #555;
}
#besteldetails-link {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: #555;
}
#besteldetails-link a { color: #2d5a27; word-break: break-all; }

/* Tabs */
.tabs {
    display: flex;
    gap: 0;
    background: #1e3d1a;
    padding: 0 1.5rem;
}
.tab-btn {
    margin: 0;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: #a8d4a3;
    border: none;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
}
.tab-btn:hover  { color: #fff; background: transparent; }
.tab-btn.active { color: #fff; border-bottom-color: #fff; }
.tab-btn:disabled { background: transparent; }

/* Admin-tab */
.admin-loading {
    margin-top: 2rem;
    color: #555;
    font-style: italic;
}
.admin-kaart {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 1.25rem 1.5rem;
    margin-top: 1.5rem;
    overflow-x: auto;
}
.admin-kaart h2 {
    font-size: 1rem;
    font-weight: 600;
    color: #2d5a27;
    margin-bottom: 0.75rem;
}
.admin-tabel {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}
.admin-tabel th,
.admin-tabel td {
    text-align: left;
    padding: 0.35rem 0.6rem;
    border-bottom: 1px solid #eee;
    vertical-align: top;
}
.admin-tabel thead th {
    font-weight: 600;
    color: #444;
    background: #f9f9f7;
}
.admin-tabel tbody th {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
    width: 11rem;
}
.admin-tabel a { color: #2d5a27; }
.adm-small { font-size: 0.8rem; color: #555; word-break: break-all; }
.adm-prompt-tekst {
    font-family: ui-monospace, 'Cascadia Code', monospace;
    font-size: 0.85rem;
    line-height: 1.6;
    white-space: pre-wrap;
    color: #333;
    background: #f9f9f7;
    border-radius: 4px;
    padding: 0.75rem 1rem;
    margin: 0;
}
.adm-fb-cel { max-width: 22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btn-verwijder {
    margin: 0;
    padding: 0.25rem 0.6rem;
    background: #fff;
    color: #c0392b;
    border: 1px solid #c0392b;
    border-radius: 4px;
    font-size: 0.8rem;
    cursor: pointer;
}
.btn-verwijder:hover { background: #fdf0ee; }

/* Feedback-knoppen */
.btn-secundair {
    margin-top: 0.75rem;
    margin-right: 0.5rem;
    padding: 0.45rem 1.1rem;
    background: #fff;
    color: #2d5a27;
    border: 1px solid #2d5a27;
    border-radius: 5px;
    font-size: 0.9rem;
    cursor: pointer;
}
.btn-secundair:hover { background: #f0f7ee; }

#feedback-sectie { margin-top: 1rem; }

#correctie-veld label { margin-top: 1rem; }

.feedback-melding {
    margin-top: 0.6rem;
    font-size: 0.9rem;
    color: #2d5a27;
}

/* Medewerker-indicator */
.waarschuwing {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: #fff8e1;
    border: 1px solid #f5a623;
    border-left: 4px solid #f5a623;
    border-radius: 5px;
    color: #7d4e00;
    font-size: 0.9rem;
    line-height: 1.5;
}

/* Fout / laden */
.error {
    margin-top: 0.75rem;
    color: #c0392b;
    font-size: 0.9rem;
}
#loading {
    margin-top: 0.75rem;
    color: #555;
    font-style: italic;
}

/* Statistieken — periode-knoppen */
.stats-periode-knoppen {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}
.periode-btn {
    padding: 0.35rem 0.9rem;
    border: 1px solid #bbb;
    border-radius: 4px;
    background: #fff;
    color: #333;
    font-size: 0.85rem;
    cursor: pointer;
}
.periode-btn:hover { background: #f0f0f0; }
.periode-btn.active {
    background: #2d5a27;
    color: #fff;
    border-color: #2d5a27;
}
