/* Everdream Admin - warm, big, calm. No web fonts, no library. */
:root{
  /* Everdream's own palette: stone, sepia and bronze from the spa menu */
  --sand:#d9cdbb;--ivory:#efe7d9;--ink:#3a3129;--muted:#7a6b5b;--line:#c7b9a4;--line-soft:#ddd2c1;
  --green:#6d5a45;--green-ink:#4a3d31;--green-soft:#e6dcc8;--green-tint:#ece4d6;
  --bronze:#a0864f;--bronze-soft:#efe4c9;
  --terracotta:#9b4f3b;--terracotta-soft:#efd9cf;--amber:#b07f2a;--amber-soft:#f0e2c4;--blue:#6f7f8a;--blue-soft:#dfe4e6;
  --radius:14px;--radius-sm:10px;--shadow:0 1px 2px rgba(58,49,41,.08),0 8px 24px rgba(58,49,41,.08);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --row:24px; /* one 15-minute calendar row */
}
*{box-sizing:border-box}html{color-scheme:light;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sand);color:var(--ink);font:17px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--green)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9fc3ae;outline-offset:2px}
main{max-width:1100px;margin:0 auto;padding:16px 16px 96px}main.wide{max-width:1500px}
h1{font:600 26px/1.2 var(--serif);text-transform:uppercase;letter-spacing:.14em;margin:12px 0 16px;color:var(--green-ink)}
h2{font:600 18px/1.3 var(--serif);text-transform:uppercase;letter-spacing:.12em;margin:28px 0 10px;color:var(--green-ink)}
h3{font:600 16px/1.3 var(--serif);letter-spacing:.06em;margin:14px 0 8px;color:var(--muted);text-transform:uppercase}
p{margin:8px 0}.muted{color:var(--muted)}.right{text-align:right}small{font-size:14px}
code{background:var(--ivory);border:1px solid var(--line);padding:2px 6px;border-radius:6px;font-size:15px;word-break:break-all}
pre{font:15px/1.45 ui-monospace,Menlo,monospace;white-space:pre-wrap}
/* top bar (desktop) */
.top{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:12px 18px;background:var(--ivory);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{font:600 20px/1 var(--serif);text-transform:uppercase;letter-spacing:.22em;text-decoration:none;color:var(--green-ink)}.brand small{display:block;font:500 9px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;letter-spacing:.3em;color:var(--muted);margin-top:5px}
.top nav{display:flex;gap:4px;flex-wrap:wrap}.nav{padding:9px 13px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:500}.nav.active,.nav:hover{background:var(--bronze-soft);color:var(--green-ink)}
.search input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;min-width:220px;font:inherit;background:#fff}
.who{margin-left:auto;color:var(--muted);font-size:15px;display:flex;align-items:center;gap:8px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#c9bfb0}.dot.ok{background:#3aa66a}.dot.bad{background:var(--terracotta)}
/* bottom tab bar (phones) */
.tabs{display:none;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--ivory);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px rgba(60,40,20,.08)}
.tabs a{flex:1;text-align:center;text-decoration:none;color:var(--muted);font-size:13px;padding:6px 2px;border-radius:10px;line-height:1.1}
.tabs a span{display:block;font-size:22px;margin-bottom:2px}.tabs a.active{color:var(--green-ink);background:var(--bronze-soft)}
/* cards, grid, flash */
.card{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 14px;box-shadow:var(--shadow)}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.flash{background:var(--green-soft);border:1px solid #c6dccd;color:var(--green-ink);padding:12px 14px;border-radius:12px;margin-bottom:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.flash.err{background:var(--terracotta-soft);border-color:#ecc7b8;color:#7a3520}.flash button{background:none;border:0;font-size:20px;color:inherit;cursor:pointer;padding:0 4px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--green);color:#f7f1e6;border:0;padding:10px 18px;border-radius:12px;font:inherit;font-weight:600;letter-spacing:.02em;cursor:pointer;text-decoration:none;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.btn:hover{background:var(--green-ink)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.secondary:hover{background:var(--green-tint)}
.btn.danger{background:var(--terracotta)}.btn.small{min-height:36px;padding:6px 12px;font-size:15px;font-weight:500}
form.inline{display:inline}
/* forms */
.field{display:block;margin:12px 0}.field span{display:block;font-size:15px;color:var(--muted);margin-bottom:5px;font-weight:500}
.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:18px;background:#fff}
.field small{display:block;color:var(--muted);font-size:14px;margin-top:4px}.check{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:17px}.check input{width:22px;height:22px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row .field{flex:1;min-width:160px}
/* tables -> cards on phones */
.scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;background:var(--ivory);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.table th,.table td{text-align:left;padding:12px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:16px}.table th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;background:#e7dccb;font-family:var(--serif)}
.table tr:last-child td{border-bottom:0}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:14px;background:#eee6d8;font-weight:500}
.s-confirmed,.s-sent{background:var(--green-soft);color:var(--green-ink)}.s-cancelled,.s-failed,.s-suppressed{background:var(--terracotta-soft);color:#7a3520}
.s-completed{background:var(--blue-soft);color:#2f4f73}.s-no_show,.s-held,.s-pending_approval{background:var(--amber-soft);color:#6b4a12}.s-queued{background:#eee6d8}
/* next up */
.nextup{background:var(--green-ink);color:#f3ecdf;border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}
.nextup .lbl{font-size:13px;text-transform:uppercase;letter-spacing:.2em;opacity:.8}.nextup .big{font:600 26px/1.2 var(--serif);letter-spacing:.04em;margin:6px 0 4px}.nextup a{color:#f3ecdf}
/* calendar on real rows */
.calbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;position:sticky;top:0;background:var(--sand);padding:8px 0;z-index:10}
.calbar b{font-size:20px}.calbar .spacer{flex:1}
.cal{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.cal-head{display:flex;border-bottom:1px solid var(--line);background:#e7dccb}.cal-head .t{width:56px;flex:none}
.cal-head .h{flex:1;text-align:center;padding:10px 4px;font-weight:600;font-size:16px;border-left:1px solid var(--line-soft)}
.cal-head .h a{text-decoration:none;color:var(--ink)}.cal-head .h.today{background:var(--bronze-soft);color:var(--green-ink)}
.cal-body{display:flex}.cal-times{width:56px;flex:none}.cal-times .r{height:var(--row);font-size:13px;color:var(--muted);text-align:right;padding-right:6px;line-height:1;position:relative}
.cal-times .r.hour{border-top:1px solid var(--line-soft)}.cal-times .r.hour span{position:relative;top:-7px}
.cal-col{flex:1;position:relative;border-left:1px solid var(--line-soft);min-width:0}
.slot{display:block;height:var(--row);border-top:1px solid transparent}.slot.hour{border-top-color:var(--line-soft)}.slot.half{border-top-color:#f1eadf}
.slot.free{cursor:pointer}.slot.free:hover{background:var(--bronze-soft)}
.slot.closed{background:repeating-linear-gradient(135deg,#f5efe5,#f5efe5 6px,#faf5ec 6px,#faf5ec 12px)}
.slot.block{background:#eee6d8}.slot.block.sick{background:var(--terracotta-soft)}.slot.block.lunch,.slot.block.break{background:var(--amber-soft)}
.slot.past{opacity:.75}
.slotlbl{position:absolute;left:6px;font-size:12px;color:var(--muted);pointer-events:none;line-height:1;margin-top:3px}
.appt{position:absolute;left:4px;right:4px;border-radius:10px;padding:6px 8px 6px 12px;font-size:15px;line-height:1.25;text-decoration:none;color:var(--ink);background:var(--bronze-soft);overflow:hidden;box-shadow:0 1px 3px rgba(58,49,41,.16);border-left:5px solid var(--bronze)}
.appt.s-completed{background:var(--blue-soft);border-left-color:var(--blue)}.appt.s-no_show,.appt.s-held,.appt.s-pending_approval{background:var(--amber-soft);border-left-color:var(--amber)}
.appt b{display:block;font-size:16px}.appt .sub{color:var(--muted);font-size:13px;display:block}.appt.busy{background:#eee6d8;border-left-color:#c9bfb0;color:var(--muted)}
.now{position:absolute;left:0;right:0;height:2px;background:var(--terracotta);z-index:3;pointer-events:none}.now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--terracotta)}
.month{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.month .d{background:var(--ivory);border:1px solid var(--line);border-radius:10px;min-height:72px;padding:6px;font-size:14px}.month .d.other{opacity:.5}.month .d a{text-decoration:none}.month .n{font-weight:700;font-size:16px}.month .d.today{border-color:var(--bronze);background:var(--bronze-soft)}
/* time pills (booking form) */
.pills{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.pills label{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-size:17px}
.pills input{width:18px;height:18px}.pills label:has(input:checked){background:var(--green);color:#f7f1e6;border-color:var(--green)}
/* chat */
.chat{max-width:600px;margin:0 auto;background:#e5ddd5;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.chat .chead{background:#075e54;color:#fff;padding:14px 16px;display:flex;gap:12px;align-items:center}.chat .chead .av{width:40px;height:40px;border-radius:50%;background:#128c7e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.chat .chead b{font-size:18px}.chat .chead small{display:block;opacity:.85;font-size:13px}
.chat .body{padding:12px 12px 18px;display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow-y:auto}
.chat .day{align-self:center;background:#d4e3ea;color:#3b4a52;font-size:13px;padding:4px 12px;border-radius:8px;margin:8px 0}
.chat .sys{align-self:center;background:#fdf3c7;color:#5b4b12;font-size:13px;padding:4px 12px;border-radius:8px;max-width:85%;text-align:center}
.chat .msg{max-width:82%;padding:8px 10px 5px;border-radius:10px;font-size:16px;white-space:pre-wrap;word-wrap:break-word;box-shadow:0 1px 0 rgba(0,0,0,.08);position:relative}
.chat .in{align-self:flex-start;background:#fff;border-top-left-radius:2px}.chat .out{align-self:flex-end;background:#dcf8c6;border-top-right-radius:2px}
.chat .meta{display:block;text-align:right;font-size:11px;color:#7a8a83;margin-top:3px}.chat .meta .tick{color:#4fc3f7}.chat .lbl{display:block;font-size:12px;color:#c2185b;font-weight:600}
.chat .redacted{color:#7a8a83;font-style:italic}
/* client profile */
.avatar{width:56px;height:56px;border-radius:50%;background:var(--bronze-soft);color:var(--green-ink);display:inline-flex;align-items:center;justify-content:center;font:600 24px var(--serif);margin-right:12px;vertical-align:middle;border:1px solid var(--line)}
.qa{display:flex;flex-wrap:wrap;gap:8px;margin:0}.qa .chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:15px}.qa .chip b{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}
@media (max-width:700px){
  body{font-size:18px}main{padding:12px 12px 100px}
  .top nav,.top .search,.top .who span.name{display:none}.top{padding:10px 14px}.tabs{display:flex}
  .table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}
  .table tr{border-bottom:8px solid var(--sand)}.table td{border:0;padding:6px 14px;font-size:17px}.table td:first-child{padding-top:12px;font-weight:600}.table td:last-child{padding-bottom:12px}
  .table td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .table td:empty{display:none}
  .cal-times{width:50px}.cal-head .t{width:50px}
}
@media print{.top,.tabs,.calbar,.btn,form,.flash{display:none!important}main{max-width:none;padding:0}body{background:#fff}.card,.cal{box-shadow:none}}
