*{box-sizing:border-box}html,body{min-height:100%;margin:0}:root{--surface:#f6f7f2;--surface-raised:#fff;--surface-sunk:#eef0e9;--ink:#14160f;--ink-soft:#565b53;--ink-faint:#8b9089;--line:#e1e4da;--line-strong:#c7cbbf;--accent:#1b7a4a;--accent-ink:#0f4a2c;--accent-soft:#e4f1e8;--critical:#b3402f;--font-body-stack:Arial, Helvetica, sans-serif;--font-data-stack:ui-monospace, Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .7, .2, 1)}body{background:var(--surface);color:var(--ink);font-family:var(--font-body-stack)}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.top-nav{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:20px;min-height:46px;padding-bottom:10px;display:flex}.brand-mark{color:var(--ink);letter-spacing:-.01em;transition:opacity .16s var(--ease);align-items:center;gap:7px;font-size:1.02rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark:hover{opacity:.7}.brand-icon{color:var(--ink)}.top-nav-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.aws-status{border:1px solid var(--line-strong);color:var(--ink-faint);border-radius:7px;align-items:center;margin-right:0;padding:7px 11px;font-size:.75rem;display:inline-flex}.aws-status.connected{color:#4c5c52;background:#eaf0ec;border-color:#bdccc2}.nav-button,.auth-button,.submit-button,.sign-out-button,.back-button,.hero3d-toolbar button{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);transition:background-color .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease), transform .1s var(--ease);border-radius:7px}.nav-button,.sign-out-button,.back-button{padding:7px 11px;font-size:.75rem}.auth-button,.submit-button{min-width:120px;padding:11px 18px;font-size:.85rem;font-weight:500}.nav-button:hover:not(:disabled),.auth-button:hover,.submit-button:hover:not(:disabled),.sign-out-button:hover,.back-button:hover,.nav-button.primary{border-color:var(--ink);background:var(--ink);color:var(--surface-raised)}.nav-button:active:not(:disabled),.auth-button:active,.submit-button:active:not(:disabled){transform:scale(.97)}.nav-button.subtle{color:var(--ink-faint)}.nav-button.danger{border-color:var(--critical);color:var(--critical)}.nav-button.danger:hover:not(:disabled){background:var(--critical);border-color:var(--critical);color:#fff}.nav-button:disabled,.submit-button:disabled{cursor:wait;opacity:.5}.landing-page{flex-direction:column;min-height:100vh;padding:20px 24px;display:flex}.landing-hero{flex:1;grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:center;gap:20px 28px;width:min(100%,860px);margin:0 auto;padding:40px 0;display:grid}.landing-copy{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.landing-copy h1{letter-spacing:-.02em;margin:14px 0 18px;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:600;line-height:1.04}.landing-copy>p{max-width:520px;color:var(--ink-soft);margin:0 0 30px;font-size:1.02rem;line-height:1.55}.landing-method-link{color:var(--ink-faint);transition:color .16s var(--ease), border-color .16s var(--ease);border-bottom:1px solid #0000;margin-top:20px;font-size:.8rem;text-decoration:none}.landing-method-link:hover{color:var(--accent-ink);border-bottom-color:var(--accent)}.live-grid-teaser{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;padding:18px 20px}.live-grid-head{color:var(--ink-faint);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:7px;font-size:.68rem;font-weight:600;display:flex}.live-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2.2s ease-in-out infinite live-pulse;display:inline-block}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.live-grid-list{gap:14px;margin:14px 0 0;padding:0;list-style:none;display:grid}.live-grid-list li{justify-content:space-between;align-items:center;gap:12px;display:flex}.live-grid-figure{min-width:0}.live-grid-city{color:var(--ink-faint);font-size:.68rem;display:block}.live-grid-figure strong{font-family:var(--font-data-stack);margin-top:2px;font-size:1.15rem;font-weight:600;display:block}.live-grid-figure strong small{color:var(--ink-faint);font-family:var(--font-body-stack);margin-left:3px;font-size:.6rem;font-weight:500}.live-grid-source{color:var(--ink-soft);margin-top:1px;font-size:.66rem;display:block}.live-grid-spark{flex:none;overflow:visible}.live-grid-spark path{stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.live-grid-caption{border-top:1px solid var(--line);color:var(--ink-faint);margin:16px 0 0;padding-top:14px;font-size:.72rem;line-height:1.5}.auth-actions{gap:12px;display:flex}.auth-box{border:1px solid var(--line);background:var(--surface-raised);text-align:left;border-radius:12px;width:min(100%,380px);margin:0;padding:24px}.auth-box-header{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.auth-box h2{margin:0;font-size:1.2rem;font-weight:600}.auth-box form{gap:16px;display:grid}.auth-box label{color:var(--ink-soft);gap:6px;font-size:.82rem;display:grid}.auth-box input{border:1px solid var(--line-strong);background:var(--surface-raised);width:100%;color:var(--ink);transition:border-color .15s var(--ease);border-radius:7px;outline:none;padding:10px 12px}.auth-box input:focus{border-color:var(--accent)}.submit-button{width:100%;margin-top:4px}.form-message,.form-error{margin:16px 0 0;font-size:.85rem;line-height:1.4}.form-error{color:var(--critical)}.dashboard-page{height:100svh;padding:14px 22px;overflow:hidden}.dashboard-content{width:min(100%,1320px);height:100%;margin:0 auto}.workspace-shell{flex-direction:column;height:100%;min-height:0;display:flex}.workspace-main{flex-direction:column;flex:auto;gap:9px;min-height:0;padding-top:14px;display:flex}.workspace-error{flex:none;margin:9px 0 0}.workspace-empty{flex:1;align-content:center;justify-items:start;max-width:580px;padding:40px 0;display:grid}.workspace-empty h1{letter-spacing:-.015em;margin:10px 0 0;font-size:clamp(2rem,5vw,3.4rem);font-weight:600;line-height:1.05}.workspace-empty p{max-width:480px;color:var(--ink-soft);margin:14px 0 24px;line-height:1.5}.workspace-empty.compact{padding-top:0}.schedule-eyebrow{color:var(--accent-ink);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:600;display:inline-block}@media (max-width:760px){.landing-hero{grid-template-columns:1fr}.live-grid-teaser{max-width:340px}}@media (max-width:560px){.landing-page,.dashboard-page{padding:16px}}.aws-instructions{z-index:2;border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;max-height:calc(100svh - 78px);margin-top:16px;padding:24px;position:relative;overflow:auto}.instructions-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.instructions-header h3,.instructions-header p{margin:0}.instructions-header h3{font-size:1.1rem;font-weight:600}.instructions-header p{max-width:580px;color:var(--ink-soft);margin-top:7px;font-size:.82rem;line-height:1.45}.instructions-header button{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);transition:background-color .15s var(--ease), color .15s var(--ease);border-radius:7px;padding:8px 12px;font-size:.75rem}.instructions-header button:hover{background:var(--ink);color:var(--surface-raised);border-color:var(--ink)}.aws-instructions ol{color:var(--ink-soft);margin:24px 0 10px;padding-left:20px;font-size:.82rem;line-height:1.55}.aws-instructions pre{border:1px solid var(--line);background:var(--surface-sunk);max-width:100%;color:var(--ink);font-family:var(--font-data-stack);white-space:pre-wrap;word-break:break-word;border-radius:8px;padding:14px;font-size:.72rem;line-height:1.5;overflow-x:auto}.role-input{color:var(--ink-soft);gap:7px;margin:16px 0;font-size:.8rem;display:grid}.role-input input{border:1px solid var(--line-strong);width:100%;transition:border-color .15s var(--ease);border-radius:7px;padding:10px 12px}.role-input input:focus{border-color:var(--accent);outline:none}.aws-instructions>.submit-button{width:auto}.console{flex:auto;grid-template-columns:minmax(0,1fr) 348px;gap:14px;min-height:0;display:grid}.console-state{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:8px;padding:40px 0;display:flex}.console-state h2{margin:0;font-size:1.15rem;font-weight:600}.console-state p{max-width:46ch;color:var(--ink-soft);margin:0;font-size:.85rem}.console-stage{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;flex-direction:column;min-width:0;min-height:0;padding:12px 16px 10px;display:flex}.stage-head{justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:8px;display:flex}.stage-title h2{margin:0;font-size:.9rem;font-weight:600}.stage-title p{color:var(--ink-faint);margin:3px 0 0;font-size:.7rem}.region-switch{flex:none;gap:8px;display:flex}.region-switch button{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);transition:background-color .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);border-radius:7px;padding:7px 11px;font-size:.75rem}.region-switch button:hover,.region-switch button.active{border-color:var(--ink);background:var(--ink);color:var(--surface-raised)}.grid-hero-canvas{border-radius:8px;flex:auto;min-height:250px;position:relative;overflow:hidden}.grid-hero-svg{width:100%;height:100%;min-height:250px;display:block;overflow:visible}.chart-gridline{stroke:var(--line);stroke-width:1px}.chart-axis{stroke:var(--line-strong);stroke-width:1px}.chart-area{fill:var(--accent);opacity:.08}.chart-line{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px}.chart-y-label,.chart-x-label,.chart-band-label{fill:var(--ink-faint);font-family:inherit;font-size:11px}.source-legend{flex-wrap:wrap;flex:none;gap:4px 14px;padding-top:8px;display:flex}.source-legend span{color:var(--ink-soft);align-items:center;gap:5px;font-size:.64rem;display:inline-flex}.legend-swatch{border-radius:2px;width:9px;height:9px}.grid-hero-3d{background:#fffdf7}.grid-hero-3d canvas{touch-action:none;display:block}.hero3d-toolbar{z-index:2;pointer-events:none;position:absolute;top:8px;right:10px}.hero3d-hint{color:var(--ink-faint);font-size:.62rem}.hero3d-hour-label,.hero3d-depth-label{color:var(--ink-faint);font-family:var(--font-data-stack);white-space:nowrap;font-size:.58rem}.hero3d-axis-title{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:.58rem;font-weight:600}.hero3d-tooltip{border:1px solid var(--line);background:var(--surface-raised);white-space:nowrap;border-radius:7px;flex-direction:column;gap:2px;min-width:128px;padding:7px 9px;display:flex;box-shadow:0 6px 18px #0000001a}.hero3d-tooltip strong{font-size:.72rem}.hero3d-tooltip span{color:var(--ink-soft);font-family:var(--font-data-stack);font-size:.62rem}.hero3d-breakdown{color:var(--ink-faint);font-size:.56rem}.console-rail{flex-direction:column;gap:10px;min-height:0;display:flex}.rail-figures{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;flex-direction:column;flex:none;gap:2px;padding:14px 16px 12px;display:flex}.figure span{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;font-size:.64rem;display:block}.figure strong{font-family:var(--font-data-stack);letter-spacing:-.02em;align-items:baseline;gap:5px;font-size:1.85rem;font-weight:500;line-height:1.1;display:flex}.figure strong small{color:var(--ink-faint);letter-spacing:0;font-size:.66rem;font-weight:400}.figure.baseline strong{color:var(--ink-soft)}.figure.optimised strong{color:var(--accent-ink)}.figure-arrow{color:var(--ink-faint);margin:2px 0;font-size:.9rem;line-height:1}.figure-delta{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.figure-delta strong{color:var(--accent);font-family:var(--font-data-stack);font-size:.95rem;font-weight:600;display:block}.figure-delta span{color:var(--ink-faint);margin-top:2px;font-size:.66rem;display:block}.rail-control{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;flex-direction:column;flex:none;gap:12px;padding:14px 16px;display:flex}.optimise-button{border:1px solid var(--ink);background:var(--ink);color:#fff;transition:background .14s var(--ease), border-color .14s var(--ease), color .14s var(--ease);border-radius:8px;padding:10px 14px;font-size:.82rem;font-weight:600}.optimise-button:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.optimise-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.optimise-button.active:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.optimise-button:disabled{opacity:.45;cursor:not-allowed}.delay-slider{flex-direction:column;gap:7px;display:flex}.delay-label{color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:10px;font-size:.72rem;display:flex}.delay-label strong{color:var(--ink);font-family:var(--font-data-stack);font-size:.74rem;font-weight:600}.delay-slider input[type=range]{appearance:none;background:var(--surface-sunk);outline-offset:4px;border-radius:999px;width:100%;height:4px}.delay-slider input[type=range]::-webkit-slider-thumb{appearance:none;border:2px solid var(--surface-raised);background:var(--ink);cursor:pointer;border-radius:50%;width:15px;height:15px;box-shadow:0 1px 3px #00000040}.delay-slider input[type=range]::-moz-range-thumb{border:2px solid var(--surface-raised);background:var(--ink);cursor:pointer;border-radius:50%;width:15px;height:15px}.rail-workloads{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;flex-direction:column;flex:auto;min-height:0;padding:12px 16px 8px;display:flex}.workloads-head{flex:none;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:8px;display:flex}.workloads-head h3{margin:0;font-size:.78rem;font-weight:600}.workloads-head span{color:var(--ink-faint);font-size:.64rem}.workload-list{flex-direction:column;flex:auto;gap:2px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.workload{border-top:1px solid var(--line);align-items:flex-start;gap:9px;padding:7px 4px;display:flex}.workload:first-child{border-top:0}.workload-body{flex:auto;min-width:0}.workload-line{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.workload-line strong{text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:600;overflow:hidden}.workload-saving{color:var(--ink-faint);font-family:var(--font-data-stack);flex:none;font-size:.68rem}.workload-body small{color:var(--ink-faint);margin-top:1px;font-size:.6rem;display:block}.workload-delay{margin-top:6px}.workload-delay .delay-label{font-size:.66rem}.workloads-demo{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin-top:auto;padding-top:9px;display:flex}.workloads-demo span{color:var(--ink-faint);margin-right:auto;font-size:.6rem}.workloads-demo button{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);transition:background-color .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);border-radius:7px;padding:7px 11px;font-size:.75rem}.workloads-demo button:hover{border-color:var(--ink);background:var(--ink);color:var(--surface-raised)}.empty-actions{gap:10px;margin-top:4px;display:flex}.ghost-button{border:1px solid var(--line-strong);color:var(--ink-soft);transition:color .14s var(--ease), border-color .14s var(--ease);background:0 0;border-radius:8px;padding:9px 16px;font-size:.82rem;font-weight:500}.ghost-button:hover{color:var(--ink);border-color:var(--ink-soft)}.aws-status.demo{color:#8a6420;background:#f5efe0;border-color:#d6c393}@media (max-width:1080px){.console{grid-template-rows:minmax(240px,1fr) auto;grid-template-columns:minmax(0,1fr);overflow-y:auto}.console-rail{flex-flow:wrap}.rail-figures,.rail-control,.rail-workloads{flex:260px}}@media (max-width:700px){.dashboard-page{height:auto;min-height:100svh;padding:14px 16px;overflow:visible}.dashboard-content,.workspace-shell{height:auto}.top-nav{flex-direction:column;align-items:flex-start;gap:10px}.top-nav-actions{justify-content:flex-start;width:100%}.workspace-main{overflow:visible}.console{height:auto;display:block;overflow:visible}.console-stage{min-height:400px}.grid-hero-canvas{min-height:330px}.console-rail{margin-top:14px}.workload-list{max-height:none;overflow:visible}}.landing-links{flex-wrap:wrap;gap:8px 22px;margin-top:18px;display:flex}
