/* ============================================================
   C-ERP: assistent in context (M9), zie platform/assistent.jsx
   Alleen bestaande tokens; licht en donker.
   ============================================================ */

/* Knop in de zwevende knoppenrij linksonder (AdoptieHost) */
.adoptie-btn.asst-fab { background: var(--brand); border-color: var(--brand); color: #fff; }
.adoptie-btn.asst-fab:hover, .adoptie-btn.asst-fab.is-open { background: var(--brand); border-color: var(--brand); color: #fff; filter: brightness(1.1); }
[data-theme="dark"] .adoptie-btn.asst-fab { background: color-mix(in srgb, var(--brand) 70%, var(--surface)); border-color: #8BB1C8; }

/* Zijpaneel: de standaardhint in de voet geldt niet voor de assistent; eigen hint staat bij de vraag */
.zp:has(.asst) .zp__hint { visibility: hidden; }

.asst { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.asst-kicker { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); margin-bottom: 8px; }
.asst-noot { display: block; font-size: 11.5px; color: var(--text-3); margin-top: 6px; }

.asst-waar { padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius, 12px); background: var(--bg-2); }
.asst-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.asst-chip { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asst-chip b { font-weight: 600; }
.asst-chip--sel { border-color: var(--brand); color: var(--brand); }
[data-theme="dark"] .asst-chip--sel { border-color: #8BB1C8; color: #8BB1C8; }

.asst-vraag textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 72px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font: inherit; font-size: 13.5px; line-height: 1.45; }
.asst-vraag textarea:focus { outline: 2px solid var(--brand); outline-offset: 1px; border-color: var(--brand); }
.asst-voorstellen { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.asst-voorstel { text-align: left; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; cursor: pointer; }
.asst-voorstel:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); }
[data-theme="dark"] .asst-voorstel:hover:not(:disabled) { border-color: #8BB1C8; color: #8BB1C8; }
.asst-voorstel:disabled { opacity: .5; cursor: not-allowed; }
.asst-voorstel:focus-visible, .asst-knop:focus-visible, .asst-cls__knop:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.asst-beurten { display: flex; flex-direction: column; gap: 14px; }
.asst-leeg { font-size: 12.5px; color: var(--text-3); line-height: 1.5; padding: 12px 14px; border: 1px dashed var(--line-strong); border-radius: 10px; }
.asst-beurt { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius, 12px); background: var(--surface); }
.asst-beurt.is-fout { border-color: color-mix(in srgb, var(--neg) 45%, var(--line)); }
.asst-beurt__vraag { font-weight: 600; font-size: 13px; color: var(--text); }
.asst-beurt__laden, .asst-cls__stand { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-2); }
.asst-stip { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); animation: asst-puls 1s ease-in-out infinite; }
@keyframes asst-puls { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .asst-stip { animation: none; } }
.asst-beurt__melding { font-size: 12.5px; color: var(--neg); line-height: 1.45; }
.asst-beurt__label { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--amber-tekst); }
[data-theme="dark"] .asst-beurt__label { color: var(--amber); }
.asst-beurt__tekst { font-size: 13px; line-height: 1.55; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.asst-beurt__voorstel { font-size: 13px; line-height: 1.5; color: var(--text); white-space: pre-wrap; padding: 10px 12px; border-radius: 10px; background: var(--bg-2); border-left: 3px solid var(--brand); }
.asst-beurt__voorstel > span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); margin-bottom: 4px; white-space: normal; }
.asst-beurt__gedaan { font-size: 12.5px; color: var(--pos-tekst); font-weight: 500; }
.asst-beurt__acties { display: flex; flex-wrap: wrap; gap: 8px; }
.asst-knop { height: 32px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; cursor: pointer; }
.asst-knop:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); }
.asst-knop--hoofd { background: var(--brand); border-color: var(--brand); color: #fff; }
.asst-beurt__mee summary { font-size: 11.5px; color: var(--text-3); cursor: pointer; }
.asst-beurt__mee pre { margin: 6px 0 0; max-height: 180px; overflow: auto; padding: 8px 10px; border-radius: 8px; background: var(--bg-2); color: var(--text-2); font-size: 11px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }

.asst-bev { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 10px; border: 1px solid var(--brand); background: color-mix(in srgb, var(--brand) 5%, var(--surface)); }
[data-theme="dark"] .asst-bev { border-color: #8BB1C8; }
.asst-bev > b { font-size: 13px; color: var(--text); }
.asst-bev__uitleg { font-size: 12px; color: var(--text-2); }
.asst-bev label { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--text-2); flex: 1; min-width: 0; }
.asst-bev input, .asst-bev select, .asst-bev textarea { padding: 7px 10px; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font: inherit; font-size: 13px; }
.asst-bev input.is-leeg { border-color: var(--amber); }
.asst-bev__rij { display: flex; gap: 10px; flex-wrap: wrap; }
.asst-bev__fout { font-size: 12px; color: var(--neg); }
.asst-bev__knoppen { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }

/* Terugval-paneel (alleen als window.Zijpaneel ontbreekt) */
.asst-laag { position: fixed; inset: 0; z-index: 300; background: rgba(0,0,0,.2); }
.asst-eigen { position: fixed; top: 0; right: 0; bottom: 0; width: 480px; max-width: 100vw; z-index: 301; display: flex; flex-direction: column; background: var(--surface); color: var(--text); border-left: 1px solid var(--line-strong); box-shadow: var(--shadow); }
.asst-eigen__kop, .asst-eigen__voet { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.asst-eigen__voet { border-bottom: 0; border-top: 1px solid var(--line); justify-content: flex-end; }
.asst-eigen__lijf { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 20px; }

/* Classificeren in de uploadmodal van de CDE */
.asst-cls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 5px; font-size: 11.5px; }
.asst-cls__knop { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text-2); font: inherit; font-size: 11.5px; cursor: pointer; }
.asst-cls__knop:hover { border-color: var(--brand); color: var(--brand); }
[data-theme="dark"] .asst-cls__knop:hover { border-color: #8BB1C8; color: #8BB1C8; }
.asst-cls__stand { font-size: 11.5px; }
.asst-cls__stand.is-fout { color: var(--neg); }
.asst-cls__voorstel { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 8px; background: color-mix(in srgb, var(--amber) 12%, transparent); border: 1px solid color-mix(in srgb, var(--amber) 40%, var(--line)); color: var(--text); }
/* Door de assistent ingevulde velden in dezelfde rij markeren (Type, Discipline, Rev) */
.cds-uprij:has(.asst-cls[data-t]) > span:nth-child(3) select,
.cds-uprij:has(.asst-cls[data-d]) > span:nth-child(4) select,
.cds-uprij:has(.asst-cls[data-r]) > span:nth-child(5) input { border-color: var(--amber) !important; box-shadow: 0 0 0 2px color-mix(in srgb, var(--amber) 30%, transparent); background: color-mix(in srgb, var(--amber) 8%, var(--surface)); }
