:root{--blue:#0369a1;--blue-dark:#075985;--blue-light:#e0f2fe;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--ok:#15803d;--warn:#b45309;--danger:#b91c1c;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.container{max-width:680px;margin:0 auto;padding:1rem}.site-header{justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.site-header .brand{color:var(--blue-dark);font-size:1.3rem;font-weight:800;text-decoration:none}.lang-switch button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:.2rem .4rem;font-size:.9rem}.lang-switch button.active{color:var(--blue-dark);font-weight:700}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:1rem;padding:1.25rem}.card h2{margin:0 0 .75rem;font-size:1.05rem}.step-number{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;margin-right:.5rem;font-size:.85rem;display:inline-flex}.btn{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;color:var(--ink);background:#fff;padding:.6rem 1rem;font-size:1rem;transition:all .12s;display:inline-block}.btn.selected,.btn:hover:not(:disabled){border-color:var(--blue)}.btn.selected{background:var(--blue);color:#fff}.btn:disabled{opacity:.35;cursor:default}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);width:100%;padding:.8rem;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-danger{border-color:var(--danger);color:var(--danger)}.grid-durations{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.grid-times{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:.5rem;display:grid}.grid-times .btn{text-align:center;padding:.5rem .25rem}.grid-times .btn small{color:var(--muted);font-size:.72rem;display:block}.grid-times .btn.selected small{color:#e0f2fe}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.calendar-head strong{text-transform:capitalize}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-grid .dow{text-align:center;color:var(--muted);padding:.25rem 0;font-size:.72rem}.calendar-grid .day{aspect-ratio:1;cursor:pointer;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;font-size:.95rem}.calendar-grid .day:hover:not(:disabled){border-color:var(--blue)}.calendar-grid .day.selected{background:var(--blue);color:#fff;font-weight:700}.calendar-grid .day:disabled{color:#cbd5e1;cursor:default}.calendar-grid .day.today{border-color:var(--muted)}.form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-grid .full{grid-column:1/-1}label{color:var(--muted);margin-bottom:.2rem;font-size:.82rem;display:block}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.55rem .7rem;font-size:1rem}input:focus,select:focus{outline:2px solid var(--blue-light);border-color:var(--blue)}.checkbox-row{align-items:flex-start;gap:.5rem;font-size:.9rem;display:flex}.checkbox-row input{width:auto;margin-top:.25rem}.summary{background:var(--blue-light);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.9rem 1.1rem;font-weight:600;display:flex}.summary .price{color:var(--blue-dark);font-size:1.25rem}.hold-timer{color:var(--warn);text-align:center;margin-top:.5rem;font-size:.85rem}.notice{border-radius:var(--radius);margin-bottom:1rem;padding:.8rem 1rem;font-size:.92rem}.notice.info{background:var(--blue-light);color:var(--blue-dark)}.notice.error{color:var(--danger);background:#fee2e2}.notice.success{color:var(--ok);background:#dcfce7}.muted{color:var(--muted);font-size:.88rem}.center{text-align:center}.spinner{border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;width:2rem;height:2rem;margin:1rem auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}@media (width<=480px){.grid-durations{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}
