*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.collapse{visibility:collapse}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rounded{border-radius:.25rem}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{color:#10222f;background:#eef5f5;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;min-height:100dvh;overflow-x:hidden}body{background:radial-gradient(circle at 12% 0%,rgba(246,184,63,.22),transparent 28rem),linear-gradient(135deg,#eef5f5,#f8fbfa 42%,#e7f0f1)}button,input,select{font:inherit}button{min-height:44px;border:0;cursor:pointer}.appShell{width:min(1440px,100%);margin:0 auto;padding:28px}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:16px;align-items:stretch;min-height:270px}.heroCopy,.heroPanel,.controlPanel,.designerSurface,.backendStrip{border:1px solid rgba(15,93,102,.12);box-shadow:0 16px 48px #10222f0f}.heroCopy{display:flex;flex-direction:column;justify-content:center;padding:clamp(16px,3vw,28px);color:#fff;background:linear-gradient(135deg,#10222ff5,#0f5d66eb),linear-gradient(90deg,rgba(246,184,63,.28),transparent);border-radius:20px;overflow:hidden}.brandMark,.heroActions,.panelHeader,.surfaceHeader,.loadsHeader,.locationPill,.backendStrip{display:flex;align-items:center}.brandMark{gap:8px;margin-bottom:12px;font-weight:800;letter-spacing:0}.brandMark svg{color:#f6b83f;width:20px;height:20px}.hero h1{max-width:860px;margin:0;font-size:clamp(1.5rem,3.2vw,3.2rem);line-height:1;letter-spacing:0}.hero p{max-width:680px;color:#ffffffc7;font-size:.88rem;line-height:1.5;margin:8px 0 0}.heroActions{gap:10px;flex-wrap:wrap;margin-top:14px}.heroActions button,.loadsHeader button{display:inline-flex;align-items:center;gap:6px;border-radius:8px;padding:0 12px;height:36px;color:#10222f;background:#f6b83f;font-weight:800;font-size:.82rem}.heroActions .secondary{color:#fff;background:#ffffff24;border:1px solid rgba(255,255,255,.22)}.heroPanel{display:grid;gap:8px;padding:12px;border-radius:20px;background:#ffffffc7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.metric{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;min-height:52px;padding:8px 12px;border-radius:12px;background:#fff;border:1px solid rgba(83,97,111,.12)}.metric svg{width:32px;height:32px;padding:7px;border-radius:8px;color:#fff;background:#0f5d66}.metric-green svg{background:#1d8a65}.metric-solar svg{color:#10222f;background:#f6b83f}.metric-dark svg{background:#10222f}.metric span,.resultCard span,.surfaceHeader span{display:block;color:#53616f;font-size:.65rem;font-weight:800;text-transform:uppercase}.metric strong{display:block;margin-top:1px;font-size:.95rem;line-height:1.2}.workspaceGrid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;margin-top:24px}.controlPanel,.designerSurface{border-radius:24px;background:#ffffffe0}.controlPanel{align-self:start;position:sticky;top:18px;padding:20px}.panelHeader{gap:12px;margin-bottom:18px}.panelHeader svg{flex:0 0 auto;color:#0f5d66}h2,h3,p{margin-top:0}.panelHeader h2,.surfaceHeader h2,.backendStrip h2{margin-bottom:4px}.panelHeader p,.backendStrip p,.hint{margin-bottom:0;color:#53616f;line-height:1.55}.twoCols,.catalogGrid,.resultsGrid,.analysisGrid{display:grid;gap:14px}.twoCols{grid-template-columns:1fr 1fr}.field{display:grid;gap:7px;margin-bottom:14px}.field span{color:#334656;font-size:.84rem;font-weight:800}input,select{width:100%;min-height:44px;border:1px solid rgba(83,97,111,.22);border-radius:12px;padding:0 12px;color:#10222f;background:#fff;outline:none}input:focus,select:focus,button:focus-visible{border-color:#0f5d66;box-shadow:0 0 0 3px #0f5d662e}.inputWithSuffix{position:relative}.inputWithSuffix small{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#75808a;font-weight:800}.designerSurface{padding:22px;overflow:hidden}.surfaceHeader{justify-content:space-between;gap:16px;margin-bottom:18px}.surfaceHeader h2{font-size:clamp(1.5rem,2vw,2.2rem)}.locationPill{gap:8px;min-height:40px;padding:0 14px;border-radius:999px;color:#0f5d66;background:#e8f4f2;font-weight:800;white-space:nowrap}.catalogGrid{grid-template-columns:repeat(3,1fr)}.loadsHeader{justify-content:space-between;gap:14px;margin:12px 0}.loadsHeader h3{margin-bottom:0}.loadTable{overflow-x:auto;padding-bottom:6px}.loadRow{display:grid;grid-template-columns:minmax(180px,1.5fr) 130px 70px 90px 90px 84px 84px 110px 44px;gap:8px;min-width:900px;align-items:center;margin-bottom:8px}.loadHead{color:#53616f;font-size:.76rem;font-weight:900;text-transform:uppercase}.iconButton{border-radius:10px;color:#9d2f2f;background:#fff1f1;font-weight:900;display:flex;align-items:center;justify-content:center;min-height:38px;cursor:pointer}.resultsGrid{grid-template-columns:1.25fr 1.25fr 1fr 1fr;margin-top:18px}.resultCard{min-height:150px;padding:18px;border-radius:20px;background:#f6faf9;border:1px solid rgba(15,93,102,.12)}.resultCard.primary{color:#fff;background:linear-gradient(135deg,#0f5d66,#10222f)}.resultCard.primary span,.resultCard.primary p{color:#ffffffb8}.resultCard.incomplete{background:#fffbeb;border:2px solid #d97706}.resultCard.incomplete span,.resultCard.incomplete h3,.resultCard.incomplete p{color:#78350f}.resultCard.incomplete span,.resultCard.incompatible span{font-weight:800}.resultCard.conditional{background:#eaf7f5;border:2px solid #0f766e}.resultCard.conditional span,.resultCard.conditional h3,.resultCard.conditional p{color:#134e4a}.resultCard.conditional span{font-weight:800}.resultCard.incompatible{background:#fff1f2;border:2px solid #dc2626}.resultCard.incompatible span,.resultCard.incompatible h3,.resultCard.incompatible p{color:#881337}.resultCard.viable{background:#fffbeb;border:1px solid rgba(217,119,6,.22)}.resultCard.viable span{color:#b45309;font-weight:700}.resultCard.viable h3{color:#d97706}.resultCard.viable p{color:#78350f;font-size:.8rem}.resultCard h3{margin:8px 0;font-size:1.45rem}.resultCard p{margin-bottom:0;color:#53616f;line-height:1.5}.analysisGrid{grid-template-columns:1fr 1fr;margin-top:16px}.analysisPanel{padding:18px;border-radius:20px;background:#fff;border:1px solid rgba(83,97,111,.12)}.resultBar+.resultBar{margin-top:18px}.resultBarTop{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-weight:800}.barTrack{height:14px;border-radius:999px;overflow:hidden;background:#e3ecec}.barFill{height:100%;border-radius:inherit}.barFill.night{background:linear-gradient(90deg,#10222f,#31667a)}.barFill.day{background:linear-gradient(90deg,#f6b83f,#1d8a65)}.checks{display:grid;gap:10px;margin:0 0 14px;padding:0;list-style:none}.checks li{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 10px;border-radius:12px;font-weight:800}.checks svg{width:18px;height:18px}.checks .ok{color:#166347;background:#e8f7f0}.checks .bad{color:#9d5b00;background:#fff4dc}.checks .conditional{color:#134e4a;background:#eaf7f5;border:1px solid rgba(15,118,110,.28)}.motorStartDetails{display:grid;gap:8px;width:100%;padding:12px;border-radius:10px;background:#ffffffb8;font-size:.78rem;line-height:1.45}.motorControllerSpec{display:grid;gap:4px;padding:10px;border-radius:8px;background:#0f766e14}.warnings{display:grid;gap:8px}.warnings p,.cleanMessage{margin:0;padding:10px 12px;border-radius:12px;line-height:1.45}.warnings p{color:#7a4100;background:#fff4dc}.cleanMessage{color:#166347;background:#e8f7f0}.backendStrip{gap:16px;margin-top:24px;padding:22px;border-radius:22px;background:#fff}.backendStrip svg{width:42px;height:42px;color:#0f5d66}code{padding:2px 6px;border-radius:6px;background:#e8f4f2}@media(max-width:1100px){.hero,.workspaceGrid,.resultsGrid,.analysisGrid{grid-template-columns:1fr}.controlPanel{position:static}}@media(max-width:760px){.appShell{padding:14px}.heroCopy,.designerSurface,.controlPanel{border-radius:18px;padding:18px}.hero{min-height:0}.twoCols,.catalogGrid{grid-template-columns:1fr}.surfaceHeader,.loadsHeader,.backendStrip{align-items:flex-start;flex-direction:column}}@media print{body{background:#fff}.heroActions,.controlPanel,.backendStrip{display:none}.appShell{padding:0}.hero,.workspaceGrid{display:block}.designerSurface,.heroCopy,.heroPanel{box-shadow:none;border:0}}.dashboardGrid{display:grid;grid-template-columns:380px minmax(0,1fr);grid-template-rows:auto 1fr;gap:24px;align-items:stretch}.dashboardLeftCol{grid-column:1;grid-row:1 / span 2;display:flex;flex-direction:column}.dashboardWidgetRow{grid-column:2;grid-row:1}.dashboardProjectsRow{grid-column:2;grid-row:2}.dashboardChartRow{grid-column:1 / -1;margin-top:12px}.logoPanelCard{display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:36px 28px;border-radius:24px;background:linear-gradient(135deg,#0f5d66,#10222f);border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 80px #10222f1f;color:#fff}.logoWrapper{display:flex;justify-content:center;align-items:center;padding:8px}.dashboardLogoImage{max-width:100%;max-height:110px;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(0,0,0,.2));transition:transform .3s cubic-bezier(.16,1,.3,1)}.dashboardLogoImage:hover{transform:scale(1.03)}.brandContent{text-align:center;margin:28px 0}.brandContent h2{font-size:2.1rem;font-weight:800;line-height:1.15;color:#fff!important;margin:0 0 12px;letter-spacing:-.02em}.brandContent p{font-size:.92rem;color:#fffc!important;line-height:1.5;margin:0}.brandActions{margin-bottom:24px}.btnStartNew{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border-radius:12px;background:#f6b83f;color:#10222f!important;font-weight:800;font-size:1.05rem;transition:all .2s ease;box-shadow:0 6px 20px #f6b83f40;border:none;cursor:pointer}.btnStartNew:hover{background:#f4ab1f;transform:translateY(-2px);box-shadow:0 8px 24px #f6b83f59}.btnStartNew:active{transform:translateY(0)}.logoPanelInfo{border-top:1px solid rgba(255,255,255,.15);padding-top:20px}.logoPanelInfo p{margin:0 0 16px;font-size:.85rem;color:#ffffffb3!important;line-height:1.5}.panelSectionLabel{display:block;font-size:.68rem;font-weight:800;text-transform:uppercase;color:#ffffff80!important;letter-spacing:.05em;margin-bottom:10px}.storageBadge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:#ffffff1f;border:1px solid rgba(255,255,255,.15);font-size:.72rem;font-weight:800;text-transform:uppercase;color:#f6b83f!important}.sidebarStats{margin-top:16px;display:flex;flex-direction:column;gap:8px}.sidebarStatRow{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:#ffffffbf!important}.sidebarStatRow strong{color:#fff!important;font-weight:700}.dashboardRightCol{display:flex;flex-direction:column;gap:24px}.dashboardWidgetRow{width:100%}.dashboardProjectsRow{padding:24px;border-radius:24px;background:#ffffffe0;border:1px solid rgba(15,93,102,.12);box-shadow:0 24px 80px #10222f14}.projectsHeader{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:20px;border-bottom:1px solid rgba(83,97,111,.08);padding-bottom:16px}.headerLeft{display:flex;align-items:center;gap:12px}.headerLeft svg{color:#0f5d66;flex-shrink:0}.headerLeft h2{margin:0 0 4px;font-size:1.25rem;color:#10222f}.headerLeft p{margin:0;font-size:.8rem;color:#53616f}.loadingContainer,.emptyState{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:#fff;border-radius:20px;border:1px dashed rgba(15,93,102,.2)}.loadingSpinner{width:40px;height:40px;border:3px solid rgba(15,93,102,.1);border-radius:50%;border-top-color:#0f5d66;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.emptyIcon{color:#53616f;opacity:.5;margin-bottom:16px}.emptyState h3{color:#10222f;margin-bottom:8px}.emptyState p{max-width:320px;margin-bottom:20px;font-size:.9rem}.projectGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.projectCard{position:relative;display:flex;flex-direction:column;padding:18px;border-radius:20px;background:#fff;border:1px solid rgba(83,97,111,.12);cursor:pointer;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease}.projectCard:hover{transform:translateY(-4px);box-shadow:0 16px 40px #10222f14;border-color:#0f5d6638}.cardHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.projectPill{font-size:.72rem;font-weight:800;text-transform:uppercase;padding:4px 8px;background:#e8f4f2;color:#0f5d66;border-radius:6px}.deleteButton{display:flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:auto;border-radius:8px;color:#9d2f2f;background:#fff1f1;transition:background .15s ease}.deleteButton:hover{background:#ffd6d6}.projectCardTitle{margin:0 0 14px;font-size:1.1rem;color:#10222f;line-height:1.25}.projectMeta{display:grid;gap:8px;margin-bottom:18px;font-size:.84rem;color:#53616f}.metaRow{display:flex;align-items:center;gap:8px}.metaRow svg{color:#0f5d66;opacity:.75}.cardResultsSummary{display:flex;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(83,97,111,.08)}.cardResultsSummary span{font-size:.76rem;font-weight:800;color:#10222f;padding:3px 8px;border-radius:6px;background:#f6faf9;border:1px solid rgba(15,93,102,.08)}.modalBackdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#10222f73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modalContainer{width:min(460px,92%);background:#fff;border-radius:24px;padding:24px;box-shadow:0 32px 100px #10222f40;border:1px solid rgba(15,93,102,.15);animation:modalScaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalScaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.modalHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modalHeader h2{font-size:1.35rem;margin:0;color:#10222f}.closeModal{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto;border-radius:50%;background:#eef5f5;color:#53616f;font-size:1rem;font-weight:800}.closeModal:hover{background:#e2ecec}.modalForm{display:grid;gap:16px}.modalForm .field{margin-bottom:0}.fieldHint{display:block;font-size:.76rem;color:#75808a;margin-top:4px}.modalActions{display:flex;justify-content:flex-end;gap:12px;margin-top:14px}.btnPrimary,.btnSecondary,.btnBack,.btnSave{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:0 20px;font-weight:800;transition:background .15s ease,transform .1s ease}.btnPrimary,.btnSave{background:#f6b83f;color:#10222f}.btnPrimary:hover,.btnSave:hover{background:#f4ab1f}.btnSecondary,.btnBack{background:#eef5f5;color:#10222f;border:1px solid rgba(83,97,111,.12)}.btnSecondary:hover,.btnBack:hover{background:#e2ecec}.btnBack svg{color:#0f5d66}.solarWidget{padding:20px;border-radius:24px;background:#fff;border:1px solid rgba(83,97,111,.12);height:100%}.widgetHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid rgba(83,97,111,.08)}.widgetTitle{display:flex;align-items:center;gap:10px}.widgetTitle svg{color:#f6b83f}.pulseIcon{animation:pulseSun 3s infinite ease-in-out}@keyframes pulseSun{0%,to{transform:scale(1);filter:drop-shadow(0 0 0px rgba(246,184,63,0))}50%{transform:scale(1.12);filter:drop-shadow(0 0 6px rgba(246,184,63,.6))}}.widgetTitle h3{margin:0;font-size:1.05rem;color:#10222f}.widgetTitle p{margin:2px 0 0;font-size:.76rem;color:#75808a}.widgetSelect{width:auto;min-height:34px;height:34px;padding:0 10px;border-radius:8px;font-size:.8rem;font-weight:800;background:#f6faf9;border:1px solid rgba(15,93,102,.12)}.widgetGrid{display:grid;gap:20px}.widgetStats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.statCard{display:flex;flex-direction:column;padding:12px;border-radius:16px;background:#f6faf9;border:1px solid rgba(83,97,111,.06)}.statLabel{font-size:.74rem;font-weight:800;color:#75808a;text-transform:uppercase}.statValue{font-size:1.25rem;font-weight:800;margin:4px 0;line-height:1.2}.textSolar{color:#db9615}.textTeal{color:#0f5d66}.statDesc{font-size:.72rem;color:#75808a;line-height:1.3}.skyCondition{display:flex;align-items:center;gap:6px;margin:4px 0;font-weight:800;color:#10222f;font-size:.95rem}.skyIcon{color:#f6b83f}.tempIcon{color:#9d2f2f}.widgetChartContainer{padding:16px;border-radius:16px;background:#fafcff;border:1px solid rgba(42,111,187,.08)}.chartHeader{display:flex;justify-content:space-between;font-size:.78rem;font-weight:800;color:#53616f;margin-bottom:12px}.chartWrapper{position:relative;margin-bottom:6px}.chartSvg{width:100%;height:auto;overflow:visible}.chartLabelsX{display:flex;justify-content:space-between;padding:4px 10px 0;font-size:.72rem;font-weight:800;color:#75808a}.chartHint{font-size:.76rem;color:#75808a;margin:10px 0 0;line-height:1.45}.chartCurvePath{stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset 1.4s ease-in-out}.chartCurvePath.animate-path{stroke-dashoffset:0}.chartFillPath{opacity:0;transition:opacity 1.6s ease}.chartFillPath.animate-path{opacity:1}.chartPeakPoint{animation:fadeInPoint .5s ease-out 1.2s both}@keyframes fadeInPoint{0%{opacity:0;transform:scale(0);transform-origin:180px center}to{opacity:1;transform:scale(1);transform-origin:180px center}}.mapsLinkContainer{margin:-6px 0 12px}.mapsLink{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:800;color:#0f5d66;text-decoration:none;background:#e8f4f2;padding:4px 12px;border-radius:8px;transition:background .15s ease}.mapsLink:hover{background:#d4ece8}@media(max-width:1100px){.dashboardGrid{grid-template-columns:1fr;grid-template-rows:auto}.dashboardLeftCol,.dashboardWidgetRow,.dashboardProjectsRow,.dashboardChartRow{grid-column:1;grid-row:auto}.logoPanelCard{min-height:auto;padding:24px}.widgetStats{grid-template-columns:1fr 1fr}}@media(max-width:760px){.widgetStats{grid-template-columns:1fr}.projectsHeader{flex-direction:column;align-items:flex-start}.projectsHeader .btnPrimary{width:100%}}.globalAppHeader{background:#f8fbfa;border-bottom:1px solid rgba(15,93,102,.08);position:sticky;top:0;z-index:100;width:100%}.globalHeaderInner{display:flex;justify-content:space-between;align-items:center;max-width:1440px;margin:0 auto;padding:10px 28px;min-height:60px}.appLogo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;color:#10222f}.logoSunIcon{color:#f6b83f;animation:spinSlow 20s linear infinite}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.globalTabBar{display:flex;gap:8px}.tabButton{display:flex;align-items:center;gap:8px;padding:6px 16px;border-radius:10px;font-size:.9rem;font-weight:700;color:#53616f;background:transparent;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:38px;text-decoration:none}.tabButton svg{transition:transform .2s ease}.tabButton:hover{background:#0f5d660f;color:#10222f}.tabButton:hover svg{transform:translateY(-1px)}.tabButton.active{background:#0f5d66;color:#fff;box-shadow:0 4px 12px #0f5d6626}.appContainer{display:flex;flex-direction:column;min-height:100vh}.btnInitializeProject{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#c2410c;border:1px solid #ea580c;font-weight:700;font-size:.78rem;padding:4px 12px;border-radius:8px;min-height:auto;height:28px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.btnInitializeProject:hover{background:#fff7ed;color:#9a3412;border-color:#9a3412;box-shadow:0 2px 6px #ea580c1a}.decimalInputWrapper{display:flex;align-items:center;position:relative;background:#fff;border:1px solid rgba(83,97,111,.22);border-radius:12px;min-height:44px;width:100%}.decimalInputWrapper input{border:none!important;background:transparent!important;width:100%!important;height:100%!important;min-height:42px!important;padding:0 48px 0 12px!important;color:#10222f!important;outline:none!important;box-shadow:none!important}.decimalInputWrapper:focus-within{border-color:#0f5d66!important;box-shadow:0 0 0 3px #0f5d662e!important}.decimalInputSuffix{position:absolute;right:28px;top:50%;transform:translateY(-50%);color:#75808a;font-weight:800;font-size:.8rem;pointer-events:none}.decimalInputSpinners{display:flex;flex-direction:column;position:absolute;right:8px;top:50%;transform:translateY(-50%);gap:2px}.spinnerBtn{background:none!important;border:none!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#75808a!important;cursor:pointer!important;height:14px!important;width:16px!important;font-size:8px!important;line-height:1!important;box-shadow:none!important;min-height:auto!important}.spinnerBtn:hover{color:#0f5d66!important}.btnRecalc{background:#e3ecec!important;color:#0f5d66!important;border:1px solid rgba(15,93,102,.15)!important;transition:all .2s cubic-bezier(.4,0,.2,1)}.btnRecalc:hover{background:#d4e3e3!important;color:#0c4a52!important}.spin{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toastSuccess{position:fixed;bottom:24px;right:24px;background:#0f5d66;color:#fff;padding:12px 20px;border-radius:12px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 25px -5px #0f5d6666;z-index:2000;font-weight:800;animation:slideInUp .3s ease-out forwards}@keyframes slideInUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.reportsViewLayout{display:flex;height:calc(100vh - 70px);background:#f6faf9;overflow:hidden}.reportsSidebar{width:320px;background:#fff;border-right:1px solid rgba(83,97,111,.12);display:flex;flex-direction:column;flex-shrink:0}.reportsSidebarHeader{padding:24px;border-bottom:1px solid rgba(83,97,111,.12)}.reportsSidebarHeader h2{margin:0 0 8px;font-size:1.25rem;color:#10222f}.reportsSidebarHeader p{margin:0;font-size:.85rem;color:#53616f;line-height:1.4}.projectSelectList{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.projectSelectBtn{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:1px solid transparent;background:transparent;border-radius:12px;text-align:left;cursor:pointer;transition:all .2s ease;color:#53616f}.projectSelectBtn:hover{background:#f6faf9}.projectSelectBtn.active{background:#e8f4f2;border-color:#0f5d6633;color:#0f5d66}.projectSelectBtn.active svg{color:#0f5d66}.projectSelectInfo{display:flex;flex-direction:column;gap:4px}.psClient{font-weight:800;font-size:.95rem;color:#10222f}.psProject{font-size:.8rem}.emptySelect{padding:24px;text-align:center;color:#53616f;font-size:.9rem}.reportsMainArea{flex:1;overflow-y:auto;padding:32px;display:flex;justify-content:center}.a4PreviewContainer{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%}.a4Actions{display:flex;justify-content:flex-end;width:210mm}.printBtn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#0f5d66;color:#fff;border:none;border-radius:8px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px #0f5d6633;transition:all .2s}.printBtn:hover{background:#0c4a52;transform:translateY(-2px);box-shadow:0 6px 16px #0f5d664d}.a4Document{width:210mm;min-height:297mm;box-sizing:border-box;padding:15mm;background:#fff;box-shadow:0 20px 60px #10222f14;border-radius:4px;border:1px solid #DAE0E9;color:#334155;font-family:Inter,system-ui,-apple-system,sans-serif;position:relative;display:flex;flex-direction:column;justify-content:space-between}.reportHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.reportTitleArea{display:flex;flex-direction:column;gap:4px}.reportTitle{font-size:1.45rem;font-weight:800;color:#0f2043;margin:0;letter-spacing:.5px}.reportSubtitle{font-size:.8rem;font-weight:600;color:#4682b4;margin:0;letter-spacing:.8px}.reportLogo{height:96px;width:auto;max-width:28%;max-height:96px;flex:0 0 auto;-o-object-fit:contain;object-fit:contain}.reportHeaderLine{height:2px;background:#4682b4;width:100%;margin-bottom:18px}.reportSection{margin-bottom:16px}.sectionTitle{font-size:.88rem;text-transform:uppercase;letter-spacing:.8px;color:#0f2043;border-bottom:1.5px solid #DAE0E9;padding-bottom:4px;margin:0 0 10px;font-weight:700}.infoGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#f5f7fa;border:1px solid #DAE0E9;padding:10px 14px;border-radius:6px}.infoBlock{font-size:.8rem;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.infoBlock strong{color:#0f2043;margin-right:4px}.executiveSummaryGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.execCard{border:1px solid #DAE0E9;border-radius:6px;padding:12px 6px;text-align:center;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.execCard.pvCard{background-color:#fffdf5;border-color:#fde68a}.execCard.pvCard .execIcon{color:#d97706}.execCard.pvCard .execVal{color:#92400e}.execCard.pvCard .execLabel{color:#b45309}.execCard.viableCard{background-color:#fff7ed;border-color:#ffedd5}.execCard.viableCard .execIcon{color:#ea580c}.execCard.viableCard .execVal{color:#9a3412}.execCard.viableCard .execLabel{color:#c2410c}.execCard.batCard{background-color:#f0fdf4;border-color:#bbf7d0}.execCard.batCard .execIcon{color:#16a34a}.execCard.batCard .execVal{color:#166534}.execCard.batCard .execLabel{color:#15803d}.execCard.invCard{background-color:#eff6ff;border-color:#bfdbfe}.execCard.invCard .execIcon{color:#2563eb}.execCard.invCard .execVal{color:#1e40af}.execCard.invCard .execLabel{color:#1d4ed8}.execIcon{margin-bottom:6px;width:20px;height:20px}.execVal{font-size:1.05rem;font-weight:800;margin-bottom:2px}.execLabel{font-size:.72rem;font-weight:600}.designParamsGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.paramsBlock{border:1px solid #DAE0E9;border-radius:6px;padding:10px 14px;display:flex;flex-direction:column;justify-content:flex-start}.paramsBlock.demandBlock{background-color:#fff5f5;border-color:#fed7d7}.paramsBlock.demandBlock .paramsBlockTitle{color:#c53030;border-bottom-color:#feb2b2}.paramsBlock.demandBlock .paramsRow strong{color:#9b2c2c}.paramsBlock.technicalBlock{background-color:#f8fafc;border-color:#e2e8f0}.paramsBlock.technicalBlock .paramsBlockTitle{color:#475569;border-bottom-color:#cbd5e1}.paramsBlock.technicalBlock .paramsRow strong{color:#334155}.paramsBlockTitle{font-size:.78rem;font-weight:700;color:#0f2043;margin:0 0 6px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed #DAE0E9;padding-bottom:4px}.paramsRow{font-size:.76rem;color:#334155;margin-bottom:2px}.paramsRow:last-child{margin-bottom:0}.paramsRow strong{color:#0f2043;margin-right:4px}.techSpecTable{width:100%;border-collapse:collapse;font-size:.76rem;line-height:1.4}.techSpecTable th{background:#0f2043;color:#fff;font-weight:700;text-align:left;padding:6px 10px}.techSpecTable td{padding:5px 10px;border-bottom:1px solid #DAE0E9;color:#334155}.techSpecTable tr:not(.componentHeaderRow):nth-of-type(2n) td{background:#f5f7fa}.componentHeaderRow td{background:#dae0e9;color:#0f2043;font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-bottom:1.5px solid #0F2043}.compactTable th{padding:4px 10px}.compactTable td{padding:3px 10px}.loadsTable thead{display:table-header-group}.loadsTable tr{page-break-inside:avoid}.reportFooter{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border-top:1px solid #DAE0E9;padding-top:8px;font-size:.7rem;color:#94a3b8}.confidentialLabel{color:#4682b4;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.footerApp{color:#64748b}.reportsEmptyArea{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#53616f}.reportsEmptyArea svg{margin-bottom:16px;opacity:.5}.reportsEmptyArea h3{color:#10222f;margin:0 0 8px}@page{size:A4;margin:0}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff;margin:0;padding:0}.no-print,.globalTabBar,header{display:none!important}.reportsViewLayout{height:auto;overflow:visible;background:#fff;display:block}.reportsSidebar{display:none!important}.reportsMainArea{padding:0;overflow:visible;display:block}.a4PreviewContainer{gap:0;width:210mm}.a4Document{box-shadow:none;border:none;border-radius:0;width:210mm;min-height:297mm;height:auto;padding:15mm;page-break-after:always;page-break-inside:avoid}.a4Document.growable{page-break-inside:avoid;display:flex;flex-direction:column;height:297mm;overflow:hidden;padding-bottom:15mm}.a4Document.growable .reportSection{margin-bottom:10px}.a4Document.growable .loadsTable td,.a4Document.growable .loadsTable th{padding-top:3px;padding-bottom:3px}.a4Document:last-child{page-break-after:auto}}
