/* Format.AI graphite / electric blue, 2026-09-06.
 * Compatibility aliases preserve existing templates, JS hooks and text.
 * The original green stylesheet stays intact for a checked rollback.
 */
:root,
.format-theme-graphite {
    color-scheme: light;
    --format-ink: #171d30;
    --format-muted: #5c6479;
    --format-bg: #f6f7fb;
    --format-surface: #fff;
    --format-border: #e1e5ef;
    --format-primary: #3654de;
    --format-primary-hover: #2843c7;
    --format-night: #101422;
    --format-soft: #edf0ff;
    --format-accent: #b5c1ff;
    --format-focus: #3654de;
    --format-success: #166442;
    --format-success-bg: #eaf6ee;
    --format-warning: #805009;
    --format-warning-bg: #fff2de;
    --format-danger: #a12636;
    --format-danger-bg: #fff0f2;
    --format-primary-gradient: linear-gradient(120deg, #3654de 0%, #3c4fd3 48%, #5143bd 100%);
    --format-header-gradient: linear-gradient(120deg, #101422, #18213a);
    --format-shadow: 0 2px 5px rgb(23 29 48 / 3%), 0 14px 35px -18px rgb(23 29 48 / 20%);
    --format-shadow-lift: 0 4px 10px rgb(23 29 48 / 5%), 0 20px 45px -20px rgb(35 50 102 / 24%);
    --format-radius: 14px;
    --header-height: 80px;
    --green-primary: var(--format-primary);
    --green-secondary: #4963ed;
    --green-light: #788cee;
    --green-lighter: #c6cfff;
    --green-pale: var(--format-soft);
    --green-dark: #18213a;
    --olive-primary: #5950a2;
    --olive-soft: #e9e6fc;
    --neutral-light: var(--format-bg);
    --neutral-dark: var(--format-ink);
    --ink: var(--format-ink);
    --pine-950: var(--format-night);
    --pine-900: #18213a;
    --pine-800: #263965;
    --emerald-600: var(--format-primary);
    --emerald-500: var(--format-primary);
    --mint-300: var(--format-accent);
    --lime-200: #dce2ff;
    --surface: var(--format-bg);
    --surface-alt: #eef1f8;
    --card-border: var(--format-border);
    --shadow: rgb(35 50 102 / 14%);
    --shadow-soft: var(--format-shadow);
    --shadow-lift: var(--format-shadow-lift);
    --radius-lg: var(--format-radius);
    --radius-md: 10px;
    --bs-primary: var(--format-primary);
    --bs-primary-rgb: 54, 84, 222;
    --bs-link-color: var(--format-primary);
    --bs-link-color-rgb: 54, 84, 222;
    --bs-link-hover-color: var(--format-primary-hover);
    --bs-link-hover-color-rgb: 40, 67, 199;
    --bs-body-color: var(--format-ink);
    --bs-body-bg: var(--format-bg);
    --bs-border-color: var(--format-border);
    --bs-font-sans-serif: 'Inter', 'Segoe UI', system-ui, sans-serif;
}
.format-theme-graphite {
    background: radial-gradient(1000px 400px at 100% 0%, #edf0ff 0%, transparent 65%), var(--format-bg);
    color: var(--format-ink);
    font-family: var(--bs-font-sans-serif);
    font-size: 1rem;
    -webkit-font-smoothing: antialiased;
}
.format-theme-graphite :is(h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6) {
    font-family: var(--bs-font-sans-serif);
    font-weight: 700;
    letter-spacing: -.035em;
    color: var(--format-ink);
    text-wrap: pretty;
}
.format-theme-graphite :is(button, input, select, textarea) { font-family: inherit; }
.format-theme-graphite .text-muted { color: var(--format-muted) !important; }
.format-theme-graphite a:not(.btn):not([class]) { color: var(--format-primary); }
.format-theme-graphite ::selection { color: #172354; background: #dce2ff; }
.format-theme-graphite :is(a, button, input, select, textarea, summary, [role="button"]):focus-visible {
    outline: 3px solid var(--format-focus) !important;
    outline-offset: 3px;
}
.format-theme-graphite .site-header {
    background: rgb(255 255 255 / 97%) !important;
    border-bottom: 1px solid #c9d2e9;
    box-shadow: 0 3px 0 rgb(54 84 222 / 5%), 0 8px 24px -18px rgb(16 20 34 / 28%);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    --format-focus: #3654de;
}
.format-theme-graphite .site-header .navbar-brand { color: var(--format-ink) !important; letter-spacing: -.055em; font-weight: 800; }
.format-theme-graphite .brand-wordmark { white-space: nowrap; }
.format-theme-graphite .brand-ai { color: var(--format-primary); }
.format-theme-graphite .footer-modern .brand-ai { color: var(--format-accent); }
.format-theme-graphite .site-header .nav-link {
    color: #46516b !important;
    opacity: 1;
    border-radius: 8px;
    font-size: .88rem;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}
.format-theme-graphite .site-header .nav-link:hover,
.format-theme-graphite .site-header .nav-link[aria-current="page"] {
    color: #2843c7 !important;
    background: var(--format-soft);
    box-shadow: inset 0 -2px var(--format-primary);
    transform: none;
}
.format-theme-graphite .site-header .nav-link[aria-current="page"] { font-weight: 700; }
.format-theme-graphite .site-header .badge-green { background: #273660; color: #e2e8ff; border: 1px solid #475780; }
.format-theme-graphite .site-header #sessionTimer { color: #34405a; border: 1px solid #b8c3de; }
.format-theme-graphite .site-header .nav-signin { border: 1px solid #b8c3de; padding-inline: 1rem; }
.format-theme-graphite .site-header .navbar-toggler { border: 1px solid #8291ac; min-width: 44px; min-height: 44px; }
.format-theme-graphite .site-header .navbar-toggler-icon { filter: brightness(0) saturate(100%) opacity(.8); }
.format-theme-graphite .site-header .nav-logout {
    color: var(--format-danger) !important;
    background: var(--format-danger-bg) !important;
    border: 1px solid #d4919c;
    padding-inline: .9rem;
    margin-left: .45rem;
    box-shadow: none;
}
.format-theme-graphite .site-header .nav-logout:is(:hover, :focus-visible) {
    color: #fff !important;
    background: var(--format-danger) !important;
    border-color: var(--format-danger);
    box-shadow: none;
}
.format-theme-graphite .site-header :is(.nav-cta-btn, .btn-light) {
    color: #fff !important;
    background: var(--format-primary-gradient) !important;
    border: 1px solid #6e83eb !important;
    border-radius: 9px !important;
    box-shadow: 0 4px 14px -7px rgb(81 105 242 / 55%);
}
.format-theme-graphite .brand-mark { background: none !important; border: 0 !important; box-shadow: none !important; }
.format-theme-graphite .brand-mark img { filter: drop-shadow(0 4px 8px rgb(54 84 222 / 16%)); }
.format-theme-graphite .navbar-format .brand-mark img { width: 40px; height: 40px; }
.format-theme-graphite :is(.card-modern, .card, .modal-content) {
    border-color: var(--format-border);
    border-radius: var(--format-radius);
    background-color: var(--format-surface);
}
.format-theme-graphite .card-modern {
    border: 1px solid var(--format-border) !important;
    box-shadow: var(--format-shadow);
}
.format-theme-graphite .card-modern:hover { transform: none; }
.format-theme-graphite .card-modern .card-header {
    background: linear-gradient(180deg, #fff, #f7f8fc) !important;
    border-bottom: 1px solid var(--format-border) !important;
    color: var(--format-ink);
}
.format-theme-graphite .card-modern .card-header :is(h1, h2, h3, h4, h5, h6) { color: var(--format-ink); }
.format-theme-graphite .card-modern .card-header i { color: var(--format-primary); }
.format-theme-graphite .card-modern small strong { color: var(--format-primary); }
.format-theme-graphite .modal-content { box-shadow: 0 28px 85px -22px rgb(16 20 34 / 36%); }
.format-theme-graphite :is(.modal-header, .modal-footer, .offcanvas-header) { border-color: var(--format-border); }
.format-theme-graphite .modal-header { background: #f8f9fd; }
.format-theme-graphite .modal-title { letter-spacing: -.025em; }
.format-theme-graphite :is(.form-control, .form-select, .input-group-text) {
    color: var(--format-ink);
    background-color: var(--format-surface);
    border: 1px solid #8291ac !important;
    border-radius: 9px !important;
    min-height: 43px;
}
.format-theme-graphite :is(.form-control, .form-select):focus {
    border-color: var(--format-primary) !important;
    box-shadow: 0 0 0 .2rem rgb(54 84 222 / 14%) !important;
}
.format-theme-graphite .form-select { padding-right: 2.5rem; }
.format-theme-graphite .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.format-theme-graphite .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
.format-theme-graphite .input-group > .dropdown-toggle:nth-last-child(n + 3) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.format-theme-graphite :is(.form-control, .form-select):disabled { background-color: #f0f2f7; color: #667189; }
.format-theme-graphite :is(.form-control, .form-select).is-invalid,
.format-theme-graphite .was-validated :is(.form-control, .form-select):invalid {
    border-color: var(--format-danger) !important;
}
.format-theme-graphite :is(.form-control, input)::placeholder { color: #68738a !important; opacity: 1; }
.format-theme-graphite :is(.form-label, .form-label.fw-bold, .form-label.fw-semibold) { color: #34405a; font-weight: 600; }
.format-theme-graphite .input-group-text { background: #f1f3f9; color: var(--format-muted); }
.format-theme-graphite .form-check-input { border-color: #8291ac; }
.format-theme-graphite .form-check-input:checked {
    background-color: var(--format-primary) !important;
    border-color: var(--format-primary) !important;
    box-shadow: 0 0 0 3px rgb(54 84 222 / 10%);
}
.format-theme-graphite .form-check-input:focus { box-shadow: 0 0 0 3px rgb(54 84 222 / 18%); }
.format-theme-graphite :is(.btn, .voucher-btn-primary, .voucher-btn-secondary, .voucher-btn-pause, .button) {
    border-radius: 9px;
    font-weight: 600;
    letter-spacing: -.005em;
    transition: transform .18s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, background-position .35s ease;
}
.format-theme-graphite :is(.btn-green, .btn-primary, .btn-hero-primary, .voucher-btn-primary) {
    --bs-btn-color: #fff;
    --bs-btn-bg: #3654de;
    --bs-btn-border-color: #3654de;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #2843c7;
    --bs-btn-hover-border-color: #2843c7;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #213ba9;
    --bs-btn-active-border-color: #213ba9;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #667acb;
    color: #fff !important;
    background: var(--format-primary-gradient) !important;
    background-size: 150% 100% !important;
    background-position: 0 50% !important;
    border: 1px solid #3654de !important;
    box-shadow: 0 5px 14px -8px rgb(54 84 222 / 50%), inset 0 1px rgb(255 255 255 / 16%);
    text-shadow: none;
}
.format-theme-graphite .btn-green::after { content: none; }
.format-theme-graphite :is(.btn-outline-green, .btn-outline-primary) {
    color: var(--format-primary) !important;
    background: #fff !important;
    border: 1px solid #8394df !important;
    box-shadow: none !important;
}
.format-theme-graphite :is(.btn-outline-green, .btn-outline-primary):hover {
    background: var(--format-soft) !important;
    color: #263da0 !important;
    border-color: var(--format-primary) !important;
}
.format-theme-graphite :is(.btn-soft-green, .voucher-btn-secondary) {
    color: #3047b2 !important;
    background: var(--format-soft) !important;
    border: 1px solid #c5cff3 !important;
    box-shadow: none;
}
.format-theme-graphite :is(.btn-soft-green, .voucher-btn-secondary):hover {
    background: #e1e7ff !important;
    border-color: #9aaee9 !important;
}
.format-theme-graphite :is(.btn.disabled, .btn:disabled, button:disabled, [aria-disabled="true"]) {
    transform: none !important;
    box-shadow: none !important;
    cursor: not-allowed;
}
.format-theme-graphite .btn:active:not(:disabled):not(.disabled) { transform: translateY(0) scale(.99); }
.format-theme-graphite .btn-link { box-shadow: none !important; transform: none !important; }
.format-theme-graphite .badge-green { color: #263965 !important; background: var(--format-soft) !important; }
.format-theme-graphite .badge-olive { color: #473c85; background: #eeeafb; }
.format-theme-graphite .progress { background: #e7ebf5; box-shadow: none; }
.format-theme-graphite .progress-bar-green { background: var(--format-primary-gradient); }
.format-theme-graphite .table {
    --bs-table-color: var(--format-ink);
    --bs-table-striped-bg: #f7f8fc;
    --bs-table-hover-bg: #eff2fb;
    --bs-table-border-color: var(--format-border);
    --bs-table-bg: transparent;
}
.format-theme-graphite .table thead th { color: #46516b; font-weight: 600; }
.format-theme-graphite .page-link { color: var(--format-primary); border-color: var(--format-border); }
.format-theme-graphite .active > .page-link { color: #fff; background: var(--format-primary); border-color: var(--format-primary); }
.format-theme-graphite .footer-modern {
    color: #bac4db;
    background: var(--format-header-gradient) !important;
    border-top: 1px solid #303b59;
    --format-focus: #b5c1ff;
}
.format-theme-graphite .footer-modern :is(h1, h2, h3, h4, h5, h6) { color: #f4f6ff !important; font-family: inherit !important; }
.format-theme-graphite .footer-modern .footer-links a { color: #c3ceff !important; }
.format-theme-graphite .footer-modern .footer-links a:hover { color: #fff !important; }
@media (hover: hover) and (pointer: fine) {
    .format-theme-graphite .btn:not(.btn-link):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 18px -10px rgb(40 58 114 / 38%);
    }
    .format-theme-graphite :is(.btn-green, .btn-primary, .btn-hero-primary, .voucher-btn-primary):not(:disabled):not(.disabled):hover {
        background-position: 100% 50% !important;
        box-shadow: 0 9px 23px -10px rgb(54 84 222 / 55%), inset 0 1px rgb(255 255 255 / 22%);
    }
}
@media (max-width: 991.98px) {
    .format-theme-graphite .site-header .navbar-collapse { padding: 12px 0; }
    .format-theme-graphite .site-header .navbar-collapse.show {
        max-height: calc(100vh - var(--header-height) - 12px);
        max-height: calc(100dvh - var(--header-height) - 12px);
        overflow-y: auto;
        overscroll-behavior-y: contain;
        scrollbar-gutter: stable;
    }
    .format-theme-graphite .site-header .navbar-nav { align-items: stretch !important; gap: 5px; }
    .format-theme-graphite .site-header .nav-link { min-height: 44px; margin: 0; }
    .format-theme-graphite .site-header .nav-item.ms-2 { margin-left: 0 !important; }
    .format-theme-graphite .site-header .nav-logout { margin-left: 0; }
    .format-theme-graphite .site-header .badge { margin: 5px 8px 5px 0 !important; }
}
@media (pointer: coarse) {
    .format-theme-graphite :is(.btn, .button, .voucher-btn-primary, .voucher-btn-secondary, .admin-nav-link, .admin-subnav-link, .form-select) { min-height: 44px; }
    .format-theme-graphite .btn-close { min-width: 44px; min-height: 44px; }
    .format-theme-graphite :is(.form-control, .form-select) { font-size: 16px !important; }
    .format-theme-graphite .btn:hover { transform: none !important; }
}
@media (prefers-reduced-motion: reduce) {
    .format-theme-graphite *,
    .format-theme-graphite *::before,
    .format-theme-graphite *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
    .format-theme-graphite :is(.reveal, .fade-in-up, .slide-in) { opacity: 1 !important; transform: none !important; }
    .format-theme-graphite :is(.btn, .card, .upload-area, .job-card):hover { transform: none !important; }
}
@media (forced-colors: active) {
    .format-theme-graphite :is(.btn, .form-control, .form-select, .card, .form-check-input) { border: 1px solid ButtonText !important; box-shadow: none !important; }
}
