:root {
    --usine-bg: #F8FAFC;
    --usine-header: #6290fb;
    --usine-header-dark: #2f5eea;
    --usine-header-deep: #183a9e;
    --usine-text: #1E293B;
    --usine-blue: #2563EB;
    --usine-green: #059669;
    --usine-cyan: #0891B2;
    --usine-orange: #F59E0B;
    --usine-red: #DC2626;
    --usine-border: #E2E8F0;
    --usine-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.production-launch-hero {
    margin-bottom: 1rem;
}

.production-launch-primary {
    box-shadow: 0 12px 24px rgba(5, 150, 105, 0.18);
}

.production-launch-overview {
    margin-top: -0.25rem;
}

.production-launch-summary {
    height: 100%;
    padding: 1rem 1.1rem;
    border: 1px solid var(--usine-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.production-launch-summary--accent {
    background: linear-gradient(135deg, rgba(8, 145, 178, 0.08), rgba(98, 144, 251, 0.12));
    border-color: rgba(37, 99, 235, 0.16);
}

.production-launch-summary__label {
    display: block;
    margin-bottom: 0.45rem;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.production-launch-summary strong {
    display: block;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 800;
}

.production-launch-summary small {
    display: block;
    margin-top: 0.35rem;
    color: #64748b;
    font-size: 0.8rem;
}

.production-launch-article {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    padding: 1rem;
    border: 1px solid var(--usine-border);
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
}

.production-launch-article__image {
    min-height: 150px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(98, 144, 251, 0.14), rgba(8, 145, 178, 0.12));
    color: #2563eb;
    font-size: 3.2rem;
    overflow: hidden;
}

.production-launch-article__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.production-launch-article__body h4,
.production-bom-card h4,
.production-instruction-card h4 {
    margin: 0;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 800;
}

.production-launch-article__body p,
.production-bom-card p,
.production-instruction-card p {
    margin: 0.35rem 0 0.8rem;
    color: #64748b;
}

.production-launch-metrics,
.production-bom-card__data {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.production-launch-metrics span,
.production-bom-card__data span {
    padding: 0.7rem;
    border-radius: 14px;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.78rem;
}

.production-launch-metrics strong,
.production-bom-card__data strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #0f172a;
    font-size: 0.95rem;
}

.production-bom-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.production-bom-card {
    padding: 1rem;
    border: 1px solid var(--usine-border);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.production-bom-card--success {
    border-color: rgba(5, 150, 105, 0.22);
}

.production-bom-card--warning {
    border-color: rgba(245, 158, 11, 0.28);
}

.production-bom-card--danger {
    border-color: rgba(220, 38, 38, 0.24);
}

.production-launch-shell .production-bom-grid {
    grid-template-columns: 1fr !important;
}

.production-launch-shell .production-bom-card {
    width: 100% !important;
    padding: 0.8rem !important;
}

.production-launch-shell .production-bom-card h4 {
    font-size: 0.95rem !important;
    margin-bottom: 0.2rem !important;
}

.production-launch-shell .production-bom-card p {
    margin: 0.15rem 0 0.45rem !important;
    font-size: 0.8rem !important;
}

.production-launch-shell .production-bom-card__data {
    display: grid !important;
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    gap: 0.4rem !important;
}

.production-launch-shell .production-bom-card__data > div {
    padding: 0.4rem 0.5rem !important;
    border-radius: 10px !important;
    min-height: 60px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.production-launch-shell .production-bom-card__data strong {
    font-size: 0.95rem !important;
    margin-bottom: 0.12rem !important;
}

.production-launch-shell .production-bom-card__data span {
    font-size: 0.72rem !important;
}

.production-launch-shell .production-bom-card__meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.35rem !important;
    margin-bottom: 0.5rem !important;
}

.production-launch-shell .production-bom-card .status-badge {
    font-size: 0.72rem !important;
    padding: 0.32rem 0.55rem !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--primary {
    background: linear-gradient(180deg, rgba(219, 234, 254, 0.95), #ffffff) !important;
    border: 1px solid rgba(59, 130, 246, 0.22) !important;
    color: #1d4ed8 !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--warning {
    background: linear-gradient(180deg, rgba(254, 243, 199, 0.95), #ffffff) !important;
    border: 1px solid rgba(245, 158, 11, 0.26) !important;
    color: #b45309 !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--info {
    background: linear-gradient(180deg, rgba(207, 250, 254, 0.95), #ffffff) !important;
    border: 1px solid rgba(6, 182, 212, 0.22) !important;
    color: #0f766e !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--warning-alt {
    background: linear-gradient(180deg, rgba(243, 232, 255, 0.95), #ffffff) !important;
    border: 1px solid rgba(168, 85, 247, 0.22) !important;
    color: #7c3aed !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--success {
    background: linear-gradient(180deg, rgba(220, 252, 231, 0.96), #ffffff) !important;
    border: 1px solid rgba(34, 197, 94, 0.26) !important;
    color: #15803d !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--danger {
    background: linear-gradient(180deg, rgba(254, 226, 226, 0.96), #ffffff) !important;
    border: 1px solid rgba(239, 68, 68, 0.26) !important;
    color: #dc2626 !important;
}

.production-launch-shell .production-bom-card__data .bom-metric--success strong,
.production-launch-shell .production-bom-card__data .bom-metric--danger strong,
.production-launch-shell .production-bom-card__data .bom-metric--primary strong,
.production-launch-shell .production-bom-card__data .bom-metric--warning strong,
.production-launch-shell .production-bom-card__data .bom-metric--info strong,
.production-launch-shell .production-bom-card__data .bom-metric--warning-alt strong {
    color: inherit !important;
}

.production-check-list {
    display: grid;
    gap: 0.7rem;
}

.production-check-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--usine-border);
    border-radius: 14px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 700;
}

.production-launch-inline-note {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 1rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(98, 144, 251, 0.08), rgba(8, 145, 178, 0.06));
    color: #1e3a8a;
}

.production-launch-inline-note i {
    font-size: 1rem;
    color: #2563eb;
}

.production-launch-readiness {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1rem;
}

.production-launch-readiness > div {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.75rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--usine-border);
    color: #334155;
    font-size: 0.83rem;
    font-weight: 700;
}

.production-launch-readiness__dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    display: inline-block;
}

.production-launch-readiness__dot--ok {
    background: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.14);
}

.production-launch-readiness__dot--warn {
    background: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.14);
}

.production-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
}

.production-flow__step {
    min-height: 124px;
    padding: 0.9rem;
    border: 1px solid var(--usine-border);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    text-align: center;
}

.production-flow__icon {
    width: 42px;
    height: 42px;
    margin: 0 auto 0.65rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e0f2fe;
    color: #2563eb;
    font-size: 1.1rem;
}

.production-flow__step strong,
.production-flow__step small {
    display: block;
}

.production-flow__step strong {
    color: #0f172a;
    font-size: 0.85rem;
}

.production-flow__step small {
    margin-top: 0.35rem;
    color: #059669;
    font-weight: 800;
}

.production-instruction-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--usine-border);
    border-radius: 18px;
    background: #f8fafc;
}

.production-final-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.production-final-actions .btn {
    justify-content: center;
}

.production-live-hero {
    margin-bottom: 1rem;
}

.production-live-progress__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
    color: #0f172a;
    font-weight: 800;
}

.production-live-progress__bar {
    height: 12px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.production-live-progress__bar .progress-bar {
    background: linear-gradient(135deg, #2b59e0, #1f4bb3);
    border-radius: 999px;
}

.production-live-steps {
    display: grid;
    gap: 0.9rem;
}

.production-live-step {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid var(--usine-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
}

.production-live-step--primary {
    border-color: rgba(37, 99, 235, 0.24);
    box-shadow: 0 12px 26px rgba(37, 99, 235, 0.08);
}

.production-live-step--success {
    border-color: rgba(5, 150, 105, 0.2);
}

.production-live-step__number {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(98, 144, 251, 0.18), rgba(43, 89, 224, 0.16));
    color: #1f4bb3;
    font-size: 1.05rem;
    font-weight: 800;
}

.production-live-step__body h4 {
    margin: 0;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 800;
}

.production-live-step__body p {
    margin: 0.35rem 0 0.5rem;
    color: #64748b;
}

.production-live-step__body small {
    color: #475569;
    font-weight: 700;
}

.production-live-events {
    display: grid;
    gap: 0.9rem;
}

.production-live-event {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 0.85rem;
    padding: 0.85rem 0.9rem;
    border: 1px solid var(--usine-border);
    border-radius: 16px;
    background: #f8fafc;
}

.production-live-event__time {
    color: #1f4bb3;
    font-size: 0.82rem;
    font-weight: 800;
}

.production-live-event strong {
    display: block;
    color: #0f172a;
    margin-bottom: 0.2rem;
}

.production-live-event p {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.production-orders-table thead th {
    white-space: nowrap;
}

.production-orders-table__row--active td {
    background: linear-gradient(135deg, rgba(98, 144, 251, 0.12), rgba(8, 145, 178, 0.06));
}

.article-table-media {
    width: 52px;
    /*height: 52px;*/
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--usine-border);
    background: linear-gradient(135deg, #f8fafc, #eef6ff);
    display: flex;
    align-items: center;
    justify-content: center;
}

.article-table-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.article-table-media__placeholder,
.article-detail-media__placeholder {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    color: #2563eb;
}

.article-table-media__placeholder {
    width: 100%;
    height: 100%;
    font-size: 1.1rem;
}

.article-detail-media {
    min-height: 260px;
    /*height: 100%;*/
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--usine-border);
    background: linear-gradient(135deg, #f8fafc, #eef6ff);
    display: flex;
    align-items: center;
    justify-content: center;
}

.article-detail-media img,
.article-form-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.article-detail-media__placeholder {
    font-size: 2rem;
}

.article-detail-media__placeholder strong {
    font-size: 0.95rem;
    color: #0f172a;
}

.article-form-preview {
    width: 100%;
    max-width: 180px;
    height: 140px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--usine-border);
    background: linear-gradient(135deg, #f8fafc, #eef6ff);
}

.article-image-picker {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.article-image-picker__button {
    min-width: 170px;
    justify-content: center;
}

.article-image-picker__name {
    min-height: 42px;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--usine-border);
    border-radius: 14px;
    background: #f8fafc;
    color: #475569;
    display: inline-flex;
    align-items: center;
    font-size: 0.88rem;
}

@media (max-width: 1199.98px) {
    .production-bom-grid,
    .production-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .production-launch-shell .production-bom-grid {
        grid-template-columns: 1fr !important;
    }

    .production-launch-shell .production-bom-card__data {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767.98px) {
    .production-launch-article {
        grid-template-columns: 1fr;
    }

    .production-launch-metrics,
    .production-bom-card__data,
    .production-bom-grid,
    .production-flow,
    .production-final-actions,
    .production-live-step {
        grid-template-columns: 1fr;
    }

    .production-instruction-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .production-launch-shell .production-bom-card__data {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .production-live-event {
        grid-template-columns: 1fr;
    }
}

body,
body.layout-fixed,
.layout-fixed .app-wrapper,
.layout-fixed .app-main {
    background: var(--usine-bg);
    color: var(--usine-text);
}

.app-wrapper,
.app-main {
    background: transparent;
}

.app-header {
    z-index: 1035;
}

.app-container {
    padding-left: 24px;
    padding-right: 24px;
}

.app-header.usine-topbar,
.navbar.usine-topbar,
header.usine-topbar {
    min-height: 72px;
    background: linear-gradient(135deg, var(--usine-header), var(--usine-header-dark)) !important;
    background-color: var(--usine-header) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 10px 30px rgba(15, 23, 42, 0.18) !important;
}

.app-header.usine-topbar .container-fluid,
.navbar.usine-topbar .container-fluid {
    min-height: 72px;
}

.app-header.usine-topbar .navbar-brand,
.navbar.usine-topbar .navbar-brand {
    margin-right: 1rem;
    color: #ffffff !important;
}

.app-header.usine-topbar .navbar-brand *,
.navbar.usine-topbar .navbar-brand * {
    color: inherit !important;
}

.brand-badge {
    width: 100px;
    height: 60px;
    border-radius: 0;
    font-size: 1rem;
    background: transparent;
    box-shadow: none;
}

.brand-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    border-radius: 0;
}

.navbar-brand::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 42px;
    margin-left: 1.15rem;
    background: rgba(255, 255, 255, 0.32);
}

.brand-copy strong {
    font-size: 0.98rem;
    line-height: 1;
    letter-spacing: 0.03em;
}

.brand-copy small {
    font-size: 0.74rem;
    color: rgba(255, 255, 255, 0.62);
}

.usine-nav {
    gap: 0.15rem;
}

.usine-nav--main {
    flex-wrap: nowrap;
    align-items: center;
}

.app-header.usine-topbar .usine-nav .nav-link,
.navbar.usine-topbar .usine-nav .nav-link {
    min-height: 38px;
    padding: 0.45rem 0.62rem;
    border-radius: 10px;
    font-size: 0.86rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.94) !important;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
    white-space: nowrap;
}

.app-header.usine-topbar .usine-nav .nav-link i,
.navbar.usine-topbar .usine-nav .nav-link i {
    font-size: 0.82rem;
    opacity: 0.95;
    color: #ffffff !important;
}

.app-header.usine-topbar .usine-nav .nav-link:hover,
.app-header.usine-topbar .usine-nav .nav-link:focus,
.navbar.usine-topbar .usine-nav .nav-link:hover,
.navbar.usine-topbar .usine-nav .nav-link:focus {
    background: rgba(255, 255, 255, 0.18);
    color: #fff !important;
}

.app-header.usine-topbar .usine-nav .nav-link.active,
.navbar.usine-topbar .usine-nav .nav-link.active {
    background: linear-gradient(135deg, #2b59e0, #1f4bb3);
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.usine-user-pill {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.35rem 0.7rem 0.35rem 0.35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    min-height: 42px;
}

.usine-user-pill,
.usine-user-pill * {
    color: #ffffff !important;
}

.usine-user-avatar {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 1rem;
}

.atelier-action {
    min-height: 40px;
    padding: 0.5rem 0.95rem;
    border-radius: 12px;
    font-size: 0.92rem;
    font-weight: 700;
}

.atelier-action--ghost {
    width: 40px;
    min-width: 40px;
    padding: 0;
    justify-content: center;
}

.app-content-header {
    padding: 16px 0 10px;
}

.app-page-title {
    font-size: 1.55rem;
    line-height: 1.15;
    color: var(--usine-text);
}

.app-page-subtitle {
    font-size: 0.93rem;
}

.app-content {
    padding-top: 0;
}

.dashboard-meta-strip {
    margin-bottom: 1rem;
}

.dashboard-meta-card {
    background: #fff;
    border: 1px solid var(--usine-border);
    border-radius: 14px;
    padding: 0.85rem 1rem;
    box-shadow: var(--usine-shadow);
    min-height: 88px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-panel {
    display: none;
}

.metric-label {
    color: #64748B;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

.dashboard-meta-card strong {
    color: var(--usine-text);
    font-size: 1rem;
}

.usine-small-box {
    min-height: 132px;
    border-radius: 16px;
    box-shadow: var(--usine-shadow) !important;
    position: relative;
    overflow: hidden;
}

.usine-small-box .inner {
    padding: 1.15rem 1.2rem 3.9rem;
    position: relative;
    z-index: 2;
}

.kpi-label {
    font-size: 0.8rem;
    margin-bottom: 0.45rem;
    line-height: 1.35;
}

.kpi-value {
    font-size: 1.65rem;
    line-height: 1.1;
}

.usine-small-box .icon {
    position: absolute;
    left: 18px;
    bottom: 16px;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.14);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
    z-index: 1;
}

.usine-small-box .icon > i {
    position: static !important;
    font-size: 1.85rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.95);
    transform: none !important;
    opacity: 1 !important;
}

.usine-small-box .small-box-footer {
    display: none;
}

.usine-card {
    border-radius: 16px;
    border: 1px solid var(--usine-border) !important;
    box-shadow: var(--usine-shadow) !important;
}

.usine-card--gradient {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%),
        radial-gradient(circle at top right, rgba(8, 145, 178, 0.08), transparent 28%);
}

.usine-card .card-header {
    padding: 1rem 1rem 0;
}

.dashboard-chart-frame {
    position: relative;
    width: 100%;
    height: 280px;
    min-height: 280px;
    overflow: hidden;
}

.dashboard-chart-frame--wide {
    height: 300px;
    min-height: 300px;
}

.dashboard-chart-frame--compact {
    height: 300px;
    min-height: 300px;
}

.dashboard-chart-frame--donut {
    height: 300px;
    min-height: 300px;
    max-width: 560px;
    margin: 0 auto;
}

.dashboard-chart-frame canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.article-hub {
    padding: 1.25rem;
    border: 1px solid rgba(203, 213, 225, 0.78);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.98));
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.06);
}

.article-hub__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.article-hub__kicker {
    display: inline-flex;
    margin-bottom: 0.35rem;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #2563eb;
}

.article-hub__title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 800;
    color: #0f172a;
}

.article-hub__text {
    margin: 0.25rem 0 0;
    color: #64748b;
}

.article-hub__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.article-family-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.8rem;
}

.article-family-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    min-height: 92px;
    padding: 0.9rem;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #ffffff;
    color: #0f172a;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.article-family-card:hover,
.article-family-card.is-active {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.32);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
    color: #0f172a;
}

.article-family-card__icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    background: #eff6ff;
    color: #2563eb;
}

.article-family-card__body {
    min-width: 0;
}

.article-family-card__body strong,
.article-family-card__body small {
    display: block;
}

.article-family-card__body strong {
    font-size: 0.92rem;
    font-weight: 800;
}

.article-family-card__body small {
    margin-top: 0.25rem;
    font-size: 0.74rem;
    line-height: 1.35;
    color: #64748b;
}

.article-family-card__count {
    min-width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    font-weight: 800;
    background: #f1f5f9;
    color: #334155;
}

.article-family-card--green .article-family-card__icon {
    background: #dcfce7;
    color: #059669;
}

.article-family-card--cyan .article-family-card__icon {
    background: #cffafe;
    color: #0891b2;
}

.article-family-card--orange .article-family-card__icon {
    background: #ffedd5;
    color: #ea580c;
}

.article-family-card--pink .article-family-card__icon {
    background: #fce7f3;
    color: #db2777;
}

.usine-card .card-body {
    padding: 1rem;
}

.usine-setting-card {
    background: #fff;
    border: 1px solid var(--usine-border);
    border-radius: 14px;
    padding: 1rem;
    height: 100%;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.usine-setting-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #E0F2FE;
    color: var(--usine-cyan);
    font-size: 1rem;
    flex-shrink: 0;
}

.usine-setting-icon--1 {
    background: linear-gradient(135deg, #DBEAFE, #E0F2FE);
    color: #2563EB;
}

.usine-setting-icon--2 {
    background: linear-gradient(135deg, #DCFCE7, #D1FAE5);
    color: #059669;
}

.usine-setting-icon--3 {
    background: linear-gradient(135deg, #FEF3C7, #FFEDD5);
    color: #D97706;
}

.usine-setting-icon--4 {
    background: linear-gradient(135deg, #FCE7F3, #EDE9FE);
    color: #7C3AED;
}

.usine-setting-title {
    margin: 0;
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--usine-text);
    line-height: 1.4;
}

.card-title {
    font-size: 1rem;
    float: none;
}

.usine-btn-soft {
    border: none;
    background: linear-gradient(135deg, var(--usine-blue), var(--usine-cyan));
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18);
}

.usine-btn-soft:hover,
.usine-btn-soft:focus {
    color: #fff;
    background: linear-gradient(135deg, #1d4ed8, #0e7490);
}

.badge.text-bg-light {
    background: #EFF6FF !important;
    color: #1D4ED8 !important;
}

.table thead th {
    font-size: 0.74rem;
    color: #64748B;
}

.table tbody td {
    font-size: 0.92rem;
}

.permissions-table th,
.permissions-table td {
    vertical-align: middle;
}

.permissions-table .form-check-input {
    cursor: pointer;
}

.permissions-table--modern thead th {
    background: linear-gradient(180deg, #F8FAFC 0%, #EEF2FF 100%);
    border-bottom: 1px solid #D9E3F0;
    position: sticky;
    top: 0;
    z-index: 1;
}

.permissions-table--modern tbody tr:hover {
    background: rgba(37, 99, 235, 0.03);
}

.permissions-table--modern .form-check-input {
    width: 1.1rem;
    height: 1.1rem;
    border-color: #94A3B8;
}

.permissions-table--modern .form-check-input:checked {
    background-color: var(--usine-green);
    border-color: var(--usine-green);
}

.permissions-shell {
    border-radius: 20px;
}

.permissions-saas-page {
    padding: 0.65rem 0 1rem;
    background: linear-gradient(180deg, #f3f8ff 0%, #f8fafc 100%) !important;
    border-radius: 24px;
}

.permissions-saas-wrap {
    max-width: 1380px;
    margin: 0 auto;
}

.permissions-saas-card {
    background: #ffffff !important;
    border: 1px solid #e7edf5 !important;
    border-radius: 28px !important;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.08) !important;
    padding: 1.2rem !important;
}

.permissions-saas-head {
    margin-bottom: 1rem;
}

.permissions-kicker {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: #e0ecff;
    color: var(--usine-blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.9rem;
}

.permissions-saas-title,
.permissions-title {
    font-size: 1.65rem;
    line-height: 1.15;
    font-weight: 800;
    color: var(--usine-text);
    margin: 0 0 0.55rem;
}

.permissions-saas-subtitle,
.permissions-subtitle {
    font-size: 0.9rem;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

.permissions-toolbar {
    padding: 0.95rem 1rem;
    border: 1px solid #e5ebf3;
    border-radius: 22px;
    background: linear-gradient(180deg, #fbfdff 0%, #f6faff 100%);
    margin-bottom: 0.9rem;
}

.permissions-toolbar__form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.permissions-toolbar__field {
    flex: 1 1 320px;
    max-width: 420px;
}

.permissions-toolbar__actions {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
}

.permissions-role-badge {
    padding: 0.65rem 0.95rem;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--usine-blue);
    font-size: 0.86rem;
    font-weight: 700;
}

.permissions-role-code {
    display: inline-flex;
    align-items: center;
    padding: 0.42rem 0.7rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
}

.permissions-role-select + .select2-container--bootstrap-5 .select2-selection {
    min-height: 44px;
    border-radius: 14px;
    border-color: #dbe4ef;
    box-shadow: none;
}

.permissions-load-btn {
    min-width: 112px;
}

.permissions-form {
    display: grid;
    gap: 0.9rem;
}

.permissions-profile-card {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.05rem;
    border: 1px solid #e8edf4;
    border-radius: 22px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.permissions-profile-card__main {
    flex: 1 1 360px;
}

.permissions-profile-card__label {
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;
}

.permissions-profile-card__value {
    color: var(--usine-text);
    font-size: 1.15rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
}

.permissions-profile-card__desc {
    color: #64748b;
    font-size: 0.84rem;
    line-height: 1.45;
    max-width: 760px;
}

.permissions-profile-card__meta {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.permissions-actions-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid #e8edf4;
    border-radius: 22px;
    background: linear-gradient(180deg, #f8fbff 0%, #f4f8fe 100%);
}

.permissions-actions-bar__title {
    color: var(--usine-text);
    font-size: 0.88rem;
    font-weight: 800;
    margin-bottom: 0.2rem;
}

.permissions-actions-bar__desc {
    color: #64748b;
    font-size: 0.82rem;
    line-height: 1.4;
}

.permissions-actions-bar__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.permissions-super-note {
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(5, 150, 105, 0.18);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(220, 252, 231, 0.7), rgba(236, 253, 245, 0.92));
    color: #065f46;
    font-size: 0.84rem;
    font-weight: 600;
}

.permissions-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.permissions-module-card-v2 {
    border: 1px solid #e8edf4 !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05) !important;
    padding: 0.9rem !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.permissions-module-card-v2:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(37, 99, 235, 0.08) !important;
    border-color: rgba(37, 99, 235, 0.18) !important;
}

.permissions-module-card-v2__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.7rem;
    margin-bottom: 0.7rem;
    border-bottom: 1px solid #eef3f8;
}

.permissions-module-card-v2__icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #dbeafe, #e0f2fe);
    color: var(--usine-blue);
    font-size: 0.95rem;
    flex-shrink: 0;
}

.permissions-module-card-v2__content {
    min-width: 0;
    flex: 1;
}

.permissions-module-card-v2__title {
    color: var(--usine-text);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    margin-bottom: 0.22rem;
}

.permissions-module-card-v2__count {
    color: #64748b;
    font-size: 0.75rem;
}

.permissions-switch-list {
    display: grid;
    gap: 0.5rem;
}

.permissions-switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.62rem 0.72rem;
    border: 1px solid #edf2f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #fcfdff 0%, #f8fbff 100%);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.permissions-switch-row:hover {
    border-color: rgba(37, 99, 235, 0.22);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.06);
    transform: translateY(-1px);
}

.permissions-switch-row.is-disabled {
    background: linear-gradient(180deg, #fbfcfe 0%, #f8fafc 100%);
    border-style: dashed;
}

.permissions-switch-row.is-disabled:hover {
    transform: none;
    box-shadow: none;
    border-color: #e2e8f0;
}

.permissions-switch-row__copy {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    color: var(--usine-text);
    min-width: 0;
    padding-right: 0.75rem;
}

.permissions-switch-row__title {
    display: block;
    font-size: 0.82rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--usine-text);
}

.permissions-switch-row__description {
    display: block;
    font-size: 0.72rem;
    line-height: 1.3;
    color: #64748b;
}

.permissions-switch-row.is-disabled .permissions-switch-row__title,
.permissions-switch-row.is-disabled .permissions-switch-row__description {
    color: #94a3b8;
}

.permissions-empty-state {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 0.8rem;
    border: 1px dashed #d7e1ec;
    border-radius: 16px;
    background: #f8fbff;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
}

.permissions-empty-state i {
    color: var(--usine-blue);
    font-size: 1rem;
}

.ios-switch {
    position: relative;
    display: inline-flex;
    width: 46px;
    min-width: 46px;
    height: 28px;
    flex-shrink: 0;
}

.ios-switch input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    margin: 0;
    z-index: 2;
}

.ios-switch__slider {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    background: #d6dbe3;
    border-radius: 999px;
    transition: background-color 0.22s ease;
}

.ios-switch__slider::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 3px 8px rgba(15, 23, 42, 0.16);
    transition: transform 0.22s ease;
}

.ios-switch input:checked + .ios-switch__slider {
    background: linear-gradient(135deg, #2563eb, #0891b2);
}

.ios-switch input:checked + .ios-switch__slider::before {
    transform: translateX(18px);
}

.ios-switch input:focus + .ios-switch__slider {
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.14);
}

.ios-switch input:disabled {
    cursor: default;
}

.ios-switch input:disabled + .ios-switch__slider {
    opacity: 0.8;
    background: #e5e7eb;
}

.login-side-meta strong {
    font-size: 0.92rem;
}

.alert {
    border-radius: 12px;
}

.app-footer {
    padding-top: 0.35rem;
    background: linear-gradient(180deg, rgb(73 94 112 / 24%) 74%, rgba(241, 245, 249, 0.85) 100%);
}

@media (max-width: 1199.98px) {
    .app-header.usine-topbar .navbar-collapse,
    .navbar.usine-topbar .navbar-collapse {
        background: var(--usine-header);
        margin-top: 0.5rem;
        padding: 0.75rem;
        border-radius: 14px;
    }

    .usine-user-pill {
        width: 100%;
    }

    .usine-nav--main {
        flex-wrap: wrap;
        align-items: stretch;
    }

    .permissions-module-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .app-container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .app-content-header {
        padding: 14px 0 8px;
    }

    .app-page-title {
        font-size: 1.35rem;
    }

    .usine-small-box {
        min-height: 122px;
    }

    .permissions-saas-card {
        padding: 1.2rem;
    }

    .permissions-toolbar__field {
        max-width: none;
    }
}

.usine-login-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at top center, rgba(255, 255, 255, 0.26), transparent 24%),
        linear-gradient(135deg, #6290fb 0%, #426de8 48%, #1e3a8a 100%);
}

.login-saas-shell {
    padding: 0rem 0;
}

.login-saas-card {
    border-radius: 18px;
    background: #21262d;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.32);
    position: relative;
}

.login-saas-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, #ffffff 0%, #bfdbfe 45%, #22d3ee 100%);
}

.login-saas-side {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 28%),
        linear-gradient(180deg, #6290fb 0%, #2f5eea 100%);
    padding: 2.25rem;
    border-right: 1px solid rgba(255, 255, 255, 0.06);
}

.login-saas-badge {
    width: 100px;
    height: 58px;
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #dbeafe);
    color: #2f5eea;
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.34);
}

.login-side-eyebrow {
    display: inline-block;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 1rem;
}

.login-side-caption {
    margin-bottom: 0.8rem;
    color: #cbd5e1;
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.login-saas-title {
    font-size: clamp(1.65rem, 2vw, 2.05rem);
    line-height: 1.12;
    font-weight: 800;
    max-width: 360px;
}

.login-saas-copy {
    max-width: 360px;
    font-size: 0.97rem;
    line-height: 1.7;
}

.login-feature-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 1.4rem;
}

.login-feature-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.48rem 0.78rem;
    border-radius: 999px;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.login-feature-pill--blue {
    background: linear-gradient(135deg, #2563eb, #3b82f6);
}

.login-feature-pill--cyan {
    background: linear-gradient(135deg, #0891b2, #06b6d4);
}

.login-feature-pill--orange {
    background: linear-gradient(135deg, #ea580c, #f59e0b);
}

.login-saas-meta {
    display: grid;
    gap: 1.2rem;
    max-width: 360px;
}

.login-saas-meta > div {
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.login-saas-meta span {
    display: block;
    margin-top: 0.35rem;
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.84rem;
    line-height: 1.5;
}

.login-saas-form-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.25rem 1.75rem;
}

.login-saas-form-outer {
    width: 100%;
    max-width: 430px;
}

.login-saas-form-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.login-form-kicker {
    display: inline-block;
    margin-bottom: 0.9rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(59, 130, 246, 0.15);
    color: #93c5fd;
    font-size: 0.78rem;
    font-weight: 800;
}

.login-dark-form-wrap {
    background:
        radial-gradient(circle at top left, rgba(98, 144, 251, 0.14), transparent 24%),
        #21262d;
}

.login-dark-form-card {
    color: #e5e7eb;
}

.login-dark-form-card h2 {
    color: #f8fafc;
    font-size: 2rem;
    letter-spacing: -0.02em;
}

.login-dark-subtitle {
    color: #aeb7c4;
    line-height: 1.65;
    max-width: 380px;
}

.login-dark-label {
    color: #d6dbe3;
    margin-bottom: 0.55rem;
}

.login-saas-input .input-group-text,
.login-saas-input .form-control {
    min-height: 56px;
    border-color: rgba(255, 255, 255, 0.1);
    background: #2b3138;
    color: #f8fafc;
}

.login-saas-input {
    border-radius: 14px;
    overflow: hidden;
}

.login-saas-input .input-group-text {
    color: #9db8ff;
    padding-left: 1rem;
    padding-right: 1rem;
}

.login-saas-input .form-control::placeholder {
    color: #8b97a8;
}

.login-saas-input .form-control:focus {
    background: #2f363f;
    color: #fff;
    border-color: rgba(98, 144, 251, 0.58);
    box-shadow: 0 0 0 0.2rem rgba(98, 144, 251, 0.2);
}

.login-form-meta {
    color: #b7c0cc;
    font-size: 0.9rem;
}

.login-remember-check .form-check-input {
    width: 1.05rem;
    height: 1.05rem;
    background-color: #1f242b;
    border-color: rgba(255, 255, 255, 0.18);
}

.login-remember-check .form-check-input:checked {
    background-color: #2563eb;
    border-color: #2563eb;
}

.login-remember-check .form-check-label {
    color: #cfd6df;
}

.login-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.78rem;
    border-radius: 999px;
    background: rgba(8, 145, 178, 0.12);
    border: 1px solid rgba(8, 145, 178, 0.24);
    color: #67e8f9;
    font-size: 0.78rem;
    font-weight: 700;
}

.login-saas-submit {
    min-height: 52px;
    border: 0;
    border-radius: 14px;
    font-size: 1rem;
    font-weight: 700;
    background: linear-gradient(135deg, #6290fb, #2f5eea);
    box-shadow: 0 14px 28px rgba(98, 144, 251, 0.28);
}

.login-saas-submit:hover,
.login-saas-submit:focus {
    background: linear-gradient(135deg, #4f7df5, #244fd4);
    transform: translateY(-1px);
}

.login-dark-hint {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #c8d0db;
    border-radius: 14px;
    padding: 0.9rem 1rem;
}

.login-dark-hint strong {
    color: #f8fafc;
    font-size: 0.88rem;
}

.login-dark-hint span {
    color: #aeb7c4;
    font-size: 0.9rem;
}

.login-simple-card {
    min-height: 520px;
}

.login-simple-side {
    padding: 2.1rem;
}

.login-simple-status {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    color: #dbeafe;
    background: rgba(37, 99, 235, 0.14);
    border: 1px solid rgba(147, 197, 253, 0.18);
    font-size: 0.84rem;
    font-weight: 700;
}

.login-simple-shell .login-saas-title {
    font-size: 2rem;
}

.login-simple-shell .login-saas-copy {
    max-width: 300px;
}

.ios-switch--readonly {
    pointer-events: none;
}

.instruction-workspace {
    position: relative;
    padding-bottom: 0.5rem;
}

.instruction-shell {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
}

.instruction-hero,
.instruction-document-card,
.instruction-steps-card {
    background:
        radial-gradient(circle at top right, rgba(14, 165, 233, 0.12), transparent 28%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%);
    border: 1px solid rgba(203, 213, 225, 0.75);
    border-radius: 28px;
    box-shadow: 0 22px 52px rgba(15, 23, 42, 0.08);
}

.instruction-hero {
    padding: 1.8rem;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.8fr);
    gap: 1.5rem;
    align-items: center;
    overflow: hidden;
}

.instruction-hero__content,
.instruction-hero__actions {
    position: relative;
    z-index: 1;
}

.instruction-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
    padding: 0.48rem 0.8rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #0f172a;
    background: rgba(37, 99, 235, 0.1);
}

.instruction-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.12);
}

.instruction-hero__title {
    margin: 0;
    font-size: clamp(1.85rem, 2.2vw, 2.55rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #0f172a;
}

.instruction-hero__subtitle {
    max-width: 820px;
    margin: 0.7rem 0 0;
    font-size: 1rem;
    line-height: 1.7;
    color: #475569;
}

.instruction-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.2rem;
}

.instruction-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.68rem 0.95rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.instruction-chip i {
    font-size: 0.9rem;
}

.instruction-chip--primary {
    color: #eff6ff;
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
}

.instruction-chip--dark {
    color: #e2e8f0;
    background: linear-gradient(135deg, #0f172a, #1e293b);
}

.instruction-chip--success {
    color: #ecfdf5;
    background: linear-gradient(135deg, #059669, #10b981);
}

.instruction-chip--cyan {
    color: #ecfeff;
    background: linear-gradient(135deg, #0891b2, #0ea5e9);
}

.instruction-hero__actions {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    justify-self: end;
    width: min(100%, 320px);
}

.instruction-save-btn {
    min-height: 52px;
    font-size: 0.98rem;
    font-weight: 800;
    box-shadow: 0 18px 32px rgba(5, 150, 105, 0.2);
}

.instruction-overview-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.instruction-overview-card {
    position: relative;
    padding: 1.2rem 1.25rem;
    border-radius: 24px;
    border: 1px solid rgba(203, 213, 225, 0.8);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.instruction-overview-card::after {
    content: "";
    position: absolute;
    inset: auto -40px -46px auto;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.14) 0%, rgba(14, 165, 233, 0) 72%);
}

.instruction-overview-card__label {
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.instruction-overview-card__value {
    margin-top: 0.5rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
}

.instruction-overview-card__meta {
    margin-top: 0.45rem;
    font-size: 0.86rem;
    line-height: 1.6;
    color: #64748b;
}

.instruction-document-card,
.instruction-steps-card {
    padding: 1.45rem 1.5rem 1.55rem;
}

.instruction-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.2rem;
}

.instruction-section-title {
    margin: 0;
    font-size: 1.22rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #0f172a;
}

.instruction-section-text {
    margin: 0.3rem 0 0;
    max-width: 760px;
    font-size: 0.93rem;
    line-height: 1.65;
    color: #64748b;
}

.instruction-input,
.instruction-textarea {
    border: 1px solid #d7e0ea;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    color: #0f172a;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.instruction-input {
    min-height: 50px;
    padding: 0.8rem 1rem;
    font-size: 0.98rem;
    font-weight: 600;
}

.instruction-input--xl {
    min-height: 58px;
    font-size: 1.06rem;
}

.instruction-textarea {
    min-height: 156px;
    padding: 0.95rem 1rem;
    font-size: 0.94rem;
    line-height: 1.7;
    resize: vertical;
}

.instruction-textarea--safety {
    min-height: 180px;
}

.instruction-input:focus,
.instruction-textarea:focus {
    border-color: rgba(37, 99, 235, 0.55);
    box-shadow: 0 0 0 0.24rem rgba(37, 99, 235, 0.12);
}

.instruction-approval-tile {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 58px;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(16, 185, 129, 0.18);
    background: linear-gradient(135deg, rgba(236, 253, 245, 0.96), rgba(236, 254, 255, 0.98));
}

.instruction-approval-tile__copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.instruction-approval-tile__copy strong {
    font-size: 0.92rem;
    color: #065f46;
}

.instruction-approval-tile__copy span {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #475569;
}

.instruction-timeline {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.instruction-step-card {
    position: relative;
    padding: 1.2rem 1.2rem 1.15rem 1.45rem;
    border-radius: 26px;
    border: 1px solid rgba(203, 213, 225, 0.78);
    background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(247,250,252,0.98) 100%);
    box-shadow: 0 18px 32px rgba(15, 23, 42, 0.05);
}

.instruction-step-card__rail {
    position: absolute;
    left: 18px;
    top: 24px;
    bottom: 24px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(37, 99, 235, 0.95), rgba(14, 165, 233, 0.25));
}

.instruction-step-card__head {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-left: 1.1rem;
}

.instruction-step-card__head-main {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-width: 0;
    flex: 1;
}

.instruction-step-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    color: #eff6ff;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    box-shadow: 0 14px 24px rgba(37, 99, 235, 0.2);
}

.instruction-step-card__titles {
    min-width: 0;
}

.instruction-step-card__title {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #0f172a;
}

.instruction-step-card__subline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.55rem;
}

.instruction-inline-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    padding: 0.42rem 0.68rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    color: #334155;
    background: #eff6ff;
    border: 1px solid rgba(191, 219, 254, 0.92);
}

.instruction-step-card__head-actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.instruction-toggle-step,
.instruction-add-step-btn {
    border-radius: 999px;
    font-weight: 700;
}

.instruction-toggle-step {
    width: 38px;
    height: 38px;
    padding: 0;
    border-color: #d8e2ed;
}

.instruction-toggle-step i {
    transition: transform 0.22s ease;
}

.instruction-step-card.is-collapsed .instruction-toggle-step i {
    transform: rotate(180deg);
}

.instruction-step-card__panel {
    margin-top: 1rem;
    padding-left: 1.1rem;
}

.instruction-editor-card,
.instruction-side-card,
.instruction-safety-card {
    height: 100%;
    border-radius: 22px;
    border: 1px solid rgba(203, 213, 225, 0.78);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 14px 26px rgba(15, 23, 42, 0.04);
}

.instruction-editor-card {
    padding: 1rem;
}

.instruction-meta-stack {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
}

.instruction-side-card,
.instruction-safety-card {
    padding: 0.95rem 1rem;
}

.instruction-side-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 0.6rem;
}

.instruction-side-card__head h5 {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    color: #0f172a;
}

.instruction-side-card p,
.instruction-safety-card p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.65;
    color: #64748b;
}

.instruction-badge-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.instruction-quality-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.38rem 0.62rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    color: #0f766e;
    background: rgba(204, 251, 241, 0.9);
    border: 1px solid rgba(94, 234, 212, 0.7);
}

.instruction-link-pill,
.instruction-mini-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.instruction-link-pill {
    padding: 0.42rem 0.72rem;
    color: #1d4ed8;
    text-decoration: none;
    background: rgba(219, 234, 254, 0.88);
    border: 1px solid rgba(147, 197, 253, 0.9);
}

.instruction-link-pill:hover {
    color: #1e3a8a;
    background: rgba(191, 219, 254, 0.96);
}

.instruction-mini-badge {
    padding: 0.3rem 0.55rem;
    color: #1e293b;
    background: rgba(226, 232, 240, 0.92);
}

.instruction-mini-badge--cyan {
    color: #075985;
    background: rgba(207, 250, 254, 0.95);
}

.instruction-mini-badge--orange {
    color: #9a3412;
    background: rgba(255, 237, 213, 0.95);
}

.instruction-dropzone {
    position: relative;
    min-height: 208px;
    padding: 1.25rem 1.15rem;
    border-radius: 24px;
    border: 1px dashed rgba(37, 99, 235, 0.28);
    background:
        radial-gradient(circle at top right, rgba(14, 165, 233, 0.14), transparent 28%),
        linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(255, 255, 255, 0.98));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.instruction-dropzone:hover,
.instruction-dropzone.is-dragover {
    border-color: rgba(14, 165, 233, 0.55);
    transform: translateY(-2px);
    box-shadow: 0 16px 28px rgba(14, 165, 233, 0.12);
}

.instruction-dropzone__input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
}

.instruction-dropzone__icon {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    color: #2563eb;
    font-size: 1.6rem;
    box-shadow: inset 0 0 0 1px rgba(147, 197, 253, 0.5);
}

.instruction-dropzone__title {
    font-size: 0.94rem;
    font-weight: 800;
    color: #0f172a;
}

.instruction-dropzone__text {
    max-width: 340px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: #64748b;
}

.instruction-dropzone__browse {
    margin-top: 0.15rem;
    min-width: 170px;
    justify-content: center;
    pointer-events: none;
}

.instruction-photo-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 0.75rem;
    margin-top: 0.9rem;
}

.instruction-photo-tile {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid rgba(203, 213, 225, 0.9);
    background: #ffffff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.instruction-photo-tile__zoom {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 240px;
    padding: 0.8rem;
    border: 0;
    background:
        linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(255, 255, 255, 1)),
        repeating-linear-gradient(45deg, rgba(226, 232, 240, 0.35) 0, rgba(226, 232, 240, 0.35) 10px, rgba(248, 250, 252, 0.9) 10px, rgba(248, 250, 252, 0.9) 20px);
    cursor: zoom-in;
}

.instruction-photo-tile__zoom:hover .instruction-photo-tile__hint {
    opacity: 1;
    transform: translateY(0);
}

.instruction-photo-tile img {
    display: block;
    width: 100%;
    max-height: 320px;
    height: auto;
    object-fit: contain;
}

.instruction-photo-tile__hint {
    position: absolute;
    right: 0.85rem;
    bottom: 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.78);
    color: #f8fafc;
    font-size: 0.72rem;
    font-weight: 700;
    opacity: 0.92;
    transform: translateY(0);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.instruction-photo-tile__caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #475569;
}

.instruction-photo-tile__remove {
    border: 0;
    background: transparent;
    color: #dc2626;
    font-size: 0.88rem;
    line-height: 1;
    position: relative;
    z-index: 2;
}

.instruction-image-modal-open {
    overflow: hidden;
}

.instruction-image-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1085;
}

.instruction-image-modal.is-open {
    display: flex;
}

.instruction-image-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.82);
    backdrop-filter: blur(4px);
}

.instruction-image-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 1180px);
    max-height: 92vh;
    padding: 1rem;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.98));
    box-shadow: 0 28px 60px rgba(15, 23, 42, 0.3);
    border: 1px solid rgba(203, 213, 225, 0.5);
}

.instruction-image-modal__close {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.88);
    color: #f8fafc;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.instruction-image-modal__content {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 320px;
    max-height: calc(92vh - 96px);
    padding: 1rem;
}

.instruction-image-modal__image {
    max-width: 100%;
    max-height: calc(92vh - 140px);
    width: auto;
    height: auto;
    object-fit: contain;
}

.instruction-image-modal__footer {
    padding: 0 1rem 0.35rem;
}

.instruction-image-modal__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: #334155;
}

.instruction-safety-card {
    background: linear-gradient(180deg, rgba(255, 247, 237, 0.98), rgba(255, 255, 255, 0.98));
    border-color: rgba(251, 191, 36, 0.22);
}

.instruction-safety-card .instruction-side-card__head h5 {
    color: #9a3412;
}

.instruction-step-card.is-collapsed .instruction-step-card__panel {
    display: none;
}

@media (max-width: 991.98px) {
    .login-saas-side,
    .login-saas-form-wrap {
        padding: 1.5rem;
    }

    .login-saas-form-card {
        padding: 1.5rem;
    }

    .login-form-meta {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .instruction-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .instruction-hero {
        grid-template-columns: 1fr;
    }

    .instruction-hero__actions {
        justify-self: stretch;
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .dashboard-chart-frame,
    .dashboard-chart-frame--wide,
    .dashboard-chart-frame--compact,
    .dashboard-chart-frame--donut {
        height: 260px;
        min-height: 260px;
    }

    .article-family-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .article-hub__header {
        flex-direction: column;
    }
}

@media (max-width: 767.98px) {
    .login-saas-shell {
        padding: 0rem 0;
    }

    .login-saas-card {
        border-radius: 16px;
    }

    .login-saas-title {
        max-width: none;
    }

    .login-saas-copy,
    .login-saas-meta {
        max-width: none;
    }

    .login-dark-form-card h2 {
        font-size: 1.7rem;
    }

    .permissions-saas-card {
        padding: 1rem;
        border-radius: 18px;
    }

    .permissions-saas-title,
    .permissions-title {
        font-size: 1.6rem;
    }

    .permissions-toolbar,
    .permissions-profile-card,
    .permissions-actions-bar,
    .permissions-module-card-v2 {
        padding: 1rem;
    }

    .permissions-toolbar__actions,
    .permissions-actions-bar__buttons {
        width: 100%;
    }

    .permissions-toolbar__actions .btn,
    .permissions-actions-bar__buttons .btn {
        flex: 1 1 100%;
    }

    .permissions-switch-row {
        padding: 0.82rem 0.9rem;
    }

    .instruction-shell {
        gap: 1rem;
    }

    .instruction-hero,
    .instruction-document-card,
    .instruction-steps-card {
        padding: 1rem;
        border-radius: 22px;
    }

    .instruction-hero__title {
        font-size: 1.6rem;
    }

    .instruction-overview-grid {
        grid-template-columns: 1fr;
    }

    .instruction-section-head,
    .instruction-step-card__head,
    .instruction-step-card__head-main {
        flex-direction: column;
        align-items: stretch;
    }

    .instruction-step-card {
        padding: 1rem;
    }

    .instruction-step-card__rail {
        left: 14px;
        top: 18px;
        bottom: 18px;
    }

    .instruction-step-card__head,
    .instruction-step-card__panel {
        padding-left: 0.75rem;
    }

    .instruction-hero__actions {
        flex-direction: column;
    }

    .instruction-approval-tile {
        align-items: flex-start;
    }

    .instruction-photo-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-chart-frame,
    .dashboard-chart-frame--wide,
    .dashboard-chart-frame--compact,
    .dashboard-chart-frame--donut {
        height: 230px;
        min-height: 230px;
    }

    .article-family-grid {
        grid-template-columns: 1fr;
    }

    .article-hub {
        padding: 1rem;
    }
}

/* ============================================================
   INDUSTRIAL NAVBAR — Gradient bleu pétrole → turquoise
   ============================================================ */

:root {
    --ind-petrol:    #0F4C5C;
    --ind-petrol-d:  #093440;
    --ind-turquoise: #00B4D8;
    --ind-orange:    #FFB703;
    --ind-green:     #2EC4B6;
    --ind-red:       #E63946;
    --ind-bg:        #F4F7FA;
    --ind-text:      #1E293B;

    /* Override Bootstrap Variables */
    --bs-primary: #0F4C5C !important;
    --bs-primary-rgb: 15, 76, 92 !important;
    --bs-success: #2EC4B6 !important;
    --bs-success-rgb: 46, 196, 182 !important;
    --bs-warning: #FFB703 !important;
    --bs-warning-rgb: 255, 183, 3 !important;
    --bs-danger: #E63946 !important;
    --bs-danger-rgb: 230, 57, 70 !important;
    --bs-info: #00B4D8 !important;
    --bs-info-rgb: 0, 180, 216 !important;
    --bs-body-bg: #F4F7FA !important;
    --bs-body-color: #1E293B !important;

    /* Override app.css Variables */
    --app-primary: #0F4C5C !important;
    --app-primary-deep: #093440 !important;
    --app-secondary: #E2E8F0 !important;
    --app-accent: #2EC4B6 !important;
    --app-cyan: #00B4D8 !important;
    --app-bg: #F4F7FA !important;
    --app-surface: #ffffff !important;
    --app-border: #E2E8F0 !important;
    --app-text: #1E293B !important;
    --app-muted: #64748B !important;
    --app-danger: #E63946 !important;
    --app-warning: #FFB703 !important;

    /* Override legacy custom.css Variables */
    --usine-bg: #F4F7FA !important;
    --usine-header: #0F4C5C !important;
    --usine-header-dark: #093440 !important;
    --usine-header-deep: #093440 !important;
    --usine-text: #1E293B !important;
    --usine-blue: #0F4C5C !important;
    --usine-green: #2EC4B6 !important;
    --usine-cyan: #00B4D8 !important;
    --usine-orange: #FFB703 !important;
    --usine-red: #E63946 !important;
    --usine-border: #E2E8F0 !important;
}

/* Card styling modernisations */
.card,
.production-card,
.usine-card,
.card-soft-neutral,
.card-soft-blue,
.card-soft-green,
.card-soft-warning,
.card-soft-danger {
    border-radius: 12px !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03) !important;
    overflow: hidden !important;
}

.card-header,
.card-footer {
    background-color: transparent !important;
    border-color: rgba(226, 232, 240, 0.8) !important;
}

/* Accent borders on cards */
.border-accent--blue::before { background: var(--ind-turquoise) !important; }
.border-accent--green::before { background: var(--ind-green) !important; }
.border-accent--warning::before { background: var(--ind-orange) !important; }
.border-accent--danger::before { background: var(--ind-red) !important; }

/* Badges and pills */
.badge,
.status-badge,
.usine-status-pill {
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    border-radius: 8px !important;
}

.status-badge--success {
    background: rgba(46, 196, 182, 0.12) !important;
    color: var(--ind-green) !important;
}

.status-badge--warning {
    background: rgba(255, 183, 3, 0.12) !important;
    color: var(--ind-orange) !important;
}

.status-badge--danger {
    background: rgba(230, 57, 70, 0.12) !important;
    color: var(--ind-red) !important;
}

/* Datatables adjustments */
.table {
    border-color: rgba(226, 232, 240, 0.8) !important;
}

.table th {
    background: #F8FAFC !important;
    color: #475569 !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
}

/* Force body background */
html,
body,
body.layout-fixed,
.layout-fixed .app-wrapper,
.layout-fixed .app-main {
    background: var(--ind-bg) !important;
}

/* Force navbar container colors and styles */
.wrapper .app-header.industrial-navbar,
body .app-header.industrial-navbar,
header.app-header.industrial-navbar,
.app-header.industrial-navbar {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
    background: linear-gradient(135deg, var(--ind-petrol) 0%, var(--ind-turquoise) 100%) !important;
    min-height: 64px !important;
    box-shadow: 0 4px 16px rgba(15, 76, 92, 0.30) !important;
    z-index: 1040 !important;
    border: none !important;
    border-bottom: none !important;
}

/* Header inner container */
header.industrial-navbar > .app-container,
header.industrial-navbar > .container-fluid {
    display: flex !important;
    align-items: center !important;
    min-height: 64px !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
}

/* ---------- BRAND ---------- */
.industrial-brand {
    display: flex !important;
    align-items: center !important;
    gap: 0.65rem !important;
    text-decoration: none !important;
    margin-right: 1.5rem !important;
    flex-shrink: 0 !important;
}

.industrial-brand-icon {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    background: #ffffff !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
    padding: 3px !important;
}

.industrial-brand-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}

.industrial-brand-text {
    display: flex !important;
    flex-direction: column !important;
}

.industrial-brand-title {
    color: #ffffff !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
}

.industrial-brand-subtitle {
    color: rgba(255,255,255,0.65) !important;
    font-size: 0.65rem !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
}

/* ---------- MOBILE TOGGLER ---------- */
.industrial-toggler {
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
    padding: 0.35rem 0.55rem !important;
    border-radius: 8px !important;
    font-size: 1.3rem !important;
    background: transparent !important;
}

/* ---------- NAV LINKS ---------- */
.industrial-nav-list {
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.industrial-nav-list .nav-item {
    flex-shrink: 0 !important;
}

a.industrial-nav-link,
.industrial-nav-link {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    color: rgba(255,255,255,0.82) !important;
    font-weight: 600 !important;
    font-size: 0.84rem !important;
    padding: 0.5rem 0.75rem !important;
    border-radius: 8px !important;
    transition: all 0.18s ease !important;
    position: relative !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
    min-height: auto !important;
}

.industrial-nav-icon {
    font-size: 1rem !important;
    opacity: 0.8 !important;
    transition: opacity 0.18s, transform 0.18s !important;
    color: inherit !important;
}

/* Hover */
a.industrial-nav-link:hover,
.industrial-nav-link:hover {
    color: #ffffff !important;
    background: rgba(255,255,255,0.12) !important;
    transform: none !important;
    box-shadow: none !important;
}

a.industrial-nav-link:hover .industrial-nav-icon,
.industrial-nav-link:hover .industrial-nav-icon {
    opacity: 1 !important;
}

/* Active */
a.industrial-nav-link.active,
.industrial-nav-link.active {
    color: #ffffff !important;
    background: rgba(255,255,255,0.18) !important;
    box-shadow: none !important;
    transform: none !important;
}

a.industrial-nav-link.active .industrial-nav-icon,
.industrial-nav-link.active .industrial-nav-icon {
    opacity: 1 !important;
    color: var(--ind-orange) !important;
}

/* Orange indicator bar under active item */
.industrial-nav-indicator {
    position: absolute !important;
    bottom: 3px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 18px !important;
    height: 3px !important;
    background: var(--ind-orange) !important;
    border-radius: 3px !important;
}

/* ---------- ACTIONS (search + user) ---------- */
.industrial-actions {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    margin-left: auto !important;
}

/* Search */
.industrial-search {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

.industrial-search > i {
    position: absolute !important;
    left: 0.7rem !important;
    color: rgba(255,255,255,0.55) !important;
    font-size: 0.85rem !important;
    pointer-events: none !important;
}

.industrial-search input {
    background: rgba(0,0,0,0.18) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 20px !important;
    padding: 0.4rem 0.85rem 0.4rem 2rem !important;
    color: #ffffff !important;
    font-size: 0.82rem !important;
    width: 165px !important;
    transition: width 0.2s, background 0.2s, border-color 0.2s !important;
    outline: none !important;
}

.industrial-search input::placeholder {
    color: rgba(255,255,255,0.45) !important;
}

.industrial-search input:focus {
    background: rgba(0,0,0,0.28) !important;
    border-color: rgba(255,255,255,0.3) !important;
    width: 210px !important;
}

/* Vertical divider */
.industrial-user-divider {
    width: 1px !important;
    height: 28px !important;
    background: rgba(255,255,255,0.22) !important;
    flex-shrink: 0 !important;
}

/* User toggle pill */
.industrial-user-toggle {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    text-decoration: none !important;
    background: rgba(255,255,255,0.12) !important;
    padding: 0.25rem 0.65rem 0.25rem 0.25rem !important;
    border-radius: 30px !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    transition: background 0.18s !important;
}

.industrial-user-toggle:hover {
    background: rgba(255,255,255,0.22) !important;
}

.industrial-user-toggle::after {
    display: none !important;
}

.industrial-user-avatar {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: var(--ind-petrol) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1rem !important;
}

.industrial-user-info {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.15 !important;
}

.industrial-user-name {
    color: #ffffff !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
}

.industrial-user-role {
    color: rgba(255,255,255,0.65) !important;
    font-size: 0.68rem !important;
    font-weight: 500 !important;
}

/* Dropdown */
.industrial-dropdown {
    border: none !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.12) !important;
    border-radius: 12px !important;
    margin-top: 0.4rem !important;
    padding: 0.4rem !important;
    min-width: 190px !important;
}

.industrial-dropdown .dropdown-item {
    border-radius: 8px !important;
    padding: 0.5rem 0.85rem !important;
    font-weight: 500 !important;
    font-size: 0.88rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    color: var(--ind-text) !important;
}

.industrial-dropdown .dropdown-item:hover {
    background: #f1f5f9 !important;
}

.industrial-dropdown .dropdown-item.text-danger,
.industrial-dropdown .dropdown-item.text-danger i {
    color: var(--ind-red) !important;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1399.98px) {
    header.industrial-navbar > .app-container,
    header.industrial-navbar > .container-fluid {
        flex-wrap: wrap !important;
    }

    .industrial-nav-list {
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100% !important;
        padding: 0.75rem 0 !important;
    }

    a.industrial-nav-link,
    .industrial-nav-link {
        width: 100% !important;
        padding: 0.65rem 1rem !important;
    }

    .industrial-actions {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 0.75rem 0 !important;
        border-top: 1px solid rgba(255,255,255,0.1) !important;
    }

    .industrial-search input,
    .industrial-search input:focus {
        width: 100% !important;
    }

    .industrial-user-divider {
        display: none !important;
    }
}

/* ============================================================
   PILOTAGE & FLUX DE PRODUCTION ADJUSTMENTS
   ============================================================ */

/* Pilotage list blocks spacing and alignment */
.production-launch-side-status {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    padding: 0.5rem 0 !important;
}

.production-launch-side-status > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0.75rem 1rem !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    min-height: 46px !important;
    margin: 0 !important;
}

.production-launch-side-status > div span:first-child {
    color: #64748B !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    margin-right: 1rem !important;
}

.production-launch-side-status > div strong {
    color: #1E293B !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
}

.production-launch-side-status > div .status-badge {
    margin: 0 !important;
    min-height: auto !important;
    padding: 0.35rem 0.75rem !important;
}

/* Flux de production horizontal process train (Grid) */
.production-flow {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.production-flow__step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 0.75rem 0.5rem !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    min-height: 115px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    position: relative !important;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.02) !important;
}

.production-flow__icon {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 0 0.5rem 0 !important;
    font-size: 1rem !important;
    box-shadow: none !important;
}

.production-flow__step strong {
    color: #1E293B !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    width: 100% !important;
    word-break: keep-all !important;
    hyphens: none !important;
}

.production-flow__step small {
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    margin-top: 0.25rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    width: 100% !important;
}

/* Responsive adjustments for process steps */
@media (max-width: 1399.98px) {
    .production-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 991.98px) {
    .production-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 575.98px) {
    .production-flow {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   GLOBAL STYLE MODERNISATIONS & VARIABLES
   ============================================================ */

:root {
    /* Mappings palette industrielle pour les variables globales de l'app */
    --usine-bg: #F4F7FA !important;
    --usine-header: #0F4C5C !important;
    --usine-header-dark: #093440 !important;
    --usine-header-deep: #093440 !important;
    --usine-text: #1E293B !important;
    --usine-blue: #0F4C5C !important;
    --usine-green: #2EC4B6 !important;
    --usine-cyan: #00B4D8 !important;
    --usine-orange: #FFB703 !important;
    --usine-red: #E63946 !important;
    --usine-border: #E2E8F0 !important;

    /* Override Bootstrap Variables */
    --bs-primary: #0F4C5C !important;
    --bs-primary-rgb: 15, 76, 92 !important;
    --bs-success: #2EC4B6 !important;
    --bs-success-rgb: 46, 196, 182 !important;
    --bs-warning: #FFB703 !important;
    --bs-warning-rgb: 255, 183, 3 !important;
    --bs-danger: #E63946 !important;
    --bs-danger-rgb: 230, 57, 70 !important;
    --bs-info: #00B4D8 !important;
    --bs-info-rgb: 0, 180, 216 !important;
    --bs-body-bg: #F4F7FA !important;
    --bs-body-color: #1E293B !important;

    /* Override app.css Variables */
    --app-primary: #0F4C5C !important;
    --app-primary-deep: #093440 !important;
    --app-secondary: #E2E8F0 !important;
    --app-accent: #2EC4B6 !important;
    --app-cyan: #00B4D8 !important;
    --app-bg: #F4F7FA !important;
    --app-surface: #ffffff !important;
    --app-border: #E2E8F0 !important;
    --app-text: #1E293B !important;
    --app-muted: #64748B !important;
    --app-danger: #E63946 !important;
    --app-warning: #FFB703 !important;
}

/* Card styling modernisations */
.card,
.production-card,
.usine-card,
.card-soft-neutral,
.card-soft-blue,
.card-soft-green,
.card-soft-warning,
.card-soft-danger {
    border-radius: 12px !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03) !important;
    overflow: hidden !important;
}

.card-header,
.card-footer {
    background-color: transparent !important;
    border-color: rgba(226, 232, 240, 0.8) !important;
}

/* Accent borders on cards */
.border-accent--blue::before { background: var(--ind-turquoise) !important; }
.border-accent--green::before { background: var(--ind-green) !important; }
.border-accent--warning::before { background: var(--ind-orange) !important; }
.border-accent--danger::before { background: var(--ind-red) !important; }

/* Badges and pills */
.badge,
.status-badge,
.usine-status-pill {
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    border-radius: 8px !important;
}

.status-badge--success {
    background: rgba(46, 196, 182, 0.12) !important;
    color: var(--ind-green) !important;
}

.status-badge--warning {
    background: rgba(255, 183, 3, 0.12) !important;
    color: var(--ind-orange) !important;
}

.status-badge--danger {
    background: rgba(230, 57, 70, 0.12) !important;
    color: var(--ind-red) !important;
}

/* Datatables adjustments */
.table {
    border-color: rgba(226, 232, 240, 0.8) !important;
}

.table th {
    background: #F8FAFC !important;
    color: #475569 !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
}

/* Modernise Dashboard KPI Cards */
/* Modernise Dashboard KPI Cards with specificity booster */
body .dashboard-kpi-card,
.wrapper .dashboard-kpi-card {
    background: #ffffff !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    border-top: 4px solid transparent !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.02) !important;
    color: var(--ind-text) !important;
    padding: 1.25rem !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
}

body .dashboard-kpi-card:hover,
.wrapper .dashboard-kpi-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05) !important;
}

/* Variant Overrides */
body .dashboard-kpi-card.dashboard-kpi-card--primary,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--primary {
    background: #ffffff !important;
    border-top-color: var(--ind-petrol) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--success,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--success {
    background: #ffffff !important;
    border-top-color: var(--ind-green) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--warning,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--warning {
    background: #ffffff !important;
    border-top-color: var(--ind-orange) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--info,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--info {
    background: #ffffff !important;
    border-top-color: var(--ind-turquoise) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--danger,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--danger {
    background: #ffffff !important;
    border-top-color: var(--ind-red) !important;
}

/* Make card header spacing clean */
body .dashboard-kpi-card__head,
.wrapper .dashboard-kpi-card__head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 1rem !important;
}

/* Styles for icon containers */
body .dashboard-kpi-card .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card .dashboard-kpi-card__icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.2rem !important;
    box-shadow: none !important;
}

/* Light pastel notes/badges */
body .dashboard-kpi-card .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card .dashboard-kpi-card__note {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 0.3rem 0.6rem !important;
    border-radius: 6px !important;
}

/* Text elements inside KPI */
body .dashboard-kpi-card .dashboard-kpi-card__label,
.wrapper .dashboard-kpi-card .dashboard-kpi-card__label {
    color: #64748B !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    margin-bottom: 0.25rem !important;
}

body .dashboard-kpi-card .dashboard-kpi-card__value,
.wrapper .dashboard-kpi-card .dashboard-kpi-card__value {
    color: var(--ind-text) !important;
    font-size: 1.8rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
}

/* Color specific configurations */
body .dashboard-kpi-card.dashboard-kpi-card--primary .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--primary .dashboard-kpi-card__icon {
    background: rgba(15, 76, 92, 0.08) !important;
    color: var(--ind-petrol) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--primary .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--primary .dashboard-kpi-card__note {
    background: rgba(15, 76, 92, 0.08) !important;
    color: var(--ind-petrol) !important;
}

body .dashboard-kpi-card.dashboard-kpi-card--success .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--success .dashboard-kpi-card__icon {
    background: rgba(46, 196, 182, 0.08) !important;
    color: var(--ind-green) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--success .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--success .dashboard-kpi-card__note {
    background: rgba(46, 196, 182, 0.08) !important;
    color: var(--ind-green) !important;
}

body .dashboard-kpi-card.dashboard-kpi-card--warning .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--warning .dashboard-kpi-card__icon {
    background: rgba(255, 183, 3, 0.08) !important;
    color: var(--ind-orange) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--warning .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--warning .dashboard-kpi-card__note {
    background: rgba(255, 183, 3, 0.08) !important;
    color: var(--ind-orange) !important;
}

body .dashboard-kpi-card.dashboard-kpi-card--info .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--info .dashboard-kpi-card__icon {
    background: rgba(0, 180, 216, 0.08) !important;
    color: var(--ind-turquoise) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--info .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--info .dashboard-kpi-card__note {
    background: rgba(0, 180, 216, 0.08) !important;
    color: var(--ind-turquoise) !important;
}

body .dashboard-kpi-card.dashboard-kpi-card--danger .dashboard-kpi-card__icon,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--danger .dashboard-kpi-card__icon {
    background: rgba(230, 57, 70, 0.08) !important;
    color: var(--ind-red) !important;
}
body .dashboard-kpi-card.dashboard-kpi-card--danger .dashboard-kpi-card__note,
.wrapper .dashboard-kpi-card.dashboard-kpi-card--danger .dashboard-kpi-card__note {
    background: rgba(230, 57, 70, 0.08) !important;
    color: var(--ind-red) !important;
}

/* Production Demand Validation Screen Styles */
.production-demand-summary {
    display: grid;
    gap: 0.8rem;
    padding: 1.25rem;
    background: #f8fafc;
    border: 1px solid var(--usine-border);
    border-radius: 16px;
    margin-bottom: 1.5rem;
}

.production-demand-summary > div {
    display: grid;
    grid-template-columns: 200px 1fr;
    align-items: center;
    gap: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px dashed rgba(226, 232, 240, 0.6);
}

.production-demand-summary > div:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.production-demand-summary strong {
    color: #475569;
    font-size: 0.88rem;
    font-weight: 600;
}

.production-demand-summary span {
    color: #0f172a;
    font-weight: 700;
    font-size: 0.95rem;
}

.production-demand-instruction,
.production-demand-remarks {
    padding: 1.1rem;
    border-radius: 16px;
    border: 1px solid var(--usine-border);
    background: #ffffff;
    margin-top: 1.2rem;
}

.production-demand-instruction h4,
.production-demand-remarks h4 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 0.45rem;
}

.production-demand-instruction p,
.production-demand-remarks p {
    font-size: 0.85rem;
    color: #64748b;
    margin-bottom: 0;
}

.production-demand-instruction {
    border-left: 4px solid #3b82f6;
    background: rgba(59, 130, 246, 0.02) !important;
}

.production-demand-remarks {
    border-left: 4px solid #10b981;
    background: rgba(16, 185, 129, 0.02) !important;
}

/* Mode Atelier Layout Fixes */
.instruction-atelier-card {
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.9fr) !important;
}

.instruction-atelier-card__media {
    width: 100% !important;
    background: #f8fafc !important;
    border-radius: 16px !important;
    border: 1px solid rgba(219, 227, 240, 0.92) !important;
    padding: 0.5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.instruction-atelier-image-wrap {
    width: 100% !important;
    height: 320px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f8fafc !important;
}

.instruction-atelier-image-wrap img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 10px !important;
}

.instruction-atelier-next {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

@media (max-width: 1199.98px) {
    .instruction-atelier-card {
        grid-template-columns: 1fr !important;
    }
}

/* Instruction Step Gallery & Photo Tiles Styling */
.instruction-photo-tile__caption span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
}

.instruction-photo-tile__remove {
    border: 0;
    background: transparent;
    color: #ef4444 !important;
    font-size: 1.15rem !important;
    line-height: 1;
    position: relative;
    z-index: 2;
    cursor: pointer;
    flex-shrink: 0;
    transition: color 0.15s ease, transform 0.15s ease;
    padding: 2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.instruction-photo-tile__remove:hover {
    color: #b91c1c !important;
    transform: scale(1.2);
}





/* ============================================================
   PILOTAGE & FLUX DE PRODUCTION ADJUSTMENTS (COLORATION CARD)
   ============================================================ */
.production-flow__step--success {
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%) !important;
    border-color: rgba(46, 196, 182, 0.3) !important;
}
.production-flow__step--success .production-flow__icon {
    background: rgba(46, 196, 182, 0.15) !important;
    color: #2ec4b6 !important;
}
.production-flow__step--success strong {
    color: #0f4c5c !important;
}
.production-flow__step--success small {
    color: #2ec4b6 !important;
}

.production-flow__step--active {
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%) !important;
    border-color: rgba(0, 180, 216, 0.3) !important;
    box-shadow: 0 4px 12px rgba(0, 180, 216, 0.08) !important;
}
.production-flow__step--active .production-flow__icon {
    background: rgba(0, 180, 216, 0.15) !important;
    color: #00b4d8 !important;
}
.production-flow__step--active strong {
    color: #0f4c5c !important;
}
.production-flow__step--active small {
    color: #00b4d8 !important;
}

.production-flow__step--waiting {
    background: linear-gradient(180deg, #f9fafb 0%, #ffffff 100%) !important;
    border-color: rgba(226, 232, 240, 0.8) !important;
}
.production-flow__step--waiting .production-flow__icon {
    background: #f1f5f9 !important;
    color: #64748b !important;
}
.production-flow__step--waiting strong {
    color: #475569 !important;
}
.production-flow__step--waiting small {
    color: #64748b !important;
}

.production-flow__step--warning {
    background: linear-gradient(180deg, #fffbeb 0%, #ffffff 100%) !important;
    border-color: rgba(255, 183, 3, 0.3) !important;
}
.production-flow__step--warning .production-flow__icon {
    background: rgba(255, 183, 3, 0.15) !important;
    color: #ffb703 !important;
}
.production-flow__step--warning strong {
    color: #78350f !important;
}
.production-flow__step--warning small {
    color: #ffb703 !important;
}

.production-flow__step--danger {
    background: linear-gradient(180deg, #fef2f2 0%, #ffffff 100%) !important;
    border-color: rgba(230, 57, 70, 0.3) !important;
}
.production-flow__step--danger .production-flow__icon {
    background: rgba(230, 57, 70, 0.15) !important;
    color: #e63946 !important;
}
.production-flow__step--danger strong {
    color: #7f1d1d !important;
}
.production-flow__step--danger small {
    color: #e63946 !important;
}

/* ============================================================
   COMPACT STEP OPERATIONAL DETAILS & TEXTAREAS
   ============================================================ */
.instruction-textarea--compact {
    min-height: 100px !important;
}

/* ============================================================
   COMPACT STEP PHOTO TILES & DROPZONE (VERTICAL STACKING)
   ============================================================ */
.instruction-dropzone-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.85rem !important;
    align-items: stretch !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.instruction-dropzone {
    padding: 0.75rem !important;
    min-height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

.instruction-dropzone__icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 10px !important;
    font-size: 1.1rem !important;
    margin-bottom: 0.35rem !important;
}

.instruction-dropzone__title {
    font-size: 0.85rem !important;
}

.instruction-dropzone__text {
    display: none !important;
}

.instruction-dropzone__browse {
    margin-top: 0.3rem !important;
    padding: 0.2rem 0.5rem !important;
    font-size: 0.75rem !important;
}

.instruction-photo-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
    gap: 0.75rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    max-height: 270px !important;
    min-height: auto !important;
    padding: 0.5rem !important;
    scrollbar-width: thin !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

.instruction-photo-gallery::-webkit-scrollbar {
    width: 6px !important;
}

.instruction-photo-gallery::-webkit-scrollbar-track {
    background: #f1f1f1 !important;
    border-radius: 4px !important;
}

.instruction-photo-gallery::-webkit-scrollbar-thumb {
    background: #cbd5e1 !important;
    border-radius: 4px !important;
}

.instruction-photo-gallery::-webkit-scrollbar-thumb:hover {
    background: #94a3b8 !important;
}

.instruction-step-grid__side {
    min-width: 0 !important;
}

.instruction-photo-tile {
    flex: 0 0 120px !important;
    width: 120px !important;
    height: 120px !important;
    min-width: 120px !important;
    border-radius: 12px !important;
    position: relative !important;
    border: 1px solid rgba(219, 227, 240, 0.95) !important;
    overflow: visible !important;
    background-color: #f8fafc !important;
}

.instruction-photo-tile__zoom {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    position: relative !important;
    min-height: auto !important;
}

.instruction-photo-tile__zoom::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(15, 23, 42, 0.45) !important;
    opacity: 0 !important;
    transition: opacity 0.2s ease !important;
    border-radius: 12px !important;
    pointer-events: none !important;
}

.instruction-photo-tile__zoom:hover::after {
    opacity: 1 !important;
}

.instruction-photo-tile__zoom img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 12px !important;
}

.instruction-photo-tile__zoom .instruction-photo-tile__hint {
    display: inline-flex !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) scale(0.85) !important;
    opacity: 0 !important;
    transition: opacity 0.15s ease, transform 0.15s ease !important;
    background: rgba(15, 23, 42, 0.85) !important;
    color: #ffffff !important;
    padding: 0.35rem 0.5rem !important;
    border-radius: 20px !important;
    font-size: 0.65rem !important;
    white-space: nowrap !important;
    pointer-events: none !important;
    z-index: 5 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

.instruction-photo-tile__zoom:hover .instruction-photo-tile__hint {
    opacity: 1 !important;
    transform: translate(-50%, -50%) scale(1) !important;
}

.instruction-photo-tile__caption {
    display: none !important;
}

.instruction-photo-tile__remove {
    position: absolute !important;
    top: -6px !important;
    right: -6px !important;
    background: #ffffff !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
    border-radius: 50% !important;
    width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
    color: #ef4444 !important;
    font-size: 0.95rem !important;
    z-index: 10 !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: color 0.15s ease, transform 0.15s ease !important;
}

.instruction-photo-tile__remove:hover {
    color: #b91c1c !important;
    transform: scale(1.15) !important;
}

.instruction-textarea--safety {
    border-color: rgba(249, 115, 22, 0.25) !important;
    background-color: #fffbf7 !important;
}

.instruction-textarea--safety:focus {
    border-color: rgba(249, 115, 22, 0.6) !important;
    box-shadow: 0 0 0 0.2rem rgba(249, 115, 22, 0.15) !important;
}

.bom-tabs-container {
    background-color: #c9def3 !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 6px !important;
    padding: 3px !important;
}

#launch-machine-select + .select2-container--bootstrap-5 .select2-selection .select2-selection__rendered,
#launch-machine-select + .select2-container--bootstrap-5 .select2-selection {
    font-size: 0.76rem !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__option {
    font-size: 0.76rem !important;
}

.select2-container--bootstrap-5 .select2-search__field {
    font-size: 0.76rem !important;
}