:root{--leaf: #36a64a;--leaf-dark: #176f38;--mint: #eaf7ee;--teal: #0f8c8c;--sky: #2c86c8;--amber: #d99b1d;--red: #d94a3a;--ink: #172033;--muted: #667085;--line: #dce6e2;--panel: #ffffff;--soft: #f5f8f7;--shadow: 0 16px 42px rgba(19, 48, 44, .11)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#eef4f1;font-family:Arial,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.app-shell{display:grid;min-height:100vh;grid-template-columns:252px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;background:#fff;border-right:1px solid var(--line)}.brand{padding-bottom:22px;border-bottom:1px solid var(--line)}.brand img{display:block;width:160px;max-width:100%;height:auto}.product-pill{margin:20px 0;padding:12px;background:var(--mint);border:1px solid #c6ead1;border-radius:8px}.product-pill strong,.product-pill span{display:block}.product-pill span{margin-top:4px;color:var(--muted);font-size:13px}.nav{display:grid;gap:8px}.nav button{width:100%;padding:11px 12px;color:#344054;background:transparent;border:0;border-radius:8px;text-align:left}.nav button.active{color:#0f5132;background:#eaf7ed;font-weight:700}.status-stack{position:absolute;right:18px;bottom:22px;left:18px;display:grid;gap:10px}.status-chip{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;color:#355048;background:#f7faf9;border:1px solid var(--line);border-radius:8px;font-size:13px}.status-chip i{width:9px;height:9px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 4px #37a84a24;flex:0 0 auto;margin-top:4px}.main{min-width:0;padding:22px 28px 34px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.topbar h1{margin-bottom:8px;font-size:28px;line-height:1.15;letter-spacing:0}.topbar p{margin-bottom:0;color:var(--muted)}.topbar select,.month-input{min-width:230px;height:40px;padding:0 12px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px}.primary-action{height:40px;padding:0 14px;color:#fff;background:var(--leaf);border:1px solid var(--leaf);border-radius:8px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel{padding:18px}.panel-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2,.panel h2{margin:4px 0 0;font-size:18px}.eyebrow{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.executive-insights{margin-bottom:16px;box-shadow:0 18px 44px #1446361f}.executive-insights .panel-head{align-items:flex-start}.insights-badge{padding:6px 10px;color:#176f38;background:var(--mint);border:1px solid #c6ead1;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.insights-subtitle{max-width:820px;margin-bottom:14px;color:var(--muted);line-height:1.5}.insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.insight-card{display:grid;gap:12px;min-height:218px;padding:14px;background:#fbfdfc;border:1px solid var(--line);border-top:4px solid var(--leaf);border-radius:8px}.insight-card.watch,.insight-card.review{border-top-color:var(--amber)}.insight-card.action-suggested{border-top-color:var(--sky)}.insight-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.insight-card-head strong{line-height:1.25}.insight-card-head span{flex:0 0 auto;padding:5px 7px;color:#245547;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:800}.insight-card p{margin-bottom:0;color:#25384d;line-height:1.42}.insight-meta,.next-action{display:grid;gap:7px;color:var(--muted);font-size:13px;line-height:1.35}.insight-meta b,.next-action b{color:#355048}.next-action{padding-top:10px;border-top:1px solid var(--line)}.kpi-card{min-height:128px;padding:18px}.kpi-value{display:flex;align-items:baseline;gap:8px;margin:14px 0 8px;font-size:32px;font-weight:800}.kpi-value span{color:var(--muted);font-size:15px;font-weight:700}.kpi-card p{margin-bottom:0;color:#1b7d45;font-size:13px;font-weight:700}.portfolio-strip,.content-grid,.lower,.system-grid,.site-cards{display:grid;gap:16px;margin-top:16px}.portfolio-strip,.system-grid,.site-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.content-grid,.lower{grid-template-columns:minmax(0,1.45fr) minmax(330px,.85fr)}.mini-card,.site-card{padding:16px}.mini-card h3,.site-card h2{margin-bottom:8px}.mini-card p{margin-bottom:0;color:var(--leaf-dark);font-weight:800}.stack{display:grid;gap:16px}.answer-row{padding:13px 0;border-top:1px solid var(--line)}.answer-row strong,.answer-row span{display:block}.answer-row span{margin-top:4px;color:var(--muted);font-size:14px}.chart{position:relative;min-height:282px;padding:22px 14px 34px 42px;background:linear-gradient(to top,rgba(23,32,51,.08) 1px,transparent 1px) 0 0 / 100% 25%,linear-gradient(to right,rgba(23,32,51,.07) 1px,transparent 1px) 0 0 / 12.5% 100%,#fbfdfc;border:1px solid var(--line);border-radius:8px;overflow:hidden}.chart svg{display:block;width:100%;height:220px;overflow:visible}.chart-point{fill:#fff;stroke:var(--leaf);stroke-width:4;cursor:pointer}.chart-point.active{fill:var(--leaf)}.axis-label{position:absolute;color:var(--muted);font-size:12px}.axis-label.left{top:14px;left:12px}.axis-label.bottom{right:16px;bottom:10px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:13px}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px}.swatch.consumption{background:var(--leaf)}.swatch.solar{background:var(--amber)}.swatch.grid{background:var(--sky)}.swatch.storage{background:var(--teal)}.chart-detail{margin-top:12px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px}.chart-detail p{margin:10px 0 0;color:var(--muted);font-size:14px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.detail-grid div{padding:10px;background:var(--soft);border-radius:8px;font-size:13px}.detail-grid strong{display:block;margin-top:4px;font-size:15px}.alert-list,.report{display:grid;gap:12px}.alert{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;padding:12px;background:#fbfdfc;border:1px solid var(--line);border-radius:8px}.severity{width:10px;border-radius:8px;background:var(--amber)}.severity.high{background:var(--red)}.severity.low{background:var(--leaf)}.alert-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.alert-meta span{padding:5px 8px;color:#305349;background:var(--mint);border-radius:8px;font-size:12px;font-weight:700}.alert p{margin-bottom:6px;color:var(--muted);font-size:14px;line-height:1.45}.action-draft-toggle{margin-top:8px}.action-draft{display:grid;gap:14px;margin-top:12px;padding:14px;background:#fff;border:1px solid #cfe1dc;border-radius:8px}.action-draft-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--line)}.action-draft-head span,.action-draft-head strong{display:block}.action-draft-head span{color:var(--leaf-dark);font-size:12px;font-weight:800;text-transform:uppercase}.action-draft-head strong{margin-top:4px}.action-draft-head i{flex:0 0 auto;padding:5px 8px;color:#6b3a30;background:#fff7ed;border:1px solid #f4d5b2;border-radius:999px;font-size:12px;font-style:normal;font-weight:800}.action-draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.action-draft-grid div{display:grid;gap:5px;padding:10px;background:var(--soft);border-radius:8px}.action-draft-grid b,.draft-section b,.maintenance-note b{color:#355048;font-size:13px}.action-draft-grid span,.draft-section p,.maintenance-note p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}.draft-section{display:grid;gap:8px}.draft-section ol{margin:0;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.5}.draft-section li+li{margin-top:5px}.maintenance-note{display:grid;gap:7px;padding:12px;background:#fbfdfc;border:1px dashed #bfd5cf;border-radius:8px}.report>div{padding:14px;background:#fbfdfc;border:1px solid var(--line);border-radius:8px}.report strong{display:block;margin-bottom:6px}.report p,.report ul{margin:0;color:var(--muted);line-height:1.5;font-size:14px}.report ul{padding-left:18px}.ghost{height:40px;padding:0 14px;color:#245547;background:#fff;border:1px solid var(--line);border-radius:8px}.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.comparison-grid div{padding:14px;background:var(--soft);border-radius:8px}.comparison-grid strong,.comparison-grid span{display:block}.comparison-grid span{margin-top:6px;color:var(--leaf-dark);font-weight:800}.site-table{display:grid;gap:8px}.site-row{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,.8fr));gap:12px;padding:12px;background:#fbfdfc;border:1px solid var(--line);border-radius:8px}.metric-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.integration-panel{margin-top:16px;padding:18px;background:#fbfdfc;box-shadow:none}.integration-panel p{color:var(--muted);line-height:1.5}.integration-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.integration-status-grid div{padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px}.integration-status-grid strong,.integration-status-grid span{display:block}.integration-status-grid strong{color:var(--muted);font-size:12px;text-transform:uppercase}.integration-status-grid span{margin-top:5px;font-weight:700}.integration-notes{margin:0 0 14px;padding-left:18px;color:var(--muted);font-size:14px;line-height:1.45}.integration-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.integration-grid input{height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px}.loading{padding:32px}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:28px;align-items:center;padding:48px;background:linear-gradient(120deg,#eaf7eeeb,#fffc),#eef4f1}.login-hero{display:grid;gap:28px;max-width:720px}.login-hero img{width:210px;max-width:100%;height:auto}.login-hero span{color:var(--leaf-dark);font-size:14px;font-weight:800;text-transform:uppercase}.login-hero h1{max-width:680px;margin:12px 0 18px;font-size:48px;line-height:1.04;letter-spacing:0}.login-hero p{max-width:620px;color:#3f5064;font-size:18px;line-height:1.55}.login-panel{display:grid;gap:16px;padding:28px}.login-panel h2{margin:6px 0;font-size:24px}.login-panel p{margin-bottom:0;color:var(--muted)}.login-panel label,.login-panel label span{display:block}.login-panel label span{margin-bottom:7px;color:#344054;font-size:13px;font-weight:700}.login-panel input,.login-panel select{width:100%;height:42px;padding:0 12px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px}.login-submit{width:100%;margin-top:4px}.language-toggle{display:inline-flex;height:40px;padding:3px;background:#fff;border:1px solid var(--line);border-radius:8px}.language-toggle button{min-width:42px;padding:0 10px;color:#46645a;background:transparent;border:0;border-radius:6px;font-weight:800}.language-toggle button.active{color:#fff;background:var(--leaf)}.sign-out-action{color:#6b3a30}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.status-stack{position:static;margin-top:18px}.nav{grid-template-columns:repeat(3,minmax(0,1fr))}.content-grid,.lower{grid-template-columns:1fr}.insight-grid,.action-draft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.main{padding:18px}.topbar{flex-direction:column}.topbar-actions,.topbar select,.topbar-actions button,.topbar-actions .language-toggle{width:100%}.topbar-actions .language-toggle button{flex:1}.kpi-grid,.portfolio-strip,.system-grid,.site-cards,.comparison-grid,.detail-grid,.integration-status-grid,.integration-grid,.insight-grid{grid-template-columns:1fr}.action-draft-head{display:grid}.action-draft-grid,.site-row{grid-template-columns:1fr}.login-page{grid-template-columns:1fr;padding:28px}.login-hero h1{font-size:36px}}
