/* Carbon ESG page-specific styles */

/* Assets Allow page */
.ce-page--assets-allow {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.facility-access-section { margin-bottom: 24px; }
.facility-access-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    margin-bottom: 12px;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
}
.facility-access-section-title h2 {
    margin: 0;
    color: #065f46;
    font-size: 15px;
    font-weight: 800;
}
.facility-access-section-subtitle {
    margin-top: 3px;
    color: var(--ce-color-text-soft);
    font-size: 12px;
}
.facility-access-count {
    padding: 5px 10px;
    color: #ffffff;
    background: #065f46;
    border-radius: var(--ce-radius-pill);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}
.access-group-not-allowed .facility-access-section-header {
    background: #e5e7eb;
    border-color: #cbd5e1;
}
.access-group-not-allowed .facility-access-section-title h2 { color: #475569; }
.access-group-not-allowed .facility-access-count { background: #64748b; }
.facility-access-empty {
    padding: 18px;
    color: var(--ce-color-text-soft);
    background: var(--ce-color-page-panel);
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    font-size: 13px;
}
.assets-list { display: flex; flex-direction: column; gap: 16px; }

.facility-group {
    overflow: hidden;
    margin-bottom: 16px;
    background: #ffffff;
    border: 2px solid #bfdbfe;
    border-radius: var(--ce-radius-lg);
}
.facility-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    color: #1e3a8a;
    background: #eff6ff;
    border-bottom: 2px solid #bfdbfe;
    cursor: pointer;
    user-select: none;
}
.facility-group-header:hover { background: #dbeafe; }
.facility-heading-left,
.department-heading-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.facility-icon-box,
.dept-icon-box { flex: 0 0 auto; font-size: 18px; }
.group-title {
    color: #1e3a8a;
    font-size: 16px;
    font-weight: 800;
    overflow-wrap: anywhere;
}
.group-meta { color: #475569; font-size: 12px; line-height: 1.5; }
.facility-group-stats {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.stat-badge { color: #475569; font-size: 12px; font-weight: 600; white-space: nowrap; }
.toggle-icon { color: #475569; transition: transform 0.2s; }
.facility-group.collapsed .facility-group-content { display: none; }
.facility-group.collapsed .toggle-icon { transform: rotate(-90deg); }
.facility-group-content { padding: 12px 16px; background: var(--ce-color-page-panel); }
.facility-group.not-allowed { border-color: #cbd5e1; }
.facility-group.not-allowed .facility-group-header {
    color: #475569;
    background: #f1f5f9;
    border-bottom-color: #cbd5e1;
}
.facility-group.not-allowed .group-title { color: #475569; }

.department-group {
    overflow: hidden;
    margin-bottom: 12px;
    background: #ffffff;
    border: 2px solid #a7f3d0;
    border-radius: 10px;
}
.department-group:last-child { margin-bottom: 0; }
.department-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    background: #ecfdf5;
    border-bottom: 2px solid #a7f3d0;
}
.department-title h3 { margin: 0; color: #065f46; font-size: 15px; font-weight: 700; }
.department-kicker { display: none; }
.small-count { color: var(--ce-color-text-soft); font-size: 12px; font-weight: 500; white-space: nowrap; }
.department-group.not-allowed { background: #ffffff; border-color: #d1d5db; }
.department-group.not-allowed .department-group-header { background: #f3f4f6; border-bottom-color: #d1d5db; }
.department-group.not-allowed .department-title h3 { color: #4b5563; }
.department-no-assets {
    padding: 18px;
    color: var(--ce-color-text-soft);
    background: var(--ce-color-page-panel);
    border: 1px dashed #cbd5e1;
    border-radius: var(--ce-radius-md);
    font-size: 12px;
    font-style: italic;
    text-align: center;
}

.asset-cards-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 12px;
    background: #ffffff;
}
.asset-card {
    position: relative;
    min-height: 72px;
    padding: 8px 12px 8px 72px;
    background: #ffffff;
    border: 1px solid var(--ce-color-border-soft);
    border-radius: var(--ce-radius-md);
}
.asset-card:hover { background: #fafcfc; }
.asset-card.not-allowed { background: var(--ce-color-page-panel); border-color: #d1d5db; }
.asset-row-number {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    background: #f1f5f9;
    border-radius: var(--ce-radius-md);
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}
.asset-card.not-allowed .asset-row-number { background: #e5e7eb; }
.asset-card-header { display: flex; align-items: center; min-height: 28px; }
.asset-title-area {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}
.asset-name-edit-block { width: auto; }
.asset-name-display-row { display: inline-flex; }
.asset-name { color: var(--ce-color-text-strong); font-size: 15px; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.asset-code { color: var(--ce-color-text-faint); font-size: 12px; }
.asset-not-allow-label {
    display: inline-flex;
    padding: 3px 7px;
    color: #ffffff;
    background: #64748b;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.activities-list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.activity-item { padding: 6px 10px; background: var(--ce-color-page-panel); border-left: 3px solid #94a3b8; border-radius: 6px; }
.asset-card.not-allowed .activity-item { background: #eef0f3; }
.activity-header { display: flex; align-items: center; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
.activity-name { color: var(--ce-color-text-strong); font-size: 13px; font-weight: 600; }
.activity-details { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 2px; color: #475569; font-size: 12px; }
.activity-detail { white-space: nowrap; }
.activity-detail strong { color: var(--ce-color-text-soft); font-weight: 600; }
.no-activities { padding: 4px 0; color: var(--ce-color-text-faint); font-size: 12px; font-style: italic; }

.asset-name-editor {
    display: none;
    width: min(400px, 100%);
    padding: 8px;
    margin-top: 6px;
    background: #faf5ff;
    border: 1px solid #d8b4fe;
    border-radius: var(--ce-radius-md);
}
.asset-name-edit-input {
    width: 100%;
    min-height: 54px;
    padding: 6px 8px;
    color: var(--ce-color-text-strong);
    background: #ffffff;
    border: 1px solid #c4b5fd;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    resize: vertical;
}
.asset-name-edit-input:focus { outline: none; border-color: #9333ea; }
.asset-name-edit-actions { display: flex; gap: 6px; margin-top: 6px; }
.asset-name-edit-message { margin-top: 4px; font-size: 11px; font-weight: 500; }
.asset-name-edit-message.success { color: #059669; }
.asset-name-edit-message.error { color: #dc2626; }

.closed-assets-section {
    padding: 16px;
    margin-top: 24px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--ce-radius-lg);
}
.closed-assets-section h3 { margin: 0 0 12px; color: #92400e; font-size: 15px; }
.closed-assets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.closed-asset-card { padding: 10px 14px; background: #ffffff; border: 1px solid #f3e8bb; border-radius: var(--ce-radius-md); }
.closed-asset-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.closed-asset-meta { margin-top: 6px; color: #6b7280; font-size: 11px; line-height: 1.6; }

@media (max-width: 768px) {
    .ce-page--assets-allow { padding: 20px; }
    .facility-group-header,
    .department-group-header { flex-direction: column; align-items: flex-start; }
    .facility-group-stats { justify-content: flex-start; }
    .asset-card { padding: 48px 10px 10px; }
    .asset-row-number {
        top: 10px;
        bottom: auto;
        left: 10px;
        width: auto;
        min-width: 50px;
        height: 28px;
        padding: 0 8px;
    }
    .activity-detail { white-space: normal; }
}


/* Assets Setup page: extends the preferred Assets module components */
.ce-page--assets-setup {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.ce-page--assets-setup .page-hero .subtitle {
    margin: 4px 0 0;
    color: var(--ce-color-text-soft);
    font-size: 14px;
}

.ce-page--assets-setup .summary-card {
    color: #065f46;
    font-size: 13px;
    font-weight: 600;
}

.ce-page--assets-setup .summary-card.closed { color: #92400e; }

.ce-page--assets-setup .facility-group-stats {
    color: #475569;
    font-size: 13px;
}

.ce-page--assets-setup .facility-group-stats .dot {
    margin: 0 6px;
    color: #94a3b8;
}

.ce-page--assets-setup .department-group.empty-department {
    border-color: #fde68a;
    opacity: 0.85;
}

.ce-page--assets-setup .department-group-header.empty-dept-header {
    background: #fffbeb;
    border-bottom-color: #fde68a;
}

.dept-name-edit-block,
.dept-name-display {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dept-name {
    color: #065f46;
    font-size: 15px;
    font-weight: 700;
}

.empty-department .dept-name,
.asset-count.empty-count { color: #92400e; }

.dept-editor {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: #ffffff;
    border: 1px solid #c4b5fd;
    border-radius: 6px;
}

.dept-edit-input {
    width: 200px;
    padding: 4px 6px;
    color: #065f46;
    background: transparent;
    border: 0;
    font-size: 14px;
    font-weight: 600;
}

.dept-edit-input:focus { outline: none; }
.dept-edit-message { font-size: 10px; font-weight: 500; }
.dept-edit-message.success, .asset-edit-message.success { color: #059669; }
.dept-edit-message.error, .asset-edit-message.error { color: #dc2626; }

.dept-code {
    padding: 1px 8px;
    color: #64748b;
    background: #d1fae5;
    border-radius: 4px;
    font-size: 12px;
}

.empty-department .dept-code { background: #fef3c7; }

.empty-badge {
    padding: 2px 10px;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
    border-radius: 12px;
    font-size: 10px;
    font-weight: 700;
}

.asset-count {
    color: var(--ce-color-text-soft);
    font-size: 12px;
    font-weight: 500;
}

.empty-department-message {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px;
    color: #92400e;
    background: #fffbeb;
    font-size: 14px;
}

.empty-department-message .empty-icon { font-size: 24px; }

.ce-page--assets-setup .asset-card { min-height: 72px; }
.ce-page--assets-setup .asset-info { min-width: 0; }

.asset-editor {
    display: none;
    margin-top: 6px;
}

.asset-edit-input {
    width: 100%;
    max-width: 400px;
    padding: 6px 8px;
    background: #faf5ff;
    border: 1px solid #c4b5fd;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    resize: vertical;
}

.asset-edit-input:focus { outline: none; border-color: #9333ea; }
.asset-edit-message { margin-top: 4px; font-size: 11px; font-weight: 500; }

.ce-page--assets-setup .closed-asset-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.closed-name { font-size: 13px; font-weight: 600; }
.closed-code { color: var(--ce-color-text-faint); font-size: 11px; }

@media (max-width: 768px) {
    .ce-page--assets-setup { padding: 20px; }
    .ce-page--assets-setup .page-hero { align-items: flex-start; }
    .dept-edit-input { width: 120px; }
    .dept-editor { flex-wrap: wrap; }
    .activity-details { flex-direction: column; gap: 2px; }
}


/* Assets Setup Advance page */
.ce-page--assets-advance {
    width: 100%;
    padding: 20px;
}

.two-col-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.left-column,
.right-column {
    flex: 1;
    min-width: 0;
}

.right-column {
    position: sticky;
    top: 20px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
    background: #ffffff;
    border: 1px solid var(--ce-color-border);
    border-radius: var(--ce-radius-lg);
}

.right-column-title { margin: 0 0 1rem; }

.hierarchy-selector {
    overflow: hidden;
    padding: 0;
    margin-bottom: 1rem;
    background: #ffffff;
    border: 1px solid var(--ce-color-border);
    border-radius: var(--ce-radius-md);
}

.hierarchy-row {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #f0f0f0;
}

.hierarchy-row:last-child { border-bottom: 0; }

.hierarchy-label {
    width: 150px;
    flex-shrink: 0;
    padding: 12px 16px;
    color: #374151;
    background: #f8f9fa;
    border-right: 1px solid var(--ce-color-border);
    font-size: 0.85rem;
    font-weight: 600;
}

.hierarchy-value { flex: 1; padding: 8px 16px; }
.hierarchy-value select { max-width: 450px; }

.auto-selected-value {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 12px;
    color: #374151;
    background: #f9fafb;
    border: 1px solid var(--ce-color-border);
    border-radius: 6px;
    font-size: 0.9rem;
}

.auto-selected-badge {
    padding: 2px 8px;
    color: #047857;
    background: #ecfdf5;
    border-radius: var(--ce-radius-pill);
    font-size: 0.7rem;
    font-weight: 600;
}

.facility-dept-selectors {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 12px;
}

.selector-group { display: flex; align-items: center; gap: 8px; }
.selector-group label { color: #4b5563; font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
.selector-group select { min-width: 180px; }

.required-star { margin-left: 2px; color: #ef4444; }

.asset-name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    padding: 12px 16px;
    margin-bottom: 1rem;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--ce-radius-md);
}

.asset-name-label-stack { display: flex; flex-direction: column; }
.asset-name-row .label { color: #166534; font-weight: 600; white-space: nowrap; }
.asset-name-row .form-control { flex: 2; min-width: 250px; }
.asset-name-character-count { margin-top: 4px; color: #888888; font-size: 0.8em; }
.asset-name-row .suggestion-text { margin-top: 4px; color: #6c757d; font-size: 0.85em; font-style: italic; }

.button-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--ce-color-border);
}
.button-group { display: flex; align-items: center; gap: 12px; }

.asset-type-id-display {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 10px 16px;
    margin-bottom: 16px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: var(--ce-radius-md);
    font-size: 0.85rem;
}
.asset-type-id-display .label { color: #1e40af; font-weight: 600; }
.asset-type-id-display .id-value { padding: 2px 12px; color: #1e40af; background: #dbeafe; border-radius: 4px; font-size: 1rem; font-weight: 700; }
.asset-type-id-display .hierarchy-path { color: #6b7280; font-size: 0.75rem; }
.asset-type-source-note { margin-left: auto; color: #9ca3af; font-size: 0.7rem; }

.stats-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 20px;
    margin-bottom: 1.5rem;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--ce-radius-md);
}
.stats-count { color: #166534; font-size: 1.25rem; font-weight: 700; }
.stats-label { color: #15803d; font-size: 0.85rem; }

.assets-table .facility-group-row td {
    padding: 10px 12px;
    color: #ffffff;
    background: #2150bf;
    border-top: 1px solid #1b44a6;
    border-bottom: 1px solid #1b44a6;
    font-size: 0.9rem;
    font-weight: 700;
}
.assets-table .department-group-row td {
    padding: 8px 12px;
    color: #166534;
    background: #f0fdf4;
    border-bottom: 1px solid #bbf7d0;
    font-size: 0.8rem;
    font-weight: 700;
}
.assets-table .grouped-asset-row td { padding: 9px 12px; }
.asset-name-cell { color: #1f2937; font-weight: 500; }
.asset-edit-display { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.asset-edit-name { flex: 1; min-width: 0; }
.asset-edit-form { display: none; margin: 0; }
.asset-edit-input { width: 100%; min-height: 68px; max-width: none; padding: 8px 10px; background: #ffffff; }
.asset-edit-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.table-caption { margin-top: 8px; color: #9ca3af; font-size: 0.7rem; text-align: right; }
.right-column-note { padding-top: 1rem; margin-top: 1.5rem; color: #9ca3af; border-top: 1px solid var(--ce-color-border); font-size: 0.7rem; }

@media (max-width: 980px) {
    .two-col-layout { flex-direction: column; }
    .right-column { position: static; width: 100%; max-height: none; }
}

@media (max-width: 768px) {
    .ce-page--assets-advance { padding: 20px; }
    .hierarchy-row { align-items: stretch; flex-direction: column; }
    .hierarchy-label { width: 100%; border-right: 0; border-bottom: 1px solid var(--ce-color-border); }
    .selector-group { width: 100%; align-items: stretch; flex-direction: column; }
    .selector-group select { width: 100%; min-width: 0; }
    .button-bar { align-items: stretch; flex-direction: column; }
    .button-group, .button-group form, .button-group .btn { width: 100%; }
}


/* ==========================================================================
   Assets Setup Basic
   ========================================================================== */
.ce-page--assets-basic .page-status-row { display: flex; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.ce-page--assets-basic .company-info-bar { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; padding: 12px 20px; border-radius: 10px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; }
.ce-page--assets-basic .company-edit-link { color: #fff; text-decoration: none; background: rgba(255,255,255,.2); padding: 5px 12px; border-radius: 6px; }
.ce-page--assets-basic .utilities-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.ce-page--assets-basic .utilities-grid.common-assets-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.ce-page--assets-basic .utility-block { border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; }
.ce-page--assets-basic .utility-header { padding: 10px 14px; display: flex; justify-content: space-between; gap: 10px; align-items: center; color: #fff; }
.ce-page--assets-basic .utility-header h3 { margin: 0 0 2px; font-size: 15px; }
.ce-page--assets-basic .utility-header p { margin: 0; font-size: 11px; opacity: .92; }
.ce-page--assets-basic .utility-header.electricity,
.ce-page--assets-basic .utility-header.common-assets-color-0 { background: linear-gradient(135deg,#f59e0b 0%,#d97706 100%); }
.ce-page--assets-basic .utility-header.water,
.ce-page--assets-basic .utility-header.common-assets-color-1 { background: linear-gradient(135deg,#06b6d4 0%,#0891b2 100%); }
.ce-page--assets-basic .utility-row { padding: 6px 10px; border-top: 1px solid #e5e7eb; background: #fafafa; }
.ce-page--assets-basic .utility-row:nth-child(even) { background: #fff; }
.ce-page--assets-basic .utility-row-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 3px; font-weight: 600; color: #374151; font-size: 12px; }
.ce-page--assets-basic .row-actions { display: flex; gap: 6px; align-items: center; }
.ce-page--assets-basic .form-group .form-control { flex: 1; width: 100%; padding: .22rem .45rem; border-radius: 4px; font-size: .82rem; min-height: 28px; }
.ce-page--assets-basic .remove-btn { border: 0; background: var(--ce-action-danger, #D32F2F); color: #ffffff; border-radius: 8px; padding: 3px 8px; cursor: pointer; font-size: 11px; }
.ce-page--assets-basic .remove-btn:hover { background: var(--ce-action-danger-hover, #B71C1C); }
.ce-page--assets-basic .utility-action-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 6px; }
.ce-page--assets-basic .add-asset-btn { border: 0; background: var(--ce-action-save, #2E7D32); color: #fff; border-radius: 8px; padding: 8px 20px; cursor: pointer; font-size: 13px; font-weight: 700; white-space: nowrap; min-width: 170px; }
.ce-page--assets-basic .add-asset-btn:hover { background: var(--ce-action-save-hover, #256628); }
.ce-page--assets-basic .add-asset-btn:disabled { background: #9ca3af; cursor: not-allowed; }
.ce-page--assets-basic .reset-row-btn { border: 1px solid var(--ce-action-cancel, #757575); background: var(--ce-action-cancel, #757575); color: #ffffff; border-radius: 8px; padding: 8px 18px; cursor: pointer; font-size: 13px; font-weight: 700; white-space: nowrap; min-width: 110px; }
.ce-page--assets-basic .reset-row-btn:hover { background: var(--ce-action-cancel-hover, #616161); }
.ce-page--assets-basic .factor-details-display,
.ce-page--assets-basic .readonly-display { min-height: 38px; display: flex; align-items: center; padding: 6px 12px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ce-page--assets-basic .asset-created-message { background: #d1fae5; border: 1px solid #a7f3d0; border-radius: 4px; padding: 4px 8px; font-size: 11px; color: #065f46; margin-top: 4px; display: none; }
.ce-page--assets-basic .asset-created-message.show { display: block; }
.ce-page--assets-basic .source-category-text { padding-top: 7px; color: #475569; font-size: 14px; font-weight: 600; }
.ce-page--assets-basic .common-hierarchy-selector { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; margin: 6px 0 8px; font-size: 11px; }
.ce-page--assets-basic .common-hierarchy-row { display: grid; grid-template-columns: 30% 70%; border-bottom: 1px solid #eef2f7; min-height: 30px; }
.ce-page--assets-basic .common-hierarchy-row:last-child { border-bottom: 0; }
.ce-page--assets-basic .common-hierarchy-label { background: #f8fafc; padding: 5px 8px; font-size: 11px; line-height: 1.2; font-weight: 700; color: #0f172a; display: flex; align-items: center; }
.ce-page--assets-basic .common-hierarchy-value { padding: 4px 8px; display: flex; align-items: center; min-width: 0; }
.ce-page--assets-basic .common-hierarchy-value select { width: 100%; min-height: 28px; height: 28px; padding: 2px 8px; font-size: 11px; line-height: 1.2; border-radius: 4px; }
.ce-page--assets-basic .common-auto-selected { width: 100%; min-height: 28px; display: flex; align-items: center; gap: 6px; border: 1px solid #e5e7eb; border-radius: 6px; padding: 3px 8px; background: #f8fafc; color: #334155; font-size: 11px; line-height: 1.2; overflow: hidden; }
.ce-page--assets-basic .common-auto-badge { background: #dcfce7; color: #047857; border-radius: 999px; padding: 2px 7px; font-size: 10px; line-height: 1.2; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
.ce-page--assets-basic .common-entry-grid { margin-top: 8px; }
.ce-page--assets-basic .plan-limit-warning { background: #fef3c7; border: 1px solid #fde68a; border-radius: 8px; padding: .75rem 1rem; margin-bottom: 1rem; color: #92400e; font-size: .875rem; }
.ce-page--assets-basic .plan-limit-info { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: .75rem 1rem; margin-bottom: 1rem; color: #166534; font-size: .875rem; }
@media (max-width:900px) {
  .ce-page--assets-basic .utilities-grid,
  .ce-page--assets-basic .utilities-grid.common-assets-grid { grid-template-columns: 1fr; }
  .ce-page--assets-basic .form-group { flex-wrap: wrap; }
  .ce-page--assets-basic .form-group label { min-width: 100%; }
  .ce-page--assets-basic .common-hierarchy-row { grid-template-columns: 1fr; }
}


/* ==========================================================================
   Assets Setup Factors
   ========================================================================== */
.ce-page--assets-factors .catalog-access-alert { margin-bottom: 16px; }
.ce-page--assets-factors .catalog-search-row {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}
.ce-page--assets-factors .catalog-search-box {
    width: 100%;
    max-width: 600px;
    padding: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}
.ce-page--assets-factors .search-label {
    display: block;
    margin-bottom: 6px;
    color: #374151;
    font-size: 12px;
    font-weight: 600;
}
.ce-page--assets-factors .search-input-wrapper { position: relative; }
.ce-page--assets-factors .search-input-wrapper .form-control {
    padding-right: 32px;
    font-size: 13px;
}
.ce-page--assets-factors .search-icon {
    position: absolute;
    top: 50%;
    right: 10px;
    color: #9ca3af;
    pointer-events: none;
    transform: translateY(-50%);
}
.ce-page--assets-factors .search-results {
    min-height: 40px;
    max-height: 200px;
    overflow-y: auto;
    margin-top: 8px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}
.ce-page--assets-factors .search-placeholder,
.ce-page--assets-factors .search-loading,
.ce-page--assets-factors .search-no-results {
    padding: 10px 12px;
    color: #6b7280;
    font-size: 12px;
    text-align: center;
}
.ce-page--assets-factors .search-placeholder { color: #9ca3af; }
.ce-page--assets-factors .search-error {
    padding: 10px 12px;
    color: #dc2626;
    font-size: 12px;
}
.ce-page--assets-factors .search-results-list { padding: 4px 0; }
.ce-page--assets-factors .search-result-item {
    padding: 8px 12px;
    border-bottom: 1px solid #f3f4f6;
    cursor: pointer;
    transition: background 0.15s ease;
}
.ce-page--assets-factors .search-result-item:hover { background: #f3f4f6; }
.ce-page--assets-factors .search-result-item.selected {
    background: #d1fae5;
    border-left: 3px solid #10b981;
}
.ce-page--assets-factors .search-result-item:last-child { border-bottom: 0; }
.ce-page--assets-factors .result-main {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #1f2937;
    font-size: 13px;
    font-weight: 500;
}
.ce-page--assets-factors .result-details {
    margin-top: 2px;
    color: #6b7280;
    font-size: 11px;
}
.ce-page--assets-factors .result-meta {
    margin-top: 2px;
    color: #9ca3af;
    font-size: 10px;
}
.ce-page--assets-factors .result-activities {
    margin-top: 2px;
    color: #059669;
    font-size: 10px;
}
.ce-page--assets-factors .search-count {
    margin-top: 4px;
    color: #6b7280;
    font-size: 11px;
    text-align: right;
}
.ce-page--assets-factors .search-more-results {
    padding: 8px 12px;
    color: #6b7280;
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
    font-size: 11px;
    text-align: center;
}
.ce-page--assets-factors .search-results::-webkit-scrollbar { width: 4px; }
.ce-page--assets-factors .search-results::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 2px;
}
.ce-page--assets-factors .search-results::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 2px;
}
.ce-page--assets-factors .search-results::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
.ce-page--assets-factors .catalog-preview {
    padding: 16px;
    margin-top: 16px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
}
.ce-page--assets-factors .catalog-preview-layout {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}
.ce-page--assets-factors .catalog-preview-line {
    margin-top: 2px;
    font-size: 12px;
}
.ce-page--assets-factors .catalog-preview-line--green { color: #047857; }
.ce-page--assets-factors .catalog-preview-line--muted {
    margin-top: 4px;
    color: #6b7280;
}
.ce-page--assets-factors .catalog-preview-name {
    margin-top: 4px;
    color: #065f46;
    font-size: 14px;
    font-weight: 700;
}
.ce-page--assets-factors .catalog-preview-factor {
    margin-top: 4px;
    color: #6b7280;
    font-size: 11px;
}
.catalog-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.catalog-form-grid .form-group {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
    min-height: 0;
}
.catalog-form-grid .form-group label {
    min-width: 0;
    font-size: 12px;
}
.catalog-form-grid .form-control { min-height: 36px; padding: 0.4rem 0.6rem; }
.catalog-form-grid__full { grid-column: span 2; }
.catalog-factor-summary {
    padding: 8px 10px;
    background: #f9fafb;
    border-radius: 4px;
}
.catalog-modal-actions { margin-top: 16px; }

@media (max-width: 900px) {
    .ce-page--assets-factors .catalog-search-row {
        align-items: center;
        flex-direction: column;
    }
    .ce-page--assets-factors .catalog-search-box { max-width: 100%; }
    .catalog-form-grid { grid-template-columns: 1fr; }
    .catalog-form-grid__full { grid-column: auto; }
}

/* =========================================================
   ADMIN DASHBOARD — preferred dashboard visual standard
   Source: admin/index.php
   ========================================================= */
.admin-dashboard{
    --dash-bg: #f4f7fb;
    --dash-card: #ffffff;
    --dash-text: #1e293b;
    --dash-muted: #64748b;
    --dash-line: #e2e8f0;
    --dash-primary: #4f46e5;
    --dash-primary-soft: #eef2ff;
    --dash-green: #15803d;
    --dash-green-soft: #dcfce7;
    --dash-amber: #a16207;
    --dash-amber-soft: #fef3c7;
    --dash-red: #b91c1c;
    --dash-red-soft: #fee2e2;
    --dash-blue: #0369a1;
    --dash-blue-soft: #e0f2fe;
    --dash-radius: 12px;
    --dash-shadow: 0 4px 14px rgba(15, 23, 42, .06);
}
.admin-dashboard{
    min-height: 100vh;
    padding: 18px 22px 28px;
    background: var(--dash-bg);
    color: var(--dash-text);
}
.admin-dashboard .dashboard-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    margin-bottom: 14px;
    background: var(--ce-page-title-bg, var(--ce-brand-primary));
    color: #fff;
    box-shadow: var(--dash-shadow);
}
.admin-dashboard .dashboard-header h1{
    margin: 0 0 4px;
    font-size: 1.35rem;
    font-weight: 750;
}
.admin-dashboard .dashboard-header p{
    margin: 0;
    font-size: .82rem;
    opacity: .9;
}
.admin-dashboard .dashboard-header-meta{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}
.admin-dashboard .header-chip{
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    font-size: .75rem;
    font-weight: 650;
    white-space: nowrap;
}
.admin-dashboard .kpi-grid{
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}
.admin-dashboard .kpi-card{
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--dash-line);
    border-top: 3px solid var(--dash-primary);
    border-radius: var(--dash-radius);
    background: var(--dash-card);
    box-shadow: var(--dash-shadow);
}
.admin-dashboard .kpi-card.green{ border-top-color: #16a34a; }
.admin-dashboard .kpi-card.amber{ border-top-color: #d97706; }
.admin-dashboard .kpi-card.red{ border-top-color: #dc2626; }
.admin-dashboard .kpi-card.blue{ border-top-color: #0284c7; }
.admin-dashboard .kpi-card.teal{ border-top-color: #0f766e; }
.admin-dashboard .kpi-card.purple{ border-top-color: #7c3aed; }
.admin-dashboard .kpi-label{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    color: var(--dash-muted);
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.admin-dashboard .kpi-value{
    margin-top: 5px;
    font-size: 1.4rem;
    line-height: 1;
    font-weight: 800;
    color: var(--dash-text);
}
.admin-dashboard .kpi-note{
    margin-top: 4px;
    overflow: hidden;
    color: #94a3b8;
    font-size: .66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-dashboard .dashboard-section{
    margin-bottom: 14px;
    border: 1px solid var(--dash-line);
    border-radius: var(--dash-radius);
    background: var(--dash-card);
    box-shadow: var(--dash-shadow);
    overflow: hidden;
}
.admin-dashboard .section-heading{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    border-bottom: 1px solid rgba(255,255,255,.18);
    background: var(--ce-main-section-bg, var(--ce-brand-secondary));
    color: var(--ce-main-section-color, #ffffff);
    box-shadow: inset 4px 0 0 rgba(255,255,255,.34);
}
.admin-dashboard .section-heading h2{
    margin: 0;
    color: inherit;
    font-size: .96rem;
    font-weight: 800;
}
.admin-dashboard .section-heading p{
    margin: 2px 0 0;
    color: inherit;
    font-size: .72rem;
    opacity: .88;
}
.admin-dashboard .section-body{ padding: 12px 14px; }
.admin-dashboard .section-body.no-padding{ padding: 0; }
.admin-dashboard .info-grid{
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
}
.admin-dashboard .info-item{
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--dash-line);
    border-radius: 9px;
    background: #f8fafc;
}
.admin-dashboard .info-label{
    display: block;
    margin-bottom: 3px;
    color: var(--dash-muted);
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.admin-dashboard .info-value{
    display: block;
    color: var(--dash-text);
    font-size: .8rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.admin-dashboard .tag-row{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}
.admin-dashboard .tag{
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--dash-primary-soft);
    color: #4338ca;
    font-size: .7rem;
    font-weight: 700;
}
.admin-dashboard .plan-summary-grid{
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
}
.admin-dashboard .plan-usage-grid{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 10px;
}
.admin-dashboard .plan-usage-item{
    padding: 9px 10px;
    border: 1px solid var(--dash-line);
    border-radius: 9px;
    background: #f8fafc;
}
.admin-dashboard .plan-usage-row{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
    font-size: .72rem;
    font-weight: 700;
}
.admin-dashboard .plan-progress{
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}
.admin-dashboard .plan-progress > span{
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #4f46e5;
}
.admin-dashboard .plan-feature-row{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}
.admin-dashboard .plan-feature{
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 750;
}
.admin-dashboard .plan-feature.enabled{ background: #dcfce7; color: #166534; }
.admin-dashboard .plan-feature.disabled{ background: #f1f5f9; color: #94a3b8; }
.admin-dashboard .role-coverage-grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.admin-dashboard .role-coverage-card{
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--dash-line);
    border-radius: 10px;
    background: #fff;
}
.admin-dashboard .role-coverage-head{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--dash-line);
    background: #f8fafc;
    font-size: .76rem;
    font-weight: 800;
}
.admin-dashboard .role-coverage-card.admin .role-coverage-head{ border-left: 4px solid #2563eb; }
.admin-dashboard .role-coverage-card.maker .role-coverage-head{ border-left: 4px solid #16a34a; }
.admin-dashboard .role-coverage-card.approver .role-coverage-head{ border-left: 4px solid #ea580c; }
.admin-dashboard .role-coverage-card.viewer .role-coverage-head{ border-left: 4px solid #64748b; }
.admin-dashboard .role-coverage-card.auditor .role-coverage-head{ border-left: 4px solid #7c3aed; }
.admin-dashboard .role-coverage-card.consultant .role-coverage-head{ border-left: 4px solid #dc2626; }
.admin-dashboard .role-count{
    min-width: 22px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: .66rem;
    text-align: center;
}
.admin-dashboard .role-user-list{ margin: 0; padding: 0; list-style: none; }
.admin-dashboard .role-user{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid #edf2f7;
}
.admin-dashboard .role-user:last-child{ border-bottom: 0; }
.admin-dashboard .role-user-main{ min-width: 0; }
.admin-dashboard .role-user-name{
    color: var(--dash-text);
    font-size: .75rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-dashboard .role-user-email{
    margin-top: 1px;
    color: var(--dash-muted);
    font-size: .66rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-dashboard .role-user-meta{
    margin-top: 3px;
    color: #64748b;
    font-size: .64rem;
    line-height: 1.3;
}
.admin-dashboard .role-user-empty{ padding: 12px 10px; color: #94a3b8; font-size: .7rem; text-align: center; }
.admin-dashboard .dashboard-table-wrap{ overflow-x: auto; }
.admin-dashboard .dashboard-table{
    width: 100%;
    border-collapse: collapse;
    font-size: .78rem;
}
.admin-dashboard .dashboard-table th{
    padding: 8px 10px;
    border-bottom: 1px solid var(--dash-line);
    background: #f8fafc;
    color: var(--dash-muted);
    font-size: .66rem;
    font-weight: 750;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}
.admin-dashboard .dashboard-table td{
    padding: 8px 10px;
    border-bottom: 1px solid #edf2f7;
    color: #334155;
    vertical-align: middle;
}
.admin-dashboard .dashboard-table tr:last-child td{ border-bottom: 0; }
.admin-dashboard .dashboard-table tbody tr:hover{ background: #fafbff; }
.admin-dashboard .dashboard-table small{ color: var(--dash-muted); font-size: .69rem; }
.admin-dashboard .text-right{ text-align: right !important; }
.admin-dashboard .status-pill{
    display: inline-flex;
    align-items: center;
    padding: 3px 7px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: .66rem;
    font-weight: 750;
    text-transform: capitalize;
    white-space: nowrap;
}
.admin-dashboard .status-approved, .admin-dashboard .status-locked{ background: var(--dash-green-soft); color: var(--dash-green); }
.admin-dashboard .status-submitted{ background: var(--dash-amber-soft); color: var(--dash-amber); }
.admin-dashboard .status-rejected, .admin-dashboard .status-scan_failed{ background: var(--dash-red-soft); color: var(--dash-red); }
.admin-dashboard .status-draft, .admin-dashboard .status-uploaded, .admin-dashboard .status-scanned_not_recorded, .admin-dashboard .status-recorded_draft{ background: var(--dash-blue-soft); color: var(--dash-blue); }
.admin-dashboard .actions-grid{
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 9px;
}
.admin-dashboard .action-link{
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid var(--dash-line);
    border-radius: 9px;
    background: #f8fafc;
    color: var(--dash-text);
    font-size: .74rem;
    font-weight: 700;
    text-decoration: none;
    transition: .18s ease;
}
.admin-dashboard .action-link:hover{
    border-color: #a5b4fc;
    background: var(--dash-primary-soft);
    color: #4338ca;
    transform: translateY(-1px);
}
.admin-dashboard .action-link span:first-child{ font-size: 1rem; }
.admin-dashboard .empty-state{ padding: 18px; color: #94a3b8; font-size: .78rem; text-align: center; }
@media (max-width: 1500px){.admin-dashboard .kpi-grid, .admin-dashboard .actions-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-dashboard .info-grid, .admin-dashboard .role-coverage-grid, .admin-dashboard .plan-summary-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-dashboard .plan-usage-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}
@media (max-width: 800px){.admin-dashboard{ padding: 12px; }
.admin-dashboard .dashboard-header{ align-items: flex-start; flex-direction: column; }
.admin-dashboard .dashboard-header-meta{ justify-content: flex-start; }
.admin-dashboard .kpi-grid, .admin-dashboard .actions-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-dashboard .info-grid, .admin-dashboard .role-coverage-grid, .admin-dashboard .plan-summary-grid, .admin-dashboard .plan-usage-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}
@media (max-width: 500px){.admin-dashboard .kpi-grid, .admin-dashboard .actions-grid, .admin-dashboard .info-grid, .admin-dashboard .role-coverage-grid, .admin-dashboard .plan-summary-grid, .admin-dashboard .plan-usage-grid{ grid-template-columns: 1fr; }}


/* ==========================================================================
   User & Department Permissions Matrix
   ========================================================================== */


.ce-page--department-permissions .permission-page{
    position:relative;
    z-index:0;
}



.ce-page--department-permissions .compact-page-header{
    width:95%;
    margin:0 auto 1rem;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    flex-wrap:wrap;
}
.ce-page--department-permissions .compact-page-header h1{
    margin:0 0 .25rem;
    font-size:1.75rem;
    letter-spacing:-.025em;
    color:#0f172a;
}
.ce-page--department-permissions .compact-page-header p{
    margin:0;
    color:var(--matrix-muted);
    font-size:.9rem;
}
.ce-page--department-permissions .compact-summary{
    display:flex;
    gap:.45rem;
    flex-wrap:wrap;
}
.ce-page--department-permissions .compact-summary span{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:.3rem .7rem;
    border:1px solid #dbe4ee;
    border-radius:999px;
    background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
    color:#475569;
    font-size:.72rem;
    font-weight:700;
}

.ce-page--department-permissions .matrix-toolbar{
    width:95%;
    margin:0 auto .85rem;
    padding:.7rem .8rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:.75rem;
    flex-wrap:wrap;
    position:sticky;
    top:0;
    z-index:40;
    border:1px solid var(--matrix-border);
    border-radius:14px;
    background:rgba(255,255,255,.97);
    box-shadow:0 8px 24px rgba(15,23,42,.07);
    backdrop-filter:blur(8px);
}
.ce-page--department-permissions .matrix-toolbar .form-control{
    width:340px;
    max-width:100%;
}
.ce-page--department-permissions .toolbar-buttons{
    display:flex;
    align-items:center;
    gap:.5rem;
    flex-wrap:wrap;
}
.ce-page--department-permissions .unsaved-indicator{
    min-width:130px;
    text-align:center;
    font-size:.76rem;
    color:var(--matrix-muted);
}
.ce-page--department-permissions .unsaved-indicator.changed,
.ce-page--department-permissions #bottomUnsavedIndicator.changed{
    color:#b45309;
    font-weight:700;
}

.ce-page--department-permissions .matrix-shell{
    width:95%;
    margin:0 auto;
    overflow:hidden;
    border:1px solid var(--matrix-border);
    border-radius:16px;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.08);
}
.ce-page--department-permissions .matrix-scroll{
    width:100%;
    overflow-x:auto;
    overflow-y:visible;
    scrollbar-color:#cbd5e1 #f8fafc;
    scrollbar-width:thin;
}
.ce-page--department-permissions .matrix-scroll::-webkit-scrollbar{height:11px}
.ce-page--department-permissions .matrix-scroll::-webkit-scrollbar-track{background:#f8fafc}
.ce-page--department-permissions .matrix-scroll::-webkit-scrollbar-thumb{
    background:#cbd5e1;
    border:3px solid #f8fafc;
    border-radius:999px;
}

.ce-page--department-permissions .compact-matrix{
    width:max-content;
    min-width:100%;
    border-collapse:separate;
    border-spacing:0;
    background:#fff;
}
.ce-page--department-permissions .compact-matrix th,
.ce-page--department-permissions .compact-matrix td{
    border-right:1px solid #e8edf3;
    border-bottom:1px solid #e8edf3;
}
.ce-page--department-permissions .compact-matrix tr > *:last-child{border-right:0}
.ce-page--department-permissions .compact-matrix tbody tr:last-child td{border-bottom:0}

.ce-page--department-permissions .compact-matrix thead th{
    position:sticky;
    top:0;
    z-index:20;
    background:#f8fafc;
}
.ce-page--department-permissions .role-group-row .role-group{
    height:34px;
    padding:.4rem .65rem;
    text-align:center;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.045em;
    text-transform:uppercase;
    color:#334155;
    border-bottom:1px solid #dbe4ee;
}
.ce-page--department-permissions .role-group-maker{background:#bbf7d0!important;color:#166534!important}
.ce-page--department-permissions .role-group-approver{background:#bfdbfe!important;color:#1e3a8a!important}
.ce-page--department-permissions .role-group-viewer{background:#fde68a!important;color:#92400e!important}

.ce-page--department-permissions .user-header-row th{top:34px!important}
.ce-page--department-permissions .role-user-maker{background:#ecfdf5!important}
.ce-page--department-permissions .role-user-approver{background:#eff6ff!important}
.ce-page--department-permissions .role-user-viewer{background:#fffbeb!important}

.ce-page--department-permissions .role-cell-maker{background:#ffffff !important}
.ce-page--department-permissions .role-cell-approver{background:#ffffff!important}
.ce-page--department-permissions .role-cell-viewer{background:#ffffff!important}
.ce-page--department-permissions .department-row:hover .role-cell-maker{background:#e8faf1!important}
.ce-page--department-permissions .department-row:hover .role-cell-approver{background:#eaf3ff!important}
.ce-page--department-permissions .department-row:hover .role-cell-viewer{background:#fff7d6!important}

.ce-page--department-permissions .sticky-col{
    position:sticky;
    background:#fff;
}
.ce-page--department-permissions .department-col{
    left:0;
    width:260px;
    min-width:260px;
    max-width:260px;
    z-index:13;
    box-shadow:4px 0 12px rgba(15,23,42,.07);
}
.ce-page--department-permissions .compact-matrix thead .department-col{
    z-index:30;
    padding:.75rem .85rem;
    text-align:left;
    vertical-align:middle;
    background:#eef2f7;
    color:#334155;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase;
}

.ce-page--department-permissions .user-col{
    width:70px;
    min-width:70px;
    max-width:70px;
    padding:.5rem .25rem;
    text-align:center;
    vertical-align:middle;
}
.ce-page--department-permissions .user-head-btn{
    width:100%;
    padding:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:.22rem;
    border:0;
    background:transparent;
    cursor:pointer;
}
.ce-page--department-permissions .user-head-btn:hover .user-initial{
    transform:translateY(-1px);
    box-shadow:0 5px 12px rgba(15,23,42,.12);
}
.ce-page--department-permissions .user-initial{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border:1px solid rgba(15,23,42,.08);
    border-radius:50%;
    background:#fff;
    color:#334155;
    box-shadow:0 2px 7px rgba(15,23,42,.07);
    font-size:.8rem;
    font-weight:800;
    transition:.15s ease;
}
.ce-page--department-permissions .user-short-name{
    display:block;
    width:62px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#334155;
    font-size:.63rem;
    font-weight:700;
}

.ce-page--department-permissions .facility-row td{
    height:38px;
    background:linear-gradient(90deg,#eef2f7 0%,#f8fafc 100%);
}
.ce-page--department-permissions .facility-title-cell{
    position:sticky;
    left:0;
    z-index:14;
    width:260px;
    min-width:260px;
    max-width:260px;
    padding:.35rem .7rem;
    background:#e8eef5!important;
    box-shadow:4px 0 12px rgba(15,23,42,.06);
}
.ce-page--department-permissions .facility-toggle{
    width:100%;
    padding:0;
    display:flex;
    align-items:center;
    gap:.5rem;
    border:0;
    background:transparent;
    color:#1e293b;
    cursor:pointer;
    text-align:left;
}
.ce-page--department-permissions .facility-toggle strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.78rem;
}
.ce-page--department-permissions .facility-toggle small{
    margin-left:auto;
    min-width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#fff;
    color:#64748b;
    font-size:.62rem;
    font-weight:800;
    box-shadow:0 1px 3px rgba(15,23,42,.07);
}
.ce-page--department-permissions .toggle-arrow{
    width:18px;
    color:#64748b;
    font-size:.67rem;
    transition:transform .15s ease;
}
.ce-page--department-permissions .facility-row.collapsed .toggle-arrow{transform:rotate(-90deg)}
.ce-page--department-permissions .facility-bulk-cell{
    text-align:center;
    vertical-align:middle;
    background:#f5f7fa!important;
}

.ce-page--department-permissions .department-row td{height:46px}
.ce-page--department-permissions .department-row:hover td{background:#f8fbff}
.ce-page--department-permissions .department-row:hover .department-name-cell{background:#f3f8fc!important}
.ce-page--department-permissions .department-name-cell{
    padding:.5rem .75rem;
    background:#fff;
    transition:background .12s ease;
}
.ce-page--department-permissions .department-name-cell strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--matrix-text);
    font-size:.78rem;
    font-weight:700;
}
.ce-page--department-permissions .department-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.5rem;
    min-width:0;
}
.ce-page--department-permissions .department-header strong{
    min-width:0;
}
.ce-page--department-permissions .asset-count{
    min-width:24px;
    height:24px;
    padding:0 7px;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #dbe4ee;
    border-radius:999px;
    background:#fff;
    color:#64748b;
    box-shadow:0 1px 3px rgba(15,23,42,.07);
    font-size:.62rem;
    font-weight:800;
}
.ce-page--department-permissions .department-name-cell small{
    display:inline-block;
    margin-top:.15rem;
    padding:.08rem .32rem;
    border-radius:4px;
    background:#f1f5f9;
    color:#94a3b8;
    font-size:.59rem;
    font-weight:700;
}

.ce-page--department-permissions .permission-cell{
    text-align:center;
    vertical-align:middle;
    background:#fff;
    transition:background .12s ease;
}
.ce-page--department-permissions .permission-cell:hover{background:#ecfdf5!important}
.ce-page--department-permissions .compact-check{
    width:100%;
    height:46px;
    display:grid;
    place-items:center;
    cursor:pointer;
}
.ce-page--department-permissions .compact-check input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.ce-page--department-permissions .compact-check span{
    width:16px;
    height:16px;
    position:relative;
    border:1.5px solid #b8c3d1;
    border-radius:4px;
    background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
    transition:all .14s ease;
}
.ce-page--department-permissions .compact-check:hover span{
    border-color:#94a3b8;
    transform:scale(1.04);
}
.ce-page--department-permissions .compact-check input:checked + span{
    border-color:var(--matrix-green);
    background:var(--matrix-green);
    box-shadow:0 3px 8px rgba(16,185,129,.24);
}
.ce-page--department-permissions .compact-check input:checked + span:after{
    content:"";
    position:absolute;
    left:4px;
    top:1px;
    width:4px;
    height:8px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}
.ce-page--department-permissions .compact-check input:focus-visible + span{
    outline:3px solid rgba(16,185,129,.22);
    outline-offset:2px;
}
.ce-page--department-permissions .department-row.hidden-by-search,
.ce-page--department-permissions .facility-row.hidden-by-search{display:none}

.ce-page--department-permissions .bottom-save-bar{
    width:95%;
    margin:.85rem auto 0;
    padding:.72rem .85rem;
    position:sticky;
    bottom:0;
    z-index:35;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    border:1px solid var(--matrix-border);
    border-radius:14px;
    background:rgba(255,255,255,.97);
    box-shadow:0 -8px 25px rgba(15,23,42,.08);
    backdrop-filter:blur(8px);
}
.ce-page--department-permissions #bottomUnsavedIndicator{
    font-size:.78rem;
    color:var(--matrix-muted);
}

.ce-page--department-permissions .user-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:10000;
    align-items:center;
    justify-content:center;
    padding:1rem;
    background:rgba(15,23,42,.48);
    backdrop-filter:blur(3px);
}
.ce-page--department-permissions .user-modal-card{
    width:min(430px,100%);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.5);
    border-radius:16px;
    background:#fff;
    box-shadow:0 24px 60px rgba(15,23,42,.28);
}
.ce-page--department-permissions .user-modal-header{
    padding:1rem 1.1rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid #e5e7eb;
    background:#f8fafc;
}
.ce-page--department-permissions .user-modal-header h3{margin:0;color:#0f172a}
.ce-page--department-permissions .user-modal-header button{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#64748b;
    font-size:1.45rem;
    cursor:pointer;
}
.ce-page--department-permissions .user-modal-header button:hover{background:#e2e8f0}
.ce-page--department-permissions .user-modal-body{padding:1rem 1.1rem}
.ce-page--department-permissions .modal-row{
    display:grid;
    grid-template-columns:100px 1fr;
    gap:.8rem;
    padding:.65rem 0;
    border-bottom:1px solid #f1f5f9;
}
.ce-page--department-permissions .modal-row:last-child{border-bottom:0}
.ce-page--department-permissions .modal-row span{
    color:#64748b;
    font-size:.77rem;
    font-weight:600;
}
.ce-page--department-permissions .modal-row strong{
    color:#1f2937;
    font-size:.82rem;
    word-break:break-word;
}

.ce-page--department-permissions .form-control{
    padding:.58rem .75rem;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    color:#1f2937;
    font-size:.84rem;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}
.ce-page--department-permissions .form-control:focus{
    border-color:#10b981;
    outline:0;
    box-shadow:0 0 0 3px rgba(16,185,129,.13);
}
.ce-page--department-permissions .btn{
    min-height:36px;
    padding:.5rem .9rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    border-radius:9px;
    font-size:.8rem;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
    transition:.14s ease;
}
.ce-page--department-permissions .btn:hover{transform:translateY(-1px)}
.ce-page--department-permissions .btn-primary{
    background:var(--ce-action-save, #2E7D32);
    color:#fff;
    box-shadow:0 4px 10px rgba(46,125,50,.22);
}
.ce-page--department-permissions .btn-primary:hover{
    background:var(--ce-action-save-hover, #256628);
}
.ce-page--department-permissions .btn-secondary{
    border-color:var(--ce-action-cancel, #757575);
    background:var(--ce-action-cancel, #757575);
    color:#fff;
}
.ce-page--department-permissions .btn-secondary:hover{
    background:var(--ce-action-cancel-hover, #616161);
}
.ce-page--department-permissions .alert{
    width:95%;
    margin:0 auto .8rem;
    padding:.75rem .9rem;
    border-radius:10px;
}
.ce-page--department-permissions .alert-success{
    border:1px solid #a7f3d0;
    background:#ecfdf5;
    color:#065f46;
}
.ce-page--department-permissions .alert-danger{
    border:1px solid #fecaca;
    background:#fef2f2;
    color:#991b1b;
}
.ce-page--department-permissions .empty-state{
    width:95%;
    margin:0 auto;
    padding:2.25rem;
    text-align:center;
    border:1px solid var(--matrix-border);
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 25px rgba(15,23,42,.06);
}

@media (max-width:900px){
    .ce-page--department-permissions .compact-page-header,
.ce-page--department-permissions .matrix-toolbar,
.ce-page--department-permissions .matrix-shell,
.ce-page--department-permissions .bottom-save-bar,
.ce-page--department-permissions .alert,
.ce-page--department-permissions .empty-state{width:95%}

    .ce-page--department-permissions .department-col,
.ce-page--department-permissions .facility-title-cell{
        left:0;
        width:210px;
        min-width:210px;
        max-width:210px;
    }
    .ce-page--department-permissions .user-col{
        width:62px;
        min-width:62px;
        max-width:62px;
    }
    .ce-page--department-permissions .matrix-toolbar .form-control{width:240px}
}

/* Inline-style replacements */
.ce-page--department-permissions .bottom-save-bar {
    position: sticky;
}
.ce-page--department-permissions #bottomUnsavedIndicator {
    position: absolute;
    left: 20px;
}
.ce-page--department-permissions .bottom-save-button {
    margin: 0 auto;
}
.ce-page--department-permissions .permission-setup-actions {
    justify-content: space-between;
    margin-top: 1rem;
}

/* ==========================================================================
   Subscription / Billing
   ========================================================================== */
.ce-page--subscription-billing .billing-page-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.ce-page--subscription-billing .billing-content-card {
    max-width: 1000px;
    margin: 0 auto 24px;
}

.ce-page--subscription-billing .billing-content-card--last {
    margin-bottom: 0;
}

.ce-page--subscription-billing .subscription-summary,
.ce-page--subscription-billing .usage-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}

.ce-page--subscription-billing .summary-box,
.ce-page--subscription-billing .usage-card {
    padding: 16px;
    border: 1px solid var(--ce-color-border);
    border-radius: var(--ce-radius-lg);
    background: var(--ce-color-surface);
}

.ce-page--subscription-billing .summary-label {
    display: block;
    margin-bottom: 6px;
    color: #6b7280;
    font-size: 13px;
    font-weight: 400;
}

.ce-page--subscription-billing .summary-value {
    color: var(--ce-color-text);
    font-size: 18px;
    font-weight: 700;
}

.ce-page--subscription-billing .usage-card-label {
    margin-bottom: 8px;
    color: var(--ce-color-text);
    font-weight: 700;
}

.ce-page--subscription-billing .usage-card-value {
    color: var(--ce-color-text);
    font-size: 24px;
    font-weight: 700;
}

.ce-page--subscription-billing .usage-progress {
    display: block;
    width: 100%;
    height: 8px;
    margin-top: 12px;
    overflow: hidden;
    border: 0;
    border-radius: var(--ce-radius-pill);
    background: var(--ce-color-border);
    appearance: none;
}

.ce-page--subscription-billing .usage-progress::-webkit-progress-bar {
    border-radius: var(--ce-radius-pill);
    background: var(--ce-color-border);
}

.ce-page--subscription-billing .usage-progress::-webkit-progress-value {
    border-radius: var(--ce-radius-pill);
    background: var(--ce-brand-primary);
}

.ce-page--subscription-billing .usage-progress::-moz-progress-bar {
    border-radius: var(--ce-radius-pill);
    background: var(--ce-brand-primary);
}

@media (max-width: 640px) {
    .ce-page--subscription-billing .billing-page-nav .btn {
        width: 100%;
    }

    .ce-page--subscription-billing .subscription-summary,
    .ce-page--subscription-billing .usage-grid {
        grid-template-columns: 1fr;
    }
}



/* Standalone dashboard sub-section heading.
   Shared .ce-sub-section-bar styling is defined only in the global hierarchy below. */
.dashboard-subsection-heading {
    background: var(--ce-sub-section-bg, var(--ce-brand-accent));
    color: #000000;
}


/* ==========================================================================
   Assets Setup white-label hierarchy
   Page title       -> company_white_label.primary_color
   Facility bars    -> company_white_label.secondary_color
   Department bars  -> company_white_label.accent_color
   ========================================================================== */
.ce-page--assets-setup .page-hero.ce-page-title-bar {
    background: var(--ce-page-title-bg, var(--ce-brand-primary));
    border-color: transparent;
    color: var(--ce-page-title-color, #ffffff);
}

.ce-page--assets-setup .page-hero.ce-page-title-bar .eyebrow,
.ce-page--assets-setup .page-hero.ce-page-title-bar h1,
.ce-page--assets-setup .page-hero.ce-page-title-bar .subtitle {
    color: inherit;
}

.ce-page--assets-setup .page-hero.ce-page-title-bar .eyebrow,
.ce-page--assets-setup .page-hero.ce-page-title-bar .subtitle {
    opacity: .9;
}

.ce-page--assets-setup .page-hero.ce-page-title-bar .summary-card {
    border: 1px solid rgba(255,255,255,.24);
    background: rgba(255,255,255,.14);
    color: #ffffff;
}

.ce-page--assets-setup .facility-group-header.ce-main-section-bar {
    background: var(--ce-main-section-bg, var(--ce-brand-secondary));
    border-bottom-color: rgba(255,255,255,.2);
    color: var(--ce-main-section-color, #ffffff);
}

.ce-page--assets-setup .facility-group-header.ce-main-section-bar:hover {
    filter: brightness(1.06);
}

.ce-page--assets-setup .facility-group-header.ce-main-section-bar .group-title,
.ce-page--assets-setup .facility-group-header.ce-main-section-bar .group-meta,
.ce-page--assets-setup .facility-group-header.ce-main-section-bar .facility-group-stats,
.ce-page--assets-setup .facility-group-header.ce-main-section-bar .toggle-icon {
    color: inherit;
}

.ce-page--assets-setup .facility-group-header.ce-main-section-bar .group-meta,
.ce-page--assets-setup .facility-group-header.ce-main-section-bar .facility-group-stats {
    opacity: .9;
}

.ce-page--assets-setup .department-group-header.ce-sub-section-bar {
    background: var(--ce-sub-section-bg, var(--ce-brand-accent));
    border-bottom-color: rgba(255,255,255,.2);
    color: var(--ce-sub-section-color, #ffffff);
}

.ce-page--assets-setup .department-group-header.ce-sub-section-bar .dept-name,
.ce-page--assets-setup .department-group-header.ce-sub-section-bar .asset-count,
.ce-page--assets-setup .department-group-header.ce-sub-section-bar .dept-icon-box {
    color: inherit;
}

.ce-page--assets-setup .department-group-header.ce-sub-section-bar .dept-code,
.ce-page--assets-setup .department-group-header.ce-sub-section-bar .empty-badge {
    border: 1px solid rgba(255,255,255,.24);
    background: rgba(255,255,255,.16);
    color: #ffffff;
}

/* Keep empty departments in the same white-label hierarchy. */
.ce-page--assets-setup .department-group-header.ce-sub-section-bar.empty-dept-header {
    background: var(--ce-sub-section-bg, var(--ce-brand-accent));
    border-bottom-color: rgba(255,255,255,.2);
}

.ce-page--assets-setup .empty-department .department-group-header.ce-sub-section-bar .dept-name,
.ce-page--assets-setup .department-group-header.ce-sub-section-bar .asset-count.empty-count {
    color: inherit;
}


/* ==========================================================================
   Global Carbon ESG white-label heading hierarchy
   pages.css is the only file permitted to define these shared bars.

   Typography standard:
   Page title       26px
   Main section     22px
   Sub-section      18px
   ========================================================================== */
.ce-page-title-bar {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 12px 18px;
    margin: 0 0 14px;
    overflow: hidden;
    border-radius: var(--ce-radius-lg, 12px);
    background: var(--ce-page-title-bg, var(--ce-brand-primary)) !important;
    color: #000000 !important;
}

.ce-page-title-bar h1 {
    margin: 0 0 4px;
    color: inherit !important;
    font-size: 22px !important;
    line-height: 1.2;
    font-weight: 700;
}

.ce-page-title-bar p {
    margin: 0;
    color: inherit !important;
    font-size: 14px !important;
    line-height: 1.4;
    font-weight: 400;
}

.ce-main-section-bar {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 8px 14px;
    margin: 0 0 10px;
    overflow: hidden;
    border-radius: var(--ce-radius-md, 8px);
    background: var(--ce-main-section-bg, var(--ce-brand-secondary)) !important;
    color: #000000 !important;
    font-size: 18px !important;
    line-height: 1.3;
    font-weight: 700;
}

.ce-sub-section-bar {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 6px 12px;
    margin: 0 0 8px;
    overflow: hidden;
    border-radius: var(--ce-radius-md, 8px);
    background: var(--ce-sub-section-bg, var(--ce-brand-accent)) !important;
    color: #000000 !important;
    font-size: 16px !important;
    line-height: 1.3;
    font-weight: 600;
}

.ce-main-section-bar h1,
.ce-main-section-bar h2,
.ce-main-section-bar h3,
.ce-sub-section-bar h1,
.ce-sub-section-bar h2,
.ce-sub-section-bar h3 {
    margin: 0;
    color: inherit !important;
    font-size: inherit !important;
    line-height: inherit;
    font-weight: inherit;
}

.ce-page-title-bar *,
.ce-main-section-bar *,
.ce-sub-section-bar * {
    color: inherit !important;
}



/* ==========================================================================
   Maker Manual Emission Input
   Facility is view-only; department choices are permission-filtered by PHP.
   ========================================================================== */
.ce-page--manual-input {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.ce-page--manual-input .ce-form-panel {
    margin-bottom: 18px;
}

.ce-page--manual-input .content-card {
    padding: 18px;
    border-color: #dbe4ee;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
}

.ce-page--manual-input .form-section {
    padding: 16px;
    margin-bottom: 18px;
    border-color: #dbe4ee;
    background: #ffffff;
}

.ce-page--manual-input .asset-selection-panel {
    padding: 16px;
    margin: 0 0 18px;
    overflow: visible;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
}

.ce-page--manual-input .asset-selection-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid #e2e8f0;
}

.ce-page--manual-input .manual-selection-title {
    display: block;
    color: #0f172a;
    font-size: 16px;
    font-weight: 800;
}

.ce-page--manual-input .asset-selection-heading span:not(.manual-view-badge) {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
}

.ce-page--manual-input .asset-selection-flow {
    flex: 0 0 auto;
    padding: 6px 10px;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    background: #ecfdf5;
    color: #166534;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.ce-page--manual-input .asset-selection-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ce-page--manual-input .asset-select-step.hierarchy-row {
    position: relative;
    display: block;
    min-width: 0;
    padding: 12px 12px 12px 42px;
    border: 1px solid #dbe4ee;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 2px 7px rgba(15, 23, 42, .04);
}

.ce-page--manual-input .asset-select-step:focus-within {
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .10);
}

.ce-page--manual-input .asset-step-number {
    position: absolute;
    top: 12px;
    left: 11px;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #1565c0;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
}

.ce-page--manual-input .asset-select-step .form-label {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 0;
    margin: 0 0 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    white-space: normal;
}

.ce-page--manual-input .manual-view-badge {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 2px 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569 !important;
    font-size: 9px !important;
    font-weight: 800;
    text-transform: uppercase;
}

.ce-page--manual-input .asset-select-step .form-control {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 9px 38px 9px 12px;
    color: #1f2937;
    background: #ffffff;
    font-size: 14px;
}

.ce-page--manual-input .asset-select-step .form-control:disabled {
    color: #94a3b8;
    background: #f1f5f9;
    border-color: #e2e8f0;
    cursor: not-allowed;
}

.ce-page--manual-input .selected-asset-summary {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid #bbf7d0;
    border-left: 4px solid #16a34a;
    border-radius: 8px;
    background: #f0fdf4;
    color: #166534;
    font-size: 12px;
    line-height: 1.5;
}

.ce-page--manual-input .activity-entry-lock-message {
    grid-column: 1 / -1;
    display: none;
    padding: 10px 12px;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.ce-page--manual-input .activity-entry-fields.is-locked .activity-entry-lock-message {
    display: block;
}

.ce-page--manual-input .manual-entry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ce-page--manual-input .manual-entry-grid > .form-row {
    min-width: 0;
}

.ce-page--manual-input .manual-entry-grid > .form-row:last-child {
    grid-column: 1 / -1;
}

.ce-page--manual-input .activity-entry-fields.is-locked > .form-row {
    opacity: .46;
    pointer-events: none;
}

.ce-page--manual-input .form-row {
    margin: 0;
}

.ce-page--manual-input .form-group {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 5px;
    min-height: 0;
}

.ce-page--manual-input .form-group .form-label {
    min-width: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    white-space: normal;
}

.ce-page--manual-input .form-group .form-control {
    min-height: 40px;
    padding: 8px 10px;
    font-size: 13px;
}

.ce-page--manual-input textarea.form-control {
    min-height: 88px;
    resize: vertical;
}

.ce-page--manual-input .form-text {
    color: #64748b;
    font-size: 11px;
    line-height: 1.4;
}

.ce-page--manual-input .manual-evidence-section .form-group {
    padding: 12px;
    border: 1px dashed #94a3b8;
    border-radius: 10px;
    background: #f8fafc;
}

.ce-page--manual-input .manual-evidence-section input[type="file"] {
    padding: 7px;
    background: #ffffff;
}

.ce-page--manual-input .ce-action-row {
    justify-content: center;
    padding-top: 14px;
    border-top: 1px solid #e2e8f0;
}

@media (max-width: 700px) {
    .ce-page--manual-input {
        padding: 12px;
    }

    .ce-page--manual-input .asset-selection-heading {
        flex-direction: column;
    }

    .ce-page--manual-input .asset-selection-grid,
    .ce-page--manual-input .manual-entry-grid {
        grid-template-columns: 1fr;
    }

    .ce-page--manual-input .manual-entry-grid > .form-row:last-child {
        grid-column: auto;
    }

    .ce-page--manual-input .ce-action-row .btn {
        width: 100%;
    }
}


/* Manual Input: remove unnecessary outer card layer */
.ce-page--manual-input .form-section {
    padding: 0;
    margin-bottom: 1.5rem;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.ce-page--manual-input .form-section > .ce-sub-section-bar {
    margin-bottom: 12px;
}

/* Manual Input: remove the remaining outer content card */
.ce-page--manual-input > .content-card.ce-form-panel {
    padding: 0;
    margin-bottom: 1.5rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}


/* Department Permissions toolbar buttons */
.ce-page--department-permissions .toolbar-buttons .btn-view {
    color: #ffffff !important;
}

.ce-page--department-permissions .toolbar-buttons .btn-view:hover {
    color: #ffffff !important;
}

/* assets_setup_advance_search.php — system asset catalogue search */
.ce-page--assets-advance .asset-catalogue-search-card {
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid var(--ce-border-color, #d9e1e8);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.ce-page--assets-advance .asset-catalogue-search-card .right-column-title {
    margin: 0 0 12px;
}

.ce-page--assets-advance .asset-catalogue-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.ce-page--assets-advance .asset-catalogue-search-row .form-control {
    min-width: 0;
    height: 40px;
}

.ce-page--assets-advance .asset-catalogue-search-row .btn {
    min-width: 88px;
    white-space: nowrap;
}

.ce-page--assets-advance .asset-catalogue-search-help {
    margin-top: 7px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.4;
}

.ce-page--assets-advance .asset-catalogue-search-status {
    margin-top: 12px;
}

.ce-page--assets-advance .asset-catalogue-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    padding: 9px 10px;
    border: 1px solid #dbe5ef;
    border-radius: 8px;
    background: #f8fafc;
    font-size: 12px;
}

.ce-page--assets-advance .asset-catalogue-count {
    font-weight: 700;
    color: #0f172a;
}

.ce-page--assets-advance .asset-catalogue-range,
.ce-page--assets-advance .asset-catalogue-match-field {
    color: #475569;
}

.ce-page--assets-advance .asset-catalogue-range::before,
.ce-page--assets-advance .asset-catalogue-match-field::before {
    content: "•";
    margin-right: 7px;
    color: #94a3b8;
}

.ce-page--assets-advance .asset-catalogue-loading {
    display: inline-block;
    color: #475569;
    font-size: 13px;
}

.ce-page--assets-advance .asset-catalogue-search-results {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.ce-page--assets-advance .asset-catalogue-result {
    width: 100%;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
    padding: 10px;
    border: 1px solid #dbe3ec;
    border-radius: 8px;
    background: #fff;
    color: #1e293b;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ce-page--assets-advance .asset-catalogue-result:hover,
.ce-page--assets-advance .asset-catalogue-result:focus-visible {
    border-color: #1565c0;
    box-shadow: 0 4px 12px rgba(21, 101, 192, 0.12);
    transform: translateY(-1px);
    outline: none;
}

.ce-page--assets-advance .asset-catalogue-result-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #eaf2fb;
    color: #1565c0;
    font-size: 12px;
    font-weight: 700;
}

.ce-page--assets-advance .asset-catalogue-result-body {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.ce-page--assets-advance .asset-catalogue-result-title {
    display: block;
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.ce-page--assets-advance .asset-catalogue-result-line {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 6px;
    font-size: 12px;
    line-height: 1.35;
}

.ce-page--assets-advance .asset-catalogue-result-line strong {
    color: #475569;
    font-weight: 600;
}

.ce-page--assets-advance .asset-catalogue-result-line em {
    color: #334155;
    font-style: normal;
    overflow-wrap: anywhere;
}

.ce-page--assets-advance .asset-catalogue-factor-line em {
    color: #00695c;
    font-weight: 600;
}

.ce-page--assets-advance .asset-catalogue-select-label {
    align-self: center;
    color: #1565c0;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.ce-page--assets-advance .asset-catalogue-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
    margin-top: 12px;
}

.ce-page--assets-advance .asset-catalogue-page-btn {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    color: #334155;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ce-page--assets-advance .asset-catalogue-page-btn:hover:not(:disabled),
.ce-page--assets-advance .asset-catalogue-page-btn:focus-visible {
    border-color: #1565c0;
    color: #1565c0;
    outline: none;
}

.ce-page--assets-advance .asset-catalogue-page-btn.is-active {
    border-color: #1565c0;
    background: #1565c0;
    color: #fff;
}

.ce-page--assets-advance .asset-catalogue-page-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

@media (max-width: 760px) {
    .ce-page--assets-advance .asset-catalogue-search-row {
        grid-template-columns: 1fr;
    }

    .ce-page--assets-advance .asset-catalogue-result {
        grid-template-columns: 26px minmax(0, 1fr);
    }

    .ce-page--assets-advance .asset-catalogue-select-label {
        grid-column: 2;
        justify-self: start;
    }
}

/* Two-level grouped search results: group_name > ui_asset_level1 */
.ce-page--assets-advance .asset-catalogue-search-results {
    gap: 10px;
}

.ce-page--assets-advance .asset-catalogue-primary-group {
    overflow: hidden;
    border: 1px solid #cbd9e7;
    border-radius: 9px;
    background: #fff;
}

.ce-page--assets-advance .asset-catalogue-group-toggle {
    width: 100%;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto auto;
    gap: 9px;
    align-items: center;
    border: 0;
    text-align: left;
    cursor: pointer;
}

.ce-page--assets-advance .asset-catalogue-primary-toggle {
    padding: 11px 12px;
    background: #eef5fc;
    color: #153b63;
    border-bottom: 1px solid transparent;
}

.ce-page--assets-advance .asset-catalogue-primary-toggle[aria-expanded="true"] {
    border-bottom-color: #cbd9e7;
}

.ce-page--assets-advance .asset-catalogue-level1-toggle {
    padding: 9px 10px;
    background: #f8fafc;
    color: #25364a;
    border: 1px solid #dbe4ed;
    border-radius: 7px;
}

.ce-page--assets-advance .asset-catalogue-level1-toggle[aria-expanded="true"] {
    border-color: #b8cbe0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.ce-page--assets-advance .asset-catalogue-group-toggle:hover,
.ce-page--assets-advance .asset-catalogue-group-toggle:focus-visible {
    filter: brightness(0.985);
    outline: 2px solid rgba(21, 101, 192, 0.2);
    outline-offset: -2px;
}

.ce-page--assets-advance .asset-catalogue-toggle-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 18px;
    height: 18px;
    font-size: 19px;
    line-height: 1;
    transition: transform 0.15s ease;
}

.ce-page--assets-advance .asset-catalogue-group-toggle[aria-expanded="true"] .asset-catalogue-toggle-icon {
    transform: rotate(90deg);
}

.ce-page--assets-advance .asset-catalogue-group-name {
    min-width: 0;
    font-size: 13px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ce-page--assets-advance .asset-catalogue-primary-toggle .asset-catalogue-group-name {
    font-size: 14px;
}

.ce-page--assets-advance .asset-catalogue-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 76px;
    padding: 3px 8px;
    border: 1px solid #c6d5e5;
    border-radius: 999px;
    background: #fff;
    color: #42566c;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.ce-page--assets-advance .asset-catalogue-expand-text {
    min-width: 48px;
    color: #1565c0;
    font-size: 11px;
    font-weight: 700;
    text-align: right;
}

.ce-page--assets-advance .asset-catalogue-primary-content {
    display: grid;
    gap: 8px;
    padding: 9px;
    background: #fff;
}

.ce-page--assets-advance .asset-catalogue-level1-group {
    display: grid;
}

.ce-page--assets-advance .asset-catalogue-level1-group > .asset-catalogue-group-content {
    display: grid;
    gap: 7px;
    padding: 8px;
    border: 1px solid #b8cbe0;
    border-top: 0;
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px;
    background: #fff;
}

.ce-page--assets-advance .asset-catalogue-group-content[hidden] {
    display: none !important;
}

.ce-page--assets-advance .asset-catalogue-level1-group .asset-catalogue-result {
    border-radius: 6px;
    box-shadow: none;
}

@media (max-width: 760px) {
    .ce-page--assets-advance .asset-catalogue-group-toggle {
        grid-template-columns: 18px minmax(0, 1fr) auto;
    }

    .ce-page--assets-advance .asset-catalogue-expand-text {
        display: none;
    }

    .ce-page--assets-advance .asset-catalogue-group-count {
        min-width: 64px;
        padding-inline: 6px;
    }
}
