/* Maisonette Silvaplana: Seeblau, Lärchengold, Engadiner Sgraffito */
:root{
  --bg:#eef2f1; --surface:#ffffff; --ink:#1c2a2e; --muted:#5a6a6d; --line:#d5dddc;
  --lake:#2c6a73; --lake-soft:#dbe9ea; --larch:#b9802a; --larch-soft:#f4e6cc;
  --booked:#e3e8e8; --hatch:#c3cdcd; --ok:#2f7a4f; --err:#b3412f; --on-accent:#ffffff;
  --display:"Gloock", Georgia, "Times New Roman", serif;
  --body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#111a1c; --surface:#182326; --ink:#e4ebeb; --muted:#97a7a9; --line:#2a383b;
  --lake:#74b5bd; --lake-soft:#1d3a3e; --larch:#e2ad55; --larch-soft:#3b2f1a;
  --booked:#1e2a2d; --hatch:#2f3e41; --ok:#6cc08f; --err:#ec8a76; --on-accent:#0f1a1c; color-scheme:dark}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;padding-inline:16px;padding-block:0 48px}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:1040px;margin-inline:auto}
h1,h2{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;letter-spacing:-.01em}
a{color:var(--lake)}
:focus-visible{outline:2px solid var(--larch);outline-offset:2px}
.muted{color:var(--muted)} .small{font-size:13px}
.err{color:var(--err);margin:8px 0} .ok{color:var(--ok);margin:8px 0}

.hero{position:relative;margin-top:16px;border-radius:6px;overflow:hidden;background:linear-gradient(180deg,var(--lake-soft),var(--surface));border:1px solid var(--line)}
.hero svg.mtn{display:block;width:100%;height:auto}
.hero-text{padding:20px 24px 28px;display:grid;gap:12px;justify-items:start}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.hero h1{font-size:clamp(34px,6vw,60px);line-height:1.04;max-width:16ch}
.meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:15px}
.meta b{color:var(--ink);font-weight:600}
.sgraffito{height:18px;background-color:var(--surface);border-top:1px solid var(--line);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='18'%3E%3Cpath d='M0 9 L9 0 L18 9 L9 18 Z M18 9 L27 0 L36 9 L27 18 Z' fill='none' stroke='%237f8f91' stroke-width='1.2'/%3E%3Ccircle cx='18' cy='9' r='2' fill='%237f8f91'/%3E%3C/svg%3E")}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-top:20px}
.fact{background:var(--surface);padding:14px 16px}
.fact .v{font-family:var(--display);font-size:24px;line-height:1.1}
.fact .k{font-size:13px;color:var(--muted)}

.about{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px;margin-top:40px}
.about p{margin:0 0 12px;max-width:62ch}
.about h2{font-size:30px;margin-bottom:12px}
.dist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.dist li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.dist li span:last-child{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right}
@media (max-width:720px){.about{grid-template-columns:1fr;gap:20px}}

.cal-sec{margin-top:48px;scroll-margin-top:16px}
.cal-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}
.cal-head h2{font-size:34px}
.stamp{font-size:13px;color:var(--muted);text-align:center}
.cal-card,.form-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px}
.form-card{margin-top:16px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.nav button{font:inherit;font-size:20px;line-height:1;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;flex:none}
.nav button:hover:not(:disabled){border-color:var(--lake);color:var(--lake)}
.nav button:disabled{opacity:.35;cursor:default}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted)}
.legend i{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:6px;border:1px solid var(--line)}
.lg-free{background:var(--surface)}
.lg-booked{background:repeating-linear-gradient(135deg,var(--booked) 0 4px,var(--hatch) 4px 5px)}
.lg-sel{background:var(--larch)!important;border-color:var(--larch)!important}
.months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;min-height:280px}
@media (max-width:720px){.months{grid-template-columns:1fr}.months .m:nth-child(2){display:none}}
.m h3{font-family:var(--display);font-weight:400;font-size:20px;margin:0 0 8px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.dow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0;font-weight:600}
.d{aspect-ratio:1/1;max-width:100%;border:0;border-radius:4px;font:inherit;font-size:14px;font-variant-numeric:tabular-nums;background:var(--surface);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;padding:0}
.d.free:hover{outline:1px solid var(--lake)}
.d.booked{background:repeating-linear-gradient(135deg,var(--booked) 0 4px,var(--hatch) 4px 5px);color:var(--muted);text-decoration:line-through;cursor:not-allowed}
.d.past{color:var(--muted);opacity:.45;cursor:default;background:transparent;text-decoration:none}
.d.empty{background:transparent;cursor:default}
.d.today::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--lake)}
.d.co{background:linear-gradient(135deg,var(--surface) 50%,var(--booked) 50%)}
.d.range{background:var(--larch-soft);border-radius:0}
.d.start,.d.end{background:var(--larch);color:var(--on-accent);font-weight:600}
.d.start{border-radius:4px 0 0 4px}.d.end{border-radius:0 4px 4px 0}.d.start.end{border-radius:4px}

.panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.panel .sel{font-size:15px}
.sel strong{font-family:var(--display);font-weight:400;font-size:22px;display:block;font-variant-numeric:tabular-nums}
.hint{color:var(--muted);font-size:14px}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{font:inherit;font-weight:600;font-size:15px;padding:11px 18px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.btn:hover{border-color:var(--lake)}
.btn.primary{background:var(--lake);border-color:var(--lake);color:var(--on-accent)}
.btn:disabled{opacity:.5;cursor:default}
@media (max-width:560px){.panel{grid-template-columns:1fr}}

.gaps{margin-top:28px}
.gaps h3,.form-card h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-weight:600}
.gap-list{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-size:14px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--larch)}
.chip b{color:var(--ok);font-weight:600;margin-left:6px}

.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin:12px 0 16px}
.f{display:grid;gap:4px;min-width:0}
.f.wide{grid-column:1/-1}
.f label{font-size:14px;font-weight:500}
input,select,textarea{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);width:100%;min-width:0}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--lake);outline:none}
.check{display:flex;align-items:center;gap:8px;font-weight:400!important}
.check input{width:auto}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
.done h3{color:var(--ok)}

.host{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;justify-content:space-between;margin-top:48px;padding:22px 24px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.host p{margin:0;max-width:56ch;color:var(--muted)}
.host strong{color:var(--ink);font-family:var(--display);font-weight:400;font-size:22px;display:block}
footer{margin-top:28px;font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.d,.chip,.btn{transition:background .15s,border-color .15s,color .15s}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Admin */
.admin .wrap{max-width:820px;padding-block:24px}
.admin h1{font-size:40px}
.admin h2{font-size:24px;margin:36px 0 12px}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.count{font-family:var(--body);font-size:14px;color:var(--muted);vertical-align:middle}
.login{display:grid;gap:10px;max-width:360px;margin-top:16px}
.bk{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px;padding:16px 18px;margin-bottom:12px}
.bk.st-pending{border-left-color:var(--larch)} .bk.st-confirmed{border-left-color:var(--ok)}
.bk-top{display:flex;justify-content:space-between;gap:12px;align-items:start}
.bk-top strong{display:block;font-family:var(--display);font-weight:400;font-size:20px}
.pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.st-pending .pill{background:var(--larch-soft)} .st-confirmed .pill{color:var(--ok)}
.bk dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:12px 0;font-size:15px}
.bk dt{color:var(--muted)} .bk dd{margin:0;overflow-wrap:anywhere}
.bk blockquote{margin:0 0 12px;padding:10px 14px;background:var(--bg);border-radius:6px;font-size:15px}
.bk-act{display:grid;gap:8px}
.sync{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:16px 18px;display:grid;gap:10px}
.sync p{margin:0}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px 12px;overflow-x:auto;width:100%}
pre.code{white-space:pre}
