/* Gymveo · staff app chrome (Desk surface). */
/* ---- desk chrome ---- */
.d-top{height:58px;flex:none;display:flex;align-items:center;gap:18px;padding:0 22px;border-bottom:1px solid var(--line);background:var(--page)}
.d-gym{display:flex;align-items:center;gap:9px;font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
[dir="rtl"] .d-gym{letter-spacing:0}
.d-gym svg{width:20px;height:20px}
.d-nav{display:flex;gap:2px;font-size:14.5px}
.d-nav span{padding:7px 12px;border-radius:8px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}
.d-nav span.on{color:var(--text);background:var(--panel);font-weight:600;box-shadow:0 1px 0 var(--line)}
.d-nav span .n{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--live);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.d-right{margin-inline-start:auto;display:flex;align-items:center;gap:14px;font-size:13.5px;color:var(--muted);white-space:nowrap}
.d-right b{color:var(--text);font-weight:600}
.d-user{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-weight:600}
.d-user .av{width:30px;height:30px;font-size:12px}
.d-body{flex:1;min-height:0;display:grid}
.d-pane{padding:22px 26px;display:flex;flex-direction:column;gap:18px;min-height:0;overflow:hidden}
.d-col{border-inline-end:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden}
.d-ph{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.d-ph h2{font-size:30px;letter-spacing:-.03em}
.d-ph .end{margin-inline-start:auto;display:flex;gap:8px}
.panel{background:var(--panel);border-radius:10px;padding:18px 20px;box-shadow:0 1px 0 var(--line)}
.section-h{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.section-h .end{margin-inline-start:auto}
/* owner side nav (desk, owner role) */
.o-nav{width:220px;flex:none;border-inline-end:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;background:var(--page)}
.o-nav .gym{display:flex;align-items:center;gap:9px;padding:4px 10px 18px;font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.o-nav .gym svg{width:20px;height:20px}
.o-nav>span{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:15px;color:var(--text-2)}
.o-nav>span svg{width:19px;height:19px;color:var(--muted)}
.o-nav>span.on{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 1px 0 var(--line)}
.o-nav>span.on svg{color:var(--action)}
.o-nav>span .n{margin-inline-start:auto;font-size:12px;font-weight:700;color:var(--live)}
.o-nav .foot{margin-top:auto;display:grid;gap:10px;padding:0 10px;font-size:12.5px;color:var(--muted)}
.o-nav .sep{height:1px;background:var(--line);margin:10px 10px}
/* charts: simple SVG helpers */
.chart{width:100%;height:auto;display:block}
.chart .grid line{stroke:var(--line);stroke-width:1}
.chart text{fill:var(--muted);font:500 11px Outfit,sans-serif}
.chart .bar{fill:var(--accent-2)}
.chart .bar.dim{fill:var(--line)}
.chart .line{fill:none;stroke:var(--action);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.chart .area{fill:var(--action);opacity:.08}
.chart .pt{fill:var(--action)}
.chart .pt.live{fill:var(--live)}
/* powered by */
.powered{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);justify-content:center}
.powered svg{width:14px;height:14px}
/* banner (billing, edition) */
.banner{display:flex;align-items:center;gap:12px;padding:10px 22px;font-size:14px;background:var(--warn-bg);color:var(--warn);flex:none}
.banner .btn{margin-inline-start:auto;height:32px;font-size:13.5px;color:inherit;border-color:currentColor}


/* ---- app shell ---- */
body.desk{min-height:100dvh}
body.desk .d-top{position:sticky;top:0;z-index:20}
body.desk .d-nav a{padding:7px 12px;border-radius:8px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
body.desk .d-nav a.on,body.desk .d-nav a[aria-current="page"]{color:var(--text);background:var(--panel);font-weight:600;box-shadow:0 1px 0 var(--line)}
body.desk .shell{display:flex;min-height:calc(100dvh - 58px)}
body.desk.owner .shell{min-height:100dvh}
body.desk .o-nav{position:sticky;top:0;height:100dvh;overflow-x:hidden;overflow-y:auto}
body.desk .o-nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:15px;color:var(--text-2);text-decoration:none}
body.desk .o-nav a svg{width:19px;height:19px;color:var(--muted)}
body.desk .o-nav a.on{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 1px 0 var(--line)}
body.desk .o-nav a.on svg{color:var(--action)}
body.desk .o-nav a .n{margin-inline-start:auto;font-size:12px;font-weight:700;color:var(--live)}
body.desk main.main{flex:1;min-width:0;padding:24px clamp(16px,3vw,32px) 48px;display:flex;flex-direction:column;gap:20px}
body.desk .m-tabs{display:none}
@media (max-width:900px){
  body.desk .o-nav{display:none}
  body.desk .d-nav{display:none}
  body.desk .d-top{padding:0 16px}
  body.desk .d-right .tag,body.desk .d-right>b{display:none}
  body.desk .d-top{gap:10px}
  body.desk .d-gym{min-width:0}
  body.desk .d-gym span{overflow:hidden;text-overflow:ellipsis}
  body.desk .d-right{gap:8px}
  body.desk .d-top .d-user>span:not(.av){display:none}
  body.desk .d-top .d-user{padding:4px}
  body.desk .clock-btn{font-size:0;gap:0;min-width:44px;min-height:44px;justify-content:center} /* icon only; the text stays the accessible name */
  body.desk .clock-btn .ic{width:20px;height:20px}
  body.desk.menu-open .o-nav{display:flex;position:fixed;inset-block:0;inset-inline-start:0;z-index:40;width:min(300px,86vw);height:100dvh;box-shadow:0 0 40px rgba(3,7,18,.35)}
  body.desk .owner-backdrop{position:fixed;inset:0;z-index:30;border:0}
  body.desk main.main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
  body.desk .m-tabs{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:20;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-top:1px solid var(--line);padding:10px 6px calc(12px + env(safe-area-inset-bottom,0px));background:var(--page)}
  body.desk .m-tabs a,body.desk .m-tabs button{display:grid;justify-items:center;gap:3px;font-size:11.5px;color:var(--muted);text-decoration:none;background:none;border:0;position:relative;min-height:44px;align-content:center}
  body.desk .m-tabs .on{color:var(--text)}
  body.desk .m-tabs .on::before{content:"";position:absolute;top:-11px;width:22px;height:3px;border-radius:2px;background:var(--live)}
  body.desk .m-tabs svg{width:22px;height:22px}
}

/* account menu */
.d-account{position:relative}
.d-account>summary{list-style:none;cursor:pointer}
.d-account>summary::-webkit-details-marker{display:none}
.d-account-menu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:30;width:260px;display:grid;gap:12px;box-shadow:0 18px 40px -16px rgba(3,7,18,.35)}
.o-nav .d-account-menu{top:auto;bottom:calc(100% + 8px);inset-inline:0;width:auto}
.clock-btn.on{border-color:var(--live)}
.o-nav .o-gym svg,.o-nav .o-gym img{width:30px;height:30px;border-radius:8px;flex:none}
/* account row at the foot of the owner side navigation: name and role, like the mockup */
.d-role{display:none}
.o-nav .d-user{border:0;padding:6px 8px;border-radius:8px;min-height:44px}
.o-nav .d-user:hover,.o-nav .d-account[open]>.d-user{background:var(--panel)}
.o-nav .d-user>span:not(.av){display:grid;line-height:1.2;min-width:0}
.o-nav .d-role{display:block;font-size:12px;font-weight:500;color:var(--muted)}
body.desk .owner-backdrop{background:rgba(3,7,18,.45)}
body.desk .o-nav a>span:first-of-type{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.desk .o-nav>a{gap:9px}
