/* Extracted from templates/base.html inline <style> blocks (2026-09-13)
   Block 1: navbar search form effects; Block 2: punishment header + analytics consent dialog. */

/* ---- navbar search ---- */
.navbar-search-form .form-control,
.navbar-search-form .input-group-text,
.navbar-search-form .btn {
    transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.navbar-search-form:focus-within .input-group-text,
.navbar-search-form:focus-within .form-control {
    border-color: #0d6efd;
    box-shadow: 0 0 0 .15rem rgba(13, 110, 253, .25);
}
.navbar-search-form.is-searching .form-control {
    background-image: linear-gradient(90deg, transparent 0%, rgba(13,110,253,.18) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: navbar-search-shimmer 1.2s linear infinite;
}
.navbar-search-form.is-searching .btn .navbar-search-label,
.navbar-search-form.is-searching .btn i {
    display: none;
}
.navbar-search-form.is-searching .btn .navbar-search-spinner {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.navbar-search-form .navbar-search-spinner {
    display: none;
}
.navbar-search-form .navbar-search-spinner::before {
    content: "";
    width: .85rem;
    height: .85rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: navbar-search-spin .8s linear infinite;
    display: inline-block;
}
@keyframes navbar-search-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@keyframes navbar-search-spin {
    to { transform: rotate(360deg); }
}

/* ---- punishment banner header + analytics consent dialog ---- */
.guwu-punishment-header {
    background: linear-gradient(135deg, #ff8a65 0%, #ff7043 50%, #f4511e 100%);
    box-shadow: inset 0 -3px 0 rgba(0,0,0,.08);
}
.guwu-punishment-header.kind-permanent_ban {
    background: linear-gradient(135deg, #7a0d0d 0%, #b71c1c 100%);
}
.guwu-punishment-header.kind-temporary_ban {
    background: linear-gradient(135deg, #ef6c00 0%, #d84315 100%);
}
.guwu-punishment-header.kind-feature_ban {
    background: linear-gradient(135deg, #1565c0 0%, #0277bd 100%);
}
.guwu-punishment-features li {
    border: 0;
    padding: .35rem .6rem;
    color: #5c2c91;
    background: #f5f0ff;
    margin-bottom: .35rem;
    border-radius: .5rem;
}
.oj-analytics-consent {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(8, 20, 38, .72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.oj-analytics-consent.d-none { display: none !important; }
.oj-analytics-consent__dialog {
    width: min(100%, 32rem);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 1.25rem;
    background: linear-gradient(145deg, #fff 0%, #f4f8ff 100%);
    box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, .35);
    animation: oj-analytics-pop .22s ease-out;
}
.oj-analytics-consent__header {
    padding: 1.5rem 1.5rem 1.25rem;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #06b6d4);
}
.oj-analytics-consent__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: .9rem;
    place-items: center;
    border-radius: 1rem;
    color: #1d4ed8;
    background: #fff;
    font-size: 1.45rem;
}
.oj-analytics-consent__header h2 { margin: 0; font-size: 1.35rem; }
.oj-analytics-consent__body { padding: 1.4rem 1.5rem 1.5rem; color: #334155; }
.oj-analytics-consent__body p { margin-bottom: 1rem; line-height: 1.65; }
.oj-analytics-consent__note { margin-bottom: 1.25rem; padding: .75rem .9rem; border-radius: .75rem; color: #475569; background: #eaf2ff; font-size: .88rem; }
.oj-analytics-consent__actions { display: flex; gap: .65rem; justify-content: flex-end; flex-wrap: wrap; }
.oj-analytics-consent__actions button { min-width: 6.5rem; }
@keyframes oj-analytics-pop { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 480px) { .oj-analytics-consent__actions { flex-direction: column-reverse; } .oj-analytics-consent__actions button { width: 100%; } }
