/* ============================================================
   ÁREA PRIVADA — Login, Chat e Agenda
   ============================================================ */
.auth-shell{
  min-height:calc(100svh - 120px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,520px);
  gap:clamp(1.5rem,4vw,4rem);
  align-items:center;
  padding-block:clamp(7rem,12vw,10rem) clamp(3rem,8vw,6rem);
}
.auth-panel{
  background:rgba(255,255,255,.96);
  border:1px solid var(--linha-escura);
  box-shadow:0 24px 70px rgba(31,47,47,.16);
  padding:clamp(1.5rem,3.5vw,2.6rem);
}
.auth-brand-mark{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:1.8rem;
  color:var(--brand-primary);
}
.auth-brand-mark img{
  width:72px;
  height:auto;
}
.auth-brand-mark strong{
  display:block;
  font-family:var(--font-display);
  letter-spacing:.18em;
  font-size:1.35rem;
  font-weight:400;
}
.auth-brand-mark span{
  display:block;
  color:var(--brand-secondary);
  font-size:.7rem;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.auth-copy h1{
  color:var(--nevoa);
  max-width:12ch;
  margin:.9rem 0 1.2rem;
}
.auth-copy .lead{
  color:rgba(245,245,245,.82);
}
.auth-copy-card{
  margin-top:2rem;
  padding:1.4rem;
  border:1px solid rgba(245,245,245,.18);
  background:rgba(31,47,47,.42);
  color:rgba(245,245,245,.78);
  max-width:560px;
}
.form-stack{
  display:grid;
  gap:1.15rem;
}
.field{
  display:grid;
  gap:.45rem;
}
.field label,.field-label{
  color:var(--brand-primary);
  font-size:.74rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
}
.field input,.field textarea,.field select{
  width:100%;
  min-height:48px;
  border:1px solid rgba(50,75,75,.22);
  background:#fff;
  color:var(--tinta);
  font-family:var(--font-body);
  font-size:1rem;
  border-radius:2px;
  padding:.85rem .95rem;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.field textarea{
  min-height:128px;
  resize:vertical;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;
  border-color:var(--brand-secondary);
  box-shadow:0 0 0 4px rgba(70,125,120,.12);
}
.form-check-line{
  display:flex;
  align-items:center;
  gap:.6rem;
  color:rgba(15,25,25,.78);
}
.form-check-line input{
  width:18px;
  height:18px;
  accent-color:var(--brand-secondary);
}
.auth-submit{
  width:100%;
  justify-content:center;
  border-color:var(--brand-primary);
  background:var(--brand-primary);
  color:var(--nevoa);
  margin-top:.25rem;
}
.auth-submit:hover{
  background:var(--brand-secondary);
  border-color:var(--brand-secondary);
  color:var(--nevoa);
}
.auth-links{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-top:1.1rem;
  font-size:.92rem;
  color:var(--brand-secondary);
}
.validation-summary-errors{
  border-left:4px solid #9a3d3d;
  background:rgba(154,61,61,.08);
  color:#7a2e2e;
  padding:1rem;
  margin-bottom:1rem;
}
.field-validation-error{
  color:#8a2f2f;
  font-size:.9rem;
}
.private-topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1.6rem;
}
.private-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.private-actions .btn{
  border-color:var(--brand-primary);
  color:var(--brand-primary);
}
.private-actions .btn:hover{
  color:var(--nevoa);
  background:var(--brand-primary);
}

/* Chat de alto padrão */
.chat-shell{
  display:grid;
  grid-template-columns:minmax(280px,360px) minmax(0,1fr);
  gap:1.25rem;
  align-items:stretch;
}
.chat-side,.chat-main,.calendar-card,.digest-card{
  background:#fff;
  border:1px solid var(--linha-escura);
  box-shadow:0 20px 60px rgba(50,75,75,.09);
}
.chat-side{
  padding:1.3rem;
}
.chat-side h3{
  color:var(--brand-primary);
  margin-bottom:.75rem;
}
.chat-side p,.chat-hint{
  color:rgba(15,25,25,.68);
  font-size:.95rem;
}
.chat-suggestion{
  display:block;
  width:100%;
  text-align:left;
  margin:.6rem 0;
  padding:.85rem;
  border:1px solid rgba(50,75,75,.14);
  background:rgba(70,125,120,.06);
  color:var(--brand-primary);
  cursor:pointer;
  font-family:var(--font-body);
  transition:all .2s var(--ease);
}
.chat-suggestion:hover{
  border-color:var(--brand-secondary);
  transform:translateX(3px);
}
.chat-main{
  min-height:680px;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.chat-toolbar{
  padding:1rem 1.2rem;
  border-bottom:1px solid var(--linha-escura);
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
}
.chat-status{
  color:rgba(15,25,25,.62);
  font-size:.9rem;
}
.chat-window{
  padding:1.2rem;
  overflow:auto;
  max-height:62vh;
  display:flex;
  flex-direction:column;
  gap:1rem;
  background:
    radial-gradient(circle at top left, rgba(70,125,120,.09), transparent 34%),
    linear-gradient(180deg, rgba(245,245,245,.85), #fff 46%);
}
.message{
  max-width:min(82%,760px);
  border:1px solid rgba(50,75,75,.12);
  padding:1rem 1.05rem;
  box-shadow:0 10px 30px rgba(50,75,75,.06);
}
.message.user{
  align-self:flex-end;
  background:var(--brand-primary);
  color:var(--nevoa);
  border-color:var(--brand-primary);
}
.message.agent{
  align-self:flex-start;
  background:#fff;
  color:var(--tinta);
}
.message .meta{
  display:block;
  opacity:.68;
  font-size:.76rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:.45rem;
}
.message .text{
  white-space:pre-wrap;
}
.message.agent .text{
  line-height:1.7;
}
.structured-result{
  margin-top:.9rem;
  display:grid;
  gap:.75rem;
}
.insight-card{
  border:1px solid rgba(50,75,75,.14);
  padding:.85rem;
  background:rgba(245,245,245,.65);
}
.insight-card strong{
  color:var(--brand-primary);
}
.insight-card.warn{
  border-left:4px solid #b58932;
}
.insight-card.critical{
  border-left:4px solid #9a3d3d;
}
.chat-composer{
  border-top:1px solid var(--linha-escura);
  padding:1rem;
  background:#fff;
}
.chat-input-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:.85rem;
  align-items:end;
}
.chat-input-row textarea{
  min-height:86px;
}
.chat-send{
  height:52px;
  border-color:var(--brand-primary);
  background:var(--brand-primary);
  color:var(--nevoa);
}
.chat-send:hover{
  background:var(--brand-secondary);
  color:var(--nevoa);
}
.dropzone{
  margin-top:.75rem;
  border:1px dashed rgba(50,75,75,.32);
  background:rgba(70,125,120,.05);
  padding:.75rem;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  color:rgba(15,25,25,.68);
}
.dropzone.dragover{
  border-color:var(--brand-secondary);
  background:rgba(70,125,120,.12);
}
.file-list{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.65rem;
}
.file-chip,.download-chip{
  border:1px solid rgba(50,75,75,.18);
  background:#fff;
  color:var(--brand-primary);
  padding:.35rem .55rem;
  font-size:.86rem;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.file-chip button{
  border:0;
  background:transparent;
  color:#8a2f2f;
  cursor:pointer;
}
.typing{
  display:inline-flex;
  gap:.25rem;
  align-items:center;
}
.typing i{
  width:.45rem;
  height:.45rem;
  border-radius:50%;
  background:var(--brand-secondary);
  animation:typingPulse 1s infinite ease-in-out;
}
.typing i:nth-child(2){animation-delay:.12s}
.typing i:nth-child(3){animation-delay:.24s}
@keyframes typingPulse{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

/* Agenda Microsoft */
.calendar-layout{
  display:grid;
  grid-template-columns:minmax(280px,360px) minmax(0,1fr);
  gap:1.25rem;
}
.calendar-card,.digest-card{
  padding:1.3rem;
}
.calendar-date{
  font-family:var(--font-display);
  font-size:2.2rem;
  color:var(--brand-primary);
  line-height:1;
}
.calendar-events{
  display:grid;
  gap:.85rem;
  margin-top:1rem;
}
.calendar-event{
  border-left:4px solid var(--brand-secondary);
  background:#fff;
  border-top:1px solid var(--linha-escura);
  border-right:1px solid var(--linha-escura);
  border-bottom:1px solid var(--linha-escura);
  padding:1rem;
}
.calendar-event.today{
  background:rgba(70,125,120,.06);
}
.calendar-event time{
  display:block;
  color:var(--brand-secondary);
  font-weight:700;
  margin-bottom:.25rem;
}
.calendar-event p{
  color:rgba(15,25,25,.68);
  margin-top:.3rem;
}
@media (max-width: 980px){
  .auth-shell,.chat-shell,.calendar-layout{
    grid-template-columns:1fr;
  }
  .auth-copy h1{max-width:18ch}
  .chat-main{min-height:600px}
  .message{max-width:94%}
}
@media (max-width: 620px){
  .chat-input-row{
    grid-template-columns:1fr;
  }
  .chat-send{
    width:100%;
    justify-content:center;
  }
  .private-topbar{
    display:block;
  }
  .private-actions{
    margin-top:1rem;
  }
}
