﻿/* Portal components â€” SS2 Operational Clarity */

body.oc-theme .btn.btn-primary,
body.oc-login .btn.btn-primary {
    background: var(--oc-brand) !important;
    border-color: var(--oc-brand) !important;
    color: #fff !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

body.oc-theme .btn.btn-primary:hover,
body.oc-login .btn.btn-primary:hover {
    background: var(--oc-brand-hover) !important;
    border-color: var(--oc-brand-hover) !important;
}

/* Header quote action buttons */
body.oc-theme #search-container .btn.oc-btn-quote {
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin: 0 !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 14px !important;
    white-space: nowrap !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
}

body.oc-theme #search-container .btn.oc-btn-quote i {
    font-size: 14px;
    line-height: 1;
}

body.oc-theme #search-container .btn.oc-btn-quote-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.18) inset, 0 4px 10px rgba(11, 110, 79, 0.28) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote-primary:hover {
    background: linear-gradient(180deg, #14a678 0%, #095c42 100%) !important;
    border-color: #084c37 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 8px 16px rgba(11, 110, 79, 0.32) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(11, 110, 79, 0.25) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(11, 110, 79, 0.14) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote-secondary:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
}

body.oc-theme #search-container .btn.oc-btn-quote:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.22) !important;
}

/* Legacy secondary (kept for compatibility) */
body.oc-theme #search-container .btn.oc-btn-secondary,
body.oc-theme #search-container a.oc-btn-secondary {
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    height: 34px !important;
    padding: 0 12px !important;
    white-space: nowrap !important;
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    border-radius: 6px !important;
    color: var(--oc-brand) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    line-height: 1 !important;
}

body.oc-theme #search-container .btn.oc-btn-secondary:hover,
body.oc-theme #search-container a.oc-btn-secondary:hover {
    background: #eaf6f0 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

/* Dashboard */
body.oc-theme .oc-dashboard {
    display: grid !important;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

body.oc-theme .oc-side-card,
body.oc-theme .oc-main-card {
    background: var(--oc-surface);
    border: 1px solid var(--oc-line);
    border-radius: var(--oc-radius);
    box-shadow: var(--oc-shadow);
}

body.oc-theme .oc-side-card {
    padding: 16px;
}

/* Partner logo panel inside left sidebar */
body.oc-theme .oc-partner-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    margin: 0 0 14px;
    padding: 14px 12px;
    background: #f8fafc;
    border: 1px solid var(--oc-line);
    border-radius: var(--oc-radius);
}

body.oc-theme .oc-partner-panel .oc-partner-label {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--oc-muted);
    white-space: normal;
}

body.oc-theme .oc-partner-panel #customerlogo,
body.oc-theme .oc-partner-panel .oc-partner-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 68px;
    padding: 12px 14px;
    box-sizing: border-box;
    background: #d4dbd7;
    border: 1px solid #c0c9c4;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(12, 74, 62, 0.04);
}

body.oc-theme .oc-partner-panel #customerlogo img,
body.oc-theme .oc-partner-panel #customerlogo img.oc-customer-logo {
    height: auto !important;
    width: auto !important;
    max-width: 100% !important;
    max-height: 56px !important;
    object-fit: contain !important;
    object-position: center center;
    display: block;
    margin: 0 auto;
    padding: 0;
    background: transparent;
    border: 0;
    box-sizing: border-box;
    /* Soft outline so white logo sections remain visible on light plate */
    filter:
        drop-shadow(0 0 0.6px rgba(11, 61, 49, 0.35))
        drop-shadow(0 1px 1px rgba(11, 61, 49, 0.18));
}

body.oc-theme .oc-partner-panel #customerlogo .coNameLabel {
    display: block;
    width: 100%;
    text-align: center;
    padding: 6px 4px;
    color: #0b3d31;
    font-size: 13px;
    font-weight: 700;
    background: transparent;
    border: 0;
}

body.oc-theme .oc-side-card .table-panel {
    border: 0 !important;
    background: transparent !important;
    width: 100% !important;
    margin: 0 !important;
    height: auto !important;
    text-align: left !important;
}

body.oc-theme .oc-side-card h4 {
    margin: 0 0 6px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--oc-muted);
    font-weight: 700;
}

body.oc-theme #custName,
body.oc-theme #custName.oc-customer-name {
    border: 0 !important;
    background: transparent !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    color: var(--oc-ink) !important;
    width: 100% !important;
    text-align: left !important;
    padding: 0 0 12px !important;
    margin: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    cursor: default;
}

body.oc-theme .oc-kpi-grid {
    display: grid;
    gap: 8px;
    margin: 0 0 4px;
}

body.oc-theme .oc-kpi {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f8fafc;
    padding: 10px 12px;
    box-shadow: none;
    cursor: default;
    pointer-events: none;
    user-select: none;
    transition: none;
}

body.oc-theme .oc-kpi:hover {
    transform: none;
    border-color: #e5e7eb;
    box-shadow: none;
}

body.oc-theme .oc-kpi-icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #fff;
    opacity: 0.92;
    box-shadow: none;
}

body.oc-theme .oc-kpi-sites .oc-kpi-icon {
    background: #0b6e4f;
}

body.oc-theme .oc-kpi-onsite .oc-kpi-icon {
    background: #0284c7;
}

body.oc-theme .oc-kpi-qty .oc-kpi-icon {
    background: #d97706;
}

body.oc-theme .oc-kpi-body {
    min-width: 0;
    flex: 1;
}

body.oc-theme .oc-kpi small {
    display: block;
    color: #6b7280;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
}

body.oc-theme .oc-kpi strong {
    display: block;
    margin-top: 2px;
    font-family: var(--oc-mono);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.1;
    color: #374151;
}

body.oc-theme .oc-side-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0 12px;
    color: var(--oc-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.oc-theme .oc-side-divider::before,
body.oc-theme .oc-side-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #d1d5db;
}

body.oc-theme .oc-side-divider span {
    flex-shrink: 0;
}

body.oc-theme .oc-side-actions {
    display: grid;
    gap: 10px;
}

body.oc-theme .oc-side-actions .btn.oc-side-action {
    width: 100% !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    text-align: left !important;
    height: auto !important;
    min-height: 52px;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    border: 1px solid #c9dbd2 !important;
    background: linear-gradient(180deg, #ffffff 0%, #f4faf7 100%) !important;
    color: var(--oc-ink) !important;
    box-shadow: 0 2px 6px rgba(12, 74, 62, 0.08) !important;
    float: none !important;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, background 0.15s ease !important;
}

body.oc-theme .oc-side-actions .btn.oc-side-action:hover {
    transform: translateY(-2px);
    border-color: var(--oc-brand) !important;
    background: #ffffff !important;
    box-shadow: 0 10px 20px rgba(11, 110, 79, 0.16) !important;
    color: var(--oc-ink) !important;
}

body.oc-theme .oc-side-actions .btn.oc-side-action:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(12, 74, 62, 0.1) !important;
}

body.oc-theme .oc-side-actions .btn.oc-side-action:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.22), 0 8px 16px rgba(11, 110, 79, 0.12) !important;
}

body.oc-theme .oc-side-action-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
}

body.oc-theme .oc-side-action-weight .oc-side-action-icon {
    background: linear-gradient(145deg, #12b98a, #0b6e4f);
}

body.oc-theme .oc-side-action-waste .oc-side-action-icon {
    background: linear-gradient(145deg, #34d399, #059669);
}

body.oc-theme .oc-side-action-summary .oc-side-action-icon {
    background: linear-gradient(145deg, #f59e0b, #b45309);
}

body.oc-theme .oc-side-action-sustain .oc-side-action-icon {
    background: linear-gradient(145deg, #34d399, #0b6e4f);
}

body.oc-theme a.btn.oc-side-action-sustain {
    text-decoration: none !important;
    color: inherit !important;
}

body.oc-theme .oc-side-action-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

body.oc-theme .oc-side-action-text strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--oc-ink);
    line-height: 1.2;
}

body.oc-theme .oc-side-action-text small {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--oc-muted);
    text-transform: none;
    letter-spacing: 0;
}

body.oc-theme .oc-side-action-chevron {
    color: #7aa894;
    font-size: 16px;
    transition: transform 0.15s ease, color 0.15s ease;
}

body.oc-theme .oc-side-actions .btn.oc-side-action:hover .oc-side-action-chevron {
    color: var(--oc-brand);
    transform: translateX(3px);
}

/* Legacy flat primary side buttons (fallback) */
body.oc-theme .oc-side-actions .btn.btn-primary:not(.oc-side-action) {
    width: 100% !important;
    margin: 0 !important;
    text-align: left !important;
    justify-content: flex-start !important;
    background: #fff !important;
    color: var(--oc-ink) !important;
    border: 1px solid var(--oc-line) !important;
    height: auto !important;
    min-height: 38px;
    padding: 9px 12px !important;
    font-size: 12px !important;
    float: none !important;
    border-radius: 6px !important;
}

body.oc-theme .oc-side-actions .btn.btn-primary:not(.oc-side-action):hover {
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand) !important;
    background: #ecfdf5 !important;
}

body.oc-theme .oc-main-card {
    padding: 14px;
    min-width: 0;
}

body.oc-theme .oc-toolbar {
    display: block !important;
    margin-bottom: 12px;
}

body.oc-theme .oc-filters-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    width: 100%;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid var(--oc-line);
    border-radius: 10px;
}

body.oc-theme .oc-global-search {
    margin-left: auto;
}

body.oc-theme .oc-filter-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--oc-ink);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
}

body.oc-theme .oc-filter-check input.chkfilter {
    margin: 0 !important;
    width: 16px !important;
    height: 16px !important;
    accent-color: var(--oc-brand);
    cursor: pointer;
}

body.oc-theme .oc-dt-slot {
    display: flex;
    align-items: center;
}

body.oc-theme .oc-dt-slot-search {
    margin-left: auto;
}

body.oc-theme .oc-page-length,
body.oc-theme .oc-global-search {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--oc-muted);
    font-size: 12px;
    font-weight: 600;
}

body.oc-theme .oc-global-search {
    margin-left: auto;
}

body.oc-theme .oc-page-length select,
body.oc-theme .oc-global-search input {
    height: 34px;
    margin: 0;
    padding: 0 10px;
    border: 1px solid #c9dbd2;
    border-radius: 8px;
    background: #fff;
    color: var(--oc-ink);
    font-size: 12px;
    font-weight: 600;
    box-shadow: none;
}

body.oc-theme .oc-global-search input {
    min-width: 200px;
}

body.oc-theme .oc-page-length select:focus,
body.oc-theme .oc-global-search input:focus {
    outline: none;
    border-color: var(--oc-brand);
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.12);
}

body.oc-theme .oc-filters {
    width: auto !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

body.oc-theme .oc-filters td {
    padding: 0 8px 0 0 !important;
    border: 0 !important;
    color: var(--oc-muted) !important;
    font-size: 13px !important;
    font-weight: 500;
    vertical-align: middle;
    text-transform: none;
    letter-spacing: 0;
}

body.oc-theme .oc-filters input.chkfilter {
    margin: 0 !important;
    width: 16px !important;
    height: 16px !important;
    accent-color: var(--oc-brand);
}

body.oc-theme .oc-toolbar-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

body.oc-theme .oc-filters-bar .dataTables_length,
body.oc-theme .oc-filters-bar .dataTables_filter {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}

body.oc-theme .oc-filters-bar .dataTables_length label,
body.oc-theme .oc-filters-bar .dataTables_filter label {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
    color: var(--oc-muted) !important;
    font-size: 12px !important;
    font-weight: 600;
}

body.oc-theme .oc-filters-bar .dataTables_length select,
body.oc-theme .oc-filters-bar .dataTables_filter input {
    height: 34px !important;
    margin: 0 !important;
    padding: 0 10px !important;
    border: 1px solid #c9dbd2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--oc-ink) !important;
    box-shadow: none !important;
}

body.oc-theme .oc-filters-bar .dataTables_filter input {
    min-width: 180px;
}

body.oc-theme .oc-filters-bar .dataTables_length select:focus,
body.oc-theme .oc-filters-bar .dataTables_filter input:focus {
    outline: none !important;
    border-color: var(--oc-brand) !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.12) !important;
}

body.oc-theme .oc-btn-outline {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    height: 34px !important;
    padding: 0 12px !important;
    border-radius: 6px !important;
    border: 1px solid var(--oc-line) !important;
    background: #fff !important;
    color: var(--oc-ink) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

body.oc-theme .oc-btn-outline:hover {
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand) !important;
    background: #ecfdf5 !important;
}

body.oc-theme #SearchInv {
    width: 170px !important;
    height: 34px !important;
    border: 1px solid var(--oc-line) !important;
    border-radius: 6px !important;
    padding: 5px 10px !important;
    font-size: 12px !important;
    background: #fff !important;
    color: var(--oc-ink) !important;
    position: static !important;
}

body.oc-theme .oc-toolbar-actions .btn-search {
    height: 34px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
}

body.oc-theme .oc-main-card .table-panel,
body.oc-theme #tablecontainer.table-panel {
    border: 1px solid var(--oc-line) !important;
    border-radius: var(--oc-radius);
    overflow: hidden;
    background: #fff !important;
    width: 100% !important;
    margin: 0 !important;
}

/* Table â€” SS2 dense dark header */
body.oc-theme table.table-natwaste,
body.oc-theme table.table-natwaste.dataTable {
    border-collapse: collapse !important;
    font-size: 13px !important;
    width: 100% !important;
    margin: 0 !important;
    background: #fff !important;
}

body.oc-theme table.table-natwaste thead tr.bg-natwaste,
body.oc-theme table.table-natwaste thead th,
body.oc-theme .bg-natwaste,
body.oc-theme table.dataTable thead th,
body.oc-theme .dataTables_scrollHead,
body.oc-theme .dataTables_scrollHeadInner,
body.oc-theme .dataTables_scrollHead table,
body.oc-theme .dataTables_scrollHead th {
    background: var(--oc-header) !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 0 !important;
    vertical-align: middle !important;
}

body.oc-theme table.table-natwaste td,
body.oc-theme table.table-natwaste th {
    padding: 10px 12px !important;
    border-bottom: 1px solid var(--oc-line) !important;
    border-top: 0 !important;
    vertical-align: middle !important;
}

body.oc-theme table.table-natwaste tbody tr:nth-child(even) > td {
    background: #f8fafc !important;
}

body.oc-theme table.table-natwaste tbody tr:hover > td {
    background: #eef8f2 !important;
}

body.oc-theme table.table-natwaste tbody td.dt-body-center,
body.oc-theme table.table-natwaste tbody td.oc-mono {
    font-family: var(--oc-mono);
    font-size: 12px;
    font-weight: 600;
}

/* Status pills â€” SS2 */
body.oc-theme .oc-pill {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    font-family: var(--oc-font);
    line-height: 1.2;
}

body.oc-theme .oc-pill-live {
    background: #dcfce7;
    color: #166534;
}

body.oc-theme .oc-pill-hold {
    background: #fef3c7;
    color: #92400e;
}

/* Row action mini outline buttons â€” SS2 */
body.oc-theme table.table-natwaste .btn.oc-btn-mini,
body.oc-theme table.table-natwaste a.btn.oc-btn-mini {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 4px 0 0 !important;
    padding: 4px 8px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    float: none !important;
    border-radius: 4px !important;
    white-space: nowrap;
    background: #fff !important;
    color: var(--oc-ink) !important;
    border: 1px solid var(--oc-line) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    display: inline-block !important;
}

body.oc-theme table.table-natwaste .btn.oc-btn-mini:hover,
body.oc-theme table.table-natwaste a.btn.oc-btn-mini:hover {
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand) !important;
    background: #ecfdf5 !important;
    transform: none !important;
}

/* Joined action button group */
body.oc-theme table.table-natwaste td.oc-actions-cell {
    white-space: nowrap;
    vertical-align: middle !important;
}

body.oc-theme table.table-natwaste .oc-btn-group {
    display: inline-flex;
    align-items: stretch;
    vertical-align: middle;
    border: 0;
    border-radius: 8px;
    overflow: hidden;
    background: transparent;
    box-shadow: 0 2px 6px rgba(12, 74, 62, 0.16);
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item,
body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 8px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, filter 0.15s ease, transform 0.15s ease !important;
}

body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item {
    background: linear-gradient(180deg, #1aa87a 0%, #0b6e4f 100%) !important;
    color: #ffffff !important;
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item.requestmove {
    background: linear-gradient(180deg, #d97706 0%, #b45309 100%) !important;
    color: #ffffff !important;
    border-left: 1px solid rgba(255, 255, 255, 0.28) !important;
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item i,
body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item i {
    font-size: 12px;
    line-height: 1;
    opacity: 0.95;
}

body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item:hover {
    background: linear-gradient(180deg, #17b984 0%, #095c42 100%) !important;
    color: #ffffff !important;
    filter: brightness(1.05);
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item.requestmove:hover {
    background: linear-gradient(180deg, #f59e0b 0%, #92400e 100%) !important;
    color: #ffffff !important;
    filter: brightness(1.05);
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item:active,
body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item:active {
    filter: brightness(0.96);
    transform: translateY(1px);
}

body.oc-theme table.table-natwaste .oc-btn-group .btn.oc-btn-mini.oc-btn-group-item:focus-visible,
body.oc-theme table.table-natwaste .oc-btn-group a.btn.oc-btn-mini.oc-btn-group-item:focus-visible {
    outline: 2px solid rgba(11, 110, 79, 0.45);
    outline-offset: 1px;
    z-index: 1;
}

body.oc-theme .dataTables_scroll,
body.oc-theme .dataTables_scrollBody,
body.oc-theme .dataTables_wrapper {
    background: #fff !important;
    background-image: none !important;
}

body.oc-theme .dataTables_scrollBody {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
}

body.oc-theme #tablecontainer .dataTables_wrapper {
    width: 100%;
}

body.oc-theme #SiteTable_wrapper .oc-dt-top {
    display: none !important;
}

body.oc-theme #SiteTable_wrapper .oc-dt-bottom,
body.oc-theme #SiteMovesTable_wrapper .oc-dt-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding: 12px 14px;
    border-top: 1px solid #d7e5de;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
}

body.oc-theme .dataTables_wrapper .dataTables_length,
body.oc-theme .dataTables_wrapper .dataTables_filter,
body.oc-theme .dataTables_wrapper .dataTables_info,
body.oc-theme .dataTables_wrapper .dataTables_paginate {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    color: var(--oc-muted) !important;
    font-size: 12px !important;
    font-weight: 600;
}

body.oc-theme .dataTables_wrapper .dataTables_filter label,
body.oc-theme .dataTables_wrapper .dataTables_length label {
    color: var(--oc-muted) !important;
    font-size: 12px;
    font-weight: 600;
    margin: 0;
}

body.oc-theme div.dataTables_wrapper div.dataTables_filter input,
body.oc-theme div.dataTables_wrapper div.dataTables_length select {
    border: 1px solid var(--oc-line) !important;
    border-radius: 6px !important;
    height: 32px;
    margin-left: 6px;
    padding: 0 8px;
    background: #fff !important;
    color: var(--oc-ink) !important;
}

body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    margin: 0 2px !important;
    padding: 0 10px !important;
    border: 1px solid var(--oc-line) !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: var(--oc-ink) !important;
    box-shadow: none !important;
    cursor: pointer;
}

body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--oc-brand) !important;
    border-color: var(--oc-brand) !important;
    color: #fff !important;
}

body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
body.oc-theme .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    opacity: 0.45;
    background: #fff !important;
    border-color: var(--oc-line) !important;
    color: var(--oc-muted) !important;
    cursor: default;
}

/* Column-level search row */
body.oc-theme #SiteTable thead tr.oc-col-search th {
    background: #f3f7f5 !important;
    color: var(--oc-ink) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 500 !important;
    padding: 8px 8px !important;
    border-bottom: 1px solid var(--oc-line) !important;
    vertical-align: middle !important;
}

body.oc-theme #SiteTable thead tr.oc-col-search th.sorting,
body.oc-theme #SiteTable thead tr.oc-col-search th.sorting_asc,
body.oc-theme #SiteTable thead tr.oc-col-search th.sorting_desc {
    background-image: none !important;
    cursor: default !important;
}

body.oc-theme #SiteTable thead .oc-col-filter {
    width: 100%;
    box-sizing: border-box;
    height: 30px;
    padding: 0 8px;
    border: 1px solid #c9dbd2;
    border-radius: 6px;
    background: #fff;
    color: var(--oc-ink);
    font-size: 12px;
    font-weight: 500;
}

body.oc-theme #SiteTable thead .oc-col-filter:focus {
    outline: none;
    border-color: var(--oc-brand);
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.12);
}

body.oc-theme .dataTables_wrapper .dataTables_processing {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

body.oc-theme #partialModal .modal-content,
body.oc-login #loginModal .modal-content {
    border-radius: 8px;
    border: 1px solid var(--oc-line);
    box-shadow: var(--oc-shadow);
}

body.oc-theme #partialModal .modal-dialog {
    max-width: 560px;
}

/* Medium Assign-to-Project â€” single solid shell, no outer white gutter */
body.oc-theme #partialModal .modal-dialog.oc-modal-wide,
body.oc-theme #partialModal.oc-assign-open .modal-dialog {
    max-width: 480px !important;
    width: 480px !important;
    margin: auto !important;
}

@media (max-width: 540px) {
    body.oc-theme #partialModal .modal-dialog.oc-modal-wide,
    body.oc-theme #partialModal.oc-assign-open .modal-dialog {
        width: 94vw !important;
        max-width: 94vw !important;
    }
}

/* Collapse Bootstrap chrome so only the panel shows */
body.oc-theme #partialModal.oc-assign-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

body.oc-theme #partialModal .modal-body {
    padding: 0 !important;
}

body.oc-theme #partialModal.oc-assign-open .modal-body {
    /* Site.css forces fit-content !important, which collapses the panel */
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    overflow: visible !important;
}

/* Bootstrap clips drag with overflow-x:hidden â€” unlock while assign modal is open */
body.oc-theme #partialModal.oc-modal-free-drag,
body.oc-theme #partialModal.oc-modal-free-drag.show {
    overflow: visible !important;
}

body.oc-theme #partialModal.oc-modal-free-drag .modal-dialog {
    pointer-events: auto !important;
}

/* When dragging, free the dialog from Bootstrap centering (auto margins and
   full-height flex block both break jQuery UI drag) */
body.oc-theme #partialModal .modal-dialog.oc-modal-dragging {
    margin: 0 !important;
    position: fixed !important;
    top: auto;
    left: auto;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    transform: none !important;
    -webkit-transform: none !important;
}

/* ===== Assign to Project modal ===== */
body.oc-theme .oc-assign-modal,
body.oc-theme .oc-assign-form,
body.oc-theme .oc-assign-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-assign-form {
    display: block !important;
}

body.oc-theme .oc-assign-panel {
    display: flex !important;
    flex-direction: column;
    min-height: 320px;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.16);
}

body.oc-theme .oc-assign-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
    padding: 16px 20px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
}

body.oc-theme .oc-assign-header-main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

body.oc-theme .oc-assign-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

body.oc-theme .oc-assign-header-icon i {
    font-size: 16px;
}

body.oc-theme .oc-assign-header-copy h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}

body.oc-theme .oc-assign-header-copy small {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

body.oc-theme .oc-assign-close-x {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

body.oc-theme .oc-assign-close-x:hover {
    background: rgba(255, 255, 255, 0.24);
}

body.oc-theme .oc-assign-body {
    padding: 24px 24px 12px;
    min-height: 140px;
    flex: 1 1 auto;
    width: 100%;
    box-sizing: border-box;
}

body.oc-theme .oc-assign-field {
    margin-bottom: 14px;
}

body.oc-theme .oc-assign-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 7px;
    font-size: 15px;
    font-weight: 700;
    color: var(--oc-muted);
    letter-spacing: 0.02em;
}

body.oc-theme .oc-assign-label i {
    color: var(--oc-brand);
    width: 14px;
    text-align: center;
}

body.oc-theme .oc-assign-select,
body.oc-theme .oc-assign-input {
    width: 100% !important;
    height: 42px !important;
    box-sizing: border-box;
    border: 1px solid #c9dbd2 !important;
    border-radius: 8px !important;
    padding: 0 14px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--oc-ink) !important;
    background: #fff !important;
    outline: none;
}

body.oc-theme .oc-assign-select:focus,
body.oc-theme .oc-assign-input:focus {
    border-color: var(--oc-brand) !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.14);
}

body.oc-theme .oc-assign-select option.red {
    color: #b91c1c;
    font-weight: 700;
}

body.oc-theme .oc-assign-req {
    color: #dc2626;
    font-weight: 700;
    margin-left: 1px;
}

body.oc-theme .oc-assign-field-error,
body.oc-theme .oc-assign-modal span.field-validation-error,
body.oc-theme .oc-assign-modal span[data-valmsg-for] {
    display: block;
    margin-top: 5px;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    color: #dc2626 !important;
}

body.oc-theme .oc-assign-modal span.field-validation-valid:empty,
body.oc-theme .oc-assign-modal .oc-assign-field-error:empty {
    display: none;
}

body.oc-theme .oc-assign-modal .oc-assign-invalid,
body.oc-theme .oc-assign-modal .input-validation-error,
body.oc-theme .oc-assign-modal input.oc-assign-invalid,
body.oc-theme .oc-assign-modal input.input-validation-error {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14) !important;
    background: #fff7f7 !important;
}

body.oc-theme .oc-assign-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    padding: 14px 24px 18px;
    background: #f7faf8;
    border-top: 1px solid #e4eee9;
    margin-top: auto;
}

body.oc-theme .oc-assign-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 40px !important;
    padding: 0 18px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
    float: none !important;
    white-space: nowrap;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

body.oc-theme .oc-assign-btn i {
    font-size: 13px;
}

body.oc-theme .oc-assign-btn-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(11, 110, 79, 0.22);
}

body.oc-theme .oc-assign-btn-primary:hover {
    filter: brightness(1.05);
    color: #fff !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-assign-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-assign-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

/* ===== Quote List modal ===== */
body.oc-theme #partialModal.oc-ql-open.show,
body.oc-theme #partialModal:has(.oc-ql-modal).show {
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: visible !important;
    padding: 12px !important;
}

body.oc-theme #partialModal.oc-ql-open:not(.show),
body.oc-theme #partialModal:has(.oc-ql-modal):not(.show) {
    display: none !important;
}

body.oc-theme #partialModal.oc-ql-open .modal-dialog,
body.oc-theme #partialModal:has(.oc-ql-modal).show .modal-dialog {
    max-width: 1180px !important;
    width: 1180px !important;
    margin: auto !important;
    max-height: none !important;
    position: relative !important;
    transform: none !important;
    -webkit-transform: none !important;
}

body.oc-theme #partialModal.oc-ql-open .modal-dialog.oc-modal-dragging,
body.oc-theme #partialModal:has(.oc-ql-modal).show .modal-dialog.oc-modal-dragging {
    position: fixed !important;
    margin: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
}

body.oc-theme #partialModal.oc-ql-open.fade.show .modal-dialog {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
}

@media (max-width: 1240px) {
    body.oc-theme #partialModal.oc-ql-open .modal-dialog,
    body.oc-theme #partialModal:has(.oc-ql-modal).show .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme #partialModal.oc-ql-open .modal-content,
body.oc-theme #partialModal:has(.oc-ql-modal).show .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.oc-theme #partialModal.oc-ql-open .modal-body,
body.oc-theme #partialModal:has(.oc-ql-modal).show .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-ql-panel {
    display: flex !important;
    flex-direction: column;
    max-height: calc(100vh - 24px);
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.16);
}

body.oc-theme .oc-ql-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 16px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
}

body.oc-theme .oc-ql-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-ql-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

body.oc-theme .oc-ql-header-copy h4 {
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.15 !important;
}

body.oc-theme .oc-ql-header-copy small {
    display: block;
    margin-top: 2px;
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

body.oc-theme .oc-ql-close-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

body.oc-theme .oc-ql-body {
    padding: 12px 14px 8px;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

body.oc-theme .oc-ql-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border: 1px solid #d7e5de;
    border-radius: 10px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
    margin-bottom: 10px;
}

body.oc-theme .oc-ql-toolbar-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.oc-theme .oc-ql-toolbar-copy strong {
    font-size: 16px;
    font-weight: 700;
    color: var(--oc-ink);
}

body.oc-theme .oc-ql-toolbar-copy small {
    font-size: 13px;
    font-weight: 500;
    color: var(--oc-muted);
}

body.oc-theme .oc-ql-toolbar-tools {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-left: auto;
}

body.oc-theme .oc-ql-top-pagination {
    display: flex;
    align-items: center;
    min-height: 38px;
}

body.oc-theme .oc-ql-top-pagination .dataTables_paginate {
    float: none !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
}

body.oc-theme .oc-ql-top-pagination .paginate_button {
    min-width: 30px !important;
    height: 30px !important;
    padding: 0 10px !important;
    font-size: 14px !important;
    line-height: 28px !important;
    border-radius: 6px !important;
}

body.oc-theme .oc-ql-top-pagination .paginate_button.current {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
}

body.oc-theme .oc-ql-top-pagination .paginate_button:not(.current):hover {
    background: #eef8f3 !important;
    color: var(--oc-brand-hover) !important;
}

body.oc-theme .oc-ql-search {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 260px;
    padding: 0 12px;
    height: 38px;
    border: 1px solid #c9dbd2;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(12, 74, 62, 0.05);
}

body.oc-theme .oc-ql-search i {
    color: var(--oc-brand);
    font-size: 13px;
    flex-shrink: 0;
}

body.oc-theme .oc-ql-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 15px;
    color: var(--oc-ink);
}

body.oc-theme .oc-ql-table-wrap {
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

body.oc-theme .oc-ql-modal .dataTables_wrapper,
body.oc-theme .oc-ql-modal .dataTables_wrapper.no-footer {
    margin: 0 !important;
    background: #fff !important;
}

body.oc-theme .oc-ql-modal #QuotesTable_wrapper .dataTables_filter {
    display: none !important;
}

body.oc-theme .oc-ql-modal .oc-ql-top-dt {
    display: none !important;
}

body.oc-theme .oc-ql-modal #QuotesTable_wrapper .oc-dt-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 12px;
    border-top: 1px solid #d7e5de;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
}

body.oc-theme .oc-ql-modal #QuotesTable_wrapper .dataTables_info,
body.oc-theme .oc-ql-modal #QuotesTable_wrapper .dataTables_paginate {
    float: none !important;
    padding: 0 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
}

body.oc-theme .oc-ql-modal #QuotesTable_wrapper .dataTables_paginate .paginate_button {
    min-width: 30px !important;
    height: 30px !important;
    padding: 0 10px !important;
    font-size: 15px !important;
    border-radius: 5px !important;
}

body.oc-theme .oc-ql-modal table.table-natwaste {
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size: 15px !important;
}

body.oc-theme .oc-ql-modal table.table-natwaste thead th {
    white-space: nowrap;
}

body.oc-theme .oc-ql-modal table.table-natwaste thead th:not(:last-child) {
    position: relative;
}

body.oc-theme .oc-ql-modal table.table-natwaste thead th:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 25%;
    right: 0;
    width: 1px;
    height: 50%;
    background: rgba(255, 255, 255, 0.26);
}

body.oc-theme .oc-ql-modal table.table-natwaste thead th,
body.oc-theme .oc-ql-modal table.table-natwaste tbody td {
    vertical-align: middle !important;
}

body.oc-theme .oc-ql-modal table.table-natwaste thead th {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

body.oc-theme .oc-ql-modal table.table-natwaste tbody td {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

body.oc-theme .oc-ql-modal table.table-natwaste td.dataTables_empty {
    padding: 24px 12px !important;
    color: var(--oc-muted);
    font-size: 16px !important;
    text-align: center !important;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%) !important;
}

body.oc-theme .oc-ql-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 34px !important;
    padding: 0 12px !important;
    border-radius: 7px !important;
    border: 1px solid #0a5c42 !important;
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: 0 3px 10px rgba(11, 110, 79, 0.18);
}

body.oc-theme .oc-ql-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 14px 10px;
    background: #f7faf8;
    border-top: 1px solid #e4eee9;
    flex-shrink: 0;
}

body.oc-theme .oc-ql-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 36px !important;
    padding: 0 16px !important;
    border-radius: 7px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
}

body.oc-theme .oc-ql-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-ql-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

@media (max-width: 900px) {
    body.oc-theme .oc-ql-toolbar {
        align-items: stretch;
    }

    body.oc-theme .oc-ql-toolbar-tools {
        justify-content: space-between;
        width: 100%;
    }

    body.oc-theme .oc-ql-search {
        min-width: 220px;
        flex: 1 1 220px;
    }
}

/* ===== Active Skips modal ===== */
body.oc-theme #partialModal.oc-skips-open .modal-dialog {
    max-width: 980px !important;
    width: 980px !important;
    margin: auto !important;
}

@media (max-width: 1060px) {
    body.oc-theme #partialModal.oc-skips-open .modal-dialog {
        width: 94vw !important;
        max-width: 94vw !important;
    }
}

body.oc-theme #partialModal.oc-skips-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

body.oc-theme #partialModal.oc-skips-open .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    overflow: visible !important;
}

body.oc-theme .oc-skips-modal,
body.oc-theme .oc-skips-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-skips-panel {
    display: flex !important;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.16);
}

body.oc-theme .oc-skips-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 16px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
}

body.oc-theme .oc-skips-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-skips-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

body.oc-theme .oc-skips-header-icon i {
    font-size: 14px;
}

body.oc-theme .oc-skips-header-copy h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
}

body.oc-theme .oc-skips-header-copy small {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

body.oc-theme .oc-skips-close-x {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

body.oc-theme .oc-skips-close-x:hover {
    background: rgba(255, 255, 255, 0.24);
}

body.oc-theme .oc-skips-body {
    padding: 12px 14px 8px;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
}

body.oc-theme .oc-skips-table-wrap {
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

body.oc-theme .oc-skips-modal .dataTables_wrapper,
body.oc-theme .oc-skips-modal .dataTables_wrapper.no-footer,
body.oc-theme .oc-skips-modal .dataTables_wrapper.dts,
body.oc-theme .oc-skips-modal div.dts,
body.oc-theme .oc-skips-modal div.DTS,
body.oc-theme .oc-skips-modal .dataTables_scroll,
body.oc-theme .oc-skips-modal .dataTables_scrollBody,
body.oc-theme .oc-skips-modal .dataTables_scrollHead,
body.oc-theme .oc-skips-modal .dataTables_scrollHeadInner,
body.oc-theme .oc-skips-modal div.dts div.dataTables_scrollBody,
body.oc-theme .oc-skips-modal div.DTS div.dataTables_scrollBody {
    margin: 0 !important;
    background: #fff !important;
    background-image: none !important;
    background-color: #fff !important;
}

body.oc-theme .oc-skips-modal #SiteItemsTable_wrapper .oc-dt-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 6px 12px;
    min-height: 0;
    border-top: 1px solid #d7e5de;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
}

body.oc-theme .oc-skips-modal #SiteItemsTable_wrapper .dataTables_info,
body.oc-theme .oc-skips-modal #SiteItemsTable_wrapper .dataTables_paginate {
    float: none !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
}

body.oc-theme .oc-skips-modal #SiteItemsTable_wrapper .dataTables_paginate .paginate_button {
    min-width: 30px !important;
    height: 30px !important;
    padding: 0 10px !important;
    font-size: 14px !important;
    border-radius: 5px !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste {
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size: 15px !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste thead th {
    white-space: nowrap;
    position: relative;
}

/* SS2-style short header dividers between columns */
body.oc-theme .oc-skips-modal table.table-natwaste thead th:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 25%;
    right: 0;
    width: 1px;
    height: 50%;
    background: rgba(255, 255, 255, 0.35);
    pointer-events: none;
}

body.oc-theme .oc-skips-modal table.table-natwaste tbody tr > td {
    background: #fff !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste tbody tr:nth-child(even) > td {
    background: #f8fafc !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste tbody tr:hover > td {
    background: #eef8f2 !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste .oc-skips-actions {
    display: inline-flex;
    align-items: stretch;
    gap: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(12, 74, 62, 0.14);
    vertical-align: middle;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    margin: 0 !important;
    float: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    min-height: 32px !important;
    white-space: nowrap;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, filter 0.15s ease, transform 0.15s ease !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action i {
    font-size: 12px;
    line-height: 1;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action-exchange {
    background: linear-gradient(180deg, #1aa978 0%, #0b6e4f 100%) !important;
    color: #fff !important;
    border-right: 1px solid rgba(255, 255, 255, 0.22) !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action-exchange:hover {
    filter: brightness(1.08);
    color: #fff !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action-collect {
    background: #ffffff !important;
    color: #0b6e4f !important;
    border-left: 1px solid #c9dbd2 !important;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action-collect:hover {
    background: #eef8f3 !important;
    color: #085a40 !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action:focus-visible {
    outline: 2px solid rgba(11, 110, 79, 0.45);
    outline-offset: 1px;
    z-index: 1;
}

body.oc-theme .oc-skips-modal table.table-natwaste .btn.oc-skips-action:active {
    transform: translateY(0);
    filter: brightness(0.97);
}

body.oc-theme .oc-skips-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 14px 10px;
    background: #f7faf8;
    border-top: 1px solid #e4eee9;
}

body.oc-theme .oc-skips-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 36px !important;
    padding: 0 16px !important;
    border-radius: 7px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
    float: none !important;
    white-space: nowrap;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

body.oc-theme .oc-skips-btn i {
    font-size: 12px;
    line-height: 1;
}

body.oc-theme .oc-skips-btn-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(11, 110, 79, 0.22);
}

body.oc-theme .oc-skips-btn-primary:hover {
    filter: brightness(1.05);
    color: #fff !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-skips-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-skips-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

/* ===== Request Site Movement modal ===== */
/* Only force flex while open — without :not(.show) the overlay never hides */
body.oc-theme .modal.oc-move-open.show,
body.oc-theme .modal:has(.oc-move-modal).show {
    display: flex !important;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto !important;
    padding: 12px 0 !important;
    z-index: 1065 !important;
}

body.oc-theme .modal-backdrop.oc-move-backdrop {
    z-index: 1060 !important;
    background-color: #000 !important;
    opacity: 0.55 !important;
}

body.oc-theme .modal.oc-move-open:not(.show),
body.oc-theme .modal:has(.oc-move-modal):not(.show) {
    display: none !important;
}

body.oc-theme .modal.oc-move-open .modal-dialog,
body.oc-theme .modal:has(.oc-move-modal).show .modal-dialog {
    max-width: 1100px !important;
    width: 1100px !important;
    margin: 0.5rem auto !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
}

body.oc-theme .modal.oc-move-open .modal-dialog.oc-modal-dragging {
    position: fixed !important;
    margin: 0 !important;
    z-index: 1070;
}

body.oc-theme .modal.oc-move-open:has(.oc-modal-dragging) {
    overflow: visible !important;
}

/* Kill Bootstrap fade slide so open doesn't animate from below/above */
body.oc-theme .modal.oc-move-open.fade.show .modal-dialog {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
}

@media (max-width: 780px) {
    body.oc-theme .modal.oc-move-open .modal-dialog,
    body.oc-theme .modal:has(.oc-move-modal) .modal-dialog {
        width: 94vw !important;
        max-width: 94vw !important;
    }
}

body.oc-theme .modal.oc-move-open .modal-content,
body.oc-theme .modal:has(.oc-move-modal) .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

body.oc-theme .modal.oc-move-open .modal-body,
body.oc-theme .modal:has(.oc-move-modal) .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-move-modal,
body.oc-theme .oc-move-form,
body.oc-theme .oc-move-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-move-form {
    display: block !important;
}

body.oc-theme .oc-move-panel {
    display: flex !important;
    flex-direction: column;
    max-height: calc(100vh - 24px);
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.16);
}

body.oc-theme .oc-move-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 16px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: default;
    user-select: none;
    position: relative;
    overflow: hidden;
}

body.oc-theme .oc-move-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-move-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

body.oc-theme .oc-move-header-icon i {
    font-size: 14px;
}

body.oc-theme .oc-move-header-copy {
    min-width: 0;
    position: relative;
}

body.oc-theme .oc-move-header-copy h4 {
    position: static !important;
    width: auto !important;
    top: auto !important;
    left: auto !important;
    margin: 0 !important;
    margin-left: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.15 !important;
    text-align: left !important;
    font-family: inherit !important;
}

body.oc-theme .oc-move-header-copy small {
    display: block;
    margin-top: 1px;
    font-size: 12px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

body.oc-theme .oc-move-close-x {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

body.oc-theme .oc-move-close-x:hover {
    background: rgba(255, 255, 255, 0.24);
}

body.oc-theme .oc-move-body {
    padding: 10px 14px 8px;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

body.oc-theme .oc-move-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: stretch;
}

body.oc-theme .oc-move-card-wide {
    grid-column: 1 / -1;
}

body.oc-theme .oc-move-card {
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(12, 74, 62, 0.06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

body.oc-theme .oc-move-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
    border-bottom: 1px solid #e4eee9;
}

body.oc-theme .oc-move-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: linear-gradient(180deg, #e8f7f0 0%, #d5efe3 100%);
    border: 1px solid #b7d2c7;
    color: var(--oc-brand);
    flex-shrink: 0;
}

body.oc-theme .oc-move-card-icon i {
    font-size: 12px;
}

body.oc-theme .oc-move-card-head h5 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--oc-ink);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

body.oc-theme .oc-move-card-head small {
    display: block;
    margin-top: 1px;
    font-size: 14px;
    font-weight: 500;
    color: var(--oc-muted);
}

body.oc-theme .oc-move-card-body {
    padding: 6px 10px 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.oc-theme .oc-move-req {
    color: #dc2626;
    font-weight: 700;
    margin-left: 1px;
}

body.oc-theme .oc-move-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.oc-theme .oc-move-field {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
}

body.oc-theme .oc-move-field-tall {
    align-items: start;
}

body.oc-theme .oc-move-label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--oc-muted);
    text-align: right;
    line-height: 1.2;
}

body.oc-theme .oc-move-control {
    min-width: 0;
    width: 100%;
}

body.oc-theme .oc-move-date {
    position: relative;
    display: block;
}

body.oc-theme .oc-move-date .ui-datepicker-trigger {
    position: absolute !important;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    z-index: 2;
}

body.oc-theme .oc-move-field .oc-move-field-error,
body.oc-theme .oc-move-field span[data-valmsg-for] {
    grid-column: 2;
}

body.oc-theme .oc-move-field-error,
body.oc-theme .oc-move-modal span.field-validation-error,
body.oc-theme .oc-move-modal span[data-valmsg-for] {
    display: block;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
    color: #dc2626 !important;
    letter-spacing: 0.01em;
}

body.oc-theme .oc-move-modal span.field-validation-error:not(:empty),
body.oc-theme .oc-move-modal .oc-move-field-error.field-validation-error:not(:empty) {
    margin-top: 5px;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    width: fit-content;
    max-width: 100%;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    color: #dc2626 !important;
}

body.oc-theme .oc-move-modal span.field-validation-valid:empty,
body.oc-theme .oc-move-modal .oc-move-field-error:empty {
    display: none;
}

body.oc-theme .oc-move-modal span.field-validation-valid {
    display: block;
    min-height: 0;
}

body.oc-theme .oc-move-summary-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

body.oc-theme .oc-move-modal .oc-move-input,
body.oc-theme .oc-move-modal .oc-move-select,
body.oc-theme .oc-move-modal .oc-move-textarea,
body.oc-theme .oc-move-modal input.datepicker,
body.oc-theme .oc-move-modal input.input_field,
body.oc-theme .oc-move-modal select.oc-move-select,
body.oc-theme .oc-move-modal textarea.oc-move-textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid #c9dbd2 !important;
    border-radius: 8px !important;
    padding: 0 12px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--oc-ink) !important;
    background: #fff !important;
    outline: none;
    margin: 0 !important;
}

body.oc-theme .oc-move-modal .oc-move-date input.datepicker,
body.oc-theme .oc-move-modal .oc-move-date .oc-move-input {
    padding-right: 36px !important;
}

body.oc-theme .oc-move-modal .oc-move-input,
body.oc-theme .oc-move-modal .oc-move-select,
body.oc-theme .oc-move-modal input.datepicker,
body.oc-theme .oc-move-modal input.input_field,
body.oc-theme .oc-move-modal select.oc-move-select {
    height: 36px !important;
}

body.oc-theme .oc-move-modal .oc-move-textarea,
body.oc-theme .oc-move-modal textarea.oc-move-textarea {
    min-height: 50px;
    padding: 6px 10px !important;
    resize: none !important;
    line-height: 1.3;
}

body.oc-theme .oc-move-modal .oc-move-input:focus,
body.oc-theme .oc-move-modal .oc-move-select:focus,
body.oc-theme .oc-move-modal .oc-move-textarea:focus,
body.oc-theme .oc-move-modal input.datepicker:focus,
body.oc-theme .oc-move-modal input.input_field:focus {
    border-color: var(--oc-brand) !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.14);
}

body.oc-theme .oc-move-modal .oc-move-invalid,
body.oc-theme .oc-move-modal .input-validation-error,
body.oc-theme .oc-move-modal input.oc-move-invalid,
body.oc-theme .oc-move-modal select.oc-move-invalid,
body.oc-theme .oc-move-modal textarea.oc-move-invalid,
body.oc-theme .oc-move-modal input.input-validation-error,
body.oc-theme .oc-move-modal select.input-validation-error,
body.oc-theme .oc-move-modal textarea.input-validation-error {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14) !important;
    background: #fff7f7 !important;
}

body.oc-theme .oc-move-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 6px 12px 8px;
    background: #f7faf8;
    flex-shrink: 0;
    border-top: 1px solid #e4eee9;
}

body.oc-theme .oc-move-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 32px !important;
    padding: 0 12px !important;
    border-radius: 7px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
    float: none !important;
    white-space: nowrap;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

body.oc-theme .oc-move-btn i {
    font-size: 12px;
    line-height: 1;
}

body.oc-theme .oc-move-btn-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(11, 110, 79, 0.22);
}

body.oc-theme .oc-move-btn-primary:hover {
    filter: brightness(1.05);
    color: #fff !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-move-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-move-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

@media (max-width: 640px) {
    body.oc-theme .oc-move-grid {
        grid-template-columns: 1fr;
    }

    body.oc-theme .oc-move-field {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    body.oc-theme .oc-move-label {
        text-align: left;
    }

    body.oc-theme .oc-move-field .oc-move-field-error,
    body.oc-theme .oc-move-field span[data-valmsg-for] {
        grid-column: 1;
    }
}

/* ===== Request A Quote modal ===== */
body.oc-theme #partialModal.oc-quote-open.show,
body.oc-theme #partialModal:has(.oc-quote-modal).show {
    display: flex !important;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto !important;
    padding: 12px 0 !important;
}

body.oc-theme #partialModal.oc-quote-open:not(.show),
body.oc-theme #partialModal:has(.oc-quote-modal):not(.show) {
    display: none !important;
}

body.oc-theme #partialModal.oc-quote-open .modal-dialog,
body.oc-theme #partialModal:has(.oc-quote-modal).show .modal-dialog {
    max-width: 1100px !important;
    width: 1100px !important;
    margin: auto !important;
    max-height: none !important;
    position: relative !important;
    transform: none !important;
    -webkit-transform: none !important;
}

body.oc-theme #partialModal.oc-quote-open .modal-dialog.oc-modal-dragging {
    position: fixed !important;
    margin: 0 !important;
    top: auto;
    left: auto;
    z-index: 1060;
}

body.oc-theme #partialModal.oc-quote-open:has(.oc-modal-dragging) {
    overflow: visible !important;
}

body.oc-theme #partialModal.oc-quote-open.fade.show .modal-dialog {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
}

@media (max-width: 980px) {
    body.oc-theme #partialModal.oc-quote-open .modal-dialog,
    body.oc-theme #partialModal:has(.oc-quote-modal).show .modal-dialog {
        width: 94vw !important;
        max-width: 94vw !important;
    }
}

body.oc-theme #partialModal.oc-quote-open .modal-content,
body.oc-theme #partialModal:has(.oc-quote-modal).show .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

body.oc-theme #partialModal.oc-quote-open .modal-body,
body.oc-theme #partialModal:has(.oc-quote-modal).show .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-quote-modal,
body.oc-theme .oc-quote-form,
body.oc-theme .oc-quote-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-quote-form {
    display: block !important;
}

body.oc-theme .oc-quote-panel {
    display: flex !important;
    flex-direction: column;
    max-height: calc(100vh - 24px);
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.16);
}

body.oc-theme .oc-quote-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 14px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
}

body.oc-theme .oc-quote-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-quote-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

body.oc-theme .oc-quote-header-icon i {
    font-size: 13px;
}

body.oc-theme .oc-quote-header-copy h4 {
    position: static !important;
    width: auto !important;
    top: auto !important;
    left: auto !important;
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.2 !important;
    text-align: left !important;
    font-family: inherit !important;
}

body.oc-theme .oc-quote-header-copy small {
    display: block;
    margin-top: 1px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

body.oc-theme .oc-quote-close-x {
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

body.oc-theme .oc-quote-close-x:hover {
    background: rgba(255, 255, 255, 0.24);
}

body.oc-theme .oc-quote-body {
    padding: 8px 10px 6px;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

body.oc-theme .oc-quote-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: stretch;
}

body.oc-theme .oc-quote-card {
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(12, 74, 62, 0.06);
    overflow: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

body.oc-theme .oc-quote-card-wide {
    grid-column: 1 / -1;
}

body.oc-theme .oc-quote-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
    border-bottom: 1px solid #e4eee9;
}

body.oc-theme .oc-quote-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: linear-gradient(180deg, #e8f7f0 0%, #d5efe3 100%);
    border: 1px solid #b7d2c7;
    color: var(--oc-brand);
    flex-shrink: 0;
}

body.oc-theme .oc-quote-card-icon i {
    font-size: 13px;
}

body.oc-theme .oc-quote-card-head h5 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--oc-ink);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

body.oc-theme .oc-quote-card-head small {
    display: block;
    margin-top: 1px;
    font-size: 13px;
    font-weight: 500;
    color: var(--oc-muted);
}

body.oc-theme .oc-quote-card-body {
    padding: 6px 10px 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 auto;
}

body.oc-theme .oc-quote-card-body-split {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.oc-theme .oc-quote-field-row {
    display: block;
}

body.oc-theme .oc-quote-field-row .oc-quote-field {
    grid-template-columns: 110px minmax(0, 1fr);
}

body.oc-theme .oc-quote-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-quote-field {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
}

body.oc-theme .oc-quote-field-tall {
    align-items: start;
}

body.oc-theme .oc-quote-field .oc-quote-field-error,
body.oc-theme .oc-quote-field span[data-valmsg-for] {
    grid-column: 2;
}

body.oc-theme .oc-quote-label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--oc-muted);
    text-align: right;
    line-height: 1.2;
    width: 100px;
    max-width: 100px;
    box-sizing: border-box;
}

body.oc-theme .oc-quote-control {
    min-width: 0;
    width: 100%;
}

body.oc-theme .oc-quote-search {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.oc-theme .oc-quote-search .oc-quote-input {
    flex: 1 1 auto;
}

body.oc-theme .oc-quote-search-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    height: 36px !important;
    min-width: 88px;
    padding: 0 12px !important;
    margin: 0 !important;
    border-radius: 8px !important;
    border: 1px solid #0a5c42 !important;
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(11, 110, 79, 0.2);
}

body.oc-theme .oc-quote-search-btn:hover {
    filter: brightness(1.05);
    color: #fff !important;
}

body.oc-theme .oc-quote-date {
    position: relative;
    display: block;
}

body.oc-theme .oc-quote-date .ui-datepicker-trigger {
    position: absolute !important;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    z-index: 2;
}

body.oc-theme .oc-quote-modal .oc-quote-input,
body.oc-theme .oc-quote-modal .oc-quote-select,
body.oc-theme .oc-quote-modal .oc-quote-textarea,
body.oc-theme .oc-quote-modal input.datepicker,
body.oc-theme .oc-quote-modal input.input_field,
body.oc-theme .oc-quote-modal select.oc-quote-select,
body.oc-theme .oc-quote-modal textarea.oc-quote-textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid #c9dbd2 !important;
    border-radius: 8px !important;
    padding: 0 12px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--oc-ink) !important;
    background: #fff !important;
    outline: none;
    margin: 0 !important;
}

body.oc-theme .oc-quote-modal .oc-quote-date input.datepicker,
body.oc-theme .oc-quote-modal .oc-quote-date .oc-quote-input {
    padding-right: 36px !important;
}

body.oc-theme .oc-quote-modal .oc-quote-input,
body.oc-theme .oc-quote-modal .oc-quote-select,
body.oc-theme .oc-quote-modal input.datepicker,
body.oc-theme .oc-quote-modal input.input_field,
body.oc-theme .oc-quote-modal select.oc-quote-select {
    height: 32px !important;
}

body.oc-theme .oc-quote-modal .oc-quote-textarea,
body.oc-theme .oc-quote-modal textarea.oc-quote-textarea {
    min-height: 54px;
    padding: 6px 10px !important;
    resize: none !important;
    line-height: 1.3;
}

body.oc-theme .oc-quote-modal .oc-quote-input:focus,
body.oc-theme .oc-quote-modal .oc-quote-select:focus,
body.oc-theme .oc-quote-modal .oc-quote-textarea:focus,
body.oc-theme .oc-quote-modal input.datepicker:focus,
body.oc-theme .oc-quote-modal input.input_field:focus {
    border-color: var(--oc-brand) !important;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.14);
}

body.oc-theme .oc-quote-modal .oc-quote-invalid,
body.oc-theme .oc-quote-modal .input-validation-error,
body.oc-theme .oc-quote-modal input.oc-quote-invalid,
body.oc-theme .oc-quote-modal select.oc-quote-invalid,
body.oc-theme .oc-quote-modal textarea.oc-quote-invalid,
body.oc-theme .oc-quote-modal input.input-validation-error,
body.oc-theme .oc-quote-modal select.input-validation-error,
body.oc-theme .oc-quote-modal textarea.input-validation-error {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14) !important;
    background: #fff7f7 !important;
}

body.oc-theme .oc-quote-req {
    color: #dc2626;
    font-weight: 700;
    margin-left: 1px;
}

body.oc-theme .oc-quote-field-error,
body.oc-theme .oc-quote-modal span.field-validation-error,
body.oc-theme .oc-quote-modal span[data-valmsg-for] {
    display: block;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
    color: #dc2626 !important;
    letter-spacing: 0.01em;
}

/* Visible quote field errors: plain helper text, not input-like boxes */
body.oc-theme .oc-quote-modal span.field-validation-error:not(:empty),
body.oc-theme .oc-quote-modal .oc-quote-field-error.field-validation-error:not(:empty) {
    margin-top: 5px;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    width: fit-content;
    max-width: 100%;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    color: #dc2626 !important;
}

body.oc-theme .oc-quote-modal span.field-validation-valid:empty,
body.oc-theme .oc-quote-modal .oc-quote-field-error:empty {
    display: none;
}

body.oc-theme .oc-quote-lookup-error {
    display: none;
    grid-column: 2;
    margin-top: 6px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(153, 27, 27, 0.08);
}

body.oc-theme .oc-quote-lookup-error.is-visible,
body.oc-theme .oc-quote-lookup-error.field-validation-error {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

body.oc-theme .oc-quote-lookup-error .fa {
    color: #dc2626;
    font-size: 14px;
    flex: 0 0 auto;
}

body.oc-theme .oc-quote-lookup-error:hover {
    background: #fee2e2;
    border-color: #f87171;
}

body.oc-theme .oc-quote-lookup-error:focus-visible {
    outline: 2px solid #dc2626;
    outline-offset: 2px;
}

body.oc-theme .oc-quote-lookup-error.oc-quote-error-pop {
    animation: oc-quote-error-pop 0.35s ease-out;
}

@keyframes oc-quote-error-pop {
    0% {
        opacity: 0;
        transform: translateY(-4px) scale(0.98);
    }
    60% {
        opacity: 1;
        transform: translateY(0) scale(1.01);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

body.oc-theme .oc-quote-summary-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

body.oc-theme .oc-quote-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 6px 12px 8px;
    background: #f7faf8;
    border-top: 1px solid #e4eee9;
    flex-shrink: 0;
}

body.oc-theme .oc-quote-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 36px !important;
    padding: 0 16px !important;
    border-radius: 7px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
    float: none !important;
    white-space: nowrap;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

body.oc-theme .oc-quote-btn i {
    font-size: 12px;
    line-height: 1;
}

body.oc-theme .oc-quote-btn-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(11, 110, 79, 0.22);
}

body.oc-theme .oc-quote-btn-primary:hover {
    filter: brightness(1.05);
    color: #fff !important;
    transform: translateY(-1px);
}

body.oc-theme .oc-quote-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-quote-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
}

@media (max-width: 800px) {
    body.oc-theme .oc-quote-grid {
        grid-template-columns: 1fr;
    }

    body.oc-theme .oc-quote-card-wide {
        grid-column: auto;
    }

    body.oc-theme .oc-quote-field,
    body.oc-theme .oc-quote-field-row .oc-quote-field {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    body.oc-theme .oc-quote-label {
        text-align: left;
        width: auto;
        max-width: none;
    }

    body.oc-theme .oc-quote-field .oc-quote-field-error,
    body.oc-theme .oc-quote-field span[data-valmsg-for] {
        grid-column: 1;
    }
}

/* ===== Site Detail page ===== */
body.oc-theme .oc-site-detail .oc-side-card-head {
    margin-bottom: 12px;
}

body.oc-theme .oc-site-detail .oc-side-card-head h4,
body.oc-theme .oc-site-detail-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--oc-muted);
}

body.oc-theme .oc-site-detail-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(180deg, #e8f7f0 0%, #d5efe3 100%);
    border: 1px solid #b7d2c7;
    color: var(--oc-brand);
    box-shadow: 0 1px 3px rgba(12, 74, 62, 0.08);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    cursor: default;
}

body.oc-theme .oc-site-detail-icon i {
    font-size: 14px;
    line-height: 1;
}

body.oc-theme .oc-site-detail-title:hover .oc-site-detail-icon,
body.oc-theme .oc-side-card-head:hover .oc-site-detail-icon {
    transform: translateY(-1px) scale(1.05);
    background: linear-gradient(180deg, #d9f3e8 0%, #c3e8d7 100%);
    box-shadow: 0 3px 8px rgba(12, 74, 62, 0.14);
    color: var(--oc-brand-hover);
}

body.oc-theme .oc-site-id {
    font-family: var(--oc-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--oc-brand);
    margin-bottom: 4px;
}

body.oc-theme .oc-site-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--oc-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 8px;
}

body.oc-theme .oc-site-address {
    font-size: 12px;
    color: var(--oc-muted);
    line-height: 1.45;
    margin-bottom: 4px;
}

body.oc-theme .oc-hidden-action {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

body.oc-theme .oc-sd-buttons {
    margin: 0 0 12px;
}

body.oc-theme .oc-sd-buttons .dt-buttons {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    float: none !important;
    width: 100% !important;
    align-items: stretch;
}

body.oc-theme .oc-sd-buttons button.dt-button,
body.oc-theme .oc-sd-buttons button.oc-dt-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    column-gap: 10px !important;
    margin: 0 !important;
    min-height: 42px !important;
    padding: 0 16px !important;
    border-radius: 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    float: none !important;
    background-image: none !important;
    box-shadow: 0 2px 8px rgba(12, 74, 62, 0.1) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
    white-space: nowrap !important;
}

body.oc-theme .oc-sd-buttons button.dt-button > i,
body.oc-theme .oc-sd-buttons button.oc-dt-btn > i,
body.oc-theme .oc-sd-buttons button.dt-button i.fa,
body.oc-theme .oc-sd-buttons button.oc-dt-btn i.fa {
    font-size: 15px !important;
    line-height: 1 !important;
    width: auto !important;
    min-width: 16px;
    text-align: center;
    flex: 0 0 auto;
    display: inline-block !important;
    margin: 0 10px 0 0 !important;
    padding: 0 !important;
}

body.oc-theme .oc-sd-buttons button.dt-button > span,
body.oc-theme .oc-sd-buttons button.oc-dt-btn > span,
body.oc-theme .oc-sd-buttons button.dt-button span,
body.oc-theme .oc-sd-buttons button.oc-dt-btn span {
    display: inline-block !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-invoice,
body.oc-theme .oc-sd-buttons button.dt-button.oc-dt-btn-invoice {
    background: #ffffff !important;
    border: 1px solid #9ec9b8 !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-assign,
body.oc-theme .oc-sd-buttons button.dt-button.oc-dt-btn-assign {
    background: #ffffff !important;
    border: 1px solid #9ec9b8 !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-request,
body.oc-theme .oc-sd-buttons button.dt-button.oc-dt-btn-request {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(11, 110, 79, 0.28) !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-primary,
body.oc-theme .oc-sd-buttons button.dt-button.oc-dt-btn-primary {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-secondary,
body.oc-theme .oc-sd-buttons button.dt-button.oc-dt-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #b7d2c7 !important;
    color: var(--oc-brand) !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-invoice:hover:not(.disabled),
body.oc-theme .oc-sd-buttons button.oc-dt-btn-assign:hover:not(.disabled),
body.oc-theme .oc-sd-buttons button.oc-dt-btn-secondary:hover:not(.disabled) {
    background: #eef8f3 !important;
    border-color: var(--oc-brand) !important;
    color: var(--oc-brand-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(12, 74, 62, 0.16) !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-request:hover:not(.disabled),
body.oc-theme .oc-sd-buttons button.oc-dt-btn-primary:hover:not(.disabled) {
    transform: translateY(-2px);
    filter: brightness(1.06);
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(11, 110, 79, 0.34) !important;
}

body.oc-theme .oc-sd-buttons button.oc-dt-btn-invoice:active:not(.disabled),
body.oc-theme .oc-sd-buttons button.oc-dt-btn-assign:active:not(.disabled),
body.oc-theme .oc-sd-buttons button.oc-dt-btn-request:active:not(.disabled) {
    transform: translateY(0);
}

body.oc-theme .oc-sd-buttons button.dt-button.disabled,
body.oc-theme .oc-sd-buttons button.dt-button.disabled:hover {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
    background: #f3f4f6 !important;
    border-color: #e5e7eb !important;
    color: #9ca3af !important;
    filter: none !important;
}

body.oc-theme #SiteMovesTable tbody tr.selected > td,
body.oc-theme #SiteMovesTable tbody tr.selected:hover > td,
body.oc-theme #SiteMovesTable tbody tr.selected > td.selected,
body.oc-theme #SiteMovesTable.table.dataTable tbody tr.selected > *,
body.oc-theme #SiteMovesTable.table.dataTable tbody tr.odd.selected > *,
body.oc-theme #SiteMovesTable.table.dataTable tbody tr.even.selected > * {
    background-color: #e8f6ef !important;
    background: #e8f6ef !important;
    color: var(--oc-ink) !important;
    box-shadow: none !important;
}

body.oc-theme #SiteMovesTable th.oc-col-movement-id,
body.oc-theme #SiteMovesTable td.oc-col-movement-id,
body.oc-theme #SiteMovesTable tbody td:first-child,
body.oc-theme #SiteMovesTable th.oc-col-project,
body.oc-theme #SiteMovesTable td.oc-col-project,
body.oc-theme #SiteMovesTable thead tr.bg-natwaste th.dt-head-left,
body.oc-theme #SiteMovesTable tbody td.dt-body-left {
    text-align: left !important;
}

body.oc-theme #SiteMovesTable thead tr.oc-col-search th:first-child .oc-col-filter {
    text-align: left;
}

body.oc-theme #SiteMovesTable tbody tr.selected > td:first-child,
body.oc-theme #SiteMovesTable tbody tr.selected:hover > td:first-child {
    box-shadow: inset 3px 0 0 var(--oc-brand) !important;
}

body.oc-theme #SiteMovesTable tbody tr.selected a.oc-supplier-link,
body.oc-theme #SiteMovesTable tbody tr.selected a.oc-ticket-link {
    color: #0b6e4f !important;
}

body.oc-theme #SiteMovesTable tbody tr.selected .btn.oc-btn-detail {
    color: #fff !important;
}

body.oc-theme #SiteMovesTable_wrapper .dataTables_info .select-info {
    display: inline-flex;
    align-items: center;
    margin-left: 10px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #e8f6ef;
    border: 1px solid #b7d2c7;
    color: var(--oc-brand);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

body.oc-theme #SiteMovesTable_wrapper .dataTables_info .select-item {
    margin: 0;
}

body.oc-theme #SiteMovesTable a.oc-supplier-link {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    color: #0b6e4f !important;
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 2px;
    cursor: pointer !important;
}

body.oc-theme #SiteMovesTable a.oc-supplier-link i {
    font-size: 11px;
    opacity: 0.85;
}

body.oc-theme #SiteMovesTable a.oc-supplier-link:hover {
    color: #08563d !important;
    text-decoration: underline !important;
}

body.oc-theme #SiteMovesTable a.oc-ticket-link {
    color: var(--oc-brand) !important;
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

body.oc-theme #SiteMovesTable a.oc-ticket-link:hover {
    text-decoration: underline !important;
    color: var(--oc-brand-hover) !important;
}

/* Resizable columns â€” divider only in green header text row (not filter row) */
body.oc-theme table.table-natwaste.oc-table-resizable {
    table-layout: fixed;
    width: 100% !important;
}

body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th {
    position: relative !important;
    overflow: visible !important;
    border-right: 0 !important;
    padding-right: 14px !important;
}

/* Keep sort carets clear of the divider line (same line style unchanged) */
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_asc,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_desc {
    padding-right: 30px !important;
}

body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting:before,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting:after,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_asc:before,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_asc:after,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_desc:before,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th.sorting_desc:after {
    right: 12px !important;
}

/* Filter/search row: never show column dividers */
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.oc-col-search th,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.oc-col-search th.oc-col-divider {
    border-right: 0 !important;
    box-shadow: none !important;
}

body.oc-theme table.table-natwaste.oc-table-resizable thead tr.oc-col-search th::before,
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.oc-col-search th::after {
    content: none !important;
    display: none !important;
}

/* Drag hit-area only on green header cells */
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th > .oc-col-resize {
    position: absolute;
    top: 0;
    right: 0;
    width: 12px;
    height: 100%;
    cursor: col-resize;
    z-index: 8;
    user-select: none;
    background: transparent;
}

/* Short divider segment in header text area only */
body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th > .oc-col-resize .oc-col-divider-line {
    position: absolute;
    top: 18%;
    bottom: 18%;
    right: 4px;
    width: 2px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.72);
    pointer-events: none;
    display: block !important;
    z-index: 20;
}

body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th:hover > .oc-col-resize .oc-col-divider-line,
body.oc-col-resizing table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th > .oc-col-resize .oc-col-divider-line {
    background: #ffffff;
    width: 2px;
}

body.oc-theme table.table-natwaste.oc-table-resizable thead tr.bg-natwaste th > .oc-col-resize-last .oc-col-divider-line {
    display: none !important;
}

body.oc-col-resizing {
    cursor: col-resize !important;
    user-select: none !important;
}

body.oc-col-resizing * {
    cursor: col-resize !important;
    user-select: none !important;
}

body.oc-theme table.table-natwaste.oc-table-resizable tbody td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

body.oc-theme table.table-natwaste.oc-table-resizable tbody td.oc-actions-cell,
body.oc-theme table.table-natwaste.oc-table-resizable tbody td.oc-actions-cell *,
body.oc-theme table.table-natwaste.oc-table-resizable tbody td.oc-ticket-cell,
body.oc-theme table.table-natwaste.oc-table-resizable tbody td.oc-ticket-cell * {
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

body.oc-theme #SiteMovesTable .oc-cell-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

body.oc-theme #SiteMovesTable th.oc-col-details,
body.oc-theme #SiteMovesTable td.oc-actions-cell {
    min-width: 82px !important;
    width: 82px !important;
    max-width: 82px !important;
    text-align: center !important;
    padding-left: 6px !important;
    padding-right: 12px !important;
}

body.oc-theme #SiteMovesTable th.oc-col-ticket,
body.oc-theme #SiteMovesTable td.oc-ticket-cell {
    min-width: 88px !important;
    width: 88px !important;
    max-width: 88px !important;
    text-align: left !important;
    padding-left: 10px !important;
    padding-right: 8px !important;
}

body.oc-theme #SiteMovesTable .btn.oc-btn-detail.oc-btn-icon,
body.oc-theme #SiteMovesTable a.btn.oc-btn-detail.oc-btn-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 8px !important;
    line-height: 1 !important;
}

body.oc-theme #SiteMovesTable .btn.oc-btn-detail.oc-btn-icon i,
body.oc-theme #SiteMovesTable a.btn.oc-btn-detail.oc-btn-icon i {
    font-size: 14px !important;
    line-height: 1 !important;
    margin: 0 !important;
}

body.oc-theme #SiteMovesTable td.oc-ticket-cell .oc-ticket-link {
    display: inline-block;
    white-space: nowrap;
    padding: 4px 0;
}

body.oc-theme #SiteMovesTable .btn.oc-btn-detail {
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    border: 1px solid #0a5c42 !important;
    color: #fff !important;
    padding: 6px 10px !important;
    border-radius: 6px !important;
}

body.oc-theme #SiteMovesTable .btn.oc-btn-detail:hover {
    filter: brightness(1.05);
    color: #fff !important;
    background: linear-gradient(180deg, #14a678 0%, #095c42 100%) !important;
}

body.oc-theme #SiteMovesTable thead tr.oc-col-search th {
    background: #f3f7f5 !important;
    color: var(--oc-ink) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 500 !important;
    padding: 8px 8px !important;
    border-bottom: 1px solid var(--oc-line) !important;
}

body.oc-theme #SiteMovesTable thead .oc-col-filter {
    width: 100%;
    box-sizing: border-box;
    height: 30px;
    padding: 0 8px;
    border: 1px solid #c9dbd2;
    border-radius: 6px;
    background: #fff;
    color: var(--oc-ink);
    font-size: 12px;
    font-weight: 500;
}

body.oc-theme #SiteMovesTable thead .oc-col-filter:focus {
    outline: none;
    border-color: var(--oc-brand);
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.12);
}

/* Login — full-page, no clipping */
html:has(body.oc-login),
body.oc-login {
    height: auto !important;
    min-height: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

body.oc-login {
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(1000px 420px at 50% 0%, rgba(15, 122, 88, 0.09), transparent 55%),
        linear-gradient(180deg, #eef4f1 0%, #e4ebe7 100%) !important;
}

body.oc-login #frmloginPage,
body.oc-login .oc-login-page {
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    padding: 28px 16px 32px !important;
    box-sizing: border-box !important;
}

body.oc-login .oc-login-shell {
    width: 100%;
}

body.oc-login .oc-login-brand {
    text-align: center;
    margin-bottom: 18px;
}

body.oc-login .oc-login-brand a {
    display: inline-block;
}

body.oc-login .oc-login-brand img {
    width: 180px !important;
    max-width: 100%;
    height: auto !important;
    display: block;
    margin: 0 auto;
}

body.oc-login .oc-login-tagline {
    margin: 6px 0 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5a7369;
}

body.oc-login form.oc-login-form,
body.oc-login #frmloginPage form {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
}

body.oc-login .panel-login,
body.oc-login .oc-login-panel {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border: 1px solid #d7e5de !important;
    border-radius: 12px !important;
    overflow: visible !important;
    background: #fff !important;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.12);
}

body.oc-login .panel-login .panel-heading,
body.oc-login .oc-login-header {
    display: flex !important;
    align-items: center;
    gap: 14px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%) !important;
    color: #0b3d31 !important;
    height: auto !important; /* override Site.css .panel-heading { height: 40px } */
    min-height: 0 !important;
    padding: 28px 24px !important;
    box-sizing: border-box;
    font-weight: 700;
    border: 0 !important;
    border-bottom: 1px solid #d7e5de !important;
    border-radius: 12px 12px 0 0 !important;
    text-align: left !important;
}

body.oc-login .oc-login-header-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f5ef;
    border: 1px solid #cfe5da;
    color: #0f7a58;
    flex-shrink: 0;
    font-size: 15px;
}

body.oc-login .oc-login-header-copy h1 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #0b3d31 !important;
    line-height: 1.25 !important;
}

body.oc-login .oc-login-header-copy small {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 500;
    color: #5a7369;
    line-height: 1.3;
}

body.oc-login .panel-login .panel-body,
body.oc-login .oc-login-body {
    background: #fff !important;
    padding: 28px 24px 16px !important;
}

body.oc-login .oc-login-validation,
body.oc-login .oc-login-validation li,
body.oc-login .text-danger {
    color: #c0392b !important;
    font-size: 13px !important;
    font-weight: 600;
}

body.oc-login .oc-login-validation {
    margin: 0 0 10px !important;
    padding: 0;
}

body.oc-login .oc-login-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 12px;
}

body.oc-login .oc-login-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #0b3d31;
}

body.oc-login .oc-login-label i {
    color: #0f7a58;
    width: 14px;
    text-align: center;
}

body.oc-login .oc-login-password-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

body.oc-login .input_field,
body.oc-login .oc-login-input {
    width: 100% !important;
    height: 40px !important;
    margin: 0 !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 8px !important;
    padding: 9px 12px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 14px !important;
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.oc-login .oc-login-password-wrap .oc-login-input {
    padding-right: 42px !important;
}

body.oc-login .input_field:focus,
body.oc-login .oc-login-input:focus {
    outline: none !important;
    border-color: #0f7a58 !important;
    box-shadow: 0 0 0 3px rgba(15, 122, 88, 0.14) !important;
    background: #fff !important;
}

body.oc-login .oc-login-toggle {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #5a7a6e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

body.oc-login .oc-login-toggle:hover {
    background: #eef5f1;
    color: #0b6e4f;
}

body.oc-login .panel-login .panel-footer,
body.oc-login .oc-login-footer {
    background: #fff !important;
    border-top: 1px solid #e6efea;
    border-radius: 0 0 12px 12px !important;
    height: auto !important; /* override Site.css .panel-footer { height: 65px } */
    min-height: 0 !important;
    padding: 28px 24px !important;
    margin: 0 !important;
    overflow: visible !important;
    box-sizing: border-box;
}

body.oc-login .btn-login,
body.oc-login .oc-login-submit {
    width: 100% !important;
    min-height: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 11px 16px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    background: linear-gradient(180deg, #1a8f68 0%, #127a58 100%) !important;
    border: 1px solid #0f6e4f !important;
    color: #fff !important;
    box-shadow: 0 2px 0 rgba(11, 61, 49, 0.12), 0 6px 14px rgba(15, 122, 88, 0.18) !important;
    transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
    box-sizing: border-box !important;
}

body.oc-login .btn-login:hover,
body.oc-login .oc-login-submit:hover {
    background: linear-gradient(180deg, #159567 0%, #0f6e4f 100%) !important;
    border-color: #0b5f44 !important;
    color: #fff !important;
    box-shadow: 0 2px 0 rgba(11, 61, 49, 0.14), 0 8px 16px rgba(15, 122, 88, 0.22) !important;
}

body.oc-login .btn-login:active,
body.oc-login .oc-login-submit:active {
    transform: translateY(1px);
    box-shadow: 0 1px 0 rgba(11, 61, 49, 0.12), 0 3px 8px rgba(15, 122, 88, 0.16) !important;
}

body.oc-login .btn-login:focus,
body.oc-login .oc-login-submit:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(15, 122, 88, 0.22), 0 6px 14px rgba(15, 122, 88, 0.18) !important;
}

body.oc-login .oc-login-help {
    margin-top: 2px;
}

body.oc-login .oc-login-help p {
    font-size: 13px !important;
    color: #5a7369;
    text-align: center;
    margin: 0 0 6px !important;
    line-height: 1.4;
}

body.oc-login .oc-login-register {
    font-size: 13px !important;
    color: #3d5c52 !important;
}

body.oc-login .oc-login-note {
    font-size: 12px !important;
    color: #7a9188 !important;
    line-height: 1.4 !important;
    margin-bottom: 0 !important;
}

body.oc-login #register {
    color: #0f7a58 !important;
    font-weight: 700;
    text-decoration: underline;
}

body.oc-login #register:hover {
    color: #0b3d31 !important;
}

body.oc-login #loginModal .modal-content {
    border-radius: 10px;
    overflow: hidden;
}

/* Register for access — login modal */
body.oc-login #loginModal.oc-register-open .modal-dialog,
body.oc-theme #partialModal.oc-register-open .modal-dialog {
    max-width: 720px !important;
}

body.oc-login #loginModal.oc-register-open .modal-content,
body.oc-login #loginModal.oc-register-open .modal-body,
body.oc-theme #partialModal.oc-register-open .modal-content,
body.oc-theme #partialModal.oc-register-open .modal-body {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    overflow: visible !important;
}

body.oc-login .oc-register-modal,
body.oc-login .oc-register-form,
body.oc-login .oc-register-panel,
body.oc-theme .oc-register-modal,
body.oc-theme .oc-register-form,
body.oc-theme .oc-register-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-login .oc-register-panel,
body.oc-theme .oc-register-panel {
    display: flex !important;
    flex-direction: column;
    background: #fff;
    border: 1px solid #d7e5de;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.14);
}

body.oc-login .oc-register-header,
body.oc-theme .oc-register-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 26px 22px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
    border-bottom: 1px solid #d7e5de;
    color: #0b3d31;
}

body.oc-login .oc-register-header-icon,
body.oc-theme .oc-register-header-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f5ef;
    border: 1px solid #cfe5da;
    color: #0f7a58;
    flex-shrink: 0;
    font-size: 15px;
}

body.oc-login .oc-register-header-copy,
body.oc-theme .oc-register-header-copy {
    min-width: 0;
    flex: 1;
}

body.oc-login .oc-register-header-copy h4,
body.oc-theme .oc-register-header-copy h4 {
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #0b3d31 !important;
    line-height: 1.3 !important;
}

body.oc-login .oc-register-header-copy small,
body.oc-theme .oc-register-header-copy small {
    display: block;
    margin-top: 5px;
    font-size: 14px;
    font-weight: 500;
    color: #4f6a60;
    line-height: 1.35;
}

body.oc-login .oc-register-close-x,
body.oc-theme .oc-register-close-x {
    width: 32px;
    height: 32px;
    border: 1px solid #cfe5da;
    border-radius: 8px;
    background: #fff;
    color: #5a7369;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 14px;
}

body.oc-login .oc-register-close-x:hover,
body.oc-theme .oc-register-close-x:hover {
    background: #eef5f1;
    color: #0b3d31;
    border-color: #0f7a58;
}

body.oc-login .oc-register-body,
body.oc-theme .oc-register-body {
    padding: 22px 22px 10px;
    background: #fff;
}

body.oc-login .oc-register-grid,
body.oc-theme .oc-register-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 18px;
}

body.oc-login .oc-register-field,
body.oc-theme .oc-register-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

body.oc-login .oc-register-label,
body.oc-theme .oc-register-label {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #0b3d31;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

body.oc-login .oc-register-label i,
body.oc-theme .oc-register-label i {
    color: #0f7a58;
    width: 14px;
    text-align: center;
    font-size: 14px;
}

body.oc-login .oc-register-input,
body.oc-theme .oc-register-input {
    width: 100% !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 8px 12px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 15px !important;
    box-sizing: border-box;
}

body.oc-login .oc-register-input::placeholder,
body.oc-theme .oc-register-input::placeholder {
    color: #6b857a !important;
    opacity: 1;
}

body.oc-login .oc-register-input:focus,
body.oc-theme .oc-register-input:focus {
    outline: none !important;
    border-color: #0f7a58 !important;
    box-shadow: 0 0 0 3px rgba(15, 122, 88, 0.14) !important;
}

body.oc-login .oc-register-check-field,
body.oc-theme .oc-register-check-field {
    justify-content: flex-end;
}

body.oc-login .oc-register-check,
body.oc-theme .oc-register-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #d7e5de;
    border-radius: 8px;
    background: #f7faf8;
    font-size: 14px;
    font-weight: 500;
    color: #2f4f44;
    line-height: 1.45;
    cursor: pointer;
}

body.oc-login .oc-register-check input[type="checkbox"],
body.oc-theme .oc-register-check input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    margin: 2px 0 0 !important;
    flex-shrink: 0;
    accent-color: #0f7a58;
    cursor: pointer;
}

body.oc-login .oc-register-captcha,
body.oc-theme .oc-register-captcha {
    margin-top: 12px;
}

body.oc-login .oc-register-validation,
body.oc-theme .oc-register-validation {
    margin-top: 10px;
}

body.oc-login .oc-register-validation .validation-summary-valid,
body.oc-theme .oc-register-validation .validation-summary-valid {
    display: none;
}

body.oc-login .oc-register-validation .validation-summary-errors,
body.oc-login .oc-register-validation .text-danger,
body.oc-theme .oc-register-validation .validation-summary-errors,
body.oc-theme .oc-register-validation .text-danger {
    font-size: 13px;
    font-weight: 600;
    color: #c0392b !important;
    width: auto !important;
}

body.oc-login .oc-register-validation ul,
body.oc-theme .oc-register-validation ul {
    margin: 0;
    padding-left: 18px;
}

body.oc-login .oc-register-footer,
body.oc-theme .oc-register-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    padding: 18px 22px 22px;
    background: #fff;
    border-top: 1px solid #e6efea;
}

body.oc-login .oc-register-btn,
body.oc-theme .oc-register-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 18px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

body.oc-login .oc-register-btn-primary,
body.oc-theme .oc-register-btn-primary {
    background: linear-gradient(180deg, #1a8f68 0%, #127a58 100%) !important;
    border: 1px solid #0f6e4f !important;
    color: #fff !important;
    box-shadow: 0 2px 0 rgba(11, 61, 49, 0.12), 0 6px 14px rgba(15, 122, 88, 0.16) !important;
}

body.oc-login .oc-register-btn-primary:hover,
body.oc-theme .oc-register-btn-primary:hover {
    background: linear-gradient(180deg, #159567 0%, #0f6e4f 100%) !important;
    color: #fff !important;
}

body.oc-login .oc-register-btn-secondary,
body.oc-theme .oc-register-btn-secondary {
    background: #fff !important;
    border: 1px solid #c5d8ce !important;
    color: #0b6e4f !important;
}

body.oc-login .oc-register-btn-secondary:hover,
body.oc-theme .oc-register-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
    color: #0b3d31 !important;
}

@media (max-width: 640px) {
    body.oc-login .oc-register-grid,
    body.oc-theme .oc-register-grid {
        grid-template-columns: 1fr;
    }

    body.oc-login .oc-register-footer,
    body.oc-theme .oc-register-footer {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-height: 720px) {
    body.oc-login {
        justify-content: flex-start;
    }

    body.oc-login #frmloginPage,
    body.oc-login .oc-login-page {
        padding: 20px 16px 24px !important;
    }

    body.oc-login .oc-login-brand img {
        width: 150px !important;
    }
}

/* ===== Movement Detail page (matches Site List / Site Detail dashboard) ===== */
body.oc-theme .oc-movement-detail {
    /* uses .oc-dashboard grid from Site List / Site Detail */
    max-width: none;
    margin: 0;
    padding: 0;
}

body.oc-theme .oc-movement-detail .oc-md-side-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--oc-muted);
}

body.oc-theme .oc-movement-detail .oc-md-side-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(180deg, #e8f7f0 0%, #d5efe3 100%);
    border: 1px solid #b7d2c7;
    color: var(--oc-brand);
    box-shadow: 0 1px 3px rgba(12, 74, 62, 0.08);
}

body.oc-theme .oc-movement-detail .oc-md-side-icon i {
    font-size: 14px;
    line-height: 1;
}

body.oc-theme .oc-movement-detail .oc-md-side-site {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #d7e5de;
    border-radius: 8px;
    background: #f7faf8;
    font-size: 13px;
    font-weight: 600;
    color: #2f4f44;
    line-height: 1.4;
}

body.oc-theme .oc-movement-detail .oc-md-side-site i {
    color: var(--oc-brand);
    margin-top: 2px;
    flex-shrink: 0;
}

body.oc-theme .oc-movement-detail .oc-md-side-site label {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

body.oc-theme .oc-movement-detail .oc-md-main {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px 18px !important;
}

body.oc-theme .oc-md-panel {
    background: #fff;
    border: 1px solid var(--oc-line);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(12, 74, 62, 0.05);
    overflow: hidden;
    min-width: 0;
}

body.oc-theme .oc-md-panel-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(180deg, #f7faf8 0%, #eef5f1 100%);
    border-bottom: 1px solid #d7e5de;
}

body.oc-theme .oc-md-panel-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f5ef;
    border: 1px solid #cfe5da;
    color: #0f7a58;
    flex-shrink: 0;
    font-size: 14px;
}

body.oc-theme .oc-md-panel-copy h4 {
    margin: 0 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #0b3d31 !important;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.25 !important;
}

body.oc-theme .oc-md-panel-copy small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 500;
    color: #5a7369;
    line-height: 1.3;
}

body.oc-theme .oc-md-list {
    margin: 0;
    padding: 8px 16px 12px;
}

body.oc-theme .oc-md-row {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 10px 16px;
    align-items: start;
    padding: 10px 0;
    border-bottom: 1px solid #eef3f0;
}

body.oc-theme .oc-md-row:last-child {
    border-bottom: 0;
    padding-bottom: 4px;
}

body.oc-theme .oc-md-row dt {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--oc-muted);
    line-height: 1.4;
}

body.oc-theme .oc-md-row dd {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--oc-ink);
    line-height: 1.4;
    word-break: break-word;
}

body.oc-theme .oc-md-row dd label {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    display: inline;
}

body.oc-theme .oc-md-row-emphasis dd {
    font-size: 16px;
    font-weight: 700;
    color: var(--oc-brand);
}

body.oc-theme .oc-md-muted {
    color: var(--oc-muted);
    font-weight: 600;
}

body.oc-theme .oc-md-chart-card {
    min-height: 0;
}

body.oc-theme .oc-md-chart {
    width: 100%;
    max-width: 720px;
    height: 300px;
    margin: 8px auto 16px;
    position: relative;
    padding: 0 12px;
}

body.oc-theme .oc-md-chart canvas {
    width: 100% !important;
    height: 100% !important;
}

@media (max-width: 900px) {
    body.oc-theme .oc-md-row {
        grid-template-columns: 120px 1fr;
    }
}

@media (max-width: 992px) {
    body.oc-theme .oc-dashboard {
        grid-template-columns: 1fr;
    }
}

/* ===== Site Reports modal (compact, no scroll) ===== */
body.oc-theme #partialModal.oc-reports-open .modal-dialog {
    max-width: 920px !important;
    width: 920px !important;
    margin: auto !important;
}

@media (max-width: 920px) {
    body.oc-theme #partialModal.oc-reports-open .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme #partialModal.oc-reports-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.oc-theme #partialModal.oc-reports-open .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-reports-modal,
body.oc-theme .oc-reports-form,
body.oc-theme .oc-reports-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-reports-panel {
    display: flex !important;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(12, 74, 62, 0.14);
}

body.oc-theme .oc-reports-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
}

body.oc-theme .oc-reports-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-reports-header-main > i {
    font-size: 18px;
    opacity: 0.95;
    flex-shrink: 0;
}

body.oc-theme .oc-reports-header-main h4 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.25 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.oc-theme .oc-reports-close-x {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 15px;
}

body.oc-theme .oc-reports-close-x:hover {
    background: rgba(255, 255, 255, 0.22);
}

body.oc-theme .oc-reports-body {
    padding: 0;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    overflow: visible;
}

body.oc-theme .oc-reports-table {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: collapse;
    background: #fff;
    table-layout: fixed;
}

body.oc-theme .oc-reports-table thead th {
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #0b3d31;
    background: #e8f2ed;
    border: 0;
    border-bottom: 1px solid #c5d8ce;
    white-space: nowrap;
}

body.oc-theme .oc-reports-table thead th:nth-child(1) { width: 36%; }
body.oc-theme .oc-reports-table thead th:nth-child(2) { width: 48%; }
body.oc-theme .oc-reports-table thead th:nth-child(3) {
    width: 16%;
    text-align: center;
}

body.oc-theme .oc-reports-table tbody td {
    padding: 12px;
    vertical-align: middle;
    border-bottom: 1px solid #e6efea;
    background: #fff;
    font-size: 16px;
    color: #1f3b33;
}

body.oc-theme .oc-reports-table tbody tr:nth-child(even) td {
    background: #f7faf8;
}

body.oc-theme .oc-reports-table tbody tr:last-child td {
    border-bottom: 0;
}

body.oc-theme .oc-reports-name {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 600;
    color: #0b3d31;
    line-height: 1.3;
}

body.oc-theme .oc-reports-name > i {
    color: #0f7a58;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    font-size: 16px;
}

body.oc-theme .oc-reports-dates {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
}

body.oc-theme .oc-reports-date-pair {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

body.oc-theme .oc-reports-input,
body.oc-theme .oc-reports-select {
    height: 36px !important;
    margin: 0 !important;
    padding: 6px 10px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 15px !important;
    box-sizing: border-box;
    vertical-align: middle;
}

body.oc-theme .oc-reports-date-pair .oc-reports-input {
    width: 148px !important;
    max-width: 148px !important;
    display: inline-block !important;
}

body.oc-theme .oc-reports-select,
body.oc-theme .oc-reports-readonly {
    width: 280px !important;
    max-width: 100%;
    display: inline-block !important;
}

body.oc-theme .oc-reports-readonly {
    background: #f3f7f5 !important;
    color: #0b6e4f !important;
    font-weight: 600 !important;
}

body.oc-theme .oc-reports-input:focus,
body.oc-theme .oc-reports-select:focus {
    outline: none !important;
    border-color: #0f7a58 !important;
    box-shadow: 0 0 0 2px rgba(15, 122, 88, 0.12) !important;
}

body.oc-theme .oc-reports-date-pair .ui-datepicker-trigger {
    display: inline-block !important;
    margin: 0 !important;
    vertical-align: middle !important;
    cursor: pointer;
    width: 20px !important;
    height: 20px !important;
}

body.oc-theme .oc-reports-run {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 78px;
    height: 36px;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: #0f7a58 !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

body.oc-theme .oc-reports-run:hover {
    background: #0b6e4f !important;
    color: #fff !important;
}

body.oc-theme .oc-reports-table tbody td:last-child {
    text-align: center;
    white-space: nowrap;
}

body.oc-theme .oc-reports-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px 12px;
    background: #f7faf8;
    border-top: 1px solid #d7e5de;
    flex-shrink: 0;
}

body.oc-theme .oc-reports-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 16px !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

body.oc-theme .oc-reports-btn-secondary {
    background: #fff !important;
    border: 1px solid #c5d8ce !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-reports-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
    color: #0b3d31 !important;
}

/* ===== Site Waste Summary modal ===== */
body.oc-theme #partialModal.oc-summary-open .modal-dialog {
    max-width: 720px !important;
    width: 720px !important;
    margin: auto !important;
}

@media (max-width: 780px) {
    body.oc-theme #partialModal.oc-summary-open .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme #partialModal.oc-summary-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.oc-theme #partialModal.oc-summary-open .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-summary-modal,
body.oc-theme .oc-summary-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-summary-panel {
    display: flex !important;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(12, 74, 62, 0.14);
}

body.oc-theme .oc-summary-panel > form {
    display: flex;
    flex-direction: column;
    margin: 0;
}

body.oc-theme .oc-summary-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
}

body.oc-theme .oc-summary-header-main {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

body.oc-theme .oc-summary-header-main > i {
    font-size: 14px;
    flex-shrink: 0;
}

body.oc-theme .oc-summary-header-main h4 {
    margin: 0 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.25 !important;
}

body.oc-theme .oc-summary-close-x {
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 13px;
}

body.oc-theme .oc-summary-close-x:hover {
    background: rgba(255, 255, 255, 0.22);
}

body.oc-theme .oc-summary-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 12px;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
}

body.oc-theme .oc-summary-card {
    background: #fff;
    border: 1px solid #d7e5de;
    border-radius: 8px;
    overflow: hidden;
}

body.oc-theme .oc-summary-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid #e3eee8;
    background: #f7faf8;
}

body.oc-theme .oc-summary-card-head > i,
body.oc-theme .oc-summary-card-title > i {
    color: #0f7a58;
    font-size: 13px;
}

body.oc-theme .oc-summary-card-head h4,
body.oc-theme .oc-summary-card-title h4 {
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #0b3d31 !important;
    line-height: 1.2 !important;
}

body.oc-theme .oc-summary-carbon-head {
    justify-content: space-between;
}

body.oc-theme .oc-summary-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.oc-theme .oc-summary-scopes {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}

body.oc-theme .oc-summary-scope {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #3d5c52;
    white-space: nowrap;
    cursor: pointer;
}

body.oc-theme .oc-summary-scope input {
    margin: 0;
    width: 14px;
    height: 14px;
    accent-color: #0f7a58;
}

body.oc-theme .oc-summary-chart-wrap {
    height: 260px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 12px 12px;
    box-sizing: border-box;
}

body.oc-theme .oc-summary-chart-wrap canvas {
    width: 100% !important;
    height: 100% !important;
}

body.oc-theme .oc-summary-carbon-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 72px;
    padding: 16px 12px;
    color: #7a9188;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

body.oc-theme .oc-summary-carbon-empty > i {
    font-size: 15px;
    color: #9bb0a7;
}

body.oc-theme .oc-summary-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 8px 12px;
    background: #fff;
    border-top: 1px solid #d7e5de;
}

body.oc-theme .oc-summary-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 12px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

body.oc-theme .oc-summary-btn-secondary {
    background: #fff !important;
    border: 1px solid #c5d8ce !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-summary-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
    color: #0b3d31 !important;
}

/* All Sites waste summary — two chart cards side by side */
body.oc-theme #partialModal.oc-summary-open:has(.oc-summary-all-modal) .modal-dialog {
    max-width: 960px !important;
    width: 960px !important;
}

@media (max-width: 1020px) {
    body.oc-theme #partialModal.oc-summary-open:has(.oc-summary-all-modal) .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme .oc-summary-all-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

body.oc-theme .oc-summary-moves-head {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

body.oc-theme .oc-summary-year-select {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    white-space: nowrap;
}

body.oc-theme .oc-summary-year-select label {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #3d5c52;
}

body.oc-theme .oc-summary-select {
    height: 32px !important;
    min-width: 88px;
    padding: 4px 8px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 14px !important;
    box-sizing: border-box;
}

body.oc-theme .oc-summary-select:focus {
    outline: none !important;
    border-color: #0f7a58 !important;
    box-shadow: 0 0 0 2px rgba(15, 122, 88, 0.12) !important;
}

body.oc-theme .oc-summary-chart-wrap-wide {
    height: 280px !important;
}

body.oc-theme .oc-summary-all-modal .oc-summary-header-main > i {
    font-size: 16px;
}

body.oc-theme .oc-summary-all-modal .oc-summary-header-main h4 {
    font-size: 17px !important;
}

body.oc-theme .oc-summary-all-modal .oc-summary-card-head h4 {
    font-size: 15px !important;
}

@media (max-width: 900px) {
    body.oc-theme .oc-summary-all-grid {
        grid-template-columns: 1fr;
    }

    body.oc-theme .oc-summary-moves-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ===== Reset / Change Password modal ===== */
body.oc-theme #partialModal.oc-password-open .modal-dialog {
    max-width: 520px !important;
    width: 520px !important;
    margin: auto !important;
}

@media (max-width: 560px) {
    body.oc-theme #partialModal.oc-password-open .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme #partialModal.oc-password-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.oc-theme #partialModal.oc-password-open .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-password-modal,
body.oc-theme .oc-password-form,
body.oc-theme .oc-password-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-password-panel {
    display: flex !important;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(12, 74, 62, 0.14);
}

body.oc-theme .oc-password-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
}

body.oc-theme .oc-password-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-password-header-main > i {
    font-size: 18px;
    flex-shrink: 0;
}

body.oc-theme .oc-password-header-copy h4 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.2 !important;
}

body.oc-theme .oc-password-header-copy small {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.88);
}

body.oc-theme .oc-password-close-x {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 15px;
}

body.oc-theme .oc-password-close-x:hover {
    background: rgba(255, 255, 255, 0.22);
}

body.oc-theme .oc-password-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px 6px;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
}

body.oc-theme .oc-password-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.oc-theme .oc-password-label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #0b3d31;
}

body.oc-theme .oc-password-req {
    color: #c0392b;
    font-weight: 700;
}

body.oc-theme .oc-password-control {
    position: relative;
    display: flex;
    align-items: center;
}

body.oc-theme .oc-password-input {
    width: 100% !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 6px 42px 6px 12px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 14px !important;
    box-sizing: border-box;
}

body.oc-theme .oc-password-input:focus {
    outline: none !important;
    border-color: #0f7a58 !important;
    box-shadow: 0 0 0 3px rgba(15, 122, 88, 0.14) !important;
}

body.oc-theme .oc-password-field.is-invalid .oc-password-input,
body.oc-theme .oc-password-input.is-invalid {
    border-color: #c0392b !important;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12) !important;
}

body.oc-theme .oc-password-toggle {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #5a7a6e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

body.oc-theme .oc-password-toggle:hover {
    background: #eef5f1;
    color: #0b6e4f;
}

body.oc-theme .oc-password-error {
    min-height: 0;
    font-size: 12px;
    font-weight: 600;
    color: #c0392b;
    line-height: 1.25;
}

body.oc-theme .oc-password-error:empty {
    display: none;
}

body.oc-theme .oc-password-summary {
    margin-top: 0;
}

body.oc-theme .oc-password-summary:empty,
body.oc-theme .oc-password-summary .validation-summary-valid {
    display: none;
}

body.oc-theme .oc-password-summary .validation-summary-errors,
body.oc-theme .oc-password-summary .text-danger,
body.oc-theme .oc-password-server-error {
    font-size: 12px;
    font-weight: 600;
    color: #c0392b !important;
}

body.oc-theme .oc-password-summary ul {
    margin: 0;
    padding-left: 18px;
}

body.oc-theme .oc-password-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #fff;
    border-top: 1px solid #d7e5de;
}

body.oc-theme .oc-password-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

body.oc-theme .oc-password-btn-primary {
    background: #0f7a58 !important;
    border: 0 !important;
    color: #fff !important;
}

body.oc-theme .oc-password-btn-primary:hover {
    background: #0b6e4f !important;
    color: #fff !important;
}

body.oc-theme .oc-password-btn-secondary {
    background: #fff !important;
    border: 1px solid #c5d8ce !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-password-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
    color: #0b3d31 !important;
}

/* ===== Toast notifications ===== */
body.oc-theme .oc-toast-host {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 10050;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(380px, calc(100vw - 24px));
    pointer-events: none;
}

body.oc-theme .oc-toast {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #d7e5de;
    box-shadow: 0 12px 28px rgba(12, 74, 62, 0.18);
    opacity: 0;
    transform: translateX(18px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: auto;
}

body.oc-theme .oc-toast.is-visible {
    opacity: 1;
    transform: translateX(0);
}

body.oc-theme .oc-toast.is-leaving {
    opacity: 0;
    transform: translateX(18px);
}

body.oc-theme .oc-toast-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 15px;
}

body.oc-theme .oc-toast-body {
    flex: 1 1 auto;
    min-width: 0;
}

body.oc-theme .oc-toast-title {
    font-size: 14px;
    font-weight: 700;
    color: #0b3d31;
    margin-bottom: 2px;
}

body.oc-theme .oc-toast-message {
    font-size: 14px;
    line-height: 1.35;
    color: #2f4f45;
}

body.oc-theme .oc-toast-close {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #6a857a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
}

body.oc-theme .oc-toast-close:hover {
    background: #eef5f1;
    color: #0b3d31;
}

body.oc-theme .oc-toast-success {
    border-left: 4px solid #0f7a58;
}

body.oc-theme .oc-toast-success .oc-toast-icon {
    background: #e8f5ef;
    color: #0f7a58;
}

body.oc-theme .oc-toast-error {
    border-left: 4px solid #c0392b;
}

body.oc-theme .oc-toast-error .oc-toast-icon {
    background: #fdecea;
    color: #c0392b;
}

body.oc-theme .oc-toast-warning {
    border-left: 4px solid #d68910;
}

body.oc-theme .oc-toast-warning .oc-toast-icon {
    background: #fef5e7;
    color: #d68910;
}

body.oc-theme .oc-toast-info {
    border-left: 4px solid #2471a3;
}

body.oc-theme .oc-toast-info .oc-toast-icon {
    background: #eaf2f8;
    color: #2471a3;
}

/* ===== Professional jquery-confirm alerts ===== */
body.oc-theme .jconfirm.jconfirm-modern .jconfirm-box,
body.oc-theme .jconfirm .jconfirm-box {
    border-radius: 12px !important;
    border: 1px solid #d7e5de !important;
    box-shadow: 0 16px 36px rgba(12, 74, 62, 0.2) !important;
    padding: 18px 18px 14px !important;
}

body.oc-theme .jconfirm .jconfirm-title-c {
    margin-bottom: 8px !important;
}

body.oc-theme .jconfirm .jconfirm-title {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #0b3d31 !important;
}

body.oc-theme .jconfirm .jconfirm-content {
    font-size: 15px !important;
    line-height: 1.45 !important;
    color: #2f4f45 !important;
}

body.oc-theme .jconfirm .jconfirm-buttons {
    padding-top: 12px !important;
}

body.oc-theme .jconfirm .jconfirm-buttons button.oc-jconfirm-ok,
body.oc-theme .jconfirm .jconfirm-buttons button.btn-green {
    background: #0f7a58 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 8px !important;
    min-height: 36px;
    padding: 8px 16px !important;
    font-weight: 700 !important;
}

body.oc-theme .jconfirm .jconfirm-buttons button.oc-jconfirm-ok:hover,
body.oc-theme .jconfirm .jconfirm-buttons button.btn-green:hover {
    background: #0b6e4f !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-green {
    border-top: 4px solid #0f7a58 !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-red {
    border-top: 4px solid #c0392b !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-orange {
    border-top: 4px solid #d68910 !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-blue {
    border-top: 4px solid #2471a3 !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c {
    color: #0f7a58 !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c {
    color: #c0392b !important;
}

body.oc-theme .jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c {
    color: #d68910 !important;
}

/* ===== Supplier Licenses modal ===== */
body.oc-theme #partialModal.oc-licenses-open .modal-dialog {
    max-width: 860px !important;
    width: 860px !important;
    margin: auto !important;
}

@media (max-width: 920px) {
    body.oc-theme #partialModal.oc-licenses-open .modal-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
    }
}

body.oc-theme #partialModal.oc-licenses-open .modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.oc-theme #partialModal.oc-licenses-open .modal-body {
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
}

body.oc-theme .oc-licenses-modal,
body.oc-theme .oc-licenses-panel {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.oc-theme .oc-licenses-panel {
    display: flex !important;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #d7e5de;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(12, 74, 62, 0.14);
}

body.oc-theme .oc-licenses-panel > form {
    display: flex;
    flex-direction: column;
    margin: 0;
}

body.oc-theme .oc-licenses-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #0f7a58 0%, #0b6e4f 100%);
    color: #fff;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
}

body.oc-theme .oc-licenses-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.oc-theme .oc-licenses-header-main > i {
    font-size: 16px;
    flex-shrink: 0;
}

body.oc-theme .oc-licenses-header-main h4 {
    margin: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.25 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.oc-theme .oc-licenses-close-x {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
}

body.oc-theme .oc-licenses-close-x:hover {
    background: rgba(255, 255, 255, 0.22);
}

body.oc-theme .oc-licenses-body {
    padding: 10px 12px 0;
    background: linear-gradient(180deg, #f4f8f6 0%, #eef5f1 100%);
}

body.oc-theme .oc-licenses-table-wrap {
    background: #fff;
    border: 1px solid #d7e5de;
    border-radius: 8px;
    overflow: hidden;
    margin: 0 !important;
    padding: 0;
}

body.oc-theme .oc-licenses-modal .dataTables_wrapper {
    width: 100%;
    padding: 0;
    margin: 0;
}

body.oc-theme .oc-licenses-modal .oc-licenses-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    margin: 0;
    border-bottom: 1px solid #e6efea;
    background: #f7faf8;
}

body.oc-theme .oc-licenses-modal .dataTables_length {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.oc-theme .oc-licenses-modal .dataTables_length label {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #3d5c52 !important;
    white-space: nowrap;
}

body.oc-theme .oc-licenses-modal .dataTables_length select {
    height: 30px !important;
    min-width: 64px;
    margin: 0 4px !important;
    padding: 2px 8px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #1f3b33 !important;
    font-size: 13px !important;
}

body.oc-theme .oc-licenses-table {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: collapse;
    font-size: 14px !important;
}

body.oc-theme .oc-licenses-table thead th {
    padding: 9px 12px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff !important;
    background: #0b6e4f !important;
    border: 0 !important;
    white-space: nowrap;
    text-align: left !important;
}

body.oc-theme .oc-licenses-table thead th:nth-child(4),
body.oc-theme .oc-licenses-table thead th:nth-child(5) {
    text-align: center !important;
}

body.oc-theme .oc-licenses-table tbody td {
    padding: 9px 12px !important;
    vertical-align: middle !important;
    border-top: 1px solid #e6efea !important;
    color: #1f3b33;
    font-size: 14px !important;
    background: #fff;
    text-align: left !important;
}

body.oc-theme .oc-licenses-table tbody td:nth-child(4),
body.oc-theme .oc-licenses-table tbody td:nth-child(5) {
    text-align: center !important;
}

body.oc-theme .oc-licenses-table tbody tr:nth-child(even) td {
    background: #f7faf8;
}

body.oc-theme .oc-licenses-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #e8f5ef;
    border: 1px solid #cfe5da;
    color: #0b6e4f;
    font-size: 12px;
    font-weight: 700;
}

body.oc-theme .oc-licenses-view {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #0f7a58 !important;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
}

body.oc-theme .oc-licenses-view:hover {
    color: #0b3d31 !important;
    text-decoration: underline !important;
}

body.oc-theme .oc-licenses-modal .oc-licenses-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 10px;
    margin: 0;
    border-top: 1px solid #e6efea;
    background: #f7faf8;
    min-height: 0;
}

body.oc-theme .oc-licenses-modal .dataTables_info {
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 600;
    color: #4d6b60 !important;
    line-height: 1.3;
    text-align: left;
}

body.oc-theme .oc-licenses-modal .dataTables_paginate {
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: right;
}

body.oc-theme .oc-licenses-modal .dataTables_paginate .paginate_button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    margin: 0 2px !important;
    padding: 0 8px !important;
    border: 1px solid #c5d8ce !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #0b6e4f !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    cursor: pointer;
}

body.oc-theme .oc-licenses-modal .dataTables_paginate .paginate_button.current {
    background: #0f7a58 !important;
    border-color: #0f7a58 !important;
    color: #fff !important;
}

body.oc-theme .oc-licenses-modal .dataTables_paginate .paginate_button.disabled {
    opacity: 0.45;
    cursor: default;
}

body.oc-theme .oc-licenses-modal .dataTables_paginate .paginate_button:not(.disabled):not(.current):hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
}

body.oc-theme .oc-licenses-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px 12px;
    background: #fff;
    border-top: 1px solid #d7e5de;
}

body.oc-theme .oc-licenses-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 14px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

body.oc-theme .oc-licenses-btn-secondary {
    background: #fff !important;
    border: 1px solid #c5d8ce !important;
    color: #0b6e4f !important;
}

body.oc-theme .oc-licenses-btn-secondary:hover {
    background: #eef8f3 !important;
    border-color: #0f7a58 !important;
    color: #0b3d31 !important;
}

/* ===== Sustainability dashboard ===== */
body.oc-theme .oc-sustain {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 2px 2px 24px;
}

body.oc-theme .oc-sustain-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px 28px;
    padding: 20px 22px;
    border-radius: 14px;
    background:
        linear-gradient(135deg, #eef8f3 0%, #ffffff 48%, #eef4f8 100%);
    border: 1px solid #cfe0d7;
    box-shadow: 0 8px 24px rgba(11, 61, 49, 0.05);
}

body.oc-theme .oc-sustain-eyebrow {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-hero h1 {
    margin: 0 0 6px;
    font-size: 1.6rem;
    font-weight: 700;
    color: #0b3d31;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

body.oc-theme .oc-sustain-lead {
    margin: 0;
    max-width: 40rem;
    color: #4a5c56;
    font-size: 0.94rem;
    line-height: 1.45;
}

body.oc-theme .oc-sustain-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
}

body.oc-theme .oc-sustain-filter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 168px;
}

body.oc-theme .oc-sustain-filter-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-select {
    min-height: 42px;
    min-width: 180px;
    padding: 8px 12px;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    background: #fff;
    color: #0b3d31;
    font-size: 13px;
    font-weight: 500;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.oc-theme #dashSite.oc-sustain-select {
    min-width: 260px;
}

body.oc-theme .oc-sustain-select:hover {
    border-color: #9fc2b3;
}

body.oc-theme .oc-sustain-select:focus {
    outline: none;
    border-color: #0b6e4f;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.16);
}

body.oc-theme .oc-sustain-scope-filter {
    min-width: 280px;
}

body.oc-theme .oc-sustain-scope-combo {
    position: relative;
    min-width: 260px;
}

body.oc-theme .oc-sustain-scope-native {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.oc-theme .oc-sustain-scope-input {
    display: block;
    width: 100%;
    min-height: 42px;
    min-width: 260px;
    padding: 8px 12px;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    background: #fff;
    color: #0b3d31;
    font-size: 13px;
    font-weight: 500;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}

body.oc-theme .oc-sustain-scope-input:hover {
    border-color: #9fc2b3;
}

body.oc-theme .oc-sustain-scope-input:focus {
    outline: none;
    border-color: #0b6e4f;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.16);
}

body.oc-theme .oc-sustain-scope-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 120;
    max-height: 280px;
    overflow: auto;
    margin: 0;
    padding: 6px;
    list-style: none;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(12, 74, 62, 0.12);
}

body.oc-theme .oc-sustain-scope-option {
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: #0b3d31;
    cursor: pointer;
    line-height: 1.35;
}

body.oc-theme .oc-sustain-scope-option:hover,
body.oc-theme .oc-sustain-scope-option.is-selected {
    background: #eef8f3;
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-scope-empty {
    padding: 8px 10px;
    font-size: 12px;
    color: #5a6b65;
}

/* Larger custom checkbox */
body.oc-theme .oc-sustain-check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 4px 0 2px;
    margin: 0;
    cursor: pointer;
    user-select: none;
}

body.oc-theme .oc-sustain-check-input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
}

body.oc-theme .oc-sustain-check-box {
    width: 22px;
    height: 22px;
    border: 2px solid #8fb5a4;
    border-radius: 6px;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

body.oc-theme .oc-sustain-check-box::after {
    content: "";
    width: 6px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg) scale(0);
    transition: transform 0.12s ease;
    margin-top: -2px;
}

body.oc-theme .oc-sustain-check-input:checked + .oc-sustain-check-box {
    background: #0b6e4f;
    border-color: #0b6e4f;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.14);
}

body.oc-theme .oc-sustain-check-input:checked + .oc-sustain-check-box::after {
    transform: rotate(45deg) scale(1);
}

body.oc-theme .oc-sustain-check-input:focus-visible + .oc-sustain-check-box {
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.22);
}

body.oc-theme .oc-sustain-check-text {
    font-size: 13px;
    font-weight: 600;
    color: #0b3d31;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-refresh {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 16px !important;
    border-radius: 10px !important;
    border: 1px solid #0a5c42 !important;
    background: linear-gradient(180deg, #12986d 0%, #0b6e4f 100%) !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    box-shadow: 0 6px 14px rgba(11, 110, 79, 0.22) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

body.oc-theme .oc-sustain-refresh:hover {
    background: linear-gradient(180deg, #14a678 0%, #095c42 100%) !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(11, 110, 79, 0.28) !important;
}

body.oc-theme .oc-sustain-refresh.is-spinning i {
    animation: oc-sustain-spin 0.7s linear infinite;
}

@keyframes oc-sustain-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

body.oc-theme .oc-sustain-empty {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: 12px;
    border: 1px solid #d7e5de;
    background: #f7fbf9;
    color: #0b3d31;
}

body.oc-theme .oc-sustain-empty i {
    color: #0b6e4f;
    font-size: 22px;
    margin-top: 2px;
}

body.oc-theme .oc-sustain-empty p {
    margin: 4px 0 0;
    color: #4a5c56;
}

body.oc-theme .oc-sustain-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

body.oc-theme .oc-sustain-kpis-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

body.oc-theme .oc-sustain-kpis-note {
    margin: 0;
    padding: 0 2px;
    font-size: 13px;
    font-weight: 500;
    color: #5a6b65;
    line-height: 1.55;
    overflow: visible;
}

body.oc-theme .oc-sustain-kpis-note.is-populated {
    display: block;
}

body.oc-theme .oc-sustain-kpis-note[hidden] {
    display: none !important;
}

body.oc-theme .oc-sustain-scope-line {
    display: block;
    margin: 0;
    color: #5a6b65;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
}

body.oc-theme .oc-sustain-meta-prefix,
body.oc-theme .oc-sustain-meta-suffix {
    color: #5a6b65;
    font-weight: 500;
}

body.oc-theme .oc-sustain-site-label {
    display: inline;
    color: #0b3d31;
    font-weight: 700;
    font-size: inherit;
    line-height: inherit;
    cursor: pointer;
    border-bottom: 1px dashed rgba(11, 110, 79, 0.35);
    transition: color 0.15s ease, border-color 0.15s ease;
}

body.oc-theme .oc-sustain-site-label:hover,
body.oc-theme .oc-sustain-site-label:focus-visible {
    color: #0b6e4f;
    border-bottom-color: #0b6e4f;
    outline: none;
}

body.oc-theme .oc-sustain-site-label i {
    margin-right: 5px;
    color: #0b6e4f;
    font-size: 0.92em;
}

body.oc-theme .oc-sustain-meta-year {
    color: #2f5f95;
    font-weight: 700;
}

body.oc-theme .oc-sustain-meta-customer {
    color: #8a5c28;
    font-weight: 700;
}

body.oc-theme .oc-sustain-meta-sep {
    display: inline-block;
    margin: 0 8px;
    color: #b7c5bf;
    font-weight: 500;
}

body.oc-theme .oc-sustain-site-context-value {
    min-width: 0;
    margin-top: 2px;
}

body.oc-theme .oc-sustain-site-context-value .oc-sustain-site-label {
    font-size: 14px;
}

body.oc-theme .oc-sustain-kpis.is-loading {
    opacity: 0.72;
    pointer-events: none;
}

body.oc-theme .oc-sustain-site-gated {
    position: relative;
}

body.oc-theme .oc-sustain-site-gated.is-locked .oc-sustain-site-gate-body {
    filter: blur(3px);
    opacity: 0.48;
    pointer-events: none;
    user-select: none;
}

body.oc-theme .oc-sustain-site-gate-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    padding: 24px;
    text-align: center;
    background: rgba(255, 255, 255, 0.58);
    border-radius: inherit;
}

body.oc-theme .oc-sustain-site-gated.is-locked .oc-sustain-site-gate-overlay {
    display: flex;
}

body.oc-theme .oc-sustain-site-gate-overlay strong {
    color: #0b3d31;
    font-size: 15px;
}

body.oc-theme .oc-sustain-site-gate-overlay p {
    margin: 0;
    max-width: 340px;
    color: #4a5c56;
    font-size: 13px;
    line-height: 1.45;
}

body.oc-theme .oc-sustain-site-gate-overlay em {
    font-style: normal;
    font-weight: 700;
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-tonnes-block.oc-sustain-site-gated,
body.oc-theme .oc-sustain-kpis-wrap.oc-sustain-site-gated {
    border-radius: 14px;
}

body.oc-theme .oc-sustain-tonnes-block.oc-sustain-site-gated.is-locked,
body.oc-theme .oc-sustain-kpis-wrap.oc-sustain-site-gated.is-locked {
    overflow: hidden;
}

body.oc-theme .oc-sustain-kpis-wrap > .oc-sustain-site-gate-body {
    padding: 2px 4px 0;
}

body.oc-theme .oc-sustain-card.oc-sustain-site-gated > .oc-sustain-site-gate-body {
    min-height: 100%;
}

body.oc-theme .oc-sustain-pick-site {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
    padding: 16px 18px;
    border: 1px solid #cfe0d7;
    border-radius: 14px;
    background: linear-gradient(180deg, #f7fbf9 0%, #eef8f3 100%);
    box-shadow: 0 4px 16px rgba(11, 110, 79, 0.06);
}

body.oc-theme .oc-sustain-pick-site[hidden] {
    display: none !important;
}

body.oc-theme .oc-sustain-pick-site-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(145deg, #1bb57f, #0b6e4f);
    color: #fff;
    font-size: 18px;
    flex: 0 0 auto;
}

body.oc-theme .oc-sustain-pick-site strong {
    display: block;
    margin-bottom: 4px;
    color: #0b3d31;
    font-size: 15px;
}

body.oc-theme .oc-sustain-pick-site p {
    margin: 0;
    color: #4a5c56;
    font-size: 13px;
    line-height: 1.45;
}

body.oc-theme .oc-sustain-pick-site em {
    font-style: normal;
    font-weight: 700;
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-site-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    padding: 12px 16px;
    border: 1px solid #c5d8ce;
    border-radius: 12px;
    background: #fff;
}

body.oc-theme .oc-sustain-site-context[hidden] {
    display: none !important;
}

body.oc-theme .oc-sustain-site-context-copy {
    min-width: 0;
}

body.oc-theme .oc-sustain-site-context-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-site-context-copy strong,
body.oc-theme .oc-sustain-site-context-value {
    display: block;
    min-width: 0;
    color: #0b3d31;
    font-size: 14px;
}

body.oc-theme .oc-sustain-site-context-value {
    overflow: visible;
    white-space: normal;
}

body.oc-theme .oc-sustain-site-context-change {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    background: #f7faf8;
    color: #0b6e4f;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-site-context-change:hover {
    border-color: #0b6e4f;
    background: #eef8f3;
}

body.oc-theme .oc-sustain-scope-combo.is-required .oc-sustain-scope-input {
    border-color: #0b6e4f;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.12);
}

body.oc-theme .oc-sustain-scope-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-scope-badge.is-site {
    background: #eef8f3;
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-scope-badge.is-year {
    background: #edf3fa;
    color: #2f5f95;
}

body.oc-theme .oc-sustain-scope-badge.is-customer {
    background: #f5f0ea;
    color: #8a5c28;
}

body.oc-theme .oc-sustain-card-head-badges {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

body.oc-theme .oc-sustain-scope-option.is-scope-hint {
    color: #5a6b65;
    font-size: 12px;
    font-weight: 600;
    cursor: default;
    background: transparent !important;
}

body.oc-theme .oc-sustain-tonnes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

body.oc-theme .oc-sustain-kpi {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    border: 1px solid #d7e5de;
    background: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

body.oc-theme .oc-sustain-kpi:hover,
body.oc-theme .oc-sustain-kpi:focus-visible {
    transform: translateY(-2px);
    border-color: #b7d2c7;
    box-shadow: 0 10px 22px rgba(11, 61, 49, 0.1);
    outline: none;
}

body.oc-theme .oc-sustain-kpi.is-updating {
    animation: oc-sustain-kpi-pulse 0.45s ease;
}

@keyframes oc-sustain-kpi-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.015); }
    100% { transform: scale(1); }
}

body.oc-theme .oc-sustain-kpi-copy {
    min-width: 0;
}

body.oc-theme .oc-sustain-kpi small,
body.oc-theme .oc-sustain-tonne small {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #5a6b65;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

body.oc-theme .oc-sustain-kpi strong,
body.oc-theme .oc-sustain-tonne strong {
    display: block;
    margin-top: 2px;
    font-size: 1.55rem;
    font-weight: 700;
    color: #0b3d31;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}

body.oc-theme .oc-sustain-kpi-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
    font-size: 18px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

body.oc-theme .oc-sustain-kpi-recycle .oc-sustain-kpi-icon { background: linear-gradient(145deg, #1bb57f, #0b6e4f); }
body.oc-theme .oc-sustain-kpi-energy .oc-sustain-kpi-icon { background: linear-gradient(145deg, #4f86c6, #2f5f95); }
body.oc-theme .oc-sustain-kpi-landfill .oc-sustain-kpi-icon { background: linear-gradient(145deg, #d9783b, #b45309); }

body.oc-theme .oc-sustain-tonne {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid #d7e5de;
    background: #f7fbf9;
}

body.oc-theme .oc-sustain-tonnes-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px 16px;
    border-radius: 14px;
    border: 1px solid #d7e5de;
    background: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

body.oc-theme .oc-sustain-tonnes-hint {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px dashed #b7c9df;
    background: linear-gradient(180deg, #f5f8fc 0%, #eef4fb 100%);
    color: #1e3f6b;
}

body.oc-theme .oc-sustain-tonnes-hint[hidden] {
    display: none !important;
}

body.oc-theme .oc-sustain-tonnes-hint i {
    margin-top: 2px;
    color: #3b6ea5;
    font-size: 18px;
}

body.oc-theme .oc-sustain-tonnes-hint strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
}

body.oc-theme .oc-sustain-tonnes-hint p {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #3f5678;
}

body.oc-theme .oc-sustain-tonnes-hint em {
    font-style: normal;
    font-weight: 700;
    color: #1e3f6b;
}

body.oc-theme .oc-sustain-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

body.oc-theme .oc-sustain-section-head h3 {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    color: #0b3d31;
}

body.oc-theme .oc-sustain-section-head p {
    margin: 3px 0 0;
    font-size: 12px;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-card-badges {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

body.oc-theme .oc-sustain-card-year {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 4px 8px 4px 10px;
    border-radius: 10px;
    border: 1px solid #c5d4e8;
    background: #eef4fb;
    color: #2f5f95;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

body.oc-theme .oc-sustain-year-select {
    min-height: 30px;
    min-width: 84px;
    padding: 4px 8px;
    border: 1px solid #b7c9df;
    border-radius: 8px;
    background: #fff;
    color: #1e3f6b;
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

body.oc-theme .oc-sustain-year-select:focus {
    outline: none;
    border-color: #3b6ea5;
    box-shadow: 0 0 0 3px rgba(59, 110, 165, 0.16);
}

body.oc-theme .oc-sustain-year-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eef4fb;
    border: 1px solid #c5d4e8;
    color: #2f5f95;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-year-badge strong {
    font-weight: 800;
    color: #1e3f6b;
    font-variant-numeric: tabular-nums;
}

body.oc-theme .oc-sustain-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}

body.oc-theme .oc-sustain-card {
    position: relative;
    border: 1px solid #d7e5de;
    border-radius: 14px;
    background: #fff;
    padding: 16px 18px 18px;
    min-height: 340px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    overflow: hidden;
}

body.oc-theme .oc-sustain-card:hover {
    border-color: #bfd6cb;
    box-shadow: 0 12px 28px rgba(11, 61, 49, 0.08);
}

body.oc-theme .oc-sustain-card-half {
    grid-column: span 1;
    min-height: 360px;
}

body.oc-theme .oc-sustain-card-wide {
    grid-column: 1 / -1;
    min-height: 300px;
}

body.oc-theme .oc-sustain-card.is-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(238, 248, 243, 0.55), transparent);
    background-size: 200% 100%;
    animation: oc-sustain-shimmer 1.1s linear infinite;
    pointer-events: none;
}

@keyframes oc-sustain-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

body.oc-theme .oc-sustain-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

body.oc-theme .oc-sustain-card-head h2 {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 700;
    color: #0b3d31;
}

body.oc-theme .oc-sustain-card-head p {
    margin: 4px 0 0;
    font-size: 12px;
    color: #5a6b65;
    line-height: 1.35;
}

body.oc-theme .oc-sustain-card-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eef8f3;
    border: 1px solid #cfe0d7;
    color: #0b6e4f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-chart-wrap {
    position: relative;
    height: 300px;
}

body.oc-theme .oc-sustain-waste-layout {
    display: grid;
    grid-template-columns: minmax(140px, 42%) minmax(0, 1fr);
    gap: 14px 16px;
    align-items: center;
    min-height: 280px;
}

body.oc-theme .oc-sustain-waste-chart {
    position: relative;
    height: 220px;
    min-height: 200px;
}

body.oc-theme .oc-sustain-waste-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 280px;
    overflow: auto;
    padding-right: 2px;
}

body.oc-theme .oc-sustain-waste-empty {
    padding: 16px;
    border-radius: 10px;
    background: #f7fbf9;
    border: 1px dashed #cfe0d7;
    color: #5a6b65;
    font-size: 13px;
}

body.oc-theme .oc-sustain-waste-row {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #e4eee9;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body.oc-theme .oc-sustain-waste-row:hover,
body.oc-theme .oc-sustain-waste-row.is-active,
body.oc-theme .oc-sustain-waste-row:focus-visible {
    border-color: #b7d2c7;
    background: #f7fbf9;
    box-shadow: 0 4px 12px rgba(11, 61, 49, 0.08);
    outline: none;
    transform: translateY(-1px);
}

body.oc-theme .oc-sustain-waste-swatch {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

body.oc-theme .oc-sustain-waste-meta {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.oc-theme .oc-sustain-waste-name {
    font-size: 12px;
    font-weight: 600;
    color: #0b3d31;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.oc-theme .oc-sustain-waste-bar {
    display: block;
    height: 5px;
    border-radius: 999px;
    background: #e8f0ec;
    overflow: hidden;
}

body.oc-theme .oc-sustain-waste-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    max-width: 100%;
}

body.oc-theme .oc-sustain-waste-pct {
    font-size: 13px;
    font-weight: 700;
    color: #0b3d31;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

body.oc-theme .oc-sustain-chart-tall {
    height: 250px;
}

body.oc-theme #cardMoves .oc-sustain-chart-tall {
    height: 236px;
}

body.oc-theme .oc-sustain-moves-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 12px;
}

body.oc-theme .oc-sustain-moves-stat {
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e4eee9;
    background: linear-gradient(180deg, #f7fbf9 0%, #ffffff 100%);
}

body.oc-theme .oc-sustain-moves-stat small {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-moves-stat strong {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    font-weight: 700;
    color: #0b3d31;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}

body.oc-theme .oc-sustain-table-wrap {
    max-height: 340px;
    overflow: auto;
    border: 1px solid #e4eee9;
    border-radius: 10px;
}

body.oc-theme .oc-sustain-sites-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 12px;
}

body.oc-theme .oc-sustain-sites-stat {
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #e4eee9;
    background: linear-gradient(180deg, #f7fbf9 0%, #ffffff 100%);
}

body.oc-theme .oc-sustain-sites-stat small {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-sites-stat strong {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 700;
    color: #0b3d31;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.oc-theme .oc-sustain-sites-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
}

body.oc-theme .oc-sustain-sites-search {
    position: relative;
    flex: 1 1 240px;
    min-width: 200px;
}

body.oc-theme .oc-sustain-sites-search i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #7a8f86;
    font-size: 13px;
    pointer-events: none;
}

body.oc-theme .oc-sustain-sites-search input {
    width: 100%;
    min-height: 40px;
    padding: 8px 12px 8px 34px;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    background: #fff;
    color: #0b3d31;
    font-size: 13px;
}

body.oc-theme .oc-sustain-sites-search input:focus {
    outline: none;
    border-color: #0b6e4f;
    box-shadow: 0 0 0 3px rgba(11, 110, 79, 0.14);
}

body.oc-theme .oc-sustain-sites-sort {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border-radius: 10px;
    background: #eef8f3;
    border: 1px solid #d7e5de;
}

body.oc-theme .oc-sustain-sites-sort-btn {
    min-height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #4a5c56;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

body.oc-theme .oc-sustain-sites-sort-btn.is-active {
    background: #fff;
    color: #0b6e4f;
    box-shadow: 0 1px 4px rgba(11, 61, 49, 0.12);
}

body.oc-theme .oc-sustain-sites-clear {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid #c5d8ce;
    background: #fff;
    color: #0b3d31;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

body.oc-theme .oc-sustain-sites-clear:hover {
    border-color: #0b6e4f;
    color: #0b6e4f;
    background: #eef8f3;
}

body.oc-theme .oc-sustain-sites-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-height: 420px;
    overflow: auto;
    padding-right: 2px;
}

body.oc-theme .oc-sustain-sites-empty {
    grid-column: 1 / -1;
    padding: 18px;
    border-radius: 12px;
    border: 1px dashed #cfe0d7;
    background: #f7fbf9;
    color: #5a6b65;
    text-align: center;
}

body.oc-theme .oc-sustain-site-row {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto 28px;
    gap: 10px;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 12px 12px 12px 10px;
    border: 1px solid #e4eee9;
    border-radius: 12px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

body.oc-theme .oc-sustain-site-row:hover,
body.oc-theme .oc-sustain-site-row:focus-visible {
    transform: translateY(-1px);
    border-color: #b7d2c7;
    background: #f7fbf9;
    box-shadow: 0 8px 18px rgba(11, 61, 49, 0.08);
    outline: none;
}

body.oc-theme .oc-sustain-site-row.is-selected {
    border-color: #0b6e4f;
    background: #eef8f3;
    box-shadow: inset 3px 0 0 #0b6e4f, 0 8px 18px rgba(11, 61, 49, 0.1);
}

body.oc-theme .oc-sustain-site-row.is-zero {
    opacity: 0.78;
}

body.oc-theme .oc-sustain-site-rank {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef8f3;
    color: #0b6e4f;
    font-size: 12px;
    font-weight: 700;
}

body.oc-theme .oc-sustain-site-row.is-selected .oc-sustain-site-rank {
    background: #0b6e4f;
    color: #fff;
}

body.oc-theme .oc-sustain-site-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

body.oc-theme .oc-sustain-site-name {
    font-size: 13px;
    font-weight: 700;
    color: #0b3d31;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.oc-theme .oc-sustain-site-meta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #5a6b65;
    font-size: 11px;
    font-weight: 600;
}

body.oc-theme .oc-sustain-site-meta i {
    color: #0b6e4f;
}

body.oc-theme .oc-sustain-site-bar {
    display: block;
    height: 6px;
    border-radius: 999px;
    background: #e8f0ec;
    overflow: hidden;
}

body.oc-theme .oc-sustain-site-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #12986d 0%, #0b6e4f 100%);
    max-width: 100%;
    transition: width 0.35s ease;
}

body.oc-theme .oc-sustain-site-row.is-zero .oc-sustain-site-bar i {
    background: #c5d8ce;
}

body.oc-theme .oc-sustain-site-metrics {
    text-align: right;
    min-width: 108px;
}

body.oc-theme .oc-sustain-site-metrics strong,
body.oc-theme .oc-sustain-site-tonnage {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 5px;
    font-size: 14px;
    font-weight: 700;
    color: #0b3d31;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

body.oc-theme .oc-sustain-site-tonnage-value {
    font-size: 15px;
}

body.oc-theme .oc-sustain-site-tonnage-unit {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-site-metrics small {
    display: block;
    margin-top: 3px;
    font-size: 10px;
    font-weight: 600;
    color: #5a6b65;
}

body.oc-theme .oc-sustain-site-action {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #7a8f86;
    background: #f3f8f5;
}

body.oc-theme .oc-sustain-site-row:hover .oc-sustain-site-action,
body.oc-theme .oc-sustain-site-row.is-selected .oc-sustain-site-action {
    color: #fff;
    background: #0b6e4f;
}

@media (max-width: 1100px) {
    body.oc-theme .oc-sustain-kpis,
    body.oc-theme .oc-sustain-tonnes,
    body.oc-theme .oc-sustain-sites-stats {
        grid-template-columns: 1fr 1fr;
    }

    body.oc-theme .oc-sustain-grid {
        grid-template-columns: 1fr;
    }

    body.oc-theme .oc-sustain-card-half,
    body.oc-theme .oc-sustain-card-wide {
        grid-column: auto;
    }

    body.oc-theme .oc-sustain-waste-layout {
        grid-template-columns: minmax(160px, 36%) minmax(0, 1fr);
    }

    body.oc-theme .oc-sustain-sites-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    body.oc-theme .oc-sustain-kpis,
    body.oc-theme .oc-sustain-tonnes,
    body.oc-theme .oc-sustain-sites-stats {
        grid-template-columns: 1fr;
    }

    body.oc-theme #dashSite.oc-sustain-select,
    body.oc-theme .oc-sustain-select,
    body.oc-theme .oc-sustain-scope-input,
    body.oc-theme .oc-sustain-scope-combo {
        min-width: 0;
        width: 100%;
    }

    body.oc-theme .oc-sustain-filters {
        width: 100%;
    }

    body.oc-theme .oc-sustain-filter {
        width: 100%;
        min-width: 0;
    }

    body.oc-theme .oc-sustain-waste-layout {
        grid-template-columns: 1fr;
    }

    body.oc-theme .oc-sustain-waste-chart {
        height: 200px;
    }

    body.oc-theme .oc-sustain-sites-list {
        grid-template-columns: 1fr;
    }
}
