/* ============================================
   Shared: Sidebar, Pagination, 404, Archives
   ============================================ */

/* ── Sidebar ── */
.bd-sidebar {
    position: sticky;
    top: calc(68px + var(--bd-space-lg));
    align-self: start;
}
.bd-sidebar .widget {
    background: var(--bd-surface);
    border: var(--bd-border-w) solid var(--bd-border);
    padding: var(--bd-space-lg);
    margin-bottom: var(--bd-space-lg);
    box-shadow: var(--bd-shadow-card);
}
.bd-sidebar .widget-title {
    font-size: var(--bd-text-lg);
    font-weight: 800;
    margin-bottom: var(--bd-space-md);
    padding-bottom: var(--bd-space-sm);
    border-bottom: var(--bd-border-w) solid var(--bd-primary);
}
.bd-sidebar .widget ul { list-style: none; margin: 0; }
.bd-sidebar .widget ul li {
    padding: var(--bd-space-sm) 0;
    border-bottom: var(--bd-border-w) solid var(--bd-border-light);
    margin: 0;
}
.bd-sidebar .widget ul li:last-child { border-bottom: none; }
.bd-sidebar .widget a {
    color: var(--bd-text-soft);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--bd-text-sm);
}
.bd-sidebar .widget a:hover { color: var(--bd-primary); }
.bd-sidebar .widget_search .search-form { display: flex; }
.bd-sidebar .widget_search input[type="search"] {
    flex: 1;
    padding: 10px 14px;
    border: var(--bd-border-w) solid var(--bd-border);
    border-right: none;
    font-family: var(--bd-font);
    font-size: var(--bd-text-sm);
    background: var(--bd-surface);
    color: var(--bd-text);
}
.bd-sidebar .widget_search input[type="search"]:focus { outline: none; }
.bd-sidebar .widget_search input[type="submit"] {
    padding: 10px 16px;
    background: var(--bd-dark);
    color: var(--bd-surface);
    border: var(--bd-border-w) solid var(--bd-border);
    cursor: pointer;
    font-weight: 700;
    font-size: var(--bd-text-sm);
    transition: background var(--bd-transition);
}
.bd-sidebar .widget_search input[type="submit"]:hover { background: var(--bd-dark-2); }
[data-theme="dark"] .bd-sidebar .widget_search input[type="submit"] {
    background: var(--bd-primary);
    color: var(--bd-text-on-primary);
    border-color: var(--bd-primary);
}
[data-theme="dark"] .bd-sidebar .widget_search input[type="submit"]:hover {
    background: var(--bd-primary-dark);
    border-color: var(--bd-primary-dark);
}
@media (max-width: 900px) { .bd-sidebar { position: static; } }

/* ── Pagination ── */
.bd-pagination {
    margin-top: var(--bd-space-2xl);
    text-align: center;
}
.bd-pagination .nav-links {
    display: inline-flex;
    gap: var(--bd-space-xs);
    flex-wrap: wrap;
}
.bd-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 var(--bd-space-md);
    border: var(--bd-border-w) solid var(--bd-border);
    font-size: var(--bd-text-sm);
    font-weight: 700;
    text-decoration: none;
    color: var(--bd-text);
    background: var(--bd-surface);
    transition: all var(--bd-transition);
}
.bd-pagination .page-numbers:hover {
    box-shadow: var(--bd-shadow-sm);
    transform: translate(-2px, -2px);
}
.bd-pagination .page-numbers.current {
    background: var(--bd-dark);
    color: var(--bd-surface);
    border-color: var(--bd-dark);
}

/* ── Search Form ── */
.bd-search-form {
    display: flex;
    gap: 0;
}
.bd-search-form label { flex: 1; }
.bd-search-form input[type="search"] {
    width: 100%;
    padding: 12px 16px;
    border: var(--bd-border-w) solid var(--bd-border);
    border-right: none;
    font-family: var(--bd-font);
    font-size: var(--bd-text-base);
    background: var(--bd-surface);
    color: var(--bd-text);
}
.bd-search-form input[type="search"]:focus { outline: none; }
.bd-search-form input[type="submit"] {
    padding: 12px 24px;
    background: var(--bd-dark);
    color: var(--bd-surface);
    border: var(--bd-border-w) solid var(--bd-border);
    font-weight: 700;
    font-size: var(--bd-text-sm);
    cursor: pointer;
    transition: background var(--bd-transition);
}
.bd-search-form input[type="submit"]:hover { background: var(--bd-dark-2); }
[data-theme="dark"] .bd-search-form input[type="submit"] {
    background: var(--bd-primary);
    color: var(--bd-text-on-primary);
    border-color: var(--bd-primary);
}
[data-theme="dark"] .bd-search-form input[type="submit"]:hover {
    background: var(--bd-primary-dark);
    border-color: var(--bd-primary-dark);
}

/* ── 404 Page — Brutalist ── */
.bd-error-404 {
    text-align: center;
    padding: var(--bd-space-4xl) var(--bd-space-lg);
    min-height: 70vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.bd-error-404::before {
    content: '404';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(20rem, 50vw, 40rem);
    font-weight: 900;
    color: var(--bd-surface-3);
    line-height: 1;
    letter-spacing: -0.06em;
    pointer-events: none;
    z-index: 0;
    user-select: none;
}
.bd-error-404 > * { position: relative; z-index: 1; }
.bd-error-code {
    font-size: clamp(6rem, 15vw, 10rem);
    font-weight: 900;
    color: var(--bd-primary);
    line-height: 1;
    margin-bottom: var(--bd-space-sm);
    letter-spacing: -0.05em;
    text-shadow: 4px 4px 0 var(--bd-dark), 8px 8px 0 rgba(249, 115, 22, 0.15);
    position: relative;
}
.bd-error-code::after {
    content: '⚠';
    position: absolute;
    top: -10px;
    right: -40px;
    font-size: var(--bd-text-2xl);
    color: var(--bd-primary);
    animation: bdErrorBounce 1.5s ease-in-out infinite;
}
@keyframes bdErrorBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
.bd-error-title {
    font-size: var(--bd-text-3xl);
    margin-bottom: var(--bd-space-md);
    color: var(--bd-text);
}
.bd-error-message {
    font-size: var(--bd-text-lg);
    color: var(--bd-text-soft);
    max-width: 500px;
    margin-bottom: var(--bd-space-xl);
    line-height: 1.7;
}
.bd-error-404 .bd-search-form {
    max-width: 500px;
    width: 100%;
    margin: 0 auto var(--bd-space-lg);
    display: flex;
    gap: 0;
    align-items: stretch;
}
.bd-error-404 .bd-search-form label { flex: 1; display: flex; margin: 0; }
.bd-error-404 .bd-search-form input[type="search"],
.bd-error-404 .bd-search-form .bd-search-field {
    flex: 1;
    width: 100%;
    padding: var(--bd-space-sm) var(--bd-space-md);
    font-family: var(--bd-font);
    font-size: var(--bd-text-base);
    background: var(--bd-surface);
    border: var(--bd-border-w) solid var(--bd-border);
    border-right: none;
    color: var(--bd-text);
    outline: none;
    min-height: 50px;
}
.bd-error-404 .bd-search-form input[type="search"]:focus,
.bd-error-404 .bd-search-form .bd-search-field:focus {
    border-color: var(--bd-primary);
    box-shadow: 0 0 0 3px var(--bd-primary-subtle);
}
.bd-error-404 .bd-search-form input[type="submit"],
.bd-error-404 .bd-search-form .bd-search-submit {
    padding: var(--bd-space-sm) var(--bd-space-lg);
    font-family: var(--bd-font);
    font-weight: 700;
    font-size: var(--bd-text-sm);
    background: var(--bd-dark);
    color: var(--bd-surface);
    border: var(--bd-border-w) solid var(--bd-dark);
    cursor: pointer;
    min-height: 50px;
    transition: all var(--bd-transition);
    white-space: nowrap;
}
.bd-error-404 .bd-search-form input[type="submit"]:hover,
.bd-error-404 .bd-search-form .bd-search-submit:hover {
    background: var(--bd-primary);
    border-color: var(--bd-primary);
    box-shadow: var(--bd-shadow-sm);
}
.bd-error-back {
    display: inline-flex;
    align-items: center;
    gap: var(--bd-space-sm);
    padding: var(--bd-space-md) var(--bd-space-xl);
    background: var(--bd-surface);
    color: var(--bd-text);
    font-weight: 700;
    font-size: var(--bd-text-base);
    text-decoration: none;
    border: var(--bd-border-w) solid var(--bd-border);
    box-shadow: var(--bd-shadow-sm);
    transition: all var(--bd-transition);
    margin-top: var(--bd-space-sm);
}
.bd-error-back:hover {
    background: var(--bd-primary);
    border-color: var(--bd-primary);
    color: var(--bd-surface);
    box-shadow: var(--bd-shadow-md);
    transform: translate(-3px, -3px);
}

/* 404 Dark Mode */
[data-theme="dark"] .bd-error-404::before { color: rgba(255,255,255,0.02); }
[data-theme="dark"] .bd-error-code {
    text-shadow: 4px 4px 0 var(--bd-primary), 8px 8px 0 rgba(249, 115, 22, 0.25);
}
[data-theme="dark"] .bd-error-404 .bd-search-form input[type="search"],
[data-theme="dark"] .bd-error-404 .bd-search-form .bd-search-field {
    background: var(--bd-surface-2);
    border-color: var(--bd-border);
    color: var(--bd-text);
}
[data-theme="dark"] .bd-error-404 .bd-search-form input[type="search"]:focus,
[data-theme="dark"] .bd-error-404 .bd-search-form .bd-search-field:focus {
    border-color: var(--bd-primary);
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.2);
}
[data-theme="dark"] .bd-error-back {
    background: var(--bd-surface-2);
    border-color: var(--bd-border);
    color: var(--bd-text-soft);
}
[data-theme="dark"] .bd-error-back:hover {
    background: var(--bd-primary);
    border-color: var(--bd-primary);
    color: var(--bd-dark);
}

@media (max-width: 600px) {
    .bd-error-code { font-size: clamp(4rem, 20vw, 6rem); }
    .bd-error-code::after { right: -30px; font-size: var(--bd-text-lg); }
    .bd-error-title { font-size: var(--bd-text-2xl); }
    .bd-error-404 .bd-search-form { flex-direction: column; gap: var(--bd-space-sm); }
    .bd-error-404 .bd-search-form input[type="search"],
    .bd-error-404 .bd-search-form .bd-search-field { border-right: var(--bd-border-w) solid var(--bd-border); }
    .bd-error-404 .bd-search-form label { width: 100%; }
    .bd-error-404 { padding: var(--bd-space-2xl) var(--bd-space-md); min-height: 60vh; }
}

/* ── Archive / Search Header ── */
.bd-archive-header {
    margin-bottom: var(--bd-space-2xl);
    padding-bottom: var(--bd-space-lg);
    border-bottom: var(--bd-border-w-thick) solid var(--bd-primary);
}
.bd-archive-title {
    font-size: var(--bd-text-3xl);
    font-weight: 900;
}
.bd-archive-title span { color: var(--bd-primary); }
.bd-archive-desc {
    color: var(--bd-text-soft);
    margin-top: var(--bd-space-sm);
}
