:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#e0e3e8;--color-text:#1f2530;--color-text-muted:#6b7280;--color-primary:#24406b;--color-primary-hover:#1a2f52;--color-mine:#0f766e;--color-mine-bg:#e6f4f2;--color-open:#b45309;--color-open-bg:#fdf1e0;--color-error:#b91c1c;--color-error-bg:#fde2e1;--tier-silver:#5b6472;--tier-silver-bg:#eef0f3;--tier-gold:#8a6116;--tier-gold-bg:#fbf1da;--tier-platinum:#43356b;--tier-platinum-bg:#ece9f6;--radius:8px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-shell{max-width:1040px;margin:0 auto;padding:24px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.app-header h1{margin:0;font-size:1.5rem}.app-header__identity{flex-direction:column;gap:4px;display:flex}.app-header nav{flex-wrap:wrap;gap:8px;display:flex}.app-header nav button{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius);cursor:pointer;padding:8px 16px;font-size:.9rem}.app-header nav button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.boot-state{color:var(--color-text-muted)}.job-loading-form,.supplier-dashboard,.auth-page,.account-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px}.form-row{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.form-row--split{flex-flow:wrap;gap:16px}.form-row--split>div{flex-direction:column;flex:200px;gap:4px;display:flex}.form-row--checkbox label{color:var(--color-text);align-items:center;gap:8px;font-weight:500;display:flex}.form-row--checkbox input{width:auto}label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}input,select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:8px 10px;font-size:.95rem}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button[type=submit],.bid-controls button,.supplier-lookup button,.plan-card__cta,.upgrade-callout button,.bid-list__actions button{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:8px 18px;font-size:.9rem}button:disabled{opacity:.6;cursor:not-allowed}.button-quiet{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;padding:6px 14px;font-size:.85rem}.link-button{color:var(--color-primary);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.field-hint{color:var(--color-text-muted);font-size:.75rem;font-weight:400}.field-hint--warn{color:var(--color-error);font-weight:600}.form-message--success{color:var(--color-mine)}.form-message--error{color:var(--color-error)}.form-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.form-head h2{margin:0 0 8px}.section-heading{margin:24px 0 12px;font-size:1rem}.auth-page--narrow{max-width:460px;margin:0 auto}.auth-intro h2{margin:0 0 4px}.auth-intro p{color:var(--color-text-muted);margin:0 0 20px;font-size:.9rem}.auth-form{margin-top:8px}.auth-switch{color:var(--color-text-muted);margin-top:16px;font-size:.85rem}.account-type-toggle{flex-wrap:wrap;gap:12px;display:flex}.account-type-toggle button{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;flex-direction:column;flex:200px;align-items:flex-start;gap:2px;padding:14px 16px;font-size:.95rem;font-weight:600;display:flex}.account-type-toggle button small{color:var(--color-text-muted);font-weight:400}.account-type-toggle button.active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.tier-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}.tier-badge--lg{padding:6px 14px;font-size:.85rem}.tier-badge--silver{background:var(--tier-silver-bg);color:var(--tier-silver)}.tier-badge--gold{background:var(--tier-gold-bg);color:var(--tier-gold)}.tier-badge--platinum{background:var(--tier-platinum-bg);color:var(--tier-platinum)}.plan-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.plan-card{border:1px solid var(--color-border);border-top:3px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;gap:8px;padding:18px;display:flex}.plan-card--silver{border-top-color:var(--tier-silver)}.plan-card--gold{border-top-color:var(--tier-gold)}.plan-card--platinum{border-top-color:var(--tier-platinum)}.plan-card--selected{box-shadow:0 0 0 2px var(--color-primary)}.plan-card--current{background:var(--color-bg)}.plan-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.plan-card__current{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.plan-card__price{margin:0;font-size:1.5rem;font-weight:700}.plan-card__tagline{color:var(--color-text-muted);margin:0;font-size:.85rem}.plan-card__limits{margin:0;font-size:.85rem;font-weight:600}.plan-card__features{color:var(--color-text-muted);flex-direction:column;gap:4px;margin:4px 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.plan-card__features li:before{content:"· "}.plan-card__cta{margin-top:auto}.plan-selected-note{color:var(--color-text-muted);margin-top:12px;font-size:.85rem}.plan-rule-strip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;padding:8px 12px;font-size:.82rem;display:flex}.upgrade-callout{background:var(--color-open-bg);border:1px solid var(--color-open);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;font-size:.85rem;display:flex}.upgrade-callout p{margin:0}.calendar{margin-bottom:24px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.calendar-header button{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:4px 10px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.calendar-cell{border:1px solid var(--color-border);border-radius:6px;flex-direction:column;gap:2px;min-height:56px;padding:4px;font-size:.75rem;display:flex}.calendar-cell--muted{opacity:.4}.calendar-date{font-weight:600}.calendar-badge{border-radius:4px;width:fit-content;padding:1px 4px;font-size:.68rem}.calendar-badge--mine{background:var(--color-mine-bg);color:var(--color-mine)}.calendar-badge--open{background:var(--color-open-bg);color:var(--color-open)}.dashboard-head{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.dashboard-head h2{margin:0}.dashboard-subtitle{color:var(--color-text-muted);font-size:.85rem}.job-list-section{margin-top:24px}.job-list{margin:0;padding:0;list-style:none}.job-list-item{border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;padding:12px;display:flex}.job-list-item--stacked{flex-direction:column;align-items:stretch}.job-list-item__main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.job-list-item__actions{align-items:center;gap:8px;display:flex}.job-list-item--mine{border-left:4px solid var(--color-mine)}.job-list-item--open{border-left:4px solid var(--color-open)}.job-list-item--locked{background:var(--color-bg)}.job-dates{color:var(--color-text-muted);font-size:.8rem}.locked-note{text-align:right;max-width:320px}.locked-note p{color:var(--color-text-muted);margin:6px 0;font-size:.8rem}.tag{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem}.tag--mine,.tag--success,.tag--accepted{background:var(--color-mine-bg);color:var(--color-mine)}.tag--open,.tag--submitted{background:var(--color-open-bg);color:var(--color-open)}.tag--error,.tag--rejected{background:var(--color-error-bg);color:var(--color-error)}.tag--locked,.tag--withdrawn{background:var(--tier-silver-bg);color:var(--tier-silver)}.bid-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bid-controls input[type=number]{width:120px}.bid-controls input[type=text]{width:180px}.bid-list{border-top:1px dashed var(--color-border);margin:12px 0 0;padding:12px 0 0;list-style:none}.bid-list__item{flex-wrap:wrap;align-items:center;gap:12px;padding:6px 0;font-size:.85rem;display:flex}.bid-list__actions{gap:8px;margin-left:auto;display:flex}.bid-list__actions button{padding:4px 12px;font-size:.8rem}.empty-state{color:var(--color-text-muted);font-style:italic}.account-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.account-header h2{margin:0}.account-subtitle{color:var(--color-text-muted);margin:4px 0 0;font-size:.85rem}.panel{border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:20px;padding:20px}.panel h3{margin:0 0 8px;font-size:1rem}.panel-lead{color:var(--color-text-muted);margin:0 0 16px;font-size:.88rem}.usage-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px;display:grid}.usage-meter{flex-direction:column;gap:6px;display:flex}.usage-meter__row{justify-content:space-between;font-size:.85rem;display:flex}.usage-meter__track{background:var(--color-border);border-radius:999px;height:6px;overflow:hidden}.usage-meter__fill{background:var(--color-mine);height:100%}.usage-meter__fill--full{background:var(--color-open)}.detail-list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 16px;display:grid}.detail-list dt{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.75rem}.detail-list dd{margin:2px 0 0;font-size:.95rem;font-weight:600}.account-form{margin-top:8px}.history-list{margin:0;padding:0;list-style:none}.history-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:8px 0;font-size:.85rem;display:flex}.history-dates{color:var(--color-text-muted)}.history-status{text-transform:capitalize;color:var(--color-text-muted);margin-left:auto}.account-footnote{color:var(--color-text-muted);font-size:.8rem}@media (width<=640px){.app-shell{padding:16px}.locked-note{text-align:left}.job-list-item,.job-list-item__main{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:root{--color-distance:#24406b;--color-distance-bg:#eaeef5;--color-far:#b45309;--color-far-bg:#fdf1e0;--color-unknown:#6b7280;--color-unknown-bg:#f1f2f4;--color-warning:#92400e;--color-warning-bg:#fef6e7}.address-fields{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:20px 0;padding:16px}.address-fields legend{padding:0 8px;font-size:.95rem;font-weight:600}.field-hint--block{color:var(--color-text-muted);margin:0 0 12px;font-size:.85rem;display:block}.pseudo-label{margin-bottom:6px;font-size:.9rem;display:block}.postcode-input-group{gap:8px;display:flex}.postcode-input-group input{text-transform:uppercase;letter-spacing:.04em;max-width:180px}.radius-control{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px;display:grid}.radius-control--disabled{opacity:.45}.radius-readout{flex-direction:column;align-items:center;min-width:80px;display:flex}.radius-readout strong{color:var(--color-primary);font-size:1.8rem;line-height:1}.radius-readout span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.radius-slider{width:100%;accent-color:var(--color-primary)}.radius-numeric{align-items:center;gap:6px;display:flex}.radius-numeric label{color:var(--color-text-muted);font-size:.8rem}.radius-numeric input{width:80px}.radius-numeric__unit{color:var(--color-text-muted);font-size:.85rem}@media (width<=640px){.radius-control{grid-template-columns:1fr;justify-items:stretch}}.unit-toggle{align-items:center;gap:4px;margin:12px 0 4px;display:inline-flex}.unit-toggle__label{color:var(--color-text-muted);margin-right:8px;font-size:.9rem}.unit-option{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-size:.9rem;display:inline-flex}.unit-option input{accent-color:var(--color-primary);margin:0}.unit-option--active{border-color:var(--color-primary);background:var(--color-distance-bg);font-weight:600}.unit-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-row{cursor:pointer;align-items:flex-start;gap:10px;margin:16px 0;display:flex}.checkbox-row input{accent-color:var(--color-primary);margin-top:3px}.checkbox-row span{flex-direction:column;display:flex}.checkbox-row small{color:var(--color-text-muted);font-size:.82rem}.checkbox-row--inline{margin:0}.bid-filters{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:12px;padding:14px 16px;display:flex}.sort-control{align-items:center;gap:8px;font-size:.9rem;display:flex}.sort-control select{padding:6px 10px}.filter-summary{border-left:3px solid var(--color-primary);background:var(--color-distance-bg);border-radius:0 var(--radius) var(--radius) 0;margin:0 0 16px;padding:10px 14px;font-size:.9rem}.job-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:12px;padding:16px;list-style:none}.job-card__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-card__type{color:var(--color-text-muted);font-size:.85rem;display:block}.job-card__meta{color:var(--color-text-muted);flex-wrap:wrap;gap:14px;margin:10px 0 12px;font-size:.85rem;display:flex}.job-card__site:before{content:"📍 "}.distance-badge{background:var(--color-distance-bg);color:var(--color-distance);white-space:nowrap;border-radius:999px;flex-direction:column;align-items:flex-end;padding:6px 12px;font-size:.95rem;font-weight:600;display:flex}.distance-badge small{opacity:.85;font-size:.7rem;font-weight:400}.distance-badge--far{background:var(--color-far-bg);color:var(--color-far)}.distance-badge--unknown{background:var(--color-unknown-bg);color:var(--color-unknown);font-size:.8rem;font-weight:400}.bid-blocked{border-radius:var(--radius);background:var(--color-unknown-bg);color:var(--color-text-muted);margin:0;padding:8px 12px;font-size:.85rem}.form-message--warning{color:var(--color-warning);background:var(--color-warning-bg);border-radius:var(--radius);padding:10px 12px}.app-banner{border-radius:0;margin:0 0 16px}.app-header--plain{justify-content:center}.app-header__brand{flex-direction:column;gap:2px;display:flex}.app-header__account{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.app-shell--booting{min-height:60vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.auth-panel{border:1px solid var(--color-border,#d8dee4);background:var(--color-surface,#fff);border-radius:8px;padding:1.25rem}.auth-panel h3{margin:0 0 .5rem;font-size:1.05rem}.auth-panel__aside{color:var(--color-muted,#5c6773);margin:0 0 1rem;font-size:.875rem;line-height:1.45}.auth-panel .auth-form{margin-bottom:.75rem}.form-hint{color:var(--color-muted,#5c6773);margin-top:.25rem;font-size:.8125rem;display:block}.auth-panel>.link-button{padding:.35rem 0}@media (prefers-reduced-motion:no-preference){.auth-panel{transition:border-color .12s}}
