/**
 * Spiderpiggy Holiday Themes: inherited-template and Lucid coverage audit.
 * Copyright (c) 2026 Spiderpiggy. GPL-2.0-only.
 * All rules require an active holiday. Colour layer only: no new geometry,
 * content, display/overflow rules, animation settings or template overrides.
 * Errors, moderation status colours, member colours and OAuth provider branding
 * deliberately retain their existing meaning. Print view is left unthemed.
 */
/* Modern Lucid navigation: palette variables, no changes to overflow or layout. */
html[data-sp-holiday] body#phpbb #page-header > .navbar {
    --sp-nav-accent: var(--sp-holiday-accent);
    --sp-nav-gold: var(--sp-holiday-bright);
    --sp-nav-line: var(--sp-holiday-edge);
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-main > li:not(.sp-auth-action):not(.rightside) > a {
    background: linear-gradient(180deg, var(--sp-holiday-soft), var(--sp-holiday-panel)) !important;
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-main > li:not(.sp-auth-action):not(.rightside) > a:hover,
html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-main > li:not(.sp-auth-action):not(.rightside) > a:focus-visible {
    background: var(--sp-holiday-soft) !important;
    border-color: var(--sp-holiday-edge) !important;
}

/* Standalone headings receive only text colour, not rectangular title backgrounds. */
html[data-sp-holiday] body#phpbb .sp-search-title,
html[data-sp-holiday] body#phpbb .searchresults-title,
html[data-sp-holiday] body#phpbb .posting-title,
html[data-sp-holiday] body#phpbb .login-title,
html[data-sp-holiday] body#phpbb .message-title,
html[data-sp-holiday] body#phpbb #cp-main > h2,
html[data-sp-holiday] body#phpbb .sp-viewonline-heading h2 {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .sp-search-title .icon,
html[data-sp-holiday] body#phpbb .sp-cp-title-icon {
    color: var(--sp-holiday-bright) !important;
}

/* Search, editor and control-panel surfaces missed by generic .panel rules. */
html[data-sp-holiday] body#phpbb .sp-search-history,
html[data-sp-holiday] body#phpbb .sp-search-topics,
html[data-sp-holiday] body#phpbb .sp-cp-table-scroll,
html[data-sp-holiday] body#phpbb #cp-menu .cp-mini,
html[data-sp-holiday] body#phpbb #cp-main fieldset.submit-buttons,
html[data-sp-holiday] body#phpbb #smiley-box {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb .sp-search-fields > dl,
html[data-sp-holiday] body#phpbb .sp-cp-fields > dl,
html[data-sp-holiday] body#phpbb #file-list,
html[data-sp-holiday] body#phpbb #review,
html[data-sp-holiday] body#phpbb #cp-main fieldset.display-options,
html[data-sp-holiday] body#phpbb #cp-main fieldset.display-actions,
html[data-sp-holiday] body#phpbb #cp-main dl.details > dt,
html[data-sp-holiday] body#phpbb #cp-main dl.details > dd {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #review,
html[data-sp-holiday] body#phpbb #cp-menu dl.mini dt {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb #cp-main .panel > .inner > h3,
html[data-sp-holiday] body#phpbb .sp-search-card > .inner > h3,
html[data-sp-holiday] body#phpbb .sp-posting-card > .inner > h3 {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

/* phpBB uses a class for the selected subsection, not an ID. */
html[data-sp-holiday] body#phpbb #navigation .active-subsection a {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.topiclist > li.header {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.topiclist > li.header dt,
html[data-sp-holiday] body#phpbb #cp-main ul.topiclist > li.header dd {
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.cplist {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.cplist > li.row:not(.reported):not(.deleted):not(.unapproved) {
    background-color: var(--sp-holiday-panel) !important;
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.cplist > li.row:not(.reported):not(.deleted):not(.unapproved):hover {
    background-color: var(--sp-holiday-soft) !important;
}

html[data-sp-holiday] body#phpbb #cp-main ul.cplist > li.row.bg3:not(.reported):not(.deleted):not(.unapproved) {
    background-color: var(--sp-holiday-bg) !important;
}

html[data-sp-holiday] body#phpbb #cp-main dl.details > dt {
    background: var(--sp-holiday-soft) !important;
}

html[data-sp-holiday] body#phpbb #tabs .activetab > a,
html[data-sp-holiday] body#phpbb .minitabs .activetab > a {
    box-shadow: inset 0 -1px 0 var(--sp-holiday-accent) !important;
}

html[data-sp-holiday] body#phpbb #tabs .responsive-tab-link::before,
html[data-sp-holiday] body#phpbb .minitabs .responsive-tab-link::before {
    border-color: var(--sp-holiday-edge) !important;
}

/* Core inherited forms: preserve disabled and readonly states, dimensions and input text. */
html[data-sp-holiday] body#phpbb .inputbox2:not(:disabled),
html[data-sp-holiday] body#phpbb input[type="number"]:not(:disabled) {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb .inputbox2:not(:disabled):focus,
html[data-sp-holiday] body#phpbb input[type="number"]:not(:disabled):focus {
    border-color: var(--sp-holiday-accent) !important;
    box-shadow: 0 0 0 2px var(--sp-holiday-soft) !important;
}

html[data-sp-holiday] body#phpbb input[type="checkbox"],
html[data-sp-holiday] body#phpbb input[type="radio"] {
    accent-color: var(--sp-holiday-accent);
}

/* New Lucid post-header wrapper replaces the old direct .postbody > h3 layout. */
html[data-sp-holiday] body#phpbb .post:not(.reported):not(.deleted):not(.unapproved) .lucid-post-header > h3 {
    border-color: var(--sp-holiday-edge) !important;
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .post:not(.reported):not(.deleted):not(.unapproved) .lucid-post-header > h3 > a {
    color: var(--sp-holiday-bright) !important;
}

/* Poll results keep their inline percentage widths. */
html[data-sp-holiday] body#phpbb .polls .pollbar1,
html[data-sp-holiday] body#phpbb .polls .pollbar2,
html[data-sp-holiday] body#phpbb .polls .pollbar3,
html[data-sp-holiday] body#phpbb .polls .pollbar4,
html[data-sp-holiday] body#phpbb .polls .pollbar5 {
    background: linear-gradient(90deg, var(--sp-holiday-header), var(--sp-holiday-accent)) !important;
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb blockquote,
html[data-sp-holiday] body#phpbb .codebox,
html[data-sp-holiday] body#phpbb .attachbox,
html[data-sp-holiday] body#phpbb .signature {
    border-color: var(--sp-holiday-edge) !important;
}

/* Member/team lists and online overview; never select username/group-colour elements. */
html[data-sp-holiday] body#phpbb .sp-memberlist-tools,
html[data-sp-holiday] body#phpbb .sp-memberlist-pagination,
html[data-sp-holiday] body#phpbb .sp-viewonline-card,
html[data-sp-holiday] body#phpbb .sp-viewonline-legend {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-letters a,
html[data-sp-holiday] body#phpbb .sp-memberlist-search-link a,
html[data-sp-holiday] body#phpbb .sp-profile-actions a,
html[data-sp-holiday] body#phpbb .sp-profile-zebra a,
html[data-sp-holiday] body#phpbb .advanced-search-link a {
    background: var(--sp-holiday-soft) !important;
    border-color: var(--sp-holiday-edge) !important;
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-table thead th a,
html[data-sp-holiday] body#phpbb .sp-viewonline-table thead th a,
html[data-sp-holiday] body#phpbb table.table1 thead th a {
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb .sp-viewonline-table thead th {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-table tbody tr,
html[data-sp-holiday] body#phpbb .sp-memberlist-table tbody tr:nth-child(even),
html[data-sp-holiday] body#phpbb .sp-viewonline-table tbody tr {
    background: var(--sp-holiday-panel) !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-table tbody tr:hover,
html[data-sp-holiday] body#phpbb .sp-viewonline-table tbody tr:hover {
    background: var(--sp-holiday-soft) !important;
    box-shadow: inset 3px 0 0 var(--sp-holiday-accent) !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-table tbody tr + tr td,
html[data-sp-holiday] body#phpbb .sp-viewonline-table tbody tr + tr td {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb .sp-memberlist-table td.info a,
html[data-sp-holiday] body#phpbb .sp-viewonline-whois {
    color: var(--sp-holiday-bright) !important;
}

/* FAQ has custom containers rather than core .panel wrappers. */
html[data-sp-holiday] body#phpbb .sp-faq-hero,
html[data-sp-holiday] body#phpbb #faqlinks.sp-faq-index,
html[data-sp-holiday] body#phpbb .sp-faq-section {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb .sp-faq-index .faq,
html[data-sp-holiday] body#phpbb .sp-faq-item {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb .sp-faq-section-title {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb .sp-faq-hero h2,
html[data-sp-holiday] body#phpbb .sp-faq-index .faq dt,
html[data-sp-holiday] body#phpbb .sp-faq-index .faq a,
html[data-sp-holiday] body#phpbb .sp-faq-item dt,
html[data-sp-holiday] body#phpbb .sp-faq-top a {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .sp-faq-top a,
html[data-sp-holiday] body#phpbb .sp-faq-jumpbox {
    border-color: var(--sp-holiday-edge) !important;
}

/* Inherited simple_header.html now loads the extension; map member-picker variables locally. */
html[data-sp-holiday] body#phpbb .sp-member-popup {
    --sp-popup-line: var(--sp-holiday-edge);
    --sp-popup-line-soft: var(--sp-holiday-soft);
    --sp-popup-accent: var(--sp-holiday-bright);
}

html[data-sp-holiday] body#phpbb .sp-popup-search,
html[data-sp-holiday] body#phpbb .sp-popup-results,
html[data-sp-holiday] body#phpbb .sp-popup-member,
html[data-sp-holiday] body#phpbb .sp-popup-sort-results {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb .sp-popup-results-heading {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(105deg, var(--sp-holiday-header), var(--sp-holiday-bg)) !important;
    color: #fff7e9 !important;
}

html[data-sp-holiday] body#phpbb .sp-popup-search-heading h1,
html[data-sp-holiday] body#phpbb .sp-popup-results-heading h2,
html[data-sp-holiday] body#phpbb .sp-popup-bulk-links a,
html[data-sp-holiday] body#phpbb .sp-popup-choose {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .sp-popup-choose,
html[data-sp-holiday] body#phpbb .sp-popup-advanced,
html[data-sp-holiday] body#phpbb .sp-popup-help p {
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb .sp-popup-member:hover,
html[data-sp-holiday] body#phpbb .sp-popup-choose:hover {
    background: var(--sp-holiday-soft) !important;
    border-color: var(--sp-holiday-edge) !important;
}

/* Core AJAX confirmations use the parent document CSS; no display/position/z-index changes. */
html[data-sp-holiday] body#phpbb .phpbb_alert {
    border-color: var(--sp-holiday-edge) !important;
    background: linear-gradient(125deg, var(--sp-holiday-panel), #1b1f27) !important;
}

html[data-sp-holiday] body#phpbb .phpbb_alert h3.alert_title,
html[data-sp-holiday] body#phpbb .phpbb_confirm .alert_text > form > h3 {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .dropdown .pointer-inner {
    border-bottom-color: var(--sp-holiday-panel) !important;
}

html[data-sp-holiday] body#phpbb .dropdown .dropdown-contents {
    background-color: var(--sp-holiday-panel) !important;
}

/* Cookie banner keeps its existing consent behaviour and readable neutral text. */
html[data-sp-holiday] body#phpbb .cc-window.cc-banner {
    background: var(--sp-holiday-panel) !important;
    border-top-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb .cc-window .cc-link {
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb .cc-window .cc-btn {
    background: var(--sp-holiday-bg) !important;
    border-color: var(--sp-holiday-edge) !important;
    color: var(--sp-holiday-bright) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #username_logged_in .header-avatar,
html[data-sp-holiday] body#phpbb #page-header > .navbar .sp-user-messages .sp-user-message-item > a,
html[data-sp-holiday] body#phpbb #page-header > .navbar .sp-user-messages > a.sp-user-message-item,
html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-breadcrumbs .breadcrumbs .crumb > a {
    background: linear-gradient(180deg, var(--sp-holiday-soft), var(--sp-holiday-panel)) !important;
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #username_logged_in .header-avatar:hover,
html[data-sp-holiday] body#phpbb #page-header > .navbar .sp-user-messages .sp-user-message-item > a:hover,
html[data-sp-holiday] body#phpbb #page-header > .navbar .sp-user-messages > a.sp-user-message-item:hover,
html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-breadcrumbs .breadcrumbs .crumb > a:hover {
    background: var(--sp-holiday-soft) !important;
    border-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-breadcrumbs {
    border-top-color: var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-main a:focus-visible,
html[data-sp-holiday] body#phpbb #page-header > .navbar #nav-breadcrumbs a:focus-visible,
html[data-sp-holiday] body#phpbb #cp-main a:focus-visible,
html[data-sp-holiday] body#phpbb .sp-member-popup :focus-visible {
    outline-color: var(--sp-holiday-accent) !important;
}

html[data-sp-holiday] body#phpbb .sp-faq-hero h2,
html[data-sp-holiday] body#phpbb .sp-faq-section-title,
html[data-sp-holiday] body#phpbb .sp-profile-header h2,
html[data-sp-holiday] body#phpbb .sp-memberlist-heading h2 {
    text-shadow: 0 0 12px var(--sp-holiday-soft);
}

/* ============================================================
 * Holiday Themes - unread forum rows (index) and topic rows
 * (viewforum). Colour only; phpBB unread state remains unchanged.
 * Uses the active theme palette, including Easter.
 * ============================================================ */

/* Index: accent stripe and tint only for forums containing unread posts. */
html[data-sp-holiday] body#phpbb ul.topiclist.forums > li.row:has(
    > dl.row-item:is(.forum_unread, .forum_unread_locked, .forum_unread_subforum)
) {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--sp-holiday-accent) 21%, var(--sp-holiday-panel)),
        color-mix(in srgb, var(--sp-holiday-accent) 6%, var(--sp-holiday-panel))
    ) !important;
    box-shadow: inset 4px 0 0 var(--sp-holiday-accent),
                inset 0 1px 0 var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb ul.topiclist.forums > li.row:has(
    > dl.row-item:is(.forum_unread, .forum_unread_locked, .forum_unread_subforum)
):hover {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--sp-holiday-accent) 29%, var(--sp-holiday-panel)),
        color-mix(in srgb, var(--sp-holiday-accent) 9%, var(--sp-holiday-panel))
    ) !important;
}

/* The existing small unread dot also follows the holiday palette. */
html[data-sp-holiday] body#phpbb dl:is(
    .forum_unread, .forum_unread_locked, .forum_unread_subforum
) a.forumtitle::after {
    background: var(--sp-holiday-bright) !important;
    box-shadow: 0 0 0 3px var(--sp-holiday-soft),
                0 0 12px var(--sp-holiday-accent) !important;
}

/* Viewforum: the status class is on the dl, not on the li.
 * _unread also matches sticky, announcements, locked and own topics.
 * Preserve exceptional moderation and announcement/sticky row colours.
 */
html[data-sp-holiday] body#phpbb ul.topiclist.topics > li.row:not(
    .reported, .deleted, .unapproved, .sticky, .announce, .global-announce
):has(> dl.row-item[class*="_unread"]) {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--sp-holiday-accent) 21%, var(--sp-holiday-panel)),
        color-mix(in srgb, var(--sp-holiday-accent) 6%, var(--sp-holiday-panel))
    ) !important;
    box-shadow: inset 4px 0 0 var(--sp-holiday-accent),
                inset 0 1px 0 var(--sp-holiday-edge) !important;
}

html[data-sp-holiday] body#phpbb ul.topiclist.topics > li.row:not(
    .reported, .deleted, .unapproved, .sticky, .announce, .global-announce
):has(> dl.row-item[class*="_unread"]):hover {
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--sp-holiday-accent) 29%, var(--sp-holiday-panel)),
        color-mix(in srgb, var(--sp-holiday-accent) 9%, var(--sp-holiday-panel))
    ) !important;
}

/* Unread titles stand out, even when the row has a special status. */
html[data-sp-holiday] body#phpbb ul.topiclist.topics > li.row:not(
    .reported, .deleted, .unapproved
):has(> dl.row-item[class*="_unread"]) a.topictitle {
    color: var(--sp-holiday-bright) !important;
    font-weight: 700;
    text-shadow: 0 0 11px var(--sp-holiday-accent);
}

html[data-sp-holiday] body#phpbb ul.topiclist.topics > li.row:not(
    .reported, .deleted, .unapproved
):has(> dl.row-item[class*="_unread"]) a.topictitle:hover {
    color: #ffffff !important;
}
