/* Accueil paysage : colonnes symétriques et contenu contenu dans la hauteur. */
@media (orientation: landscape) {
  html, body { width:100%; height:100%; min-width:0; overflow:hidden; }
  .app-shell {
    width:100%; max-width:1800px; height:100svh; min-height:0;
    padding:clamp(12px,2vh,24px) clamp(14px,2vw,34px);
    display:grid; grid-template-rows:48px minmax(0,1fr) 116px 14px;
    gap:12px; overflow:hidden;
  }
  .topbar { height:auto; margin:0; padding:0 0 10px; }
  .dashboard-grid {
    min-height:0; align-items:stretch;
    grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);
    gap:14px;
  }
  .left-rail, .right-rail { min-width:0; min-height:0; display:grid; gap:12px; }
  .left-rail { grid-template-rows:minmax(74px,.65fr) minmax(180px,1.7fr) minmax(100px,1fr); }
  .right-rail { grid-template-rows:minmax(150px,1.25fr) minmax(150px,1.3fr) minmax(96px,.8fr); }
  .glass-card { border-radius:16px; min-width:0; min-height:0; }
  .date-card { height:auto; padding:12px 16px; position:relative; }
  .date-card strong { font-size:clamp(30px,4.6vh,52px); margin:4px 0 0; }
  .date-card>span:last-child { position:absolute; bottom:16px; right:16px; font-size:10px; }
  .weather-card,.agenda-card,.quick-card,.devices-card,.insight-card { padding:14px 16px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#61f5ff44 transparent; }
  .weather-main { gap:12px; margin:10px 0 8px; }
  .weather-main strong { font-size:30px; }
  .weather-icon { font-size:40px; }
  .ephemeride { margin-top:10px; padding:9px 10px; }
  .ephemeride strong { margin-top:4px; }
  .forecast { display:flex; margin-top:10px; padding-top:8px; }
  .agenda-item { margin-top:12px; gap:12px; }
  .agenda-item strong { font-size:11px; }
  .hero-panel {
    min-height:0; padding:24px 22px 18px;
    display:grid; grid-template-rows:auto minmax(0,1fr) auto;
    align-items:center; text-align:center;
  }
  .hero-copy { align-self:start; }
  .hero-copy p { margin:18px 0 9px; font-size:14px; }
  .hero-copy h2 { font-size:clamp(22px,2.35vw,34px); line-height:1.18; letter-spacing:-.035em; max-width:320px; margin:0 auto; }
  .hero-copy h2 br { display:none; }
  .status-pill { font-size:9px; letter-spacing:.1em; }
  .mascot-wrap { position:relative; inset:auto; min-height:0; height:100%; width:100%; }
  .mascot { width:clamp(125px,16vw,220px); height:auto; max-width:68%; max-height:80%; object-fit:contain; }
  .mascot-glow { width:190px; height:150px; opacity:.7; }
  .hero-orbit { width:320px; height:320px; opacity:.55; }
  .orbit-two { width:240px; height:390px; }
  .voice-button { padding:12px 14px; text-align:left; border-radius:12px; }
  .voice-button small { display:block; font-size:9px; }
  .scene-grid { height:calc(100% - 26px); gap:8px; margin-top:12px; }
  .scene { padding:8px 10px; }
  .scene>span { width:27px; height:27px; font-size:17px; margin-bottom:6px; }
  .scene small { display:block; font-size:9px; }
  .device-row { gap:10px; padding:10px 0; }
  .device-row small { display:block; }
  .device-icon { width:28px; height:28px; }
  .home-brief { width:100%; }
  .home-brief>p { font-size:10px; }
  .insight-card { gap:8px; }
  .delivery-brief { margin-top:9px; padding-top:8px; }
  .conversation { margin:0; padding:12px 16px; height:auto; min-height:0; display:grid; grid-template-columns:190px minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; column-gap:18px; row-gap:8px; }
  .conversation-head { grid-row:1 / 3; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:9px; }
  .conversation-head h3 { font-size:14px; }
  .messages { display:block; padding:0; min-height:0; max-height:none; overflow:auto; }
  .message p { font-size:10px; }
  .message + .message { margin-top:8px; }
  .activity-footer { padding-top:6px; font-size:8px; gap:10px; }
  .voice-shortcut { padding:6px 9px; white-space:nowrap; }
  footer { display:flex; margin:0; font-size:8px; }
}
@media (orientation:landscape) and (max-height:680px) {
  .app-shell { grid-template-rows:38px minmax(0,1fr) 90px; gap:8px; padding:10px 14px; }
  .dashboard-grid,.left-rail,.right-rail { gap:8px; }
  .left-rail { grid-template-rows:65px minmax(0,1.65fr) minmax(0,1fr); }
  .right-rail { grid-template-rows:minmax(0,1.15fr) minmax(0,1.25fr) minmax(0,1fr); }
  .weather-card,.agenda-card,.quick-card,.devices-card,.insight-card { padding:10px 12px; }
  .date-card { padding:9px 12px; }
  .date-card strong { font-size:28px; }
  .date-top { font-size:9px; }
  .date-card>span:last-child { bottom:12px; right:12px; font-size:8px; }
  .hero-panel { padding:16px 15px 12px; }
  .hero-copy p { margin:12px 0 6px; }
  .hero-copy h2 { font-size:23px; }
  .mascot { width:160px; }
  .weather-main { margin:6px 0; }
  .weather-main strong { font-size:24px; }
  .weather-icon { font-size:30px; }
  .ephemeride { padding:6px 8px; margin-top:7px; }
  .forecast { margin-top:7px; padding-top:6px; }
  .scene-grid { margin-top:8px; height:calc(100% - 23px); }
  .scene>span { width:23px; height:23px; margin-bottom:4px; }
  .scene small { display:none; }
  .device-row { padding:6px 0; }
  .device-row b { font-size:10px; }
  .device-row small { font-size:8px; }
  .conversation { padding:9px 12px; grid-template-columns:165px minmax(0,1fr); }
  .activity-footer>span { display:none; }
  .activity-footer { justify-content:flex-end; }
  footer { display:none; }
}
