/* Lusitano Retreat booking — earthy theme matching the main site palette. */
:root{
  --bg:#f7f3ea; --ink:#1c1e22; --accent:#8a3424; --accent2:#a8472f;
  --card:#fff; --line:#e0d5be; --muted:#8a8f86; --good:#2f6f4f;
}
*{box-sizing:border-box}
body{font:16px/1.6 -apple-system,Segoe UI,Roboto,sans-serif;margin:0;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:Georgia,serif;line-height:1.2;color:var(--ink)}
h1{font-size:1.9rem;margin:.2rem 0 .6rem}
h2{font-size:1.3rem;margin:1.4rem 0 .5rem;color:var(--accent)}

header.site,footer.site{max-width:960px;margin:0 auto;padding:1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
header.site .brand{font:700 1.2rem Georgia,serif;color:var(--accent)}
header.site .lang{margin-left:auto;display:flex;gap:.5rem;align-items:center;font-size:.85rem}
header.site .lang a{padding:.15rem .4rem;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
header.site .lang a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
header.site .lang a.home{border:none;color:var(--muted)}
footer.site{color:var(--muted);font-size:.85rem;border-top:1px solid var(--line);margin-top:2rem}

.wrap{max-width:960px;margin:0 auto;padding:1rem 1rem 2rem}
.lead{font-size:1.05rem;color:#4a4e48}
.muted{color:var(--muted)}
.notice{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.7rem 1rem}
.notice.err{border-color:var(--accent);color:var(--accent);background:#fdf6f3}

/* unit grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;margin-top:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.card .thumb img,.card .ph{display:block;width:100%;height:170px;object-fit:cover;background:#ece4d2}
.card h2{margin:.6rem .8rem .2rem;font-size:1.1rem}
.card .meta{margin:0 .8rem;color:#4a4e48;font-size:.9rem}
.card .desc{margin:.4rem .8rem .8rem;color:#5b5f57;font-size:.92rem}
.card .btn{margin:auto .8rem .9rem}

.btn,button{display:inline-block;background:var(--accent);color:#fff;border:none;border-radius:8px;
  padding:.6rem 1rem;font:inherit;font-weight:600;cursor:pointer}
.btn:hover,button:hover{background:var(--accent2);text-decoration:none}
button.primary{font-size:1.05rem;padding:.8rem 1.2rem;width:100%}

/* unit detail */
.unit .hero{width:100%;max-height:380px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.unit .meta{color:#4a4e48}
.amenities{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.amenities li{background:#efe7d6;border-radius:20px;padding:.2rem .7rem;font-size:.82rem;color:#5b4a3c}
.rules{color:var(--muted);font-size:.9rem}

.booker{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem;margin-top:1.5rem}
form.dates{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end}
form label{display:flex;flex-direction:column;font-size:.85rem;color:#4a4e48;gap:.25rem}
input,textarea{font:inherit;padding:.5rem;border:1px solid var(--line);border-radius:8px;background:#fff}
fieldset.extras{border:1px solid var(--line);border-radius:8px;flex-basis:100%;margin:0}
fieldset.extras legend{font-size:.85rem;color:var(--accent);padding:0 .4rem}
label.chk{flex-direction:row;align-items:center;gap:.4rem;font-size:.9rem;color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.summary{margin-top:1rem}
.summary table{width:100%;border-collapse:collapse;background:#faf7f0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.summary td{padding:.45rem .8rem;border-top:1px solid var(--line)}
.summary td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.summary tr.tot td{font-weight:700;font-size:1.05rem}
.summary tr.dep td{color:var(--accent)}
form.details{margin-top:1rem;display:flex;flex-direction:column;gap:.7rem}
form.details .terms{font-size:.85rem;color:var(--muted);margin:.2rem 0}

.confirm .refbox{background:#eef5ee;border:1px solid #cfe3cf;color:var(--good);border-radius:8px;padding:.7rem 1rem;font-size:1.1rem}

/* admin */
.admin-wrap{max-width:1040px;margin:0 auto;padding:1rem}
table.data{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:.9rem}
table.data th,table.data td{padding:.45rem .6rem;border-top:1px solid var(--line);text-align:left}
table.data th{background:#efe7d6;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:20px;font-size:.78rem;font-weight:600}
.tag.pending{background:#fff3d6;color:#8a6d1a}
.tag.confirmed{background:#e2efe2;color:#2f6f4f}
.tag.paid{background:#dff0ff;color:#1a5a8a}
.tag.cancelled{background:#f3e0dd;color:#8a3424}
.adminbar{display:flex;gap:1rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.adminbar a{font-weight:600}
form.inline{display:inline}
button.mini{padding:.25rem .55rem;font-size:.8rem;border-radius:6px}
button.ghost{background:#efe7d6;color:var(--ink)}

/* admin calendar */
.cal-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.3rem}
.cal-head h1{margin:0}
.cal-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
table.cal{border-collapse:collapse;font-size:.78rem;min-width:100%}
table.cal th,table.cal td{border:1px solid #efe7d6;text-align:center;width:24px;height:26px;padding:0}
table.cal th.u,table.cal td.u{position:sticky;left:0;background:#efe7d6;text-align:left;padding:0 .5rem;width:150px;min-width:150px;white-space:nowrap;z-index:1;font-weight:600}
table.cal th span{display:block;font-size:.6rem;color:var(--muted);font-weight:400}
table.cal th.we{background:#f0ead9}
table.cal th.now{background:var(--accent);color:#fff}
table.cal td.we{background:#faf7f0}
.cal td.cell{color:#2b2b2b}
.cal td.pending{background:#ffe08a}
.cal td.confirmed{background:#9bd0a6}
.cal td.paid{background:#9ec9ec}
.cal td.block{background:#d9cfc0;color:#7a6f60}
.cal-key{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin:0 .15rem 0 .7rem}
.cal-key.pending{background:#ffe08a}.cal-key.confirmed{background:#9bd0a6}.cal-key.paid{background:#9ec9ec}.cal-key.block{background:#d9cfc0}
