:root{
  --bg:#faf6f1; --card:#fff; --ink:#3a2f2a; --muted:#8c7d72; --line:#eadfd3;
  --accent:#9a6b4f; --accent-d:#7f553c; --rose:#f3e3dc; --ok:#e9f2e6; --ok-ink:#3f6b3a;
  --radius:18px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(1200px 500px at 50% -120px,#f4e6dc 0,var(--bg) 70%) no-repeat,var(--bg);
  color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.wrap{max-width:520px;margin:0 auto;padding:20px 16px 40px}
.hidden{display:none!important}

.hero{text-align:center;padding:18px 0 6px}
.logo{font-family:Georgia,"Times New Roman",serif;font-size:22px;color:var(--accent);letter-spacing:.5px}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:28px;line-height:1.2;margin:10px 0 6px}
.hero p{color:var(--muted);margin:0}

.steps{display:flex;justify-content:center;gap:6px;list-style:none;padding:0;margin:20px 0 14px;font-size:13px;color:var(--muted)}
.steps li{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px}
.steps li span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:#fff;font-size:12px;font-weight:600}
.steps li.on{color:var(--ink);font-weight:600;background:var(--rose)}
.steps li.on span,.steps li.done span{background:var(--accent)}
.steps li.done{color:var(--ink)}

.card{background:var(--card);border-radius:var(--radius);padding:20px 16px;margin-bottom:14px;
  box-shadow:0 1px 2px rgba(90,60,40,.05),0 8px 28px rgba(120,90,60,.08);animation:up .35s ease both}
@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:20px;margin:0 0 12px}

/* Ημερολόγιο */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-head h2{margin:0;text-transform:capitalize}
.nav{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:24px;line-height:1;color:var(--accent);cursor:pointer}
.nav:disabled{opacity:.3;cursor:default}
.dow,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dow span{text-align:center;font-size:12px;color:var(--muted);padding:4px 0}
.day{aspect-ratio:1;min-height:42px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:15px;color:#c9bcb0;position:relative}
.day.avail{background:var(--ok);color:var(--ok-ink);font-weight:600;cursor:pointer;transition:transform .08s}
.day.avail:active{transform:scale(.94)}
.day.avail:hover{background:#dcebd7}
.day.sel{background:var(--accent)!important;color:#fff!important}
.day.today::after{content:"";position:absolute;bottom:5px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.day.full{text-decoration:line-through}
.legend{font-size:12px;color:var(--muted);margin:12px 0 0;text-align:center}
.dot{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}
.dot.ok{background:var(--ok);border:1px solid #c5dbc0}.dot.no{background:#f1ece7}

/* Ώρες */
.slots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.slot{padding:14px 8px;border-radius:14px;border:1.5px solid var(--line);background:#fff;font:inherit;cursor:pointer;text-align:center;min-height:56px}
.slot b{display:block;font-size:18px;font-weight:600}
.slot small{color:var(--muted);font-size:12px}
.slot:hover{border-color:var(--accent)}
.slot:disabled{background:#f6f2ee;color:#c3b6aa;border-style:dashed;cursor:not-allowed}
.slot:disabled b{text-decoration:line-through}
.empty{color:var(--muted);grid-column:1/-1;text-align:center;padding:10px}

/* Φόρμα */
.chosen{background:var(--rose);border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:15px}
.chosen b{display:block;font-size:17px}
form label{display:block;font-size:14px;font-weight:600;margin-bottom:14px}
form label em{font-weight:400;color:var(--muted)}
input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;
  font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:#fff;appearance:none;-webkit-appearance:none}
select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239a6b4f' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:36px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(154,107,79,.15)}
input.bad{border-color:#c0504d}
.row{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:440px){.row{grid-template-columns:1fr 1fr;gap:12px}}
.err{display:block;color:#c0504d;font-weight:400;min-height:0;margin-top:4px;font-size:13px}
.err:empty{display:none}
.form-err{color:#c0504d;margin:0 0 10px;font-size:14px}
.form-err:empty{display:none}
.hp{position:absolute!important;left:-9999px;height:0;opacity:0}
.primary{width:100%;padding:16px;border:0;border-radius:14px;background:var(--accent);color:#fff;font:inherit;font-size:17px;font-weight:600;cursor:pointer;transition:background .15s}
.primary:hover{background:var(--accent-d)}
.primary:disabled{opacity:.6}
.link{display:block;margin:12px auto 0;background:none;border:0;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;padding:8px}

/* Επιβεβαίωση */
.success{text-align:center;padding:32px 20px}
.check{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--ok);color:var(--ok-ink);display:grid;place-items:center;font-size:32px;font-weight:700}
.muted{color:var(--muted);font-size:14px}
footer{text-align:center;color:var(--muted);font-size:13px;margin-top:22px}
footer a{color:inherit}
@media(min-width:560px){.wrap{padding-top:40px}.slots{grid-template-columns:repeat(3,1fr)}.card{padding:26px 24px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
