:root {
    --pf-bg: #07111f;
    --pf-nav: #050b14;
    --pf-panel: #0d1c30;
    --pf-panel-alt: #122744;
    --pf-border: #28476b;
    --pf-text: #eef6ff;
    --pf-muted: #9fb4cc;
    --pf-accent: #d21f3c;
    --pf-accent-dark: #a50f28;
    --pf-accent-text: #ffffff;
    --pf-danger-soft: #3b1421;
    --pf-input: #081526;
    --pf-shadow: rgba(0, 0, 0, .42);
    --pf-solution-brand-primary: var(--pf-accent);
    --pf-solution-brand-secondary: var(--pf-nav);
    --pf-solution-brand-accent: var(--pf-accent);
}

html[data-theme="pacforge-standard"] {
    --pf-bg: #15171a;
    --pf-nav: #0d0f11;
    --pf-panel: #202328;
    --pf-panel-alt: #292d33;
    --pf-border: #454b54;
    --pf-text: #f4f5f7;
    --pf-muted: #adb3bd;
    --pf-accent: #c90000;
    --pf-accent-dark: #970000;
    --pf-danger-soft: #3a1719;
    --pf-input: #111317;
}

html[data-theme="pacforge-light"] {
    --pf-bg: #eef1f5;
    --pf-nav: #202328;
    --pf-panel: #ffffff;
    --pf-panel-alt: #f4f5f7;
    --pf-border: #c8ced7;
    --pf-text: #1d232b;
    --pf-muted: #626d7a;
    --pf-accent: #c90000;
    --pf-accent-dark: #970000;
    --pf-danger-soft: #ffe5e5;
    --pf-input: #ffffff;
    --pf-shadow: rgba(0, 0, 0, .18);
}

html[data-theme="pacforge-midnight"] {
    --pf-bg: #07111f;
    --pf-nav: #050b14;
    --pf-panel: #0d1c30;
    --pf-panel-alt: #122744;
    --pf-border: #28476b;
    --pf-text: #eef6ff;
    --pf-muted: #9fb4cc;
    --pf-accent: #d21f3c;
    --pf-accent-dark: #a50f28;
    --pf-danger-soft: #3b1421;
    --pf-input: #081526;
    --pf-accent-text: #ffffff;
    --pf-shadow: rgba(0, 0, 0, .42);
}

html[data-theme="pacforge-slate"] {
    --pf-bg: #252a2f;
    --pf-nav: #1d2125;
    --pf-panel: #343a40;
    --pf-panel-alt: #3f464d;
    --pf-border: #626b75;
    --pf-text: #f4f5f6;
    --pf-muted: #c0c5ca;
    --pf-accent: #bb1f2d;
    --pf-accent-dark: #8e1621;
    --pf-danger-soft: #452126;
    --pf-input: #292e33;
}

html[data-theme="pacforge-high-contrast"] {
    --pf-bg: #000000;
    --pf-nav: #000000;
    --pf-panel: #000000;
    --pf-panel-alt: #151515;
    --pf-border: #ffffff;
    --pf-text: #ffffff;
    --pf-muted: #ffffff;
    --pf-accent: #ff2020;
    --pf-accent-dark: #c90000;
    --pf-danger-soft: #440000;
    --pf-input: #000000;
}


html[data-theme="pacforge-ocean"] {
    --pf-bg: #071a26;
    --pf-nav: #041119;
    --pf-panel: #0d2838;
    --pf-panel-alt: #12384e;
    --pf-border: #28627d;
    --pf-text: #eefaff;
    --pf-muted: #a9c7d6;
    --pf-accent: #1596c7;
    --pf-accent-dark: #0e6f96;
    --pf-danger-soft: #173747;
    --pf-input: #071e2b;
}

html[data-theme="pacforge-forest"] {
    --pf-bg: #0d1b14;
    --pf-nav: #08110c;
    --pf-panel: #173024;
    --pf-panel-alt: #204331;
    --pf-border: #46755a;
    --pf-text: #f0fff5;
    --pf-muted: #afd0ba;
    --pf-accent: #2d9c5b;
    --pf-accent-dark: #217543;
    --pf-danger-soft: #203b2a;
    --pf-input: #10251a;
}

html[data-theme="pacforge-sand"] {
    --pf-bg: #eee7da;
    --pf-nav: #4b3b2a;
    --pf-panel: #fffaf0;
    --pf-panel-alt: #f4ead8;
    --pf-border: #b9a58a;
    --pf-text: #34291f;
    --pf-muted: #756654;
    --pf-accent: #b25f25;
    --pf-accent-dark: #86461b;
    --pf-danger-soft: #f3ddca;
    --pf-input: #fffdf7;
    --pf-shadow: rgba(70, 50, 30, .2);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; font-family: Arial, sans-serif; background: var(--pf-bg); color: var(--pf-text); }
a { color: inherit; }
.top { background: var(--pf-nav); color: #fff; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--pf-border); }
.brand { font-size: 20px; font-weight: 700; }
.top-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.theme-form { margin: 0; }
.theme-form select { width: auto; min-width: 190px; padding: 7px 9px; }
.shell { max-width: 1280px; margin: 0 auto; padding: 20px; }
.hero, .panel { background: var(--pf-panel); border: 1px solid var(--pf-border); border-radius: 14px; padding: 18px; margin-bottom: 18px; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.card { display: block; background: var(--pf-panel); color: var(--pf-text); border: 1px solid var(--pf-border); border-radius: 12px; padding: 20px; text-decoration: none; min-height: 130px; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.card:hover, .card:focus { transform: translateY(-3px); box-shadow: 0 10px 24px var(--pf-shadow); border-color: var(--pf-accent); outline: none; }
.card.selected, .card[aria-current="page"] { border-color: var(--pf-accent); box-shadow: 0 0 0 1px var(--pf-accent), 0 10px 24px var(--pf-shadow); }
.icon { font-size: 30px; }
.muted { color: var(--pf-muted); }
.btn { display: inline-block; border: 1px solid var(--pf-border); border-radius: 8px; padding: 9px 13px; text-decoration: none; background: var(--pf-panel-alt); color: var(--pf-text); cursor: pointer; }
.btn.primary, .btn.danger { background: var(--pf-accent); color: var(--pf-accent-text, #fff); border-color: var(--pf-accent); }
.btn.primary:hover, .btn.danger:hover { background: var(--pf-accent-dark); border-color: var(--pf-accent-dark); }
input, select, textarea { width: 100%; padding: 10px; border: 1px solid var(--pf-border); border-radius: 8px; background: var(--pf-input); color: var(--pf-text); }
input:focus, select:focus, textarea:focus { border-color: var(--pf-accent); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--pf-accent) 25%, transparent); }
.field { margin-bottom: 14px; }
.field label { display: block; font-weight: 700; margin-bottom: 6px; }
.toolbar { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.toolbar .grow { flex: 1; min-width: 220px; }
table { width: 100%; border-collapse: collapse; background: var(--pf-panel); color: var(--pf-text); }
th, td { padding: 10px; border-bottom: 1px solid var(--pf-border); text-align: left; vertical-align: top; }
th { background: var(--pf-panel-alt); }
.alert { padding: 12px; border-radius: 8px; margin-bottom: 14px; background: var(--pf-danger-soft); border: 1px solid var(--pf-accent); }
.success { background: #17351e; border-color: #2c6a37; }
.login { max-width: 480px; margin: 60px auto; }
.workspace-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.pagination { display: flex; gap: 8px; margin-top: 14px; }
.status { font-weight: 700; }
.small { font-size: .85rem; }
.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; }
html[data-theme="pacforge-high-contrast"] .card, html[data-theme="pacforge-high-contrast"] input, html[data-theme="pacforge-high-contrast"] select, html[data-theme="pacforge-high-contrast"] textarea { border-width: 2px; }
@media (max-width: 700px) { .shell { padding: 12px; } .top { padding: 12px; align-items: flex-start; } .top-actions { align-items: flex-end; } .theme-form select { min-width: 160px; max-width: 55vw; } .cards { grid-template-columns: 1fr; } th:nth-child(n+4), td:nth-child(n+4) { display: none; } }

/* PacForge Runtime V2.6.0 — Published Experience Execution */
:root {
    --pf-brand-accent: var(--pf-accent);
}

.published-entry h2 {
    margin-top: 24px;
}

.empty-state {
    text-align: center;
    padding: 48px 24px;
}

.empty-state-icon {
    color: var(--pf-brand-accent);
    font-size: 52px;
    line-height: 1;
    margin-bottom: 16px;
}

.empty-state h2 {
    margin: 0 0 10px;
}


/* PacForge Runtime V2.6.1 — Published Experience Stabilization */
input::placeholder,
textarea::placeholder {
    color: var(--pf-muted);
    opacity: 1;
}

.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--pf-brand-accent, var(--pf-accent));
    outline-offset: 2px;
}

.registration-panel small {
    display: block;
    margin-top: 6px;
}


/* PacForge Runtime V2.7.0 — Widget Rendering and Interactive Forms */
:root {
    --pf-overlay: rgba(0, 0, 0, .72);
    --pf-success: #2f9e55;
    --pf-warning: #f59f00;
}

.pf-widget-dashboard {
    display: grid;
    gap: 18px;
}

.pf-widget-section {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
}

.pf-widget {
    grid-column: span var(--pf-widget-columns, 4);
    grid-row: span var(--pf-widget-rows, 1);
    min-width: 0;
    background: var(--pf-panel);
    border: 1px solid var(--pf-border);
    border-radius: 14px;
    box-shadow: 0 10px 24px var(--pf-shadow);
    overflow: hidden;
}

.pf-widget-header {
    padding: 14px 16px 0;
}

.pf-widget-header h2 {
    margin: 0;
    font-size: 1rem;
}

.pf-widget-content {
    padding: 16px;
}

.pf-widget-section-hero .pf-widget {
    background: linear-gradient(135deg, var(--pf-panel), var(--pf-panel-alt));
}

.pf-widget-lead {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.55;
}

.pf-kpi-value {
    color: var(--pf-accent);
    font-size: clamp(2rem, 6vw, 3.5rem);
    font-weight: 800;
    line-height: 1;
}

.pf-widget-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pf-recent-list {
    display: grid;
    gap: 8px;
}

.pf-recent-list a {
    padding: 10px;
    text-decoration: none;
    background: var(--pf-panel-alt);
    border-radius: 8px;
}

.pf-mini-chart {
    display: flex;
    align-items: end;
    gap: 8px;
    height: 150px;
    padding-top: 12px;
}

.pf-mini-chart span {
    flex: 1;
    min-width: 12px;
    background: var(--pf-accent);
    border-radius: 6px 6px 2px 2px;
}

.pf-calendar-date {
    display: grid;
    width: max-content;
    text-align: center;
}

.pf-calendar-date strong {
    color: var(--pf-accent);
    font-size: 3rem;
    line-height: 1;
}

.pf-progress {
    height: 14px;
    overflow: hidden;
    background: var(--pf-input);
    border: 1px solid var(--pf-border);
    border-radius: 999px;
}

.pf-progress span {
    display: block;
    height: 100%;
    background: var(--pf-accent);
}

.runtime-record-form .form-grid,
.pacforge-swal-form .form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.pacforge-swal-popup {
    background: var(--pf-panel) !important;
    color: var(--pf-text) !important;
    border: 1px solid var(--pf-border) !important;
    border-radius: 14px !important;
}

.pacforge-swal-title,
.pacforge-swal-content {
    color: var(--pf-text) !important;
}

.pacforge-swal-content {
    text-align: left !important;
}

.pacforge-swal-form input,
.pacforge-swal-form select,
.pacforge-swal-form textarea {
    background: var(--pf-input);
    color: var(--pf-text);
    border-color: var(--pf-border);
}

.pacforge-swal-validation {
    background: var(--pf-danger-soft) !important;
    color: var(--pf-text) !important;
}

.swal2-container {
    background: var(--pf-overlay) !important;
}

@media (max-width: 760px) {
    .pf-widget {
        grid-column: 1 / -1;
    }

    .pf-widget-hide-mobile {
        display: none;
    }

    .runtime-record-form .form-grid,
    .pacforge-swal-form .form-grid {
        grid-template-columns: 1fr;
    }
}


.password-field {
    position: relative;
    display: flex;
    align-items: center;
}

.password-field input {
    width: 100%;
    padding-right: 48px;
}

.password-toggle {
    position: absolute;
    right: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--pf-muted);
    cursor: pointer;
    border-radius: 8px;
    user-select: none;
}

.password-toggle:hover,
.password-toggle:focus-visible,
.password-toggle.is-visible {
    color: var(--pf-accent);
    background: var(--pf-panel-alt);
    outline: none;
}

.password-toggle:focus-visible {
    box-shadow: 0 0 0 2px var(--pf-accent);
}

.password-toggle svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
    pointer-events: none;
}


/* V2.7.5 User Profile and Preference Foundation */
.profile-link { font-weight: 700; text-decoration: none; }
.profile-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.profile-grid .panel { margin: 0; }
.profile-grid .check { display: block; margin: 14px 0; }
@media (max-width: 760px) { .profile-grid { grid-template-columns: 1fr; } }

/* V2.8.0 Platform Information */
.platform-link{font-size:1.25rem;text-decoration:none}.platform-footer{padding:14px 20px;text-align:center;border-top:1px solid var(--pf-border);background:var(--pf-panel);font-size:.85rem}.platform-footer span{color:var(--pf-muted)}.platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.platform-card{margin:0}.platform-card dl{margin:0}.platform-card dl div{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.2fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--pf-border)}.platform-card dt{color:var(--pf-muted)}.platform-card dd{margin:0;word-break:break-word}.health-summary{display:flex;justify-content:space-between;gap:18px;padding:14px 18px;border-radius:12px;margin-bottom:18px}.health-pass{background:rgba(39,174,96,.16);border:1px solid rgba(39,174,96,.45)}.health-warning{background:var(--pf-danger-soft);border:1px solid var(--pf-danger)}.status-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.status-list li{display:flex;gap:10px;align-items:center}.status-ok span{color:#2ecc71}.status-fail span{color:var(--pf-danger)}.platform-copy-source{position:absolute;left:-10000px;width:1px;height:1px}@media(max-width:760px){.platform-grid{grid-template-columns:1fr}.health-summary{flex-direction:column}.platform-card dl div{grid-template-columns:1fr}}


/* V2.9.0 Developer Diagnostics Framework */
.diagnostic-panel{margin-top:18px}.diagnostic-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.diagnostic-summary div{padding:12px;border:1px solid var(--pf-border);border-radius:10px;background:var(--pf-panel-alt)}.diagnostic-summary dt{color:var(--pf-muted);font-size:.82rem}.diagnostic-summary dd{margin:5px 0 0;font-weight:700;word-break:break-word}.diagnostic-code{overflow:auto;padding:16px;border:1px solid var(--pf-border);border-radius:10px;background:var(--pf-panel-alt);white-space:pre-wrap;word-break:break-word}.diagnostic-metrics{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0 18px}.diagnostic-copy-source{position:absolute;left:-10000px;width:1px;height:1px}@media(max-width:760px){.diagnostic-summary{grid-template-columns:1fr}.diagnostic-panel table{display:block;overflow-x:auto}}
.diagnostic-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.diagnostic-summary div,.diagnostic-event{padding:14px;border:1px solid var(--border,#444);border-radius:10px}.diagnostic-summary dt{font-weight:700}.diagnostic-summary dd{margin:4px 0 0}.diagnostic-timeline{display:grid;gap:12px}.diagnostic-event pre{white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;padding:12px;background:rgba(0,0,0,.2);border-radius:8px}


/* V2.9.0 Observability Foundation navigation */
.observability-foundation { margin-bottom: 1.25rem; }
.status-badge { display:inline-flex; align-items:center; padding:.45rem .75rem; border-radius:999px; font-size:.85rem; font-weight:700; }
.status-warning { border:1px solid var(--border,#555); }
.top-actions .platform-link { padding:.35rem .55rem; border-radius:.4rem; text-decoration:none; }
@media (max-width: 720px) { .top-actions .platform-link { font-size:.78rem; } }
.diagnostic-report{width:100%;min-height:22rem;margin-top:1rem;font-family:Consolas,monospace;font-size:.85rem;white-space:pre;}

/* PacForge Runtime V2.9.4 - Advanced Observability */
.observability-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1rem}.observability-metrics article{border:1px solid var(--border,#3b4350);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.observability-metrics strong{font-size:1.35rem}.observability-metrics span{font-size:.9rem;opacity:.75}

/* PacForge Runtime V2.9.8 */
.profile-identity{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}.profile-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 36px}.profile-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--panel,#252a32);border:1px solid var(--border,#4a5260)}.profile-avatar-fallback svg{width:22px;height:22px;fill:currentColor}.profile-image-panel{display:flex;align-items:center;gap:1.5rem}.profile-image-preview{flex:0 0 128px}.profile-image-preview img,.profile-avatar-large{width:128px;height:128px;border-radius:50%;object-fit:cover}.profile-avatar-large{display:flex;align-items:center;justify-content:center;background:var(--panel,#252a32);border:1px solid var(--border,#4a5260)}.profile-avatar-large svg{width:72px;height:72px;fill:currentColor}.profile-image-actions,.profile-image-remove{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.runtime-tools-entry{margin-top:1.5rem}.observability-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

@media(max-width:680px){.profile-image-actions,.profile-image-remove{flex-direction:column;align-items:stretch}.profile-image-actions .btn,.profile-image-remove .btn{width:100%;text-align:center}.profile-image-panel{flex-direction:column;text-align:center}.profile-image-preview{flex-basis:auto}.top-actions{gap:.45rem}.profile-avatar{width:32px;height:32px;flex-basis:32px}}

#profile_image_name{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* PacForge Runtime V2.9.9 - Profile Camera Capture */
.profile-camera-support{margin-top:.75rem}.profile-camera-panel{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.78)}.profile-camera-panel[hidden]{display:none}.profile-camera-dialog{width:min(760px,100%);max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--pf-border);border-radius:14px;background:var(--pf-panel);box-shadow:0 24px 70px rgba(0,0,0,.45);padding:1rem}.profile-camera-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.profile-camera-header h3{margin:.1rem 0}.profile-camera-stage{display:flex;align-items:center;justify-content:center;min-height:260px;margin:1rem 0;border-radius:12px;overflow:hidden;background:#000}.profile-camera-stage video{display:block;width:100%;max-height:62vh;object-fit:contain;background:#000}.profile-camera-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.profile-camera-controls .btn{min-width:140px}@media(max-width:680px){.profile-camera-dialog{padding:.85rem}.profile-camera-header{align-items:center}.profile-camera-controls{flex-direction:column}.profile-camera-controls .btn{width:100%}.profile-camera-stage{min-height:220px}}
