:root{--background:#f5f5f5;--surface:#fff;--surface-soft:#f8f8f8;--text:#1d1d1d;--text-soft:#555;--text-muted:#7b7b7b;--border:#dedede;--border-soft:#e9e9e9;--sidebar:#080808;--sidebar-hover:#171717;--sidebar-text:#fff;--sidebar-muted:#b7b7b7;--green:#147a5a;--green-soft:#eaf5f0;--warning-bg:#fff8e9;--warning-border:#f0d9a1;--warning-text:#795a19;font-family:Arial,Helvetica,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;color:var(--text);background:var(--background);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;font-weight:500}button,input{font:inherit}button{cursor:pointer}strong,b{font-weight:600}small{font-size:15px;font-weight:500}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:50;width:270px;min-width:270px;color:var(--sidebar-text);background:var(--sidebar);flex-direction:column;padding:22px 14px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{align-items:center;min-height:72px;padding:0 8px 24px;display:flex}.brand-logo-only{justify-content:flex-start}.brand-logo{object-fit:contain;width:220px;max-width:100%;height:auto;display:block}.sidebar-label{color:#8c8c8c;margin:6px 12px 10px;font-size:15px;font-weight:500}.sidebar-nav{gap:5px;display:grid}.nav-item{color:#e2e2e2;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;width:100%;min-height:46px;padding:0 12px;font-size:15px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item svg{flex:none}.nav-item:hover{color:#fff;background:var(--sidebar-hover)}.nav-item-active,.nav-item-active:hover{color:#111;background:#fff}.sidebar-bottom{margin-top:auto}.system-box{background:#101010;border:1px solid #242424;border-radius:6px;align-items:center;gap:10px;margin-bottom:14px;padding:12px;display:flex}.system-box-icon{color:#fff;background:#174f3e;border-radius:5px;flex:none;place-items:center;width:38px;height:38px;display:grid}.system-box strong{color:#fff;font-size:15px;font-weight:600;display:block}.system-box span{color:#9c9c9c;margin-top:4px;font-size:15px;font-weight:500;line-height:1.35;display:block}.main-area{width:calc(100% - 270px);min-height:100vh;margin-left:270px}.topbar{z-index:30;border-bottom:1px solid var(--border);background:#fff;align-items:center;min-height:70px;padding:0 22px;display:flex;position:sticky;top:0}.project-switcher{align-items:center;gap:10px;display:flex}.project-icon{width:38px;height:38px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.project-switcher>div:nth-child(2){display:grid}.project-switcher span{color:var(--text-muted);font-size:15px;font-weight:500}.project-switcher strong{color:#222;margin-top:2px;font-size:16px;font-weight:600}.project-switcher>svg{color:#777;margin-left:2px}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.prototype-badge{color:var(--green);background:#f4faf7;border:1px solid #cae2d8;border-radius:5px;align-items:center;gap:6px;padding:8px 11px;font-size:15px;font-weight:600;display:flex}.avatar{color:#fff;background:#282828;border-radius:50%;place-items:center;width:38px;height:38px;font-size:15px;font-weight:600;display:grid}.mobile-menu-button{border:1px solid var(--border);color:#222;background:#fff;border-radius:5px;place-items:center;width:40px;height:40px;margin-right:12px;display:none}.page-container{width:100%;margin:0 auto;padding:24px 24px 64px}.page-intro{justify-content:space-between;align-items:flex-end;gap:24px;width:100%;margin-bottom:22px;display:flex}.page-intro>div:first-child{width:100%;max-width:none}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px;font-size:15px;font-weight:600;display:block}.page-intro h1{color:#202020;letter-spacing:0;width:100%;max-width:none;margin:0;font-size:24px;font-weight:600;line-height:1.35}.page-intro p{width:100%;max-width:none;color:var(--text-soft);margin:8px 0 0;font-size:16px;font-weight:500;line-height:1.6}.primary-button{color:#fff;background:#111;border:0;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.primary-button:hover{background:#2c2c2c}.full-button{width:100%}.warning-box{border:1px solid var(--warning-border);color:var(--warning-text);background:var(--warning-bg);border-radius:6px;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;display:flex}.warning-box>svg{flex:none}.warning-box>div{gap:3px;display:grid}.warning-box strong{font-size:15px;font-weight:600}.warning-box span{font-size:15px;font-weight:500;line-height:1.5}.warning-box button{color:var(--warning-text);background:0 0;border:0;margin-left:auto;font-size:15px;font-weight:600}.project-summary{border:1px solid var(--border);background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px;padding:18px 20px;display:flex}.summary-location{color:var(--green);align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.summary-main h2{color:#1f1f1f;margin:7px 0 9px;font-size:20px;font-weight:600}.project-meta{flex-wrap:wrap;gap:8px;display:flex}.project-meta span{color:#666;background:#fafafa;border:1px solid #eee;border-radius:4px;align-items:center;gap:5px;min-height:30px;padding:0 10px;font-size:15px;font-weight:500;display:inline-flex}.summary-status{min-width:185px;color:var(--green);background:var(--green-soft);border-radius:5px;align-items:center;gap:9px;padding:12px 14px;display:flex}.summary-status strong,.summary-status span{display:block}.summary-status strong{font-size:15px;font-weight:600}.summary-status span{color:#658476;margin-top:2px;font-size:15px;font-weight:500}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;padding:18px}.metric-icon{color:#555;background:#f0f0f0;border-radius:5px;place-items:center;width:38px;height:38px;margin-bottom:14px;display:grid}.metric-icon-positive{color:var(--green);background:var(--green-soft)}.metric-label{color:#555;margin-bottom:7px;font-size:15px;font-weight:500}.metric-value{color:#181818;letter-spacing:0;font-size:24px;font-weight:600;display:block}.metric-description{color:#8c8c8c;margin-top:6px;font-size:15px;font-weight:500}.overview-grid,.iot-chart-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;padding:18px}.panel-heading h2{color:#252525;margin:0;font-size:19px;font-weight:600}.panel-heading p{color:#858585;margin:5px 0 0;font-size:15px;font-weight:500}.chart-wrapper{width:100%;margin-top:14px;font-size:15px;font-weight:500}.chart-wrapper-large{margin-top:18px}.recharts-text,.recharts-cartesian-axis-tick-value,.recharts-tooltip-wrapper,.recharts-default-tooltip,.recharts-tooltip-label,.recharts-tooltip-item{font-size:15px!important;font-weight:500!important}.quick-actions{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.quick-action{border:1px solid var(--border);color:#222;text-align:left;background:#fff;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:15px;display:grid}.quick-action:hover{background:#fafafa;border-color:#bdbdbd}.quick-action-icon{width:40px;height:40px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.quick-action strong{font-size:16px;font-weight:600;display:block}.quick-action span{color:#777;margin-top:4px;font-size:15px;font-weight:500;line-height:1.45;display:block}.calculator-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.calculator-form{gap:14px;display:grid}.form-section{border:1px solid var(--border);background:#fff;border-radius:6px;padding:19px}.form-section-heading{gap:11px;margin-bottom:17px;display:flex}.section-number{width:34px;height:34px;color:var(--green);background:var(--green-soft);border-radius:4px;flex:none;place-items:center;font-size:15px;font-weight:600;display:grid}.form-section-heading h2{margin:0 0 4px;font-size:19px;font-weight:600}.form-section-heading p{color:#777;margin:0;font-size:15px;font-weight:500;line-height:1.45}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.form-grid-single{grid-template-columns:minmax(0,1fr);max-width:60%}.field{display:block}.field-label{color:#444;margin-bottom:7px;font-size:15px;font-weight:500;display:block}.field-control{background:#fff;border:1px solid #d5d5d5;border-radius:5px;align-items:center;min-height:44px;display:flex;overflow:hidden}.field-control:focus-within{border-color:#888}.field-control input{color:#222;background:0 0;border:0;flex:1;min-width:0;height:44px;padding:0 12px;font-size:15px;font-weight:500}.field-control>span{color:#777;white-space:nowrap;padding:0 11px;font-size:15px;font-weight:500}.field-control-warning{background:#fffdf7;border-color:#ddc17a}.field-control-readonly{background:#f5f5f5;justify-content:space-between;padding-left:12px}.field-control-readonly strong{font-size:15px;font-weight:600}.field-warning{color:#987022;margin-top:5px;font-size:15px;font-weight:500;display:block}.method-note{color:#4f655a;background:#f5faf7;border:1px solid #dbeae3;border-radius:5px;align-items:flex-start;gap:8px;margin-top:14px;padding:11px 12px;font-size:15px;font-weight:500;line-height:1.5;display:flex}.method-note>svg{flex:none}.method-note-neutral{color:#666;background:#f6f6f6;border-color:#e5e5e5}.result-panel-sticky{color:#fff;background:#111;border:1px solid #222;border-radius:6px;padding:19px;position:sticky;top:90px}.result-panel .eyebrow{color:#8bc8ad}.result-panel h2{margin:0 0 20px;font-size:20px;font-weight:600}.big-result{border-bottom:1px solid #343434;padding-bottom:18px}.big-result span{color:#b5b5b5;font-size:15px;font-weight:500;display:block}.big-result strong{letter-spacing:0;margin:8px 0 3px;font-size:24px;font-weight:600;line-height:1.2;display:block}.big-result small{color:#b0b0b0;font-size:15px;font-weight:500}.result-summary,.result-breakdown{border-bottom:1px solid #343434;padding:14px 0}.result-breakdown h3{color:#b5b5b5;text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px;font-size:15px;font-weight:600}.result-row{justify-content:space-between;gap:12px;margin:9px 0;display:flex}.result-row span{color:inherit;opacity:.78;font-size:15px;font-weight:500}.result-row strong{font-size:15px;font-weight:600}.compact-warning{color:#f4dfae;background:#352c18;border-radius:5px;gap:8px;margin:14px 0;padding:10px;font-size:15px;font-weight:500;line-height:1.45;display:flex}.compact-warning svg{flex:none}.calculation-details{background:#191919;border:1px solid #343434;border-radius:5px;margin:14px 0;padding:10px}.calculation-details summary{cursor:pointer;color:#fff;font-size:14px;font-weight:600}.calculation-details[open] summary{margin-bottom:12px}.calculation-formula{border-top:1px solid #303030;gap:5px;padding:10px 0;display:grid}.calculation-formula:first-of-type{border-top:0}.calculation-formula strong,.calculation-formula span{font-size:13px}.calculation-formula code{overflow-wrap:anywhere;color:#b9decf;white-space:normal;font-family:Consolas,monospace;font-size:11px;line-height:1.5}.calculation-formula small{color:#a6a6a6;font-size:10px;line-height:1.45}.calculation-total-formula{color:#b9decf}.scenario-grid{grid-template-columns:minmax(0,1fr) 360px;gap:14px;margin-bottom:14px;display:grid}.scenario-control{border-bottom:1px solid var(--border-soft);padding:16px 0}.scenario-control:last-of-type{border-bottom:0}.scenario-control-heading{justify-content:space-between;gap:20px;margin-bottom:13px;display:flex}.scenario-control strong{font-size:16px;font-weight:600;display:block}.scenario-control span{color:#777;margin-top:4px;font-size:15px;font-weight:500;display:block}.scenario-value{min-width:64px;color:var(--green);background:var(--green-soft);text-align:center;border-radius:4px;padding:8px 10px;font-size:15px;font-weight:600}.scenario-control input[type=range]{width:100%;accent-color:var(--green)}.scenario-removal{margin-top:16px}.scenario-removal p{color:#777;margin:7px 0 0;font-size:15px;font-weight:500}.scenario-result-card{color:#fff;background:#1b4f3d;border-radius:6px;padding:20px}.scenario-result-card .eyebrow{color:#c8e3d7}.scenario-percentage{letter-spacing:0;margin-top:15px;font-size:24px;font-weight:600;display:block}.scenario-caption{color:#c5d8cf;margin:4px 0 24px;font-size:15px;font-weight:500;display:block}.scenario-result-line{border-top:1px solid #ffffff26;justify-content:space-between;gap:14px;padding:11px 0;display:flex}.scenario-result-line span,.scenario-result-line strong{font-size:15px}.scenario-result-line strong{font-weight:600}.scenario-result-line span{color:#d1ded8;font-weight:500}.comparison-panel{margin-top:14px}.simulation-notice{color:#315f48;background:#f4faf7;border:1px solid #d2e4db;border-radius:5px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.simulation-notice strong,.simulation-notice span{display:block}.simulation-notice strong{font-size:15px;font-weight:600}.simulation-notice span{margin-top:3px;font-size:15px;font-weight:500}.device-card{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;gap:26px;margin-bottom:14px;padding:17px 18px;display:flex}.device-main{align-items:center;gap:10px;min-width:210px;display:flex}.device-status-dot{background:#3da66e;border-radius:50%;width:10px;height:10px}.device-main span{color:#777;font-size:15px;font-weight:500}.device-main h2{margin:3px 0 0;font-size:18px;font-weight:600}.device-meta{grid-template-columns:repeat(4,1fr);gap:22px;display:grid}.device-meta-item{align-items:center;gap:8px;display:flex}.device-meta-icon{width:34px;height:34px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.device-meta-item span,.device-meta-item strong{display:block}.device-meta-item span{color:#8b8b8b;font-size:15px;font-weight:500}.device-meta-item strong{margin-top:2px;font-size:15px;font-weight:600}.last-update{color:#8b8b8b;margin-left:auto;font-size:15px;font-weight:500}.sensor-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.sensor-card{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;padding:15px}.sensor-card-top{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.sensor-icon{width:36px;height:36px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.sensor-card-top>span{color:var(--green);background:var(--green-soft);border-radius:4px;padding:5px 8px;font-size:15px;font-weight:500}.sensor-label{color:#777;margin-bottom:5px;font-size:15px;font-weight:500}.sensor-value{color:#222;letter-spacing:0;font-size:20px;font-weight:600;display:block}.sidebar-overlay{display:none}@media (width<=1180px){.metric-grid,.sensor-grid{grid-template-columns:repeat(2,1fr)}.device-card{flex-wrap:wrap;align-items:flex-start}.device-meta{grid-template-columns:repeat(2,1fr)}.last-update{width:100%;margin-left:0}}@media (width<=920px){.sidebar{transition:transform .18s;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-overlay{z-index:40;background:#0000006b;border:0;display:block;position:fixed;inset:0}.main-area{width:100%;margin-left:0}.mobile-menu-button{display:grid}.calculator-layout,.scenario-grid{grid-template-columns:1fr}.result-panel-sticky{position:static}.quick-actions{grid-template-columns:1fr}}@media (width<=720px){.page-container{padding:20px 16px 52px}.topbar{padding:0 16px}.prototype-badge{display:none}.page-intro{display:block}.page-intro h1{font-size:22px;line-height:1.4}.page-intro p{font-size:15px}.page-intro>button{margin-top:16px}.project-summary{flex-direction:column;align-items:flex-start}.metric-grid,.overview-grid,.iot-chart-grid,.sensor-grid,.form-grid{grid-template-columns:1fr}.form-grid-single{max-width:none}.device-meta{width:100%}.project-switcher>div:nth-child(2){max-width:180px}.project-switcher strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}html{overscroll-behavior-x:none;width:100%;min-width:0;max-width:100%;overflow-x:clip}body{overscroll-behavior-x:none;width:100%;min-width:0;max-width:100%;margin:0;overflow-x:clip}#root{width:100%;min-width:0;max-width:100%;overflow-x:clip}img,video,canvas{max-width:100%}svg{flex-shrink:0}.app-shell{width:100%;min-width:0;max-width:100vw;min-height:100dvh;overflow-x:clip}.main-area{flex:auto;width:auto;min-width:0;max-width:calc(100vw - 270px);min-height:100dvh;margin-left:270px;overflow-x:clip}.page-container{width:100%;min-width:0;max-width:100%;overflow-x:clip}.topbar,.project-switcher,.page-intro,.project-summary,.summary-main,.warning-box,.simulation-notice,.panel,.metric-card,.quick-action,.calculator-layout,.calculator-form,.form-section,.form-grid,.field,.field-control,.scenario-grid,.scenario-control,.scenario-control-heading,.scenario-result-card,.comparison-panel,.device-card,.device-main,.device-meta,.device-meta-item,.sensor-card,.chart-wrapper{min-width:0;max-width:100%}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.overview-grid,.iot-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-grid,.device-meta{grid-template-columns:repeat(4,minmax(0,1fr))}.calculator-layout,.scenario-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}.topbar{gap:10px;width:100%}.mobile-menu-button{flex:none}.project-switcher{flex:auto;overflow:hidden}.project-switcher>div:nth-child(2){min-width:0;max-width:100%}.project-switcher strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.project-switcher>svg{flex:none}.topbar-right{flex:none;min-width:0}.warning-box>div,.simulation-notice>div{min-width:0}.summary-main{flex:auto}.summary-status{flex:0 auto}.quick-action{grid-template-columns:auto minmax(0,1fr) auto}.quick-action>div:nth-child(2){min-width:0}.quick-action strong,.quick-action span{overflow-wrap:break-word}.field-control{width:100%;max-width:100%}.field-control input{flex:auto;width:0;min-width:0}.device-card{flex-wrap:wrap;width:100%}.device-main{flex:0 210px}.device-main>div{min-width:0}.device-main h2{overflow-wrap:anywhere}.device-meta{flex:600px;gap:18px}.device-meta-item,.device-meta-item>div:last-child{min-width:0}.device-meta-item span,.device-meta-item strong{overflow-wrap:anywhere;word-break:normal;max-width:100%}.last-update{flex:0 auto;max-width:100%}.chart-wrapper{width:100%;overflow:hidden}.chart-wrapper .recharts-responsive-container{max-width:100%!important}.sidebar{overscroll-behavior:contain;overflow:hidden auto}@media (width<=1180px){.page-container{padding-left:20px;padding-right:20px}.metric-grid,.sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-meta{flex-basis:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.device-main{flex-basis:180px}}@media (width<=920px){.sidebar{width:min(290px,86vw);min-width:0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.main-area{flex:100%;width:100%;max-width:100%;margin-left:0}.topbar{width:100%;max-width:100%}.mobile-menu-button{display:grid}.calculator-layout,.scenario-grid{grid-template-columns:minmax(0,1fr)}.result-panel-sticky{position:static}.quick-actions{grid-template-columns:minmax(0,1fr)}.device-main{flex-basis:100%;width:100%}.device-meta{width:100%}}@media (width<=720px){.topbar{min-height:64px;padding:0 14px}.page-container{padding:18px 14px 48px}.page-intro{margin-bottom:18px;display:block}.page-intro h1{font-size:21px;line-height:1.4}.page-intro p{font-size:15px;line-height:1.55}.page-intro>button{width:100%;margin-top:16px}.metric-grid,.overview-grid,.iot-chart-grid,.sensor-grid,.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid-single{width:100%;max-width:none}.project-summary{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.summary-main,.summary-status{width:100%;min-width:0}.warning-box,.simulation-notice{align-items:flex-start}.warning-box{flex-wrap:wrap}.warning-box button{text-align:left;width:100%;margin-left:0;padding:6px 0}.metric-card,.panel,.form-section,.sensor-card{padding:16px}.device-card{gap:16px;padding:16px}.device-main{width:100%}.device-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}.last-update{width:100%;margin-left:0}.scenario-control-heading{align-items:flex-start;gap:12px}.scenario-control-heading>div:first-child{min-width:0}.scenario-value{flex:none}}@media (width<=520px){.topbar{gap:7px;padding:0 12px}.mobile-menu-button{width:40px;min-width:40px;height:40px;margin-right:2px}.project-switcher{gap:7px}.project-icon{flex:0 0 36px;width:36px;height:36px}.project-switcher>div:nth-child(2){max-width:none}.project-switcher>svg{display:none}.project-switcher span{font-size:13px}.project-switcher strong{font-size:15px}.avatar{flex:0 0 36px;width:36px;height:36px}.page-container{padding:16px 12px 42px}.metric-value{font-size:22px}.form-section{padding:15px}.result-panel-sticky,.scenario-result-card{padding:16px}}@media (width<=400px){.prototype-badge,.project-switcher span{display:none}.project-icon{flex-basis:34px;width:34px;height:34px}.avatar{flex-basis:34px;width:34px;height:34px;font-size:13px}.device-meta{grid-template-columns:minmax(0,1fr)}.project-meta{gap:6px}.project-meta span{width:100%}.scenario-control-heading{flex-direction:column}.scenario-value{align-self:flex-start}}@media (orientation:landscape) and (width<=1180px) and (height<=600px){.sidebar{width:min(290px,82vw);min-width:0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.main-area{width:100%;max-width:100%;margin-left:0}.mobile-menu-button{display:grid}.topbar{min-height:58px;padding:0 14px}.prototype-badge{display:none}.page-container{padding:16px 18px 40px}.calculator-layout,.scenario-grid{grid-template-columns:minmax(0,1fr)}.result-panel-sticky{position:static}.metric-grid,.sensor-grid,.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-bottom{margin-top:24px}}@media (pointer:coarse){.nav-item,.primary-button{min-height:44px}.mobile-menu-button{min-width:44px;min-height:44px}input[type=range]{min-height:32px}}.project-switcher{position:relative}.project-switcher-select{z-index:2;cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.project-switcher-select:disabled{cursor:default}.secondary-button{border:1px solid var(--border);min-height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.secondary-button:hover:not(:disabled){background:#f6f8f7}.secondary-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.6}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.settings-message{margin-top:16px}.page-loading{min-height:240px;color:var(--text-muted);place-items:center;font-size:14px;display:grid}.fatal-error{color:#8f2b20;background:#fff7f6;border:1px solid #efc9c4;border-radius:8px;align-items:center;gap:14px;padding:18px;display:flex}.fatal-error>div{flex:1;gap:4px;display:grid}@media (width<=640px){.settings-actions{flex-direction:column}.settings-actions>button,.fatal-error>button{width:100%}.fatal-error{flex-direction:column;align-items:stretch}}.auth-screen{background:radial-gradient(circle at 20% 10%,#37875e1a,#0000 34%),#f5f7f5;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #e2e7e3;border-radius:18px;gap:22px;width:min(100%,460px);padding:34px;display:grid;box-shadow:0 24px 70px #1930221a}.auth-card-compact{text-align:center;justify-items:center}.auth-card-compact span,.auth-footnote,.auth-copy{color:var(--text-muted)}.auth-logo{object-fit:contain;object-position:left center;width:178px;max-height:56px}.auth-mark{width:54px;height:54px;color:var(--green);background:var(--green-soft);border-radius:14px;place-items:center;display:grid}.auth-eyebrow{color:var(--green);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:13px;font-weight:700}.auth-card h1{color:#1d211e;margin:0;font-size:clamp(26px,5vw,36px);line-height:1.12}.auth-copy{margin:12px 0 0;font-size:15px;line-height:1.65}.auth-login-button{color:#fff;background:var(--green);min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:0 18px;font-weight:700;display:inline-flex}.auth-login-button:hover{filter:brightness(.96)}.auth-error{color:#8e2929;background:#fff6f6;border:1px solid #f0c7c7;border-radius:9px;padding:12px 14px;font-size:14px}.auth-footnote{text-align:center;margin:0;font-size:12px}.account-menu{position:relative}.account-trigger{cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;padding:4px 6px 4px 4px;display:flex}.account-trigger:hover{background:#f4f6f4}.account-summary{text-align:left;min-width:110px;display:grid}.account-summary strong{font-size:14px;line-height:1.2}.account-summary span{color:var(--text-muted);text-transform:capitalize;margin-top:2px;font-size:12px}.account-popover{z-index:80;border:1px solid var(--border);background:#fff;border-radius:12px;width:290px;padding:14px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 45px #1c2a2124}.account-identity{align-items:flex-start;gap:10px;display:flex}.account-identity>svg{color:var(--green);margin-top:2px}.account-identity div{min-width:0;display:grid}.account-identity strong{font-size:14px}.account-identity span{color:var(--text-muted);text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.role-list{flex-wrap:wrap;gap:6px;margin:13px 0;display:flex}.role-chip{color:#276140;background:var(--green-soft);text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.account-logout{border:1px solid var(--border);width:100%;min-height:38px;font:inherit;cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:650;display:flex}.account-logout:hover{background:#f7f8f7}@media (width<=760px){.auth-card{padding:26px 22px}.prototype-badge,.account-summary{display:none}.account-popover{width:auto;position:fixed;top:72px;left:14px;right:14px}}.iot-intelligence-panel{background:linear-gradient(135deg,#f8fcfa,#f1f8f5);border:1px solid #cfe4da;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;margin-bottom:16px;padding:20px;display:grid}.iot-intelligence-heading{align-items:flex-start;gap:14px;display:flex}.iot-intelligence-icon{width:42px;height:42px;color:var(--green);background:#e1f3eb;border-radius:7px;flex:none;place-items:center;display:grid}.iot-intelligence-heading h2{margin:2px 0 6px;font-size:20px}.iot-intelligence-heading p{color:#6f7f77;max-width:760px;margin:0;line-height:1.5}.section-kicker{color:var(--green);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.iot-intelligence-summary{grid-template-columns:repeat(4,minmax(78px,1fr));gap:8px;display:grid}.iot-intelligence-summary div{text-align:center;background:#fff;border:1px solid #dce9e3;border-radius:7px;padding:11px 12px}.iot-intelligence-summary strong{font-size:20px;display:block}.iot-intelligence-summary span{color:#77857e;margin-top:2px;font-size:12px;display:block}.iot-insight-card{border:1px solid var(--border);background:#fff;border-left-width:4px;border-radius:7px;margin-bottom:16px;padding:18px}.iot-insight-card.severity-normal{border-left-color:#18865e}.iot-insight-card.severity-warning{background:#fffdf7;border-left-color:#c68a13}.iot-insight-card.severity-critical{background:snow;border-left-color:#c64a3d}.iot-insight-card.severity-neutral{border-left-color:#8b9690}.iot-insight-title{align-items:flex-start;gap:10px;display:flex}.iot-insight-title span{color:#718079;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.iot-insight-title h3{margin:3px 0 0;font-size:18px}.iot-insight-card>p{color:#66756d}.iot-issue-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;display:grid}.iot-issue-item{background:#fff;border:1px solid #e3e8e5;border-radius:6px;padding:11px 12px}.iot-issue-item strong,.iot-issue-item span{display:block}.iot-issue-item span{color:#727f79;margin-top:3px;font-size:13px}.iot-recommendations{color:#44544c;margin:14px 0 0;padding-left:20px}.iot-recommendations li+li{margin-top:5px}@media (width<=900px){.iot-intelligence-panel{grid-template-columns:1fr}.iot-intelligence-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.iot-issue-list{grid-template-columns:1fr}}.alert-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.alert-summary-card{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px;min-height:112px;padding:16px;display:grid}.alert-summary-card>svg{color:var(--green)}.alert-summary-card span{color:var(--text-muted);font-size:13px}.alert-summary-card strong{grid-column:1/-1;font-size:28px;line-height:1}.alert-summary-card.severity-critical-card>svg,.alert-summary-card.severity-critical-card strong{color:#b73c31}.alert-summary-card.severity-warning-card>svg,.alert-summary-card.severity-warning-card strong{color:#a86d09}.alert-center-panel{border:1px solid var(--border);background:#fff;border-radius:8px;padding:18px}.alert-toolbar{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:16px;display:flex}.alert-toolbar h2{margin:4px 0 0;font-size:20px}.alert-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.alert-toolbar select{border:1px solid var(--border);min-height:42px;color:var(--text);background:#fff;border-radius:5px;padding:0 34px 0 12px}.alert-list{gap:10px;display:grid}.alert-item{background:#fff;border:1px solid #dde5e1;border-left-width:4px;border-radius:7px;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:15px;display:grid}.alert-item.severity-critical{background:snow;border-left-color:#c64a3d}.alert-item.severity-warning{background:#fffdf7;border-left-color:#c68a13}.alert-item.status-resolved{opacity:.78;background:#fbfdfc;border-left-color:#72a08a}.alert-item-icon{color:#a86d09;background:#fff4d8;border-radius:7px;place-items:center;width:38px;height:38px;display:grid}.alert-item.severity-critical .alert-item-icon{color:#af372e;background:#fde9e7}.alert-item.status-resolved .alert-item-icon{color:var(--green);background:var(--green-soft)}.alert-item-body{min-width:0}.alert-item-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.alert-item-heading h3{margin:6px 0 0;font-size:17px}.alert-value{white-space:nowrap;font-size:19px}.alert-item-body>p{color:#64736c;margin:9px 0}.alert-badges{flex-wrap:wrap;gap:6px;display:flex}.alert-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.alert-badge.severity-critical{color:#9b2f27;background:#fde8e5}.alert-badge.severity-warning{color:#855806;background:#fff0c9}.alert-badge.status-open{color:#7d2d25;background:#f8e7e5}.alert-badge.status-acknowledged{color:#315a72;background:#e8f2f7}.alert-badge.status-resolved{color:#276140;background:var(--green-soft)}.alert-meta-row{color:#78857e;flex-wrap:wrap;gap:8px 16px;font-size:12px;display:flex}.alert-meta-row span{align-items:center;gap:5px;display:inline-flex}.alert-audit-line{color:#68776f;margin-top:8px;font-size:12px}.alert-item-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.alert-inline-error,.alert-inline-success{border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.alert-inline-error{color:#8f2b20;background:#fff7f6;border:1px solid #efc9c4}.alert-inline-success{color:#276140;background:#f5fbf8;border:1px solid #cfe4da}.alert-empty{text-align:center;color:#738079;align-content:center;place-items:center;gap:7px;min-height:210px;display:grid}.alert-empty svg{color:var(--green)}.alert-empty strong{color:var(--text)}.alert-disclaimer{color:#6f7d76;background:#fafbfa;border:1px solid #e4e9e6;border-radius:6px;margin-top:12px;padding:11px 13px;font-size:12px}@media (width<=900px){.alert-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alert-toolbar{flex-direction:column;align-items:stretch}}@media (width<=620px){.alert-summary-grid{grid-template-columns:1fr 1fr}.alert-toolbar-actions{grid-template-columns:1fr;display:grid}.alert-toolbar-actions select,.alert-toolbar-actions button{width:100%}.alert-item{grid-template-columns:1fr}.alert-item-heading{flex-direction:column}.alert-value{font-size:17px}.alert-item-actions{grid-template-columns:1fr;display:grid}.alert-item-actions button{width:100%}}.zone-intelligence-panel{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:16px;padding:20px}.zone-intelligence-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.zone-intelligence-header h2{margin:3px 0 6px;font-size:20px}.zone-intelligence-header p{color:#6d7b74;max-width:760px;margin:0;line-height:1.5}.zone-field-status{background:#f8fbf9;border:1px solid #dce5e0;border-radius:7px;align-items:center;gap:10px;min-width:150px;padding:11px 13px;display:flex}.zone-field-status svg{color:var(--green)}.zone-field-status span,.zone-field-status strong{display:block}.zone-field-status span{color:#728078;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.zone-field-status strong{margin-top:2px;font-size:18px}.zone-field-status.severity-critical{background:#fff7f6;border-color:#efc9c4}.zone-field-status.severity-warning{background:#fffaf0;border-color:#edd8a6}.zone-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.zone-summary-grid div{background:#fafcfa;border:1px solid #e1e7e4;border-radius:6px;padding:10px 12px}.zone-summary-grid strong,.zone-summary-grid span{display:block}.zone-summary-grid strong{font-size:20px}.zone-summary-grid span{color:#75827c;margin-top:2px;font-size:12px}.zone-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.zone-card{appearance:none;text-align:left;width:100%;min-width:0;color:inherit;cursor:pointer;background:#fff;border:1px solid #dfe6e2;border-left-width:4px;border-radius:7px;padding:13px;transition:border-color .15s,box-shadow .15s,transform .15s}.zone-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #172d2212}.zone-card.selected{box-shadow:0 0 0 2px #18865e24}.zone-card.severity-normal{border-left-color:#18865e}.zone-card.severity-warning{background:#fffdf8;border-left-color:#c68a13}.zone-card.severity-critical{background:snow;border-left-color:#c64a3d}.zone-card.severity-neutral{border-left-color:#98a39d}.zone-card-topline{color:#74817a;text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;gap:8px;font-size:11px;display:flex}.zone-card-topline strong{color:var(--text)}.zone-card h3{margin:8px 0 4px;font-size:15px}.zone-card p{color:#68766f;min-height:34px;margin:0;font-size:12px;line-height:1.4}.zone-card-meta{color:#7b8781;border-top:1px solid #edf1ef;justify-content:space-between;gap:8px;margin-top:10px;padding-top:9px;font-size:11px;display:flex}.zone-priority-callout{color:#72510e;background:#fffaf0;border:1px solid #ead6a5;border-radius:7px;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.zone-priority-callout span,.zone-priority-callout strong{display:block}.zone-priority-callout span{text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:800}.zone-priority-callout strong{color:#4b3912;margin-top:2px}.zone-priority-callout p{color:#75613b;margin:4px 0 0;font-size:12px}.zone-disclaimer{color:#77847e;margin-top:12px;font-size:11px;line-height:1.5}@media (width<=1100px){.zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.zone-intelligence-header{flex-direction:column}.zone-field-status{width:100%}.zone-summary-grid,.zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.zone-summary-grid,.zone-grid{grid-template-columns:1fr}}.portfolio-refresh{align-items:center;gap:7px;display:inline-flex}.portfolio-metrics{margin-bottom:16px}.portfolio-grid{grid-template-columns:minmax(0,1.18fr) minmax(380px,.82fr);gap:14px;margin-bottom:14px;display:grid}.portfolio-project-panel,.portfolio-history-panel,.portfolio-recent-panel{min-width:0}.portfolio-table-wrap{width:100%;overflow-x:auto}.portfolio-table{border-collapse:collapse;width:100%;min-width:680px}.portfolio-table th{text-align:left;color:#74817a;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e1e7e4;padding:10px 11px;font-size:11px;font-weight:800}.portfolio-table td{color:#405047;vertical-align:middle;border-bottom:1px solid #edf1ef;padding:13px 11px;font-size:13px}.portfolio-table tbody tr:last-child td{border-bottom:0}.portfolio-table td:first-child strong,.portfolio-table td:first-child span{display:block}.portfolio-table td:first-child strong{color:var(--text);font-size:14px}.portfolio-table td:first-child span{color:#7a8680;margin-top:3px;font-size:12px}.portfolio-empty-cell{text-align:center;color:#7a8680!important;padding:34px 12px!important}.portfolio-chart{min-height:310px}.portfolio-chart-empty{text-align:center;color:#78857f;background:#fafcfa;border:1px dashed #dce4e0;border-radius:7px;place-items:center;min-height:250px;padding:24px;display:grid}.portfolio-history-meta{color:#75827c;border-top:1px solid #edf1ef;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:8px;padding-top:12px;font-size:12px;display:flex}.portfolio-history-meta strong{color:var(--green)}.portfolio-recent-list{gap:8px;display:grid}.portfolio-recent-item{background:#fff;border:1px solid #e2e8e5;border-radius:7px;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(120px,.55fr));align-items:center;gap:12px;padding:12px 13px;display:grid}.portfolio-recent-item>div strong,.portfolio-recent-item>div span{display:block}.portfolio-recent-item>div span{color:#7a8680;font-size:11px}.portfolio-recent-item>div strong{color:var(--text);margin-top:2px;font-size:13px}.portfolio-recent-item>div:first-child strong{margin-top:0;font-size:14px}.portfolio-method-note{color:#6f7c75;background:#fafcfa;border:1px solid #e2e8e5;border-radius:6px;margin:12px 0 0;padding:10px 12px;font-size:11px;line-height:1.5}@media (width<=1100px){.portfolio-grid{grid-template-columns:1fr}.portfolio-recent-item{grid-template-columns:minmax(200px,1.3fr) repeat(3,minmax(100px,.6fr))}}@media (width<=760px){.portfolio-recent-item{grid-template-columns:1fr 1fr}.portfolio-recent-item>div:first-child{grid-column:1/-1}}@media (width<=480px){.portfolio-recent-item{grid-template-columns:1fr}.portfolio-recent-item>div:first-child{grid-column:auto}}.audit-refresh{align-items:center;gap:8px;display:inline-flex}.audit-metrics,.audit-filter-panel{margin-bottom:16px}.audit-filter-head{margin-bottom:14px}.audit-filter-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.audit-filter-grid label{gap:7px;display:grid}.audit-filter-grid label>span{color:var(--text-muted);font-size:13px;font-weight:600}.audit-filter-grid input,.audit-filter-grid select{border:1px solid var(--border);width:100%;min-height:42px;color:var(--text);font:inherit;background:#fff;border-radius:5px;padding:0 12px}.audit-filter-grid input:focus,.audit-filter-grid select:focus{border-color:var(--green);outline-offset:0;outline:2px solid #18865e1f}.audit-layout{grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);align-items:start;gap:16px;display:grid}.audit-list-panel,.audit-detail-panel{min-width:0}.audit-event-list{gap:8px;margin-top:16px;display:grid}.audit-event-row{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:7px;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:12px;width:100%;padding:13px;transition:border-color .14s,background .14s;display:grid}.audit-event-row:hover{background:#fbfdfc;border-color:#a8caba}.audit-event-row-active{background:#f1f8f4;border-color:#7fbaa0}.audit-event-icon{width:38px;height:38px;color:var(--green);background:var(--green-soft);border-radius:6px;place-items:center;display:grid}.audit-event-main{min-width:0}.audit-event-main strong{color:var(--text);margin-top:8px;font-size:14px;font-weight:650;display:block}.audit-event-main>span{color:var(--text-muted);margin-top:5px;font-size:12px;display:block}.audit-event-badges{flex-wrap:wrap;gap:6px;display:flex}.audit-category,.audit-action{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;min-height:22px;padding:3px 7px;font-size:10px;font-weight:750;display:inline-flex}.audit-category{color:#176b4d;background:#e8f5ee}.audit-category-calculation,.audit-category-scenario{color:#35647a;background:#eaf3f7}.audit-category-project{color:#695322;background:#f6f0df}.audit-action{color:#575757;background:#f1f1f1}.audit-pagination{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;margin-top:16px;font-size:13px;display:flex}.audit-detail-content{margin-top:16px}.audit-detail-content>h3{margin:12px 0 18px;font-size:21px;line-height:1.25}.audit-detail-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.audit-detail-meta-grid>div,.audit-request-grid>div{border:1px solid var(--border);background:#fafcfa;border-radius:6px;min-width:0;padding:11px 12px}.audit-detail-meta-grid span,.audit-request-grid span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.audit-detail-meta-grid strong,.audit-detail-meta-grid small{overflow-wrap:anywhere;display:block}.audit-detail-meta-grid strong{font-size:13px}.audit-detail-meta-grid small{color:var(--text-muted);margin-top:3px;font-size:11px}.audit-section-title{color:var(--text);margin:20px 0 9px;font-size:13px;font-weight:750}.audit-change-table-wrap{border:1px solid var(--border);border-radius:6px;overflow-x:auto}.audit-change-table{border-collapse:collapse;width:100%;font-size:12px}.audit-change-table th,.audit-change-table td{vertical-align:top;text-align:left;border-bottom:1px solid var(--border);padding:10px}.audit-change-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:#fafafa;font-size:10px}.audit-change-table tr:last-child td{border-bottom:0}.audit-change-table pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:240px;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45}.audit-request-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.audit-request-grid code{overflow-wrap:anywhere;color:#24332c;font-size:11px;display:block}.audit-privacy-note{color:var(--text-muted);margin:10px 0 0;font-size:11px;line-height:1.55}.audit-empty-list,.audit-empty-detail{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:6px;padding:24px;font-size:13px}@media (width<=1180px){.audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-layout{grid-template-columns:1fr}}@media (width<=720px){.audit-filter-grid,.audit-detail-meta-grid,.audit-request-grid{grid-template-columns:1fr}.audit-pagination{flex-wrap:wrap}}.hardware-page{gap:18px;display:grid}.hardware-empty{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:8px;padding:64px 24px}.hardware-empty h2{color:var(--text);margin:14px 0 6px}.hardware-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.hardware-stat-grid article{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:auto 1fr;gap:5px 10px;padding:15px 16px;display:grid}.hardware-stat-grid article svg{color:#197754;grid-row:span 2;margin-top:2px}.hardware-stat-grid span,.hardware-panel span,.hardware-device-row>div>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.045em;font-size:11px;font-weight:700}.hardware-stat-grid strong{font-size:22px}.hardware-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:14px;display:grid}.hardware-panel,.credential-box{border:1px solid var(--border);background:#fff;border-radius:8px;padding:18px}.hardware-panel-title{justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.hardware-panel-title>div{align-items:flex-start;gap:10px;display:flex}.hardware-panel-title svg{color:#197754}.hardware-panel-title strong,.hardware-panel-title span{display:block}.hardware-panel-title strong{font-size:15px}.hardware-panel-title span{text-transform:none;letter-spacing:0;margin-top:3px;font-weight:500}.mqtt-contract-grid{grid-template-columns:1fr 100px;gap:10px;display:grid}.mqtt-contract-grid>div{border:1px solid var(--border);background:#f9fbfa;border-radius:6px;padding:12px}.mqtt-contract-grid strong,.mqtt-contract-grid code{overflow-wrap:anywhere;margin-top:5px;display:block}.mqtt-topic-pattern{grid-column:1/-1}.hardware-help{color:var(--text-muted);margin:14px 0 0;font-size:12px;line-height:1.6}.hardware-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.hardware-form label{color:var(--text);gap:6px;font-size:12px;font-weight:650;display:grid}.hardware-form input[type=text],.hardware-form input:not([type]){width:100%}.hardware-capabilities{border:1px solid var(--border);background:#fafcfa;border-radius:6px;flex-wrap:wrap;grid-column:1/-1;gap:8px 14px;padding:12px;display:flex}.hardware-capabilities>span{width:100%}.hardware-capabilities label{align-items:center;gap:6px;font-weight:550;display:flex}.hardware-form .primary-button{grid-column:1/-1;justify-content:center}.credential-box{background:#f4fbf7;border-color:#b9dccb}.credential-box>div:first-child{color:#176b4d;gap:10px;display:flex}.credential-box p{color:#527064;margin:4px 0 0;font-size:12px}.credential-value{background:#fff;border:1px solid #cfe6da;border-radius:6px;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;display:grid}.credential-value code{overflow-wrap:anywhere;font-size:11px}.credential-value button,.hardware-device-actions button{color:#176b4d;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;display:inline-flex}.credential-box>.secondary-button{margin-top:12px}.hardware-device-panel{overflow:hidden}.hardware-device-list{gap:8px;display:grid}.hardware-device-row{border:1px solid var(--border);background:#fff;border-radius:7px;grid-template-columns:minmax(180px,1.3fr) 120px 110px 150px minmax(220px,1.6fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.hardware-device-row>div>strong,.hardware-device-row>div>code{overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.hardware-device-identity{align-items:center;gap:9px;display:flex}.hardware-status-dot{background:#bcc5c1;border-radius:50%;flex:none;width:9px;height:9px}.hardware-status-dot.is-online{background:#1c986b;box-shadow:0 0 0 4px #1c986b1a}.hardware-device-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hardware-device-actions button{border:1px solid var(--border);white-space:nowrap;background:#fff;border-radius:5px;padding:6px 8px;font-size:11px}.hardware-list-empty{color:var(--text-muted);text-align:center;padding:30px}@media (width<=1180px){.hardware-grid{grid-template-columns:1fr}.hardware-device-row{grid-template-columns:repeat(3,minmax(0,1fr))}.hardware-device-identity,.hardware-device-topic,.hardware-device-actions{grid-column:span 3}}@media (width<=720px){.hardware-stat-grid,.hardware-form,.mqtt-contract-grid,.hardware-device-row{grid-template-columns:1fr}.hardware-device-identity,.hardware-device-topic,.hardware-device-actions,.mqtt-topic-pattern{grid-column:1}}.hardware-form select,.hardware-form input[type=number]{border:1px solid var(--border);width:100%;min-height:38px;color:var(--text);font:inherit;background:#fff;border-radius:6px;padding:8px 10px}.hardware-status-dot.is-delayed{background:#d49b2a;box-shadow:0 0 0 4px #d49b2a1f}.hardware-gateway-panel{overflow:hidden}.gateway-card-list{gap:12px;display:grid}.gateway-card{border:1px solid var(--border);background:#fbfcfb;border-radius:8px;padding:15px}.gateway-card-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.gateway-card-header code,.gateway-card strong,.gateway-card code{overflow-wrap:anywhere}.gateway-meta-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.gateway-meta-grid>div{border:1px solid var(--border);background:#fff;border-radius:6px;padding:10px}.gateway-meta-grid span,.gateway-assignment>div:first-child span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.045em;font-size:10px;font-weight:700;display:block}.gateway-meta-grid strong{margin-top:5px;font-size:12px;display:block}.gateway-assignment{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.gateway-assignment>div:first-child strong{font-size:13px;display:block}.gateway-assignment>div:first-child span{text-transform:none;letter-spacing:0;margin-top:3px;font-weight:500}.gateway-node-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.gateway-node-options label{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;grid-template-columns:auto 1fr;align-items:center;gap:3px 7px;padding:9px;font-size:11px;display:grid}.gateway-node-options input{grid-row:span 2}.gateway-node-options code{color:var(--text-muted);grid-column:2;font-size:9px}.hardware-device-provision-grid{align-items:stretch}.firmware-contract-panel{flex-direction:column;display:flex}.firmware-checklist{gap:9px;display:grid}.firmware-checklist>div{border:1px solid var(--border);color:var(--text);background:#f9fbfa;border-radius:6px;align-items:center;gap:8px;padding:10px;font-size:12px;display:flex}.firmware-checklist svg{color:#197754;flex:none}@media (width<=1180px){.gateway-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gateway-node-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.gateway-card-header{flex-direction:column;align-items:flex-start}.gateway-meta-grid,.gateway-node-options{grid-template-columns:1fr}}.notification-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.notification-summary-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px;min-height:112px;padding:18px;display:grid}.notification-summary-card>svg{color:var(--green)}.notification-summary-card>span{color:var(--text-muted);font-size:13px}.notification-summary-card>strong{grid-column:1/-1;font-size:28px;line-height:1}.notification-summary-card.notification-critical>svg,.notification-summary-card.notification-critical>strong{color:#b43a32}.notification-summary-card.notification-warning>svg,.notification-summary-card.notification-warning>strong{color:#a66c0c}.notification-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.notification-panel,.notification-preferences-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:18px}.notification-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.notification-toolbar h2,.notification-preferences-title h2{margin:4px 0 0;font-size:20px}.notification-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.notification-toolbar select{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--text);border-radius:8px;padding:0 10px}.notification-list{gap:9px;display:grid}.notification-item{border:1px solid var(--border);text-align:left;width:100%;color:inherit;cursor:pointer;background:#fff;border-left:4px solid #aeb9b3;border-radius:10px;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:14px;display:grid}.notification-item:hover{border-color:#a9bdb3}.notification-item.is-unread{background:#fbfffd;box-shadow:inset 0 0 0 1px #1c6e4b0d}.notification-item.is-read{opacity:.78}.notification-item.severity-critical{border-left-color:#c44b40}.notification-item.severity-warning{border-left-color:#c48a17}.notification-item-icon{width:38px;height:38px;color:var(--green);background:var(--green-soft);border-radius:10px;place-items:center;display:grid}.notification-item.severity-critical .notification-item-icon{color:#ad372f;background:#fde9e7}.notification-item.severity-warning .notification-item-icon{color:#97630b;background:#fff1d1}.notification-item-content{min-width:0}.notification-item-heading{color:#77847d;justify-content:space-between;gap:12px;font-size:11px;display:flex}.notification-item-content h3{margin:7px 0 5px;font-size:16px}.notification-item-content p{color:#637169;margin:0;font-size:13px;line-height:1.55}.notification-badges{flex-wrap:wrap;gap:5px;display:flex}.notification-badge,.notification-unread-dot{color:#54635b;letter-spacing:.05em;text-transform:uppercase;background:#eef2ef;border-radius:999px;align-items:center;min-height:20px;padding:2px 7px;font-size:9px;font-weight:800;display:inline-flex}.notification-badge.severity-critical{color:#9b2f27;background:#fde8e5}.notification-badge.severity-warning{color:#855806;background:#fff0c9}.notification-unread-dot{color:#176f49;background:#e5f5ed}.notification-meta{color:#7b8881;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:11px;display:flex}.notification-empty{min-height:210px;color:var(--text-muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.notification-empty svg{color:var(--green)}.notification-preferences-panel{position:sticky;top:18px}.notification-preferences-title{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.notification-preferences-title>svg{color:var(--green);margin-top:2px}.notification-toggle-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:14px 0;display:flex}.notification-toggle-row div{gap:4px;display:grid}.notification-toggle-row strong{font-size:13px}.notification-toggle-row span{color:var(--text-muted);font-size:11px;line-height:1.45}.notification-toggle-row input{width:18px;height:18px;accent-color:var(--green)}.notification-save-button{justify-content:center;width:100%;margin-top:16px}.notification-channel-note{color:var(--text-muted);margin:12px 0 0;font-size:11px;line-height:1.55}@media (width<=1100px){.notification-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notification-layout{grid-template-columns:1fr}.notification-preferences-panel{position:static}}@media (width<=720px){.notification-summary-grid{grid-template-columns:1fr 1fr}.notification-toolbar{flex-direction:column}.notification-toolbar-actions{justify-content:flex-start;width:100%}.notification-item-heading{flex-direction:column;gap:6px}}@media (width<=480px){.notification-summary-grid,.notification-item{grid-template-columns:1fr}}.report-toolbar{border:1px solid var(--border);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px;padding:16px 18px;display:flex}.report-filter-group,.report-downloads{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.report-filter-group label{gap:6px;display:grid}.report-filter-group label>span{color:var(--text-muted);font-size:11px;font-weight:700}.report-filter-group input{border:1px solid var(--border);min-height:38px;color:var(--text);font:inherit;background:#fff;border-radius:8px;padding:0 10px}.report-downloads a{text-decoration:none}.report-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.report-summary-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:7px 9px;padding:17px;display:grid}.report-summary-card>svg{color:var(--green)}.report-summary-card>span{color:var(--text-muted);font-size:12px}.report-summary-card>strong{grid-column:1/-1;font-size:24px;line-height:1.15}.report-summary-card>small{color:var(--text-muted);grid-column:1/-1;font-size:10px;line-height:1.4}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.report-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;min-width:0;padding:18px}.report-panel-wide{grid-column:1/-1}.report-panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px;display:flex}.report-panel-heading h2{margin:4px 0 0;font-size:18px}.report-panel-heading>span{color:var(--text-muted);font-size:11px}.report-panel-heading>svg{color:var(--green)}.report-status-badge{background:var(--green-soft);color:var(--green);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:4px 8px;font-weight:800;display:inline-flex;font-size:9px!important}.report-definition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;display:grid}.report-definition-grid>div{border:1px solid var(--border);background:#fbfcfb;border-radius:8px;padding:10px}.report-definition-grid dt{color:var(--text-muted);font-size:10px}.report-definition-grid dd{overflow-wrap:anywhere;margin:5px 0 0;font-size:12px;font-weight:700}.report-carbon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.report-carbon-grid>div{border:1px solid var(--border);border-radius:8px;gap:5px;padding:11px;display:grid}.report-carbon-grid span{color:var(--text-muted);font-size:10px}.report-carbon-grid strong{font-size:14px}.report-carbon-net{background:var(--green-soft);border-color:#1b754e33!important}.report-table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;width:100%;min-width:560px}.report-table th,.report-table td{border-bottom:1px solid var(--border);text-align:left;padding:10px 12px;font-size:11px}.report-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:9px}.report-mini-stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.report-mini-stats>div{border:1px solid var(--border);text-align:center;border-radius:8px;gap:4px;padding:11px 8px;display:grid}.report-mini-stats strong{font-size:18px}.report-mini-stats span{color:var(--text-muted);font-size:10px}.report-alert-list{gap:8px;display:grid}.report-alert-list>div{border:1px solid var(--border);border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:9px;padding:9px;display:grid}.report-alert-list>div>div{gap:3px;min-width:0;display:grid}.report-alert-list strong{font-size:12px}.report-alert-list span:not(.report-alert-severity){color:var(--text-muted);overflow-wrap:anywhere;font-size:10px}.report-alert-severity{text-transform:uppercase;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:800}.report-alert-severity.warning{color:#8c5d0a;background:#fff0ca}.report-alert-severity.critical{color:#9c3028;background:#fde8e5}.report-audit-box{border:1px solid var(--border);background:#fbfcfb;border-radius:9px;gap:5px;padding:13px;display:grid}.report-audit-box strong{font-size:13px}.report-audit-box span{color:var(--text-muted);font-size:11px;line-height:1.5}.report-empty{min-height:90px;color:var(--text-muted);text-align:center;place-items:center;font-size:12px;display:grid}.report-method-note{background:var(--green-soft);border:1px solid #1b754e2e;border-radius:10px;gap:10px;margin-top:14px;padding:14px 16px;display:flex}.report-method-note>svg{color:var(--green);flex:none;margin-top:2px}.report-method-note>div{gap:4px;display:grid}.report-method-note strong{font-size:12px}.report-method-note span{color:#53655c;font-size:11px;line-height:1.55}@media (width<=1100px){.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-toolbar{flex-direction:column;align-items:stretch}}@media (width<=760px){.report-grid{grid-template-columns:1fr}.report-panel-wide{grid-column:auto}.report-definition-grid,.report-carbon-grid{grid-template-columns:1fr}.report-mini-stats{grid-template-columns:repeat(2,1fr)}.report-downloads{width:100%}}@media (width<=520px){.report-summary-grid{grid-template-columns:1fr}.report-filter-group{width:100%;display:grid}.report-filter-group label,.report-filter-group input{width:100%}}
