/* Setsmith brand guidelines v1.0 — dashboard + client portal.
   Colour: Iron #0F1115 · Lime #C6F135 (fills only, always Iron text) · Moss #4B7A14 (links, green text on white) · Chalk #FFFFFF · Concrete #F2F3F5
   Type: Sora + JetBrains Mono labels. Flat colour, no gradients. One highlighted phrase / lime primary button per screen.
   In the client portal, --accent / --on-accent are overridden per coach (see page_start()). */
:root {
  --iron:#0F1115; --lime:#C6F135; --moss:#4B7A14; --chalk:#FFFFFF; --concrete:#F2F3F5;
  --bg:var(--concrete); --card:var(--chalk); --ink:var(--iron); --muted:#5A5F6B; --border:#E4E6EA; --soft:#A3A8B3;
  --accent:var(--lime); --on-accent:var(--iron);     /* primary fill + its text colour */
  --link:var(--moss); --chart:var(--moss); --brand:var(--iron);
  --radius:16px; --radius-sm:10px;
  --font-head:Sora,system-ui,sans-serif; --font-body:Sora,system-ui,-apple-system,"Segoe UI",sans-serif; --font-mono:"JetBrains Mono",ui-monospace,monospace;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:400 15.5px/1.55 var(--font-body); -webkit-font-smoothing:antialiased; }
a { color:var(--link); text-decoration:none; font-weight:600; }
a:hover { color:var(--ink); text-decoration:underline; }
h1,h2,h3 { font-family:var(--font-head); letter-spacing:-.04em; line-height:1.1; margin:0 0 .6rem; }
h1 { font-size:1.9rem; font-weight:800; letter-spacing:-.05em; }
h2 { font-size:1.35rem; font-weight:800; margin-top:1.8rem; }
h3 { font-size:1.05rem; font-weight:700; letter-spacing:-.03em; }
code { background:var(--bg); border:1px solid var(--border); padding:2px 6px; border-radius:6px; word-break:break-all; font:500 .82rem var(--font-mono); }

/* Wordmark (guidelines): set + lime highlighter block "smith" */
.ss-logo { font:800 28px/1 var(--font-head); letter-spacing:-.05em; color:var(--iron); display:inline-flex; text-decoration:none; }
.ss-logo b { font-weight:inherit; background:var(--lime); color:var(--iron); padding:0 .14em .1em; margin-left:.04em; border-radius:.1em; }
.ss-logo--dark { color:var(--chalk); }
.ss-logo:hover { text-decoration:none; color:var(--iron); }
.ss-logo.sm { font-size:21px; }

.wrap { max-width:960px; margin:0 auto; padding:24px 16px; }
.narrow { max-width:420px; margin:8vh auto; padding:0 16px; }
.nav { display:flex; gap:20px; align-items:center; flex-wrap:wrap; border-bottom:1px solid var(--border); padding:14px 16px; background:var(--card); }
.nav a { color:var(--ink); font-weight:500; font-size:.92rem; }
.nav a:hover { text-decoration:underline; text-underline-offset:4px; }
.nav .brand { font-weight:700; margin-right:auto; color:var(--ink); }
.nav .ss-logo { margin-right:auto; }
.nav a.on, .menu summary.on { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:7px; }

/* Dropdown groups (details/summary, no JS needed to open) */
.menu { position:relative; }
.menu summary { list-style:none; cursor:pointer; font-weight:500; font-size:.92rem; display:flex; align-items:center; gap:6px; padding:4px 0; }
.menu summary::-webkit-details-marker { display:none; }
.menu summary::after { content:"▾"; font-size:.7rem; opacity:.6; }
.menu[open] summary::after { content:"▴"; }
.menu-pop { position:absolute; top:calc(100% + 10px); left:-12px; min-width:200px; background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:6px; z-index:60; display:flex; flex-direction:column; box-shadow:0 8px 24px rgba(15,17,21,.12); }
.menu.right .menu-pop { left:auto; right:-12px; }
.menu-pop a, .menu-pop button { padding:9px 12px; border-radius:8px; display:block; width:100%; text-align:left; }
.menu-pop a:hover { background:var(--bg); text-decoration:none; }
.card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:18px; margin-bottom:16px; }
.muted { color:var(--muted); font-size:.9rem; }
.label-mono { font:500 .72rem var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.row { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }

label { display:block; font-size:.84rem; font-weight:600; margin:14px 0 5px; }
input[type=text], input[type=email], input[type=password], input[type=color], input[type=date], input[type=file], select, textarea {
  width:100%; padding:10px 12px; border:1.5px solid var(--border); border-radius:var(--radius-sm); background:var(--chalk); color:inherit; font:inherit;
}
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--iron); }
input[type=color] { height:42px; padding:3px; }
textarea { min-height:90px; resize:vertical; }
input[type=checkbox], input[type=radio] { width:auto; margin-right:8px; accent-color:var(--iron); }
label.inline { display:flex; align-items:center; font-weight:500; margin:8px 0; }

/* Buttons: primary = accent fill (Lime by default) with readable text · .dark = Iron fill · .ghost = 1.5px outline */
.btn, button { background:var(--accent); color:var(--on-accent); border:1.5px solid var(--accent); border-radius:var(--radius-sm); padding:10px 18px;
  font:700 .9rem var(--font-body); cursor:pointer; display:inline-block; text-decoration:none; }
.btn:hover { text-decoration:none; color:var(--on-accent); filter:brightness(.96); }
.btn.dark, button.dark { background:var(--iron); border-color:var(--iron); color:var(--chalk); }
.btn.dark:hover { color:var(--chalk); }
.btn.ghost, button.ghost { background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.btn.ghost:hover { color:var(--ink); background:var(--card); }
button.danger { background:#B42318; border-color:#B42318; color:#fff; }
button:focus-visible, .btn:focus-visible, a:focus-visible, summary:focus-visible { outline:3px solid var(--iron); outline-offset:2px; }
.hp { position:absolute; left:-9999px; }

.flash { padding:12px 16px; border-radius:var(--radius-sm); margin-bottom:16px; font-weight:600; }
.flash.ok { background:var(--lime); color:var(--iron); }
.flash.err { background:#FDE7E4; color:#8A1C12; }

.bubble { padding:8px 12px; border-radius:10px; margin:8px 0; font-size:.92rem; background:var(--bg); border:1px solid var(--border); }
.bubble.coach { border-left:3px solid var(--accent); }
/* Tag = small mono label. .live = the highlighter (Lime, Iron text). */
.tag { display:inline-block; font:500 .68rem var(--font-mono); letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:6px; background:var(--bg); border:1px solid var(--border); color:var(--muted); }
.tag.live { background:var(--lime); color:var(--iron); border-color:transparent; }
.price { font-weight:700; }

/* Calendar */
.cal { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.cal-h { text-align:center; font:500 .68rem var(--font-mono); color:var(--muted); padding:4px 0; text-transform:uppercase; letter-spacing:.08em; }
.cal-d { background:var(--card); border:1px solid var(--border); border-radius:8px; min-height:92px; padding:4px; overflow:hidden; }
.cal-d.blank { background:transparent; border-color:transparent; }
.cal-d.today { border:2px solid var(--ink); }
.cal-n { font-size:.8rem; font-weight:700; margin-bottom:3px; display:flex; justify-content:space-between; }
.cal-n a { font-weight:700; color:var(--ink); }
.cal-add { opacity:.55; }
.cal-ev { display:block; font-size:.7rem; line-height:1.25; padding:2px 5px; border-radius:5px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-decoration:none; background:var(--bg); color:var(--ink); border:1px solid var(--border); font-weight:500; }
a.cal-ev:hover { text-decoration:none; filter:brightness(.96); color:var(--ink); }
.cal-ev.done { background:var(--lime); color:var(--iron); border-color:transparent; }
.cal-ev.planned { background:var(--iron); color:#fff; border-color:transparent; }
a.cal-ev.planned:hover { color:#fff; }
.cal-ev.skipped { background:var(--border); color:var(--muted); text-decoration:line-through; }
.cal-ev.info { background:transparent; color:var(--muted); border-color:transparent; padding-left:0; }
@media (max-width:640px) {
  .cal { gap:2px; }
  .cal-d { min-height:64px; padding:2px; }
  .cal-ev { font-size:.6rem; padding:1px 3px; }
}

/* Food search results */
.foodrow { border-top:1px solid var(--border); padding:14px 0; display:flex; flex-direction:column; gap:8px; }
.foodrow:first-of-type { border-top:0; }
.foodtotal { font:500 .78rem var(--font-mono); }
