:root{--ink:#152135;--muted:#8290a4;--muted-dark:#66758a;--line:#e8edf3;--paper:#f6f8fb;--white:#fff;--navy:#0c1421;--navy-2:#151e2d;--blue:#5b7cf3;--blue-dark:#4768de;--mint:#4ac6a1;--green:#278f70;--amber:#db9c39;--red:#da6864;--font:'DM Sans',sans-serif;--display:'Manrope',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh}.sidebar{width:252px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:#e4e9f1;padding:24px 16px 14px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;padding:1px 9px 30px}.brand-mark{width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#708dfc,#4264db);display:grid;place-items:center;box-shadow:0 8px 22px #3556ca55}.brand-mark svg{width:25px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.brand-mark circle{fill:#fff;stroke:none}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy strong{font:800 12px var(--display);letter-spacing:.025em;color:#fff}.brand-copy strong b{font-weight:500;color:#a5b6f7}.brand-copy small{font-size:8px;letter-spacing:.19em;color:#79879a}.sidebar-label{font-size:9px;letter-spacing:.16em;font-weight:700;color:#708096;padding:0 12px 9px}.main-nav{display:grid;gap:4px}.nav-item{height:41px;border:0;background:none;color:#9eabba;border-radius:8px;display:flex;align-items:center;text-align:left;gap:11px;padding:0 12px;font:500 12px var(--font);cursor:pointer;transition:background .15s,color .15s}.nav-item:hover{background:#ffffff0b;color:#e8edf7}.nav-item.active{background:#263449;color:#fff;box-shadow:inset 2px 0 #7790ff}.nav-icon{font-size:16px;width:18px;text-align:center;color:#8999af}.nav-item.active .nav-icon{color:#9fb1ff}.nav-count{margin-left:auto;color:#c4d0e3;background:#34445b;font-size:9px;padding:3px 7px;border-radius:20px}.nav-dot{margin-left:auto;width:6px;height:6px;border-radius:50%;background:#ecb658}.tools-label{margin-top:29px}.sidebar-bottom{margin-top:auto}.integrity-card{margin:0 3px 14px;padding:11px 10px;border:1px solid #283648;background:#141f2d;border-radius:9px;display:flex;align-items:center;gap:9px;position:relative}.integrity-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#223c41;color:#62d5ad;font-size:14px}.integrity-card div{display:grid;gap:3px}.integrity-card strong{font-size:10px;font-weight:600;color:#e4eaf2}.integrity-card small{font-size:9px;color:#8291a5}.status-pulse{margin-left:auto;width:6px;height:6px;border-radius:50%;background:#50c89a;box-shadow:0 0 0 4px #50c89a20}.profile-button{width:100%;border:0;border-top:1px solid #273344;background:none;color:#fff;padding:14px 5px 3px;display:flex;align-items:center;text-align:left;gap:9px;cursor:pointer}.avatar,.top-avatar{display:grid;place-items:center;background:#34436e;color:#c9d4ff;font-size:10px;font-weight:700;border-radius:50%;width:31px;height:31px}.profile-copy{display:grid;gap:3px}.profile-copy strong{font-size:10px;font-weight:600}.profile-copy small{font-size:9px;color:#8795a8}.more{margin-left:auto;font-size:19px;color:#8491a4}.main-area{margin-left:252px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;z-index:12}.breadcrumbs{display:flex;align-items:center;gap:10px;color:#97a3b1;font-size:11px}.breadcrumbs strong{font-weight:600;color:#3d4a5d}.crumb-slash{color:#c9d0d9}.top-actions{display:flex;align-items:center;gap:15px}.municipality-select{height:34px;border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#66758a}.municipality-select select{border:0;outline:0;background:transparent;color:#354257;font:600 10px var(--font);appearance:none;cursor:pointer}.pin{font-size:15px;color:#758bf3}.chevron{font-size:12px;color:#97a3b1}.today-label{font-size:8px;letter-spacing:.1em;color:#a0aab7;padding-left:6px}.icon-button{height:32px;width:32px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#67758a;font-size:19px;cursor:pointer;position:relative}.icon-button:hover{color:var(--blue);border-color:#cbd5fb}.notification-button{font-size:16px}.notification-button i{position:absolute;right:6px;top:6px;width:5px;height:5px;border-radius:50%;background:#ef9d57;border:1px solid #fff}.top-avatar{width:29px;height:29px;background:#e5eaff;color:#5269bd;font-size:9px}.mobile-menu{display:none}.content-wrap{max-width:1500px;margin:0 auto;padding:34px 42px 20px}.view{display:none}.view.active{display:block}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:4px 0 23px}.eyebrow{display:flex;align-items:center;gap:8px;color:#7f8da0;font-weight:700;font-size:8px;letter-spacing:.13em;margin-bottom:12px}.eyebrow-line{height:1px;width:16px;background:#cdd5df;margin:0 1px}.live-dot{width:6px;height:6px;border-radius:50%;background:#54c89d;box-shadow:0 0 0 3px #54c89d20}.welcome-row h1{font:700 clamp(27px,3vw,37px)/1.2 var(--display);letter-spacing:-.05em;color:#162238;margin:0}.welcome-row h1 span{color:#5b78e8}.lead{margin:9px 0 0;color:#78869a;font-size:12px}.button{height:37px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:0 14px;font:600 10px var(--font);cursor:pointer;transition:.18s}.button-outline{background:#fff;border:1px solid #dfe5ec;color:#536176;box-shadow:0 2px 4px #17243905}.button-outline:hover{border-color:#b8c6f9;color:#4768de}.button-outline span{font-size:14px;color:#788bf0}.demo-note{background:#eef3ff;border:1px solid #dce5ff;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:10px;color:#495d8d;margin-bottom:21px}.note-spark{width:23px;height:23px;border-radius:7px;background:#dfe7ff;color:#617ae2;display:grid;place-items:center}.demo-note>span:nth-child(2){display:flex;align-items:center;gap:9px;font-size:10px}.demo-note strong{color:#3c5186;font-size:10px}.demo-note span span{color:#7180a1}.demo-note button{margin-left:auto;border:0;background:none;color:#8593b1;font-size:17px;cursor:pointer}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px}.section-heading h2{font:700 16px var(--display);letter-spacing:-.025em;margin:0 0 4px;color:#1b2940}.section-heading p{font-size:10px;color:#8a97a8;margin:0}.period-control{padding:3px;background:#edf1f6;border-radius:7px;display:flex;gap:2px}.period{height:25px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:#7f8da0;font:500 9px var(--font);cursor:pointer}.period.active{color:#405271;background:#fff;box-shadow:0 1px 3px #18253816}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-card,.panel,.service-card{background:#fff;border:1px solid #e9edf2;border-radius:9px;box-shadow:0 3px 12px #27384d04}.kpi-card{min-height:157px;padding:14px 15px 12px;position:relative;overflow:hidden}.kpi-top{height:26px;display:flex;align-items:center;justify-content:space-between}.kpi-icon{display:grid;place-items:center;border-radius:7px;width:27px;height:27px;font-size:15px}.purple{background:#eef0ff;color:#6779e9}.green{background:#e5f7f0;color:#3ca780}.amber{background:#fff5e4;color:#d29431}.red{background:#fff0ef;color:#d26b67}.kpi-trend{border-radius:20px;padding:4px 7px;font-size:8px;font-weight:600}.positive{background:#e9f8f1;color:#399b79}.caution{background:#fff6e8;color:#c1862c}.negative{background:#fff1ef;color:#cb6d69}.kpi-label{font-size:8px;letter-spacing:.12em;color:#8c99aa;font-weight:700;margin-top:13px}.kpi-value{font:700 30px/1.1 var(--display);letter-spacing:-.05em;color:#1a2840;margin-top:4px}.kpi-unit{font-size:18px;color:#64728a;margin-left:2px}.kpi-foot{display:flex;justify-content:space-between;align-items:center;color:#909dae;font-size:8px;margin-top:7px}.kpi-foot span:first-child{font-weight:600;color:#5e6e84}.progress{height:3px;background:#ecf0f6;border-radius:5px;margin-top:11px}.progress i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#748af4,#4e6fe4)}.mini-bars{position:absolute;bottom:13px;right:15px;width:72px;height:23px;display:flex;align-items:end;gap:3px;opacity:.82}.mini-bars i{flex:1;border-radius:2px 2px 0 0;background:#68c9a5}.red-bars i{background:#e39792}.sparkline{height:24px;position:absolute;left:15px;right:15px;bottom:10px}.sparkline svg{width:100%;height:100%;overflow:visible}.sparkline path{fill:none;stroke:#e1aa57;stroke-width:2}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:13px;margin-bottom:22px}.panel{padding:16px 17px}.execution-panel{min-height:321px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.panel-heading h3{font:700 13px var(--display);letter-spacing:-.02em;color:#243149;margin:0 0 4px}.panel-heading p{font-size:9px;color:#929eae;margin:0}.more-button{border:0;background:none;color:#9ba6b4;font-size:18px;letter-spacing:1px;cursor:pointer}.chart-legend{margin-top:16px;display:flex;align-items:center;gap:15px;color:#8390a1;font-size:8px}.chart-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{width:7px;height:7px;border-radius:50%}.legend-dot.blue{background:#617ff0}.legend-dot.mint{background:#57c9a2}.chart-filter{margin-left:auto;border:1px solid #e8edf2;background:#fff;border-radius:5px;color:#758296;font:500 8px var(--font);padding:5px 8px;cursor:pointer}.chart-wrap{display:flex;height:177px;margin-top:11px}.chart-y{height:146px;width:31px;display:flex;flex-direction:column;justify-content:space-between;padding:0 0 0;color:#9ba6b3;font-size:8px}.chart-main{flex:1;position:relative}.chart-gridlines{position:absolute;inset:0 0 20px;display:flex;flex-direction:column;justify-content:space-between}.chart-gridlines i{height:1px;background:#eff2f6}.area-chart{height:146px;width:100%;position:relative;overflow:visible}.fill-blue{fill:url(#blueFill)}.fill-mint{fill:url(#mintFill)}.line-blue,.line-mint{fill:none;stroke-width:2.5;stroke-linecap:round}.line-blue{stroke:#6481f0}.line-mint{stroke:#53c9a1;stroke-width:2}.chart-point{fill:#fff;stroke:#6481f0;stroke-width:2.5}.chart-point.mint-point{stroke:#53c9a1}.chart-x{display:flex;justify-content:space-between;color:#9ba6b3;font-size:8px;padding-top:4px}.chart-insight{border-top:1px solid #edf0f4;margin-top:2px;padding:10px 0 0;display:flex;align-items:flex-start;gap:8px;color:#758399;font-size:9px;line-height:1.5}.insight-icon{color:#6883ec;font-size:14px}.chart-insight strong{color:#42526c;font-weight:700;margin-right:4px}.chart-insight button{border:0;background:none;padding:0;color:#5b76dd;font:600 9px var(--font);cursor:pointer}.priority-panel{min-height:321px}.link-button{border:0;background:none;color:#5a74da;font:600 9px var(--font);cursor:pointer;padding:3px}.link-button span{font-size:13px;padding-left:3px}.priority-list{margin-top:16px}.priority-item{width:100%;min-height:61px;border:0;border-top:1px solid #f0f2f5;background:#fff;display:flex;align-items:center;text-align:left;padding:8px 0;gap:9px;cursor:pointer}.priority-item:hover .priority-copy strong{color:#5572dc}.priority-symbol{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:8px;font-size:15px}.health-symbol{background:#f0edff;color:#7c69dc}.mobility-symbol{background:#e9f2ff;color:#5f8ed8}.finance-symbol{background:#e7f7f1;color:#42aa82}.priority-copy{min-width:0;display:grid;gap:4px}.priority-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#435168;font-size:9px;font-weight:600}.priority-copy small{color:#97a2b1;font-size:8px}.priority-meta{margin-left:auto;display:grid;text-align:right;gap:4px;white-space:nowrap}.priority-meta b{color:#586a84;font-size:9px;font-weight:600}.priority-meta small{color:#a2acb9;font-size:7px}.priority-arrow{font-size:17px;color:#b0bac7;padding-left:2px}.priority-footer{border-top:1px solid #eff2f5;margin-top:5px;padding-top:11px;display:flex;align-items:center;color:#99a5b4;font-size:8px}.priority-indicator{width:6px;height:6px;border-radius:50%;background:#dca342;margin-right:6px}.priority-footer-date{margin-left:auto;color:#abb4bf}.lower-heading{margin:0 0 11px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.service-card{min-height:79px;display:flex;align-items:center;padding:12px;gap:9px;text-align:left;cursor:pointer;transition:transform .15s,border .15s}.service-card:hover{transform:translateY(-2px);border-color:#d7dff7}.service-icon{display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:8px;font-size:16px}.service-health{background:#f0edff;color:#7564d4}.service-mobility{background:#eaf2ff;color:#5d8bdb}.service-citizen{background:#e5f7ef;color:#37a57a}.service-main{display:grid;gap:5px;min-width:0}.service-main strong{font-size:10px;color:#334159}.service-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:7px;color:#99a4b2}.service-stat{display:grid;margin-left:auto;white-space:nowrap;text-align:right;gap:3px}.service-stat b{font:700 13px var(--display);color:#475770}.service-stat b small{font:500 8px var(--font);color:#8794a5}.service-stat>small{color:#9ba6b4;font-size:7px}.service-change{font-size:7px;white-space:nowrap;border-radius:20px;padding:4px 5px}.service-change.down{background:#e9f7f0;color:#429875}.service-change.up{background:#eef2ff;color:#657cdf}.service-arrow{color:#adb7c4;margin-left:1px}.page-footer{margin-top:25px;padding-top:12px;border-top:1px solid #e8edf2;display:flex;justify-content:space-between;color:#a0aab7;font-size:7px;letter-spacing:.09em}.page-footer i{font-style:normal;padding:0 5px;color:#c2cbd5}.page-footer span:last-child{letter-spacing:0}.detail-view{animation:fade-in .2s ease}@keyframes fade-in{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.detail-hero{display:flex;align-items:flex-end;justify-content:space-between;margin:2px 0 20px}.detail-kicker{font-size:8px;color:#8391a3;font-weight:700;letter-spacing:.13em;margin-bottom:10px}.detail-hero h1{font:700 30px var(--display);letter-spacing:-.04em;margin:0;color:#18263d}.detail-hero p{margin:7px 0 0;color:#7e8ca0;font-size:11px}.detail-grid{display:grid;grid-template-columns:1.4fr .85fr;gap:13px;margin:14px 0}.detail-card{background:#fff;border:1px solid #e9edf2;border-radius:9px;padding:17px}.detail-card h3{font:700 13px var(--display);margin:0 0 5px;color:#25334a}.detail-card>p{font-size:9px;color:#8c99a9;margin:0 0 15px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.metric-box{background:#f7f9fc;border:1px solid #eef1f5;border-radius:7px;padding:11px}.metric-box small{display:block;color:#8997a9;font-size:8px;margin-bottom:8px}.metric-box strong{font:700 20px var(--display);color:#283750;letter-spacing:-.03em}.metric-box em{display:block;margin-top:5px;color:#57a385;font-size:8px;font-style:normal}.data-table{width:100%;border-collapse:collapse;font-size:9px}.data-table th{text-align:left;padding:9px;color:#98a3b1;font-weight:600;border-bottom:1px solid #ebeff4}.data-table td{padding:11px 9px;border-bottom:1px solid #f0f2f5;color:#5f6e83}.data-table td:first-child{color:#34435b;font-weight:600}.table-status{border-radius:20px;background:#e8f7f0;color:#438d70;padding:4px 7px;font-size:8px;white-space:nowrap}.table-status.watch{background:#fff5e5;color:#b98838}.table-status.late{background:#fff0ef;color:#c36d68}.detail-action{border:0;background:#edf2ff;border-radius:6px;color:#5673dd;font:600 9px var(--font);padding:8px 10px;cursor:pointer}.detail-action:hover{background:#e3eaff}.demand-list{display:grid;gap:8px}.demand-row{padding:11px;border:1px solid #edf0f4;border-radius:7px;display:flex;gap:9px;align-items:center}.demand-row .priority-symbol{width:27px;height:27px}.demand-row strong{font-size:9px;color:#405069}.demand-row small{display:block;font-size:8px;color:#98a4b2;margin-top:4px}.demand-row button{margin-left:auto}.initiative{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #eff2f5}.initiative:last-child{border-bottom:0}.initiative-number{font:700 12px var(--display);color:#8b9cf1}.initiative-copy{flex:1}.initiative-copy strong{display:block;color:#42516a;font-size:9px}.initiative-copy small{display:block;margin-top:4px;color:#9aa5b2;font-size:8px}.initiative-progress{width:58px;height:4px;border-radius:6px;background:#edf0f5}.initiative-progress i{height:100%;display:block;border-radius:6px;background:#6a83ed}.tag{display:inline-flex;align-items:center;border:1px solid #e6ebf1;border-radius:20px;padding:5px 8px;font-size:8px;color:#77869a;margin:0 4px 5px 0}.source-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #eff2f5}.source-logo{width:28px;height:28px;border-radius:8px;background:#eef2ff;color:#5d75db;display:grid;place-items:center;font-size:9px;font-weight:700}.source-copy{flex:1}.source-copy strong{display:block;font-size:9px;color:#44536b}.source-copy small{font-size:8px;color:#98a4b1;display:block;margin-top:3px}.source-state{font-size:8px;color:#47a17d}.source-state.pending{color:#c49340}.empty-note{padding:14px;background:#f5f7fb;border-radius:7px;color:#8592a4;font-size:9px;line-height:1.6}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,15px);background:#152236;color:#fff;padding:11px 16px;border-radius:8px;box-shadow:0 8px 25px #14203630;font-size:10px;opacity:0;pointer-events:none;transition:.22s;z-index:40}.toast.show{opacity:1;transform:translate(-50%,0)}.modal-backdrop{display:none;position:fixed;inset:0;z-index:50;background:#0d1728a8;backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{position:relative;width:min(100%,460px);max-height:95vh;overflow:auto;background:#fff;border-radius:13px;padding:26px;box-shadow:0 25px 80px #0a15294d;animation:fade-in .2s ease}.modal-close{position:absolute;right:17px;top:14px;border:0;background:#f2f4f8;color:#8390a1;width:26px;height:26px;border-radius:50%;font-size:17px;cursor:pointer}.modal-kicker{font-size:8px;color:#8794a6;font-weight:700;letter-spacing:.13em}.modal-kicker span{padding:0 3px;color:#aab4c0}.modal h2{font:700 22px var(--display);letter-spacing:-.03em;color:#1d2b43;margin:10px 0 6px}.modal>p{font-size:10px;color:#7e8ca0;line-height:1.6;margin:0 20px 19px 0}.modal form{display:grid;gap:12px}.modal form label{display:grid;gap:6px;color:#536179;font-size:9px;font-weight:600}.modal input,.modal select,.modal textarea{border:1px solid #e1e7ee;border-radius:7px;background:#fff;padding:10px 11px;color:#34435a;font:400 10px var(--font);outline:0}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#879cf3;box-shadow:0 0 0 3px #879cf322}.modal textarea{resize:vertical}.form-privacy{background:#f5f7fa;border-radius:6px;padding:9px;color:#8190a1;font-size:8px;line-height:1.55}.button-primary{height:39px;background:#5675e5;border:1px solid #5675e5;color:#fff}.button-primary:hover{background:#4666d5}.button-primary span{font-size:15px}.form-submit{width:100%}
@media(min-width:1500px){.content-wrap{padding-left:54px;padding-right:54px}.topbar{padding-left:54px;padding-right:54px}.kpi-card{min-height:164px}.execution-panel,.priority-panel{min-height:337px}.chart-wrap{height:188px}.area-chart,.chart-y{height:155px}}
@media(max-width:1180px){.sidebar{width:225px}.main-area{margin-left:225px}.content-wrap{padding-left:27px;padding-right:27px}.topbar{padding:0 27px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr)}.service-grid{grid-template-columns:1fr}.service-card{min-height:68px}.service-main{min-width:180px}}
@media(max-width:900px){.sidebar{width:228px;transform:translateX(-100%);transition:transform .2s;box-shadow:8px 0 24px #0b152128}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.mobile-menu{display:block;border:0;background:none;color:#57677d;font-size:17px;cursor:pointer;padding:4px 9px 4px 0}.topbar{justify-content:flex-start;gap:8px}.top-actions{margin-left:auto}.dashboard-grid{grid-template-columns:1fr}.priority-panel{min-height:0}.priority-list{margin-top:10px}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-card{flex-wrap:wrap}.service-main{min-width:120px}.service-stat{margin-left:auto}.service-change{margin-left:40px}.detail-grid{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{height:57px;padding:0 15px}.breadcrumbs{font-size:10px;gap:7px}.today-label{display:none}.municipality-select{padding:0 7px;height:31px;gap:5px}.municipality-select select{max-width:96px;font-size:9px}.top-actions{gap:7px}.icon-button{width:29px;height:29px}.top-avatar{width:26px;height:26px}.content-wrap{padding:24px 15px 16px}.welcome-row{align-items:flex-start;flex-direction:column;margin-bottom:16px;gap:14px}.welcome-row h1{font-size:27px}.desktop-break{display:none}.lead{font-size:10px}.button-outline{height:33px}.demo-note{align-items:flex-start;padding:9px}.demo-note>span:nth-child(2){display:grid;gap:4px;line-height:1.4}.demo-note span span{font-size:9px}.section-heading h2{font-size:14px}.section-heading p{font-size:9px}.period{padding:0 7px;font-size:8px}.kpi-grid{gap:8px}.kpi-card{min-height:146px;padding:11px}.kpi-label{font-size:7px}.kpi-value{font-size:26px}.kpi-foot{font-size:7px;gap:4px}.kpi-foot span:last-child{text-align:right}.dashboard-grid{gap:9px}.panel{padding:13px}.execution-panel{min-height:303px}.chart-legend{gap:8px;font-size:7px}.chart-filter{font-size:7px;padding:4px 5px}.service-grid{grid-template-columns:1fr}.service-card{flex-wrap:nowrap}.service-main{min-width:0}.service-stat{margin-left:auto}.service-change{margin-left:0}.page-footer{font-size:6px;line-height:1.5;gap:8px}.page-footer span:last-child{text-align:right}.detail-hero{align-items:flex-start;flex-direction:column;gap:14px}.detail-hero h1{font-size:25px}.metric-row{grid-template-columns:1fr}.metric-box{padding:9px}.metric-box strong{font-size:17px}.data-table{font-size:8px}.data-table th,.data-table td{padding:8px 5px}.modal{padding:22px 18px}.profile-button{margin-top:6px}}

/* Refined analytics, spreadsheet import and navigation icon system. */
.nav-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;display:block}
.nav-item{gap:11px}
.nav-icon{width:18px;height:18px;display:grid;place-items:center;flex:none;color:#93a5c0}
.nav-item.active .nav-icon,.nav-item:hover .nav-icon{color:#a9bcff}
.welcome-actions{display:flex;align-items:center;gap:8px}
.analytics-grid{display:grid;grid-template-columns:minmax(280px,.86fr) minmax(0,1.45fr);gap:13px;margin:0 0 23px}
.analytics-panel{min-height:255px;padding:18px 19px;position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 38%,#fafbff 100%)}
.analytics-panel:after{content:"";position:absolute;right:-44px;top:-66px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#f0f3ff9c 0,transparent 69%);pointer-events:none}
.analytics-panel>*{position:relative;z-index:1}
.analytics-panel .panel-heading{align-items:center;gap:12px}
.chart-badge{border:1px solid #e6ebf5;border-radius:999px;background:#fbfcff;color:#8290a4;padding:6px 8px;font-size:7px;letter-spacing:.09em;font-weight:700;white-space:nowrap}
.donut-layout{display:flex;align-items:center;gap:10px;margin-top:12px;min-height:170px}
.donut-visual{width:166px;height:166px;position:relative;flex:none;display:grid;place-items:center}
.donut-visual:after{content:"";position:absolute;width:83px;height:13px;left:42px;bottom:1px;border-radius:50%;background:#25385b20;filter:blur(7px)}
.donut-visual svg{width:150px;height:150px;overflow:visible;filter:drop-shadow(0 8px 8px #3343691c);transform:rotateX(8deg)}
.donut-segment{transform:rotate(-90deg);transform-origin:72px 72px;stroke-linecap:round;transition:stroke-dasharray .35s ease,stroke-dashoffset .35s ease;filter:drop-shadow(0 1px 1px #1d2b3c26)}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.donut-center strong{font:800 21px/1 var(--display);letter-spacing:-.06em;color:#26344d}
.donut-center small{margin-top:5px;color:#9aa5b3;font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.donut-legend{flex:1;min-width:0;display:grid;gap:8px}
.donut-legend-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;color:#718096;font-size:8px}
.donut-legend-row i{width:7px;height:7px;border-radius:50%;background:var(--legend-color);box-shadow:0 1px 2px #18253c38}
.donut-legend-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.donut-legend-row b{font-size:8px;color:#40516d;font-weight:700}
.trend-visual{position:relative;padding:17px 2px 20px 37px;margin-top:10px;height:177px}
.trend-visual svg{width:100%;height:140px;overflow:visible;position:relative;z-index:1}
.trend-visual:before{content:"";position:absolute;left:39px;right:2px;top:17px;height:140px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 34px,#edf0f5 35px,#edf0f5 36px);pointer-events:none}
.trend-area{fill:url(#trend-fill)}
.trend-line{fill:none;stroke:#6481f0;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 4px #6481f044)}
.trend-dot{fill:#fff;stroke:#6481f0;stroke-width:2.5;filter:drop-shadow(0 2px 3px #4862b83a)}
.trend-axis{position:absolute;left:0;top:14px;bottom:32px;display:flex;flex-direction:column;justify-content:space-between;color:#a1adbb;font-size:7px}
.trend-labels{position:absolute;left:39px;right:2px;bottom:2px;height:14px;color:#95a1b0;font-size:7px}
.trend-labels span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.chart-empty{min-height:160px;display:grid;place-items:center;text-align:center;padding:20px;color:#9aa5b5;font-size:9px;line-height:1.6}
.data-charts{margin-top:14px}
.data-charts .analytics-panel{min-height:262px}
.data-charts .trend-visual{height:190px}
.granularity-toggle{display:flex;gap:2px;padding:3px;border-radius:7px;background:#eef1f6;white-space:nowrap}
.granularity-toggle button{border:0;background:transparent;color:#8190a5;padding:6px 9px;border-radius:5px;font:600 8px var(--font);cursor:pointer}
.granularity-toggle button.active{background:#fff;color:#4c66d7;box-shadow:0 1px 3px #1c2a401c}
.storage-note{display:flex;align-items:center;gap:11px;padding:12px 14px;margin-bottom:14px;background:linear-gradient(100deg,#eff4ff,#f8faff);border:1px solid #e1e9fb;border-radius:9px;color:#496088}
.storage-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:9px;background:#dfe8ff;color:#617be0;font-size:17px}
.storage-note div{display:grid;gap:4px;min-width:0}
.storage-note strong{color:#3d5485;font-size:9px}
.storage-note small{color:#7182a1;font-size:8px;line-height:1.5}
.local-badge{margin-left:auto;border-radius:20px;background:#e1f6ee;color:#389879;padding:5px 7px;font-size:7px;font-weight:700;letter-spacing:.1em}
.upload-card{position:relative;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:27px;border:1px dashed #bfcaf1;border-radius:13px;background:radial-gradient(ellipse at 50% 0,#f5f7ff 0,#fff 67%);transition:.2s}
.upload-card.dragging{border-color:#607cf0;background:#eef2ff;box-shadow:0 0 0 4px #607cf01a}
.upload-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#7890fa,#4c68df);box-shadow:0 8px 20px #526ce14a,inset 0 1px 1px #ffffff72}
.upload-mark svg{width:25px;height:25px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.upload-card h2{margin:15px 0 6px;font:750 17px var(--display);letter-spacing:-.03em;color:#24334d}
.upload-card p{margin:0;color:#8491a3;font-size:9px}
.upload-actions{display:flex;gap:8px;margin-top:17px}
.upload-formats{margin-top:14px;color:#9ba6b4;font-size:8px}
.upload-card .button{font-size:9px}
.upload-card .button-primary{box-shadow:0 5px 12px #5874e52c}
.import-guidance{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:13px;padding:14px 16px;background:#fff;border:1px solid #e9edf2;border-radius:9px}
.import-guidance div:first-child{display:grid;gap:5px}
.import-guidance strong{font-size:9px;color:#465670}
.import-guidance span{font-size:8px;color:#939faf;line-height:1.5}
.guidance-tags{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.guidance-tags span{border-radius:20px;background:#f1f4fb;color:#7383a0;padding:6px 8px;font-size:7px;white-space:nowrap}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.imported-dataset{padding:16px 17px;margin-bottom:14px;background:#fff;border:1px solid #e9edf2;border-radius:10px;box-shadow:0 3px 12px #27384d04}
.dataset-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.dataset-head .detail-kicker{margin-bottom:5px}
.dataset-head h2{margin:0;color:#26354d;font:750 15px var(--display);letter-spacing:-.025em;overflow-wrap:anywhere}
.dataset-head p{margin:5px 0 0;color:#98a4b2;font-size:8px}
.dataset-actions{display:flex;align-items:center;gap:6px}
.dataset-actions select,.field-mapping select{max-width:230px;height:32px;padding:0 9px;border:1px solid #e2e7ef;border-radius:6px;background:#fff;color:#53637b;font:500 8px var(--font);outline:0}
.icon-action{width:31px;height:31px;border:1px solid #e4e8ef;border-radius:7px;background:#fff;color:#637490;font-size:15px;cursor:pointer}
.icon-action:hover{border-color:#c5d0f5;color:#536fe0}
.icon-action.danger:hover{border-color:#f3cdcd;color:#cf6767;background:#fff8f8}
.field-mapping{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;margin-top:14px;padding-top:13px;border-top:1px solid #eff2f5}
.field-mapping label{display:grid;gap:5px;color:#8491a3;font-size:8px;font-weight:600}
.field-mapping select{max-width:none;width:100%}
.mapping-hint{align-self:center;color:#a0aab7;font-size:7px;max-width:135px;line-height:1.4}
.table-card{margin-top:13px}
.table-card .panel-heading{align-items:center;margin-bottom:10px}
.table-scroll{width:100%;overflow-x:auto}
.table-scroll .data-table{min-width:560px}
.period-table .data-table{min-width:300px}
.upload-inline{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:13px;padding:13px 16px;background:#fff;border:1px solid #e9edf2;border-radius:9px}
.upload-inline div{display:grid;gap:4px}
.upload-inline strong{color:#485872;font-size:9px}
.upload-inline span{color:#99a4b2;font-size:8px}
.welcome-actions .button{white-space:nowrap}
.welcome-actions .button:first-child{border-color:#dce4ff;color:#526cda;background:#fdfdff}
.welcome-actions .button:first-child span{font-size:15px}
.source-row:hover,.demand-row:hover{background:#fbfcff}
.official-note{border-color:#d8eee6;background:linear-gradient(100deg,#effaf6,#f8fcfa)}
.official-note .note-spark{color:#269b79}
.open-data-grid{align-items:stretch}
.finance-open-panel,.open-sources-panel{min-width:0}
.finance-bars{display:grid;gap:19px;margin:24px 0 14px}
.finance-bar-row{display:grid;gap:7px}
.finance-bar-row>div{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#66758b;font-size:9px}
.finance-bar-row strong{color:#34435b;font-size:10px;white-space:nowrap}
.finance-bar-row i{height:9px;overflow:hidden;border-radius:9px;background:#edf1f7}
.finance-bar-row i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5e7cf1,#8aa0ff);box-shadow:0 2px 6px #5876eb40}
.finance-bar-row.expense i b{background:linear-gradient(90deg,#42b995,#79d7b9);box-shadow:0 2px 6px #42b99540}
.source-footnote{margin:16px 0 9px;color:#8b98a9;font-size:8px;line-height:1.6}
.source-link{display:inline-flex;align-items:center;gap:5px;color:#536fdb;font-size:8px;font-weight:700;text-decoration:none}
.source-link:hover{text-decoration:underline}
.public-source-list{display:grid;margin-top:5px}
.public-source-list>a{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #eef1f5;color:inherit;text-decoration:none;transition:background .15s}
.public-source-list>a:last-child{border-bottom:0}
.public-source-list>a:hover{background:#f8faff}
.public-source-list .source-logo{width:27px;height:27px;display:grid;place-items:center;flex:none;border-radius:8px;background:#eef2ff;color:#6178de;font-size:7px;font-weight:800}
.public-source-list>a>span:nth-child(2){display:grid;gap:3px;min-width:0;flex:1}
.public-source-list strong{color:#40516b;font-size:8px}
.public-source-list small{color:#92a0b0;font-size:7px;line-height:1.4}
.public-source-list>a>b{color:#8290a5;font-size:11px}
.source-summary{display:grid;gap:10px;margin-top:8px}
.source-summary>div{display:grid;gap:3px;padding:8px 10px;border-left:2px solid #dce5ff;background:#fafbff}
.source-summary strong{color:#485a76;font-size:8px}
.source-summary span{color:#929eaf;font-size:7px;line-height:1.45}
.topic-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:2px 0 22px}
.topic-source-grid>a{display:grid;gap:6px;padding:15px;background:#fff;border:1px solid #e9edf2;border-radius:9px;text-decoration:none;box-shadow:0 3px 12px #27384d04;transition:transform .15s,border-color .15s}
.topic-source-grid>a:hover{transform:translateY(-2px);border-color:#ced8fa}
.topic-source-grid strong{color:#3e4f68;font-size:10px}
.topic-source-grid span{color:#8c99aa;font-size:8px;line-height:1.5}
.topic-source-grid b{margin-top:4px;color:#5d75d7;font-size:7px}
@media(max-width:900px){.topic-source-grid{grid-template-columns:1fr}}
@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.analytics-panel{min-height:220px}.donut-layout{justify-content:center}.trend-visual{height:185px}.field-mapping{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-hint{grid-column:1/-1;max-width:none}.dataset-head{align-items:flex-start;flex-direction:column}.dataset-actions{width:100%}.dataset-actions select{flex:1;max-width:none}}
@media(max-width:620px){.welcome-actions{width:100%;gap:7px}.welcome-actions .button{padding:0 9px;font-size:8px}.analytics-grid{gap:9px;margin-bottom:16px}.analytics-panel{padding:13px;min-height:210px}.analytics-panel .panel-heading h3{font-size:12px}.donut-layout{gap:2px}.donut-visual{width:142px;height:148px}.donut-visual svg{width:132px;height:132px}.donut-visual:after{left:37px;width:70px}.donut-center strong{font-size:18px}.donut-legend{gap:7px}.donut-legend-row{font-size:7px;gap:5px}.chart-badge{font-size:6px;padding:5px 6px}.trend-visual{padding-left:31px;height:170px}.trend-visual svg{height:132px}.trend-visual:before{left:32px;height:132px}.trend-labels{left:32px}.storage-note{align-items:flex-start;padding:10px}.storage-note small{font-size:7px}.upload-card{min-height:260px;padding:20px 12px}.upload-card h2{font-size:15px}.upload-actions{flex-direction:column;width:100%;max-width:220px}.import-guidance{align-items:flex-start;flex-direction:column}.guidance-tags{justify-content:flex-start}.field-mapping{grid-template-columns:1fr;gap:8px}.mapping-hint{grid-column:auto}.dataset-actions select{font-size:7px}.granularity-toggle button{padding:5px 6px;font-size:7px}.upload-inline{align-items:flex-start;flex-direction:column}}

/* Navegação com um conjunto de ícones SVG coeso */
.nav-icon{width:22px;height:22px;color:#9aabc3;transition:color .18s ease,transform .18s ease}
.nav-icon svg{width:19px;height:19px;stroke-width:1.8;vector-effect:non-scaling-stroke}
.nav-item.active .nav-icon{color:#b8c6ff}
.nav-item:hover .nav-icon{color:#c5d1ff;transform:translateY(-1px)}
.integrity-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.pin{display:inline-flex;align-items:center;justify-content:center}
.pin svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icon-button{display:inline-grid;place-items:center;padding:0}
.icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.mobile-menu{width:30px;height:30px;display:none;place-items:center;border-radius:7px}
.mobile-menu svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
@media(max-width:900px){.mobile-menu{display:grid}}

