:root{
  --tea-deep:#000000;
  --tea-mid:#181818;
  --gold:#ffffff;
  --gold-soft:#e0e0e0;
  --paper:#ffffff;
  --paper-dim:#f0f0f0;
  --ink:#121212;
  --ink-soft:#555555;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Hind Siliguri', sans-serif;
  background: linear-gradient(180deg, var(--tea-deep) 0%, var(--tea-mid) 100%);
  color:var(--gold-soft);
  min-height:100vh;
}
.wrap{ max-width:960px; margin:0 auto; padding:28px 18px 60px; }
header{
  display:flex; align-items:center; gap:16px;
  margin-bottom:22px; padding-bottom:18px;
  border-bottom:1px solid rgba(200,155,60,0.25);
}
.glyph{ font-size:2.6rem; color:var(--gold); line-height:1; }
h1{
  font-family:'Fraunces', serif; font-weight:700;
  font-size:1.9rem; margin:0; letter-spacing:0.3px;
}
h1 span{ color:#ffffff; font-weight:400; font-style:italic; font-size:1.1rem; display:block; margin-top:2px; }
.tabs{ display:flex; gap:8px; margin-bottom:18px; }
.tab{
  padding:8px 18px; border-radius:999px;
  border:1px solid rgba(200,155,60,0.35);
  background:transparent; color:#ffffff;
  font-family:'Hind Siliguri',sans-serif; font-size:0.92rem; cursor:pointer;
  transition:all .15s ease;
}
.tab.active{ background:#ffffff; color:#000000; font-weight:600; border-color:var(--gold); }
.panel{ display:none; }
.panel.active{ display:block; }

.chat-box{
  background:var(--paper); border-radius:14px;
  min-height:400px; max-height:520px; overflow-y:auto;
  padding:20px; color:var(--ink);
  display:flex; flex-direction:column; gap:14px;
}
.msg{ max-width:80%; padding:11px 15px; border-radius:12px; line-height:1.5; font-size:0.98rem; }
.msg.user{ align-self:flex-end; background:var(--tea-mid); color:var(--paper); }
.msg.ai{ align-self:flex-start; background:var(--paper-dim); color:var(--ink); border:1px solid rgba(45,74,62,0.15); }
.msg.empty{ align-self:center; color:var(--ink-soft); font-style:italic; text-align:center; }
.input-row{ display:flex; gap:10px; margin-top:14px; }
textarea{
  flex:1; resize:none; border-radius:10px;
  border:1px solid rgba(200,155,60,0.4);
  background:var(--paper); color:var(--ink);
  padding:12px 14px; font-family:'Hind Siliguri',sans-serif;
  font-size:0.98rem; min-height:52px;
}
button.send{
  background:#ffffff; color:#000000; border:none;
  border-radius:10px; padding:0 22px; font-weight:600; cursor:pointer;
  font-family:'Hind Siliguri',sans-serif; font-size:0.98rem;
}
button.send:disabled{ opacity:0.5; cursor:not-allowed; }
.hint{ font-size:0.82rem; color:var(--gold-soft); margin-top:8px; }

.dict-form{
  background:var(--paper); border-radius:14px; padding:18px; color:var(--ink);
  display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px;
}
.dict-form input{
  padding:10px 12px; border-radius:8px;
  border:1px solid rgba(45,74,62,0.2);
  font-family:'Hind Siliguri',sans-serif; font-size:0.94rem;
}
.dict-form input.full{ grid-column:1/-1; }
.dict-form button{
  grid-column:1/-1; background:var(--tea-mid); color:var(--paper);
  border:none; padding:10px; border-radius:8px; font-weight:600;
  cursor:pointer; font-family:'Hind Siliguri',sans-serif;
}
.dict-list{ display:flex; flex-direction:column; gap:8px; }
.dict-entry{
  background:var(--paper-dim); color:var(--ink); border-radius:10px;
  padding:12px 14px; display:flex; justify-content:space-between;
  align-items:center; gap:10px;
}
.dict-entry .term{ font-weight:600; }
.dict-entry .meaning{ color:var(--ink-soft); font-size:0.9rem; }
.dict-entry button{ background:none; border:none; color:#a33; cursor:pointer; font-size:0.85rem; }
.count-badge{
  display:inline-block; background:rgba(200,155,60,0.2); color:var(--gold-soft);
  padding:4px 12px; border-radius:999px; font-size:0.85rem; margin-bottom:14px;
}
.empty-state{ color:var(--gold-soft); text-align:center; padding:30px; font-style:italic; }
.sub-title {
  font-size: 0.85rem;
  font-style: italic;
  color: #e0d5b7;
}