.cadastro-municipios{padding:32px;max-width:1400px;margin:0 auto;background:linear-gradient(135deg,#0f172a,#1e293b);min-height:100vh;color:#fff}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:20px}.page-title{font-size:32px;font-weight:900;margin:0 0 8px;letter-spacing:-.02em;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{font-size:16px;color:#fff9;margin:0}.btn-upload{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px #3b82f64d}.btn-upload:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.btn-upload:disabled{opacity:.5;cursor:not-allowed;transform:none}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;text-align:center;transition:all .3s}.stat-card:hover{border-color:#3b82f680;transform:translateY(-2px)}.stat-value{font-size:36px;font-weight:800;color:#60a5fa;margin-bottom:8px;letter-spacing:-.02em}.stat-label{font-size:13px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.filtros-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px;margin-bottom:24px}.filtros-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filtros-header h3{margin:0;font-size:18px;font-weight:700}.btn-limpar{padding:8px 16px;background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-limpar:hover{background:#ef444433;border-color:#ef444480}.filtros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.filtro-group{display:flex;flex-direction:column;gap:8px}.filtro-group label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff9}.filtro-group select,.filtro-group input{padding:10px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:14px;transition:all .2s;outline:none}.filtro-group select:hover,.filtro-group input:hover{border-color:#fff3;background:#ffffff14}.filtro-group select:focus,.filtro-group input:focus{border-color:#3b82f680;box-shadow:0 0 0 3px #3b82f61a}.filtro-group select option{background:#1e293b;color:#fff}.table-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px;margin-bottom:24px}.table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.table-header h3{margin:0;font-size:18px;font-weight:700}.table-count{font-size:13px;color:#fff9;font-weight:600}.table-wrapper{overflow-x:auto;border-radius:12px;background:#ffffff05}.municipios-table{width:100%;border-collapse:collapse}.municipios-table thead{background:#ffffff0f}.municipios-table th{padding:16px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fffc;border-bottom:1px solid rgba(255,255,255,.1)}.municipios-table td{padding:16px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}.municipios-table tbody tr{transition:background .2s}.municipios-table tbody tr:hover{background:#ffffff0a}.code-cell{font-family:Courier New,monospace;font-weight:600;color:#60a5fa}.uf-badge{display:inline-block;padding:4px 10px;background:#3b82f633;color:#60a5fa;border-radius:6px;font-size:12px;font-weight:700}.municipio-name{font-weight:600}.porte-badge{display:inline-block;padding:4px 10px;background:#8b5cf633;color:#a78bfa;border-radius:6px;font-size:11px;font-weight:600}.capital-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700}.capital-sim{background:#22c55e33;color:#4ade80}.capital-nao{background:#6b728033;color:#9ca3af}.btn-delete{padding:6px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;cursor:pointer;transition:all .2s;font-size:16px}.btn-delete:hover{background:#ef444433;border-color:#ef444466;transform:scale(1.1)}.loading{text-align:center;padding:60px 20px;font-size:16px;color:#fff9}.empty-state{text-align:center;padding:60px 20px}.empty-state p:first-child{font-size:48px;margin-bottom:16px}.empty-state p:last-child{font-size:14px;color:#fff9;margin:0}.info-card{background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:16px;padding:24px}.info-card h3{margin:0 0 16px;font-size:18px;font-weight:700;color:#60a5fa}.info-card pre{background:#0000004d;padding:16px;border-radius:10px;overflow-x:auto;font-size:13px;line-height:1.6;margin-bottom:16px}.info-card ul{list-style:none;padding:0;margin:0}.info-card li{padding:8px 0;font-size:14px;color:#fffc}.toast{position:fixed;top:24px;right:24px;padding:16px 24px;border-radius:12px;font-size:14px;font-weight:600;z-index:9999;animation:slideIn .3s ease-out;box-shadow:0 8px 32px #0000004d}.toast-success{background:#22c55ee6;color:#fff;border:1px solid rgba(34,197,94,1)}.toast-error{background:#ef4444e6;color:#fff;border:1px solid rgba(239,68,68,1)}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.cadastro-municipios{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.stats-cards{grid-template-columns:repeat(2,1fr)}.filtros-grid{grid-template-columns:1fr}.table-wrapper{overflow-x:scroll}.municipios-table{min-width:800px}}:root{--bg0: #070a12;--bg1: #0b1220;--glass-bg: rgba(255, 255, 255, .06);--glass-bg-strong: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .14);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .7);--shadow: 0 20px 60px rgba(0, 0, 0, .35);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .22);--radius-xl: 18px;--radius-lg: 14px;--accent: #3b82f6;--danger: #ef4444;--success: #10b981;--success-green: #4ade80;--success-rgb: 74, 222, 128;--success-bg-soft: rgba(var(--success-rgb), .15);--success-border-soft: rgba(var(--success-rgb), .3);--success-glow: 0 0 8px rgba(var(--success-rgb), .6);--warning: #f59e0b}.app-bg{min-height:100vh;background:radial-gradient(1200px 700px at 15% 10%,rgba(59,130,246,.35),transparent 60%),radial-gradient(900px 600px at 85% 25%,rgba(16,185,129,.22),transparent 55%),radial-gradient(1000px 700px at 50% 95%,rgba(239,68,68,.18),transparent 60%),linear-gradient(180deg,var(--bg0),var(--bg1));color:var(--text);position:relative;overflow:hidden}.app-bg:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:overlay;opacity:.22;pointer-events:none}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.glass-strong{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.card{padding:16px}.card-title{font-size:12px;color:var(--muted);margin:0 0 6px}.card-value{font-size:22px;font-weight:800;margin:0}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f}.badge-good{border-color:#10b98159}.badge-bad{border-color:#ef444459}.badge-warn{border-color:#f59e0b59}h1,h2,h3{margin:0;letter-spacing:-.01em}h1{font-size:26px;font-weight:900}h2{font-size:18px;font-weight:800}h3{font-size:15px;font-weight:800;color:var(--text)}p{color:var(--muted)}input,select,button{font-family:inherit}.input{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);color:var(--text);border-radius:10px;padding:10px 12px;outline:none}.input::placeholder{color:#ffffff73}.btn{border-radius:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);cursor:pointer}.btn-primary{background:#3b82f638;border-color:#3b82f666}.table-light,.table-light table,.table-light th,.table-light td{color:#111827}.table-light a{color:#1d4ed8}.dash-shell .header-title{background:linear-gradient(135deg,#60a5fa,#a78bfa)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important}.header-title .title-icon{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:initial!important;color:initial}.ls-backdrop{position:fixed;inset:0;background:radial-gradient(ellipse 140% 90% at 50% 35%,#0d1b2e 0%,var(--bg0) 55%);display:flex;align-items:center;justify-content:center;z-index:9999;overflow:hidden}.ls-backdrop:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.028) 1px,transparent 1px);background-size:30px 30px;pointer-events:none}.ls-glow{position:absolute;width:700px;height:480px;background:radial-gradient(ellipse,rgba(59,130,246,.1) 0%,rgba(16,185,129,.05) 45%,transparent 70%);pointer-events:none;animation:lsGlowPulse 4s ease-in-out infinite}@keyframes lsGlowPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}.ls-particles{position:absolute;inset:0;pointer-events:none}.ls-particle{position:absolute;border-radius:50%;opacity:0;animation:lsParticleFloat linear infinite}.ls-p1{left:12%;top:18%;width:2px;height:2px;background:#3b82f68c;animation-duration:18s;animation-delay:0s}.ls-p2{left:78%;top:12%;width:3px;height:3px;background:#10b98180;animation-duration:22s;animation-delay:-5s}.ls-p3{left:88%;top:58%;width:2px;height:2px;background:#f59e0b66;animation-duration:16s;animation-delay:-2s}.ls-p4{left:8%;top:72%;width:3px;height:3px;background:#3b82f666;animation-duration:20s;animation-delay:-8s}.ls-p5{left:52%;top:88%;width:2px;height:2px;background:#10b98159;animation-duration:25s;animation-delay:-3s}.ls-p6{left:32%;top:8%;width:4px;height:4px;background:#3b82f638;animation-duration:19s;animation-delay:-10s}.ls-p7{left:92%;top:32%;width:2px;height:2px;background:#f59e0b59;animation-duration:23s;animation-delay:-7s}.ls-p8{left:4%;top:42%;width:3px;height:3px;background:#10b98147;animation-duration:17s;animation-delay:-4s}.ls-p9{left:62%;top:4%;width:2px;height:2px;background:#3b82f673;animation-duration:21s;animation-delay:-12s}.ls-p10{left:42%;top:92%;width:2px;height:2px;background:#f59e0b47;animation-duration:24s;animation-delay:-6s}.ls-p11{left:22%;top:52%;width:2px;height:2px;background:#3b82f652;animation-duration:15s;animation-delay:-9s}.ls-p12{left:82%;top:78%;width:3px;height:3px;background:#10b98138;animation-duration:26s;animation-delay:-14s}@keyframes lsParticleFloat{0%{opacity:0;transform:translate(0) scale(1)}10%{opacity:1}50%{opacity:.7;transform:translate(14px,-55px) scale(1.3)}90%{opacity:.3}to{opacity:0;transform:translate(-8px,-110px) scale(.7)}}.ls-card{position:relative;z-index:1;width:min(500px,calc(100vw - 48px));padding:40px 40px 32px;border-radius:24px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(150deg,#ffffff0f,#ffffff05);box-shadow:0 40px 90px #0000008c,0 0 0 1px #ffffff08 inset,0 1px #ffffff1a inset;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:lsCardReveal .9s cubic-bezier(.16,1,.3,1) both}.ls-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);border-radius:1px}@keyframes lsCardReveal{0%{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.ls-logo-area{display:flex;align-items:center;gap:16px;margin-bottom:36px;animation:lsFadeInUp .7s .15s ease-out both}.ls-emblem{flex-shrink:0;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#3b82f62e,#10b9811f);border:1px solid rgba(59,130,246,.28);display:flex;align-items:center;justify-content:center;box-shadow:0 0 24px #3b82f638,0 0 0 4px #3b82f60f;animation:lsEmblemPulse 3.5s ease-in-out infinite}@keyframes lsEmblemPulse{0%,to{box-shadow:0 0 24px #3b82f638,0 0 0 4px #3b82f60f}50%{box-shadow:0 0 38px #3b82f666,0 0 0 6px #3b82f61c}}.ls-brand{display:flex;flex-direction:column;gap:4px}.ls-brand-main{font-size:20px;font-weight:700;letter-spacing:-.4px;background:linear-gradient(95deg,#e2e8f0,#93c5fd 55%,#6ee7b7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.ls-brand-sub{font-size:10.5px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:#ffffff52}.ls-nodes-row{display:flex;align-items:center;justify-content:center;margin-bottom:28px;animation:lsFadeInUp .7s .28s ease-out both}.ls-node-group{display:flex;align-items:center}.ls-hex-wrap{--node-color: #3b82f6;filter:grayscale(.65) brightness(.55);transition:filter .7s ease,transform .4s ease}.ls-hex-active{filter:grayscale(0) brightness(1);transform:scale(1.04)}.ls-hex-outer{width:68px;height:68px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--node-color);display:flex;align-items:center;justify-content:center}.ls-hex-inner{width:60px;height:60px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:linear-gradient(145deg,#0d121ef5,#070a12fa);display:flex;align-items:center;justify-content:center;transition:background .6s ease}.ls-hex-active .ls-hex-inner{background:linear-gradient(145deg,#070a12d1,#0d121ee0)}.ls-hex-label{font-size:11.5px;font-weight:800;letter-spacing:.6px;color:var(--node-color)}.ls-connector{width:40px;height:2px;background:#ffffff12;position:relative;overflow:hidden;border-radius:1px;flex-shrink:0;transition:background .5s ease}.ls-connector-lit{background:#ffffff21}.ls-connector-flow{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(59,130,246,.7),transparent);animation:lsConnFlow 2s ease-in-out infinite;border-radius:1px}@keyframes lsConnFlow{0%{transform:translate(-150%);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translate(250%);opacity:0}}.ls-message{text-align:center;font-size:13px;color:#ffffff6b;margin:0 0 24px;height:18px;transition:opacity .28s ease,transform .28s ease;animation:lsFadeInUp .7s .38s ease-out both}.ls-msg-in{opacity:1;transform:translateY(0)}.ls-msg-out{opacity:0;transform:translateY(-5px)}.ls-progress-wrap{display:flex;align-items:center;gap:12px;margin-bottom:20px;animation:lsFadeInUp .7s .46s ease-out both}.ls-progress-track{flex:1;height:4px;background:#ffffff12;border-radius:2px;position:relative;overflow:visible}.ls-progress-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:2px;transition:width .08s linear;box-shadow:0 0 8px #3b82f673}.ls-progress-head{position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981e6,0 0 22px #10b98173;animation:lsHeadPulse 1.1s ease-in-out infinite}@keyframes lsHeadPulse{0%,to{transform:translateY(-50%) scale(1);box-shadow:0 0 10px #10b981e6,0 0 22px #10b98173}50%{transform:translateY(-50%) scale(1.25);box-shadow:0 0 16px #10b981,0 0 34px #10b981a6}}.ls-progress-pct{font-size:11.5px;font-weight:700;color:#ffffff73;min-width:32px;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.3px}.ls-steps-row{display:flex;justify-content:space-between;animation:lsFadeInUp .7s .54s ease-out both}.ls-step-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.ls-step-dot{width:7px;height:7px;border-radius:50%;background:#ffffff1f;border:1px solid rgba(255,255,255,.1);transition:all .4s ease}.ls-step-done .ls-step-dot{background:var(--success);border-color:var(--success);box-shadow:0 0 8px #10b9818c}.ls-step-current .ls-step-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px #3b82f6bf;animation:lsDotPulse 1s ease-in-out infinite}@keyframes lsDotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}.ls-step-name{font-size:9.5px;font-weight:500;color:#ffffff38;letter-spacing:.3px;transition:color .4s ease}.ls-step-done .ls-step-name,.ls-step-current .ls-step-name{color:#ffffff85}@keyframes lsFadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
