@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"DM Sans",sans-serif;--font-serif:"Instrument Serif",serif;--bg:#f7f6f3;--bg-card:#fff;--bg-card-hover:#fafaf8;--text-primary:#1a1a18;--text-secondary:#6b6b67;--text-tertiary:#9d9d99;--border:rgba(0,0,0,.09);--border-strong:rgba(0,0,0,.16);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--green-bg:#e8f5ec;--green-text:#1a6b35;--green-border:#86c99a;--green-solid:#2d9c52;--red-bg:#fdecea;--red-text:#8b2020;--red-border:#f0a0a0;--red-solid:#d63a3a;--blue-bg:#e8f0fe;--blue-text:#1a4fa0}html{font-size:15px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select{font-family:var(--font-sans)}.slot{border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;font-weight:500;text-align:center;cursor:pointer;border:1.5px solid transparent;transition:transform .1s,box-shadow .1s,background .15s,border-color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:-.01em}.slot:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.slot:active{transform:scale(.97)}.slot.available{background:var(--green-bg);color:var(--green-text);border-color:var(--green-border)}.slot.unavailable{background:var(--red-bg);color:var(--red-text);border-color:var(--red-border)}.slot.saving{opacity:.6;pointer-events:none}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);padding:20px}.input{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1.5px solid var(--border-strong);font-size:15px;font-family:var(--font-sans);background:#fff;color:var(--text-primary);transition:border-color .15s,box-shadow .15s;outline:none}.input:focus{border-color:#3d7eff;box-shadow:0 0 0 3px rgba(61,126,255,.12)}.btn-primary{background:var(--text-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 24px;font-size:15px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:opacity .15s,transform .1s;letter-spacing:-.01em}.btn-primary:hover{opacity:.85}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:transparent;color:var(--text-primary);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);padding:10px 20px;font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--bg)}.btn-green{background:var(--green-solid);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 20px;font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:opacity .15s}.btn-green:hover{opacity:.88}.btn-danger{background:var(--red-solid);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s}.btn-danger:hover{opacity:.88}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:20px;height:20px;border:2px solid var(--border-strong);border-top-color:var(--text-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .35s ease forwards}