.demo[data-v-75be5c1d]{padding-bottom:24px}.demo-links[data-v-75be5c1d]{display:flex;gap:22px}.demo-links a[data-v-75be5c1d]{color:var(--text);text-decoration:none;font-weight:500;font-size:14px}.demo-links a[data-v-75be5c1d]:hover{color:var(--blue)}.demo-hero[data-v-75be5c1d]{position:relative;overflow:hidden;border-radius:24px;padding:56px 48px 40px;color:#fff;background:linear-gradient(100deg,#081224f0,#0a1a34d1 45%,#0a1a3459),url(/demo/solarmaster/demo/hero.jpg) center / cover no-repeat;box-shadow:0 20px 50px #0b142440}.demo-hero-text[data-v-75be5c1d]{max-width:640px}.demo-hero h1[data-v-75be5c1d]{color:#fff;font-size:40px;line-height:1.2;margin:14px 0 12px}.demo-hero .hero-lead[data-v-75be5c1d]{color:#cfe3ff;font-size:17px;margin:0 0 8px}.demo-hero .hero-text[data-v-75be5c1d]{color:#ffffffbf;margin:0 0 22px}.demo-stats[data-v-75be5c1d]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:36px}.demo-stat[data-v-75be5c1d]{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.demo-stat span[data-v-75be5c1d]{font-size:12px;color:#ffffffa6}.demo-stat strong[data-v-75be5c1d]{font-size:22px;color:#fff;font-family:Space Grotesk,Inter,sans-serif}.demo-stat em[data-v-75be5c1d]{font-style:normal;font-size:12px;color:#9cc6ff}.btn-link[data-v-75be5c1d]{display:inline-flex;align-items:center;padding:8px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font-weight:500}.btn-link[data-v-75be5c1d]:hover{background:#ffffff1a}.btn-link.small[data-v-75be5c1d]{margin-top:10px;color:var(--blue);border-color:#b9d6fb;background:#fff}.btn-link.small[data-v-75be5c1d]:hover{background:var(--blue-soft)}.demo-block[data-v-75be5c1d]{margin-top:56px}.demo-h2[data-v-75be5c1d]{font-size:28px;margin:6px 0 8px;letter-spacing:-.01em}.demo-p[data-v-75be5c1d]{color:var(--muted);max-width:720px;margin:0}.feature-grid[data-v-75be5c1d]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}.feature[data-v-75be5c1d]{padding:20px;transition:transform .2s,box-shadow .2s}.feature[data-v-75be5c1d]:hover{transform:translateY(-3px);box-shadow:0 14px 30px #0f1b2d1a}.feature-icon[data-v-75be5c1d]{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--blue-soft);color:var(--blue)}.feature h3[data-v-75be5c1d]{font-size:16px;margin:14px 0 6px}.feature p[data-v-75be5c1d]{margin:0;color:var(--muted);font-size:13px}.flow-block[data-v-75be5c1d]{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.flow-img[data-v-75be5c1d]{width:100%;border-radius:20px;box-shadow:var(--shadow);cursor:zoom-in;display:block}.flow-steps[data-v-75be5c1d]{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px}.flow-steps li[data-v-75be5c1d]{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:14px}.flow-steps b[data-v-75be5c1d]{font-family:Space Grotesk,Inter,sans-serif;color:var(--blue);background:var(--blue-soft);border-radius:8px;padding:2px 8px;font-size:13px}.flow-steps span[data-v-75be5c1d]{color:var(--ink);font-weight:600}.step[data-v-75be5c1d]{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center;margin-top:40px;padding:32px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.step.reverse[data-v-75be5c1d]{grid-template-columns:1.15fr .85fr}.step.reverse[data-v-75be5c1d]>:first-child{order:2}.step-no[data-v-75be5c1d]{display:inline-block;font-family:Space Grotesk,Inter,sans-serif;font-size:13px;font-weight:700;color:#fff;background:var(--blue);border-radius:999px;padding:3px 12px}.step-text h3[data-v-75be5c1d]{font-size:22px;margin:12px 0 10px}.step-text p[data-v-75be5c1d]{margin:0 0 10px}.step-text ul[data-v-75be5c1d]{margin:0 0 10px;padding-left:18px;color:var(--text)}.step-text li[data-v-75be5c1d]{margin:3px 0}.step-text li[data-v-75be5c1d]::marker{color:var(--blue)}.kpi-line[data-v-75be5c1d]{color:var(--muted)}.kpi-line b[data-v-75be5c1d]{color:var(--blue);font-size:22px;font-family:Space Grotesk,Inter,sans-serif}.shot[data-v-75be5c1d]{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fbfcfe;cursor:zoom-in;transition:box-shadow .2s}.shot[data-v-75be5c1d]:hover{box-shadow:0 14px 30px #0f1b2d1f}.shot img[data-v-75be5c1d]{display:block;width:100%;height:auto}.shot.dark[data-v-75be5c1d]{background:var(--navy);border-color:#1d2c45}.shot.dark figcaption[data-v-75be5c1d]{color:#a9b8cf;border-top-color:#1d2c45}.shot figcaption[data-v-75be5c1d]{font-size:12px;color:var(--muted);padding:8px 12px;border-top:1px solid var(--line)}.shot.wide[data-v-75be5c1d]{margin-top:18px}.shot-stack[data-v-75be5c1d]{display:grid;gap:14px;min-width:0}.parse-card[data-v-75be5c1d]{padding:18px}.parse-roof+.parse-roof[data-v-75be5c1d]{margin-top:14px}.parse-head[data-v-75be5c1d]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.parse-head b[data-v-75be5c1d]{color:var(--ink);font-size:15px}.parse-head span[data-v-75be5c1d]{color:var(--muted);font-size:12px}.parse-card table[data-v-75be5c1d]{width:100%;table-layout:fixed}.parse-note[data-v-75be5c1d]{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#fff8e8;color:#8a5a00;font-size:12px}.bars-wrap[data-v-75be5c1d]{margin-top:14px;padding:14px;border-radius:14px;background:#f6f9fd;border:1px solid var(--line)}.bars-demo[data-v-75be5c1d]{display:flex;align-items:flex-end;gap:6px;height:130px}.bars-demo .bar[data-v-75be5c1d]{flex:1;position:relative;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#4aa3ff,#1d72e0)}.bars-demo .bar i[data-v-75be5c1d]{position:absolute;top:-17px;left:0;right:0;text-align:center;font-style:normal;font-size:10px;color:var(--muted)}.bars-x[data-v-75be5c1d]{display:flex;gap:6px;margin-top:4px}.bars-x span[data-v-75be5c1d]{flex:1;text-align:center;font-size:10px;color:var(--muted)}.bars-cap[data-v-75be5c1d]{margin:8px 0 0!important;font-size:12px;color:var(--muted)}.chat[data-v-75be5c1d]{padding:18px;display:grid;gap:14px}.chat-pair[data-v-75be5c1d]{display:grid;gap:6px}.bubble[data-v-75be5c1d]{padding:10px 14px;border-radius:14px;font-size:13px;max-width:88%}.bubble.me[data-v-75be5c1d]{justify-self:end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}.bubble.bot[data-v-75be5c1d]{justify-self:start;background:#f1f5fa;color:var(--ink);border-bottom-left-radius:4px}.export-chips[data-v-75be5c1d]{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.export-chips span[data-v-75be5c1d]{padding:5px 12px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:12px;font-weight:500}.demo-cta[data-v-75be5c1d]{margin-top:56px;padding:36px 40px;border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:linear-gradient(120deg,#0d1d38,#1559b8);color:#fff}.demo-cta h2[data-v-75be5c1d]{color:#fff;font-size:24px;margin:0 0 6px}.demo-cta p[data-v-75be5c1d]{margin:0;color:#ffffffbf}.btn-link.light[data-v-75be5c1d]{border-color:#ffffff80}.demo-foot[data-v-75be5c1d]{margin-top:18px;font-size:12px;color:var(--muted);text-align:center}.zoom[data-v-75be5c1d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#080e1adb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;cursor:zoom-out}.zoom img[data-v-75be5c1d]{max-width:100%;max-height:calc(100vh - 100px);background:#fff;border-radius:12px}.zoom span[data-v-75be5c1d]{color:#cdd6e3;font-size:13px}@media (max-width: 860px){.demo-links[data-v-75be5c1d]{display:none}.demo-hero[data-v-75be5c1d]{padding:32px 22px 24px}.demo-hero h1[data-v-75be5c1d]{font-size:28px}.demo-stats[data-v-75be5c1d]{grid-template-columns:repeat(2,1fr)}.feature-grid[data-v-75be5c1d]{grid-template-columns:1fr 1fr}.flow-block[data-v-75be5c1d],.step[data-v-75be5c1d]{grid-template-columns:1fr;gap:20px}.step[data-v-75be5c1d]{padding:20px}.step.reverse[data-v-75be5c1d]>:first-child{order:0}.demo-h2[data-v-75be5c1d]{font-size:22px}}:root{--blue: #2080f0;--blue-dark: #1668cc;--blue-soft: #eaf3fe;--ink: #19222f;--text: #3f4a5a;--muted: #677487;--line: #e3e9f1;--bg: #f7fafc;--navy: #0b1424;--radius: 16px;--shadow: 0 1px 2px rgba(15, 27, 45, .04), 0 8px 24px rgba(15, 27, 45, .06);color:var(--text);background:var(--bg);font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--bg);background-image:linear-gradient(180deg,rgba(247,250,252,0) 0,var(--bg) 640px),linear-gradient(rgba(32,128,240,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(32,128,240,.05) 1px,transparent 1px);background-size:100% 100%,32px 32px,32px 32px}h1,h2,h3,.brand strong,.metric strong{font-family:Space Grotesk,Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink)}h1{font-size:30px;line-height:1.25;margin:0;letter-spacing:-.02em;font-weight:700}h2{font-size:17px;margin:0 0 12px;font-weight:600}.sub{color:var(--muted);margin:6px 0 0;font-size:13px}details{margin-top:8px}summary{cursor:pointer;color:var(--blue);font-weight:500}pre{background:#f3f6fa;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12px;color:var(--text)}button,input,select{font:inherit}button{border:1px solid transparent;background:var(--blue);color:#fff;border-radius:12px;padding:8px 16px;font-weight:500;cursor:pointer;box-shadow:0 2px 3px #00000014;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}button:hover:not(:disabled){background:var(--blue-dark);box-shadow:0 6px 16px #2080f047}button.secondary{background:var(--ink)}button.secondary:hover:not(:disabled){background:#0f1724;box-shadow:0 6px 16px #0f172440}button.ghost{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:0 1px 2px #0f1b2d0d}button.ghost:hover:not(:disabled){background:#fff;color:var(--blue);border-color:#b9d6fb;box-shadow:0 4px 12px #2080f01f}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}input,select{border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2080f026}input[type=range]{padding:0;border:0;background:transparent;box-shadow:none;accent-color:var(--blue)}input[type=file]{padding:6px;background:#f8fafd}input[type=checkbox]{accent-color:var(--blue)}label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:500;color:var(--muted);min-width:0}label input,label select{width:100%;min-width:0}.app-shell{max-width:1200px;margin:0 auto;padding:16px 24px 64px}.grid{display:grid;gap:16px}.grid>*{min-width:0}.two{grid-template-columns:1.2fr .8fr}.projects{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.nav{position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px 10px 18px;margin-bottom:20px;background:#ffffffdb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(227,233,241,.9);border-radius:18px;box-shadow:0 8px 30px #0f1b2d14}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,#3b95ff,#1560c9);color:#fff;box-shadow:0 4px 12px #2080f059}.brand strong{font-size:17px;letter-spacing:-.01em}.brand-sub{color:var(--muted);font-size:12px;padding-left:10px;border-left:1px solid var(--line)}.nav-right{display:flex;align-items:center;gap:12px;min-width:0}.crumb{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.crumb b{color:var(--ink);font-weight:600}.hero{position:relative;overflow:hidden;border-radius:20px;padding:32px 36px;color:#f5f8ffe6;background:radial-gradient(circle at 85% -10%,rgba(32,128,240,.45),transparent 45%),radial-gradient(circle at 0% 120%,rgba(56,189,248,.18),transparent 45%),linear-gradient(135deg,#0b1424,#12223c 55%,#0c1a31);box-shadow:0 20px 40px #0b14242e;margin-bottom:20px}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 90%);mask-image:linear-gradient(180deg,#000 0%,transparent 90%);pointer-events:none}.hero>*{position:relative}.hero h1{color:#fff;font-size:34px}.hero .hero-lead{color:#fff;font-weight:600;font-size:16px;margin:10px 0 0}.hero .hero-text{color:#e2e9f5c7;margin:8px 0 0;max-width:720px;font-size:13px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#e8efff;background:#ffffff14;border:1px solid rgba(255,255,255,.18)}.hero-feats{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:13px;color:#e2e9f5cc}.hero-feats span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#4aa3ff;margin-right:7px;vertical-align:middle;box-shadow:0 0 8px #4aa3ff}.hero-demo{margin-top:22px;background:#ffffff1a;border-color:#ffffff4d}.hero-demo:hover:not(:disabled){background:#ffffff2e;box-shadow:none}.hero .row{margin-top:18px}.hero label{color:#e2e9f5bf}.hero input,.hero select{background:#ffffff12;border-color:#ffffff2e;color:#fff;min-width:150px}.hero input:focus,.hero select:focus{border-color:#4aa3ff}.hero select option{color:var(--ink);background:#fff}.hero button.ghost{background:#fffffff2}.eyebrow{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--blue);background:var(--blue-soft);border:1px solid #cfe3fc;margin-bottom:8px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px}.metrics .card.metric{border:0;border-radius:0;box-shadow:none;text-align:center;padding:18px 12px;border-right:1px solid var(--line)}.metrics .card.metric:last-child{border-right:0}.metric strong{display:block;font-size:22px;line-height:1.3;font-weight:700;color:var(--blue);margin:2px 0;letter-spacing:-.01em}.metric span{color:var(--muted);font-size:12px;display:block}.tabs{display:inline-flex;gap:4px;margin:16px 0;padding:4px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.tabs button{background:transparent;color:var(--muted);box-shadow:none;border-radius:10px;padding:7px 18px}.tabs button:hover:not(:disabled){background:#f1f5fa;color:var(--ink);box-shadow:none}.tabs button.on,.tabs button.on:hover:not(:disabled){background:var(--blue);color:#fff;box-shadow:0 4px 12px #2080f04d}.toolbar{margin-bottom:12px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;margin:8px 0}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid #edf1f6}th{color:var(--muted);font-weight:600;font-size:12px;background:#f6f9fc}th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}tbody tr:hover td{background:#fafcff}td button{padding:4px 10px;font-size:12px;margin:2px 0}td input,td select{padding:5px 8px}.banner{background:#fff8e6;border:1px solid #fde7b0;border-radius:12px;padding:10px 14px;color:#7a5a12;margin:0 0 12px}.error{color:#c0392b;background:#fdecea;border:1px solid #f8c9c3;border-radius:10px;padding:8px 12px;margin:8px 0}.ok{color:#13834f}.bars{display:flex;align-items:end;gap:6px;height:140px;padding:8px;background:#f8fafd;border-radius:12px}.bars div{flex:1;background:linear-gradient(180deg,#4aa3ff,var(--blue));border-radius:6px 6px 2px 2px;min-height:4px}.scene{height:500px;border-radius:14px;overflow:hidden;background:var(--navy);border:1px solid #1c2b44}.scene-wrap{position:relative}.pick{position:absolute;left:12px;bottom:12px;margin:0;padding:7px 12px;border-radius:10px;background:#0b1424e0;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#e8efff;font-size:13px}.pick button{margin-left:8px;padding:4px 10px}.preview{width:100%;min-height:360px;background:#f8fafd;border:1px solid var(--line);border-radius:12px}.login-wrap{display:grid;grid-template-columns:1.3fr .9fr;gap:20px;align-items:stretch;margin-top:6vh}.login-wrap .hero{margin:0;padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.login-wrap .hero h1{font-size:42px}.login{align-self:center;padding:28px}.login h2{font-size:20px}.project-card{display:flex;align-items:flex-start;gap:12px;transition:border-color .15s,box-shadow .15s,transform .15s}.project-card:hover{border-color:#b9d6fb;box-shadow:0 12px 28px #2080f01f;transform:translateY(-2px)}.project-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--blue-soft);color:var(--blue)}button.project-open{flex:1;min-width:0;text-align:left;background:transparent;color:inherit;padding:0;border:0;box-shadow:none}button.project-open:hover:not(:disabled){background:transparent;box-shadow:none}button.project-open strong{color:var(--ink);font-size:15px}.status{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;font-size:11px;background:#eef2f7;color:var(--muted)}.status.designed{background:#e6f6ee;color:#13834f}button.project-delete{padding:4px 10px;font-size:12px;color:#c0392b;border-color:#f3d0cc}button.project-delete:hover:not(:disabled){color:#fff;background:#d64535;border-color:#d64535;box-shadow:none}button.card.on{border-color:var(--blue);box-shadow:0 0 0 2px #2080f033}@media (max-width: 860px){.fields{grid-template-columns:1fr 1fr}.two,.login-wrap{grid-template-columns:1fr}.app-shell{padding:12px 12px 40px}.hero{padding:24px 20px}.hero h1,.login-wrap .hero h1{font-size:26px}.brand-sub,.crumb{display:none}.metrics .card.metric{border-right:0;border-bottom:1px solid var(--line)}}
