.app{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem;overflow:hidden;overflow-x:hidden;max-width:100vw;box-sizing:border-box;background:linear-gradient(to bottom,#fdebd9,#f5d4b8 40%,#e8a889)}.app--analysing{padding:0}.app__content{position:relative;z-index:1;flex:1;width:100%;max-width:820px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.view-phase{opacity:0;transition:opacity .4s ease;will-change:opacity}.view-phase--visible{opacity:1}.backdrop{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:0;transition:opacity 1s ease}.backdrop__sun-halo{fill:#f5c4b3;opacity:.35}.backdrop__sun-mid{fill:#f2ae97;opacity:.42}.backdrop__sun-body{fill:#f0997b;opacity:.5}.backdrop__ground{stroke:#4a1b0c;stroke-width:.5;opacity:.25}.backdrop__stobie{opacity:.22}.backdrop__stobie-rail{fill:#4a1b0c}.backdrop__stobie-panel{fill:#c9a087}.backdrop__stobie-crossarm{fill:#4a1b0c}.backdrop__stobie-insulator{fill:#4a1b0c;opacity:.6}.backdrop__wire{stroke:#4a1b0c;stroke-width:1;opacity:.25}.app__header{position:relative;z-index:1;text-align:center;padding-top:1rem;flex-shrink:0}.app__brand{margin:0;font-size:clamp(2.75rem,7vw,4.25rem);font-weight:600;letter-spacing:-.02em;color:#4a1b0c;line-height:1}.stage{width:100%;margin-top:30vh;display:flex;flex-direction:column;gap:1.25rem;align-items:center}.stage--centered{margin-top:0;text-align:center;gap:1.5rem}.stage__tagline{margin:-60px 0 0;font-size:clamp(1rem,2vw,1.25rem);font-weight:600;color:#4a1b0c;text-align:center}.stage__privacy-note{margin:0;font-size:.875rem;color:#712b13;text-align:center;max-width:480px;line-height:1.5}.stage__privacy-note-title{display:block;width:100%;margin-bottom:.25rem;font-weight:600}.stage__status{margin:0;font-size:1rem;color:#4a1b0c}.stage__error{margin:0;font-size:1rem;color:#4a1b0c;max-width:480px;line-height:1.5}.dropzone{width:100%;max-width:560px;background:#ffffff73;border:2px dashed rgba(74,27,12,.4);border-radius:12px;padding:2.75rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease;color:#4a1b0c}.dropzone:hover{background:#ffffffa6;border-color:#4a1b0c99}.dropzone:focus-visible{outline:2px solid #4A1B0C;outline-offset:4px}.dropzone--active{background:#fffc;border-color:#4a1b0c;transform:scale(1.01)}.dropzone__icon{width:56px;height:56px;color:#4a1b0c;opacity:.75}.dropzone__primary{margin:.5rem 0 0;font-size:1.125rem;font-weight:500}.dropzone__secondary{margin:0;font-size:.875rem;color:#712b13}.results{width:100%;max-width:680px}.results__heading{margin:0 0 .25rem;font-size:1.5rem;font-weight:500;color:#4a1b0c}.results__subheading{margin:0 0 1.5rem;font-size:.875rem;color:#712b13}.results__subheading em{font-style:italic;font-weight:500}.results__overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;background:#ffffff8c;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.results__stat-label{margin:0;font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:#993c1d;font-weight:500}.results__stat-value{margin:.25rem 0 0;font-size:1rem;color:#4a1b0c;line-height:1.35}.results__stat-value--mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9375rem}.results__section-label{margin:.5rem 0 .625rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#993c1d;font-weight:500}.results__channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin-bottom:1.25rem}.channel-card{background:#ffffffa6;border-radius:10px;padding:1rem 1.125rem;color:#4a1b0c}.channel-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.channel-card__label{margin:0;font-size:1rem;font-weight:500}.channel-card__description{margin:.125rem 0 0;font-size:.8125rem;color:#712b13;line-height:1.4}.channel-card__icon{width:24px;height:24px;flex-shrink:0;color:#4a1b0c;opacity:.75}.results__warnings{background:#ffffff59;border-radius:10px;padding:.625rem 1rem;margin-bottom:1.5rem;interpolate-size:allow-keywords}.results__warnings::details-content{block-size:0;opacity:0;overflow:hidden;transition:content-visibility .4s allow-discrete,block-size .4s ease,opacity .4s ease}.results__warnings[open]::details-content{block-size:auto;opacity:1}.results__warnings-summary{cursor:pointer;font-size:.875rem;color:#4a1b0c;list-style:none}.results__warnings-summary::-webkit-details-marker{display:none}.results__warnings-summary span:first-child{font-weight:500}.results__warnings-chevron{display:inline-block;margin-right:.375rem;font-size:.875rem;color:#4a1b0c;transition:transform .2s ease}.results__warnings[open] .results__warnings-chevron{transform:rotate(90deg)}.results__warnings-list{margin:.625rem 0 .125rem 1.25rem;padding:0;font-size:.8125rem;color:#712b13;line-height:1.6;white-space:pre-line}.results__warnings-list li::marker{color:#993c1d}.results__actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem}.button{background:#4a1b0c;border:1.5px solid #4A1B0C;color:#fdebd9;padding:.625rem 1.25rem;border-radius:6px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .12s ease,opacity .12s ease;font-family:inherit}.button:hover:not(:disabled){background:#3a1408}.button:disabled{opacity:.35;cursor:not-allowed}.button--ghost{background:transparent;color:#4a1b0c}.button--ghost:hover:not(:disabled){background:#4a1b0c14}.button:focus-visible{outline:2px solid #4A1B0C;outline-offset:2px}.app--analysing .backdrop{opacity:.1}.app--analysing .app__content{max-width:none;justify-content:flex-start}.analysis{position:relative;z-index:1;width:100%;height:100vh;max-height:100vh;display:flex;flex-direction:column;padding:1rem 1.5rem 1.25rem;box-sizing:border-box;overflow:hidden}.analysis__header{flex-shrink:0;margin-bottom:1rem}.analysis__slide{flex:1;display:flex;align-items:center;justify-content:center;padding:0;min-height:0}.analysis__footer{flex-shrink:0}.date-range-slider{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:1080px;margin:0 auto}.date-range-slider__summary{margin:0;font-size:1rem;color:#712b13;letter-spacing:.01em}.date-range-slider__summary strong{font-weight:600;color:#4a1b0c}.date-range-slider__summary-divider{opacity:.5}.date-range-slider__row{display:flex;align-items:center;gap:1.25rem;width:100%}.date-range-slider__label{font-size:.95rem;font-weight:600;color:#4a1b0c;white-space:nowrap;min-width:6.5rem;background:transparent;border:none;padding:.125rem .25rem;margin:0;font-family:inherit;line-height:inherit;cursor:pointer;border-radius:4px;transition:background-color .12s ease,text-decoration-color .12s ease;text-decoration:underline dotted transparent;text-underline-offset:.2em}.date-range-slider__label:hover,.date-range-slider__label:focus-visible{background-color:#4a1b0c0f;text-decoration-color:#4a1b0c73;outline:none}.date-range-slider__label--start{text-align:right}.date-range-slider__label--end{text-align:left}.date-range-slider__track-container{flex:1;position:relative;height:28px;display:flex;align-items:center}.date-range-slider__track{position:absolute;left:0;right:0;height:3px;background:#4a1b0c33;border-radius:2px}.date-range-slider__track-fill{position:absolute;height:3px;background:#4a1b0c;border-radius:2px}.date-range-slider__input{position:absolute;left:0;right:0;width:100%;height:28px;appearance:none;background:transparent;pointer-events:none;margin:0}.date-range-slider__input::-webkit-slider-runnable-track{background:transparent;height:3px}.date-range-slider__input::-moz-range-track{background:transparent;height:3px}.date-range-slider__input::-webkit-slider-thumb{appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fdebd9;border:2px solid #4A1B0C;cursor:grab;margin-top:-8px;position:relative;z-index:2}.date-range-slider__input::-webkit-slider-thumb:active{cursor:grabbing}.date-range-slider__input::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fdebd9;border:2px solid #4A1B0C;cursor:grab}.date-range-slider__input:focus-visible::-webkit-slider-thumb{outline:2px solid #4A1B0C;outline-offset:2px}.analysis-nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%}.analysis-nav__pills{display:flex;gap:.5rem;flex:1;justify-content:center}.analysis-nav__pill{width:32px;height:8px;border:none;background:#4a1b0c40;border-radius:4px;cursor:pointer;padding:0;transition:background .15s ease;font-family:inherit}.analysis-nav__pill:hover{background:#4a1b0c73}.analysis-nav__pill--active,.analysis-nav__pill--active:hover{background:#4a1b0c}.analysis-nav__pill:focus-visible{outline:2px solid #4A1B0C;outline-offset:2px}.analysis-slide-placeholder{text-align:center;max-width:560px;padding:2rem;color:#4a1b0c}.analysis-slide-placeholder__eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.08em;margin:0 0 .5rem;color:#993c1d}.analysis-slide-placeholder__title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600;margin:0 0 1rem}.analysis-slide-placeholder__body{font-size:1rem;line-height:1.6;margin:0 0 1.5rem;opacity:.85}.analysis-slide-placeholder__range{font-size:.875rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;opacity:.6;margin:0}.analysis-slide{width:100%;max-width:1280px;padding:0 1rem;color:#4a1b0c;box-sizing:border-box;display:flex;flex-direction:column}.analysis-slide__header{flex-shrink:0;margin-bottom:.75rem}.analysis-slide__eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .25rem;color:#993c1d}.analysis-slide__title{font-size:clamp(1.375rem,2.5vw,1.75rem);font-weight:600;margin:0 0 .375rem;line-height:1.15}.analysis-slide__blurb{font-size:.9375rem;line-height:1.5;margin:0;max-width:640px;opacity:.85}.analysis-slide__empty{font-size:.9375rem;opacity:.7;margin:1rem 0 0}.analysis-slide__chart{width:100%;aspect-ratio:16 / 9;max-height:calc(100vh - 350px);margin:0;background:#ffffff8c;border-radius:10px;padding:1rem 1.25rem;box-sizing:border-box;display:flex;flex-direction:column}.daily-profile-chart{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.daily-profile-chart__header{flex-shrink:0;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.daily-profile-chart__label{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#993c1d}.daily-profile-chart__total{font-size:1rem;color:#4a1b0c}.daily-profile-chart__total strong{font-size:1.375rem;font-weight:600;margin-right:.125rem}.daily-profile-chart__period{font-size:1rem;color:#4a1b0c}.daily-profile-chart__period strong{font-size:1.375rem;font-weight:600;margin-right:.125rem}.daily-profile-chart__canvas{flex:1;min-height:0;width:100%}.daily-profile-chart__tooltip{background:#fdebd9f2;border:1px solid rgba(74,27,12,.2);border-radius:6px;padding:.5rem .75rem;font-size:.875rem;color:#4a1b0c;box-shadow:0 2px 8px #4a1b0c1f}.daily-profile-chart__tooltip-time{font-size:.75rem;font-weight:500;color:#993c1d;margin-bottom:.125rem}.daily-profile-chart__tooltip-value{font-variant-numeric:tabular-nums}.daily-profile-chart__tooltip-value strong{font-weight:600}.daily-profile-chart__tooltip-secondary{font-size:.6875rem;color:#993c1d;margin-top:.125rem;font-variant-numeric:tabular-nums}.postcode-entry{width:100%;max-width:560px;background:#ffffff73;border-radius:12px;padding:2.5rem 2rem;text-align:center;color:#4a1b0c}.postcode-entry__heading{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:600;margin:0 0 .5rem;line-height:1.2}.postcode-entry__sub{font-size:1rem;opacity:.75;margin:0 0 1.75rem}.postcode-entry__input{width:160px;font-size:2rem;letter-spacing:.25em;text-align:center;font-weight:600;padding:.75rem .5rem;border:2px solid rgba(74,27,12,.2);border-radius:12px;background:#ffffffa6;color:#4a1b0c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;transition:border-color .12s ease,background .12s ease}.postcode-entry__input::placeholder{color:#4a1b0c4d;letter-spacing:.25em}.postcode-entry__input:focus{outline:none;border-color:#4a1b0c;background:#fffc}.postcode-entry__feedback{min-height:1.5rem;margin:.875rem 0 0;font-size:.9375rem;line-height:1.4}.postcode-entry__feedback--success{color:#4a1b0c;opacity:.9}.postcode-entry__feedback--warning,.postcode-entry__feedback--error{color:#993c1d}.postcode-entry__why{margin:1.75rem auto 1.5rem;max-width:440px;padding:1rem 1.25rem;background:#ffffff59;border-radius:10px;text-align:left;font-size:.875rem;line-height:1.55}.postcode-entry__why-heading{font-weight:600;font-size:.8125rem;letter-spacing:.04em;margin:0 0 .5rem;opacity:.85}.postcode-entry__why-body{margin:0;opacity:.8}.postcode-entry__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}@keyframes text-fade-swap-in{0%{opacity:0}to{opacity:1}}.text-fade-swap{animation:text-fade-swap-in .6s ease}.daily-profile-chart svg path{transition:d 60ms linear}.version-footer{position:fixed;right:1rem;bottom:.75rem;font-size:.75rem;font-weight:500;color:#4a1b0c;opacity:.45;background:transparent;border:none;padding:.25rem .5rem;cursor:pointer;font-family:inherit;letter-spacing:.01em;transition:opacity .12s ease,text-decoration-color .12s ease;z-index:200}.version-footer:hover,.version-footer:focus-visible{opacity:.9;text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:.2em;outline:none}.version-footer--open{opacity:.8}.changelog-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:2rem;background:transparent}.changelog-panel{width:min(640px,45vw);max-width:100%;height:80vh;max-height:900px;min-width:320px;background:#ffffff73;border-radius:12px;color:#4a1b0c;display:flex;flex-direction:column;overflow:hidden}.changelog-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(74,27,12,.1);flex:0 0 auto}.changelog-panel__title{margin:0;font-size:1.125rem;font-weight:600;letter-spacing:-.005em}.changelog-panel__close{background:transparent;border:none;font-size:1.5rem;line-height:1;color:#4a1b0c;opacity:.5;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:opacity .12s ease,background .12s ease;font-family:inherit;font-weight:400}.changelog-panel__close:hover,.changelog-panel__close:focus-visible{opacity:.9;background:#4a1b0c14;outline:none}.changelog-panel__body{flex:1 1 auto;overflow-y:auto;padding:1rem 1.5rem 1.5rem;scrollbar-width:thin;scrollbar-color:rgba(74,27,12,.25) transparent}.changelog-panel__body::-webkit-scrollbar{width:8px}.changelog-panel__body::-webkit-scrollbar-track{background:transparent}.changelog-panel__body::-webkit-scrollbar-thumb{background:#4a1b0c40;border-radius:4px}.changelog-panel__list{list-style:none;padding:0;margin:0}.changelog-panel__entry{padding:1rem 0;border-bottom:1px solid rgba(74,27,12,.08)}.changelog-panel__entry:last-child{border-bottom:none;padding-bottom:0}.changelog-panel__entry:first-child{padding-top:.25rem}.changelog-panel__date{margin:0 0 .625rem;font-size:.875rem;font-weight:600;letter-spacing:.01em;opacity:.75}.changelog-panel__changes{list-style:none;padding:0;margin:0}.changelog-panel__change{position:relative;padding-left:1.25rem;margin:0 0 .5rem;line-height:1.5;font-size:.9375rem}.changelog-panel__change:last-child{margin-bottom:0}.changelog-panel__change:before{content:"•";position:absolute;left:.25rem;top:0;font-weight:600;opacity:.5}.changelog-panel__empty{margin:0;padding:1rem 0;text-align:center;opacity:.7;font-size:.9375rem}@keyframes changelog-swap-in{0%{opacity:0}to{opacity:1}}.changelog-swap{animation:changelog-swap-in .3s ease;animation-fill-mode:backwards}.date-range-slider__label-wrapper{position:relative;display:inline-flex;align-items:center}.date-picker{position:absolute;top:calc(100% + .5rem);z-index:50;width:280px;padding:.75rem;background:#fffffff2;border:1px solid rgba(74,27,12,.15);border-radius:12px;box-shadow:0 6px 24px #4a1b0c26;color:#4a1b0c;user-select:none;animation:date-picker-fade-in .15s ease}@keyframes date-picker-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-picker--left{left:0}.date-picker--right{right:0}.date-picker__header{display:flex;align-items:center;justify-content:space-between;gap:.25rem;margin-bottom:.5rem}.date-picker__nav-button{background:transparent;border:none;color:#4a1b0c;font-size:1rem;line-height:1;width:1.75rem;height:1.75rem;border-radius:4px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;transition:background-color .12s ease,opacity .12s ease}.date-picker__nav-button:hover:not(:disabled),.date-picker__nav-button:focus-visible:not(:disabled){background-color:#4a1b0c14;outline:none}.date-picker__nav-button:disabled{opacity:.25;cursor:default}.date-picker__title{flex:1;text-align:center;font-size:.9375rem;font-weight:600;min-width:0}.date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.25rem}.date-picker__weekday{text-align:center;font-size:.75rem;font-weight:600;color:#4a1b0c;opacity:.6;padding:.25rem 0}.date-picker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-picker__day{background:transparent;border:none;color:#4a1b0c;font-family:inherit;font-size:.875rem;aspect-ratio:1 / 1;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .1s ease,color .1s ease}.date-picker__day:hover:not(:disabled),.date-picker__day:focus-visible:not(:disabled){background-color:#4a1b0c14;outline:none}.date-picker__day--other-month{opacity:.35}.date-picker__day--out-of-range{opacity:.15;cursor:default}.date-picker__day--selected{background-color:#4a1b0c;color:#fdebd9;font-weight:600}.date-picker__day--selected:hover:not(:disabled),.date-picker__day--selected:focus-visible:not(:disabled){background-color:#4a1b0c;color:#fdebd9}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#4a1b0c}
