.book{max-width:640px;min-height:100svh;padding:0 16px calc(120px + env(safe-area-inset-bottom));margin:0 auto}.book-top{z-index:20;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#050a08eb;justify-content:space-between;align-items:center;margin:0 -16px;display:flex;position:sticky;top:0}.book-brand{align-items:center;gap:10px;text-decoration:none;display:flex}.book-brand img{border-radius:50%}.book-brand span{font-family:var(--font-display), serif;letter-spacing:.12em;text-transform:uppercase;flex-direction:column;font-weight:700;line-height:1.2;display:flex}.book-brand small{font-family:var(--font-sans), sans-serif;letter-spacing:.24em;color:var(--emerald-bright);font-size:.62rem;font-weight:500}.book-close{width:38px;height:38px;color:var(--silver);border:1px solid #c7ccd133;border-radius:50%;place-items:center;text-decoration:none;display:grid}.book-closed{text-align:center;flex-direction:column;gap:12px;padding:60px 0;display:flex}.book-closed-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.book .muted{color:var(--muted)}.flow{padding-top:18px}.steps{grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px;padding:0;list-style:none;display:grid}.steps button{width:100%;color:var(--muted);font:inherit;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;font-size:.72rem;display:flex}.steps button:disabled{cursor:default}.steps b{border:1px solid #c7ccd140;border-radius:50%;place-items:center;width:30px;height:30px;font-size:.8rem;display:grid}.steps li{position:relative}.steps li+li:before{content:"";background:#c7ccd133;width:calc(100% - 34px);height:1px;position:absolute;top:15px;right:calc(50% + 20px)}.steps .on button{color:var(--gold-light)}.steps .on b{background:var(--gold-grad);color:#1b1405;border-color:#0000;box-shadow:0 0 20px #d4af5a73}.steps .done b{background:var(--emerald);border-color:var(--emerald);color:#fff}.steps .done:before,.steps .on:before{background:var(--emerald)!important}.step h1{letter-spacing:.04em;font-size:clamp(1.6rem,7vw,2.1rem)}.step-sub{color:var(--muted);margin:6px 0 18px}.svc-list{flex-direction:column;gap:10px;display:flex}.svc{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:#091610eb;border:1px solid #d4af5a2e;border-radius:16px;align-items:center;gap:14px;padding:14px;transition:border-color .2s,background .2s,transform .15s;display:flex}.svc:active{transform:scale(.99)}.svc.on{border-color:var(--gold);background:linear-gradient(135deg,#d4af5a1f,#091610f2 60%)}.svc-icon{width:46px;height:46px;color:var(--gold-light);background:radial-gradient(circle at 30% 30%,#34c79559,#07402e99);border:1px solid #d4af5a66;border-radius:50%;flex:none;place-items:center;display:grid}.svc-icon svg{width:24px;height:24px}.svc-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.svc-text strong{font-family:var(--font-display), serif;letter-spacing:.02em;font-size:1rem}.svc-text small{color:var(--muted);font-size:.82rem;line-height:1.4}.svc-text em{color:var(--gold-light);margin-top:2px;font-size:.8rem;font-style:normal}.svc-check{width:30px;height:30px;color:var(--gold-light);border:1px solid #d4af5a80;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.svc.on .svc-check{background:var(--gold-grad);color:#1b1405;border-color:#0000}.book-bar{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#050a08f5;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.book-bar>*{max-width:100%}.book-bar .btn{min-width:130px;font:inherit;cursor:pointer;border:0;flex:none;font-weight:600}.book-bar .btn:disabled{opacity:.4;cursor:default}.book-summary{flex-direction:column;min-width:0;font-size:.85rem;display:flex}.book-summary span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.book-summary strong{color:var(--gold-light);font-size:1rem}@media (min-width:680px){.book-bar{border:1px solid var(--line);border-radius:18px;width:608px;padding:12px 14px;bottom:16px;left:50%;right:auto;transform:translate(-50%)}}.cal{border:1px solid var(--line);background:#091610eb;border-radius:18px;margin-top:16px;padding:14px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-head strong{font-family:var(--font-display), serif;letter-spacing:.08em}.cal-head button{width:40px;height:40px;color:var(--gold-light);cursor:pointer;background:0 0;border:1px solid #c7ccd133;border-radius:50%;font-size:1.3rem}.cal-head button:disabled{opacity:.25;cursor:default}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid;position:relative}.cal-wd{text-align:center;color:var(--muted);padding-bottom:4px;font-size:.7rem}.cal-day{aspect-ratio:1;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;font-weight:600;position:relative}.cal-day.open{background:#34c79514;border-color:#34c79540}.cal-day.open:after{content:"";background:var(--emerald-bright);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.cal-day.full{color:#8f6a73;cursor:default;text-decoration:line-through}.cal-day.closed,.cal-day.out{color:#3e4843;cursor:default}.cal-day.today{border-color:#d4af5a99}.cal-day.on{background:var(--gold-grad);color:#1b1405;border-color:#0000;box-shadow:0 6px 20px -6px #d4af5ab3}.cal-day.on:after{background:#1b1405}.cal-loading{color:var(--muted);background:#091610b3;border-radius:12px;place-items:center;font-size:.9rem;display:grid;position:absolute;inset:24px 0 0}.cal-legend{color:var(--muted);justify-content:center;gap:14px;margin-top:12px;font-size:.72rem;display:flex}.cal-legend span:before{content:"";border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.lg-open:before{background:var(--emerald-bright)}.lg-full:before{background:#8f6a73}.lg-closed:before{background:#3e4843}.times{margin-top:22px}.times h2{letter-spacing:.04em;margin-bottom:12px;font-size:1.1rem}.time-group{margin-bottom:14px}.time-group>span{letter-spacing:.2em;text-transform:uppercase;color:var(--emerald-bright);margin-bottom:8px;font-size:.7rem;display:block}.time-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.time-grid button{color:var(--text);font:inherit;cursor:pointer;background:#091610eb;border:1px solid #c7ccd12e;border-radius:12px;padding:12px 6px;font-size:.92rem;font-weight:600}.time-grid button.on{background:var(--gold-grad);color:#1b1405;border-color:#0000}.recap{background:#34c7950d;border:1px solid #34c7954d;border-radius:16px;flex-direction:column;gap:10px;margin:16px 0 20px;padding:16px;display:flex}.recap div{flex-direction:column;display:flex}.recap span{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.recap .link-btn{color:var(--emerald-bright);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.85rem}.details{flex-direction:column;gap:16px;display:flex}.details label{flex-direction:column;gap:6px;display:flex}.details label>span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.details input,.details textarea{width:100%;font:inherit;color:var(--text);background:#06100c;border:1px solid #c7ccd12e;border-radius:12px;padding:14px;font-size:16px}.details input:focus,.details textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #d4af5a2e}.details small{color:#7d8a83;font-size:.8rem}.details .hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.book-error{color:#f5b5b5;background:#f08a8a1a;border:1px solid #f08a8a66;border-radius:12px;padding:12px 14px}.success{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 0 20px;display:flex}.success-mark{background:var(--gold-grad);color:#1b1405;border-radius:50%;place-items:center;width:84px;height:84px;font-size:2.4rem;font-weight:700;display:grid;box-shadow:0 0 60px #d4af5a73}.success p{color:var(--muted);max-width:420px}.success p strong{color:var(--gold-light)}.success .recap{text-align:left;width:100%}.success-actions{flex-direction:column;gap:10px;width:100%;display:flex}.success-actions .btn{width:100%;font:inherit;cursor:pointer;border:0;font-weight:600}
