:root{--sidebar-bg:#182430;--sidebar-hover:#223443;--sidebar-active:#256f9f;--surface:#fff;--background:#f1f4f6;--border:#dbe2e8;--text:#25313c;--text-muted:#6d7984;--primary:#2574a9;--success:#20825a;--warning:#a96b13;--danger:#ad352c;--nav:var(--sidebar-bg);--nav2:var(--sidebar-hover);--blue:var(--primary);--blue2:#1d628f;--bg:var(--background);--panel:var(--surface);--line:var(--border);--muted:var(--text-muted);--ok:var(--success);--warn:var(--warning);--bad:var(--danger);--shadow:0 2px 10px rgba(25,38,51,.07);--sidebar:252px}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#12202d,#24445e)}.login-card{width:min(390px,calc(100% - 32px));background:#fff;border-radius:8px;padding:34px;box-shadow:0 18px 55px #0005}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:7px;background:var(--blue);color:#fff;font-weight:800}.login-card h1{margin:24px 0 4px;font-size:23px}.login-card p{margin:0 0 24px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;color:#4e5b66}.field input,.field select{height:38px;border:1px solid #cbd4dc;border-radius:5px;padding:0 10px;background:#fff;min-width:0}.login-form{display:grid;gap:16px}.login-error{min-height:19px;color:var(--bad);font-size:13px}
.btn{border:1px solid transparent;border-radius:5px;padding:8px 13px;background:#e7edf2;color:#26323d;font-weight:600}.btn:hover{filter:brightness(.97)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue2)}.btn-outline{border-color:#b9c5cf;background:#fff}.btn-danger{color:var(--bad)}.btn:disabled{cursor:not-allowed;opacity:.55}
.shell{min-height:100vh}.sidebar{position:fixed;z-index:20;inset:0 auto 28px 0;width:var(--sidebar);background:var(--nav);color:#cbd5df;overflow-y:auto;transition:transform .2s}.sidebar .brand{height:64px;padding:0 18px;color:#fff;border-bottom:1px solid #ffffff14}.nav-section{padding:19px 13px 6px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#8292a1}.nav-link{display:flex;gap:10px;align-items:center;margin:2px 8px;padding:10px 11px;border-radius:5px}.nav-link:hover{background:#ffffff0d;color:#fff}.nav-link.active{background:var(--blue);color:#fff}.nav-icon{width:18px;text-align:center}.main{margin-left:var(--sidebar);padding-bottom:32px;min-height:100vh}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.top-left{display:flex;align-items:center;gap:13px}.menu-toggle{display:none;border:0;background:transparent;font-size:22px}.page-title{font-size:18px;font-weight:750}.breadcrumb{font-size:11px;color:var(--muted);margin-top:2px}.top-actions{display:flex;align-items:center;gap:10px}.user-box{text-align:right}.user-name{font-weight:700}.user-role{font-size:11px;color:var(--muted)}.content{padding:20px 24px 34px;max-width:1700px;margin:auto}.statusbar{position:fixed;z-index:30;bottom:0;left:0;right:0;height:28px;background:#111a22;color:#aebbc6;display:flex;align-items:center;gap:18px;padding:0 14px;font-size:11px}.statusbar strong{color:#e7edf2}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:5px}.dot.off{background:var(--bad)}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}.page-head h2{margin:0;font-size:19px}.page-head p{margin:4px 0 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:14px;margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:16px;box-shadow:var(--shadow)}.metric-label{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.metric-value{font-size:27px;font-weight:750;margin:7px 0 3px}.metric-sub{font-size:12px;color:var(--muted)}.section{background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);margin-bottom:16px}.section-head{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line)}.section-head h3{font-size:14px;margin:0}.section-body{padding:15px}.quick-links{display:flex;gap:8px;flex-wrap:wrap}
.filters{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;align-items:end}.filter-actions{display:flex;gap:7px}.table-wrap{width:100%;overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{position:sticky;top:0;background:#f3f6f8;color:#50606d;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}.data-table td{padding:9px 10px;border-bottom:1px solid #e8edf1;vertical-align:top}.data-table tbody tr:hover{background:#f7fafc}.clickable{cursor:pointer}.num{text-align:right!important;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.empty,.loading,.error-state{padding:38px;text-align:center;color:var(--muted)}.error-state{color:var(--bad)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-top:1px solid var(--line)}.pagination-actions{display:flex;align-items:center;gap:8px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:#e8eef3;font-size:11px;font-weight:700}.badge-ok{background:#daf1e4;color:#126a40}.badge-warn{background:#fff0d2;color:#8c5500}.badge-info{background:#dcecf9;color:#155b8e}.badge-bad{background:#fde3e0;color:#9f241b}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}.tab{padding:10px 14px;border:0;background:transparent;border-bottom:2px solid transparent;white-space:nowrap;color:#5d6974}.tab.active{color:var(--blue);border-color:var(--blue);font-weight:700}.flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-item span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;margin-bottom:3px}.detail-item strong{font-weight:600;word-break:break-word}
.modal-backdrop{position:fixed;z-index:60;inset:0;background:#0007;display:grid;place-items:center;padding:20px}.modal{background:#fff;width:min(850px,100%);max-height:90vh;overflow:auto;border-radius:8px;box-shadow:0 20px 70px #0007}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-body{padding:18px}.modal-close{border:0;background:transparent;font-size:22px}.toast{position:fixed;z-index:80;right:18px;bottom:44px;max-width:420px;background:#18232c;color:#fff;padding:11px 15px;border-radius:5px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#8f241c}
@media(max-width:1100px){.filters{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%)}body.menu-open .sidebar{transform:none}.main{margin-left:0}.menu-toggle{display:block}.content{padding:15px 12px 40px}.topbar{padding:0 12px}.top-actions .btn-outline{display:none}.cards{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.flow-grid{grid-template-columns:1fr}.statusbar{overflow-x:auto;white-space:nowrap}.user-role{display:none}}
@media(max-width:480px){.filters,.detail-grid{grid-template-columns:1fr}.user-box{display:none}.page-head{align-items:flex-start;flex-direction:column}}
.brand-logo{width:40px;height:40px;flex:0 0 40px}.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-copy small{margin-top:4px;color:#91a3b2;font-size:10px;font-weight:500;letter-spacing:.04em}.sidebar .brand{height:70px}.nav-link:hover{background:var(--sidebar-hover)}.nav-link.active{background:var(--sidebar-active)}.nav-icon{display:grid;place-items:center}.nav-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar,.card,.section,.modal{background:var(--surface)}.content{padding:22px 25px 36px}.metric-label{font-size:11px;letter-spacing:.055em}.analytics-summary{grid-template-columns:repeat(4,minmax(170px,1fr))}.diagnostic{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.subsection-title{margin:0;padding:13px 15px;border-bottom:1px solid var(--border);font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
@media(max-width:1100px){.analytics-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.analytics-summary{grid-template-columns:1fr}}

.mp-card-filters{grid-template-columns:repeat(3,minmax(140px,1fr)) auto}.mp-card-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:14px;margin-bottom:16px}.mp-card{padding:0;overflow:hidden}.mp-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:15px;border-bottom:1px solid var(--line)}.mp-card-head h3{font-size:14px;margin:4px 0 0}.mp-code{font-size:11px;font-weight:800;color:var(--blue);letter-spacing:.05em}.mp-period{padding:9px 15px;background:#f7f9fb;color:var(--muted);font-size:11px}.mp-metrics{display:grid;grid-template-columns:repeat(2,1fr);padding:12px 15px;gap:12px;border-bottom:1px solid var(--line)}.mp-metrics div{display:flex;flex-direction:column;gap:3px}.mp-metrics span,.mp-destinations>span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.mp-metrics strong{font-size:16px}.mp-destinations{padding:12px 15px}.mp-destinations>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:6px 0;border-bottom:1px solid #edf1f4;font-size:12px}.mp-destinations>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-destinations small{display:block;color:var(--blue);font-weight:700;margin-top:8px}.consumption-filters{grid-template-columns:repeat(4,minmax(140px,1fr)) auto}.expand-cell{font-size:20px;color:var(--blue);transition:transform .15s}.expanded .expand-cell{transform:rotate(90deg)}.destination-detail>td{padding:14px 24px!important;background:#f6f9fb}.destination-detail .table-wrap{border:1px solid var(--line);border-radius:6px;background:#fff}.candidate-origins{display:block;color:var(--muted);margin-top:5px;max-width:220px;white-space:normal}.destination-detail .loading{padding:20px}
@media(max-width:1250px){.mp-card-grid{grid-template-columns:repeat(2,minmax(270px,1fr))}}@media(max-width:760px){.mp-card-grid{grid-template-columns:1fr}.mp-card-filters,.consumption-filters{grid-template-columns:1fr 1fr}}@media(max-width:480px){.mp-card-filters,.consumption-filters{grid-template-columns:1fr}}

.cost-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:12px}.visual-card{background:#fff;border:1px solid var(--border);border-radius:11px;padding:12px;box-shadow:var(--shadow);min-width:0;margin-bottom:12px}.visual-card h3{font-size:12px;margin:0 0 10px;color:#164e86}.cost-product-panel{align-self:start;position:sticky;top:72px}.inline-search{display:flex;gap:5px}.inline-search input{width:100%;min-width:0}.visual-product{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:12px;margin:10px 0}.visual-product-icon{width:54px;height:42px;background:linear-gradient(135deg,#eee5ff,#e2efff);display:grid;place-items:center;border-radius:8px;color:#6546df;font-size:24px}.visual-product>div:last-child{display:flex;flex-direction:column;min-width:0}.visual-product span{font-size:9px;color:#52708c;overflow-wrap:anywhere}.cost-product-panel label{display:block;margin:11px 0 5px;font-size:10px;font-weight:700}.visual-field{min-height:34px;border:1px solid var(--border);border-radius:7px;padding:9px;background:#fff}.period-summary{border-top:1px solid var(--border);margin-top:12px;padding-top:9px}.period-summary h4{color:#1f5688}.period-summary dl,.cost-bottom-grid dl,.cost-diagnostic dl{display:grid;grid-template-columns:1fr auto;gap:7px 10px}.period-summary dd,.cost-bottom-grid dd,.cost-diagnostic dd{margin:0;font-weight:700;text-align:right}.cost-content-grid{min-width:0}.cost-top-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12px}.cost-mid-grid{display:grid;grid-template-columns:1.35fr .65fr .85fr .9fr;gap:12px}.cost-bottom-grid{display:grid;grid-template-columns:1.3fr .65fr 1.15fr;gap:12px}.visual-table{width:100%;border-collapse:collapse;font-size:10px}.visual-table th{background:#edf4fb;color:#285175;border:1px solid #dce7f0;text-align:left;padding:6px}.visual-table td{border-bottom:1px solid #e6edf4;padding:6px;white-space:nowrap}.visual-table .total{background:#edf5fd;font-weight:800}.empty-cell{text-align:center;color:var(--muted);padding:22px!important}.cost-diagnostic{display:flex;flex-direction:column}.diagnostic-state{display:grid;place-items:center;text-align:center;gap:8px;padding:14px}.diagnostic-state strong{color:#164e86}.cost-yield{text-align:center}.cost-yield>span{display:block;color:var(--muted)}.cost-yield>b{display:block;font-size:23px;color:var(--green);margin:12px}.cost-yield small{color:var(--muted)}.cost-yield>div{background:#eefaf4;color:#078b50;border-radius:8px;padding:9px;margin-top:11px}.cost-yield>div strong{display:block;font-size:17px}.awaiting{color:#7c5a13;font-weight:700}.awaiting-box,.awaiting-panel{border:1px dashed #cbd8e4;background:#f8fafc;border-radius:8px;padding:10px;margin:5px 0 10px}.awaiting-panel{min-height:120px;display:grid;place-items:center;text-align:center}.awaiting-panel small{display:block;color:var(--muted)}.cost-comparison .comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:8px}.comparison-grid div{text-align:center;padding:12px;border-right:1px solid var(--border)}.comparison-grid div:last-child{border:0}.comparison-grid span,.comparison-grid small,.comparison-grid b{display:block}.comparison-grid b{font-size:18px;margin:8px}.blue-text{color:#0d6fe8}.green-text{color:#079f58}.recommendation{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff8e7;border:1px solid #f3df9e;border-radius:8px;padding:9px;margin-top:10px}.recommendation div{display:flex;flex-direction:column}.recommendation b{color:#d87300}
@media(max-width:1450px){.visual-kpis{grid-template-columns:repeat(3,1fr)}.cost-mid-grid{grid-template-columns:1.2fr .8fr}.cost-bottom-grid{grid-template-columns:1fr}}
@media(max-width:1100px){.cost-layout{grid-template-columns:1fr}.cost-product-panel{position:static}.cost-top-grid,.cost-mid-grid{grid-template-columns:1fr}.visual-kpis{grid-template-columns:repeat(2,1fr)}.visual-heading{align-items:flex-start;flex-direction:column}.visual-actions{justify-content:flex-start}}
@media(max-width:760px){.visual-kpis{grid-template-columns:1fr}.cost-comparison .comparison-grid{grid-template-columns:1fr}.comparison-grid div{border-right:0;border-bottom:1px solid var(--border)}.recommendation{align-items:stretch;flex-direction:column}.visual-actions{width:100%}.visual-actions input{min-width:0;flex:1}.visual-card{padding:10px}}

@media(max-width:1450px){body .visual-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){body .visual-kpis{grid-template-columns:repeat(2,1fr)}body .visual-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){body .visual-kpis{grid-template-columns:1fr}}
.sector-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px}.sector-list{padding:8px;align-self:start}.sector-item{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px;text-align:left}.sector-item.active{background:#e7f2ff;color:var(--blue);border-radius:7px}.sector-item small{color:var(--muted)}.new-sector{display:flex;gap:8px}.new-sector input{border:1px solid var(--line);border-radius:7px;padding:0 10px}.group-search{grid-template-columns:180px minmax(200px,1fr) auto;margin-bottom:12px}@media(max-width:760px){.sector-layout{grid-template-columns:1fr}.new-sector{width:100%}.new-sector input{min-width:0;flex:1}}
@media(min-width:1101px){body .visual-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:10px 0}.visual-kpi{min-height:68px;padding:9px 11px;border-radius:8px}.visual-kpi strong,.visual-kpi.light strong{font-size:16px;margin:5px 0 1px;line-height:1.15}.visual-kpi span,.visual-kpi small{font-size:10px}.visual-kpi .awaiting{font-size:12px;margin:7px 0 3px}}

/* Design system oficial: gn-data-visual-base.zip */
:root{--sidebar-bg:#081a2d;--sidebar-hover:#102d4d;--sidebar-active:#0d76f7;--surface:#fff;--background:#eef3f8;--border:#dce6ef;--text:#14243a;--text-muted:#6f8398;--primary:#0d76f7;--success:#0aa35b;--warning:#ff7a00;--danger:#dc2f2f;--nav:var(--sidebar-bg);--nav2:var(--sidebar-hover);--blue:var(--primary);--blue2:#0869e0;--bg:var(--background);--panel:var(--surface);--line:var(--border);--muted:var(--text-muted);--ok:var(--success);--warn:var(--warning);--bad:var(--danger);--shadow:0 8px 24px rgba(23,62,101,.06);--sidebar:224px}
html,body{font-family:"Segoe UI",Arial,sans-serif;font-size:13px}.sidebar{inset:0 auto 28px 0;background:linear-gradient(#071526,#0a2745);color:#93afc9}.sidebar .brand{height:66px;padding:0 18px;border-bottom:1px solid #ffffff12}.brand-logo{width:34px;height:34px;flex-basis:34px}.brand-copy strong{font-size:20px}.brand-copy small{color:#7694b2}.nav-section{color:#7294b5;font-size:9px;padding:18px 18px 5px}.nav-link{margin:2px 10px;padding:10px 11px;border-radius:7px}.nav-link:hover{background:#ffffff0d}.nav-link.active{background:linear-gradient(90deg,#0867e9,#0d7df6)}
.topbar{height:58px;background:linear-gradient(90deg,#0c223d,#143656);border:0;color:#fff;padding:0 16px}.topbar .breadcrumb,.topbar .user-role{color:#8da8c1}.topbar .btn{border-color:#ffffff24;background:#ffffff0b;color:#fff}.topbar .btn-danger{color:#ffd9d6}.page-title{font-size:16px}.content{padding:18px;max-width:none}.card,.section,.modal{border-radius:11px;box-shadow:var(--shadow)}.btn{border-radius:7px}.btn-primary{background:linear-gradient(#0e7efd,#0869e0)}.data-table th{background:#edf4fb;color:#285175}.metric-value{color:#153b61}.login-page{background:linear-gradient(135deg,#071526,#143656)}.login-card{border-radius:11px}.statusbar{background:#071526}
.visual-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}.visual-heading small{color:#63809d}.visual-heading h1{font-size:21px;margin:6px 0 3px}.visual-heading p{margin:0;color:var(--muted)}.visual-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.visual-actions input,.visual-actions button,.inline-search input,.inline-search button{height:34px;border:1px solid var(--border);border-radius:7px;background:#fff;padding:0 9px}.visual-primary{background:linear-gradient(#0e7efd,#0869e0)!important;color:#fff!important;border:1px solid #0869e0!important;border-radius:7px;font-weight:700;padding:0 10px}.visual-kpis{display:grid;grid-template-columns:1.15fr 1.15fr 1.15fr 1.15fr .75fr .75fr;gap:10px;margin:14px 0}.visual-kpi{border-radius:10px;padding:14px;color:#fff;min-height:92px;box-shadow:var(--shadow);min-width:0}.visual-kpi span,.visual-kpi small{display:block}.visual-kpi strong{display:block;font-size:22px;margin:10px 0 2px;overflow-wrap:anywhere}.visual-kpi.blue{background:linear-gradient(135deg,#0871f1,#13a3f3)}.visual-kpi.green{background:linear-gradient(135deg,#0b9d58,#10b66c)}.visual-kpi.orange{background:linear-gradient(135deg,#ff7300,#ff9800)}.visual-kpi.purple{background:linear-gradient(135deg,#6d34ed,#8355f6)}.visual-kpi.light{background:#fff;color:#173452;border:1px solid var(--border)}.visual-kpi.light strong{font-size:18px}.visual-kpi.danger strong,.red-text{color:#dc2f2f}.visual-kpi .awaiting{color:inherit;font-size:14px;margin:15px 0 7px}.visual-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px;overflow:auto}.visual-tabs button{height:34px;padding:0 9px;background:none;border:0;color:#536a81;white-space:nowrap}.visual-tabs button.active{color:#0d70e8;border-bottom:2px solid #0d70e8;font-weight:700}
.cost-product-panel{overflow:visible}.cost-subproduct-selector{position:relative}.cost-subproduct-options{display:none;position:absolute;z-index:100;top:38px;left:0;width:300px;max-width:calc(100vw - 40px);max-height:320px;overflow-y:auto;background:#fff;border:1px solid #b9cfe3;border-radius:8px;box-shadow:0 10px 26px rgba(20,52,82,.2);padding:4px}.cost-subproduct-options.open{display:block}.cost-subproduct-option{display:grid;grid-template-columns:1fr auto;gap:3px 8px;width:100%;padding:9px;text-align:left;border:0;border-bottom:1px solid #e6edf4;border-radius:6px;background:#fff;color:#173452;cursor:pointer}.cost-subproduct-option:hover{background:#edf5fd}.cost-subproduct-option.selected{background:#dcecff;box-shadow:inset 3px 0 #0d70e8}.cost-subproduct-option strong{grid-column:1 / 3;color:#0d70e8}.cost-subproduct-option span{font-size:10px;overflow-wrap:anywhere}.cost-subproduct-option small{color:#52708c;font-weight:700;text-align:right;white-space:nowrap}.cost-subproduct-message{padding:12px;color:var(--muted);font-size:10px}

.cost-main-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}.cost-main-kpis .visual-kpi{min-height:64px!important;padding:10px 12px!important}.erp-strip{display:grid;grid-template-columns:repeat(4,1fr) auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:9px 13px;margin-bottom:12px}.erp-strip div{display:flex;gap:8px;align-items:baseline}.erp-strip span{color:var(--muted);font-size:10px}.erp-status{color:#0d70e8}.cost-tab-panel{display:none}.cost-tab-panel.active{display:block}.cost-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cost-summary-grid dl,.cost-tab-panel details dl{display:grid;grid-template-columns:1fr auto;gap:8px}.cost-summary-grid dd,.cost-tab-panel details dd{margin:0;text-align:right;font-weight:700}.diagnostic-compact{padding:9px 12px}.cost-tab-panel details{border-top:1px solid var(--border);padding:9px 0}.cost-tab-panel summary{cursor:pointer;color:#285175}.movement-detail td{padding:0 8px 5px!important;background:#fafcff}.products-cost-filters{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0}.products-cost-filters input,.products-cost-filters select,.products-cost-filters button{height:32px;border:1px solid var(--border);border-radius:6px;padding:0 8px}.print-meta{display:none}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head .no-print{display:flex;gap:6px}
@media(max-width:900px){.cost-main-kpis{grid-template-columns:repeat(2,1fr)!important}.erp-strip{grid-template-columns:1fr 1fr}.cost-summary-grid{grid-template-columns:1fr}}
@media print{body.printing-costs .sidebar,body.printing-costs .topbar,body.printing-costs .statusbar,body.printing-costs .visual-heading,body.printing-costs .visual-kpis,body.printing-costs .erp-strip,body.printing-costs .visual-tabs,body.printing-costs .cost-tab-panel:not([data-cost-panel="products"]),body.printing-costs .no-print{display:none!important}body.printing-costs .main,body.printing-costs .content{display:block!important;margin:0!important;padding:0!important;width:100%!important}body.printing-costs .cost-tab-panel[data-cost-panel="products"]{display:block!important}body.printing-costs .print-meta{display:block;margin:0 0 10px;font-size:11px}body.printing-costs .visual-card{border:0;box-shadow:none;padding:0}body.printing-costs .visual-table{font-size:8px}body.printing-costs .visual-table th,body.printing-costs .visual-table td{padding:3px;white-space:normal}body.printing-costs h3{color:#000}}
.labor-period{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.labor-period input{margin-left:8px}.labor-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0 24px}.labor-summary{display:grid;gap:10px;margin-top:24px;padding:18px;border-radius:10px;background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb)}.labor-summary div{display:flex;justify-content:space-between}.labor-total{padding-top:10px;border-top:2px solid var(--border,#e5e7eb);font-size:1.1rem}
.equipment-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin:0 0 18px}.equipment-summary>div{display:flex;flex-direction:column;gap:5px;padding:11px;border:1px solid var(--border);border-radius:8px;background:#f8fbfe}.equipment-summary span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.equipment-summary strong{font-size:15px;color:#173b60}.equipment-summary .equipment-total{background:#e7f2ff;border-color:#b9d8f7}.equipment-description{display:block;margin-top:3px}.equipment-form{margin-top:14px}@media(max-width:1100px){.equipment-summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.equipment-summary{grid-template-columns:1fr 1fr}.labor-period{align-items:flex-start;flex-direction:column}}

/* Login institucional */
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(390px,44%) minmax(430px,56%);background:#f2f6fa;overflow:hidden}.login-institutional{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(34px,5vw,72px);color:#fff;background:linear-gradient(145deg,#061526 0%,#0a2948 56%,#0b3d70 100%);isolation:isolate;overflow:hidden}.login-institutional:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom right,#0009,transparent 72%)}.login-shape{position:absolute;z-index:-1;border:1px solid #40a7ff22;border-radius:50%}.login-shape-one{width:440px;height:440px;right:-190px;top:12%;box-shadow:0 0 0 72px #0d76f708,0 0 0 144px #0d76f705}.login-shape-two{width:220px;height:220px;left:-105px;bottom:-60px;background:linear-gradient(135deg,#17a8ff16,transparent)}.login-brand{display:flex;align-items:center;gap:15px}.login-brand img{width:48px;height:48px}.login-brand div{display:flex;flex-direction:column;gap:4px}.login-brand strong{font-size:24px;letter-spacing:.08em}.login-brand span{color:#a9c5de;font-size:12px}.login-institutional-copy{max-width:540px;margin:auto 0}.login-eyebrow{display:block;margin-bottom:18px;color:#5db6ff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.15em}.login-institutional-copy h1{margin:0;font-size:clamp(34px,4vw,58px);line-height:1.06;letter-spacing:-.035em}.login-institutional-copy p{max-width:430px;margin:22px 0 34px;color:#aec5da;font-size:16px;line-height:1.65}.login-institutional-copy small{color:#d2e1ef;font-size:12px;letter-spacing:.055em}.login-institutional-copy i{padding:0 8px;color:#32a8ff;font-style:normal}.login-access{position:relative;display:grid;place-items:center;padding:52px 32px 92px}.login-card{width:min(440px,100%);padding:42px;background:#fff;border:1px solid #e3ebf3;border-radius:16px;box-shadow:0 24px 65px rgba(21,55,90,.12)}.login-card-mark{display:none;align-items:center;gap:10px;margin-bottom:30px;color:#0a2948;font-size:18px;font-weight:800;letter-spacing:.06em}.login-card-mark img{width:34px;height:34px}.login-card header{margin-bottom:30px}.login-card h1{margin:0 0 8px;color:#102b47;font-size:27px;letter-spacing:-.025em}.login-card p{margin:0;color:#71869a;font-size:14px}.login-form{display:grid;gap:18px}.login-form .field{gap:8px}.login-form .field label{color:#334e68;font-size:12px}.login-form .field input{width:100%;height:47px;padding:0 14px;border:1px solid #cbd9e6;border-radius:8px;color:#142b42;background:#fbfdff;outline:none;transition:border-color .16s,box-shadow .16s,background .16s}.login-form .field input::placeholder{color:#9aabba}.login-form .field input:hover{border-color:#9fb5c9}.login-form .field input:focus{border-color:#0d76f7;background:#fff;box-shadow:0 0 0 3px rgba(13,118,247,.13)}.password-field{position:relative}.password-field input{padding-right:48px!important}.password-toggle{position:absolute;top:5px;right:5px;width:38px;height:37px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#668097}.password-toggle:hover,.password-toggle:focus-visible{background:#edf5fd;color:#0d76f7;outline:none}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}.login-error{display:none;min-height:0;padding:10px 12px;border:1px solid #f0c9c6;border-radius:8px;background:#fff4f3;color:#a72d27;font-size:12px;line-height:1.45}.login-error.visible{display:block}.login-submit{height:47px;margin-top:2px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;font-size:14px;box-shadow:0 7px 16px rgba(13,118,247,.2)}.login-submit:disabled{opacity:.78}.login-spinner{display:none;width:16px;height:16px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:login-spin .7s linear infinite}.login-submit.is-loading .login-spinner{display:block}@keyframes login-spin{to{transform:rotate(360deg)}}.login-footer{position:absolute;bottom:30px;display:flex;align-items:center;gap:8px;color:#8394a5;font-size:11px}.login-footer strong{color:#48627a}.login-footer strong:after{content:"";display:inline-block;width:1px;height:12px;margin-left:8px;vertical-align:-2px;background:#ccd7e1}
@media(max-width:980px){.login-page{grid-template-columns:minmax(280px,34%) minmax(430px,66%)}.login-institutional{padding:34px}.login-brand span{display:none}.login-institutional-copy h1{font-size:36px}.login-institutional-copy p{font-size:14px}.login-institutional-copy small{line-height:2}.login-access{padding-inline:28px}}
@media(max-width:700px){.login-page{display:block;min-height:100vh;overflow:auto}.login-institutional{display:none}.login-access{min-height:100vh;padding:32px 20px 86px}.login-card{padding:34px 28px}.login-card-mark{display:flex}.login-footer{bottom:24px;max-width:calc(100% - 40px);text-align:center}}
@media(max-width:400px){.login-access{padding-inline:16px}.login-card{padding:28px 22px;border-radius:13px}.login-card h1{font-size:23px}.login-footer{flex-direction:column;gap:3px}.login-footer strong:after{display:none}}
@media(prefers-reduced-motion:reduce){.login-spinner{animation-duration:1.5s}}
