:root{
    --bg:#faf8f5;--ink:#1c1b1d;--muted:#6b6560;--line:#e6e0d8;
    --accent:#7a5c3e;--card:#ffffff;
    --free:#2f7d52;--free-bg:#eaf4ee;
    --busy:#a23b2e;--busy-bg:#f6ece9;
    --part:#b07d1f;--part-bg:#f8f1df;
    --inq:#3a6ea5;--inq-bg:#eaf0f8;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:500;line-height:1.1;letter-spacing:-.01em}
  a{color:inherit}
  .wrap{max-width:720px;margin:0 auto;padding:0 22px}
  .dev-banner{background:var(--ink);color:#faf8f5;text-align:center;font-size:13px;letter-spacing:.04em;padding:8px 16px;font-weight:500}

  header.top{padding:60px 0 24px;border-bottom:1px solid var(--line)}
  .eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;color:var(--accent);margin-bottom:14px}
  header.top h1{font-size:clamp(34px,6vw,52px);margin-bottom:14px}
  header.top p{color:var(--muted);max-width:52ch;font-size:17px}
  .backlink{display:inline-block;margin-top:18px;font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px}
  .legend{display:flex;gap:20px;flex-wrap:wrap;margin:24px 0 0;font-size:14px;color:var(--muted)}
  .dot{display:inline-flex;align-items:center;gap:8px}
  .dot i{width:12px;height:12px;border-radius:4px;display:inline-block}
  .dot.free i{background:var(--free)}
  .dot.busy i{background:var(--busy)}
  .dot.part i{background:var(--part)}
  .dot.inq i{background:var(--inq)}

  main{padding:36px 0 80px}
  .calbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
  .calbar h2{font-size:24px;text-transform:capitalize}
  .nav{display:flex;gap:8px}
  .nav button{width:42px;height:42px;border-radius:999px;border:1px solid var(--line);background:var(--card);
    font-size:18px;cursor:pointer;color:var(--ink);transition:.15s}
  .nav button:hover{border-color:var(--ink)}
  .nav button:disabled{opacity:.3;cursor:not-allowed}

  .dow{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}
  .dow span{text-align:center;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
  .cell{aspect-ratio:1;border-radius:12px;border:1px solid var(--line);background:var(--card);
    display:flex;flex-direction:column;padding:8px;position:relative;overflow:hidden}
  .cell.empty{border:none;background:transparent}
  .cell .d{font-size:15px;font-weight:600}
  .cell.past{opacity:.32}
  .cell.free{cursor:pointer;border-color:#dfe7e1}
  .cell.free::after{content:'';position:absolute;left:8px;bottom:8px;width:8px;height:8px;border-radius:50%;background:var(--free)}
  .cell.free:hover{border-color:var(--free);background:var(--free-bg);transform:translateY(-1px)}
  .cell.busy{background:var(--busy-bg);border-color:#eed8d2}
  .cell.busy .d{color:var(--busy)}
  .cell.part{cursor:pointer;background:var(--part-bg);border-color:#ecddba}
  .cell.part .d{color:var(--part)}
  .cell.part:hover{border-color:var(--part);transform:translateY(-1px)}
  .cell .ev{margin-top:auto;font-size:10.5px;font-weight:600;color:var(--busy);line-height:1.15;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cell.part .ev{color:var(--part)}
  .cell.inquiry{cursor:pointer;background:var(--inq-bg);border-color:#d3dfef}
  .cell.inquiry .d{color:var(--inq)}
  .cell.inquiry:hover{border-color:var(--inq);transform:translateY(-1px)}
  .cell.inquiry .ev{color:var(--inq)}
  .cell.today{box-shadow:0 0 0 2px var(--ink) inset}
  .cell.weekend.free{background:#fbfaf7}

  .hint{margin-top:22px;font-size:14px;color:var(--muted)}
  footer{border-top:1px solid var(--line);background:#f3ede4;padding:64px 0 36px;color:var(--muted);font-size:14px;margin-top:40px}
  .foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px}
  .foot-logo{font-family:'Fraunces',Georgia,serif;font-size:26px;color:var(--ink);margin-bottom:12px}
  .foot-brand p{max-width:38ch;margin-bottom:12px;line-height:1.55}
  .foot-cg{font-weight:600;color:var(--accent)}
  .foot-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);margin-bottom:16px;font-weight:600}
  .foot-col a{display:block;color:var(--muted);text-decoration:none;margin-bottom:10px;transition:.15s}
  .foot-col a:hover{color:var(--ink)}
  .foot-col .meta{margin-top:14px;line-height:1.5}
  .foot-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;opacity:.7;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
  @media(max-width:760px){.foot{grid-template-columns:1fr;gap:32px}}
  .loading{padding:60px 0;text-align:center;color:var(--muted)}
  @media(max-width:520px){
    .cell{padding:5px;border-radius:10px}
    .cell .d{font-size:13px}
    .cell .ev{font-size:9px}
    .grid,.dow{gap:5px}
  }
