:root{--coral:#ff5f5f;--ink:#211a1a;--paper:#fff8f4;--muted:#706966;--line:rgba(33,26,26,.09);--ease:cubic-bezier(.22,1,.36,1);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",sans-serif;color:var(--ink);background:var(--coral);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100svh;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));display:grid;place-items:center}button,input,textarea{font:inherit}button{border:0;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .2s,opacity .2s,transform .2s var(--ease)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.42;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:4px}[hidden]{display:none!important}.app{width:min(100%,366px);margin:auto;position:relative}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.menu-button{background:#ffffff1c;width:44px;height:44px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px}.menu-button span{display:block;width:19px;height:1.8px;background:var(--ink);border-radius:2px}.greeting{font-size:19px;line-height:1.25;letter-spacing:-.45px;font-weight:600;max-width:240px;text-align:right;overflow-wrap:anywhere}.hello{display:block;font-size:13px;letter-spacing:0;font-weight:400;margin-bottom:3px}.hero{position:relative;margin:0 0 26px}.brand{width:100%;display:block}.vdc{width:84px;height:auto;display:block;margin:0 0 -12px 16px;position:relative;z-index:1}.question{font-size:clamp(30px,8.8vw,38px);line-height:1.06;letter-spacing:-1.55px;font-weight:650;margin:-10px 0 0;position:relative}.primary{display:flex;gap:12px}.pill{background:var(--paper);border-radius:999px;padding:0 24px;min-height:56px;font-size:17px;letter-spacing:-.3px;font-weight:600;box-shadow:0 2px 3px #45202004,0 6px 14px #4520200a;flex:1}.black{background:var(--ink);color:var(--paper)}.full{width:100%}.response-card{background:#fff7f12c;border:1px solid #fff7f11c;border-radius:24px;padding:19px 20px 12px;margin-top:20px;display:flex;flex-direction:column;gap:12px;height:175px;position:relative}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase}.status{width:6px;height:6px;border-radius:50%;background:var(--ink);opacity:.5;flex:none}.status[data-state=offline]{background:transparent;border:1px solid var(--ink);opacity:.7}.status[data-state=busy]{animation:breathe 1.5s ease-in-out infinite}.response-preview{font-size:16px;line-height:1.5;letter-spacing:-.15px;overflow-y:auto;min-height:0;flex:1;white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#0002 transparent}.response-card[data-empty=true] .response-preview{font-size:21px;letter-spacing:-.6px;font-weight:500;display:flex;align-items:center}.text-button{background:none;text-align:right;font-size:12px;padding:10px 0;min-height:38px;font-weight:500;letter-spacing:-.1px;align-self:flex-end}.text-button:after{content:'↗';margin-left:8px}.shortcuts{display:flex;justify-content:center;align-items:center;gap:24px;margin:22px 0 2px}.shortcuts button{padding:0;background:none;width:48px;height:48px;border-radius:50%;box-shadow:0 2px 3px #51232307,0 5px 12px #51232316;line-height:0}.service-icon{display:block;width:48px;height:48px;overflow:visible;shape-rendering:geometricPrecision}.subtle{font-size:12px;line-height:1.55;color:var(--muted);margin:12px 0 18px}.center{text-align:center}.signed-out .app{width:min(100%,310px);padding:0;border:0;background:none;box-shadow:none;border-radius:0}.signed-out .app>header,.signed-out .hero{display:none}dialog{border:1px solid #fff7f17a;width:min(calc(100% - 32px),410px);max-height:min(88dvh,760px);border-radius:28px;background:var(--paper);color:var(--ink);padding:25px;box-shadow:0 12px 70px #40181826;overflow-y:auto;overscroll-behavior:contain}dialog::backdrop{background:#3d222240;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}dialog.coral{background:#ff6d6a;border-color:#fff7f126}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.close{display:grid;place-items:center;background:#211a1a08;border-radius:50%;width:36px;min-width:36px;height:36px;font-size:25px;font-weight:300;line-height:1;padding:0;position:relative}.close:before{content:'';position:absolute;inset:-5px}.dialog-top h2{margin:0}h2{font-size:28px;line-height:1.12;letter-spacing:-1px;font-weight:600;margin:0 0 26px}.menu-logo{width:78px}.menu-item{background:none;display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;border-bottom:1px solid #211a1a12;padding:18px 0;text-align:left;font-size:17px;font-weight:500;letter-spacing:-.3px;min-height:58px}.menu-item span{font-size:18px;font-weight:300;opacity:.65}.menu-item:last-child{border:0;margin-top:16px;font-size:14px}.sheet{margin:auto auto max(12px,env(safe-area-inset-bottom))}.grip{width:30px;height:4px;background:#211a1a1a;border-radius:4px;margin:-12px auto 23px}label{display:block;font-size:12px;font-weight:500;margin-bottom:18px;color:#534c48}input,textarea{width:100%;padding:15px 16px;border-radius:15px;border:1px solid var(--line);background:#fffaf7;color:var(--ink);display:block;margin-top:8px;font-size:16px;transition:border-color .2s;box-shadow:none}input::placeholder,textarea::placeholder{color:#928983;font-weight:400}input:focus,textarea:focus{border-color:#211a1a66}textarea{resize:none;line-height:1.55;min-height:144px;max-height:40dvh;margin:0 0 18px}#messageForm{margin:0}.full-response{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:16px;letter-spacing:-.1px;margin:0 0 12px;min-height:60px}.copy-button{margin:0 0 18px;padding:8px 0;color:var(--muted)}.copy-button:after{content:none}.record{width:80px;height:80px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:26px;display:block;margin:28px auto;box-shadow:0 0 0 9px #211a1a08}.record.active{background:#e64b4b;box-shadow:0 0 0 9px #e64b4b15}#recordState{font-size:14px;min-height:21px}audio{width:100%;margin:12px 0}.error{color:#a42b35;font-size:13px;line-height:1.5}.error:empty,#passwordResult:empty,#adminResult:empty{display:none}.history-entry{display:block;width:100%;padding:18px 0;border-bottom:1px solid var(--line);background:none;text-align:left}.history-entry strong{font-weight:500;font-size:16px}.history-entry small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.user-row{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:15px}.user-row button{border-radius:999px;padding:10px 15px;min-height:40px;background:#211a1a08;font-size:12px;font-weight:500}.user-row small{display:block;color:var(--muted);font-size:11px;margin-top:5px}#usersList{margin-top:18px}#toast{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:min(90%,400px);background:var(--ink);color:var(--paper);border-radius:20px;padding:14px 20px;font-size:13px;line-height:1.45;z-index:30;box-shadow:0 6px 28px #211a1a20}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.thinking{display:flex;gap:5px;align-items:center;flex:1;min-height:32px;padding:12px 0}.thinking i{width:5px;height:5px;background:var(--ink);border-radius:50%;opacity:.25;animation:breathe 1.4s ease-in-out infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}@keyframes breathe{50%{opacity:.8}}@media(min-width:700px){body{padding:32px}.app{padding:28px;width:422px;background:#ffffff04;border:1px solid #ffffff1c;border-radius:34px;box-shadow:0 18px 80px #992a2a0d}.sheet{margin:auto}.grip{display:none}}@media(max-height:750px){body{padding-top:18px;padding-bottom:18px}header{margin-bottom:16px}.hero{margin-bottom:20px}.brand{width:90%;margin:auto}.vdc{width:76px;margin-left:30px}.question{font-size:32px;margin-left:12px}.response-card{height:145px;margin-top:16px}.shortcuts{margin-top:18px}.app{padding-top:0;padding-bottom:0}}@media(max-width:350px){body{padding-left:20px;padding-right:20px}.greeting{font-size:17px}.question{font-size:29px}.pill{padding:0 18px;font-size:16px}.response-card{padding:16px 16px 8px}.card-top{gap:10px}dialog{padding:22px}}@media(prefers-reduced-motion:no-preference){dialog[open]{animation:reveal .25s var(--ease)}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* El logo original se dibuja sin filtros; la sombra va en una capa aparte. */
svg.vdc,svg.menu-logo{height:auto;overflow:visible;flex-shrink:0;shape-rendering:geometricPrecision}

/* Chat: a full-screen surface with its own scroll area and keyboard-safe composer. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.response-card{cursor:pointer;touch-action:manipulation}
.response-preview{overflow:hidden;pointer-events:none;mask-image:linear-gradient(#000 70%,transparent)}
.chat-link{padding:3px 0;min-height:24px}.chat-link:after{content:'→'}
body.chat-open{overflow:hidden}
dialog.chat-dialog{position:fixed;inset:var(--chat-top,0px) 0 auto;margin:0;padding:0;width:100%;max-width:none;height:var(--chat-height,100dvh);max-height:none;border:0;border-radius:0;background:#f5efe9;box-shadow:none;overflow:hidden;overscroll-behavior:none;transform:none}
dialog.chat-dialog[open]{display:flex;animation:chat-reveal .2s var(--ease)}
.chat-dialog::backdrop{background:var(--coral);backdrop-filter:none}
.chat-dialog{touch-action:manipulation}
.chat-shell{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;margin:auto;position:relative}
.chat-header{flex:none;min-height:76px;padding:calc(12px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));margin:0;gap:16px;background:#fff8f4f5;border-bottom:1px solid var(--line);z-index:1}
.chat-identity{display:flex;align-items:center;gap:11px;min-width:0}
.chat-identity img{border-radius:13px;flex:none}
.chat-header h2{font-size:18px;letter-spacing:-.5px;line-height:1.2;margin:0;font-weight:600}
.chat-header .status{margin-left:1px}
.chat-icon{width:44px;height:44px;min-width:44px;flex:none;display:grid;place-items:center;border-radius:50%;padding:11px;background:transparent;color:var(--ink);box-shadow:none}
.chat-icon svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.close-chat{background:#211a1a08}
.chat-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#211a1a25 transparent;padding:24px max(18px,env(safe-area-inset-right)) 24px max(18px,env(safe-area-inset-left));position:relative;outline-offset:-4px}
.chat-messages{display:flex;flex-direction:column;gap:12px;max-width:740px;margin:auto}
.chat-message{max-width:86%;align-self:flex-start;display:flex;flex-direction:column;align-items:flex-start}
.chat-message.user{align-self:flex-end;align-items:flex-end}
.chat-bubble{padding:13px 16px 10px;border-radius:19px 19px 19px 5px;background:#fffdfb;box-shadow:0 1px 2px #211a1a09;min-width:68px;max-width:100%}
.user .chat-bubble{background:#ffd4cd;border-radius:19px 19px 5px 19px}
.chat-message.failed .chat-bubble{border:1px solid #b53b3b33}
.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.5;letter-spacing:-.15px}
.chat-time{display:block;text-align:right;font-size:10px;line-height:1.3;color:#786d67;margin-top:5px;font-variant-numeric:tabular-nums}
.chat-copy{padding:7px 5px;min-height:32px;background:transparent;color:var(--muted);font-size:11px}
.chat-bubble .thinking{padding:7px 0;min-height:26px;gap:6px}
.chat-date{text-align:center;align-self:center;font-size:11px;color:var(--muted);margin:6px 0 10px;background:#e9e1d966;padding:6px 12px;border-radius:999px}
.chat-empty{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:30px 0;color:#85736b}
.chat-empty img{border-radius:20px;opacity:.85}.chat-empty p{font-size:24px;letter-spacing:-.7px;margin:0}
.chat-bottom{flex:none;background:#fff8f4f5;border-top:1px solid var(--line);padding:10px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));position:relative}
.chat-composer{display:flex;align-items:flex-end;gap:6px;width:100%;max-width:740px;margin:0 auto!important}
.message-field{flex:1;min-width:0}
.chat-composer textarea{display:block;width:100%;min-height:44px;height:44px;max-height:120px;margin:0;padding:10px 15px;border-radius:23px;border:1px solid #211a1a16;background:white;font-size:16px;line-height:22px;letter-spacing:-.15px;overflow-y:auto;scrollbar-width:thin;resize:none}
.chat-composer textarea:focus{outline:none;border-color:#a6948966;box-shadow:0 0 0 2px #a6948910}
.send-button{background:var(--ink);color:var(--paper)}.send-button:disabled{opacity:.2}
.mic-button{background:#211a1a06}.mic-button.active{background:var(--coral);color:white}
.mic-button .stop-glyph{display:none}.mic-button.active .stop-glyph{display:block;fill:currentColor;stroke:none}.mic-button.active .mic-glyph{display:none}
.voice-panel{max-width:740px;margin:0 auto 12px;padding:3px 12px 10px;background:#211a1a05;border-radius:18px}
.voice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.voice-panel #recordState{font-size:14px;min-height:0}.voice-panel p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.voice-panel audio{height:40px;margin:2px 0 10px}
.chat-feedback{max-width:740px;margin:0 auto 10px;padding:9px 12px;background:#ffe7df;border-radius:12px;color:#8b3730;font-size:13px;line-height:1.4}
.latest-messages{position:absolute;bottom:calc(100% + 12px);right:max(18px,env(safe-area-inset-right));display:flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;background:var(--paper);box-shadow:0 3px 20px #211a1a1a;font-size:14px;min-height:44px}.latest-messages span{font-size:12px}
@keyframes chat-reveal{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(min-width:800px){.chat-header{padding-left:max(32px,calc((100vw - 740px)/2));padding-right:max(32px,calc((100vw - 740px)/2))}.chat-scroll{padding-top:32px;padding-bottom:32px}.chat-message{max-width:80%}.chat-bottom{padding-top:14px;padding-bottom:20px}}
@media(max-width:350px){.chat-header{padding-left:14px;padding-right:14px}.chat-identity{gap:8px}.chat-header h2{font-size:17px}.chat-scroll{padding:18px 12px}.chat-composer{gap:4px}.chat-bottom{padding-left:8px;padding-right:8px}.chat-bubble{padding-left:13px;padding-right:13px}}

.voice-transcribe{margin-top:10px;min-height:40px;padding:8px 16px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:500}
