:root{--solar-blue-900:#0d1b3e;--solar-blue-800:#1a237e;--solar-blue-700:#283593;--solar-blue-600:#3949ab;--solar-blue-500:#5c6bc0;--bg-white:#fff;--bg-light:#f5f7f9;--bg-dark:#0a0e1a;--panel-dark:#12192b;--text-primary:#1a237e;--text-secondary:#5c6bc0;--text-on-dark:#e8eaf6;--text-muted:#9fa8da;--solar-green:#4caf50;--solar-slate:#43536d;--solar-yellow:#ffc107;--solar-red:#f44336;--solar-orange:#ff9800;--radius-sm:4px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px}.day{--bg-color:var(--bg-light);--text-color:#1a237e;--header-bg:#fffffff2;--header-border:#e0e6ed;--card-bg:var(--bg-white);--card-border:#1a237e14;--card-shadow:0 4px 12px #0d1b3e0d;--hero-gradient:linear-gradient(135deg, #1a237e 0%, #3949ab 100%);--accent-green:var(--solar-green)}.night{--bg-color:var(--bg-dark);--text-color:var(--text-on-dark);--header-bg:#12192bf2;--header-border:#1f2937;--card-bg:var(--panel-dark);--card-border:#e8eaf61a;--card-shadow:0 8px 24px #0006;--hero-gradient:linear-gradient(135deg, #0d1b3e 0%, #1a237e 100%);--accent-green:#81c784}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;place-items:center;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;display:grid}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.App-header{z-index:1000;background-color:inherit;width:100%;transition:background-color .3s;position:fixed;top:0;left:0;box-shadow:0 2px 10px #0000001a}.App-body{text-align:center;flex:1;justify-content:center;align-items:flex-start;width:100%;padding-top:60px;display:flex}.day,.night{background-color:var(--bg-color);min-height:100vh;color:var(--text-color);transition:background-color .8s,color .8s}.day .App-header,.night .App-header{background-color:var(--header-bg);border-bottom:1px solid var(--header-border);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.navbar{justify-content:center;align-items:center;gap:15px;padding:15px;font-weight:600;display:flex}.nav-link{color:inherit;opacity:.6;border-radius:6px;padding:5px 10px;text-decoration:none;transition:opacity .2s,transform .2s}.nav-link:hover{opacity:1;background-color:var(--card-border)}.night .nav-link:hover{background-color:var(--card-border)}.nav-link.active{opacity:1;color:var(--solar-green)}.night .nav-link.active{color:var(--solar-green)}.nav-separator{opacity:.2;font-weight:300}.status{max-width:1200px;margin:0 auto;padding:20px}.status-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.hero-card{background:var(--hero-gradient);box-shadow:var(--card-shadow);border-radius:15px;flex-wrap:wrap;grid-column:1/-1;justify-content:space-around;align-items:center;margin-bottom:10px;padding:30px;display:flex;color:#fff!important}.night .hero-card{background:var(--hero-gradient);box-shadow:var(--card-shadow)}.hero-metric{text-align:center;flex:1;min-width:150px;padding:10px}.hero-value{font-size:2.5rem;font-weight:700;display:block}.hero-label{text-transform:uppercase;letter-spacing:1px;opacity:.8;font-size:.9rem}.card{background:var(--card-bg);box-shadow:var(--card-shadow);border:1px solid var(--card-border);border-radius:12px;padding:20px}.night .card{background:var(--card-bg);border-color:var(--card-border);box-shadow:var(--card-shadow)}.card-title{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;font-size:1.1rem;font-weight:600;display:flex}.night .card-title{border-bottom-color:var(--card-border)}.metric-row{justify-content:space-between;margin-bottom:10px;font-size:.95rem;display:flex}.metric-label{opacity:.7}.metric-value{font-weight:500}.soc-progress-container{background:#fff3;border-radius:4px;width:100%;height:8px;margin-top:10px;overflow:hidden}.soc-progress-bar{background:var(--solar-green);height:100%;transition:width .5s ease-out}.status-indicator{border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.status-ok{background-color:var(--solar-green)}.status-warning{background-color:var(--solar-yellow)}.status-error{background-color:var(--solar-red)}.heartbeat{background-color:var(--solar-green);border-radius:50%;width:8px;height:8px;margin-left:10px;animation:2s infinite pulse;display:inline-block}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #2f7d4eb3}70%{transform:scale(1);box-shadow:0 0 0 10px #2f7d4e00}to{transform:scale(.95);box-shadow:0 0 #2f7d4e00}}.status-footer{text-align:center;opacity:.6;flex-wrap:wrap;grid-column:1/-1;justify-content:center;align-items:center;gap:15px;padding:20px;font-size:.85rem;display:flex}.footer-separator{opacity:.3}@media (max-width:600px){.hero-value{font-size:1.8rem}.status-grid{grid-template-columns:1fr}}.loading{text-align:center;justify-content:center;align-items:center;margin-top:60px;display:flex}.history-page{width:100%;max-width:1180px;color:var(--text-color);flex-direction:column;gap:1rem;margin:0 auto;padding:0 0 1.5rem;display:flex}.history-header{text-align:center;justify-content:center;align-items:flex-start;gap:1rem;display:flex}.history-title{margin:0;font-size:2rem;line-height:1.1}.history-subtitle{color:var(--solar-slate);margin:.35rem 0 0;font-size:1rem}.history-range{color:var(--text-color);opacity:.8;margin:.45rem 0 0;font-size:1rem}.history-controls,.history-summary-card,.history-chart-shell{border:1px solid var(--card-border);background:var(--card-bg);box-shadow:var(--card-shadow);border-radius:18px}.history-controls{text-align:left;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem 1rem;padding:1rem 1.1rem 1.1rem;display:grid}.history-field{flex-direction:column;gap:.35rem;display:flex}.history-field span{color:var(--text-color);font-size:.95rem;font-weight:700}.history-field select{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);border-radius:12px;padding:.85rem .95rem;font-size:1rem}.history-button{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);cursor:pointer;border-radius:999px;padding:.7rem 1rem;font-size:.95rem;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.history-button:hover{background:var(--solar-green);border-color:var(--solar-green);color:#fff}.history-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;display:grid}.history-summary-card{text-align:left;padding:1rem 1.1rem}.history-summary-label{color:var(--solar-slate);margin:0;font-size:.95rem}.history-summary-value{color:var(--text-color);margin:.45rem 0 .25rem;font-size:1.85rem;font-weight:700;line-height:1.1}.history-summary-helper{color:var(--solar-slate);margin:0;font-size:.95rem}.history-chart-shell{touch-action:none;outline:none;padding:1rem 1rem .85rem;position:relative}.history-chart-shell:focus-visible{border-color:var(--solar-green);box-shadow:0 0 0 3px #4caf5038}.history-chart-header{text-align:left;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.history-chart-title{color:var(--text-color);margin:0;font-size:1.15rem}.history-chart-caption{color:var(--solar-slate);margin:.3rem 0 0;font-size:.95rem}.chart-container{width:100%;height:520px}.history-chart-overlay,.history-message,.history-chart-empty{text-align:center;min-height:420px;color:var(--solar-slate);justify-content:center;align-items:center;display:flex}.history-chart-overlay{background:var(--card-bg);opacity:.88;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2;border-radius:16px;position:absolute;inset:4.2rem 1rem .85rem}.history-message-error{color:var(--solar-red)}.history-actions{flex-wrap:wrap;justify-content:space-between;gap:.75rem;display:flex}.history-action-group{flex-wrap:wrap;gap:.55rem;display:flex}.history-button-secondary{background:var(--card-bg)}.history-button:disabled,.history-button-secondary:disabled{opacity:.55;cursor:not-allowed}.history-tooltip{border:1px solid var(--card-border);background:var(--card-bg);min-width:220px;color:var(--text-color);border-radius:12px;padding:.85rem 1rem;box-shadow:0 14px 30px #0d1b3e33}.history-tooltip-title{color:var(--text-color);margin:0 0 .45rem;font-weight:700}.history-tooltip-row{justify-content:space-between;gap:.75rem;margin:.25rem 0;display:flex}.history-tooltip-label{font-weight:700}@media (max-width:720px){.history-title{font-size:1.7rem}.history-controls{grid-template-columns:1fr}.history-chart-header{flex-direction:column}.history-chart-shell{padding:.85rem .75rem .7rem}.chart-container{height:420px}.history-chart-overlay,.history-message,.history-chart-empty{min-height:340px}.history-chart-overlay{inset:4.6rem .75rem .7rem}.history-actions{flex-direction:column}}.about-page{width:100%;max-width:920px;color:var(--text-color);flex-direction:column;gap:1.25rem;margin:0 auto;padding:0 0 1.5rem;display:flex}.about-header{text-align:center;justify-content:center;display:flex}.about-title{margin:0;font-size:2.25rem;line-height:1.05}.about-subtitle{color:var(--solar-slate);margin:.45rem 0 0;line-height:1.6}.about-card,.about-tech-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:18px}.about-card{text-align:left;padding:1.35rem 1.4rem}.about-copy{color:var(--text-color);text-align:left;margin:0;line-height:1.8}.about-copy+.about-copy{margin-top:1rem}.about-tech-card{text-align:left;padding:1.1rem 1.2rem}.about-tech-label{color:var(--solar-green);letter-spacing:.02em;margin:0;font-weight:700}.about-tech-list{flex-wrap:wrap;gap:.65rem;margin-top:.85rem;display:flex}.qr-container{flex-direction:column;align-items:center;padding:20px;display:flex}.qr-box{box-shadow:var(--card-shadow);border:1px solid var(--card-border);background:#fff;border-radius:10px;padding:10px}.qr-caption{color:var(--solar-slate);margin-top:15px;font-size:.9rem}.qr-url{background:var(--card-border);color:var(--solar-slate);border-radius:4px;margin-top:5px;padding:4px 8px;font-family:monospace;font-size:.8rem}.night .about-page{color:var(--text-color)}.night .about-card,.night .about-tech-card{background:var(--card-bg);border-color:var(--card-border)}.night .about-copy{color:var(--text-color)}.night .about-tech-label{color:var(--solar-green)}.night .about-tech-pill{background:var(--bg-dark);border-color:var(--card-border);color:var(--text-color)}.night .qr-box{background:#fff}.night .qr-caption{color:var(--text-color);opacity:.6}.night .qr-url{background:var(--card-border);color:var(--text-color)}.about-tech-pill{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);border-radius:999px;align-items:center;padding:.5rem .8rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.about-tech-pill:hover{background:var(--card-border)}.about-tech-pill:focus-visible{border-color:var(--solar-green);outline:none;box-shadow:0 0 0 3px #2f7d4e38}.build-timestamp{text-align:center;color:var(--solar-slate);opacity:.6;margin-top:2rem;font-family:monospace;font-size:.75rem}.analysis-page{width:100%;max-width:1180px;color:var(--text-color);flex-direction:column;gap:1.25rem;margin:0 auto;padding:0 0 1.5rem;display:flex}.analysis-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;display:flex}.analysis-heading{flex-direction:column;gap:.45rem;display:flex}.analysis-title{margin:0;font-size:2.25rem;line-height:1.05}.analysis-subtitle{color:var(--solar-slate);max-width:640px;margin:0;line-height:1.6}.analysis-window-picker{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.analysis-window-picker label{color:var(--text-color);font-weight:700}.analysis-window-picker select,.analysis-chat-form textarea{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);border-radius:12px}.analysis-window-picker select{min-width:190px;padding:.85rem 1rem}.analysis-section-switcher{border:1px solid var(--card-border);background:var(--card-bg);border-radius:999px;align-self:flex-start;gap:.35rem;padding:.35rem;display:inline-flex}.analysis-tab,.analysis-action,.analysis-chip{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);cursor:pointer;border-radius:999px;padding:.7rem 1rem;font-size:.95rem;font-weight:700}.analysis-tab.is-active,.analysis-action{background:var(--solar-green);border-color:var(--solar-green);color:#fff}.analysis-action.is-secondary{background:var(--card-bg);color:var(--text-color)}.analysis-panel,.analysis-lead-card,.analysis-fact-card,.analysis-summary-card,.analysis-chat-card,.analysis-sidebar-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:18px}.analysis-panel{flex-direction:column;gap:1.1rem;padding:1.25rem;display:flex}.analysis-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.analysis-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;display:flex}.analysis-panel-title{margin:0;font-size:1.2rem}.analysis-panel-copy{color:var(--solar-slate);max-width:620px;margin:.3rem 0 0;line-height:1.55}.analysis-lead-card{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1.25rem;padding:1.2rem 1.25rem;display:grid}.analysis-lead-main{flex-direction:column;gap:.65rem;display:flex}.analysis-kicker,.analysis-summary-label{color:var(--solar-green);letter-spacing:.02em;margin:0;font-weight:700}.analysis-lead-meta{border-left:1px solid var(--card-border);align-content:start;gap:.75rem;padding-left:1rem;display:grid}.analysis-meta-block{flex-direction:column;gap:.2rem;display:flex}.analysis-meta-label{color:var(--solar-slate);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.analysis-meta-value{color:var(--text-color);font-weight:600}.analysis-facts-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem;display:grid}.analysis-fact-card{text-align:left;padding:1rem 1.1rem}.analysis-fact-label,.analysis-fact-detail,.analysis-meta{color:var(--solar-slate);margin:0}.analysis-fact-value{color:var(--text-color);margin:.45rem 0 .25rem;font-size:1.65rem;font-weight:700}.analysis-summary-card{text-align:left;flex-direction:column;gap:.75rem;padding:1.1rem 1.15rem;display:flex}.analysis-summary-text{color:var(--text-color);margin:0;font-size:1.03rem;line-height:1.75}.analysis-columns{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;display:grid}.analysis-summary-card.is-risk{background:linear-gradient(180deg, var(--card-bg) 0%, var(--bg-light) 100%);border-color:var(--solar-red)}.analysis-list{color:var(--text-color);margin:0;padding:0;line-height:1.65;list-style:none}.analysis-list li{max-width:34ch;padding-left:1.35rem;position:relative}.analysis-list-label{color:var(--solar-slate)}.analysis-list strong{color:var(--text-color);font-weight:800}.analysis-list li:before{content:"";background:var(--solar-green);border-radius:999px;width:.42rem;height:.42rem;position:absolute;top:.72rem;left:0}.analysis-summary-card.is-risk .analysis-list li:before{background:var(--solar-red)}.analysis-list li+li{margin-top:.85rem}.analysis-chip-row{flex-wrap:wrap;gap:.55rem;display:flex}.analysis-chip{background:var(--card-bg);text-align:left}.analysis-assistant-layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.analysis-assistant-sidebar{flex-direction:column;gap:1rem;display:flex}.analysis-sidebar-card{flex-direction:column;gap:.8rem;padding:1rem 1.05rem;display:flex}.analysis-sidebar-copy{color:var(--solar-slate);margin:0;line-height:1.6}.analysis-chat-card{flex-direction:column;gap:1rem;padding:1rem;display:flex}.analysis-chat-log{flex-direction:column;gap:.75rem;min-height:320px;max-height:520px;display:flex;overflow-y:auto}.analysis-chat-message.is-user{background:var(--solar-green);color:#fff;align-self:flex-end}.analysis-chat-message.is-assistant{background:var(--card-border);color:var(--text-color);align-self:flex-start}.analysis-chat-role{opacity:.8;margin:0;font-size:.82rem;font-weight:700}.analysis-chat-content{white-space:pre-wrap;margin:.3rem 0 0;line-height:1.6}.analysis-chat-form{flex-direction:column;gap:.75rem;display:flex}.analysis-chat-form textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit;padding:.95rem 1rem}.analysis-chat-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.analysis-error{color:var(--solar-red);border:1px solid var(--solar-red);background:#f4433614;border-radius:14px;padding:.95rem 1rem}.analysis-controls-grid{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1rem;padding:1.5rem;display:grid}.control-group{flex-direction:column;gap:.5rem;display:flex}.control-group label{color:var(--solar-slate);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.date-inputs,.select-row{flex-wrap:wrap;gap:.5rem;display:flex}.date-inputs input,.select-row select{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);border-radius:8px;padding:.6rem;font-size:.9rem}.metrics-chips{flex-wrap:wrap;gap:.5rem;display:flex}.metric-chip{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);cursor:pointer;border-radius:999px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:background-color .15s,border-color .15s,color .15s}.metric-chip:hover{border-color:var(--solar-green);color:var(--solar-green)}.metric-chip.is-active{background:var(--solar-green);border-color:var(--solar-green);color:#fff}.control-actions{align-items:flex-end;display:flex}.trend-chart-empty{height:300px;color:var(--solar-slate);background:var(--card-bg);border:1px dashed var(--card-border);border-radius:14px;justify-content:center;align-items:center;font-style:italic;display:flex}@media (max-width:720px){.analysis-header,.analysis-panel-header,.analysis-chat-actions{flex-direction:column;align-items:stretch}.analysis-section-switcher{box-sizing:border-box;width:100%}.analysis-lead-card,.analysis-assistant-layout{grid-template-columns:1fr}.analysis-lead-meta{border-left:0;border-top:1px solid var(--card-border);padding-top:.75rem;padding-left:0}.analysis-tab{flex:1 1 0}.analysis-actions,.analysis-action{width:100%}.analysis-chat-message{max-width:100%}}
