        html { font-size: 16px; }
        body, h1, h2, h3, h4, h5, h6 { font-family: 'Plus Jakarta Sans', 'Bricolage Grotesque', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
        body { background-color: #f2f2f7; color: #1c1c1e; }
        .bg-ios-blue { background-color: #007AFF; }
        .text-ios-blue { color: #007AFF; }
        .ios-card { background-color: rgba(255, 255, 255, 0.9); border-radius: 1.5rem; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(0, 0, 0, 0.04); }
        .fade-in { animation: fadeIn 0.5s ease-in-out; }
        @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        #main-header { background-color: #007AFF; border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
        .horizontal-scroll-container { -ms-overflow-style: none; scrollbar-width: none; }
        .horizontal-scroll-container::-webkit-scrollbar { display: none; }
        #bottom-nav { background-color: #ffffff; border-top: 1px solid rgba(0, 0, 0, 0.1); color: #8e8e93; }
        #bottom-nav .nav-item { color: #8e8e93; }
        #bottom-nav .nav-item.active { color: #007AFF; }
        .page-view { display: none; }
        .page-view.active { display: block; }
        .hero-image-animation { animation: subtle-zoom 10s ease-in-out infinite alternate; }
        @keyframes subtle-zoom { from { transform: scale(1); } to { transform: scale(1.05); } }
        .icon-click-animation { animation: jiggle 0.4s ease-in-out; }
        @keyframes jiggle { 0%, 100% { transform: scale(1); } 25% { transform: scale(0.9) rotate(-3deg); } 50% { transform: scale(1.1) rotate(3deg); } 75% { transform: scale(0.95) rotate(-1deg); } }
        .accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.5s ease-in-out; }
        .accordion-button.expanded + .accordion-content { max-height: 500px; /* Adjust as needed */ }
        .accordion-button.expanded .accordion-chevron { transform: rotate(180deg); }
        .leaflet-popup-content-wrapper { border-radius: 12px; }
        .leaflet-popup-content { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1rem; line-height: 1.4; }
        .circle{
  position: absolute;
  border-radius: 50%;
  background: white;
  animation: ripple 15s infinite;
  box-shadow: 0px 0px 1px 0px #508fb9;
}
        .small{
          width: 200px;
          height: 200px;
          left: -100px;
          bottom: -100px;
        }
        .medium{
          width: 400px;
          height: 400px;
          left: -200px;
          bottom: -200px;
        }
        .large{
          width: 600px;
          height: 600px;
          left: -300px;
          bottom: -300px;
        }
        .xlarge{
          width: 800px;
          height: 800px;
          left: -400px;
          bottom: -400px;
        }
        .xxlarge{
          width: 1000px;
          height: 1000px;
          left: -500px;
          bottom: -500px;
        }
        .shade1{
          opacity: 0.2;
        }
        .shade2{
          opacity: 0.5;
        }
        .shade3{
          opacity: 0.7;
        }
        .shade4{
          opacity: 0.8;
        }
        .shade5{
          opacity: 0.9;
        }
        @keyframes ripple{
          0%{
            transform: scale(0.8);
          }
          
          50%{
            transform: scale(1.2);
          }
          
          100%{
            transform: scale(0.8);
          }
        }


        /* === Ajustes Premium Mobile / App === */
        :root {
            --app-blue: #007AFF;
            --app-blue-dark: #0058CC;
            --app-yellow: #FFC107;
            --app-surface: rgba(255,255,255,.92);
            --safe-bottom: env(safe-area-inset-bottom, 0px);
        }
        body {
            min-height: 100vh;
            background:
                radial-gradient(circle at 20% -10%, rgba(0, 122, 255, .18), transparent 34rem),
                radial-gradient(circle at 120% 10%, rgba(255, 193, 7, .18), transparent 28rem),
                #f5f7fb;
            padding-bottom: calc(7.8rem + var(--safe-bottom));
        }
        .ios-card {
            box-shadow: 0 12px 35px rgba(13, 35, 67, .08), 0 2px 8px rgba(13, 35, 67, .05);
            transform: translateZ(0);
        }
        .page-view.active { animation: pageEnter .34s cubic-bezier(.22,1,.36,1); }
        @keyframes pageEnter { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
        .navigate-btn, button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
        .navigate-btn:active, button:active { transform: scale(.985); }
        input, select, textarea {
            min-height: 48px;
            border: 1px solid rgba(148, 163, 184, .35) !important;
            outline: none;
            font-size: 16px;
            transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
        }
        input:focus, select:focus, textarea:focus {
            border-color: var(--app-blue) !important;
            box-shadow: 0 0 0 4px rgba(0, 122, 255, .12) !important;
            background-color: #fff !important;
        }
        #bottom-nav {
            left: 50% !important;
            right: auto !important;
            bottom: calc(.72rem + var(--safe-bottom));
            width: min(96vw, 31.5rem);
            height: auto;
            padding: 0;
            background: transparent !important;
            border: 0 !important;
            border-radius: 9999px;
            transform: translateX(-50%);
            z-index: 60;
            pointer-events: none;
        }
        .bottom-nav-inner {
            position: relative;
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            align-items: center;
            gap: .18rem;
            min-height: 4.05rem;
            padding: .42rem;
            border-radius: 9999px;
            background:
                linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.88));
            border: 1px solid rgba(255,255,255,.92);
            box-shadow:
                0 20px 48px rgba(15, 23, 42, .18),
                0 8px 18px rgba(0, 122, 255, .09),
                inset 0 1px 0 rgba(255,255,255,.92);
            backdrop-filter: blur(26px) saturate(1.35);
            -webkit-backdrop-filter: blur(26px) saturate(1.35);
            pointer-events: auto;
            overflow: hidden;
            isolation: isolate;
            clip-path: inset(0 round 9999px);
            outline: 1px solid rgba(255,255,255,.22);
        }
        .bottom-nav-inner::before {
            content: '';
            position: absolute;
            inset: .18rem;
            border-radius: inherit;
            pointer-events: none;
            background:
                radial-gradient(circle at 16% 15%, rgba(0,122,255,.16), transparent 26%),
                radial-gradient(circle at 90% 0%, rgba(255,193,7,.16), transparent 26%);
        }
        #bottom-nav .nav-item {
            position: relative;
            z-index: 1;
            min-width: 0;
            height: 3.18rem;
            border-radius: 9999px;
            color: #64748b;
            font-weight: 900;
            letter-spacing: -.01em;
            line-height: 1;
            transition: color .22s ease, transform .22s ease, background .22s ease, box-shadow .22s ease;
        }
        #bottom-nav .nav-item i, #bottom-nav .nav-item svg {
            width: 1.28rem !important;
            height: 1.28rem !important;
            margin-bottom: .18rem !important;
            stroke-width: 2.5;
            transition: transform .22s ease, filter .22s ease;
        }
        #bottom-nav .nav-item span {
            display: block;
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: .64rem;
        }
        #bottom-nav .nav-item.active {
            color: #fff;
            border-radius: 9999px;
            background: linear-gradient(135deg, var(--app-blue), #00a3ff);
            box-shadow: 0 12px 26px rgba(0, 122, 255, .34), inset 0 1px 0 rgba(255,255,255,.3);
            transform: translateY(-1px);
        }
        #bottom-nav .nav-item.active i, #bottom-nav .nav-item.active svg {
            transform: translateY(-1px) scale(1.04);
            filter: drop-shadow(0 4px 8px rgba(0,0,0,.16));
        }
        #bottom-nav .nav-item:active { transform: scale(.96); }
        #bottom-nav .nav-item.active:active { transform: translateY(-1px) scale(.97); }
        @media (max-width: 390px) {
            #bottom-nav { width: calc(100vw - .65rem); bottom: calc(.5rem + var(--safe-bottom)); }
            .bottom-nav-inner { gap: .08rem; padding: .34rem; min-height: 3.85rem; }
            #bottom-nav .nav-item { height: 3rem; }
            #bottom-nav .nav-item span { font-size: .58rem; }
            #bottom-nav .nav-item i, #bottom-nav .nav-item svg { width: 1.18rem !important; height: 1.18rem !important; }
        }
        @media (max-width: 340px) {
            #bottom-nav .nav-item span { display: none; }
            #bottom-nav .nav-item i, #bottom-nav .nav-item svg { margin-bottom: 0 !important; }
            #bottom-nav .nav-item { height: 2.92rem; }
            .bottom-nav-inner { min-height: 3.65rem; }
        }
        #toast-notification {
            max-width: calc(100vw - 2rem);
            border-radius: 1rem;
            box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
        }
        .notification-header-btn { position: relative; }
        .notification-badge { position: absolute; top: 1px; right: 0; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 999px; display: grid; place-items: center; background: #ff3b30; color: #fff; border: 2px solid #0877e8; font-size: .58rem; line-height: 1; font-weight: 900; }
        .notification-badge.hidden { display: none; }
        .notifications-backdrop { position: fixed; inset: 0; z-index: 1200; display: flex; justify-content: flex-end; background: rgba(15,23,42,0); pointer-events: none; transition: background .28s ease; }
        .notifications-backdrop.active { background: rgba(15,23,42,.36); pointer-events: auto; backdrop-filter: blur(3px); }
        .notifications-panel { width: min(26rem,100%); height: 100%; overflow: hidden; display: flex; flex-direction: column; background: #f8fafc; box-shadow: -24px 0 70px rgba(15,23,42,.22); transform: translateX(105%); transition: transform .32s cubic-bezier(.22,.8,.2,1); }
        .notifications-backdrop.active .notifications-panel { transform: translateX(0); }
        .notifications-handle { display: none; }
        .notifications-head { padding: calc(1.25rem + env(safe-area-inset-top)) 1.25rem 1rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; color: #fff; background: linear-gradient(135deg,#003f9e,#007aff 58%,#18b9f2); }
        .notifications-head h2 { margin-top: .25rem; font-size: 1.6rem; line-height: 1.1; font-weight: 900; letter-spacing: -.035em; }
        .notifications-head p { margin-top: .35rem; color: rgba(255,255,255,.82); font-size: .78rem; font-weight: 600; }
        .notifications-kicker { display: inline-flex; align-items: center; gap: .35rem; font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; color: #dff4ff; }
        .notifications-close { width: 2.4rem; height: 2.4rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: 999px; background: rgba(255,255,255,.16); }
        .notifications-actions { padding: .75rem 1rem; background: #fff; border-bottom: 1px solid #e2e8f0; text-align: right; }
        .notifications-actions button { display: inline-flex; align-items: center; gap: .4rem; color: #007aff; font-size: .74rem; font-weight: 800; }
        .push-enable-wrap { padding: .85rem 1rem; background: #fff; border-bottom: 1px solid #e2e8f0; }
        .push-enable-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .78rem 1rem; border-radius: .95rem; color: #fff; background: linear-gradient(135deg,#0066df,#0795f5); font-size: .82rem; font-weight: 900; box-shadow: 0 8px 20px rgba(0,122,255,.2); }
        .push-enable-btn:disabled { color: #047857; background: #d1fae5; box-shadow: none; }
        .push-status { margin-top: .45rem; color: #64748b; font-size: .69rem; font-weight: 650; text-align: center; }
        .push-status.error { color: #dc2626; }
        .notifications-list { flex: 1; overflow-y: auto; padding: .85rem; overscroll-behavior: contain; }
        .notification-item { width: 100%; display: grid; grid-template-columns: 2.65rem minmax(0,1fr) auto; gap: .75rem; padding: .9rem; margin-bottom: .65rem; text-align: left; border: 1px solid #e2e8f0; border-radius: 1.15rem; background: #fff; box-shadow: 0 8px 24px rgba(15,23,42,.05); }
        .notification-item.unread { border-color: rgba(0,122,255,.22); background: linear-gradient(135deg,#eff7ff,#fff 64%); }
        .notification-icon { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .9rem; color: #0877e8; background: #dbeafe; }
        .notification-icon.agenda { color: #7c3aed; background: #ede9fe; } .notification-icon.protocol { color: #059669; background: #d1fae5; }
        .notification-copy { min-width: 0; } .notification-meta { display: flex; align-items: center; gap: .4rem; margin-bottom: .2rem; color: #64748b; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
        .notification-copy strong { display: block; color: #0f172a; font-size: .88rem; line-height: 1.25; } .notification-copy p { margin-top: .25rem; color: #64748b; font-size: .75rem; line-height: 1.35; }
        .notification-unread-dot { width: .52rem; height: .52rem; margin-top: .35rem; border-radius: 999px; background: #007aff; box-shadow: 0 0 0 4px rgba(0,122,255,.1); }
        .notifications-empty { padding: 3.5rem 1.4rem; text-align: center; color: #64748b; } .notifications-empty svg { margin: 0 auto .8rem; color: #94a3b8; }
        @media (max-width: 640px) { .notifications-backdrop { align-items: flex-end; } .notifications-panel { width: 100%; height: min(78vh,44rem); border-radius: 1.6rem 1.6rem 0 0; transform: translateY(105%); } .notifications-backdrop.active .notifications-panel { transform: translateY(0); } .notifications-handle { display: block; position: absolute; z-index: 2; top: .5rem; left: 50%; width: 2.5rem; height: .28rem; border-radius: 99px; background: rgba(255,255,255,.55); transform: translateX(-50%); } .notifications-head { padding-top: calc(1.65rem + env(safe-area-inset-top)); } }
        .premium-status-card {
            border: 1px solid rgba(0, 122, 255, .12);
            background: linear-gradient(135deg, rgba(0,122,255,.08), rgba(255,255,255,.92));
        }
        .premium-location-note {
            margin-top: .65rem;
            font-size: .78rem;
            color: #475569;
            background: #f8fafc;
            border: 1px dashed rgba(0, 122, 255, .28);
            border-radius: .9rem;
            padding: .75rem .85rem;
        }
        .premium-pulse { animation: premiumPulse 1.2s ease-in-out infinite; }
        @keyframes premiumPulse { 0%,100%{opacity:.55;transform:scale(.98)} 50%{opacity:1;transform:scale(1)} }
        @media (max-width: 640px) {
            .container { max-width: 100% !important; }
            #inicio { height: 13.5rem !important; border-bottom-left-radius: 2rem; border-bottom-right-radius: 2rem; }
            #inicio h1 { font-size: 2rem !important; line-height: 1.05 !important; letter-spacing: .04em !important; }
            #quick-access .grid { gap: .85rem !important; }
            #quick-access .ios-card { min-height: 8.6rem; padding: 1rem .7rem !important; }
            #quick-access .ios-card span { font-size: .92rem; line-height: 1.15; }
            .page-header .h-20, #main-header nav { height: 4.25rem !important; }
            form .flex.items-center.gap-2 { flex-direction: column; align-items: stretch; }
            form .flex.items-center.gap-2 > button { width: 100%; justify-content: center; }
            .ios-card { border-radius: 1.35rem; }
        }


        /* === Upanema ON: hero premium, card do usuário e mapa estilo mobilidade === */
        .premium-hero {
            background:
                radial-gradient(circle at 18% 15%, rgba(255, 212, 59, .35), transparent 18rem),
                radial-gradient(circle at 82% 20%, rgba(0, 211, 255, .35), transparent 16rem),
                linear-gradient(135deg, #003f9e 0%, #007aff 48%, #00a3ff 100%);
            border-bottom-left-radius: 2.35rem;
            border-bottom-right-radius: 2.35rem;
            box-shadow: 0 24px 55px rgba(0, 82, 180, .22);
            isolation: isolate;
        }
        .hero-gradient-orb { position: absolute; border-radius: 9999px; filter: blur(10px); opacity: .74; animation: heroFloat 7s ease-in-out infinite; }
        .hero-gradient-orb.orb-a { width: 13rem; height: 13rem; background: rgba(255, 193, 7, .35); top: -5rem; left: -3rem; }
        .hero-gradient-orb.orb-b { width: 16rem; height: 16rem; background: rgba(255, 255, 255, .18); bottom: -7rem; right: -4rem; animation-delay: -2s; }
        .hero-road-lines { position: absolute; inset: 0; background: linear-gradient(120deg, transparent 0 37%, rgba(255,255,255,.12) 37.5% 38.4%, transparent 39% 100%); transform: skewY(-7deg) translateY(1rem); animation: heroLines 5.5s linear infinite; opacity: .75; }
        .hero-noise { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.23) 1px, transparent 1px); background-size: 22px 22px; opacity: .16; }
        .hero-badge { width: fit-content; display: flex; align-items: center; gap: .45rem; padding: .42rem .8rem; border-radius: 999px; color: #fff; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(16px); font-size: .78rem; font-weight: 800; letter-spacing: .01em; box-shadow: 0 12px 35px rgba(0,0,0,.1); }
        .premium-hero-title { font-family: 'Outfit', 'Plus Jakarta Sans', sans-serif; color: #fff; font-weight: 900; line-height: .86; letter-spacing: -.06em; text-transform: uppercase; text-shadow: 0 20px 45px rgba(0, 37, 94, .34); animation: heroNameIn .9s cubic-bezier(.16,1,.3,1) both; }
        .premium-hero-title span, .premium-hero-title strong { display: block; }
        .premium-hero-title span { font-size: clamp(3rem, 12vw, 5.8rem); }
        .premium-hero-title strong { font-size: clamp(2.7rem, 10vw, 5.2rem); background: linear-gradient(90deg, #fff 0%, #fff3b0 42%, #ffffff 70%); -webkit-background-clip: text; background-clip: text; color: transparent; animation: textShimmer 3.8s ease-in-out infinite; background-size: 220% auto; }
        .hero-subtitle { max-width: 31rem; color: rgba(255,255,255,.84); margin: .85rem auto 0; font-size: .98rem; font-weight: 600; }
        @keyframes heroFloat { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(.8rem,-.6rem,0) scale(1.06); } }
        @keyframes heroLines { from { background-position: 0 0; } to { background-position: 160px 0; } }
        @keyframes heroNameIn { from { opacity: 0; transform: translateY(18px) scale(.96); filter: blur(8px); } to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
        @keyframes textShimmer { 0%,100% { background-position: 0% center; } 50% { background-position: 100% center; } }
        .home-profile-card { overflow: hidden; position: relative; border-radius: 1.65rem; padding: 1rem; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,248,255,.94)); border: 1px solid rgba(0,122,255,.13); box-shadow: 0 20px 50px rgba(15, 23, 42, .13); }
        .home-profile-card::before { content: ''; position: absolute; width: 10rem; height: 10rem; border-radius: 999px; background: rgba(0,122,255,.1); top: -5rem; right: -4rem; }
        .profile-avatar-premium { width: 3.3rem; height: 3.3rem; border-radius: 1.1rem; color: #fff; background: linear-gradient(135deg, #007aff, #00b7ff); display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 1.2rem; box-shadow: 0 14px 30px rgba(0,122,255,.28); }
        .profile-info-pill { display: inline-flex; align-items: center; gap: .38rem; padding: .45rem .6rem; border-radius: 999px; background: rgba(15, 23, 42, .055); color: #334155; font-size: .72rem; font-weight: 800; }
        .citizen-auth-shell { position: relative; overflow: hidden; border-radius: 1.65rem; background: linear-gradient(135deg, #0f172a, #0b63ce 58%, #10b8ff); color: white; box-shadow: 0 22px 55px rgba(15, 23, 42, .22); }
        .citizen-auth-shell::before { content:''; position:absolute; width:13rem; height:13rem; border-radius:999px; right:-4rem; top:-5rem; background:rgba(255,255,255,.14); }
        .citizen-auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; padding:.35rem; border-radius:1.1rem; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); }
        .citizen-auth-tab { border-radius:.9rem; padding:.75rem .9rem; font-weight:900; font-size:.88rem; color:rgba(255,255,255,.84); transition:all .22s ease; }
        .citizen-auth-tab.active { color:#0f172a; background:#fff; box-shadow:0 10px 25px rgba(15,23,42,.2); }
        .citizen-login-panel { background:rgba(255,255,255,.98); border-radius:1.35rem; padding:1rem; color:#0f172a; box-shadow:0 18px 40px rgba(15,23,42,.14); }
        .citizen-session-pill { display:inline-flex; align-items:center; gap:.4rem; padding:.42rem .65rem; border-radius:999px; background:rgba(16,185,129,.12); color:#047857; font-size:.75rem; font-weight:900; }

        .map-dashboard-card { border-radius: 1.75rem; padding: 1.2rem; background: linear-gradient(135deg, #051d42, #007aff 62%, #15c6ff); box-shadow: 0 22px 55px rgba(0, 95, 215, .23); overflow: hidden; position: relative; }
        .map-dashboard-card::after { content: ''; position: absolute; inset: auto -4rem -5rem auto; width: 14rem; height: 14rem; background: rgba(255,255,255,.15); border-radius: 999px; }
        .map-mini-label { display: inline-flex; color: #dbeafe; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
        .map-live-pill { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4rem; color: white; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.24); padding: .45rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 900; backdrop-filter: blur(12px); }
        .map-live-pill span { width: .55rem; height: .55rem; border-radius: 999px; background: #39ff88; box-shadow: 0 0 0 5px rgba(57,255,136,.12); animation: premiumPulse 1.4s ease-in-out infinite; }
        .waze-map-shell { position: relative; height: min(82vh, 860px); min-height: 640px; border-radius: 2rem; overflow: hidden; background: #dbeafe; box-shadow: 0 24px 60px rgba(15,23,42,.16); border: 1px solid rgba(255,255,255,.72); }
        .modern-map-container { position: absolute; inset: 0; z-index: 1; height: 100%; width: 100%; }
        .map-floating-search { position: absolute; top: .9rem; left: .9rem; right: .9rem; z-index: 15; pointer-events: auto; }
        .map-chip { flex: 0 0 auto; border: 0; border-radius: 999px; padding: .55rem .86rem; background: rgba(255,255,255,.92); color: #334155; box-shadow: 0 10px 25px rgba(15,23,42,.12); font-size: .78rem; font-weight: 900; backdrop-filter: blur(14px); transition: transform .2s ease, background .2s ease, color .2s ease; }
        .map-chip.active { color: white; background: #007aff; transform: translateY(-1px); }
        .map-action-btn { position: absolute; right: 1rem; z-index: 16; width: 2.85rem; height: 2.85rem; border-radius: 1rem; background: rgba(255,255,255,.94); color: #007aff; display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 34px rgba(15,23,42,.16); border: 1px solid rgba(255,255,255,.72); backdrop-filter: blur(14px); }
        .map-action-user { top: 8.8rem; }
        .map-action-fit { top: 12rem; }
        .map-bottom-sheet { position: absolute; left: .75rem; right: .75rem; bottom: .75rem; z-index: 40; isolation: isolate; background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.82); border-radius: 1.45rem; padding-top: .45rem; box-shadow: 0 18px 50px rgba(15,23,42,.16); backdrop-filter: blur(22px) saturate(1.25); -webkit-backdrop-filter: blur(22px) saturate(1.25); max-height: 16.2rem; overflow: hidden; pointer-events: auto; touch-action: auto; transition: max-height .28s ease, border-radius .28s ease, background .28s ease; }
        .map-bottom-sheet.expanded { max-height: min(72vh, 34rem); overflow-y: auto; border-radius: 1.55rem; background: rgba(255,255,255,.96); }
        .map-sheet-handle { width: 3rem; height: .25rem; border-radius: 999px; background: #cbd5e1; margin: 0 auto .55rem; }
        .map-location-list { position: relative; z-index: 2; display: flex; gap: .62rem; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 0 .85rem .78rem; scroll-snap-type: none; scroll-padding: 0 .85rem; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; overscroll-behavior-y: contain; touch-action: pan-x; }
        .map-location-list.is-dragging { cursor: grabbing; scroll-behavior: auto; }
        .map-location-list::after { content: ''; flex: 0 0 .2rem; }
        .map-bottom-sheet.expanded .map-location-list { flex-direction: column; overflow-x: hidden; overflow-y: visible; padding-bottom: .9rem; scroll-snap-type: none; touch-action: pan-y; }
        .map-bottom-sheet.expanded .map-location-list::after { display: none; }
        .map-place-card { position: relative; display: block; flex: 0 0 13.2rem; scroll-snap-align: start; border-radius: 1rem; background: #fff; padding: .62rem; box-shadow: 0 8px 22px rgba(15,23,42,.08); border: 1px solid rgba(226,232,240,.8); color: inherit; cursor: pointer; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; touch-action: pan-x; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
        .map-place-card:focus-visible { outline: 3px solid rgba(0,122,255,.28); outline-offset: 2px; }
        .map-place-card.active { border-color: rgba(0,122,255,.34); box-shadow: 0 14px 32px rgba(0,122,255,.14); }
        .map-bottom-sheet.expanded .map-place-card { flex: 0 0 auto; width: 100%; padding: .82rem; border-radius: 1.05rem; touch-action: manipulation; }
        .map-card-extra { display: none; }
        .map-bottom-sheet.expanded .map-card-extra, .map-place-card.active .map-card-extra { display: block; }
        .map-bottom-sheet.expanded .map-place-card h4, .map-bottom-sheet.expanded .map-place-card p, .map-place-card.active h4, .map-place-card.active p { display: block; -webkit-line-clamp: unset; line-clamp: unset; -webkit-box-orient: initial; overflow: visible; }
        .map-sheet-toggle { border: 0; border-radius: 999px; padding: .48rem .74rem; color: #007aff; background: #e0f2fe; font-size: .72rem; font-weight: 950; display: inline-flex; align-items: center; gap: .32rem; white-space: nowrap; }
        .map-bottom-sheet.expanded .map-sheet-toggle { color: #fff; background: #007aff; }
        .map-place-icon { width: 2.25rem; height: 2.25rem; border-radius: .82rem; display: flex; align-items: center; justify-content: center; color: white; flex: 0 0 auto; }
        .map-place-icon.gov, .modern-map-marker.gov { background: #007aff; }
        .map-place-icon.health, .modern-map-marker.health { background: #ff3b30; }
        .map-place-icon.school, .modern-map-marker.school { background: #34c759; }
        .map-place-icon.social, .modern-map-marker.social { background: #af52de; }
        .map-place-icon.sport, .modern-map-marker.sport { background: #ff9500; }
        .map-place-icon.culture, .modern-map-marker.culture { background: #5856d6; }
        .map-place-icon.security, .modern-map-marker.security { background: #111827; }
        .map-place-icon.public, .modern-map-marker.public { background: #64748b; }
        .modern-map-marker { width: 2.7rem; height: 2.7rem; border-radius: 1.05rem 1.05rem 1.05rem .25rem; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 12px 25px rgba(15,23,42,.26); border: 3px solid #fff; }
        .modern-map-marker .marker-icon-inner { transform: rotate(45deg); display: flex; align-items: center; justify-content: center; }
        .modern-map-marker.active { animation: markerBounce .7s cubic-bezier(.22,1,.36,1); box-shadow: 0 0 0 9px rgba(0,122,255,.16), 0 14px 28px rgba(15,23,42,.28); }
        @keyframes markerBounce { 0%,100% { transform: rotate(-45deg) translateY(0); } 45% { transform: rotate(-45deg) translateY(-10px); } }
        .leaflet-popup-content-wrapper { border-radius: 1.1rem !important; box-shadow: 0 18px 40px rgba(15,23,42,.2); }
        .leaflet-popup-content { margin: .95rem 1rem !important; min-width: 210px; }
        .map-route-btn { display: inline-flex; align-items: center; gap: .4rem; margin-top: .7rem; color: #fff !important; background: #007aff; border-radius: .8rem; padding: .55rem .75rem; font-weight: 900; font-size: .78rem; text-decoration: none !important; box-shadow: 0 10px 22px rgba(0,122,255,.24); }
        .map-route-btn:visited, .map-route-btn:hover, .map-route-btn:focus { color: #fff !important; text-decoration: none !important; }
        .map-route-btn svg, .map-route-btn i { color: #fff !important; stroke: currentColor !important; }

        .map-precision-badge { display:inline-flex; align-items:center; gap:.25rem; border-radius:999px; padding:.24rem .45rem; font-size:.62rem; font-weight:950; text-transform:uppercase; letter-spacing:.035em; }
        .map-precision-badge.confirmed { color:#047857; background:#ecfdf5; }
        .map-precision-badge.approx { color:#92400e; background:#fffbeb; }
        .map-precision-note { display:flex; align-items:flex-start; gap:.45rem; margin:.45rem .85rem .7rem; padding:.55rem .7rem; border-radius:.9rem; color:#475569; background:#f8fafc; border:1px dashed rgba(0,122,255,.22); font-size:.72rem; line-height:1.25; }
        .map-place-card.compact-card h4 { font-size:.88rem; }
        .map-place-card.compact-card p { font-size:.7rem; }
        @media (max-width: 640px) {
            .premium-hero { height: 15.25rem !important; }
            .premium-hero-title span { font-size: 3.15rem; }
            .premium-hero-title strong { font-size: 2.85rem; }
            .hero-subtitle { font-size: .86rem; padding: 0 .4rem; }
            .waze-map-shell { height: calc(100vh - 9.6rem); min-height: 560px; border-radius: 1.35rem; margin-left: -.35rem; margin-right: -.35rem; }
            .map-action-user { top: 7.85rem; right:.72rem; }
            .map-action-fit { top: 10.8rem; right:.72rem; }
            .map-floating-search { top:.6rem; left:.6rem; right:.6rem; }
            .map-chip { padding:.48rem .7rem; font-size:.72rem; }
            .map-bottom-sheet { left:.5rem; right:.5rem; bottom:.5rem; border-radius:1.18rem; max-height:13.65rem; padding-top:.32rem; }
            .map-bottom-sheet.expanded { max-height: 64vh; border-radius: 1.25rem; }
            .map-sheet-handle { margin-bottom:.42rem; }
            .map-location-list { gap:.46rem; padding:0 .55rem .55rem; }
            .map-place-card { flex-basis: 10.8rem; padding:.5rem; border-radius:.86rem; }
            .map-place-icon { width:1.85rem; height:1.85rem; border-radius:.68rem; }
            .map-place-card .mt-3 { margin-top:.42rem; }
            .map-place-card h4 { font-size:.78rem; line-height:1.08; }
            .map-place-card p { font-size:.66rem; line-height:1.1; }
            .map-place-card .text-\[11px\] { font-size:.58rem; }
            .map-precision-note { display:none; }
            #inicio.premium-hero { height: 15.25rem !important; }
            #inicio .premium-hero-title { line-height: .86 !important; letter-spacing: -.06em !important; }
        }



        /* === Notícias oficiais: integração site da Prefeitura === */
        .news-skeleton-card {
            min-height: 14rem;
            background: linear-gradient(90deg, #e5e7eb 0%, #f8fafc 45%, #e5e7eb 100%);
            background-size: 240% 100%;
            animation: newsSkeleton 1.25s ease-in-out infinite;
            box-shadow: 0 16px 38px rgba(15, 23, 42, .08);
        }
        @keyframes newsSkeleton { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }
        .news-status-pill {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: .45rem;
            width: fit-content;
            max-width: 100%;
            margin-left: auto;
            margin-right: auto;
            padding: .65rem .9rem;
            border-radius: 999px;
            color: #075985;
            background: rgba(224, 242, 254, .92);
            border: 1px solid rgba(14, 165, 233, .22);
            font-size: .78rem;
            font-weight: 850;
            box-shadow: 0 12px 28px rgba(14, 165, 233, .1);
        }
        .news-status-error { color: #991b1b; background: rgba(254, 226, 226, .92); border-color: rgba(239, 68, 68, .22); }
        .news-toolbar { box-shadow: 0 18px 42px rgba(15, 23, 42, .1); }
        .news-category-chip {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: .35rem;
            border: 0;
            border-radius: 999px;
            padding: .55rem .9rem;
            background: #f1f5f9;
            color: #334155;
            font-size: .78rem;
            font-weight: 900;
            white-space: nowrap;
            transition: transform .18s ease, color .18s ease, background .18s ease;
        }
        .news-category-chip.active, .news-category-chip:hover { background: #007aff; color: #fff; transform: translateY(-1px); }
        .news-date-badge, .news-category-label, .news-soft-label {
            display: inline-flex;
            align-items: center;
            gap: .35rem;
            padding: .38rem .65rem;
            border-radius: 999px;
            font-size: .68rem;
            font-weight: 950;
            letter-spacing: .04em;
            text-transform: uppercase;
        }
        .news-date-badge { color: #075985; background: rgba(255,255,255,.9); backdrop-filter: blur(12px); }
        .news-category-label { color: white; background: linear-gradient(135deg, #007aff, #00a3ff); }
        .news-soft-label { color: #475569; background: #f1f5f9; }
        .official-news-card, .official-featured-news { box-shadow: 0 18px 42px rgba(15,23,42,.09); transition: transform .25s ease, box-shadow .25s ease; }
        .official-news-card:hover, .official-featured-news:hover { transform: translateY(-3px); box-shadow: 0 24px 58px rgba(15,23,42,.14); }
        .line-clamp-2, .line-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
        .line-clamp-2 { -webkit-line-clamp: 2; line-clamp: 2; }
        .line-clamp-3 { -webkit-line-clamp: 3; line-clamp: 3; }


        /* === Home premium: notícias acima do acesso rápido === */
        .home-news-modern { position: relative; z-index: 38; margin-top: -1.25rem; padding-top: .2rem; }
        .home-news-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
        .home-news-kicker { display: inline-flex; align-items: center; gap: .4rem; color: #075985; background: rgba(224, 242, 254, .92); border: 1px solid rgba(14, 165, 233, .16); border-radius: 999px; padding: .38rem .62rem; font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
        .home-news-title { font-size: 1.45rem; line-height: 1.05; font-weight: 950; color: #0f172a; letter-spacing: -.03em; }
        .home-news-see-all { display: inline-flex; align-items: center; gap: .35rem; flex-shrink: 0; border-radius: 999px; padding: .58rem .78rem; color: #007AFF; background: #fff; border: 1px solid rgba(0, 122, 255, .12); box-shadow: 0 12px 26px rgba(15, 23, 42, .08); font-size: .78rem; font-weight: 950; }
        .home-news-bar { position: relative; display: flex; gap: .78rem; min-height: 8.15rem; border-radius: 1.45rem; padding: .52rem; background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,248,255,.92)); border: 1px solid rgba(0, 122, 255, .12); box-shadow: 0 18px 42px rgba(15, 23, 42, .11); overflow: hidden; transition: transform .22s ease, box-shadow .22s ease; }
        .home-news-bar:hover { transform: translateY(-3px); box-shadow: 0 26px 58px rgba(15, 23, 42, .15); }
        .home-news-bar::after { content: ''; position: absolute; width: 9rem; height: 9rem; border-radius: 999px; right: -5rem; bottom: -5rem; background: rgba(0, 122, 255, .08); pointer-events: none; }
        .home-news-thumb { position: relative; flex: 0 0 7.1rem; border-radius: 1.1rem; overflow: hidden; background: #dbeafe; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45); }
        .home-news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
        .news-fallback-img { object-fit: cover; background: #007AFF; }
        .home-news-bar:hover .home-news-thumb img { transform: scale(1.06); }
        .home-news-body { min-width: 0; flex: 1; display: flex; flex-direction: column; justify-content: center; padding-right: .45rem; position: relative; z-index: 1; }
        .home-news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin-bottom: .45rem; }
        .home-news-category { display: inline-flex; align-items: center; border-radius: 999px; padding: .28rem .52rem; background: rgba(0, 122, 255, .1); color: #0065d0; font-size: .62rem; font-weight: 950; text-transform: uppercase; letter-spacing: .06em; }
        .home-news-date { display: inline-flex; align-items: center; gap: .25rem; color: #64748b; font-size: .68rem; font-weight: 900; }
        .home-news-headline { color: #0f172a; font-weight: 950; font-size: .98rem; line-height: 1.18; letter-spacing: -.02em; }
        .home-news-read { display: inline-flex; align-items: center; gap: .25rem; margin-top: .55rem; color: #007AFF; font-size: .75rem; font-weight: 950; }
        /* === Upanema Agora: área local para manter o cidadão no app === */
        .upanema-now-section { position: relative; }
        .upanema-now-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
        .upanema-now-kicker { display: inline-flex; align-items: center; gap: .4rem; width: fit-content; color: #065f46; background: rgba(209, 250, 229, .92); border: 1px solid rgba(16, 185, 129, .16); border-radius: 999px; padding: .4rem .68rem; font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 10px 24px rgba(16, 185, 129, .08); }
        .upanema-now-title { color: #0f172a; font-size: 1.65rem; line-height: 1.05; font-weight: 950; letter-spacing: -.045em; }
        .upanema-now-subtitle { color: #64748b; font-size: .86rem; font-weight: 700; margin-top: .35rem; }
        .upanema-now-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; }
        .upanema-main-card { position: relative; overflow: hidden; min-height: 16rem; border-radius: 1.75rem; padding: 1.15rem; display: flex; flex-direction: column; justify-content: space-between; color: #fff; background: linear-gradient(135deg, #03285c 0%, #007aff 60%, #22d3ee 100%); box-shadow: 0 24px 58px rgba(0, 95, 215, .2); isolation: isolate; text-align: left; }
        .upanema-main-card::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(180deg, rgba(3, 7, 18, .05), rgba(3, 7, 18, .45)), url('https://s2-g1.glbimg.com/65_8Tou4WV0SDzifAL9ZbdgBxGM=/0x0:1280x720/984x0/smart/filters:strip_icc()/i.s3.glbimg.com/v1/AUTH_59edd422c0c84a879bd37670ae4f538a/internal_photos/bs/2023/R/U/B8ca9cRVi0KrMyH870Sw/umari.jpeg'); background-size: cover; background-position: center; opacity: .34; z-index: -2; }
        .upanema-main-card::after { content: ''; position: absolute; width: 13rem; height: 13rem; right: -5rem; bottom: -6rem; border-radius: 999px; background: rgba(255, 255, 255, .18); z-index: -1; }
        .upanema-card-pill { display: inline-flex; align-items: center; gap: .38rem; width: fit-content; border-radius: 999px; padding: .42rem .66rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.92); font-size: .7rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(14px); }
        .upanema-dam-percent { font-size: clamp(3.2rem, 12vw, 5.25rem); line-height: .86; font-weight: 1000; letter-spacing: -.08em; text-shadow: 0 18px 40px rgba(0, 31, 77, .28); }
        .upanema-dam-label { color: rgba(255,255,255,.82); font-weight: 850; margin-top: .25rem; }
        .upanema-main-cta { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; width: fit-content; border-radius: 999px; padding: .72rem .9rem; background: #fff; color: #007aff; font-size: .82rem; font-weight: 950; box-shadow: 0 16px 34px rgba(15, 23, 42, .18); }
        .upanema-side-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
        .upanema-mini-card { position: relative; overflow: hidden; border-radius: 1.45rem; padding: 1rem; min-height: 7.1rem; background: rgba(255,255,255,.96); border: 1px solid rgba(15,23,42,.06); box-shadow: 0 18px 42px rgba(15,23,42,.08); transition: transform .22s ease, box-shadow .22s ease; text-align: left; }
        .upanema-mini-card:hover { transform: translateY(-2px); box-shadow: 0 24px 55px rgba(15,23,42,.12); }
        .upanema-mini-card::after { content: ''; position: absolute; width: 7rem; height: 7rem; right: -3.6rem; top: -3.7rem; border-radius: 999px; background: rgba(0,122,255,.08); }
        .upanema-mini-icon { width: 2.65rem; height: 2.65rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.12); }
        .upanema-mini-icon.today { background: linear-gradient(135deg, #f97316, #facc15); }
        .upanema-mini-icon.fact { background: linear-gradient(135deg, #8b5cf6, #06b6d4); }
        .upanema-mini-icon.photo { background: linear-gradient(135deg, #ec4899, #f97316); }
        .upanema-mini-title { position: relative; z-index: 1; color: #0f172a; font-size: .98rem; font-weight: 950; line-height: 1.1; margin-top: .75rem; }
        .upanema-mini-text { position: relative; z-index: 1; color: #64748b; font-size: .78rem; font-weight: 700; line-height: 1.35; margin-top: .28rem; }
        .upanema-live-row { display: flex; gap: .65rem; overflow-x: auto; padding: .95rem .1rem .15rem; scroll-snap-type: x mandatory; }
        .upanema-live-chip { flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; gap: .45rem; border-radius: 999px; padding: .58rem .82rem; background: #fff; border: 1px solid rgba(0, 122, 255, .1); color: #334155; box-shadow: 0 10px 24px rgba(15, 23, 42, .07); font-size: .76rem; font-weight: 900; }
        .upanema-live-dot { width: .48rem; height: .48rem; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 5px rgba(34,197,94,.12); }
        .dam-hero-card { overflow: hidden; position: relative; border-radius: 1.8rem; color: #fff; background: linear-gradient(135deg, #042756 0%, #007aff 58%, #25d7ff 100%); box-shadow: 0 24px 58px rgba(0, 95, 215, .22); }
        .dam-hero-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 18% 20%, rgba(255,255,255,.22), transparent 14rem), radial-gradient(circle at 88% 0%, rgba(255,193,7,.22), transparent 12rem); }
        .dam-hero-content { position: relative; z-index: 1; padding: 1.35rem; }
        .dam-progress-track { height: .72rem; border-radius: 999px; background: rgba(255,255,255,.2); overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
        .dam-progress-fill { height: 100%; width: 0%; border-radius: inherit; background: linear-gradient(90deg, #fff, #b9efff); transition: width .8s cubic-bezier(.22,1,.36,1); }
        .dam-metric-card { border-radius: 1.45rem; padding: 1rem; background: rgba(255,255,255,.94); border: 1px solid rgba(0,122,255,.1); box-shadow: 0 16px 38px rgba(15,23,42,.08); }
        .dam-source-pill { display: inline-flex; align-items: center; gap: .35rem; color: #075985; background: rgba(224,242,254,.92); border: 1px solid rgba(14,165,233,.18); padding: .42rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 950; }
        @media (max-width: 640px) {
            .home-news-modern { margin-top: -1.05rem; }
            .home-news-title { font-size: 1.25rem; }
            .home-news-see-all { padding: .52rem .68rem; }
            .home-news-bar { min-height: 7.35rem; width: 88vw !important; border-radius: 1.25rem; }
            .home-news-thumb { flex-basis: 6rem; }
            .home-news-headline { font-size: .9rem; }
            .upanema-now-header { align-items: flex-start; flex-direction: column; gap: .65rem; }
            .upanema-now-title { font-size: 1.42rem; }
            .upanema-now-grid { grid-template-columns: 1fr; }
            .upanema-main-card { min-height: 15.5rem; border-radius: 1.45rem; }
            .upanema-side-grid { grid-template-columns: 1fr; gap: .75rem; }
            .upanema-mini-card { min-height: 6.7rem; }
        }


        /* === Enquete Premium: participação cidadã com resultado visual === */
        .poll-shell { display: grid; gap: 1rem; }
        .poll-hero-card { position: relative; overflow: hidden; border-radius: 1.85rem; padding: 1.25rem; color: #fff; background: linear-gradient(135deg, #042756 0%, #007aff 54%, #22d3ee 100%); box-shadow: 0 24px 58px rgba(0,95,215,.22); isolation: isolate; }
        .poll-hero-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 12% 20%, rgba(255,255,255,.22), transparent 13rem), radial-gradient(circle at 90% 0%, rgba(255,193,7,.22), transparent 12rem); z-index: -1; }
        .poll-kicker { display: inline-flex; align-items: center; gap: .38rem; width: fit-content; border-radius: 999px; padding: .42rem .68rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.92); font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(14px); }
        .poll-title { margin-top: .9rem; font-size: clamp(1.8rem, 7vw, 3rem); line-height: .95; font-weight: 1000; letter-spacing: -.06em; }
        .poll-subtitle { max-width: 38rem; margin-top: .7rem; color: rgba(255,255,255,.82); font-size: .94rem; font-weight: 750; line-height: 1.45; }
        .poll-meta-row { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
        .poll-meta-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .65rem; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: .72rem; font-weight: 900; }
        .poll-card { overflow: hidden; border-radius: 1.65rem; padding: 1rem; background: rgba(255,255,255,.96); border: 1px solid rgba(0,122,255,.1); box-shadow: 0 18px 42px rgba(15,23,42,.09); }
        .poll-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: .95rem; }
        .poll-card-title { color: #0f172a; font-size: 1.25rem; font-weight: 1000; letter-spacing: -.035em; line-height: 1.05; }
        .poll-card-note { color: #64748b; font-size: .82rem; font-weight: 700; margin-top: .3rem; }
        .poll-option-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; }
        .poll-option-card { position: relative; display: flex; align-items: flex-start; gap: .85rem; padding: .9rem; border-radius: 1.2rem; background: #f8fafc; border: 1px solid rgba(15,23,42,.08); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
        .poll-option-card:hover, .poll-option-card.selected { transform: translateY(-1px); background: #fff; border-color: rgba(0,122,255,.28); box-shadow: 0 14px 30px rgba(15,23,42,.08); }
        .poll-option-card.selected::after { content: ''; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 2px rgba(0,122,255,.36); pointer-events: none; }
        .poll-option-icon { width: 2.7rem; height: 2.7rem; flex: 0 0 auto; border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 12px 25px rgba(15,23,42,.13); }
        .poll-option-icon.health { background: linear-gradient(135deg, #ef4444, #fb7185); }
        .poll-option-icon.infra { background: linear-gradient(135deg, #f97316, #facc15); }
        .poll-option-icon.education { background: linear-gradient(135deg, #22c55e, #14b8a6); }
        .poll-option-icon.security { background: linear-gradient(135deg, #111827, #64748b); }
        .poll-option-icon.culture { background: linear-gradient(135deg, #8b5cf6, #ec4899); }
        .poll-option-icon.rural { background: linear-gradient(135deg, #16a34a, #84cc16); }
        .poll-option-title { display: block; color: #0f172a; font-size: .96rem; font-weight: 950; line-height: 1.1; }
        .poll-option-desc { display: block; color: #64748b; font-size: .76rem; font-weight: 700; line-height: 1.35; margin-top: .22rem; }
        .poll-radio-dot { margin-left: auto; width: 1.25rem; height: 1.25rem; border-radius: 999px; border: 2px solid #cbd5e1; background: #fff; flex: 0 0 auto; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
        .poll-option-card.selected .poll-radio-dot { border-color: #007aff; background: #007aff; box-shadow: inset 0 0 0 4px #fff; }
        .poll-submit-btn { width: 100%; min-height: 3.25rem; margin-top: 1rem; border-radius: 1.1rem; color: #fff; background: linear-gradient(135deg, #007aff, #00a3ff); font-weight: 1000; display: flex; align-items: center; justify-content: center; gap: .5rem; box-shadow: 0 16px 34px rgba(0,122,255,.22); }
        .poll-submit-btn:disabled { opacity: .68; cursor: not-allowed; }
        .poll-feedback { display: none; margin-top: .85rem; border-radius: 1rem; padding: .72rem .85rem; font-size: .8rem; font-weight: 850; }
        .poll-feedback.show { display: block; }
        .poll-feedback.error { color: #991b1b; background: #fef2f2; border: 1px solid rgba(239,68,68,.16); }
        .poll-feedback.success { color: #047857; background: #ecfdf5; border: 1px solid rgba(16,185,129,.16); }
        .poll-voted-banner { display: none; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; border-radius: 1.2rem; padding: .85rem; color: #065f46; background: linear-gradient(135deg, #ecfdf5, #f0fdfa); border: 1px solid rgba(16,185,129,.16); }
        .poll-voted-banner.show { display: flex; }
        .poll-result-row { display: grid; gap: .45rem; }
        .poll-result-top { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
        .poll-result-label { color: #0f172a; font-size: .86rem; font-weight: 950; }
        .poll-result-count { color: #475569; font-size: .78rem; font-weight: 900; white-space: nowrap; }
        .poll-result-track { width: 100%; height: .72rem; border-radius: 999px; overflow: hidden; background: #e2e8f0; }
        .poll-result-fill { height: 100%; min-width: .35rem; border-radius: inherit; background: linear-gradient(90deg, #007aff, #00c2ff); transition: width .75s cubic-bezier(.22,1,.36,1); }
        .poll-actions-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
        .poll-secondary-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border-radius: 999px; padding: .7rem .9rem; color: #007aff; background: #eff6ff; border: 1px solid rgba(0,122,255,.12); font-size: .8rem; font-weight: 950; }
        .poll-total-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .65rem; border-radius: 999px; color: #075985; background: #e0f2fe; border: 1px solid rgba(14,165,233,.18); font-size: .72rem; font-weight: 950; }
        .upanema-mini-icon.poll { background: linear-gradient(135deg, #007aff, #22c55e); }
        @media (min-width: 768px) { .poll-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
        @media (max-width: 640px) { .poll-hero-card { border-radius: 1.45rem; } .poll-card { border-radius: 1.35rem; } .poll-title { font-size: 2rem; } }


        /* === Painel oficial / Firebase === */
        .sync-badge { display:inline-flex; align-items:center; gap:.35rem; padding:.4rem .65rem; border-radius:999px; font-size:.72rem; font-weight:900; background:rgba(16,185,129,.12); color:#047857; }
        .admin-gradient-card { position:relative; overflow:hidden; border-radius:1.6rem; background:linear-gradient(135deg,#061526,#0f62fe 55%,#00b7ff); color:#fff; box-shadow:0 24px 60px rgba(0,62,145,.25); }
        .admin-gradient-card::after { content:''; position:absolute; width:13rem; height:13rem; border-radius:999px; right:-5rem; top:-6rem; background:rgba(255,255,255,.18); filter:blur(.5px); }
        .request-card { border-radius:1.35rem; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 14px 32px rgba(15,23,42,.08); overflow:hidden; }
        .request-card-header { background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%); }
        .request-status-chip { display:inline-flex; align-items:center; gap:.35rem; border-radius:999px; padding:.35rem .65rem; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
        .status-novo { background:#eff6ff; color:#1d4ed8; }
        .status-recebido { background:#f5f3ff; color:#6d28d9; }
        .status-analise { background:#fef9c3; color:#a16207; }
        .status-andamento { background:#fff7ed; color:#c2410c; }
        .status-resolvido { background:#ecfdf5; color:#047857; }
        .status-cancelado { background:#fef2f2; color:#b91c1c; }
        .admin-select { background:#f8fafc; border:1px solid rgba(15,23,42,.12); border-radius:.9rem; padding:.65rem .8rem; font-weight:800; width:100%; }
        .request-data-grid { display:grid; grid-template-columns:1fr; gap:.45rem; }
        .request-data-item { background:#f8fafc; border-radius:.9rem; padding:.6rem .7rem; font-size:.78rem; color:#334155; }
        .request-data-item strong { color:#0f172a; display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; }
        .status-flow-box { border:1px solid rgba(15,23,42,.08); background:#f8fafc; border-radius:1.1rem; padding:.8rem; }
        .status-flow-row { display:flex; gap:.45rem; overflow-x:auto; padding-bottom:.15rem; -ms-overflow-style:none; scrollbar-width:none; }
        .status-flow-row::-webkit-scrollbar { display:none; }
        .status-step { flex:0 0 auto; display:inline-flex; align-items:center; gap:.35rem; padding:.55rem .7rem; border-radius:999px; background:#fff; color:#64748b; border:1px solid rgba(15,23,42,.08); font-size:.72rem; font-weight:900; white-space:nowrap; }
        .status-step.active { color:#fff; background:linear-gradient(135deg,#007aff,#00a3ff); box-shadow:0 10px 24px rgba(0,122,255,.22); }
        .status-step.done { color:#0f172a; background:#e8f6ff; border-color:rgba(0,122,255,.16); }
        .status-note-box { border-left:4px solid #007aff; background:#f8fbff; border-radius:1rem; padding:.8rem; color:#334155; font-size:.85rem; }
        .status-timeline { display:grid; gap:.55rem; margin-top:.8rem; }
        .status-timeline-item { display:flex; gap:.65rem; align-items:flex-start; }
        .status-timeline-dot { width:.7rem; height:.7rem; border-radius:999px; background:#007aff; margin-top:.38rem; box-shadow:0 0 0 4px rgba(0,122,255,.12); flex-shrink:0; }
        .status-timeline-body { background:#f8fafc; border-radius:.9rem; padding:.65rem .75rem; flex:1; border:1px solid rgba(15,23,42,.06); }
        .admin-action-btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; border-radius:1rem; padding:.72rem .9rem; font-weight:950; transition:transform .2s ease, box-shadow .2s ease; }
        .admin-action-btn:hover { transform:translateY(-1px); box-shadow:0 12px 26px rgba(15,23,42,.10); }
        .admin-action-btn:active { transform:scale(.98); }
        .admin-whatsapp-primary { color:#fff; background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 14px 30px rgba(22,163,74,.20); }
        .admin-print-primary { color:#0f172a; background:linear-gradient(135deg,#f8fafc,#e2e8f0); border:1px solid rgba(15,23,42,.08); }
        .admin-citizen-whatsapp { color:#047857; background:#ecfdf5; border:1px solid rgba(16,185,129,.16); }
        .admin-config-btn { color:#075985; background:#e0f2fe; border:1px solid rgba(14,165,233,.18); }
        .status-modal-backdrop { position:fixed; inset:0; z-index:9999; background:rgba(15,23,42,.48); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; padding:1rem; }
        .status-modal-card { width:min(94vw,520px); background:#fff; border-radius:1.6rem; box-shadow:0 30px 90px rgba(15,23,42,.35); overflow:hidden; animation:statusModalIn .22s ease both; }
        @keyframes statusModalIn { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
        .status-modal-textarea { width:100%; min-height:118px; resize:vertical; background:#f8fafc; border:1px solid rgba(15,23,42,.12); border-radius:1rem; padding:.9rem; outline:none; font-weight:700; color:#0f172a; }
        .status-modal-textarea:focus { border-color:rgba(0,122,255,.45); box-shadow:0 0 0 4px rgba(0,122,255,.12); }
        @media (min-width: 768px) { .request-data-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }


        /* === Tempo Agora / Upanema ON === */
        .weather-on-shell {
            position: relative;
            overflow: hidden;
            min-height: calc(100vh - 4.25rem);
            background:
                radial-gradient(circle at 12% 4%, rgba(0,122,255,.18), transparent 22rem),
                radial-gradient(circle at 92% 10%, rgba(255,193,7,.20), transparent 20rem),
                linear-gradient(180deg, #f8fbff 0%, #eef6ff 44%, #f7f8fb 100%);
        }
        .weather-on-hero {
            position: relative;
            overflow: hidden;
            border-radius: 2rem;
            color: #fff;
            background:
                radial-gradient(circle at 18% 16%, rgba(255,255,255,.28), transparent 11rem),
                radial-gradient(circle at 92% 0%, rgba(255,193,7,.34), transparent 15rem),
                linear-gradient(135deg, #042657 0%, #007aff 54%, #00b8ff 100%);
            box-shadow: 0 25px 65px rgba(0, 92, 200, .22);
        }
        .weather-on-hero::before {
            content: '';
            position: absolute;
            inset: 0;
            background-image: radial-gradient(rgba(255,255,255,.22) 1px, transparent 1px);
            background-size: 24px 24px;
            opacity: .18;
        }
        .weather-on-hero::after {
            content: '';
            position: absolute;
            width: 18rem;
            height: 18rem;
            right: -7rem;
            bottom: -8rem;
            border-radius: 999px;
            background: rgba(255,255,255,.14);
            animation: weatherFloat 7s ease-in-out infinite;
        }
        @keyframes weatherFloat { 0%,100%{ transform: translate3d(0,0,0) scale(1); } 50%{ transform: translate3d(-.5rem,-.8rem,0) scale(1.06); } }
        .weather-on-pill {
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            padding: .45rem .75rem;
            border-radius: 999px;
            background: rgba(255,255,255,.16);
            border: 1px solid rgba(255,255,255,.22);
            color: #fff;
            font-size: .74rem;
            font-weight: 950;
            letter-spacing: .06em;
            text-transform: uppercase;
            backdrop-filter: blur(14px);
        }
        .weather-on-card {
            border-radius: 1.45rem;
            background: rgba(255,255,255,.92);
            border: 1px solid rgba(0,122,255,.08);
            box-shadow: 0 18px 45px rgba(15,23,42,.09);
            backdrop-filter: blur(18px);
        }
        .weather-on-mini-card {
            border-radius: 1.1rem;
            background: #f8fbff;
            border: 1px solid rgba(15,23,42,.06);
            padding: .85rem;
        }
        .weather-detail-icon {
            width: 2.4rem;
            height: 2.4rem;
            border-radius: .95rem;
            display: flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 auto;
            background: rgba(0,122,255,.10);
            color: #007aff;
        }
        .weather-forecast-day {
            border-radius: 1rem;
            border: 1px solid rgba(15,23,42,.06);
            background: linear-gradient(180deg, #fff, #f8fbff);
            transition: transform .2s ease, box-shadow .2s ease;
        }
        .weather-forecast-day:active { transform: scale(.98); }
        .weather-forecast-day.today {
            border-color: rgba(0,122,255,.25);
            background: linear-gradient(180deg, rgba(0,122,255,.10), #fff);
            box-shadow: 0 12px 25px rgba(0,122,255,.10);
        }
        .weather-rain-panel {
            border-radius: 1.65rem;
            overflow: hidden;
            background: linear-gradient(135deg, #07254d, #007aff 68%, #19c3ff);
            color: white;
            box-shadow: 0 22px 55px rgba(0, 92, 200, .20);
        }
        .weather-community-card {
            border-radius: 1rem;
            background: rgba(255,255,255,.94);
            border: 1px solid rgba(226,232,240,.9);
            padding: .8rem;
            box-shadow: 0 10px 25px rgba(15,23,42,.06);
        }
        .weather-community-card strong {
            display: block;
            color: #0f172a;
            font-size: .88rem;
            line-height: 1.12;
        }
        .weather-mm-muted {
            color: #64748b;
            font-size: .78rem;
            font-weight: 800;
        }
        .weather-icon-soft { animation: weatherSoftPulse 2.8s ease-in-out infinite; }
        @keyframes weatherSoftPulse { 0%,100%{ transform: scale(1); opacity: .95; } 50%{ transform: scale(1.05); opacity: 1; } }
        .weather-modal-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.55); backdrop-filter: blur(12px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 1rem; }
        .weather-modal-backdrop.hidden { display: none !important; }
        .weather-modal-card { width: min(92vw, 390px); border-radius: 1.65rem; background: #fff; box-shadow: 0 30px 90px rgba(15,23,42,.30); overflow: hidden; animation: weatherModalIn .22s ease both; }
        @keyframes weatherModalIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
        @media (max-width: 640px) {
            .weather-on-hero { border-radius: 1.55rem; }
            .weather-on-temp { font-size: 4.5rem !important; }
            .weather-on-card { border-radius: 1.25rem; }
        }


        /* === Pacote Premium Total: Painel da Cidade / Home viva / Microinterações === */
        .ios-card, .home-news-bar, .upanema-mini-card, .city-live-card, .city-panel-quick-card, .city-community-card { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease; }
        .ios-card:hover, .city-live-card:hover, .city-panel-quick-card:hover, .city-community-card:hover { transform: translateY(-2px); box-shadow: 0 22px 55px rgba(15, 23, 42, .12); }
        .premium-section-label { display: inline-flex; align-items: center; gap: .4rem; width: fit-content; color: #075985; background: rgba(224,242,254,.92); border: 1px solid rgba(14,165,233,.18); border-radius: 999px; padding: .4rem .68rem; font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 10px 24px rgba(14,165,233,.08); }
        .premium-section-title { color: #0f172a; font-size: clamp(1.45rem, 5vw, 2rem); line-height: 1.02; font-weight: 1000; letter-spacing: -.055em; }
        .premium-section-subtitle { color: #64748b; font-size: .88rem; font-weight: 750; line-height: 1.42; margin-top: .35rem; }
        .city-dashboard-section { position: relative; z-index: 39; margin-top: -1.85rem; margin-bottom: 1.65rem; }
        .city-dashboard-shell { position: relative; overflow: hidden; border-radius: 2rem; padding: 1rem; color: #fff; background: linear-gradient(135deg, #061d44 0%, #006fff 54%, #00b8ff 100%); box-shadow: 0 24px 62px rgba(0, 95, 215, .24); isolation: isolate; }
        .city-dashboard-shell::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 18% 10%, rgba(255,193,7,.32), transparent 14rem), radial-gradient(circle at 88% 4%, rgba(255,255,255,.24), transparent 13rem), linear-gradient(120deg, transparent 0 38%, rgba(255,255,255,.10) 38.5% 39.5%, transparent 40% 100%); z-index: -1; }
        .city-dashboard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .25rem .15rem .9rem; }
        .city-dashboard-kicker { display: inline-flex; align-items: center; gap: .38rem; border-radius: 999px; padding: .42rem .68rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.92); font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(14px); }
        .city-dashboard-title { margin-top: .7rem; font-size: clamp(1.75rem, 8vw, 3.1rem); line-height: .95; font-weight: 1000; letter-spacing: -.06em; }
        .city-dashboard-subtitle { margin-top: .45rem; color: rgba(255,255,255,.78); font-size: .86rem; font-weight: 800; }
        .city-dashboard-status { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .42rem; border-radius: 999px; padding: .55rem .75rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.24); color: #fff; font-size: .72rem; font-weight: 950; backdrop-filter: blur(14px); }
        .city-dashboard-status span { width: .52rem; height: .52rem; border-radius: 999px; background: #34d399; box-shadow: 0 0 0 5px rgba(52,211,153,.14); animation: premiumPulse 1.4s ease-in-out infinite; }
        .city-panel-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: .8rem; }
        .city-live-card { position: relative; overflow: hidden; min-height: 10.9rem; border-radius: 1.55rem; padding: 1rem; background: rgba(255,255,255,.96); color: #0f172a; border: 1px solid rgba(255,255,255,.72); box-shadow: 0 18px 45px rgba(15,23,42,.15); text-align: left; }
        .city-live-card::after { content: ''; position: absolute; width: 9rem; height: 9rem; right: -4rem; top: -4.7rem; border-radius: 999px; background: rgba(0,122,255,.09); }
        .city-live-card.dark { color: #fff; background: linear-gradient(135deg, rgba(3,32,74,.96), rgba(0,122,255,.92)); border-color: rgba(255,255,255,.24); }
        .city-live-card.dark::after { background: rgba(255,255,255,.16); }
        .city-live-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
        .city-live-icon { width: 2.75rem; height: 2.75rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #007aff, #00c2ff); box-shadow: 0 12px 28px rgba(0,122,255,.22); }
        .city-live-icon.yellow { background: linear-gradient(135deg, #f59e0b, #facc15); color: #0f172a; }
        .city-live-icon.green { background: linear-gradient(135deg, #10b981, #22c55e); }
        .city-live-label { position: relative; z-index: 1; color: #64748b; font-size: .68rem; font-weight: 950; letter-spacing: .09em; text-transform: uppercase; }
        .city-live-card.dark .city-live-label { color: rgba(255,255,255,.68); }
        .city-live-value { position: relative; z-index: 1; margin-top: .75rem; font-size: clamp(1.85rem, 8vw, 3.2rem); line-height: .88; font-weight: 1000; letter-spacing: -.07em; }
        .city-live-desc { position: relative; z-index: 1; margin-top: .4rem; color: #64748b; font-size: .78rem; line-height: 1.35; font-weight: 800; }
        .city-live-card.dark .city-live-desc { color: rgba(255,255,255,.75); }
        .city-live-cta { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .32rem; margin-top: .75rem; color: #007aff; font-size: .75rem; font-weight: 1000; }
        .city-live-card.dark .city-live-cta { color: #fff; }
        .city-side-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
        .city-panel-mini { min-height: 10.9rem; }
        .city-latest-wide { display: block; width: 100%; min-height: 8.8rem; margin-top: .8rem; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,248,255,.95)); }
        .city-latest-wide .city-live-value { max-width: 44rem; font-size: clamp(1.45rem, 4.5vw, 2.2rem) !important; line-height: 1.04 !important; letter-spacing: -.05em !important; }
        .city-latest-wide .city-live-desc { max-width: 44rem; }
        .city-trust-row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .58rem; margin-top: .85rem; }
        .city-trust-item { border-radius: 1.1rem; padding: .75rem; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); color: #fff; backdrop-filter: blur(14px); }
        .city-trust-item strong { display: block; font-size: 1.25rem; line-height: 1; font-weight: 1000; letter-spacing: -.04em; }
        .city-trust-item span { display: block; margin-top: .25rem; color: rgba(255,255,255,.72); font-size: .62rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
        .quick-access-premium { padding-top: .5rem !important; }
        .quick-access-premium .ios-card { background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.92)); border: 1px solid rgba(0,122,255,.08); }
        .quick-access-premium .grid { gap: .9rem !important; }
        .home-news-editorial { margin-top: .5rem; }
        .home-news-editorial .home-news-header { margin-bottom: .95rem; }
        .home-news-editorial #news-container { padding-top: .15rem; }
        .home-news-editorial .home-news-bar.home-news-featured { min-height: 10.4rem; background: linear-gradient(135deg, rgba(5,29,66,.98), rgba(0,122,255,.94)); color: #fff; border-color: rgba(255,255,255,.20); }
        .home-news-editorial .home-news-bar.home-news-featured .home-news-headline { color: #fff; font-size: 1.06rem; }
        .home-news-editorial .home-news-bar.home-news-featured .home-news-date, .home-news-editorial .home-news-bar.home-news-featured .home-news-read { color: rgba(255,255,255,.82); }
        .home-news-editorial .home-news-bar.home-news-featured .home-news-category { background: rgba(255,255,255,.18); color: #fff; }
        .home-news-editorial .home-news-bar.home-news-featured .home-news-thumb { flex-basis: 8.4rem; }
        .city-community-section { margin-bottom: 2.1rem; }
        .city-community-shell { position: relative; overflow: hidden; border-radius: 1.8rem; padding: 1rem; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(240,253,250,.92)); border: 1px solid rgba(16,185,129,.12); box-shadow: 0 18px 45px rgba(15,23,42,.09); }
        .city-community-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
        .city-community-card { border-radius: 1.25rem; padding: .9rem; background: #fff; border: 1px solid rgba(15,23,42,.06); text-align: left; box-shadow: 0 12px 28px rgba(15,23,42,.06); }
        .city-community-card .icon { width: 2.45rem; height: 2.45rem; border-radius: .9rem; display: flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #16a34a, #22c55e); box-shadow: 0 12px 24px rgba(16,185,129,.18); }
        .city-community-card h3 { margin-top: .7rem; color: #0f172a; font-size: .92rem; line-height: 1.08; font-weight: 1000; }
        .city-community-card p { margin-top: .28rem; color: #64748b; font-size: .74rem; line-height: 1.32; font-weight: 750; }
        .home-instagram-card { margin-top: .25rem; border-radius: 1.7rem; padding: 1rem; background: linear-gradient(135deg, #fff, #f8fbff); border: 1px solid rgba(0,122,255,.08); box-shadow: 0 16px 38px rgba(15,23,42,.08); }
        .premium-page-btn { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; border-radius: 999px; padding: .68rem .9rem; color: #fff; background: linear-gradient(135deg, #007aff, #00a3ff); box-shadow: 0 14px 30px rgba(0,122,255,.22); font-size: .8rem; font-weight: 1000; }
        .map-dashboard-card { background: radial-gradient(circle at 18% 10%, rgba(255,193,7,.18), transparent 12rem), linear-gradient(135deg, #031b3d, #007aff 58%, #19c6ff) !important; }
        @media (max-width: 768px) {
            .city-dashboard-section { margin-top: -1.45rem; }
            .city-dashboard-shell { border-radius: 1.65rem; padding: .85rem; }
            .city-dashboard-head { padding-bottom: .75rem; }
            .city-dashboard-title { font-size: 1.9rem; }
            .city-panel-grid { grid-template-columns: 1fr; }
            .city-side-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
            .city-live-card { min-height: 9.2rem; border-radius: 1.35rem; }
            .city-live-value { font-size: 2.25rem; }
            .city-trust-row { grid-template-columns: repeat(2, minmax(0,1fr)); }
            .city-community-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        }
        @media (max-width: 420px) {
            .city-dashboard-head { flex-direction: column; }
            .city-dashboard-status { align-self: flex-start; }
            .city-side-grid { gap: .65rem; }
            .city-live-card { padding: .82rem; }
            .city-live-icon { width: 2.35rem; height: 2.35rem; border-radius: .85rem; }
            .city-live-value { font-size: 2rem; }
            .city-live-desc { font-size: .72rem; }
            .city-trust-item { padding: .65rem; }
            .city-community-grid { grid-template-columns: 1fr; }
            .home-news-editorial .home-news-bar.home-news-featured .home-news-thumb { flex-basis: 6.2rem; }
        }





        /* === Ajuste fino: hero sem sobrepor o Painel da Cidade === */
        #inicio.premium-hero { min-height: 18rem; padding: 1.45rem 0 3.4rem; }
        #inicio .hero-subtitle { max-width: min(31rem, calc(100vw - 2.25rem)); line-height: 1.34; font-weight: 800; color: rgba(255,255,255,.9); }
        @media (max-width: 640px) {
            #inicio.premium-hero { height: 18.3rem !important; min-height: 18.3rem !important; align-items: flex-start; padding-top: 2rem; padding-bottom: 4.6rem; }
            #inicio .hero-badge { margin-bottom: .65rem !important; }
            #inicio .premium-hero-title span { font-size: 2.95rem !important; }
            #inicio .premium-hero-title strong { font-size: 2.65rem !important; }
            #inicio .hero-subtitle { font-size: .84rem !important; line-height: 1.3; max-width: 20.5rem; margin-top: .55rem; }
            .city-dashboard-section { margin-top: -1rem; }
        }
        @media (max-width: 380px) {
            #inicio.premium-hero { height: 18.9rem !important; min-height: 18.9rem !important; }
            #inicio .premium-hero-title span { font-size: 2.65rem !important; }
            #inicio .premium-hero-title strong { font-size: 2.42rem !important; }
            #inicio .hero-subtitle { max-width: 18.3rem; }
        }

        /* === Perfil Premium / Cidadão ON === */
        .profile-dashboard-shell {
            position: relative;
            overflow: hidden;
            border-radius: 1.75rem;
            padding: 1rem;
            background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,248,255,.94));
            border: 1px solid rgba(0,122,255,.13);
            box-shadow: 0 22px 55px rgba(15,23,42,.10);
        }
        .profile-dashboard-shell::before {
            content: '';
            position: absolute;
            width: 15rem;
            height: 15rem;
            right: -7rem;
            top: -8rem;
            border-radius: 999px;
            background: radial-gradient(circle, rgba(0,122,255,.16), transparent 68%);
        }
        .profile-dashboard-top {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 1rem;
            padding: .35rem .2rem 1rem;
        }
        .profile-dashboard-avatar {
            width: 3.75rem;
            height: 3.75rem;
            border-radius: 1.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 1.25rem;
            font-weight: 1000;
            letter-spacing: -.04em;
            background: linear-gradient(135deg, #007aff, #00b7ff);
            box-shadow: 0 16px 34px rgba(0,122,255,.28);
            flex: 0 0 auto;
        }
        .profile-dashboard-kicker {
            display: inline-flex;
            align-items: center;
            gap: .35rem;
            border-radius: 999px;
            padding: .36rem .62rem;
            background: rgba(224,242,254,.9);
            color: #0369a1;
            font-size: .66rem;
            font-weight: 950;
            letter-spacing: .08em;
            text-transform: uppercase;
        }
        .profile-dashboard-name {
            margin-top: .55rem;
            color: #0f172a;
            font-size: clamp(1.55rem, 6vw, 2.25rem);
            line-height: 1;
            font-weight: 1000;
            letter-spacing: -.055em;
        }
        .profile-dashboard-status {
            margin-top: .45rem;
            color: #64748b;
            font-size: .85rem;
            font-weight: 800;
            line-height: 1.35;
        }
        .profile-dashboard-sync {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            gap: .4rem;
            border-radius: 999px;
            padding: .52rem .72rem;
            background: rgba(16,185,129,.10);
            color: #047857;
            border: 1px solid rgba(16,185,129,.16);
            font-size: .72rem;
            font-weight: 950;
            white-space: nowrap;
        }
        .profile-dashboard-info-grid {
            position: relative;
            z-index: 1;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: .7rem;
        }
        .profile-info-card,
        .profile-stat-card,
        .profile-last-card {
            border-radius: 1.25rem;
            background: rgba(255,255,255,.94);
            border: 1px solid rgba(226,232,240,.86);
            box-shadow: 0 12px 30px rgba(15,23,42,.06);
        }
        .profile-info-card {
            padding: .85rem;
            min-width: 0;
        }
        .profile-info-card span,
        .profile-stat-card span,
        .profile-last-card span {
            display: flex;
            align-items: center;
            gap: .35rem;
            color: #64748b;
            font-size: .68rem;
            font-weight: 950;
            letter-spacing: .06em;
            text-transform: uppercase;
        }
        .profile-info-card strong {
            display: block;
            margin-top: .35rem;
            color: #0f172a;
            font-size: .88rem;
            line-height: 1.2;
            font-weight: 900;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .profile-stat-grid {
            position: relative;
            z-index: 1;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: .7rem;
            margin-top: .8rem;
        }
        .profile-stat-card {
            padding: .9rem;
        }
        .profile-stat-card strong {
            display: block;
            margin-top: .45rem;
            color: #0f172a;
            font-size: 1.5rem;
            line-height: 1;
            font-weight: 1000;
            letter-spacing: -.05em;
        }
        .profile-last-card {
            position: relative;
            z-index: 1;
            margin-top: .8rem;
            padding: .95rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: .8rem;
            background: linear-gradient(135deg, #061d44, #007aff 70%, #00b8ff);
            color: #fff;
            border-color: rgba(255,255,255,.20);
            overflow: hidden;
        }
        .profile-last-card::after {
            content: '';
            position: absolute;
            width: 9rem;
            height: 9rem;
            border-radius: 999px;
            right: -4rem;
            top: -4rem;
            background: rgba(255,255,255,.14);
        }
        .profile-last-card > * { position: relative; z-index: 1; }
        .profile-last-card span { color: rgba(255,255,255,.68); }
        .profile-last-card strong {
            display: block;
            margin-top: .35rem;
            font-size: 1.1rem;
            line-height: 1.1;
            font-weight: 1000;
        }
        .profile-last-card p {
            margin-top: .28rem;
            color: rgba(255,255,255,.78);
            font-size: .78rem;
            font-weight: 800;
        }
        .profile-status-pill {
            display: inline-flex;
            align-items: center;
            gap: .38rem;
            border-radius: 999px;
            padding: .48rem .68rem;
            background: rgba(255,255,255,.16);
            border: 1px solid rgba(255,255,255,.20);
            color: #fff;
            font-size: .72rem;
            font-weight: 950;
            white-space: nowrap;
        }
        .profile-action-grid {
            position: relative;
            z-index: 1;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: .65rem;
            margin-top: .8rem;
        }
        .profile-action-btn {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: .42rem;
            min-height: 4.7rem;
            border-radius: 1.15rem;
            padding: .75rem .45rem;
            background: rgba(248,250,252,.94);
            color: #0f172a;
            border: 1px solid rgba(226,232,240,.9);
            font-size: .72rem;
            line-height: 1.08;
            font-weight: 950;
            text-align: center;
            transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
        }
        .profile-action-btn:active { transform: scale(.98); }
        .profile-action-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(15,23,42,.10); background: #fff; }
        .profile-action-btn i { color: #007aff; }
        @media (max-width: 720px) {
            .profile-dashboard-top { flex-direction: column; }
            .profile-dashboard-sync { align-self: flex-start; }
            .profile-dashboard-info-grid { grid-template-columns: 1fr; }
            .profile-stat-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
            .profile-action-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
            .profile-last-card { align-items: flex-start; flex-direction: column; }
            .profile-status-pill { white-space: normal; }
        }
        @media (max-width: 380px) {
            .profile-stat-card { padding: .75rem .55rem; }
            .profile-stat-card strong { font-size: 1.25rem; }
            .profile-stat-card span { font-size: .6rem; }
        }

        /* === Busca Global Premium / Upanema ON === */
        .global-search-backdrop {
            position: fixed;
            inset: 0;
            z-index: 9998;
            display: none;
            align-items: flex-start;
            justify-content: center;
            padding: calc(1rem + env(safe-area-inset-top, 0px)) 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
            background: rgba(2, 8, 23, .48);
            backdrop-filter: blur(18px);
            -webkit-backdrop-filter: blur(18px);
        }
        .global-search-backdrop.active { display: flex; }
        .global-search-panel {
            width: min(100%, 45rem);
            max-height: min(86vh, 48rem);
            overflow: hidden;
            border-radius: 2rem;
            background: rgba(255,255,255,.96);
            border: 1px solid rgba(255,255,255,.78);
            box-shadow: 0 35px 110px rgba(15, 23, 42, .35);
            animation: globalSearchIn .24s cubic-bezier(.22,1,.36,1) both;
        }
        @keyframes globalSearchIn { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
        .global-search-hero {
            position: relative;
            overflow: hidden;
            padding: 1.1rem 1.1rem 1rem;
            background:
                radial-gradient(circle at 14% 5%, rgba(255, 214, 10, .35), transparent 14rem),
                radial-gradient(circle at 95% 0%, rgba(255,255,255,.28), transparent 10rem),
                linear-gradient(135deg, #0058cc, #007aff 52%, #13c6ff);
            color: #fff;
        }
        .global-search-hero::after {
            content: '';
            position: absolute;
            inset: 0;
            background-image: radial-gradient(rgba(255,255,255,.18) 1px, transparent 1px);
            background-size: 20px 20px;
            opacity: .25;
            pointer-events: none;
        }
        .global-search-head { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: .9rem; margin-bottom: 1rem; }
        .global-search-title { font-size: 1.25rem; line-height: 1.1; font-weight: 1000; letter-spacing: -.035em; }
        .global-search-subtitle { margin-top: .25rem; color: rgba(255,255,255,.78); font-size: .82rem; font-weight: 750; }
        .global-search-close {
            width: 2.55rem;
            height: 2.55rem;
            border-radius: 1rem;
            background: rgba(255,255,255,.16);
            border: 1px solid rgba(255,255,255,.20);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            flex-shrink: 0;
            transition: transform .18s ease, background .18s ease;
        }
        .global-search-close:active { transform: scale(.96); }
        .global-search-input-shell {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: center;
            gap: .65rem;
            background: rgba(255,255,255,.95);
            color: #0f172a;
            border-radius: 1.25rem;
            padding: .35rem .55rem .35rem .9rem;
            box-shadow: 0 18px 45px rgba(0, 52, 132, .20);
        }
        .global-search-input-shell i { color: #007aff; flex-shrink: 0; }
        #global-search-input {
            width: 100%;
            min-height: 3rem;
            background: transparent !important;
            border: 0 !important;
            box-shadow: none !important;
            padding: .55rem .2rem;
            font-weight: 900;
            color: #0f172a;
            outline: none;
        }
        #global-search-input::placeholder { color: #94a3b8; font-weight: 800; }
        .global-search-body { padding: 1rem; overflow-y: auto; max-height: calc(min(86vh, 48rem) - 10.8rem); }
        .global-search-chips { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .65rem; margin-bottom: .55rem; -ms-overflow-style: none; scrollbar-width: none; }
        .global-search-chips::-webkit-scrollbar { display: none; }
        .global-search-chip {
            flex: 0 0 auto;
            border: 0;
            border-radius: 999px;
            padding: .58rem .85rem;
            background: #eff6ff;
            color: #075985;
            font-size: .76rem;
            font-weight: 950;
            display: inline-flex;
            align-items: center;
            gap: .35rem;
        }
        .global-search-results { display: grid; gap: .62rem; }
        .global-search-result {
            width: 100%;
            text-align: left;
            display: flex;
            align-items: center;
            gap: .85rem;
            padding: .85rem;
            border-radius: 1.2rem;
            background: #fff;
            border: 1px solid rgba(226,232,240,.9);
            box-shadow: 0 10px 26px rgba(15,23,42,.06);
            transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
        }
        .global-search-result:hover { transform: translateY(-1px); box-shadow: 0 15px 32px rgba(15,23,42,.10); border-color: rgba(0,122,255,.22); }
        .global-search-result:active { transform: scale(.99); }
        .global-result-icon {
            width: 3rem;
            height: 3rem;
            border-radius: 1.05rem;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            background: linear-gradient(135deg, #007aff, #00a3ff);
            flex: 0 0 auto;
            box-shadow: 0 12px 24px rgba(0,122,255,.20);
        }
        .global-result-icon.green { background: linear-gradient(135deg, #16a34a, #22c55e); box-shadow: 0 12px 24px rgba(22,163,74,.16); }
        .global-result-icon.orange { background: linear-gradient(135deg, #f59e0b, #f97316); box-shadow: 0 12px 24px rgba(249,115,22,.16); }
        .global-result-icon.red { background: linear-gradient(135deg, #ef4444, #fb7185); box-shadow: 0 12px 24px rgba(239,68,68,.16); }
        .global-result-icon.dark { background: linear-gradient(135deg, #0f172a, #334155); box-shadow: 0 12px 24px rgba(15,23,42,.16); }
        .global-result-content { min-width: 0; flex: 1; }
        .global-result-meta { display: flex; align-items: center; gap: .45rem; color: #007aff; text-transform: uppercase; letter-spacing: .08em; font-size: .62rem; font-weight: 1000; margin-bottom: .2rem; }
        .global-result-title { color: #0f172a; font-size: .98rem; line-height: 1.16; font-weight: 1000; }
        .global-result-desc { margin-top: .22rem; color: #64748b; font-size: .78rem; line-height: 1.25; font-weight: 700; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .global-result-arrow { color: #94a3b8; flex: 0 0 auto; }
        .global-search-empty {
            border-radius: 1.35rem;
            background: linear-gradient(135deg, #f8fafc, #eff6ff);
            border: 1px dashed rgba(0,122,255,.25);
            padding: 1.35rem;
            text-align: center;
            color: #475569;
            font-weight: 850;
        }
        @media (max-width: 640px) {
            .global-search-backdrop { padding-left: .75rem; padding-right: .75rem; }
            .global-search-panel { border-radius: 1.65rem; max-height: 88vh; }
            .global-search-title { font-size: 1.12rem; }
            .global-search-body { padding: .8rem; max-height: calc(88vh - 10.8rem); }
            .global-search-result { padding: .72rem; border-radius: 1rem; }
            .global-result-icon { width: 2.65rem; height: 2.65rem; border-radius: .9rem; }
        }



        /* === Saúde ON: página principal e pré-cadastro inteligente === */
        .health-hero-premium {
            position: relative;
            overflow: hidden;
            border-radius: 2rem;
            padding: 1.35rem;
            color: white;
            background:
                radial-gradient(circle at 16% 12%, rgba(255,255,255,.28), transparent 16rem),
                radial-gradient(circle at 86% 10%, rgba(56,189,248,.35), transparent 13rem),
                linear-gradient(135deg, #061526 0%, #006fe6 54%, #18c8ff 100%);
            box-shadow: 0 26px 60px rgba(0, 103, 230, .25);
            border: 1px solid rgba(255,255,255,.22);
        }
        .health-hero-premium::after { content:''; position:absolute; width:13rem; height:13rem; border-radius:999px; right:-5rem; bottom:-6rem; background:rgba(255,255,255,.16); }
        .health-kicker { display:inline-flex; align-items:center; gap:.42rem; padding:.43rem .72rem; border-radius:999px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.18); font-size:.72rem; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
        .health-stat-card { border-radius:1.35rem; padding:1rem; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.17); backdrop-filter:blur(16px); }
        .health-stat-card strong { display:block; font-size:1.65rem; line-height:1; font-weight:950; letter-spacing:-.06em; }
        .health-stat-card span { display:block; margin-top:.38rem; color:rgba(255,255,255,.82); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
        .health-flow-card { border-radius:1.35rem; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 18px 42px rgba(15,23,42,.08); padding:1rem; }
        .health-flow-number { width:2.35rem; height:2.35rem; border-radius:.9rem; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#007aff,#14b8ff); font-weight:950; box-shadow:0 12px 26px rgba(0,122,255,.20); }
        .health-priority-chip { display:inline-flex; align-items:center; gap:.38rem; padding:.45rem .65rem; border-radius:999px; background:#fff7ed; color:#c2410c; font-size:.72rem; font-weight:950; }
        .health-form-shell { border-radius:1.7rem; background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%); border:1px solid rgba(0,122,255,.10); box-shadow:0 22px 52px rgba(15,23,42,.10); overflow:hidden; }
        .health-form-header { padding:1.1rem; background:linear-gradient(135deg, rgba(0,122,255,.10), rgba(14,165,233,.06)); border-bottom:1px solid rgba(0,122,255,.10); }
        .health-input, .health-select, .health-textarea { width:100%; background:#f8fafc !important; border:1px solid rgba(148,163,184,.35) !important; border-radius:1rem !important; padding:.85rem .95rem !important; font-weight:750; color:#0f172a; }
        .health-textarea { min-height: 110px; resize: vertical; }
        .health-label { display:block; font-size:.76rem; font-weight:950; color:#475569; margin-bottom:.38rem; text-transform:uppercase; letter-spacing:.04em; }
        .health-service-option { position:relative; cursor:pointer; border-radius:1.15rem; padding:.82rem; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 10px 24px rgba(15,23,42,.06); transition:all .18s ease; display:flex; gap:.7rem; align-items:flex-start; min-height:5.2rem; }
        .health-service-option:hover { transform:translateY(-1px); box-shadow:0 14px 32px rgba(15,23,42,.10); border-color:rgba(0,122,255,.20); }
        .health-service-option.is-selected { border-color:rgba(0,122,255,.55); background:linear-gradient(135deg,rgba(0,122,255,.10),#fff); box-shadow:0 16px 34px rgba(0,122,255,.13); }
        .health-service-option input { margin-top:.18rem; flex-shrink:0; }
        .health-service-title { display:block; font-size:.9rem; font-weight:950; color:#0f172a; line-height:1.15; }
        .health-service-desc { display:block; margin-top:.28rem; color:#64748b; font-size:.72rem; line-height:1.24; font-weight:750; }
        .health-category-title { display:flex; align-items:center; gap:.45rem; margin:1rem 0 .65rem; color:#0f172a; font-size:.9rem; font-weight:950; text-transform:uppercase; letter-spacing:.06em; }
        .health-quick-action { border-radius:1.1rem; background:#fff; border:1px solid rgba(15,23,42,.08); padding:.85rem; text-align:left; box-shadow:0 12px 26px rgba(15,23,42,.07); transition:all .2s ease; }
        .health-quick-action:hover { transform:translateY(-2px); box-shadow:0 18px 38px rgba(15,23,42,.11); }
        .health-quick-action .icon { width:2.4rem; height:2.4rem; border-radius:.9rem; display:flex; align-items:center; justify-content:center; background:#eff6ff; color:#007aff; }
        .health-platform-shell { border-radius:1.7rem; background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%); border:1px solid rgba(15,23,42,.08); box-shadow:0 20px 48px rgba(15,23,42,.09); padding:1rem; }
        .health-platform-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
        .health-platform-badge { display:inline-flex; align-items:center; gap:.42rem; border-radius:999px; padding:.45rem .72rem; background:#ecfeff; color:#0e7490; border:1px solid rgba(6,182,212,.18); font-size:.72rem; font-weight:950; text-transform:uppercase; letter-spacing:.07em; }
        .health-platform-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
        .health-platform-card { position:relative; overflow:hidden; min-height:10.6rem; border-radius:1.25rem; padding:1rem; text-align:left; background:#fff; border:1px solid rgba(226,232,240,.92); box-shadow:0 12px 28px rgba(15,23,42,.07); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
        .health-platform-card:hover { transform:translateY(-2px); border-color:rgba(0,122,255,.22); box-shadow:0 18px 38px rgba(15,23,42,.11); }
        .health-platform-icon { width:2.65rem; height:2.65rem; border-radius:1rem; display:flex; align-items:center; justify-content:center; margin-bottom:.8rem; color:#fff; background:linear-gradient(135deg,#007aff,#14b8ff); box-shadow:0 12px 24px rgba(0,122,255,.18); }
        .health-platform-card.vaccine .health-platform-icon { background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 12px 24px rgba(22,163,74,.16); }
        .health-platform-card.campaign .health-platform-icon { background:linear-gradient(135deg,#f97316,#facc15); box-shadow:0 12px 24px rgba(249,115,22,.16); }
        .health-platform-card.guidance .health-platform-icon { background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 12px 24px rgba(124,58,237,.14); }
        .health-platform-card.rehab .health-platform-icon { background:linear-gradient(135deg,#ef4444,#fb7185); box-shadow:0 12px 24px rgba(239,68,68,.16); }
        .health-platform-card.route .health-platform-icon { background:linear-gradient(135deg,#0f172a,#475569); box-shadow:0 12px 24px rgba(15,23,42,.16); }
        .health-platform-card h3 { color:#0f172a; font-weight:950; line-height:1.12; font-size:1rem; }
        .health-platform-card p { margin-top:.38rem; color:#64748b; font-size:.82rem; line-height:1.35; font-weight:750; }
        .health-platform-card span { display:inline-flex; align-items:center; gap:.35rem; margin-top:.75rem; color:#007aff; font-size:.75rem; font-weight:950; }
        .health-calendar-board { border-radius:1.55rem; background:#0f172a; color:#fff; padding:1rem; box-shadow:0 20px 44px rgba(15,23,42,.18); }
        .health-calendar-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
        .health-calendar-item { border-radius:1.12rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); padding:.9rem; min-height:8.2rem; }
        .health-calendar-item strong { display:block; font-size:.98rem; line-height:1.15; font-weight:950; }
        .health-calendar-item span { display:inline-flex; align-items:center; gap:.35rem; margin-top:.65rem; border-radius:999px; padding:.35rem .55rem; background:rgba(255,255,255,.12); color:#e0f2fe; font-size:.68rem; font-weight:950; text-transform:uppercase; letter-spacing:.05em; }
        .health-calendar-item p { margin-top:.5rem; color:rgba(255,255,255,.76); font-size:.78rem; line-height:1.35; font-weight:700; }
        .health-orientation-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
        .health-orientation-card { border-radius:1.15rem; background:#fff; border:1px solid rgba(226,232,240,.92); padding:.95rem; box-shadow:0 12px 26px rgba(15,23,42,.06); }
        .health-orientation-card .icon { width:2.3rem; height:2.3rem; border-radius:.85rem; display:flex; align-items:center; justify-content:center; background:#f1f5f9; color:#0f172a; margin-bottom:.7rem; }
        .health-orientation-card h3 { font-size:.92rem; font-weight:950; color:#0f172a; line-height:1.16; }
        .health-orientation-card p { margin-top:.35rem; color:#64748b; font-size:.76rem; line-height:1.35; font-weight:740; }
        .city-health-wide { margin-top:1rem; }
        @media (max-width: 640px) {
            .health-hero-premium { border-radius:1.55rem; padding:1.1rem; }
            .health-stat-card strong { font-size:1.35rem; }
            .health-service-option { min-height:auto; }
            .health-platform-head { display:block; }
            .health-platform-grid, .health-calendar-grid, .health-orientation-grid { grid-template-columns:1fr; }
            .health-platform-card { min-height:auto; }
            .health-calendar-item { min-height:auto; }
        }
        @media (min-width: 641px) and (max-width: 1024px) {
            .health-platform-grid, .health-calendar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
            .health-orientation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
        }





        /* === Admin ON: modo gratuito e backup manual === */
        .admin-free-shell {
            position: relative;
            overflow: hidden;
            border-radius: 1.7rem;
            background:
                radial-gradient(circle at 12% 10%, rgba(0, 122, 255, .15), transparent 18rem),
                radial-gradient(circle at 96% 8%, rgba(34, 197, 94, .13), transparent 16rem),
                #ffffff;
            border: 1px solid rgba(15, 23, 42, .06);
            box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
        }
        .admin-free-badge {
            display: inline-flex;
            align-items: center;
            gap: .4rem;
            border-radius: 999px;
            padding: .45rem .7rem;
            color: #047857;
            background: rgba(16, 185, 129, .12);
            border: 1px solid rgba(16, 185, 129, .16);
            font-size: .72rem;
            font-weight: 950;
            text-transform: uppercase;
            letter-spacing: .07em;
        }
        .admin-free-feature {
            position: relative;
            overflow: hidden;
            border-radius: 1.25rem;
            background: rgba(248, 250, 252, .92);
            border: 1px solid rgba(226, 232, 240, .92);
            padding: 1rem;
        }
        .admin-free-feature strong {
            display: block;
            color: #0f172a;
            font-weight: 950;
            line-height: 1.15;
        }
        .admin-free-feature span {
            display: block;
            margin-top: .25rem;
            color: #64748b;
            font-size: .82rem;
            font-weight: 700;
            line-height: 1.35;
        }
        .admin-free-action {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: .45rem;
            width: 100%;
            border-radius: 1rem;
            padding: .9rem 1rem;
            font-weight: 950;
            transition: transform .2s ease, box-shadow .2s ease;
        }
        .admin-free-action:active { transform: scale(.985); }
        .admin-free-timeline {
            border-left: 4px solid rgba(0, 122, 255, .2);
            padding-left: 1rem;
            display: grid;
            gap: .75rem;
        }
        .admin-free-timeline-item {
            background: #f8fafc;
            border: 1px solid rgba(226, 232, 240, .92);
            border-radius: 1rem;
            padding: .85rem;
        }
        .admin-free-timeline-item p:first-child {
            font-size: .72rem;
            font-weight: 950;
            letter-spacing: .08em;
            text-transform: uppercase;
            color: #007aff;
        }
        .admin-free-timeline-item p:last-child {
            margin-top: .18rem;
            font-size: .88rem;
            font-weight: 750;
            color: #334155;
        }


        /* === Admin ON: login real, gestão e backup manual === */
        .admin-on-login-shell {
            position: relative;
            overflow: hidden;
            border-radius: 1.85rem;
            background:
                radial-gradient(circle at 12% 10%, rgba(255,255,255,.26), transparent 16rem),
                linear-gradient(135deg, #061526 0%, #005dce 52%, #00b7ff 100%);
            color: #fff;
            box-shadow: 0 28px 75px rgba(0, 82, 180, .28);
        }
        .admin-on-login-shell::after {
            content: '';
            position: absolute;
            width: 16rem;
            height: 16rem;
            border-radius: 999px;
            right: -5.5rem;
            top: -6rem;
            background: rgba(255,255,255,.14);
        }
        .admin-on-login-card {
            position: relative;
            z-index: 2;
            border-radius: 1.45rem;
            background: rgba(255,255,255,.96);
            color: #0f172a;
            box-shadow: 0 18px 50px rgba(15,23,42,.18);
        }
        .admin-on-input {
            width: 100%;
            border: 1px solid rgba(148,163,184,.34) !important;
            background: #f8fafc;
            border-radius: 1rem;
            padding: .85rem 1rem;
            font-weight: 800;
            color: #0f172a;
        }
        .admin-on-input:focus {
            background: #fff !important;
            border-color: rgba(0,122,255,.62) !important;
            box-shadow: 0 0 0 4px rgba(0,122,255,.12) !important;
        }
        .admin-on-pill {
            display: inline-flex;
            align-items: center;
            gap: .42rem;
            border-radius: 999px;
            padding: .45rem .72rem;
            font-size: .72rem;
            font-weight: 950;
            letter-spacing: .04em;
            text-transform: uppercase;
            background: rgba(255,255,255,.16);
            color: #e0f2fe;
            border: 1px solid rgba(255,255,255,.2);
            backdrop-filter: blur(14px);
        }
        .admin-on-toolbar {
            border-radius: 1.5rem;
            background: rgba(255,255,255,.92);
            border: 1px solid rgba(0,122,255,.12);
            box-shadow: 0 18px 42px rgba(15,23,42,.08);
        }
        .admin-on-module {
            position: relative;
            overflow: hidden;
            border-radius: 1.45rem;
            background: #fff;
            border: 1px solid rgba(226,232,240,.86);
            box-shadow: 0 14px 34px rgba(15,23,42,.07);
        }
        .admin-on-module::after {
            content:'';
            position:absolute;
            width: 7rem;
            height: 7rem;
            border-radius:999px;
            top:-3.5rem;
            right:-3rem;
            background: rgba(0,122,255,.08);
        }
        .admin-on-metric {
            border-radius: 1.2rem;
            background: rgba(255,255,255,.15);
            border: 1px solid rgba(255,255,255,.18);
            padding: 1rem;
            backdrop-filter: blur(14px);
        }
        .admin-on-backup-box {
            border-radius: 1.55rem;
            background: linear-gradient(135deg, #f8fbff 0%, #ffffff 60%, #eff6ff 100%);
            border: 1px solid rgba(0,122,255,.14);
            box-shadow: 0 18px 42px rgba(15,23,42,.08);
        }
        .admin-on-tab {
            border-radius: 999px;
            padding: .7rem 1rem;
            font-weight: 950;
            font-size: .82rem;
            color: #475569;
            background: #f1f5f9;
            transition: all .2s ease;
        }
        .admin-on-tab.active {
            color: #fff;
            background: linear-gradient(135deg, #007aff, #00a3ff);
            box-shadow: 0 12px 28px rgba(0,122,255,.22);
        }
        .admin-section-view { display: none; }
        .admin-section-view.active { display: block; animation: pageEnter .28s cubic-bezier(.22,1,.36,1); }
        @media (max-width: 640px) {
            .admin-on-login-shell { border-radius: 1.45rem; }
            .admin-on-toolbar { border-radius: 1.25rem; }
            .admin-on-tab { flex: 0 0 auto; }
            #admin-tabs-row { overflow-x: auto; padding-bottom: .2rem; -ms-overflow-style: none; scrollbar-width: none; }
            #admin-tabs-row::-webkit-scrollbar { display: none; }
        }



        /* === Sistema Visual Internacional — Upanema ON === */
        :root {
            --on-blue: #007AFF;
            --on-blue-2: #00A3FF;
            --on-blue-deep: #062A63;
            --on-ink: #101828;
            --on-muted: #667085;
            --on-line: rgba(15, 23, 42, .085);
            --on-card: rgba(255, 255, 255, .94);
            --on-card-strong: #ffffff;
            --on-radius-xl: 1.75rem;
            --on-radius-lg: 1.35rem;
            --on-shadow-soft: 0 14px 40px rgba(16, 24, 40, .08);
            --on-shadow-premium: 0 28px 80px rgba(0, 84, 190, .18);
        }
        html { scroll-behavior: smooth; }
        body {
            background:
                radial-gradient(circle at 18% -6%, rgba(0,122,255,.18), transparent 30rem),
                radial-gradient(circle at 105% 3%, rgba(0,194,255,.14), transparent 28rem),
                linear-gradient(180deg, #f8fbff 0%, #f2f6fb 44%, #eef4fb 100%) !important;
            color: var(--on-ink);
        }
        #main-header {
            background: rgba(0, 122, 255, .88) !important;
            backdrop-filter: blur(22px);
            -webkit-backdrop-filter: blur(22px);
            border-bottom: 1px solid rgba(255,255,255,.16) !important;
            box-shadow: 0 12px 30px rgba(0, 75, 180, .18);
        }
        #main-header nav { height: 4.6rem !important; }
        #header-title { font-weight: 950 !important; letter-spacing: -.04em !important; }
        .page-header {
            background: rgba(255,255,255,.86) !important;
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            box-shadow: 0 10px 28px rgba(15,23,42,.06);
        }
        .ios-card, .request-card, .weather-on-card, .health-service-card, .profile-dashboard-shell, .citizen-login-panel {
            background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.96)) !important;
            border: 1px solid var(--on-line) !important;
            box-shadow: var(--on-shadow-soft) !important;
        }
        .ios-card, .navigate-btn, button, a { transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease, background .22s ease, color .22s ease; }
        .navigate-btn:active, button:active, a:active { transform: scale(.985); }
        input, select, textarea {
            border-radius: 1rem !important;
            background: rgba(255,255,255,.9) !important;
            border: 1px solid rgba(148,163,184,.32) !important;
        }
        input:focus, select:focus, textarea:focus {
            border-color: rgba(0,122,255,.55) !important;
            box-shadow: 0 0 0 4px rgba(0,122,255,.12) !important;
        }
        .premium-section-label, .home-news-kicker, .upanema-now-kicker {
            color: #075985 !important;
            background: rgba(224,242,254,.92) !important;
            border: 1px solid rgba(14,165,233,.18) !important;
            box-shadow: 0 10px 22px rgba(14,165,233,.08) !important;
            backdrop-filter: blur(14px);
        }
        .premium-section-title, .home-news-title, .upanema-now-title {
            font-size: clamp(1.5rem, 5.2vw, 2.18rem) !important;
            line-height: 1 !important;
            letter-spacing: -.06em !important;
            font-weight: 1000 !important;
        }
        .premium-section-subtitle, .upanema-now-subtitle {
            color: #667085 !important;
            font-weight: 780 !important;
        }
        .award-home-container { position: relative; z-index: 3; }
        .award-hero {
            height: 17rem !important;
            min-height: 17rem !important;
            padding: 1.7rem 0 4.25rem !important;
            align-items: flex-start !important;
            background:
                radial-gradient(circle at 18% 5%, rgba(255,220,110,.32), transparent 13rem),
                radial-gradient(circle at 82% 15%, rgba(53,207,255,.30), transparent 14rem),
                linear-gradient(135deg, #04306d 0%, #007aff 48%, #05b6ff 100%) !important;
        }
        .award-hero::after {
            content: '';
            position: absolute;
            inset: auto 0 0;
            height: 42%;
            background: linear-gradient(180deg, transparent, rgba(248,251,255,.10));
            pointer-events: none;
        }
        .award-hero-glow {
            position: absolute;
            width: 18rem;
            height: 18rem;
            right: -8rem;
            top: -6rem;
            border-radius: 999px;
            background: rgba(255,255,255,.16);
            filter: blur(1px);
        }
        .award-hero-content { margin-top: .35rem; }
        .award-hero-title { text-shadow: 0 18px 44px rgba(0,36,88,.35) !important; }
        .award-hero-title span { font-size: clamp(3.15rem, 11vw, 5.5rem) !important; }
        .award-hero-title strong { font-size: clamp(2.9rem, 10vw, 5rem) !important; }
        .award-hero-subtitle {
            max-width: 32rem !important;
            color: rgba(255,255,255,.88) !important;
            font-size: .96rem !important;
            font-weight: 820 !important;
            line-height: 1.34 !important;
        }
        .award-city-dashboard { margin-top: -2.35rem !important; margin-bottom: 1.35rem !important; }
        .award-dashboard-shell {
            border-radius: 2.05rem !important;
            padding: 1rem !important;
            background:
                radial-gradient(circle at 92% -12%, rgba(255,255,255,.30), transparent 16rem),
                linear-gradient(135deg, #062552 0%, #006ff3 58%, #00b9ff 100%) !important;
            box-shadow: var(--on-shadow-premium) !important;
        }
        .award-dashboard-shell::before {
            background:
                radial-gradient(circle at 12% 8%, rgba(255,207,82,.23), transparent 11rem),
                linear-gradient(120deg, transparent 0 42%, rgba(255,255,255,.08) 42.5% 43.5%, transparent 44% 100%) !important;
        }
        .award-dashboard-head { padding: .25rem .15rem .85rem !important; }
        .award-kicker { padding: .38rem .62rem !important; font-size: .64rem !important; }
        .award-dashboard-title { margin-top: .58rem !important; font-size: clamp(1.65rem, 6vw, 2.65rem) !important; }
        .award-dashboard-subtitle { color: rgba(255,255,255,.76) !important; font-size: .82rem !important; }
        .award-online-pill { padding: .48rem .66rem !important; font-size: .68rem !important; }
        .award-dashboard-grid {
            display: grid;
            grid-template-columns: 1.18fr repeat(2, minmax(0, .86fr));
            gap: .74rem;
        }
        .award-dashboard-grid .city-live-card {
            min-height: 9.2rem !important;
            border-radius: 1.42rem !important;
            padding: .92rem !important;
        }
        .award-live-main { grid-row: span 1; }
        .award-card-shine {
            position: absolute;
            inset: 0;
            background: linear-gradient(120deg, transparent 0 38%, rgba(255,255,255,.14) 46%, transparent 55%);
            transform: translateX(-70%);
            animation: awardShine 5.5s ease-in-out infinite;
        }
        @keyframes awardShine { 0%,55%{transform:translateX(-75%)} 78%,100%{transform:translateX(85%)} }
        .award-temp-value { font-size: clamp(2.6rem, 8vw, 4.2rem) !important; letter-spacing: -.08em !important; }
        .award-weather-icon { width: 3rem !important; height: 3rem !important; border-radius: 1.05rem !important; }
        .award-action-title { font-size: clamp(1.1rem, 4.5vw, 1.7rem) !important; line-height: 1.02 !important; letter-spacing: -.055em !important; }
        .city-live-icon.red { background: linear-gradient(135deg, #ef4444, #fb7185); }
        .award-action-card::after { width: 7.4rem !important; height: 7.4rem !important; right: -3.4rem !important; top: -3.9rem !important; }
        .award-latest-news-card {
            min-height: 7.7rem !important;
            border-radius: 1.5rem !important;
            background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(240,248,255,.96)) !important;
            margin-top: .75rem !important;
        }
        .award-latest-news-card .city-live-value { font-size: clamp(1.25rem, 4.2vw, 1.95rem) !important; max-width: 50rem !important; }
        .award-health-wide-card {
            min-height: 8.15rem !important;
            border-radius: 1.5rem !important;
            background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(255,246,247,.97)) !important;
            margin-top: .75rem !important;
        }
        .award-health-wide-card .city-live-value { font-size: clamp(1.3rem, 4.4vw, 2.05rem) !important; max-width: 50rem !important; }
        .award-health-wide-card::after { background: rgba(239, 68, 68, .08) !important; width: 8rem !important; height: 8rem !important; right: -3.4rem !important; top: -3.6rem !important; }
        .award-trust-row { margin-top: .74rem !important; }
        .award-trust-row .city-trust-item {
            border-radius: 1rem !important;
            padding: .66rem .72rem !important;
            background: rgba(255,255,255,.13) !important;
        }
        .award-trust-row .city-trust-item strong { font-size: 1.12rem !important; }
        .award-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
        .award-quick-grid {
            display: grid;
            grid-template-columns: repeat(6, minmax(0,1fr));
            gap: .72rem;
        }
        .award-quick-card {
            min-height: 8.05rem !important;
            border-radius: 1.32rem !important;
            padding: .85rem .64rem !important;
            display: flex !important;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            gap: .42rem;
        }
        .award-quick-card:hover { transform: translateY(-3px); box-shadow: 0 24px 60px rgba(15,23,42,.12) !important; }
        .award-icon {
            width: 3.1rem;
            height: 3.1rem;
            border-radius: 1.06rem;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 12px 26px rgba(15,23,42,.08);
        }
        .award-quick-card span { color: #111827; font-size: .84rem; line-height: 1.08; font-weight: 1000; }
        .award-quick-card small { color: #667085; font-size: .66rem; line-height: 1.18; font-weight: 800; }
        .award-news-section .home-news-header { margin-bottom: 1rem !important; }
        .home-news-bar {
            border-radius: 1.45rem !important;
            border: 1px solid rgba(15,23,42,.075) !important;
            box-shadow: 0 18px 46px rgba(15,23,42,.09) !important;
            background: rgba(255,255,255,.96) !important;
        }
        .home-news-bar.home-news-featured {
            min-height: 11.2rem !important;
            background: linear-gradient(135deg, rgba(5,29,66,.98), rgba(0,122,255,.94)) !important;
        }
        .home-news-thumb { border-radius: 1.05rem !important; overflow: hidden; }
        .home-news-thumb img { transition: transform .6s ease; }
        .home-news-bar:hover .home-news-thumb img { transform: scale(1.06); }
        .award-local-strip, .award-soft-panel, .award-instagram-card {
            border-radius: var(--on-radius-xl) !important;
            border: 1px solid var(--on-line) !important;
            box-shadow: var(--on-shadow-soft) !important;
        }
        .award-local-strip {
            padding: 1rem;
            background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(240,248,255,.94));
        }
        .upanema-live-row { display: flex; gap: .65rem; overflow-x: auto; padding: .8rem .1rem .1rem; }
        .upanema-live-chip {
            flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            gap: .42rem;
            border-radius: 999px;
            padding: .68rem .88rem;
            background: #fff;
            color: #344054;
            border: 1px solid rgba(15,23,42,.075);
            box-shadow: 0 10px 24px rgba(15,23,42,.06);
            font-size: .78rem;
            font-weight: 950;
        }
        .upanema-live-chip:hover { color: #007aff; transform: translateY(-2px); }
        .city-community-shell.award-soft-panel { padding: 1rem !important; background: linear-gradient(135deg, #ffffff, #f0fdf9) !important; }
        .city-community-card { min-height: 9rem; }
        #bottom-nav {
            background: rgba(255,255,255,.82) !important;
            border: 1px solid rgba(255,255,255,.65) !important;
            box-shadow: 0 18px 55px rgba(15,23,42,.16) !important;
        }
        #bottom-nav .nav-item.active {
            background: linear-gradient(135deg, var(--on-blue), var(--on-blue-2)) !important;
            color: #fff !important;
            box-shadow: 0 12px 32px rgba(0,122,255,.26);
        }
        #bottom-nav .nav-item.active span, #bottom-nav .nav-item.active i { color: #fff !important; }
        @media (max-width: 1024px) {
            .award-dashboard-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
            .award-live-main { grid-column: span 2; }
            .award-quick-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
        }
        @media (max-width: 640px) {
            #main-header nav { height: 4.25rem !important; }
            .award-hero { height: 16.6rem !important; min-height: 16.6rem !important; padding-top: 1.75rem !important; padding-bottom: 4.35rem !important; }
            .award-hero-title span { font-size: 2.85rem !important; }
            .award-hero-title strong { font-size: 2.58rem !important; }
            .award-hero-subtitle { font-size: .82rem !important; max-width: 20.5rem !important; }
            .award-city-dashboard { margin-top: -2rem !important; }
            .award-dashboard-shell { border-radius: 1.65rem !important; padding: .78rem !important; }
            .award-dashboard-head { gap: .65rem; }
            .award-dashboard-title { font-size: 1.72rem !important; }
            .award-dashboard-subtitle { font-size: .76rem !important; }
            .award-online-pill { display: none !important; }
            .award-dashboard-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .62rem; }
            .award-live-main { grid-column: span 2; }
            .award-dashboard-grid .city-live-card { min-height: 8.4rem !important; padding: .78rem !important; border-radius: 1.22rem !important; }
            .award-action-title { font-size: 1.32rem !important; }
            .city-live-label { font-size: .62rem !important; letter-spacing: .075em !important; }
            .city-live-desc { font-size: .70rem !important; line-height: 1.25 !important; }
            .city-live-cta { font-size: .70rem !important; }
            .city-live-icon { width: 2.35rem !important; height: 2.35rem !important; border-radius: .85rem !important; }
            .award-latest-news-card { min-height: 7.4rem !important; }
            .award-latest-news-card .city-live-value { font-size: 1.35rem !important; line-height: 1.05 !important; }
            .award-trust-row { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
            .award-quick-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .65rem; }
            .award-quick-card { min-height: 7.55rem !important; }
            .award-icon { width: 2.85rem; height: 2.85rem; }
            .award-section-head { align-items: flex-start; flex-direction: column; }
            .home-news-see-all { align-self: flex-start; }
            .city-community-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
            .city-community-card { min-height: 8.25rem; padding: .8rem !important; }
        }
        @media (max-width: 375px) {
            .award-hero-title span { font-size: 2.55rem !important; }
            .award-hero-title strong { font-size: 2.28rem !important; }
            .award-dashboard-grid { grid-template-columns: 1fr; }
            .award-live-main { grid-column: span 1; }
            .city-community-grid { grid-template-columns: 1fr !important; }
        }

    
/* === FIX Premium: foto aérea real embutida + Liquid Glass iOS-style === */
#inicio.premium-hero {
    position: relative !important;
    background: transparent !important;
    overflow: hidden !important;
}
#inicio.premium-hero::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -5 !important;
    background:
        linear-gradient(180deg, rgba(2, 16, 38, .18) 0%, rgba(4, 48, 109, .30) 38%, rgba(2, 18, 42, .74) 100%),
        linear-gradient(120deg, rgba(0, 122, 255, .56) 0%, rgba(0, 122, 255, .12) 38%, rgba(0, 0, 0, 0) 66%),
        url('./home-hero.jpg') !important;
    background-size: cover !important;
    background-position: center center !important;
    transform: scale(1.035) !important;
    filter: saturate(1.1) contrast(1.04) brightness(.94) !important;
}
#inicio.premium-hero::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -4 !important;
    background:
        radial-gradient(circle at 18% 10%, rgba(255, 220, 110, .30), transparent 13rem),
        radial-gradient(circle at 72% 14%, rgba(56, 189, 248, .24), transparent 16rem),
        linear-gradient(180deg, rgba(0, 0, 0, .08) 0%, rgba(0, 70, 160, .12) 45%, rgba(248,251,255,.08) 100%) !important;
    pointer-events: none !important;
}
.hero-tech-overlay {
    position: absolute;
    inset: 0;
    z-index: -3;
    pointer-events: none;
    mix-blend-mode: screen;
    background:
        radial-gradient(circle at 14% 48%, rgba(0,163,255,.18), transparent 18rem),
        radial-gradient(circle at 82% 36%, rgba(255,255,255,.12), transparent 14rem);
}
.hero-tech-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, transparent 0 38%, rgba(255,255,255,.12) 38.5% 39.2%, transparent 40% 100%),
        radial-gradient(circle at 12% 22%, rgba(255,255,255,.20) 0 1px, transparent 1.5px);
    background-size: auto, 20px 20px;
    opacity: .58;
    transform: skewY(-7deg) translateY(1rem);
    animation: heroLines 5.5s linear infinite;
}
.hero-tech-overlay::after {
    content: '';
    position: absolute;
    left: -8%;
    bottom: -20%;
    width: 58%;
    height: 145%;
    border: 1.4px solid rgba(255,255,255,.16);
    border-radius: 999px;
    opacity: .75;
}
#main-header {
    background: rgba(0, 122, 255, .74) !important;
    backdrop-filter: blur(22px) saturate(1.8) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.8) !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
}
#bottom-nav {
    border-radius: 9999px !important;
}
.bottom-nav-inner {
    border-radius: 9999px !important;
    background: rgba(255,255,255,.56) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    box-shadow:
        0 22px 54px rgba(15, 23, 42, .20),
        0 8px 20px rgba(0, 122, 255, .10),
        inset 0 1px 0 rgba(255,255,255,.92),
        inset 0 -1px 0 rgba(255,255,255,.28) !important;
    backdrop-filter: blur(30px) saturate(1.85) contrast(1.05) !important;
    -webkit-backdrop-filter: blur(30px) saturate(1.85) contrast(1.05) !important;
    overflow: hidden !important;
    clip-path: inset(0 round 9999px) !important;
}
.bottom-nav-liquid {
    position: absolute;
    inset: -18%;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 25%, rgba(0,122,255,.24), transparent 24%),
        radial-gradient(circle at 86% 15%, rgba(255,220,110,.22), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,.30), rgba(255,255,255,.08));
    filter: url(#liquid-glass);
    opacity: .66;
    mix-blend-mode: screen;
}
.bottom-nav-inner::after {
    content: '';
    position: absolute;
    inset: 1px;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.50);
    background: linear-gradient(135deg, rgba(255,255,255,.35), rgba(255,255,255,.06) 52%, rgba(0,122,255,.08));
}
#bottom-nav .nav-item {
    z-index: 2 !important;
    border-radius: 9999px !important;
}
#bottom-nav .nav-item.active {
    border-radius: 9999px !important;
    background: linear-gradient(135deg, #007AFF, #00A3FF) !important;
    box-shadow:
        0 13px 28px rgba(0,122,255,.36),
        inset 0 1px 0 rgba(255,255,255,.38) !important;
}
.svg-filtro {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}
@media (max-width: 640px) {
    #inicio.premium-hero::before {
        background-position: center top !important;
    }
}

    
/* === Ajuste: perfil conectado sem sobrepor o Painel da Cidade === */
#home-user-card:not(.hidden) {
    margin-top: 1rem !important;
    margin-bottom: 1.35rem !important;
    position: relative !important;
    z-index: 44 !important;
}
#home-user-card:not(.hidden) + #painel-cidade,
#home-user-card:not(.hidden) + .city-dashboard-section {
    margin-top: 0 !important;
}
#home-user-card:not(.hidden) .home-profile-card {
    border-radius: 1.55rem !important;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .11) !important;
}
@media (max-width: 640px) {
    #home-user-card:not(.hidden) {
        margin-top: .9rem !important;
        margin-bottom: 1.15rem !important;
    }
    #home-user-card:not(.hidden) + #painel-cidade,
    #home-user-card:not(.hidden) + .city-dashboard-section {
        margin-top: 0 !important;
    }
}

    
/* === Botão flutuante oficial: site, Instagram e WhatsApp da Ouvidoria === */
.official-floating-hub {
    position: fixed;
    right: 1rem;
    top: calc(50% + 2.95rem);
    z-index: 55;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .55rem;
}
.official-floating-main {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 1.15rem;
    border: 1px solid rgba(255,255,255,.74);
    background:
        radial-gradient(circle at 28% 20%, rgba(255,255,255,.42), transparent 1.7rem),
        linear-gradient(135deg, #007AFF, #00A3FF);
    color: #fff;
    box-shadow: 0 18px 38px rgba(0,122,255,.34), inset 0 1px 0 rgba(255,255,255,.40);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .2s ease, box-shadow .2s ease;
}
.official-floating-main:active { transform: scale(.96); }
.official-floating-panel {
    width: 13.75rem;
    padding: .55rem;
    border-radius: 1.35rem;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 22px 55px rgba(15,23,42,.18);
    backdrop-filter: blur(24px) saturate(1.55);
    -webkit-backdrop-filter: blur(24px) saturate(1.55);
    transform: translateY(.55rem) scale(.96);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}
.official-floating-hub.open .official-floating-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.official-floating-link {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    padding: .72rem .75rem;
    border-radius: 1rem;
    color: #0f172a;
    font-size: .82rem;
    font-weight: 950;
    text-decoration: none;
    transition: background .18s ease, transform .18s ease;
}
.official-floating-link:hover {
    background: rgba(0,122,255,.08);
    transform: translateX(-1px);
}
.official-floating-link .icon {
    width: 2.05rem;
    height: 2.05rem;
    border-radius: .82rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex: 0 0 auto;
}
.official-floating-link.site .icon { background: linear-gradient(135deg, #007AFF, #00A3FF); }
.official-floating-link.instagram .icon { background: linear-gradient(135deg, #e11d48, #f97316); }
.official-floating-link.whatsapp .icon { background: linear-gradient(135deg, #16a34a, #22c55e); }
.official-floating-link small {
    display: block;
    margin-top: .05rem;
    color: #64748b;
    font-weight: 800;
    font-size: .67rem;
    line-height: 1.1;
}
@media (max-width: 640px) {
    .official-floating-hub {
        right: .72rem;
        top: calc(50% + 2.55rem);
    }
    .official-floating-main {
        width: 3rem;
        height: 3rem;
        border-radius: 1rem;
    }
    .official-floating-panel {
        width: min(13.2rem, calc(100vw - 5.3rem));
    }
}

    
/* === Instalador PWA: computador e celular === */
.install-app-header-btn {
    gap: .36rem;
    padding-inline: .72rem;
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(255,255,255,.13);
    color: #fff;
    font-size: .78rem;
    font-weight: 950;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}
.install-app-header-btn:hover {
    background: rgba(255,255,255,.22);
}
.install-app-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.install-app-modal.hidden {
    display: none;
}
.install-app-card {
    width: min(27rem, 100%);
    border-radius: 1.65rem;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.76);
    box-shadow: 0 30px 80px rgba(15,23,42,.24);
    padding: 1.35rem;
    color: #0f172a;
}
.install-app-icon {
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, #007AFF, #00A3FF);
    box-shadow: 0 16px 34px rgba(0,122,255,.26);
}
.install-app-close {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #334155;
}
.install-step {
    display: flex;
    align-items: flex-start;
    gap: .72rem;
    border-radius: 1rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: .82rem;
    font-size: .9rem;
    font-weight: 800;
    color: #334155;
}
.install-step span {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: .62rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: #eff6ff;
    color: #007AFF;
    font-size: .8rem;
    font-weight: 950;
}
@media (max-width: 640px) {
    .install-app-header-btn span {
        display: none;
    }
    .install-app-header-btn {
        width: 2.5rem;
        padding-inline: 0;
        border-radius: 999px;
    }
}

    
/* === Ícones animados oficiais: site, Instagram e WhatsApp/Ouvidoria === */
.line-md--laptop,
.line-md--instagram,
.line-md--chat-round-alert-filled {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.line-md--laptop {
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath stroke-dasharray='50' d='M12 17h-7v-10h14v10Z'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' dur='0.6s' values='50;0'/%3E%3C/path%3E%3Cpath stroke-dasharray='20' stroke-dashoffset='20' d='M3 19h18'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' begin='0.7s' dur='0.3s' to='0'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
}

.line-md--instagram {
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath stroke-dasharray='66' d='M16 3c2.76 0 5 2.24 5 5v8c0 2.76 -2.24 5 -5 5h-8c-2.76 0 -5 -2.24 -5 -5v-8c0 -2.76 2.24 -5 5 -5h4Z'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' dur='0.6s' values='66;0'/%3E%3C/path%3E%3Cpath stroke-dasharray='28' stroke-dashoffset='28' d='M12 8c2.21 0 4 1.79 4 4c0 2.21 -1.79 4 -4 4c-2.21 0 -4 -1.79 -4 -4c0 -2.21 1.79 -4 4 -4'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' begin='0.7s' dur='0.6s' to='0'/%3E%3C/path%3E%3C/g%3E%3Ccircle cx='17' cy='7' r='1.5' fill='black' opacity='0'%3E%3Canimate fill='freeze' attributeName='opacity' begin='1.3s' dur='0.2s' to='1'/%3E%3C/circle%3E%3C/svg%3E");
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
}

.line-md--chat-round-alert-filled {
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3Cmask id='SVGahAuIbYC'%3E%3Cg fill='%23fff'%3E%3Cpath fill-opacity='0' stroke='%23fff' stroke-dasharray='54' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 16.82c-2.41 -1.25 -4 -3.39 -4 -5.82c0 -3.87 4.03 -7 9 -7c4.97 0 9 3.13 9 7c0 3.87 -4.03 7 -9 7c-1.85 0 -3.57 -0.43 -5 -1.18Z'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' dur='0.6s' values='54;0'/%3E%3Canimate fill='freeze' attributeName='fill-opacity' begin='0.9s' dur='0.4s' to='1'/%3E%3C/path%3E%3Cpath d='M5 15.5c1 1 2.5 2 4 2.5c-2 2 -5 3 -7 3c2 -2 3 -3.5 3 -5.5Z' opacity='0'%3E%3Cset fill='freeze' attributeName='opacity' begin='0.7s' to='1'/%3E%3Canimate fill='freeze' attributeName='d' begin='0.7s' dur='0.2s' values='M5 15.5c1 1 2.5 2 4 2.5c-0.71 -0.24 -1.43 -0.59 -2.09 -1c-0.72 -0.45 -1.39 -0.98 -1.91 -1.5Z;M5 15.5c1 1 2.5 2 4 2.5c-2 2 -5 3 -7 3c2 -2 3 -3.5 3 -5.5Z'/%3E%3C/path%3E%3C/g%3E%3Cg fill='none' stroke='%23000' stroke-dasharray='4' stroke-dashoffset='4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 8v2'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' begin='1.4s' dur='0.2s' to='0'/%3E%3C/path%3E%3Cpath d='M12 14v0.01'%3E%3Canimate fill='freeze' attributeName='stroke-dashoffset' begin='1.6s' dur='0.2s' to='0'/%3E%3C/path%3E%3C/g%3E%3C/mask%3E%3C/defs%3E%3Cpath fill='black' d='M0 0h24v24H0z' mask='url(%23SVGahAuIbYC)'/%3E%3C/svg%3E");
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
}

.official-floating-link .icon [class^="line-md--"] {
    font-size: 1.18rem;
    color: #fff;
}
.official-floating-link .icon i,
.official-floating-link .icon svg {
    width: 1.18rem !important;
    height: 1.18rem !important;
    color: #fff !important;
    stroke-width: 2.8 !important;
    animation: none !important;
    transition: none !important;
}

    
.official-animated-icon {
    display: inline-block;
    width: 1.18rem;
    height: 1.18rem;
    color: #fff;
    opacity: .92;
}
.official-floating-hub:not(.open) .official-animated-icon {
    -webkit-mask-image: none !important;
    mask-image: none !important;
    background: currentColor;
    border-radius: .35rem;
    opacity: .55;
}

    
/* Ajuste fino: balão oficial mais próximo do VLibras */
@media (max-width: 390px) {
    .official-floating-hub {
        top: calc(50% + 2.35rem) !important;
    }
}

/* === Modo leve: remove animacoes gerais e preserva apenas menu + topo Upanema ON === */
html.light-performance-app {
    scroll-behavior: auto !important;
}
html.light-performance-app body > :not([vw]),
html.light-performance-app body > :not([vw]) *,
html.light-performance-app body > :not([vw]) *::before,
html.light-performance-app body > :not([vw]) *::after {
    animation: none !important;
    animation-delay: 0s !important;
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition: none !important;
    transition-delay: 0s !important;
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
}
html.light-performance-app .page-view.active,
html.light-performance-app .fade-in,
html.light-performance-app .hero-image-animation,
html.light-performance-app .premium-pulse,
html.light-performance-app .weather-icon-soft,
html.light-performance-app .award-card-shine,
html.light-performance-app .official-animated-icon,
html.light-performance-app .animate-spin {
    animation: none !important;
}
html.light-performance-app .official-floating-hub:not(.open) .official-animated-icon {
    -webkit-mask-image: none !important;
    mask-image: none !important;
    background: currentColor !important;
    border-radius: .35rem !important;
    opacity: .58 !important;
}
html.light-performance-app .accordion-content {
    transition: none !important;
}
html.light-performance-app #bottom-nav,
html.light-performance-app .bottom-nav-inner,
html.light-performance-app .bottom-nav-inner::before,
html.light-performance-app .bottom-nav-inner::after,
html.light-performance-app .bottom-nav-liquid,
html.light-performance-app #bottom-nav .nav-item,
html.light-performance-app #bottom-nav .nav-item i,
html.light-performance-app #bottom-nav .nav-item svg,
html.light-performance-app #bottom-nav .nav-item.active {
    transition: color .18s ease, transform .18s ease, background .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
html.light-performance-app #bottom-nav .nav-item:active {
    transform: scale(.96) !important;
}
html.light-performance-app #bottom-nav .nav-item.active {
    transform: translateY(-1px) !important;
}
html.light-performance-app #bottom-nav .nav-item.active:active {
    transform: translateY(-1px) scale(.97) !important;
}
html.light-performance-app #bottom-nav .nav-item.active i,
html.light-performance-app #bottom-nav .nav-item.active svg {
    transform: translateY(-1px) scale(1.04) !important;
}
html.light-performance-app #inicio .premium-hero-title {
    animation: heroNameIn .8s cubic-bezier(.16,1,.3,1) both !important;
}
html.light-performance-app #inicio .premium-hero-title strong {
    animation: textShimmer 4.8s ease-in-out infinite !important;
}
html.light-performance-app #inicio .hero-tech-overlay::before,
html.light-performance-app #inicio .hero-road-lines {
    animation: heroLines 8s linear infinite !important;
}
.upanema-vlibras-stable-btn {
    position: fixed !important;
    right: .72rem !important;
    bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 2147483001 !important;
    width: 3.15rem !important;
    height: 3.15rem !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 1rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    background: linear-gradient(135deg, #007AFF, #1D8FFF) !important;
    box-shadow: 0 14px 32px rgba(0,122,255,.28), inset 0 1px 0 rgba(255,255,255,.36) !important;
    font-size: .9rem !important;
    font-weight: 1000 !important;
    letter-spacing: -.03em !important;
    line-height: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
}
.upanema-vlibras-stable-btn:active {
    filter: brightness(.96) !important;
}
@media (max-width: 640px) {
    .upanema-vlibras-stable-btn {
        right: .62rem !important;
        bottom: calc(5.55rem + env(safe-area-inset-bottom, 0px)) !important;
        width: 3rem !important;
        height: 3rem !important;
        border-radius: .95rem !important;
    }
}

/* === Ajuste lateral + Android leve === */
html.light-performance-app .official-floating-hub {
    right: .72rem !important;
    top: calc(50% + 1.72rem) !important;
    transform: translateY(-50%) !important;
    z-index: 2147483000 !important;
}
html.light-performance-app .upanema-vlibras-stable-btn {
    right: .72rem !important;
    top: calc(50% - 1.72rem) !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
}

/* Modal de notificacoes: compacto e sem sobreposicao dos controles de acessibilidade */
body.notifications-open [vw-access-button],
body.notifications-open [vw-plugin-wrapper],
body.notifications-open .vw-plugin-wrapper,
body.notifications-open [vw],
body.notifications-open .enabled[vw],
body.notifications-open .upanema-vlibras-stable-btn,
body.notifications-open .official-floating-hub {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.notifications-open .notifications-backdrop { z-index: 2147483000; }
body.notifications-open .notifications-panel { position: relative; }
body.notifications-open .notifications-head,
body.notifications-open .push-enable-wrap,
body.notifications-open .notifications-actions { flex: 0 0 auto; }
body.notifications-open .notifications-actions { position: relative; z-index: 5; }
body.notifications-open .notifications-actions button { position: relative; z-index: 6; min-height: 2rem; padding: .3rem .15rem; pointer-events: auto; cursor: pointer; }
body.notifications-open #mark-all-notifications-read { width: 100%; justify-content: flex-end; touch-action: manipulation; -webkit-tap-highlight-color: rgba(0,122,255,.12); }
body.notifications-open .notifications-list { min-height: 0; position: relative; z-index: 1; }

/* Evita areas invisiveis dos canais oficiais sobre os cards da home. */
.official-floating-hub:not(.open) .official-floating-panel { display: none !important; }

/* Remove o atraso historico de toque do Safari e deixa o feedback imediato. */
button, a, [role="button"], .navigate-btn {
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0, 122, 255, .12);
}
button:active, a:active, [role="button"]:active { transition-duration: .06s !important; }

@media (max-width: 640px) {
    body.notifications-open .notifications-panel {
        height: min(72dvh, 42rem);
        min-height: 28rem;
        border-radius: 1.35rem 1.35rem 0 0;
    }
    body.notifications-open .notifications-head {
        padding: 1.35rem 1rem .75rem;
    }
    body.notifications-open .notifications-head h2 { font-size: 1.3rem; }
    body.notifications-open .notifications-head p { margin-top: .2rem; }
    body.notifications-open .push-enable-wrap { padding: .65rem .85rem; }
    body.notifications-open .push-enable-btn { padding: .65rem .8rem; }
    body.notifications-open .push-status { margin-top: .3rem; }
    body.notifications-open .notifications-actions { padding: .4rem .85rem; }
    body.notifications-open .notifications-list { padding: .65rem; }
    body.notifications-open .notification-item { padding: .72rem; margin-bottom: .5rem; }
}
html.light-performance-app .official-floating-main,
html.light-performance-app .upanema-vlibras-stable-btn {
    width: 3rem !important;
    height: 3rem !important;
    border-radius: 1rem !important;
    box-shadow: 0 8px 18px rgba(0, 122, 255, .20) !important;
}
html.light-performance-app .official-floating-panel {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .16) !important;
}
html.light-performance-app #main-header,
html.light-performance-app .ios-card,
html.light-performance-app .bottom-nav-inner,
html.light-performance-app .map-bottom-sheet,
html.light-performance-app .map-chip,
html.light-performance-app .map-action-btn,
html.light-performance-app .map-live-pill,
html.light-performance-app .city-dashboard-kicker,
html.light-performance-app .city-dashboard-status,
html.light-performance-app .upanema-card-pill,
html.light-performance-app .poll-kicker,
html.light-performance-app .global-search-card,
html.light-performance-app .status-modal-backdrop,
html.light-performance-app .weather-modal-backdrop,
html.light-performance-app .install-app-modal,
html.light-performance-app .install-app-card {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
html.light-performance-app #main-header {
    background: #007AFF !important;
}
html.light-performance-app .bottom-nav-inner {
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .14), inset 0 1px 0 rgba(255,255,255,.92) !important;
}
html.light-performance-app .bottom-nav-liquid,
html.light-performance-app .hero-gradient-orb,
html.light-performance-app .hero-tech-overlay,
html.light-performance-app .hero-road-lines,
html.light-performance-app .hero-noise,
html.light-performance-app .city-dashboard-shell::before,
html.light-performance-app .city-live-card::after,
html.light-performance-app .award-card-shine {
    display: none !important;
}
html.light-performance-app .ios-card,
html.light-performance-app .home-profile-card,
html.light-performance-app .citizen-auth-shell,
html.light-performance-app .citizen-login-panel,
html.light-performance-app .map-dashboard-card,
html.light-performance-app .waze-map-shell,
html.light-performance-app .map-bottom-sheet,
html.light-performance-app .city-dashboard-shell,
html.light-performance-app .city-live-card,
html.light-performance-app .home-news-bar,
html.light-performance-app .upanema-main-card,
html.light-performance-app .upanema-mini-card,
html.light-performance-app .dam-hero-card,
html.light-performance-app .poll-hero-card,
html.light-performance-app .poll-card,
html.light-performance-app .health-form-shell,
html.light-performance-app .health-platform-shell,
html.light-performance-app .health-platform-card,
html.light-performance-app .install-app-card {
    box-shadow: 0 8px 22px rgba(15, 23, 42, .09) !important;
    filter: none !important;
}
html.light-performance-app #inicio.premium-hero::before {
    filter: none !important;
    transform: none !important;
}
html.light-performance-app #inicio.premium-hero::after {
    background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,70,160,.10), rgba(248,251,255,.06)) !important;
}
html.light-performance-app .official-floating-hub.open .official-animated-icon {
    background-color: currentColor !important;
    border-radius: 0 !important;
    opacity: .96 !important;
}
html.light-performance-app .official-floating-hub.open .official-animated-icon.line-md--laptop,
html.light-performance-app .official-floating-hub.open .official-animated-icon.line-md--instagram,
html.light-performance-app .official-floating-hub.open .official-animated-icon.line-md--chat-round-alert-filled {
    -webkit-mask-image: var(--svg) !important;
    mask-image: var(--svg) !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
}
@media (max-width: 640px) {
    html.light-performance-app .official-floating-hub {
        right: .62rem !important;
        top: calc(50% + 1.58rem) !important;
        transform: translateY(-50%) !important;
    }
    html.light-performance-app .upanema-vlibras-stable-btn {
        right: .62rem !important;
        top: calc(50% - 1.58rem) !important;
        bottom: auto !important;
        transform: translateY(-50%) !important;
    }
    html.light-performance-app .official-floating-main,
    html.light-performance-app .upanema-vlibras-stable-btn {
        width: 2.9rem !important;
        height: 2.9rem !important;
        border-radius: .95rem !important;
    }
}

/* Overrides finais de interacao: precisam vir depois do CSS do VLibras. */
html.light-performance-app body.notifications-open div[vw].enabled,
html.light-performance-app body.notifications-open [vw-access-button],
html.light-performance-app body.notifications-open [vw-plugin-wrapper],
html.light-performance-app body.notifications-open .upanema-vlibras-stable-btn,
html.light-performance-app body.notifications-open .official-floating-hub {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html.light-performance-app .official-floating-hub:not(.open) .official-floating-panel {
    display: none !important;
}

@media (max-width: 640px) {
    html.light-performance-app body.notifications-open .notifications-panel {
        height: min(72dvh, 42rem) !important;
        min-height: min(28rem, 72dvh) !important;
    }
}

/* Hero da cidade integrado ao fundo: base reta com transicao em degrade. */
html.light-performance-app #inicio.premium-hero,
#inicio.premium-hero {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    box-shadow: none !important;
}

html.light-performance-app #inicio.premium-hero::after,
#inicio.premium-hero::after {
    background: linear-gradient(180deg,
        rgba(0, 0, 0, .03) 0%,
        rgba(0, 55, 135, .08) 55%,
        rgba(2, 24, 58, .34) 100%) !important;
}

/* Painel da Cidade em largura total, sem aparencia de card externo. */
html.light-performance-app #painel-cidade,
#painel-cidade {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-bottom: 1.35rem !important;
}

html.light-performance-app #painel-cidade .city-dashboard-shell,
#painel-cidade .city-dashboard-shell {
    width: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Modo clean: sem degrades, animacoes decorativas ou filtros pesados. */
html.light-performance-app body *:not(img):not([vw]):not([vw] *),
html.light-performance-app body *:not([vw]):not([vw] *)::before,
html.light-performance-app body *:not([vw]):not([vw] *)::after { animation: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
html.light-performance-app #inicio.premium-hero::before { background-image: url('./home-hero.jpg') !important; background-size: cover !important; background-position: center center !important; opacity: 1 !important; }
html.light-performance-app #inicio.premium-hero::after { background: rgba(2,24,58,.34) !important; }
html.light-performance-app #inicio .premium-hero-title strong { background: none !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
html.light-performance-app .city-dashboard-shell, html.light-performance-app .notifications-head, html.light-performance-app .push-enable-btn, html.light-performance-app .premium-page-btn, html.light-performance-app .poll-submit-btn, html.light-performance-app .admin-gradient-card, html.light-performance-app .status-step.active { background: #0877e8 !important; }
html.light-performance-app .citizen-auth-shell, html.light-performance-app .map-dashboard-card, html.light-performance-app .dam-hero-card, html.light-performance-app .poll-hero-card, html.light-performance-app .upanema-main-card { background: #073b78 !important; }
html.light-performance-app .city-live-card.dark, html.light-performance-app .home-news-editorial .home-news-bar.home-news-featured { background: #0b4f94 !important; }
html.light-performance-app .ios-card, html.light-performance-app .home-profile-card, html.light-performance-app .home-news-bar, html.light-performance-app .city-latest-wide, html.light-performance-app .city-community-shell, html.light-performance-app .notification-item, html.light-performance-app .request-card-header { background: #fff !important; }
html.light-performance-app .notification-item.unread { background: #f1f7ff !important; }
html.light-performance-app .profile-avatar-premium, html.light-performance-app .city-live-icon, html.light-performance-app .news-category-label { background: #0877e8 !important; }
html.light-performance-app .city-live-icon.yellow { background: #facc15 !important; }
html.light-performance-app .city-live-icon.green { background: #16a34a !important; }
/* Componentes que usam texto branco precisam de uma base sólida quando o
   modo clean remove imagens/degradês decorativos. */
html.light-performance-app .admin-on-login-shell,
html.light-performance-app .health-hero-premium {
    background: #0757a6 !important;
    color: #fff !important;
}
html.light-performance-app .weather-on-hero,
html.light-performance-app .poll-hero-card,
html.light-performance-app .citizen-auth-shell {
    background: #0757a6 !important;
    color: #fff !important;
}
html.light-performance-app .poll-option-icon.health { background: #ef4444 !important; }
html.light-performance-app .poll-option-icon.infra { background: #f97316 !important; }
html.light-performance-app .poll-option-icon.education { background: #16a34a !important; }
html.light-performance-app .poll-option-icon.security { background: #334155 !important; }
html.light-performance-app .poll-option-icon.culture { background: #8b5cf6 !important; }
html.light-performance-app .poll-option-icon.rural { background: #65a30d !important; }
html.light-performance-app .health-platform-icon { background: #0877e8 !important; }
html.light-performance-app .health-platform-card.vaccine .health-platform-icon { background: #16a34a !important; }
html.light-performance-app .health-platform-card.campaign .health-platform-icon { background: #f97316 !important; }
html.light-performance-app .health-platform-card.guidance .health-platform-icon { background: #7c3aed !important; }
html.light-performance-app .health-platform-card.rehab .health-platform-icon { background: #ef4444 !important; }
html.light-performance-app .health-platform-card.route .health-platform-icon { background: #334155 !important; }
html.light-performance-app .award-icon.bg-blue-100 { background: #dbeafe !important; }
html.light-performance-app .award-icon.bg-red-100 { background: #fee2e2 !important; }
html.light-performance-app .award-icon.bg-sky-100 { background: #e0f2fe !important; }
html.light-performance-app .award-icon.bg-emerald-100 { background: #d1fae5 !important; }
html.light-performance-app .award-icon.bg-indigo-100 { background: #e0e7ff !important; }
html.light-performance-app .award-icon.bg-cyan-100 { background: #cffafe !important; }
html.light-performance-app .health-flow-number,
html.light-performance-app .poll-submit-btn,
html.light-performance-app .status-step.active { background: #0877e8 !important; }
html.light-performance-app .upanema-mini-icon.today { background: #f97316 !important; }
html.light-performance-app .upanema-mini-icon.fact { background: #7c3aed !important; }
html.light-performance-app .upanema-mini-icon.photo { background: #db2777 !important; }
html.light-performance-app .admin-whatsapp-primary { background: #16a34a !important; }
html.light-performance-app .admin-print-primary { background: #e2e8f0 !important; }
html.light-performance-app #admin-login-panel > .relative > div:first-child h2,
html.light-performance-app #admin-login-panel > .relative > div:first-child p,
html.light-performance-app #admin-login-panel > .relative > div:first-child .admin-on-pill,
html.light-performance-app #admin-login-panel > .relative > div:first-child .rounded-2xl,
html.light-performance-app .health-hero-premium h1,
html.light-performance-app .health-hero-premium h2,
html.light-performance-app .health-hero-premium p,
html.light-performance-app .health-hero-premium .health-kicker,
html.light-performance-app .health-hero-premium .health-stat-card { color: #fff !important; }
html.light-performance-app .health-hero-premium .health-stat-card { background: rgba(255,255,255,.14) !important; }

.clean-app-footer { margin-top: 2rem; padding: 1.5rem 0 calc(7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #e2e8f0; }
.footer-services { max-width: 34rem; margin: 0 auto; }
.footer-services h2 { margin-bottom: .65rem; color: #0f172a; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.footer-services a { min-height: 3.2rem; display: grid; grid-template-columns: 1.4rem 1fr 1.1rem; align-items: center; gap: .7rem; color: #334155; border-bottom: 1px solid #edf2f7; font-size: .88rem; font-weight: 800; }
.footer-services a svg { width: 1.1rem; height: 1.1rem; color: #0877e8; }
.footer-copyright { padding-top: 1.1rem; color: #64748b; text-align: center; font-size: .7rem; line-height: 1.6; }

/* O VLibras usa integralmente os estilos oficiais do próprio widget. */

/* Ajustes modernos do aplicativo */
.settings-page-view { background: #f4f7fb; color: #0f172a; min-height: 100vh; }
.settings-page-header { background: rgba(255,255,255,.96); border-bottom: 1px solid #e2e8f0; }
.settings-container { max-width: 42rem !important; }
.settings-hero { display: flex; align-items: center; gap: 1rem; padding: 1.2rem; margin-bottom: 1rem; border-radius: 1.4rem; color: #fff; background: #0877e8; }
.settings-hero-icon { width: 3.4rem; height: 3.4rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: 1.05rem; background: rgba(255,255,255,.16); }
.settings-hero-icon svg { width: 1.55rem; height: 1.55rem; }
.settings-hero span { color: #cfe7ff; font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.settings-hero h2 { margin-top: .12rem; font-size: 1.3rem; font-weight: 900; }
.settings-hero p { margin-top: .18rem; color: #e2f1ff; font-size: .76rem; font-weight: 650; }
.settings-group { margin-bottom: 1rem; padding: 1rem; border: 1px solid #e2e8f0; border-radius: 1.25rem; background: #fff; box-shadow: 0 6px 18px rgba(15,23,42,.05); }
.settings-group-title { display: flex; align-items: center; gap: .5rem; margin-bottom: .85rem; color: #475569; }
.settings-group-title svg { width: 1rem; height: 1rem; color: #0877e8; }
.settings-group-title h3 { font-size: .75rem; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; }
.theme-selector { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.theme-selector button { min-height: 4.6rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .38rem; border: 1px solid #e2e8f0; border-radius: 1rem; color: #64748b; background: #f8fafc; font-size: .72rem; font-weight: 850; }
.theme-selector button svg { width: 1.25rem; height: 1.25rem; }
.theme-selector button.active { color: #0877e8; border-color: #0877e8; background: #edf6ff; box-shadow: inset 0 0 0 1px #0877e8; }
.settings-switch-row { position: relative; display: flex; align-items: center; gap: .85rem; cursor: pointer; }
.settings-switch-row > span:first-child { flex: 1; }
.settings-switch-row strong, .settings-links strong { display: block; color: #0f172a; font-size: .88rem; font-weight: 850; }
.settings-switch-row small, .settings-links small { display: block; margin-top: .15rem; color: #64748b; font-size: .7rem; font-weight: 650; line-height: 1.35; }
.settings-switch-row input { position: absolute; opacity: 0; pointer-events: none; }
.settings-switch { width: 3rem; height: 1.7rem; flex: 0 0 auto; border-radius: 999px; background: #cbd5e1; padding: .2rem; transition: background .15s ease; }
.settings-switch::after { content: ''; display: block; width: 1.3rem; height: 1.3rem; border-radius: 999px; background: #fff; box-shadow: 0 2px 5px rgba(15,23,42,.18); transition: transform .15s ease; }
.settings-switch-row input:checked + .settings-switch { background: #0877e8; }
.settings-switch-row input:checked + .settings-switch::after { transform: translateX(1.3rem); }
.settings-links { padding: 0; overflow: hidden; }
.settings-links > button { width: 100%; min-height: 4.4rem; display: grid; grid-template-columns: 2.5rem 1fr 1.1rem; align-items: center; gap: .75rem; padding: .75rem 1rem; text-align: left; border-bottom: 1px solid #edf2f7; }
.settings-links > button:last-child { border-bottom: 0; }
.settings-links > button > svg { width: 1rem; color: #94a3b8; }
.settings-link-icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .8rem; }
.settings-link-icon svg { width: 1.15rem; }
.settings-link-icon.blue { color: #0877e8; background: #dbeafe; } .settings-link-icon.green { color: #059669; background: #d1fae5; } .settings-link-icon.violet { color: #7c3aed; background: #ede9fe; }
.settings-version { padding: .5rem 0 2rem; text-align: center; color: #94a3b8; font-size: .68rem; font-weight: 700; }

/* Tema escuro */
html.app-dark-mode { color-scheme: dark; }
html.app-dark-mode body, html.app-dark-mode .page-view, html.app-dark-mode .settings-page-view { background-color: #0b1220 !important; color: #e5edf7; }
html.app-dark-mode #main-header { background: #0b4f94 !important; }
html.app-dark-mode .settings-page-header, html.app-dark-mode .page-header { background: rgba(11,18,32,.97) !important; border-color: #263348 !important; }
html.app-dark-mode .settings-page-header h1, html.app-dark-mode .page-header h1 { color: #f8fafc !important; }
html.app-dark-mode .settings-group, html.app-dark-mode .ios-card, html.app-dark-mode .home-profile-card, html.app-dark-mode .home-news-bar, html.app-dark-mode .city-latest-wide, html.app-dark-mode .city-community-shell, html.app-dark-mode .notification-item { background: #121d2e !important; border-color: #263348 !important; color: #e5edf7 !important; }
html.app-dark-mode .theme-selector button { background: #182438; border-color: #334155; color: #b6c3d4; }
html.app-dark-mode .theme-selector button.active { background: #0d3157; border-color: #39a0ff; color: #69b7ff; }
html.app-dark-mode .settings-switch-row strong, html.app-dark-mode .settings-links strong, html.app-dark-mode .notification-copy strong, html.app-dark-mode h2, html.app-dark-mode h3, html.app-dark-mode .text-gray-900, html.app-dark-mode .text-slate-900 { color: #f1f5f9 !important; }
html.app-dark-mode .settings-switch-row small, html.app-dark-mode .settings-links small, html.app-dark-mode .notification-copy p, html.app-dark-mode .text-gray-500, html.app-dark-mode .text-slate-500, html.app-dark-mode .text-slate-600 { color: #9fb0c6 !important; }
html.app-dark-mode .bottom-nav-inner { background: #111c2d !important; border-color: #263348 !important; }
html.app-dark-mode #bottom-nav .nav-item { color: #91a3ba; }
html.app-dark-mode #bottom-nav .nav-item.active { color: #56adff; background: #17304e !important; }
html.app-dark-mode .clean-app-footer { background: #101a2a; border-color: #263348; }
html.app-dark-mode .footer-services h2, html.app-dark-mode .footer-services a { color: #dbe7f5; border-color: #263348; }
html.app-dark-mode .notifications-panel { background: #0b1220; }
html.app-dark-mode .push-enable-wrap, html.app-dark-mode .notifications-actions { background: #121d2e; border-color: #263348; }
html.app-dark-mode.light-performance-app .notification-item,
html.app-dark-mode.light-performance-app .notification-item.unread {
    background: #182438 !important;
    border-color: #334155 !important;
}
html.app-dark-mode .notification-copy strong { color: #f1f5f9 !important; }
html.app-dark-mode .notification-copy p,
html.app-dark-mode .notification-meta { color: #a7b6ca !important; }
html.app-dark-mode .push-enable-btn:disabled {
    color: #a7b6ca !important;
    background: #263348 !important;
    border: 1px solid #3a4a61;
}
html.app-dark-mode .push-enable-btn.push-ready:disabled {
    color: #86efac !important;
    background: #123b2b !important;
    border-color: #1d6b48;
}
html.app-dark-mode .push-status { color: #a7b6ca; }

/* Saúde: tokens explícitos para o modo claro, sem herdar contraste do tema escuro. */
html:not(.app-dark-mode) #health-page .health-platform-shell,
html:not(.app-dark-mode) #health-page .health-form-shell,
html:not(.app-dark-mode) #health-page .health-orientation-card,
html:not(.app-dark-mode) #health-page .health-quick-action,
html:not(.app-dark-mode) #health-page .health-platform-card,
html:not(.app-dark-mode) #health-page .health-service-option {
    background: #ffffff !important;
    color: #0f172a !important;
}
html:not(.app-dark-mode) #health-page .health-platform-shell { background: #f8fbff !important; }
html:not(.app-dark-mode) #health-page .health-platform-card h3,
html:not(.app-dark-mode) #health-page .health-quick-action h3,
html:not(.app-dark-mode) #health-page .health-orientation-card h3,
html:not(.app-dark-mode) #health-page .health-service-title,
html:not(.app-dark-mode) #health-page .text-slate-900 { color: #0f172a !important; }
html:not(.app-dark-mode) #health-page .health-platform-card p,
html:not(.app-dark-mode) #health-page .health-quick-action p,
html:not(.app-dark-mode) #health-page .health-orientation-card p,
html:not(.app-dark-mode) #health-page .health-service-desc,
html:not(.app-dark-mode) #health-page .text-slate-500,
html:not(.app-dark-mode) #health-page .text-slate-600 { color: #64748b !important; }
html:not(.app-dark-mode) #health-page .health-platform-card span { color: #007aff !important; }

/* Contraste completo: componentes antigos tambem obedecem ao tema escuro. */
html.app-dark-mode .award-quick-card,
html.app-dark-mode .health-platform-card,
html.app-dark-mode .city-community-card,
html.app-dark-mode .city-panel-quick-card,
html.app-dark-mode .city-live-card,
html.app-dark-mode .request-card,
html.app-dark-mode .request-card-header,
html.app-dark-mode .weather-on-card,
html.app-dark-mode .health-service-card,
html.app-dark-mode .citizen-login-panel,
html.app-dark-mode .profile-info-card,
html.app-dark-mode .profile-stat-card,
html.app-dark-mode .profile-dashboard-shell {
    background-color: #121d2e !important;
    border-color: #334155 !important;
    color: #e7eef8 !important;
}

html.app-dark-mode .page-view input:not([type="checkbox"]):not([type="radio"]),
html.app-dark-mode .page-view select,
html.app-dark-mode .page-view textarea {
    background-color: #182438 !important;
    border-color: #3a4a61 !important;
    color: #f1f5f9 !important;
    -webkit-text-fill-color: #f1f5f9 !important;
    caret-color: #69b7ff;
}

html.app-dark-mode .page-view input::placeholder,
html.app-dark-mode .page-view textarea::placeholder {
    color: #8192a9 !important;
    -webkit-text-fill-color: #8192a9 !important;
    opacity: 1;
}

html.app-dark-mode .page-view label,
html.app-dark-mode .page-view .text-gray-700,
html.app-dark-mode .page-view .text-gray-800,
html.app-dark-mode .page-view .text-slate-700,
html.app-dark-mode .page-view .text-slate-800,
html.app-dark-mode .award-quick-card span,
html.app-dark-mode .health-platform-card h3,
html.app-dark-mode .city-community-card h3,
html.app-dark-mode .profile-info-card strong,
html.app-dark-mode .profile-stat-card strong {
    color: #e7eef8 !important;
}

html.app-dark-mode .page-view .text-gray-400,
html.app-dark-mode .page-view .text-gray-500,
html.app-dark-mode .page-view .text-gray-600,
html.app-dark-mode .page-view .text-slate-400,
html.app-dark-mode .page-view .text-slate-500,
html.app-dark-mode .page-view .text-slate-600,
html.app-dark-mode .award-quick-card small,
html.app-dark-mode .health-platform-card p,
html.app-dark-mode .city-community-card p,
html.app-dark-mode .profile-info-card span,
html.app-dark-mode .profile-stat-card span {
    color: #a7b6ca !important;
}

html.app-dark-mode .page-view .divide-gray-100 > :not([hidden]) ~ :not([hidden]),
html.app-dark-mode .page-view .divide-gray-200 > :not([hidden]) ~ :not([hidden]),
html.app-dark-mode .page-view .border-gray-100,
html.app-dark-mode .page-view .border-gray-200,
html.app-dark-mode .page-view .border-slate-200 {
    border-color: #334155 !important;
}

html.reduce-app-motion *, html.reduce-app-motion *::before, html.reduce-app-motion *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
