:root{--cl-ink:#12151D;--cl-paper:#FCFBF8;--cl-spark:#F6A821;--cl-ember:#C9780A;--cl-green:#1C9463;--cl-slate:#667085}:root{--primary:#007bff;--primary-hover:#0056b3;--secondary:#6c757d;--success:#28a745;--warning:#ffc107;--danger:#dc3545;--info:#17a2b8;--bg-primary:#ffffff;--bg-secondary:#f8f9fa;--bg-tertiary:#e9ecef;--text-primary:#212529;--text-secondary:#6c757d;--text-muted:#999999;--border-color:#dee2e6;--border-light:#e9ecef;--card-bg:#ffffff;--card-border:1px solid #dee2e6;--card-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:1rem;--transition-fast:150ms ease-in-out;--transition-base:250ms ease-in-out;--transition-slow:350ms ease-in-out;--rate-peak-bg:#ff9800;--rate-peak-text:#ffffff;--rate-shoulder-bg:#2196f3;--rate-shoulder-text:#ffffff;--rate-offpeak-bg:#4caf50;--rate-offpeak-text:#ffffff;--rate-solar-sponge-bg:#ffb300;--rate-solar-sponge-text:#ffffff}body.dark-mode{--primary:#0d6efd;--primary-hover:#0a58ca;--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#3d3d3d;--text-primary:#e0e0e0;--text-secondary:#a0a0a0;--text-muted:#707070;--border-color:#404040;--border-light:#333333;--card-bg:#242424;--card-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.3);--rate-peak-bg:#ff6f00;--rate-peak-text:#ffffff;--rate-shoulder-bg:#1976d2;--rate-shoulder-text:#ffffff;--rate-offpeak-bg:#388e3c;--rate-offpeak-text:#ffffff;--rate-solar-sponge-bg:#ff9800;--rate-solar-sponge-text:#ffffff}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color var(--transition-base),color var(--transition-base);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--text-primary);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-hover)}button,input[type="button"],input[type="submit"]{font-family:inherit;font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background-color:var(--primary);color:white}button:hover,input[type="button"]:hover,input[type="submit"]:hover{background-color:var(--primary-hover);transform:translateY(-1px)}button:active{transform:translateY(0)}button.btn-secondary{background-color:var(--secondary)}button.btn-secondary:hover{background-color:#5a6268}input[type="text"],input[type="number"],input[type="email"],select,textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type="text"]:focus,input[type="number"]:focus,input[type="email"]:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,123,255,0.25)}a:focus-visible,button:focus-visible,summary:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--cl-ember);outline-offset:2px}label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group{margin-bottom:var(--spacing-lg)}.card{background-color:var(--card-bg);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:0 0.25rem 0.5rem rgba(0,0,0,0.15)}.card-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.card-body{padding:0}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.row.full{grid-template-columns:1fr}.ss-toggle{display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap;color:var(--text-primary)}.ss-toggle input{cursor:pointer}.plan-table-wrap{overflow-x:auto}.plan-table{width:100%;border-collapse:collapse;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:0.82rem;overflow:hidden}.plan-table .pt-sub{display:block;font-size:0.72rem;color:var(--text-muted);font-weight:400}.plan-table thead th{text-align:left;white-space:nowrap;padding:var(--spacing-sm) var(--spacing-md);border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:0.74rem;text-transform:uppercase;letter-spacing:0.03em;position:sticky;top:0;background-color:var(--card-bg)}.plan-table th.pt-sortable{cursor:pointer;user-select:none}.plan-table th.pt-sortable:hover{color:var(--text-primary)}.plan-table th.sorted{color:var(--primary)}.plan-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;white-space:nowrap}.plan-table tbody tr:last-child td{border-bottom:none}.plan-table tbody tr:hover{background-color:var(--bg-secondary)}.plan-table .pt-num{text-align:right;font-variant-numeric:tabular-nums}.plan-table .pt-c{text-align:center}.plan-table .pt-cost{font-weight:700}.plan-table .pt-retailer{display:flex;align-items:center;gap:6px}.plan-table .pt-retailer img{width:24px;height:24px;object-fit:contain;flex:none;background:#fff;border:1px solid var(--border-color);border-radius:4px;padding:1px}.plan-table .pt-id{font-family:ui-monospace,Consolas,monospace;font-size:0.7rem;color:var(--text-muted)}.plan-table .pt-name{background:none;border:none;padding:0;cursor:pointer;text-align:left;color:var(--primary);font-weight:600;font-size:0.9rem}.plan-table .pt-name:hover{text-decoration:underline}.plan-table .pt-fav{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--text-muted)}.plan-table .pt-fav.on{color:#e0245e}.site-banner{background:linear-gradient(135deg,var(--cl-ink) 0%,#1E2430 100%);color:var(--cl-paper);text-align:center;padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md)}.banner-inner{max-width:1200px;margin:0 auto}.banner-brand{font-size:var(--font-size-2xl);font-weight:700;letter-spacing:0.02em;margin-bottom:var(--spacing-xs)}.banner-logo{display:block;height:38px;width:auto;max-width:min(100%,260px);margin:0 auto var(--spacing-xs)}a.banner-brand-link{display:block;text-decoration:none}.banner-tagline{max-width:46rem;margin:0 auto;font-size:var(--font-size-lg);line-height:1.4;color:var(--cl-paper)}.banner-tagline strong{white-space:nowrap}.banner-note{max-width:46rem;margin:var(--spacing-xs) auto 0;font-size:var(--font-size-xs);line-height:1.35;color:var(--cl-paper);opacity:0.9}.banner-explore{display:flex;justify-content:center;margin-top:var(--spacing-md)}.banner-explore-btn{display:inline-flex;align-items:center;gap:0.4em;background:var(--cl-paper);color:var(--cl-ink);border:1px solid var(--cl-paper);border-radius:999px;padding:6px 18px;font-size:var(--font-size-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.banner-explore-btn:hover{background:rgba(252,251,248,0.85)}.banner-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.banner-disclosure-btn{background:rgba(252,251,248,0.12);color:var(--cl-paper);border:1px solid rgba(252,251,248,0.55);border-radius:999px;padding:2px 14px;font-size:var(--font-size-xs);font-family:inherit;line-height:1.6;text-decoration:none;cursor:pointer}.banner-disclosure-btn:hover{background:rgba(252,251,248,0.25);border-color:var(--cl-spark)}.site-footer{max-width:1200px;margin:var(--spacing-xl) auto 0;padding:var(--spacing-md);border-top:1px solid var(--border-color);text-align:center}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.site-footer a{font-size:var(--font-size-sm);color:var(--text-secondary)}.site-footer a:hover{color:var(--cl-ember)}.site-footer p{max-width:46rem;margin:var(--spacing-sm) auto 0;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.4}.dialog-permalink{margin-top:var(--spacing-md);font-size:var(--font-size-sm)}.disclosure-dialog{max-width:34rem;width:calc(100vw - 2 * var(--spacing-lg));max-height:85vh;margin:auto;inset:0;overflow-y:auto;border:var(--card-border);border-radius:var(--radius-lg);box-shadow:0 10px 40px rgba(0,0,0,0.35);padding:var(--spacing-lg);background-color:var(--card-bg);color:var(--text-primary)}.disclosure-dialog::backdrop{background:rgba(0,0,0,0.5)}.disclosure-dialog ul{margin:0 0 var(--spacing-xs);padding-left:1.2rem}.disclosure-dialog li{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:2px}.changelog-list{list-style:none;padding-left:0}.changelog-list li{margin-bottom:var(--spacing-sm)}.changelog-date{font-weight:600;color:var(--text-primary)}.disclosure-dialog h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.disclosure-dialog h3{font-size:var(--font-size-sm);margin:var(--spacing-md) 0 2px;color:var(--text-primary)}.disclosure-dialog p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--spacing-xs)}.disclosure-close{margin-top:var(--spacing-md);background-color:var(--primary);color:#ffffff;border:none;border-radius:var(--radius-sm);padding:6px 18px;font-size:var(--font-size-sm);cursor:pointer}.disclosure-close:hover{background-color:var(--primary-hover)}.search-header{background-color:var(--card-bg);border-bottom:var(--card-border);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--card-shadow);position:relative}.search-header h1{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}.search-form{display:flex;flex-wrap:wrap;gap:var(--spacing-md) var(--spacing-lg);align-items:flex-end}#postcodeInput,.switch,.search-form .btn-primary{height:2.5rem;box-sizing:border-box}#postcodeInput{width:5rem;text-align:center}#postcodeInput.invalid{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,0.18)}.postcode-required{display:block;color:#dc3545;font-size:var(--font-size-xs);margin-top:3px;max-width:12rem}.result-status{align-self:flex-end;height:2.5rem;display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-weight:600;font-size:var(--font-size-sm);white-space:nowrap}.result-status .rs-count{white-space:nowrap}.result-status .rs-postcode{color:var(--text-muted);font-weight:400}.guide-link{position:absolute;top:var(--spacing-md);left:var(--spacing-md);z-index:10;background-color:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:3px 9px;font-size:var(--font-size-xs);cursor:pointer}.guide-link:hover{color:var(--text-primary)}.switch{display:inline-flex;align-items:center;cursor:pointer;margin:0}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;display:flex;width:74px;height:26px;flex-shrink:0;background-color:var(--bg-tertiary);border-radius:999px;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.02em}.switch-thumb{position:absolute;top:3px;left:3px;z-index:0;width:calc(50% - 3px);height:20px;background-color:#fff;border-radius:999px;box-shadow:0 1px 2px rgba(0,0,0,0.25);transition:transform var(--transition-base),background-color var(--transition-base)}.switch-txt{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;transition:color var(--transition-base)}.switch-txt.off{color:var(--text-primary)}.switch-txt.on{color:var(--text-secondary)}.switch input:checked + .switch-track .switch-thumb{transform:translateX(calc(100% + 3px));background-color:var(--cl-spark)}.switch input:checked + .switch-track .switch-txt.off{color:var(--text-secondary)}.switch input:checked + .switch-track .switch-txt.on{color:var(--cl-ink);font-weight:700}.switch input:focus-visible + .switch-track{outline:2px solid var(--cl-ember);outline-offset:2px}body.comparison-active{padding-bottom:5rem}.distributor-notice{background-color:var(--card-bg);border:var(--card-border);border-left:4px solid var(--rate-shoulder-bg,#2196f3);border-radius:var(--radius-md);box-shadow:var(--card-shadow);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg)}.distributor-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.distributor-row label{margin:0;font-weight:600;color:var(--text-primary)}.distributor-row select{width:auto;min-width:16rem}.distributor-warning{margin:var(--spacing-sm) 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}#plans-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media (max-width:768px){#plans-container{grid-template-columns:1fr}}plan-card{display:block}.text-center{text-align:center}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.px-2{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.py-2{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.border-top{border-top:1px solid var(--border-color);padding-top:var(--spacing-md);margin-top:var(--spacing-md)}.text-muted{color:var(--text-muted);font-size:var(--font-size-sm)}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500}.badge.success{background-color:var(--success);color:white}.badge.warning{background-color:var(--warning);color:#000}.badge.danger{background-color:var(--danger);color:white}.loading{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.loading::after{content:'';display:inline-block;width:20px;height:20px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.success-message{background-color:#efe;border:1px solid #cfc;color:#3c3;padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.dark-mode-toggle{position:absolute;top:var(--spacing-md);right:var(--spacing-md);z-index:10;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:50%;border:none;background-color:var(--primary);color:white;font-size:var(--font-size-lg);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.2);transition:background-color var(--transition-base),transform var(--transition-base)}.dark-mode-toggle:hover{transform:scale(1.1);box-shadow:0 4px 16px rgba(0,0,0,0.3)}.dark-mode-toggle:active{transform:scale(0.95)}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-lg)}thead{background-color:var(--bg-secondary);border-bottom:2px solid var(--border-color)}th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary)}td{padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}tbody tr:hover{background-color:var(--bg-secondary)}:root{--eq-bar-fill:linear-gradient(180deg,#339af0 0%,#1971c2 100%);--eq-track-bg:#f1f3f5;--eq-override-dot:#ffb300;--solar-bar-fill:linear-gradient(180deg,#ffd43b 0%,#f59f00 100%)}body.dark-mode{--eq-bar-fill:linear-gradient(180deg,#4dabf7 0%,#1c7ed6 100%);--eq-track-bg:#1f1f1f;--eq-override-dot:#ff9800;--solar-bar-fill:linear-gradient(180deg,#fab005 0%,#e8590c 100%)}.results-toolbar{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.toolbar-main{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.sort-control{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);background-color:var(--card-bg);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);padding:var(--spacing-md) var(--spacing-lg);white-space:nowrap}.sort-row{display:flex;align-items:center;gap:var(--spacing-sm)}.sort-control label{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.sort-control .fav-only{display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}.sort-control select{padding:2px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer}@media (max-width:768px){:root{--font-size-base:14px;--spacing-md:0.75rem;--spacing-lg:1rem}.container{padding:0 var(--spacing-md)}.site-banner{padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm)}.banner-brand{font-size:var(--font-size-xl)}.banner-tagline{font-size:var(--font-size-sm)}.results-toolbar{flex-direction:column;align-items:stretch}}@media (max-width:560px){.result-status .rs-postcode{display:none}}@media (max-width:360px){.banner-actions{gap:var(--spacing-xs)}.banner-disclosure-btn{padding:2px 9px}}@media print{body.comparison-open>*:not(comparison-modal){display:none!important}}