/* Native XenForo authentication, search and error surfaces. */
html#XF[data-summer-theme="dawn"] {
  --sf-panel: #f0e1c5;
  --sf-body: #f8eedc;
  --sf-field: #fff9ed;
  --sf-strip: #ecddc1;
  --sf-ink: #443322;
  --sf-muted: #67543f;
  --sf-link: #76431d;
  --sf-focus: #326875;
  --sf-line: #ccb995;
  --sf-input-line: #a28b66;
  --sf-button: var(--sw-submit-bg, #d0bea0);
  --sf-button-hover: var(--sw-submit-hover, #dcccad);
  --sf-button-ink: var(--sw-submit-ink, #433421);
  --sf-error-bg: #f8e7da;
  --sf-error: #813e33;
  --sf-heading: #543923;
  --sf-scenery: linear-gradient(90deg,rgba(245,230,199,.46),rgba(247,233,205,.91) 27%,rgba(247,233,205,.91) 73%,rgba(245,230,199,.46)), url("/styles/summerpw/forum/nov/header-dawn.webp");
  --sf-shadow: 0 8px 25px rgba(65,48,26,.13);
}
html#XF[data-summer-theme="twilight"] {
  --sf-panel: #283b49;
  --sf-body: #21333f;
  --sf-field: #182a36;
  --sf-strip: #2d404d;
  --sf-ink: #ebeae0;
  --sf-muted: #c2d0d2;
  --sf-link: #ebd2a3;
  --sf-focus: #90d4dd;
  --sf-line: #495e6a;
  --sf-input-line: #728a96;
  --sf-button: var(--sw-submit-bg, #3b5260);
  --sf-button-hover: var(--sw-submit-hover, #465f6d);
  --sf-button-ink: var(--sw-submit-ink, #eff1e8);
  --sf-error-bg: #3a3038;
  --sf-error: #f4b9aa;
  --sf-heading: #f4e3bc;
  --sf-scenery: linear-gradient(90deg,rgba(24,43,58,.44),rgba(27,47,62,.88) 28%,rgba(27,47,62,.88) 72%,rgba(24,43,58,.44)), url("/styles/summerpw/forum/nov/header-twilight.webp");
  --sf-shadow: 0 9px 26px rgba(5,14,20,.3);
}

html#XF[data-summer-theme]:is([data-template="login"],[data-template="register_form"],[data-template="search_form"],[data-template="search_results"],[data-template="error"]) {
  --sf-page-width: 850px;
  &[data-template="search_results"] { --sf-page-width: 1040px; }
  & .p-body-header, & .p-body-pageContent {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--sf-page-width);
    margin-inline: auto;
  }
  & .p-body-header .p-title-value {
    color: var(--sf-heading);
    overflow-wrap: anywhere;
  }
  & .p-body-pageContent .block-container, & .p-body-pageContent > .blockMessage {
    margin-inline: 0;
    border: 1px solid var(--sf-line);
    border-radius: 16px;
    background-color: var(--sf-panel);
    color: var(--sf-ink);
    box-shadow: var(--sf-shadow);
  }
}

/* Forms rendered inside dialogs have the same controls as their direct pages. */
:is(
  html#XF[data-summer-theme]:is([data-template="login"],[data-template="register_form"],[data-template="search_form"],[data-template="search_results"],[data-template="error"]) .p-body-pageContent,
  html#XF[data-summer-theme] .overlay:has(form:is([action*="login/login"],[data-xf-init~="reg-form"])),
  html#XF[data-summer-theme] .overlay[role="alertdialog"]:has(> .overlay-content > .blockMessage),
  html#XF[data-summer-theme] .menu:has(> form[data-xf-init~="quick-search"])
) {
  --summer-ui-surface: var(--sf-field);
  --summer-ui-text: var(--sf-ink);
  --summer-ui-muted: var(--sf-muted);
  --summer-ui-link: var(--sf-link);
  --summer-ui-primary: var(--sf-button);
  color: var(--sf-ink);
  & .block-body { color: var(--sf-ink); background: var(--sf-body); border-radius: 14px; }
  & .formRow:not(.formRow--limited) { border-top-color: var(--sf-line); }
  & .formRow > dt { background: transparent; border-color: transparent; color: var(--sf-ink); }
  & .formRow-label, & .inputChoices-choice label, & .iconic-label, & .formRow > dd { color: var(--sf-ink); }
  & .formRow-hint, & .formRow-explain, & .formInfoRow, & .formRow .u-muted, & .menu-row .u-muted, & .contentRow-minor { color: var(--sf-muted); }
  & a:not(.button,.tabs-tab,.overlay-titleCloser,.username,.label) { color: var(--sf-link); }
  & .input {
    color: var(--sf-ink);
    caret-color: var(--sf-ink);
    background-color: var(--sf-field);
    border: 1px solid var(--sf-input-line);
    border-radius: 7px;
    box-shadow: none;
    min-width: 0;
  }
  & .input::placeholder { color: var(--sf-muted); opacity: 1; }
  & .input:focus, & .input.is-focused { border-color: var(--sf-focus); background-color: var(--sf-field); }
  & .inputGroup-text { background-color: var(--sf-strip); border-color: var(--sf-input-line); color: var(--sf-ink); }
  & .inputGroup--joined > :not(:first-child) { border-start-start-radius: 0; border-end-start-radius: 0; }
  & .inputGroup--joined > :not(:last-child) { border-start-end-radius: 0; border-end-end-radius: 0; }
  & .formSubmitRow-bar { background: var(--sf-strip); border-top: 1px solid var(--sf-line); }
  & .formSubmitRow, & .formSubmitRow-bar { border-end-start-radius: 14px; border-end-end-radius: 14px; }
  & .block-outer { color: var(--sf-muted); }
  & .button:not(.button--link,.button--plain), & a.button:not(.button--link,.button--plain) {
    color: var(--sf-ink);
    background: var(--sf-strip);
    border: 1px solid var(--sf-input-line);
    border-radius: 8px;
    text-shadow: none;
  }
  & :is(.button.button--primary,.button.button--cta,button.button[type="submit"]):not(.button--provider,[name="from_search_menu"]) {
    background: var(--sf-button); color: var(--sf-button-ink); border-color: var(--sf-button); font-weight: 600;
  }
  & :is(.button.button--primary,.button.button--cta,button.button[type="submit"]):not(.button--provider,[name="from_search_menu"]):is(:hover,:focus-visible) {
    background: var(--sf-button-hover); color: var(--sf-button-ink); border-color: var(--sf-focus);
  }
  & .button--link, & .button--plain { color: var(--sf-link); }
  & .inputChoices .iconic input + i { color: var(--sf-link); }
  /* Real focusable checkboxes remain visible even when the forum icon font is unavailable. */
  & .inputChoices .iconic:not(.iconic--hideShow) > input:is([type="radio"],[type="checkbox"]) {
    position: absolute; inset-inline-start: 0; inset-block-start: .18em; margin: 0; width: 16px; height: 16px;
    clip: auto; clip-path: none; overflow: visible; opacity: 1; appearance: auto; accent-color: var(--sf-focus);
  }
  & .inputChoices .iconic:not(.iconic--hideShow) > input:is([type="radio"],[type="checkbox"]) + i { display: none; }
  & :is(a,button,input:not([type="hidden"]),select,textarea,[tabindex]):focus-visible,
  & .iconic > input:focus-visible + i {
    outline: 2px solid var(--sf-focus);
    outline-offset: 2px;
  }
  & .blockMessage--error, & .formRow-explain--error, & .formRow-explain.is-error, & .formRow--error .formRow-explain {
    color: var(--sf-error);
  }
}

html#XF[data-summer-theme] .overlay:is(:has(form:is([action*="login/login"],[data-xf-init~="reg-form"])),[role="alertdialog"]:has(> .overlay-content > .blockMessage)) {
  border: 1px solid var(--sf-line);
  border-radius: 16px;
  box-shadow: 0 18px 65px rgba(12,17,20,.36);
  background: var(--sf-body);
  color: var(--sf-ink);
  & .overlay-title {
    position: relative;
    margin: 0;
    padding: 14px 52px 14px 22px;
    border-radius: 15px 15px 0 0;
    background-color: var(--sf-strip);
    background-image: var(--sf-scenery);
    background-position: center;
    background-size: cover;
    color: var(--sf-heading);
    border-bottom: 1px solid var(--sf-line);
    font: 600 21px/1.25 Georgia,"Times New Roman",serif;
  }
  & .overlay-titleCloser {
    display: grid; place-items: center; float: none; position: absolute; inset: 50% 11px auto auto;
    transform: translateY(-50%); margin: 0; width: 34px; height: 34px; padding: 0;
    color: var(--sf-heading); background: var(--sf-strip); border: 1px solid var(--sf-line); border-radius: 50%; opacity: 1;
  }
  & .overlay-titleCloser:hover { color: var(--sf-ink); border-color: var(--sf-focus); }
  & .overlay-titleCloser::before, & .overlay-titleCloser::after {
    content: ""; display: block; position: absolute; left: 50%; top: 50%;
    width: 14px; height: 2px; margin: 0; border: 0; border-radius: 2px;
    background: currentColor; mask: none; opacity: 1; transform: translate(-50%,-50%) rotate(45deg);
  }
  & .overlay-titleCloser::after { transform: translate(-50%,-50%) rotate(-45deg); }
  & .overlay-content { color: var(--sf-ink); background: var(--sf-body); border-radius: 0 0 15px 15px; }
  & .block-container { border: 0; border-radius: 10px; background: var(--sf-body); }
  & .block-outer { background: var(--sf-body); }
}

html#XF[data-summer-theme] .overlay[role="alertdialog"]:has(> .overlay-content > .blockMessage) .blockMessage,
html#XF[data-summer-theme][data-template="error"] .p-body-pageContent > .blockMessage {
  background: var(--sf-error-bg); color: var(--sf-ink); border-inline-start: 4px solid var(--sf-error);
  margin: 0; padding: 17px 24px; line-height: 1.55; overflow-wrap: anywhere;
}
html#XF[data-summer-theme] .overlay[role="alertdialog"]:has(> .overlay-content > .blockMessage) .blockMessage { border-radius: 0 0 15px 15px; }

html#XF[data-summer-theme] .menu:has(> form[data-xf-init~="quick-search"]) {
  max-width: calc(100vw - 12px);
  & > .menu-content {
    background: var(--sf-body); color: var(--sf-ink);
    border: 1px solid var(--sf-line); border-radius: 13px; box-shadow: var(--sf-shadow);
  }
  & .menu-header {
    color: var(--sf-heading);
    background-color: var(--sf-strip); background-image: var(--sf-scenery); background-size: cover; background-position: center;
    border-bottom: 1px solid var(--sf-line); border-radius: 12px 12px 0 0;
    font: 600 18px/1.25 Georgia,"Times New Roman",serif;
  }
  & .menu-row { background: var(--sf-body); color: var(--sf-ink); }
  & .menu-row--close { background: var(--sf-strip); }
  & .menu-footer { color: var(--sf-ink); background: var(--sf-strip); border-color: var(--sf-line); border-radius: 0 0 12px 12px; }
}
html#XF[data-summer-theme][data-template="search_form"] .p-body-pageContent {
  & .block-tabHeader { margin: 0; color: var(--sf-muted); border-radius: 15px 15px 0 0; background: var(--sf-strip); border-bottom-color: var(--sf-line); }
  & .tabs-tab { color: var(--sf-muted); }
  & .tabs-tab:hover, & .tabs-tab.is-active { color: var(--sf-link); border-bottom-color: var(--sf-link); }
  & .tabs-tab:focus-visible { outline-offset: -3px; }
}
html#XF[data-summer-theme][data-template="search_results"] .p-body-pageContent {
  & .block-body { margin: 0; border-radius: 15px; }
  & .block-row { color: var(--sf-ink); border-color: var(--sf-line); }
  & .contentRow-title, & .searchResult-title { overflow-wrap: anywhere; }
  & .contentRow-snippet, & .searchResult-snippet { color: var(--sf-ink); }
  & .textHighlight { background: var(--sf-strip); color: var(--sf-link); }
}

@media (max-width: 650px) {
  html#XF[data-summer-theme]:is([data-template="login"],[data-template="register_form"],[data-template="search_form"]) .p-body-pageContent,
  html#XF[data-summer-theme] .overlay:has(form:is([action*="login/login"],[data-xf-init~="reg-form"])) {
    & .formRow > dt { padding: 10px 12px 2px; }
    & .formRow > dd { padding: 2px 12px 9px; }
    & .overlay-title { font-size: 19px; }
    & .inputGroup { min-width: 0; }
  }
}
/* hCaptcha's standard checkbox is a fixed 303px iframe; keep its complete interactive surface visible. */
@media (max-width: 355px) {
  html#XF[data-summer-theme] form[data-xf-init~="reg-form"] [data-xf-init~="h-captcha"] { zoom: .84; }
}
