:root {
    color-scheme: light;

    /* Layout */
    --content-width: 1440px;
    --radius: 4px;

    /* Page surfaces */
    --page-background: #eef3f6;
    --surface: #ffffff;
    --surface-muted: #f5f8fa;

    /* Main brand colours */
    --header: #07546f;
    --header-dark: #043e54;
    --header-light: #0c6f91;
    --header-border: #b7cbd5;
    --navigation-highlight: #7ed8ff;

    /* Account bar */
    --account-bar-background: #d7e1e6;
    --account-bar-border: #c3d0d6;
    --account-link-border: #c0cdd3;
    --account-link-text: #16475b;
    --account-link-hover: #edf3f6;

    /* Accent colours */
    --accent: #b5d0da;
    --accent-dark: #accbd7;
    --accent-soft: #d9f0f9;

    /* Status colours */
    --green: #60ba2b;
    --yellow: #f1c40f;
    --danger: #c44242;

    /* Text and borders */
    --text: #21333c;
    --text-muted: #687a84;
    --border: #d5e0e6;
    --border-dark: #bfd0d9;

    /* Table rows */
    --row-a: #f5f9fb;
    --row-b: #edf2f4;

    /* Footer */
    --footer-background: #073f55;
    --footer-bottom-background: #053548;
    --footer-text: #dcebf1;
    --footer-muted: #b7d0da;
    --footer-bottom-text: #9ebbc7;
}

/* ============================================================
   NIGHT MODE
============================================================ */

[data-theme="dark"] {
    color-scheme: dark;

    /* Page surfaces */
    --page-background: #121619;
    --surface: #1d2226;
    --surface-muted: #242a2f;

    /* Main brand colours */
    --header: #07546f;
    --header-dark: #043e54;
    --header-light: #0c6f91;
    --header-border: #344650;
    --navigation-highlight: #7ed8ff;

    /* Account bar */
    --account-bar-background: #1a2024;
    --account-bar-border: #303b42;
    --account-link-border: #344149;
    --account-link-text: #c6d8e0;
    --account-link-hover: #283138;

    /* Accent colours */
    --accent: #38525e;
    --accent-dark: #456673;
    --accent-soft: #183945;

    /* Status colours */
    --green: #60ba2b;
    --yellow: #f1c40f;
    --danger: #d75a5a;

    /* Text and borders */
    --text: #e6ecef;
    --text-muted: #9babb3;
    --border: #323b41;
    --border-dark: #3d4950;

    /* Table rows */
    --row-a: #1d2327;
    --row-b: #22292e;

    /* Footer */
    --footer-background: #0c242e;
    --footer-bottom-background: #081c24;
    --footer-text: #dcebf1;
    --footer-muted: #9eb8c3;
    --footer-bottom-text: #809da9;
}

[data-theme="dark"] .intro-card h1,
[data-theme="dark"] .intro-card h2 {
    color: #f2f5f6;
}

/* --------------------------------------------------
   Seasonal themes

   Apply one of these classes to the <html> element:
   theme-halloween or theme-christmas.
-------------------------------------------------- */

html.theme-halloween {
    color-scheme: dark;

    /* Page surfaces */
    --page-background: #100b14;
    --surface: #1a1220;
    --surface-muted: #211628;

    /* Main header */
    --header: #0d0813;
    --header-dark: #050308;
    --header-light: #211029;
    --header-border: #ff7900;
    --navigation-highlight: #ff9a32;

    /* Account/navigation bar */
    --account-bar-background: #180d1e;
    --account-bar-border: #3d2347;
    --account-link-border: #45274f;
    --account-link-text: #f4eaf7;
    --account-link-hover: #2b1733;

    /* Halloween orange */
    --accent: #ff7900;
    --accent-dark: #ff8c1a;
    --accent-soft: #382015;

    /* Status colours */
    --green: #78c943;
    --yellow: #ffc247;
    --danger: #e05454;

    /* Text and borders */
    --text: #e9e1ec;
    --text-muted: #b8aabd;
    --border: #34233b;
    --border-dark: #493151;

    /* Table rows */
    --row-a: #1b1420;
    --row-b: #23182a;

    /* Footer */
    --footer-background: #100814;
    --footer-bottom-background: #08040b;
    --footer-text: #f2e9f5;
    --footer-muted: #bdaec2;
    --footer-bottom-text: #9f8fa5;
}
html.theme-christmas {
    --header: #0b5b34;
    --header-dark: #06391f;
    --header-light: #13824a;
    --header-border: #c3a438;
    --navigation-highlight: #f0d36a;

    --account-bar-background: #e4eee7;
    --account-bar-border: #bfd0c4;
    --account-link-border: #b4c8ba;
    --account-link-text: #174c31;
    --account-link-hover: #f2f8f4;

    --accent: #d8b545;
    --accent-dark: #a98513;
    --accent-soft: #fdf6dc;

    --footer-background: #073b24;
    --footer-bottom-background: #052a1a;
    --footer-text: #e4f2e9;
    --footer-muted: #bfd8c8;
    --footer-bottom-text: #9fc1aa;
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--page-background);
    color: var(--text);
    font-family:
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif;
    font-size: 15px;
    line-height: 1.6;
}

a {
    color: inherit;
}

img {
    display: block;
    max-width: 100%;
}

button,
input,
select,
textarea {
    font: inherit;
}

/* ==========================================
   Cursor Styles
========================================== */

a,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
label[for],
summary,
[role="button"] {
    cursor: pointer;
}

.site-shell {
    width: min(calc(100% - 36px), var(--content-width));
    margin-inline: auto;
}

/* --------------------------------------------------
   Header
-------------------------------------------------- */

.site-header {
    border-bottom: 5px solid var(--header-border);
}

/* ==========================================================
   Top navigation bar
========================================================== */

.account-bar {
    min-height: 34px;
    background: var(--account-bar-background);
    border-bottom: 1px solid var(--account-bar-border);
}

.account-bar-inner {
    min-height: 34px;
}

.top-navigation-panel {
    min-height: 34px;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 20px;
}

.site-top-navigation,
.account-links {
    display: flex;
    align-items: stretch;
    min-height: 34px;
}

.site-top-navigation a,
.account-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 13px;
    border-left: 1px solid var(--account-link-border);
    color: var(--account-link-text);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.site-top-navigation a:last-child,
.account-links a:last-child {
    border-right: 1px solid var(--account-link-border);
}

.site-top-navigation a:hover,
.account-links a:hover {
    background: var(--account-link-hover);
}

.account-member {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.account-member-avatar {
    width: 26px;
    height: 26px;
    display: block;
    flex: 0 0 26px;
    border: 2px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    object-fit: cover;
}

.account-sign-in,
.account-sign-out {
    font-weight: 700;
}

.mobile-menu-button {
    display: none;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 14px;
    border: 0;
    background: transparent;
    color: var(--account-link-text);
    font-size: 13px;
    font-weight: 800;
}

.mobile-menu-button:hover {
    background: var(--account-link-hover);
}

/* ==========================================================
   Main header
========================================================== */

.main-header {
    background:
        linear-gradient(
            180deg,
            var(--header-light) 0%,
            var(--header) 45%,
            var(--header-dark) 100%
        );
}

.main-header-inner {
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
}

.site-logo {
    flex: 0 0 auto;
    text-decoration: none;
}

.site-logo img {
    width: 290px;
    height: auto;
    display: block;
}

/* ==========================================================
   Header advert
========================================================== */

.header-advert {
    width: 468px;
    max-width: 100%;
}

.header-advert a {
    display: block;
}

.header-advert img {
    display: block;
    width: 468px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 468 / 90;
    object-fit: cover;
    transition: opacity 0.2s ease;
}

.header-advert.is-changing img {
    opacity: 0;
}

/* --------------------------------------------------
   Homepage
-------------------------------------------------- */

.homepage-content {
    padding-block: 28px 55px;
}

.intro-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 34px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--border);
}

.intro-card {
    display: flex;
    gap: 15px;
    min-height: 190px;
    padding: 24px;
    background: var(--surface);
}

.intro-icon {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: 19px;
}

.intro-card h1,
.intro-card h2 {
    margin: 0 0 10px;
    color: #102f3d;
    font-size: 21px;
    font-weight: 650;
    line-height: 1.25;
}

.intro-card p {
    margin: 0;
    color: var(--text-muted);
}

.rooms-section {
    margin-top: 28px;
}

.community-section {
    margin-top: 38px;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 13px;
}

.section-kicker {
    display: block;
    margin-bottom: 1px;
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.section-heading h2 {
    margin: 0;
    color: #173743;
    font-size: 25px;
    line-height: 1.25;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--accent-dark);
    font-weight: 700;
    text-decoration: none;
}

.text-link:hover {
    text-decoration: underline;
}

.primary-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 15px;
    border: 1px solid var(--accent-dark);
    border-radius: var(--radius);
    background: var(--accent);
    color: #000000;
    font-weight: 700;
    text-decoration: none;
}

.primary-button:hover {
    background: var(--accent-dark);
}

/* ==========================================================
   HOMEPAGE ROOM FILTER
========================================================== */

.room-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.room-filter {
    margin: 0;
}

.room-filter-select-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.room-filter-select-wrap > i {
    position: absolute;
    left: 13px;
    color: var(--text-muted);
    font-size: 13px;
    pointer-events: none;
}

.room-filter select {
    min-width: 210px;
    height: 42px;
    padding: 0 36px;
    border: 1px solid var(--border-dark);
    border-radius: 4px;
    background: var(--surface);
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.room-filter select:hover {
    border-color: var(--header-light);
    background: var(--surface-muted);
}

.room-filter select:focus {
    outline: 2px solid rgba(12, 111, 145, 0.22);
    border-color: var(--header-light);
    background: var(--surface);
}

.room-results-message {
    margin: 0 0 14px;
    color: var(--text-muted);
    font-size: 13px;
}

.room-results-message strong {
    color: var(--text);
}

.room-results-message a {
    color: var(--header-light);
    font-weight: 700;
}

.empty-room-row td {
    padding: 34px 20px;
    text-align: center;
}

.empty-room-message {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-weight: 700;
}

.empty-room-message i {
    color: var(--header-light);
}

/* ==========================================================
   HOMEPAGE ROOM TABLES
========================================================== */

.room-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border-dark);
    border-radius: var(--radius);
    background: var(--surface);
}

.room-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.6;
}

.room-table th,
.room-table td {
    padding: 4px 8px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    font-family: inherit;
    text-align: left;
    vertical-align: middle;
}

.room-table th:last-child,
.room-table td:last-child {
    border-right: 0;
}

.room-table tbody tr:last-child td {
    border-bottom: 0;
}

/* Table heading */

.room-table thead th {
    background: var(--surface-muted);
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 5px 10px;
}

/* Rows */

.room-table tbody tr {
    background: var(--row-a);
    transition: background 0.15s ease;
}

.room-table tbody tr:nth-child(even) {
    background: var(--row-b);
}

.room-table tbody tr:hover,
.room-table tbody tr:nth-child(even):hover {
    background: var(--surface-muted);
}

/* Columns */

.users-column {
    width: 74px;
    text-align: center !important;
}

.join-column {
    width: 78px;
    text-align: center !important;
}

/* User count */

.user-count {
    display: inline-grid;
    min-width: 34px;
    height: 28px;
    place-items: center;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 700;
}

.user-count.has-users {
    color: var(--text-muted);
}

/* Room name */

.room-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

.room-name:hover {
    color: var(--navigation-highlight);
    text-decoration: underline;
}

.room-name i {
    color: var(--header-light);
}

.room-name.private-room {
    color: var(--text-muted);
    font-style: italic;
    font-weight: 500;
}

/* Topic text */

.room-table td:nth-child(3) {
    color: var(--text-muted);
}

/* Category */

.category-badge {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 3px 9px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.room-table td:last-child,
.room-table th:last-child {
    text-align: right;
}

/* ==========================================================
   HOMEPAGE RESPONSIVE ROOM FILTER
========================================================== */

@media (max-width: 760px) {

    .section-heading {
        align-items: flex-start;
    }

    .room-actions {
        width: 100%;
        justify-content: stretch;
    }

    .room-filter {
        flex: 1 1 100%;
    }

    .room-filter-select-wrap,
    .room-filter select {
        width: 100%;
    }

    .room-actions .primary-button {
        flex: 1 1 100%;
        justify-content: center;
    }
}

.community-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: 42px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--border);
}

.community-summary article {
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: center;
    column-gap: 12px;
    padding: 20px;
    background: var(--surface);
}

.community-summary i {
    grid-row: 1 / span 2;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: 17px;
}

.community-summary strong {
    color: #163b4a;
    font-size: 23px;
    line-height: 1.1;
}

.community-summary span {
    color: var(--text-muted);
    font-size: 13px;
}

/* --------------------------------------------------
   Footer
-------------------------------------------------- */

.site-footer {
    border-top: 5px solid var(--header-border);
    background: var(--footer-background);
    color: var(--footer-text);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 60px;
    padding-block: 42px;
}

.footer-logo {
    width: 230px;
    max-height: 92px;
    margin-bottom: 16px;
    object-fit: contain;
    object-position: left center;
}

.footer-grid p {
    max-width: 520px;
    margin: 0;
    color: var(--footer-muted);
}

.footer-grid h2 {
    margin: 0 0 12px;
    color: #ffffff;
    font-size: 16px;
}

.footer-grid nav {
    display: grid;
    gap: 7px;
}

.footer-grid nav a {
    color: var(--footer-muted);
    text-decoration: none;
}

.footer-grid nav a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.footer-bottom {
    border-top: 1px solid rgb(255 255 255 / 0.11);
    background: var(--footer-bottom-background);
}

.footer-bottom .site-shell {
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: var(--footer-bottom-text);
    font-size: 13px;
}

.footer-stats {
    color: #b8c7d9;
    font-size: 0.9rem;
    white-space: nowrap;
}

.footer-stats strong {
    color: #ffffff;
    font-weight: 600;
}

/* --------------------------------------------------
   Responsive
-------------------------------------------------- */

@media (max-width: 1100px) {
    .account-bar-inner {
        gap: 0;
    }

    .site-top-navigation a,
    .account-links a {
        padding-inline: 10px;
    }
}

@media (max-width: 980px) {
    .account-bar-inner {
        display: block;
        width: 100%;
        padding: 0;
    }

    .site-top-navigation {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        width: 100%;
    }

    .account-links {
        display: flex;
        width: 100%;
        justify-content: flex-end;
        border-top: 1px solid var(--account-link-border);
    }

    .site-top-navigation a,
    .account-links a {
        min-height: 38px;
    }

    .main-header-inner {
        min-height: 100px;
    }

    .site-logo img {
        width: 210px;
    }

    .header-advert {
        flex-basis: 400px;
        width: 400px;
    }

    .header-advert img {
        width: 400px;
    }

    .intro-grid {
        grid-template-columns: 1fr;
    }

    .intro-card {
        min-height: 0;
    }

    .community-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .site-shell {
        width: min(calc(100% - 24px), var(--content-width));
    }

    .account-bar .site-shell {
        width: 100%;
    }

    .mobile-menu-button {
        display: flex;
    }

    .top-navigation-panel {
        display: none;
        width: 100%;
        min-height: 0;
        gap: 0;
        border-top: 1px solid var(--account-bar-border);
    }

    .top-navigation-panel.is-open {
        display: block;
    }

    .site-top-navigation,
    .account-links {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        min-height: 0;
    }

    .site-top-navigation a,
    .account-links a {
        justify-content: flex-start;
        min-height: 43px;
        padding: 9px 16px;
        border-right: 0;
        border-bottom: 1px solid var(--account-link-border);
        font-size: 13px;
        text-align: left;
        white-space: normal;
    }

    .site-top-navigation a:last-child,
    .account-links a:last-child {
        border-right: 0;
    }

    .account-links {
        border-top: 3px solid var(--account-bar-border);
    }

    .main-header-inner {
        min-height: auto;
        flex-direction: column;
        justify-content: center;
        gap: 16px;
        padding-block: 18px;
    }

    .site-logo img {
        width: 176px;
    }

    .header-advert,
    .header-advert img {
        width: min(100%, 468px);
    }

    .homepage-content {
        padding-top: 20px;
    }

    .launch-banner {
        align-items: flex-start;
    }

    .launch-banner div {
        display: block;
    }

    .launch-banner span {
        display: block;
        margin-top: 3px;
    }

    .intro-card {
        padding: 19px;
    }

    .section-heading {
        align-items: flex-start;
    }

    .section-heading h2 {
        font-size: 22px;
    }

    .primary-button {
        min-height: 38px;
        padding: 7px 11px;
        font-size: 13px;
    }

    .community-summary {
        grid-template-columns: 1fr;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-block: 34px;
    }

    .footer-bottom .site-shell {
        min-height: 70px;
        flex-direction: column;
        justify-content: center;
        gap: 2px;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .site-top-navigation a,
    .account-links a {
        gap: 7px;
        font-size: 13px;
    }

    .account-member span {
        display: none;
    }

    .account-member-avatar {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
    }

    .site-logo img {
        width: 150px;
    }

    .intro-card {
        display: block;
    }

    .intro-icon {
        margin-bottom: 12px;
    }

    .section-heading {
        display: block;
    }

    .section-heading .text-link,
    .section-heading .primary-button {
        margin-top: 10px;
    }
}

/* --------------------------------------------------
   Sign In
-------------------------------------------------- */

.hp-field,
.natterfly-honeypot {
    position: absolute !important;
    top: auto !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.signin-body {
    min-height: 100vh;
    background:
        linear-gradient(
            145deg,
            var(--surface-muted) 0%,
            var(--page-background) 100%
        );
}

.signin-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.signin-header {
    background: var(--surface);
    border-bottom: 5px solid var(--header-border);
}

.signin-header-inner {
    width: min(calc(100% - 36px), 1120px);
    min-height: 88px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.signin-logo {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    text-decoration: none;
}

.signin-logo img {
    width: 230px;
    max-height: 70px;
    object-fit: contain;
    object-position: left center;
}

.signin-home-link,
.back-home {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--header);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.signin-home-link:hover,
.back-home:hover {
    color: var(--header-light);
    text-decoration: underline;
}

.signin-main {
    width: 100%;
    flex: 1;
    display: grid;
    place-items: center;
    padding: 48px 18px;
}

.signin-card {
    width: min(100%, 480px);
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--border-dark);
    border-radius: var(--radius);
}

.signin-card-header,
.signin-card-top {
    padding: 31px 35px 27px;
    background:
        linear-gradient(
            145deg,
            var(--header-light) 0%,
            var(--header) 58%,
            var(--header-dark) 100%
        );
    color: #ffffff;
    text-align: center;
}

.signin-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    display: grid;
    place-items: center;
    border: 2px solid rgb(255 255 255 / 0.35);
    border-radius: 50%;
    background: rgb(255 255 255 / 0.12);
    font-size: 26px;
}

.signin-card-header h1,
.signin-card-top h1 {
    margin: 0 0 8px;
    color: #ffffff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
}

.signin-card-header p,
.signin-card-top p {
    max-width: 360px;
    margin: 0 auto;
    color: rgb(255 255 255 / 0.84);
    font-size: 14px;
    line-height: 1.6;
}

.signin-card-body {
    padding: 32px 35px 35px;
}

.signin-alert,
.signin-error {
    margin: 0 0 22px;
    padding: 13px 15px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-radius: var(--radius);
    font-size: 14px;
    line-height: 1.5;
}

.signin-alert i,
.signin-error i {
    margin-top: 3px;
    flex: 0 0 auto;
}

.signin-alert-error,
.signin-error {
    border: 1px solid var(--danger);
    border-left-width: 4px;
    background: #fff0f0;
    color: #923232;
}

.signin-form {
    margin: 0;
}

.signin-form-group,
.form-group {
    margin-bottom: 20px;
}

.signin-label,
.form-label {
    margin-bottom: 8px;
    display: block;
    color: var(--text);
    font-size: 14px;
    font-weight: 700;
}

.signin-input-wrap,
.input-wrap {
    position: relative;
}

.signin-input-wrap > i,
.input-wrap > i {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 15px;
    color: var(--text-muted);
    transform: translateY(-50%);
    pointer-events: none;
}

.signin-input,
.form-control {
    width: 100%;
    height: 48px;
    padding: 10px 44px;
    border: 1px solid var(--border-dark);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    outline: none;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background 0.15s ease;
}

.signin-input:hover,
.form-control:hover {
    border-color: var(--accent-dark);
}

.signin-input:focus,
.form-control:focus {
    border-color: var(--header-light);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgb(12 111 145 / 0.14);
}

.signin-password-input {
    padding-right: 50px;
}

.signin-password-toggle,
.password-toggle {
    position: absolute;
    top: 50%;
    right: 6px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    transform: translateY(-50%);
}

.signin-password-toggle:hover,
.signin-password-toggle:focus-visible,
.password-toggle:hover,
.password-toggle:focus-visible {
    background: var(--accent-soft);
    color: var(--header);
    outline: none;
}

.signin-options {
    margin: -1px 0 23px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.signin-remember,
.remember-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-size: 14px;
    cursor: pointer;
}

.signin-remember input,
.remember-label input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--header-light);
}

.signin-forgot-link,
.forgot-link {
    color: var(--header-light);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.signin-forgot-link:hover,
.forgot-link:hover {
    color: var(--header);
    text-decoration: underline;
}

.signin-submit,
.signin-button {
    width: 100%;
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 18px;
    border: 1px solid #4da01f;
    border-radius: var(--radius);
    background: var(--green);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.signin-submit:hover,
.signin-button:hover {
    border-color: #438f1b;
    background: #52a824;
}

.signin-submit:focus-visible,
.signin-button:focus-visible {
    outline: 3px solid rgb(96 186 43 / 0.25);
    outline-offset: 2px;
}

.signin-divider {
    margin: 28px 0 19px;
    display: flex;
    align-items: center;
    gap: 13px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.signin-divider::before,
.signin-divider::after {
    height: 1px;
    flex: 1;
    background: var(--border);
    content: "";
}

.signin-register-message,
.register-message {
    margin: 0 0 16px;
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.6;
    text-align: center;
}

.register-message a {
    color: var(--header-light);
    font-weight: 700;
    text-decoration: none;
}

.register-message a:hover {
    color: var(--header);
    text-decoration: underline;
}

.signin-register-button {
    width: 100%;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 9px 17px;
    border: 1px solid var(--border-dark);
    border-radius: var(--radius);
    background: var(--surface-muted);
    color: var(--header);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.signin-register-button:hover {
    border-color: var(--accent-dark);
    background: var(--accent-soft);
}

.signin-footer {
    padding: 22px 18px;
    border-top: 1px solid var(--border);
    color: var(--text-muted);
    font-size: 13px;
    text-align: center;
}

.signin-footer p {
    margin: 0;
}

/* --------------------------------------------------
   Sign In Responsive
-------------------------------------------------- */

@media (max-width: 560px) {
    .signin-header-inner {
        width: calc(100% - 24px);
        min-height: 72px;
    }

    .signin-logo img {
        width: 185px;
        max-height: 55px;
    }

    .signin-home-link span,
    .back-home span {
        display: none;
    }

    .signin-home-link,
    .back-home {
        width: 40px;
        height: 40px;
        justify-content: center;
        border: 1px solid var(--border-dark);
        border-radius: var(--radius);
    }

    .signin-main {
        padding: 27px 12px;
    }

    .signin-card-header,
    .signin-card-top {
        padding: 26px 22px 23px;
    }

    .signin-card-body {
        padding: 27px 22px 29px;
    }

    .signin-icon {
        width: 58px;
        height: 58px;
        font-size: 23px;
    }

    .signin-card-header h1,
    .signin-card-top h1 {
        font-size: 25px;
    }

    .signin-options {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }
}

/* ============================================================
   CREATE ROOM PAGE
============================================================ */

.create-room-page {
    padding: 38px 0 55px;
    background: var(--page-background);
}

.create-room-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 28px;
    align-items: start;
}

.create-room-main {
    min-width: 0;
}

/* ============================================================
   PAGE HEADING
============================================================ */

.create-room-heading {
    margin-bottom: 24px;
}

.create-room-kicker {
    display: inline-block;
    margin-bottom: 7px;
    color: #0b6d91;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.create-room-heading h1 {
    margin: 0 0 10px;
    color: #183443;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.15;
}

.create-room-heading p {
    max-width: 720px;
    margin: 0;
    color: #667985;
    font-size: 16px;
    line-height: 1.7;
}

/* ============================================================
   FORM MESSAGES
============================================================ */

.form-message {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
    padding: 18px 20px;
    border: 1px solid;
    border-radius: 4px;
}

.form-message-error {
    border-color: #e4b9b9;
    background: #fff1f1;
    color: #7f2929;
}

.form-message-icon {
    flex: 0 0 auto;
    padding-top: 2px;
    font-size: 20px;
}

.form-message strong {
    display: block;
    margin-bottom: 6px;
}

.form-message ul {
    margin: 0;
    padding-left: 20px;
}

.form-message li + li {
    margin-top: 4px;
}

/* ============================================================
   FORM
============================================================ */

.create-room-form {
    display: grid;
    gap: 22px;
}

.create-room-card {
    padding: 26px;
    border: 1px solid #d7e1e6;
    border-radius: 4px;
    background: #fff;
}

.create-room-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e7edf0;
}

.create-room-card-icon {
    width: 46px;
    height: 46px;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: #e9f4f8;
    color: #07546f;
    font-size: 20px;
}

.create-room-card-heading h2 {
    margin: 0 0 5px;
    color: #203b49;
    font-size: 21px;
}

.create-room-card-heading p {
    margin: 0;
    color: #74858f;
    line-height: 1.55;
}

/* ============================================================
   FORM FIELDS
============================================================ */

.form-group {
    margin-bottom: 22px;
}

.form-group:last-child {
    margin-bottom: 0;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    color: #263f4c;
    font-size: 14px;
    font-weight: 800;
}

.form-group label span {
    color: #ba3030;
}

.form-group input[type="text"],
.form-group textarea,
.form-group select {
    width: 100%;
    border: 1px solid #cbd8de;
    border-radius: 4px;
    background: #fff;
    color: #1f3540;
    font: inherit;
    outline: none;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.form-group input[type="text"] {
    min-height: 46px;
    padding: 0 13px;
}

.form-group textarea {
    min-height: 125px;
    padding: 12px 13px;
    resize: vertical;
    line-height: 1.55;
}

.form-group select {
    min-height: 46px;
    padding: 0 42px;
    appearance: none;
    cursor: pointer;
}

.form-group input[type="text"]:focus,
.form-group textarea:focus,
.form-group select:focus {
    border-color: #1681a8;
    box-shadow: 0 0 0 3px rgba(22, 129, 168, 0.12);
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #9aa8af;
}

.form-group small {
    display: block;
    margin-top: 7px;
    color: #7a8b94;
    font-size: 12px;
    line-height: 1.45;
}

.form-field-footer {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    align-items: flex-start;
}

.form-field-footer span {
    margin-top: 7px;
    color: #7a8b94;
    font-size: 12px;
    white-space: nowrap;
}

/* ============================================================
   SELECT
============================================================ */

.form-select-wrap {
    position: relative;
}

.form-select-wrap > i {
    position: absolute;
    top: 50%;
    left: 14px;
    z-index: 1;
    color: #64808e;
    transform: translateY(-50%);
    pointer-events: none;
}

.form-select-wrap::after {
    content: "\f078";
    position: absolute;
    top: 50%;
    right: 15px;
    color: #64808e;
    font-family: "Font Awesome 6 Free";
    font-size: 12px;
    font-weight: 900;
    transform: translateY(-50%);
    pointer-events: none;
}

/* ============================================================
   PRIVATE ROOM OPTION
============================================================ */

.room-privacy-option {
    display: block;
    cursor: pointer;
}

.room-privacy-option > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.room-privacy-control {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    border: 1px solid #d7e1e6;
    border-radius: 4px;
    background: #f9fbfc;
    transition:
        border-color 0.15s ease,
        background 0.15s ease;
}

.room-privacy-option:hover .room-privacy-control {
    border-color: #abc4d0;
    background: #f4f9fb;
}

.room-privacy-icon {
    width: 42px;
    height: 42px;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: #eef2f4;
    color: #687b85;
    font-size: 17px;
}

.room-privacy-control strong {
    display: block;
    margin: 1px 0 5px;
    color: #263f4c;
}

.room-privacy-control small {
    display: block;
    color: #72848e;
    line-height: 1.5;
}

.room-privacy-option > input:checked + .room-privacy-control {
    border-color: #d2a25d;
    background: #fff8ec;
}

.room-privacy-option > input:checked
    + .room-privacy-control
    .room-privacy-icon {
    background: #f6dfba;
    color: #9b5b00;
}

.room-privacy-option > input:focus-visible + .room-privacy-control {
    outline: 3px solid rgba(22, 129, 168, 0.2);
    outline-offset: 2px;
}

/* ============================================================
   INFORMATION
============================================================ */

.create-room-information {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 18px;
    padding: 15px 17px;
    border-left: 4px solid #1681a8;
    background: #eef7fa;
    color: #365766;
}

.create-room-information i {
    margin-top: 3px;
    color: #1681a8;
}

.create-room-information p {
    margin: 0;
    line-height: 1.55;
}

/* ============================================================
   ACTIONS
============================================================ */

.create-room-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.room-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: 4px;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}

.room-button-primary {
    border-color: #07546f;
    background: #07546f;
    color: #fff;
}

.room-button-primary:hover {
    border-color: #063f53;
    background: #063f53;
    color: #fff;
}

.room-button-secondary {
    border-color: #cbd8de;
    background: #fff;
    color: #3a5360;
}

.room-button-secondary:hover {
    border-color: #aebfc7;
    background: #f4f7f8;
    color: #243c48;
}

/* ============================================================
   SIDEBAR
============================================================ */

.create-room-sidebar {
    display: grid;
    gap: 20px;
}

.sidebar-help-card {
    padding: 23px;
    border: 1px solid #d7e1e6;
    border-radius: 4px;
    background: #fff;
}

.sidebar-help-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    border-radius: 4px;
    background: #e9f4f8;
    color: #07546f;
    font-size: 19px;
}

.sidebar-help-card h2 {
    margin: 0 0 13px;
    color: #263f4c;
    font-size: 19px;
    line-height: 1.3;
}

.sidebar-help-card p {
    margin: 0;
    color: #6f818b;
    line-height: 1.65;
}

.sidebar-help-card ul {
    margin: 0;
    padding-left: 20px;
    color: #5f737e;
}

.sidebar-help-card li {
    line-height: 1.55;
}

.sidebar-help-card li + li {
    margin-top: 10px;
}

.sidebar-help-card a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    color: #07678a;
    font-weight: 800;
    text-decoration: none;
}

.sidebar-help-card a:hover {
    text-decoration: underline;
}

/* ============================================================
   HONEYPOT
============================================================ */

.form-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 980px) {
    .create-room-layout {
        grid-template-columns: 1fr;
    }

    .create-room-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .create-room-page {
        padding: 25px 0 40px;
    }

    .create-room-card {
        padding: 20px;
    }

    .create-room-card-heading {
        gap: 12px;
    }

    .create-room-actions {
        flex-direction: column-reverse;
    }

    .room-button {
        width: 100%;
    }

    .create-room-sidebar {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .create-room-card {
        padding: 17px;
    }

    .create-room-card-heading {
        flex-direction: column;
    }

    .room-privacy-control {
        padding: 15px;
    }

    .form-field-footer {
        flex-direction: column;
        gap: 0;
    }

    .form-field-footer span {
        margin-top: 3px;
    }
}

/* ============================================================
   NEW SITE LAUNCH BANNER
============================================================ */

.launch-banner {
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 24px 26px;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    border: 1px solid #bfd8e2;
    border-left: 4px solid #0c7899;
    border-radius: 4px;
    background: #dceff6;
}

.launch-banner__icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ffffff;
    color: #0c7899;
    font-size: 21px;
}

.launch-banner__content {
    min-width: 0;
}

.launch-banner__label {
    display: block;
    margin-bottom: 4px;
    color: #0c7899;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.launch-banner h1 {
    margin: 0 0 7px;
    color: #123b4a;
    font-size: 21px;
    line-height: 1.3;
}

.launch-banner p {
    max-width: 860px;
    margin: 0;
    color: #536f7a;
    font-size: 13px;
    line-height: 1.65;
}

.launch-banner__actions {
    flex: 0 0 auto;
}

.launch-banner__button {
    min-height: 42px;
    padding: 9px 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #086b89;
    border-radius: 4px;
    background: #0c7899;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.launch-banner__button:hover {
    background: #086481;
    color: #ffffff;
}

@media (max-width: 850px) {
    .launch-banner {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .launch-banner__icon {
        width: 48px;
        height: 48px;
    }

    .launch-banner__actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .launch-banner {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .launch-banner__icon {
        width: 44px;
        height: 44px;
    }

    .launch-banner h1 {
        font-size: 19px;
    }

    .launch-banner__actions,
    .launch-banner__button {
        width: 100%;
    }
}

@media (max-width: 720px) {

    .main-header {
        min-height: 0;
    }

    .main-header-inner {
        min-height: 0;
        height: auto;
        flex-direction: column;
        justify-content: flex-start;
        gap: 14px;
        padding: 16px 0 20px;
    }

    .site-logo img {
        width: 176px;
    }

    .header-advert {
        width: min(100%, 468px);
        max-width: 468px;

        flex: 0 0 auto;
        flex-basis: auto;

        margin: 0 auto;
    }

    .header-advert a {
        display: block;
        width: 100%;
    }

    .header-advert img {
        display: block;
        width: 100%;
        max-width: 468px;
        height: auto;
        aspect-ratio: 468 / 90;
        object-fit: cover;
    }

}

.auth-notice {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    margin-bottom: 20px;
    background: #f4fbfd;
    border: 1px solid #b7dfea;
    border-left: 4px solid #0d88a8;
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.auth-notice i {
    color: #0d88a8;
    font-size: 1.2rem;
    margin-top: 2px;
}

.auth-notice p {
    margin: 0;
}

.auth-notice-links {
    margin-top: 8px;
    font-size: .7rem;
}

.auth-notice-links a {
    font-weight: 600;
}

.help-emoji-grid{
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    border-top:1px solid #dce6eb;
    border-left:1px solid #dce6eb;
    margin:25px 0 35px;
}

.help-emoji-item{
    min-width:0;
    padding:16px 10px;
    border-right:1px solid #dce6eb;
    border-bottom:1px solid #dce6eb;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
}

.help-emoji-item img{
    display:block !important;
    width:24px !important;
    height:24px !important;
    max-width:24px !important;
    object-fit:contain;
    margin:0 auto !important;
}

.help-emoji-item strong{
    display:block;
    font-size:14px;
    font-weight:600;
}

.help-emoji-item code{
    display:block;
    font-size:13px;
    padding:2px 6px;
    background:#eef4f7;
    border-radius:3px;
}

@media (max-width:800px){
    .help-emoji-grid{
        grid-template-columns:repeat(3, 1fr);
    }
}

@media (max-width:480px){
    .help-emoji-grid{
        grid-template-columns:repeat(2, 1fr);
    }
}

.auth-switch-suspend {
    margin-top: 12px;
    padding: 14px 16px;

    background: #fff4f4;
    border: 1px solid #e7b8bc;
    border-left: 4px solid #c83f49;
    border-radius: 4px;

    color: #713238;
}

.auth-switch-suspend > span {
    display: block;

    margin-bottom: 5px;

    color: #a22f39;
    font-size: 0.95rem;
    font-weight: 700;
}

.auth-switch-suspend p {
    margin: 0 0 12px;

    color: #713238;
    font-size: 0.86rem;
    line-height: 1.5;
}

.auth-switch-suspend .auth-secondary-suspend {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    padding: 8px 13px;

    background: #c83f49;
    border: 1px solid #b6343e;
    border-radius: 3px;

    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
}

.auth-switch-suspend .auth-secondary-suspend:hover {
    background: #aF3039;
    border-color: #9c2b33;
    color: #ffffff;
}

.auth-switch-suspend .auth-secondary-suspend i {
    color: #ffffff;
}

.profile-emoji {
    width: 20px;
    height: 20px;
    display: inline-block;
    vertical-align: -4px;
    margin: 0 2px;
}

/* Help article example boxes */
.help-example {
    display: block;
    margin: 10px 0 16px;
    line-height: 1.6;
}

/* Emojis inside help articles */
.help-example .help-emoji {
    display: inline-block !important;
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;

    margin: 0 2px !important;
    padding: 0 !important;

    vertical-align: middle;
    object-fit: contain;

    /* Override any global image positioning */
    float: none !important;
    position: static !important;
}

.intro-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 14px;
    flex-wrap: wrap;
}

.intro-actions .primary-button {
    text-decoration: none;
}

.intro-signin {
    color: var(--account-link-text);
    font-weight: 700;
    text-decoration: none;
}

.intro-signin:hover {
    text-decoration: underline;
}



/* ============================================================
   NIGHT MODE - COMPLETE SITE OVERRIDES
============================================================ */

[data-theme="dark"] .section-heading h2,
[data-theme="dark"] .community-summary strong,
[data-theme="dark"] .create-room-heading h1,
[data-theme="dark"] .create-room-card-heading h2,
[data-theme="dark"] .sidebar-help-card h2,
[data-theme="dark"] .form-group label,
[data-theme="dark"] .room-privacy-control strong {
    color: var(--text);
}

[data-theme="dark"] .section-kicker,
[data-theme="dark"] .text-link,
[data-theme="dark"] .create-room-kicker,
[data-theme="dark"] .sidebar-help-card a {
    color: #8bcfe8;
}

[data-theme="dark"] .create-room-heading p,
[data-theme="dark"] .create-room-card-heading p,
[data-theme="dark"] .sidebar-help-card p,
[data-theme="dark"] .sidebar-help-card ul,
[data-theme="dark"] .form-group small,
[data-theme="dark"] .form-field-footer span,
[data-theme="dark"] .room-privacy-control small {
    color: var(--text-muted);
}

[data-theme="dark"] .create-room-card,
[data-theme="dark"] .sidebar-help-card {
    border-color: var(--border);
    background: var(--surface);
}

[data-theme="dark"] .create-room-card-heading {
    border-bottom-color: var(--border);
}

[data-theme="dark"] .create-room-card-icon,
[data-theme="dark"] .sidebar-help-icon {
    background: var(--accent-soft);
    color: #8bcfe8;
}

[data-theme="dark"] .form-group input[type="text"],
[data-theme="dark"] .form-group input[type="email"],
[data-theme="dark"] .form-group input[type="password"],
[data-theme="dark"] .form-group input[type="url"],
[data-theme="dark"] .form-group input[type="number"],
[data-theme="dark"] .form-group textarea,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .signin-input,
[data-theme="dark"] .form-control {
    border-color: var(--border-dark);
    background: var(--surface);
    color: var(--text);
}

[data-theme="dark"] .form-group input::placeholder,
[data-theme="dark"] .form-group textarea::placeholder,
[data-theme="dark"] .signin-input::placeholder,
[data-theme="dark"] .form-control::placeholder {
    color: #73838c;
}

[data-theme="dark"] .form-group input:focus,
[data-theme="dark"] .form-group textarea:focus,
[data-theme="dark"] .form-group select:focus,
[data-theme="dark"] .signin-input:focus,
[data-theme="dark"] .form-control:focus {
    border-color: #2f91b5;
    background: #20272c;
    color: var(--text);
    box-shadow: 0 0 0 3px rgb(47 145 181 / 0.16);
}

[data-theme="dark"] .room-privacy-control {
    border-color: var(--border);
    background: var(--surface-muted);
}

[data-theme="dark"] .room-privacy-option:hover .room-privacy-control {
    border-color: #49616d;
    background: #293239;
}

[data-theme="dark"] .room-privacy-icon {
    background: #2b343a;
    color: #a5b5bd;
}

[data-theme="dark"] .room-privacy-option > input:checked + .room-privacy-control {
    border-color: #8a6735;
    background: #33291d;
}

[data-theme="dark"] .room-privacy-option > input:checked + .room-privacy-control .room-privacy-icon {
    background: #493a25;
    color: #f0bd69;
}

[data-theme="dark"] .create-room-information {
    border-left-color: #2f91b5;
    background: #18313c;
    color: #c4dce5;
}

[data-theme="dark"] .create-room-information i {
    color: #66c2e5;
}

[data-theme="dark"] .room-button-secondary {
    border-color: var(--border-dark);
    background: var(--surface);
    color: var(--text);
}

[data-theme="dark"] .room-button-secondary:hover {
    border-color: #566a74;
    background: var(--surface-muted);
    color: #ffffff;
}

[data-theme="dark"] .signin-alert-error,
[data-theme="dark"] .signin-error,
[data-theme="dark"] .form-message-error {
    border-color: #7d3d43;
    background: #321d20;
    color: #f0b4b8;
}

[data-theme="dark"] .signin-home-link,
[data-theme="dark"] .back-home,
[data-theme="dark"] .signin-register-button {
    color: #8bcfe8;
}

[data-theme="dark"] .signin-register-button {
    border-color: var(--border-dark);
    background: var(--surface-muted);
}

[data-theme="dark"] .signin-register-button:hover {
    border-color: #4b6673;
    background: #29343a;
}

[data-theme="dark"] .launch-banner {
    border-color: #35515d;
    border-left-color: #2f91b5;
    background: #18313c;
    color: var(--text);
}

[data-theme="dark"] .launch-banner__icon {
    background: #223b46;
    color: #78c9e8;
}

[data-theme="dark"] .primary-button {
    border-color: #5c7a87;
    background: #476673;
    color: #ffffff;
}

[data-theme="dark"] .primary-button:hover {
    border-color: #6f919f;
    background: #577a88;
}

[data-theme="dark"] .room-table-wrap {
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.02);
}

[data-theme="dark"] .room-table thead th {
    background: #283137;
    color: #aebdc4;
}

[data-theme="dark"] .room-table tbody tr:hover,
[data-theme="dark"] .room-table tbody tr:nth-child(even):hover {
    background: #2a343a;
}

[data-theme="dark"] .room-name {
    color: #e8eef1;
}

[data-theme="dark"] .room-table td:nth-child(3),
[data-theme="dark"] .category-badge,
[data-theme="dark"] .user-count,
[data-theme="dark"] .user-count.has-users {
    color: #a7b7bf;
}

[data-theme="dark"] .room-filter select {
    background: #1b2226;
    color: var(--text);
}

[data-theme="dark"] .room-filter select:hover,
[data-theme="dark"] .room-filter select:focus {
    background: #242d32;
}

[data-theme="dark"] .intro-card h1,
[data-theme="dark"] .intro-card h2 {
    color: #f2f5f6;
}

[data-theme="dark"] .intro-card,
[data-theme="dark"] .community-summary article {
    background: var(--surface);
}

[data-theme="dark"] .intro-grid,
[data-theme="dark"] .community-summary {
    background: var(--border);
    border-color: var(--border);
}

[data-theme="dark"] option {
    background: #1d2226;
    color: #e6ecef;
}

/* ============================================================
   SITE TOAST NOTIFICATIONS
============================================================ */

.natterfly-site-toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 999999;
    width: min(360px, calc(100vw - 40px));
    padding: 15px 18px;
    background: #ffffff;
    border: 1px solid #bfd3dc;
    border-left: 5px solid #0c6f91;
    border-radius: 4px;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.22);
    color: #173746;
    opacity: 0;
    transform: translateY(12px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease;
    pointer-events: none;
}

.natterfly-site-toast.show {
    opacity: 1;
    transform: translateY(0);
}

.natterfly-site-toast-title {
    margin-bottom: 5px;
    color: #0c6f91;
    font-size: 16px;
    font-weight: 700;
}

.natterfly-site-toast-message {
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 600px) {
    .natterfly-site-toast {
        bottom: 10px;
        right: 10px;
        left: 10px;
        width: auto;
    }
}