/* Demopaneel naast het toestel — alleen voor de mock, geen onderdeel van het app-ontwerp */

.demo { position: fixed; top: 24px; right: 24px; z-index: 100; width: 300px; max-height: calc(100vh - 48px); overflow: auto; scrollbar-width: thin; font-size: 13px; color: var(--text-2); }
.demo__paneel { background: #15161a; border: 1px solid var(--line); border-radius: 16px; }
.demo summary { list-style: none; cursor: pointer; user-select: none; }
.demo summary::-webkit-details-marker { display: none; }
.demo__paneel > summary { display: flex; align-items: center; gap: 8px; padding: 12px 14px; color: var(--text-muted); cursor: grab; touch-action: none; }
.demo__paneel > summary b { color: var(--text); font-variant-numeric: tabular-nums; }
.demo__paneel > summary .ms { font-size: 18px; color: var(--accent); }

/* Verslepen en in-/uitklappen: de kopregel is de greep (tik = klappen, slepen = verplaatsen) */
.demo.is-slepen, .demo.is-slepen * { cursor: grabbing; user-select: none; }
.demo.is-slepen .demo__paneel { box-shadow: 0 12px 32px rgba(0, 0, 0, .55); border-color: #4a4c55; }
.demo__paneel > summary .demo__greep { color: var(--text-dim); margin-left: -4px; }
.demo__paneel > summary .demo__pijl { margin-left: auto; color: var(--text-muted); transition: transform 160ms; }
.demo__paneel:not([open]) > summary .demo__pijl { transform: rotate(180deg); }
.demo:has(.demo__paneel:not([open])) { width: auto; }
/* Ingeklapt: een compacte pil (past in de statusbalk, waar hij op de telefoon begint) */
.demo__paneel:not([open]) { border-radius: 999px; }
.demo__paneel:not([open]) > summary { padding: 7px 12px 7px 10px; }
.demo__kopklok { display: inline-flex; gap: 4px; }
/* Telefoon, ingeklapt: compact in het midden van de statusbalk. De tijd staat daar al links, dus niet dubbel;
   de hele pil is de greep, dus geen greepje nodig. */
@media (max-width: 500px) {
  .demo__paneel:not([open]) > summary { gap: 6px; padding: 6px 10px 6px 12px; }
  .demo__paneel:not([open]) > summary .demo__greep,
  .demo__paneel:not([open]) > summary .demo__kopklok { display: none; }
}
.demo__body { padding: 0 14px 14px; border-top: 1px solid var(--line-soft); }
.demo__label { margin: 12px 0 8px; font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--text-muted); }
.demo__label em { font-style: normal; color: #e0a63a; margin-left: 6px; }
.demo__rij { display: flex; gap: 6px; margin-top: 6px; }
.demo__rij button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 34px; padding: 0 8px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text-2); font-size: 12.5px; font-weight: 700; }
.demo__rij button:hover { border-color: #4a4c55; }
.demo__rij button .ms { font-size: 17px; }
.demo__rij button[data-demo="pauze"] { flex: none; width: 40px; padding: 0; }
.demo__gevaar { color: #f4978e !important; }
.demo__rij button:disabled { opacity: .6; cursor: progress; }

/* Scenario: de stappen, met de huidige uitgelicht */
.demo__stappen { margin-top: 10px; display: grid; gap: 3px; list-style: none; max-height: 220px; overflow: auto; scrollbar-width: thin; }
.demo__stappen li { display: flex; gap: 8px; font-size: 12px; line-height: 1.35; color: var(--text-muted); }
.demo__stappen li .demo__tijd { width: 36px; font-weight: 400; color: var(--text-muted); }
.demo__stappen li.is-gedaan { color: var(--text-2); }
.demo__stappen li.is-nu { color: var(--text); font-weight: 700; }
.demo__stappen li.is-nu .demo__tijd { color: var(--accent); font-weight: 700; }

.demo__tests { margin-top: 10px; display: grid; gap: 4px; list-style: none; }
.demo__tests li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; }
.demo__tests .ms { font-size: 16px; }
.demo__tests .is-ok .ms { color: #2ea043; }
.demo__tests .is-fout .ms { color: #f4978e; }
.demo__controle li { flex-wrap: nowrap; align-items: flex-start; line-height: 1.35; }
.demo__tests small { flex-basis: 100%; padding-left: 22px; color: #f4978e; }

.demo__logblok { margin-top: 12px; border-top: 1px solid var(--line-soft); padding-top: 10px; }
.demo__logblok > summary { font-weight: 700; color: var(--text-2); }
.demo__logblok > summary::before { content: '▸ '; color: var(--text-muted); }
.demo__logblok[open] > summary::before { content: '▾ '; }
.demo__leeg { margin-top: 8px; color: var(--text-muted); }
.demo__log { margin-top: 8px; display: grid; gap: 8px; list-style: none; }
.demo__regel { display: flex; gap: 10px; }
.demo__tijd { flex: none; width: 40px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
.demo__wat { min-width: 0; }
.demo__wat b { text-transform: uppercase; font-size: 10.5px; letter-spacing: .5px; color: var(--accent); }
.demo__regel--stop .demo__wat b { color: #2ea043; }
.demo__regel--correctie .demo__wat b { color: #e0a63a; }
.demo__regel--noshow .demo__wat b, .demo__regel--vervallen .demo__wat b { color: #f4978e; }
.demo__wat small { display: block; margin-top: 2px; color: var(--text-muted); font-size: 11.5px; }

@media (max-width: 900px) {
  .demo { top: auto; bottom: 84px; right: 12px; width: min(300px, calc(100vw - 24px)); }
}
