/* OEMT.Club — clean theme on top of cobalt.min.css */

/* ==========================================================================
   Palette & base
   ========================================================================== */
:root {
    --ace-bg-deep: #101114;
}

.pun {
    --ace-bg-deep: #101114;
    --ace-bg-panel: #181a1f;
    --ace-bg-elevated: #1f2229;
    --ace-bg-input: #14161b;
    --ace-bg-row: #1a1c22;
    --ace-bg-row-hover: #22252d;
    --ace-bg-post: #1e2128;
    --ace-border: #2c3038;
    --ace-border-soft: #24272e;
    --ace-text: #e8eaef;
    --ace-text-muted: #9aa0ad;
    --ace-text-dim: #6d7380;
    --ace-accent: #d4567a;
    --ace-accent-soft: #e87898;
    --ace-link: #6ea8fe;
    --ace-role-admin: #c4b5fd;
    --ace-role-mod: #93c5fd;
    --ace-ui-accent: #8b5cf6;
    --ace-link-hover: #9bc2ff;
    --ace-radius: 8px;
}

body {
    background-color: var(--ace-bg-deep) !important;
}

.pun {
    max-width: 1080px !important;
    padding: 20px 20px 32px !important;
    color: var(--ace-text);
    font-family: "DM Sans", Verdana, Helvetica, Arial, sans-serif;
}

html body #ace-wrap.pun.oemt-app,
.pun.oemt-app,
#ace-wrap.pun.oemt-app {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

.pun .box {
    background-color: var(--ace-bg-panel) !important;
    border-color: var(--ace-border) !important;
    box-shadow: none !important;
}

.pun h2 {
    background: var(--ace-bg-elevated) !important;
    border-color: var(--ace-border) !important;
    color: var(--ace-text-muted) !important;
    font-family: "DM Sans", Verdana, sans-serif;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.pun a:link,
.pun a:visited {
    color: var(--ace-link) !important;
}

.pun a:active,
.pun a:focus,
.pun a:hover {
    color: var(--ace-link-hover) !important;
}

.pun legend {
    color: var(--ace-link) !important;
}

.pun .stickytext {
    color: var(--ace-ui-accent) !important;
}

/* Cobalt legacy usergroup colours — override yellow/gold */
.pun .usergroup-1,
.pun a.usergroup-1,
.pun span.usergroup-1 {
    color: var(--ace-role-mod) !important;
}

.pun .usergroup-2,
.pun a.usergroup-2,
.pun span.usergroup-2 {
    color: var(--ace-role-admin) !important;
}

.pun .postmsg ins {
    background-color: rgba(139, 92, 246, 0.18) !important;
    color: inherit;
    text-decoration: none;
}

.pun .rowodd,
.pun .roweven {
    background-color: var(--ace-bg-row) !important;
}

.pun .rowodd:hover,
.pun .roweven:hover {
    background-color: var(--ace-bg-row-hover) !important;
}

.pun .inbox thead .tc2,
.pun .inbox thead .tc3,
.pun .inbox thead .tcl,
.pun .inbox thead .tcr {
    background-color: var(--ace-bg-elevated) !important;
    border-bottom: 1px solid var(--ace-border) !important;
}

.pun .tcl h3 a {
    color: var(--ace-text) !important;
}

.pun .tcl h3 a:hover {
    color: var(--ace-accent-soft) !important;
}

.pun .blockpost .box,
.pun .blockpost .postfootright,
.pun .blockpost .postright,
.pun .blockpost .postfootleft,
.pun .blockpost .postleft,
.pun .deletemsg {
    background-color: var(--ace-bg-post) !important;
}

.pun .blockpost .postfootright,
.pun .blockpost .postright {
    border-left-color: var(--ace-bg-post) !important;
}

.pun .blockpost h2 {
    background: var(--ace-bg-elevated) !important;
}

.pun .codebox,
.pun .quotebox,
.pun td.tc2,
.pun td.tc3,
.pun td.tcmod,
.pun .blockmenu .box,
.pun .forminfo {
    background-color: var(--ace-bg-elevated) !important;
}

.pun input,
.pun select,
.pun textarea {
    background-color: var(--ace-bg-input) !important;
    border-color: var(--ace-border) !important;
    color: var(--ace-text) !important;
}

.pun input:focus,
.pun select:focus,
.pun textarea:focus {
    border-color: var(--ace-link) !important;
    box-shadow: none;
    outline: none;
}

.pun .button {
    background: var(--ace-bg-elevated) !important;
    border-color: var(--ace-border) !important;
    color: var(--ace-text) !important;
    border-radius: var(--ace-radius);
}

.pun hr {
    background-color: var(--ace-border) !important;
    color: var(--ace-border) !important;
}

.pun fieldset {
    border-color: var(--ace-border) !important;
}

.pun td,
.pun th {
    border-color: var(--ace-border-soft) !important;
}

/* ==========================================================================
   Layout — header, content, footer
   ========================================================================== */
#brdmain {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pun .block,
.pun .blocktable,
.pun .blockform,
.pun .blockpost {
    margin-bottom: 12px !important;
}

.pun .block .box,
.pun .blocktable .box,
.pun .blockform .box {
    border-radius: var(--ace-radius) !important;
    overflow: hidden;
}

.pun h2 {
    border-radius: var(--ace-radius) var(--ace-radius) 0 0 !important;
    padding: 9px 14px !important;
    font-size: 11px !important;
}

.pun .blockpost {
    border-radius: var(--ace-radius);
    overflow: hidden;
    border: 1px solid var(--ace-border);
}

.oemt-header {
    margin-bottom: 16px !important;
}

.oemt-header-shell.box {
    border-radius: var(--ace-radius) !important;
    border-top: 2px solid var(--ace-accent) !important;
    padding: 0 !important;
    overflow: hidden;
}

.oemt-header-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    padding: 12px 16px 8px;
}

.oemt-brand h1 {
    margin: 0;
    padding: 0 !important;
    line-height: 1.2;
}

.oemt-logo-link {
    font-family: Syne, Verdana, sans-serif;
    font-size: 1.5em;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    color: var(--ace-text) !important;
}

.oemt-logo-tld {
    color: var(--ace-accent);
}

.oemt-tagline {
    display: none;
}

.oemt-nav {
    flex: 1 1 auto;
    background: transparent !important;
    padding: 0 !important;
}

.oemt-nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 4px 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.oemt-nav-list > li {
    display: inline-block;
    margin: 0 !important;
}

.oemt-nav-list > li > a,
#brdmenu li#navlogout .ace-nav-logout-btn {
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    color: var(--ace-text-muted) !important;
}

.oemt-nav-list > li > a:hover,
.oemt-nav-list > li.isactive > a,
#brdmenu li.isactive a {
    color: var(--ace-text) !important;
    font-weight: 600 !important;
}

.oemt-nav-bell {
    margin-right: 4px;
}

.oemt-nav-bell .fa {
    font-size: 12px;
    color: var(--ace-text-dim);
}

.oemt-nav-bell.ace-nav-bell-unread .fa {
    color: #e07070;
}

.oemt-welcome {
    padding: 8px 16px 10px !important;
    border-top: 1px solid var(--ace-border-soft);
    background: var(--ace-bg-elevated) !important;
    font-size: 11px;
    color: var(--ace-text-muted);
}

.oemt-welcome .conl,
.oemt-welcome .conr {
    margin: 0;
    padding: 0;
    list-style: none;
}

.oemt-welcome .conl li,
.oemt-welcome .conr li {
    margin: 0;
    padding: 0;
    color: var(--ace-text-muted);
}

.oemt-welcome-guest {
    margin: 0;
}

#brdstats .oemt-footer-meta {
    text-align: center;
    color: var(--ace-text-dim);
    font-size: 11px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

#brdstats .oemt-footer-copy,
#brdstats .oemt-footer-credit {
    margin: 0;
}

#brdstats .oemt-footer-credit {
    font-size: 10px;
    line-height: 1.4;
    color: var(--ace-text-dim);
}

#brdstats .oemt-footer-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

#brdstats .oemt-footer-links li {
    display: inline;
}

@media (max-width: 720px) {
    .pun {
        padding: 12px 12px 24px !important;
    }

    .oemt-header-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .oemt-nav-list {
        justify-content: flex-start;
    }
}

.pun #brddesc {
    display: none;
}

#brdmenu li.isactive a {
    font-weight: 600;
    color: var(--ace-text) !important;
}

#brdmenu li#navlogout .ace-nav-logout-form {
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
}

#brdmenu li#navlogout .ace-nav-logout-btn {
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #d4d4d3;
    font: inherit;
    line-height: inherit;
    cursor: pointer;
    text-decoration: none;
}

#brdmenu li#navlogout .ace-nav-logout-btn:hover,
#brdmenu li#navlogout .ace-nav-logout-btn:focus {
    color: #d4d4d3;
    text-decoration: underline;
    outline: none;
}

.pun .ace-admin-prod-warn {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid #8a6d00;
    background: #3a3200;
    color: #f0e6b0;
}

.pun .ace-admin-prod-warn ul {
    margin: 6px 0 0 18px;
    padding: 0;
}

.pun .ace-index-top-banners {
    --ace-index-banner-radius: 10px;
    --ace-rgb-strip-width: 4px;
    margin: 0 0 14px;
    padding: 0;
}

.pun #ace-broadcast-banner-slot,
.pun #ace-pm-unread-banner-slot {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow: visible;
}

.pun #ace-broadcast-banner-slot + #ace-pm-unread-banner-slot {
    margin-top: 8px;
}

.pun .ace-pm-unread-banner {
    margin: 0;
    padding: 10px 14px;
    box-sizing: border-box;
    width: 100%;
    border: 1px solid var(--ace-border);
    border-left: 3px solid var(--ace-accent);
    border-radius: var(--ace-index-banner-radius, 8px);
    background: var(--ace-bg-elevated);
    color: var(--ace-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}

.pun .ace-pm-unread-banner p {
    margin: 0;
    line-height: 1.3;
}

.pun .ace-pm-unread-banner a {
    color: #ffffff;
    text-decoration: none;
}

.pun .ace-pm-unread-banner a:hover,
.pun .ace-pm-unread-banner a:focus {
    color: #fff;
    text-decoration: underline;
}

.pun .ace-broadcast-banner {
    margin: 0;
    padding: 10px 16px;
    box-sizing: border-box;
    width: 100%;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    border-radius: var(--ace-index-banner-radius, 10px);
}

.pun .ace-broadcast-banner p {
    margin: 0;
    line-height: 1.35;
    font-weight: 700;
}

.pun .ace-broadcast-glow {
    box-shadow: 0 0 14px rgba(255, 61, 138, 0.45), 0 0 28px rgba(0, 240, 212, 0.2);
}

.pun .ace-broadcast-text-glow p {
    text-shadow: 0 0 8px currentColor, 0 0 16px rgba(255, 255, 255, 0.45);
}

.pun .ace-broadcast-rainbow {
    animation: ace-broadcast-rainbow-border 4s linear infinite;
    border-style: solid !important;
}

.pun .ace-broadcast-rainbow p {
    animation: ace-broadcast-rainbow-text 4s linear infinite;
}

.pun .ace-broadcast-pulse {
    animation: ace-broadcast-pulse 2.2s ease-in-out infinite;
}

.pun .ace-broadcast-wrap {
    position: relative;
    box-sizing: border-box;
    width: 100%;
}

.pun .ace-broadcast-wrap.ace-broadcast-has-rgb-strip {
    --ace-rgb-strip-width: 4px;
    padding: var(--ace-rgb-strip-width);
    border-radius: var(--ace-broadcast-radius, 10px);
    overflow: hidden;
    isolation: isolate;
}

.pun .ace-broadcast-wrap.ace-broadcast-has-rgb-strip::before {
    content: '';
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 50%;
    width: 200%;
    height: 200%;
    transform: translate(-50%, -50%);
    background: conic-gradient(
        from 0deg,
        #ff0000,
        #ff8800,
        #ffff00,
        #00ff00,
        #0088ff,
        #8800ff,
        #ff0000
    );
    animation: ace-broadcast-rgb-ring-spin var(--ace-broadcast-rgb-speed, 3s) linear infinite;
    filter: brightness(var(--ace-broadcast-rgb-brightness, 100%));
    pointer-events: none;
}

.pun .ace-broadcast-wrap.ace-broadcast-has-rgb-strip > .ace-broadcast-banner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: 100%;
    border: none !important;
    border-radius: max(0px, calc(var(--ace-broadcast-radius, 10px) - var(--ace-rgb-strip-width))) !important;
}

@keyframes ace-broadcast-rgb-ring-spin {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes ace-broadcast-rainbow-border {
    0% {
        border-color: #ff0000;
        box-shadow: 0 0 12px rgba(255, 0, 0, 0.45);
    }
    16% {
        border-color: #ff8800;
        box-shadow: 0 0 12px rgba(255, 136, 0, 0.45);
    }
    33% {
        border-color: #ffff00;
        box-shadow: 0 0 12px rgba(255, 255, 0, 0.45);
    }
    50% {
        border-color: #00ff00;
        box-shadow: 0 0 12px rgba(0, 255, 0, 0.45);
    }
    66% {
        border-color: #0088ff;
        box-shadow: 0 0 12px rgba(0, 136, 255, 0.45);
    }
    83% {
        border-color: #8800ff;
        box-shadow: 0 0 12px rgba(136, 0, 255, 0.45);
    }
    100% {
        border-color: #ff0000;
        box-shadow: 0 0 12px rgba(255, 0, 0, 0.45);
    }
}

@keyframes ace-broadcast-rainbow-text {
    0% {
        color: #ff6b6b;
    }
    16% {
        color: #ffb347;
    }
    33% {
        color: #fff59d;
    }
    50% {
        color: #81c784;
    }
    66% {
        color: #64b5f6;
    }
    83% {
        color: #ce93d8;
    }
    100% {
        color: #ff6b6b;
    }
}

@keyframes ace-broadcast-pulse {
    0%,
    100% {
        box-shadow: 0 0 8px rgba(255, 61, 138, 0.35);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 22px rgba(255, 61, 138, 0.65);
        transform: scale(1.005);
    }
}

#brdmenu li#navpmsnew.ace-nav-pm-unread a {
    color: var(--ace-accent) !important;
    font-weight: 600;
}

#brdmenu li#navpmsnew.ace-nav-pm-unread a:hover,
#brdmenu li#navpmsnew.ace-nav-pm-unread a:focus {
    color: var(--ace-accent-soft) !important;
}

#brdmenu li#navpmsnew.ace-nav-pm-unread.isactive a {
    color: var(--ace-accent) !important;
}

#navpremium a {
    color: #e61515 !important;
    font-weight: 700;
}
#navpremium a:hover {
    color: #ff4545 !important;
}
#navpremium.nav-buy-sub a {
    color: var(--ace-ui-accent) !important;
}
#navpremium.nav-buy-sub a:hover {
    color: #c4b5fd !important;
}

/* Basic member ? locked nav (visible, links to Buy Subscription) */
#brdmenu li.nav-locked a.nav-locked-link {
    color: #888 !important;
    font-weight: 600;
    cursor: not-allowed;
}
#brdmenu li.nav-locked a.nav-locked-link:hover {
    color: #aaa !important;
}
#brdmenu li.nav-locked .fa-lock {
    margin-right: 4px;
    font-size: 10px;
    opacity: 0.85;
}
#brdmenu li.nav-locked.isactive a.nav-locked-link {
    color: #eaeaea !important;
}
.pun .nav-locked-inline {
    color: #888;
    cursor: default;
}
.pun .nav-locked-inline .fa-lock {
    margin-right: 3px;
    font-size: 9px;
}
.pun #brdwelcome .ace-buy-premium-link {
    color: var(--ace-link);
    font-weight: 600;
    text-decoration: none;
}
.pun #brdwelcome .ace-buy-premium-link:hover {
    color: var(--ace-link-hover);
    text-decoration: underline;
}
.pun #ace-basic-gate.ace-basic-gate .inbox p {
    margin: 0 0 10px;
    font-size: 12px;
    line-height: 1.45;
}

/* Stripe checkout (payment.php) */
.pun .ace-payment-page .box {
    max-width: 58rem;
}
.pun .ace-payment .hidden {
    display: none !important;
}
.pun .ace-payment-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}
.pun .ace-payment-table th {
    width: 11rem;
    padding: 8px 10px 8px 0;
    text-align: left;
    vertical-align: top;
    color: #aaa;
    font-weight: 600;
}
.pun .ace-payment-table td {
    padding: 6px 0;
    vertical-align: top;
}
.pun .payment-field {
    box-sizing: border-box;
    width: 100%;
    max-width: 20rem;
    padding: 5px 8px;
    font-size: 12px;
    color: #eaeae9;
    background: #212122;
    border: 1px solid #3e3e3e;
    border-radius: 3px;
}
.pun #stripe-elements-card {
    box-sizing: border-box;
    max-width: 20rem;
    padding: 8px 10px;
    background: #212122;
    border: 1px solid #3e3e3e;
    border-radius: 3px;
}
.pun .ace-payment .buttons.centered {
    text-align: center;
    margin: 12px 0 0;
}
.pun .ace-payment-loading {
    text-align: center;
    padding: 16px;
    font-size: 12px;
    color: #b8b8b7;
}
.pun .ace-payment-confirmation {
    margin-bottom: 16px;
}
.pun .ace-payment-status {
    padding: 14px 16px;
    border-radius: 4px;
    border: 1px solid #353534;
    background: rgba(0, 0, 0, 0.2);
}
.pun .ace-payment-status h3 {
    margin: 0 0 8px;
    font-size: 14px;
}
.pun .ace-payment-status--success {
    border-left: 3px solid var(--ace-ui-accent);
}
.pun .ace-payment-status--error {
    border-left: 3px solid #a85858;
}
.pun .ace-payment-sub-note {
    margin: 0 0 14px;
    font-size: 12px;
    color: #c4c4c3;
}
.pun .ace-payment-history {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #353534;
}
.pun .ace-payment-history h3 {
    margin: 0 0 10px;
    font-size: 12px;
    color: var(--ace-role-admin);
}
.pun .ace-payment-history-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}
.pun .ace-payment-history-table th,
.pun .ace-payment-history-table td {
    border: 1px solid #353534;
    padding: 6px 8px;
    text-align: left;
}
.pun .ace-payment-history-table th {
    background: #252524;
    color: #aaa;
}

#brdmenu .nav-bell-item {
    display: inline;
    margin-right: 8px;
}
#brdmenu .nav-bell-item.ace-nav-bell-unread .fa {
    color: #e85d5d;
}

/* Avatars */
.pun .ace-avatar {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid #353534;
    background: #1a1a19;
}
.pun .ace-banner-preview {
    width: 100%;
    max-width: 36rem;
    height: 7.5rem;
    margin: 0 0 0.75rem;
    border-radius: 8px;
    border: 1px solid #5b21b6;
    background-color: #130621;
    background-size: cover;
    background-repeat: no-repeat;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}

.pun .ace-avatar-preview-wrap,
.pun .ace-profile-public-avatar {
    margin: 0 0 12px;
}
.pun .ace-personality-signature {
    margin-top: 16px;
}
.pun .ace-profile-signature {
    white-space: pre-wrap;
    word-wrap: break-word;
}
/* Topic view (#punviewtopic) ? PunBB / GameSense blockpost (cobalt base + fixes) */
#punviewtopic .postright h3 {
    position: static;
    display: block;
    overflow: visible;
    width: auto;
    left: auto;
    text-indent: 0;
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    color: #e0e0e0;
}
#punviewtopic .blockpost .postmsg p {
    margin: 0 0 10px;
}
#punviewtopic .blockpost .postmsg .bbu {
    text-decoration: underline;
}
#punviewtopic .ace-topic-notices {
    margin-bottom: 8px;
}
#punviewtopic .blockpost .postbody {
    overflow: hidden;
}
#punviewtopic .blockpost .postleft {
    float: left;
    width: 200px;
    text-align: left;
}
/* Cobalt uses border-left:18em on .postright; with our floated sidebar that double-indents body text */
#punviewtopic .blockpost .postright,
#punviewtopic .postfoot .postfootright {
    border-left: 0;
    border-left-width: 0;
}
#punviewtopic .blockpost .postright {
    float: none;
    overflow: hidden;
    text-align: left;
    padding: 0 6px;
}
#punviewtopic .blockpost .postmsg {
    width: 100%;
    max-width: none;
}
#punviewtopic .blockpost .postmsg,
#punviewtopic .blockpost .postsignature,
#punviewtopic .blockpost .postright h3 {
    text-align: left;
}
#punviewtopic .blockpost .postmsg p,
#punviewtopic .blockpost .postmsg ul,
#punviewtopic .blockpost .postmsg ol,
#punviewtopic .blockpost .postsignature p {
    text-align: left;
}
@media (max-width: 640px) {
    #punviewtopic .blockpost .postleft {
        float: none;
        width: auto;
        margin-bottom: 10px;
    }
}
#punviewtopic .postleft dd.ace-post-status strong {
    color: #8fd46a;
    font-weight: 700;
}
#punviewtopic .postleft dd.ace-post-status span {
    color: #a8a8a8;
}
#punviewtopic .postfoot .postfootleft {
    float: left;
    width: auto;
    overflow: visible;
    text-align: left;
    padding: 6px 6px 14px 6px;
}
#punviewtopic .postfoot .postfootright {
    float: right;
    width: auto;
    overflow: visible;
    text-align: right;
    padding: 6px 6px 14px 6px;
}
#punviewtopic .postfoot ul.ace-topic-mod-links li + li::before {
    content: " | ";
    color: #a8a8a8;
}
#punviewtopic .postfoot ul.ace-topic-mod-links,
#punviewtopic .postfoot .postfootright ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
#punviewtopic .postfoot ul.ace-topic-mod-links li,
#punviewtopic .postfoot .postfootright ul li {
    display: inline;
    padding: 0;
    margin: 0;
}
#punviewtopic .postfoot ul.ace-topic-mod-links li span,
#punviewtopic .postfoot .postfootright ul li span {
    white-space: nowrap;
}
#punviewtopic .blockpost .postsignature {
    margin-top: 12px;
    padding-top: 0;
    color: #b0b0b0;
}
#punviewtopic .blockpost .postsignature hr {
    display: none;
}
#punviewtopic .blockpost .postsignature p {
    margin: 0;
}
#punviewtopic .blockpost .postavatar img.ace-avatar {
    display: block;
    max-width: 150px;
    height: auto;
}
#punviewtopic .postlink-closed {
    color: #c8c8c8;
}
#punviewtopic .postfoot .ace-postfoot-link {
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    color: var(--ace-link);
    cursor: pointer;
    text-decoration: none;
}
#punviewtopic .postfoot .ace-postfoot-link:hover {
    text-decoration: underline;
}
/* Role username colours ? same classes on posts, index, search, chat, profiles */
.pun .ace-topic-mod-block {
    margin: 12px 0;
}
.pun .ace-inline-form {
    display: inline;
    margin: 0;
    padding: 0;
}
.pun .ace-inline-form .button.ace-btn-post-delete {
    font-size: 10px;
    padding: 2px 8px;
    margin: 0;
    vertical-align: middle;
}
.pun .ace-topic-mod-actions {
    margin: 14px 0 16px;
    padding: 10px 12px 12px;
    border: 1px solid #353534;
    border-radius: 6px;
    background: #242423;
}
.pun .ace-topic-mod-buttons {
    margin-bottom: 4px;
}
.pun .ace-topic-mod-actions .ace-mod-form-row {
    display: inline-block;
    margin: 6px 12px 0 0;
    vertical-align: middle;
}
.pun .ace-btn-close-topic,
.pun .ace-btn-open-topic,
.pun .ace-btn-pin-topic,
.pun .ace-btn-unpin-topic {
    font-size: 11px;
}
.pun .ace-btn-topic-delete {
    font-size: 11px;
}
.pun .ace-topic-reply {
    margin-top: 16px;
}
.pun #postform .ace-admin-topic-replies {
    margin: 12px 0 0;
    padding: 10px 12px;
    border: 1px solid #353534;
    background: #242423;
}
.pun #postform .ace-admin-topic-replies legend {
    padding: 0 6px;
    font-weight: 700;
}
.pun #postform .ace-topic-replies-lead {
    margin-top: 0;
    margin-bottom: 8px;
}
.pun #postform label.ace-topic-reply-opt {
    display: block;
    margin: 4px 0 0;
}
.pun .ace-moderation-hint {
    margin: 0 0 8px;
}
.pun .postmsg {
    white-space: pre-wrap;
    word-wrap: break-word;
    color: var(--ace-text);
}
/* Legacy simple .post (search snippets etc.) */
.pun .post:not(.blockpost) {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #333;
    font-size: 11px;
}

#pun2fa .infldset p {
    word-break: break-all;
}

#pun2fa .ace-twofa-qr-wrap {
    margin: 10px 0 16px;
}

#pun2fa .ace-twofa-code-field {
    margin: 14px 0 16px;
}

#pun2fa .ace-twofa-code-label {
    display: block;
    margin: 0 0 10px;
    font-weight: 700;
    line-height: 1.4;
}

#pun2fa .ace-twofa-code-input {
    display: block;
    width: 12em;
    max-width: 100%;
    margin: 0;
    padding: 6px 8px;
}

.pun .ace-twofa-qr-wrap {
    margin: 12px 0 14px;
}
.pun .ace-twofa-qr {
    display: inline-block;
    padding: 12px;
    background: #fff;
    border: 1px solid #353534;
    line-height: 0;
}
.pun .ace-twofa-qr img,
.pun .ace-twofa-qr canvas {
    display: block;
    width: 200px;
    height: 200px;
}
.pun code.ace-twofa-secret,
.pun code.ace-twofa-recovery {
    display: inline-block;
    margin: 6px 0;
    padding: 8px 10px;
    background: #1a1a19;
    border: 1px solid #353534;
    font-size: 13px;
    letter-spacing: 0.08em;
    word-break: break-all;
}
.pun code.ace-twofa-recovery {
    font-size: 12px;
    line-height: 1.5;
}

.pun .msg-ok {
    background: var(--ace-bg-elevated);
    border: 1px solid var(--ace-border);
    border-left: 3px solid #6eb87a;
    color: var(--ace-text);
    padding: 10px 12px;
    margin-bottom: 12px;
}
/* Register page (PunBB-style layout) */
.oemt-auth-page .g-recaptcha {
    margin: 10px 0 6px;
}

.oemt-auth-page .ace-login-flash {
    margin: 0 0 12px;
}

.oemt-auth-page .ace-login-flash .msg-err {
    margin-bottom: 0;
}

.oemt-auth-page .ace-login-2fa-label {
    display: flex;
    margin-top: 0;
}

.oemt-auth-page .ace-login-2fa-hint {
    margin: 0.35rem 0 0;
    font-size: 0.75rem;
    color: var(--oemt-dim, #656570);
    line-height: 1.45;
}

#profile #discord_reset_reason.contains-error,
#profile #discord_id_link.contains-error {
    border-color: #c0392b;
    background: #2a1a1a;
}
.pun #profile.ace-profile .ace-prof-discord-block {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--ace-border);
}
.pun #profile.ace-profile .ace-prof-discord-heading {
    margin: 0 0 8px;
    font-size: 12px;
}
.pun #profile.ace-profile .ace-prof-discord-status {
    margin: 0 0 6px;
    font-size: 11px;
}
.pun #profile.ace-profile .ace-prof-discord-id {
    font-size: 11px;
}
.pun #profile.ace-profile .ace-prof-discord-note,
.pun #profile.ace-profile .ace-prof-email-note {
    margin: 6px 0 0;
}
.pun #profile.ace-profile .ace-prof-discord-actions {
    margin-top: 8px;
}
.pun #profile.ace-profile .ace-prof-discord-pending {
    margin: 8px 0 0;
}

#punlogin #login-2fa .ace-login-2fa-label input {
    width: 100%;
    max-width: 28rem;
    box-sizing: border-box;
}

/* Muted admin / config hints (register captcha note, board stats, etc.) */
.pun .path-note {
    font-size: 10px;
    color: #888;
    margin: 0.75em 0 0;
    line-height: 1.35;
}

.pun .path-note:first-child {
    margin-top: 0;
}

.pun .path-note code {
    font-size: 9px;
}

.pun #ace-admin .ace-admin-sensitive,
.pun #ace-admin.ace-admin .ace-admin-sensitive {
    display: inline-block;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    filter: blur(6px);
    transition: filter 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    cursor: pointer;
    user-select: none;
    vertical-align: baseline;
}
.pun #ace-admin .ace-admin-sensitive:hover,
.pun #ace-admin.ace-admin .ace-admin-sensitive:hover {
    background: transparent;
    box-shadow: none;
}
.pun #ace-admin .ace-admin-sensitive:focus,
.pun #ace-admin .ace-admin-sensitive:focus-visible,
.pun #ace-admin.ace-admin .ace-admin-sensitive:focus,
.pun #ace-admin.ace-admin .ace-admin-sensitive:focus-visible {
    outline: none;
    box-shadow: none;
    background: transparent;
    border: none;
}
.pun #ace-admin .ace-admin-sensitive.is-revealed,
.pun #ace-admin.ace-admin .ace-admin-sensitive.is-revealed {
    filter: blur(0);
    user-select: text;
    cursor: text;
    outline: none;
    box-shadow: none;
    background: transparent;
    border: none;
}
@media (prefers-reduced-motion: reduce) {
    .pun #ace-admin .ace-admin-sensitive,
    .pun #ace-admin.ace-admin .ace-admin-sensitive {
        transition: none;
    }
}

/* Admin forum tag — glow + subtle pulse */
@keyframes ace-admin-glow-pulse {
    0%,
    100% {
        text-shadow:
            0 0 4px rgba(200, 230, 80, 0.72),
            0 0 12px rgba(200, 230, 80, 0.44),
            0 0 22px rgba(200, 230, 80, 0.26);
        filter: drop-shadow(0 0 4px rgba(200, 230, 80, 0.32));
    }
    50% {
        text-shadow:
            0 0 6px rgba(200, 230, 80, 0.82),
            0 0 16px rgba(200, 230, 80, 0.58),
            0 0 28px rgba(200, 230, 80, 0.34);
        filter: drop-shadow(0 0 8px rgba(200, 230, 80, 0.48));
    }
}

@keyframes ace-bot-glow-pulse {
    0%,
    100% {
        text-shadow:
            0 0 4px rgba(0, 170, 0, 0.72),
            0 0 12px rgba(0, 170, 0, 0.44),
            0 0 22px rgba(0, 170, 0, 0.26);
        filter: drop-shadow(0 0 4px rgba(0, 170, 0, 0.32));
    }
    50% {
        text-shadow:
            0 0 6px rgba(0, 170, 0, 0.82),
            0 0 16px rgba(0, 170, 0, 0.58),
            0 0 28px rgba(0, 170, 0, 0.34);
        filter: drop-shadow(0 0 8px rgba(0, 170, 0, 0.48));
    }
}

/*
 * Role username colours ? !important beats cobalt .pun a:link (var(--ace-link)).
 * Same class (usergroup-*) on posts, lists, profiles, chat, and online.
 */
.pun .usergroup-admin,
.pun a.usergroup-admin,
.pun a.usergroup-admin:link,
.pun a.usergroup-admin:visited,
.pun span.usergroup-admin {
    color: #c8e650 !important;
    font-weight: 700;
}

/* Admin glow — all username placements (posts, forums, header, search, online, chat) */
.pun a.usergroup-admin,
.pun a.usergroup-admin:link,
.pun a.usergroup-admin:visited,
.pun span.usergroup-admin,
#punviewtopic .postleft dt a.usergroup-admin,
.pun .byuser a.usergroup-admin,
.pun #brdwelcome a.usergroup-admin,
.pun #brdwelcome span.usergroup-admin,
.pun .ace-search-meta a.usergroup-admin,
.pun .ace-search-meta span.usergroup-admin,
.pun .ace-forum-table a.usergroup-admin,
.pun #profile a.usergroup-admin,
.pun #profile span.usergroup-admin,
.pun #viewprofile a.usergroup-admin,
.pun #viewprofile span.usergroup-admin,
.pun .inbox a.usergroup-admin,
.pun .inbox span.usergroup-admin,
.pun #shout a.usergroup-admin,
.pun #shout span.usergroup-admin,
.pun #onlinelist dd a.usergroup-admin,
.pun #ace-admin a.usergroup-admin,
.pun #ace-admin span.usergroup-admin {
    text-shadow:
        0 0 4px rgba(200, 230, 80, 0.72),
        0 0 12px rgba(200, 230, 80, 0.44),
        0 0 20px rgba(200, 230, 80, 0.26);
    filter: drop-shadow(0 0 5px rgba(200, 230, 80, 0.35));
    animation: ace-admin-glow-pulse 2.2s ease-in-out infinite;
}

.pun .usergroup-5,
.pun a.usergroup-5,
.pun a.usergroup-5:link,
.pun a.usergroup-5:visited,
.pun span.usergroup-5,
.pun a.usergroup-subscriber,
.pun a.usergroup-subscriber:link,
.pun a.usergroup-subscriber:visited,
.pun span.usergroup-subscriber {
    color: #e61515 !important;
    font-weight: 700;
}
.pun a.usergroup-5:hover,
.pun a.usergroup-subscriber:hover {
    color: #ff4545 !important;
}

/* Banned (GameSense usergroup-6) */
.pun .usergroup-6,
.pun a.usergroup-6,
.pun a.usergroup-6:link,
.pun a.usergroup-6:visited,
.pun span.usergroup-6 {
    color: var(--ace-link) !important;
    font-weight: 700;
}
.pun a.usergroup-6:hover {
    color: #8fc0f0 !important;
}

.pun .usergroup-member,
.pun a.usergroup-member,
.pun a.usergroup-member:link,
.pun a.usergroup-member:visited,
.pun span.usergroup-member {
    color: #e61515 !important;
    font-weight: 700;
}
.pun a.usergroup-member:hover {
    color: #ff4545 !important;
}

.pun .usergroup-player,
.pun a.usergroup-player,
.pun a.usergroup-player:link,
.pun a.usergroup-player:visited,
.pun span.usergroup-player {
    color: var(--ace-role-mod) !important;
    font-weight: 600;
}
.pun a.usergroup-player:hover {
    color: #bfdbfe !important;
}

.pun .usergroup-bot,
.pun a.usergroup-bot,
.pun a.usergroup-bot:link,
.pun a.usergroup-bot:visited,
.pun span.usergroup-bot {
    color: #00aa00 !important;
    font-weight: 700;
}

.pun #shout span.usergroup-bot {
    text-shadow:
        0 0 4px rgba(0, 170, 0, 0.72),
        0 0 12px rgba(0, 170, 0, 0.44),
        0 0 20px rgba(0, 170, 0, 0.26);
    filter: drop-shadow(0 0 5px rgba(0, 170, 0, 0.35));
    animation: ace-bot-glow-pulse 2.2s ease-in-out infinite;
}

/* Topic posts — reinforce role colours in sidebar */
#punviewtopic .postleft dt a.usergroup-admin {
    color: #c8e650 !important;
    background: none !important;
}
#punviewtopic .postleft dt a.usergroup-5 {
    color: #e61515 !important;
}
#punviewtopic .postleft dt a.usergroup-6 {
    color: var(--ace-link) !important;
}
#punviewtopic .postleft dt a.usergroup-member {
    color: #e61515 !important;
}
#punviewtopic .postleft dt a.usergroup-player {
    color: var(--ace-role-mod) !important;
}
#punviewtopic .postleft dd.usertitle strong {
    color: #b0b0b0;
    font-weight: 700;
}
#punviewtopic .postleft dd.usertitle.ace-post-title-banned strong {
    color: #e61515 !important;
}
#punviewtopic .postleft dd a {
    color: var(--ace-link);
}
#punviewtopic .postleft dd a:hover {
    text-decoration: underline;
}

/* Forum / index ?by? lines */
.pun .byuser a.usergroup-5,
.pun .byuser a.usergroup-player {
    font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
    .pun a.usergroup-admin,
    .pun span.usergroup-admin,
    #punviewtopic .postleft dt a.usergroup-admin,
    .pun .byuser a.usergroup-admin,
    .pun #brdwelcome a.usergroup-admin,
    .pun #brdwelcome span.usergroup-admin,
    .pun #shout a.usergroup-admin,
    .pun #shout span.usergroup-admin,
    .pun #onlinelist dd a.usergroup-admin,
    .pun #ace-admin a.usergroup-admin,
    .pun #ace-admin span.usergroup-admin {
        animation: none;
    }
    .pun #shout span.usergroup-bot {
        animation: none;
    }
}

.pun table.ace-invite-table {
    width: 100%;
    max-width: 640px;
    border-collapse: collapse;
    margin-top: 8px;
    font-size: 11px;
}
.pun table.ace-invite-table th,
.pun table.ace-invite-table td {
    border: 1px solid #353534;
    padding: 6px 8px;
    text-align: left;
}
.pun table.ace-invite-table th {
    background: #252524;
    color: #aaa;
}
.pun code.ace-invite-code,
.pun .ace-invite-code-input {
    word-break: break-all;
}
.pun .ace-invite-code-input {
    max-width: 100%;
    box-sizing: border-box;
}
.pun #profile.ace-profile .ace-prof-invite-shards {
    margin: 0 0 10px;
    font-size: 12px;
    color: #fbbf24;
}
.pun #profile.ace-profile .ace-prof-invite-forge {
    margin: 0 0 8px;
    font-size: 11px;
}
.pun #profile.ace-profile .ace-prof-invite-roulette-note {
    margin-top: 8px;
}
.pun .ace-invite-type-tag {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 6px;
    border: 1px solid #3f3f3f;
    border-radius: 2px;
    font-size: 10px;
    color: #b9b9b9;
    background: #1e1e1e;
    vertical-align: middle;
}

/* Basic tier (GameSense-style): minimal welcome row, no topic shortcuts */
.pun.ace-tier-basic #brdwelcome .conl {
    float: none;
    margin: 0;
}
.pun.ace-tier-basic #brdwelcome .conl li {
    margin: 0;
    color: #eaeaea;
}
.pun.ace-tier-basic #brdwelcome .conl li + li {
    margin-top: 2px;
}
.pun.ace-tier-basic .ace-index-mark-read-bottom {
    margin: 4px 0 10px;
    padding-left: 12px;
}
.pun.ace-tier-basic #brdstats.ace-brdstats-basic {
    margin: 6px 0 10px;
}
.pun.ace-tier-basic #brdstats.ace-brdstats-basic .box .inbox {
    padding: 6px 12px 7px;
}
.pun.ace-tier-basic #onlinelist.ace-online-list dt.ace-online-count {
    font-weight: 700;
    color: #eaeaea;
}
.pun.ace-tier-basic #onlinelist.ace-online-list dt.ace-online-count strong {
    font-weight: 700;
    color: #eaeaea;
}
.pun.ace-tier-basic #onlinelist.ace-online-list .ace-online-names a.usergroup-member {
    color: #eaeaea !important;
    font-weight: 400;
}

/* Board stats — compact online list (auto height, grows with users) */
.pun #brdstats.ace-brdstats {
    margin: 8px 0 10px;
}
.pun #brdstats.ace-brdstats .box .inbox {
    padding: 4px 12px 5px;
}
.pun #onlinelist.ace-online-list {
    margin: 0;
    line-height: 1.3;
    display: block;
}
.pun #onlinelist.ace-online-list dt.ace-online-count,
.pun #onlinelist.ace-online-list dd.ace-online-names {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
    float: none;
    clear: none;
}
.pun #onlinelist.ace-online-list dt.ace-online-count {
    margin: 0 0 2px;
    font-weight: 400;
    color: #c8c8c8;
    font-size: 11px;
}
.pun #onlinelist.ace-online-list dd.ace-online-names {
    font-size: 11px;
    line-height: 1.35;
}
.pun #onlinelist.ace-online-list .ace-online-label {
    font-weight: 700;
    color: #d4d4d3;
}
.pun #onlinelist.ace-online-list dd.ace-online-names a {
    display: inline;
    white-space: normal;
}
.pun #onlinelist .ace-online-names a.usergroup-admin {
    animation: none;
}
.pun #onlinelist dd a:hover,
.pun .byuser a:hover,
.pun .ace-search-meta .usergroup-admin:hover,
.pun .ace-search-meta a:hover {
    text-decoration: underline;
}

.pun .msg-err {
    background: #2a2020;
    border: 1px solid #ba2323;
    color: #e8c8c8;
    padding: 10px 12px;
    margin-bottom: 12px;
}

/* Profile ? wider main column, usable field sizes */
.pun #profile.ace-profile.block2col .blockmenu {
    float: left;
    width: 13em;
    max-width: 32%;
}
.pun #profile.ace-profile.block2col .blockform {
    float: none;
    width: auto;
    overflow: hidden;
    margin-left: 14.5em;
    min-width: min(100%, 18rem);
}
.pun #profile.ace-profile.block2col .blockform > .box {
    min-height: 0;
}
.pun #profile.ace-profile-personal-page .ace-profile-personal-layout,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-personal-layout {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
}
.pun #profile.ace-profile-personal-page .ace-profile-personal-form-stack,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-personal-form-stack {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    clear: both;
    float: none;
}
.pun #profile.ace-profile-personal-page .ace-profile-personal-full-row,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-personal-full-row {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
    clear: both;
    float: none;
}
.pun #profile.ace-profile .ace-profile-preview-fieldset {
    margin: 0;
    min-height: 0;
}
.pun #profile.ace-profile .ace-profile-preview-note {
    margin: 0 0 10px;
}
.pun #profile.ace-profile .ace-profile-personal-preview {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ace-border);
    border-radius: 6px;
    background: #050505;
    min-height: 26rem;
    max-height: 34rem;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview {
    margin: 0;
    min-height: 26rem;
    max-height: 34rem;
    height: 100%;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview .oemt-userpage {
    padding: 1.5rem 1rem 0;
    max-width: 100%;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview .oemt-userpage-head {
    gap: 0.85rem;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview .oemt-userpage-avatar {
    width: 5.5rem;
    height: 5.5rem;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview .oemt-userpage-name {
    font-size: 1.35rem;
}
.pun #profile.ace-profile .ace-profile-personal-preview .oemt-userpage-wrap--settings-preview .oemt-userpage-audio {
    right: 0.65rem;
    bottom: 0.65rem;
    transform: scale(0.9);
    transform-origin: bottom right;
}
.pun #profile.ace-profile .ace-profile-personal-preview a {
    pointer-events: none;
    cursor: default;
}
.pun #profile.ace-profile .ace-profile-preview-open {
    margin: 10px 0 0;
    font-size: 11px;
}
.pun #profile.ace-profile .ace-profile-preview-open a {
    pointer-events: auto;
    cursor: pointer;
}
.pun #profile.ace-profile .ace-profile-personal-form-fields {
    margin: 0;
    width: 100%;
    clear: both;
    float: none;
}
.pun #profile.ace-profile-personal-page .ace-profile-personal-media-col,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-personal-media-col {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    height: 100%;
    box-sizing: border-box;
}
.pun #profile.ace-profile-personal-page .ace-profile-connections-fieldset,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-connections-fieldset,
.pun #profile.ace-profile-personal-page .ace-profile-custom-tags-fieldset,
.pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-custom-tags-fieldset {
    grid-column: 1 / -1;
    float: none;
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    box-sizing: border-box;
}
.pun #profile.ace-profile .ace-profile-custom-tags-lead {
    margin: 0 0 10px;
    font-size: 11px;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-custom-tags-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--ace-border);
    border-radius: 4px;
    overflow: hidden;
}
.pun #profile.ace-profile .ace-profile-custom-tags-item {
    border-bottom: 1px solid var(--ace-border);
    background: rgba(0, 0, 0, 0.08);
}
.pun #profile.ace-profile .ace-profile-custom-tags-item:last-child {
    border-bottom: 0;
}
.pun #profile.ace-profile .ace-profile-custom-tags-toggle {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 9px 10px;
    margin: 0;
    cursor: pointer;
}
.pun #profile.ace-profile .ace-profile-custom-tags-toggle input[type="checkbox"] {
    margin: 0;
}
.pun #profile.ace-profile .ace-profile-custom-tags-preview {
    display: inline-flex;
    align-items: center;
    overflow: visible;
    position: relative;
    z-index: 1;
}
.pun #profile.ace-profile .ace-profile-custom-tags-toggle-text {
    font-size: 11px;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-custom-tags-request {
    margin-top: 12px;
}
.pun #profile.ace-profile .ace-profile-custom-tags-request-btn {
    font-size: 11px;
}
.pun #profile.ace-profile .ace-profile-custom-tags-pending {
    margin: 0;
    font-size: 11px;
}

/* Profile tag request modal */
body.ace-modal-open {
    overflow: hidden;
}
.ace-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    box-sizing: border-box;
}
.ace-modal[hidden] {
    display: none !important;
}
.ace-modal.is-open {
    display: flex;
}
.ace-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(2px);
}
.ace-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 28rem);
    max-height: calc(100vh - 2.5rem);
    overflow: auto;
    border: 1px solid #3a3a42;
    border-radius: 8px;
    background: #1a1a1f;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55);
    color: #e5e5e5;
}
.ace-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 10px;
    border-bottom: 1px solid #2c2c32;
}
.ace-modal-title {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #f3f3f3;
}
.ace-modal-close {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #a8a8a8;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.ace-modal-close:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}
.ace-modal-body {
    padding: 12px 16px 4px;
}
.ace-modal-lead {
    margin: 0 0 12px;
    font-size: 11px;
    color: var(--ace-text-muted);
    line-height: 1.45;
}
.ace-modal-body .ace-prof-field {
    margin-bottom: 12px;
}
.ace-modal-body textarea {
    width: 100%;
    min-height: 6.5rem;
    resize: vertical;
    box-sizing: border-box;
}
.ace-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 16px 16px;
    border-top: 1px solid #2c2c32;
}
.pun #ace-admin.ace-admin .ace-admin-request-tag-details {
    margin: 6px 0 0;
    font-size: 10px;
    line-height: 1.45;
}
.pun #ace-admin.ace-admin .ace-admin-request-tag-details dt {
    margin: 4px 0 0;
    color: #9ca3af;
    font-weight: 600;
}
.pun #ace-admin.ace-admin .ace-admin-request-tag-details dt:first-child {
    margin-top: 0;
}
.pun #ace-admin.ace-admin .ace-admin-request-tag-details dd {
    margin: 2px 0 0;
    color: #e5e5e5;
}
.pun #ace-admin.ace-admin .ace-admin-request-reason {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.45;
    color: #c4c4c4;
}
@media (max-width: 760px) {
    .pun #profile.ace-profile-personal-page .ace-profile-personal-form-stack,
    .pun #profile.ace-profile .blockform.ace-profile-personal-page .ace-profile-personal-form-stack {
        grid-template-columns: minmax(0, 1fr);
    }
}
.pun #profile.ace-profile .ace-profile-connection-type-hint {
    margin: 0 0 8px;
    font-size: 10px;
}
.pun #profile.ace-profile .ace-profile-connections-fieldset legend {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 10px;
}
.pun #profile.ace-profile .ace-profile-connections-lead {
    margin: 0 0 10px;
    font-size: 11px;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-discord-box {
    margin: 0 0 12px;
    padding: 8px 10px;
    border: 1px solid var(--ace-border);
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.12);
}
.pun #profile.ace-profile .ace-profile-discord-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 12px;
}
.pun #profile.ace-profile .ace-profile-discord-hint {
    margin: 0 0 12px;
}
.pun #profile.ace-profile .ace-profile-connections-list-title {
    margin: 14px 0 8px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-connections-list-wrap {
    margin: 0;
    max-width: 100%;
    border: 1px solid var(--ace-border);
    border-radius: 4px;
    overflow-x: auto;
    background: rgba(0, 0, 0, 0.08);
}
.pun #profile.ace-profile table.ace-profile-connections-table {
    width: 100%;
    min-width: 32rem;
    border-collapse: collapse;
    font-size: 11px;
}
.pun #profile.ace-profile table.ace-profile-connections-table th,
.pun #profile.ace-profile table.ace-profile-connections-table td {
    border: 1px solid var(--ace-border);
    padding: 6px 8px;
    text-align: left;
    vertical-align: middle;
}
.pun #profile.ace-profile table.ace-profile-connections-table th {
    background: #252524;
    color: #aaa;
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.pun #profile.ace-profile table.ace-profile-connections-table tbody tr:nth-child(even):not(.ace-profile-connections-row--empty) {
    background: rgba(0, 0, 0, 0.12);
}
.pun #profile.ace-profile table.ace-profile-connections-table tbody tr:last-child td {
    border-bottom: 1px solid var(--ace-border);
}
.pun #profile.ace-profile .ace-profile-connections-row--empty td {
    color: var(--ace-text-muted);
    font-style: italic;
    text-align: center;
}
.pun #profile.ace-profile .ace-profile-connection-type {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    text-transform: lowercase;
    color: #c8d0e0;
    background: rgba(255, 255, 255, 0.06);
    text-align: center;
}
.pun #profile.ace-profile .ace-profile-connections-label-cell {
    font-weight: 600;
}
.pun #profile.ace-profile .ace-profile-connections-url-cell {
    min-width: 10rem;
    word-break: break-all;
}
.pun #profile.ace-profile .ace-profile-connections-url-cell a {
    color: #9ab83a;
}
.pun #profile.ace-profile .ace-profile-connections-url-cell a:hover {
    color: #b8d45a;
}
.pun #profile.ace-profile .ace-profile-connections-actions-cell {
    white-space: nowrap;
}
.pun #profile.ace-profile .ace-profile-connection-remove {
    font-size: 10px;
    padding: 3px 8px;
    color: #c66;
    border-color: rgba(180, 80, 80, 0.45);
    background: rgba(120, 40, 40, 0.18);
}
.pun #profile.ace-profile .ace-profile-connection-remove:hover {
    color: #f0b0b0;
    border-color: rgba(200, 90, 90, 0.55);
    background: rgba(140, 50, 50, 0.28);
}
.pun #profile.ace-profile .ace-profile-connection-add {
    margin: 0 0 4px;
    padding: 10px;
    border: 1px dashed var(--ace-border);
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.08);
}
.pun #profile.ace-profile .ace-profile-connection-add-title {
    margin: 0 0 8px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-connection-add-row {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 0.9fr) minmax(0, 1.3fr) auto;
    gap: 8px;
    align-items: end;
}
@media (max-width: 820px) {
    .pun #profile.ace-profile .ace-profile-connection-item {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .pun #profile.ace-profile .ace-profile-connection-badge {
        grid-column: 1 / -1;
        justify-self: start;
    }
    .pun #profile.ace-profile .ace-profile-connection-add-row {
        grid-template-columns: minmax(0, 1fr);
    }
}
.pun #profile.ace-profile .ace-profile-connection-add-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    min-width: 0;
}
.pun #profile.ace-profile .ace-profile-connection-add-label-text {
    font-size: 10px;
    color: var(--ace-text-muted);
}
.pun #profile.ace-profile .ace-profile-optional {
    font-weight: 400;
    opacity: 0.85;
}
.pun #profile.ace-profile .ace-profile-connection-add-field select,
.pun #profile.ace-profile .ace-profile-connection-add-field input {
    width: 100%;
    box-sizing: border-box;
}
.pun #profile.ace-profile .ace-profile-connection-add-btn {
    white-space: nowrap;
    min-height: 28px;
    align-self: end;
}
.pun #profile.ace-profile .ace-profile-flash {
    margin-bottom: 8px;
}
.pun #profile.ace-profile .ace-profile-flash .msg-ok,
.pun #profile.ace-profile .ace-profile-flash .msg-err {
    padding: 8px 10px;
    margin-bottom: 0;
}
.pun #profile.ace-profile .blockform .inbox fieldset {
    padding: 9px 11px 10px;
    margin: 0 0 9px;
    border: 1px solid var(--ace-border);
    background: var(--ace-bg-input);
    box-shadow: none;
}
.pun #profile.ace-profile .blockform .inbox fieldset legend {
    padding: 0 6px;
    font-weight: 600;
    color: var(--ace-text-muted) !important;
    text-shadow: none;
    filter: none;
    animation: none;
}
/* Display (#profile5) and Essentials (#profile1) — Cobalt PunBB fieldset / .infldset / .rbox */
.pun #profile.ace-profile .blockform form#profile5 > .inform fieldset,
.pun #profile.ace-profile .blockform form#profile1 > .inform fieldset,
.pun #profile.ace-profile .blockform form#profile2 > .inform fieldset {
    padding: 0 12px;
    margin: 0 0 12px;
    border-style: solid;
    border-width: 1px;
    border-color: var(--ace-border);
    background: var(--ace-bg-input);
}
.pun #profile.ace-profile .blockform form#profile5 > .inform fieldset legend,
.pun #profile.ace-profile .blockform form#profile1 > .inform fieldset legend,
.pun #profile.ace-profile .blockform form#profile2 > .inform fieldset legend {
    padding: 0 6px;
    font-weight: 600;
    color: var(--ace-text-muted) !important;
    text-shadow: none;
    filter: none;
    animation: none;
}
.pun #profile.ace-profile label.ace-prof-field {
    display: block;
    margin: 7px 0 0;
}
.pun #profile.ace-profile fieldset > label.ace-prof-field:first-of-type,
.pun #profile.ace-profile fieldset > p + label.ace-prof-field {
    margin-top: 0;
}
.pun #profile.ace-profile label.ace-prof-field input[type="text"],
.pun #profile.ace-profile label.ace-prof-field input[type="email"],
.pun #profile.ace-profile label.ace-prof-field input[type="url"],
.pun #profile.ace-profile label.ace-prof-field select {
    width: 100%;
    max-width: 36rem;
    min-width: min(100%, 14rem);
    box-sizing: border-box;
    padding: 7px 9px;
    margin-top: 3px;
}
.pun #profile.ace-profile label.ace-prof-field textarea {
    width: 100%;
    max-width: 42rem;
    min-height: 10em;
    box-sizing: border-box;
    padding: 8px 9px;
    margin-top: 3px;
}
.pun #profile.ace-profile .inbox fieldset label {
    display: block;
    margin: 5px 0 0;
}
.pun #profile.ace-profile .inbox fieldset label:has(> input[type="checkbox"]),
.pun #profile.ace-profile .inbox fieldset label:has(> input[type="radio"]) {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    line-height: 1.4;
}
.pun #profile.ace-profile .inbox fieldset label input[type="checkbox"],
.pun #profile.ace-profile .inbox fieldset label input[type="radio"] {
    width: 0.875rem;
    height: 0.875rem;
    min-width: 0.875rem;
    min-height: 0.875rem;
    margin: 0.1rem 0 0;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #6a9fd4;
}
.pun #profile.ace-profile .inbox fieldset > label:first-child {
    margin-top: 0;
}
.pun #profile.ace-profile table.ace-invite-table {
    max-width: 100%;
    margin-top: 6px;
}
.pun #profile.ace-profile .path-note {
    margin-top: 0.5em;
}
.pun #profile.ace-profile fieldset > p:not(.buttons) {
    margin: 0 0 6px;
}
.pun #profile.ace-profile .buttons {
    margin: 8px 0 0;
}

/* Public profile (viewing another user) */
.pun #viewprofile.ace-viewprofile .fakeform {
    padding: 0 12px 12px;
}
.pun #viewprofile.ace-viewprofile fieldset {
    margin-top: 12px;
}
.pun #viewprofile.ace-viewprofile dl {
    margin: 0;
}
.pun #viewprofile.ace-viewprofile dt {
    float: left;
    clear: left;
    width: 7rem;
    margin: 0;
    padding: 4px 10px 4px 0;
    font-weight: 700;
    color: #b8b8b7;
}
.pun #viewprofile.ace-viewprofile dd {
    margin: 0 0 0 7rem;
    padding: 4px 0;
    color: #eaeae9;
}
.pun #viewprofile.ace-viewprofile dd::after {
    content: "";
    display: block;
    clear: both;
}
.pun #viewprofile.ace-viewprofile .pmsnew a {
    font-weight: 600;
}

@media (max-width: 720px) {
    .pun #profile.ace-profile.block2col .blockmenu,
    .pun #profile.ace-profile.block2col .blockform {
        float: none;
        width: 100%;
        max-width: none;
        margin-left: 0;
    }
}

/* Admin ? layout + panels (matches forum ?block? + Ace accents) */
.pun #ace-admin.ace-admin .ace-admin-inbox {
    max-width: none;
}
.pun #ace-admin.ace-admin .ace-admin-lead {
    max-width: 58rem;
    margin: 0 0 14px;
    padding: 0 2px;
    font-size: 12px;
    line-height: 1.45;
    color: #b8b8b7;
}
.pun #ace-admin.ace-admin .ace-admin-flash.msg-ok,
.pun #ace-admin.ace-admin .ace-admin-flash.msg-err {
    max-width: 58rem;
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-grid {
    box-sizing: border-box;
    display: grid;
    gap: 16px 20px;
    grid-template-columns: 1fr;
    max-width: 58rem;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 880px) {
    .pun #ace-admin.ace-admin .ace-admin-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
        align-items: start;
    }
}
.pun #ace-admin.ace-admin .ace-admin-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel {
    margin: 0;
    padding: 8px 0 16px;
    border: 1px solid #3d3d3c;
    border-radius: 6px;
    background: linear-gradient(180deg, #2a2a29 0%, #232322 100%);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel legend {
    margin: 0 0 0 10px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ace-role-admin);
    border: 1px solid #454544;
    border-radius: 4px;
    background: #1e1e1d;
}
.pun #ace-admin.ace-admin .ace-admin-count {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #1a1a19;
    background: var(--ace-role-admin);
    border-radius: 999px;
    vertical-align: middle;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-hint,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-form,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-card,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-banlist {
    margin-left: 14px;
    margin-right: 14px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-hint {
    margin-top: 12px;
    margin-bottom: 0;
    padding: 10px 12px;
    font-size: 11px;
    line-height: 1.45;
    color: #c4c4c3;
    background: rgba(0, 0, 0, 0.2);
    border-left: 3px solid #6a9fd4;
    border-radius: 0 4px 4px 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-hint code {
    font-size: 10px;
    color: #e0e0df;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-hint.ace-admin-hint--warn {
    border-left-color: #a85858;
    background: rgba(55, 32, 32, 0.22);
    color: #ddd4d4;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-hint.ace-admin-hint--spaced {
    margin-top: 12px;
}
.pun #ace-admin.ace-admin .ace-admin-roulette-settings-form {
    margin-bottom: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-roulette-unlimited-toggle {
    margin-top: 8px;
}
.pun #ace-admin.ace-admin .ace-admin-invite-clear-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.pun #ace-admin.ace-admin .ace-admin-forum-single-panel {
    margin-top: 14px;
}
.pun #ace-admin.ace-admin .ace-admin-forum-board-pick {
    margin: 10px 0 12px;
    padding: 10px 12px;
    border: 1px solid #2c2c32;
}
.pun #ace-admin.ace-admin .ace-admin-forum-board-pick-hint {
    display: block;
    margin-left: 22px;
    color: #9a9a98;
    font-size: 11px;
    font-weight: 400;
}
.pun #ace-admin.ace-admin .ace-admin-forum-list-wrap {
    overflow-x: auto;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified {
    table-layout: fixed;
    width: 100%;
    min-width: 42rem;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-col-board {
    width: 28%;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-col-rules {
    width: auto;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-col-topics {
    width: 4.5rem;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-col-delete {
    width: 9.5rem;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-category-row td {
    padding: 14px 10px 8px;
    background: #242423;
    border-top: 1px solid #353534;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified tbody > .ace-admin-forum-category-row:first-child td {
    border-top: none;
}
.pun #ace-admin.ace-admin .ace-admin-forum-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
}
.pun #ace-admin.ace-admin .ace-admin-forum-section-title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #e8e8e6;
}
.pun #ace-admin.ace-admin .ace-admin-forum-delete-section-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.pun #ace-admin.ace-admin .ace-admin-forum-delete-cell form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.pun #ace-admin.ace-admin .ace-admin-forum-delete-confirm-inline {
    margin: 0;
}
.pun #ace-admin.ace-admin .ace-admin-forum-category-fieldset {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid #2c2c32;
}
.pun #ace-admin.ace-admin .ace-admin-forum-category-new {
    margin-top: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-forum-desc {
    display: block;
    margin-top: 2px;
    color: #9a9a98;
    font-size: 11px;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified td,
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified th {
    vertical-align: top;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-rules-cell {
    font-size: 11px;
    line-height: 1.45;
    color: #b8b8b7;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-topics-cell {
    text-align: center;
    vertical-align: middle;
}
.pun #ace-admin.ace-admin table.ace-admin-forum-table--unified .ace-admin-forum-delete-cell {
    text-align: right;
    vertical-align: middle;
    white-space: nowrap;
}
.pun #ace-admin.ace-admin .ace-admin-hint .ace-admin-hint-muted {
    font-weight: 400;
    color: #b8b8b7;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription {
    border-color: #3d4a38;
    background: linear-gradient(180deg, #2a2b28 0%, #232322 100%);
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > legend {
    color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > .ace-admin-hint,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > .ace-admin-moderation-grid,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > .ace-admin-form {
    margin-left: 14px;
    margin-right: 14px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > .ace-admin-moderation-grid {
    margin-top: 12px;
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription > .ace-admin-form {
    margin-top: 12px;
    margin-bottom: 0;
}
.pun #ace-admin .hidden {
    display: none !important;
}
.pun #ace-admin.ace-admin label.ace-admin-field select,
.pun #ace-admin.ace-admin select.ace-admin-select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin-top: 4px;
    padding: 6px 8px;
    font-size: 12px;
    color: #eaeae9;
    background: #212122;
    border: 1px solid #3e3e3e;
    border-radius: 3px;
    appearance: auto;
}
.pun #ace-admin.ace-admin label.ace-admin-field select option {
    color: #1a1a19;
    background: #eaeae9;
}
.pun #ace-admin.ace-admin .ace-admin-sub-form .ace-admin-sub-submit {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #3a3a39;
}
.pun #ace-admin.ace-admin .ace-admin-sub-form .ace-admin-sub-submit {
    display: block;
    clear: both;
}
.pun #ace-admin.ace-admin .ace-admin-sub-form .ace-admin-sub-submit .button,
.pun #ace-admin.ace-admin .ace-admin-sub-form .ace-admin-sub-submit input[type="submit"] {
    display: inline-block;
    min-width: 8rem;
    font-size: 12px;
    padding: 6px 20px;
    cursor: pointer;
    visibility: visible;
    opacity: 1;
    border: 1px solid #5c6b38;
}
.pun #ace-admin.ace-admin .ace-admin-sub-extend-fields,
.pun #ace-admin.ace-admin .ace-admin-sub-revoke-fields {
    margin-top: 4px;
}

/* Subscriptions admin — form layout */
.pun #ace-admin.ace-admin-subscriptions-page fieldset.ace-admin-panel--subscription {
    margin: 12px 14px 14px;
}
.pun #ace-admin.ace-admin-subscriptions-page fieldset.ace-admin-panel--subscription .ace-admin-field-label {
    margin-top: 12px;
}
.pun #ace-admin.ace-admin-subscriptions-page fieldset.ace-admin-panel--subscription .ace-admin-field-label:first-of-type {
    margin-top: 0;
}
.pun #ace-admin.ace-admin-subscriptions-page fieldset.ace-admin-panel--subscription .ace-admin-plan-radios + .ace-admin-field {
    margin-top: 8px;
}
.pun #ace-admin.ace-admin-subscriptions-page fieldset.ace-admin-panel--subscription-bulk {
    margin-top: 0;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-inform {
    margin: 0;
    padding: 0;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-table th {
    width: 7.5rem;
    padding: 8px 12px 8px 0;
    text-align: left;
    vertical-align: top;
    font-weight: 600;
    color: #d8d8d7;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-table td {
    padding: 8px 0;
    vertical-align: top;
    color: #eaeae9;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-input,
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 22rem;
    min-height: 2rem;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 1.4;
    color: #eaeae9 !important;
    background: #212122 !important;
    border: 1px solid #5a5a59 !important;
    border-radius: 3px;
    appearance: auto;
    -webkit-appearance: menulist;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-select option {
    color: #1a1a19;
    background: #f0f0ef;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-radio {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    line-height: 1.4;
    color: #eaeae9;
    cursor: pointer;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-radio input {
    margin: 2px 0 0;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    accent-color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    line-height: 1.45;
    color: #ddd;
    cursor: pointer;
    max-width: 28rem;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-check input {
    margin: 2px 0 0;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-submit-row {
    margin: 14px 0 4px;
    padding: 12px 0 0;
    border-top: 1px solid #3a3a39;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-submit-row .button {
    display: inline-block !important;
    min-width: 10rem;
    min-height: 2.25rem;
    padding: 8px 22px !important;
    font-size: 13px !important;
    font-weight: 600;
    line-height: 1.3;
    cursor: pointer;
    visibility: visible !important;
    opacity: 1 !important;
    background: linear-gradient(180deg, #4a5532 0%, #354020 100%) !important;
    border: 1px solid #7a8f48 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-submit-row .button:hover {
    background: linear-gradient(180deg, #5a6538 0%, #405028 100%) !important;
}
.pun #ace-admin.ace-admin-subscriptions-page .ace-admin-sub-input--days {
    width: 6rem;
    max-width: 100%;
}

.pun #ace-admin.ace-admin .ace-admin-users-actions {
    white-space: nowrap;
}

.pun #ace-admin.ace-admin a.ace-admin-users-sub-link {
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    color: var(--ace-role-admin);
}

.pun #ace-admin.ace-admin a.ace-admin-users-sub-link:hover {
    text-decoration: underline;
}

.pun #ace-admin.ace-admin .ace-admin-users-sub-link--na {
    color: #666;
}

.pun #ace-admin.ace-admin-subscriptions-page tr[hidden] {
    display: none !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-sub {
    font-size: 10px;
    line-height: 1.35;
    color: #b8c4a8;
    max-width: 11rem;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--purge {
    border-color: #4a3838;
    background: linear-gradient(180deg, #2a2525 0%, #232322 100%);
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--purge > .ace-admin-form {
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-form:first-of-type {
    margin-top: 14px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-form {
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-card:first-of-type {
    margin-top: 14px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-card {
    margin-bottom: 12px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-card:last-of-type {
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel > .ace-admin-banlist {
    margin-top: 12px;
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin .ace-admin-form.ace-admin-split-form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #3a3a39;
}
.pun #ace-admin.ace-admin label.ace-admin-field {
    display: block;
    margin: 10px 0 0;
    font-size: 11px;
    color: #d0d0cf;
}
.pun #ace-admin.ace-admin .ace-admin-form .ace-admin-action-title + label.ace-admin-field {
    margin-top: 0;
}
.pun #ace-admin.ace-admin .ace-admin-optional {
    font-weight: 400;
    color: #888;
}
.pun #ace-admin.ace-admin .ace-admin-action-title {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 700;
    color: #eaeae9;
}
.pun #ace-admin.ace-admin label.ace-admin-field input[type="text"],
.pun #ace-admin.ace-admin label.ace-admin-field input[type="number"],
.pun #ace-admin.ace-admin label.ace-admin-field select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    margin-top: 4px;
    font-size: 12px;
    color: #eaeae9;
    background: #1a1a19;
    border: 1px solid #454544;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin label.ace-admin-field input:focus,
.pun #ace-admin.ace-admin label.ace-admin-field select:focus {
    outline: none;
    border-color: #6a9fd4;
    box-shadow: 0 0 0 1px rgba(106, 159, 212, 0.35);
}
.pun #ace-admin.ace-admin label.ace-admin-field select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 2rem;
    margin-top: 4px;
    cursor: pointer;
    appearance: auto;
    -webkit-appearance: menulist;
}
.pun #ace-admin.ace-admin label.ace-admin-field select option {
    color: #1a1a19;
    background: #f4f4f3;
}
.pun #ace-admin.ace-admin .ace-admin-input-qty {
    max-width: 6.5rem !important;
}
.pun #ace-admin.ace-admin .ace-admin-card {
    padding: 12px 14px 14px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid #353534;
    border-radius: 5px;
}
.pun #ace-admin.ace-admin .ace-admin-card-title {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 700;
    color: #eaeae9;
}
.pun #ace-admin.ace-admin .ace-admin-card-desc {
    margin: 0 0 10px;
    font-size: 11px;
    line-height: 1.4;
    color: #9a9a99;
}
.pun #ace-admin.ace-admin label.ace-admin-field.ace-admin-check {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-top: 12px;
    line-height: 1.4;
    color: #d4c4c4;
    cursor: pointer;
}
.pun #ace-admin.ace-admin label.ace-admin-field.ace-admin-check input[type="checkbox"] {
    margin: 2px 0 0;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    accent-color: #c87878;
}
.pun #ace-admin.ace-admin .ace-admin-card .ace-admin-field:first-of-type:not(.ace-admin-check) {
    margin-top: 0;
}
.pun #ace-admin.ace-admin .ace-admin-form .buttons {
    margin: 12px 0 0;
    padding: 0;
}
.pun #ace-admin.ace-admin .buttons .button {
    font-size: 12px;
    padding: 6px 16px;
    border-radius: 4px;
    transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.pun #ace-admin.ace-admin .ace-admin-btn-primary {
    background: linear-gradient(180deg, #3a4528 0%, #2d3520 100%) !important;
    border-color: #5c6b38 !important;
    color: #e8f0d0 !important;
}
.pun #ace-admin.ace-admin .ace-admin-btn-primary:hover {
    background: linear-gradient(180deg, #4a5532 0%, #354020 100%) !important;
    border-color: #7a8f48 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin .ace-admin-btn-secondary {
    background: #2c2c2b !important;
    border-color: #4a4a49 !important;
    color: #ddd !important;
}
.pun #ace-admin.ace-admin .ace-admin-btn-secondary:hover {
    background: #353534 !important;
    border-color: #606060 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin .ace-admin-btn-danger {
    background: linear-gradient(180deg, #4a2828 0%, #352020 100%) !important;
    border-color: #6b3838 !important;
    color: #f0d8d8 !important;
}
.pun #ace-admin.ace-admin .ace-admin-btn-danger:hover {
    background: linear-gradient(180deg, #5a3232 0%, #402828 100%) !important;
    border-color: #854040 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin .ace-admin-banlist {
    margin: 0;
    padding: 0;
    list-style: none;
}
.pun #ace-admin.ace-admin li.ace-admin-banrow {
    margin: 0 0 8px;
    padding: 10px 12px;
    font-size: 11px;
    line-height: 1.4;
    color: #d4d4d3;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid #3a3a39;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin li.ace-admin-banrow:last-child {
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin .ace-admin-banrow-name {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #eaeae9;
}
.pun #ace-admin.ace-admin .ace-admin-ban-uid {
    display: block;
    margin-top: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-ban-uid code {
    font-size: 10px;
    word-break: break-all;
    color: #a8c4e8;
}
.pun #ace-admin.ace-admin .ace-admin-ban-reason {
    display: block;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid #353534;
    font-size: 11px;
    color: #b0a8a8;
}

/* Admin sub-navigation */
.pun #ace-admin.ace-admin .ace-admin-inbox > fieldset.ace-admin-panel {
    margin-bottom: 16px;
}
.pun #ace-admin.ace-admin .ace-admin-inbox > fieldset.ace-admin-panel:last-child {
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin .ace-admin-subnav {
    margin: 0 0 14px;
    padding: 0 2px;
}
.pun #ace-admin.ace-admin .ace-admin-subnav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pun #ace-admin.ace-admin .ace-admin-subnav a {
    display: inline-block;
    padding: 6px 14px;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    color: #c4c4c3;
    background: #2a2a29;
    border: 1px solid #454544;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-subnav li.isactive a,
.pun #ace-admin.ace-admin .ace-admin-subnav a:hover {
    color: #1a1a19;
    background: var(--ace-role-admin);
    border-color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin .ace-admin-overview-cards {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: none;
}
@media (max-width: 900px) {
    .pun #ace-admin.ace-admin .ace-admin-overview-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .pun #ace-admin.ace-admin .ace-admin-overview-cards {
        grid-template-columns: 1fr;
    }
}
.pun #ace-admin.ace-admin a.ace-admin-overview-card {
    display: block;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
    background: linear-gradient(180deg, #2a2a29 0%, #232322 100%);
    border: 1px solid #3d3d3c;
    border-radius: 6px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pun #ace-admin.ace-admin a.ace-admin-overview-card:hover {
    border-color: #6a9fd4;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}
.pun #ace-admin.ace-admin .ace-admin-overview-card-title {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ace-role-admin);
}
.pun #ace-admin.ace-admin .ace-admin-overview-card-stat {
    display: block;
    margin: 6px 0 4px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    color: #eaeae9;
}
.pun #ace-admin.ace-admin .ace-admin-overview-card-desc {
    display: block;
    font-size: 11px;
    color: #b8b8b7;
}

.pun #ace-admin.ace-admin fieldset.ace-admin-panel--broadcast {
    margin-top: 18px;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin: 8px 0 12px;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-colors label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: #d0d0cf;
}

.pun #ace-admin.ace-admin .ace-admin-inline-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 8px 0 12px;
}

.pun #ace-admin.ace-admin .ace-admin-inline-checks label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #d0d0cf;
    cursor: pointer;
}

.pun #ace-admin.ace-admin .ace-admin-form textarea {
    width: 100%;
    max-width: 42rem;
    box-sizing: border-box;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preset-delete {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #353534;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-presets-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 16px;
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid #353534;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preset-name input {
    width: 11rem;
    max-width: 100%;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-delete-wrap {
    margin: 4px 0 12px;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-presets-actions {
    margin: 0;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preview {
    margin: 14px 0 16px;
    padding: 12px 14px;
    border: 1px solid #3a3a39;
    border-radius: 8px;
    background: #1a1a19;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preview-label {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 700;
    color: #e8e8e7;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preview-note {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 400;
    color: #a8a8a7;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preview-slot {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 42rem;
}

.pun #ace-admin.ace-admin .ace-admin-broadcast-preview-slot .ace-broadcast-banner {
    margin: 0;
}
/* Moderation ? ban / unban side by side */
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--moderation > .ace-admin-moderation-grid {
    margin: 12px 14px 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--account > .ace-admin-account-grid {
    margin: 12px 14px 0;
}
.pun #ace-admin.ace-admin .ace-admin-field-hint {
    margin: 6px 0 10px;
    font-size: 10px;
    line-height: 1.35;
    color: #a8a8a7;
}
.pun #ace-admin.ace-admin .ace-admin-moderation-grid {
    display: grid;
    gap: 14px 18px;
    grid-template-columns: 1fr;
    align-items: start;
}
@media (min-width: 720px) {
    .pun #ace-admin.ace-admin .ace-admin-moderation-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}
.pun #ace-admin.ace-admin .ace-admin-moderation-col {
    box-sizing: border-box;
    margin: 0;
    padding: 12px 14px 14px;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid #353534;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-moderation-grid .ace-admin-form {
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin .ace-admin-moderation-col .ace-admin-action-title {
    margin-top: 0;
}
.pun #ace-admin.ace-admin .ace-admin-field-label {
    display: block;
    font-size: 11px;
    color: #d0d0cf;
    margin-bottom: 6px;
}
.pun #ace-admin.ace-admin .ace-admin-plan-radios {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-plan-radio {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    line-height: 1.4;
    color: #eaeae9;
    cursor: pointer;
}
.pun #ace-admin.ace-admin .ace-admin-plan-radio input[type="radio"] {
    margin: 2px 0 0;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    accent-color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription .ace-admin-sub-buttons {
    display: block !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription .ace-admin-sub-buttons input[type="submit"] {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 2.25rem !important;
    min-width: 7rem !important;
    padding: 8px 18px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    cursor: pointer !important;
    border-radius: 4px !important;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription .ace-admin-sub-buttons .ace-admin-btn-primary {
    background: linear-gradient(180deg, #4a5532 0%, #354020 100%) !important;
    border: 1px solid #7a8f48 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--subscription .ace-admin-sub-buttons .ace-admin-btn-danger {
    background: linear-gradient(180deg, #5a3030 0%, #3d2020 100%) !important;
    border: 1px solid #8a4848 !important;
    color: #fff !important;
}
/* All users ? search toolbar (forum-style label + input row) */
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-users-sensitive-hint,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-users-search,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-table-wrap,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-pagination,
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-pagination-summary--solo {
    margin-left: 14px;
    margin-right: 14px;
}
.pun #ace-admin.ace-admin .ace-admin-users-search {
    margin-top: 12px;
    margin-bottom: 0;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list,
.pun #ace-admin.ace-admin .ace-admin-users-search,
.pun #ace-admin.ace-admin .ace-admin-users-toolbar {
    overflow: visible;
}
.pun #ace-admin.ace-admin .ace-admin-users-toolbar {
    padding: 12px 14px 14px;
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid #353534;
    border-radius: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-toolbar-reset {
    margin: 8px 0 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-toolbar-reset.buttons {
    padding: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 12px;
    position: relative;
    z-index: 2;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-field {
    flex: 1 1 14rem;
    min-width: min(100%, 14rem);
    margin: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-label-text {
    display: block;
    margin: 0 0 6px;
    font-size: 11px;
    line-height: 1.35;
    color: #c4c4c3;
}
.pun #ace-admin.ace-admin .ace-admin-users-toolbar-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 7px 10px;
    font-size: 12px;
    line-height: 1.35;
    color: #eaeae9;
    background: #1a1a19;
    border: 1px solid #454544;
    border-radius: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-submit {
    margin: 0;
    padding: 7px 16px;
    white-space: nowrap;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-input::placeholder {
    color: #7a7a79;
}
.pun #ace-admin.ace-admin .ace-admin-users-search-input:focus {
    outline: none;
    border-color: #6a9fd4;
    box-shadow: 0 0 0 1px rgba(106, 159, 212, 0.35);
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-anchor {
    position: relative;
    flex: 0 0 auto;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 7px 14px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    border: 1px solid #454544 !important;
    border-radius: 0;
    box-shadow: none !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-btn.is-active,
.pun #ace-admin.ace-admin .ace-admin-users-filters-btn.is-filtered,
.pun #ace-admin.ace-admin .ace-admin-users-filters-btn:hover {
    background: #353534 !important;
    border-color: #606060 !important;
    color: #fff !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-btn.is-filtered {
    border-color: #7a8f48 !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: 2px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    color: #1a1a19;
    background: var(--ace-ui-accent);
    border-radius: 8px;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-arrow {
    font-size: 10px;
    opacity: 0.85;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    z-index: 30;
    min-width: 22rem;
    max-width: min(26rem, calc(100vw - 2rem));
    margin: 0;
    padding: 12px 14px 14px;
    background: #232322;
    border: 1px solid #454544;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.4);
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-intro {
    margin: 0 0 10px;
    font-size: 10px;
    line-height: 1.4;
    color: #888;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-group + .ace-admin-users-filter-group {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #3a3a39;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-group-title {
    display: block;
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7a8f48;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-panel.is-open {
    display: block;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-panel[hidden] {
    display: none !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-options {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 6px 8px;
    font-size: 11px;
    line-height: 1.35;
    color: #d0d0cf;
    cursor: pointer;
    border: 1px solid transparent;
    border-radius: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option:hover {
    background: rgba(255, 255, 255, 0.04);
    border-color: #3a3a39;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option:has(input:checked) {
    background: rgba(154, 184, 58, 0.1);
    border-color: rgba(154, 184, 58, 0.35);
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option input[type="radio"] {
    margin: 2px 0 0;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    accent-color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option-label {
    font-weight: 600;
    color: #e4e4e3;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-option-hint {
    font-size: 10px;
    color: #888;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-actions {
    margin: 10px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid #3a3a39;
}
.pun #ace-admin.ace-admin .ace-admin-users-filters-actions.buttons {
    padding-top: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-users-filter-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 10px 0 0;
    font-size: 10px;
    color: #9a9a99;
}
.pun #ace-admin.ace-admin .ace-admin-filter-tag {
    display: inline-block;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 600;
    color: #d8e8a8;
    background: rgba(154, 184, 58, 0.12);
    border: 1px solid rgba(154, 184, 58, 0.35);
    border-radius: 3px;
}
.pun #ace-admin.ace-admin fieldset.ace-admin-panel--users-list > .ace-admin-table-wrap {
    margin-top: 14px;
    overflow-x: auto;
}
.pun #ace-admin.ace-admin table.ace-admin-users-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    font-size: 11px;
}
.pun #ace-admin.ace-admin table.ace-admin-users-table th,
.pun #ace-admin.ace-admin table.ace-admin-users-table td {
    border: 1px solid #353534;
    padding: 6px 8px;
    text-align: left;
    vertical-align: top;
}
.pun #ace-admin.ace-admin table.ace-admin-users-table th {
    background: #252524;
    color: #aaa;
    font-weight: 700;
}
.pun #ace-admin.ace-admin table.ace-admin-users-table tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.12);
}
.pun #ace-admin.ace-admin .ace-admin-requests-actions {
    white-space: nowrap;
}
.pun #ace-admin.ace-admin .ace-admin-request-action-form,
.pun #ace-admin.ace-admin .ace-admin-inline-form {
    display: inline-block;
    margin: 0 4px 4px 0;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tags-create-row,
.pun #ace-admin.ace-admin .ace-admin-custom-tags-assign-row {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: end;
    max-width: 36rem;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tags-create-row {
    grid-template-columns: minmax(0, 1fr);
    max-width: 28rem;
    margin-bottom: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor {
    margin: 8px 0 0;
    padding: 10px 12px;
    border: 1px solid #2c2c32;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.015);
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-field {
    margin-top: 0;
    font-size: 10px;
    color: #b0b0b0;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-field input[type="text"],
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-field input[type="number"],
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-field select {
    margin-top: 3px;
    padding: 6px 8px;
    font-size: 11px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-field input[type="color"] {
    width: 2.4rem;
    height: 1.65rem;
    margin-top: 3px;
    padding: 2px;
    border: 1px solid #3a3a42;
    border-radius: 4px;
    background: #1a1a19;
    cursor: pointer;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-grid {
    display: grid;
    gap: 10px 12px;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    align-items: end;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-grid--particle-colors {
    margin-bottom: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-slider-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-top: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-slider-group--particle {
    margin-top: 0;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-particle-effect-field {
    display: block;
    max-width: 14rem;
    margin: 10px 0 0;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 10px;
    font-size: 10px;
    color: #a8a8a8;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #2a2a30;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-preview-label {
    font-size: 9px;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-preview-slot {
    min-height: 1.25rem;
    overflow: visible;
    padding: 0.25rem 0.4rem;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-preview-slot--particles {
    min-height: 2.25rem;
    padding: 0.55rem 0.75rem;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-particle-fields {
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px solid #2c2c32;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.1);
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-particle-fields .ace-admin-hint {
    margin: 0 0 8px;
    font-size: 10px;
    line-height: 1.35;
    color: #888;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-range-field {
    display: block;
    flex: 0 0 auto;
    width: 9.5rem;
    max-width: 48%;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    box-sizing: border-box;
}
.pun #ace-admin.ace-admin .ace-admin-range-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-range-label {
    font-size: 10px;
    color: #a8a8a8;
    line-height: 1.2;
}
.pun #ace-admin.ace-admin .ace-admin-range-value {
    flex-shrink: 0;
    min-width: 2rem;
    color: #a78bfa;
    font-size: 9px;
    font-weight: 600;
    line-height: 1.2;
    text-align: right;
    letter-spacing: 0.02em;
}
.pun #ace-admin.ace-admin .ace-admin-range-wrap {
    position: relative;
    display: block;
    height: 0.9rem;
    --range-pct: 0%;
}
.pun #ace-admin.ace-admin .ace-admin-range-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 3px;
    margin-top: -1.5px;
    border-radius: 999px;
    background: #25252c;
    overflow: hidden;
    pointer-events: none;
}
.pun #ace-admin.ace-admin .ace-admin-range-fill {
    display: block;
    height: 100%;
    width: var(--range-pct, 0%);
    border-radius: inherit;
    background: #7c3aed;
    transition: width 0.08s ease-out;
}
.pun #ace-admin.ace-admin .ace-admin-range-input {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 0.9rem;
    margin: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.pun #ace-admin.ace-admin .ace-admin-range-input:focus {
    outline: none;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-range-field:focus-within .ace-admin-range-fill {
    background: #8b5cf6;
}
.pun #ace-admin.ace-admin .ace-admin-range-input::-webkit-slider-runnable-track {
    height: 3px;
    background: transparent;
    border: none;
}
.pun #ace-admin.ace-admin .ace-admin-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 10px;
    height: 10px;
    margin-top: -3.5px;
    border: 1.5px solid #ede9fe;
    border-radius: 50%;
    background: #7c3aed;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
    transition: transform 0.08s ease-out;
}
.pun #ace-admin.ace-admin .ace-admin-range-input:active::-webkit-slider-thumb {
    transform: scale(1.1);
}
.pun #ace-admin.ace-admin .ace-admin-range-input::-moz-range-track {
    height: 3px;
    background: transparent;
    border: none;
}
.pun #ace-admin.ace-admin .ace-admin-range-input::-moz-range-thumb {
    width: 10px;
    height: 10px;
    border: 1.5px solid #ede9fe;
    border-radius: 50%;
    background: #7c3aed;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
@media (max-width: 640px) {
    .pun #ace-admin.ace-admin .ace-admin-custom-tag-style-editor label.ace-admin-range-field {
        width: 8.5rem;
        max-width: 100%;
    }
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-edit-details {
    display: inline-block;
    margin: 0 4px 4px 0;
    vertical-align: top;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-edit-details > summary {
    list-style: none;
    cursor: pointer;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-edit-details > summary::-webkit-details-marker {
    display: none;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-edit-details[open] {
    display: block;
    width: min(100%, 42rem);
    margin-bottom: 8px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tag-edit-details[open] > summary {
    margin-bottom: 8px;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tags-preview-cell {
    white-space: nowrap;
}
.pun #ace-admin.ace-admin .ace-admin-custom-tags-actions-cell {
    white-space: nowrap;
    min-width: 9rem;
}
@media (max-width: 640px) {
    .pun #ace-admin.ace-admin .ace-admin-custom-tags-create-row,
    .pun #ace-admin.ace-admin .ace-admin-custom-tags-assign-row {
        grid-template-columns: minmax(0, 1fr);
    }
}
.pun #ace-admin.ace-admin .ace-admin-request-reason {
    color: #9a9a9a;
    font-size: 10px;
}
.pun #ace-admin.ace-admin .ace-admin-users-sensitive-hint {
    margin: 0 14px 10px;
    font-size: 10px;
    color: #888;
}
.pun #ace-admin.ace-admin .ace-admin-users-identity-name {
    margin-bottom: 2px;
}
.pun #ace-admin.ace-admin .ace-admin-users-reg-ip-cell .ace-admin-reg-ip,
.pun #ace-admin.ace-admin table.ace-admin-users-table .ace-invite-code {
    font-size: 10px;
    word-break: break-all;
}
.pun #ace-admin.ace-admin .ace-admin-users-reg-ip-cell {
    max-width: 10rem;
    font-size: 10px;
    line-height: 1.35;
    color: #9a9a9a;
}
.pun #ace-admin.ace-admin .ace-admin-users-reg-ip-missing {
    color: #666;
}
.pun #ace-admin.ace-admin .ace-admin-users-invited-by-cell {
    max-width: 9rem;
    font-size: 11px;
    line-height: 1.35;
}
.pun #ace-admin.ace-admin tr.ace-admin-users-row--banned {
    background: rgba(74, 40, 40, 0.2) !important;
}
.pun #ace-admin.ace-admin .ace-admin-users-status {
    font-weight: 600;
    color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin .ace-admin-users-status--banned {
    color: #d08080;
}
.pun #ace-admin.ace-admin .ace-admin-users-status--hidden {
    color: #a0a8c0;
}
.pun #ace-admin.ace-admin .ace-admin-pagination {
    margin: 14px 14px 0;
    padding-top: 12px;
    border-top: 1px solid #353534;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-summary {
    margin: 0 0 10px;
    font-size: 11px;
    color: #b8b8b7;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-summary--solo {
    margin: 14px 14px 0;
    padding-top: 0;
    border-top: none;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-links .button {
    margin: 0;
    cursor: pointer;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-links .button.is-disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-num,
.pun #ace-admin.ace-admin .ace-admin-pagination-current {
    display: inline-block;
    min-width: 2rem;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border-radius: 4px;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-num {
    color: #c4c4c3;
    background: #2a2a29;
    border: 1px solid #454544;
}
.pun #ace-admin.ace-admin .ace-admin-pagination-num:hover {
    color: #1a1a19;
    background: var(--ace-role-admin);
    border-color: var(--ace-ui-accent);
}
.pun #ace-admin.ace-admin .ace-admin-pagination-current {
    color: #1a1a19;
    background: var(--ace-role-admin);
    border: 1px solid var(--ace-ui-accent);
}

/* Terms / privacy (tos.php) ? Cobalt-style fieldsets like GameSense reference */
.pun #brdmain .ace-tos .infldset {
    font-size: 11px;
    line-height: 1.55;
    color: #eaeae9;
}
.pun #brdmain .ace-tos .infldset p {
    margin: 0 0 10px;
}
.pun #brdmain .ace-tos .infldset p:last-child {
    margin-bottom: 0;
}
.pun #brdmain .ace-tos .infldset a {
    color: #6a9fd4;
    text-decoration: underline;
}
.pun #brdmain .ace-tos .infldset a:hover {
    color: #8cb8e8;
}
.pun #brdmain .ace-tos ul.ace-tos-dash {
    list-style: none;
    margin: 6px 0 4px 0;
    padding: 0;
}
.pun #brdmain .ace-tos ul.ace-tos-dash li {
    position: relative;
    margin: 0 0 5px;
    padding-left: 1.1em;
}
.pun #brdmain .ace-tos ul.ace-tos-dash li::before {
    content: '-';
    position: absolute;
    left: 0;
    color: #d0d0cf;
}
.pun #brdmain .ace-tos ul.ace-tos-list {
    list-style: disc;
    margin: 10px 0 14px 1.25em;
    padding: 0;
}
.pun #brdmain .ace-tos ul.ace-tos-list li {
    margin: 0 0 6px;
}
.pun #brdmain h2 + .ace-tos {
    margin-bottom: 18px;
}
.pun #brdmain .ace-tos + h2 {
    margin-top: 8px;
}

/* Search (search.php) */
.pun ul.ace-search-results {
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
    font-size: 11px;
    line-height: 1.45;
}
.pun ul.ace-search-results > li {
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #333;
}
.pun ul.ace-search-results > li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.pun .ace-search-meta {
    color: #888;
    font-weight: 400;
}
.pun .ace-search-snippet {
    margin-top: 6px;
    color: #b0b0af;
    font-size: 10px;
    line-height: 1.4;
}
.pun p.ace-search-back {
    margin-top: 16px;
}

/* Index: mark all read below Premium / Marketplace */
.pun .ace-index-forum-toolbar .ace-mark-all-read-form {
    margin: 0;
}
.pun .ace-index-forum-toolbar .ace-mark-all-read-form .buttons {
    margin: 0;
    padding: 0;
}

/* Index / forum — Create post */
.pun .ace-btn-newtopic {
    display: inline-block;
    padding: 5px 12px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    border-radius: var(--ace-radius) !important;
    text-decoration: none !important;
    background: var(--ace-bg-elevated) !important;
    border: 1px solid var(--ace-accent) !important;
    color: var(--ace-text) !important;
    box-shadow: none;
}
.pun .ace-btn-newtopic:hover {
    background: var(--ace-accent) !important;
    border-color: var(--ace-accent) !important;
    color: #fff !important;
}
/* Index: mark all read below Premium / Marketplace */
.pun .ace-index-mark-read-bottom {
    margin: 0 0 14px;
}
.pun .ace-index-mark-read-bottom .ace-mark-all-read-form {
    margin: 0;
}
.pun .ace-index-mark-read-bottom .ace-mark-all-read-form .buttons {
    margin: 0;
    padding: 0;
}
/* No panel behind mark-read: sits on page bg; strip default .button chrome */
.pun .ace-mark-all-read-form .button.ace-btn-mark-read {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--ace-link) !important;
    padding: 0 !important;
    margin: 0;
    font-size: 11px;
    font-weight: 400;
    font-family: inherit;
    line-height: inherit;
    text-decoration: none;
    cursor: pointer;
    vertical-align: baseline;
}
.pun .ace-mark-all-read-form .button.ace-btn-mark-read:hover {
    color: var(--ace-link-hover) !important;
    text-decoration: underline;
}
.pun .ace-forum-postlink .inbox {
    overflow: hidden;
}
.pun .ace-forum-postlink .crumbs .postlink,
.pun .ace-forum-postlink--create .crumbs .postlink {
    float: right;
    list-style: none;
    margin: 2px 0 0;
    padding: 0;
}
.pun .linksb.ace-forum-postlink--create {
    margin-top: 8px;
}
.pun .ace-post-field {
    display: block;
    margin: 10px 0 0;
    font-size: 11px;
    color: #d0d0cf;
}
.pun .ace-post-field select,
.pun .ace-post-field input[type="text"],
.pun .ace-post-field textarea {
    margin-top: 4px;
    max-width: 100%;
    box-sizing: border-box;
}
.pun .ace-post-field textarea {
    width: 100%;
    min-height: 200px;
    font-family: Verdana, Arial, sans-serif;
    font-size: 12px;
    padding: 8px;
    background: #1a1a19;
    border: 1px solid #454544;
    color: #eaeae9;
}

/* New-post indicator (index + viewforum) */
.pun .pun-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/*
 * Index category tables + viewforum topic list
 * Cobalt: .pun td,.pun th { padding: 4px 6px } ? overrides remove left/right gutter.
 */
.pun .ace-idx-cat > h2,
.pun #vf.blocktable > h2 {
    padding-left: 12px;
    padding-right: 8px;
    overflow: visible;
}

/* No horizontal inset on the panel so the table meets the inner border */
.pun .blocktable.ace-idx-cat > .box,
.pun #vf.blocktable > .box {
    padding-left: 0;
    padding-right: 0;
}

/* Flush forum tables to the category box ? removes the ?floating? gutter around lists */
.pun .blocktable.ace-idx-cat .inbox,
.pun #vf.blocktable .inbox {
    padding: 0;
}
.pun #vf.blocktable .inbox > .path-note {
    padding: 8px 10px;
    margin: 0;
}

/* Fixed layout + col widths: stops the indicator column from growing huge (auto-layout bug). */
.pun .ace-idx-cat table.ace-forum-table,
.pun #vf table.ace-forum-table {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

.pun .ace-idx-cat col.ace-col-ind,
.pun #vf col.ace-col-ind {
    width: 34px;
}

.pun .ace-idx-cat col.ace-col-last {
    width: 30%;
}

.pun #vf col.ace-col-tc2 {
    width: 4.25rem;
}

.pun #vf col.ace-col-last {
    width: 24%;
}

.pun .ace-idx-cat table td,
.pun .ace-idx-cat table th,
.pun #vf table td,
.pun #vf table th {
    padding: 7px 8px;
}

.pun .ace-idx-cat table td:first-child,
.pun #vf table:not(.pms-tbl) td:first-child {
    width: 34px;
    min-width: 34px;
    max-width: 34px;
    padding: 7px 4px 7px 0;
    text-align: center;
    vertical-align: middle;
    box-sizing: border-box;
}

/*
 * New/unread squares: use table-cell + vertical-align middle so the dot centers in the full row
 * (flex on <td> often won?t stretch with row height and sits too high). Slight horizontal inset.
 */
.pun .ace-idx-cat table.ace-forum-table td.ace-forum-newcol,
.pun #vf table.ace-forum-table td.ace-forum-newcol {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    padding: 8px 8px 8px 9px;
    width: 34px;
    min-width: 34px;
    max-width: 34px;
    box-sizing: border-box;
}

/* Align ?Forum? / ?Topic? with the name column (after 34px indicator col + same inset as td.tcl). */
.pun .ace-idx-cat table th.ace-forum-head-group,
.pun #vf table th.ace-forum-head-group {
    text-align: left;
    vertical-align: bottom;
    font-weight: 400;
    padding: 7px 8px 7px 42px;
}

.pun #vf table th.ace-forum-head-group {
    border-bottom: 1px solid var(--ace-border);
}

.pun .ace-topic-star-slot {
    display: inline-block;
    width: 14px;
    margin-right: 2px;
    text-align: center;
    vertical-align: middle;
    line-height: 1;
}

.pun .ace-topic-star {
    display: inline-block;
    color: var(--ace-accent);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.pun tr.isticky .ace-topic-star {
    color: var(--ace-accent);
}

.pun .ace-idx-cat table th.tcr,
.pun .ace-idx-cat table td.tcr {
    padding: 7px 10px;
    text-align: left;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
}

.pun .ace-idx-cat table td.tcr .byuser {
    color: #d0d0cf;
}

.pun #vf table th.tcr,
.pun #vf table td.tcr {
    padding: 7px 10px;
    text-align: right;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
}

.pun #vf table th.tc2,
.pun #vf table tbody td.tc2 {
    text-align: center;
}

/* Cobalt: .pun td.tc2 { background #30302f } vs row #252524 ? looks like a grey box; match the row. */
.pun #vf.blocktable tbody tr.rowodd td.tc2,
.pun #vf.blocktable tbody tr.roweven td.tc2 {
    background-color: var(--ace-bg-row) !important;
    border: none !important;
    box-shadow: none !important;
}

.pun #vf.blocktable tbody tr.rowodd:hover td.tc2,
.pun #vf.blocktable tbody tr.roweven:hover td.tc2 {
    background-color: var(--ace-bg-row-hover) !important;
}

.pun .ace-idx-cat table td.tcl,
.pun #vf table td.tcl {
    padding: 7px 8px;
    overflow-wrap: break-word;
    word-wrap: break-word;
    vertical-align: middle;
}

.pun .ace-idx-cat tbody td.tcl h3 {
    margin: 0 0 3px;
    line-height: 1.3;
}

.pun .ace-idx-cat tbody td.tcl .forumdesc {
    margin: 0;
    line-height: 1.4;
}

.pun .ace-forum-newcol-hdr {
    display: none;
}

/* Forum/topic ?new? squares ? reference: bright blue when new, faint gray when read */
.pun span.ace-new-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
    vertical-align: middle;
    box-sizing: border-box;
}
.pun span.ace-new-indicator--new {
    background: var(--ace-link);
    box-shadow: none;
}
.pun span.ace-new-indicator--muted {
    background: rgba(72, 72, 71, 0.45);
    box-shadow: none;
}

.pun h3 .ace-new-posts-tag {
    font-weight: 400;
    font-size: 11px;
    color: #eaeae9;
    white-space: nowrap;
}

/* Updates forum row ? accent on first column so stripe aligns with table left (not offset by indicator col) */
.pun tr.ace-forum-update-row td.ace-forum-newcol {
    border-left: 3px solid var(--ace-accent);
}
.pun tr.ace-forum-update-row td.tcl {
    border-left: none;
    padding-left: 8px;
}
.pun tr.ace-forum-update-row h3 {
    margin: 0 0 4px;
    font-size: 12px;
    line-height: 1.35;
}
.pun tr.ace-forum-update-row h3 .ace-forum-card-title {
    font-weight: 600;
    color: var(--ace-link);
}
.pun tr.ace-forum-update-row .forumdesc {
    margin: 0;
    font-size: 11px;
    line-height: 1.45;
    color: #9a9a99;
}


/* Shoutbox + emoji picker (merged from style/chat.css ? InfinityFree blocks chat.css over HTTP) */
.pun .ace-shout-block.blockform form#shout-form {
    padding: 0 !important;
}

.pun #shout,
.pun #shout * {
    box-sizing: border-box;
}

.pun #shout {
    background-color: var(--ace-bg-elevated);
    font-size: 0.9em;
    width: 100%;
    overflow: visible;
}

.pun .ace-shout-block .box {
    overflow: visible;
}

.pun #shout #shout-messages {
    background-color: var(--ace-bg-panel);
    color: var(--ace-text);
    height: 150px;
    min-height: 150px;
    overflow-x: hidden;
    overflow-y: auto;
    word-wrap: break-word;
    display: block !important;
    width: 100% !important;
    font-size: 11px;
    line-height: 1.35;
}

.pun #shout .rowEven,
.pun #shout .rowOdd {
    background-color: var(--ace-bg-row);
    padding: 2px 3px 3px;
    font-size: 11px;
    line-height: 1.35;
}

.pun #shout .rowHighlight {
    background-color: rgba(255, 61, 138, 0.12);
    padding: 2px 3px 3px;
    font-size: 11px;
    line-height: 1.35;
}

.pun #shout .dateTime {
    font-size: 11px;
    line-height: 1.35;
    color: #999;
}

.pun #shout a.usergroup-admin,
.pun #shout a.usergroup-5,
.pun #shout a.usergroup-player,
.pun #shout a.usergroup-member,
.pun #shout .ace-shout-body {
    font-size: 11px;
    line-height: 1.35;
}

.pun #shout span.usergroup-bot {
    font-size: 11px;
    line-height: 1.35;
}

.pun #shout a.usergroup-admin,
.pun #shout a.usergroup-5,
.pun #shout a.usergroup-player,
.pun #shout a.usergroup-member {
    text-decoration: none;
}

.pun #shout a.usergroup-admin:hover,
.pun #shout a.usergroup-5:hover,
.pun #shout a.usergroup-player:hover,
.pun #shout a.usergroup-member:hover,
.pun #shout a.ace-shout-mention:hover {
    text-decoration: underline;
}

.pun #shout a.ace-shout-mention {
    text-decoration: none;
    font-weight: 600;
}

.pun #shout .ace-shout-mention-panel,
.ace-shout-mention-panel.ace-shout-mention-floating {
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
    background: #2a2a2a;
    border: 1px solid #555;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.65);
    font-size: 11px;
    line-height: 1.2;
}

.pun #shout .ace-shout-mention-panel {
    position: absolute;
    left: 0;
    bottom: calc(100% + 2px);
    z-index: 501;
    min-width: 160px;
    max-width: 100%;
}

.ace-shout-mention-panel.ace-shout-mention-floating {
    position: fixed;
    z-index: 100001;
}

.pun #shout .ace-shout-mention-panel.hidden,
.ace-shout-mention-panel.ace-shout-mention-floating.hidden {
    display: none !important;
}

.pun #shout .ace-shout-mention-panel button,
.ace-shout-mention-panel.ace-shout-mention-floating button {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 4px 8px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: #d4d4d4;
}

.pun #shout .ace-shout-mention-panel button.is-active,
.pun #shout .ace-shout-mention-panel button:hover,
.pun #shout .ace-shout-mention-panel button:focus,
.ace-shout-mention-panel.ace-shout-mention-floating button.is-active,
.ace-shout-mention-panel.ace-shout-mention-floating button:hover,
.ace-shout-mention-panel.ace-shout-mention-floating button:focus {
    background: #3d3d3d;
    outline: none;
}

.pun #shout .ace-shout-mention-empty,
.ace-shout-mention-panel.ace-shout-mention-floating .ace-shout-mention-empty {
    padding: 6px 8px;
    color: #999;
    font-size: 11px;
}

.pun #shout div::-webkit-scrollbar-track {
    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
    background-color: #272726;
}

.pun #shout div::-webkit-scrollbar {
    width: 8px;
    background-color: #272726;
}

.pun #shout div::-webkit-scrollbar-thumb {
    background-color: #666;
}

.pun #shout p.warning {
    background: #272726;
    padding: 10px;
    margin: 0 0 8px;
}

.pun #shout p.warning.hidden {
    display: none !important;
}

.pun #shout p {
    padding: 0;
    max-width: none;
}

.pun #shout > form {
    display: block !important;
    background: var(--ace-bg-input);
    width: 100%;
    padding: 0;
    margin: 0;
    overflow: visible;
    position: relative;
}

/* Flex row ? div avoids .pun label { display: block } */
.pun #shout .shout-compose-bar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 22px;
    height: 22px;
    margin: 0 !important;
    padding: 0 !important;
    border-top: 1px solid var(--ace-border);
    box-shadow: inset 0 -1px 0 var(--ace-border);
    background: var(--ace-bg-input);
    float: none !important;
    clear: both !important;
}

.pun #shout input#shouttext {
    flex: 1 1 auto !important;
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 6px !important;
    background: var(--ace-bg-input) !important;
    color: var(--ace-text) !important;
    border: 0 !important;
    border-radius: 0 !important;
    cursor: text;
    overflow: hidden;
    font-size: 11px !important;
    height: 22px !important;
    line-height: 22px !important;
    box-shadow: none !important;
    margin: 0 !important;
    float: none !important;
    position: relative !important;
    z-index: 5 !important;
    pointer-events: auto !important;
    user-select: text !important;
    -webkit-user-select: text !important;
}

.pun #shout input#shouttext:focus {
    outline: none;
    background: #1d1d1c !important;
    color: #eee !important;
}

.pun #shout #shoutvol {
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #1d1d1c !important;
    height: 22px !important;
    line-height: 22px !important;
    color: #d4d4d3;
    cursor: default;
    user-select: none;
    float: none !important;
    position: static !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.pun #shout #shoutvol .fa {
    font-size: 14px !important;
    line-height: 22px;
    color: #d4d4d3;
}

.pun #shout .ace-shout-emoji-slot {
    position: relative !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 22px !important;
    background-color: #1d1d1c !important;
    float: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

.pun #shout #shout-emoji-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 100% !important;
    height: 22px !important;
    margin: 0 !important;
    padding: 0 2px !important;
    border: 0 !important;
    background: transparent !important;
    color: #ccc !important;
    cursor: pointer;
    line-height: 22px !important;
    font-size: 11px !important;
}

.pun #shout #shout-emoji-btn:hover,
.pun #shout #shout-emoji-btn:focus {
    outline: none;
    background: #252524 !important;
}

.pun #shout .ace-shout-emoji-face {
    font-size: 12px;
    line-height: 1;
}

.pun #shout #shout-emoji-btn .fa-caret-down {
    font-size: 8px;
    color: #999;
}

/* Emoji picker: 5 wide x 4 tall viewport, scroll for more rows */
.pun #shout .ace-shout-emoji-panel,
.ace-shout-emoji-panel.ace-shout-emoji-floating {
    --ace-emoji-cols: 5;
    --ace-emoji-rows: 4;
    --ace-emoji-cell: 26px;
    --ace-emoji-gap: 2px;
    --ace-emoji-pad-x: 8px;
    --ace-emoji-pad-y: 8px;
    --ace-emoji-scroll-w: 8px;
    --ace-emoji-grid-w: calc(
        var(--ace-emoji-cols) * var(--ace-emoji-cell)
        + (var(--ace-emoji-cols) - 1) * var(--ace-emoji-gap)
    );
    box-sizing: border-box;
    width: calc(var(--ace-emoji-grid-w) + var(--ace-emoji-pad-x) + var(--ace-emoji-scroll-w) + 2px);
    max-width: calc(var(--ace-emoji-grid-w) + var(--ace-emoji-pad-x) + var(--ace-emoji-scroll-w) + 2px);
    height: calc(
        var(--ace-emoji-rows) * var(--ace-emoji-cell)
        + (var(--ace-emoji-rows) - 1) * var(--ace-emoji-gap)
        + var(--ace-emoji-pad-y)
    );
    max-height: calc(
        var(--ace-emoji-rows) * var(--ace-emoji-cell)
        + (var(--ace-emoji-rows) - 1) * var(--ace-emoji-gap)
        + var(--ace-emoji-pad-y)
    );
    padding: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    display: grid;
    grid-template-columns: repeat(5, var(--ace-emoji-cell));
    grid-auto-rows: var(--ace-emoji-cell);
    gap: var(--ace-emoji-gap);
    background: #2a2a2a;
    border: 1px solid #555;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.65);
    font-size: 14px;
}

.pun #shout .ace-shout-emoji-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 2px);
    bottom: auto;
    z-index: 500;
}

.ace-shout-emoji-panel.ace-shout-emoji-floating {
    position: fixed;
    z-index: 100000;
}

.pun #shout .ace-shout-emoji-panel:not(.hidden),
.ace-shout-emoji-panel.ace-shout-emoji-floating:not(.hidden) {
    display: grid;
}

.pun #shout .ace-shout-emoji-panel.hidden,
.ace-shout-emoji-panel.ace-shout-emoji-floating.hidden {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

.pun #shout .ace-shout-emoji-panel button,
.ace-shout-emoji-panel.ace-shout-emoji-floating button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: var(--ace-emoji-cell);
    height: var(--ace-emoji-cell);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}

.pun #shout .ace-shout-emoji-panel button:hover,
.pun #shout .ace-shout-emoji-panel button:focus,
.ace-shout-emoji-panel.ace-shout-emoji-floating button:hover,
.ace-shout-emoji-panel.ace-shout-emoji-floating button:focus {
    background: #3d3d3d;
    outline: none;
}

.pun #shout .ace-shout-emoji-panel::-webkit-scrollbar,
.ace-shout-emoji-panel.ace-shout-emoji-floating::-webkit-scrollbar {
    width: 8px;
}

.pun #shout .ace-shout-emoji-panel::-webkit-scrollbar-thumb,
.ace-shout-emoji-panel.ace-shout-emoji-floating::-webkit-scrollbar-thumb {
    background-color: #666;
    border-radius: 4px;
}

.pun #shout > form > button.ace-shout-submit-sr,
.pun #shout button.ace-shout-submit-sr {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
}

.pun .ace-shout-block > h2.ace-shout-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    overflow: visible;
}

.pun .ace-shout-block > h2.ace-shout-head .button.ace-btn-mark-read.ace-shout-clear-btn {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
}

.pun .ace-shout-block {
    margin-bottom: 14px;
}

.pun .ace-shout-block .box {
    overflow: visible !important;
    padding: 0;
}

.pun .ace-shout-block .inbox {
    padding: 0;
}

/* Private messages (GameSense-style pmsnew) */
.pun #pms.ace-pm.block2col {
    display: grid;
    grid-template-columns: min(13em, 32%) 1fr;
    column-gap: 1.5em;
    align-items: start;
}
.pun #pms.ace-pm.block2col .blockmenu {
    float: none;
    width: auto;
    max-width: none;
    grid-column: 1;
    grid-row: 1;
    position: relative;
    z-index: 2;
}
.pun #pms.ace-pm.block2col .ace-pm-main {
    float: none;
    width: auto;
    overflow: visible;
    margin-left: 0;
    min-width: 0;
    grid-column: 2;
    grid-row: 1;
    position: relative;
    z-index: 1;
}
.pun #pms.ace-pm.block2col .ace-pm-main .blockform,
.pun #pms.ace-pm.block2col .ace-pm-main > .block,
.pun #pms.ace-pm.block2col .ace-pm-main > .ace-pm-topic-block {
    float: none;
    width: auto;
    overflow: hidden;
    margin-left: 0;
    min-width: 0;
}
.pun #pms.ace-pm.block2col .ace-pm-main > .block > .pagepost,
.pun #pms.ace-pm.block2col .ace-pm-main > .ace-pm-topic-block > .pagepost {
    overflow: hidden;
}
.pun #pms.ace-pm.block2col > .clearer {
    display: none;
}
.pun #pms.ace-pm.block2col .blockmenu a {
    position: relative;
    z-index: 1;
}
.pun #pms.ace-pm .ace-pm-flash {
    margin-bottom: 8px;
}
.pun #pms.ace-pm .ace-pm-flash .msg-ok,
.pun #pms.ace-pm .ace-pm-flash .msg-err {
    padding: 8px 10px;
    margin-bottom: 0;
}
.pun #pms.ace-pm .blockform .inform fieldset {
    padding: 0 12px;
    margin: 0 0 12px;
    border: 1px solid #606060;
    background: transparent;
}
.pun #pms.ace-pm .blockform .inform fieldset legend {
    padding: 0 6px;
    font-weight: 700;
}
.pun #pms.ace-pm .blockform label textarea,
.pun #pms.ace-pm .blockform label input[type="text"] {
    width: 100%;
    max-width: 42rem;
    box-sizing: border-box;
    margin-top: 3px;
}
.pun #pms.ace-pm .blockform label textarea {
    min-height: 10em;
}
/* PM list — pagepost toolbar (Pages + New dialogue) */
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block > .pagepost,
.pun #pms.ace-pm .ace-pm-main > .block > .pagepost {
    margin: 0 0 6px;
    padding: 0;
}
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block .postlink.actions a,
.pun #pms.ace-pm .ace-pm-main > .block .postlink.actions a {
    font-weight: 400;
}
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block form > h2,
.pun #pms.ace-pm .ace-pm-main > .block form > h2 {
    padding-left: 12px;
    padding-right: 8px;
    overflow: visible;
}
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block #vf.blocktable > .box,
.pun #pms.ace-pm .ace-pm-main > .block #vf.blocktable > .box {
    padding-left: 0;
    padding-right: 0;
}
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block #vf.blocktable .inbox,
.pun #pms.ace-pm .ace-pm-main > .block #vf.blocktable .inbox {
    padding: 0;
}
.pun #pms.ace-pm table.pms-tbl {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
.pun #pms.ace-pm table.pms-tbl th,
.pun #pms.ace-pm table.pms-tbl td {
    padding: 7px 8px;
    vertical-align: middle;
}
.pun #pms.ace-pm table.pms-tbl thead th {
    font-weight: 400;
    color: var(--ace-text-muted);
    text-align: left;
    border-bottom: 1px solid var(--ace-border);
}
.pun #punpmsnew #pms.ace-pm table.pms-tbl thead th.tcl,
.pun #pms.ace-pm table.pms-tbl thead th.tcl {
    /* Align with "Private messages" h2 (12px inset). */
    text-align: left;
    padding-left: 12px;
}
.pun #pms.ace-pm table.pms-tbl tbody td.tcl {
    padding: 7px 8px;
    padding-left: 12px;
    text-align: left;
}
.pun #pms.ace-pm table.pms-tbl thead th.tc2,
.pun #pms.ace-pm table.pms-tbl tbody td.tc2 {
    text-align: left;
}
.pun #pms.ace-pm table.pms-tbl thead th.tc3,
.pun #pms.ace-pm table.pms-tbl tbody td.tc3 {
    text-align: left;
    white-space: nowrap;
}
.pun #pms.ace-pm table.pms-tbl thead th.tce,
.pun #pms.ace-pm table.pms-tbl tbody td.tce {
    width: 2.5rem;
    text-align: center;
}
.pun #pms.ace-pm table.pms-tbl .tcl {
    width: auto;
    overflow-wrap: break-word;
    word-wrap: break-word;
}
/* PM list — GameSense .icon/.nosize slot (overrides cobalt border-triangle + hidden div) */
.pun #punpmsnew #pms.ace-pm table.pms-tbl td.tcl .icon,
.pun #pms.ace-pm table.pms-tbl td.tcl .icon {
    display: block;
    float: left;
    width: 34px;
    min-width: 34px;
    max-width: 34px;
    height: auto;
    margin: 0;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    border: none !important;
    border-width: 0 !important;
    border-style: none !important;
    border-radius: 0;
    overflow: visible;
    background: none;
}
.pun #punpmsnew #pms.ace-pm table.pms-tbl td.tcl .icon .nosize,
.pun #pms.ace-pm table.pms-tbl td.tcl .icon .nosize,
.pun #punpmsnew #pms.ace-pm table.pms-tbl td.tcl .icon div.nosize,
.pun #pms.ace-pm table.pms-tbl td.tcl .icon div.nosize {
    position: static;
    left: auto;
    text-indent: -9999em;
    display: inline-block;
    width: 12px;
    height: 12px;
    min-width: 12px;
    min-height: 12px;
    margin: 0 auto;
    padding: 0;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    vertical-align: middle;
    box-sizing: border-box;
    border-radius: 0;
    background: rgba(72, 72, 71, 0.45);
    border: 1px solid rgba(56, 56, 56, 0.65);
    box-shadow: none;
}
.pun #punpmsnew #pms.ace-pm table.pms-tbl tr.inew td.tcl .icon .nosize,
.pun #pms.ace-pm table.pms-tbl tr.inew td.tcl .icon .nosize {
    background: var(--ace-accent-2);
    border: 1px solid #5fffe8;
    box-shadow: 0 0 10px rgba(0, 240, 212, 0.75), 0 0 4px rgba(0, 240, 212, 0.45);
}
.pun #pms.ace-pm table.pms-tbl td.tcl .tclcon {
    padding: 0;
    overflow: hidden;
}
/* tc2 username: no separate cell fill (oemt PM cards stack subject + name; see oemt-layout.css) */
.pun:not(.oemt-app) #pms.ace-pm table.pms-tbl tbody tr.rowodd td.tc2,
.pun:not(.oemt-app) #pms.ace-pm table.pms-tbl tbody tr.roweven td.tc2 {
    background-color: #252524 !important;
    border: none !important;
    box-shadow: none !important;
}
.pun:not(.oemt-app) #pms.ace-pm table.pms-tbl tbody tr.rowodd:hover td.tc2,
.pun:not(.oemt-app) #pms.ace-pm table.pms-tbl tbody tr.roweven:hover td.tc2 {
    background-color: #20201f !important;
}
.pun #punpmsnew #pms.ace-pm .ace-pm-main > .block form > .pagepost,
.pun #pms.ace-pm .ace-pm-main > .block form > .pagepost {
    margin-top: 0;
    padding-top: 6px;
}
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd td.tcl,
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd td.tc3,
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd td.tce {
    background-color: #252524;
}
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven td.tcl,
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven td.tc3,
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven td.tce {
    background-color: #2a2a29;
}
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd:hover td.tcl,
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd:hover td.tc3,
.pun #pms.ace-pm table.pms-tbl tbody tr.rowodd:hover td.tce,
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven:hover td.tcl,
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven:hover td.tc3,
.pun #pms.ace-pm table.pms-tbl tbody tr.roweven:hover td.tce {
    background-color: #20201f;
}
.pun #pms.ace-pm table.pms-tbl .tc2 {
    width: 18%;
}
.pun #pms.ace-pm table.pms-tbl .tc3 {
    width: 22%;
}
.pun #pms.ace-pm tr.inew a,
.pun #pms.ace-pm tr.ace-pm-unread a {
    font-weight: 700;
}
/* PM conversation thread — blockpost layout (matches forum topic view) */
#punpmsnew .postright h3 {
    position: static;
    display: block;
    overflow: visible;
    width: auto;
    left: auto;
    text-indent: 0;
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    color: #e0e0e0;
}
#punpmsnew .blockpost .postmsg p,
.pun #pms.ace-pm .blockpost .postmsg p {
    margin: 0 0 10px;
}
#punpmsnew .blockpost .postsignature,
.pun #pms.ace-pm .blockpost .postsignature {
    margin-top: 14px;
    padding-top: 4px;
    color: #b0b0b0;
}
#punpmsnew .blockpost .postsignature hr,
.pun #pms.ace-pm .blockpost .postsignature hr {
    margin: 0 0 8px;
    border: 0;
    border-top: 1px solid #444;
}
#punpmsnew .blockpost .postavatar img.ace-avatar,
.pun #pms.ace-pm .blockpost .postavatar img.ace-avatar {
    display: block;
    max-width: 150px;
    height: auto;
}
/* PM conversation — tighter gap between date header (h2) and message body */
#punpmsnew .blockpost h2,
.pun #pms.ace-pm .ace-pm-topic-block .blockpost h2 {
    padding-bottom: 2px;
}
#punpmsnew .blockpost .box > .inbox:first-child,
.pun #pms.ace-pm .ace-pm-topic-block .blockpost .box > .inbox:first-child {
    padding-top: 2px;
}
#punpmsnew .blockpost .postright,
.pun #pms.ace-pm .ace-pm-topic-block .blockpost .postright {
    padding-top: 0;
}
#punpmsnew .blockpost .postmsg,
.pun #pms.ace-pm .ace-pm-topic-block .blockpost .postmsg {
    padding-top: 0;
}
#punpmsnew .blockpost .postmsg > p:first-child,
.pun #pms.ace-pm .ace-pm-topic-block .blockpost .postmsg > p:first-child {
    padding-top: 0;
}
.pun #pms.ace-pm .ace-pm-topic-block > .pagepost {
    margin: 0 0 0.75rem;
    padding: 0;
}
.pun #pms.ace-pm .ace-pm-topic-block .blockpost {
    margin-bottom: 6px;
}
.pun #pms.ace-pm .ace-pm-topic-block .postbody {
    clear: both;
}
.pun #pms.ace-pm .block:not(.ace-pm-topic-block) .pagepost {
    margin-bottom: 0;
}
.pun #pms.ace-pm #quickpost .infldset.txtarea label {
    display: block;
}
.pun #pms.ace-pm #quickpost textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.pun #pms.ace-pm #quickpost ul.bblinks {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}
.pun #pms.ace-pm #quickpost ul.bblinks li {
    display: inline;
    margin-right: 12px;
}
.pun #pms.ace-pm .ace-pm-thread {
    margin-bottom: 12px;
}
.pun #pms.ace-pm .ace-pm-thread-meta {
    margin: 0 0 10px;
    color: #bbb;
}
.pun #pms.ace-pm .ace-pm-msg {
    margin: 0 0 12px;
    padding: 8px 10px;
    border: 1px solid #353534;
    background: #242423;
}
.pun #pms.ace-pm .ace-pm-msg-self {
    background: #1f2520;
    border-color: #3a4a35;
}
.pun #pms.ace-pm .ace-pm-msg-head {
    margin: 0 0 6px;
}
.pun #pms.ace-pm .ace-pm-msg-time {
    color: #999;
    font-size: 0.92em;
    margin-left: 8px;
}
.pun #pms.ace-pm .ace-pm-msg-body {
    line-height: 1.45;
    word-wrap: break-word;
}
.pun #pms.ace-pm .ace-pm-inline-form {
    display: inline;
    margin: 0;
}
.pun #pms.ace-pm .ace-pm-inline-form input[type="submit"] {
    font-size: inherit;
}
.pun #pms.ace-pm .ace-pm-info fieldset {
    margin: 0;
    padding: 0 12px 12px;
    border: 1px solid #606060;
    background: transparent;
}
.pun #pms.ace-pm .ace-pm-info fieldset legend {
    padding: 0 6px;
    font-weight: 700;
    color: var(--ace-accent-2);
}
.pun #pms.ace-pm .blockmenu li.isactive {
    font-weight: 700;
    color: #fff;
}
.pun #pms.ace-pm form.hidden {
    display: none !important;
}
.pun #pms.ace-pm #postform .infldset.txtarea label.conl {
    float: left;
    margin-right: 12px;
}
.pun #pms.ace-pm #postform .infldset.txtarea .clearer {
    clear: both;
}
.pun #pms.ace-pm #postform input.longinput {
    width: 100%;
    max-width: 42rem;
    box-sizing: border-box;
}
.pun #pms.ace-pm #postform textarea {
    width: 100%;
    max-width: 100%;
    min-height: 18em;
    box-sizing: border-box;
}
.pun #pms.ace-pm #postform ul.bblinks {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}
.pun #pms.ace-pm #postform ul.bblinks li {
    display: inline;
    margin-right: 12px;
}
.pun #pms.ace-pm #postform p.buttons {
    margin-top: 10px;
}
.pun #pms.ace-pm #postform p.buttons a {
    margin-left: 8px;
}
.pun #pms.ace-pm .ace-pm-preview {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #444;
}
.pun #pms.ace-pm .ace-pm-preview h3 {
    margin: 0 0 8px;
    font-size: 1em;
}
.pun #pms.ace-pm .ace-pm-preview-body {
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px solid #353534;
    background: #242423;
}
@media (max-width: 720px) {
    .pun #pms.ace-pm.block2col {
        display: block;
    }
    .pun #pms.ace-pm.block2col .blockmenu,
    .pun #pms.ace-pm.block2col .ace-pm-main {
        float: none;
        width: auto;
        max-width: none;
        margin-left: 0;
        grid-column: auto;
        grid-row: auto;
    }
    .pun #pms.ace-pm.block2col > .clearer {
        display: block;
    }
}
