* {
    box-sizing:border-box
}
html {
    font:15px/1.55 Inter,Segoe UI,Arial,sans-serif;
    background-color:#070b14
}
html[data-theme=dark] {
    background-color:#070b14;
    --page-bg:#070b14;
    --text:#edf4ff;
    --muted:#a7b4cb;
    --panel:rgba(11,18,34,.9);
    --panel2:rgba(22,31,55,.9);
    --border:#34425f;
    --header:rgba(7,11,22,.9)
}
html[data-theme=light] {
    background-color:#eef3fb;
    --page-bg:#eef3fb;
    --text:#11182a;
    --muted:#4d5a72;
    --panel:rgba(244,248,255,.9);
    --panel2:rgba(224,234,249,.9);
    --border:#aebcd3;
    --header:rgba(240,246,255,.92)
}
body {
    margin:0;
    min-height:100vh;
    color:var(--text);
    background-color:var(--page-bg);
    background-image:linear-gradient(rgba(238,243,251,.08),rgba(238,243,251,.08)),url('../images/extbg.png');
    background-position:center;
    background-size:cover;
    background-attachment:fixed;
    background-repeat:no-repeat;
    padding-bottom:70px
}
.site-header {
    position:sticky;
    top:0;
    z-index:30;
    min-height:72px;
    padding:8px max(20px,calc((100vw - var(--site-max))/2));
    display:flex;
    align-items:center;
    gap:20px;
    background:var(--header);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border)
}
.brand {
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--text);
    text-decoration:none;
    min-width:250px
}
.brand img {
    width:var(--brand-logo-width);
    height:var(--brand-logo-height);
    object-fit:contain
}
.brand b,.brand small {
    display:block
}
.brand small {
    color:var(--muted);
    font-size:12px
}
.site-header nav {
    display:flex;
    gap:8px;
    align-items:center;
    flex:1;
    justify-content:flex-end;
    flex-wrap:wrap
}
.site-header nav a {
    color:var(--text);
    text-decoration:none;
    padding:9px 12px;
    border-radius:9px
}
.site-header nav a:hover {
    background:var(--panel2)
}
.icon-btn {
    width:40px;
    height:40px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--panel2);
    color:var(--text);
    cursor:pointer
}
.hero {
    height:var(--hero-height);
    display:grid;
    place-items:center;
    text-align:center;
    padding:18px;
    background:linear-gradient(90deg,rgba(10,16,35,.74),rgba(38,20,63,.55),rgba(10,16,35,.74));
    border-bottom:1px solid var(--border)
}
.hero h1 {
    margin:0;
    font-size:clamp(28px,4vw,48px)
}
.hero p {
    margin:6px 0 0;
    color:#d5def0
}
.site-grid {
    width:min(calc(100% - (var(--site-margin) * 2)),var(--site-max));
    margin:18px auto;
    display:grid;
    grid-template-columns:var(--left-width) minmax(0,1fr) var(--right-width);
    gap:var(--grid-gap);
    align-items:start
}
.module,.content-card {
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:0 15px 40px rgba(0,0,0,.23)
}
.module {
    padding:16px;
    margin-bottom:16px
}
.module h3 {
    margin:0 0 12px
}
.content-card {
    padding:24px;
    min-height:520px
}
.feature-grid,.form-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
}
.feature-grid>div {
    padding:18px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--panel2)
}
.feature-grid b,.feature-grid span {
    display:block
}
.feature-grid span,.meta {
    color:var(--muted)
}
label {
    display:flex;
    flex-direction:column;
    gap:7px;
    font-weight:600
}
label small {
    font-weight:400;
    color:var(--muted)
}
input,select,textarea {
    width:100%;
    padding:11px 12px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--panel2);
    color:var(--text);
    font:inherit
}
.stack-form {
    display:flex;
    flex-direction:column;
    gap:15px
}
.span-2 {
    grid-column:1/-1
}
.button-row,.file-list {
    display:flex;
    gap:9px;
    align-items:center;
    flex-wrap:wrap
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 14px;
    min-height:40px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--panel2);
    color:var(--text);
    text-decoration:none;
    cursor:pointer
}
.btn.primary {
    background:var(--accent);
    color:#06111d;
    border-color:transparent
}
.notice {
    padding:12px 14px;
    border-radius:10px;
    margin-bottom:15px
}
.notice.error {
    background:#632a34;
    color:#fff
}
.notice.success {
    background:#185d3d;
    color:#fff
}
.list-card,.download-card {
    display:block;
    color:var(--text);
    text-decoration:none;
    padding:16px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--panel2);
    margin-bottom:12px
}
.list-card:hover,.download-card:hover {
    transform:translateY(-1px);
    border-color:var(--accent)
}
.download-card {
    display:flex;
    gap:15px;
    align-items:center
}
.download-card img {
    width:130px;
    height:90px;
    object-fit:cover;
    border-radius:9px
}
.profile-header {
    overflow:hidden;
    border-radius:13px;
    background:var(--panel2);
    border:1px solid var(--border)
}
.profile-banner {
    width:100%;
    height:240px;
    object-fit:cover
}
.profile-main {
    display:flex;
    gap:15px;
    align-items:center;
    padding:18px
}
.profile-avatar,.avatar-fallback {
    width:44px;
    height:44px;
    border-radius:50%;
    display:grid;
    place-items:center;
    object-fit:cover;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff;
    font-weight:800
}
.profile-avatar,.avatar-fallback.large {
    width:92px;
    height:92px
}
.profile-body {
    padding:20px
}
.gallery {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:10px;
    margin:18px 0
}
.gallery img {
    width:100%;
    height:160px;
    object-fit:cover;
    border-radius:10px
}
.article-body img {
    max-width:100%
}
.online-row {
    display:grid;
    grid-template-columns:50px minmax(160px,1fr) minmax(220px,1fr);
    gap:12px;
    align-items:center;
    padding:12px;
    border-bottom:1px solid var(--border)
}
.online-row img {
    width:44px;
    height:44px;
    border-radius:50%;
    object-fit:cover
}
.online-row small {
    display:block;
    color:var(--muted)
}
.online-page.compact {
    max-height:520px;
    overflow:auto
}
.pagination {
    display:flex;
    gap:6px;
    margin-top:16px;
    flex-wrap:wrap
}
.pagination a {
    padding:7px 10px;
    border:1px solid var(--border);
    border-radius:8px;
    color:var(--text);
    text-decoration:none
}
.pagination a.active {
    background:var(--accent);
    color:#07111b
}
.page-head-inline {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-end
}
footer {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:25;
    background:var(--header);
    border-top:1px solid var(--border);
    padding:14px;
    text-align:center;
    backdrop-filter:blur(12px)
}
pre {
    white-space:pre-wrap;
    background:var(--panel2);
    padding:15px;
    border-radius:10px
}
@media(max-width:1200px) {
    .site-grid {
        grid-template-columns:250px minmax(0,1fr)
    }
    .site-grid>aside:last-child {
        grid-column:1/-1;
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:15px
    }
}
@media(max-width:800px) {
    .site-header {
        padding:8px 14px;
        flex-wrap:wrap
    }
    .brand {
        min-width:0
    }
    .site-header nav {
        order:3;
        width:100%;
        justify-content:flex-start
    }
    .site-grid {
        grid-template-columns:1fr
    }
    .site-grid>aside:last-child {
        grid-column:auto;
        display:block
    }
    .feature-grid,.form-grid {
        grid-template-columns:1fr
    }
    .span-2 {
        grid-column:auto
    }
    .hero {
        height:auto;
        min-height:130px
    }
    .online-row {
        grid-template-columns:50px 1fr
    }
    .online-location {
        grid-column:2
    }
    .page-head-inline {
        align-items:flex-start;
        flex-direction:column
    }
}
/* 1.0.4 layout and module polish */
body {
    background-attachment:fixed;
    background-repeat:no-repeat;
    background-position:center;
    background-size:cover
}
.site-grid {
    max-width:none
}
.module {
    overflow:hidden
}
.member-card {
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:12px;
    align-items:center
}
.member-avatar {
    width:58px!important;
    height:58px!important;
    max-width:58px;
    max-height:58px;
    border-radius:50%;
    object-fit:cover;
    overflow:hidden
}
.member-meta {
    min-width:0
}
.member-meta b,.member-meta span {
    display:block;
    overflow:hidden;
    text-overflow:ellipsis
}
.member-meta span {
    color:var(--muted);
    font-size:13px
}
.member-actions {
    display:grid;
    gap:8px;
    margin-top:14px
}
.member-actions .btn {
    width:100%;
    justify-content:flex-start
}
.danger-soft {
    border-color:#7c4050;
    background:rgba(120,35,55,.28)
}
.online-counts {
    display:grid;
    gap:2px;
    margin-bottom:12px
}
.online-counts b {
    font-size:16px
}
.online-counts span {
    color:var(--muted);
    font-size:13px
}
.online-counts i {
    font-style:normal;
    padding:0 4px
}
.online-mini-list {
    display:grid;
    gap:8px;
    margin-bottom:12px
}
.online-mini {
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:8px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel2)
}
.online-mini img,.online-mini .avatar-fallback {
    width:40px;
    height:40px
}
.online-mini b,.online-mini small {
    display:block;
    line-height:1.3
}
.online-mini small {
    color:var(--muted);
    margin-top:3px
}
.btn.block {
    width:100%
}
.profile-tabs {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:18px 0;
    border-bottom:1px solid var(--border);
    padding-bottom:10px
}
.profile-tabs a {
    padding:9px 13px;
    border-radius:9px;
    color:var(--text);
    text-decoration:none;
    background:var(--panel2)
}
/* 1.0.5 frontend polish */
body.auto-wide .site-grid {
    width:calc(100% - (var(--site-margin) * 2));
    max-width:none
}
body.fixed-wide .site-grid {
    max-width:var(--site-max)
}
.page-articles .content-card,.page-article .content-card,.page-downloads .content-card,.page-download .content-card,.page-online .content-card,.page-profile .content-card {
    background:linear-gradient(145deg,rgba(7,13,27,.92),rgba(18,25,48,.88));
    backdrop-filter:blur(10px)
}
.content-heading {
    padding:4px 2px 18px;
    border-bottom:1px solid var(--border);
    margin-bottom:16px
}
.content-heading h2 {
    margin:0
}
.content-heading p {
    margin:4px 0 0;
    color:var(--muted)
}
.list-card,.download-card {
    transition:.18s ease;
    box-shadow:0 8px 24px rgba(0,0,0,.16)
}
.list-card h3,.download-card h3 {
    margin:0 0 7px
}
.list-card p,.download-card p {
    margin:0 0 9px;
    color:var(--muted)
}
.article-body {
    font-size:16px;
    line-height:1.75
}
.article-body h2,.article-body h3 {
    margin-top:1.4em
}
.article-body ul {
    padding-left:24px
}
.online-mini a,.online-person a {
    color:var(--text);
    text-decoration:none
}
.online-mini a:hover,.online-person a:hover {
    color:var(--accent)
}
.online-avatar-link {
    display:block;
    width:max-content
}
.online-mini {
    cursor:default
}
.online-mini:hover {
    border-color:var(--accent);
    transform:translateY(-1px)
}
.online-page {
    margin-top:18px
}
.online-page.compact {
    max-height:480px;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:12px
}
.online-row {
    background:rgba(19,28,51,.45)
}
.online-row:hover {
    background:var(--panel2)
}
.profile-tabs a.active {
    background:var(--accent);
    color:#06111d
}
.profile-actions {
    margin-top:22px
}
.empty-state {
    padding:24px;
    border:1px dashed var(--border);
    border-radius:12px;
    color:var(--muted);
    text-align:center
}
.download-meta-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:10px;
    margin:16px 0
}
.download-meta-grid>div {
    padding:13px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel2)
}
.download-meta-grid small,.download-meta-grid b {
    display:block
}
.download-meta-grid small {
    color:var(--muted)
}
.content-panel {
    background:linear-gradient(145deg,rgba(16,27,51,.94),rgba(10,18,36,.94));
    border:1px solid var(--border);
    border-radius:14px;
    padding:22px;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
    line-height:1.7
}
.content-panel>*:first-child {
    margin-top:0
}
.content-panel>*:last-child {
    margin-bottom:0
}
.author-tools {
    margin-top:14px
}
.profile-body>p,.profile-body>.empty-state {
    background:var(--panel2);
    border:1px solid var(--border);
    border-radius:12px;
    padding:14px 16px
}
.source-editor {
    font-family:Consolas,monospace;
    min-height:460px
}
.tox-tinymce {
    border-radius:10px!important;
    border-color:var(--border)!important
}

/* Detailed download cards and linked owner profiles. */
.download-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 18px;
}

.download-card.detailed {
    display: grid;
    grid-template-columns: 180px 1fr;
    overflow: hidden;
    padding: 0;
}

.download-cover {
    min-height: 220px;
    background: rgba(5, 10, 22, 0.65);
}

.download-cover img,
.download-placeholder {
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
}

.download-placeholder {
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 800;
}

.download-card-body {
    padding: 20px;
}

.download-owner {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.download-owner img,
.download-owner .avatar-fallback {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 42px;
}

.download-owner.large img,
.download-owner.large .avatar-fallback {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
}

.download-owner div {
    display: grid;
    gap: 3px;
}

.download-owner small {
    color: var(--muted, #a7b4cb);
}

.download-owner a {
    font-weight: 700;
}

.download-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

.download-card-meta span {
    padding: 6px 9px;
    border: 1px solid var(--border, rgba(80, 100, 140, .55));
    border-radius: 8px;
    font-size: .86rem;
}

.download-detail-header {
    margin-bottom: 18px;
}

.download-description {
    margin-top: 18px;
}

@media (max-width: 760px) {
    .download-card.detailed {
        grid-template-columns: 1fr;
    }
}


/* Automatically reclaim empty module columns. Modern browsers support :has(). */
.site-grid:has(> aside:first-child:empty) {
    grid-template-columns: minmax(0, 1fr) var(--right-width);
}
.site-grid:has(> aside:last-child:empty) {
    grid-template-columns: var(--left-width) minmax(0, 1fr);
}
.site-grid:has(> aside:first-child:empty):has(> aside:last-child:empty) {
    grid-template-columns: minmax(0, 1fr);
}
.site-grid > aside:empty { display:none; }
.article-body, .download-description, .profile-body, .parts-panel {
    background: var(--panel2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
}
.meta a, .download-owner a, .parts-link { color:var(--accent); }
.front-editor-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.front-editor-tabs button.active { background:var(--accent); color:#06111d; }
.wysiwyg-surface { min-height:420px; padding:14px; background:#fff; color:#111; border:1px solid var(--border); border-radius:9px; overflow:auto; }
.editor-toolbar { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.parts-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) auto auto; gap:10px; align-items:center; margin-bottom:15px; }
.parts-table-wrap { overflow:auto; max-height:70vh; border:1px solid var(--border); border-radius:10px; }
.parts-table { width:100%; min-width:1250px; border-collapse:collapse; font-size:14px; }
.parts-table th { position:sticky; top:0; z-index:3; background:#075b7d; color:#fff; cursor:pointer; white-space:nowrap; }
.parts-table th,.parts-table td { padding:9px 10px; border:1px solid rgba(160,180,210,.35); text-align:center; }
.parts-table td.description { text-align:left; min-width:320px; }
.parts-table tr[data-ink-color] td.description { background:var(--row-color); color:var(--row-text,#071018); }
.parts-table .money.msrp { background:#25c665; color:#07130b; font-weight:700; }
.parts-table .money.cost { background:#ff4b55; color:#fff; font-weight:700; }
.copy-mini { border:0; background:transparent; cursor:pointer; margin-left:7px; color:inherit; }
.column-picker { position:relative; }
.column-picker-menu { position:absolute; right:0; top:100%; min-width:260px; padding:12px; background:var(--panel); border:1px solid var(--border); border-radius:10px; z-index:10; box-shadow:0 10px 30px rgba(0,0,0,.4); }
.column-picker-menu label { flex-direction:row; align-items:center; font-weight:400; }
.column-picker-menu input { width:auto; }
@media (max-width:900px){.parts-toolbar{grid-template-columns:1fr}.site-grid,.site-grid:has(> aside:first-child:empty),.site-grid:has(> aside:last-child:empty){grid-template-columns:1fr}.site-grid>aside{display:block}}

/* Mimaki parts list: pagination, saved column layouts, drag ordering and copy notices. */
.parts-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.parts-heading-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.parts-heading-stats span,
.parts-list-status {
    border: 1px solid var(--border);
    background: var(--panel-2);
    border-radius: 9px;
    padding: 8px 12px;
}

.parts-toolbar {
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.parts-search-group {
    display: flex;
    gap: 8px;
    flex: 1 1 520px;
}

.parts-search-group input {
    min-width: 260px;
    flex: 1;
}

.parts-page-size {
    display: grid;
    gap: 5px;
    font-size: 12px;
    color: var(--muted);
}

.parts-page-size select {
    min-width: 110px;
}

.parts-list-status {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    font-size: 13px;
}

.column-picker {
    position: relative;
}

.column-picker-menu {
    position: absolute;
    z-index: 20;
    right: 0;
    top: calc(100% + 8px);
    width: min(390px, 92vw);
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .38);
}

.column-picker-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.column-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel-2);
}

.column-picker-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.parts-table {
    table-layout: fixed;
}

.parts-table th {
    position: sticky;
    top: 0;
    z-index: 3;
    user-select: none;
    padding-right: 25px;
}

.parts-table th::after {
    content: '';
    display: inline-block;
    width: 12px;
    margin-left: 5px;
}

.parts-table th.sort-asc::after {
    content: '▲';
}

.parts-table th.sort-desc::after {
    content: '▼';
}

.parts-table th.dragging {
    opacity: .5;
}

.parts-table th.drag-over {
    box-shadow: inset 4px 0 0 #32a8ff;
}

.column-resizer {
    position: absolute;
    top: 0;
    right: -3px;
    bottom: 0;
    width: 9px;
    cursor: col-resize;
    z-index: 5;
}

.column-resizer::after {
    content: '';
    position: absolute;
    top: 20%;
    bottom: 20%;
    left: 4px;
    width: 1px;
    background: rgba(255, 255, 255, .45);
}

body.resizing-column {
    cursor: col-resize;
    user-select: none;
}

.parts-table td {
    overflow: hidden;
    text-overflow: ellipsis;
}

.parts-table td > span {
    vertical-align: middle;
}

.copy-mini {
    margin-left: 6px;
}

.parts-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
}

.parts-pagination .page-button.active {
    background: var(--accent);
    color: #fff;
}

.page-ellipsis {
    padding: 0 4px;
    color: var(--muted);
}

.parts-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1000;
    max-width: min(360px, calc(100vw - 44px));
    padding: 12px 16px;
    border: 1px solid rgba(70, 220, 145, .7);
    border-radius: 10px;
    background: rgba(8, 43, 30, .96);
    color: #d8ffea;
    box-shadow: 0 14px 36px rgba(0, 0, 0, .35);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease;
}

.parts-toast.error {
    border-color: rgba(255, 95, 105, .75);
    background: rgba(66, 15, 20, .96);
    color: #ffe5e8;
}

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

@media (max-width: 700px) {
    .column-picker-list {
        grid-template-columns: 1fr;
    }

    .parts-heading,
    .parts-list-status {
        align-items: stretch;
    }
}

/* Mimaki part selector and preview module */
.part-select-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    cursor: pointer;
}

.part-select-button:hover,
.part-select-button:focus-visible {
    color: var(--link);
}

.column-resizer {
    position: absolute;
    top: 0;
    right: -4px;
    bottom: 0;
    width: 9px;
    cursor: col-resize;
    z-index: 6;
    touch-action: none;
}

.part-preview-module {
    display: grid;
    gap: 12px;
}

.part-preview-module.loading {
    opacity: .72;
    pointer-events: none;
}

.part-preview-image-button {
    width: 100%;
    min-height: 150px;
    height: var(--part-preview-height, 260px);
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(0, 0, 0, .18);
    cursor: zoom-in;
}

.part-preview-image-button img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.part-preview-details {
    display: grid;
    gap: 7px;
    text-align: center;
}

.part-preview-details > strong {
    font-size: 1.08rem;
    overflow-wrap: anywhere;
}

.part-preview-details > span {
    color: var(--muted);
    line-height: 1.4;
}

.part-preview-prices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.part-preview-prices span {
    display: grid;
    gap: 2px;
    padding: 9px;
    border-radius: 8px;
    font-size: .82rem;
}

.part-preview-prices b {
    font-size: 1rem;
}

.part-cost {
    background: rgba(216, 53, 65, .17);
    border: 1px solid rgba(255, 79, 93, .45);
    color: #ff6975;
}

.part-msrp {
    background: rgba(31, 175, 91, .17);
    border: 1px solid rgba(52, 214, 119, .42);
    color: #4fe28c;
}

.part-image-admin {
    display: grid;
    gap: 9px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.part-drop-zone {
    padding: 14px 10px;
    border: 2px dashed var(--border);
    border-radius: 9px;
    text-align: center;
    color: var(--muted);
    cursor: pointer;
}

.part-drop-zone.drag-over,
.part-drop-zone:focus-visible {
    border-color: var(--link);
    background: rgba(32, 145, 239, .12);
    color: var(--text);
}

.part-url-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
}

.part-preview-message {
    min-height: 1.2em;
    font-size: .86rem;
    text-align: center;
}

.part-preview-message.success { color: #4fe28c; }
.part-preview-message.error { color: #ff6975; }

.part-image-lightbox[hidden] { display: none; }

.part-image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 4vw;
    background: rgba(0, 0, 0, .88);
}

.part-image-lightbox img {
    max-width: min(92vw, 1500px);
    max-height: 88vh;
    object-fit: contain;
    cursor: zoom-out;
    border-radius: 10px;
    box-shadow: 0 25px 80px rgba(0, 0, 0, .65);
}

.part-lightbox-close {
    position: fixed;
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    background: rgba(12, 18, 32, .9);
    color: #fff;
    font-size: 28px;
    cursor: pointer;
}

body.lightbox-open { overflow: hidden; }

@media (max-width: 700px) {
    .part-preview-prices,
    .part-url-row {
        grid-template-columns: 1fr;
    }
}

/* Smooth parts-list and dedicated part-preview transitions. */
.part-preview-module {
    contain: layout paint;
}

.part-preview-module.loading {
    cursor: progress;
}

.part-preview-module .part-preview-details,
.part-preview-module [data-part-image] {
    transition: opacity 160ms ease, transform 160ms ease;
}

.part-preview-module.part-changing .part-preview-details {
    opacity: 0.72;
}

.part-preview-module.image-loading [data-part-image] {
    opacity: 0.55;
    transform: scale(0.985);
}

.parts-table tbody {
    contain: layout style;
}

.parts-table tbody tr {
    transition: background-color 100ms ease;
}

.parts-panel {
    position: relative;
}

.parts-panel::after {
    content: 'Updating list…';
    position: absolute;
    top: 74px;
    right: 18px;
    z-index: 6;
    padding: 7px 11px;
    border: 1px solid var(--border, rgba(120, 150, 220, 0.35));
    border-radius: 8px;
    background: rgba(5, 12, 28, 0.92);
    color: #dce9ff;
    font-size: 0.82rem;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity 100ms ease, transform 100ms ease;
}

.parts-panel.is-updating::after {
    opacity: 1;
    transform: translateY(0);
}

/* Part Preview images always stay inside the module at any source size. */
.part-preview-module {
    min-width: 0;
    overflow: hidden;
}

.part-preview-image-button {
    display: flex;
    align-items: center;
    justify-content: center;
}

.part-preview-image-button img {
    flex: 0 0 100%;
}

/* EXT CMS 1.0.18 header, hero, and part preview refinements. */
.site-header {
    padding-left: max(14px, var(--site-margin));
    padding-right: max(14px, var(--site-margin));
}

.site-header .brand {
    margin-right: auto;
}

.hero {
    min-height: var(--hero-height);
    height: auto;
}

.hero-inner {
    width: min(calc(100% - (var(--site-margin) * 2)), var(--site-max));
    margin: 0 auto;
}

body.auto-wide .hero-inner {
    width: calc(100% - (var(--site-margin) * 2));
    max-width: none;
}

.hero .module {
    text-align: left;
    margin: 12px 0;
}

.module-position-content_top,
.module-position-content_bottom {
    margin-bottom: 18px;
}

.part-preview-image-button {
    width: 100%;
    min-width: 0;
    height: var(--part-preview-height, 260px);
    padding: 0;
    overflow: hidden;
}

.part-preview-image-button img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
}

.part-preview-details:has([data-part-number]:empty) {
    display: none;
}

.part-preview-module:not(.has-selection) .part-preview-details,
.part-preview-module:not(.has-selection) .part-image-admin {
    display: none !important;
}

.part-preview-module.has-selection .part-preview-details {
    display: grid;
}

/* 1.0.20 visual fixes */
html { background:var(--page-bg,#070b14); }
html.theme-changing *, html.theme-changing *::before, html.theme-changing *::after { transition:background-color .16s ease,color .16s ease,border-color .16s ease; }
.brand b { font-size:var(--brand-title-size); line-height:1.15; }
.brand small { font-size:var(--brand-tagline-size); }
.profile-avatar-wrap { position:relative; width:92px; height:92px; flex:0 0 92px; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:linear-gradient(135deg,var(--accent),var(--accent2)); }
.profile-avatar-wrap .profile-avatar { width:100%; height:100%; margin:0; border:0; border-radius:50%; object-fit:cover; object-position:center; position:relative; z-index:2; }
.profile-avatar-wrap .avatar-fallback { position:absolute; inset:0; width:100%; height:100%; margin:0; border:0; }
.profile-avatar-wrap:has(img.profile-avatar) .avatar-fallback { display:none; }
.home-content-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.shipping-toolbar,.shipping-actions,.shipping-pagination { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.shipping-toolbar { justify-content:space-between; margin-bottom:14px; }
.shipping-actions { margin-bottom:14px; }
.shipping-table td[contenteditable=true] { cursor:text; }
.shipping-table td[contenteditable=true]:focus { outline:2px solid var(--accent); background:var(--panel2); }
.shipping-table td.saved { box-shadow:inset 0 0 0 2px #20c76a; }
.shipping-table td.error { box-shadow:inset 0 0 0 2px #ff5668; }
.shipping-carrier-logo { width:26px; height:20px; object-fit:contain; vertical-align:middle; margin-right:7px; }
.shipping-modal[hidden] { display:none; }
.shipping-modal { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.72); display:grid; place-items:center; padding:24px; }
.shipping-modal-card { width:min(780px,96vw); max-height:90vh; overflow:auto; background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 25px 80px rgba(0,0,0,.5); }
.shipping-modal-card>header { display:flex; justify-content:space-between; align-items:center; padding:16px 18px; border-bottom:1px solid var(--border); }
.shipping-modal-body { padding:18px; }
.shipping-column-menu { position:absolute; right:0; top:calc(100% + 6px); z-index:20; min-width:240px; padding:12px; background:var(--panel); border:1px solid var(--border); border-radius:10px; }
.shipping-column-wrap { position:relative; }
@media(max-width:900px){.shipping-toolbar{align-items:stretch}.shipping-toolbar>*{width:100%}.profile-avatar-wrap{width:76px;height:76px;flex-basis:76px}}

/* Back-to-top control shown only after the visitor scrolls down. */
.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 24px;
    z-index: 950;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--panel);
    color: var(--text);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top:hover,
.back-to-top:focus-visible {
    background: var(--accent);
    color: #06101c;
    outline: none;
}
@media (max-width: 700px) {
    .back-to-top { right: 14px; bottom: 16px; }
}

/* 1.0.42 Parts List performance and stable layout */
.parts-panel-fast { min-height: 540px; contain: layout paint; }
.parts-panel-fast .parts-table-wrap { min-height: 420px; scrollbar-gutter: stable both-edges; }
.parts-panel-fast .parts-loading-cell { height: 360px; text-align:center; color:var(--muted); font-weight:700; }
.parts-panel-fast .parts-loading-cell.error { color:#ff7a86; }
.parts-panel-fast.is-updating .parts-table-wrap { cursor:progress; }
.parts-panel-fast.is-updating::after { content:'Loading parts…'; }
.site-grid > article { min-width:0; }
.site-grid > aside { min-width:0; }
@supports not selector(:has(*)) {
    .site-grid { grid-template-columns:var(--left-width) minmax(0,1fr) var(--right-width); }
}


/* 1.0.43: fast temporary item-group cards for the Parts List. */
.parts-group-summary {
    margin: 0 0 16px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--panel2);
}
.parts-group-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
.parts-group-summary h2 { margin: 0 0 3px; font-size: 17px; }
.parts-group-summary p { margin: 0; color: var(--muted); font-size: 12px; }
.parts-group-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 9px;
    max-height: 220px;
    overflow: auto;
    scrollbar-gutter: stable;
}
.parts-group-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 52px;
    padding: 9px 11px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--panel);
    color: var(--text);
    cursor: pointer;
    text-align: left;
    transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.parts-group-card:hover { transform: translateY(-1px); border-color: var(--accent); }
.parts-group-card.active { background: color-mix(in srgb, var(--accent) 22%, var(--panel)); border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.parts-group-card span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.parts-group-card b { flex: 0 0 auto; min-width: 34px; padding: 4px 7px; border-radius: 999px; background: rgba(255,255,255,.1); text-align: center; }
.parts-group-card.all-items { min-width: 150px; }
@media (max-width: 700px) {
    .parts-group-summary-head { align-items: stretch; flex-direction: column; }
    .parts-group-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 260px; }
}


/* 1.0.45: reclaim empty sidebar columns before the first paint. */
.site-grid.no-left-modules {
    grid-template-columns: minmax(0, 1fr) var(--right-width);
}
.site-grid.no-right-modules {
    grid-template-columns: var(--left-width) minmax(0, 1fr);
}
.site-grid.no-left-modules.no-right-modules {
    grid-template-columns: minmax(0, 1fr);
}
.site-grid .site-sidebar[hidden] {
    display: none !important;
}
@media (max-width: 900px) {
    .site-grid.no-left-modules,
    .site-grid.no-right-modules,
    .site-grid.no-left-modules.no-right-modules {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 1.0.48: prevent cross-page light-theme flash. */
html:not(.theme-changing), html:not(.theme-changing) body { transition:none !important; }
html[data-theme=light] body { background-color:#eef3fb; }
html[data-theme=dark] body { background-color:#070b14; }


/* 1.0.49: mark part numbers that have a matching local image. */
.part-select-button.has-part-image {
    color: #35d06f !important;
    font-weight: 800;
    text-shadow: 0 0 10px rgba(53, 208, 111, .22);
}
.part-select-button.has-part-image:hover,
.part-select-button.has-part-image:focus-visible {
    color: #7cf3a5 !important;
}
html[data-theme="light"] .part-select-button.has-part-image {
    color: #087b32 !important;
    text-shadow: none;
}

/* 1.0.50: keep ink color backgrounds on Enhanced Description only. */
.parts-table tr[data-ink-color] td:first-child { background:transparent; color:inherit; }
.parts-table tr[data-ink-color] td.description { background:var(--row-color); color:var(--row-text,#071018); }

.custom-menu{display:flex;gap:8px}.custom-menu-vertical{flex-direction:column}.custom-menu-horizontal{flex-direction:row;flex-wrap:wrap}.custom-menu-buttons{flex-direction:column}.custom-menu-link{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:8px;text-decoration:none;line-height:1.25;transition:background-color .15s ease,transform .15s ease}.custom-menu-link:hover{background:var(--surface-hover,rgba(110,150,255,.12));transform:translateX(2px)}.custom-menu-horizontal .custom-menu-link:hover{transform:translateY(-1px)}.custom-menu-buttons .custom-menu-link{justify-content:center;border:1px solid var(--line);background:var(--panel-alt,rgba(255,255,255,.04));font-weight:700}.custom-menu-icon{min-width:1.2em;text-align:center}.custom-menu-empty{opacity:.7;margin:0}


/* EXT CMS 1.0.67 Snugz component parent integration */
.snugz-component-shell{background:rgba(8,19,33,.96)!important;min-height:620px;border:1px solid rgba(64,103,139,.55);border-radius:10px}
html[data-theme="light"] .snugz-component-shell,body.light .snugz-component-shell{background:rgba(238,244,251,.97)!important}
.snugz-component-shell iframe{color-scheme:dark}
html[data-theme="light"] .snugz-component-shell iframe,body.light .snugz-component-shell iframe{color-scheme:light}

/* 1.0.68 Home content editor and frontend edit control */
.home-content-head {
    position: relative;
    align-items: flex-start;
}
.home-content-copy {
    min-width: 0;
    flex: 1 1 auto;
}
.home-rich-content {
    line-height: 1.65;
    overflow-wrap: anywhere;
}
.home-rich-content > :first-child { margin-top: 0; }
.home-rich-content > :last-child { margin-bottom: 0; }
.home-rich-content h1,
.home-rich-content h2,
.home-rich-content h3,
.home-rich-content h4 { margin: 1.15em 0 .45em; line-height: 1.2; }
.home-rich-content p { margin: 0 0 .9em; }
.home-rich-content ul,
.home-rich-content ol { margin: .5em 0 1em 1.5em; padding-left: 1em; }
.home-rich-content li + li { margin-top: .3em; }
.home-rich-content a { color: var(--accent); }
.home-rich-content table { width: 100%; border-collapse: collapse; margin: 1em 0; }
.home-rich-content th,
.home-rich-content td { padding: 9px 11px; border: 1px solid var(--border); }
.home-edit-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 52%, var(--border));
    border-radius: 9px;
    background: color-mix(in srgb, var(--panel2) 86%, transparent);
    color: var(--text);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(0,0,0,.14);
}
.home-edit-button:hover {
    background: color-mix(in srgb, var(--accent) 18%, var(--panel2));
    border-color: var(--accent);
    color: var(--text);
}
.home-edit-button span[aria-hidden="true"] { font-size: 15px; }
.home-editor-form .wysiwyg-surface {
    min-height: var(--home-editor-height, 500px);
}
@media (max-width: 720px) {
    .home-content-head { flex-direction: column; }
    .home-edit-button { align-self: flex-start; }
}

/* EXT CMS 1.0.76 navigation, login and profile fixes */
.top-navigation{position:relative}.top-menu-item{position:relative;display:inline-flex}.top-menu-item>a{background:var(--menu-button-bg,transparent)}.top-menu-item.has-submenu>a:after{content:" ▾";font-size:.72em;opacity:.75}.top-submenu{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:190px;padding:7px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.35);z-index:1000}.top-menu-item:hover>.top-submenu,.top-menu-item:focus-within>.top-submenu{display:grid;gap:4px}.top-submenu a{display:block;background:var(--menu-button-bg,transparent);white-space:nowrap}.stack-form .check{display:flex!important;align-items:center;gap:8px;line-height:1.2}.stack-form .check input[type=checkbox]{width:16px!important;height:16px!important;margin:0!important;flex:0 0 16px}.profile-avatar-wrap{width:92px;height:92px;flex:0 0 92px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:transparent!important}.profile-avatar-wrap .profile-avatar,.profile-avatar-wrap .avatar-fallback{width:100%!important;height:100%!important;margin:0!important;object-fit:cover;object-position:center;border-radius:50%}.custom-menu-panel{padding:8px;border:1px solid color-mix(in srgb,var(--custom-menu-color) 55%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--custom-menu-color) 18%,transparent)}.custom-menu-item{position:relative}.custom-menu-link{background:var(--custom-menu-color,transparent)}.custom-menu-children{display:none;margin-left:14px;padding-left:8px;border-left:2px solid var(--custom-menu-color)}.custom-menu-item:hover>.custom-menu-children,.custom-menu-item:focus-within>.custom-menu-children{display:grid;gap:4px}.profile-note-item[hidden]{display:none!important}
/* EXT CMS 1.0.77: persisted per-item menu colors */
.top-menu-item.menu-has-background > a,
.top-submenu a.menu-has-background{
  background:var(--menu-button-bg,rgba(72,168,255,.12))!important;
  border-color:color-mix(in srgb,var(--menu-button-bg) 65%,var(--border))!important;
}

/* EXT CMS 1.0.78 custom menu text styling */
.custom-menu-link{background:var(--custom-menu-color)!important;color:var(--custom-menu-text)!important;font-weight:var(--custom-menu-weight,400)!important}
/* EXT CMS 1.0.79 login and profile avatar fixes */
.login-module-form .login-options-panel{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--panel2) 88%,transparent);box-sizing:border-box}
.login-module-form .login-options-panel .check{display:flex!important;align-items:center!important;justify-content:flex-start;gap:8px;margin:0;min-width:0;white-space:nowrap}.login-module-form .remember-check input[type=checkbox]{order:2}.login-module-form .remember-check span{order:1}
.login-module-form .login-options-panel input[type=checkbox]{width:17px!important;height:17px!important;margin:0!important;flex:0 0 17px}
.password-field-wrap{position:relative;display:block;width:100%}.password-field-wrap input{width:100%;padding-right:45px!important}.password-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:32px;padding:0;border:0;border-radius:7px;background:transparent;color:inherit;cursor:pointer;font-size:17px}.password-eye:hover,.password-eye:focus{background:color-mix(in srgb,var(--accent) 18%,transparent);outline:none}
.profile-main{justify-content:flex-start}.profile-avatar-wrap{position:relative!important;width:92px!important;height:92px!important;flex:0 0 92px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;border-radius:50%!important;background:var(--panel)!important;background-image:none!important;border:2px solid color-mix(in srgb,var(--accent) 55%,var(--border))!important;box-sizing:border-box!important}
.profile-avatar-wrap img.profile-avatar{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:none!important;background-image:none!important;object-fit:cover!important;object-position:50% 50%!important;transform:none!important;position:static!important}
.profile-avatar-wrap .avatar-fallback{inset:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;margin:0!important;border-radius:50%!important;background:linear-gradient(135deg,var(--accent),var(--accent2))!important}
@media(max-width:560px){.login-module-form .login-options-panel{align-items:center;flex-direction:row}}

/* EXT CMS 1.0.91 professional menu styling and click-open dummy parents */
.top-menu-item>a,.top-menu-trigger,.top-submenu a,.top-submenu .top-menu-trigger{font-size:var(--menu-font-size,15px);font-weight:var(--menu-weight,600);color:var(--menu-text,var(--text));border-radius:var(--menu-radius,9px);padding:var(--menu-py,9px) var(--menu-px,12px);transition:background .18s ease,color .18s ease,transform .18s ease;line-height:1.1}
.top-menu-trigger{font-family:inherit;border:0;background:transparent;cursor:pointer}.menu-has-background{background:var(--menu-button-bg)!important}.top-menu-item>a:hover,.top-menu-trigger:hover,.top-submenu a:hover{color:var(--menu-hover)!important;transform:translateY(-1px)}.top-menu-item>a.active{color:var(--menu-active)!important}.top-menu-item.has-submenu>a:after,.top-menu-item.has-submenu>.top-menu-trigger:after{content:" ▾";font-size:.72em;opacity:.8}.top-menu-item.submenu-open>.top-submenu{display:grid;gap:4px}.submenu-entry{display:block}.submenu-entry>a,.submenu-entry>.top-menu-trigger{width:100%;display:block;text-align:left}


/* EXT CMS 1.0.92 definitive menu color engine */
.top-menu-item>a,.top-menu-trigger,.top-submenu a,.top-submenu .top-menu-trigger{background:transparent;color:var(--menu-text,var(--text))!important}
.top-menu-item>a.menu-has-background,.top-menu-trigger.menu-has-background,.top-submenu a.menu-has-background,.top-submenu .top-menu-trigger.menu-has-background{background:var(--menu-button-bg,transparent)!important}
.top-menu-item>a:hover,.top-menu-trigger:hover{background:var(--menu-hover-bg,transparent)!important;color:var(--menu-hover,var(--menu-text))!important}
.top-menu-item>a.active,.top-menu-item>a[aria-current="page"]{background:var(--menu-active-bg,var(--menu-button-bg))!important;color:var(--menu-active,var(--menu-text))!important}
.top-submenu{background:var(--menu-dropdown-bg,var(--panel))!important}
.top-submenu .submenu-entry>a:hover,.top-submenu .submenu-entry>.top-menu-trigger:hover{background:var(--menu-dropdown-hover-bg,var(--menu-hover-bg))!important;color:var(--menu-hover,var(--menu-text))!important}


/* EXT CMS 1.0.93 menu background checkbox and state fix */
.top-menu-item > a,
.top-menu-item > .top-menu-trigger,
.top-submenu .submenu-entry > a,
.top-submenu .submenu-entry > .top-menu-trigger {
  background: transparent !important;
}
.top-menu-item > a.menu-has-background,
.top-menu-item > .top-menu-trigger.menu-has-background,
.top-submenu .submenu-entry > a.menu-has-background,
.top-submenu .submenu-entry > .top-menu-trigger.menu-has-background {
  background: var(--menu-button-bg, transparent) !important;
}
.top-menu-item > a:hover,
.top-menu-item > .top-menu-trigger:hover {
  color: var(--menu-hover, var(--menu-text)) !important;
}
.top-menu-item > a:not(.menu-has-background):hover,
.top-menu-item > .top-menu-trigger:not(.menu-has-background):hover {
  background: transparent !important;
}
.top-menu-item > a.menu-has-background:hover,
.top-menu-item > .top-menu-trigger.menu-has-background:hover {
  background: var(--menu-hover-bg, var(--menu-button-bg)) !important;
}
.top-menu-item > a.active,
.top-menu-item > a[aria-current="page"] {
  color: var(--menu-active, var(--menu-text)) !important;
}
.top-menu-item > a.active:not(.menu-has-background),
.top-menu-item > a[aria-current="page"]:not(.menu-has-background) {
  background: transparent !important;
}
.top-menu-item > a.active.menu-has-background,
.top-menu-item > a[aria-current="page"].menu-has-background {
  background: var(--menu-active-bg, var(--menu-button-bg)) !important;
}
.top-submenu .submenu-entry > a:not(.menu-has-background):hover,
.top-submenu .submenu-entry > .top-menu-trigger:not(.menu-has-background):hover {
  background: transparent !important;
}
.top-submenu .submenu-entry > a.menu-has-background:hover,
.top-submenu .submenu-entry > .top-menu-trigger.menu-has-background:hover {
  background: var(--menu-dropdown-hover-bg, var(--menu-hover-bg)) !important;
}

/* EXT CMS 1.0.94 strict menu color toggle */
/* Unchecked items use the normal site navigation appearance. No saved menu colors are applied. */
.top-menu-item > a:not(.menu-has-background),
.top-menu-item > .top-menu-trigger:not(.menu-has-background),
.top-submenu .submenu-entry > a:not(.menu-has-background),
.top-submenu .submenu-entry > .top-menu-trigger:not(.menu-has-background) {
  background: transparent !important;
  color: var(--text) !important;
}
.top-menu-item > a:not(.menu-has-background):hover,
.top-menu-item > .top-menu-trigger:not(.menu-has-background):hover,
.top-menu-item > a.active:not(.menu-has-background),
.top-menu-item > a[aria-current="page"]:not(.menu-has-background),
.top-submenu .submenu-entry > a:not(.menu-has-background):hover,
.top-submenu .submenu-entry > .top-menu-trigger:not(.menu-has-background):hover {
  background: transparent !important;
  color: var(--text) !important;
}
/* Checked items use every saved color state. */
.top-menu-item > a.menu-has-background,
.top-menu-item > .top-menu-trigger.menu-has-background,
.top-submenu .submenu-entry > a.menu-has-background,
.top-submenu .submenu-entry > .top-menu-trigger.menu-has-background {
  background: var(--menu-button-bg, transparent) !important;
  color: var(--menu-text, var(--text)) !important;
}
.top-menu-item > a.menu-has-background:hover,
.top-menu-item > .top-menu-trigger.menu-has-background:hover {
  background: var(--menu-hover-bg, var(--menu-button-bg)) !important;
  color: var(--menu-hover, var(--menu-text)) !important;
}
.top-menu-item > a.active.menu-has-background,
.top-menu-item > a[aria-current="page"].menu-has-background {
  background: var(--menu-active-bg, var(--menu-button-bg)) !important;
  color: var(--menu-active, var(--menu-text)) !important;
}
.top-menu-item:has(> a.menu-has-background) > .top-submenu,
.top-menu-item:has(> .top-menu-trigger.menu-has-background) > .top-submenu {
  background: var(--menu-dropdown-bg, var(--panel)) !important;
}
.top-submenu .submenu-entry > a.menu-has-background:hover,
.top-submenu .submenu-entry > .top-menu-trigger.menu-has-background:hover {
  background: var(--menu-dropdown-hover-bg, var(--menu-hover-bg)) !important;
  color: var(--menu-hover, var(--menu-text)) !important;
}

/* EXT CMS 1.3.9.2 login control repair */
.login-module-form{width:100%;max-width:100%}
.login-module-form .password-field-wrap{position:relative;display:flex;width:100%;align-items:center}
.login-module-form .password-field-wrap input{width:100%!important;min-width:0;padding-right:48px!important}
.login-module-form .password-eye{
  -webkit-appearance:none!important;appearance:none!important;
  position:absolute!important;right:7px!important;top:50%!important;transform:translateY(-50%)!important;
  display:grid!important;place-items:center!important;width:34px!important;height:34px!important;
  min-width:34px!important;min-height:34px!important;margin:0!important;padding:0!important;
  border:0!important;border-radius:8px!important;background:transparent!important;background-image:none!important;
  box-shadow:none!important;color:var(--text)!important;cursor:pointer!important;line-height:1!important;z-index:2
}
.login-module-form .password-eye:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)!important}
.login-module-form .password-eye:focus-visible{outline:2px solid var(--accent)!important;outline-offset:1px!important}
.login-module-form .password-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.login-module-form .password-eye-closed{display:none}
.login-module-form .password-eye[aria-pressed="true"] .password-eye-open{display:none}
.login-module-form .password-eye[aria-pressed="true"] .password-eye-closed{display:block}
.login-module-form .login-options-panel{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;
  min-height:44px;padding:10px 12px!important;border:1px solid var(--border)!important;border-radius:10px!important;
  background:color-mix(in srgb,var(--panel2) 88%,transparent)!important;box-sizing:border-box!important
}
.login-module-form .remember-check{
  display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
  gap:9px!important;margin:0!important;padding:0!important;width:auto!important;cursor:pointer!important;
  color:var(--text)!important;font-weight:600!important;line-height:1.2!important
}
.login-module-form .remember-check span{order:1!important;white-space:nowrap}
.login-module-form .remember-check input[type="checkbox"]{
  order:2!important;-webkit-appearance:auto!important;appearance:auto!important;
  width:17px!important;height:17px!important;min-width:17px!important;flex:0 0 17px!important;
  margin:0!important;padding:0!important;accent-color:var(--accent)!important;cursor:pointer!important
}
