:root { --ink:#0b0b0d; --paper:#f0eee9; --plum:#74274d; --teal:#276973; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.5 Arial,sans-serif; }
a { color:inherit; }
.admin-header { height:84px; padding:0 clamp(20px,4vw,64px); display:flex; align-items:center; justify-content:space-between; background:var(--ink); color:white; }
.admin-header img { display:block; width:120px; height:auto; }
.admin-header nav { display:flex; align-items:center; gap:28px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.admin-header nav a { padding:8px 0; text-decoration:none; border-bottom:1px solid transparent; }
.admin-header nav a.active { border-color:white; }
.admin-header nav b { display:inline-grid; place-items:center; min-width:19px; height:19px; margin-left:4px; border-radius:50%; background:var(--plum); font-size:.62rem; }
.auth-shell { min-height:calc(100vh - 84px); display:grid; place-items:center; padding:32px 20px; }
.auth-card { width:min(520px,100%); padding:clamp(34px,6vw,64px); background:white; box-shadow:0 22px 70px rgba(0,0,0,.1); }
.eyebrow { margin:0 0 22px; color:var(--plum); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
h1,h2,h3 { font-family:Arial,sans-serif; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(3rem,7vw,6rem); line-height:.84; letter-spacing:-.055em; }
.auth-card > p:not(.eyebrow) { margin:30px 0; color:#555; }
form { display:grid; gap:18px; }
label { display:grid; gap:7px; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
input,select { width:100%; padding:13px 0; border:0; border-bottom:1px solid #aaa; border-radius:0; background:transparent; font:inherit; }
input:focus,select:focus { outline:0; border-color:var(--plum); box-shadow:0 1px var(--plum); }
button { border:0; padding:15px 18px; background:var(--ink); color:white; cursor:pointer; font:700 .7rem Arial; letter-spacing:.08em; text-transform:uppercase; }
button:hover { background:var(--plum); }
.auth-card button { margin-top:10px; display:flex; justify-content:space-between; }
.alert { margin:24px 0; padding:14px 16px; }
.error { background:#f8dfe4; color:#7a1730; }
.success { background:#dcece5; color:#175c3d; }
.dashboard { padding:clamp(46px,7vw,100px) clamp(20px,4vw,64px); }
.mail-check { margin:0 0 34px; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:30px; background:#e2e8e5; }
.mail-check h2 { margin:0; font-size:1.2rem; }
.mail-check p:not(.eyebrow) { margin:7px 0 0; color:#555; }
.mail-check form { flex:0 0 auto; }
.dashboard-title { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:60px; }
.summary { display:grid; grid-template-columns:repeat(3,1fr); min-width:min(500px,50vw); border-top:1px solid #aaa; }
.summary.summary-four { grid-template-columns:repeat(4,1fr); min-width:min(650px,55vw); }
.summary div { padding:20px 14px 0; display:grid; }
.summary strong { color:var(--plum); font-size:2.6rem; line-height:1; }
.summary span { margin-top:7px; font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:clamp(30px,5vw,76px); align-items:start; }
.section-heading { display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; border-bottom:1px solid #aaa; }
.section-heading h2 { margin:0; font-size:1.1rem; }
.section-heading span { color:#777; font-size:.72rem; text-transform:uppercase; }
.booking-list { display:grid; gap:18px; margin-top:18px; }
.booking-card { padding:26px; background:white; border-left:5px solid #d49a33; }
.booking-card.status-confirmed { border-color:#2b8060; }
.booking-card.status-declined { border-color:#a44555; opacity:.75; }
.booking-top { display:flex; justify-content:space-between; gap:24px; }
.status { color:var(--plum); font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.booking-card h3 { margin:5px 0 0; font-size:1.45rem; }
.booking-card p { margin:4px 0; }
.booking-date { text-align:right; display:grid; }
.booking-date span { color:#666; }
dl { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:24px 0; padding:18px 0; border-block:1px solid #ddd; }
dl div { min-width:0; }
dt { color:#777; font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
dd { margin:5px 0 0; overflow-wrap:anywhere; }
.details { white-space:normal; }
.email-state { width:max-content; margin-top:16px !important; padding:7px 10px; font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.email-state.sent { background:#dcece5; color:#175c3d; }
.email-state.failed { background:#f8dfe4; color:#7a1730; }
.booking-actions { display:flex; flex-wrap:wrap; margin-top:22px; }
.booking-actions button { padding:11px 14px; }
button.secondary { background:var(--teal); }
button.danger { background:transparent; color:#8c2439; border:1px solid #c99; }
.availability-card,.blocked-card { padding:28px; background:white; }
.availability-card { position:sticky; top:24px; }
.availability-card h2 { margin:0 0 25px; font-size:2rem; }
.blocked-card { margin-top:20px; }
.blocked-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 0; border-bottom:1px solid #ddd; }
.blocked-row div { display:grid; }
.blocked-row span { color:#666; font-size:.75rem; }
button.remove { padding:7px; background:transparent; color:var(--plum); }
.empty { color:#777; padding:25px 0; }
.chat-admin { min-height:650px; display:grid; grid-template-columns:minmax(260px,360px) minmax(0,1fr); overflow:hidden; background:var(--ink); color:white; }
.chat-list { max-height:760px; overflow:auto; border-right:1px solid #303035; }
.chat-list-item { position:relative; display:grid; gap:7px; padding:20px 22px; border-bottom:1px solid #29292d; color:white; text-decoration:none; }
.chat-list-item:hover,.chat-list-item.active { background:#252529; }
.chat-list-item.unread::before { content:""; position:absolute; left:7px; top:27px; width:7px; height:7px; border-radius:50%; background:#cf5d91; }
.chat-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.chat-list-heading strong { font-size:.95rem; text-transform:uppercase; }
.chat-list-heading i { color:#bdbdc4; font-size:.62rem; font-style:normal; letter-spacing:.08em; text-transform:uppercase; }
.chat-list-item > span:not(.chat-list-heading),.chat-list-item time { color:#aaa; font-size:.75rem; }
.chat-thread { min-width:0; display:grid; grid-template-rows:auto minmax(360px,1fr) auto; }
.chat-meta { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:24px 28px; border-bottom:1px solid #303035; }
.chat-meta .eyebrow { margin-bottom:8px; color:#cf5d91; }
.chat-meta h2 { margin:0; font-size:1.8rem; }
.chat-meta > div:last-child { display:grid; gap:5px; color:#aaa; text-align:right; font-size:.75rem; }
.chat-meta a { color:white; }
.chat-messages { overflow:auto; padding:28px; background:#111114; }
.admin-bubble { width:max-content; max-width:min(72%,680px); margin:0 0 12px; padding:13px 16px; background:#29292e; line-height:1.45; overflow-wrap:anywhere; }
.admin-bubble.visitor { margin-left:auto; background:var(--teal); }
.admin-bubble small { display:block; margin-top:8px; opacity:.6; font-size:.64rem; }
.chat-reply { padding:18px 22px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; border-top:1px solid #303035; }
.chat-reply textarea { min-height:58px; padding:13px; resize:vertical; border:1px solid #444; background:#1b1b1f; color:white; font:inherit; }
.chat-reply textarea:focus { outline:1px solid #cf5d91; }
.chat-empty { display:grid; place-items:center; color:#777; }
@media(max-width:1050px){.summary.summary-four{min-width:0}.chat-admin{grid-template-columns:300px minmax(0,1fr)}}
@media(max-width:900px){.dashboard-title{align-items:start;flex-direction:column}.summary,.summary.summary-four{width:100%;min-width:0}.admin-grid{grid-template-columns:1fr}.availability-card{position:relative;top:0}.chat-admin{grid-template-columns:1fr}.chat-list{max-height:260px;border-right:0;border-bottom:1px solid #303035}.chat-thread{min-height:650px}}
@media(max-width:700px){.admin-header{height:auto;min-height:84px;align-items:flex-start;padding-block:18px}.admin-header nav{justify-content:flex-end;flex-wrap:wrap;gap:10px 18px}.admin-header nav a:nth-last-child(2){display:none}.summary.summary-four{grid-template-columns:repeat(2,1fr)}.chat-meta{align-items:start;flex-direction:column}.chat-meta>div:last-child{text-align:left}.chat-reply{grid-template-columns:1fr}.admin-bubble{max-width:90%}}
@media(max-width:620px){.summary{grid-template-columns:repeat(3,1fr)}.summary strong{font-size:2rem}.mail-check{align-items:flex-start;flex-direction:column}.booking-top{flex-direction:column}.booking-date{text-align:left}dl{grid-template-columns:1fr}.booking-card{padding:20px}}
