:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263e35;background:#faf8f4;font-synthesis:none;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{max-width:1100px;margin:auto;padding:30px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid #e8e8df}.brand{font-size:26px;letter-spacing:4px;font-weight:650;text-decoration:none;color:#264c40}.brand span{color:#c49c7b;padding-left:12px}nav{display:flex;gap:28px}a{color:#31584d;text-underline-offset:5px}nav a{font-size:15px;text-decoration:none}a:hover{text-decoration:underline}main{max-width:820px;min-height:65vh;margin:auto;padding:56px 28px}h1{font-size:clamp(30px,5vw,44px);line-height:1.2;letter-spacing:-1px;color:#264c40;font-weight:600;margin:0 0 24px}h2{font-size:24px;line-height:1.3;margin:0 0 8px}.lead{font-size:18px;color:#67736c;max-width:540px;margin-bottom:36px}.card{display:block;background:#fff;border:1px solid #e8e8df;border-radius:26px;padding:28px;margin:18px 0;text-decoration:none}.primary{background:#2d5547;color:#fff;border-color:#2d5547}.primary h2{color:#fff}.card p{margin:4px 0}.muted{color:#67736c}.auth{max-width:480px;margin:auto}.auth h1{font-size:34px}label{display:block;margin:18px 0 6px}input,textarea{font:inherit;width:100%;border:1px solid #d8ded3;border-radius:16px;background:#edf2ec;padding:14px;color:#263e35}input{font-size:16px}textarea{resize:vertical;min-height:58px;max-height:160px;background:#fff}button,.button{font:inherit;border:0;border-radius:22px;padding:14px 24px;background:#2d5547;color:white;cursor:pointer;text-align:center;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:wait}form button{margin-top:24px;width:100%}.secondary{background:#edf2ec;color:#31584d}.error{color:#8a332b;background:#f7ece6;padding:12px 16px;border-radius:12px}.error:empty{display:none}.small{font-size:14px}.center{text-align:center}footer{max-width:750px;margin:24px auto;padding:20px 28px;text-align:center;font-size:12px;color:#737a71}dl{margin:24px 0}dt{font-size:14px;color:#67736c}dd{margin:0 0 20px;overflow-wrap:anywhere;font-size:18px}.badge{display:inline-block;background:#f5eee5;border-radius:24px;padding:6px 16px;font-size:15px}.chat-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.chat-title h1{font-size:30px;margin:0}.messages{display:flex;flex-direction:column;gap:16px;max-height:52vh;min-height:240px;overflow-y:auto;padding:24px 2px;scroll-behavior:smooth}.bubble{padding:18px 22px;border-radius:24px;max-width:85%;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5eee5;align-self:flex-start}.bubble.user{background:#e0eae3;align-self:flex-end}.bubble.error{color:#8a332b}.composer{display:flex;align-items:end;gap:12px;margin-top:16px}.composer button{width:auto;margin:0;min-height:58px}.chat-note{text-align:center;font-size:12px;color:#737a71}:focus-visible{outline:3px solid #a77b56;outline-offset:4px}@media(max-width:600px){header{padding:20px;align-items:flex-start;gap:16px}nav{gap:8px;flex-direction:column;align-items:flex-end}nav a{font-size:14px}.brand{font-size:23px}main{padding:34px 20px}.card{padding:24px}.lead{font-size:16px}.composer{gap:8px}.composer button{padding:14px}.bubble{max-width:90%}footer{margin-top:0}}@media(prefers-reduced-motion:reduce){.messages{scroll-behavior:auto}}

/* Home mirrors the LIZZIE mobile hierarchy without sharing native source. */
.home{max-width:760px;margin:auto}.home-actions{display:grid;gap:18px;margin-top:34px}.home-card{display:flex;align-items:center;gap:22px;padding:30px;border:1px solid #e0e5db;border-radius:28px;text-decoration:none;color:#264c40;min-height:142px;transition:box-shadow .15s ease,transform .15s ease}.home-card:hover{text-decoration:none;box-shadow:0 8px 24px #264c4010;transform:translateY(-2px)}.home-primary{background:#2d5547;color:#fff;border-color:#2d5547}.home-sage{background:#edf2ec}.home-beige{background:#f5eee5;border-color:#e9e0d3}.action-icon{display:grid;place-items:center;flex:0 0 58px;height:58px;border-radius:19px;background:#ffffff90;color:#31584d}.action-icon svg{width:30px;height:30px}.home-primary .action-icon{background:#ffffff18;color:#fff}.action-copy{flex:1}.action-copy h2{font-size:23px;letter-spacing:-.4px;margin:0 0 7px}.action-copy p{font-size:16px;line-height:1.5;margin:0;color:#67736c}.home-primary .action-copy p{color:#e0eae3}.action-chevron{font-size:30px;font-weight:300}.premium-info{max-width:660px;margin:auto}.back-link{display:inline-block;margin-bottom:12px}.premium-info h1{font-size:34px;margin-top:22px}.premium-info .lead{margin-bottom:18px}.premium-info .button{margin-top:18px}header nav{flex-direction:row}header nav a{white-space:nowrap}
@media(max-width:600px){.home-card{padding:22px 18px;gap:14px;min-height:140px;border-radius:26px}.action-icon{flex-basis:46px;height:46px;border-radius:16px}.action-icon svg{width:26px;height:26px}.action-copy h2{font-size:20px}.action-copy p{font-size:14px}.home-actions{gap:16px;margin-top:26px}.action-chevron{font-size:26px}.premium-info h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){.home-card{transition:none}.home-card:hover{transform:none}}

/* Espace écoutant */
.listener-page{
  width:min(1180px,100%);
  margin:0 auto;
}

.listener-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin:22px 0 28px;
}

.listener-heading h1{
  margin:10px 0 6px;
}

.listener-workspace{
  display:grid;
  grid-template-columns:330px minmax(0,1fr);
  min-height:650px;
  border:1px solid rgba(44,65,54,.12);
  border-radius:28px;
  overflow:hidden;
  background:#fffdf9;
  box-shadow:0 18px 55px rgba(51,62,54,.07);
}

.listener-sidebar{
  padding:24px;
  background:#f6f0e8;
  border-right:1px solid rgba(44,65,54,.1);
  overflow-y:auto;
}

.listener-sidebar h2{
  margin-top:0;
}

#listener-conversations{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:18px;
}

.listener-conversation{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:7px;
  text-align:left;
  padding:16px;
  border:1px solid transparent;
  border-radius:18px;
  background:rgba(255,255,255,.68);
  color:inherit;
  cursor:pointer;
}

.listener-conversation:hover{
  background:#fff;
}

.listener-conversation.selected{
  background:#fff;
  border-color:rgba(49,82,64,.25);
  box-shadow:0 7px 18px rgba(51,62,54,.07);
}

.listener-conversation-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.listener-preview{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.92rem;
  opacity:.75;
}

.listener-discussion{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:26px;
}

.listener-discussion-heading{
  padding-bottom:18px;
  border-bottom:1px solid rgba(44,65,54,.1);
}

.listener-discussion-heading h2{
  margin:0 0 5px;
}

.listener-discussion .messages{
  flex:1;
  max-height:none;
  min-height:390px;
}

.listener-discussion .composer{
  padding-top:12px;
}

.listener-discussion .composer textarea{
  min-height:80px;
  resize:vertical;
}

@media (max-width:800px){
  .listener-heading{
    align-items:flex-start;
    flex-direction:column;
  }

  .listener-workspace{
    grid-template-columns:1fr;
  }

  .listener-sidebar{
    border-right:0;
    border-bottom:1px solid rgba(44,65,54,.1);
    max-height:300px;
  }

  .listener-discussion{
    padding:20px;
  }
}

/* Rendez-vous utilisateur */
.appointments-page{
  width:min(900px,100%);
  margin:0 auto;
}

.appointments-heading{
  margin:22px 0 28px;
}

.appointments-heading h1{
  margin:10px 0 8px;
}

#available-slots,
#my-appointments{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:18px;
}

.appointment-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 0;
  border-bottom:1px solid rgba(44,65,54,.10);
}

.appointment-row:last-child{
  border-bottom:0;
}

.appointment-row p{
  margin:5px 0 0;
}

@media (max-width:650px){
  .appointment-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .appointment-row button{
    width:100%;
  }
}

/* Onglets espace écoutant */
.listener-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 20px;
}

.listener-tabs button{
  width:auto;
}

#listener-schedule-view{
  margin-top:0;
}

#listener-availability-form{
  margin-bottom:30px;
  padding-bottom:24px;
  border-bottom:1px solid rgba(44,65,54,.10);
}

#listener-slot-form{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:14px;
  align-items:end;
  margin-top:18px;
}

#listener-slot-form label{
  display:block;
  margin-bottom:6px;
}

#listener-slot-form input{
  width:100%;
}

#listener-schedule-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:18px;
}

@media (max-width:700px){
  #listener-slot-form{
    grid-template-columns:1fr;
  }

  .listener-tabs button{
    width:100%;
  }
}

.listener-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:24px;
}

.listener-tabs button{
  width:100%;
  border-radius:16px;
  padding:14px 18px;
  background:#f4eee7;
  border:1px solid rgba(44,65,54,.12);
}

.listener-tabs button.active{
  background:#2f5140;
  color:white;
  border-color:#2f5140;
}

@media (max-width:700px){
  .listener-tabs{
    grid-template-columns:1fr;
  }
}

.appointment-actions{
  display:flex;
  align-items:center;
  gap:12px;
}

@media (max-width:650px){
  .appointment-actions{
    width:100%;
    justify-content:space-between;
  }
}
