/*
 * FCMS Interface v2
 * Direction: operations board — stable grid, matte surfaces, priority-led data.
 * This layer deliberately contains presentation only. Existing behavior stays in style.css/app.js.
 */

:root {
    --fcms-v2-canvas: #090f16;
    --fcms-v2-rail: #0d151f;
    --fcms-v2-surface: #121c27;
    --fcms-v2-surface-raised: #172330;
    --fcms-v2-line: rgba(153, 173, 196, 0.22);
    --fcms-v2-line-strong: rgba(167, 187, 210, 0.38);
    --fcms-v2-ink: #edf3f8;
    --fcms-v2-muted: #a5b3c3;
    --fcms-v2-radius: 6px;
    --fcms-v2-radius-lg: 9px;
    --fcms-v2-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
    --fcms-v2-control-h: 38px;
    --fcms-v2-ease: 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

html {
    color-scheme: dark;
    scroll-padding-top: 8rem;
}

html[data-fcms-color-mode="light"] {
    color-scheme: light;
    --fcms-bg: #dbe3e8;
    --fcms-bg-rgb: 219, 227, 232;
    --fcms-bg-2: #e4eaed;
    --fcms-bg-2-rgb: 228, 234, 237;
    --fcms-surface: #f0f3f2;
    --fcms-surface-rgb: 240, 243, 242;
    --fcms-surface-2: #e6ebed;
    --fcms-surface-2-rgb: 230, 235, 237;
    --fcms-border: #a8b5bd;
    --fcms-border-rgb: 168, 181, 189;
    --fcms-text: #1c2a36;
    --fcms-text-rgb: 28, 42, 54;
    --fcms-muted: #536675;
    --fcms-muted-rgb: 83, 102, 117;
    --fcms-control-bg: #f6f8f7;
    --fcms-control-bg-2: #e1e8eb;
    --fcms-v2-canvas: #dbe3e8;
    --fcms-v2-rail: #e4eaed;
    --fcms-v2-surface: #f0f3f2;
    --fcms-v2-surface-raised: #e5ebee;
    --fcms-v2-line: rgba(50, 70, 85, 0.25);
    --fcms-v2-line-strong: rgba(50, 70, 85, 0.42);
    --fcms-v2-ink: #1c2a36;
    --fcms-v2-muted: #536675;
    --fcms-v2-shadow: 0 12px 26px rgba(31, 46, 57, 0.13);
}

body.fcms-interface-v2 {
    font-family: "Sora", "Segoe UI Variable", "Segoe UI", "Noto Sans", sans-serif;
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-canvas) !important;
    font-size: 0.925rem;
    line-height: 1.5;
    -webkit-tap-highlight-color: rgba(var(--fcms-primary-rgb), 0.2);
}

.fcms-interface-v2 main.container::before {
    display: none;
}

::selection {
    color: #061116;
    background: color-mix(in srgb, var(--fcms-primary) 78%, white);
}

.fcms-interface-v2 a,
.fcms-interface-v2 button,
.fcms-interface-v2 input,
.fcms-interface-v2 select,
.fcms-interface-v2 textarea,
.fcms-interface-v2 summary {
    touch-action: manipulation;
}

.fcms-interface-v2 :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--fcms-focus, #f3c94f) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(var(--fcms-focus-rgb, 243, 201, 79), 0.16) !important;
}

/* Frame and navigation */
.fcms-interface-v2 .fcms-topbar {
    color: var(--fcms-v2-muted) !important;
    background: var(--fcms-v2-canvas) !important;
    border-bottom: 1px solid var(--fcms-v2-line) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-topbar .fcms-live-clock {
    min-height: 28px !important;
    height: 28px !important;
    padding-inline: 0.45rem !important;
    gap: 0.38rem !important;
    color: var(--fcms-v2-muted) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    opacity: 1 !important;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.fcms-interface-v2 .fcms-topbar .fcms-live-clock i {
    color: color-mix(in srgb, var(--fcms-primary) 62%, var(--fcms-v2-ink)) !important;
    font-size: 0.8rem !important;
    opacity: 1 !important;
}

.fcms-interface-v2 .fcms-topbar .fcms-live-clock-date,
.fcms-interface-v2 .fcms-topbar .fcms-live-clock-time {
    max-width: none !important;
    overflow: visible !important;
    color: inherit !important;
    font-weight: 600 !important;
    opacity: 1 !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

.fcms-interface-v2 .fcms-topbar .fcms-live-clock-time {
    color: var(--fcms-v2-ink) !important;
    font-weight: 740 !important;
}

.fcms-interface-v2 .fcms-topbar .fcms-live-clock-dot {
    color: var(--fcms-v2-line-strong) !important;
    opacity: 1 !important;
}

.fcms-interface-v2 .fcms-navbar {
    background: var(--fcms-v2-rail) !important;
    border-bottom: 1px solid var(--fcms-v2-line-strong) !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12) !important;
}

.fcms-interface-v2 .fcms-navbar .container {
    min-height: 66px;
}

.fcms-interface-v2 .fcms-brand-logo,
.fcms-interface-v2 .fcms-convention-logo {
    object-fit: contain;
}

.fcms-interface-v2 .navbar .nav-link {
    min-height: 38px;
    padding: 0.48rem 0.72rem !important;
    color: var(--fcms-v2-muted) !important;
    border: 1px solid transparent;
    border-radius: var(--fcms-v2-radius);
    font-size: 0.84rem;
    font-weight: 650;
    transition: color var(--fcms-v2-ease), background-color var(--fcms-v2-ease), border-color var(--fcms-v2-ease);
}

.fcms-interface-v2 .navbar .nav-link:hover,
.fcms-interface-v2 .navbar .nav-link:focus-visible {
    color: var(--fcms-v2-ink) !important;
    background: var(--fcms-v2-surface-raised) !important;
    border-color: var(--fcms-v2-line);
}

.fcms-interface-v2 .navbar .nav-link.active {
    color: var(--fcms-v2-ink) !important;
    background: rgba(var(--fcms-primary-rgb), 0.1) !important;
    border-color: rgba(var(--fcms-primary-rgb), 0.38) !important;
    box-shadow: none !important;
    font-weight: 740;
}

.fcms-interface-v2 .fcms-announcement-bar {
    color: var(--fcms-v2-ink) !important;
    background: var(--fcms-v2-surface) !important;
    border-bottom: 1px solid var(--fcms-v2-line-strong) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-announcement-item:not(:last-child)::after {
    color: var(--fcms-primary) !important;
    opacity: 0.9;
}

.fcms-interface-v2 main.container {
    width: min(100% - 2rem, 1440px);
    max-width: 1440px;
}

/* Typography and page hierarchy */
.fcms-interface-v2 h1,
.fcms-interface-v2 h2,
.fcms-interface-v2 h3,
.fcms-interface-v2 h4,
.fcms-interface-v2 h5,
.fcms-interface-v2 h6 {
    color: var(--fcms-v2-ink);
    font-weight: 730;
    letter-spacing: -0.018em;
    text-wrap: balance;
}

.fcms-interface-v2 main h1.h3,
.fcms-interface-v2 main h1.h4,
.fcms-interface-v2 main h1.h5 {
    font-size: clamp(1.25rem, 1rem + 0.7vw, 1.72rem);
    line-height: 1.2;
}

.fcms-interface-v2 main > .fcms-page-actions,
.fcms-interface-v2 main > .d-flex.justify-content-between.align-items-center.mb-3 {
    min-height: 48px;
    margin-bottom: 1rem !important;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--fcms-v2-line);
}

.fcms-interface-v2 p,
.fcms-interface-v2 .form-text {
    text-wrap: pretty;
}

.fcms-interface-v2 code,
.fcms-interface-v2 time,
.fcms-interface-v2 .fcms-live-clock,
.fcms-interface-v2 td[data-label*="ID"],
.fcms-interface-v2 td[data-label*="Date"],
.fcms-interface-v2 td[data-label*="Heure"] {
    font-variant-numeric: tabular-nums;
}

/* Surfaces: one quiet panel vocabulary */
.fcms-interface-v2 :where(.fcms-card, .card, .modal-content, .dropdown-menu, .offcanvas) {
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-surface) !important;
    border: 1px solid var(--fcms-v2-line) !important;
    border-radius: var(--fcms-v2-radius-lg) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .card:hover {
    border-color: var(--fcms-v2-line-strong) !important;
}

.fcms-interface-v2 .card-header,
.fcms-interface-v2 .modal-header,
.fcms-interface-v2 .modal-footer {
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-surface-raised) !important;
    border-color: var(--fcms-v2-line) !important;
}

.fcms-interface-v2 .card-header {
    min-height: 43px;
    padding: 0.7rem 0.9rem;
    font-weight: 680;
}

.fcms-interface-v2 .card-body {
    padding: 0.95rem;
}

.fcms-interface-v2 .fcms-stat-card,
.fcms-interface-v2 .fcms-info-tile,
.fcms-interface-v2 .fcms-detail-cell {
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-surface) !important;
    border: 1px solid var(--fcms-v2-line) !important;
    border-radius: var(--fcms-v2-radius) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-stat-card {
    min-height: 86px;
    padding: 0.75rem 0.85rem;
    justify-content: space-between;
}

.fcms-interface-v2 .fcms-stat-card::before,
.fcms-interface-v2 .fcms-stat-card::after {
    display: none !important;
}

.fcms-interface-v2 .fcms-stat-card .label,
.fcms-interface-v2 .small.text-secondary,
.fcms-interface-v2 .text-secondary,
.fcms-interface-v2 .text-muted {
    color: var(--fcms-v2-muted) !important;
}

.fcms-interface-v2 .fcms-stat-card .value,
.fcms-interface-v2 .card .h4,
.fcms-interface-v2 .card .h3 {
    color: var(--fcms-v2-ink) !important;
    font-variant-numeric: tabular-nums;
}

/* Controls and actions */
.fcms-interface-v2 :where(.btn, .form-control, .form-select, .input-group-text) {
    min-height: var(--fcms-v2-control-h);
    border-radius: var(--fcms-v2-radius) !important;
}

.fcms-interface-v2 .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.42rem;
    padding: 0.46rem 0.72rem;
    font-size: 0.84rem;
    font-weight: 680;
    line-height: 1.15;
    border-width: 1px;
    box-shadow: none !important;
    transition: color var(--fcms-v2-ease), background-color var(--fcms-v2-ease), border-color var(--fcms-v2-ease), opacity var(--fcms-v2-ease);
}

.fcms-interface-v2 .btn:hover {
    transform: none !important;
}

.fcms-interface-v2 .btn-primary,
.fcms-interface-v2 .btn-info {
    color: #041419 !important;
    background: var(--fcms-primary) !important;
    border-color: color-mix(in srgb, var(--fcms-primary) 80%, white) !important;
}

.fcms-interface-v2 .btn-primary:hover,
.fcms-interface-v2 .btn-info:hover {
    background: color-mix(in srgb, var(--fcms-primary) 86%, white) !important;
}

.fcms-interface-v2 :where(.btn-outline-light, .btn-outline-secondary, .btn-secondary) {
    color: var(--fcms-v2-ink) !important;
    background: var(--fcms-v2-surface-raised) !important;
    border-color: var(--fcms-v2-line-strong) !important;
}

.fcms-interface-v2 :where(.btn-outline-light, .btn-outline-secondary, .btn-secondary):hover {
    color: var(--fcms-v2-ink) !important;
    background: color-mix(in srgb, var(--fcms-v2-surface-raised) 84%, var(--fcms-primary)) !important;
    border-color: rgba(var(--fcms-primary-rgb), 0.55) !important;
}

.fcms-interface-v2 .btn-sm,
.fcms-interface-v2 .fcms-btn-compact {
    min-height: 32px;
    padding: 0.34rem 0.58rem;
}

.fcms-interface-v2 .btn:disabled,
.fcms-interface-v2 .btn.disabled,
.fcms-interface-v2 :disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.fcms-interface-v2 .form-label,
.fcms-interface-v2 legend {
    margin-bottom: 0.34rem;
    color: var(--fcms-v2-ink) !important;
    font-size: 0.8rem;
    font-weight: 700;
}

.fcms-interface-v2 :where(.form-control, .form-select, .input-group-text) {
    color: var(--fcms-v2-ink) !important;
    background-color: var(--fcms-v2-rail) !important;
    border-color: var(--fcms-v2-line-strong) !important;
    box-shadow: none !important;
    font-size: 0.88rem;
}

.fcms-interface-v2 :where(.form-control, .form-select):hover {
    border-color: color-mix(in srgb, var(--fcms-v2-line-strong) 70%, var(--fcms-primary)) !important;
}

.fcms-interface-v2 :where(.form-control, .form-select):focus {
    background-color: var(--fcms-v2-surface) !important;
    border-color: var(--fcms-primary) !important;
}

.fcms-interface-v2 .form-control::placeholder {
    color: color-mix(in srgb, var(--fcms-v2-muted) 78%, transparent);
    opacity: 1;
}

.fcms-interface-v2 .form-check-input {
    border-color: var(--fcms-v2-line-strong);
    background-color: var(--fcms-v2-rail);
}

.fcms-interface-v2 .form-check-input:checked {
    border-color: var(--fcms-primary);
    background-color: var(--fcms-primary);
}

/* Data board */
.fcms-interface-v2 .fcms-table-wrap {
    border: 1px solid var(--fcms-v2-line) !important;
    border-radius: var(--fcms-v2-radius) !important;
    background: var(--fcms-v2-surface);
    scrollbar-color: var(--fcms-v2-line-strong) var(--fcms-v2-rail);
}

.fcms-interface-v2 .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--fcms-v2-ink);
    --bs-table-border-color: var(--fcms-v2-line);
    margin-bottom: 0;
    font-size: 0.84rem;
}

.fcms-interface-v2 .table > :not(caption) > * > * {
    padding: 0.62rem 0.72rem;
    vertical-align: middle;
    border-bottom-color: var(--fcms-v2-line);
}

.fcms-interface-v2 .table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--fcms-v2-muted);
    background: var(--fcms-v2-rail) !important;
    border-bottom: 1px solid var(--fcms-v2-line-strong) !important;
    font-size: 0.7rem;
    font-weight: 760;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fcms-interface-v2 .table tbody tr {
    transition: background-color var(--fcms-v2-ease);
}

.fcms-interface-v2 .table tbody tr:hover > * {
    background: rgba(var(--fcms-primary-rgb), 0.055) !important;
}

.fcms-interface-v2 .table tbody tr:last-child > * {
    border-bottom-width: 0;
}

.fcms-interface-v2 .badge {
    padding: 0.35em 0.58em;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 720;
    letter-spacing: 0.015em;
}

.fcms-interface-v2 .pagination {
    gap: 0.25rem;
}

.fcms-interface-v2 .page-link {
    min-width: 34px;
    min-height: 34px;
    display: grid;
    place-items: center;
    color: var(--fcms-v2-muted);
    background: var(--fcms-v2-surface);
    border: 1px solid var(--fcms-v2-line);
    border-radius: var(--fcms-v2-radius) !important;
}

.fcms-interface-v2 .page-item.active .page-link {
    color: #061116;
    background: var(--fcms-primary);
    border-color: var(--fcms-primary);
}

/* Menus, feedback and overlays */
.fcms-interface-v2 .dropdown-menu {
    min-width: 13rem;
    padding: 0.35rem;
    background: var(--fcms-v2-surface-raised) !important;
    border-color: var(--fcms-v2-line-strong) !important;
    box-shadow: var(--fcms-v2-shadow) !important;
}

.fcms-interface-v2 .dropdown-item {
    min-height: 36px;
    padding: 0.48rem 0.62rem;
    color: var(--fcms-v2-ink) !important;
    border-radius: 4px;
    font-size: 0.84rem;
    transition: background-color var(--fcms-v2-ease), color var(--fcms-v2-ease);
}

.fcms-interface-v2 .dropdown-item:hover,
.fcms-interface-v2 .dropdown-item:focus,
.fcms-interface-v2 .dropdown-item.active {
    color: var(--fcms-v2-ink) !important;
    background: rgba(var(--fcms-primary-rgb), 0.12) !important;
}

.fcms-interface-v2 .dropdown-divider {
    border-color: var(--fcms-v2-line);
}

/* The floating quick-action trigger must not remain visible while its menu is open. */
.fcms-interface-v2 .fcms-quick-actions-toggle.show,
.fcms-interface-v2 .fcms-quick-actions:has(.fcms-quick-actions-menu.show) .fcms-quick-actions-toggle {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.fcms-interface-v2 .modal-backdrop.show {
    opacity: 0.7;
}

.fcms-interface-v2 .modal-content {
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.42) !important;
}

.fcms-interface-v2 .alert {
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-surface-raised);
    border: 1px solid var(--fcms-v2-line-strong);
    border-radius: var(--fcms-v2-radius);
    box-shadow: none;
}

.fcms-interface-v2 .alert-info {
    border-color: rgba(var(--fcms-primary-rgb), 0.5);
}

.fcms-interface-v2 .alert-warning {
    border-color: rgba(var(--fcms-warning-rgb), 0.58);
}

.fcms-interface-v2 .alert-danger {
    border-color: rgba(var(--fcms-danger-rgb), 0.58);
}

.fcms-interface-v2 .alert-success {
    border-color: rgba(var(--fcms-success-rgb), 0.58);
}

.fcms-interface-v2 .nav-pills {
    gap: 0.25rem;
}

.fcms-interface-v2 .nav-pills .nav-link {
    min-height: 36px;
    color: var(--fcms-v2-muted);
    border: 1px solid transparent;
    border-radius: var(--fcms-v2-radius);
}

.fcms-interface-v2 .nav-pills .nav-link.active {
    color: var(--fcms-v2-ink);
    background: rgba(var(--fcms-primary-rgb), 0.1);
    border-color: rgba(var(--fcms-primary-rgb), 0.38);
}

/* Authentication */
.fcms-interface-v2.fcms-route-login main.container {
    display: grid;
    align-items: center;
}

.fcms-interface-v2 .fcms-login-shell {
    width: 100%;
    margin-inline: 0;
}

.fcms-interface-v2 .fcms-login-shell > [class*="col-"] {
    width: 100%;
    min-width: 0;
    max-width: min(100%, 470px);
    margin-inline: auto;
}

.fcms-interface-v2 .fcms-auth-card {
    width: 100%;
    max-width: min(470px, calc(100vw - 2rem));
    border-top: 1px solid var(--fcms-v2-line) !important;
    box-shadow: var(--fcms-v2-shadow) !important;
}

.fcms-interface-v2 .fcms-auth-card :where(p, .alert, .btn, .form-text) {
    min-width: 0;
    overflow-wrap: anywhere;
}

.fcms-interface-v2 .fcms-login-heading {
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--fcms-v2-line);
}

/* Planning keeps its information density but joins the same material system. */
.fcms-interface-v2 :where(.fcms-day-header, .fcms-time-axis .fcms-day-body, .fcms-day-column .fcms-day-body, .fcms-cascade-timeline) {
    background-color: var(--fcms-v2-surface) !important;
    border-color: var(--fcms-v2-line) !important;
}

.fcms-interface-v2 .fcms-time-axis .fcms-day-body,
.fcms-interface-v2 .fcms-time-axis .fcms-hour-label {
    background: var(--fcms-v2-rail) !important;
}

.fcms-interface-v2 .fcms-time-axis .fcms-hour-label {
    color: var(--fcms-v2-muted) !important;
    font-variant-numeric: tabular-nums;
}

.fcms-interface-v2 .fcms-shift-block {
    border-radius: 4px !important;
    box-shadow: none !important;
}

/* Shift dialogs: reserve real space for the title before positioning actions. */
.fcms-interface-v2 .fcms-shift-modal-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.75rem;
}

.fcms-interface-v2 .fcms-shift-modal-title {
    width: auto;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.fcms-interface-v2 .fcms-shift-modal-title .modal-title {
    display: block;
    width: 100%;
    min-width: 0;
}

.fcms-interface-v2 .fcms-shift-modal-title .fcms-pole-label {
    display: flex;
    width: max-content;
    max-width: 100%;
    min-width: 0;
}

.fcms-interface-v2 .fcms-shift-modal-title .fcms-pole-label > span:last-child {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.fcms-interface-v2 .fcms-shift-modal-actions {
    margin-left: 0;
}

/* My shifts: keep information and actions on the same visual row on desktop. */
.fcms-interface-v2 .fcms-my-shift-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
}

.fcms-interface-v2 .fcms-my-shift-actions {
    align-items: center;
    align-self: center;
}

.fcms-interface-v2 .fcms-my-shift-actions form {
    display: inline-flex !important;
    align-items: center;
    margin: 0;
}

.fcms-interface-v2 .fcms-my-shift-actions .btn {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fcms-interface-v2 .fcms-inventory-history-wrap {
    overflow: visible;
}

.fcms-interface-v2 .fcms-inventory-history-table tbody tr {
    align-content: start;
}

.fcms-interface-v2 .fcms-inventory-history-table tbody td {
    overflow-wrap: break-word;
    word-break: normal;
}

.fcms-interface-v2 .fcms-inventory-history-table tbody td:first-child {
    grid-column: 1 / -1;
}

.fcms-interface-v2 .fcms-inventory-stats {
    overflow: hidden;
    background: var(--fcms-v2-surface);
    border: 1px solid var(--fcms-v2-line);
    border-radius: var(--fcms-v2-radius-lg);
}

.fcms-interface-v2 .fcms-inventory-stats > .fcms-drop-summary {
    border: 0 !important;
    border-radius: 0 !important;
}

.fcms-interface-v2 .fcms-inventory-stats[open] > .fcms-drop-summary {
    border-bottom: 1px solid var(--fcms-v2-line) !important;
}

@media (min-width: 768px) {
    .fcms-interface-v2 .fcms-inventory-history-wrap tbody {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
    }
}

/* Mobile grid: one calm day surface, without stacked outlines or corner ribbons. */
.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-day {
    padding: 0.7rem !important;
    background: var(--fcms-v2-surface) !important;
    border: 1px solid var(--fcms-v2-line) !important;
    border-radius: var(--fcms-v2-radius-lg) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-day.is-today {
    border-color: var(--fcms-v2-line-strong) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-day-head {
    margin: 0 0 0.6rem !important;
    padding: 0 0.1rem 0.55rem !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--fcms-v2-line) !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shifts {
    gap: 0.5rem;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift {
    border: 1px solid var(--fcms-v2-line-strong) !important;
    border-radius: var(--fcms-v2-radius) !important;
    background: var(--fcms-v2-rail) !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift::before,
.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift::after {
    content: none !important;
    display: none !important;
}

/* Planning availability: fine, spaced marks preserve shift color and copy. */
.fcms-interface-v2 .fcms-shift-block.is-self-open::before,
.fcms-interface-v2 .fcms-cascade-chip.is-self-open::before {
    inset: 0;
    opacity: 0.16;
    background-image: repeating-linear-gradient(
        45deg,
        rgba(92, 232, 242, 0.9) 0 1px,
        transparent 1px 18px
    );
}

.fcms-interface-v2 .fcms-shift-block.needs-staff::before,
.fcms-interface-v2 .fcms-cascade-chip.needs-staff::before {
    inset: 0;
    opacity: 0.2;
    background-image: repeating-linear-gradient(
        135deg,
        rgba(255, 214, 82, 0.92) 0 1px,
        transparent 1px 18px
    );
}

.fcms-interface-v2 .fcms-shift-block.is-self-open.needs-staff::before,
.fcms-interface-v2 .fcms-cascade-chip.is-self-open.needs-staff::before {
    opacity: 0.23;
    background-image:
        repeating-linear-gradient(135deg, rgba(255, 214, 82, 0.9) 0 1px, transparent 1px 19px),
        repeating-linear-gradient(45deg, rgba(92, 232, 242, 0.82) 0 1px, transparent 1px 19px);
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift.is-self-open {
    background:
        repeating-linear-gradient(45deg, rgba(92, 232, 242, 0.12) 0 1px, transparent 1px 18px),
        var(--fcms-bg-2) !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift.needs-staff {
    background:
        repeating-linear-gradient(135deg, rgba(255, 214, 82, 0.15) 0 1px, transparent 1px 18px),
        var(--fcms-bg-2) !important;
}

.fcms-interface-v2 .fcms-planning-mobile .fcms-mobile-shift.is-self-open.needs-staff {
    background:
        repeating-linear-gradient(135deg, rgba(255, 214, 82, 0.14) 0 1px, transparent 1px 19px),
        repeating-linear-gradient(45deg, rgba(92, 232, 242, 0.11) 0 1px, transparent 1px 19px),
        var(--fcms-bg-2) !important;
}

.fcms-interface-v2 .fcms-planning-legend {
    gap: 0.45rem 1rem;
}

.fcms-interface-v2 .fcms-planning-legend-swatch {
    width: 1.5rem;
    height: 0.78rem;
    background-color: var(--fcms-v2-rail) !important;
}

.fcms-interface-v2 .fcms-planning-legend-swatch.needs-staff {
    border-color: rgba(255, 214, 82, 0.48) !important;
    background:
        repeating-linear-gradient(135deg, rgba(255, 214, 82, 0.52) 0 1px, transparent 1px 7px),
        var(--fcms-v2-rail) !important;
}

.fcms-interface-v2 .fcms-planning-legend-swatch.self-open {
    border-color: rgba(92, 232, 242, 0.48) !important;
    background:
        repeating-linear-gradient(45deg, rgba(92, 232, 242, 0.48) 0 1px, transparent 1px 7px),
        var(--fcms-v2-rail) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-planning-legend-swatch.needs-staff {
    background:
        repeating-linear-gradient(135deg, rgba(145, 96, 8, 0.46) 0 1px, transparent 1px 7px),
        #ffffff !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-planning-legend-swatch.self-open {
    background:
        repeating-linear-gradient(45deg, rgba(var(--fcms-primary-rgb), 0.5) 0 1px, transparent 1px 7px),
        #ffffff !important;
}

/* Footer recedes behind the operational surface. */
.fcms-interface-v2 .fcms-footer {
    color: var(--fcms-v2-muted);
    background: var(--fcms-v2-rail) !important;
    border-top: 1px solid var(--fcms-v2-line) !important;
}

.fcms-interface-v2 .fcms-footer-shell {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.fcms-interface-v2 .fcms-footer a {
    color: var(--fcms-v2-muted);
    text-underline-offset: 0.18em;
}

.fcms-interface-v2 .fcms-footer a:hover {
    color: var(--fcms-v2-ink);
}

/* Shared page resilience: keep dense operational content inside its container. */
.fcms-interface-v2 main :where(
    .row > [class*="col-"],
    .card-body,
    .modal-body,
    .fcms-page-actions,
    form,
    fieldset
) {
    min-width: 0;
}

.fcms-interface-v2 .table-responsive {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.fcms-interface-v2 .table-responsive > .table {
    margin-bottom: 0;
}

.fcms-interface-v2 :where(.form-control, .form-select, .input-group, .btn-group) {
    max-width: 100%;
}

.fcms-interface-v2 .form-label {
    line-height: 1.3;
}

.fcms-interface-v2 form :where(.border.rounded, fieldset) {
    border-color: var(--fcms-v2-line) !important;
}

.fcms-interface-v2 form .border.rounded.p-3 {
    background: color-mix(in srgb, var(--fcms-v2-rail) 72%, transparent);
    border-radius: var(--fcms-v2-radius-lg) !important;
}

.fcms-interface-v2 .fcms-scanner-viewport {
    min-height: 320px;
}

.fcms-interface-v2 .fcms-live-results {
    z-index: 1050;
    max-height: 320px;
    overflow: auto;
}

.fcms-interface-v2 .fcms-content-prewrap {
    white-space: pre-wrap;
    overflow-wrap: break-word;
}

.fcms-interface-v2 .fcms-control-width-sm {
    width: min(100%, 13.75rem);
}

.fcms-interface-v2 .fcms-control-width-md {
    width: min(100%, 16.25rem);
}

.fcms-interface-v2 .fcms-control-step {
    width: 5.75rem;
}

.fcms-interface-v2 .fcms-brand-preview {
    width: auto;
    max-width: 100%;
    max-height: 64px;
}

.fcms-interface-v2 .fcms-pole-icon-preview {
    width: auto;
    max-width: 100%;
    max-height: 40px;
}

/* Light theme is a low-glare daytime workspace, not a color inversion. */
html[data-fcms-color-mode="light"] body.fcms-interface-v2 {
    color: var(--fcms-v2-ink);
    background: var(--fcms-v2-canvas) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-topbar {
    color: var(--fcms-v2-muted) !important;
    background: #ccd7dd !important;
    border-bottom-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-topbar .fcms-live-clock {
    color: #344b5a !important;
    background: transparent !important;
    border: 0 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-topbar .fcms-live-clock-time {
    color: #172a36 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-topbar .fcms-live-clock i {
    color: #1c6470 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-topbar .fcms-live-clock-dot {
    color: #71828d !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-navbar {
    background: #e7ecee !important;
    border-bottom-color: var(--fcms-v2-line-strong) !important;
    box-shadow: 0 7px 20px rgba(31, 46, 57, 0.1) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-announcement-bar {
    color: #2d4654 !important;
    background: #d9e4e7 !important;
    border-bottom-color: var(--fcms-v2-line) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(
    .fcms-card,
    .card,
    .modal-content,
    .offcanvas,
    .fcms-stat-card,
    .fcms-info-tile,
    .fcms-detail-cell,
    .fcms-dashboard-next-shift,
    .fcms-my-next-shift,
    .fcms-my-shift-row,
    .fcms-profile-add-panel,
    .fcms-profile-pole-item,
    .fcms-profile-hours-panel,
    .fcms-sso-review-card,
    .fcms-altcha-box,
    .fcms-planning-legend,
    .fcms-drop-summary,
    .fcms-lost-found-card
) {
    color: var(--fcms-v2-ink) !important;
    background: var(--fcms-v2-surface) !important;
    border-color: var(--fcms-v2-line-strong) !important;
    box-shadow: none !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(
    .fcms-stat-card,
    .fcms-info-tile,
    .fcms-detail-cell,
    .fcms-my-shift-row,
    .fcms-profile-pole-item
) {
    background: var(--fcms-v2-surface-raised) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(
    .card-header,
    .modal-header,
    .modal-footer,
    .fcms-day-header,
    .fcms-cascade-day-head,
    .fcms-mobile-day-head,
    .fcms-day-poles-head
) {
    color: #31404d !important;
    background: var(--fcms-v2-surface-raised) !important;
    border-color: var(--fcms-v2-line) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
    color: #202c37 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.text-secondary, .text-muted, small, .small, .fcms-stat-card .label) {
    color: var(--fcms-v2-muted) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .navbar .nav-link {
    color: #405563 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .navbar .nav-link:hover,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .navbar .nav-link:focus-visible {
    color: #24313d !important;
    background: #e4eaed !important;
    border-color: rgba(73, 91, 105, 0.24) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .navbar .nav-link.active {
    color: #183c44 !important;
    background: color-mix(in srgb, var(--fcms-primary) 13%, #e1e8eb) !important;
    border-color: color-mix(in srgb, var(--fcms-primary) 42%, #899ba5) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.dropdown-menu, .fcms-quick-actions-menu, .fcms-lang-menu) {
    color: var(--fcms-v2-ink) !important;
    background: #eef2f1 !important;
    border-color: var(--fcms-v2-line-strong) !important;
    box-shadow: 0 16px 36px rgba(31, 46, 57, 0.18) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .dropdown-item {
    color: #354552 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .dropdown-item:hover,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .dropdown-item:focus,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .dropdown-item.active {
    color: #183c44 !important;
    background: color-mix(in srgb, var(--fcms-primary) 10%, #e9eef0) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.form-control, .form-select, .input-group-text) {
    color: var(--fcms-v2-ink) !important;
    background-color: #f5f7f6 !important;
    border-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.form-control, .form-select):focus {
    color: #1e2a34 !important;
    background-color: #fcfdfc !important;
    border-color: color-mix(in srgb, var(--fcms-primary) 62%, #667983) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .form-control::placeholder {
    color: #77858f;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.btn-outline-light, .btn-outline-secondary, .btn-secondary) {
    color: #354552 !important;
    background: #edf1f3 !important;
    border-color: rgba(73, 91, 105, 0.34) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.btn-outline-light, .btn-outline-secondary, .btn-secondary):hover {
    color: #24313d !important;
    background: #e2e8eb !important;
    border-color: rgba(73, 91, 105, 0.48) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .btn-outline-info {
    color: #17606c !important;
    background: #edf5f5 !important;
    border-color: color-mix(in srgb, var(--fcms-primary) 48%, #8fa1aa) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .btn-outline-warning {
    color: #704b0d !important;
    background: #f7f1e5 !important;
    border-color: rgba(151, 109, 36, 0.46) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .btn-outline-danger {
    color: #8a3440 !important;
    background: #f8edef !important;
    border-color: rgba(160, 70, 82, 0.42) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .btn-danger {
    color: #ffffff !important;
    background: #a94653 !important;
    border-color: #963c48 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .btn-warning {
    color: #3e321b !important;
    background: #d9b665 !important;
    border-color: #c49e49 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.badge.text-bg-secondary, .text-bg-secondary) {
    color: #43535f !important;
    background: #dfe5e8 !important;
    border-color: rgba(73, 91, 105, 0.22) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.badge.text-bg-info, .text-bg-info) {
    color: #285661 !important;
    background: #dbeaec !important;
    border-color: rgba(var(--fcms-primary-rgb), 0.26) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.badge.text-bg-success, .text-bg-success) {
    color: #315f4c !important;
    background: #dfece5 !important;
    border-color: rgba(56, 121, 91, 0.26) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.badge.text-bg-warning, .text-bg-warning) {
    color: #674b19 !important;
    background: #eee2c7 !important;
    border-color: rgba(151, 109, 36, 0.28) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(.badge.text-bg-danger, .text-bg-danger) {
    color: #7e3440 !important;
    background: #efdadd !important;
    border-color: rgba(160, 70, 82, 0.28) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-table-wrap,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .table-responsive {
    background: var(--fcms-v2-surface) !important;
    border-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .table,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .table.table-dark {
    --bs-table-bg: #eef2f1;
    --bs-table-color: #2b3945;
    --bs-table-border-color: rgba(50, 70, 85, 0.25);
    --bs-table-striped-bg: #e4eaed;
    --bs-table-striped-color: #2b3945;
    --bs-table-hover-bg: color-mix(in srgb, var(--fcms-primary) 7%, #edf1f2);
    --bs-table-hover-color: #1e2a34;
    color: #2b3945 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .table thead th {
    color: #405563 !important;
    background: #dce4e8 !important;
    border-bottom-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-table-cards tbody tr,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-table-cards tbody td,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-table-cards tbody th,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-lost-found-meta > div {
    color: #2b3945 !important;
    background: #e8edef !important;
    border-color: var(--fcms-v2-line) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-table-cards :where(td, th)::before {
    color: #4d6270 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .alert {
    color: #33434f !important;
    background: #e2e9ec !important;
    border-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .alert-info {
    color: #285661 !important;
    background: #e6f0f1 !important;
    border-color: rgba(var(--fcms-primary-rgb), 0.34) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .alert-success {
    color: #315f4c !important;
    background: #e8f1ec !important;
    border-color: rgba(56, 121, 91, 0.34) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .alert-warning {
    color: #70521e !important;
    background: #f4eee2 !important;
    border-color: rgba(151, 109, 36, 0.36) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .alert-danger {
    color: #843743 !important;
    background: #f5e9eb !important;
    border-color: rgba(160, 70, 82, 0.34) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 :where(
    .fcms-time-axis,
    .fcms-day-column,
    .fcms-cascade-day,
    .fcms-mobile-day,
    .fcms-day-body,
    .fcms-cascade-timeline
) {
    color: #2b3945 !important;
    background: var(--fcms-v2-surface) !important;
    border-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-time-axis .fcms-day-body,
html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-time-axis .fcms-hour-label {
    color: #465d6c !important;
    background: var(--fcms-v2-rail) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-footer {
    color: var(--fcms-v2-muted) !important;
    background: #ccd7dd !important;
    border-top-color: var(--fcms-v2-line-strong) !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-footer-title {
    color: #2b3945 !important;
}

html[data-fcms-color-mode="light"] .fcms-interface-v2 .fcms-footer a,
html[data-fcms-color-mode="light"] .fcms-interface-v2 main a:not(.btn):not(.dropdown-item):not(.nav-link) {
    color: color-mix(in srgb, var(--fcms-primary) 70%, #294c55);
}

/* Mobile is an equal-priority operational surface. */
@media (max-width: 991.98px) {
    :root {
        --fcms-v2-control-h: 42px;
    }

    .fcms-interface-v2 main.container {
        width: min(100% - 1.25rem, 1440px);
    }

    .fcms-interface-v2 .navbar-collapse {
        margin-top: 0.55rem;
        padding: 0.55rem;
        background: var(--fcms-v2-surface);
        border: 1px solid var(--fcms-v2-line-strong);
        border-radius: var(--fcms-v2-radius-lg);
        box-shadow: var(--fcms-v2-shadow);
        max-height: min(70dvh, 34rem);
        overflow-y: auto;
    }

    .fcms-interface-v2 .navbar .nav-link {
        width: 100%;
        min-height: 44px;
        padding-inline: 0.8rem !important;
    }

    .fcms-interface-v2 .dropdown-item {
        min-height: 44px;
    }

    /* Only the collapsed header navigation belongs in document flow.
       Page action menus must float, otherwise opening them stretches the page. */
    .fcms-interface-v2 main .dropdown {
        position: relative;
    }

    .fcms-interface-v2 main .dropdown-menu,
    .fcms-interface-v2 main .dropdown-menu[data-bs-popper] {
        position: absolute !important;
        z-index: 1085;
        max-width: min(24rem, calc(100vw - 1.5rem));
        max-height: min(70dvh, 28rem);
        margin-top: 0.3rem;
        overflow-x: hidden;
        overflow-y: auto;
        box-shadow: var(--fcms-v2-shadow) !important;
    }

    .fcms-interface-v2 main .dropdown-menu-end,
    .fcms-interface-v2 main .dropdown-menu-end[data-bs-popper] {
        right: 0;
        left: auto;
    }

    .fcms-interface-v2 main .dropdown:has(> .dropdown-menu.show) {
        z-index: 1085;
    }

    .fcms-interface-v2 main .fcms-page-actions .dropdown-menu.w-100 {
        width: 100% !important;
        min-width: 100%;
    }

    .fcms-interface-v2 .fcms-table-cards tbody tr:has(.dropdown),
    .fcms-interface-v2 .fcms-table-cards .fcms-table-actions-cell:has(.dropdown) {
        overflow: visible !important;
    }

    /* Keep the actual mobile navigation expanded inside its panel. */
    .fcms-interface-v2 .fcms-navbar .navbar-collapse .dropdown-menu.show {
        position: static !important;
        inset: auto !important;
        width: 100%;
        max-width: none;
        max-height: none;
        margin: 0.25rem 0 0.45rem;
        overflow: visible;
        box-shadow: none !important;
        transform: none !important;
    }

    /* The live-status picker sits in a very narrow topbar cell. Anchor its
       menu to the viewport so every status remains reachable on small screens. */
    .fcms-interface-v2 .fcms-topbar-status-menu,
    .fcms-interface-v2 .fcms-topbar-status-menu.dropdown-menu-end,
    .fcms-interface-v2 .fcms-topbar-status-menu[data-bs-popper] {
        position: fixed !important;
        top: calc(var(--fcms-topbar-h) + 0.35rem) !important;
        right: 0.5rem !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        width: min(18rem, calc(100vw - 1rem));
        min-width: 0;
        max-width: calc(100vw - 1rem);
        max-height: calc(100dvh - var(--fcms-topbar-h) - 1rem);
        margin: 0;
        overflow-x: hidden;
        overflow-y: auto;
        box-sizing: border-box;
        z-index: 1095;
        box-shadow: var(--fcms-v2-shadow) !important;
    }

    .fcms-interface-v2 .fcms-topbar-status-menu .dropdown-item {
        width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .fcms-interface-v2 .fcms-quick-actions-toggle {
        width: 44px;
        height: 44px;
        border-radius: var(--fcms-v2-radius) !important;
        box-shadow: var(--fcms-v2-shadow) !important;
    }
}

@media (max-width: 767.98px) {
    .fcms-interface-v2 main.container {
        padding-top: 0.9rem !important;
        padding-bottom: 1.2rem !important;
    }

    .fcms-interface-v2 main > .fcms-page-actions,
    .fcms-interface-v2 main > .d-flex.justify-content-between.align-items-center.mb-3 {
        align-items: flex-start !important;
        gap: 0.75rem;
    }

    .fcms-interface-v2 .card-body {
        padding: 0.82rem;
    }

    .fcms-interface-v2 .table-responsive:not(.fcms-table-cards) {
        border: 1px solid var(--fcms-v2-line);
        border-radius: var(--fcms-v2-radius);
    }

    .fcms-interface-v2 .table-responsive:not(.fcms-table-cards) > .table {
        min-width: 640px;
    }

    .fcms-interface-v2 :where(.input-group, .fcms-page-actions-buttons, .modal-footer) {
        flex-wrap: wrap;
    }

    .fcms-interface-v2 .input-group > :where(.form-control, .form-select) {
        min-width: min(11rem, 100%);
    }

    .fcms-interface-v2 .fcms-my-shift-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .fcms-interface-v2 .fcms-my-shift-actions {
        justify-content: flex-start;
        align-self: stretch;
    }

    .fcms-interface-v2 .fcms-table-cards {
        border: 0 !important;
        background: transparent;
    }

    .fcms-interface-v2 .fcms-table-cards table,
    .fcms-interface-v2 .fcms-table-cards tbody {
        display: block;
    }

    .fcms-interface-v2 .fcms-table-cards tbody tr {
        background: var(--fcms-v2-surface) !important;
        border: 1px solid var(--fcms-v2-line) !important;
        border-radius: var(--fcms-v2-radius) !important;
        box-shadow: none !important;
    }

    .fcms-interface-v2 .fcms-table-cards tbody tr:hover {
        border-color: var(--fcms-v2-line-strong) !important;
    }

    /* Shift summaries need the full row width: nesting card columns makes
       their label/value grids collapse into letter-wide fragments on phones. */
    .fcms-interface-v2 :where(
        .fcms-dashboard-shifts-table-wrap,
        .fcms-profile-shifts-table-wrap
    ) tbody tr {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .fcms-interface-v2 :where(
        .fcms-dashboard-shifts-table-wrap,
        .fcms-profile-shifts-table-wrap
    ) tbody td {
        width: 100% !important;
        grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr) !important;
        align-items: center;
    }

    .fcms-interface-v2 :where(
        .fcms-dashboard-shifts-table-wrap,
        .fcms-profile-shifts-table-wrap
    ) tbody td > * {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .fcms-interface-v2 .fcms-dashboard-shifts-table-wrap tbody td:first-child .btn-link {
        width: 100%;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .fcms-interface-v2 .fcms-dashboard-shifts-table-wrap .fcms-table-actions-cell {
        grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr) !important;
    }

    .fcms-interface-v2 .fcms-dashboard-shifts-table-wrap .fcms-table-actions-cell .btn {
        width: 100% !important;
        min-width: 0;
    }

    .fcms-interface-v2 .fcms-table-cards tbody td {
        min-height: 38px;
        padding: 0.52rem 0.66rem !important;
        border-bottom: 1px solid var(--fcms-v2-line) !important;
    }

    .fcms-interface-v2 .fcms-table-cards tbody td:last-child {
        border-bottom: 0 !important;
    }

    .fcms-interface-v2 .fcms-table-cards tbody td::before {
        color: var(--fcms-v2-muted) !important;
        font-size: 0.68rem;
        font-weight: 740;
        letter-spacing: 0.035em;
        text-transform: uppercase;
    }

    .fcms-interface-v2 .fcms-page-actions-buttons .btn,
    .fcms-interface-v2 .fcms-page-actions-buttons form {
        flex: 1 1 auto;
    }

    .fcms-interface-v2 .fcms-footer-line,
    .fcms-interface-v2 .fcms-footer-group {
        width: 100%;
        justify-items: center;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .fcms-interface-v2 .fcms-footer-line {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 0.85rem;
    }

    .fcms-interface-v2 .fcms-footer-group {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.3rem 0.75rem;
    }

    .fcms-interface-v2 .fcms-footer-group-start,
    .fcms-interface-v2 .fcms-footer-group-center,
    .fcms-interface-v2 .fcms-footer-group-end {
        width: auto;
        max-width: 100%;
        justify-content: center;
        text-align: center;
    }

    .fcms-interface-v2 .fcms-footer-group > * {
        width: auto;
        max-width: 100%;
        text-align: center;
    }

    .fcms-interface-v2 .fcms-footer-group > * + *::before {
        content: none;
    }

    .fcms-interface-v2 .fcms-footer a {
        width: auto !important;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 575.98px) {
    .fcms-interface-v2 .fcms-topbar .fcms-live-clock {
        padding-inline: 0.2rem !important;
        gap: 0.22rem !important;
        font-size: 0.7rem !important;
        letter-spacing: 0 !important;
    }

    .fcms-interface-v2 .fcms-topbar .fcms-live-clock i {
        font-size: 0.72rem !important;
    }

    .fcms-interface-v2 .fcms-shift-modal-header {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 0.7rem;
    }

    .fcms-interface-v2 .fcms-shift-modal-title {
        width: 100%;
        min-width: 0;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .fcms-interface-v2 .fcms-shift-modal-title .modal-title,
    .fcms-interface-v2 .fcms-shift-modal-title .fcms-pole-label,
    .fcms-interface-v2 .fcms-shift-modal-title .fcms-pole-label > span:last-child {
        max-width: 100%;
        min-width: 0;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .fcms-interface-v2 .fcms-shift-modal-actions {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }

    .fcms-interface-v2 .fcms-shift-modal-actions > .btn {
        margin-right: auto;
    }

    .fcms-interface-v2 main.container {
        width: min(100% - 0.9rem, 1440px);
    }

    .fcms-interface-v2 :where(.fcms-control-width-sm, .fcms-control-width-md) {
        width: 100%;
    }

    .fcms-interface-v2 .fcms-inventory-quick-access .card-body {
        align-items: flex-start !important;
    }

    .fcms-interface-v2 .card-body > form .d-flex.gap-2:not(.form-check) {
        flex-wrap: wrap;
    }

    .fcms-interface-v2 main h1.h3,
    .fcms-interface-v2 main h1.h4,
    .fcms-interface-v2 main h1.h5 {
        font-size: 1.2rem;
    }

    .fcms-interface-v2 .fcms-stat-card {
        min-height: 78px;
    }

    .fcms-interface-v2 .fcms-login-shell > [class*="col-"] {
        padding-inline: 0;
    }

    .fcms-interface-v2 .fcms-auth-card .card-body {
        padding: 1.15rem !important;
    }

    .fcms-interface-v2 .fcms-footer {
        padding-block: 0.7rem !important;
    }

    .fcms-interface-v2 .fcms-footer-group {
        gap: 0.25rem 0.65rem;
    }

    .fcms-interface-v2 .modal-dialog {
        margin: 0.45rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fcms-interface-v2 *,
    .fcms-interface-v2 *::before,
    .fcms-interface-v2 *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (forced-colors: active) {
    .fcms-interface-v2 .navbar .nav-link.active,
    .fcms-interface-v2 .nav-pills .nav-link.active,
    .fcms-interface-v2 .badge {
        border: 1px solid currentColor !important;
    }
}
