/* ============================================================
   Repeat CrossFit — Blazor theme (drop-in)
   Place in wwwroot/css/ and link from App.razor:
     <link rel="stylesheet" href="css/repeat-theme.css" />
   Generated from the design-system tokens + component classes.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@400;500;600;700;800;900&family=Mulish:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=JetBrains+Mono:wght@400;500;700&display=swap');


/* ===== tokens/colors.css ===== */
/* ============================================================
   Repeat CrossFit — Color tokens
   Brand core (from the 2022 Brand Manual, Barney Studio):
     Ink    #0F0F0F   Gray #BEBEBE   Orange #E28F34
   The product (gym admin) is a DARK-FIRST surface, matching the
   brand's "white logotype on dark backgrounds" direction.
   ============================================================ */

:root {
  /* ---- Brand core (verbatim from manual) ---- */
  --brand-ink:    #0F0F0F;
  --brand-gray:   #BEBEBE;
  --brand-orange: #E28F34;

  /* ---- Orange / accent ramp ---- */
  --orange-50:  #FBF1E6;
  --orange-100: #F6DEC2;
  --orange-200: #EFC392;
  --orange-300: #EAAC66;
  --orange-400: #E69C49;
  --orange-500: #E28F34;   /* brand orange */
  --orange-600: #C9772048;  /* tint surface use only */
  --orange-700: #B26B1C;
  --orange-800: #8C5417;
  --orange-900: #5E3A11;
  --orange-strong: #B26B1C;
  --orange-press:  #C97720;

  /* ---- Ink / neutral ramp (dark UI) ---- */
  --ink-1000: #070707;
  --ink-950:  #0A0A0A;
  --ink-900:  #0F0F0F;   /* brand ink */
  --ink-850:  #141414;
  --ink-800:  #191919;
  --ink-750:  #1F1F1F;
  --ink-700:  #262626;
  --ink-600:  #333333;
  --ink-500:  #474747;
  --ink-400:  #5E5E5E;
  --ink-300:  #808080;
  --ink-250:  #9A9A9A;
  --ink-200:  #BEBEBE;   /* brand gray */
  --ink-100:  #D8D8D8;
  --ink-50:   #EDEDED;
  --ink-25:   #F6F6F6;
  --white:    #FFFFFF;
  --black:    #000000;

  /* ---- Semantic status ---- */
  --green-500:  #3FA46A;
  --green-600:  #2F8755;
  --green-bg:   #14271D;
  --red-500:    #E5484D;
  --red-600:    #C23A3E;
  --red-bg:     #2A1516;
  --amber-500:  #E2B53B;
  --amber-bg:   #2A2310;
  --blue-500:   #4A8DD6;
  --blue-bg:    #11202E;

  /* ============================================================
     SEMANTIC ALIASES — dark theme (default product surface)
     ============================================================ */

  /* Backgrounds & surfaces */
  --bg-base:        var(--ink-900);
  --bg-sunken:      var(--ink-1000);
  --surface-card:   var(--ink-850);
  --surface-raised: var(--ink-800);
  --surface-inset:  var(--ink-950);
  --surface-overlay:var(--ink-750);
  --surface-hover:  rgba(255, 255, 255, 0.04);
  --surface-active: rgba(255, 255, 255, 0.07);

  /* Borders */
  --border-subtle:  rgba(255, 255, 255, 0.07);
  --border-default: rgba(255, 255, 255, 0.13);
  --border-strong:  rgba(255, 255, 255, 0.24);

  /* Text */
  --text-primary:   #F4F4F4;
  --text-secondary: var(--ink-200);   /* brand gray */
  --text-muted:     var(--ink-300);
  --text-disabled:  var(--ink-400);
  --text-on-accent: #1A1206;          /* near-black on orange */
  --text-link:      var(--orange-400);

  /* Accent */
  --accent:         var(--brand-orange);
  --accent-hover:   var(--orange-400);
  --accent-press:   var(--orange-press);
  --accent-soft:    rgba(226, 143, 52, 0.14);
  --accent-soft-border: rgba(226, 143, 52, 0.35);
  --accent-contrast:#1A1206;

  /* Status (semantic) */
  --success:        var(--green-500);
  --success-soft:   var(--green-bg);
  --danger:         var(--red-500);
  --danger-soft:    var(--red-bg);
  --warning:        var(--amber-500);
  --warning-soft:   var(--amber-bg);
  --info:           var(--blue-500);
  --info-soft:      var(--blue-bg);

  /* Focus */
  --focus-ring:     rgba(226, 143, 52, 0.55);
  --focus-ring-offset: var(--bg-base);
}

/* ============================================================
   LIGHT scope — for print / reports / light embeds.
   Apply with  <div class="rc-light">  or  data-theme="light".
   ============================================================ */
.rc-light,
[data-theme="light"] {
  --bg-base:        #FAFAF8;
  --bg-sunken:      #F0EFEC;
  --surface-card:   #FFFFFF;
  --surface-raised: #FFFFFF;
  --surface-inset:  #F4F3F0;
  --surface-overlay:#FFFFFF;
  --surface-hover:  rgba(15, 15, 15, 0.04);
  --surface-active: rgba(15, 15, 15, 0.07);

  --border-subtle:  rgba(15, 15, 15, 0.08);
  --border-default: rgba(15, 15, 15, 0.14);
  --border-strong:  rgba(15, 15, 15, 0.26);

  --text-primary:   var(--ink-900);
  --text-secondary: var(--ink-500);
  --text-muted:     var(--ink-400);
  --text-disabled:  var(--ink-300);
  --text-on-accent: #1A1206;
  --text-link:      var(--orange-700);

  --accent-soft:    rgba(226, 143, 52, 0.16);
  --focus-ring-offset: var(--bg-base);
}


/* ===== tokens/typography.css ===== */
/* ============================================================
   Repeat CrossFit — Typography tokens
   Display = Fluro substitute (Anton poster / Archivo UI)
   Body    = Gilroy substitute (Mulish)
   Headlines are UPPERCASE, tightly tracked, left/right aligned
   (never justified — per brand manual).
   ============================================================ */

:root {
  /* Families */
  --font-poster:  'Anton', 'Archivo', system-ui, sans-serif;   /* hero / marketing caps */
  --font-display: 'Archivo', system-ui, sans-serif;            /* titles, headers, stats */
  --font-body:    'Mulish', system-ui, -apple-system, sans-serif; /* UI + body */
  --font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', monospace;

  /* Weights */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extra:    800;
  --weight-black:    900;

  /* Fluid-ish type scale (rem) */
  --text-2xs:  0.6875rem;  /* 11px - micro labels */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.8125rem;  /* 13px */
  --text-base: 0.9375rem;  /* 15px - body default */
  --text-md:   1rem;       /* 16px */
  --text-lg:   1.125rem;   /* 18px */
  --text-xl:   1.375rem;   /* 22px */
  --text-2xl:  1.75rem;    /* 28px */
  --text-3xl:  2.25rem;    /* 36px */
  --text-4xl:  3rem;       /* 48px */
  --text-5xl:  4rem;       /* 64px */
  --text-6xl:  5.5rem;     /* 88px - poster */

  /* Line heights */
  --leading-none:    1;
  --leading-tight:   1.12;
  --leading-snug:    1.3;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-poster: -0.01em;
  --tracking-tight:  -0.015em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-caps:   0.08em;   /* uppercase UI labels */
  --tracking-eyebrow:0.18em;   /* eyebrows / overlines */

  /* Semantic roles */
  --type-eyebrow-size: var(--text-2xs);
  --type-label-size:   var(--text-xs);
  --type-body-size:    var(--text-base);
}

/* Optional helper classes (components mostly set type inline via tokens) */
.rc-poster {
  font-family: var(--font-poster);
  font-weight: var(--weight-regular);
  text-transform: uppercase;
  letter-spacing: var(--tracking-poster);
  line-height: var(--leading-none);
}
.rc-display {
  font-family: var(--font-display);
  font-weight: var(--weight-extra);
  text-transform: uppercase;
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
}
.rc-eyebrow {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--type-eyebrow-size);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--accent);
}
.rc-body {
  font-family: var(--font-body);
  font-weight: var(--weight-regular);
  font-size: var(--type-body-size);
  line-height: var(--leading-normal);
  color: var(--text-primary);
}
.rc-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}


/* ===== tokens/spacing.css ===== */
/* ============================================================
   Repeat CrossFit — Spacing tokens
   4px base grid. Tight, technical rhythm to match the
   industrial / athletic feel.
   ============================================================ */

:root {
  --space-0:   0;
  --space-px:  1px;
  --space-0-5: 0.125rem;  /* 2  */
  --space-1:   0.25rem;   /* 4  */
  --space-1-5: 0.375rem;  /* 6  */
  --space-2:   0.5rem;    /* 8  */
  --space-2-5: 0.625rem;  /* 10 */
  --space-3:   0.75rem;   /* 12 */
  --space-4:   1rem;      /* 16 */
  --space-5:   1.25rem;   /* 20 */
  --space-6:   1.5rem;    /* 24 */
  --space-7:   1.75rem;   /* 28 */
  --space-8:   2rem;      /* 32 */
  --space-10:  2.5rem;    /* 40 */
  --space-12:  3rem;      /* 48 */
  --space-16:  4rem;      /* 64 */
  --space-20:  5rem;      /* 80 */
  --space-24:  6rem;      /* 96 */

  /* Layout */
  --container-max: 1200px;
  --sidebar-w:     248px;
  --topbar-h:      60px;
  --content-pad:   var(--space-8);
}


/* ===== tokens/radius.css ===== */
/* ============================================================
   Repeat CrossFit — Radius, elevation, motion
   Sharp & technical: small radii, restrained shadows on dark,
   elevation carried mostly by surface lightness + borders.
   ============================================================ */

:root {
  /* Corner radii — crisp, industrial */
  --radius-none: 0;
  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   6px;
  --radius-lg:   10px;
  --radius-xl:   14px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* Default control / card radii */
  --radius-control: var(--radius-sm);
  --radius-card:    var(--radius-md);

  /* Elevation (tuned for dark surfaces) */
  --shadow-none: none;
  --shadow-xs:  0 1px 2px rgba(0, 0, 0, 0.40);
  --shadow-sm:  0 2px 6px rgba(0, 0, 0, 0.45);
  --shadow-md:  0 6px 18px rgba(0, 0, 0, 0.50);
  --shadow-lg:  0 18px 44px rgba(0, 0, 0, 0.58);
  --shadow-xl:  0 28px 70px rgba(0, 0, 0, 0.66);

  /* Accent glow (focus / emphasis) */
  --glow-accent: 0 0 0 3px var(--focus-ring);
  --glow-accent-soft: 0 8px 28px rgba(226, 143, 52, 0.30);

  /* Inner hairline for raised surfaces on dark */
  --hairline-top: inset 0 1px 0 rgba(255, 255, 255, 0.04); /* @kind shadow */

  /* Motion */
  --ease-out:   cubic-bezier(0.22, 0.61, 0.36, 1);   /* @kind other */
  --ease-in-out:cubic-bezier(0.65, 0.05, 0.36, 1);   /* @kind other */
  --ease-snap:  cubic-bezier(0.2, 0.9, 0.3, 1.2);    /* @kind other */
  --dur-fast:   120ms;  /* @kind other */
  --dur-base:   180ms;  /* @kind other */
  --dur-slow:   280ms;  /* @kind other */

  /* Z-index scale */
  --z-base: 1;       /* @kind other */
  --z-sticky: 100;   /* @kind other */
  --z-overlay: 1000; /* @kind other */
  --z-modal: 1100;   /* @kind other */
  --z-toast: 1200;   /* @kind other */
  --z-tooltip: 1300; /* @kind other */
}


/* ===== tokens/base.css ===== */
/* ============================================================
   Repeat CrossFit — Base element styles
   Applies brand tokens to raw HTML so cards, kits and prototypes
   inherit the look without per-element wiring.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg-base);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--weight-extra);
  text-transform: uppercase;
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  margin: 0 0 0.5em;
  color: var(--text-primary);
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); letter-spacing: var(--tracking-normal); }
h4 { font-size: var(--text-lg); letter-spacing: var(--tracking-normal); }

p { margin: 0 0 1em; }

a {
  color: var(--text-link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--accent-hover); }

strong, b { font-weight: var(--weight-bold); }

code, kbd, samp {
  font-family: var(--font-mono);
  font-size: 0.9em;
}

hr {
  border: 0;
  border-top: 1px solid var(--border-subtle);
  margin: var(--space-6) 0;
}

::selection {
  background: var(--accent);
  color: var(--text-on-accent);
}

/* Custom scrollbar on dark */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--ink-600) transparent;
}
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb {
  background: var(--ink-600);
  border-radius: var(--radius-pill);
  border: 2px solid transparent;
  background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background: var(--ink-500); }

:focus-visible {
  outline: none;
  box-shadow: var(--glow-accent);
  border-radius: var(--radius-xs);
}


/* ============================================================
   COMPONENT CLASSES (.rc-*)  — use directly in .razor markup
   ============================================================ */

/* ===== Button ===== */
.rc-btn{
  --_bg: var(--accent);
  --_fg: var(--text-on-accent);
  --_bd: transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  letter-spacing:var(--tracking-caps); white-space:nowrap; cursor:pointer;
  border:1px solid var(--_bd); background:var(--_bg); color:var(--_fg);
  border-radius:var(--radius-control); text-decoration:none;
  transition:background var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out);
}
.rc-btn:focus-visible{ outline:none; box-shadow:var(--glow-accent); }
.rc-btn:active{ transform:translateY(1px); }
.rc-btn[disabled],.rc-btn[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; transform:none; }

.rc-btn--sm{ font-size:11px; padding:6px 12px; }
.rc-btn--md{ font-size:12.5px; padding:9px 18px; }
.rc-btn--lg{ font-size:14px; padding:13px 26px; }

.rc-btn--primary{ --_bg:var(--accent); --_fg:var(--text-on-accent); }
.rc-btn--primary:hover:not([disabled]){ --_bg:var(--accent-hover); }
.rc-btn--primary:active:not([disabled]){ --_bg:var(--accent-press); }

.rc-btn--secondary{ --_bg:transparent; --_fg:var(--text-primary); --_bd:var(--border-strong); }
.rc-btn--secondary:hover:not([disabled]){ --_bg:var(--surface-hover); --_bd:var(--accent); --_fg:var(--accent); }

.rc-btn--ghost{ --_bg:transparent; --_fg:var(--text-secondary); --_bd:transparent; letter-spacing:var(--tracking-wide); }
.rc-btn--ghost:hover:not([disabled]){ --_bg:var(--surface-hover); --_fg:var(--text-primary); }

.rc-btn--danger{ --_bg:var(--danger); --_fg:#fff; }
.rc-btn--danger:hover:not([disabled]){ --_bg:var(--red-600); }

.rc-btn--block{ display:flex; width:100%; }
.rc-btn .rc-btn__spin{ width:1em; height:1em; border-radius:50%;
  border:2px solid currentColor; border-right-color:transparent;
  animation:rc-btn-spin .6s linear infinite; }
@keyframes rc-btn-spin{ to{ transform:rotate(360deg) } }

/* ===== IconButton ===== */
.rc-iconbtn{
  display:inline-grid; place-items:center; cursor:pointer;
  background:transparent; color:var(--text-secondary);
  border:1px solid transparent; border-radius:var(--radius-control);
  transition:background var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
}
.rc-iconbtn:hover:not([disabled]){ background:var(--surface-hover); color:var(--text-primary); }
.rc-iconbtn:active:not([disabled]){ transform:translateY(1px); }
.rc-iconbtn:focus-visible{ outline:none; box-shadow:var(--glow-accent); }
.rc-iconbtn[disabled]{ opacity:.4; cursor:not-allowed; }
.rc-iconbtn--sm{ width:30px; height:30px; font-size:14px; }
.rc-iconbtn--md{ width:38px; height:38px; font-size:17px; }
.rc-iconbtn--lg{ width:46px; height:46px; font-size:20px; }
.rc-iconbtn--solid{ background:var(--accent); color:var(--text-on-accent); }
.rc-iconbtn--solid:hover:not([disabled]){ background:var(--accent-hover); color:var(--text-on-accent); }
.rc-iconbtn--outline{ border-color:var(--border-strong); }
.rc-iconbtn--outline:hover:not([disabled]){ border-color:var(--accent); color:var(--accent); }
.rc-iconbtn--danger:hover:not([disabled]){ background:var(--danger-soft); color:var(--danger); }

/* ===== Badge ===== */
.rc-badge{
  display:inline-flex; align-items:center; gap:.4em;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  letter-spacing:var(--tracking-caps); font-size:10.5px; line-height:1;
  padding:5px 9px; border-radius:var(--radius-xs); border:1px solid transparent;
  white-space:nowrap;
}
.rc-badge--pill{ border-radius:var(--radius-pill); }
.rc-badge__dot{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.rc-badge--neutral{ background:var(--surface-overlay); color:var(--text-secondary); border-color:var(--border-default); }
.rc-badge--accent{ background:var(--accent-soft); color:var(--accent-hover); border-color:var(--accent-soft-border); }
.rc-badge--success{ background:var(--success-soft); color:var(--success); border-color:color-mix(in srgb, var(--success) 35%, transparent); }
.rc-badge--danger{ background:var(--danger-soft); color:var(--danger); border-color:color-mix(in srgb, var(--danger) 35%, transparent); }
.rc-badge--warning{ background:var(--warning-soft); color:var(--warning); border-color:color-mix(in srgb, var(--warning) 35%, transparent); }
.rc-badge--info{ background:var(--info-soft); color:var(--info); border-color:color-mix(in srgb, var(--info) 35%, transparent); }
.rc-badge--solid{ background:var(--accent); color:var(--text-on-accent); border-color:transparent; }

/* ===== Avatar ===== */
.rc-avatar{
  position:relative; display:inline-grid; place-items:center; flex:none;
  background:var(--surface-overlay); color:var(--text-primary);
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  border-radius:var(--radius-circle); overflow:hidden; user-select:none;
  border:1px solid var(--border-default);
}
.rc-avatar--square{ border-radius:var(--radius-sm); }
.rc-avatar--accent{ background:var(--accent); color:var(--text-on-accent); border-color:transparent; }
.rc-avatar img{ width:100%; height:100%; object-fit:cover; }
.rc-avatar--xs{ width:24px; height:24px; font-size:9px; }
.rc-avatar--sm{ width:32px; height:32px; font-size:11px; }
.rc-avatar--md{ width:40px; height:40px; font-size:13px; }
.rc-avatar--lg{ width:52px; height:52px; font-size:17px; }
.rc-avatar--xl{ width:72px; height:72px; font-size:24px; }
.rc-avatar__status{
  position:absolute; right:-1px; bottom:-1px; width:30%; height:30%;
  min-width:8px; min-height:8px; border-radius:50%;
  border:2px solid var(--surface-card); box-sizing:border-box;
}
.rc-avatar__status--online{ background:var(--success); }
.rc-avatar__status--offline{ background:var(--ink-400); }

/* ===== Card ===== */
.rc-card{
  background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-card); color:var(--text-primary);
  overflow:hidden;
}
.rc-card--raised{ box-shadow:var(--shadow-md); }
.rc-card--flat{ background:transparent; }
.rc-card--accent{ border-top:2px solid var(--accent); }
.rc-card--interactive{ cursor:pointer; transition:border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.rc-card--interactive:hover{ border-color:var(--border-strong); transform:translateY(-2px); }
.rc-card__head{
  display:flex; align-items:center; gap:12px;
  padding:16px 18px; border-bottom:1px solid var(--border-subtle);
}
.rc-card__title{
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  letter-spacing:var(--tracking-tight); font-size:14px; margin:0; flex:1;
}
.rc-card__sub{ font-family:var(--font-body); font-size:12px; color:var(--text-muted); font-weight:500; }
.rc-card__body{ padding:18px; }
.rc-card__foot{ padding:14px 18px; border-top:1px solid var(--border-subtle); display:flex; gap:10px; align-items:center; }
.rc-card--pad-none .rc-card__body{ padding:0; }
.rc-card--pad-lg .rc-card__body{ padding:24px; }

/* ===== TextField ===== */
.rc-field{ display:flex; flex-direction:column; gap:6px; }
.rc-field__label{
  font-family:var(--font-body); font-weight:700; font-size:12px;
  text-transform:uppercase; letter-spacing:var(--tracking-caps);
  color:var(--text-secondary);
}
.rc-field__label .rc-req{ color:var(--accent); margin-left:3px; }
.rc-field__wrap{ position:relative; display:flex; align-items:center; }
.rc-field__icon{
  position:absolute; left:12px; color:var(--text-muted); font-size:15px;
  pointer-events:none;
}
.rc-input{
  width:100%; font-family:var(--font-body); font-size:14px; color:var(--text-primary);
  background:var(--surface-inset); border:1px solid var(--border-default);
  border-radius:var(--radius-control); padding:10px 12px;
  transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.rc-input::placeholder{ color:var(--text-muted); }
.rc-input:hover:not(:disabled){ border-color:var(--border-strong); }
.rc-input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.rc-input:disabled{ opacity:.5; cursor:not-allowed; }
.rc-field--icon .rc-input{ padding-left:36px; }
.rc-field--invalid .rc-input{ border-color:var(--danger); }
.rc-field--invalid .rc-input:focus{ box-shadow:0 0 0 3px var(--danger-soft); }
.rc-field__help{ font-family:var(--font-body); font-size:12px; color:var(--text-muted); }
.rc-field__err{ font-family:var(--font-body); font-size:12px; color:var(--danger); display:flex; gap:5px; align-items:center; }

/* ===== Select ===== */
.rc-select{ position:relative; display:flex; align-items:center; }
.rc-select select{
  appearance:none; width:100%; font-family:var(--font-body); font-size:14px;
  color:var(--text-primary); background:var(--surface-inset);
  border:1px solid var(--border-default); border-radius:var(--radius-control);
  padding:10px 36px 10px 12px; cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.rc-select select:hover{ border-color:var(--border-strong); }
.rc-select select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.rc-select select:disabled{ opacity:.5; cursor:not-allowed; }
.rc-select__chev{ position:absolute; right:12px; color:var(--text-muted); pointer-events:none; font-size:13px; }
.rc-select option{ background:var(--ink-800); color:var(--text-primary); }

/* ===== Checkbox ===== */
.rc-check{ display:inline-flex; align-items:flex-start; gap:10px; cursor:pointer; font-family:var(--font-body); font-size:14px; color:var(--text-primary); }
.rc-check input{ position:absolute; opacity:0; width:0; height:0; }
.rc-check__box{
  width:20px; height:20px; flex:none; border-radius:var(--radius-xs);
  border:1.5px solid var(--border-strong); background:var(--surface-inset);
  display:grid; place-items:center; color:var(--text-on-accent); font-size:12px;
  transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  margin-top:1px;
}
.rc-check__box i{ opacity:0; transform:scale(.6); transition:all var(--dur-fast) var(--ease-snap); }
.rc-check input:checked + .rc-check__box{ background:var(--accent); border-color:var(--accent); }
.rc-check input:checked + .rc-check__box i{ opacity:1; transform:scale(1); }
.rc-check input:focus-visible + .rc-check__box{ box-shadow:var(--glow-accent); }
.rc-check input:disabled + .rc-check__box{ opacity:.45; }
.rc-check--radio .rc-check__box{ border-radius:50%; }
.rc-check--radio input:checked + .rc-check__box{ background:var(--surface-inset); }
.rc-check--radio input:checked + .rc-check__box .rc-dot{ background:var(--accent); }
.rc-dot{ width:10px; height:10px; border-radius:50%; background:transparent; transition:background var(--dur-fast) var(--ease-out); }
.rc-check__txt{ line-height:1.4; }
.rc-check__hint{ display:block; font-size:12px; color:var(--text-muted); }

/* ===== Switch ===== */
.rc-switch{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-family:var(--font-body); font-size:14px; color:var(--text-primary); }
.rc-switch input{ position:absolute; opacity:0; width:0; height:0; }
.rc-switch__track{
  width:42px; height:24px; flex:none; border-radius:var(--radius-pill);
  background:var(--ink-600); border:1px solid var(--border-default); position:relative;
  transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.rc-switch__thumb{
  position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%;
  background:var(--text-primary); transition:transform var(--dur-base) var(--ease-snap);
}
.rc-switch input:checked + .rc-switch__track{ background:var(--accent); border-color:var(--accent); }
.rc-switch input:checked + .rc-switch__track .rc-switch__thumb{ transform:translateX(18px); background:var(--text-on-accent); }
.rc-switch input:focus-visible + .rc-switch__track{ box-shadow:var(--glow-accent); }
.rc-switch input:disabled + .rc-switch__track{ opacity:.45; }

/* ===== Alert ===== */
.rc-alert{
  display:flex; gap:12px; align-items:flex-start;
  padding:13px 15px; border-radius:var(--radius-sm);
  border:1px solid var(--border-default); background:var(--surface-raised);
  font-family:var(--font-body); font-size:13.5px; color:var(--text-primary);
  border-left-width:3px;
}
.rc-alert__icon{ font-size:17px; line-height:1.2; flex:none; }
.rc-alert__body{ flex:1; min-width:0; }
.rc-alert__title{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:12px; margin:0 0 3px; }
.rc-alert__msg{ color:var(--text-secondary); line-height:1.45; }
.rc-alert__close{ background:none; border:0; color:var(--text-muted); cursor:pointer; font-size:15px; padding:2px; line-height:1; }
.rc-alert__close:hover{ color:var(--text-primary); }
.rc-alert--info{ border-left-color:var(--info); background:var(--info-soft); }
.rc-alert--info .rc-alert__icon{ color:var(--info); }
.rc-alert--success{ border-left-color:var(--success); background:var(--success-soft); }
.rc-alert--success .rc-alert__icon{ color:var(--success); }
.rc-alert--warning{ border-left-color:var(--warning); background:var(--warning-soft); }
.rc-alert--warning .rc-alert__icon{ color:var(--warning); }
.rc-alert--danger{ border-left-color:var(--danger); background:var(--danger-soft); }
.rc-alert--danger .rc-alert__icon{ color:var(--danger); }

/* ===== Dialog ===== */
.rc-dialog__overlay{
  position:fixed; inset:0; background:rgba(7,7,7,.72);
  backdrop-filter:blur(3px); display:grid; place-items:center; padding:24px;
  z-index:var(--z-modal); animation:rc-dialog-fade var(--dur-base) var(--ease-out);
}
.rc-dialog{
  width:100%; max-width:460px; background:var(--surface-card);
  border:1px solid var(--border-default); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xl); overflow:hidden;
  animation:rc-dialog-pop var(--dur-base) var(--ease-snap);
}
.rc-dialog--lg{ max-width:640px; }
.rc-dialog__head{ display:flex; align-items:flex-start; gap:12px; padding:20px 22px 0; }
.rc-dialog__icon{ width:38px; height:38px; flex:none; border-radius:var(--radius-sm); display:grid; place-items:center; font-size:18px; background:var(--accent-soft); color:var(--accent); }
.rc-dialog__icon--danger{ background:var(--danger-soft); color:var(--danger); }
.rc-dialog__title{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:var(--tracking-tight); font-size:18px; margin:4px 0 0; flex:1; }
.rc-dialog__close{ background:none; border:0; color:var(--text-muted); cursor:pointer; font-size:16px; padding:4px; }
.rc-dialog__close:hover{ color:var(--text-primary); }
.rc-dialog__body{ padding:14px 22px 4px; color:var(--text-secondary); font-family:var(--font-body); font-size:14px; line-height:1.55; }
.rc-dialog__foot{ display:flex; justify-content:flex-end; gap:10px; padding:18px 22px 22px; }
@keyframes rc-dialog-fade{ from{opacity:0} to{opacity:1} }
@keyframes rc-dialog-pop{ from{opacity:0; transform:translateY(8px) scale(.98)} to{opacity:1; transform:none} }

/* ===== StatCard ===== */
.rc-stat{
  position:relative; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-card); padding:18px; overflow:hidden;
}
.rc-stat::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); opacity:.0; transition:opacity var(--dur-base) var(--ease-out); }
.rc-stat--accent::before{ opacity:1; }
.rc-stat__top{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.rc-stat__icon{ width:34px; height:34px; border-radius:var(--radius-sm); display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); font-size:16px; flex:none; }
.rc-stat__label{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:var(--tracking-caps); font-size:11px; color:var(--text-muted); }
.rc-stat__value{ font-family:var(--font-display); font-weight:800; font-size:38px; line-height:1; color:var(--text-primary); font-variant-numeric:tabular-nums; }
.rc-stat__row{ display:flex; align-items:baseline; gap:8px; }
.rc-stat__unit{ font-family:var(--font-body); font-size:13px; color:var(--text-muted); }
.rc-stat__delta{ display:inline-flex; align-items:center; gap:3px; font-family:var(--font-body); font-weight:700; font-size:12px; margin-top:8px; }
.rc-stat__delta--up{ color:var(--success); }
.rc-stat__delta--down{ color:var(--danger); }
.rc-stat__delta--flat{ color:var(--text-muted); }

/* ===== DataTable ===== */
.rc-table-wrap{ border:1px solid var(--border-subtle); border-radius:var(--radius-card); overflow:hidden; background:var(--surface-card); }
.rc-table{ width:100%; border-collapse:collapse; font-family:var(--font-body); }
.rc-table thead th{
  text-align:left; font-family:var(--font-display); font-weight:700;
  text-transform:uppercase; letter-spacing:var(--tracking-caps); font-size:11px;
  color:var(--text-muted); padding:12px 16px; background:var(--surface-inset);
  border-bottom:1px solid var(--border-default); white-space:nowrap;
}
.rc-table tbody td{ padding:13px 16px; font-size:14px; color:var(--text-primary); border-bottom:1px solid var(--border-subtle); vertical-align:middle; }
.rc-table tbody tr:last-child td{ border-bottom:0; }
.rc-table tbody tr{ transition:background var(--dur-fast) var(--ease-out); }
.rc-table--hover tbody tr:hover{ background:var(--surface-hover); }
.rc-table th.rc-num, .rc-table td.rc-num{ text-align:right; font-variant-numeric:tabular-nums; }
.rc-table__empty{ padding:40px 16px; text-align:center; color:var(--text-muted); font-size:14px; }

/* ===== SidebarNav ===== */
.rc-sidebar{
  width:var(--sidebar-w); flex:none; display:flex; flex-direction:column;
  background:var(--ink-950); border-right:1px solid var(--border-subtle);
  height:100%;
}
.rc-sidebar__brand{ display:flex; align-items:center; gap:11px; padding:18px 18px 16px; border-bottom:1px solid var(--border-subtle); }
.rc-sidebar__mark{ width:34px; height:34px; flex:none; border-radius:var(--radius-sm); background:var(--accent); color:var(--ink-900); display:grid; place-items:center; font-family:var(--font-poster); font-size:16px; }
.rc-sidebar__name{ display:flex; flex-direction:column; line-height:1; }
.rc-sidebar__name b{ font-family:var(--font-poster); text-transform:uppercase; font-size:15px; letter-spacing:.02em; color:#fff; }
.rc-sidebar__name span{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.34em; font-size:8px; color:var(--accent); margin-top:3px; }
.rc-sidebar__nav{ flex:1; overflow-y:auto; padding:14px 12px; display:flex; flex-direction:column; gap:2px; }
.rc-sidebar__sec{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.16em; font-size:9px; color:var(--text-muted); padding:14px 12px 6px; }
.rc-navitem{
  display:flex; align-items:center; gap:11px; padding:9px 12px;
  border-radius:var(--radius-sm); color:var(--text-secondary); cursor:pointer;
  font-family:var(--font-body); font-weight:600; font-size:13.5px; text-decoration:none;
  border:1px solid transparent; position:relative;
}
.rc-navitem i{ font-size:16px; width:18px; text-align:center; flex:none; }
.rc-navitem:hover{ background:var(--surface-hover); color:var(--text-primary); }
.rc-navitem--active{ background:var(--accent-soft); color:var(--accent-hover); }
.rc-navitem--active::before{ content:""; position:absolute; left:0; top:7px; bottom:7px; width:3px; border-radius:0 2px 2px 0; background:var(--accent); }
.rc-navitem__badge{ margin-left:auto; font-family:var(--font-display); font-weight:700; font-size:10px; background:var(--surface-overlay); color:var(--text-secondary); padding:2px 7px; border-radius:var(--radius-pill); }
.rc-navitem--active .rc-navitem__badge{ background:var(--accent); color:var(--text-on-accent); }
.rc-sidebar__foot{ border-top:1px solid var(--border-subtle); padding:12px; }

/* ===== Tabs ===== */
.rc-tabs{ display:flex; gap:2px; border-bottom:1px solid var(--border-default); }
.rc-tab{
  position:relative; display:inline-flex; align-items:center; gap:7px;
  padding:11px 16px; cursor:pointer; background:none; border:0;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  letter-spacing:var(--tracking-caps); font-size:12px; color:var(--text-muted);
}
.rc-tab i{ font-size:14px; }
.rc-tab:hover{ color:var(--text-secondary); }
.rc-tab--active{ color:var(--text-primary); }
.rc-tab--active::after{ content:""; position:absolute; left:8px; right:8px; bottom:-1px; height:2px; background:var(--accent); border-radius:2px 2px 0 0; }
.rc-tab__count{ font-family:var(--font-body); font-size:11px; background:var(--surface-overlay); color:var(--text-secondary); padding:1px 7px; border-radius:var(--radius-pill); }

/* ===== Page header (Blazor pages) ===== */
.rc-pagehead{ margin: 0 0 24px; }
.rc-pagehead h1{ margin: 0; font-family: var(--font-display); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; font-size: var(--text-3xl); }
.rc-pagehead--row{ display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* Blazor NavLink active state already targets .rc-navitem--active via ActiveClass */

/* ===== Auth / Login (split hero) ===== */
.rc-login{ display:grid; grid-template-columns:1.05fr .95fr; min-height:100vh; background:var(--bg-base); }
.rc-login__hero{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:40px;
  background:linear-gradient(150deg,#1a130a 0%, var(--ink-900) 46%, var(--ink-950) 100%); }

/* technická mriežka */
.rc-login__grid{ position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:46px 46px; }

/* kotúčové kruhy (plate motif) */
.rc-login__ring{ position:absolute; border-radius:50%; }
.rc-login__ring--1{ top:-240px; right:-260px; width:720px; height:720px; border:2px solid rgba(226,143,52,.20); }
.rc-login__ring--2{ top:-160px; right:-180px; width:560px; height:560px; border:1px solid rgba(255,255,255,.07); }
.rc-login__ring--3{ top:-60px;  right:-80px;  width:360px; height:360px; border:1px dashed rgba(226,143,52,.16); }

/* veľké RX outline */
.rc-login__rx{ position:absolute; top:30%; left:50%; transform:translate(-50%,-50%);
  font-family:var(--font-poster); text-transform:uppercase; font-size:300px; line-height:.8;
  color:transparent; -webkit-text-stroke:2px rgba(226,143,52,.28);
  letter-spacing:-.02em; pointer-events:none; white-space:nowrap; }

.rc-login__scrim{ position:absolute; inset:0; background:linear-gradient(155deg,rgba(15,15,15,.15),rgba(15,15,15,.78)); }
.rc-login__brand{ position:relative; display:flex; align-items:center; gap:12px; }
.rc-login__mark{ width:40px; height:40px; border-radius:var(--radius-sm); background:var(--accent); color:var(--ink-900); display:grid; place-items:center; font-family:var(--font-poster); font-size:19px; }
.rc-login__name{ display:flex; flex-direction:column; line-height:1; color:#fff; }
.rc-login__name b{ font-family:var(--font-poster); text-transform:uppercase; font-size:18px; letter-spacing:.02em; }
.rc-login__name span{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.34em; font-size:9px; color:var(--accent); margin-top:3px; }
.rc-login__poster{ position:relative; }
.rc-login__big{ font-family:var(--font-poster); text-transform:uppercase; font-size:60px; line-height:.88; color:#fff; }
.rc-login__big span{ color:var(--accent); }
.rc-login__sub{ margin-top:18px; max-width:360px; color:var(--ink-200); font-size:14px; line-height:1.5; }
.rc-login__panel{ display:flex; align-items:center; justify-content:center; padding:40px; }
.rc-login__form{ width:100%; max-width:380px; display:flex; flex-direction:column; gap:18px; }
.rc-login__title{ margin:0; font-family:var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:34px; }
.rc-login__hint{ margin:6px 0 0; color:var(--text-muted); font-size:13.5px; }
.rc-login__row{ display:flex; align-items:center; justify-content:space-between; }
.rc-login__check{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-secondary); cursor:pointer; }
.rc-login__check input{ width:18px; height:18px; accent-color:var(--accent); }
.rc-login__foot{ display:flex; flex-direction:column; gap:6px; text-align:center; font-size:12px; color:var(--text-muted); }
@media (max-width:820px){ .rc-login{ grid-template-columns:1fr; } .rc-login__hero{ min-height:240px; } }

/* ===== Rozvrh & dochádzka =====
   Dynamická farba trénera prichádza cez inline CSS premennú --tc (data-driven);
   všetko ostatné je v triedach. */
.rc-sched__top{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
.rc-sched__brand{ display:flex; align-items:center; gap:16px; }
.rc-sched__mark{ width:40px; height:40px; border-radius:var(--radius-sm); background:var(--accent); color:var(--text-on-accent); display:grid; place-items:center; font-family:var(--font-poster); font-size:19px; }
.rc-sched__title{ margin:2px 0 0; font-family:var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:var(--tracking-tight); font-size:26px; color:var(--text-primary); }
.rc-sched__tools{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rc-sched__you{ display:flex; align-items:center; gap:8px; background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-sm); padding:8px 12px; }
.rc-sched__you-dot{ width:9px; height:9px; border-radius:50%; background:var(--tc); }
.rc-sched__you-name{ font-weight:700; font-size:13px; color:var(--tc); }
.rc-sched__you-tag{ font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; }
.rc-navbtns{ display:flex; }
.rc-navbtns .rc-iconbtn:first-child{ border-radius:var(--radius-sm) 0 0 var(--radius-sm); }
.rc-navbtns .rc-iconbtn:last-child{ border-radius:0 var(--radius-sm) var(--radius-sm) 0; border-left:none; }

.rc-sched__bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; border-bottom:1px solid var(--border-subtle); padding-bottom:12px; margin-bottom:16px; }
.rc-legend{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.rc-legend__pill{ display:flex; align-items:center; gap:6px; background:var(--surface-card); border:1px solid var(--border-subtle); padding:5px 10px; border-radius:var(--radius-pill); }
.rc-legend__dot{ width:8px; height:8px; border-radius:50%; background:var(--tc); }
.rc-legend__name{ font-weight:700; font-size:12px; color:var(--tc); }
.rc-legend__count{ font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }

.rc-cal__wds{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-bottom:8px; }
.rc-cal__wd{ font-family:var(--font-display); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-muted); padding:0 4px; }
.rc-cal{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.rc-cal__cell{ min-height:118px; background:#111110; border:1px solid var(--border-subtle); border-radius:8px; padding:9px; display:flex; flex-direction:column; }
.rc-cal__cell--blank{ border:1px dashed rgba(255,255,255,.04); background:transparent; }
.rc-cal__cell--weekend{ background:#0d0d0c; }
.rc-cal__cell--absent{ background:#1a1206; border-color:rgba(226,143,52,.45); }
.rc-cal__cell--today{ box-shadow:0 0 0 2px var(--accent), 0 0 0 5px rgba(226,143,52,.18); }
.rc-cal__cellhead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; min-height:20px; }
.rc-cal__daynum{ font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--text-primary); }
.rc-cal__daynum--today{ color:var(--accent); }
.rc-cal__daynum--absent{ color:#EAAC66; }
.rc-cal__tag{ font-size:9px; font-weight:800; letter-spacing:.06em; color:var(--text-on-accent); background:var(--accent); border-radius:3px; padding:2px 5px; text-transform:uppercase; }
.rc-cal__off{ flex:1; display:grid; place-items:center; color:var(--ink-400); font-family:var(--font-display); font-weight:800; font-size:13px; letter-spacing:.1em; text-transform:uppercase; }
.rc-cal__slots{ display:flex; flex-direction:column; gap:3px; }
.rc-cal__add{ margin-top:5px; background:transparent; border:1px dashed var(--border-default); color:var(--ink-500); border-radius:var(--radius-sm); padding:4px; font-size:11px; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:5px; }
.rc-cal__add:hover{ color:var(--text-secondary); border-color:var(--border-strong); }
.rc-cal__report{ margin-top:auto; border-radius:var(--radius-sm); padding:5px; font-size:11px; font-weight:700; cursor:pointer; border:1px dashed var(--border-default); background:transparent; color:var(--ink-500); }
.rc-cal__report:hover{ color:var(--text-secondary); }
.rc-cal__report--on{ border:1px solid rgba(226,143,52,.5); background:rgba(226,143,52,.18); color:#EAAC66; }

.rc-slot{ display:flex; align-items:center; gap:6px; border-radius:var(--radius-sm); padding:1px 2px; }
.rc-slot--clickable{ cursor:pointer; }
.rc-slot--clickable:hover{ background:var(--surface-hover); }
.rc-slot__time{ font-family:var(--font-mono); font-size:10.5px; color:#6b6b66; min-width:34px; }
.rc-chip{ display:inline-flex; align-items:center; gap:5px; padding:2px 7px; border-radius:3px; flex:1; min-width:0; background:color-mix(in srgb, var(--tc) 16%, transparent); }
.rc-chip__dot{ width:6px; height:6px; border-radius:50%; background:var(--tc); flex:none; }
.rc-chip__name{ font-weight:700; font-size:11.5px; color:var(--tc); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rc-slot--absent .rc-chip{ background:color-mix(in srgb, var(--tc) 6%, transparent); }
.rc-slot--absent .rc-chip__name{ text-decoration:line-through; opacity:.6; }
.rc-slot__gap{ font-size:8.5px; font-weight:800; color:var(--accent); letter-spacing:.04em; }

.rc-sched__empty{ display:flex; align-items:center; gap:16px; background:var(--surface-card); border:1px dashed var(--border-default); border-radius:8px; padding:16px 18px; margin-bottom:14px; }
.rc-sched__empty-ico{ font-size:22px; color:var(--accent); flex:none; }
.rc-sched__empty-body{ flex:1; }
.rc-sched__empty-t{ font-weight:700; font-size:14px; color:var(--text-primary); }
.rc-sched__empty-s{ font-size:12px; color:var(--text-muted); margin-top:2px; }
.rc-sched__empty--info{ font-size:13px; color:var(--text-muted); }

.rc-abslist{ display:flex; flex-direction:column; gap:8px; max-width:720px; }
.rc-abscard{ display:flex; align-items:center; gap:14px; background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:12px 16px; }
.rc-abscard__av{ width:34px; height:34px; border-radius:50%; background:color-mix(in srgb, var(--tc) 16%, transparent); color:var(--tc); display:grid; place-items:center; font-family:var(--font-display); font-weight:800; font-size:12px; flex:none; }
.rc-abscard__name{ font-weight:700; font-size:14px; color:var(--tc); }
.rc-abscard__date{ font-size:12px; color:var(--text-muted); }
.rc-abscard__tag{ font-family:var(--font-mono); font-size:12px; color:#6b6b66; margin-left:auto; }
.rc-abs-empty{ border:1px dashed var(--border-default); border-radius:8px; padding:48px; text-align:center; color:#6b6b66; max-width:720px; }
.rc-abs-empty iconify-icon{ font-size:30px; color:var(--ink-600); }

.rc-swatches{ display:flex; gap:6px; margin-top:9px; flex-wrap:wrap; }
.rc-swatch{ width:22px; height:22px; border-radius:5px; cursor:pointer; background:var(--tc); border:2px solid transparent; padding:0; }
.rc-swatch--active{ border-color:#fff; }
.rc-trow{ background:var(--surface-inset); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:10px 12px; }
.rc-trow__head{ display:flex; align-items:center; gap:10px; }
.rc-trow__name{ flex:1; font-weight:700; font-size:13px; color:var(--tc); }
.rc-trow__count{ font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
.rc-modal__label{ display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--text-secondary); margin-bottom:6px; }
.rc-modal__grid2{ display:flex; gap:12px; }
.rc-modal__grid2 > *{ flex:1; }
.rc-modal__sub{ margin-bottom:14px; color:var(--text-muted); font-size:12px; }
.rc-modal__field{ margin-bottom:16px; }
.rc-modal__list{ display:flex; flex-direction:column; gap:8px; max-height:360px; overflow-y:auto; }
.rc-modal__note{ font-size:11px; color:var(--ink-500); margin-top:14px; display:flex; align-items:center; gap:7px; }
.rc-cal__headleft{ display:flex; align-items:center; gap:6px; }
.rc-abscard__body{ flex:1; min-width:0; }
.rc-abs-empty__gap{ margin-top:12px; }
.rc-sched__error{ max-width:980px; margin-bottom:14px; }

@media (max-width:820px){
  .rc-cal, .rc-cal__wds{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rc-cal__wds{ display:none; }
  .rc-cal__cell--blank{ display:none; }
}

/* ===== Nástenka / Feed ===== */
.rc-feed__top{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.rc-feed__title{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:24px; letter-spacing:.02em; margin:2px 0 0; color:var(--text-primary); }
.rc-feed__tools{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rc-feed__search{ position:relative; }
.rc-feed__search iconify-icon{ position:absolute; left:11px; top:50%; transform:translateY(-50%); font-size:14px; color:var(--text-muted); pointer-events:none; }
.rc-feed__search .rc-input{ padding-left:34px; width:240px; }
.rc-feed__error{ max-width:980px; margin-bottom:14px; }

.rc-feed{ display:grid; grid-template-columns:250px minmax(0,1fr) 300px; gap:20px; align-items:start; }

/* Kanály (ľavý stĺpec) */
.rc-chans{ position:sticky; top:20px; display:flex; flex-direction:column; gap:2px; }
.rc-chans__head{ display:flex; align-items:center; justify-content:space-between; width:100%;
  background:none; border:none; cursor:pointer; padding:6px 10px; margin-bottom:4px;
  font-family:var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:.08em;
  font-size:11px; color:var(--text-muted); }
.rc-chans__head:hover{ color:var(--text-secondary); }
.rc-chan__row{ display:flex; align-items:center; gap:2px; border-radius:var(--radius-sm); }
.rc-chan__row:hover{ background:var(--surface-hover); }
.rc-chan__row--active{ background:var(--accent); }
.rc-chan__row--active:hover{ background:var(--accent-hover); }
.rc-chan__main{ display:flex; align-items:center; gap:9px; flex:1; min-width:0;
  background:none; border:none; cursor:pointer; padding:8px 10px; text-align:left;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  font-size:12.5px; color:var(--text-secondary); }
.rc-chan__main iconify-icon{ font-size:14px; flex:none; }
.rc-chan__name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rc-chan__row--active .rc-chan__main{ color:var(--text-on-accent); }
.rc-chan__badge{ flex:none; font-family:var(--font-mono); font-size:10.5px; color:var(--text-muted);
  background:var(--surface-inset); border:1px solid var(--border-subtle); border-radius:99px; padding:1px 7px; }
.rc-chan__row--active .rc-chan__badge{ color:var(--text-on-accent); background:rgba(0,0,0,.18); border-color:transparent; }
.rc-chan__chev{ flex:none; background:none; border:none; cursor:pointer; padding:6px; color:var(--text-muted); display:flex; }
.rc-chan__row--active .rc-chan__chev{ color:var(--text-on-accent); }
.rc-chan__titles{ display:flex; flex-direction:column; gap:2px; padding:4px 0 8px 30px; }
.rc-chan__link{ background:none; border:none; cursor:pointer; text-align:left; padding:3px 6px;
  font-size:13.5px; line-height:1.35; color:var(--text-secondary); border-radius:var(--radius-sm); }
.rc-chan__link:hover{ color:var(--accent); background:var(--surface-hover); }
.rc-chan__more{ background:none; border:none; cursor:pointer; text-align:left; padding:3px 6px;
  font-size:11.5px; color:var(--text-muted); }
.rc-chan__more:hover{ color:var(--accent); }
.rc-chans__add{ display:flex; align-items:center; gap:8px; background:none; cursor:pointer;
  border:1px dashed var(--border-default); border-radius:var(--radius-sm); padding:8px 10px; margin-top:8px;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  font-size:11.5px; color:var(--text-muted); }
.rc-chans__add:hover{ color:var(--accent); border-color:var(--accent); }

/* Feed (stredný stĺpec) */
.rc-feed__col{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.rc-feed__none{ border:1px dashed var(--border-default); border-radius:8px; padding:48px; text-align:center; color:#6b6b66; }
.rc-feed__more{ background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-sm);
  cursor:pointer; padding:10px; font-size:12.5px; font-weight:700; color:var(--text-secondary); }
.rc-feed__more:hover{ background:var(--surface-hover); color:var(--text-primary); }
.rc-feed__end{ text-align:center; font-size:11.5px; color:var(--text-muted); padding:10px 0 24px; }

/* Karta príspevku */
.rc-post{ background:#121212; border:1px solid var(--border-subtle); border-radius:8px; padding:18px 20px; }
.rc-post--hl{ box-shadow:0 0 0 2px var(--accent), 0 0 0 5px var(--accent-soft); }
.rc-post__head{ display:flex; align-items:center; gap:11px; margin-bottom:12px; }
.rc-post__av{ flex:none; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--tc) 16%, transparent); color:var(--tc);
  font-family:var(--font-display); font-weight:800; font-size:12.5px; }
.rc-post__meta{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.rc-post__author{ font-weight:700; font-size:13.5px; color:var(--tc); }
.rc-post__when{ font-size:11.5px; color:var(--text-muted); }
.rc-post__chanlink{ background:none; border:none; padding:0; cursor:pointer; font:inherit; font-size:11.5px; color:var(--text-muted); }
.rc-post__chanlink b{ color:var(--text-secondary); }
.rc-post__chanlink:hover, .rc-post__chanlink:hover b{ color:var(--accent); }
.rc-post__title{ font-family:var(--font-display); font-weight:800; font-size:19px; line-height:1.25; margin:0 0 8px; color:var(--text-primary); }
.rc-post__text{ font-size:14px; line-height:1.55; color:var(--text-secondary); margin:0; white-space:pre-wrap; }
.rc-post__imgs{ display:grid; grid-template-columns:1fr; gap:8px; margin-top:14px; }
.rc-post__imgs--2{ grid-template-columns:1fr 1fr; }
.rc-post__imgs img{ width:100%; height:260px; object-fit:cover; border-radius:var(--radius-md); border:1px solid var(--border-subtle); }
.rc-post__files{ display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.rc-post__file{ display:flex; align-items:center; gap:10px; text-decoration:none;
  background:var(--surface-inset); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:10px 12px; }
.rc-post__file:hover{ border-color:var(--border-default); background:var(--surface-hover); }
.rc-post__file-ico{ font-size:18px; color:var(--red-500); flex:none; }
.rc-post__file-name{ flex:1; min-width:0; font-size:13px; font-weight:700; color:var(--text-primary);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rc-post__file-size{ font-size:11px; color:var(--text-muted); flex:none; }
.rc-post__file-dl{ font-size:15px; color:var(--accent); flex:none; }
.rc-post__foot{ display:flex; align-items:center; gap:14px; margin-top:14px; padding-top:12px; border-top:1px solid var(--border-subtle); }
.rc-post__like, .rc-post__combtn{ display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer;
  font-size:13px; font-weight:700; color:var(--text-muted); padding:0; }
.rc-post__like:hover, .rc-post__combtn:hover{ color:var(--text-primary); }
.rc-post__like--on{ color:var(--accent); }
.rc-post__like--on:hover{ color:var(--accent-hover); }
.rc-post__likers{ margin-left:auto; font-size:11px; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Komentáre */
.rc-post__comments{ display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.rc-comment{ display:flex; gap:9px; }
.rc-comment__av{ flex:none; width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--tc) 16%, transparent); color:var(--tc);
  font-family:var(--font-display); font-weight:800; font-size:10px; }
.rc-comment__bubble{ flex:1; min-width:0; background:#0f0f0f; border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:8px 11px; }
.rc-comment__head{ display:flex; align-items:center; gap:8px; }
.rc-comment__author{ font-weight:700; font-size:12px; color:var(--tc); }
.rc-comment__when{ font-size:10.5px; color:var(--text-muted); flex:1; }
.rc-comment__del{ background:none; border:none; cursor:pointer; padding:0; color:var(--text-muted); font-size:12px; display:flex; }
.rc-comment__del:hover{ color:var(--red-500); }
.rc-comment__text{ font-size:13px; line-height:1.45; color:var(--text-secondary); margin-top:2px; white-space:pre-wrap; }
.rc-comment__new{ display:flex; gap:8px; }
.rc-comment__new .rc-input{ flex:1; }

/* Nadchádzajúce akcie (pravý panel) */
.rc-events{ position:sticky; top:20px; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:8px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.rc-events__head{ display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-family:var(--font-display); font-weight:800; text-transform:uppercase; letter-spacing:.06em;
  font-size:11.5px; color:var(--text-secondary); }
.rc-events__none{ font-size:12.5px; color:var(--text-muted); padding:8px 0; }
.rc-event{ display:flex; align-items:center; gap:11px; }
.rc-event__date{ flex:none; width:44px; display:flex; flex-direction:column; align-items:center;
  background:var(--surface-inset); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:5px 0; }
.rc-event__day{ font-family:var(--font-display); font-weight:800; font-size:17px; line-height:1.1; color:var(--accent); }
.rc-event__month{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; font-size:9.5px; letter-spacing:.08em; color:var(--text-muted); }
.rc-event__body{ flex:1; min-width:0; }
.rc-event__name{ font-weight:700; font-size:13px; color:var(--text-primary); }
.rc-event__sub{ font-size:11.5px; color:var(--text-muted); }
.rc-event__del{ flex:none; background:none; border:none; cursor:pointer; padding:4px; color:var(--text-muted); font-size:11px; display:flex; }
.rc-event__del:hover{ color:var(--red-500); }

/* Composer (nový príspevok) */
.rc-composer__text{ min-height:110px; resize:vertical; margin-bottom:16px; width:100%; }
.rc-composer__drop{ display:flex; align-items:center; justify-content:center; gap:9px; cursor:pointer;
  border:1px dashed var(--border-default); border-radius:var(--radius-md); padding:18px;
  font-size:12.5px; color:var(--text-muted); margin-bottom:12px; }
.rc-composer__drop:hover{ border-color:var(--accent); color:var(--text-secondary); }
.rc-composer__drop input[type=file]{ display:none; }
.rc-composer__list{ display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.rc-composer__item{ display:flex; align-items:center; gap:9px; background:var(--surface-inset);
  border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:7px 10px; font-size:12.5px; }
.rc-composer__item iconify-icon{ color:var(--accent); flex:none; }
.rc-composer__item-name{ flex:1; min-width:0; color:var(--text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rc-composer__item-size{ font-size:10.5px; color:var(--text-muted); flex:none; }
.rc-composer__item-del{ background:none; border:none; cursor:pointer; padding:2px; color:var(--text-muted); font-size:11px; display:flex; }
.rc-composer__item-del:hover{ color:var(--red-500); }

/* Modal „Pridať kanál" */
.rc-chanmodal__name{ text-transform:uppercase; }
.rc-chanmodal__icons{ display:grid; grid-template-columns:repeat(8,1fr); gap:6px; max-height:200px; overflow-y:auto; }
.rc-chanmodal__icon{ display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:var(--surface-inset); border:1px solid var(--border-subtle); border-radius:var(--radius-sm);
  padding:9px 0; font-size:16px; color:var(--text-secondary); }
.rc-chanmodal__icon:hover{ border-color:var(--border-strong); color:var(--text-primary); }
.rc-chanmodal__icon--active{ border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }

@media (max-width:1100px){
  .rc-feed{ grid-template-columns:210px minmax(0,1fr); }
  .rc-events{ display:none; }
}
@media (max-width:760px){
  .rc-feed{ grid-template-columns:minmax(0,1fr); }
  .rc-chans{ position:static; }
}

/* ===== Sidebar — zbaliteľný rail (250px → 52px, stav v sessionStorage) ===== */
.rc-sidebar, .rc-sidebar-slot{ transition:width .18s ease; }

.rc-sidebar__toggle{ margin-left:auto; flex:none; display:flex; align-items:center; justify-content:center;
  width:24px; height:24px; background:none; border:1px solid transparent; border-radius:var(--radius-sm);
  color:var(--text-muted); cursor:pointer; font-size:13px; padding:0; }
.rc-sidebar__toggle:hover{ color:var(--text-primary); background:var(--surface-hover); }
.rc-sidebar__toggle-expand{ display:none; }

.rc-sidebar__user{ display:flex; align-items:center; gap:10px; }
.rc-sidebar__user-info{ min-width:0; flex:1; }
.rc-sidebar__user-name{ font-size:12.5px; font-weight:700; color:var(--text-primary);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

html.rc-sidebar-collapsed{ --sidebar-w:52px; }
html.rc-sidebar-collapsed .rc-sidebar__toggle-collapse{ display:none; }
html.rc-sidebar-collapsed .rc-sidebar__toggle-expand{ display:flex; }
html.rc-sidebar-collapsed .rc-sidebar__toggle{ margin-left:0; }
html.rc-sidebar-collapsed .rc-sidebar__brand{ flex-direction:column; gap:10px; padding:12px 8px 10px; }
html.rc-sidebar-collapsed .rc-sidebar__mark{ width:28px; height:28px; font-size:13px; }
html.rc-sidebar-collapsed .rc-sidebar__name{ display:none; }
html.rc-sidebar-collapsed .rc-sidebar__sec{ display:none; }
html.rc-sidebar-collapsed .rc-sidebar__nav{ padding:12px 7px; }
html.rc-sidebar-collapsed .rc-navitem{ justify-content:center; padding:9px 0; gap:0; }
html.rc-sidebar-collapsed .rc-navitem span{ display:none; }
html.rc-sidebar-collapsed .rc-navitem__badge{ display:none; }
html.rc-sidebar-collapsed .rc-navitem--active::before{ display:none; }
html.rc-sidebar-collapsed .rc-sidebar__foot{ padding:10px 7px; }
html.rc-sidebar-collapsed .rc-sidebar__user{ flex-direction:column; gap:8px; }
html.rc-sidebar-collapsed .rc-sidebar__user-info{ display:none; }

/* Na mobile je rail horný pruh na plnú šírku — zbalenie tam nedáva zmysel. */
@media (max-width:760px){
  .rc-sidebar__toggle{ display:none; }
  html.rc-sidebar-collapsed{ --sidebar-w:248px; }
  html.rc-sidebar-collapsed .rc-sidebar__name{ display:flex; }
  html.rc-sidebar-collapsed .rc-sidebar__sec{ display:block; }
  html.rc-sidebar-collapsed .rc-navitem{ justify-content:flex-start; padding:9px 12px; gap:11px; }
  html.rc-sidebar-collapsed .rc-navitem span{ display:inline; }
  html.rc-sidebar-collapsed .rc-sidebar__brand{ flex-direction:row; gap:11px; padding:18px 18px 16px; }
  html.rc-sidebar-collapsed .rc-sidebar__user{ flex-direction:row; }
  html.rc-sidebar-collapsed .rc-sidebar__user-info{ display:block; }
}
