/* ── Documentation /{lang}/docs (KBC-0003) ───────────────────────────────────
   Three columns: menu, article, index. Loaded by Docs.cshtml only.            */

.docs {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) 210px;
    gap: 3rem;
    align-items: start;
    padding-top: 2.5rem;
    padding-bottom: 5rem;
}

/* Left menu */
.docs-nav { position: sticky; top: calc(var(--header-h) + 1.5rem); max-height: calc(100vh - var(--header-h) - 3rem); overflow: auto; }
.docs-nav-group { margin-bottom: 1.4rem; }
.docs-nav-head {
    display: flex; align-items: center; gap: .5rem;
    font-size: .74rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
    color: var(--g4); margin-bottom: .45rem;
}
a.docs-nav-head { text-transform: none; letter-spacing: .01em; font-size: .9rem; font-weight: 500; color: var(--g3); padding: .3rem .7rem; border-radius: 8px; }
a.docs-nav-head.active, a.docs-nav-head:hover { background: var(--cream); color: var(--g0); }
.docs-nav-head img { width: 18px; height: 18px; object-fit: contain; }
.docs-nav-item {
    display: block; font-size: .9rem; color: var(--g3);
    padding: .3rem .7rem; border-radius: 8px; line-height: 1.4;
}
.docs-nav-item:hover { background: var(--cream); color: var(--g0); }
.docs-nav-item.active { background: var(--cream); color: var(--g0); font-weight: 600; box-shadow: inset 2px 0 0 var(--gold); }
.docs-menu-toggle { display: none; }

/* Search (KBC-0007) */
.docs-search { margin-bottom: 1.4rem; }
.docs-search input {
    width: 100%; font: inherit; font-size: .88rem; color: var(--g2);
    padding: .5rem .8rem; border: 1px solid var(--line); border-radius: 10px; background: var(--white);
}
.docs-search input:focus { outline: none; border-color: var(--gold); }
.docs-results { list-style: none; padding: 0; display: grid; gap: 1.4rem; }
.docs-results a { font-weight: 600; font-size: 1.02rem; color: var(--g0); }
.docs-results a:hover { color: var(--gold-d); }
.docs-result-where { font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; color: var(--g4); margin: .1rem 0 .3rem; }
.docs-results p { font-size: .9rem; font-weight: 300; color: var(--g3); }
.docs-results mark { background: var(--gold-l); color: var(--g0); padding: 0 .1em; border-radius: 3px; }

/* Article */
.docs-body { min-width: 0; }
.docs-title { display: flex; align-items: center; gap: .7rem; font-family: 'DM Serif Display', serif; font-weight: 400; font-size: clamp(1.8rem, 3.5vw, 2.5rem); color: var(--ink); line-height: 1.2; margin-bottom: 1.4rem; }
.docs-title img { width: 36px; height: 36px; object-fit: contain; }
.docs-notice { background: var(--cream); border: 1px solid var(--line); border-radius: 10px; padding: .7rem 1rem; font-size: .88rem; color: var(--g3); margin-bottom: 1.4rem; }
.docs-prose { padding: 0; max-width: none; }
.docs-prose h2, .docs-prose h3, .docs-section { scroll-margin-top: calc(var(--header-h) + 1rem); }
.docs-prose p, .docs-prose ul, .docs-prose ol, .docs-prose pre, .docs-prose blockquote { margin: .8rem 0; }
.docs-prose ul, .docs-prose ol { padding-left: 1.4rem; }
.docs-prose img { max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--line); }
.docs-prose pre { background: var(--g0); color: var(--cream); padding: 1rem 1.2rem; border-radius: 10px; overflow-x: auto; font-size: .86rem; }
.docs-prose pre code { background: none; padding: 0; color: inherit; }
.docs-prose blockquote { border-left: 3px solid var(--gold-l); padding: .2rem 0 .2rem 1rem; color: var(--g3); }
.docs-prose td:first-child { width: auto; min-width: 0; }

/* Callouts: > [!NOTE] / [!TIP] / [!IMPORTANT] / [!WARNING] / [!CAUTION] */
.docs-prose .markdown-alert { border-left: 3px solid var(--g4); background: var(--cream); padding: .8rem 1.1rem; border-radius: 0 10px 10px 0; margin: 1.1rem 0; }
.docs-prose .markdown-alert p { margin: .2rem 0; }
.docs-prose .markdown-alert-title { font-weight: 600; color: var(--g0); }
.docs-prose .markdown-alert-tip { border-color: var(--g3); }
.docs-prose .markdown-alert-important { border-color: var(--gold); }
.docs-prose .markdown-alert-warning { border-color: var(--gold-d); background: #fbf3e2; }
.docs-prose .markdown-alert-caution { border-color: #b4553c; background: #fbeee9; }

/* Single-page category (FAQ) */
.docs-section { font-family: 'DM Serif Display', serif; font-weight: 400; font-size: 1.45rem; color: var(--ink); margin: 2.2rem 0 1rem; }
.docs-faq { max-width: none; margin: 0; }
.docs-faq .faq-item { scroll-margin-top: calc(var(--header-h) + 1rem); }
.docs-faq .faq-a { font-size: .95rem; }

/* Vote under an article or answer (KBC-0005) */
.kb-vote [hidden] { display: none !important; }
.kb-vote { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: 2.2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--g3); }
.faq-item .kb-vote { margin-top: .4rem; padding: .9rem 0 1.1rem; }
.kb-vote-faces { display: inline-flex; gap: .35rem; }
.kb-face {
    font-size: 1.35rem; line-height: 1; width: 2.4rem; height: 2.4rem; border-radius: 50%;
    border: 1px solid var(--line); background: var(--white); cursor: pointer;
    filter: grayscale(1); opacity: .65; transition: filter .15s, opacity .15s, transform .15s, border-color .15s;
}
.kb-face:hover { filter: none; opacity: 1; transform: translateY(-1px); }
.kb-face.on { filter: none; opacity: 1; border-color: var(--gold); background: var(--cream); }
.kb-face:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.kb-vote-msg { font-size: .86rem; color: var(--g4); }
.kb-vote-error { color: #b4553c; }
.kb-vote-more { flex-basis: 100%; display: grid; gap: .5rem; max-width: 560px; }
.kb-vote-more label { display: grid; gap: .35rem; font-size: .86rem; }
.kb-vote-more textarea { font: inherit; font-size: .9rem; padding: .6rem .75rem; border: 1px solid var(--line); border-radius: 10px; resize: vertical; color: var(--g2); }
.kb-vote-send { justify-self: start; font: inherit; font-size: .88rem; font-weight: 500; color: var(--white); background: var(--g3); border: 0; border-radius: 999px; padding: .45rem 1.1rem; cursor: pointer; }
.kb-vote-send:hover { background: var(--g2); }

/* Right index */
.docs-toc { position: sticky; top: calc(var(--header-h) + 1.5rem); font-size: .84rem; }
.docs-toc-head { font-size: .74rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--g4); margin-bottom: .6rem; }
.docs-toc-link { display: block; color: var(--g4); padding: .22rem 0 .22rem .8rem; border-left: 1px solid var(--line); line-height: 1.4; }
.docs-toc-link.sub { padding-left: 1.6rem; }
.docs-toc-link:hover { color: var(--g0); }
.docs-toc-link.active { color: var(--g0); border-left: 2px solid var(--gold); font-weight: 500; }

@media (max-width: 1100px) {
    .docs { grid-template-columns: 220px minmax(0, 1fr); }
    .docs-toc { display: none; }
}
@media (max-width: 860px) {
    .docs { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding-top: 1.2rem; }
    .docs-menu-toggle {
        display: block; width: 100%; text-align: left; font: inherit; font-size: .9rem; font-weight: 500;
        color: var(--g2); background: var(--cream); border: 1px solid var(--line); border-radius: 10px;
        padding: .6rem 1rem; cursor: pointer;
    }
    .docs-nav { display: none; position: static; max-height: none; }
    .docs-nav.open { display: block; }
}
