@charset "UTF-8";
/**
 * --- Abstracts (tiché — pouze mixiny, funkce; žádný CSS output) ---
 * Není potřeba importovat zde — partialy si je importují samy přes @use "../abstracts".
 * Výjimka: pokud main.scss sám potřebuje mixiny (v sekci stránkových stylů níže).
 */
/**
 * --- Base (globální reset, CSS custom properties) ---
 * Musí být první, protože ostatní části používají CSS custom properties.
 */
:root {
  --transition: all 0.3s ease-in-out;
  --padding-on-side: 40px;
  --margins: 1em;
  --gap: 40px;
  --gap-smaller: 20px;
  --shadow-soft: 0 6px 20px rgba(20, 20, 25, 0.05);
  --shadow: 0 8px 24px rgba(20, 20, 25, 0.08);
  --shadow-hover: 0 12px 30px rgba(20, 20, 25, 0.1);
  --border-radius-smaller: 8px;
  --border-radius: 10px;
  --border-radius-big: 14px;
  --border-radius-bigger: 16px;
  --border-radius-badge: 9px;
  --border-radius-pill: 999px;
  --content-tiny: 800px;
  --content-small: 960px;
  --content-medium: 1120px;
  --content-portal: 1180px;
  --content-regular: 1360px;
  --content-big: 1720px;
  --top-bar-height: 66px;
  --sidebar-width: 256px;
  --font-weight-thin: 100;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;
  --line-height: 1.45;
  --letter-spacing: normal;
  --font-size-10: 10px;
  --font-size-11: 11px;
  --font-size-12: 12px;
  --font-size-13: 13px;
  --font-size-14: 14px;
  --font-size-15: 15px;
  --font-size-16: 16px;
  --font-size-17: 17px;
  --font-size-18: 18px;
  --font-size-20: 20px;
  --font-size-24: 24px;
  --font-size-28: 28px;
  --font-size-30: 30px;
  --font-size-36: 36px;
  --font-size-42: 42px;
  --font-size-48: 48px;
  --font-size-60: 60px;
  --font-size-72: 72px;
  --font-size-90: 90px;
  --font-size-120: 120px;
  --font-basic: "Barlow", system-ui, sans-serif;
  --font-heading: "Barlow", system-ui, sans-serif;
  --font-label: "Barlow Semi Condensed", system-ui, sans-serif;
  --color-white: #fff;
  --color-black: #1b1b1c;
  --color-dark: #151516;
  --color-red: #e30613;
  --color-title: #151516;
  --color-heading: #151516;
  --color-text: #5a5a5b;
  --color-line: #eae9e3;
  --color-line-2: #e5e4dc;
  --color-primary: #fdc300;
  --color-on-primary: #1b1b1c;
  --gradient-dark-from: #1b1b1c;
  --gradient-dark-to: #33301f;
  --color-primary-dark: #e9b400;
  --color-primary-soft: #fff8e0;
  --color-primary-line: #f2d97a;
  --color-secondary: #1b1b1c;
  --color-secondary-light: #f2f1ea;
  --color-tertiary: #8a8a82;
  --color-tertiary-light: #a2a29c;
  --color-light: #f4f4f2;
  --color-light-2: #faf9f3;
  --color-border: transparent;
  --color-main: var(--color-text);
  --color-primary-light: var(--color-primary-soft);
  --color-paper: #f4f4f2;
  --color-card: #fff;
  --color-tint: #faf9f3;
  --color-tint-warm: #faf8f2;
  --color-head: #fbfbf8;
  --color-hover: #f6f5f0;
  --color-ink: #1b1b1c;
  --color-ink-strong: #151516;
  --color-ink-2: #26262b;
  --color-ink-3: #4b4b4c;
  --color-ink-4: #5a5a5b;
  --color-muted: #8a8a82;
  --color-faint: #a2a29c;
  --color-ghost: #b6b6b0;
  --color-label: #8a8a86;
  --color-ink-inverse: #fff;
  --color-line-soft: #f0efe9;
  --color-line-row: #f4f3ed;
  --color-line-header: #e7e7e2;
  --color-line-icon: #ecece6;
  --color-line-hover: #e3e0d6;
  --color-line-datebox: #eae8de;
  --color-avatar-bg: #f3f2ec;
  --color-scrollbar: #d7d7d2;
  --color-success: #1f7a41;
  --color-success-dot: #2a9d54;
  --color-success-bg: #eaf7ee;
  --color-warning: #a8820a;
  --color-warning-strong: #8a6b06;
  --color-warning-dot: #e0a92b;
  --color-warning-bg: #fff5d6;
  --color-danger: #c81e1e;
  --color-danger-bg: #fdecec;
  --color-error: #c81e1e;
  --color-info: #1f5aa8;
  --color-info-bg: #e8f0fb;
  --color-file-pptx: #c0680f;
  --color-file-pptx-bg: #fdf0e6;
  --color-file-xlsx: #1f7a41;
  --color-file-xlsx-bg: #eaf7ee;
  --color-accent-purple: #7a3ea8;
  --color-accent-purple-bg: #faf7fd;
  --color-green: #2a9d54;
  --gradient-light: linear-gradient(to bottom, var(--color-light) 0%, var(--color-white) 100%);
  --linear-gradient: var(--gradient-light);
  --color-heading-rgb: 21, 21, 22;
  --color-text-rgb: 90, 90, 91;
  --color-light-rgb: 244, 244, 242;
  --color-primary-rgb: 253, 195, 0;
  --color-tertiary-rgb: 138, 138, 130;
  --color-white-rgb: 255, 255, 255;
  --color-black-rgb: 27, 27, 28;
  --color-success-rgb: 31, 122, 65;
  --color-warning-rgb: 168, 122, 10;
  --color-danger-rgb: 200, 30, 30;
  --page-background-color: var(--color-paper);
  --page-default-font-size: var(--font-size-14);
  --page-default-font-color: var(--color-ink);
  --page-default-font-family: var(--font-basic);
  --page-default-line-height: 1.2;
  --page-letter-spacing: normal;
  accent-color: var(--color-primary);
}

@media screen and (max-width: 1400px) {
  :root {
    --padding-on-side: 30px;
    --gap: 30px;
    --font-size-24: 22px;
    --font-size-28: 24px;
    --font-size-30: 28px;
    --font-size-36: 30px;
    --font-size-42: 36px;
    --font-size-48: 40px;
    --font-size-60: 48px;
    --font-size-72: 60px;
    --font-size-90: 72px;
    --font-size-120: 80px;
  }
}
@media screen and (max-width: 1024px) {
  :root {
    --padding-on-side: 24px;
    --gap: 24px;
    --font-size-24: 20px;
    --font-size-28: 22px;
    --font-size-30: 26px;
    --font-size-36: 28px;
    --font-size-42: 32px;
    --font-size-48: 36px;
    --font-size-60: 44px;
    --font-size-72: 56px;
    --font-size-90: 60px;
    --font-size-120: 66px;
  }
}
@media screen and (max-width: 660px) {
  :root {
    --padding-on-side: 16px;
    --gap: 16px;
    --font-size-20: 19px;
    --font-size-24: 21px;
    --font-size-28: 22px;
    --font-size-30: 23px;
    --font-size-36: 25px;
    --font-size-42: 27px;
    --font-size-48: 30px;
    --font-size-60: 32px;
    --font-size-72: 40px;
    --font-size-90: 42px;
    --font-size-120: 44px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    color-scheme: dark;
    --color-paper: #121214;
    --color-card: #1b1b1f;
    --color-tint: #212126;
    --color-tint-warm: #24242a;
    --color-head: #1f1f24;
    --color-hover: #26262c;
    --color-avatar-bg: #2a2a30;
    --color-light: #121214;
    --color-light-2: #212126;
    --color-secondary-light: #26262c;
    --color-ink: #ececee;
    --color-ink-strong: #f6f6f8;
    --color-ink-2: #e2e2e6;
    --color-ink-3: #c9c9ce;
    --color-ink-4: #b9b9bf;
    --color-muted: #9a9aa2;
    --color-faint: #84848c;
    --color-ghost: #6e6e76;
    --color-label: #9a9aa2;
    --color-text: #b9b9bf;
    --color-heading: #f6f6f8;
    --color-title: #f6f6f8;
    --color-tertiary: #9a9aa2;
    --color-tertiary-light: #84848c;
    --color-line: #2e2e35;
    --color-line-2: #36363e;
    --color-line-soft: #28282f;
    --color-line-row: #26262d;
    --color-line-header: #2e2e35;
    --color-line-icon: #33333b;
    --color-line-hover: #43434c;
    --color-line-datebox: #33333b;
    --color-scrollbar: #3a3a42;
    --color-success: #4ec97d;
    --color-success-dot: #43d17e;
    --color-success-bg: #16301f;
    --color-warning: #e2b23c;
    --color-warning-strong: #f0c258;
    --color-warning-dot: #e0a92b;
    --color-warning-bg: #332a10;
    --color-danger: #f36a6a;
    --color-danger-bg: #3a1a1a;
    --color-error: #f36a6a;
    --color-info: #6ba6f0;
    --color-info-bg: #152438;
    --color-file-pptx: #e8974a;
    --color-file-pptx-bg: #33220f;
    --color-file-xlsx: #4ec97d;
    --color-file-xlsx-bg: #16301f;
    --color-accent-purple: #b989e0;
    --color-accent-purple-bg: #26193a;
    --color-primary-soft: #3a2f0a;
    --color-primary-line: #6b5a12;
    --color-heading-rgb: 246, 246, 248;
    --color-text-rgb: 185, 185, 191;
    --color-light-rgb: 18, 18, 20;
    --color-tertiary-rgb: 154, 154, 162;
    --color-success-rgb: 78, 201, 125;
    --color-warning-rgb: 226, 178, 60;
    --color-danger-rgb: 243, 106, 106;
    --shadow-soft: 0 6px 20px rgba(0, 0, 0, 0.35);
    --shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    --shadow-hover: 0 12px 30px rgba(0, 0, 0, 0.55);
  }
}
:root[data-theme=dark] {
  color-scheme: dark;
  --color-paper: #121214;
  --color-card: #1b1b1f;
  --color-tint: #212126;
  --color-tint-warm: #24242a;
  --color-head: #1f1f24;
  --color-hover: #26262c;
  --color-avatar-bg: #2a2a30;
  --color-light: #121214;
  --color-light-2: #212126;
  --color-secondary-light: #26262c;
  --color-ink: #ececee;
  --color-ink-strong: #f6f6f8;
  --color-ink-2: #e2e2e6;
  --color-ink-3: #c9c9ce;
  --color-ink-4: #b9b9bf;
  --color-muted: #9a9aa2;
  --color-faint: #84848c;
  --color-ghost: #6e6e76;
  --color-label: #9a9aa2;
  --color-text: #b9b9bf;
  --color-heading: #f6f6f8;
  --color-title: #f6f6f8;
  --color-tertiary: #9a9aa2;
  --color-tertiary-light: #84848c;
  --color-line: #2e2e35;
  --color-line-2: #36363e;
  --color-line-soft: #28282f;
  --color-line-row: #26262d;
  --color-line-header: #2e2e35;
  --color-line-icon: #33333b;
  --color-line-hover: #43434c;
  --color-line-datebox: #33333b;
  --color-scrollbar: #3a3a42;
  --color-success: #4ec97d;
  --color-success-dot: #43d17e;
  --color-success-bg: #16301f;
  --color-warning: #e2b23c;
  --color-warning-strong: #f0c258;
  --color-warning-dot: #e0a92b;
  --color-warning-bg: #332a10;
  --color-danger: #f36a6a;
  --color-danger-bg: #3a1a1a;
  --color-error: #f36a6a;
  --color-info: #6ba6f0;
  --color-info-bg: #152438;
  --color-file-pptx: #e8974a;
  --color-file-pptx-bg: #33220f;
  --color-file-xlsx: #4ec97d;
  --color-file-xlsx-bg: #16301f;
  --color-accent-purple: #b989e0;
  --color-accent-purple-bg: #26193a;
  --color-primary-soft: #3a2f0a;
  --color-primary-line: #6b5a12;
  --color-heading-rgb: 246, 246, 248;
  --color-text-rgb: 185, 185, 191;
  --color-light-rgb: 18, 18, 20;
  --color-tertiary-rgb: 154, 154, 162;
  --color-success-rgb: 78, 201, 125;
  --color-warning-rgb: 226, 178, 60;
  --color-danger-rgb: 243, 106, 106;
  --shadow-soft: 0 6px 20px rgba(0, 0, 0, 0.35);
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  --shadow-hover: 0 12px 30px rgba(0, 0, 0, 0.55);
}

:root[data-theme=light] {
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .sol-card--dark {
    --card-bg: #f4f4f2;
    --card-color: #1b1b1c;
    --card-border: #f4f4f2;
    --card-head-line: rgba(0, 0, 0, 0.1);
  }
  :root:not([data-theme=light]) .sol-card--dark .sol-card__subtitle,
  :root:not([data-theme=light]) .sol-card--dark .sol-tile__note {
    color: rgba(0, 0, 0, 0.6);
  }
  :root:not([data-theme=light]) .sol-btn--dark {
    --btn-color: #1b1b1c;
    --btn-bg: #f4f4f2;
    --btn-border: #f4f4f2;
  }
  :root:not([data-theme=light]) .sol-btn--dark:hover {
    --btn-bg: var(--color-primary);
    --btn-border: var(--color-primary);
    --btn-color: #1b1b1c;
  }
  :root:not([data-theme=light]) .sol-catnav__item--current,
  :root:not([data-theme=light]) .sol-viewswitch__item--current {
    --catnav-color: var(--color-on-primary);
    --catnav-bg: var(--color-primary);
    --catnav-border: var(--color-primary);
    color: var(--color-on-primary);
    background-color: var(--color-primary);
  }
  :root:not([data-theme=light]) .sol-catnav__item--current:hover,
  :root:not([data-theme=light]) .sol-viewswitch__item--current:hover {
    --catnav-color: var(--color-on-primary);
    --catnav-border: var(--color-primary);
    color: var(--color-on-primary);
  }
  :root:not([data-theme=light]) .sol-helphero,
  :root:not([data-theme=light]) .sol-callout {
    border: 1px solid var(--color-line);
  }
  :root:not([data-theme=light]) .sol-card--dark .sol-dot {
    box-shadow: 0 0 0 4px rgba(var(--dot-rgb, 138, 138, 130), 0.3);
  }
}
:root[data-theme=dark] .sol-card--dark {
  --card-bg: #f4f4f2;
  --card-color: #1b1b1c;
  --card-border: #f4f4f2;
  --card-head-line: rgba(0, 0, 0, 0.1);
}
:root[data-theme=dark] .sol-card--dark .sol-card__subtitle,
:root[data-theme=dark] .sol-card--dark .sol-tile__note {
  color: rgba(0, 0, 0, 0.6);
}
:root[data-theme=dark] .sol-btn--dark {
  --btn-color: #1b1b1c;
  --btn-bg: #f4f4f2;
  --btn-border: #f4f4f2;
}
:root[data-theme=dark] .sol-btn--dark:hover {
  --btn-bg: var(--color-primary);
  --btn-border: var(--color-primary);
  --btn-color: #1b1b1c;
}
:root[data-theme=dark] .sol-catnav__item--current,
:root[data-theme=dark] .sol-viewswitch__item--current {
  --catnav-color: var(--color-on-primary);
  --catnav-bg: var(--color-primary);
  --catnav-border: var(--color-primary);
  color: var(--color-on-primary);
  background-color: var(--color-primary);
}
:root[data-theme=dark] .sol-catnav__item--current:hover,
:root[data-theme=dark] .sol-viewswitch__item--current:hover {
  --catnav-color: var(--color-on-primary);
  --catnav-border: var(--color-primary);
  color: var(--color-on-primary);
}
:root[data-theme=dark] .sol-helphero,
:root[data-theme=dark] .sol-callout {
  border: 1px solid var(--color-line);
}
:root[data-theme=dark] .sol-card--dark .sol-dot {
  box-shadow: 0 0 0 4px rgba(var(--dot-rgb, 138, 138, 130), 0.3);
}

/* latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/barlow-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/barlow-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/barlow-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/barlow-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/barlow-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/barlow-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/barlow-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/barlow-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/barlow-semi-condensed-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/barlow-semi-condensed-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/barlow-semi-condensed-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: "Barlow Semi Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/barlow-semi-condensed-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
  /* ---- Navigace portálu ---- */
  --icon-dashboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9'%3E%3C/rect%3E%3Crect x='14' y='3' width='7' height='5'%3E%3C/rect%3E%3Crect x='14' y='12' width='7' height='9'%3E%3C/rect%3E%3Crect x='3' y='16' width='7' height='5'%3E%3C/rect%3E%3C/svg%3E");
  --icon-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.85' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'%3E%3C/path%3E%3Cpath d='M5 21V7l7-4 7 4v14'%3E%3C/path%3E%3Cpath d='M9 21v-6h6v6'%3E%3C/path%3E%3C/svg%3E");
  --icon-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'%3E%3C/path%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'%3E%3C/path%3E%3C/svg%3E");
  --icon-file-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22V4a2 2 0 0 1 2-2h9l5 5v15a2 2 0 0 1-2 2z'%3E%3C/path%3E%3Cline x1='8' y1='11' x2='16' y2='11'%3E%3C/line%3E%3Cline x1='8' y1='15' x2='14' y2='15'%3E%3C/line%3E%3C/svg%3E");
  --icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
  --icon-help-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'%3E%3C/line%3E%3C/svg%3E");
  --icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13 1 .37 1.94.72 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.87.35 1.81.59 2.81.72A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E");
  --icon-logout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'%3E%3C/path%3E%3Cpolyline points='16 17 21 12 16 7'%3E%3C/polyline%3E%3Cline x1='21' y1='12' x2='9' y2='12'%3E%3C/line%3E%3C/svg%3E");
  /* ---- Horní lišta a shell ---- */
  --icon-bell: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'%3E%3C/path%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'%3E%3C/path%3E%3C/svg%3E");
  --icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  --icon-chevron-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
  --icon-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='3' y1='6' x2='21' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='12' x2='21' y2='12'%3E%3C/line%3E%3Cline x1='3' y1='18' x2='21' y2='18'%3E%3C/line%3E%3C/svg%3E");
  --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
  /* ---- Akce ---- */
  --icon-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='7 10 12 15 17 10'%3E%3C/polyline%3E%3Cline x1='12' y1='15' x2='12' y2='3'%3E%3C/line%3E%3C/svg%3E");
  --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
  --icon-filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'%3E%3C/polygon%3E%3C/svg%3E");
  --icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'%3E%3C/line%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
  --icon-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'%3E%3C/path%3E%3Cpath d='M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z'%3E%3C/path%3E%3C/svg%3E");
  --icon-paperclip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48'%3E%3C/path%3E%3C/svg%3E");
  --icon-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3Cpolyline points='12 5 19 12 12 19'%3E%3C/polyline%3E%3C/svg%3E");
  --icon-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E");
  /* ---- Stavy a obsah ---- */
  --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  --icon-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='9' cy='7' r='4'%3E%3C/circle%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'%3E%3C/path%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'%3E%3C/path%3E%3C/svg%3E");
  --icon-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E");
  --icon-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E");
  --icon-flag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4v16'%3E%3C/path%3E%3Cpath d='M4 5h16l-3 4 3 4H4'%3E%3C/path%3E%3C/svg%3E");
  --icon-email: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E");
  --icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E");
  --icon-address-alt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
  --icon-remove: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
  /* ---- Odrážky a tlačítka (tenké varianty, viewBox 12–16) ---- */
  --icon-arrow-right-thin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 8h9M8.5 4l4 4-4 4'/%3E%3C/svg%3E");
  --icon-check-thin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2l2 2 5-5.4'/%3E%3C/svg%3E");
  --icon-cross-thin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.8' stroke-linecap='round' d='M3 3l6 6M9 3l-6 6'/%3E%3C/svg%3E");
  /* ---- Stavové hlášky formulářů ---- */
  --icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='22'%3E%3Cpath fill-rule='evenodd' fill='%23000' d='M2 15a2 2 0 01-2-2V1.999a2 2 0 014 0V13a2 2 0 01-2 2zm0 3a2 2 0 110 4 2 2 0 010-4z'/%3E%3C/svg%3E");
  --icon-ok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.6 12.8'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M12.9 1.6l-7.2 9.7-4.1-4.9'/%3E%3C/svg%3E");
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes sol-pulse {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  70% {
    transform: scale(2.8);
    opacity: 0;
  }
  100% {
    transform: scale(2.8);
    opacity: 0;
  }
}
* {
  box-sizing: border-box;
  position: relative;
}

h1,
h2,
h3,
h4,
h5,
h6,
ul,
li,
a,
input,
textarea,
p,
body,
span,
menu {
  margin: 0;
  padding: 0;
  line-height: var(--page-default-line-height, 1.25);
}

img {
  border: none;
}

ul li,
menu li {
  list-style: none;
}

a {
  text-decoration: none;
}

a,
svg,
path {
  transition: var(--transition);
}

div,
article,
section,
img,
main,
input,
textarea {
  display: block;
}

input,
textarea,
img,
a,
option,
select,
button,
div {
  outline: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

html {
  font-size: var(--page-default-font-size, var(--font-size-18));
  font-family: var(--font-basic);
  font-weight: var(--font-weight-light);
  font-optical-sizing: auto;
  height: fill-available;
  height: -webkit-fill-available;
  width: 100%;
  overflow-x: hidden;
}

body {
  color: var(--page-default-font-color, var(--color-text));
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  background-color: var(--page-background-color, var(--color-white));
  min-height: 100dvh;
  min-height: fill-available;
  min-height: -webkit-fill-available;
  overflow: clip;
  letter-spacing: var(--page-letter-spacing, normal);
}

/**
 * --- Components (izolované UI komponenty) ---
 * Všechny znovupoužitelné komponenty, které nejsou specifické pro WordPress bloky.
 */
.button,
.wp-block-button {
  --button-text-color: var(--color-black);
  --button-text-color-hover: var(--color-black);
  --button-background-color: var(--color-primary);
  --button-background-color-hover: var(--color-primary-dark);
  --button-font-size: var(--font-size-15);
  --button-border-radius: var(--border-radius);
  --button-border-color: transparent;
  --button-border: 1.5px solid var(--button-border-color);
  --button-border-color-hover: transparent;
  --button-shadow: none;
  --button-shadow-hover: none;
  --button-padding: 0.9em clamp(1em, 4vw, 1.2em);
}
.button--smaller,
.wp-block-button--smaller {
  --button-font-size: var(--font-size-14);
}
.button--tiny,
.wp-block-button--tiny {
  --button-font-size: var(--font-size-13);
  --button-padding: 0.4em 0.8em 0.45em;
}
.button--secondary,
.wp-block-button--secondary {
  --button-text-color: var(--color-secondary);
  --button-text-color-hover: var(--color-white);
  --button-background-color: var(--color-card);
  --button-background-color-hover: var(--color-primary);
  --button-border-color: var(--color-line-2);
  --button-border-color-hover: var(--color-primary);
}

.button,
.wp-block-button .wp-block-button__link {
  font-family: var(--font-basic);
  font-weight: var(--font-weight-bold);
  font-optical-sizing: auto;
  display: inline-block;
  padding: var(--button-padding);
  line-height: 1;
  font-size: var(--button-font-size, var(--font-size-16));
  border: var(--button-border, none);
  transition: var(--transition);
  cursor: pointer;
  border-radius: var(--button-border-radius, var(--border-radius));
  text-align: center;
  color: var(--button-text-color, var(--color-white));
  background-color: var(--button-background-color, var(--color-main));
  box-shadow: var(--button-shadow, none);
  letter-spacing: 0.05em;
}
.button:hover,
.wp-block-button .wp-block-button__link:hover {
  color: var(--button-text-color-hover, var(--color-white));
  background-color: var(--button-background-color-hover, var(--color-secondary-light));
  box-shadow: var(--button-shadow-hover, none);
  border-color: var(--button-border-color-hover, var(--color-tertiary));
}
.button:focus-visible,
.wp-block-button .wp-block-button__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.45);
}

.button.has-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
}
.button.has-arrow::after {
  content: "";
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  background-color: currentColor;
  mask: var(--icon-arrow-right-thin) center/contain no-repeat;
  transition: transform 0.2s ease;
}
.button.has-arrow:hover::after {
  transform: translateX(0.2em);
}

.buttons-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1em;
}
.buttons-wrapper.text-center {
  justify-content: center;
}
.buttons-wrapper.text-right {
  justify-content: flex-end;
}

.sol-btn {
  --btn-color: var(--color-ink);
  --btn-bg: var(--color-light-2);
  --btn-border: var(--color-line-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.85em 1.4em;
  font-family: var(--font-basic);
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  color: var(--btn-color);
  background-color: var(--btn-bg);
  border: 1px solid var(--btn-border);
  border-radius: var(--border-radius);
  cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
}
.sol-btn:hover {
  filter: brightness(0.96);
}
.sol-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-btn--primary {
  --btn-color: var(--color-on-primary);
  --btn-bg: var(--color-primary);
  --btn-border: var(--color-primary);
}
.sol-btn--dark {
  --btn-color: var(--color-white);
  --btn-bg: var(--color-ink);
  --btn-border: var(--color-ink);
}
.sol-btn--dark:hover {
  --btn-bg: var(--color-primary);
  --btn-border: var(--color-primary);
  --btn-color: var(--color-ink);
}
.sol-btn--remove-filter {
  padding: 0.5em 0.8em;
  font-size: var(--font-size-12);
}
.sol-btn--block {
  width: 100%;
}

.sol-btn--plus {
  --btn-icon: var(--icon-plus);
}
.sol-btn--plus::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--edit {
  --btn-icon: var(--icon-edit);
}
.sol-btn--edit::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--search {
  --btn-icon: var(--icon-search);
}
.sol-btn--search::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--download {
  --btn-icon: var(--icon-download);
}
.sol-btn--download::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--check {
  --btn-icon: var(--icon-check);
}
.sol-btn--check::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--external {
  --btn-icon: var(--icon-external);
}
.sol-btn--external::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--filter {
  --btn-icon: var(--icon-filter);
}
.sol-btn--filter::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.sol-btn--remove {
  --btn-icon: var(--icon-remove);
}
.sol-btn--remove::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--btn-icon) center/contain no-repeat;
}

.form {
  --form-input-font-family: var(--font-basic);
  --form-submit-button-border-radius: 0;
  --form-response-border-radius: var(--border-radius-big);
  padding: 0;
}

.newsletter-form {
  max-width: 480px;
  margin: 0 auto;
  --form-column-min-width: 100px;
  --form-input-border-radius: var(--border-radius-big);
  --form-label-text-color: var(--color-secondary);
  --form-input-background-color: var(--color-card);
  --form-submit-button-padding: 0.6em 1.5em;
}
.newsletter-form .form__column--flex-2 {
  flex-basis: calc(75% - var(--form-gap));
}
.newsletter-form .form__column--flex-1 {
  flex-basis: calc(25% - var(--form-gap));
}

.contact-form {
  background-color: var(--color-light);
  padding: clamp(16px, 5cqw, 60px);
  border-radius: var(--border-radius-big);
}
.contact-form .form {
  --form-input-background-color: var(--color-card);
  --form-input-text-color: var(--color-heading);
  --form-input-placeholder-opacity: 0.5;
  --form-input-border: 1px solid rgba(71, 60, 56, 0.25);
  --form-input-border-active: 1px solid rgba(71, 60, 56, 0.5);
  --form-input-border-radius: var(--border-radius);
  --form-choice-background-color: var(--color-card);
  --form-choice-border: 1px solid rgba(71, 60, 56, 0.25);
  --form-choice-border-active: 1px solid rgba(71, 60, 56, 0.5);
  --form-choice-check-color: var(--color-primary);
  --form-submit-button-background-color: var(--color-secondary);
  --form-submit-button-text-color: var(--color-white);
  --form-submit-button-background-color-hover: var(--color-primary);
  --form-submit-button-text-color-hover: var(--color-white);
  --form-submit-button-border-radius: var(--border-radius);
}

.order-form .coupon-value .form__radio-group {
  flex-direction: row;
  gap: 1em;
  margin-top: 0.5em;
}
.order-form .coupon-value .form__radio-label {
  padding: 0.5em 1em;
  border: 1px solid var(--color-light);
}
.order-form .coupon-value .form__radio-label:has(input:checked) {
  border-color: var(--color-primary);
}
.order-form .coupon-count .form__number-wrap {
  width: auto;
}
.order-form .coupon-count .form__number-wrap input {
  width: auto;
}

.sol-searchfield {
  --searchfield-icon-color: var(--color-faint);
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}
.sol-searchfield::before {
  content: "";
  position: absolute;
  left: 1em;
  width: 1.1em;
  height: 1.1em;
  background-color: var(--searchfield-icon-color);
  mask: var(--icon-search) center/contain no-repeat;
  pointer-events: none;
  z-index: 2;
}
.sol-searchfield > input {
  width: 100%;
  padding-left: 2.9em;
}

.articles {
  --articles-gap: clamp(10px, 2cqw, 30px);
  --article-min-width: 320px;
  display: grid;
  gap: var(--articles-gap);
  grid-template-columns: repeat(auto-fill, minmax(var(--article-min-width), 1fr));
}
.articles--post {
  margin-top: var(--gap);
}

.sol-card {
  --card-bg: var(--color-card);
  --card-color: var(--color-ink);
  --card-border: var(--color-line);
  --card-head-line: var(--color-line-soft);
  --card-padding: clamp(16px, 2.4vw, 26px);
  padding: var(--card-padding);
  color: var(--card-color);
  background-color: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius-bigger);
}
.sol-card + .sol-card {
  margin-top: var(--gap-smaller);
}
.sol-card--dark {
  --card-bg: var(--color-dark);
  --card-color: var(--color-white);
  --card-border: var(--color-dark);
  --card-head-line: rgba(var(--color-white-rgb), 0.14);
}
.sol-card--tint {
  --card-bg: var(--color-tint);
  --card-border: var(--color-line-datebox);
}
.sol-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1em;
  flex-wrap: wrap;
  margin-bottom: 1.2em;
}
.sol-card__head--no-bottom {
  margin-bottom: 0 !important;
}
.sol-card__head:first-child {
  margin: calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) var(--card-padding);
  padding: calc(var(--card-padding) * 0.72) var(--card-padding);
  border-bottom: 1px solid var(--card-head-line);
}
.sol-card__title {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--font-size-17);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.01em;
  color: var(--card-color);
}
.sol-card__title > *:first-child {
  margin-top: 0;
}
.sol-card__title > *:last-child {
  margin-bottom: 0;
}
.sol-card__subtitle {
  margin: 0.4em 0 0;
  font-size: var(--font-size-13);
  line-height: 1.5;
  color: var(--color-muted);
}
.sol-card__eyebrow {
  margin: 0 0 0.8em;
  font-family: var(--font-label);
  font-size: var(--font-size-10);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-ghost);
}
.sol-card__value-label {
  display: flex;
  align-items: baseline;
  gap: 0.75em;
}
.sol-card__actions {
  display: flex;
  align-items: center;
  gap: 0.6em;
  margin-top: 1.2em;
}
.sol-card--dark .sol-card__subtitle {
  color: rgba(var(--color-white-rgb), 0.65);
}

.sol-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.7em;
  padding: 0.15em 0.5em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-4);
  background-color: var(--color-light-2);
  border-radius: var(--border-radius-pill);
}

.sol-muted {
  color: var(--color-faint);
}

.sol-pill {
  --pill-color: var(--color-ink-4);
  --pill-bg: var(--color-light-2);
  --pill-dot: currentColor;
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  padding: 0.35em 0.85em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
  color: var(--pill-color);
  background-color: var(--pill-bg);
  border-radius: var(--border-radius-pill);
}
.sol-pill--dot::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  background-color: var(--pill-dot);
}
.sol-pill--active {
  --pill-color: var(--color-success);
  --pill-bg: var(--color-success-bg);
  --pill-dot: var(--color-success-dot);
}
.sol-pill--invited {
  --pill-color: var(--color-warning);
  --pill-bg: var(--color-warning-bg);
  --pill-dot: var(--color-warning-dot);
}
.sol-pill--amber {
  --pill-color: var(--color-warning-strong);
  --pill-bg: var(--color-warning-bg);
}
.sol-pill--danger {
  --pill-color: var(--color-danger);
  --pill-bg: var(--color-danger-bg);
  --pill-dot: var(--color-danger);
}
.sol-pill--open {
  --pill-color: var(--color-warning);
  --pill-bg: var(--color-warning-bg);
  --pill-dot: var(--color-warning-dot);
}
.sol-pill--closed {
  --pill-color: var(--color-success);
  --pill-bg: var(--color-success-bg);
  --pill-dot: var(--color-success-dot);
}

.sol-filetype {
  --ft-color: var(--color-ink-4);
  --ft-bg: var(--color-light-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 3.2em;
  aspect-ratio: 1/1;
  padding: 0.35em 0;
  font-size: var(--font-size-10);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.04em;
  color: var(--ft-color);
  background-color: var(--ft-bg);
  border-radius: var(--border-radius-badge);
}
.sol-filetype--pdf {
  --ft-color: var(--color-danger);
  --ft-bg: var(--color-danger-bg);
}
.sol-filetype--doc, .sol-filetype--docx {
  --ft-color: var(--color-info);
  --ft-bg: var(--color-info-bg);
}
.sol-filetype--ppt, .sol-filetype--pptx {
  --ft-color: var(--color-file-pptx);
  --ft-bg: var(--color-file-pptx-bg);
}
.sol-filetype--xls, .sol-filetype--xlsx {
  --ft-color: var(--color-file-xlsx);
  --ft-bg: var(--color-file-xlsx-bg);
}

.sol-notice {
  --notice-color: var(--color-ink);
  --notice-bg: var(--color-light-2);
  --notice-border-color: var(--color-line);
  margin: 0 0 var(--gap-smaller);
  padding: 0.9em 1.1em;
  font-size: var(--font-size-13);
  line-height: 1.55;
  color: var(--notice-color);
  background-color: var(--notice-bg);
  border-radius: var(--border-radius);
  border: 1px solid var(--notice-border-color);
}
.sol-notice--success {
  --notice-color: var(--color-success);
  --notice-bg: var(--color-success-bg);
  --notice-border-color: rgba(var(--color-success-rgb), 0.25);
}
.sol-notice--error {
  --notice-color: var(--color-danger);
  --notice-bg: var(--color-danger-bg);
  --notice-border-color: rgba(var(--color-danger-rgb), 0.25);
}
.sol-notice--info {
  --notice-color: var(--color-warning);
  --notice-bg: var(--color-warning-bg);
  --notice-border-color: rgba(var(--color-warning-rgb), 0.25);
}

.sol-lock {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  color: var(--color-warning-strong);
  cursor: help;
}
.sol-lock::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  mask: var(--icon-lock) center/contain no-repeat;
}

.sol-datagrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.4em;
  margin: 0;
}
.sol-datagrid__item dt {
  margin-bottom: 0.35em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
}
.sol-datagrid__item dd {
  margin: 0;
  font-size: var(--font-size-14);
  line-height: 1.5;
  color: var(--color-ink);
}
.sol-datagrid__item dd a {
  color: var(--color-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--color-line-2);
}
.sol-datagrid__item dd a:hover, .sol-datagrid__item dd a:focus-visible {
  border-bottom-color: var(--color-primary);
}
.sol-datagrid__note {
  display: block;
  margin-top: 0.15em;
  font-size: var(--font-size-13);
  color: var(--color-muted);
}

.sol-people {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sol-people__item {
  display: flex;
  align-items: center;
  gap: 0.9em;
  padding: 0.9em 0;
  border-top: 1px solid var(--color-line-soft);
}
.sol-people__item:first-child {
  border-top: 0;
  padding-top: 0;
}
.sol-people__body {
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  min-width: 0;
  margin-right: auto;
}
.sol-people__name {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}
.sol-people__mail {
  font-size: var(--font-size-13);
  color: var(--color-muted);
  word-break: break-word;
}
.sol-people__pills {
  display: flex;
  align-items: center;
  gap: 0.4em;
  flex-wrap: wrap;
}

.sol-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sol-chips__item {
  padding: 0.5em 1em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-medium);
  color: var(--color-ink-4);
  background-color: var(--color-tint);
  border: 1px solid var(--color-line-soft);
  border-radius: var(--border-radius-pill);
}

.sol-files {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sol-files__item {
  display: flex;
  align-items: center;
  gap: 0.9em;
  padding: 0.85em 0;
  border-top: 1px solid var(--color-line-soft);
}
.sol-files__item:first-child {
  border-top: 0;
  padding-top: 0;
}
.sol-files__body {
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  min-width: 0;
  margin-right: auto;
}
.sol-files__name {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}
.sol-files__meta {
  font-size: var(--font-size-12);
  color: var(--color-faint);
  line-height: 1;
}
.sol-files__download {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  flex: 0 0 auto;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-4);
  text-decoration: none;
  padding: 0.35em 0.6em;
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius-smaller);
}
.sol-files__download::before {
  content: "";
  width: 1em;
  height: 1em;
  background-color: currentColor;
  mask: var(--icon-download) center/contain no-repeat;
}
.sol-files__download:hover, .sol-files__download:focus-visible {
  color: var(--color-white);
  background-color: var(--color-ink);
  border-color: var(--color-ink);
}

.sol-stat {
  margin: 0 0 0.9em;
  font-size: var(--font-size-20);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.01em;
  color: inherit;
  display: flex;
  align-items: center;
  gap: 0.6em;
  line-height: 1.2;
}
.sol-stat .sol-dot {
  top: 0.05em;
}

.sol-minilist {
  margin: 0;
}
.sol-minilist > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1em;
  padding: 0.6em 0;
  border-top: 1px solid rgba(var(--color-white-rgb), 0.12);
  border-top-color: color-mix(in srgb, currentColor 14%, transparent);
}
.sol-minilist > div:first-child {
  border-top: 0;
}
.sol-minilist dt {
  font-size: var(--font-size-12);
  color: rgba(var(--color-white-rgb), 0.6);
  color: color-mix(in srgb, currentColor 62%, transparent);
}
.sol-minilist dd {
  margin: 0;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  color: color-mix(in srgb, currentColor 100%, transparent);
}

.sol-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1em;
  margin-bottom: 1.5em;
}
.sol-page-head__title {
  font-size: var(--font-size-28);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  color: var(--color-ink-strong);
}
.sol-page-head__title > *:first-child {
  margin-top: 0;
}
.sol-page-head__title > *:last-child {
  margin-bottom: 0;
}
.sol-page-head__lead {
  margin: 0.55em 0 0;
  font-size: var(--font-size-14);
  line-height: 1.55;
  color: var(--color-muted);
}

.sol-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
}
.sol-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4em;
  padding: 0.55em 0.8em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  color: var(--color-ink-3);
  text-decoration: none;
  background-color: var(--color-card);
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius-smaller);
  transition: var(--transition);
}
.sol-pagination a.page-numbers:hover {
  border-color: var(--color-primary);
  color: var(--color-ink);
}
.sol-pagination a.page-numbers:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
}
.sol-pagination .page-numbers.current {
  color: var(--color-white);
  background-color: var(--color-ink);
  border-color: var(--color-ink);
}
.sol-pagination .page-numbers.dots {
  border-color: transparent;
  background-color: transparent;
  color: var(--color-faint);
}

.sol-empty {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}
.sol-empty__title {
  font-size: var(--font-size-20);
  font-weight: var(--font-weight-bold);
  color: var(--color-ink-strong);
  margin-bottom: 0.6em;
}
.sol-empty__title > *:first-child {
  margin-top: 0;
}
.sol-empty__title > *:last-child {
  margin-bottom: 0;
}
.sol-empty__text {
  margin: 0;
  font-size: var(--font-size-14);
  line-height: 1.6;
  color: var(--color-muted);
}
.sol-empty__action {
  margin: 1.4em 0 0;
}

.sol-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.1em;
  align-items: start;
}
.sol-form > .sol-field:last-of-type,
.sol-form > .sol-btn {
  grid-column: 1/-1;
}
.sol-form > .sol-btn {
  justify-self: start;
}
.sol-form textarea.sol-field__input {
  resize: vertical;
  min-height: 5em;
}
.sol-form--stacked {
  grid-template-columns: 1fr;
}
.sol-form--support {
  margin-top: 1em;
}

.sol-contactline {
  margin: 0 0 0.4em;
  font-size: var(--font-size-14);
  line-height: 1.5;
}
.sol-contactline a {
  color: var(--color-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--color-line-2);
}
.sol-contactline a:hover, .sol-contactline a:focus-visible {
  border-bottom-color: var(--color-primary);
}
.sol-contactline:last-child {
  margin-bottom: 0;
}

.sol-topbar__logo,
.sol-auth__logo {
  color: var(--color-ink);
}

.sol-dialog {
  width: min(560px, 100vw - 2 * var(--padding-on-side));
  max-height: min(90vh, 780px);
  padding: 0;
  color: var(--color-ink);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  box-shadow: var(--shadow-hover);
  overflow: hidden;
}
.sol-dialog::backdrop {
  background-color: rgba(var(--color-black-rgb), 0.45);
}
.sol-dialog__panel {
  display: flex;
  flex-direction: column;
  max-height: inherit;
}
.sol-dialog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1em;
  padding: 1.3em 1.4em 1em;
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-dialog__title {
  font-size: var(--font-size-17);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.01em;
  color: var(--color-ink-strong);
}
.sol-dialog__title > *:first-child {
  margin-top: 0;
}
.sol-dialog__title > *:last-child {
  margin-bottom: 0;
}
.sol-dialog__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.1em;
  height: 2.1em;
  padding: 0;
  color: var(--color-ink-3);
  background-color: transparent;
  border: 1px solid var(--color-line-icon);
  border-radius: var(--border-radius);
  cursor: pointer;
  transition: var(--transition);
}
.sol-dialog__close::before {
  content: "";
  width: 1em;
  height: 1em;
  background-color: currentColor;
  mask: var(--icon-close) center/contain no-repeat;
}
.sol-dialog__close:hover {
  background-color: var(--color-tint-warm);
  border-color: var(--color-line-hover);
}
.sol-dialog__close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-dialog__body {
  padding: 1.4em;
  overflow-y: auto;
}
.sol-dialog__lead {
  margin: 0 0 1.2em;
  font-size: var(--font-size-13);
  line-height: 1.6;
  color: var(--color-muted);
}
.sol-dialog .sol-form {
  grid-template-columns: minmax(0, 1fr);
}

html:not(.js) .sol-dialog {
  display: block;
  position: static;
  width: 100%;
  max-width: none;
  max-height: none;
  margin: var(--gap-smaller) 0 0;
}
html:not(.js) .sol-dialog__close {
  display: none;
}

html:not(.js) [data-sol-dialog] {
  display: none;
}

.sol-facets {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.9em;
  margin-bottom: 1.4em;
  padding: 1em 1.15em;
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-big);
}
.sol-facets__label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.sol-facets__search {
  position: relative;
  flex: 1 1 16em;
  min-width: 0;
}
.sol-facets__input {
  width: 100%;
  padding: 0.75em 1em;
  font-family: var(--font-basic);
  font-size: var(--font-size-14);
  color: var(--color-ink);
  background-color: var(--color-tint);
  border: 1px solid var(--color-line-datebox);
  border-radius: var(--border-radius);
  transition: var(--transition);
}
.sol-facets__input::placeholder {
  color: var(--color-faint);
}
.sol-facets__input:hover {
  border-color: var(--color-line-hover);
}
.sol-facets__input:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
}
.sol-facets__selects {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em;
}
.sol-facets__field {
  position: relative;
}
.sol-facets__select {
  appearance: none;
  padding: 0.7em 2.4em 0.7em 1em;
  font-family: var(--font-basic);
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-3);
  background-color: var(--color-card);
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius-smaller);
  cursor: pointer;
  transition: var(--transition);
  height: 100%;
}
.sol-facets__select:hover {
  border-color: var(--color-primary);
  color: var(--color-ink);
}
.sol-facets__select:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
}
.sol-facets__field::after {
  content: "";
  position: absolute;
  right: 0.9em;
  top: 50%;
  transform: translateY(-50%);
  width: 0.85em;
  height: 0.85em;
  background-color: var(--color-ghost);
  mask: var(--icon-chevron-down) center/contain no-repeat;
  pointer-events: none;
}
.sol-facets__actions {
  display: flex;
  align-items: center;
  gap: 0.9em;
}
.sol-facets__reset {
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-medium);
  color: var(--color-muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.sol-facets__reset:hover, .sol-facets__reset:focus-visible {
  color: var(--color-ink);
  border-bottom-color: var(--color-primary);
}

.sol-catnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55em;
  margin-bottom: 1.4em;
}
.sol-catnav__item {
  --catnav-color: var(--color-ink-3);
  --catnav-bg: var(--color-card);
  --catnav-border: var(--color-line-2);
  display: inline-flex;
  align-items: center;
  padding: 0.6em 1.15em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  color: var(--catnav-color);
  background-color: var(--catnav-bg);
  border: 1px solid var(--catnav-border);
  border-radius: var(--border-radius-pill);
  text-decoration: none;
  transition: var(--transition);
}
.sol-catnav__item:hover {
  --catnav-border: var(--color-primary);
  --catnav-color: var(--color-ink);
}
.sol-catnav__item:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-catnav__item--current {
  --catnav-color: var(--color-white);
  --catnav-bg: var(--color-ink);
  --catnav-border: var(--color-ink);
}
.sol-catnav__item--current:hover {
  --catnav-color: var(--color-white);
  --catnav-border: var(--color-ink);
}

@media (max-width: 660px) {
  .sol-facets {
    align-items: stretch;
  }
  .sol-facets__selects {
    width: 100%;
  }
  .sol-facets__select {
    width: 100%;
  }
  .sol-facets__field {
    flex: 1 1 8em;
  }
  .sol-facets__actions {
    width: 100%;
    justify-content: space-between;
  }
}
.sol-doctable {
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  overflow: hidden;
}
.sol-doctable__head, .sol-doctable__row {
  display: grid;
  grid-template-columns: 2.9em 1fr 9.3em 6.4em 7.9em 8.6em;
  align-items: center;
}
.sol-doctable__head {
  padding: 0.8em 1.6em;
  background-color: var(--color-head);
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-doctable__label {
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-faint);
}
.sol-doctable__label--right {
  justify-self: end;
}
.sol-doctable__row {
  padding: 1em 1.6em;
  border-bottom: 1px solid var(--color-line-row);
  transition: var(--transition);
}
.sol-doctable__row:last-child {
  border-bottom: 0;
}
.sol-doctable__row:hover {
  background-color: var(--color-tint);
}
.sol-doctable__body {
  min-width: 0;
  padding-right: 1em;
}
.sol-doctable__name {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  line-height: 1.35;
  color: var(--color-ink-2);
}
.sol-doctable__name > *:first-child {
  margin-top: 0;
}
.sol-doctable__name > *:last-child {
  margin-bottom: 0;
}
.sol-doctable__excerpt {
  margin: 0.25em 0 0;
  font-size: var(--font-size-12);
  line-height: 1.45;
  color: var(--color-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sol-doctable__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin: 0.3em 0 0;
  font-size: var(--font-size-11);
  color: var(--color-faint);
}
.sol-doctable__tag {
  color: var(--color-warning-strong);
}
.sol-doctable__cells {
  display: contents;
}
.sol-doctable__cell {
  font-size: var(--font-size-13);
  color: var(--color-ink-3);
}
.sol-doctable__cell--muted {
  color: var(--color-muted);
}
.sol-doctable__cell--right {
  justify-self: end;
  text-align: right;
}
.sol-doctable__download {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  padding: 0.55em 0.85em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  color: var(--color-ink-3);
  text-decoration: none;
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius-smaller);
  transition: var(--transition);
}
.sol-doctable__download::before {
  content: "";
  width: 0.95em;
  height: 0.95em;
  background-color: currentColor;
  mask: var(--icon-download) center/contain no-repeat;
}
.sol-doctable__download:hover {
  color: var(--color-white);
  background-color: var(--color-ink);
  border-color: var(--color-ink);
}
.sol-doctable__download:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
}

@media (max-width: 1024px) {
  .sol-doctable__head {
    display: none;
  }
  .sol-doctable__row {
    grid-template-columns: 2.9em 1fr;
    gap: 0.5em 0;
    align-items: start;
  }
  .sol-doctable__body {
    padding-right: 0;
  }
  .sol-doctable__cells {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4em 1em;
    grid-column: 2;
  }
  .sol-doctable__cell--right {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }
}
.sol-thread {
  display: flex;
  flex-direction: column;
  gap: 0.9em;
  margin-bottom: var(--gap-smaller);
}
.sol-thread__item {
  --thread-bg: var(--color-card);
  --thread-accent: var(--color-primary);
  display: flex;
  gap: 0.9em;
  padding: 1.1em 1.3em;
  background-color: var(--thread-bg);
  border: 1px solid var(--color-line);
  border-left: 3px solid var(--thread-accent);
  border-radius: var(--border-radius-big);
}
.sol-thread__item--staff {
  --thread-bg: var(--color-tint);
  --thread-accent: var(--color-info);
  margin-left: clamp(0px, 4vw, 40px);
}
.sol-thread__body {
  min-width: 0;
  flex: 1;
}
.sol-thread__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5em;
  margin: 0 0 0.5em;
}
.sol-thread__author {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}
.sol-thread__role {
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-medium);
  color: var(--color-info);
}
.sol-thread__time {
  margin-left: auto;
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-thread__text {
  font-size: var(--font-size-14);
  line-height: 1.6;
  color: var(--color-ink);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.sol-thread__attachment {
  display: flex;
  align-items: center;
  gap: 0.4em;
  margin: 0.8em 0 0;
  font-size: var(--font-size-13);
}
.sol-thread__attachment::before {
  content: "";
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  background-color: var(--color-muted);
  mask: var(--icon-paperclip) center/contain no-repeat;
}
.sol-thread__attachment a {
  color: var(--color-ink-3);
  text-decoration: none;
  border-bottom: 1px solid var(--color-line-2);
}
.sol-thread__attachment a:hover, .sol-thread__attachment a:focus-visible {
  color: var(--color-ink);
  border-bottom-color: var(--color-primary);
}

@media (max-width: 660px) {
  .sol-thread__item--staff {
    margin-left: 0;
  }
  .sol-thread__time {
    margin-left: 0;
    width: 100%;
  }
}
.sol-accordion {
  --accordion-inset: var(--card-padding, 0px);
  margin-left: calc(-1 * var(--accordion-inset));
  margin-right: calc(-1 * var(--accordion-inset));
  margin-top: -1.8em;
}
.sol-accordion:last-child {
  margin-bottom: calc(-1 * var(--accordion-inset));
}
.sol-accordion__item {
  border-bottom: 1px solid var(--color-line-row);
}
.sol-accordion__item:last-child {
  border-bottom: 0;
}
.sol-accordion__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8em;
  padding: 0.95em var(--accordion-inset);
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  line-height: 1.4;
  color: var(--color-ink-2);
  cursor: pointer;
  list-style: none;
  transition: var(--transition);
}
.sol-accordion__question::-webkit-details-marker {
  display: none;
}
.sol-accordion__question::marker {
  content: "";
}
.sol-accordion__question::after {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: var(--color-ghost);
  mask: var(--icon-chevron-down) center/contain no-repeat;
  transition: var(--transition);
}
.sol-accordion__question:hover {
  color: var(--color-ink);
  background-color: var(--color-tint);
}
.sol-accordion__question:hover::after {
  background-color: var(--color-primary);
}
.sol-accordion__question:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px rgba(var(--color-primary-rgb), 0.35);
}
.sol-accordion__item[open] .sol-accordion__question::after {
  transform: rotate(180deg);
}
.sol-accordion__answer {
  width: 100%;
  padding: 0 var(--padding-on-side);
  margin: 0 auto;
  position: relative;
  z-index: 5;
  padding: 0 var(--accordion-inset) 1.1em;
  font-size: var(--font-size-14);
  line-height: 1.65;
  color: var(--color-text);
}

.sol-card:has(.sol-accordion) {
  overflow: hidden;
}

.sol-editorial {
  font-size: var(--font-size-14);
  line-height: 1.7;
  color: var(--color-ink);
}
.sol-editorial > *:first-child {
  margin-top: 0;
}
.sol-editorial > *:last-child {
  margin-bottom: 0;
}
.sol-editorial > h2 {
  margin: 1.6em 0 0.6em;
  font-family: var(--font-heading);
  font-size: var(--font-size-20);
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  color: var(--color-ink-strong);
}
.sol-editorial > h3 {
  margin: 1.4em 0 0.5em;
  font-family: var(--font-heading);
  font-size: var(--font-size-17);
  font-weight: var(--font-weight-bold);
  line-height: 1.35;
  color: var(--color-ink-strong);
}
.sol-editorial > p {
  margin: 0 0 1em;
  max-width: 46em;
}
.sol-editorial > p.is-style-lead {
  font-size: var(--font-size-15);
  color: var(--color-ink-4);
}
.sol-editorial > p a:not([class]),
.sol-editorial > ul a:not([class]),
.sol-editorial > ol a:not([class]) {
  color: var(--color-ink);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-color: var(--color-line-2);
  transition: var(--transition);
}
.sol-editorial > p a:not([class]):hover,
.sol-editorial > ul a:not([class]):hover,
.sol-editorial > ol a:not([class]):hover {
  text-decoration-color: var(--color-primary);
}
.sol-editorial > p a:not([class]):focus-visible,
.sol-editorial > ul a:not([class]):focus-visible,
.sol-editorial > ol a:not([class]):focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}

/**
 * --- Blocks (WordPress Gutenberg specifika) ---
 * Styly pro bloky, které jsou specifické pro WordPress editor a frontend.
 */
.global-style > *:first-child {
  margin-top: 0;
}
.global-style > *:last-child {
  margin-bottom: 0;
}
.global-style p,
.global-style li {
  line-height: var(--line-height);
}
.global-style a:not([class]) {
  color: var(--color-secondary);
  position: relative;
  text-decoration: underline;
}
.global-style a:not([class]):hover {
  color: var(--color-secondary);
  text-decoration: none;
}
.global-style p {
  margin-top: 1em;
  margin-bottom: 1em;
}
.global-style hr {
  border: 0;
  height: 2px;
  background: var(--color-light);
  clear: both;
  margin: var(--gap) 0;
}

p,
ul,
ol {
  --font-size: var(--font-size-15);
  font-size: var(--font-size);
  line-height: 1.7;
  color: var(--font-color, var(--color-text));
}
p strong,
ul strong,
ol strong {
  font-weight: var(--font-weight-bold);
  color: var(--color-heading);
}

.wp-block-paragraph {
  margin-top: 1em;
  margin-bottom: 1em;
}

p.is-style-lead {
  --font-size: var(--font-size-20);
  font-family: var(--font-basic);
  font-weight: var(--font-weight-medium);
  font-optical-sizing: auto;
  line-height: 1.55;
  color: var(--font-color, var(--color-heading));
}

.wp-block-heading {
  --block-heading-margin-top: 1em;
  --block-heading-margin-bottom: 0.5em;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-extrabold);
  font-optical-sizing: auto;
  letter-spacing: var(--letter-spacing);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--font-color-heading, var(--color-heading));
  margin-top: var(--block-heading-margin-top);
  margin-bottom: var(--block-heading-margin-bottom);
  font-size: var(--font-size);
}
.wp-block-heading strong {
  font-weight: inherit;
  color: var(--color-primary);
}
.wp-block-heading mark {
  color: var(--font-color-heading, var(--color-heading));
  font-size: 1.15em;
  padding: 0 0.3em 0.05em;
  border-radius: var(--border-radius);
  display: inline-block;
}
.wp-block-heading em {
  font-weight: var(--font-weight-light);
}

h1.wp-block-heading {
  --font-size: var(--font-size-60);
  letter-spacing: -0.025em;
}

h2.wp-block-heading {
  --font-size: var(--font-size-36);
}

h3.wp-block-heading {
  --font-size: var(--font-size-30);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.01em;
}

h4.wp-block-heading {
  --font-size: var(--font-size-24);
  font-weight: var(--font-weight-bold);
  letter-spacing: normal;
}

h5.wp-block-heading {
  --font-size: var(--font-size-20);
  font-weight: var(--font-weight-bold);
  letter-spacing: normal;
}

h6.wp-block-heading {
  --font-size: var(--font-size-20);
  font-weight: var(--font-weight-semibold);
  letter-spacing: normal;
}

.has-small-font-size {
  font-size: calc(var(--font-size) * 0.75);
}

.has-medium-font-size {
  font-size: calc(var(--font-size) * 1.15);
}

.has-large-font-size {
  font-size: calc(var(--font-size) * 1.3);
}

.has-x-large-font-size {
  font-size: calc(var(--font-size) * 1.75);
}

@media screen and (max-width: 1024px) {
  .has-medium-font-size {
    font-size: calc(var(--font-size) * 1.125);
  }
  .has-large-font-size {
    font-size: calc(var(--font-size) * 1.375);
  }
  .has-x-large-font-size {
    font-size: calc(var(--font-size) * 1.5);
  }
}
.has-text-align-left {
  text-align: left;
}

.has-text-align-center {
  text-align: center;
}

.has-text-align-right {
  text-align: right;
}

.is-vertical-aligned-top,
.are-vertically-aligned-top {
  align-items: flex-start;
}

.is-vertical-aligned-center,
.are-vertically-aligned-center {
  align-items: center;
}

.is-vertical-aligned-bottom,
.are-vertically-aligned-bottom {
  align-items: flex-end;
}

.is-content-justification-left {
  justify-content: flex-start;
}

.is-content-justification-center {
  justify-content: center;
}

.is-content-justification-right {
  justify-content: flex-end;
}

.aligncenter {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.aligncenter img {
  margin-left: auto;
  margin-right: auto;
}

.wp-block-columns {
  --block-columns-gap: 2em clamp(15px, 3cqw, 40px);
  --block-columns-margin: var(--gap) 0;
  display: flex;
  gap: var(--block-columns-gap);
  margin: var(--block-columns-margin);
}
@media screen and (max-width: 768px) {
  .wp-block-columns {
    flex-direction: column;
  }
}

.wp-block-column {
  flex-grow: 1;
  flex-basis: 50%;
}
.wp-block-column > *:first-child {
  margin-top: 0;
}
.wp-block-column > *:last-child {
  margin-bottom: 0;
}

.wp-block-image {
  --block-image-margin: var(--margins) auto;
  --block-image-border-radius: var(--border-radius);
  margin: var(--block-image-margin);
  border-radius: var(--block-image-border-radius);
  overflow: hidden;
}
.wp-block-image img {
  border-radius: var(--block-image-border-radius);
}
.wp-block-image .wp-element-caption {
  text-align: center;
  font-size: var(--font-size-16);
  color: var(--color-font, var(--color-main));
  padding: 1em;
  background-color: var(--color-card);
  display: block;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-regular);
  font-optical-sizing: auto;
  letter-spacing: var(--letter-spacing);
}

.wp-block-gallery {
  --block-gallery-columns: 3;
  --block-gallery-gap: clamp(10px, 2cqw, 20px);
  --block-gallery-image-aspect-ratio: inherit;
  --block-gallery-image-background-color: var(--color-primary);
  display: grid;
  grid-template-columns: repeat(var(--block-gallery-columns), 1fr);
  gap: var(--block-gallery-gap) !important;
  margin: var(--block-gallery-gap);
  align-items: flex-start;
}
.wp-block-gallery.columns-2 {
  --block-gallery-columns: 2;
}
.wp-block-gallery.columns-4 {
  --block-gallery-columns: 4;
}
.wp-block-gallery.columns-5 {
  --block-gallery-columns: 5;
}
.wp-block-gallery.columns-6 {
  --block-gallery-columns: 6;
}
.wp-block-gallery.columns-7 {
  --block-gallery-columns: 7;
}
.wp-block-gallery.columns-8 {
  --block-gallery-columns: 8;
}
.wp-block-gallery .wp-block-image {
  aspect-ratio: var(--block-gallery-image-aspect-ratio);
  overflow: hidden;
  margin: 0;
  width: 100% !important;
  align-items: flex-start;
  justify-content: center;
  display: flex;
}
.wp-block-gallery .wp-block-image a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: var(--block-gallery-image-background-color);
  opacity: 0;
  transition: var(--transition);
  z-index: 2;
}
.wp-block-gallery .wp-block-image:hover a::before {
  opacity: 0.5;
}
.wp-block-gallery .wp-block-image img {
  width: 100%;
  height: auto;
}
.wp-block-gallery.is-cropped .wp-block-image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1200px) {
  .wp-block-gallery.columns-5, .wp-block-gallery.columns-6, .wp-block-gallery.columns-7, .wp-block-gallery.columns-8 {
    --block-gallery-columns: 4;
  }
}
@media screen and (max-width: 1024px) {
  .wp-block-gallery.columns-4, .wp-block-gallery.columns-5, .wp-block-gallery.columns-6, .wp-block-gallery.columns-7, .wp-block-gallery.columns-8 {
    --block-gallery-columns: 3;
  }
}
@media screen and (max-width: 480px) {
  .wp-block-gallery.columns-2, .wp-block-gallery.columns-3, .wp-block-gallery.columns-4, .wp-block-gallery.columns-5, .wp-block-gallery.columns-6, .wp-block-gallery.columns-7, .wp-block-gallery.columns-8 {
    --block-gallery-columns: 2;
  }
}

.wp-block-table {
  margin: var(--gap) 0;
  overflow: hidden;
  border-radius: var(--border-radius);
  border: 1px solid var(--color-line);
}
.wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-15);
  background-color: var(--color-card);
}
.wp-block-table caption {
  caption-side: bottom;
  text-align: left;
  font-size: var(--font-size-13);
  color: var(--color-tertiary-light);
  padding: 0.7em 1.1em 0;
}
.wp-block-table th,
.wp-block-table td {
  text-align: left;
  padding: 0.85em 1.1em;
  border-bottom: 1px solid var(--color-line);
}
.wp-block-table thead th {
  font-family: var(--font-basic);
  font-weight: var(--font-weight-bold);
  font-optical-sizing: auto;
  background-color: var(--color-light);
  color: var(--color-heading);
  border-bottom: 2px solid var(--color-line-2);
}
.wp-block-table tbody tr:last-child td {
  border-bottom: none;
}
.wp-block-table tbody tr:hover {
  background-color: var(--color-light-2);
}
.wp-block-table td.num,
.wp-block-table th.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
@media screen and (max-width: 768px) {
  .wp-block-table.responsive-table thead {
    display: none;
  }
  .wp-block-table.responsive-table td {
    display: flex;
    justify-content: space-between;
    gap: 0 1em;
  }
  .wp-block-table.responsive-table td div {
    text-align: right;
  }
  .wp-block-table.responsive-table td::before {
    content: attr(data-label);
    font-weight: bold;
  }
  .wp-block-table.responsive-table tbody {
    display: grid;
    gap: 1em;
  }
}

.wp-block-quote {
  --block-quote-margin: 2em 0;
  padding: 0.2em 0 0.2em 28px;
  margin: var(--block-quote-margin);
  border-left: 4px solid var(--color-primary);
  position: relative;
}
.wp-block-quote p {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  font-optical-sizing: auto;
  letter-spacing: var(--letter-spacing);
  margin: 0 0 0.6em;
  font-size: var(--font-size-24);
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--color-heading);
}
.wp-block-quote p a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
.wp-block-quote p a:hover {
  text-decoration: none;
}
.wp-block-quote cite {
  font-size: var(--font-size-14);
  display: block;
  font-family: var(--font-basic);
  font-weight: var(--font-weight-semibold);
  font-optical-sizing: auto;
  color: var(--color-tertiary);
  font-style: normal;
}
.wp-block-quote cite span {
  color: var(--color-tertiary-light);
  font-weight: var(--font-weight-regular);
}
.wp-block-quote cite a {
  font-style: normal;
  color: var(--color-tertiary);
}
.wp-block-quote cite a:hover {
  text-decoration: underline;
}
.wp-block-quote cite em {
  font-style: normal;
  line-break: loose;
}
@media screen and (max-width: 660px) {
  .wp-block-quote {
    --block-quote-margin: 1em 0;
  }
}

.wp-block-list {
  counter-reset: item;
  list-style: none;
  margin: 1em 0;
  display: flex;
  flex-direction: column;
  gap: 0.6em;
  padding: 0;
}
.wp-block-list li {
  position: relative;
  padding-left: 2.1em;
  color: var(--font-color, var(--color-text));
}

ul.wp-block-list {
  --list-icon: var(--icon-check-thin);
}
ul.wp-block-list li::before,
ul.wp-block-list li::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 1.5em;
  height: 1.5em;
}
ul.wp-block-list li::before {
  border-radius: 50%;
  background-color: var(--color-primary);
}
ul.wp-block-list li::after {
  background-color: var(--color-black);
  mask: var(--list-icon) center/0.7em no-repeat;
}

ul.wp-block-list.is-style-cross {
  --list-icon: var(--icon-cross-thin);
}

ol.wp-block-list li {
  padding-left: 2.75em;
}
ol.wp-block-list li::before {
  counter-increment: item;
  content: counter(item);
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.1em;
  height: 2.1em;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-black);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-extrabold);
  font-size: var(--font-size-14);
  line-height: 1;
}

.wp-block-buttons {
  --block-buttons-margin: var(--gap) 0 0 0;
  --block-buttons-gap: 0.5em 1em;
  margin: var(--block-buttons-margin);
  display: flex;
  flex-wrap: wrap;
  gap: var(--block-buttons-gap);
}

/* ----------------------------- */
/* -------- Barvy textu -------- */
/* ----------------------------- */
.has-primary-color {
  --font-color: var(--color-primary);
  --font-color-heading: var(--color-primary);
}
.has-secondary-color {
  --font-color: var(--color-secondary);
  --font-color-heading: var(--color-secondary);
}
.has-main-color {
  --font-color: var(--color-main);
  --font-color-heading: var(--color-main);
}
.has-light-color {
  --font-color: var(--color-light);
  --font-color-heading: var(--color-light);
}
.has-white-color {
  --font-color: var(--color-white);
  --font-color-heading: var(--color-white);
}
.has-black-color {
  --font-color: var(--color-black);
  --font-color-heading: var(--color-black);
}

/* ------------------------------ */
/* -------- Barvy pozadí -------- */
/* ------------------------------ */
.has-background-color-primary {
  --background-color: var(--color-primary);
  --font-color: var(--color-white);
  --font-color-heading: var(--color-light);
}
.has-background-color-secondary {
  --background-color: var(--color-secondary);
  --font-color: var(--color-white);
  --font-color-heading: var(--color-white);
  --subheading-color: var(--color-primary);
}
.has-background-color-main {
  --background-color: var(--color-brown-dark-logo);
  --font-color: var(--color-white);
  --font-color-heading: var(--color-white);
  --subheading-color: var(--color-primary);
}
.has-background-color-white {
  --background-color: var(--color-white);
  --font-color: var(--color-text);
}
.has-background-color-black {
  --background-color: var(--color-black);
  --font-color: var(--color-white);
  --font-color-heading: var(--color-white);
  --subheading-color: var(--color-primary);
}
.has-background-color-light {
  --background-color: var(--color-light);
  --font-color: var(--color-text);
  --font-color-heading: var(--color-main);
}

.has-background-gradient-light {
  background: var(--gradient-light);
}

/* --------------------------------------------------- */
/* -------- Vlastní .is-style styly pro bloky -------- */
/* --------------------------------------------------- */
.is-style-subheading {
  font-family: var(--font-basic);
  font-weight: var(--font-weight-bold);
  font-optical-sizing: auto;
  display: block;
  color: var(--subheading-color, var(--color-primary-dark));
  font-size: var(--font-size-13);
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
  margin-bottom: 1.4em;
}
.is-style-subheading + .wp-block-heading {
  margin-top: 0;
}

p.is-style-address,
p.is-style-address-alt {
  --p-icon: var(--icon-pin);
  position: relative;
  padding-left: 2em;
}
p.is-style-address::before,
p.is-style-address-alt::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 1.3em;
  height: 1.3em;
  background-color: var(--color-primary-dark);
  mask: var(--p-icon) center/contain no-repeat;
}

p.is-style-address-alt {
  --p-icon: var(--icon-address-alt);
}

.is-style-product-price {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-extrabold);
  font-optical-sizing: auto;
  letter-spacing: var(--letter-spacing);
  font-size: var(--font-size-30);
  color: var(--font-color, var(--color-heading));
}
.is-style-product-price:has(+ .wp-block-paragraph) {
  margin-bottom: 0;
}
.is-style-product-price + .wp-block-paragraph {
  margin: 0;
}
.is-style-product-price + .wp-block-paragraph + .wp-block-buttons {
  --block-buttons-margin: 1.5em 0 0 0;
}

/**
 * --- Layout (makro layouty a utility) ---
 * Portálový shell (horní lišta, postranní menu, obsah) a veřejné stránky.
 */
.z-index-5 {
  z-index: 5;
}

.z-index-10 {
  z-index: 10;
}

.text-center {
  text-align: center;
}

.margin-top {
  margin-top: var(--gap);
}

.margin-bottom {
  margin-bottom: var(--gap);
}

.no-margin-top {
  margin-top: 0 !important;
}

.no-margin-bottom {
  margin-bottom: 0 !important;
}

.absolute-image {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.section {
  --section-gap: var(--gap);
  position: relative;
  z-index: 2;
  background-color: var(--background-color, transparent);
}
.section--smaller {
  padding: calc(var(--section-gap) * 2) 0;
}
.section--normal {
  padding: calc(var(--section-gap) * 2.5) 0;
}
.section--bigger {
  padding: calc(var(--section-gap) * 3) 0;
}
.section--custom {
  padding-top: calc(var(--section-gap) * var(--custom-padding-top, 2.5));
  padding-bottom: calc(var(--section-gap) * var(--custom-padding-bottom, 2.5));
}
.section--smaller-top {
  padding-top: calc(var(--section-gap) * 2);
}
.section--no-top {
  padding-top: 0;
}
.section--no-bottom {
  padding-bottom: 0;
}
.section--background {
  background-color: var(--color-light);
}
.section--gradient {
  background: var(--linear-gradient);
}

.content {
  width: 100%;
  padding: 0 var(--padding-on-side);
  margin: 0 auto;
  position: relative;
  z-index: 2;
  max-width: calc(var(--content-width) + 2 * var(--padding-on-side));
}
.content--tiny {
  --content-width: var(--content-tiny);
}
.content--regular {
  --content-width: var(--content-regular);
}
.content--small {
  --content-width: var(--content-medium);
}
.content--smaller {
  --content-width: var(--content-small);
}
.content--bigger {
  --content-width: var(--content-big);
}

.section:not([class*=is-style]):not([class*=has-background]):has(+ .section:not([class*=is-style]):not([class*=has-background])) {
  padding-bottom: 0;
}

.sol-skip-link {
  position: absolute;
  top: -100px;
  left: 8px;
  z-index: 100;
  padding: 0.7em 1.2em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-on-primary);
  background-color: var(--color-primary);
  border-radius: var(--border-radius);
  transition: top 0.15s ease;
}
.sol-skip-link:focus {
  top: 8px;
}

.sol-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 1em;
  height: var(--top-bar-height);
  padding: 0 clamp(14px, 2vw, 22px);
  background-color: var(--color-card);
  border-bottom: 1px solid var(--color-line-header);
}
.sol-topbar__brand {
  display: flex;
  align-items: center;
  gap: 0.75em;
  text-decoration: none;
  margin-right: auto;
}
.sol-topbar__logo {
  height: clamp(34px, 4cqw, 42px);
  width: auto;
}
.sol-topbar__burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.4em;
  height: 2.4em;
  padding: 0;
  background-color: transparent;
  border: 1px solid var(--color-line-icon);
  border-radius: var(--border-radius);
  color: var(--color-ink-3);
  cursor: pointer;
  transition: var(--transition);
}
.sol-topbar__burger:hover {
  background-color: var(--color-tint-warm);
  border-color: var(--color-line-hover);
}
.sol-topbar__burger:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-topbar__burger-icon {
  width: 1.1em;
  height: 1.1em;
  background-color: currentColor;
  mask: var(--icon-menu) center/contain no-repeat;
}

.sol-usermenu {
  position: relative;
  margin-left: auto;
}
.sol-usermenu__trigger {
  display: flex;
  align-items: center;
  gap: 0.6em;
  padding: 0.35em 0.6em 0.35em 0.35em;
  border-radius: var(--border-radius);
  cursor: pointer;
  list-style: none;
  transition: var(--transition);
}
.sol-usermenu__trigger::-webkit-details-marker {
  display: none;
}
.sol-usermenu__trigger::marker {
  content: "";
}
.sol-usermenu__trigger::after {
  content: "";
  flex: 0 0 auto;
  width: 0.9em;
  height: 0.9em;
  background-color: var(--color-ghost);
  mask: var(--icon-chevron-down) center/contain no-repeat;
  transition: var(--transition);
}
.sol-usermenu__trigger:hover {
  background-color: var(--color-hover);
}
.sol-usermenu__trigger:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-usermenu[open] .sol-usermenu__trigger::after {
  transform: rotate(180deg);
}
.sol-usermenu__summary {
  display: flex;
  flex-direction: column;
  gap: 0.1em;
  min-width: 0;
}
.sol-usermenu__name {
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 14em;
}
.sol-usermenu__company {
  font-size: var(--font-size-11);
  color: var(--color-label);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 14em;
}
.sol-usermenu__panel {
  position: absolute;
  top: calc(100% + 0.5em);
  right: 0;
  z-index: 40;
  min-width: 16em;
  max-width: min(22em, 100vw - 2em);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.sol-usermenu__head {
  display: none;
  flex-direction: column;
  gap: 0.15em;
  padding: 0.9em 1.1em;
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-usermenu__section {
  padding: 0.5em 0;
}
.sol-usermenu__section + .sol-usermenu__section {
  border-top: 1px solid var(--color-line-soft);
}
.sol-usermenu__label {
  margin: 0.2em 0 0.4em;
  padding: 0 1.1em;
  font-family: var(--font-label);
  font-size: var(--font-size-10);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-ghost);
}
.sol-usermenu__item {
  display: flex;
  align-items: center;
  gap: 0.6em;
  width: 100%;
  padding: 0.6em 1.1em;
  font-family: var(--font-basic);
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-medium);
  text-align: left;
  color: var(--color-ink-4);
  background-color: transparent;
  border: 0;
  cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
}
.sol-usermenu__item:hover {
  background-color: var(--color-hover);
  color: var(--color-ink);
}
.sol-usermenu__item:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px rgba(var(--color-primary-rgb), 0.5);
}
.sol-usermenu__item.is-current {
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
}
.sol-usermenu__item.is-current::after {
  content: "";
  flex: 0 0 auto;
  margin-left: auto;
  width: 0.95em;
  height: 0.95em;
  background-color: var(--color-primary);
  mask: var(--icon-check) center/contain no-repeat;
}
.sol-usermenu__item--logout {
  color: var(--color-faint);
}
.sol-usermenu__item--logout::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--icon-logout) center/contain no-repeat;
}
.sol-usermenu__item--logout:hover {
  color: var(--color-red);
}

.sol-shell {
  display: flex;
  align-items: flex-start;
  min-height: calc(100vh - var(--top-bar-height));
}

.sol-nav {
  position: sticky;
  top: var(--top-bar-height);
  display: flex;
  flex-direction: column;
  flex: 0 0 var(--sidebar-width);
  width: var(--sidebar-width);
  height: calc(100vh - var(--top-bar-height));
  padding: 1.4em 0.9em 1.2em;
  background-color: var(--color-card);
  border-right: 1px solid var(--color-line);
}
.sol-nav__label {
  margin: 0 0 0.8em;
  padding: 0 0.7em;
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-ghost);
}
.sol-nav__list {
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sol-nav__link {
  --nav-icon: var(--icon-dashboard);
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7em;
  padding: 0.7em 0.8em;
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-medium);
  color: var(--color-ink-4);
  text-decoration: none;
  border-radius: var(--border-radius);
  transition: var(--transition);
}
.sol-nav__link::before {
  content: "";
  flex: 0 0 auto;
  width: 1.15em;
  height: 1.15em;
  background-color: currentColor;
  mask: var(--nav-icon) center/contain no-repeat;
}
.sol-nav__link:hover {
  background-color: var(--color-hover);
  color: var(--color-ink);
}
.sol-nav__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), 0.5);
}
.sol-nav__link.is-current {
  color: var(--color-ink);
  font-weight: var(--font-weight-semibold);
  background-color: var(--color-primary-soft);
}
.sol-nav__link.is-current::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  bottom: 0.5em;
  width: 3px;
  border-radius: 3px;
  background-color: var(--color-primary);
}
.sol-nav__logout {
  display: flex;
  align-items: center;
  gap: 0.6em;
  margin-top: auto;
  padding: 0.7em 0.8em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-medium);
  color: var(--color-faint);
  text-decoration: none;
  border-top: 1px solid var(--color-line-soft);
  border-radius: 0;
  transition: var(--transition);
}
.sol-nav__logout::before {
  content: "";
  width: 1.05em;
  height: 1.05em;
  background-color: currentColor;
  mask: var(--icon-logout) center/contain no-repeat;
}
.sol-nav__logout:hover, .sol-nav__logout:focus-visible {
  color: var(--color-red);
}

.sol-nav-backdrop {
  display: none;
}

.sol-content {
  flex: 1 1 auto;
  min-width: 0;
  padding: clamp(18px, 3vw, 30px) clamp(16px, 3vw, 32px) 40px;
}
.sol-content__inner {
  max-width: var(--content-portal);
  margin: 0 auto;
}

.sol-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-bottom: 1.2em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-medium);
  color: var(--color-faint);
}
.sol-breadcrumb__sep {
  width: 0.75em;
  height: 0.75em;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
}
.sol-breadcrumb__current {
  color: var(--color-ink-4);
}

.sol-footer {
  display: flex;
  align-items: center;
  gap: 0.4em;
  flex-wrap: wrap;
  margin-top: 2.5em;
  padding-top: 1.4em;
  border-top: 1px solid var(--color-line-soft);
  font-size: var(--font-size-12);
  color: var(--color-muted);
}
.sol-footer__link {
  color: var(--color-ink-4);
  text-decoration: none;
  border-bottom: 1px solid var(--color-line-2);
}
.sol-footer__link:hover, .sol-footer__link:focus-visible {
  color: var(--color-ink);
  border-bottom-color: var(--color-primary);
}

.sol-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.4em;
  height: 2.4em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.02em;
  color: var(--color-ink-3);
  background-color: var(--color-avatar-bg);
  border-radius: 50%;
}
.sol-avatar--sm {
  width: 2.1em;
  height: 2.1em;
  font-size: var(--font-size-12);
}
.sol-avatar--muted {
  color: var(--color-ghost);
  background-color: var(--color-light-2);
}
.sol-avatar--staff {
  color: var(--color-info);
  background-color: var(--color-info-bg);
}

@media (max-width: 1024px) {
  .sol-topbar__burger {
    display: inline-flex;
  }
  .sol-topbar__brand-tagline {
    display: none;
  }
  .sol-usermenu__summary {
    display: none;
  }
  .sol-usermenu__head {
    display: flex;
  }
  .sol-usermenu__trigger {
    padding: 0.35em;
  }
  .sol-usermenu__trigger::after {
    display: none;
  }
  .sol-nav {
    position: fixed;
    top: var(--top-bar-height);
    left: 0;
    z-index: 25;
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    box-shadow: var(--shadow);
  }
  .sol-nav.is-open {
    transform: translateX(0);
  }
  .sol-nav-backdrop {
    display: block;
    position: fixed;
    inset: var(--top-bar-height) 0 0 0;
    z-index: 24;
    background-color: rgba(var(--color-black-rgb), 0.35);
  }
  .sol-nav-backdrop[hidden] {
    display: none;
  }
}
html.sol-nav-open {
  overflow: hidden;
}

.sol-greeting {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1em;
  margin-bottom: var(--gap-smaller);
}
.sol-greeting__eyebrow {
  margin: 0 0 0.3em;
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-ghost);
}
.sol-greeting__title {
  font-size: var(--font-size-24);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--color-ink-strong);
}
.sol-greeting__title > *:first-child {
  margin-top: 0;
}
.sol-greeting__title > *:last-child {
  margin-bottom: 0;
}
.sol-greeting__meta {
  margin: 0.45em 0 0;
  font-size: var(--font-size-13);
  color: var(--color-faint);
}

.sol-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--gap-smaller);
  margin-bottom: var(--gap-smaller);
}

.sol-tile + .sol-tile {
  margin-top: 0;
}
.sol-tile__value {
  margin: 0;
  font-size: var(--font-size-28);
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--card-color);
}
.sol-tile__note {
  margin: 0.35em 0 0;
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-tile__label {
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-tile--status {
  position: relative;
  overflow: hidden;
}
.sol-tile--status::after {
  content: "";
  position: absolute;
  top: -24px;
  right: -24px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background-color: var(--color-primary);
  opacity: 0.18;
  pointer-events: none;
}
.sol-tile--status .sol-tile__value {
  display: flex;
  align-items: center;
  gap: 0.4em;
  position: relative;
  font-size: var(--font-size-20);
}
.sol-tile--link {
  display: block;
  text-decoration: none;
}
.sol-tile--link:hover {
  border-color: var(--color-primary);
}
.sol-tile--link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-tile--link .sol-card__eyebrow,
.sol-tile--link .sol-tile__value {
  display: block;
}
.sol-tile__link {
  display: block;
  margin-top: 0.5em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  color: var(--color-success);
}

.sol-card--dark .sol-tile__note {
  color: rgba(var(--color-white-rgb), 0.6);
}

.sol-dot {
  --dot-color: var(--color-muted);
  display: inline-flex;
  flex: 0 0 auto;
  position: relative;
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  background-color: var(--dot-color);
  box-shadow: 0 0 0 4px rgba(var(--dot-rgb, 138, 138, 130), 0.22);
}
.sol-dot::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: var(--dot-color);
  animation: sol-pulse 2.4s ease-out infinite;
  pointer-events: none;
}
.sol-dot--ok {
  --dot-color: #43d17e;
  --dot-rgb: 67, 209, 126;
}
.sol-dot--warn {
  --dot-color: var(--color-warning);
  --dot-rgb: 224, 169, 43;
}
.sol-dot--bad {
  --dot-color: var(--color-danger);
  --dot-rgb: 200, 30, 30;
}

@media (prefers-reduced-motion: reduce) {
  .sol-dot::after {
    animation: none;
  }
}
.sol-dash {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--gap-smaller);
  align-items: start;
}
.sol-dash__main, .sol-dash__side {
  display: flex;
  flex-direction: column;
  gap: var(--gap-smaller);
  min-width: 0;
}

.sol-panel {
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  overflow: hidden;
}
.sol-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  padding: 1.1em 1.4em;
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-panel__title {
  font-size: var(--font-size-16);
  font-weight: var(--font-weight-bold);
  color: var(--color-ink);
}
.sol-panel__title > *:first-child {
  margin-top: 0;
}
.sol-panel__title > *:last-child {
  margin-bottom: 0;
}
.sol-panel__more {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-success);
  text-decoration: none;
}
.sol-panel__more::after {
  content: "";
  width: 0.85em;
  height: 0.85em;
  background-color: currentColor;
  mask: var(--icon-arrow-right) center/contain no-repeat;
}
.sol-panel__more:hover {
  color: var(--color-ink);
}
.sol-panel__more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}
.sol-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sol-panel__list > *:first-child {
  margin-top: 0;
}
.sol-panel__list > *:last-child {
  margin-bottom: 0;
}
.sol-panel__list li + li .sol-panel__row {
  border-top: 1px solid var(--color-line-row);
}
.sol-panel__row {
  display: flex;
  align-items: center;
  gap: 0.9em;
  padding: 0.95em 1.4em;
  text-decoration: none;
  transition: var(--transition);
}
.sol-panel__row:hover {
  background-color: var(--color-light-2);
}
.sol-panel__row:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-panel__row--stacked {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35em;
}
.sol-panel__body {
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  min-width: 0;
}
.sol-panel__name {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  line-height: 1.4;
  color: var(--color-ink-2);
}
.sol-panel__meta {
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-panel__tag {
  font-family: var(--font-label);
  font-size: var(--font-size-10);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-warning-strong);
}
.sol-panel__empty {
  margin: 0;
  padding: 1.2em 1.4em;
  font-size: var(--font-size-13);
  line-height: 1.6;
  color: var(--color-muted);
}
.sol-panel__note {
  margin: 1em 0 0;
  font-size: var(--font-size-13);
  color: var(--color-warning-strong);
}

.sol-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9em 1.6em;
  margin: 0;
}
.sol-summary__item {
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  min-width: 0;
}
.sol-summary dt {
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-faint);
}
.sol-summary dd {
  margin: 0;
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}

@media (max-width: 1024px) {
  .sol-dash {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 660px) {
  .sol-summary {
    grid-template-columns: minmax(0, 1fr);
  }
}
.sol-profile {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--gap-smaller);
  align-items: start;
}
.sol-profile__rail {
  position: sticky;
  top: calc(var(--top-bar-height) + var(--gap-smaller));
}
@media (max-width: 1160px) {
  .sol-profile {
    grid-template-columns: minmax(0, 1fr);
  }
  .sol-profile__rail {
    position: static;
  }
}

.sol-company-head {
  display: flex;
  align-items: flex-start;
  gap: 1.2em;
}
.sol-company-head__body {
  min-width: 0;
}
.sol-company-head__name {
  font-size: var(--font-size-24);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--color-ink-strong);
}
.sol-company-head__name > *:first-child {
  margin-top: 0;
}
.sol-company-head__name > *:last-child {
  margin-bottom: 0;
}
.sol-company-head__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 1em;
  margin: 0.5em 0 0;
  font-size: var(--font-size-13);
  color: var(--color-faint);
}
.sol-company-head__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin: 1em 0 0;
}
@media (max-width: 660px) {
  .sol-company-head {
    flex-direction: column;
    gap: 0.9em;
  }
}

.sol-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 4em;
  height: 4em;
  padding: 0.4em;
  overflow: hidden;
  background-color: #FFF;
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-big);
}
.sol-logo__image {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-logo__placeholder {
  width: 1.6em;
  height: 1.6em;
  background-color: var(--color-ghost);
  mask: var(--icon-building) center/contain no-repeat;
}

.sol-library__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  margin-top: 1.2em;
}
.sol-library__count {
  margin: 0;
  font-size: var(--font-size-13);
  color: var(--color-muted);
}
.sol-library .sol-empty {
  padding-top: clamp(28px, 5vw, 48px);
  padding-bottom: clamp(28px, 5vw, 48px);
}
.sol-library .sol-empty .sol-btn {
  margin-top: 1.2em;
}

@media (max-width: 660px) {
  .sol-library__foot {
    justify-content: center;
    text-align: center;
  }
}
.sol-support__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: var(--gap-smaller);
  align-items: start;
}
.sol-support__main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.sol-support__rail {
  display: flex;
  flex-direction: column;
  gap: var(--gap-smaller);
  position: sticky;
  top: calc(var(--top-bar-height) + 24px);
  min-width: 0;
}

.sol-helphero {
  position: relative;
  overflow: hidden;
  margin-bottom: var(--gap-smaller);
  padding: clamp(20px, 3vw, 28px);
  color: var(--color-white);
  background: linear-gradient(120deg, var(--gradient-dark-from), var(--gradient-dark-to));
  border-radius: var(--border-radius-bigger);
}
.sol-helphero::before {
  content: "";
  position: absolute;
  top: -30px;
  right: -20px;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background-color: var(--color-primary);
  opacity: 0.16;
  pointer-events: none;
}
.sol-helphero__title {
  position: relative;
  font-size: var(--font-size-18);
  font-weight: var(--font-weight-bold);
  color: var(--color-white);
}
.sol-helphero__title > *:first-child {
  margin-top: 0;
}
.sol-helphero__title > *:last-child {
  margin-bottom: 0;
}
.sol-helphero__lead {
  position: relative;
  margin: 0.5em 0 1.2em;
  font-size: var(--font-size-14);
  color: rgba(255, 255, 255, 0.72);
}
.sol-helphero__form {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em;
  max-width: 34em;
}
.sol-helphero__label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.sol-helphero__field {
  flex: 1 1 14em;
}
.sol-helphero__input {
  min-width: 0;
  padding: 0.8em 1em;
  font-family: var(--font-basic);
  font-size: var(--font-size-14);
  color: var(--color-ink);
  background-color: var(--color-card);
  border: 1px solid transparent;
  border-radius: var(--border-radius);
}
.sol-helphero__input::placeholder {
  color: var(--color-faint);
}
.sol-helphero__input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.55);
}

.sol-tickets {
  list-style: none;
  padding: 0;
}
.sol-tickets > *:first-child {
  margin-top: 0;
}
.sol-tickets > *:last-child {
  margin-bottom: 0;
}
.sol-tickets__item {
  border-bottom: 1px solid var(--color-line-row);
}
.sol-tickets__item:last-child {
  border-bottom: 0;
}
.sol-tickets__link {
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 0.95em 0;
  text-decoration: none;
  color: inherit;
  transition: var(--transition);
}
.sol-tickets__link:hover {
  background-color: var(--color-tint);
  box-shadow: -1.1em 0 0 var(--color-tint), 1.1em 0 0 var(--color-tint);
}
.sol-tickets__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}
.sol-tickets__body {
  flex: 1;
  min-width: 0;
}
.sol-tickets__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
}
.sol-tickets__subject {
  font-size: var(--font-size-14);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}
.sol-tickets__number {
  padding: 0.15em 0.5em;
  font-size: var(--font-size-11);
  color: var(--color-muted);
  background-color: var(--color-secondary-light);
  border-radius: var(--border-radius-smaller);
}
.sol-tickets__meta {
  display: block;
  margin-top: 0.35em;
  font-size: var(--font-size-12);
  color: var(--color-faint);
}

.sol-ticket__back {
  margin: 0 0 0.6em;
  font-size: var(--font-size-13);
}
.sol-ticket__back a {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  color: var(--color-muted);
  text-decoration: none;
}
.sol-ticket__back a::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
  transform: rotate(180deg);
}
.sol-ticket__back a:hover, .sol-ticket__back a:focus-visible {
  color: var(--color-ink);
}
.sol-ticket__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4em;
  margin: 0.55em 0 0;
  font-size: var(--font-size-13);
  color: var(--color-faint);
}
.sol-ticket__number {
  padding: 0.15em 0.5em;
  font-size: var(--font-size-11);
  color: var(--color-muted);
  background-color: var(--color-secondary-light);
  border-radius: var(--border-radius-smaller);
}
.sol-ticket__close {
  margin-top: var(--gap-smaller);
  text-align: center;
}

@media (max-width: 1024px) {
  .sol-support__grid {
    grid-template-columns: 1fr;
  }
  .sol-support__rail {
    position: static;
  }
}
.sol-news__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(200px, 18cqw, 25em);
  gap: var(--gap-smaller);
  align-items: start;
}
.sol-news__main {
  min-width: 0;
}
.sol-news__rail {
  position: sticky;
  top: calc(var(--top-bar-height) + 24px);
}
.sol-news__list {
  display: flex;
  flex-direction: column;
  gap: var(--gap-smaller);
  margin-bottom: var(--gap-smaller);
}

.sol-news-card {
  padding: clamp(16px, 2.2vw, 24px);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  transition: var(--transition);
}
.sol-news-card:hover {
  border-color: var(--color-line-hover);
}
.sol-news-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
  margin: 0 0 0.6em;
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-news-card__category {
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-warning-strong);
}
.sol-news-card__title {
  font-size: var(--font-size-18);
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--color-ink-strong);
}
.sol-news-card__title > *:first-child {
  margin-top: 0;
}
.sol-news-card__title > *:last-child {
  margin-bottom: 0;
}
.sol-news-card__title a {
  color: inherit;
  text-decoration: none;
}
.sol-news-card__title a:hover {
  color: var(--color-warning-strong);
}
.sol-news-card__title a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}
.sol-news-card__excerpt {
  margin: 0.6em 0 0;
  font-size: var(--font-size-14);
  line-height: 1.6;
  color: var(--color-text);
}
.sol-news-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.8em;
  margin: 1em 0 0;
}
.sol-news-card__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
}
.sol-news-card__more {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  margin-left: auto;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-3);
  text-decoration: none;
}
.sol-news-card__more::after {
  content: "";
  width: 0.85em;
  height: 0.85em;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
  transition: transform 0.2s ease;
}
.sol-news-card__more:hover {
  color: var(--color-ink);
}
.sol-news-card__more:hover::after {
  transform: translateX(0.2em);
}
.sol-news-card__more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}
.sol-news-card--locked {
  background-color: var(--color-tint);
}
.sol-news-card__locked {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  margin-left: auto;
  font-size: var(--font-size-12);
  color: var(--color-muted);
}
.sol-news-card__locked::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  mask: var(--icon-flag) center/contain no-repeat;
}

.sol-toplist {
  list-style: none;
  padding: 0;
  counter-reset: none;
}
.sol-toplist > *:first-child {
  margin-top: 0;
}
.sol-toplist > *:last-child {
  margin-bottom: 0;
}
.sol-toplist__item {
  display: flex;
  align-items: flex-start;
  gap: 0.7em;
  padding: 0.7em 0;
  border-bottom: 1px solid var(--color-line-row);
}
.sol-toplist__item:last-child {
  border-bottom: 0;
}
.sol-toplist__rank {
  flex: 0 0 auto;
  font-family: var(--font-heading);
  font-size: var(--font-size-16);
  font-weight: var(--font-weight-bold);
  color: var(--color-ghost);
}
.sol-toplist__link {
  font-size: var(--font-size-13);
  line-height: 1.45;
  color: var(--color-ink-2);
  text-decoration: none;
}
.sol-toplist__link:hover {
  color: var(--color-warning-strong);
}
.sol-toplist__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}

.sol-article {
  max-width: 46em;
}
.sol-article__back {
  margin: 0 0 1em;
  font-size: var(--font-size-13);
}
.sol-article__back a {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  color: var(--color-muted);
  text-decoration: none;
}
.sol-article__back a::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
  transform: rotate(180deg);
}
.sol-article__back a:hover, .sol-article__back a:focus-visible {
  color: var(--color-ink);
}
.sol-article__head {
  margin-bottom: 1.6em;
}
.sol-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
  margin: 0 0 0.6em;
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-article__category {
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-warning-strong);
}
.sol-article__title {
  font-size: var(--font-size-30);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--color-ink-strong);
}
.sol-article__title > *:first-child {
  margin-top: 0;
}
.sol-article__title > *:last-child {
  margin-bottom: 0;
}
.sol-article__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  margin: 0.9em 0 0;
}
.sol-article__body {
  width: 100%;
  padding: 0 var(--padding-on-side);
  margin: 0 auto;
  position: relative;
  z-index: 5;
  padding: clamp(20px, 3vw, 32px);
  font-size: var(--font-size-15);
  line-height: 1.7;
  color: var(--color-ink);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
}

@media (max-width: 1024px) {
  .sol-news__grid {
    grid-template-columns: 1fr;
  }
  .sol-news__rail {
    position: static;
  }
}
.sol-viewswitch {
  display: inline-flex;
  padding: 0.25em;
  background-color: var(--color-light-2);
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius-pill);
}
.sol-viewswitch__item {
  padding: 0.5em 1.1em;
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  color: var(--color-ink-4);
  text-decoration: none;
  border-radius: var(--border-radius-pill);
  transition: var(--transition);
}
.sol-viewswitch__item:hover {
  color: var(--color-ink);
}
.sol-viewswitch__item:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-viewswitch__item--current {
  color: var(--color-white);
  background-color: var(--color-ink);
}
.sol-viewswitch__item--current:hover {
  color: var(--color-white);
}

.sol-event-type {
  --event-color: var(--color-muted);
  display: inline-flex;
  align-items: center;
  padding: 0.3em 0.65em;
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--event-color);
  background-color: var(--color-light-2);
  background-color: color-mix(in srgb, var(--event-color) 12%, var(--color-card));
  border-radius: var(--border-radius-smaller);
}

.sol-eventlist {
  display: flex;
  flex-direction: column;
  gap: var(--gap-smaller);
  list-style: none;
  padding: 0;
}
.sol-eventlist > *:first-child {
  margin-top: 0;
}
.sol-eventlist > *:last-child {
  margin-bottom: 0;
}
.sol-eventlist__item {
  --event-color: var(--color-muted);
  display: flex;
  align-items: flex-start;
  gap: clamp(14px, 2vw, 22px);
  padding: clamp(16px, 2.2vw, 22px);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-left: 3px solid var(--event-color);
  border-radius: var(--border-radius-bigger);
  transition: var(--transition);
}
.sol-eventlist__item:hover {
  border-color: var(--color-line-hover);
  border-left-color: var(--event-color);
}
.sol-eventlist__date {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 3.6em;
  padding: 0.5em 0;
  background-color: var(--color-tint);
  border: 1px solid var(--color-line-soft);
  border-radius: var(--border-radius);
}
.sol-eventlist__day {
  font-family: var(--font-heading);
  font-size: var(--font-size-24);
  font-weight: var(--font-weight-bold);
  line-height: 1;
  color: var(--color-ink-strong);
}
.sol-eventlist__month {
  margin-top: 0.25em;
  font-family: var(--font-label);
  font-size: var(--font-size-10);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.sol-eventlist__body {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  flex: 1;
  min-width: 0;
}
.sol-eventlist__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em 0.7em;
}
.sol-eventlist__meta {
  font-size: var(--font-size-12);
  color: var(--color-faint);
}
.sol-eventlist__title {
  font-size: var(--font-size-16);
  font-weight: var(--font-weight-semibold);
  line-height: 1.35;
  color: var(--color-ink-2);
  text-decoration: none;
}
.sol-eventlist__title:hover {
  color: var(--color-warning-strong);
}
.sol-eventlist__title:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
  border-radius: var(--border-radius-smaller);
}
.sol-eventlist__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  margin-top: 0.25em;
}
.sol-eventlist__action {
  flex: 0 0 auto;
  align-self: center;
}
.sol-eventlist--flush {
  gap: 0;
}
.sol-eventlist--flush .sol-eventlist__item {
  padding: 0.95em 1.4em;
  border: 0;
  border-radius: 0;
  background-color: transparent;
}
.sol-eventlist--flush .sol-eventlist__item + .sol-eventlist__item {
  border-top: 1px solid var(--color-line-row);
}
.sol-eventlist--flush .sol-eventlist__item:hover {
  background-color: var(--color-light-2);
}
.sol-eventlist--flush .sol-eventlist__day {
  font-size: var(--font-size-18);
}

.sol-calendar {
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  overflow: hidden;
}
.sol-calendar__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  padding: 0.9em 1.2em;
  background-color: var(--color-head);
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-calendar__title {
  min-width: 11em;
  font-size: var(--font-size-16);
  font-weight: var(--font-weight-bold);
  text-align: center;
  text-transform: capitalize;
}
.sol-calendar__title > *:first-child {
  margin-top: 0;
}
.sol-calendar__title > *:last-child {
  margin-bottom: 0;
}
.sol-calendar__nav {
  display: inline-flex;
  width: 2.2em;
  height: 2.2em;
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius);
  color: var(--color-ink-3);
  transition: var(--transition);
}
.sol-calendar__nav::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  margin: auto;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
  transform: rotate(180deg);
}
.sol-calendar__nav--next::before {
  transform: none;
}
.sol-calendar__nav:hover {
  border-color: var(--color-primary);
  color: var(--color-ink);
}
.sol-calendar__nav:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4);
}
.sol-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.sol-calendar__weekday {
  padding: 0.6em 0.7em;
  font-family: var(--font-label);
  font-size: var(--font-size-11);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-faint);
  background-color: var(--color-tint);
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-calendar__day {
  display: flex;
  flex-direction: column;
  gap: 0.3em;
  min-height: 6.5em;
  padding: 0.5em;
  border-right: 1px solid var(--color-line-row);
  border-bottom: 1px solid var(--color-line-row);
}
.sol-calendar__day:nth-child(7n+7) {
  border-right: 0;
}
.sol-calendar__day--outside {
  background-color: var(--color-tint);
}
.sol-calendar__day--outside .sol-calendar__number {
  color: var(--color-ghost);
}
.sol-calendar__day--today .sol-calendar__number {
  color: var(--color-on-primary);
  background-color: var(--color-primary);
}
.sol-calendar__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7em;
  height: 1.7em;
  font-size: var(--font-size-12);
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
  border-radius: 50%;
}
.sol-calendar__event {
  --event-color: var(--color-muted);
  display: block;
  padding: 0.3em 0.45em;
  font-size: var(--font-size-11);
  line-height: 1.35;
  color: var(--color-ink-2);
  text-decoration: none;
  background-color: var(--color-light-2);
  border-left: 3px solid var(--event-color);
  border-radius: var(--border-radius-smaller);
  transition: var(--transition);
}
.sol-calendar__event:hover {
  background-color: var(--color-hover);
  color: var(--color-ink);
}
.sol-calendar__event:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), 0.5);
}
.sol-calendar__event-time {
  display: block;
  font-weight: var(--font-weight-semibold);
  color: var(--color-faint);
}
.sol-calendar__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 1.2em;
  margin: 1em 0 0;
}

.sol-legend-item {
  --event-color: var(--color-muted);
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  font-size: var(--font-size-12);
  color: var(--color-muted);
}
.sol-legend-item::before {
  content: "";
  width: 0.7em;
  height: 0.7em;
  border-radius: 2px;
  background-color: var(--event-color);
}

.sol-event-detail {
  max-width: 46em;
}
.sol-event-detail__back {
  margin: 0 0 1em;
  font-size: var(--font-size-13);
}
.sol-event-detail__back a {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  color: var(--color-muted);
  text-decoration: none;
}
.sol-event-detail__back a::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  mask: var(--icon-chevron-right) center/contain no-repeat;
  transform: rotate(180deg);
}
.sol-event-detail__back a:hover, .sol-event-detail__back a:focus-visible {
  color: var(--color-ink);
}
.sol-event-detail__head {
  margin-bottom: var(--gap-smaller);
  padding: clamp(18px, 2.5vw, 26px);
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
}
.sol-event-detail__title {
  margin: 0.5em 0 0.8em;
  font-size: var(--font-size-24);
  font-weight: var(--font-weight-bold);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--color-ink-strong);
}
.sol-event-detail__title > *:first-child {
  margin-top: 0;
}
.sol-event-detail__title > *:last-child {
  margin-bottom: 0;
}
.sol-event-detail__action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9em;
  margin: var(--gap-smaller) 0 0;
  font-size: var(--font-size-13);
}

@media (max-width: 1024px) {
  .sol-calendar__day {
    min-height: 5em;
  }
}
@media (max-width: 660px) {
  .sol-calendar__grid {
    display: flex;
    flex-direction: column;
  }
  .sol-calendar__weekday {
    display: none;
  }
  .sol-calendar__day {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.7em;
    min-height: 0;
    border-right: 0;
  }
  .sol-calendar__day--outside {
    display: none;
  }
  .sol-calendar__day:not(:has(.sol-calendar__event)) {
    display: none;
  }
  .sol-calendar__event {
    flex: 1;
  }
  .sol-eventlist__item {
    flex-wrap: wrap;
  }
}
.sol-auth {
  --auth-card-width: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: var(--gap) var(--padding-on-side);
  background-color: var(--color-paper);
}
.sol-auth__card {
  width: 100%;
  max-width: var(--auth-card-width);
  padding: 2.4em 2.2em;
  background-color: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-bigger);
  box-shadow: var(--shadow-soft);
}
.sol-auth__brand {
  margin-bottom: 1.8em;
  padding-bottom: 1.4em;
  border-bottom: 1px solid var(--color-line-soft);
}
.sol-auth__logo {
  display: block;
  width: clamp(120px, 12cqw, 240px);
  height: auto;
}
.sol-auth__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-20);
  font-weight: var(--font-weight-bold);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--color-ink-strong);
  margin-bottom: 1.2em;
}
.sol-auth__title > *:first-child {
  margin-top: 0;
}
.sol-auth__title > *:last-child {
  margin-bottom: 0;
}
.sol-auth__lead {
  margin: -0.6em 0 1.4em;
  font-size: var(--font-size-14);
  line-height: 1.55;
  color: var(--color-ink-4);
}
.sol-auth__message {
  margin: 0 0 1.2em;
  padding: 0.85em 1em;
  font-size: var(--font-size-13);
  line-height: 1.5;
  border-radius: var(--border-radius);
}
.sol-auth__message--error {
  color: var(--color-danger);
  background-color: var(--color-danger-bg);
}
.sol-auth__message--success {
  color: var(--color-success);
  background-color: var(--color-success-bg);
}
.sol-auth__form {
  display: flex;
  flex-direction: column;
  gap: 1.1em;
}
.sol-auth__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  flex-wrap: wrap;
}
.sol-auth__submit {
  width: 100%;
  margin-top: 0.4em;
}
.sol-auth__link {
  font-size: var(--font-size-13);
  color: var(--color-ink-4);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: var(--transition);
}
.sol-auth__link:hover, .sol-auth__link:focus-visible {
  color: var(--color-ink);
  border-bottom-color: var(--color-primary);
}
.sol-auth__note {
  margin: 1.8em 0 0;
  padding-top: 1.4em;
  border-top: 1px solid var(--color-line-soft);
  font-size: var(--font-size-12);
  line-height: 1.6;
  color: var(--color-muted);
}
.sol-auth__note + .sol-auth__note {
  margin-top: 0.6em;
  padding-top: 0;
  border-top: 0;
}

.sol-field {
  display: flex;
  flex-direction: column;
  gap: 0.45em;
}
.sol-field__label {
  font-size: var(--font-size-13);
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-2);
}
.sol-field__input {
  width: 100%;
  padding: 0.8em 0.9em;
  font-family: var(--font-basic);
  font-size: var(--font-size-14);
  color: var(--color-ink);
  background-color: var(--color-card);
  border: 1px solid var(--color-line-2);
  border-radius: var(--border-radius);
  transition: var(--transition);
}
.sol-field__input:hover {
  border-color: var(--color-line-hover);
}
.sol-field__input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.25);
}
.sol-field__hint {
  font-size: var(--font-size-12);
  color: var(--color-muted);
}
.sol-field--full {
  grid-column: 1/-1;
}
.sol-field__file {
  width: 100%;
  padding: 0.7em 0.9em;
  font-family: var(--font-basic);
  font-size: var(--font-size-13);
  color: var(--color-ink-4);
  background-color: var(--color-tint);
  border: 1px dashed var(--color-line-2);
  border-radius: var(--border-radius);
  cursor: pointer;
}
.sol-field__file:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.25);
}

.sol-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--font-size-13);
  color: var(--color-ink-4);
  cursor: pointer;
}
.sol-checkbox input {
  width: 1em;
  height: 1em;
  accent-color: var(--color-primary);
  cursor: pointer;
}

body::-webkit-scrollbar {
  width: 6px;
}
body::-webkit-scrollbar-track {
  background: var(--color-primary);
}
body::-webkit-scrollbar-thumb {
  background: var(--color-secondary, #cbd5e1);
  border-radius: 10px;
}
