/*
 * Qisutu Handbuch – stabile Sphinx-Anpassung an Qisutu 1.0.1
 * SPDX-FileCopyrightText: 2026 Franziska Steps
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

:root {
    --qisutu-bg: #f4f7f9;
    --qisutu-surface: #ffffff;
    --qisutu-surface-soft: #fbfdfe;
    --qisutu-border: #d8e0e7;
    --qisutu-text: #1f2933;
    --qisutu-muted: #6b7785;
    --qisutu-primary: #015068;
    --qisutu-primary-hover: #013f52;
    --qisutu-primary-soft: rgba(1, 80, 104, 0.10);
    --qisutu-success: #117a46;
    --qisutu-success-soft: rgba(17, 122, 70, 0.10);
    --qisutu-warning: #b85c00;
    --qisutu-warning-soft: rgba(184, 92, 0, 0.10);
    --qisutu-danger: #b42318;
    --qisutu-danger-soft: rgba(180, 35, 24, 0.09);
    --qisutu-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
    --qisutu-radius: 8px;
    --qisutu-sidebar-width: 248px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    min-height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden;
    background: var(--qisutu-bg) !important;
    color: var(--qisutu-text);
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px;
    line-height: 1.55;
}

body *::selection {
    background: rgba(1, 80, 104, 0.22);
}

a {
    color: var(--qisutu-primary);
    text-decoration: none;
}

a:hover,
a:focus-visible {
    color: var(--qisutu-primary-hover);
    text-decoration: underline;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 3px solid rgba(1, 80, 104, 0.22);
    outline-offset: 2px;
}

.qisutu-docs-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Layout. Every Alabaster width, float, margin and responsive offset is reset. */
div.document {
    width: 100% !important;
    min-height: 100vh;
    margin: 0 !important;
    display: grid;
    grid-template-columns: var(--qisutu-sidebar-width) minmax(0, 1fr);
    align-items: start;
    background: linear-gradient(
        to right,
        var(--qisutu-primary) 0,
        var(--qisutu-primary) var(--qisutu-sidebar-width),
        var(--qisutu-bg) var(--qisutu-sidebar-width),
        var(--qisutu-bg) 100%
    );
}

div.documentwrapper {
    grid-column: 2;
    grid-row: 1;
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    background: transparent !important;
}

div.bodywrapper {
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
}

div.body {
    width: min(1180px, calc(100% - 56px)) !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: calc(100vh - 56px);
    margin: 28px auto !important;
    padding: 30px 34px 38px !important;
    overflow-wrap: anywhere;
    background: var(--qisutu-surface) !important;
    color: var(--qisutu-text) !important;
    border: 1px solid var(--qisutu-border);
    border-radius: var(--qisutu-radius);
    box-shadow: var(--qisutu-shadow);
}

div.clearer {
    display: none !important;
}

/* Sidebar. */
div.sphinxsidebar {
    position: sticky !important;
    top: 0;
    z-index: 30;
    grid-column: 1;
    grid-row: 1;
    float: none !important;
    display: block !important;
    width: 100% !important;
    height: 100vh;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    background: var(--qisutu-primary) !important;
    color: #ffffff;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px;
    line-height: 1.45;
}

div.sphinxsidebarwrapper {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
}

.qisutu-docs-brand {
    flex: 0 0 64px;
    height: 64px;
    min-height: 64px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.qisutu-docs-brand-link {
    width: 100%;
    height: 64px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 20px;
    color: #ffffff !important;
    text-decoration: none !important;
}

.qisutu-docs-brand-link:hover,
.qisutu-docs-brand-link:focus-visible {
    background: rgba(255, 255, 255, 0.06);
}

.qisutu-docs-brand-logo-wrap {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    overflow: hidden;
}

.qisutu-docs-brand-logo {
    width: 34px;
    height: 34px;
    display: block;
    object-fit: contain;
}

.qisutu-docs-brand-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    line-height: 1;
}

.qisutu-docs-brand-name {
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
}

.qisutu-docs-brand-version {
    color: rgba(255, 255, 255, 0.72);
    font-size: 11px;
    font-weight: 600;
}

.qisutu-docs-sidebar-content {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.qisutu-docs-search-form {
    flex: 0 0 auto;
    margin: 14px 10px 8px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px;
    gap: 6px;
}

.qisutu-docs-search-form input[type="search"] {
    width: 100%;
    min-width: 0;
    height: 38px;
    margin: 0;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, 0.27);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font: inherit;
    font-size: 13px;
    appearance: none;
}

.qisutu-docs-search-form input[type="search"]::placeholder {
    color: rgba(255, 255, 255, 0.66);
}

.qisutu-docs-search-form button {
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 1px solid #ffffff;
    border-radius: 7px;
    background: #ffffff;
    color: var(--qisutu-primary);
    font: inherit;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.qisutu-docs-search-form button:hover,
.qisutu-docs-search-form button:focus-visible {
    background: var(--qisutu-bg);
}

.qisutu-docs-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 8px 10px 22px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

.qisutu-docs-nav::-webkit-scrollbar {
    width: 8px;
}

.qisutu-docs-nav::-webkit-scrollbar-track {
    background: transparent;
}

.qisutu-docs-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.35);
    border-radius: 8px;
}

.qisutu-docs-nav-title {
    margin: 7px 12px 8px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.qisutu-docs-nav ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.qisutu-docs-nav ul ul {
    margin: 3px 0 7px 16px !important;
}

.qisutu-docs-nav li {
    margin: 2px 0 !important;
    padding: 0 !important;
}

.qisutu-docs-nav a {
    display: block;
    min-width: 0;
    min-height: 34px;
    padding: 7px 12px;
    overflow-wrap: anywhere;
    border: 0 !important;
    border-radius: 7px;
    color: rgba(255, 255, 255, 0.82) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none !important;
}

.qisutu-docs-nav ul ul a {
    min-height: 30px;
    padding: 5px 10px;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 13px;
}

.qisutu-docs-nav a:hover,
.qisutu-docs-nav a:focus-visible {
    background: rgba(255, 255, 255, 0.10);
    color: #ffffff !important;
}

.qisutu-docs-nav li.current > a,
.qisutu-docs-nav a.current {
    background: #ffffff;
    color: var(--qisutu-primary) !important;
}

.qisutu-docs-nav li.current > a:hover,
.qisutu-docs-nav li.current > a:focus-visible {
    background: #ffffff;
    color: var(--qisutu-primary-hover) !important;
}

.qisutu-docs-nav-toggle {
    display: none;
}

/* Content. */
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
    color: var(--qisutu-text);
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    line-height: 1.25;
}

div.body h1 {
    margin: 0 0 10px;
    padding: 0;
    font-size: 30px;
}

div.body h2 {
    margin: 34px 0 14px;
    padding-top: 24px;
    border-top: 1px solid var(--qisutu-border);
    font-size: 22px;
}

div.body h3 {
    margin: 28px 0 10px;
    font-size: 18px;
}

div.body h4 {
    margin: 24px 0 8px;
    font-size: 16px;
}

div.body h5,
div.body h6 {
    margin: 20px 0 8px;
    font-size: 15px;
}

div.body p,
div.body dd,
div.body li {
    line-height: 1.55;
}

div.body p {
    margin: 10px 0;
}

div.body ul,
div.body ol {
    padding-left: 1.5rem;
}

div.body li + li {
    margin-top: 4px;
}

a.headerlink {
    margin-left: 3px;
    padding: 0 4px;
    color: rgba(1, 80, 104, 0.34);
    border-radius: 4px;
    text-decoration: none;
}

a.headerlink:hover,
a.headerlink:focus-visible {
    background: var(--qisutu-primary-soft);
    color: var(--qisutu-primary);
}

/* Images are part of the page, not a second oversized card. */
div.body img {
    max-width: 100%;
    height: auto;
}

div.body img:not(.math) {
    padding: 0;
    background: #ffffff;
    border: 1px solid var(--qisutu-border);
    border-radius: 6px;
    box-shadow: none;
}

div.body figure,
div.body .figure {
    margin: 22px 0 28px;
    text-align: center;
}

div.body figcaption,
div.body .caption {
    margin-top: 8px;
    color: var(--qisutu-muted);
    font-size: 13px;
    font-style: normal;
}

/* Toctrees as Qisutu panels. */
div.body > section > div.toctree-wrapper > ul,
div.body > div.section > div.toctree-wrapper > ul {
    margin: 24px 0 8px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    list-style: none;
}

div.body > section > div.toctree-wrapper > ul > li,
div.body > div.section > div.toctree-wrapper > ul > li {
    min-width: 0;
    margin: 0;
    padding: 16px 18px;
    background: var(--qisutu-surface);
    border: 1px solid var(--qisutu-border);
    border-radius: var(--qisutu-radius);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045);
}

div.body > section > div.toctree-wrapper > ul > li > a,
div.body > div.section > div.toctree-wrapper > ul > li > a {
    display: block;
    color: var(--qisutu-primary);
    font-size: 16px;
    font-weight: 700;
}

div.body div.toctree-wrapper ul ul {
    margin: 9px 0 0;
    padding-left: 18px;
    color: var(--qisutu-muted);
    font-size: 13px;
}

/* Tables. */
div.body .table-wrapper,
div.body .wy-table-responsive {
    width: 100%;
    overflow-x: auto;
}

div.body table.docutils,
div.body table.longtable,
div.body table.align-default {
    width: 100%;
    margin: 18px 0 24px;
    border-collapse: collapse;
    border: 1px solid var(--qisutu-border);
    background: #ffffff;
    font-size: 14px;
}

div.body table.docutils th,
div.body table.docutils td,
div.body table.longtable th,
div.body table.longtable td {
    padding: 9px 11px;
    border: 0;
    border-bottom: 1px solid var(--qisutu-border);
    text-align: left;
    vertical-align: top;
}

div.body table.docutils th,
div.body table.longtable th {
    background: var(--qisutu-surface-soft);
    color: var(--qisutu-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

div.body table.docutils tbody tr:hover,
div.body table.longtable tbody tr:hover {
    background: rgba(1, 80, 104, 0.04);
}

/* Admonitions. */
div.admonition,
div.topic,
div.sidebar {
    margin: 20px 0;
    padding: 16px 18px;
    background: var(--qisutu-surface-soft);
    border: 1px solid var(--qisutu-border);
    border-left: 4px solid var(--qisutu-primary);
    border-radius: var(--qisutu-radius);
    box-shadow: none;
}

div.admonition p.admonition-title,
div.topic p.topic-title,
div.sidebar p.sidebar-title {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    color: var(--qisutu-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

div.admonition.note,
div.admonition.important,
div.admonition.seealso {
    background: rgba(1, 80, 104, 0.055);
}

div.admonition.tip,
div.admonition.hint {
    background: var(--qisutu-success-soft);
    border-left-color: var(--qisutu-success);
}

div.admonition.warning,
div.admonition.caution,
div.admonition.attention {
    background: var(--qisutu-warning-soft);
    border-color: rgba(184, 92, 0, 0.24);
    border-left-color: var(--qisutu-warning);
}

div.admonition.danger,
div.admonition.error {
    background: var(--qisutu-danger-soft);
    border-color: rgba(180, 35, 24, 0.24);
    border-left-color: var(--qisutu-danger);
}

/* Code. */
pre,
tt,
code {
    font-family: Consolas, "Liberation Mono", Menlo, monospace;
}

code.literal,
code.docutils.literal,
span.pre {
    padding: 0.14em 0.34em;
    border: 1px solid #dce5eb;
    border-radius: 4px;
    background: #f6f8f9;
    color: #1e2933;
    font-size: 0.9em;
}

div.highlight,
div.literal-block-wrapper {
    margin: 18px 0 24px;
}

div.highlight pre,
pre.literal-block {
    margin: 0;
    padding: 15px 17px;
    overflow-x: auto;
    background: #f6f8f9;
    color: #1e2933;
    border: 1px solid var(--qisutu-border);
    border-radius: var(--qisutu-radius);
    font-size: 13px;
    line-height: 1.55;
}

/* Search results. */
ul.search,
ul.search li {
    padding: 0;
    list-style: none;
}

ul.search li {
    margin: 0 0 14px;
    padding: 15px 17px;
    border: 1px solid var(--qisutu-border);
    border-radius: var(--qisutu-radius);
    background: var(--qisutu-surface);
}

/* Footer remains visible even inside Alabaster's <= 940px media rule. */
div.footer {
    display: block !important;
    width: auto !important;
    margin: -10px 28px 22px calc(var(--qisutu-sidebar-width) + 28px) !important;
    color: var(--qisutu-muted);
    font-size: 12px;
    text-align: right;
}

div.footer a {
    color: var(--qisutu-primary);
}

/* Tablet/mobile layout. This breakpoint intentionally starts above Alabaster's 940px rule. */
@media (max-width: 1024px) {
    div.document {
        grid-template-columns: minmax(0, 1fr);
        background: var(--qisutu-bg);
    }

    div.sphinxsidebar {
        position: sticky !important;
        top: 0;
        grid-column: 1;
        grid-row: 1;
        width: 100% !important;
        height: 64px;
        min-height: 64px;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible;
        box-shadow: 0 6px 18px rgba(15, 23, 42, 0.18);
    }

    div.sphinxsidebarwrapper {
        position: relative;
        height: 64px;
        overflow: visible;
    }

    div.documentwrapper {
        grid-column: 1;
        grid-row: 2;
    }

    .qisutu-docs-brand {
        width: 100%;
    }

    .qisutu-docs-brand-link {
        padding-right: 76px;
    }

    .qisutu-docs-nav-toggle {
        position: absolute;
        top: 14px;
        right: 16px;
        z-index: 3;
        width: 38px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 7px;
        background: rgba(255, 255, 255, 0.12);
        color: #ffffff;
        font: inherit;
        font-size: 21px;
        line-height: 1;
        cursor: pointer;
    }

    .qisutu-docs-nav-toggle:hover,
    .qisutu-docs-nav-toggle:focus-visible {
        background: rgba(255, 255, 255, 0.20);
    }

    .qisutu-docs-sidebar-content {
        position: absolute;
        top: 64px;
        right: 0;
        left: 0;
        z-index: 2;
        max-height: calc(100vh - 64px);
        display: none;
        overflow: hidden;
        background: var(--qisutu-primary);
        border-top: 1px solid rgba(255, 255, 255, 0.14);
        box-shadow: 0 14px 28px rgba(15, 23, 42, 0.22);
    }

    body.qisutu-docs-nav-open .qisutu-docs-sidebar-content {
        display: flex;
    }

    .qisutu-docs-nav {
        max-height: calc(100vh - 128px);
    }

    div.body {
        width: calc(100% - 32px) !important;
        min-height: 0;
        margin: 16px !important;
        padding: 26px 26px 32px !important;
    }

    div.footer {
        margin: 8px 18px 22px !important;
    }
}

@media (max-width: 640px) {
    .qisutu-docs-brand-link {
        padding-left: 14px;
    }

    div.body {
        width: calc(100% - 20px) !important;
        margin: 10px !important;
        padding: 21px 17px 26px !important;
    }

    div.body h1 {
        font-size: 26px;
    }

    div.body h2 {
        font-size: 20px;
    }

    div.body > section > div.toctree-wrapper > ul,
    div.body > div.section > div.toctree-wrapper > ul {
        grid-template-columns: minmax(0, 1fr);
    }

    div.body table.docutils,
    div.body table.longtable {
        font-size: 13px;
    }
}

@media print {
    body {
        background: #ffffff !important;
    }

    div.document {
        display: block;
    }

    div.sphinxsidebar,
    .qisutu-docs-nav-toggle,
    div.footer {
        display: none !important;
    }

    div.documentwrapper,
    div.bodywrapper {
        width: 100% !important;
        margin: 0 !important;
    }

    div.body {
        width: 100% !important;
        min-height: 0;
        margin: 0 !important;
        padding: 0 !important;
        border: 0;
        box-shadow: none;
    }
}


/* Language menu --------------------------------------------------------- */
.qisutu-language-menu {
  position: fixed;
  top: 0.75rem;
  right: 1rem;
  z-index: 1200;
  font-family: Arial, Helvetica, sans-serif;
}

.qisutu-language-button {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(25, 50, 70, 0.24);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.10);
  color: #17324d;
  font: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.qisutu-language-button:hover,
.qisutu-language-button:focus-visible,
.qisutu-language-menu.is-open .qisutu-language-button {
  background: #f2f6f9;
  border-color: rgba(25, 50, 70, 0.42);
  outline: none;
}

.qisutu-language-list {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  width: max-content;
  min-width: 220px;
  max-height: calc(100vh - 5rem);
  overflow-y: auto;
  padding: 0.4rem;
  border: 1px solid rgba(25, 50, 70, 0.18);
  border-radius: 9px;
  background: #ffffff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.20);
}

.qisutu-language-list[hidden] {
  display: none !important;
}

.qisutu-language-option {
  display: block;
  padding: 0.58rem 0.72rem;
  border-radius: 6px;
  color: #17324d;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.qisutu-language-option:hover,
.qisutu-language-option:focus-visible {
  background: #edf4f5;
  color: #0d5d64;
  outline: none;
  text-decoration: none;
}

.qisutu-language-option.is-current {
  background: #dcebed;
  color: #0d5d64;
  font-weight: 700;
}

.qisutu-language-option.is-current::after {
  content: "✓";
  float: right;
  margin-left: 1.5rem;
}

@media (max-width: 900px) {
  .qisutu-language-menu {
    top: 0.65rem;
    right: 4.4rem;
  }

  .qisutu-language-button {
    width: 38px;
    height: 38px;
  }
}

@media print {
  .qisutu-language-menu {
    display: none !important;
  }
}
