*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body,h1,p{margin:0}button,input{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer}input{-webkit-appearance:none;-moz-appearance:none;appearance:none}img,video{display:block;max-width:100%}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}:root{--bg: #eef3f8;--surface: #ffffff;--surface-soft: #f7f9fc;--border: #e2e8f0;--border-strong: #d6dfeb;--text: #132238;--muted: #607089;--primary: #1d4ed8;--primary-soft: #edf2fa;--danger-soft: #fee4e2;--danger-text: #b42318;--shadow: 0 10px 30px rgba(18, 32, 56, .08);--radius-xl: 22px;--radius-lg: 18px;--radius-md: 16px;--nav-height: 86px;--faq-height: 220px;--composer-height: 198px;--safe-bottom: env(safe-area-inset-bottom, 0px)}body{font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.denied-card{max-width:420px;background:var(--surface);border-radius:24px;padding:24px;box-shadow:var(--shadow);text-align:center}.station-entry-screen{background:linear-gradient(180deg,#eef5fb,#f8fbff)}.station-entry-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.station-entry-kicker{color:var(--muted);font-size:14px;font-weight:700}.station-entry-card h1{margin:8px 0 18px;font-size:26px;line-height:1.15}.station-entry-list{display:grid;gap:12px}.station-entry-button{display:grid;gap:6px;width:100%;border:1px solid var(--border-strong);border-radius:18px;background:#fff;padding:16px;text-align:left;box-shadow:0 6px 18px #1220380d;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.station-entry-button:active{transform:scale(.99)}.station-entry-button:hover{border-color:#9db5ee;box-shadow:0 10px 24px #12203814}.station-entry-name{color:var(--text);font-size:18px;font-weight:800}.station-entry-location,.station-entry-code{color:var(--muted);font-size:14px}.page-shell{height:100dvh;display:flex;justify-content:center;overflow:hidden}.app-shell{width:100%;max-width:720px;height:100dvh;background:var(--surface);display:flex;flex-direction:column;position:relative;overflow:hidden}.header{position:sticky;top:0;z-index:20;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px 16px 12px;border-bottom:1px solid #e6edf5}.header-title{font-size:22px;font-weight:700;letter-spacing:-.01em}.header-station{margin-top:4px;color:var(--muted);font-size:14px}.content{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 12px calc(var(--nav-height) + 8px + var(--safe-bottom));transition:padding-bottom .22s ease;overflow:hidden}.content.with-faq{padding-bottom:calc(var(--nav-height) + var(--faq-height) + 8px + var(--safe-bottom))}.content.with-composer{padding-bottom:calc(var(--nav-height) + var(--composer-height) + 8px + var(--safe-bottom))}.chat-section{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.chat-box{background:var(--surface-soft);border-radius:var(--radius-xl);padding:14px;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;border:1px solid #edf1f6}.message-row{display:flex;width:100%;animation:fadeInUp .24s ease}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start}.message{max-width:86%;padding:12px 14px;border-radius:16px;white-space:pre-wrap;line-height:1.45;transition:transform .18s ease,opacity .18s ease}.message.user{background:var(--primary);color:#fff;border-bottom-right-radius:8px}.message.assistant{background:#fff;border:1px solid #dde6f1;border-bottom-left-radius:8px}.message-feedback{min-width:min(100%,280px)}.inline-feedback{display:flex;gap:8px;margin-top:12px}.inline-feedback-btn{border:none;border-radius:12px;padding:10px 14px;background:#e8eef8;min-height:42px;transition:transform .16s ease,background .16s ease}.inline-feedback-btn:active{transform:scale(.98)}.inline-feedback-btn.negative{background:var(--danger-soft);color:var(--danger-text)}.typing-message{min-width:70px;min-height:46px;display:flex;align-items:center}.typing-dots{display:flex;gap:6px}.typing-dots span{width:8px;height:8px;border-radius:999px;background:#8fa2be;animation:typingBounce 1.1s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}.composer-dock{position:fixed;left:50%;transform:translate(-50%) translateY(8px);width:min(720px,100%);padding:0 12px;bottom:calc(var(--nav-height) + 4px + var(--safe-bottom));z-index:28;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease}.composer-dock.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.composer{display:flex;gap:8px;align-items:flex-end;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #e5edf6;border-radius:18px;padding:8px;box-shadow:0 8px 24px #12203814;min-width:0}.composer-input{flex:1;min-width:0;border:1px solid var(--border-strong);border-radius:14px;padding:12px 14px;font-size:16px;line-height:1.35;min-height:44px;max-height:172px;background:#fff;outline:none;resize:none;overflow-y:auto;transition:border-color .18s ease,box-shadow .18s ease}.composer-input:focus{border-color:#9db5ee;box-shadow:0 0 0 4px #1d4ed814}.composer-send{display:grid;place-items:center;border:none;background:var(--primary);color:#fff;border-radius:50%;padding:0;width:52px;min-width:52px;min-height:52px;font-weight:600;box-shadow:0 8px 18px #1d4ed838;transition:transform .16s ease,opacity .16s ease,background .16s ease,box-shadow .16s ease}.composer-mic{position:relative;display:grid;place-items:center;width:52px;min-width:52px;min-height:52px;border:1px solid var(--border-strong);border-radius:50%;background:radial-gradient(circle at 45% 36%,#fff 0,#fff 58%,#f2f5fa);color:#171b22;line-height:1;box-shadow:0 6px 14px #12203814;transition:transform .16s ease,opacity .16s ease,background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}.composer-mic.recording{background:#fff5f5;color:var(--danger-text);border-color:#fecdca;box-shadow:0 0 0 6px #b4231814,0 8px 18px #b423181f}.mic-icon{display:block;width:28px;height:28px;object-fit:contain}.mic-loading{width:22px;height:22px;border:3px solid #d8e0eb;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.send-icon{display:block;width:24px;height:24px;object-fit:contain;filter:brightness(0) invert(1)}.send-loading{width:22px;height:22px;border:3px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.composer-send:disabled{opacity:.6}.composer-mic:disabled{opacity:.55}.composer-send:active{transform:scale(.98)}.composer-mic:active{transform:scale(.96)}.faq-panel{position:fixed;left:50%;transform:translate(-50%) translateY(10px);bottom:calc(var(--nav-height) + var(--safe-bottom));width:min(720px,100%);padding:0 12px;opacity:0;pointer-events:none;transition:opacity .24s ease,transform .24s ease;z-index:26}.faq-panel.open{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.faq-list{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #e5edf6;border-radius:20px;box-shadow:var(--shadow);padding:10px;display:grid;gap:8px;height:var(--faq-height);overflow:visible}.faq-panel-title{font-size:14px;font-weight:700;color:var(--muted);padding:2px 4px 4px}.faq-button{border:1px solid var(--border-strong);background:#fff;border-radius:16px;padding:14px;text-align:left;font-size:14px;min-height:48px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.faq-button:hover{border-color:#b7c7df;background:#fbfcfe}.faq-button:active{transform:scale(.99)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(720px,100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(132px,1.3fr) minmax(0,1fr);gap:8px;padding:10px 12px max(10px,var(--safe-bottom));background:#fffffffa;border-top:1px solid #e5edf6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30}.nav-btn{border:none;border-radius:16px;padding:12px 8px;background:var(--primary-soft);font-weight:600;font-size:13px;min-height:50px;line-height:1.12;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.nav-btn.active{background:var(--primary);color:#fff}.nav-btn-ai{position:relative;overflow:hidden;color:#fff;font-size:15px;font-weight:800;background:linear-gradient(115deg,#0f8f67,#1d4ed8,#6d5dfc,#0f8f67);background-size:260% 260%;box-shadow:0 10px 22px #1d4ed83d;animation:aiGlow 5.2s ease-in-out infinite}.nav-btn-ai:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 0 34%,rgba(255,255,255,.34) 45%,transparent 56% 100%);transform:translate(-120%);animation:aiShine 3.4s ease-in-out infinite}.nav-btn-ai.active{background:linear-gradient(115deg,#0f8f67,#1d4ed8,#6d5dfc,#0f8f67);background-size:260% 260%}.nav-btn-ai:disabled{animation:none}.nav-btn-faq,.nav-btn-dispatcher{font-size:12px;width:100%}.nav-btn:active{transform:scale(.98)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typingBounce{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-4px);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes aiGlow{0%,to{background-position:0% 50%;box-shadow:0 10px 22px #1d4ed838}50%{background-position:100% 50%;box-shadow:0 12px 26px #0f8f6742}}@keyframes aiShine{0%,45%{transform:translate(-120%)}75%,to{transform:translate(120%)}}@media (min-width: 721px){.app-shell{box-shadow:var(--shadow)}}@media (max-width: 640px){:root{--nav-height: 90px;--faq-height: 220px;--composer-height: 252px}.header{padding:14px 14px 10px}.header-title{font-size:20px}.content{padding:10px 10px calc(var(--nav-height) + 8px + var(--safe-bottom))}.content.with-faq{padding-bottom:calc(var(--nav-height) + var(--faq-height) + 8px + var(--safe-bottom))}.content.with-composer{padding-bottom:calc(var(--nav-height) + var(--composer-height) + 8px + var(--safe-bottom))}.chat-box{padding:12px}.message{max-width:92%}.composer-dock,.faq-panel,.bottom-nav{width:100%}.composer{display:grid;grid-template-columns:minmax(0,1fr) 52px 52px;align-items:end;padding:8px;gap:8px}.composer-input{grid-column:1 / -1;width:100%}.composer-send,.composer-mic,.inline-feedback-btn,.faq-button,.nav-btn{min-height:48px}.composer-send{width:52px;min-width:52px;padding:0}.composer-mic{width:52px;min-width:52px}.inline-feedback{flex-direction:column}}@media (max-width: 420px){:root{--nav-height: 92px;--faq-height: 212px;--composer-height: 252px}.nav-btn{font-size:11px;padding:11px 7px}.nav-btn-ai{font-size:14px}.composer{grid-template-columns:minmax(0,1fr) 48px 48px;gap:6px}.composer-send{width:48px;min-width:48px;min-height:48px;padding:0}.composer-mic{width:48px;min-width:48px;min-height:48px}.composer-input{padding:13px 14px}}
