:root{--bg:#120f1f;--card:#1d1930;--card2:#262140;--ink:#f1edff;--muted:#a59fc4;--line:#332c52;--acc:#8b7bff;--acc2:#2c2650;--pink:#ff7ac6;--teal:#4fd1c5;--warn:#2a2135;--ok:#3ddc97;--r:18px;--sh:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px rgba(0,0,0,.35);--grad:linear-gradient(135deg,#7b6bff,#c86bfa 55%,#ff7ac6)}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(900px 500px at 10% -10%,#2b1f5c 0,transparent 60%),radial-gradient(800px 500px at 110% 10%,#3a1747 0,transparent 55%),var(--bg);background-attachment:fixed;min-height:100vh;color:var(--ink);font:16px/1.5 "Segoe UI",system-ui,-apple-system,Roboto,sans-serif;max-width:1180px;margin:auto;padding:20px 20px 40px}
h1{font-size:1.9rem;margin:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}h2{font-size:1.15rem;margin:0 0 12px}h3{margin:14px 0 6px;font-size:1rem}
.muted{color:var(--muted)}.tiny{font-size:.82rem}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.top p{margin:2px 0 0}.top p::first-letter{text-transform:uppercase}
.focus{border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:10px 16px;box-shadow:var(--sh);display:grid;grid-template-columns:auto auto;gap:2px 14px;align-items:center}
.focus-time{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.focus-btns{display:flex;gap:6px}.focus .tiny{grid-column:1/3}
.tabs{border:1px solid var(--line);display:flex;gap:6px;overflow-x:auto;padding:4px;background:var(--card);border-radius:999px;box-shadow:var(--sh);margin-bottom:20px;position:sticky;top:8px;z-index:5;scrollbar-width:none}
.tabs button br{display:none}.tabs button{border:0;background:none;padding:9px 16px;border-radius:999px;white-space:nowrap;font-weight:600;color:var(--muted)}
.tabs button.on{background:var(--grad);color:#fff}
.page{display:none}.page.on{display:block;animation:in .25s ease}
@keyframes in{from{opacity:0;transform:translateY(6px)}}
.sec{margin:26px 0 12px}.intro{font-size:1.05rem;margin:0 0 6px}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--sh)}
.card.warn{background:var(--warn);border:1px solid #4a3360}
.tip{background:linear-gradient(90deg,rgba(123,107,255,.22),rgba(255,122,198,.12));border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:16px}
.btn{border:0;background:var(--grad);color:#fff;padding:10px 16px;border-radius:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.btn.ghost{background:var(--acc2);color:#c9c0ff}
.btn.small{padding:6px 12px;font-size:.9rem}
.btn:hover,.big:hover,.prompt:hover,.link:hover,.tool:hover,.choice:hover{filter:brightness(1.12);transform:translateY(-2px)}
.big:hover,.prompt:hover,.link:hover,.tool:hover{border-color:var(--acc)}
.bigbtns{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.big{border:1px solid var(--line);background:var(--card);box-shadow:var(--sh);border-radius:var(--r);padding:18px 10px;font-size:2rem;display:flex;flex-direction:column;align-items:center;gap:6px;transition:.15s}
.big span{font-size:.95rem;font-weight:600}
.path{margin-top:16px}.path-head{display:flex;justify-content:space-between;align-items:baseline}
.bar{height:8px;background:var(--acc2);border-radius:9px;overflow:hidden;margin-bottom:8px}
.bar div{height:100%;background:var(--grad);transition:width .4s}
.missions{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.missions li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.missions li div{flex:1}.missions small{display:block;color:var(--muted);font-size:.85rem}
.missions li.done b{text-decoration:line-through;color:var(--muted)}
.check{width:26px;height:26px;flex:none;border-radius:50%;border:2px solid var(--acc);color:#120f1f;background:none;color:#fff;font-weight:700;padding:0}
li.done .check{background:var(--ok);border-color:var(--ok)}
.list{list-style:none;margin:0 0 10px;padding:0}
.list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.list li span:first-of-type{flex:1}.list li.done span{text-decoration:line-through;color:var(--muted)}
.list .when{font-size:.85rem;color:var(--muted);white-space:nowrap}
.list li.soon .when{color:var(--pink);font-weight:700}.list li.past{opacity:.5}
.list .empty{color:var(--muted);font-size:.9rem}
.del{border:0;background:none;color:var(--muted);opacity:.5;padding:2px 6px}.del:hover{opacity:1}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
input,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-width:0}
.row input{flex:1}.row input[type=date]{flex:0 0 150px}
.links{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.links.compact{grid-template-columns:1fr}
.link{border:1px solid var(--line);display:flex;gap:12px;align-items:center;background:var(--card);padding:12px 14px;border-radius:14px;box-shadow:var(--sh);transition:.15s}
.links.compact .link{box-shadow:none;background:var(--bg)}
.link small{display:block;color:var(--muted);font-size:.82rem}
.ic{font-size:1.5rem;width:32px;text-align:center;flex:none}
.prompts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:10px}
.prompt{border:1px solid var(--line);background:var(--card);box-shadow:var(--sh);border-radius:14px;padding:16px;display:flex;align-items:center;gap:10px;text-align:left;transition:.15s}
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:12px}
.tool{border:1px solid var(--line);background:var(--card);box-shadow:var(--sh);border-radius:var(--r);padding:16px;transition:.15s}
.tool p{margin:8px 0 0}
.tool-head{display:flex;align-items:center;gap:8px}
.tag{margin-left:auto;font-size:.75rem;background:var(--acc2);color:#c9c0ff;padding:3px 9px;border-radius:99px;font-weight:600;white-space:nowrap}
.stack{display:flex;flex-direction:column;gap:8px}
.q{font-weight:700;font-size:1.05rem}
.choices{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.choice{border:2px solid var(--line);background:var(--bg);border-radius:12px;padding:12px 14px;text-align:left;transition:.15s}
.choice small{display:block;color:var(--muted)}.choice:hover{border-color:var(--acc)}
.result{background:var(--acc2);border-radius:12px;padding:14px}.result h3{margin:0 0 8px;font-size:1.3rem;color:var(--pink)}
.cheat dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:.92rem}
.cheat dt{font-weight:700}.cheat dd{margin:0;color:var(--muted)}
.steps li{margin-bottom:8px}.rules{list-style:none;padding:0;margin:0}.rules li{margin-bottom:10px}
dialog{border:0;border-radius:20px;padding:0;width:min(640px,94vw);background:var(--card);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(5,3,15,.6);backdrop-filter:blur(3px)}
.dlg{padding:20px;display:flex;flex-direction:column;gap:10px}
.dlg-head{display:flex;justify-content:space-between;align-items:center}.dlg-head h2{margin:0}
.dlg p{margin:0}.x{border:0;background:none;font-size:1.2rem;color:var(--muted)}
textarea{width:100%;resize:vertical}
details summary{cursor:pointer;color:var(--muted);font-size:.85rem}
pre{white-space:pre-wrap;background:var(--bg);padding:10px;border-radius:10px;font-size:.82rem;max-height:200px;overflow:auto}
.dlg-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dlg-foot .btn{margin-left:auto}
.pick{display:flex;gap:4px;flex-wrap:wrap}
.pick button{border:1px solid var(--line);background:var(--bg);border-radius:99px;padding:5px 11px;font-size:.85rem}
.pick button.on{background:var(--grad);border-color:transparent;color:#fff}
.copied{background:#123526;color:#9be7c3;padding:10px 12px;border-radius:10px}
.photo{display:block;border:2px dashed var(--acc);border-radius:14px;padding:18px;text-align:center;cursor:pointer;background:var(--acc2);color:#c9c0ff;font-weight:600}
.photo input{display:none}.photo img{max-width:100%;max-height:220px;border-radius:10px}
footer{text-align:center;margin-top:36px}
@media (max-width:760px){
  body{padding:14px 12px 30px;font-size:15px}
  h1{font-size:1.5rem}
  .grid.two,.missions{grid-template-columns:1fr}
  .bigbtns{grid-template-columns:1fr 1fr}
  .focus{width:100%;grid-template-columns:1fr auto}
  .links{grid-template-columns:1fr 1fr}.link{padding:10px;gap:8px}.link .ic{font-size:1.2rem;width:22px}
  .tools{grid-template-columns:1fr}
  .dlg-foot .btn{width:100%;margin:0}
  body{padding-bottom:90px}
  .tabs{position:fixed;top:auto;bottom:0;left:0;right:0;border-radius:18px 18px 0 0;margin:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;gap:0;box-shadow:0 -6px 24px rgba(0,0,0,.5)}
  .tabs button{display:flex;flex-direction:column;align-items:center;font-size:.7rem;padding:6px 4px;border-radius:12px;flex:1;line-height:1.2}
  .tabs button br{display:block}
  dialog{width:100vw;max-width:100vw;max-height:92vh;margin:auto 0 0;border-radius:20px 20px 0 0}
}

input{color-scheme:dark}
.sec .hint{font-weight:400;font-size:.85rem;color:var(--muted);margin-left:8px}
.big:nth-child(1){background:linear-gradient(160deg,#2d2357,var(--card))}
.big:nth-child(2){background:linear-gradient(160deg,#1f3a4a,var(--card))}
.big:nth-child(3){background:linear-gradient(160deg,#4a1f45,var(--card))}
.big:nth-child(4){background:linear-gradient(160deg,#1f4a3c,var(--card))}
[hidden]{display:none!important}
.missions li.done{opacity:.75}
@media (max-width:760px){
  .tabs{overflow:hidden}
  .tabs button{white-space:normal;min-width:0;text-align:center}
}
.cal{margin-bottom:16px}.cal .steps li{margin-bottom:14px}.cal .steps .btn{margin-top:6px}
.cal input{width:100%;margin-top:6px}
#calBtns.off [data-cal=google],#calBtns.off [data-cal=webcal]{opacity:.45}
@media (max-width:760px){
  .links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .link{min-width:0}.link span{min-width:0;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
}
/* ---------- Coach ---------- */
.chat{padding:0;overflow:hidden;display:flex;flex-direction:column}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.chat-head h2{margin:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.msgs{height:min(58vh,560px);overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.msg{max-width:85%;padding:10px 14px;border-radius:16px;line-height:1.55;overflow-wrap:anywhere}
.msg.me{align-self:flex-end;background:var(--grad);color:#fff;border-bottom-right-radius:4px;white-space:normal}
.msg.me img{display:block;max-width:220px;border-radius:10px;margin-bottom:6px}
.msg.ai{align-self:flex-start;background:var(--card2);border-bottom-left-radius:4px}
.msg.ai p{margin:0 0 8px}.msg.ai p:last-child{margin-bottom:0}
.msg.ai h4{margin:12px 0 6px;color:#d8ccff}.msg.ai h4:first-child{margin-top:0}
.msg.ai ul,.msg.ai ol{margin:4px 0 8px;padding-left:22px}.msg.ai li{margin:2px 0}
.msg.ai code{background:var(--bg);padding:1px 6px;border-radius:6px;font-size:.9em}
.msg.ai hr{border:0;border-top:1px solid var(--line);margin:10px 0}
.msg .err{color:#ffb4c8}.msg .err a{color:inherit}
.tbl{overflow-x:auto;margin:6px 0 10px}
.tbl table{border-collapse:collapse;font-size:.9rem;min-width:100%}
.tbl th,.tbl td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.tbl th{background:var(--acc2)}
.msg-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.msg-tools button,.sugg button{border:1px solid var(--line);background:var(--bg);border-radius:99px;padding:5px 12px;font-size:.85rem}
.msg-tools button:hover,.sugg button:hover{border-color:var(--acc)}
.dots{display:inline-flex;gap:4px;padding:4px 0}.dots i{width:8px;height:8px;border-radius:50%;background:var(--acc);animation:dot 1s infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.welcome{margin:auto;text-align:center;max-width:520px}
.avatar{width:56px;height:56px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-size:1.6rem;margin:0 auto 10px}
.sugg{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.composer{display:flex;align-items:flex-end;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--card)}
.cin{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.composer textarea{resize:none;max-height:180px;border-radius:14px;padding:10px 14px}
.cam,.send{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;cursor:pointer}
.cam{background:var(--acc2)}.cam input{display:none}
.send{border:0;background:var(--grad);color:#fff}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--acc2);border-radius:10px;padding:4px 8px;font-size:.85rem;align-self:flex-start}
.chip img{width:34px;height:34px;object-fit:cover;border-radius:6px}.chip button{border:0;background:none;color:var(--muted)}
.codebox{padding:12px 18px;border-top:1px solid var(--line)}.codebox p{margin:0 0 4px}.codebox input{flex:1}
#dlgCoach{width:100%;padding:13px;font-size:1.05rem}
/* ---------- Sociologie ---------- */
#vakken{width:100%}
.search{width:100%;margin-bottom:12px;padding:11px 14px}
.concepts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px;align-items:start}
.concept{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.concept summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.concept summary::-webkit-details-marker{display:none}
.concept[open]{border-color:var(--acc)}.concept p{margin:8px 0 4px;color:var(--muted)}
@media (max-width:760px){
  .msgs{height:calc(100dvh - 330px);min-height:320px;padding:12px}
  .msg{max-width:92%}
  .concepts{grid-template-columns:1fr}
  .tabs button{font-size:.62rem;padding:6px 2px}
}
.concept summary b{color:var(--ink)}
@media (max-width:760px){
  body[data-tab=ai] .top{display:none}
  body[data-tab=ai] .chat{height:calc(100dvh - 104px)}
  body[data-tab=ai] .msgs{flex:1;height:auto;min-height:0}
}
/* ---------- Welkomstscherm ---------- */
.gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:radial-gradient(700px 500px at 20% 10%,#2b1f5c 0,transparent 60%),radial-gradient(700px 500px at 90% 90%,#3a1747 0,transparent 60%),var(--bg)}
.gate-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:32px 26px;max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(0,0,0,.5);animation:in .5s ease}
.gate-card h1{font-size:1.8rem}.gate-card p{margin:0}
.big-av{width:76px;height:76px;font-size:2.2rem;margin-bottom:0}
.gate-card input{padding:14px;font-size:1.1rem;text-align:center;letter-spacing:.5px}
.gate-card .btn{padding:14px;font-size:1.05rem}
.gate-err{color:#ffb4c8}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip.bad{background:#3a1f2a;color:#ffb4c8}
.photo{padding:12px;font-size:.95rem}.photo.main{padding:22px;font-size:1.05rem}
/* ---------- Slepen ---------- */
.drop{position:fixed;inset:0;z-index:60;background:rgba(18,15,31,.85);backdrop-filter:blur(4px);display:grid;place-items:center;pointer-events:none}
.drop div{border:3px dashed var(--acc);border-radius:28px;padding:50px 60px;text-align:center;display:flex;flex-direction:column;gap:8px;font-size:3rem;background:var(--card)}
.drop b{font-size:1.4rem}.drop span{font-size:1rem;color:var(--muted)}
/* ---------- Vakken ---------- */
.sec.first{margin-top:0}
.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:10px}
.course{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:4px;box-shadow:var(--sh);transition:.15s}
.course:hover{border-color:var(--acc);transform:translateY(-2px)}
.course small{color:var(--muted)}.course .due{color:var(--pink);font-weight:700}.course .tag{margin:2px 0;align-self:flex-start}
.course.add{border-style:dashed;justify-content:center;color:#c9c0ff;min-height:110px;gap:8px}.course.add input{width:100%}
.bar.sm{height:6px;margin:6px 0 0}
.cv-head{display:flex;align-items:center;gap:12px}.cv-head h2{margin:0;flex:1}
.cv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.cv-stats>div{background:var(--bg);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}
.cv-stats b{font-size:1.5rem}.cv-stats small{color:var(--muted)}.cv-stats input{padding:4px 8px;margin-top:2px;width:100%}
.cv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.btn[disabled]{opacity:.4;pointer-events:none}
.weak{background:#3a1f2a;border-radius:10px;padding:8px 12px;margin:0 0 12px}
.cv-drop{margin-bottom:10px}.cv-drop small{font-weight:400;color:var(--muted)}
.job{background:var(--acc2);border-radius:10px;padding:8px 12px;margin-bottom:8px;display:flex;align-items:center;gap:8px}.job.bad{background:#3a1f2a;color:#ffb4c8}
.items{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg)}
.item summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}.item summary::-webkit-details-marker{display:none}
.item summary b{flex:1}.item summary small{color:var(--muted)}
.card-md{max-width:none;margin:10px 0}
/* ---------- Herhalen ---------- */
#cardDlg{width:min(560px,94vw)}
.rv-top{display:flex;justify-content:space-between;gap:10px}
.flash{background:var(--card2);border-radius:16px;padding:22px;margin:12px 0;min-height:150px}
.flash .q{font-size:1.15rem;font-weight:700;margin:0}.flash hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.rv-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.btn.bad{background:#5a2236}.btn.ok{background:linear-gradient(135deg,#1f9d6b,#3ddc97)}.btn.wide{width:100%;padding:13px}
.center{text-align:center}.rv-done{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;padding:10px}
/* ---------- Vandaag ---------- */
.today{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,rgba(123,107,255,.25),rgba(255,122,198,.15));border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.today>span{font-size:1.8rem}.today div{flex:1;display:flex;flex-direction:column}.today small{color:var(--muted)}
/* ---------- Bronnen ---------- */
.src-form input{flex:1}
.src{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px}
.src small{display:block;color:var(--muted);margin-top:2px}.src .free{color:var(--ok)}
.err{color:#ffb4c8}
@media (max-width:760px){.cv-stats{grid-template-columns:1fr 1fr}.cv-stats>div:last-child{grid-column:1/3}.rv-btns .btn{padding:10px 4px;font-size:.85rem}}
@media (max-width:760px){.cv-actions{display:grid;grid-template-columns:1fr 1fr}.cv-actions .btn{padding:10px 6px;font-size:.9rem}}
.cv-drops{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.cv-drops .cv-drop{margin:0}
.cv-drop.rec{border-color:var(--pink);background:linear-gradient(135deg,rgba(255,122,198,.14),var(--acc2));color:#ffd1ea}
@media (max-width:760px){.cv-drops{grid-template-columns:1fr}}
/* iPhone zoomt in bij invoervakken kleiner dan 16px; daarna staat het menu verkeerd */
@media (max-width:760px){input,textarea,select{font-size:16px!important}}
/* ---------- Telefoon: geen inzoomen, zwevend menu los van de schermranden ---------- */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.tool-head b,.concept summary b{min-width:0;overflow-wrap:anywhere}
@media (max-width:760px){
  html,body{overflow-x:visible}
  body{overflow-x:clip}
  body{padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(120px + env(safe-area-inset-bottom))}
  .tabs{left:10px;right:10px;bottom:calc(12px + env(safe-area-inset-bottom));border-radius:22px;padding:6px 4px;border:1px solid var(--line);box-shadow:0 8px 30px rgba(0,0,0,.6)}
  .tabs button{border-radius:16px}
  body[data-tab=ai] .chat{height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .gate{padding-top:calc(20px + env(safe-area-inset-top))}
}
/* ---------- Coach stelt een vraag na een knop ---------- */
.msg.starter{border:1px solid var(--acc);background:linear-gradient(160deg,#2d2357,var(--card2))}
.starter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.starter-chips button{border:1px solid var(--acc);background:var(--bg);color:var(--ink);border-radius:99px;padding:8px 14px;font-size:.92rem;font-weight:600}
.starter-chips button:hover{background:var(--acc2)}
.starter-chips [data-act]{background:var(--grad);border-color:transparent;color:#fff}
.msg .other{border:0;background:none;color:var(--muted);font-size:.82rem;padding:10px 0 0;text-decoration:underline}
.starter-chips [data-act="file"]{background:var(--bg);border-color:var(--acc);color:var(--ink)}
@media (max-width:760px){.starter-chips button{font-size:.85rem;padding:7px 12px}}
/* iPhone: vaste achtergrond en scrollvakken laten vaste elementen schokken -> achtergrond als eigen laag */
@media (max-width:760px){
  body{background:var(--bg)}
  body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(500px 400px at 10% -10%,#2b1f5c 0,transparent 60%),radial-gradient(500px 400px at 110% 10%,#3a1747 0,transparent 55%),var(--bg)}
  .tabs{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}
}
/* ---------- Eerdere gesprekken ---------- */
.history{margin-top:22px;text-align:left;display:flex;flex-direction:column;gap:6px}
.history b{font-size:.9rem;color:var(--muted);margin-bottom:2px}
.history button{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px;text-align:left}
.history button:hover{border-color:var(--acc)}
.history span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history small{color:var(--muted);flex:none}
/* ---------- Inspreken ---------- */
.mic{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--acc2);font-size:1.2rem;display:grid;place-items:center}
.composer.recording .mic{background:#e5484d;color:#fff;font-size:1rem;animation:pulse 1.2s infinite}
.mic[disabled]{opacity:.5}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(229,72,77,.6)}70%{box-shadow:0 0 0 12px rgba(229,72,77,0)}100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}}
.rec-info{min-height:44px;display:flex;align-items:center;gap:8px;padding:0 6px;color:var(--ink);font-size:.95rem}
.rec-dot{width:10px;height:10px;border-radius:50%;background:#e5484d;animation:blink 1s infinite;flex:none}
@keyframes blink{50%{opacity:.25}}
@media (max-width:760px){.composer{gap:6px;padding:10px}.cam,.mic,.send{width:42px;height:42px}}
/* ---------- Keuze: wil je vragen? ---------- */
.offer{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.offer b{display:block;margin-bottom:2px}
.offer .starter-chips{margin-top:8px}
.offer [data-offer=exam]{background:var(--grad);border-color:transparent;color:#fff}
