:root {
    --pf-bg: #15171a;
    --pf-panel: #202328;
    --pf-panel-alt: #292d33;
    --pf-border: #454b54;
    --pf-text: #f4f5f7;
    --pf-muted: #adb3bd;
    --pf-red: #c90000;
    --pf-red-dark: #970000;
    --pf-red-soft: #3a1719;
}

html,
body {
    min-height: 100%;
}

body {
    background: var(--pf-bg);
    color: var(--pf-text);
}

a {
    color: #ff6b6b;
}

a:hover {
    color: #ff9b9b;
}

.navbar {
    background: #0d0f11 !important;
    border-bottom: 1px solid var(--pf-border);
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: .02em;
}

.navbar-dark .navbar-nav .nav-link {
    color: #d9dde3;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
    color: #fff;
}

.environment-banner {
    padding: .65rem 1rem;
    text-align: center;
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    border-bottom: 2px solid #000;
    font-weight: 600;
}

.environment-uat {
    background: #ffd24d;
    color: #111;
}

.environment-production {
    background: #b50000;
    color: #fff;
}

.environment-development {
    background: #2574a9;
    color: #fff;
}

.login-page {
    min-height: 100vh;
}

.login-card,
.summary-card,
.card,
.modal-content,
.dropdown-menu {
    background: var(--pf-panel);
    color: var(--pf-text);
    border: 1px solid var(--pf-border);
}

.login-card {
    max-width: 430px;
    margin: 8vh auto;
    border-radius: .45rem;
    padding: 2rem;
    box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .45);
}

.summary-card {
    min-height: 135px;
    border-radius: .4rem;
    padding: 1.25rem;
    box-shadow: 0 .25rem .8rem rgba(0, 0, 0, .22);
}

.summary-value {
    font-size: 2.2rem;
    font-weight: 700;
}

.card-header,
.card-footer {
    background: var(--pf-panel-alt);
    border-color: var(--pf-border);
}

.table {
    color: var(--pf-text);
}

.table thead th,
.table td,
.table th {
    border-color: var(--pf-border);
}

.table-hover tbody tr:hover {
    color: #fff;
    background: rgba(255, 255, 255, .045);
}

.form-control,
.custom-file-label,
.custom-select {
    background: #111317;
    color: var(--pf-text);
    border-color: var(--pf-border);
}

.form-control:focus,
.custom-select:focus {
    background: #111317;
    color: #fff;
    border-color: var(--pf-red);
    box-shadow: 0 0 0 .2rem rgba(201, 0, 0, .2);
}

.form-control::placeholder {
    color: #7e858f;
}

.btn-primary,
.btn-danger {
    background: var(--pf-red);
    border-color: var(--pf-red);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:not(:disabled):not(.disabled):active {
    background: var(--pf-red-dark);
    border-color: var(--pf-red-dark);
}

.btn-outline-primary,
.btn-outline-danger {
    color: #ff5d5d;
    border-color: var(--pf-red);
}

.btn-outline-primary:hover,
.btn-outline-danger:hover {
    background: var(--pf-red);
    border-color: var(--pf-red);
    color: #fff;
}

.btn-outline-light {
    border-color: #8f969f;
}

.alert-success {
    color: #eafbea;
    background: #17351e;
    border-color: #2c6a37;
}

.alert-danger {
    color: #ffe7e7;
    background: var(--pf-red-soft);
    border-color: #7c292d;
}

.alert-warning {
    color: #fff4ce;
    background: #4a3a08;
    border-color: #8b6e11;
}

.badge-status {
    padding: .45rem .6rem;
}

.badge-ready {
    background: #117a8b;
    color: #fff;
}

.badge-active {
    background: #218838;
    color: #fff;
}

.badge-inactive {
    background: #5a6268;
    color: #fff;
}

.badge-validation-failed {
    background: var(--pf-red);
    color: #fff;
}

.validation-row {
    background: #35191b;
}

.text-muted {
    color: var(--pf-muted) !important;
}

code {
    color: #ff7777;
}

hr {
    border-color: var(--pf-border);
}

.registration-card {
    max-width: 560px;
    margin-top: 4vh;
    margin-bottom: 4vh;
}

.form-text {
    line-height: 1.4;
}


/* PacForge Deploy V1.3.0 theme engine */
html[data-theme="pacforge-standard"], html[data-theme="pacforge-dark"] { --pf-bg:#15171a; --pf-panel:#202328; --pf-panel-alt:#292d33; --pf-border:#454b54; --pf-text:#f4f5f7; --pf-muted:#adb3bd; --pf-red:#c90000; --pf-red-dark:#970000; --pf-red-soft:#3a1719; }
html[data-theme="pacforge-midnight"], html[data-theme="midnight"] { --pf-bg:#07111f; --pf-panel:#0d1c30; --pf-panel-alt:#122744; --pf-border:#28476b; --pf-text:#eef6ff; --pf-muted:#9fb4cc; --pf-red:#d21f3c; --pf-red-dark:#a50f28; --pf-red-soft:#3b1421; }
html[data-theme="pacforge-ocean"] { --pf-bg:#071a26; --pf-panel:#0d2838; --pf-panel-alt:#12384e; --pf-border:#28627d; --pf-text:#eefaff; --pf-muted:#a9c7d6; --pf-red:#1596c7; --pf-red-dark:#0e6f96; --pf-red-soft:#173747; }
html[data-theme="pacforge-forest"] { --pf-bg:#0d1b14; --pf-panel:#173024; --pf-panel-alt:#204331; --pf-border:#46755a; --pf-text:#f0fff5; --pf-muted:#afd0ba; --pf-red:#2d9c5b; --pf-red-dark:#217543; --pf-red-soft:#203b2a; }
html[data-theme="pacforge-slate"], html[data-theme="slate"] { --pf-bg:#252a2f; --pf-panel:#343a40; --pf-panel-alt:#3f464d; --pf-border:#626b75; --pf-text:#f4f5f6; --pf-muted:#c0c5ca; --pf-red:#bb1f2d; --pf-red-dark:#8e1621; --pf-red-soft:#452126; }
html[data-theme="pacforge-light"] { --pf-bg:#eef1f5; --pf-panel:#ffffff; --pf-panel-alt:#f4f5f7; --pf-border:#c8ced7; --pf-text:#1d232b; --pf-muted:#626d7a; --pf-red:#c90000; --pf-red-dark:#970000; --pf-red-soft:#ffe5e5; }
html[data-theme="pacforge-sand"] { --pf-bg:#eee7da; --pf-panel:#fffaf0; --pf-panel-alt:#f4ead8; --pf-border:#b9a58a; --pf-text:#34291f; --pf-muted:#756654; --pf-red:#b25f25; --pf-red-dark:#86461b; --pf-red-soft:#f3ddca; }
html[data-theme="pacforge-high-contrast"], html[data-theme="high-contrast"] { --pf-bg:#000; --pf-panel:#000; --pf-panel-alt:#151515; --pf-border:#fff; --pf-text:#fff; --pf-muted:#fff; --pf-red:#ff2020; --pf-red-dark:#c90000; --pf-red-soft:#440000; }
html[data-theme="pacforge-light"] .navbar { background:#202328!important; }
html[data-theme="pacforge-light"] .form-control,html[data-theme="pacforge-light"] .custom-select,html[data-theme="pacforge-light"] .custom-file-label { background:#fff;color:var(--pf-text); }
html[data-theme="pacforge-light"] .table-hover tbody tr:hover { color:#111;background:rgba(0,0,0,.04); }
html[data-theme="pacforge-high-contrast"] .card,html[data-theme="high-contrast"] .card,html[data-theme="pacforge-high-contrast"] .summary-card,html[data-theme="high-contrast"] .summary-card,html[data-theme="pacforge-high-contrast"] .form-control,html[data-theme="high-contrast"] .form-control,html[data-theme="pacforge-high-contrast"] .custom-select,html[data-theme="high-contrast"] .custom-select { border-width:2px; }
.product-mark,.brand-mark { display:inline-flex;align-items:center;justify-content:center;background:var(--pf-red);color:#fff;font-weight:800;border-radius:.25rem; }
.product-mark { width:54px;height:54px;font-size:1.3rem;margin-bottom:1rem; }
.brand-mark { width:30px;height:30px;font-size:.75rem;margin-right:.4rem; }
.version-label { margin-top:1.25rem;text-align:center;color:var(--pf-muted);font-size:.8rem; }
.page-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem; }
.page-heading h1 { margin-bottom:.2rem; }
.profile-card { max-width:720px; }
.welcome-panel { background:var(--pf-panel);border:1px solid var(--pf-red);border-left:6px solid var(--pf-red);padding:1.4rem;margin-bottom:1.5rem;border-radius:.35rem; }
.summary-label { font-size:1.05rem;font-weight:600;margin-bottom:.25rem; }
.empty-state { padding:2rem;text-align:center; }
.checklist-item { position:relative;padding:.65rem .5rem .65rem 2rem;border-bottom:1px solid var(--pf-border); }
.checklist-item::before { content:'○';position:absolute;left:.5rem;font-weight:700;color:var(--pf-muted); }
.checklist-item.complete::before { content:'✓';color:#46c46f; }
.navbar-text { color:#d9dde3 !important;text-decoration:none; }

.manifest-view{max-height:520px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:rgba(0,0,0,.22);padding:1rem;border-radius:.35rem}.badge-archived{background:#555;color:#fff}.badge-validation-failed{background:#8b1e1e;color:#fff}.badge-ready{background:#8a5a00;color:#fff}.badge-active{background:#198754;color:#fff}.badge-inactive{background:#495057;color:#fff}

/* V1.4.0 Deployment Administration */
.page-heading {
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.card dl dt,
.card dl dd {
    margin-bottom: 0.65rem;
}
.table small {
    color: var(--pf-muted-text);
}

/* PacForge standard password visibility control */
.password-field {
    position: relative;
}

.password-field .form-control {
    padding-right: 3rem;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 0.6rem;
    width: 2rem;
    height: 2rem;
    padding: 0.25rem;
    transform: translateY(-50%);
    border: 0;
    border-radius: 0.25rem;
    background: transparent;
    color: var(--pf-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.password-toggle:hover,
.password-toggle:focus {
    color: var(--pf-text);
    background: rgba(255, 255, 255, 0.08);
    outline: none;
}

.password-toggle:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(181, 0, 0, 0.35);
}

.password-toggle svg {
    width: 1.25rem;
    height: 1.25rem;
    display: block;
}

/* V2.4.18 unified profile and theme catalogue */
.profile-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:1.25rem;align-items:start}.profile-layout .profile-card{margin:0}.theme-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.75rem;margin:1rem 0}.theme-select-card{appearance:none;border:1px solid var(--pf-border);border-radius:.65rem;background:var(--pf-panel-alt);color:var(--pf-text);padding:.7rem;text-align:left;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.theme-select-card:hover,.theme-select-card:focus-visible{transform:translateY(-2px);border-color:var(--pf-red);outline:none}.theme-select-card.selected{border-color:var(--pf-red);box-shadow:0 0 0 2px var(--pf-red)}.theme-select-card strong,.theme-select-card small{display:block}.theme-select-card small{color:var(--pf-muted);margin-top:.25rem}.theme-swatch{display:block;height:48px;border-radius:.45rem;margin-bottom:.55rem;border:1px solid rgba(127,127,127,.4)}.theme-swatch-pacforge-standard{background:linear-gradient(135deg,#15171a 0 68%,#c90000 68%)}.theme-swatch-pacforge-midnight{background:linear-gradient(135deg,#07111f 0 68%,#d21f3c 68%)}.theme-swatch-pacforge-ocean{background:linear-gradient(135deg,#071a26 0 68%,#1596c7 68%)}.theme-swatch-pacforge-forest{background:linear-gradient(135deg,#0d1b14 0 68%,#2d9c5b 68%)}.theme-swatch-pacforge-slate{background:linear-gradient(135deg,#252a2f 0 68%,#bb1f2d 68%)}.theme-swatch-pacforge-light{background:linear-gradient(135deg,#eef1f5 0 68%,#c90000 68%)}.theme-swatch-pacforge-sand{background:linear-gradient(135deg,#eee7da 0 68%,#b25f25 68%)}.theme-swatch-pacforge-high-contrast{background:linear-gradient(135deg,#000 0 68%,#ff2020 68%)}.theme-card-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}@media(max-width:800px){.profile-layout{grid-template-columns:1fr}.theme-card-actions{align-items:stretch;flex-direction:column}.theme-card-actions .btn{width:100%}}

/* V2.4.19 stable password visibility control */
.password-toggle,
.password-toggle:hover,
.password-toggle:focus,
.password-toggle:focus-visible,
.password-toggle:active {
    top: 50%;
    transform: translateY(-50%);
    background: transparent !important;
    transition: color .16s ease;
}
.password-toggle { color: var(--pf-text) !important; }
.password-toggle[aria-pressed="true"], .password-toggle.is-visible { color: var(--pf-red, #d40000) !important; }
