:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#163f45;background:#f7f8f3;--sea:#297f85;--muted:#677873}*{box-sizing:border-box}body{margin:0}button,input,a{touch-action:manipulation}button,a,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c28d32;outline-offset:3px}main{max-width:640px;margin:24px auto;background:white;border:1px solid #e0e6df;border-radius:24px;padding:28px;min-height:65vh}h1{font-size:28px;line-height:1.2;margin:20px 0 10px}h2{font-size:21px}p{line-height:1.6}small,.muted{color:var(--muted)}.identity{display:flex;align-items:center;gap:12px}.identity img{width:56px;height:56px;object-fit:contain;border-radius:50%}.identity strong{font-size:18px}.identity small{display:block;letter-spacing:1.6px;font-size:10px;margin-top:5px}.account{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;font-size:14px}.text-button{border:0;background:transparent;color:var(--sea);padding:10px 0;text-decoration:underline;text-underline-offset:4px}.month{display:flex;justify-content:space-between;align-items:center;margin:32px 0 22px}.month button{border:1px solid #dce4dd;border-radius:50%;width:44px;height:44px;background:white;font-size:24px}.month h2{margin:0;font-size:20px}.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:5px}.week{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:10px}.day{position:relative;aspect-ratio:1;border:2px solid transparent;border-radius:15px;background:white;color:#173e44;font-weight:650;font-size:17px;padding:4px}.day.today{border-color:#a0bcb8}.day.selected{background:var(--sea);color:white;border-color:var(--sea)}.day.has-slots:after{content:'';position:absolute;bottom:6px;left:calc(50% - 2px);height:4px;width:4px;border-radius:50%;background:currentColor}.day:disabled{color:#aeb5b0;opacity:.7}.hours{border-top:1px solid #e4e8e2;margin-top:28px;padding-top:18px}.date-title{color:var(--sea);font-size:20px}.slot{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:white;border:1px solid #dce4dd;border-radius:15px;margin:12px 0;padding:18px 20px;color:#163f45;text-align:left;min-height:76px}.slot strong{font-size:22px}.slot small{display:block;margin-top:4px;font-size:12px}.slot .arrow{font-size:23px;color:var(--sea)}.slot.booked{background:#edf4ef;border-color:#9abfb3}.empty{padding:28px 16px;border-radius:15px;background:#f5f6f0;color:var(--muted);line-height:1.65}.hint{font-size:13px;color:var(--muted);margin-top:22px}.primary,.secondary{display:block;width:100%;min-height:50px;border-radius:12px;padding:14px;border:0;font-weight:650;text-align:center;text-decoration:none}.primary{background:#163f45;color:white}.secondary{background:white;border:1px solid #d6e0da;color:#163f45;margin-top:10px}.danger{color:#9a4540}.summary{margin-top:26px;border-top:1px solid #e4e8e2;padding-top:12px}.summary details>summary{padding:18px 0;cursor:pointer;font-weight:650}.reservation{padding:15px 0;border-top:1px solid #e4e8e2}.reservation strong{display:block}.reservation small{display:block;margin-top:6px}.package{background:#f2f5ee;padding:14px;border-radius:12px;margin:10px 0;font-size:14px}.error{color:#a14239;line-height:1.5;font-size:14px;min-height:24px}.success{background:#e5f1e8;color:#24553e;padding:20px;border-radius:14px;margin:18px 0;line-height:1.6}.loading{padding:50px;text-align:center}dialog{border:1px solid #dce4dd;border-radius:22px;padding:28px;width:calc(100% - 32px);max-width:440px;color:#163f45;max-height:90dvh;overflow:auto}dialog::backdrop{background:#0c2e36a8}dialog h2{margin:4px 0 14px;font-size:26px}label{display:block;font-size:14px;font-weight:650;margin:22px 0 8px}input{width:100%;min-height:52px;border:1px solid #cbd7d0;border-radius:12px;padding:14px;margin:8px 0;font-size:17px;color:#163f45;background:white}input[name=code]{font-size:28px;letter-spacing:8px;text-align:center}dialog .close{float:right;border:0;background:transparent;color:#637970;font-size:24px;padding:0 5px}dialog form button.primary{margin-top:12px}.confirm-card{background:#f0f4ec;padding:18px;border-radius:14px;margin:20px 0;line-height:1.7}#notice:empty{display:none}#notice{max-width:640px;margin:12px auto;padding:18px;background:#fff1d5;border-radius:12px}footer{text-align:center;font-size:12px;color:var(--muted);padding:20px 16px 32px}@media(max-width:650px){main{margin:0;border:0;border-radius:0;padding:22px 20px 30px;min-height:90dvh}.day{font-size:16px;border-radius:13px}.day.has-slots:after{bottom:4px}.identity strong{font-size:17px}h1{font-size:26px}dialog{padding:24px 20px}.slot{padding:17px 18px}.week,.days{gap:3px}}
