:root{--bg: #0a0a0a;--surface: #141414;--border: #1f1f1f;--text: #f0f0f0;--muted: #888;--brand: #1a6fff;--danger: #ff4444;font-family:DM Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;min-height:100dvh}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;min-height:100dvh}input,button,select,textarea{font-family:inherit;font-size:16px}button{cursor:pointer}a{color:inherit;text-decoration:none}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.screen{flex:1;padding:16px 16px calc(76px + env(safe-area-inset-bottom))}.topbar{background:#0a0a0af2;border-bottom:1px solid var(--border);padding:calc(14px + env(safe-area-inset-top)) 16px 14px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.topbar .title{font-size:16px;font-weight:600}.topbar .sub{font-size:12px;color:var(--muted)}.field{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text);outline:none;margin-bottom:12px}.field:focus{border-color:var(--brand)}.btn{width:100%;background:var(--brand);color:#fff;border:none;border-radius:12px;padding:15px;font-weight:600}.btn:disabled{opacity:.5}.btn-ghost{background:none;border:1px solid var(--border);color:var(--muted)}.error{color:var(--danger);font-size:14px;text-align:center;margin-bottom:12px}.center-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 16px;display:flex;flex-direction:column;gap:10px;min-height:104px;color:var(--text)}.card .ico{font-size:26px}.card .lbl{font-size:14px;font-weight:500;color:var(--text)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;background:#0a0a0af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);display:flex;padding:8px 0 calc(8px + env(safe-area-inset-bottom))}.bottom-nav a{flex:1;text-align:center;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px}.bottom-nav a.active{color:var(--brand)}.bottom-nav .ico{font-size:20px}.muted{color:var(--muted);font-size:14px}.section-title{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:4px 0 12px}@keyframes chatBurbujaFadeIn{0%{opacity:0}to{opacity:1}}.chat-burbuja-anim{animation:chatBurbujaFadeIn .18s ease-out}@keyframes chatSkeletonShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chat-skeleton{animation:chatSkeletonShimmer 1.4s linear infinite}@keyframes selOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes selPanelIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.sel-overlay{animation:selOverlayIn .16s ease-out}.sel-panel{animation:selPanelIn .22s cubic-bezier(.2,.8,.3,1);transform-origin:top center}@keyframes avisoToastIn{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes avisoToastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-24px) scale(.96)}}@keyframes campanaPanelIn{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes campanaPanelOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.97)}}@keyframes campanaItemIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.campana-item-anim{animation:campanaItemIn .22s ease-out both}button,.card,.grid>*,a[role=button]{transition:transform .1s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;-webkit-tap-highlight-color:transparent}button:active,.card:active,.grid>*:active,a[role=button]:active{transform:scale(.96)}button:disabled:active,button[aria-disabled=true]:active{transform:none}@keyframes avisoToastPulso{0%,to{box-shadow:0 6px 30px #0009,0 0 #1a6fff00}50%{box-shadow:0 6px 30px #0009,0 0 0 10px #1a6fff40}}@keyframes avisoTostadoUrgente{0%,to{box-shadow:0 6px 30px #0009,0 0 #e540}50%{box-shadow:0 6px 30px #0009,0 0 0 14px #ee554459}}
