:root{--brand-green: #10b078;--brand-navy: #101828;--header-bg: #0b1220;--bg: #eef2f6;--bg-elevated: #ffffff;--bg-card: #ffffff;--border: #d8dee8;--border-strong: #c5cedb;--text: #152033;--text-muted: #5b6b7f;--accent: #10b078;--accent-soft: rgba(16, 176, 120, .12);--ok: #0f9f6e;--warn: #c58a12;--danger: #d64545;--info: #2f7ec8;--radius: 10px;--font: "Manrope", system-ui, sans-serif;--display: "Space Grotesk", "Manrope", sans-serif;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 14px rgba(16, 24, 40, .06);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;min-height:58px;padding:0 1.25rem;background:var(--header-bg);border-bottom:1px solid rgba(16,176,120,.22);box-shadow:0 2px 10px #0000002e}.topbar-brand{display:flex;align-items:center;gap:.75rem;min-width:0}.brand{display:flex;align-items:center;padding:.2rem 0}.brand.active{background:transparent}.brand-logo{display:block;height:32px;width:auto;max-width:150px;object-fit:contain}.brand-divider{width:1px;height:22px;background:#ffffff24}.brand-product{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#e8eef59e;white-space:nowrap}.nav{display:flex;align-items:center;gap:.2rem;min-width:0;overflow-x:auto}.nav a{flex-shrink:0;padding:.45rem .85rem;border-radius:8px;color:#e8eef5ad;font-size:.9rem;font-weight:560;border:1px solid transparent;transition:background .15s ease,color .15s ease}.nav a:hover{color:#fff;background:#ffffff0f}.nav a.active{color:#fff;background:#10b0782e;border-color:#10b07859}.topbar-user{display:flex;align-items:center;gap:.75rem}.user-meta{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-name{font-size:.86rem;font-weight:600;color:#e8eef5}.user-role{font-size:.72rem;color:#e8eef580}.main{flex:1;min-width:0}.main-inner{width:100%;max-width:none;margin:0;padding:1.25rem 1.5rem 2.25rem}.main-inner--wide{width:100%;max-width:none;margin:0;padding:1.25rem 2rem 2.25rem}.main-inner--wide .plant-detail,.dash,.plants,.payments-page,.alerts-page,.invoices-page,.maintenances-page,.clients-page,.cm-page{width:100%;max-width:none}.alerts-page{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.diagnostic-suite-panel{margin-bottom:1rem}.diagnostic-suite-block{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.diagnostic-suite-block h3{margin:0 0 .5rem;font-size:.95rem}.diagnostic-suite-cases{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.diagnostic-suite-case-head{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;font-size:.86rem}.diagnostic-suite-case-detail{margin:.25rem 0 .35rem .15rem;padding-left:.65rem;border-left:2px solid var(--danger);font-size:.8rem;line-height:1.45}.diagnostic-suite-case-detail ul{margin:.3rem 0 0;padding-left:1.1rem}.alerts-panel-header{align-items:flex-start;gap:.85rem 1rem}.alerts-filters{flex:1 1 420px;justify-content:flex-end}.alerts-filters .input,.alerts-filters .select{min-width:0}.alerts-filters .select:first-child{flex:0 0 auto;min-width:7.5rem}.alerts-filters .alerts-search{flex:1 1 220px;min-width:180px;max-width:420px}.alert-plant-list{display:flex;flex-direction:column;gap:.7rem;padding:.75rem .85rem .95rem;width:100%;max-width:1080px;margin-inline:auto}.alert-plant-card{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.alert-plant-card.has-open{border-color:#d6454538}.alert-plant-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;background:#f8fafc;border-bottom:1px solid var(--border)}.alert-plant-card.has-open .alert-plant-card-head{background:linear-gradient(90deg,#d645450f,#f8fafc 48%)}.alert-plant-card-title{min-width:0}.alert-plant-card-title h3{margin:0;font-size:.95rem;font-family:var(--display);font-weight:700;color:var(--brand-navy);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-plant-card-title p{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.28rem 0 0;font-size:.78rem}.alert-plant-card-body{display:flex;flex-direction:column}.alert-plant-more{width:100%;padding:.45rem .8rem;border:0;border-top:1px solid var(--border);background:#f8fafc;color:var(--text-muted);font-size:.78rem;font-weight:650;text-align:center}.alert-plant-more:hover{background:#eef3f8;color:var(--brand-navy)}.alert-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem .75rem;padding:.48rem .8rem;border-bottom:1px solid var(--border);background:#fff}.alert-compact:last-child{border-bottom:none}.alert-compact.open{background:linear-gradient(90deg,#d645450a,#fff 36%)}.alert-compact:hover{background:#f8fafc}.alert-compact.open:hover{background:linear-gradient(90deg,#d6454512,#f8fafc 36%)}.alert-compact.open.info{background:linear-gradient(90deg,#2f7ec80f,#fff 36%)}.alert-compact.open.info:hover{background:linear-gradient(90deg,#2f7ec81a,#f8fafc 36%)}.alert-compact.resolved{opacity:.78}.alert-compact-main{display:flex;align-items:center;gap:.55rem;min-width:0}.alert-compact-code{flex-shrink:0;max-width:11.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-compact-copy{min-width:0;flex:1}.alert-compact-msg{margin:0;font-size:.82rem;line-height:1.3;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-compact-meta{margin:.12rem 0 0;font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-compact-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.3rem;flex-shrink:0}.alert-compact-actions .btn-sm{padding:.22rem .5rem;font-size:.74rem}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:.25rem;padding:1.35rem 1.5rem;border-radius:16px;border:1px solid rgba(16,176,120,.16);background:radial-gradient(720px 220px at 0% -30%,rgba(16,176,120,.14),transparent 55%),radial-gradient(520px 180px at 100% 0%,rgba(16,24,40,.04),transparent 50%),linear-gradient(180deg,#fff,#f5f8f7);box-shadow:0 1px 2px #1018280a,0 10px 28px #1018280d}.page-header h1{margin:0;font-family:var(--display);font-size:clamp(1.45rem,2.2vw,1.85rem);font-weight:700;letter-spacing:-.03em;color:var(--brand-navy)}.page-header p{margin:.4rem 0 0;max-width:42rem;color:var(--text-muted);font-size:.92rem;line-height:1.5}.page-header-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.85rem;margin-bottom:1.15rem}.stat{position:relative;padding:.95rem 1rem .95rem 1.05rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow-sm);overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand-green)}.stat .label{color:var(--text-muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.stat .value{margin-top:.35rem;font-family:var(--display);font-size:1.65rem;font-weight:700;color:var(--brand-navy);line-height:1.1}.panel{border:1px solid var(--border);background:var(--bg-card);border-radius:16px;box-shadow:0 1px 2px #1018280a,0 12px 28px #1018280b;overflow:hidden}.panel-header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.95rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fbfcfd,#f7f9fb)}.panel-header h2{margin:0;font-size:.95rem;font-family:var(--display);font-weight:650;color:var(--brand-navy)}.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.filter-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.86rem;color:var(--text-muted);font-weight:600;white-space:nowrap}tr.row-alert td{background:#d645450a}.input,.select,.btn{border-radius:8px;border:1px solid var(--border-strong);background:#fff;color:var(--text);padding:.5rem .75rem;font-size:.9rem}.input:focus,.select:focus{outline:2px solid rgba(16,176,120,.35);outline-offset:0;border-color:var(--brand-green)}.btn{background:var(--accent);color:#fff;border-color:transparent;font-weight:650;transition:background .15s ease,box-shadow .15s ease}.btn:hover{background:#0e9a68;box-shadow:0 2px 8px #10b07847}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn.secondary{background:#fff;color:var(--text);border-color:var(--border-strong);box-shadow:none}.btn.secondary:hover{background:#f4f7fa;box-shadow:none}.btn.danger{background:#d645451a;color:var(--danger);border-color:#d6454559}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.topbar .btn.secondary{background:transparent;color:#e8eef5;border-color:#ffffff2e}.topbar .btn.secondary:hover{background:#ffffff14}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap;font-size:.9rem}th{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;background:#f8fafc}tr:last-child td{border-bottom:none}tr:hover td{background:#f5faf8}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .5rem;border-radius:6px;font-size:.72rem;font-weight:700;border:1px solid transparent}.badge.ok{background:#0f9f6e1f;color:var(--ok);border-color:#0f9f6e40}.badge.warn{background:#c58a121f;color:var(--warn);border-color:#c58a1240}.badge.danger{background:#d645451a;color:var(--danger);border-color:#d6454547}.badge.pending{background:#92682a1f;color:#7a5518;border-color:#92682a52}.badge.info{background:#2f7ec81a;color:var(--info);border-color:#2f7ec840}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(ellipse 60% 50% at 15% 0%,rgba(16,176,120,.18),transparent 55%),linear-gradient(165deg,#05070b,#0b1220 55%,#101828)}.login-card{width:min(400px,100%);padding:2rem;border-radius:12px;border:1px solid rgba(16,176,120,.22);background:#0b1220eb;box-shadow:0 16px 40px #00000059;text-align:center;color:#e8eef5}.login-logo{display:block;width:min(240px,100%);height:auto;margin:0 auto .85rem;object-fit:contain}.login-kicker,.login-card p{color:#e8eef59e;margin:0 0 1.35rem;font-size:.92rem}.login-card .form-stack{text-align:left}.login-card .input{background:#00000059;border-color:#ffffff24;color:#e8eef5}.login-card .form-stack label{color:#e8eef5a6}.form-stack{display:flex;flex-direction:column;gap:.85rem}.form-stack label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--text-muted)}.error-banner{padding:.7rem .85rem;border-radius:8px;background:#d645451a;border:1px solid rgba(214,69,69,.3);color:#b42318;margin-bottom:1rem;font-size:.9rem}.login-card .error-banner{color:#ffb4ab;background:#e86a5c26}.muted{color:var(--text-muted)}.map-link{color:var(--brand-green);font-weight:600;text-decoration:underline;text-underline-offset:2px}.map-link:hover{color:#0e9a68}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.dash{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.dash-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:1.25rem;align-items:stretch;padding:1.35rem 1.5rem;border-radius:16px;border:1px solid rgba(16,176,120,.16);background:radial-gradient(1200px 280px at 8% -40%,rgba(16,176,120,.16),transparent 55%),radial-gradient(900px 240px at 100% 0%,rgba(16,24,40,.05),transparent 50%),linear-gradient(180deg,#fff,#f7faf9);box-shadow:0 1px 2px #1018280a,0 10px 28px #1018280d;overflow:hidden}.dash-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-green)}.dash-hero h1{margin:0;font-family:var(--display);font-size:clamp(1.45rem,2.2vw,1.85rem);font-weight:700;letter-spacing:-.03em;color:var(--brand-navy)}.dash-lead{margin:.45rem 0 0;max-width:38rem;color:var(--text-muted);font-size:.95rem;line-height:1.45}.dash-hero-side{display:flex;flex-direction:column;justify-content:space-between;gap:.85rem}.dash-pulse{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem .95rem;border-radius:10px;border:1px solid var(--border);background:#ffffffd1}.dash-pulse strong{display:block;font-size:.92rem;color:var(--brand-navy)}.dash-pulse span:last-child{display:block;margin-top:.15rem;font-size:.8rem;color:var(--text-muted)}.dash-pulse-dot{width:10px;height:10px;margin-top:.35rem;border-radius:50%;background:var(--text-muted);box-shadow:0 0 #5b6b7f59;flex-shrink:0}.dash-pulse.ok .dash-pulse-dot{background:var(--ok);animation:dash-pulse 2s ease-out infinite;box-shadow:0 0 #0f9f6e73}.dash-pulse.alert .dash-pulse-dot{background:var(--danger);animation:dash-pulse-alert 1.6s ease-out infinite;box-shadow:0 0 #d6454566}.dash-pulse.ok{border-color:#0f9f6e47;background:#0f9f6e0f}.dash-pulse.alert{border-color:#d6454547;background:#d645450f}@keyframes dash-pulse{0%{box-shadow:0 0 #0f9f6e73}70%{box-shadow:0 0 0 10px #0f9f6e00}to{box-shadow:0 0 #0f9f6e00}}@keyframes dash-pulse-alert{0%{box-shadow:0 0 #d6454566}70%{box-shadow:0 0 0 10px #d6454500}to{box-shadow:0 0 #d6454500}}.dash-quick{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.dash-kpi{position:relative;padding:1.05rem 1.15rem 1.1rem;border-radius:14px;border:1px solid var(--border);background:var(--bg-card);box-shadow:0 1px 2px #1018280a,0 8px 20px #1018280a;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.dash-kpi:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.dash-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand-green)}.dash-kpi.tone-ok:before{background:var(--ok)}.dash-kpi.tone-warn:before{background:var(--warn)}.dash-kpi.tone-danger:before{background:var(--danger)}.dash-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dash-kpi-label{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.dash-eye-btn{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border:0;border-radius:999px;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0}.dash-eye-btn:hover{color:var(--brand-navy);background:#1018280f}.dash-kpi-chip{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:999px;font-size:.68rem;font-weight:700;color:var(--text-muted);background:#eef2f6;border:1px solid var(--border)}.dash-kpi-chip.ok{color:var(--ok);background:#0f9f6e1a;border-color:#0f9f6e38}.dash-kpi-chip.warn{color:var(--warn);background:#c58a121a;border-color:#c58a1238}.dash-kpi-chip.danger{color:var(--danger);background:#d645451a;border-color:#d6454538}.dash-kpi-value{margin-top:.45rem;font-family:var(--display);font-size:2rem;font-weight:700;letter-spacing:-.03em;color:var(--brand-navy);line-height:1}.dash-kpi-meta{margin:.55rem 0 0;font-size:.8rem;color:var(--text-muted)}.dash-kpi-meta a{color:var(--brand-green);font-weight:650}.dash-kpi-meta a:hover{text-decoration:underline;text-underline-offset:2px}.dash-meter{margin-top:.65rem;height:6px;border-radius:999px;background:#e8eef5;overflow:hidden}.dash-meter>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0e9a68,#2dd4a0);transition:width .35s ease}.dash-panels{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem}.dash-panel-sub{margin:.2rem 0 0;font-size:.78rem;color:var(--text-muted);font-weight:500}.dash-provider-list,.dash-alert-list{display:flex;flex-direction:column;gap:.35rem;padding:.75rem}.dash-provider-row{display:block;padding:.7rem .8rem;border-radius:8px;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.dash-provider-row:hover{background:#f5faf8;border-color:#10b07838}.dash-provider-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.dash-provider-head strong{font-size:.92rem;text-transform:capitalize;color:var(--brand-navy)}.dash-provider-head span{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.dash-bar{height:8px;border-radius:999px;background:#e8eef5;overflow:hidden}.dash-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#10b078bf,#10b07859);transition:width .35s ease}.dash-alert-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .8rem;border-radius:8px;border:1px solid rgba(214,69,69,.12);background:#d6454508}.dash-alert-right{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.dash-alert-left{display:flex;align-items:flex-start;gap:.65rem;min-width:0}.dash-alert-left strong{display:block;font-size:.9rem;text-transform:capitalize;color:var(--brand-navy)}.dash-alert-left span{display:block;margin-top:.1rem;font-size:.76rem;color:var(--text-muted)}.dash-empty,.dash-empty-state{padding:1.1rem .85rem}.dash-empty-state{display:flex;align-items:flex-start;gap:.7rem;border-radius:8px;border:1px dashed var(--border);background:#f8fafc}.dash-empty-state strong{display:block;color:var(--brand-navy);font-size:.9rem}.dash-empty-state p{margin:.2rem 0 0;font-size:.8rem}.plants{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.plants-hero{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:1.25rem 1.5rem;align-items:center;padding:1.4rem 1.55rem;border-radius:18px;border:1px solid rgba(16,176,120,.14);background:radial-gradient(900px 240px at 0% -40%,rgba(16,176,120,.18),transparent 55%),radial-gradient(520px 180px at 100% 0%,rgba(16,24,40,.04),transparent 48%),linear-gradient(180deg,#fff,#f4f8f6);box-shadow:0 1px 2px #1018280a,0 14px 32px #1018280d}.plants-hero h1{margin:0;font-family:var(--display);font-size:clamp(1.6rem,2.5vw,2rem);font-weight:700;letter-spacing:-.035em;color:var(--brand-navy)}.plants-hero-side{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.85rem}.plants-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}.plants-hero-actions .btn{white-space:nowrap}.plants-live-hint{margin:0;max-width:16rem;font-size:.72rem;line-height:1.35;color:var(--text-muted);text-align:right}.plants-summary{display:flex;gap:.5rem}.plants-summary-item{min-width:5.2rem;padding:.7rem .9rem;border-radius:14px;border:1px solid rgba(16,24,40,.07);background:#ffffffe0;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.plants-summary-item span{display:block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.plants-summary-item strong{display:block;margin-top:.3rem;font-family:var(--display);font-size:1.35rem;letter-spacing:-.03em;color:var(--brand-navy);line-height:1}.plants-summary-item.alert{border-color:#d6454538;background:#d6454512}.plants-summary-item.alert strong{color:var(--danger)}.plants-scan-msg{padding:.8rem 1rem;border-radius:12px;border:1px solid rgba(16,176,120,.22);background:#10b07814;color:var(--ok);font-size:.86rem;font-weight:600}.plants-panel{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 1px 2px #1018280a,0 14px 32px #1018280b}.plants-panel-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem 1rem;border-bottom:1px solid rgba(216,222,232,.85);background:linear-gradient(180deg,#fcfdfe,#f7f9fb)}.plants-panel-copy h2{margin:0;font-family:var(--display);font-size:1.05rem;font-weight:700;color:var(--brand-navy)}.plants-panel-copy p{margin:.25rem 0 0;font-size:.8rem;color:var(--text-muted)}.plants-toolbar-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;max-width:100%}.plants-search{flex:1 1 220px;min-width:180px;max-width:280px}.plants-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .75rem;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:.8rem;font-weight:650;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.plants-toggle.on{color:#a12d2d;border-color:#d645454d;background:#d6454514}.plants-toggle.dim.on{color:var(--brand-navy);border-color:#1018282e;background:#1018280f}.plants-table-head{display:grid;grid-template-columns:minmax(11rem,2fr) 7.1rem 7.1rem 7.1rem 7rem minmax(9rem,1.1fr) minmax(12rem,auto);gap:.75rem .85rem;align-items:end;padding:.55rem 1.25rem .5rem;border-bottom:1px solid var(--border);background:#fafbfc;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7a8798}.plants-th-power{text-align:center}.plants-th-actions{text-align:right}.plants-list{display:flex;flex-direction:column}.plants-queue+.plants-queue{border-top:1px solid var(--border)}.plants-queue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem 1.25rem .7rem;background:#f8fafc;border-bottom:1px solid rgba(216,222,232,.75)}.plants-queue-head h3{margin:0;font-size:.9rem;font-family:var(--display);font-weight:700;color:var(--brand-navy)}.plants-queue-head p{margin:.18rem 0 0;font-size:.76rem;color:var(--text-muted)}.plants-queue-count{flex-shrink:0;min-width:1.75rem;padding:.18rem .45rem;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:.76rem;font-weight:700;text-align:center;color:var(--brand-navy)}.plants-queue-action .plants-queue-head{background:#d645450d}.plants-queue-action .plants-queue-head h3,.plants-queue-action .plants-queue-count{color:var(--danger)}.plants-queue-action .plants-queue-count{border-color:#d6454538;background:#d6454514}.plants-queue-treatment .plants-queue-head{background:#c4953a14}.plants-queue-treatment .plants-queue-head h3,.plants-queue-treatment .plants-queue-count{color:#7a5518}.plants-queue-treatment .plants-queue-count{border-color:#92682a40;background:#c4953a1f}.plant-rank{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.2rem;height:2.2rem;border-radius:12px;font-size:.78rem;font-weight:800;color:#fff;background:var(--danger)}.plants-queue-treatment .plant-rank{background:#b8862a}.plant-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.2rem;height:2.2rem;border-radius:12px;border:1px solid rgba(16,176,120,.16);background:linear-gradient(145deg,#10b07829,#10b0780a);color:#0b7a54;font-family:var(--display);font-size:.72rem;font-weight:700;letter-spacing:.02em}.plant-avatar.alert{border-color:#d6454538;background:linear-gradient(145deg,#d6454529,#d645450a);color:#b42318}.plant-avatar.pending{border-color:#b8862a47;background:linear-gradient(145deg,#c4953a2e,#c4953a0d);color:#7a5518}.plant-avatar.warn{border-color:#c58a1240;background:linear-gradient(145deg,#c58a1229,#c58a120a);color:#8a6208}.plant-row{display:grid;grid-template-columns:minmax(11rem,2fr) 7.1rem 7.1rem 7.1rem 7rem minmax(9rem,1.1fr) minmax(12rem,auto);align-items:center;gap:.75rem .85rem;min-height:4.4rem;padding:.85rem 1.25rem;border-bottom:1px solid rgba(216,222,232,.7);background:#fff;transition:background .15s ease}.plant-row:last-child{border-bottom:none}.plant-row:hover{background:#f6faf8}.plant-row.has-alert{background:linear-gradient(90deg,#d645450b,#fff 18%);box-shadow:inset 3px 0 #d64545}.plant-row.has-alert:hover{background:linear-gradient(90deg,#d6454512,#f6faf8 18%)}.plant-row.awaiting-fix{background:linear-gradient(90deg,#c4953a14,#fff 20%);box-shadow:inset 3px 0 #b8862a}.plant-row.awaiting-fix:hover{background:linear-gradient(90deg,#c4953a1f,#f6faf8 20%)}.plant-row.has-maint:not(.has-alert):not(.awaiting-fix){box-shadow:inset 3px 0 #e2b93a}.plant-row.inactive{opacity:.78}.plant-row-identity{display:flex;align-items:center;gap:.75rem;min-width:0}.plant-row-title-text{min-width:0}.plant-row-title-text h3{margin:0;display:inline-flex;align-items:center;gap:.35rem;font-size:.94rem;font-family:var(--display);font-weight:650;color:var(--brand-navy);letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.plant-type-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.05rem;height:1.05rem;color:#6b7c8f;opacity:.92}.plant-type-icon--telhado{color:#3d6ea5}.plant-type-icon--solo{color:#2f8a5b}.plant-type-icon--misto{color:#8a6a2f}.plant-row-title-text p{margin:.18rem 0 0;font-size:.76rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plant-row-meta{display:flex;flex-wrap:wrap;gap:.28rem;min-width:0}.plant-row-powers{display:contents}.plant-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;min-width:0;min-height:2.85rem;padding:.38rem .45rem;border-radius:12px;border:1px solid transparent;background:#f4f7fa;font-variant-numeric:tabular-nums;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.plant-metric-label{display:none;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a8798;line-height:1}.plant-metric-value{display:inline-flex;align-items:baseline;justify-content:center;gap:.22rem;max-width:100%;line-height:1.1}.plant-metric-value strong{font-family:var(--display);font-size:.98rem;font-weight:700;letter-spacing:-.02em;color:var(--brand-navy);white-space:nowrap}.plant-metric-unit{font-family:var(--font);font-size:.68rem;font-weight:650;color:#8090a3;letter-spacing:.01em}.plant-metric-empty,.plant-metric-loading{font-family:var(--display);font-size:.95rem;font-weight:600;color:#9aa8b8;line-height:1.1}.plant-metric--kwp{background:linear-gradient(180deg,#f7f9fc,#eef2f7);border-color:#1018280f}.plant-metric--live{background:linear-gradient(180deg,#10b0781a,#10b0780b);border-color:#10b07829;box-shadow:inset 0 1px #ffffff8c}.plant-metric--live .plant-metric-value strong{color:#0b7a54}.plant-metric--live .plant-metric-unit{color:#2f9a6f}.plant-metric--day{background:linear-gradient(180deg,#2f7ec81a,#2f7ec80a);border-color:#2f7ec829;box-shadow:inset 0 1px #ffffff8c}.plant-metric--day .plant-metric-value strong{color:#1d5f9c}.plant-metric--day .plant-metric-unit{color:#4a7fb0}.plant-metric.is-refreshing{opacity:.7}.plant-row-kwp,.plant-row-power{display:flex;align-items:baseline;gap:.28rem;min-width:0;font-variant-numeric:tabular-nums;color:var(--brand-navy)}.plant-row-kwp strong,.plant-row-power strong{font-family:var(--font);font-size:.95rem;font-weight:650;letter-spacing:-.01em;line-height:1.15}.plant-row-kwp>span,.plant-row-power>span{font-family:var(--font);font-size:.72rem;font-weight:550;color:var(--text-muted)}.plant-row-kwp-empty,.plant-row-power-empty,.plant-row-power-loading{color:var(--text-muted);font-size:.9rem}.plant-row-power--live strong{color:#1f6b4a}.plant-row-power--day strong{color:#2a5f8f}.plant-row-power--live.is-refreshing,.plant-row-power--day.is-refreshing{opacity:.72}.plant-chip{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.01em;line-height:1.2;white-space:nowrap;background:#eef2f6;color:#5b6b7f}.plant-chip--emoji,.plant-chip--icon{justify-content:center;gap:.2rem;min-width:1.85rem;height:1.85rem;padding:0 .4rem;font-size:.92rem;font-weight:500;line-height:1;background:transparent}.plant-chip--icon svg{display:block;flex-shrink:0}.plant-chip--emoji em,.plant-chip--icon em{font-style:normal;font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;color:#c45b55}.plant-chip.ok,.plant-chip.ok.plant-chip--emoji,.plant-chip.ok.plant-chip--icon{color:#0f7a56;background:#0f9f6e1a}.plant-chip.warn{color:#8a6208;background:#c58a121f}.plant-chip.warn.plant-chip--emoji,.plant-chip.warn.plant-chip--icon{color:#9a7418;background:#c58a121a}.plant-chip.danger{color:#b42318;background:#d645451a}.plant-chip.danger.plant-chip--emoji,.plant-chip.danger.plant-chip--icon{color:#c43b35;background:#d645451a}.plant-chip.pending{color:#7a5518;background:#c4953a24}.plant-chip.pending.plant-chip--emoji,.plant-chip.pending.plant-chip--icon{color:#8a6a28;background:#c4953a1f}.plant-row-alert-cell{min-width:0}.plant-issue{display:flex;flex-direction:column;gap:.12rem;min-width:0}.plant-issue strong{font-size:.82rem;font-weight:550;letter-spacing:-.01em;color:#8a97a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plant-issue.is-alert strong{color:#c45b55;font-weight:550}.plant-issue.is-pending strong,.plant-issue.is-maint strong{color:#a4844a;font-weight:550}.plant-issue time{font-size:.72rem;font-weight:500;color:var(--text-muted)}.plant-issue.is-quiet{font-size:.82rem;font-weight:550;color:#8a97a8}.plant-row-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.15rem .55rem;min-width:0}.plant-link-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:.2rem .15rem;color:#425466;font-size:.78rem;font-weight:650;text-decoration:none;cursor:pointer;white-space:nowrap}.plant-link-btn:hover{color:var(--brand-green)}.plant-link-btn:disabled{opacity:.55;cursor:not-allowed}.plant-row-actions .btn-sm{margin-left:.2rem;padding:.3rem .7rem;font-size:.76rem;border-radius:9px;white-space:nowrap}.plants-empty{padding:1.25rem}.plants-empty-state{margin:1.25rem;padding:1.6rem;border-radius:14px;border:1px dashed var(--border-strong);background:#fbfcfd;text-align:center}.plants-empty-state strong{display:block;color:var(--brand-navy);font-family:var(--display)}.plants-empty-state p{margin:.35rem 0 0}.payments-page{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.payments-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.1rem 1.5rem;padding:1.35rem 1.5rem;border-radius:16px;border:1px solid rgba(16,176,120,.16);background:radial-gradient(720px 220px at 0% -30%,rgba(16,176,120,.16),transparent 55%),radial-gradient(520px 180px at 100% 0%,rgba(16,24,40,.05),transparent 50%),linear-gradient(180deg,#fff,#f5f8f7);box-shadow:0 1px 2px #1018280a,0 10px 28px #1018280d}.payments-hero-copy{flex:1 1 280px;min-width:0;max-width:40rem;display:flex;flex-direction:column;justify-content:center}.payments-title-row{display:flex;align-items:center;gap:.45rem;margin:.15rem 0 .4rem}.payments-title-row h1{margin:0;font-family:var(--display);font-size:clamp(1.55rem,2.4vw,1.85rem);font-weight:700;letter-spacing:-.03em;color:var(--brand-navy);line-height:1.15}.payments-eye-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:999px;background:transparent;color:var(--text-muted);cursor:pointer}.payments-eye-btn:hover,.payments-eye-btn[aria-pressed=true]{color:var(--brand-navy);background:#1018280f}.payments-money{display:inline-block;transition:filter .18s ease}.payments-money.is-hidden{filter:blur(8px);-webkit-user-select:none;user-select:none}.payments-hero-copy .dash-lead{margin:0;font-size:.92rem;line-height:1.5;max-width:38rem}.payments-env-pill{display:inline-flex;align-items:center;gap:.4rem;margin-top:.85rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:#ffffffd9;font-size:.76rem;font-weight:600;color:var(--text-muted)}.payments-env-pill.is-warn{border-color:#c58a1259;background:#c58a1214;color:#8a6208}.payments-env-dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}.payments-env-dot.is-sandbox{background:var(--warn)}.payments-env-dot.is-prod{background:var(--ok)}.payments-kpi-grid{display:grid;grid-template-columns:repeat(3,max-content);gap:.55rem;flex:0 0 auto;width:max-content;max-width:100%}.payments-kpi{display:flex;flex-direction:column;gap:.12rem;width:9.75rem;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--border);background:#fffffff2;box-shadow:var(--shadow-sm)}.payments-kpi span{font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.payments-kpi strong{font-family:var(--display);font-size:1.12rem;color:var(--brand-navy);letter-spacing:-.02em;line-height:1.15;word-break:break-word}.payments-kpi small{font-size:.72rem;color:var(--text-muted);line-height:1.3}.payments-kpi.is-ok strong{color:var(--ok)}.payments-progress{height:4px;margin-top:.15rem;border-radius:999px;background:#10182814;overflow:hidden}.payments-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f9f6e,#10b078);transition:width .35s ease}@media(max-width:900px){.payments-kpi-grid{grid-template-columns:1fr;width:100%}.payments-kpi{width:100%}.payments-hero-copy{max-width:none}}.payments-panel{overflow:visible;padding:1.05rem 1.25rem 1.2rem;border-radius:16px}.payments-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.payments-toolbar h2{margin:0;font-size:1rem;color:var(--brand-navy)}.payments-toolbar .dash-panel-sub{margin:.15rem 0 0}.payments-filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.payments-search{width:min(320px,100%);max-width:100%;flex:1 1 220px}.payments-chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:.7rem 0 .45rem}.payments-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .65rem;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-muted);font-size:.8rem;font-weight:600}.payments-chip em{font-style:normal;min-width:1.2rem;padding:.02rem .35rem;border-radius:999px;background:#1018280f;font-size:.72rem;text-align:center}.payments-chip.is-active{border-color:#10b07873;background:var(--accent-soft);color:var(--brand-navy)}.payments-chip.is-active em{background:#10b0782e;color:var(--ok)}.payments-list{padding-top:.25rem}.payments-empty{padding:1.5rem .5rem;text-align:center}.payments-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:visible;background:#fff}.payments-table-head,.payments-row{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem minmax(7.5rem,10rem) minmax(8.5rem,12rem);gap:.85rem;align-items:center;padding:.65rem .85rem}.payments-table-head{background:#f7f9fb;border-bottom:1px solid var(--border);border-radius:10px 10px 0 0;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.payments-table-head .is-num,.payments-table-head .is-actions{text-align:right}.payments-row{border-bottom:1px solid #eef2f6;min-height:54px}.payments-row:last-child{border-bottom:0;border-radius:0 0 10px 10px}.payments-row:hover{background:#fafbfc}.payments-row.is-paid{background:#0f9f6e08}.payments-name-row{display:flex;align-items:center;gap:.4rem;min-width:0}.payments-name{font-size:.9rem;font-weight:700;color:var(--brand-navy);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payments-nf{flex:0 0 auto;font-size:.65rem;font-weight:700;letter-spacing:.03em;color:var(--info);border:1px solid rgba(47,126,200,.35);background:#2f7ec814;border-radius:4px;padding:.05rem .3rem;line-height:1.2}.payments-adiado{flex:0 0 auto;font-size:.65rem;font-weight:700;letter-spacing:.03em;color:var(--info);border:1px solid rgba(47,126,200,.4);background:#2f7ec81a;border-radius:4px;padding:.05rem .3rem;line-height:1.2}.payments-row.is-adiado{opacity:.78}.payments-avisado{flex:0 0 auto;font-size:.65rem;font-weight:700;letter-spacing:.03em;color:var(--ok);border:1px solid rgba(16,176,120,.4);background:#10b0781a;border-radius:4px;padding:.05rem .3rem;line-height:1.2}.payments-meta{margin-top:.12rem;font-size:.73rem;color:var(--text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payments-col-value{font-family:var(--display);font-size:.92rem;font-weight:700;color:var(--brand-navy);font-variant-numeric:tabular-nums;text-align:right}.payments-value-stack{display:flex;flex-direction:column;align-items:flex-end;gap:.05rem;line-height:1.15}.payments-value-old{font-size:.72rem;font-weight:500;color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.85}.payments-value-new{font-size:.92rem;font-weight:700;color:var(--brand-navy)}.payments-valor-preview{margin:.35rem 0 0;font-size:.86rem}.payments-col-status{display:flex;flex-direction:column;gap:.08rem;min-width:0}.payments-status{font-size:.82rem;font-weight:700;color:var(--text-muted)}.payments-status.is-ok{color:var(--ok)}.payments-status.is-warn{color:var(--warn)}.payments-status.is-danger{color:var(--danger)}.payments-status.is-info{color:var(--info)}.payments-status-sub{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payments-col-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.3rem;min-width:0}.payments-col-actions .btn{padding:.34rem .55rem;font-size:.76rem;white-space:nowrap;max-width:100%}.payments-more{position:relative}.payments-more-btn{min-width:2.2rem;padding-left:.45rem;padding-right:.45rem;letter-spacing:.08em}.payments-menu{position:fixed;z-index:80;min-width:200px;padding:.3rem;border-radius:10px;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.1rem}.payments-menu.is-up{transform:translateY(-100%)}.payments-menu button,.payments-menu-link{width:100%;text-align:left;border:0;background:transparent;padding:.5rem .6rem;border-radius:8px;color:var(--text);font-size:.84rem;font-weight:600;text-decoration:none;display:block}.payments-menu button:hover,.payments-menu-link:hover{background:#1018280d}.payments-banner-dismiss{margin-left:.75rem;border:0;background:transparent;color:inherit;font-size:.78rem;font-weight:700;text-decoration:underline;opacity:.85}.payments-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;z-index:80;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.payments-modal{background:#fff;border-radius:14px;padding:1.15rem 1.25rem 1.1rem;width:min(480px,100%);box-shadow:0 22px 60px #0f172a47;display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--border)}.payments-modal-head h3{margin:.1rem 0 .25rem;color:var(--brand-navy);font-family:var(--display);font-size:1.2rem}.dash-alerts-modal{width:min(720px,100%);max-height:min(86vh,780px)}.dash-alerts-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.dash-alerts-modal-provider{text-transform:capitalize}.dash-alerts-modal-client{font-size:.92rem;color:var(--brand-navy)}.dash-alerts-modal-code{margin:0 0 .35rem}.dash-alerts-modal-list{display:flex;flex-direction:column;gap:.55rem;overflow:auto;max-height:min(62vh,540px);padding-right:.1rem}.dash-alerts-modal-list .alert-plant-card{box-shadow:none}.dash-alerts-modal-list .alert-compact-actions .btn-sm{padding:.2rem .42rem}.dash-alerts-modal-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-left:auto}.payments-modal-hint{margin:0;padding:.55rem .7rem;border-radius:8px;background:#2f7ec814;border:1px solid rgba(47,126,200,.18);color:var(--text);font-size:.82rem;line-height:1.4}.payments-modal--wide{width:min(720px,100%);max-height:min(92vh,900px);overflow:auto}.payments-modal-section{display:flex;flex-direction:column;gap:.55rem;padding-top:.35rem;border-top:1px solid var(--border)}.payments-modal-section h4{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.payments-modal-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.payments-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--brand-navy)}.payments-modal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.payments-field--full{grid-column:1 / -1}.payments-field--span2{grid-column:span 2}.payments-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.payments-field span{font-weight:600;color:var(--text-muted);font-size:.76rem}.payments-modal-actions{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.15rem}@media(max-width:900px){.payments-table-head{display:none}.payments-table-head,.payments-row{grid-template-columns:1fr auto;gap:.35rem .75rem}.payments-col-value,.payments-col-status{grid-column:1;text-align:left}.payments-col-actions{grid-column:2;grid-row:1 / span 3;align-self:start}.payments-meta{white-space:normal}.payments-modal-grid{grid-template-columns:1fr}.payments-field--span2{grid-column:auto}}.invoices-page{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.invoices-table th:nth-child(2),.invoices-table td:nth-child(2){width:6.5rem;white-space:nowrap}.invoices-table th:nth-child(3),.invoices-table td:nth-child(3),.invoices-table th:nth-child(4),.invoices-table td:nth-child(4),.invoices-table th:nth-child(5),.invoices-table td:nth-child(5){width:7.5rem;max-width:8.5rem;vertical-align:top}.invoices-table th:nth-child(6),.invoices-table td:nth-child(6),.invoices-table th:nth-child(7),.invoices-table td:nth-child(7){width:6.5rem;white-space:nowrap}.invoices-table tbody tr.is-absent{background:#c58a120a}.invoices-table tbody tr.is-emission-overdue{background:#c58a121f;box-shadow:inset 3px 0 #c58a12}.invoices-col-fatura{overflow:hidden}.invoices-overdue-hint{display:flex;flex-direction:column;gap:.1rem;margin-top:.25rem;max-width:100%;font-size:.7rem;line-height:1.2;color:#8a5a00;font-weight:600;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.invoices-overdue-hint-date{font-weight:500;opacity:.9}.invoices-fatura-note{font-size:.72rem;margin-top:.15rem}.plant-detail{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.plant-detail-hero{display:grid;grid-template-columns:1.4fr .9fr;gap:1.25rem;align-items:stretch;padding:1.35rem 1.5rem;border-radius:16px;border:1px solid rgba(16,176,120,.16);background:radial-gradient(1100px 280px at 0% -40%,rgba(16,176,120,.16),transparent 55%),radial-gradient(520px 180px at 100% 0%,rgba(16,24,40,.05),transparent 50%),linear-gradient(180deg,#fff,#f7faf9);box-shadow:0 1px 2px #1018280a,0 10px 28px #1018280d}.plant-detail-hero.tone-alerta,.plant-detail-hero.tone-offline{background:radial-gradient(1100px 280px at 0% -40%,rgba(214,69,69,.12),transparent 55%),linear-gradient(180deg,#fff,#faf7f7);border-color:#d645452e}.plant-detail-back{display:inline-block;margin-bottom:.45rem;font-size:.84rem;font-weight:650;color:var(--text-muted)}.plant-detail-back:hover{color:var(--brand-green)}.plant-detail-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.plant-detail-hero h1{margin:0;font-family:var(--display);font-size:clamp(1.4rem,2.2vw,1.85rem);font-weight:700;letter-spacing:-.03em;color:var(--brand-navy)}.plant-detail-uuid{margin:.4rem 0 0;font-size:.8rem;color:var(--text-muted);word-break:break-all}.plant-detail-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.plant-detail-hero-side{display:flex;flex-direction:column;justify-content:space-between;gap:.85rem;align-items:stretch}.plant-detail-hero-side .btn{align-self:flex-end}.plant-detail-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .75rem;padding:.75rem .95rem;border-radius:8px;font-size:.88rem;border:1px solid transparent}.plant-detail-banner strong{font-size:.82rem;letter-spacing:.02em;text-transform:uppercase}.plant-detail-banner.danger{background:#d6454514;border-color:#d6454547;color:var(--danger)}.plant-detail-banner.ok{background:#0f9f6e14;border-color:#0f9f6e47;color:var(--ok)}.plant-detail-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:1rem}.plant-invoices{margin-top:.15rem}.plant-invoices-header-actions{display:flex;flex-wrap:wrap;align-items:end;gap:.65rem}.plant-invoices-uc-select{display:flex;flex-direction:column;gap:.2rem;min-width:min(280px,70vw)}.plant-invoices-uc-select .input{min-height:2rem;font-size:.85rem}.plant-invoices-table-wrap{padding:0 0 .35rem;overflow-x:auto;width:100%}.plant-invoices-table{width:100%;min-width:980px;border-collapse:collapse}.plant-invoices-table .plant-invoice-kwh{white-space:nowrap;font-variant-numeric:tabular-nums}.plant-invoice-actions-cell{width:1%;white-space:nowrap;vertical-align:middle}.plant-invoice-options-btn{min-width:5.75rem}.plant-invoice-options-menu{position:fixed;z-index:80;display:flex;flex-direction:column;gap:.15rem;padding:.35rem;border-radius:10px;border:1px solid var(--border-strong);background:#fff;box-shadow:0 10px 28px #0f172a29}.plant-invoice-options-item{display:block;width:100%;text-align:left;padding:.45rem .65rem;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:.84rem;cursor:pointer}.plant-invoice-options-item:hover:not(:disabled){background:#f4f7fa}.plant-invoice-options-item.primary{color:var(--primary, #1d4f7a);font-weight:600}.plant-invoice-options-item:disabled{opacity:.45;cursor:not-allowed}.plant-invoices-more{display:flex;justify-content:center;padding:.35rem .9rem 1rem}.plant-invoices-more-btn{min-width:12rem}.report-preview-backdrop{z-index:90;padding:1rem;backdrop-filter:none;-webkit-backdrop-filter:none}.report-preview-modal{width:min(920px,100%);height:min(92vh,1100px);max-height:92vh;padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.65rem;overflow:hidden}.report-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.report-preview-actions{display:flex;gap:.4rem;flex-shrink:0}.report-preview-frame{flex:1 1 auto;width:100%;min-height:0;border:1px solid var(--border);border-radius:10px;background:#525659}.muted.tiny{font-size:.72rem;margin-top:.15rem}.plant-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.9rem}.plant-info-item{padding:.7rem .8rem;border-radius:8px;border:1px solid var(--border);background:#f8fafc}.plant-info-item.wide{grid-column:1 / -1}.plant-info-item span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plant-info-item strong{display:block;margin-top:.3rem;font-size:.92rem;font-weight:650;color:var(--brand-navy);word-break:break-word}.plant-alert-timeline{display:flex;flex-direction:column;padding:0;max-height:460px;overflow-y:auto}.plant-alert-timeline .alert-compact{border-radius:0}.plant-alert-timeline .plants-empty-state{margin:.85rem}.plant-alert-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:flex-end}.plant-alert-toolbar .select{min-width:8.5rem;padding:.35rem .55rem;font-size:.84rem}.plant-alert-item{padding:.75rem .85rem;border-radius:8px;border:1px solid var(--border);background:#fff}.plant-alert-item.open{border-color:#d6454538;background:linear-gradient(90deg,#d645450d,#fff 40%)}.plant-alert-item.resolved{opacity:.78}.plant-alert-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.plant-alert-head time{font-size:.76rem;color:var(--text-muted);white-space:nowrap}.plant-alert-item p{margin:0;font-size:.86rem;line-height:1.4;color:var(--text)}.plant-alert-sn{display:inline-block;margin-top:.4rem;font-size:.74rem;font-weight:650;color:var(--text-muted)}.plant-alert-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem}.plant-alert-foot .plant-alert-sn{margin-top:0}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;justify-content:flex-end;background:#1018286b}.drawer-panel{width:min(560px,100vw);height:100%;overflow:auto;background:var(--bg, #fff);box-shadow:-12px 0 40px #1018282e;display:flex;flex-direction:column}.alert-snapshot-drawer{width:min(640px,100vw)}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.2rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg, #fff);z-index:1}.drawer-header h2{margin:.15rem 0 .2rem;font-size:1.15rem}.drawer-kicker{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.drawer-body{padding:1rem 1.2rem 1.6rem;display:flex;flex-direction:column;gap:.9rem}.alert-snapshot-drawer .drawer-header{align-items:center;padding:.95rem 1.1rem}.alert-snapshot-drawer .drawer-header>div{min-width:0}.alert-snapshot-drawer .drawer-header h2{font-size:1.05rem;line-height:1.25;overflow-wrap:anywhere}.alert-snapshot-drawer .drawer-body{gap:.75rem;padding:.9rem 1.1rem 1.4rem}.alert-snapshot-drawer .topo-metrics{gap:.4rem}.alert-snapshot-drawer .topo-metric{padding:.5rem .6rem}.alert-snapshot-drawer .topo-metric strong{font-size:.84rem;overflow-wrap:anywhere}.alert-snapshot-drawer .climate-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.alert-snapshot-message{margin:0;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--border);background:#f8fafc;font-size:.88rem;line-height:1.45}.alert-snapshot-plant-inverters{margin-top:.7rem}.alert-snapshot-inv-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:start;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:#fff}.alert-snapshot-inv-row strong{display:block;font-size:.84rem;overflow-wrap:anywhere}.alert-snapshot-inv-row .muted{display:block;margin-top:.12rem;font-size:.78rem;line-height:1.35}.alert-snapshot-mppts{display:flex;flex-direction:column;gap:.5rem}.alert-snapshot-mppt{border:1px solid var(--border);border-radius:10px;padding:.6rem .7rem;background:#fff}.alert-snapshot-mppt.is-focus,.alert-snapshot-mppt li.is-focus{border-color:#d6454573;background:#d645450d;box-shadow:inset 3px 0 #d64545a6}.alert-snapshot-mppt header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.35rem .8rem;margin-bottom:.45rem}.alert-snapshot-mppt header .muted{text-align:right;font-size:.8rem;font-variant-numeric:tabular-nums}.alert-snapshot-mppt ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.alert-snapshot-mppt li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem .75rem;padding:.42rem .5rem;border-radius:8px;border:1px solid rgba(16,24,40,.06);background:#f8fafc;font-size:.84rem}.alert-snapshot-mppt li strong{display:block}.alert-snapshot-mppt li>span:last-child{text-align:right;font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.alert-snapshot-drawer .drawer-header .btn{flex-shrink:0}@media(max-width:520px){.alert-snapshot-drawer .climate-metrics,.alert-snapshot-mppt header,.alert-snapshot-mppt li,.alert-snapshot-inv-row{grid-template-columns:1fr}.alert-snapshot-mppt header .muted,.alert-snapshot-mppt li>span:last-child{text-align:left;white-space:normal}}.btn:disabled{opacity:.45;cursor:not-allowed}.kv{display:grid;grid-template-columns:140px 1fr;gap:.4rem .8rem;padding:1rem 1.15rem}.kv dt{color:var(--text-muted);font-size:.85rem}.kv dd{margin:0}.topology-wrap{padding:0;overflow-x:auto}.hybrid-topology.topo-shell,.hybrid-topology{display:grid;grid-template-columns:260px 1fr;gap:.95rem;min-height:420px;padding:0}.topo-sidebar.inverter-list,.inverter-list{display:flex;flex-direction:column;gap:.45rem;max-height:720px;overflow-y:auto;padding:.7rem;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,#f8fafc,#fff)}.inverter-list-header{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;padding:0 .15rem .45rem;border-bottom:1px solid var(--border);margin-bottom:.2rem}.inverter-list-header em{font-style:normal;font-family:var(--display);font-size:.9rem;color:var(--brand-navy)}.inverter-list-item{position:relative;display:flex;gap:.65rem;align-items:flex-start;text-align:left;width:100%;padding:.7rem .75rem;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.inverter-list-item:hover{border-color:#10b07866;box-shadow:var(--shadow-sm)}.inverter-list-item.active{background:var(--accent-soft);border-color:#10b07873}.inverter-list-item.active:not(.has-alert):not(.has-hotspot){box-shadow:inset 3px 0 0 var(--brand-green)}.inverter-list-item.has-alert{border-color:#d6454573;background:linear-gradient(90deg,#d6454512,#fff 55%);box-shadow:inset 3px 0 #d64545}.inverter-list-item.has-hotspot{border-color:#d9770680;background:linear-gradient(90deg,#d977061a,#fff 55%);box-shadow:inset 3px 0 #d97706}.inverter-list-item.has-alert.has-hotspot{border-color:#d6454580;background:linear-gradient(90deg,#d6454514,#d977061a 42%,#fff 72%);box-shadow:inset 3px 0 #d64545,inset 7px 0 #d97706}.inverter-list-item.active.has-alert{box-shadow:inset 3px 0 #d64545}.inverter-list-item.active.has-hotspot:not(.has-alert){box-shadow:inset 3px 0 #d97706}.inverter-list-item.active.has-alert.has-hotspot{box-shadow:inset 3px 0 #d64545,inset 7px 0 #d97706}.topo-side-badges{position:absolute;top:.45rem;right:.5rem;display:flex;flex-direction:column;align-items:flex-end;gap:.22rem}.topo-side-badge{position:static;font-size:.62rem!important;padding:.1rem .35rem!important}.topo-hotspot-note{margin:0 0 .75rem;padding:.55rem .7rem;border-radius:8px;background:#d9770614;color:#9a3412;font-size:.82rem;line-height:1.4}.unilinear-legend-hotspot{color:#b45309!important;font-weight:600}.inverter-list-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0;padding-right:2.4rem}.inverter-list-copy strong{font-size:.9rem;font-family:var(--display);color:var(--brand-navy)}.inverter-list-copy small{color:var(--text-muted);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inverter-list-copy small.inverter-list-plant{color:var(--brand-navy);font-weight:600;font-size:.8rem}.status-dot{width:10px;height:10px;border-radius:50%;margin-top:0;flex-shrink:0;background:var(--ok);box-shadow:0 0 0 4px #0f9f6e1f}.status-dot.warn{background:var(--warn);box-shadow:0 0 0 3px #c58a1224}.status-dot.pending{background:#b45309;box-shadow:0 0 0 3px #b4530929}.status-dot.off{background:var(--danger);box-shadow:0 0 0 3px #d6454524}.hybrid-preview.topo-main,.hybrid-preview{display:flex;flex-direction:column;gap:.85rem;min-width:0;overflow:hidden;padding:.85rem;border-radius:12px;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-sm)}.hybrid-preview-header.topo-toolbar,.hybrid-preview-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.topo-kicker{margin:0 0 .2rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-green)}.hybrid-preview-header h3{margin:0;font-family:var(--display);font-size:1.15rem;color:var(--brand-navy);letter-spacing:-.02em}.hybrid-preview-header p{margin:.25rem 0 0}.topo-auto{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .65rem;border-radius:8px;border:1px solid var(--border-strong);background:#f8fafc;font-size:.82rem;font-weight:650;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.topo-auto.on{color:var(--brand-green);border-color:#10b07859;background:#10b07814}.topo-live-error{margin:0;padding:.55rem .75rem;border-radius:8px;border:1px solid rgba(197,138,18,.3);background:#c58a1214;color:var(--warn);font-size:.84rem;font-weight:600}.unilinear-wrap{display:flex;flex-direction:column;gap:.55rem;min-width:0;max-width:100%}.unilinear-legend{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;margin:0;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--border);background:linear-gradient(90deg,#10b0780f,#f8fafc 55%);color:var(--text-muted);font-size:.8rem;line-height:1.4}.unilinear-legend strong{color:var(--brand-navy);font-weight:700;flex-shrink:0}.unilinear-legend span{min-width:0}.unilinear-legend-sync{margin-left:auto;padding:.12rem .45rem;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-muted);font-size:.72rem;font-weight:700;white-space:nowrap}.unilinear-legend-sync.live{color:var(--ok);border-color:#0f9f6e4d;background:#0f9f6e14}.unilinear-scroll{display:flex;justify-content:flex-start;align-items:flex-start;overflow-x:auto;overflow-y:hidden;max-width:100%;border-radius:12px;border:1px solid var(--border);background:#eef2f6;-webkit-overflow-scrolling:touch;box-shadow:inset 0 1px #ffffffb3}.unilinear-svg{display:block;width:auto;max-width:none;height:auto}.unilinear-wrap.mode-string .unilinear-svg{min-width:0;min-height:0}.hybrid-details{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.alert-mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.alert-mini-list li{display:block}.alert-mini-row{display:flex;flex-direction:column;gap:.35rem;min-width:0;padding:.6rem .7rem;border:1px solid var(--border);border-radius:10px;background:#fff}.alert-mini-row.is-open{border-color:#d6454547;background:#d645450a}.alert-mini-head{display:flex;align-items:center;gap:.4rem;min-width:0}.alert-mini-head .badge{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-mini-telem{margin-left:auto;flex-shrink:0;padding:.16rem .45rem;font-size:.72rem;line-height:1.2}.alert-mini-when{display:block;font-size:.78rem;font-weight:650;color:var(--brand-navy)}.alert-mini-msg{display:-webkit-box;margin-top:.12rem;font-size:.8rem;line-height:1.35;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.alert-mini-row .alert-jump{display:block;width:auto;min-width:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none}.alert-mini-row .alert-jump:hover{background:transparent;border-color:transparent;box-shadow:none}.alert-mini-row:has(.alert-jump:hover){border-color:#d6454559}.alert-jump{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-radius:10px;color:inherit;padding:.65rem .7rem;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.alert-jump-static{cursor:default}.alert-jump-static:hover{border-color:var(--border);background:#fff;box-shadow:none}.alert-jump:hover{background:#d645450d;border-color:#d6454547;box-shadow:var(--shadow-sm)}.live-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;justify-content:flex-end}.climate-panel{padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:#f8fafc}.climate-panel p{margin:.45rem 0 0;line-height:1.45;font-size:.9rem}.climate-panel.tone-ok{border-color:#0f9f6e59;background:#0f9f6e0f}.climate-panel.tone-warn{border-color:#c58a1266;background:#c58a1212}.climate-panel.tone-info{border-color:#2f7ec859;background:#2f7ec80f}.climate-panel.tone-muted{opacity:.9}.climate-panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.climate-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin-top:.7rem}.climate-metric{padding:.55rem .65rem;border-radius:8px;border:1px solid rgba(16,24,40,.06);background:#ffffffbf}.climate-metric span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.climate-metric strong{display:block;margin-top:.2rem;font-family:var(--display);font-size:.95rem;color:var(--brand-navy)}.topology-layout{display:grid;grid-template-columns:1fr 280px;gap:1rem;min-height:320px}.topology-svg{width:100%;min-height:360px;border-radius:12px;border:1px solid var(--border);background-color:#eef2f6}.node-panel{padding:.9rem;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#f8fafc,#fff)}.node-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;flex-wrap:nowrap}.node-panel-head-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.topo-hist-filter{min-width:0;width:auto;padding:.22rem .4rem;font-size:.75rem}.node-panel h3{margin:0;flex:1;min-width:0;font-family:var(--display);font-size:.9rem;line-height:1.2;color:var(--brand-navy)}.topo-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.topo-metric{padding:.6rem .7rem;border-radius:8px;border:1px solid var(--border);background:#fff}.topo-metric.wide{grid-column:1 / -1}.topo-metric span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.topo-metric strong{display:-webkit-box;margin-top:.25rem;font-size:.9rem;font-weight:650;color:var(--brand-navy);overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.topo-empty-alerts{display:flex;align-items:center;gap:.55rem;padding:.85rem .7rem;border-radius:8px;border:1px dashed var(--border);background:#fff}.topo-empty-alerts p{margin:0}.crud-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;padding:1rem 1.15rem}.crud-form.compact{padding:.65rem 0}.crud-form .full{grid-column:1 / -1}.crud-field{display:flex;flex-direction:column;gap:.3rem}.crud-field.full{grid-column:1 / -1}.crud-check{display:flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--text);align-self:end;padding-bottom:.35rem}.success-banner{margin-bottom:1rem;padding:.75rem 1rem;border-radius:8px;background:#3dcf8e26;border:1px solid rgba(61,207,142,.35);color:var(--ok)}.clients-page,.cm-page{width:100%;max-width:none;display:flex;flex-direction:column;gap:1.15rem;padding-bottom:1rem;min-width:0}.cm-topo-panel,.equip-list,.equip-card,.equip-card-body,.mppt-stack{max-width:100%;min-width:0}.clients-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-green)}.clients-hero,.cm-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.1rem 1.5rem;padding:1.35rem 1.5rem;border-radius:16px;border:1px solid rgba(16,176,120,.16);background:radial-gradient(720px 220px at 0% -30%,rgba(16,176,120,.16),transparent 55%),radial-gradient(520px 180px at 100% 0%,rgba(16,24,40,.05),transparent 50%),linear-gradient(180deg,#fff,#f5f8f7);box-shadow:0 1px 2px #1018280a,0 10px 28px #1018280d}.clients-hero-copy,.cm-hero-copy{flex:1 1 280px;min-width:0}.clients-hero h1,.cm-hero h1{margin:0;font-family:var(--display);font-size:clamp(1.55rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.03em;color:var(--brand-navy);line-height:1.15}.clients-hero-copy>p:last-child,.cm-hero-copy>p:last-child{margin:.4rem 0 0;max-width:38rem;color:var(--text-muted);font-size:.92rem;line-height:1.5}.clients-hero-cta{flex:0 0 auto}.cm-back{display:inline-flex;margin-bottom:.45rem;font-size:.78rem;font-weight:600;color:var(--text-muted);text-decoration:none}.cm-back:hover{color:var(--brand-green)}.clients-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;width:100%;padding:.85rem 1rem;border-radius:14px;border:1px solid var(--border);background:#ffffffe0;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.clients-search{flex:1 1 280px;min-width:200px}.clients-panel{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 1px 2px #1018280a,0 12px 28px #1018280b}.clients-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.95rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fbfcfd,#f7f9fb)}.clients-panel-header h2{margin:0;font-family:var(--display);font-size:.95rem;font-weight:650;color:var(--brand-navy)}.clients-table{display:flex;flex-direction:column;width:100%}.clients-table-head,.clients-table-row{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(9rem,1.15fr) 7.5rem 7rem 12rem;gap:.75rem 1rem;align-items:center;padding:.85rem 1.25rem}.clients-table-head{border-bottom:1px solid var(--border);background:#f8fafb;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.clients-table-row{border-top:1px solid rgba(216,222,232,.7);background:#fff;min-height:4.6rem;transition:background .15s ease,transform .15s ease}.clients-table-row:first-of-type{border-top:none}.clients-table-row:hover{background:linear-gradient(90deg,#10b0780d,#fff 42%)}.clients-table-row.is-inactive{opacity:.78}.clients-col-name{display:flex;align-items:center;gap:.8rem;min-width:0}.clients-avatar{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2.45rem;height:2.45rem;border-radius:12px;background:linear-gradient(145deg,#10b0782e,#10b0780d),#edf7f2;border:1px solid rgba(16,176,120,.18);color:#0b7a54;font-family:var(--display);font-size:.78rem;font-weight:700;letter-spacing:.02em}.clients-name-text{display:flex;flex-direction:column;gap:.12rem;min-width:0}.clients-name-text strong{font-family:var(--display);font-size:.96rem;font-weight:650;color:var(--brand-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clients-uuid{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clients-col-provider,.clients-col-power,.clients-col-status{min-width:0}.clients-provider-pill{display:inline-flex;max-width:100%;padding:.32rem .65rem;border-radius:999px;border:1px solid rgba(16,24,40,.08);background:#f3f6f8;font-size:.76rem;font-weight:650;color:#425466;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clients-col-power{display:flex;align-items:baseline;gap:.28rem;color:var(--brand-navy)}.clients-col-power em{font-style:normal;font-family:var(--display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.clients-col-power span{font-size:.72rem;font-weight:650;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.clients-status{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .6rem;border-radius:999px;font-size:.76rem;font-weight:700}.clients-status i{width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.clients-status.ok{color:#0f9f6e;background:#0f9f6e1a}.clients-status.warn{color:#a87410;background:#c58a121f}.clients-col-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:.4rem}.clients-empty{margin:1.5rem 1.25rem;padding:1.5rem;border-radius:12px;border:1px dashed var(--border-strong);background:#fbfcfd;text-align:center}.clients-empty strong{display:block;color:var(--brand-navy);font-family:var(--display)}.clients-empty p{margin:.35rem 0 0}.client-manage-actions{display:flex;gap:.65rem;align-items:flex-end;flex-wrap:wrap}.cm-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;width:100%;padding:.45rem;border-radius:16px;border:1px solid var(--border);background:#ffffffbf;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cm-tab{display:flex;align-items:center;gap:.7rem;min-height:4.1rem;padding:.7rem .85rem;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text-muted);text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.cm-tab-step{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:9px;background:#eef2f6;color:#6b7c90;font-family:var(--display);font-size:.72rem;font-weight:700}.cm-tab-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.cm-tab strong{font-size:.9rem;font-weight:700;color:var(--brand-navy)}.cm-tab span{font-size:.72rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-tab:hover:not(:disabled){background:#10b0780f}.cm-tab.active{background:#fff;border-color:#10b07847;box-shadow:0 6px 18px #1018280f}.cm-tab.active .cm-tab-step{background:#10b07824;color:#0b7a54}.cm-tab:disabled{opacity:.42;cursor:not-allowed}.cm-provider-pick{display:flex;flex-direction:column;gap:.25rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.cm-provider-pick .select{min-width:11rem;text-transform:none;letter-spacing:0;font-weight:600;font-size:.9rem}.cm-members-wrap{display:flex;flex-direction:column;gap:.5rem}.cm-members-hint{margin:0}.cm-members{display:flex;flex-wrap:wrap;gap:.5rem}.cm-member-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-muted);font-size:.84rem;font-weight:600;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,color .15s ease}.cm-member-chip em{font-style:normal;font-size:.72rem;font-weight:500;opacity:.75}.cm-member-chip.active{border-color:#10b07866;background:#10b0781a;color:var(--brand-navy)}.cm-form-panel,.cm-topo-panel{width:100%;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 1px 2px #1018280a,0 12px 28px #1018280b;overflow:visible}.cm-form-panel{display:flex;flex-direction:column;gap:0}.cm-section{padding:1.35rem 1.5rem 1.45rem;border-top:1px solid rgba(216,222,232,.85)}.cm-section:first-child{border-top:0}.cm-section-head{margin-bottom:1rem}.cm-section-kicker{margin:0 0 .2rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.cm-section-head h3{margin:0;font-family:var(--display);font-size:1.08rem;color:var(--brand-navy)}.cm-section-note{grid-column:1 / -1;margin:-.15rem 0 .45rem;font-size:.84rem;color:var(--text-muted);line-height:1.45}.cm-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.05rem;align-items:start}.cm-section-grid.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.55rem .65rem;align-items:end}.cm-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.cm-field.full{grid-column:1 / -1}.cm-field .input,.cm-field .select{width:100%;border-radius:10px}.cm-field-label{display:flex;align-items:baseline;gap:.4rem;font-size:.78rem;font-weight:650;color:var(--text-muted)}.cm-field-label em{font-style:normal;font-size:.68rem;font-weight:500;color:#8a97a8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cm-check{display:flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--text);align-self:end;padding-bottom:.4rem}.cm-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;padding:1rem 1.5rem;border-top:1px solid var(--border);background:linear-gradient(180deg,#fbfcfd,#f5f7fa);position:sticky;bottom:0;z-index:2}.cm-topo-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.85rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background:radial-gradient(520px 140px at 0% 0%,rgba(16,176,120,.1),transparent 60%),#fff}.cm-topo-header h2{margin:.15rem 0 0;font-family:var(--display);font-size:1.25rem;color:var(--brand-navy)}.cm-inline-create{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr)) auto;gap:.75rem .85rem;align-items:end;padding:1rem 1.15rem;margin:1.1rem 1.25rem .35rem;border:1px dashed rgba(16,176,120,.35);border-radius:14px;background:linear-gradient(180deg,rgba(16,176,120,.05),transparent 80%),#f8fafb}.cm-inline-create.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;margin:.7rem 0 0;padding:.75rem .8rem}.cm-module-details{margin:.9rem 0;padding:.8rem .95rem;border-radius:12px;border:1px solid var(--border);background:#fcfdfe}.cm-module-details summary{cursor:pointer;font-size:.85rem;font-weight:650;color:var(--text-muted)}.cm-module-details[open] summary{margin-bottom:.7rem;color:var(--brand-navy)}.equip-list{display:flex;flex-direction:column;gap:.85rem;padding:1.15rem 1.35rem 1.5rem}.equip-card{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:visible;box-shadow:0 1px 2px #10182808;transition:border-color .15s ease,box-shadow .15s ease}.equip-card.open{border-color:#10b07847;box-shadow:0 8px 22px #1018280f}.equip-card-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;border:0;border-radius:14px 14px 0 0;background:transparent;cursor:pointer;text-align:left;color:inherit}.equip-card.open .equip-card-head{border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(16,176,120,.06),transparent)}.equip-card-body{padding:1.25rem 1.5rem 1.5rem;overflow:visible;min-width:0}.equip-card-body>.cm-section-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.equip-card-body>.cm-inline-create{margin-left:0;margin-right:0;width:100%}.cm-inv-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin:.85rem 0 1.25rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:12px;background:#f7faf9}.mppt-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%;min-width:0}.mppt-block{min-width:0;display:flex;flex-direction:column;gap:.55rem;border:1px solid rgba(216,222,232,.95);border-radius:14px;padding:.95rem 1rem 1.05rem;background:linear-gradient(180deg,#fff,#fbfcfd)}.mppt-block-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.1rem}.mppt-block-head strong{font-family:var(--display);color:var(--brand-navy)}.mppt-block .cm-section-grid.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem .55rem;align-items:end}.mppt-block .cm-inline-create.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem .55rem;margin:.15rem 0 0;padding:.7rem .75rem}.string-stack{display:flex;flex-direction:column;gap:0;margin-top:.15rem;border:1px solid var(--border);border-radius:12px;overflow:visible;background:#fff}.string-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:.45rem .5rem;align-items:end;padding:.55rem .65rem;border-top:1px solid rgba(216,222,232,.8);min-width:0}.string-row:first-child{border-top:none}.string-row:nth-child(2n){background:#fafbfc}.string-row .cm-field,.string-row .input,.mppt-block .cm-field,.mppt-block .input{min-width:0;width:100%}.string-row .cm-check{padding-bottom:.4rem;white-space:nowrap}.string-row .btn,.mppt-block .cm-section-grid.compact .btn,.mppt-block .cm-inline-create.compact .btn{white-space:nowrap;flex-shrink:0}@media(max-width:1280px){.mppt-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.mppt-stack{grid-template-columns:1fr}}@media(max-width:960px){.client-row{grid-template-columns:1fr;align-items:start}.client-row-meta,.client-row-actions{align-items:flex-start;justify-content:flex-start}.clients-hero,.cm-hero{padding:1.15rem}.cm-tabs{grid-template-columns:1fr 1fr}.cm-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-inline-create{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.cm-section-grid.compact,.cm-inline-create.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.string-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.string-row .cm-check,.string-row .btn{grid-column:span 1}.clients-table-head{display:none}.clients-table-row{grid-template-columns:1fr auto;grid-template-areas:"name status" "provider provider" "power actions";gap:.55rem .75rem;padding:1rem 1.05rem}.clients-col-name{grid-area:name}.clients-col-provider{grid-area:provider}.clients-col-power{grid-area:power}.clients-col-status{grid-area:status;justify-self:end}.clients-col-actions{grid-area:actions;justify-content:flex-start}.topbar{grid-template-columns:1fr;gap:.65rem;padding:.75rem 1rem}.topbar-brand{justify-content:space-between}.brand-product{display:none}.nav{width:100%;padding-bottom:.15rem}.topbar-user{width:100%;justify-content:space-between}.user-meta{align-items:flex-start}.detail-grid,.dash-hero,.dash-kpis,.dash-panels,.plants-hero,.plant-detail-hero,.plant-detail-grid,.topology-layout,.hybrid-topology,.hybrid-details{grid-template-columns:1fr}.dash-quick,.plants-hero-side{justify-content:flex-start}.plant-detail-hero-side .btn{align-self:flex-start}.plant-info-grid{grid-template-columns:1fr}.plants-panel-top{flex-direction:column;align-items:stretch}.plants-toolbar-bar{width:100%}.plants-search{max-width:none;flex:1 1 100%}.plants-table-head{display:none}.plant-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id actions" "powers actions" "meta actions" "alert actions";padding:.95rem 1rem;gap:.45rem .75rem}.plant-row-identity{grid-area:id}.plant-row-powers{grid-area:powers;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;width:100%}.plant-metric{align-items:flex-start;padding:.45rem .55rem}.plant-metric-label{display:block}.plant-metric-value{justify-content:flex-start}.plant-row-meta{grid-area:meta}.plant-row-alert-cell{grid-area:alert}.plant-row-actions{grid-area:actions;flex-wrap:wrap;align-self:start}.plant-row-title-text p{max-width:100%;white-space:normal}.alert-compact{grid-template-columns:1fr;align-items:start}.alert-compact-actions{flex-wrap:wrap;justify-content:flex-start}.alert-plant-card-head{align-items:flex-start;flex-wrap:wrap}.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.inverter-list{max-height:220px;flex-direction:row;overflow-x:auto}.inverter-list-item{min-width:220px}.topo-metrics{grid-template-columns:1fr}.topo-side-badges{position:static;flex-direction:row;flex-wrap:wrap;margin-top:.15rem}.inverter-list-copy{padding-right:0}}@media(max-width:560px){.dash-kpis{grid-template-columns:1fr}.dash-provider-head{flex-direction:column;align-items:flex-start;gap:.15rem}}.maintenances-page{display:flex;flex-direction:column;gap:1.15rem;width:100%;max-width:none}.maintenance-form-panel{margin-bottom:1.15rem;overflow:hidden;border-radius:16px;border:1px solid rgba(16,176,120,.18);background:linear-gradient(180deg,rgba(16,176,120,.06),transparent 7rem),#fff;box-shadow:0 1px 2px #1018280a,0 12px 28px #1018280b}.maintenance-form-header{align-items:flex-start;gap:1rem;border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:1rem}.maintenance-form-kicker{margin:0 0 .2rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-green, #10b078)}.maintenance-form{display:flex;flex-direction:column;gap:1.15rem;padding:1rem 1.15rem 1.15rem}.maintenance-form-section h3{margin:0 0 .65rem;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.maintenance-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem 1rem}.maintenance-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:var(--text-muted)}.maintenance-form .input,.maintenance-form .select,.maintenance-form textarea{width:100%}.maintenance-form textarea.input{resize:vertical;min-height:5.5rem;line-height:1.45}.maintenance-form-wide{grid-column:1 / -1}.maintenance-plant-picker{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(180px,1.2fr);gap:.5rem}.maintenance-form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.55rem;padding-top:.35rem;border-top:1px solid var(--border)}.maintenances-panel .panel-header{align-items:flex-start}.maintenances-toolbar{gap:.85rem 1rem}.maintenances-filters{flex:1 1 520px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}.maintenances-filters .select,.maintenances-filters .input{min-width:0}.maintenances-filters>.select:first-child{flex:0 0 auto;min-width:7.5rem}.maintenance-filter-plant{display:grid;grid-template-columns:minmax(110px,.85fr) minmax(150px,1.15fr);gap:.4rem;flex:1 1 280px;max-width:340px;min-width:220px}.maintenances-search{flex:1 1 160px;min-width:140px;max-width:240px}.maintenances-table-wrap{overflow-x:auto;width:100%}.maintenances-table{width:100%;min-width:960px;border-collapse:collapse;table-layout:fixed}.maintenances-table th,.maintenances-table td{padding:.75rem .85rem;vertical-align:middle;text-align:left;border-bottom:1px solid var(--border)}.maintenances-table thead th{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:#f8fafc;white-space:nowrap}.maintenances-table tbody tr:hover{background:#f5faf8}.maintenances-table tbody tr.is-overdue{background:linear-gradient(90deg,rgba(214,69,69,.06),transparent 28%)}.maintenances-table th:nth-child(1),.maintenances-table td:nth-child(1){width:22%}.maintenances-table th:nth-child(2),.maintenances-table td:nth-child(2){width:9%}.maintenances-table th:nth-child(3),.maintenances-table td:nth-child(3){width:9%}.maintenances-table th:nth-child(4),.maintenances-table td:nth-child(4){width:11%}.maintenances-table th:nth-child(5),.maintenances-table td:nth-child(5){width:9%;white-space:nowrap}.maintenances-table th:nth-child(6),.maintenances-table td:nth-child(6){width:14%}.maintenances-col-actions{width:18rem;white-space:nowrap}.maintenances-col-plant{min-width:0}.maintenances-billing-cell{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start}.maintenances-billing-meta{font-size:.72rem;color:var(--text-muted)}.maintenance-check{flex-direction:row!important;align-items:center;gap:.45rem!important;font-size:.88rem!important;color:var(--brand-navy)!important;padding-top:1.55rem}.maintenances-plant-link{display:block;font-weight:650;color:var(--brand-navy);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maintenances-plant-link:hover{color:var(--brand-green, #10b078)}.maintenances-plant-meta{display:block;margin-top:.2rem;font-size:.78rem;color:var(--text-muted)}.maintenances-tipo{font-size:.88rem;font-weight:600;color:var(--brand-navy)}.maintenances-col-actions{width:15rem;white-space:nowrap}.maintenances-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.plant-maint-empty{margin:0;padding:.75rem 1.1rem 1.1rem}.plant-maint-body{padding:.75rem 1.1rem 1rem}.plant-maint-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem}.plant-maint-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;flex-shrink:0}.plant-maint-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .55rem;min-width:0}.plant-maint-chip{display:inline-flex;align-items:baseline;gap:.3rem;max-width:100%;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border);background:#f8fafc;font-size:.8rem;font-weight:550;color:var(--brand-navy);line-height:1.3}.plant-maint-chip em{font-style:normal;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plant-maint-details{margin-top:.75rem;padding:.75rem .85rem;border-radius:8px;border:1px solid var(--border);background:#f8fafc;display:flex;flex-direction:column;gap:.55rem}.plant-maint-details p{margin:0;font-size:.86rem;color:var(--brand-navy);line-height:1.4}.plant-maint-details p>span{display:block;margin-bottom:.15rem;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plant-maint-details-obs{white-space:pre-wrap}.plant-maint-details .btn{align-self:flex-start;margin-top:.15rem}@media(max-width:720px){.maintenance-plant-picker,.maintenance-filter-plant{grid-template-columns:1fr}.maintenances-filters{justify-content:stretch}.maintenance-filter-plant,.maintenances-search{max-width:none;flex:1 1 100%}.plant-maint-summary{align-items:flex-start}}
