/* ═══════════════════════════════════════════════════════════════
   LAYOUT — Digital Rust
   Content area, footer, directory listing, responsive
   ═══════════════════════════════════════════════════════════════ */

/* ── CSP-safe utility classes (replaces inline style= attributes) ── */
.hidden { display: none !important; }
.inline-flex { display: inline-flex !important; }
.inline { display: inline !important; }
.indent-1 { padding-left: 16px; }
.hr-separator { border: none; border-top: 1px solid var(--border-color, #333); margin: 20px 0 10px; }
.mb-20 { margin-bottom: 20px; }
.mermaid-error { color: var(--dr-amber-alert); border: 1px solid var(--dr-amber-alert); padding: 10px; }

.content {
    margin-left: var(--sidebar-width);
    padding: var(--dr-space-xl) 3rem;
    padding-top: 6.25rem;
    max-width: var(--content-max-width);
    width: calc(100% - var(--sidebar-width));
    min-height: 100vh;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.full-width-content { max-width: none !important; }

.footer {
    margin-top: auto;
    padding: var(--dr-space-lg) 0;
    border-top: var(--dr-border-subtle);
    color: var(--dr-text-tertiary);
    font-size: var(--dr-text-sm);
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.footer-powered {
    color: var(--dr-accent);
    text-decoration: underline;
    text-decoration-color: var(--dr-phantom-current);
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    font-weight: var(--dr-font-weight);
}

.footer-powered:hover { text-decoration-thickness: 2px; }

.version {
    font-size: var(--dr-text-xs);
    color: var(--dr-text-tertiary);
    opacity: 0.8;
    display: none;
}

/* ─── Directory listing ──────────────────────────────────────── */

.directory-list { margin-top: var(--dr-space-sm); }

.directory-item {
    margin: var(--dr-space-xs) 0;
    padding: var(--dr-space-xs) var(--dr-space-sm);
    border-radius: var(--dr-radius);
    transition: all var(--dr-transition-fast);
    display: flex;
    align-items: center;
    direction: ltr;
    border: 1px solid transparent;
}

.directory-item:hover {
    background-color: var(--hover-bg);
    border-color: var(--dr-surface-highlight);
}

.directory-item a {
    color: var(--dr-text-link);
    text-decoration: underline;
    text-decoration-color: var(--dr-phantom-current);
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    display: block;
    flex: 1;
    unicode-bidi: plaintext;
    text-align: left;
}

.directory-item a:hover {
    color: var(--dr-text-link-hover);
    text-decoration-thickness: 2px;
}

.directory-item.is-dir:before { content: "\f07b"; font-family: FontAwesome; margin-right: var(--dr-space-sm); font-size: var(--dr-text-sm); color: var(--dr-thermal-throttle); }
.directory-item.is-file:before { content: "\f0f6"; font-family: FontAwesome; margin-right: var(--dr-space-sm); font-size: var(--dr-text-sm); color: var(--dr-text-tertiary); }


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 1080px) {
    .toolbar-button .button-text { display: none; }
}

@media (max-width: 950px) {
    body { overflow-x: hidden; padding: 0; margin: 0; }

    /* Higher specificity (body .content) overrides base .content
       without resorting to !important. Base styles set
       margin-left: var(--sidebar-width) and
       width: calc(100% - var(--sidebar-width)), which must
       be suppressed when the sidebar is hidden on mobile. */
    body .content {
        margin-left: 0;
        padding: 60px 8px 16px 8px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    body .content > *:not(.breadcrumbs):not(.footer) {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
    }

    body .content h1 { margin-top: 8px; font-size: 24px; }
    body .content h2 { font-size: 20px; margin-top: 24px; }
    body .content h3 { font-size: 18px; }

    body .content pre, body .content blockquote {
        margin-left: -8px;
        margin-right: -8px;
        border-radius: 0;
        width: calc(100% + 16px);
        box-sizing: border-box;
    }

    body .content .footer,
    body .footer {
        margin-top: auto;
        padding: 16px 0;
        flex-direction: column;
        gap: 8px;
        text-align: center;
    }

    .page-toolbar { margin-bottom: 0; }

    .page-actions { position: static; padding-left: 8px; margin-left: 0; }

    .page-actions-menu {
        position: fixed;
        top: 48px;
        right: 8px;
        margin-top: 0;
        z-index: 1000;
    }

    .page-actions-button { padding: 10px; min-height: 44px; min-width: 44px; }
    .page-actions-button .button-text { display: none; }
    .toolbar-button { padding: 8px 12px; min-height: 44px; }
    .toolbar-button .button-text { display: none; }

    .confirmation-dialog .dialog-container {
        width: calc(100% - 32px);
        max-width: none;
        margin: 0 16px;
        padding: 16px;
    }

    .confirmation-dialog .dialog-title { font-size: 1.2rem; margin-top: 0; }
    .confirmation-dialog .form-actions { flex-direction: column; gap: 8px; }
    .confirmation-dialog .dialog-button { width: 100%; }
}
