@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{--ink:#183b32;--muted:#71847b;--green:#1b6752;--mint:#dff1d9;--border:#e7ede8;--bg:#f5f7f4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}.top{height:80px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 6.1%}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:Manrope,sans-serif;font-size:19px;font-weight:800;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:1.2px;margin-top:2px}.brand-logo{display:block;height:56px;width:auto}.top-right{display:flex;align-items:center;gap:25px;font-size:12px;font-weight:600}.badge{background:#f0f7ed;color:#5a8065;border-radius:20px;padding:9px 13px}.badge i,.online i{display:inline-block;width:7px;height:7px;background:#79b98b;border-radius:50%;margin-right:5px}.city{color:#7f8d86}.layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:330px minmax(0,1fr);gap:55px;padding:60px 6.1%}.sidebar{padding:22px 0}.side-label,.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#799486}.sidebar h1{font-family:Manrope,sans-serif;font-size:39px;line-height:1.16;letter-spacing:-2px;margin:25px 0 17px}.sidebar h1 em{font-style:normal;color:#68a488}.sidebar>p{font-size:14px;line-height:1.8;color:#7d8d84;max-width:265px}.line{height:1px;background:#e1e9e1;margin:34px 0}.side-title{font-size:12px;font-weight:700;margin-bottom:23px}.side-item{display:flex;gap:16px;color:#75877d;font-size:13px;margin:20px 0}.side-item span{font-size:10px;color:#9cb3a5;letter-spacing:1px}.side-note{display:flex;gap:12px;background:#eaf2e8;border-radius:12px;padding:16px;margin-top:50px;font-size:11px;line-height:1.6;color:#73877a}.side-note span{font-size:20px;color:#68a488}.side-note strong{color:#496a57}.workspace{min-width:0}.workspace-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.eyebrow span{color:#c1d0c2;margin:0 4px}.workspace-heading h2{font-family:Manrope,sans-serif;font-size:27px;letter-spacing:-1px;margin:10px 0 5px}.workspace-heading h2 span{color:#94be85}.workspace-heading p{margin:0;color:#899990;font-size:13px}.reset,.header-actions button,.bottom button{border:0;background:transparent;color:#618474;font-size:12px;font-weight:700;cursor:pointer}.reset{border:1px solid #dce8de;border-radius:8px;padding:10px 13px;background:#fff}.chat-card{background:#fff;border:1px solid #e6ede7;border-radius:16px;box-shadow:0 14px 45px #284e3510;overflow:hidden}.chat-header{display:flex;align-items:center;gap:11px;padding:18px 23px;border-bottom:1px solid #edf1ed}.avatar{height:41px;width:41px;border-radius:13px;background:#dff0db;display:grid;place-items:center;color:#548a68;font-size:22px}.chat-header strong{font-size:14px}.online{font-size:11px;color:#91a398;margin-top:4px}.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions button{padding:8px 11px;background:#f4f8f3;border-radius:7px}.messages{height:490px;overflow:auto;padding:28px 26px;scroll-behavior:smooth}.message{display:flex;gap:10px;margin-bottom:19px;align-items:flex-start}.message.user{justify-content:flex-end}.mini{width:29px;height:29px;border-radius:9px;background:#e3f1df;color:#699a79;display:grid;place-items:center;flex-shrink:0}.bubble{max-width:85%;padding:15px 17px;border-radius:3px 14px 14px 14px;background:#f4f7f3;color:#405e50;font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.user .bubble{background:#286b55;color:white;border-radius:14px 3px 14px 14px}.options{display:grid;gap:8px;margin-top:12px}.option{width:100%;text-align:left;background:#fff;border:1px solid #e0ebe0;border-radius:9px;color:#3f6954;padding:11px 13px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.option:hover{border-color:#85b99a;background:#f8fbf7}.sources{margin-top:12px;border-top:1px solid #dfe9de;padding-top:9px}.sources a{display:block;color:#28775a;font-size:11px;margin:5px 0}.composer{display:flex;gap:10px;margin:0 22px;padding:8px 8px 8px 16px;border:1px solid #e3ebe4;border-radius:10px}.composer input{flex:1;min-width:0;border:0;outline:0;color:#315848;font:13px 'DM Sans',sans-serif}.composer input::placeholder{color:#b1bdb5}.composer button{border:0;background:#276d55;color:white;width:36px;height:36px;border-radius:8px;font-size:20px;cursor:pointer}.chat-foot{text-align:center;font-size:10px;color:#a2b0a5;padding:13px}.bottom{display:flex;justify-content:space-between;gap:10px;margin-top:19px;color:#aab9ad;font-size:9px;font-weight:700;letter-spacing:1px}.bottom button{font-weight:400;color:#8a9b90}.bottom b{color:#3b8060}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:850px){.layout{grid-template-columns:1fr;padding:30px 5%;gap:10px}.sidebar{display:none}.top{padding:0 5%;height:66px}.brand-logo{height:48px}.city{display:none}.workspace-heading h2{font-size:23px}.messages{height:55vh;min-height:360px}.bottom>span{display:none}.bottom{justify-content:flex-end}}@media(max-width:480px){.badge{font-size:10px}.workspace-heading{align-items:start}.reset{font-size:0}.reset:first-letter{font-size:16px}.chat-header{padding:14px}.header-actions button{font-size:10px;padding:8px}.messages{padding:20px 14px}.bubble{max-width:90%}.composer{margin:0 14px}}

.demo-panel{white-space:pre-wrap;background:#e6f3e2;border-left:3px solid #65a77f;padding:12px;margin:0 0 14px;border-radius:5px;color:#28583f;font-size:12px;font-weight:600}

.map-link{display:inline-block;margin-top:10px;color:#28775a;font-weight:700;text-decoration:none}.map-link:hover{text-decoration:underline}

.formatted-response{white-space:normal}.formatted-response ul,.formatted-response ol{margin:6px 0;padding-left:22px}.formatted-response li{padding-left:2px;margin:4px 0}.formatted-response .response-space{height:10px}.formatted-response .response-heading{display:block;margin-top:8px}.formatted-response code{background:#e8f0e7;border-radius:3px;padding:1px 4px}

/* En teléfonos, el historial ocupa el espacio disponible y el campo de entrada
   permanece junto a los controles sin obligar a desplazarse por toda la página. */
@media (max-width: 600px) and (min-height: 481px) {
  body { height: 100vh; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; }
  .top { flex: 0 0 auto; height: 60px; padding: 0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left)); }
  .layout { flex: 1 1 auto; min-height: 0; width: 100%; display: flex; padding: 14px 12px max(8px, env(safe-area-inset-bottom)); }
  .workspace { display: flex; flex-direction: column; min-height: 0; width: 100%; }
  .workspace-heading { flex: 0 0 auto; margin-bottom: 12px; align-items: center; gap: 8px; }
  .workspace-heading h2 { font-size: 21px; margin: 5px 0 2px; }
  .workspace-heading p { font-size: 12px; }
  .eyebrow { font-size: 9px; }
  .reset { font-size: 12px; min-height: 44px; padding: 8px 10px; flex: 0 0 auto; }
  .reset:first-letter { font-size: inherit; }
  .chat-card { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  .chat-header { flex: 0 0 auto; padding: 10px 12px; gap: 8px; }
  .avatar { width: 36px; height: 36px; flex: 0 0 auto; }
  .header-actions { gap: 5px; }
  .header-actions button { min-height: 44px; padding: 8px; font-size: 11px; }
  .messages { flex: 1 1 auto; min-height: 0; height: auto; padding: 16px 12px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .bubble { max-width: calc(100% - 39px); font-size: 14px; padding: 13px; }
  .user .bubble { max-width: 90%; }
  .option { min-height: 44px; font-size: 13px; }
  .composer { flex: 0 0 auto; margin: 0 10px; padding: 5px 5px 5px 12px; }
  .composer input { font-size: 16px; }
  .composer button { min-width: 44px; min-height: 44px; }
  .chat-foot { flex: 0 0 auto; line-height: 1.35; padding: 8px 12px; }
  .bottom { flex: 0 0 auto; margin-top: 5px; }
  .bottom button { min-height: 40px; padding: 5px; }
}
@media (max-width: 360px) {
  .badge { padding: 7px; font-size: 9px; }
  .brand { font-size: 16px; gap: 6px; }
  .brand-logo { height: 40px; }
  .workspace-heading p { display: none; }
  .reset { font-size: 11px; }
  .chat-header { padding: 8px; }
  .header-actions button { padding: 6px; font-size: 10px; }
}

.citation{color:#1b7052;font-weight:700;text-decoration:underline;text-underline-offset:2px}

[hidden]{display:none !important}
.logout{border:1px solid #dce8de;background:#fff;color:#618474;border-radius:8px;padding:9px 12px;font:700 12px 'DM Sans',sans-serif;cursor:pointer}
.login-screen{flex:1;display:grid;place-items:center;padding:32px 20px;overflow:auto}
.login-card{width:min(100%,440px);background:#fff;border:1px solid #e6ede7;border-radius:18px;box-shadow:0 14px 45px #284e3510;padding:38px}
.login-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#dff0db;color:#548a68;font-size:28px;margin-bottom:23px}
.login-card h1{font:800 30px Manrope,sans-serif;letter-spacing:-1px;margin:10px 0}
.login-card>p{font-size:14px;line-height:1.6;color:#7d8d84;margin:0 0 27px}
.login-card form{display:flex;flex-direction:column;gap:9px}
.login-card label{font-size:12px;font-weight:700;margin-top:8px}
.login-card input,.login-card select{background:#fff;width:100%;min-height:48px;border:1px solid #dce8de;border-radius:9px;padding:12px;font:16px 'DM Sans',sans-serif;color:var(--ink)}
.login-card input:focus,.login-card select:focus{outline:2px solid #94be85;outline-offset:1px}
.login-card form button{margin-top:13px;min-height:48px;border:0;border-radius:9px;background:#276d55;color:white;font:700 14px 'DM Sans',sans-serif;cursor:pointer}
.login-card form button span{margin-left:8px}
.login-error{color:#a13d36;font-size:12px;margin:3px 0}
@media(max-width:600px){.login-screen{min-height:0;align-items:center;padding:20px 16px max(20px,env(safe-area-inset-bottom))}.login-card{padding:27px 22px}.top-right{gap:8px}.logout{font-size:11px;padding:8px;min-height:40px}}
