/*--------------------------------------------------------------
# AuthorPro Widgets & Sidebar Stylesheet
# Description: Defensive, bulletproof single-card sidebar widgets,
#              Gutenberg block resets, search forms, typography,
#              lists, media, and third-party form compatibility.
# Package: AuthorPro
--------------------------------------------------------------*/

/* =============================================================
   1. Sidebar & Top-Level Widget Card Consolidation
   ============================================================= */
.authorpro-sidebar-wrapper,
.authorpro-sidebar,
.widget-area {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* Single Top-Level Card Wrapper (Resilient & Non-Clipping) */
.authorpro-sidebar .widget,
.authorpro-sidebar .authorpro-widget,
.widget-area .widget,
.widget-area .authorpro-widget {
    background-color: var(--authorpro-color-white, #ffffff);
    border: 1px solid var(--authorpro-color-slate-200, #e2e8f0);
    border-radius: var(--authorpro-radius-lg, 0.75rem);
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: var(--authorpro-shadow-sm, 0 1px 3px 0 rgba(0, 0, 0, 0.07));
    box-sizing: border-box;
    overflow: visible; /* Crucial: Allows autocomplete, select popups, and tooltips */
    position: relative;
    width: 100%;
}

.authorpro-sidebar .widget:last-child,
.authorpro-sidebar .authorpro-widget:last-child,
.widget-area .widget:last-child,
.widget-area .authorpro-widget:last-child {
    margin-bottom: 0;
}

/* =============================================================
   2. Strip Nested Gutenberg Block Card Containers
   ============================================================= */
/* Reset block container wrappers so they don't create sub-cards */
.authorpro-sidebar .wp-block-group,
.authorpro-sidebar .wp-block-group__inner-container,
.authorpro-sidebar .wp-block-search,
.authorpro-sidebar .wp-block-latest-posts,
.authorpro-sidebar .wp-block-latest-comments,
.authorpro-sidebar .wp-block-categories,
.authorpro-sidebar .wp-block-archives,
.authorpro-sidebar .wp-block-tag-cloud,
.authorpro-sidebar .wp-block-calendar,
.authorpro-sidebar .wp-block-page-list,
.widget-area .wp-block-group,
.widget-area .wp-block-group__inner-container,
.widget-area .wp-block-search,
.widget-area .wp-block-latest-posts,
.widget-area .wp-block-latest-comments,
.widget-area .wp-block-categories,
.widget-area .wp-block-archives {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Ensure no excess margins on the last element inside any widget */
.authorpro-sidebar .widget > :last-child,
.authorpro-sidebar .authorpro-widget > :last-child,
.widget-area .widget > :last-child,
.widget-area .authorpro-widget > :last-child {
    margin-bottom: 0 !important;
}

/* =============================================================
   3. Standardize Widget Titles & Headings
   ============================================================= */
.authorpro-sidebar .widget-title,
.authorpro-sidebar .authorpro-widget-title,
.authorpro-sidebar h2.wp-block-heading,
.authorpro-sidebar h3.wp-block-heading,
.authorpro-sidebar .widget h2,
.authorpro-sidebar .widget h3,
.widget-area .widget-title,
.widget-area .authorpro-widget-title,
.widget-area h2.wp-block-heading,
.widget-area h3.wp-block-heading {
    font-family: var(--authorpro-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--authorpro-color-slate-900, #0f172a);
    margin-top: 0;
    margin-bottom: 1.25rem;
    padding-bottom: 0.625rem;
    border-bottom: 1px solid var(--authorpro-color-slate-100, #f1f5f9);
    line-height: 1.35;
    letter-spacing: -0.01em;
}

/* =============================================================
   4. Search Widget & Search Block (Resilient & Visible)
   ============================================================= */
/* Ensure search form wrapper is always visible and flexed */
.authorpro-sidebar .wp-block-search,
.authorpro-sidebar .widget_search,
.authorpro-sidebar .widget_search form,
.authorpro-sidebar .search-form,
.widget-area .wp-block-search,
.widget-area .widget_search,
.widget-area .search-form {
    display: block !important;
    width: 100% !important;
    visibility: visible !important;
    opacity: 1 !important;
    box-sizing: border-box;
}

.wp-block-search .wp-block-search__label {
    font-family: var(--authorpro-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--authorpro-color-slate-900, #0f172a);
    margin-top: 0;
    margin-bottom: 1.25rem;
    padding-bottom: 0.625rem;
    border-bottom: 1px solid var(--authorpro-color-slate-100, #f1f5f9);
    display: block;
    line-height: 1.35;
}

.authorpro-sidebar .wp-block-search__inside-wrapper,
.widget-area .wp-block-search__inside-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0.5rem !important;
    box-sizing: border-box;
}

.authorpro-sidebar .search-form,
.widget-area .search-form {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0.5rem !important;
    width: 100% !important;
    box-sizing: border-box;
}

.authorpro-sidebar .search-form label,
.widget-area .search-form label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-bottom: 0 !important;
    display: block !important;
}

.authorpro-sidebar .wp-block-search__input,
.authorpro-sidebar .search-form input[type="search"],
.authorpro-sidebar .search-form input[type="text"],
.widget-area .wp-block-search__input,
.widget-area .search-form input[type="search"],
.widget-area .search-form input[type="text"] {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 2.75rem !important;
    padding: 0.5rem 0.875rem !important;
    background-color: var(--authorpro-color-slate-50, #f8fafc) !important;
    border: 1px solid var(--authorpro-color-slate-200, #e2e8f0) !important;
    border-radius: var(--authorpro-radius-md, 0.375rem) !important;
    color: var(--authorpro-color-slate-900, #0f172a) !important;
    font-size: 0.875rem !important;
    line-height: normal !important;
    box-sizing: border-box !important;
    outline: none !important;
    transition: border-color var(--authorpro-transition-fast), box-shadow var(--authorpro-transition-fast), background-color var(--authorpro-transition-fast);
}

.authorpro-sidebar .wp-block-search__input:focus,
.authorpro-sidebar .search-form input[type="search"]:focus,
.authorpro-sidebar .search-form input[type="text"]:focus,
.widget-area .wp-block-search__input:focus,
.widget-area .search-form input[type="search"]:focus,
.widget-area .search-form input[type="text"]:focus {
    border-color: var(--authorpro-color-brand-600) !important;
    box-shadow: 0 0 0 2px rgba(234, 88, 12, 0.2) !important;
    background-color: var(--authorpro-color-white, #ffffff) !important;
}

.authorpro-sidebar .wp-block-search__button,
.authorpro-sidebar .search-form input[type="submit"],
.authorpro-sidebar .search-form button[type="submit"],
.widget-area .wp-block-search__button,
.widget-area .search-form input[type="submit"],
.widget-area .search-form button[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    height: 2.75rem !important;
    padding: 0 1.25rem !important;
    background-color: var(--authorpro-color-brand-600) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: var(--authorpro-radius-md, 0.375rem) !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    margin: 0 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    transition: background-color var(--authorpro-transition-fast), transform var(--authorpro-transition-fast);
}

.authorpro-sidebar .wp-block-search__button:hover,
.authorpro-sidebar .search-form input[type="submit"]:hover,
.authorpro-sidebar .search-form button[type="submit"]:hover,
.widget-area .wp-block-search__button:hover,
.widget-area .search-form input[type="submit"]:hover,
.widget-area .search-form button[type="submit"]:hover {
    background-color: var(--authorpro-color-brand-700) !important;
}

/* Button with icon inside Gutenberg search */
.wp-block-search__button.has-icon {
    padding: 0 0.875rem !important;
}

.wp-block-search__button.has-icon svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: currentColor;
}

/* =============================================================
   5. Standard Widget Lists (Recent Posts, Categories, Archives)
   ============================================================= */
.authorpro-sidebar .widget ul,
.authorpro-sidebar .widget ol,
.authorpro-sidebar .wp-block-categories-list,
.authorpro-sidebar .wp-block-archives-list,
.authorpro-sidebar .wp-block-latest-posts,
.authorpro-sidebar .wp-block-latest-comments,
.authorpro-sidebar .wp-block-page-list,
.widget-area ul,
.widget-area ol {
    list-style: none !important;
    padding: 0 !important;
    padding-left: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.authorpro-sidebar .widget ul ul,
.authorpro-sidebar .widget ol ol,
.widget-area ul ul,
.widget-area ol ol {
    margin-left: 1rem !important;
    margin-top: 0.5rem !important;
    gap: 0.5rem;
}

.authorpro-sidebar .widget li,
.widget-area li {
    font-size: 0.875rem;
    color: var(--authorpro-color-slate-600, #475569);
    line-height: 1.5;
    padding-bottom: 0.625rem;
    border-bottom: 1px solid var(--authorpro-color-slate-100, #f1f5f9);
}

.authorpro-sidebar .widget li:last-child,
.widget-area li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.authorpro-sidebar .widget li a,
.widget-area li a {
    color: var(--authorpro-color-slate-700, #334155);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--authorpro-transition-fast);
}

.authorpro-sidebar .widget li a:hover,
.widget-area li a:hover {
    color: var(--authorpro-color-brand-600);
}

/* Post Count Badges */
.widget .post-count,
.widget .count,
.wp-block-categories-list span,
.wp-block-archives-list span {
    font-size: 0.75rem;
    color: var(--authorpro-color-slate-400, #94a3b8);
    margin-left: 0.35rem;
    font-weight: 400;
}

/* Post Date & Meta in Recent Posts & Comments */
.wp-block-latest-posts__post-date,
.wp-block-latest-comments__comment-date,
.widget_recent_entries .post-date {
    display: block;
    font-size: 0.75rem;
    color: var(--authorpro-color-slate-400, #94a3b8);
    margin-top: 0.25rem;
}

.wp-block-latest-comments__comment-author,
.wp-block-latest-comments__comment-link {
    font-weight: 600;
    color: var(--authorpro-color-slate-800, #1e293b);
}

.wp-block-latest-comments__comment-excerpt p {
    font-size: 0.8125rem;
    color: var(--authorpro-color-slate-500, #64748b);
    margin: 0.25rem 0 0 0;
}

/* =============================================================
   6. Tag Cloud Widget
   ============================================================= */
.widget_tag_cloud .tagcloud,
.wp-block-tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.widget_tag_cloud .tagcloud a,
.wp-block-tag-cloud a {
    font-size: 0.75rem !important;
    padding: 0.25rem 0.625rem;
    background-color: var(--authorpro-color-slate-100, #f1f5f9);
    color: var(--authorpro-color-slate-600, #475569);
    border-radius: var(--authorpro-radius-md, 0.375rem);
    border: 1px solid transparent;
    text-decoration: none;
    font-weight: 500;
    transition: all var(--authorpro-transition-fast);
}

.widget_tag_cloud .tagcloud a:hover,
.wp-block-tag-cloud a:hover {
    background-color: var(--authorpro-color-brand-50, #eff6ff);
    color: var(--authorpro-color-brand-600);
    border-color: var(--authorpro-color-brand-100, #dbeafe);
}

/* =============================================================
   7. Calendar & Table Widgets
   ============================================================= */
.widget_calendar table,
.wp-block-calendar table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.widget_calendar th,
.wp-block-calendar th {
    background-color: var(--authorpro-color-slate-50, #f8fafc);
    color: var(--authorpro-color-slate-700, #334155);
    font-weight: 600;
    padding: 0.5rem;
    text-align: center;
}

.widget_calendar td,
.wp-block-calendar td {
    padding: 0.5rem;
    text-align: center;
    border: 1px solid var(--authorpro-color-slate-100, #f1f5f9);
}

.widget_calendar td a,
.wp-block-calendar td a {
    color: var(--authorpro-color-brand-600);
    font-weight: 700;
}

/* =============================================================
   8. Defensive Foundations for Arbitrary Sidebar Content
   ============================================================= */
/* Responsive Media (Images, Videos, Embeds, Iframes) */
.authorpro-sidebar img,
.authorpro-sidebar iframe,
.authorpro-sidebar video,
.authorpro-sidebar audio,
.authorpro-sidebar embed,
.authorpro-sidebar object,
.widget-area img,
.widget-area iframe,
.widget-area video {
    max-width: 100%;
    height: auto;
    border-radius: var(--authorpro-radius-md, 0.375rem);
    box-sizing: border-box;
}

/* Form Controls (Contact Form 7, Mailchimp, Gravity Forms, WooCommerce) */
.authorpro-sidebar select,
.authorpro-sidebar textarea,
.authorpro-sidebar input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.widget-area select,
.widget-area textarea,
.widget-area input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]) {
    width: 100%;
    padding: 0.625rem 0.875rem;
    background-color: var(--authorpro-color-slate-50, #f8fafc);
    border: 1px solid var(--authorpro-color-slate-200, #e2e8f0);
    border-radius: var(--authorpro-radius-md, 0.375rem);
    color: var(--authorpro-color-slate-900, #0f172a);
    font-size: 0.875rem;
    box-sizing: border-box;
    outline: none;
    transition: border-color var(--authorpro-transition-fast), box-shadow var(--authorpro-transition-fast);
}

.authorpro-sidebar select:focus,
.authorpro-sidebar textarea:focus,
.authorpro-sidebar input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):focus,
.widget-area select:focus,
.widget-area textarea:focus,
.widget-area input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):focus {
    border-color: var(--authorpro-color-brand-600);
    box-shadow: 0 0 0 2px rgba(234, 88, 12, 0.2);
    background-color: var(--authorpro-color-white, #ffffff);
}

/* Generic Paragraphs & Text */
.authorpro-sidebar p,
.widget-area p {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--authorpro-color-slate-600, #475569);
    margin-top: 0;
    margin-bottom: 0.75rem;
}

.authorpro-sidebar p:last-child,
.widget-area p:last-child {
    margin-bottom: 0;
}

/* Blockquotes inside sidebar */
.authorpro-sidebar blockquote,
.widget-area blockquote {
    margin: 1rem 0;
    padding-left: 0.875rem;
    border-left: 3px solid var(--authorpro-color-brand-600);
    color: var(--authorpro-color-slate-700, #334155);
    font-style: italic;
    font-size: 0.875rem;
}
