/* Layout: one narrow column, felt-green header band, pill tabs, stacked cards. Host tools live in collapsible sections. */
:root{
  --bg:#eef1ef; --surface:#fbfcfb; --surface2:#e2e9e5; --fg:#15221c; --muted:#56655d; --line:#cdd7d1;
  --felt:#1d6a4c; --felt-fg:#ffffff; --brass:#8f6608; --brass-bg:#f4e6c1; --danger:#b3382c; --danger-bg:#f6dcd8;
  --f-display:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'DM Mono',ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0e1814; --surface:#15251f; --surface2:#1e322a; --fg:#e6efe9; --muted:#9bafa4; --line:#2b4136;
    --felt:#3fa57b; --felt-fg:#06130d; --brass:#e0b550; --brass-bg:#3a2f12; --danger:#f0806f; --danger-bg:#3d1f1b;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0e1814; --surface:#15251f; --surface2:#1e322a; --fg:#e6efe9; --muted:#9bafa4; --line:#2b4136;
  --felt:#3fa57b; --felt-fg:#06130d; --brass:#e0b550; --brass-bg:#3a2f12; --danger:#f0806f; --danger-bg:#3d1f1b;
  color-scheme:dark;
}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
*{box-sizing:border-box}
body{
  background:var(--bg); color:var(--fg); font-family:var(--f-body); font-size:16px; line-height:1.5;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:calc(48px + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px)); padding-right:max(16px,env(safe-area-inset-right,0px));
}
.wrap{max-width:720px;margin:0 auto}
header.top{
  margin:16px 0 14px; padding:22px 20px 20px; border-radius:14px; color:var(--felt-fg); background-color:var(--felt);
  background-image:radial-gradient(circle at 12px 12px,rgba(255,255,255,.16) 2.5px,transparent 3px);
  background-size:24px 24px;
}
header.top h1{font-family:var(--f-display);font-weight:700;font-size:clamp(1.9rem,7vw,2.6rem);line-height:1.05;margin:0 0 6px;letter-spacing:-.01em;text-wrap:balance}
header.top p{margin:0;font-size:.95rem;opacity:.92}
header.top .when{font-family:var(--f-mono);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;opacity:.9}
nav.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
nav.tabs a{
  font-weight:600;font-size:.92rem;text-decoration:none;color:var(--fg);background:var(--surface);
  border:1px solid var(--line);border-radius:999px;padding:8px 15px;
}
nav.tabs a[aria-current="page"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
h2{font-family:var(--f-display);font-weight:700;font-size:1.5rem;line-height:1.15;margin:0 0 10px;text-wrap:balance}
h3{font-family:var(--f-display);font-weight:600;font-size:1.05rem;margin:20px 0 6px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
.card > :last-child{margin-bottom:0}
.muted{color:var(--muted)}
.small{font-size:.86rem}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.notice{border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:.93rem;background:var(--brass-bg);color:var(--fg);border:1px solid var(--brass)}
.notice.bad{background:var(--danger-bg);border-color:var(--danger)}
.rich p{margin:0 0 10px;max-width:65ch}
.rich ul{margin:0 0 12px;padding-left:20px;max-width:65ch}
.rich li{margin-bottom:4px}
.rich h3:first-child{margin-top:0}
form{display:grid;gap:14px}
.field{display:grid;gap:5px;min-width:0}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
label.lab,legend.lab{font-weight:600;font-size:.9rem}
fieldset{border:0;margin:0;padding:0;min-width:0}
input[type=text],input[type=tel],input[type=date],input[type=number],select,textarea{
  width:100%;min-width:0;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;
}
textarea{min-height:120px;resize:vertical}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.88rem;font-weight:500;background:var(--bg);cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip:has(input:checked){background:var(--felt);color:var(--felt-fg);border-color:var(--felt)}
.chip:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}
.tag{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;background:var(--surface2);color:var(--fg)}
.tag.warn{background:var(--brass-bg);color:var(--fg);border:1px solid var(--brass)}
.tag.bad{background:var(--danger-bg);color:var(--fg);border:1px solid var(--danger)}
.btn{font:inherit;font-weight:600;border-radius:9px;padding:10px 16px;border:1px solid var(--felt);background:var(--felt);color:var(--felt-fg);cursor:pointer}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}
.btn.sm{padding:6px 12px;font-size:.88rem}
.btn[disabled]{opacity:.55;cursor:default}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nights{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.night{font-family:var(--f-mono);font-size:.82rem;border:1.5px solid var(--felt);color:var(--fg);border-radius:10px;padding:5px 10px;background:var(--bg)}
.kv{display:grid;grid-template-columns:minmax(90px,max-content) 1fr;gap:6px 14px;margin:12px 0}
.kv dt{color:var(--muted);font-size:.88rem}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.room-box{border:1.5px dashed var(--felt);border-radius:10px;padding:12px 14px;margin:12px 0;background:var(--bg)}
.room-box strong{font-family:var(--f-display);font-size:1.15rem}
details.sec{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
details.sec > summary{cursor:pointer;list-style:none;padding:14px 18px;font-family:var(--f-display);font-weight:600;font-size:1.1rem;display:flex;justify-content:space-between;gap:10px;align-items:center}
details.sec > summary::-webkit-details-marker{display:none}
details.sec > summary::after{content:"+";font-family:var(--f-mono);color:var(--muted)}
details.sec[open] > summary::after{content:"−"}
details.sec > .body{padding:0 18px 18px;display:grid;gap:12px}
.item{border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:10px;min-width:0;background:var(--bg)}
.item h4{margin:0;font-family:var(--f-display);font-size:1.05rem}
.nightrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0}
.nightrow:last-child{border-bottom:0}
.sr{position:absolute;left:-9999px}
.tablebox{overflow-x:auto}

.authbar{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin:0 0 12px;font-size:.88rem;color:var(--muted)}
.authbar strong{color:var(--fg);font-weight:600;overflow-wrap:anywhere}
.linkbtn{font:inherit;font-size:.88rem;color:var(--fg);background:none;border:0;padding:4px 0;text-decoration:underline;cursor:pointer}
a.btn{display:inline-block;text-decoration:none;line-height:1.3}
.rich a{color:var(--felt);font-weight:500;overflow-wrap:anywhere}
