: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;
}
body.tema-scuro .ta-lesson-text,
body.tema-scuro textarea.ta-input,
body.tema-scuro .ta-certificate{background:var(--paper-2); color:var(--ink);}
*{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;
}
.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);}

.ta-masthead{
  background:var(--header-bg);
  padding:1rem 1.5rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.75rem;
}
.ta-masthead-logo{display:flex; align-items:center;}
.ta-masthead-logo img{height:72px; width:auto; display:block;}
.ta-masthead .ta-sub{font-size:.78rem; color:var(--header-text-soft); text-transform:uppercase; letter-spacing:.08em; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;}
.ta-masthead a{color:var(--header-text);}

.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; text-transform:none; letter-spacing:0;
  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);}

.ta-layout{display:grid; grid-template-columns:260px 1fr; min-height:520px;}
@media (max-width:760px){ .ta-layout{grid-template-columns:1fr;} }

.ta-sidebar{border-right:1px solid var(--rule); padding:1rem 0;}
@media (max-width:760px){ .ta-sidebar{border-right:none; border-bottom:1px solid var(--rule);} }
.ta-sidebar-title{font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); padding:0 1.25rem .5rem;}
.ta-mod-item{
  display:flex; gap:.6rem; align-items:flex-start; padding:.65rem 1.25rem; cursor:pointer; border-left:3px solid transparent;
  text-decoration:none; color:var(--ink);
}
.ta-mod-item:hover{background:var(--paper-2);}
.ta-mod-item.active{border-left-color:var(--accent); background:var(--paper-2);}
.ta-mod-num{font-family:'JetBrains Mono', monospace; font-size:.75rem; color:var(--ink-faint); min-width:1.4rem; padding-top:.1rem;}
.ta-mod-title{font-size:.88rem; font-weight:500;}
.ta-mod-status{font-size:.72rem; margin-top:.15rem;}
.ta-mod-status.approvato{color:var(--approve);}
.ta-mod-status.rivedere{color:var(--revise);}
.ta-mod-status.attesa{color:var(--ink-faint);}

.ta-main{padding:1.5rem 1.75rem;}
.ta-eyebrow{font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); margin-bottom:.3rem;}

.ta-lesson{margin-top:.6rem;}
.ta-lesson-text{background:#fff; border:1px solid var(--rule); border-radius:4px; padding:1rem 1.1rem; margin-top:.7rem; font-size:.95rem;}

.ta-brief{background:var(--paper-2); border:1px solid var(--rule); border-radius:4px; padding:1rem 1.1rem; margin:.6rem 0 1.1rem; font-size:.94rem;}

textarea.ta-input{
  width:100%; min-height:180px; font-family:'Manrope', sans-serif; font-size:.95rem; line-height:1.6;
  padding:.9rem; border:1px solid var(--rule); border-radius:4px; background:#fff; color:var(--ink); resize:vertical;
}
textarea.ta-input:focus{outline:2px solid var(--accent); outline-offset:1px;}

.ta-actions{display:flex; justify-content:flex-end; gap:.6rem; margin-top:.7rem;}
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;}
button.ta-btn.secondary{background:transparent; color:var(--ink); border-color:var(--rule);}
button.ta-btn.secondary:hover:not(:disabled){background:var(--paper-2);}

.ta-feedback{margin-top:1.4rem; border-top:1px dashed var(--rule); padding-top:1.2rem;}
.ta-scores{display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:.6rem; margin:.8rem 0 1rem;}
.ta-score-item{font-size:.72rem; color:var(--ink-soft);}
.ta-score-bar{height:5px; background:var(--rule); border-radius:3px; margin-top:.3rem; overflow:hidden;}
.ta-score-fill{height:100%; background:var(--accent); border-radius:3px;}
.ta-note{
  font-family:'Space Grotesk', sans-serif; font-style:italic; font-size:.98rem; color:var(--ink-soft);
  border-left:3px solid var(--accent); padding:.2rem 0 .2rem 1rem; margin:.6rem 0 1rem;
}
.ta-stamp{
  display:inline-block; font-family:'JetBrains Mono', monospace; font-size:.78rem; font-weight:500; letter-spacing:.06em;
  text-transform:uppercase; padding:.35rem .7rem; border-radius:3px; transform:rotate(-1.5deg);
}
.ta-stamp.approvato{background:var(--approve-bg); color:var(--approve); border:1.5px solid var(--approve);}
.ta-stamp.rivedere{background:var(--revise-bg); color:var(--revise); border:1.5px solid var(--revise);}

.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-readiness{border-top:2px solid var(--ink); padding:1.25rem 1.75rem 1.5rem; background:var(--paper-2);}
.ta-req-list{list-style:none; margin:.7rem 0 0; padding:0; font-size:.88rem;}
.ta-req-list li{padding:.3rem 0; display:flex; gap:.5rem; align-items:baseline;}
.ta-req-ok{color:var(--approve); font-family:'JetBrains Mono', monospace;}
.ta-req-no{color:var(--ink-faint); font-family:'JetBrains Mono', monospace;}
.ta-certificate{
  margin-top:1rem; background:#fff; border:1.5px solid var(--approve); border-radius:4px; padding:1rem 1.1rem; font-size:.88rem;
}
.ta-loading{font-size:.85rem; color:var(--ink-faint); font-style:italic;}
.ta-error{font-size:.85rem; color:var(--revise); margin-top:.5rem;}

/* Mascotte AI animata */
.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;}
.ta-mascotte-shadow{animation:ta-shadow 3.6s ease-in-out infinite; transform-box:fill-box; transform-origin:center;}

@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(0.12); }
}
@keyframes ta-glow{
  0%, 100% { opacity:.55; }
  50% { opacity:1; }
}
@keyframes ta-shadow{
  0%, 100% { transform:scale(1); opacity:.5; }
  50% { transform:scale(0.82); opacity:.3; }
}

/* Mascotte fissa in basso a destra, presente sulle pagine del corso */
.ta-mascotte-corner{
  position:fixed; bottom:16px; right:16px; width:74px; z-index:40;
  pointer-events:none; filter:drop-shadow(0 4px 10px rgba(0,0,0,.18));
}
.ta-mascotte-corner svg{width:100%; height:auto; display:block;}
@media (max-width:760px){ .ta-mascotte-corner{width:56px; bottom:12px; right:12px;} }
