:root{
  --bg:#fbfbfa;
  --panel:#ffffff;
  --muted:#777;
  --accent:#2b8a3e;
  --accent-2:#1f7a33;
  --danger:#c23a3a;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}
*{box-sizing:border-box}
html,body,#app{height:100%;margin:0;background:var(--bg);color:#111}
#app{padding:12px 14px}
#brand{max-width:860px;margin:6px auto 14px;text-align:left}
#brand h1{margin:0;font-size:20px}
#siteDesc{color:var(--muted);margin-top:6px;font-size:14px}

main#main{max-width:900px;margin:0 auto;display:block}
#selector{background:var(--panel);padding:14px;border-radius:10px;box-shadow:0 6px 18px rgba(16,24,40,0.04)}
.hint{color:var(--muted);margin-bottom:10px}
#generateControls{margin-bottom:12px}
#generateBtn{background:var(--accent);color:#fff;border:none;padding:10px 12px;border-radius:8px;cursor:pointer}

.generatedGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:8px}
.generatedCard{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:#f7fff7;border:1px solid #e6f5ea}
.generatedName{flex:1;padding:8px;border-radius:6px;background:#def8e3;color:var(--accent-2);font-weight:700}
.generatedAvatar{width:64px;height:64px;border-radius:8px;background:#eee;display:flex;align-items:center;justify-content:center;overflow:hidden}
.generatedAvatar img{width:100%;height:100%;object-fit:cover}
.selectBtn{background:#1b6b2d;color:#fff;padding:8px 10px;border-radius:8px;border:none;cursor:pointer}

#selectionReminders{margin-top:12px;padding:10px;background:#fffbe9;border-radius:8px;border:1px solid #fff1c9}
.reminder{color:var(--muted);margin-bottom:8px}
.primary{background:var(--accent);color:#fff;border:none;padding:10px 12px;border-radius:8px;cursor:pointer}

#chatArea{display:flex;gap:12px;margin-top:12px}
aside#convos{
  width:120px;background:var(--panel);border-radius:8px;padding:8px;display:flex;flex-direction:column;
  box-shadow:0 1px 4px rgba(0,0,0,0.06)
}
#convos header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
#convos .title{font-weight:600;font-size:13px}
#newConv{background:none;border:none;font-size:18px;padding:4px;border-radius:6px;cursor:pointer}
#convList{list-style:none;padding:0;margin:0;overflow:auto}
#convList li{padding:6px 8px;border-radius:6px;margin-bottom:6px;background:#f6f6f6;cursor:pointer;font-size:13px}
#convList li.active{background:linear-gradient(90deg,#e9f7ee,#f3fff7);border:1px solid #daf3db}

#conversationPanel{flex:1;display:flex;flex-direction:column}
#chatHeader{display:flex;justify-content:space-between;align-items:center;padding:6px 4px;position:relative}
#correctionCount{
  position:absolute;
  right:8px;
  top:8px;
  background:#fff;
  border:1px solid #eee;
  padding:4px 8px;
  border-radius:12px;
  font-size:12px;
  color:var(--muted);
  box-shadow:0 1px 3px rgba(0,0,0,0.04);
}
#convTitle{font-weight:700}
#conversation{flex:1;overflow:auto;padding:12px;background:transparent;border-radius:8px}
.bubble{max-width:78%;padding:8px 10px;border-radius:12px;margin:8px 0;white-space:pre-wrap}
.user{background:#e6f0ff;margin-left:auto;border-bottom-right-radius:4px}
.assistant{background:#f3f3f3;border-bottom-left-radius:4px}
.system{background:#fff7e6;color:#7a5b00;font-size:13px}
#composer{display:flex;gap:8px;padding:8px;border-radius:8px;background:var(--panel)}
#composer input, #composer textarea{flex:1;border:1px solid #e6e6e6;padding:10px;border-radius:8px;font-size:15px}
#composer button{background:var(--accent);color:white;border:none;padding:10px 12px;border-radius:8px;cursor:pointer}
#composer button.secondary{background:#999}
#teachPanel{padding:10px;background:var(--panel);border-radius:8px;margin-top:8px}
#teachPanel.hidden{display:none}
#lastAssistant{background:#f3f3f3;padding:8px;border-radius:8px}
label{font-size:13px;color:var(--muted);display:block;margin-top:8px;margin-bottom:4px}
.teachActions{display:flex;gap:8px;margin-top:8px}
button#cancelTeach.secondary{background:#eee}

@media (max-width:760px){
  #chatArea{flex-direction:column}
  aside#convos{display:none}
  .generatedGrid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
}

#conversationPanel { position: relative; }

/* tabs */
#tabBar { display:flex; gap:8px; margin-bottom:8px; }
.tab { background:#f3f3f3;border:none;padding:8px 10px;border-radius:8px;cursor:pointer }
.tab.active { background:linear-gradient(90deg,#e9f7ee,#f3fff7);border:1px solid #daf3db }

/* small avatar under title */
.botAvatarSmall{width:48px;height:48px;border-radius:8px;margin-top:6px;overflow:hidden;background:#eee}
.botAvatarSmall img{width:100%;height:100%;object-fit:cover}

/* level panel */
#levelPanel { padding:10px;background:var(--panel);border-radius:8px;margin-top:8px;border:1px solid #f0f0f0}
#xpDisplay{font-size:18px;font-weight:700;margin-bottom:8px}
#upgradesList{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:8px}
.upgradeCard{padding:8px;border-radius:8px;background:#fff;border:1px solid #eee;display:flex;flex-direction:column;gap:8px}
.upgradeCard img{width:100%;height:100px;object-fit:cover;border-radius:6px}
.upgradeActions{display:flex;gap:8px;justify-content:flex-end}

/* upgrade alert/modal */
.upgradeAlert{position:fixed;left:50%;transform:translateX(-50%);top:16px;padding:12px 16px;background:#fffbe6;border:1px solid #ffecb3;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,0.06);z-index:60}
#upgradeStore{padding:12px;background:#fff;border-radius:8px;border:1px solid #eee;margin-top:12px}
.hidden{display:none}

/* reuse some composer button styles for small buttons */
.smallBtn{background:var(--accent);color:#fff;border:none;padding:8px 10px;border-radius:8px;cursor:pointer}
.smallBtn.secondary{background:#999}

