:root{--primary: #1e88e5;--primary-dark: #1565c0;--bg-color: #1a1c20;--surface: #24272c;--text-main: #f0f4f8;--text-muted: #8b95a1;--border: #2d3138;--red-alert: #ff4757;--orange-warn: #ffa502;--green-fresh: #2ed573;--neu-up: 6px 6px 12px #0f1012, -6px -6px 12px #25282e;--neu-up-sm: 4px 4px 8px #111215, -4px -4px 8px #23262b;--neu-down: inset 5px 5px 10px #0f1012, inset -5px -5px 10px #25282e;--neu-down-sm: inset 3px 3px 6px #111215, inset -3px -3px 6px #23262b;--neu-glow: 0 0 10px rgba(30, 136, 229, .4);--btn-padding: 16px 24px}@media(prefers-color-scheme:light){:root{--bg-color: #22252a;--surface: #2b2f36;--text-main: #f0f4f8;--text-muted: #8b95a1;--border: #363b44}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased}.app-layout{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.main-content{flex:1;overflow-y:auto;padding:16px 16px 80px}.app-header{height:60px;background:#2b2f3699;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.05);position:sticky;top:0;z-index:10;box-shadow:0 4px 20px #0000004d}.header-title{font-size:1.35rem;font-weight:800;color:var(--primary);letter-spacing:-.5px;text-shadow:0 0 10px rgba(0,229,255,.3)}.header-actions{display:flex;gap:12px}.icon-btn{background:var(--surface);border:none;color:var(--text-main);font-size:1.25rem;cursor:pointer;padding:8px;border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;box-shadow:var(--neu-up-sm);transition:all .2s ease}.icon-btn:hover,.icon-btn:active{box-shadow:var(--neu-down-sm);color:var(--primary)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:75px;background:#2b2f36b3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.05);display:flex;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom,12px);z-index:10;box-shadow:0 -4px 30px #0003}.nav-item{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-muted);text-decoration:none;font-size:.75rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;background:none;border:none;position:relative}.nav-item.active{color:var(--primary);text-shadow:0 0 8px rgba(0,229,255,.4)}.nav-item.active .nav-icon{transform:translateY(-4px) scale(1.1);filter:drop-shadow(0 0 4px rgba(0,229,255,.6))}.nav-icon{width:24px;height:24px;transition:all .3s ease}.dashboard-container{display:flex;flex-direction:column;gap:24px}.welcome-section h1{font-size:1.5rem;margin-bottom:4px}.welcome-section p{color:var(--text-muted);font-size:.9rem}.zone-filters{display:flex;gap:16px;overflow-x:auto;padding-bottom:16px;padding-top:8px;-ms-overflow-style:none;scrollbar-width:none}.zone-filters::-webkit-scrollbar{display:none}.zone-pill{padding:12px 24px;border-radius:30px;background-color:var(--surface);border:1px solid rgba(255,255,255,.02);color:var(--text-muted);font-weight:600;white-space:nowrap;font-size:.95rem;cursor:pointer;transition:all .3s ease;box-shadow:var(--neu-up-sm)}.zone-pill.active{background-color:var(--surface);color:var(--primary);box-shadow:var(--neu-down-sm);text-shadow:0 0 8px rgba(0,229,255,.3)}.traffic-light-grid{display:grid;gap:20px}.neumorphic-sunken{background-color:var(--surface);border-radius:24px;padding:20px;box-shadow:var(--neu-down);border:1px solid rgba(255,255,255,.02)}.neumorphic-raised{background-color:var(--surface);border-radius:16px;box-shadow:var(--neu-up-sm);display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.03)}.progress-track{height:8px;width:100%;border-radius:4px;background-color:var(--bg-color);box-shadow:var(--neu-down-sm);overflow:hidden;margin-top:12px}.progress-fill{height:100%;border-radius:4px;transition:width .5s ease-out}.badge-abierto{font-size:.7rem;background-color:var(--bg-color);box-shadow:var(--neu-down-sm);padding:4px 8px;border-radius:12px;margin-left:8px;color:var(--text-muted)}.fab{position:fixed;width:60px;height:60px;border-radius:50%;background-color:var(--surface);color:var(--primary);display:flex;align-items:center;justify-content:center;box-shadow:var(--neu-up);border:1px solid rgba(255,255,255,.05);cursor:pointer;z-index:20;transition:all .3s cubic-bezier(.4,0,.2,1)}.fab:active{box-shadow:var(--neu-down);color:var(--text-main)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:flex-end;z-index:100;animation:fadeIn .3s ease}.bottom-sheet{background-color:var(--surface);width:100%;border-radius:20px 20px 0 0;padding:24px;box-shadow:0 -4px 20px #00000026;animation:slideUp .3s ease;padding-bottom:env(safe-area-inset-bottom,32px)}.sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sheet-header h3{margin:0;font-size:1.25rem;display:flex;align-items:center;gap:8px}.close-btn{background:none;border:none;font-size:1.25rem;color:var(--text-muted);cursor:pointer;padding:4px}.action-buttons{display:flex;flex-direction:column;gap:12px}.action-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:var(--btn-padding, 16px);border-radius:16px;border:1px solid rgba(255,255,255,.03);background-color:var(--surface);box-shadow:var(--neu-up-sm);font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s}.action-btn:active{box-shadow:var(--neu-down-sm)}.action-btn.success{color:var(--green-fresh)}.action-btn.warning{color:var(--orange-warn)}.action-btn.danger{color:var(--red-alert)}.empty-illustration{width:140px;height:140px;border-radius:50%;background:var(--surface);box-shadow:var(--neu-up);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:4rem;position:relative;border:2px solid rgba(255,255,255,.02)}.empty-illustration:after{content:"";position:absolute;inset:-10px;border-radius:50%;box-shadow:var(--neu-down);z-index:-1}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
