/* GymOS: CrossFit Reigate design system. Green #306D47 + black + white, Barlow / Barlow Condensed, tight corners. */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Condensed:wght@600;700;800&family=Inter:wght@400;500;600&display=swap');
:root{
  --bg:#f2f4f2;--card:#fff;--ink:#111;--muted:#5f6b63;--line:#dfe5e1;--brand:#306D47;--brand2:#3f8a5c;--accent:#b26a00;--danger:#c62828;--info:#2563eb;
  --sb:#000;--sb-ink:#b9c4bc;--radius:6px;--shadow:0 2px 6px rgba(0,0,0,.06);--head:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:Barlow,Arial,Helvetica,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration:none}
#app{display:flex;min-height:100vh}
#sidebar{width:220px;background:var(--sb);color:var(--sb-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto;flex-shrink:0}
.brand{display:flex;gap:10px;align-items:center;padding:16px 14px;border-bottom:1px solid #1a1a1a}
.brand .logo{width:38px;height:38px;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:15px;letter-spacing:.02em}
.brand b{display:block;color:#fff;font-family:var(--head);font-size:19px;letter-spacing:.03em;text-transform:uppercase}.brand small{color:#8a978e;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
#nav a{display:flex;align-items:center;gap:10px;padding:9px 14px;color:var(--sb-ink);border-left:3px solid transparent;font-weight:500}
#nav a:hover{background:#141a16;color:#fff}#nav a.active{background:#141a16;border-left-color:var(--brand);color:#fff;font-weight:700}
#nav a .ic{width:18px;text-align:center;opacity:.75}
#nav .group{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6f7f74;padding:12px 14px 4px}
.sb-foot{margin-top:auto;padding:12px 14px;font-size:12px;color:#8a978e;border-top:1px solid #1a1a1a}.sb-foot a{color:#8a978e}
#main{flex:1;min-width:0;display:flex;flex-direction:column}
#topbar{display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
#topbar .spacer{flex:1}#today{color:var(--muted);font-size:12px}
#globalSearch{width:320px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font:inherit}
#searchResults{position:absolute;top:48px;left:70px;width:360px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:360px;overflow:auto;z-index:30}
#searchResults a{display:block;padding:8px 12px;border-bottom:1px solid var(--line);color:var(--ink)}#searchResults a:hover{background:#f3f4f6}
#searchResults small{color:var(--muted);margin-left:6px}
#menuBtn{display:none}
main#view{padding:20px;max-width:1400px;width:100%}
h1{font-family:var(--head);font-size:30px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin:0 0 6px;line-height:1}h2{font-family:var(--head);font-size:19px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin:18px 0 8px}h3{font-family:var(--head);font-size:16px;font-weight:700;letter-spacing:.02em;margin:0}
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.page-head .spacer{flex:1}
.sub{color:var(--muted);font-size:12px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:bold}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:16px}
.card.tight{padding:0;overflow:hidden}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}
.tile .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.tile .val{font-family:var(--head);font-size:30px;font-weight:800;margin:4px 0;line-height:1}.tile .d{font-size:12px;color:var(--muted)}
.grid.g4 .tile:first-child{background:#000;background-image:repeating-linear-gradient(135deg,transparent 0 14px,rgba(48,109,71,.35) 14px 16px);border-color:#000;color:#fff}.grid.g4 .tile:first-child .lbl,.grid.g4 .tile:first-child .d,.grid.g4 .tile:first-child .val{color:#fff}.grid.g4 .tile:first-child .up{color:#7fd19a}.grid.g4 .tile:first-child .down{color:#ff8a80}
.tile .up{color:var(--brand2)}.tile .down{color:var(--danger)}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#fafafa}
tr.click{cursor:pointer}tr.click:hover{background:#f6fbf8}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;border:1px solid var(--brand);padding:8px 14px;border-radius:4px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.btn:hover{filter:brightness(1.1)}.btn.sm{padding:5px 10px;font-size:12px}.btn.ghost{background:#fff;color:var(--brand)}.btn.danger{background:var(--danger);border-color:var(--danger)}
.btn.grey{background:#fff;color:var(--ink);border-color:var(--line);font-weight:500}.btn.xs{padding:3px 8px;font-size:11px}
.badge.green{background:#e1efe6;color:#245a39}.tag{background:#e8ede9;color:#1f3a2a}
input,select,textarea{border-radius:4px}#globalSearch{border-radius:4px}
.tabs a.active{color:var(--brand);border-bottom-color:var(--brand);font-family:var(--head);font-size:15px;letter-spacing:.03em;text-transform:uppercase}.tabs a{font-family:var(--head);font-size:15px;letter-spacing:.03em;text-transform:uppercase;font-weight:600}
th{font-weight:700;letter-spacing:.08em}
.bars div{border-radius:2px 2px 0 0}.bars div:nth-child(even){background:#111}.bars div:nth-child(even):hover{background:#333}
.modal-card{border-radius:6px}.modal-head h3{font-size:18px;text-transform:uppercase}
.kcard{border-radius:4px}.kcol{border-radius:6px}.ev{border-radius:3px}.cal{border-radius:6px}
.icon-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted)}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:#eef2f5;color:#374151}
.badge.green{background:#dcfce7;color:#166534}.badge.amber{background:#fef3c7;color:#92400e}.badge.red{background:#fee2e2;color:#991b1b}.badge.blue{background:#dbeafe;color:#1e40af}.badge.grey{background:#f3f4f6;color:#6b7280}.badge.purple{background:#ede9fe;color:#5b21b6}
.tag{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;background:#e7f5ee;color:#1f7a4d;margin-right:4px}
form.f{display:grid;gap:12px}form.f .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}form.f .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
label.fl{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
textarea{min-height:80px;resize:vertical}
input[type=checkbox],input[type=radio]{width:auto;margin-right:6px}
.chk{display:flex;align-items:center;gap:6px;font-size:13px}.chks{display:flex;flex-wrap:wrap;gap:8px 16px}
fieldset{border:1px solid var(--line);border-radius:8px;padding:10px 14px}legend{font-size:12px;color:var(--muted);padding:0 6px}
.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto}
.hidden{display:none!important}
#modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:grid;place-items:center;z-index:50;padding:20px}
.modal-card{background:#fff;border-radius:12px;width:min(760px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
#modalBody{padding:18px}
#toast{position:fixed;bottom:20px;right:20px;z-index:60;display:flex;flex-direction:column;gap:8px}
#toast div{background:#1b1f24;color:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow);animation:fade 3.2s forwards}
@keyframes fade{0%{opacity:0;transform:translateY(6px)}10%{opacity:1;transform:none}85%{opacity:1}100%{opacity:0}}
/* kanban */
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px}
.kcol{min-width:230px;width:230px;background:#eef1f3;border-radius:10px;padding:10px;flex-shrink:0}
.kcol h4{margin:0 0 8px;font-size:12px;display:flex;justify-content:space-between;align-items:center}.kcol h4 .dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}
.kcard{background:#fff;border-radius:8px;padding:10px;margin-bottom:8px;box-shadow:var(--shadow);cursor:grab;font-size:13px}.kcard:hover{outline:2px solid #cde7d8}
.kcard small{display:block;color:var(--muted);margin-top:3px}.kcol.over{outline:2px dashed var(--brand2)}
/* calendar */
.cal{display:grid;grid-template-columns:60px repeat(7,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.cal .hd{background:#fafafa;padding:8px 6px;font-size:12px;text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.cal .hd.today{background:#e7f5ee;color:var(--brand);font-weight:bold}
.cal .tm{font-size:11px;color:var(--muted);padding:4px;border-top:1px solid var(--line);height:56px}
.cal .cell{border-left:1px solid var(--line);border-top:1px solid var(--line);height:56px;padding:2px;position:relative;overflow:visible}
.ev{position:absolute;left:2px;right:2px;border-radius:6px;padding:4px 6px;font-size:11px;color:#fff;overflow:hidden;cursor:pointer;line-height:1.25;z-index:2}
.ev b{display:block}.ev.cancelled{opacity:.45;text-decoration:line-through}
.list-ev{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.list-ev .sw{width:6px;height:36px;border-radius:3px}
/* profile */
.profile-head{display:flex;gap:18px;align-items:center}.avatar{width:64px;height:64px;border-radius:50%;background:var(--brand2);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:bold;flex-shrink:0}
.stats{display:flex;gap:28px;margin-left:auto}.stats div{text-align:right}.stats b{display:block;font-size:18px}.stats small{color:var(--muted)}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative;font-size:13px}
.timeline li:before{content:"";position:absolute;left:-6px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--brand2)}
.timeline small{color:var(--muted);display:block}
/* inbox */
.inbox{display:grid;grid-template-columns:300px 1fr;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;min-height:560px}
.convs{border-right:1px solid var(--line);overflow:auto;max-height:70vh}.conv{padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}.conv:hover,.conv.active{background:#f3f8f5}
.conv b{display:block}.conv small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv .t{float:right;font-size:11px;color:var(--muted)}
.thread{display:flex;flex-direction:column;height:70vh}.msgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:70%;padding:8px 12px;border-radius:12px;background:#eef1f3;font-size:13px}.msg.out{align-self:flex-end;background:#dcefe4}.msg small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.compose{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.compose textarea{min-height:44px}
/* charts */
.bars{display:flex;align-items:flex-end;gap:4px;height:160px;padding-top:10px}.bars div{flex:1;background:var(--brand2);border-radius:3px 3px 0 0;position:relative;min-width:6px}
.bars div:hover{background:var(--brand)}.bars div span{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:9px;color:var(--muted)}
.bars div i{position:absolute;top:-16px;left:0;right:0;text-align:center;font-size:9px;font-style:normal;color:var(--ink);display:none}.bars div:hover i{display:block}
.heat{display:grid;grid-template-columns:50px repeat(7,1fr);gap:3px;font-size:11px}.heat .c{height:26px;border-radius:4px;display:grid;place-items:center;color:#fff}
.whiteboard td{padding:6px 12px}.empty{color:var(--muted);text-align:center;padding:30px}
.pill-row{display:flex;gap:6px;flex-wrap:wrap}
.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}
.notice{background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;padding:10px 14px;font-size:13px}
.split{display:grid;grid-template-columns:2fr 1fr;gap:16px}
.menu{position:relative}.menu .dd{position:absolute;right:0;top:36px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:200px;z-index:10;display:none}
.menu.open .dd{display:block}.menu .dd a{display:block;padding:8px 14px;color:var(--ink)}.menu .dd a:hover{background:#f3f4f6}
@media(max-width:900px){#sidebar{position:fixed;left:-240px;transition:.2s;z-index:40}#sidebar.open{left:0}#menuBtn{display:block}.g4,.g3{grid-template-columns:1fr 1fr}.split,.inbox{grid-template-columns:1fr}form.f .row,form.f .row3{grid-template-columns:1fr}#globalSearch{width:160px}.stats{flex-wrap:wrap;gap:14px}}
@media print{#sidebar,#topbar{display:none}}

/* Marketplace */
.mk-note{display:grid;gap:4px}
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:18px}
.mk-card{display:flex;gap:14px;align-items:flex-start;margin:0}
.mk-logo{width:52px;height:52px;flex-shrink:0;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:15px;letter-spacing:.04em}
.mk-body{flex:1;min-width:0}
.mk-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mk-top b{font-size:16px;margin-right:4px}
.mk-ads{display:grid;gap:14px}
.mk-toggle{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.mk-toggle input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--brand)}
.mk-toggle > span{display:grid;gap:2px}
.ac-form{display:grid;grid-template-columns:minmax(0,2fr) auto minmax(0,1.4fr) auto;gap:8px}
@media (max-width:700px){.ac-form{grid-template-columns:minmax(0,1fr)}}
.chk.chk-all{flex-basis:100%;font-weight:600}
/* Feedback button: on every screen of both apps */
.fb-btn{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:0;background:#1a1d1b;color:#fff;font:600 13px/1 inherit;box-shadow:0 6px 18px rgba(0,0,0,.22);cursor:pointer;opacity:.9}
.fb-btn:hover{opacity:1}
.fb-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.member .fb-btn{bottom:calc(92px + env(safe-area-inset-bottom));right:12px;padding:10px;opacity:.95}
body.member .fb-btn span{display:none}
@media (max-width:700px){.fb-btn{padding:9px}.fb-btn span{display:none}}
.fb-types{display:flex;flex-wrap:wrap;gap:8px 16px}
#fbText{width:100%;font:inherit}
/* Long tab lists: wrap neatly on desktop, dropdown on phones */
.tabs-select{display:none}
body:not(.member) .tabs.many{flex-wrap:wrap;border-radius:16px}
@media (max-width:700px){
  .tabs.many{display:none !important}
  .tabs-select{display:block;width:100%;margin:0 0 14px;padding:12px 14px;font:600 15px/1.2 inherit;border:1px solid var(--line);border-radius:12px;background:#fff}
}
.ac-actions{text-align:right}
.ac-actions .btn{margin:2px 0}
@media (max-width:700px){.ac-people thead{display:none}.ac-people tr{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:10px 0;border-bottom:1px solid var(--line)}.ac-people td{border:0;padding:0}.ac-people td.ac-actions{grid-column:1/-1;text-align:left}}
/* Rota: shifts on the week grid */
.rota-wrap{overflow-x:auto;background:#fff;border-radius:14px;box-shadow:var(--shadow,0 6px 22px rgba(10,30,18,.07))}
.rota{display:grid;grid-template-columns:52px repeat(7,minmax(96px,1fr));min-width:740px}
.rota-hd{padding:8px 6px;font-size:12px;text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:#fafafa}
.rota-hd.today{background:#e7f5ee;color:var(--brand);font-weight:700}
.rota-tm{position:relative}.rota-tm span{position:absolute;right:6px;font-size:10.5px;color:var(--muted);transform:translateY(-1px)}
.rota-day{position:relative;border-left:1px solid var(--line);cursor:crosshair;user-select:none;-webkit-user-select:none}
.rota-hr{position:absolute;left:0;right:0;border-top:1px solid #eef1ee}
.rota-shift{position:absolute;border-left:4px solid;border-radius:8px;padding:4px 6px;font-size:11px;line-height:1.25;cursor:pointer;z-index:2;overflow:hidden;display:flex;flex-direction:column}
.rota-shift b{font-size:12px}.rota-shift span{color:var(--muted)}
.rota-class{position:absolute;right:3px;width:56%;border-radius:6px;background:#f4f6f4;border:1px solid #dfe5e0;font-size:10.5px;line-height:1.2;padding:2px 5px;z-index:3;pointer-events:none;overflow:hidden}
.rota-class small{display:block;color:var(--muted)}
.rota-class.none{background:#fdecec;border-color:#f3b4b4}.rota-class.none small{color:#b42318;font-weight:700}
.rota-sel{position:absolute;left:2px;right:2px;background:rgba(48,109,71,.18);border:2px dashed #306D47;border-radius:8px;z-index:4;font-size:11px;font-weight:700;color:#306D47;padding:3px 6px;pointer-events:none}
/* Footfall */
.ff-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.ff-card{display:grid;gap:4px;background:#fff;border-radius:14px;padding:16px 18px;box-shadow:var(--shadow,0 6px 22px rgba(10,30,18,.07));color:inherit;border:2px solid transparent}
.ff-card.on{border-color:var(--brand)}
.ff-card b{font-size:32px;line-height:1;font-family:var(--head,inherit)}
.ff-card small{font-size:12px;color:var(--muted)}.ff-card small.up{color:#1a7f45}.ff-card small.down{color:#b42318}
.ff-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.ff-month h4{margin:0 0 6px;font-size:13px}
.ff-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.ff-cal em{font-style:normal;font-size:10px;color:var(--muted);text-align:center}
.ff-cal i{font-style:normal;aspect-ratio:1;border-radius:6px;background:#f2f4f2;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;line-height:1.1;cursor:default}
.ff-cal i[title]{cursor:pointer}.ff-cal i b{font-size:11px}.ff-cal i span{opacity:.7}
.ff-cal i.out{opacity:.3}.ff-cal i.fut{background:#fafbfa}.ff-cal i.today{outline:2px solid var(--brand)}
.ff-cal i:empty{background:none}
@media (max-width:700px){.ff-cards{grid-template-columns:1fr 1fr}.ff-card b{font-size:26px}}
/* Bar charts with the number always shown above each bar */
.bars.labelled{padding-top:22px}
.bars.labelled div i{display:block;font-size:10px;font-weight:600;white-space:nowrap;top:-17px;color:var(--ink,#0d1210)}
/* Ask GymOS */
.ask-card{display:flex;flex-direction:column;gap:12px;min-height:60vh}
.ask-log{flex:1;display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:62vh;padding:4px 2px}
.ask-msg{max-width:min(720px,92%);padding:12px 15px;border-radius:16px;line-height:1.5;font-size:14.5px}
.ask-msg p{margin:0 0 6px}.ask-msg p:last-child{margin:0}.ask-msg ul{margin:4px 0 6px;padding-left:20px}
.ask-msg.user{align-self:flex-end;background:var(--brand,#306D47);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}
.ask-msg.assistant{align-self:flex-start;background:#f2f4f2;border-bottom-left-radius:4px}
.ask-msg.thinking{display:flex;gap:5px;padding:16px 18px}.ask-msg.thinking i{width:7px;height:7px;border-radius:50%;background:#9aa49d;animation:askDot 1s infinite alternate}
.ask-msg.thinking i:nth-child(2){animation-delay:.2s}.ask-msg.thinking i:nth-child(3){animation-delay:.4s}
@keyframes askDot{to{opacity:.25;transform:translateY(-3px)}}
.ask-table{border-collapse:collapse;margin:6px 0;font-size:13px;background:#fff;border-radius:8px;overflow:hidden}.ask-table th,.ask-table td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left}
.ask-chart{background:#fff;border-radius:10px;padding:10px 12px 4px;margin:6px 0}.ask-chart b{display:block;font-size:13px;margin-bottom:2px}
.ask-empty{margin:auto;text-align:center;display:grid;gap:8px;max-width:520px;padding:30px 0}
.ask-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
.chip-q{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;cursor:pointer}.chip-q:hover{border-color:var(--brand,#306D47)}
.ask-form{display:flex;gap:8px;align-items:flex-end}.ask-form textarea{flex:1;resize:none;border-radius:14px;padding:12px 14px;font:inherit;max-height:160px}
/* Member app: workout coach button (under the feedback button) and its chat sheet */
.ask-btn{position:fixed;right:10px;top:calc(118px + env(safe-area-inset-top));z-index:40;width:34px;height:34px;border-radius:50%;border:0;background:#306D47;color:#fff;font-size:16px;line-height:1;box-shadow:0 6px 18px rgba(0,0,0,.22);cursor:pointer}
body.gate .ask-btn,body.gate .fb-btn{display:none}
.ask-sheet .ask-log{max-height:52vh;min-height:30vh}
.ask-sheet .ask-empty{padding:12px 0}
/* Ask button (top right) and chat panel */
.ask-btn{display:none !important}
.ask-top{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe0d5;background:#eef6f1;color:#245a39;border-radius:999px;padding:7px 13px 7px 10px;font:600 13px/1 inherit;cursor:pointer;white-space:nowrap}
.ask-top:hover{background:#e1efe6}
.ask-top svg,.ask-panel-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.member .ask-top{margin-left:auto}
#askScrim{position:fixed;inset:0;background:rgba(10,15,12,.25);z-index:89}
#askPanel{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:90;background:#fff;box-shadow:-20px 0 50px rgba(0,0,0,.18);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;padding-top:env(safe-area-inset-top)}
#askPanel.in{transform:none}
.ask-panel-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}
.ask-panel-head b{font-size:15px}.ask-panel-ic{color:#306D47;display:flex}
.ask-x{font-size:22px;line-height:1;background:none;border:0;cursor:pointer;padding:2px 6px}
.ask-panel-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px 14px calc(14px + env(safe-area-inset-bottom));min-height:0}
.ask-panel-body .ask-log{flex:1;max-height:none;min-height:0}
@media (max-width:700px){body:not(.member) .ask-top span{display:none}body:not(.member) .ask-top{padding:7px 9px}}

/* Bug report button and form: red so it reads as "something's wrong", screenshot drop zone, thumbnails */
.fb-btn{background:#b42318}
.fb-drop{border:2px dashed var(--line);border-radius:10px;padding:14px;text-align:center;display:grid;gap:4px;color:var(--muted);font-size:13px}
.fb-drop b{color:var(--ink);font-size:14px}.fb-drop.on,.fb-drop:focus{border-color:var(--brand);outline:none;background:rgba(48,109,71,.06)}
.fb-pick{color:var(--brand);text-decoration:underline;cursor:pointer}
.fb-shots{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fb-shot{position:relative}.fb-shot img{width:96px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.fb-shot button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#1a1d1b;color:#fff;cursor:pointer;line-height:1}
.fb-thumbs{display:flex;gap:6px;margin-top:6px}.fb-thumbs img{width:64px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
