:root{--bg:#f5f7f8;--surface:#fff;--surface-strong:#f6f8f9;--text:#202c30;--muted:#637278;--line:#dde5e7;--nav:#182323;--nav-muted:#bcc9c9;--accent:#548e29;--accent-strong:#3e701d;--accent-soft:#eef6e8;--brand-blue:#287baa;--brand-blue-soft:#eaf4fa;--brand-orange:#eeb34d;--brand-orange-soft:#fff7e8}body{font-size:14px;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{transition:background-color .12s ease,border-color .12s ease,color .12s ease}button:not(:disabled),select{cursor:pointer}:focus-visible{outline:3px solid #78b5d6;outline-offset:3px}button:disabled{cursor:not-allowed}h1,h2,h3,p{overflow-wrap:break-word}.admin-shell,.app-shell{grid-template-columns:234px minmax(0,1fr)}.sidebar{padding:28px 14px 24px;overflow-y:auto}.brand{grid-template-columns:44px minmax(0,1fr);gap:4px 10px;padding:0 8px 27px}.brand:before{width:44px;height:38px}.brand span{font-size:26px;font-weight:700}.brand strong{font-size:11px;font-weight:500}.sidebar:before{height:3px}.nav-list{gap:5px;margin-top:24px}.nav-list a{display:flex;align-items:center;gap:11px;min-height:43px;padding:10px 12px;border-radius:6px;font-size:13px;font-weight:500}.nav-list a svg{flex:0 0 19px;opacity:.82;stroke-width:1.7}.nav-list a:hover{background:#263737;box-shadow:none}.nav-list a[aria-current=page]{background:#30432b;box-shadow:inset 3px 0 0 #92c85a;color:#edf8e4}.nav-list a[aria-current=page] svg{color:#b4df87;opacity:1}.workspace{width:100%;max-width:1720px;padding:28px 34px 52px;min-width:0}.topbar{border-left:0;border-bottom:1px solid var(--line);padding:0 0 24px;gap:20px;margin-bottom:26px}.topbar h1{font-size:28px;line-height:1.22;font-weight:700;margin:4px 0 8px}.topbar .subtle{font-size:13px}.eyebrow{color:#4f7d32;font-size:10px;font-weight:700;text-transform:uppercase}.topbar-actions{align-items:center;gap:12px;flex-wrap:wrap}.session-card{padding:0 12px;border:0;border-radius:0;background:transparent;font-size:12px;box-shadow:none}.session-card small{color:var(--muted)}.workspace-view-header{border:0;border-radius:0;background:transparent;padding:0 0 16px;margin:0 0 20px;border-bottom:1px solid var(--line)}.workspace-view-header h2{font-size:20px}.panel{border:0;border-radius:0;box-shadow:none;padding:22px 0;background:transparent;border-top:1px solid var(--line)}.panel-header{margin-bottom:20px}.panel-header h2{font-size:20px;line-height:1.3}.metrics{gap:14px}.metrics article{border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 3px #172d3603;padding:20px}.metrics strong{font-size:27px;font-weight:700;line-height:1.3}.metrics article:nth-child(4n+1){border-top:3px solid #72a74c}.metrics article:nth-child(4n+2){border-top:3px solid #3f92b8}.metrics article:nth-child(4n+3){border-top:3px solid #dba84d}.metrics article:nth-child(4n+4){border-top:3px solid #94a5ab}.table-head{background:#edf2f3;color:#52636a;font-size:11px;border-bottom:1px solid var(--line)}.table-row{background:#fff;border-bottom:1px solid #e8edef}.table-row:hover{background:#f7fafb}.reference-data-card{background:#fff;border-radius:8px;border:1px solid var(--line)}.status-pill{border-radius:5px;padding:5px 9px;font-size:11px}.login-shell{background:#edf2f3 url(/energy-campus.png) 50%/cover no-repeat;padding:40px 20px}.login-panel{width:min(760px,100%);border:1px solid var(--line);box-shadow:0 16px 48px #20383e12;padding:32px}.login-panel-compact{width:min(480px,100%)}.login-panel:before{height:4px}.login-brand{margin-bottom:6px;column-gap:12px}.login-panel h1{font-size:26px;margin:0}.login-panel>div>.subtle{margin-top:8px;font-size:13px}.login-form input,.login-form select{min-height:44px;width:100%;min-width:0;max-width:100%;padding:10px 12px;border:1px solid #ccd8dc;border-radius:6px;background:#fff}.login-form button{min-height:44px;border-radius:6px}.login-ready-customers,.login-scope{border:0;border-radius:0;background:transparent;padding:18px 0 0;border-top:1px solid var(--line)}.login-ready-customers h2,.login-scope h2{font-size:15px}.login-ready-grid a,.scope-card{border-radius:6px}.portal-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;min-height:38px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:#4b616a}.portal-icon-button:hover:not(:disabled){background:#eaf3f8;border-color:#83b3cb;color:#246b90}.portal-icon-button:disabled{opacity:.42}.rdn-section-heading{display:flex;align-items:center;gap:10px;color:#3d6170;margin-bottom:18px}.rdn-section-heading h2{color:var(--text);font-size:18px;margin:0}.rdn-dashboard{display:grid;grid-gap:22px;gap:22px}.rdn-running-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.rdn-running-status>span:not(.rdn-indicator){color:var(--muted)}.rdn-running-status>button{margin-left:auto}.rdn-indicator{width:8px;height:8px;border-radius:50%;background:#b6bdc1}.rdn-indicator.is-on{background:#578f31;box-shadow:0 0 0 4px #e7f2df}.rdn-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.rdn-metrics article{display:grid;grid-template-columns:1fr 24px;grid-template-rows:auto auto auto;grid-gap:6px 10px;gap:6px 10px;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}.rdn-metrics article>svg{grid-column:2;grid-row:1;color:#819198}.rdn-metrics article>span{font-size:12px;color:var(--muted)}.rdn-metrics article>strong{grid-column:1/-1;font-size:30px;font-weight:650;line-height:1.3;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rdn-metrics article>small{grid-column:1/-1;color:var(--muted);font-size:11px}.text-success{color:#5b952e!important}.text-blue{color:#367fa6!important}.text-warning{color:#b78224!important}.rdn-calendar-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:8px}.rdn-calendar-heading h2{margin:0;font-size:18px}.rdn-calendar-heading span{font-size:12px;color:var(--muted)}.rdn-month-controls{display:flex;align-items:center;gap:8px}.rdn-month-controls input{width:184px;min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:#fff}.rdn-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:8px;gap:8px}.rdn-weekday{color:var(--muted);font-size:11px;padding:0 10px}.rdn-day{display:grid;align-content:start;grid-gap:5px;gap:5px;min-width:0;height:90px;padding:11px;border:1px solid #dce4e6;border-radius:6px;text-align:left;color:#465961;background:#fff}.rdn-day strong{display:flex;align-items:center;justify-content:space-between;font-size:16px;line-height:1.2}.rdn-day span{font-size:11px;font-weight:600}.rdn-day small{font-size:10px;opacity:.8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rdn-day.completed,.rdn-status.completed{color:#426d24;background:#f0f7ea;border-color:#cde0b9}.rdn-day.running,.rdn-status.running{color:#216c92;background:#eaf5fc;border-color:#92c8e5}.rdn-day.failed,.rdn-status.failed{color:#a34637;background:#fff2ee;border-color:#eec8bf}.rdn-day.unavailable,.rdn-status.unavailable{color:#78858a;background:#eef1f2}.rdn-day.empty{background:transparent;border-color:transparent;color:#9da9ad;cursor:default}.rdn-day.is-selected{outline:2px solid #317ea5;outline-offset:2px}.rdn-day:hover:not(:disabled){border-color:#317ea5}.rdn-legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:11px;color:var(--muted)}.rdn-legend span{display:flex;align-items:center;gap:6px}.rdn-legend i{display:block;width:9px;height:9px;border-radius:2px;background:#c9d5d9}.rdn-legend .completed{background:#81ad59}.rdn-legend .running{background:#4ba2cc}.rdn-legend .failed{background:#d28270}.rdn-legend .unavailable{background:#a6b0b5}.rdn-legend .hourly-fallback{background:#6a9ebd}.rdn-day.hourly-fallback,.rdn-status.hourly-fallback{background:#edf5fa;color:#35657d;border-color:#b9d5e6}.rdn-day-detail{border-top:2px solid #287baa;border-bottom:1px solid var(--line);padding:20px 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;scroll-margin-top:20px}.rdn-day-detail h2{font-size:20px;margin:2px 0 8px}.rdn-day-detail p{margin:4px 0;font-size:13px}.rdn-day-detail dl{display:grid;grid-gap:7px;gap:7px;margin:0;align-content:start}.rdn-day-detail dl div{display:flex;gap:10px;justify-content:space-between;font-size:12px}.rdn-day-detail dt{color:var(--muted)}.rdn-day-detail dd{margin:0}.rdn-detail-error{grid-column:1/-1;color:#976039}.rdn-primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:-moz-fit-content;width:fit-content;min-height:40px;padding:9px 16px;border:1px solid #497c26;border-radius:6px;color:#fff;background:#548e29;font-size:13px;font-weight:600}.rdn-primary-button:disabled{opacity:.5}.rdn-primary-button:hover:not(:disabled){background:#3e701d}.rdn-sources{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rdn-sources>div{display:grid;grid-template-columns:20px 1fr;grid-gap:3px 8px;gap:3px 8px;font-size:13px}.rdn-sources>div>span{grid-column:2;color:var(--muted);font-size:12px}.rdn-sources svg{color:#548192}.rdn-mail-status{display:flex;gap:14px;align-items:flex-start;color:#55737f}.rdn-mail-status strong{font-size:13px;color:var(--text)}.rdn-mail-status p{font-size:13px;margin:3px 0}.rdn-checkbox,.rdn-mail-status small{color:var(--muted);font-size:12px}.rdn-checkbox{display:flex;align-items:center;gap:8px}.rdn-checkbox input{width:16px;height:16px;accent-color:#548e29}.rdn-history-scroll{position:relative;min-width:0;max-width:100%;overflow-x:auto}.rdn-history{border-collapse:collapse;width:100%;font-size:12px}.rdn-history th{text-align:left;font-weight:600;font-size:11px;color:var(--muted);background:#edf2f3}.rdn-history td,.rdn-history th{padding:12px 14px;border-bottom:1px solid var(--line)}.rdn-history td{background:#fff}.rdn-status{display:inline-block;padding:4px 7px;border-radius:4px;white-space:nowrap}.rdn-message{display:flex;gap:10px;align-items:center;padding:12px 16px;border:1px solid #c6dcb7;border-radius:6px;color:#426d24;background:#f0f7ea;font-size:13px}.rdn-message svg{flex-shrink:0}.rdn-message.is-error{color:#a34637;background:#fff2ee;border-color:#eec8bf}.rdn-overview-link{display:flex;align-items:center;gap:10px;padding:14px 0 0;margin-top:10px;border-top:1px solid var(--line);color:#287baa;font-size:13px;font-weight:600}.rdn-overview-link svg:last-child{margin-left:auto}.sr-only{position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media (min-width:1600px){.workspace{padding-left:44px;padding-right:44px}}@media (max-width:1080px){.admin-shell,.app-shell{grid-template-columns:210px minmax(0,1fr)}.workspace{padding:24px}.rdn-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar h1{font-size:24px}}@media (max-width:760px){.admin-shell,.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:relative;height:auto;padding:18px 16px 12px;overflow:visible}.brand{display:grid;grid-template-columns:36px 1fr;padding:0 0 16px}.brand:before{width:36px;height:32px}.brand span{font-size:23px}.nav-list{display:flex;overflow-x:auto;gap:6px;margin-top:12px;padding:0 0 4px}.nav-list a{white-space:nowrap;flex:0 0 auto;font-size:12px;padding:8px 11px;min-height:38px}.nav-list a svg{width:16px;flex-basis:16px}.workspace{padding:20px 16px 40px}.topbar{align-items:flex-start;flex-wrap:wrap;margin-bottom:20px;padding-bottom:18px}.topbar-actions{width:100%;justify-content:space-between}.session-card{padding-left:0}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics strong{font-size:23px}.rdn-metrics{gap:10px}.rdn-metrics article{padding:15px}.rdn-metrics article>strong{font-size:26px}.rdn-calendar{gap:5px}.rdn-day{height:79px;padding:7px 4px;gap:6px}.rdn-day strong{font-size:14px}.rdn-day span{font-size:9px;line-height:1.2;overflow-wrap:anywhere}.rdn-day small{font-size:9px}.rdn-weekday{padding:0 3px}.rdn-month-controls input{width:175px}.rdn-day-detail{grid-template-columns:minmax(0,1fr)}.rdn-history{min-width:680px}.rdn-sources{gap:14px}.rdn-sources>svg{display:none}.login-panel{padding:26px 22px}}@media (prefers-reduced-motion:reduce){a,button{transition:none}html{scroll-behavior:auto}}