:root{
  --paper:#F1F9F5;
  --paper-2:#E5F4EC;
  --ink:#1E2129;
  --ink-soft:#566259;
  --ink-faint:#8B9A90;
  --rule:#D4ECE0;
  --accent:#53B483;
  --accent-dark:#2E8C5D;
  --approve:#2E8C5D;
  --approve-bg:#DFF3E7;
  --revise:#8B5238;
  --revise-bg:#F1E6DE;
  --header-bg:#2C654A;
  --header-text:#F4FBF7;
  --header-text-soft:rgba(244,251,247,.8);
}

body.tema-scuro{
  --paper:#101C16;
  --paper-2:#182821;
  --ink:#EAF3ED;
  --ink-soft:#A9BDB2;
  --ink-faint:#6F8377;
  --rule:#28402F;
  --accent:#5FC593;
  --accent-dark:#7BD6A8;
  --approve:#6FCB9B;
  --approve-bg:#1E3A2C;
  --revise:#D98F6F;
  --revise-bg:#3A2A22;
}

*{box-sizing:border-box;}
body{margin:0;}
.ta-root{
  font-family:'Manrope', sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  transition:background .2s ease, color .2s ease;
  overflow-x:hidden;
}
.ta-root h1,.ta-root h2,.ta-root h3{font-family:'Space Grotesk', sans-serif; margin:0; font-weight:600;}
.ta-mono{font-family:'JetBrains Mono', monospace;}
.ta-root a{color:var(--accent-dark);}

/* Masthead */
.ta-masthead{
  background:var(--header-bg); padding:1rem 1.5rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.75rem; position:relative;
}
.ta-masthead-logo{display:flex; align-items:center;}
.ta-masthead-logo img{height:56px; width:auto; display:block;}
.ta-tagline{font-size:.72rem; color:var(--header-text-soft); text-transform:uppercase; letter-spacing:.08em; flex:1; margin-left:.5rem;}
@media (max-width:760px){ .ta-tagline{display:none;} }

.ta-menu-toggle{display:none; background:none; border:none; padding:.4rem; cursor:pointer; color:var(--header-text);}
.ta-menu-toggle svg{display:block; width:26px; height:26px;}

.ta-sub{font-size:.78rem; color:var(--header-text-soft); text-transform:uppercase; letter-spacing:.08em; display:flex; align-items:center; gap:1rem; flex-wrap:wrap;}
.ta-masthead a{color:var(--header-text);}
.ta-menu-nome{color:var(--header-text); font-weight:600;}

.ta-theme-toggle{
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); color:var(--header-text);
  font-family:'Manrope', sans-serif; font-size:.72rem; padding:.3rem .65rem; border-radius:20px; cursor:pointer;
  display:inline-flex; align-items:center; gap:.35rem;
}
.ta-theme-toggle:hover{background:rgba(255,255,255,.2);}

@media (max-width:760px){
  .ta-menu-toggle{display:inline-flex;}
  .ta-sub{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--header-bg);
    flex-direction:column; align-items:flex-start; gap:0; padding:.5rem 1.5rem 1rem; box-shadow:0 8px 16px rgba(0,0,0,.2); z-index:80;
  }
  .ta-sub.aperto{display:flex;}
  .ta-sub a, .ta-sub .ta-menu-nome{width:100%; padding:.7rem 0; border-bottom:1px solid rgba(255,255,255,.12);}
  .ta-sub .ta-theme-toggle{margin-top:.8rem;}
}

/* Onboarding (login/registrazione) */
.ta-onboard{padding:3rem 1.5rem; max-width:420px; margin:0 auto; text-align:center;}
.ta-onboard input{
  width:100%; padding:.7rem .9rem; font-size:.95rem; border:1px solid var(--rule); border-radius:4px; margin:.6rem 0; font-family:'Manrope', sans-serif;
}
.ta-fumetto{
  position:relative; background:var(--paper-2); border:1.5px solid var(--rule); border-radius:14px;
  padding:.8rem 1.1rem; margin:0 auto 1rem; max-width:320px; font-size:.88rem; color:var(--ink);
  font-family:'Manrope', sans-serif; box-shadow:0 3px 10px rgba(0,0,0,.06);
}
.ta-fumetto::after{
  content:''; position:absolute; bottom:-9px; left:50%; transform:translateX(-50%);
  width:16px; height:16px; background:var(--paper-2); border-right:1.5px solid var(--rule); border-bottom:1.5px solid var(--rule);
  clip-path:polygon(0 0, 100% 0, 50% 100%);
}
.ta-mascotte-wrap{display:flex; justify-content:center; margin:0 0 .5rem;}
.ta-mascotte{width:150px; height:auto;}
.ta-mascotte-float{animation:ta-float 3.6s ease-in-out infinite; transform-box:fill-box; transform-origin:center;}
.ta-mascotte-eyes{animation:ta-blink 4.8s ease-in-out infinite; transform-box:fill-box; transform-origin:center;}
.ta-mascotte-antenna-tip{animation:ta-glow 2.2s ease-in-out infinite;}
@keyframes ta-float{0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);}}
@keyframes ta-blink{0%,88%,100%{transform:scaleY(1);} 91%,95%{transform:scaleY(.12);}}
@keyframes ta-glow{0%,100%{opacity:.55;} 50%{opacity:1;}}

button.ta-btn{
  font-family:'Manrope', sans-serif; font-size:.88rem; font-weight:500; cursor:pointer;
  padding:.55rem 1.1rem; border-radius:4px; border:1px solid var(--accent-dark); background:var(--accent); color:#fff;
  transition:background .15s ease;
}
button.ta-btn:hover:not(:disabled){background:var(--accent-dark);}
button.ta-btn:disabled{opacity:.5; cursor:progress;}

.ta-error{font-size:.85rem; color:var(--revise); margin-top:.5rem;}

.ta-pagina-home{
  position:relative; background-color:var(--paper);
  background-image:radial-gradient(var(--rule) 1px, transparent 1px); background-size:26px 26px; overflow-x:hidden;
}
.ta-pagina-home::before,.ta-pagina-home::after{content:''; position:absolute; border-radius:50%; filter:blur(80px); z-index:0; pointer-events:none;}
.ta-pagina-home::before{width:420px; height:420px; background:var(--accent); opacity:.22; top:-140px; left:-140px; animation:ta-blob-fluttua 15s ease-in-out infinite;}
.ta-pagina-home::after{width:380px; height:380px; background:var(--accent-dark); opacity:.20; bottom:-160px; right:-120px; animation:ta-blob-fluttua 19s ease-in-out infinite reverse;}
@keyframes ta-blob-fluttua{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(36px,26px) scale(1.1);}}
.ta-pagina-home .ta-masthead{position:relative; z-index:2;}
.ta-pagina-home .ta-onboard{position:relative; z-index:1;}

.ta-footer{padding:1.2rem 1.75rem; text-align:center; font-size:.76rem; color:var(--ink-faint);}

/* ==================== Layout della chat ==================== */
.tai-layout{
  display:grid; grid-template-columns:260px 1fr; height:calc(100vh - 78px);
}
@media (max-width:760px){ .tai-layout{grid-template-columns:1fr; height:auto;} }

.tai-sidebar{
  background:var(--paper-2); border-right:1px solid var(--rule); padding:1rem; overflow-y:auto;
  display:flex; flex-direction:column; gap:.8rem;
}
@media (max-width:760px){ .tai-sidebar{border-right:none; border-bottom:1px solid var(--rule); max-height:220px;} }

.tai-nuova-conv{
  display:block; text-align:center; background:var(--accent); color:#fff; text-decoration:none;
  padding:.6rem; border-radius:6px; font-weight:600; font-size:.88rem;
}
.tai-nuova-conv:hover{background:var(--accent-dark);}

.tai-lista-conv{display:flex; flex-direction:column; gap:.3rem;}
.tai-conv-item{
  display:block; padding:.55rem .7rem; border-radius:6px; font-size:.85rem; color:var(--ink-soft);
  text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tai-conv-item:hover{background:var(--paper);}
.tai-conv-item.attiva{background:var(--paper); color:var(--ink); font-weight:600;}
.tai-nessuna-conv{font-size:.8rem; color:var(--ink-faint); text-align:center; margin-top:1rem;}

.tai-chat-area{display:flex; flex-direction:column; height:100%; padding:0 1.2rem;}

.tai-messaggi{flex:1; overflow-y:auto; padding:1.5rem 0; max-width:760px; width:100%; margin:0 auto;}

.tai-stato-vuoto{text-align:center; padding:2rem 1rem; max-width:480px; margin:2rem auto 0;}
.tai-stato-vuoto h2{margin:.5rem 0 .6rem;}
.tai-stato-vuoto p{color:var(--ink-soft); font-size:.92rem;}
.tai-stato-vuoto .ta-mascotte-wrap{margin-bottom:0;}

.tai-messaggio{margin-bottom:1.2rem; display:flex;}
.tai-messaggio.tai-utente{justify-content:flex-end;}
.tai-messaggio.tai-assistente{justify-content:flex-start;}
.tai-messaggio-corpo{
  max-width:80%; padding:.8rem 1.1rem; border-radius:12px; font-size:.95rem; line-height:1.6; white-space:pre-wrap;
}
.tai-utente .tai-messaggio-corpo{background:var(--accent); color:#fff; border-bottom-right-radius:4px;}
.tai-assistente .tai-messaggio-corpo{background:var(--paper-2); color:var(--ink); border:1px solid var(--rule); border-bottom-left-radius:4px;}

.tai-composer{
  max-width:760px; width:100%; margin:0 auto; display:flex; gap:.6rem; align-items:flex-end;
  padding:.8rem; background:var(--paper-2); border:1px solid var(--rule); border-radius:14px; margin-bottom:1rem;
}
.tai-composer textarea{
  flex:1; border:none; background:transparent; resize:none; font-family:'Manrope', sans-serif; font-size:.95rem;
  color:var(--ink); min-height:26px; max-height:220px; padding:.4rem; line-height:1.5;
}
.tai-composer textarea:focus{outline:none;}
.tai-composer button{flex-shrink:0;}

.tai-loading{max-width:760px; margin:0 auto .6rem; font-size:.85rem; color:var(--ink-faint); font-style:italic; text-align:center;}
