*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#06c;--primary-dark:#004999;--secondary:#28a745;--danger:#dc3545;--warning:#ffc107;--light:#f8f9fa;--dark:#343a40;--gray:#6c757d;--border-radius:8px;--box-shadow:0 2px 8px #0000001a;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}body{font-family:var(--font-family);color:var(--dark);background:#f0f2f5;line-height:1.5}#root{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.app{border-radius:var(--border-radius);width:100%;max-width:800px;box-shadow:var(--box-shadow);background:#fff;margin:1rem;padding:2rem}@media (width<=768px){.app{margin:.5rem;padding:1rem}}.step1-postcode{flex-direction:column;gap:1.5rem;display:flex}.step1-postcode h2{margin-bottom:0}.step1-postcode input[type=text]{border-radius:var(--border-radius);border:1px solid #ccc;width:100%;max-width:300px;margin-right:.5rem;padding:.75rem;font-size:1rem}.step1-postcode button{background:var(--primary);color:#fff;border-radius:var(--border-radius);cursor:pointer;border:none;padding:.75rem 1.5rem;font-size:1rem;transition:background .2s}.step1-postcode button:hover:not(:disabled){background:var(--primary-dark)}.step1-postcode button:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger);border-radius:var(--border-radius);background:#ffe6e6;justify-content:space-between;align-items:center;margin-top:.5rem;padding:.5rem;display:flex}.error button{background:var(--danger);padding:.25rem .75rem;font-size:.875rem}ul{border-radius:var(--border-radius);border:1px solid #eee;max-height:250px;margin:1rem 0;padding:0;list-style:none;overflow-y:auto}li{border-bottom:1px solid #eee;padding:.75rem}li:last-child{border-bottom:none}li label{cursor:pointer;align-items:center;gap:.75rem;display:flex}textarea{border-radius:var(--border-radius);resize:vertical;border:1px solid #ccc;width:100%;padding:.75rem;font-family:inherit}.step2-waste-type{flex-direction:column;gap:1.5rem;display:flex}.waste-options,.plasterboard-options{background:var(--light);border-radius:var(--border-radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.waste-options label,.plasterboard-options label{cursor:pointer;align-items:center;gap:.75rem;display:flex}.step3-skip-selection{flex-direction:column;gap:1.5rem;display:flex}.skip-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;display:grid}.skip-card{border-radius:var(--border-radius);text-align:center;cursor:pointer;background:#fff;border:1px solid #ddd;padding:1rem;transition:all .2s}.skip-card.selected{border-color:var(--primary);background:#e6f0ff;box-shadow:0 0 0 2px #06c3}.skip-card.disabled{opacity:.5;cursor:not-allowed;background:#f5f5f5}.skip-card:not(.disabled):hover{box-shadow:var(--box-shadow);transform:translateY(-2px)}.skip-size{margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.skip-price{color:var(--secondary);font-weight:500}.info-message{border-left:4px solid var(--warning);border-radius:var(--border-radius);background:#fff3cd;padding:.75rem;font-size:.9rem}.step4-review{flex-direction:column;gap:1.5rem;display:flex}.review-section{border-top:1px solid #eee;padding-top:1rem}.review-section:first-of-type{border-top:none;padding-top:0}.review-section h3{color:var(--dark);margin-bottom:.5rem;font-size:1.1rem}.price-breakdown{background:var(--light);border-radius:var(--border-radius);padding:1rem}.price-row{justify-content:space-between;margin-bottom:.5rem;display:flex}.price-row.total{border-top:1px solid #ccc;margin-top:.5rem;padding-top:.5rem;font-weight:700}.postcode{color:var(--gray);font-size:.875rem}.success-page{text-align:center;border-radius:var(--border-radius);color:#155724;background:#d4edda;padding:2rem}button{background:var(--primary);color:#fff;border-radius:var(--border-radius);cursor:pointer;border:none;align-self:flex-start;padding:.75rem 1.5rem;font-size:1rem;transition:background .2s}button:hover:not(:disabled){background:var(--primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}.booking-title{color:var(--primary);text-align:center;margin-bottom:2rem;padding:0 1rem;font-size:2rem}@media (width<=640px){.skip-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.step1-postcode input[type=text]{max-width:100%;margin-bottom:.5rem}.step1-postcode>div{flex-direction:column;display:flex}.booking-title{margin-bottom:1rem;font-size:1.5rem}}
