/*
 * Copyright (c) 2025 EUMETSAT
 * License: Proprietary
 * Shared UI components: action icons, pagination, badges, modals, app-btn-back.
 */

.action_datatable .fa,
.table-icons {
    font-size: 13px;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-base);
    border: none !important;
    outline: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, transform 0.15s, box-shadow 0.15s;
    flex-shrink: 0;
}

.action_datatable :not(.actionBtn) > .fa-pencil {
    background: var(--color-accent-light);
    color: var(--color-accent);
}
.action_datatable :not(.actionBtn) > .fa-pencil:hover {
    background: var(--color-accent);
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(30,64,175,0.28);
}

.action_datatable .fa-trash-o,
.action_datatable .fa-trash {
    background: var(--color-danger-bg);
    color: var(--color-danger);
}
.action_datatable .fa-trash-o:hover,
.action_datatable .fa-trash:hover {
    background: var(--color-danger);
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(220,38,38,0.28);
}

.action_datatable .fa-clock-o {
    background: var(--color-warning-bg);
    color: var(--color-warning);
    font-size: 15px;
}
.action_datatable .fa-clock-o:hover {
    background: var(--color-warning);
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(217,119,6,0.28);
}

.action_datatable :not(.actionBtn) > .fa-file-text,
.action_datatable :not(.actionBtn) > .fa-eye {
    background: var(--color-surface-5);
    color: #475569;
}
.action_datatable :not(.actionBtn) > .fa-file-text:hover,
.action_datatable :not(.actionBtn) > .fa-eye:hover {
    background: #475569;
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(71,85,105,0.28);
}

.action_datatable :not(.actionBtn) > .fa-envelope {
    background: var(--color-success-bg);
    color: var(--color-success);
}
.action_datatable :not(.actionBtn) > .fa-envelope:hover {
    background: var(--color-success);
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(22,163,74,0.28);
}

.action_datatable .fa-undo {
    background: var(--color-surface-5);
    color: var(--color-text-slate);
}
.action_datatable .fa-undo:hover {
    background: var(--color-text-slate);
    color: var(--color-surface);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(100,116,139,0.28);
}

.action_datatable a:not(.actionBtn) {
    text-decoration: none !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.action_datatable a:not(.actionBtn):hover,
.action_datatable a:not(.actionBtn):focus,
.action_datatable a:not(.actionBtn):active {
    border: none !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.btn,
.btn-primary {
    background-color: var(--color-accent);
    color: var(--color-surface);
    border: none;
    padding: 9px 18px;
    font-weight: 600;
    font-size: 13px;
    font-family: var(--font-sans);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: var(--radius-md-2);
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(30,64,175,0.2);
    transition: background 0.18s, box-shadow 0.18s, transform 0.1s;
    line-height: 1.4;
}
.btn:hover,
.btn-primary:hover {
    background-color: var(--color-accent-hover);
    color: var(--color-surface);
    box-shadow: 0 4px 10px rgba(30,64,175,0.3);
    text-decoration: none;
    transform: translateY(-1px);
}
.btn:active,
.btn-primary:active {
    transform: scale(0.985);
}

.btn-secondary {
    background-color: var(--color-surface);
    color: var(--color-text-secondary-alt);
    border: 1px solid var(--color-border-2);
    box-shadow: none;
}
.btn-secondary:hover {
    background-color: var(--color-surface-3);
    border-color: var(--color-text-muted);
    color: var(--color-text-primary);
    box-shadow: none;
    transform: translateY(-1px);
}

.btn-danger {
    background-color: var(--color-danger);
    color: var(--color-surface);
    border: none;
    box-shadow: 0 1px 2px rgba(220,38,38,0.2);
}
.btn-danger:hover {
    background-color: var(--color-danger-hover);
    color: var(--color-surface);
    box-shadow: 0 4px 10px rgba(220,38,38,0.28);
    transform: translateY(-1px);
}

.app-btn-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: var(--radius-md-2);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-secondary-alt);
    font-size: 13px;
    font-weight: 600;
    font-family: var(--font-sans);
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.app-btn-back:hover {
    background: var(--color-surface-3);
    border-color: var(--color-border-2);
    color: var(--color-text-primary);
    transform: translateY(-1px);
    text-decoration: none;
}

.login_success {
    color: var(--color-success-dark);
    background-color: var(--color-success-bg);
    border: 1px solid var(--color-success-border);
    padding: 14px 16px;
    border-radius: var(--radius-xl);
    font-weight: 500;
    font-size: 14px;
    margin-bottom: 16px;
    text-align: center;
}

.login_error {
    color: var(--color-danger);
    background-color: var(--color-danger-bg);
    border: 1px solid var(--color-danger-border);
    padding: 14px 16px;
    border-radius: var(--radius-xl);
    font-weight: 500;
    font-size: 14px;
    margin-bottom: 16px;
    text-align: center;
}

.warning-message {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-warning-dark);
    background: var(--color-warning-bg);
    border: 1px solid var(--color-warning-border);
    padding: 12px 16px;
    border-radius: var(--radius-xl);
    margin-bottom: 16px;
    line-height: 1.5;
}
.warning-message i {
    font-size: 15px;
    color: var(--color-warning);
    flex-shrink: 0;
}

table {
    width: 100%;
    border-collapse: collapse;
    background: var(--color-surface);
    font-family: var(--font-sans);
}

th {
    background-color: var(--color-accent);
    color: var(--color-surface);
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 11px 14px;
    text-align: left;
    border: none;
}

td {
    padding: 11px 14px;
    text-align: left;
    border: none;
    border-bottom: 1px solid var(--color-border-4);
    font-size: 13px;
    color: var(--color-text-primary);
}

tr:nth-child(even) td { background-color: var(--color-surface-alt); }
tr:hover td { background-color: var(--color-accent-light) !important; transition: background-color 0.12s; }
tbody tr:last-child td { border-bottom: none; }

td i.fa.fa-certificate { color: var(--color-accent); }
td.dt-center, th.dt-center { text-align: center; }
th:last-child, td:last-child { text-align: center; }

.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border: 1px solid var(--color-border-2) !important;
    border-radius: var(--radius-md-2) !important;
    min-height: 38px;
    font-family: var(--font-sans);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--color-text-primary) !important;
    line-height: 36px !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 3px rgba(30,64,175,0.12);
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    display: flex !important;
    align-items: center !important;
    color: var(--color-accent) !important;
    background-color: var(--color-accent-light) !important;
    border: 1px solid var(--color-accent-border) !important;
    border-radius: 14px !important;
    padding: 2px 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    order: 2 !important;
    margin-left: 8px !important;
    float: none !important;
    position: static !important;
    cursor: pointer;
    color: var(--color-accent) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--color-accent) !important;
}
.select2-dropdown {
    border-color: var(--color-border-2) !important;
    border-radius: var(--radius-md-2) !important;
    font-family: var(--font-sans);
}