/**
 * TTAssure Design System CSS
 *
 * Based on TTConfirm V2 Style Guide
 * Navigation Color: #1A5D6E (Teal)
 *
 * Version: 1.0
 * Created: 2026-01-13
 */

:root {
    /* ========================================
       PRIMARY COLORS - TTConfirm V2
       ======================================== */
    --primary-blue: #007bff;
    --primary-blue-hover: #0056b3;
    --corporate-dark-blue: #003366;
    --corporate-medium-blue: #00509e;

    /* ========================================
       NAVIGATION COLORS - Teal Theme
       ======================================== */
    --nav-bg: #1A5D6E;
    --nav-hover: #257A8A;
    --nav-dropdown: #1A5D6E;
    --nav-dropdown-hover: #1E4F5C;
    --nav-divider: #257A8A;

    /* ========================================
       NEUTRAL COLORS
       ======================================== */
    /* Text Colors */
    --text-primary: #333;
    --text-secondary: #666;
    --text-tertiary: #999;

    /* Background Colors */
    --bg-page: #f4f4f4;
    --bg-container: #ffffff;
    --bg-card: #ffffff;
    --bg-filter: #f8f9fa;

    /* Border Colors */
    --border-light: #ddd;
    --border-medium: #e0e0e0;
    --border-table: #000000;

    /* ========================================
       SEMANTIC COLORS
       ======================================== */
    /* Success - Green */
    --success: #4CAF50;
    --success-light: #e8f5e9;
    --success-dark: #2e7d32;
    --success-alt: #28a745;

    /* Warning - Orange */
    --warning: #FF9800;
    --warning-light: #fff3e0;
    --warning-dark: #e65100;
    --warning-alt: #ffe0b2;

    /* Error - Red */
    --error: #f44336;
    --error-light: #ffebee;
    --error-dark: #c62828;
    --error-alt: #ffcdd2;

    /* Info - Blue */
    --info: #2196F3;
    --info-light: #e3f2fd;
    --info-dark: #1565c0;

    /* ========================================
       TYPOGRAPHY
       ======================================== */
    --font-family: Arial, sans-serif;

    /* Font Sizes */
    --font-size-nav: 12px;
    --font-size-table-body: 12px;
    --font-size-table-header: 13px;
    --font-size-button: 13px;
    --font-size-input: 14px;
    --font-size-small: 12px;
    --font-size-base: 14px;
    --font-size-large: 2rem;

    /* Font Weights */
    --font-weight-normal: normal;
    --font-weight-medium: 600;
    --font-weight-bold: bold;

    /* Line Heights */
    --line-height-tight: 1.2;
    --line-height-normal: 18px;

    /* ========================================
       SPACING SCALE
       ======================================== */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 10px;
    --spacing-lg: 15px;
    --spacing-xl: 20px;
    --spacing-2xl: 25px;
    --spacing-3xl: 30px;

    /* ========================================
       BORDER RADIUS
       ======================================== */
    --radius-sm: 3px;
    --radius-button: 5px;
    --radius-input: 4px;
    --radius-card: 8px;
    --radius-badge: 12px;

    /* ========================================
       BOX SHADOWS
       ======================================== */
    --shadow-subtle: 0 2px 4px rgba(0, 0, 0, 0.05);
    --shadow-medium: 0 0 10px rgba(0, 0, 0, 0.1);
    --shadow-strong: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    --shadow-focus: 0 0 0 2px rgba(0, 123, 255, 0.1);

    /* ========================================
       TRANSITIONS
       ======================================== */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
}

/* ========================================
   TEST BUTTON - Primary Action Button
   ======================================== */
.test-button {
    display: inline-block;
    padding: 4px 10px;
    font-size: var(--font-size-button);
    font-weight: var(--font-weight-bold);
    color: black;
    text-align: center;
    text-decoration: none;
    background-color: #cfcfcf;
    border: none;
    border-radius: var(--radius-button);
    cursor: pointer;
    transition: background-color var(--transition-normal);
}

.test-button:hover {
    background-color: var(--primary-blue-hover);
    color: white;
}

/* ========================================
   STATUS BADGES
   ======================================== */
.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: var(--radius-badge);
    font-size: 0.85em;
    font-weight: var(--font-weight-medium);
}

.status-badge.status-success,
.status-badge.status-signed {
    background: var(--success-light);
    color: var(--success-dark);
}

.status-badge.status-warning,
.status-badge.status-pending {
    background: var(--warning-light);
    color: var(--warning-dark);
}

.status-badge.status-error,
.status-badge.status-unsigned,
.status-badge.status-failed {
    background: var(--error-light);
    color: var(--error-dark);
}

.status-badge.status-info {
    background: var(--info-light);
    color: var(--info-dark);
}

/* Workflow-specific status aliases */
.status-badge.status-running {
    background: var(--info-light);
    color: var(--info-dark);
}

.status-badge.status-timeout {
    background: var(--error-light);
    color: var(--error-dark);
}

/* ========================================
   FILTER PANEL
   ======================================== */
.filter-panel {
    background: var(--bg-filter);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-card);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-2xl);
}

.filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.filter-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: var(--font-weight-medium);
    color: var(--text-secondary);
}

/* ========================================
   SUMMARY CARDS
   ======================================== */
.summary-card {
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-card);
    padding: var(--spacing-xl);
    text-align: center;
    box-shadow: var(--shadow-subtle);
    transition: box-shadow var(--transition-fast);
}

.summary-card:hover {
    box-shadow: var(--shadow-medium);
}

.summary-card.card-total {
    border-left: 4px solid var(--info);
}

.summary-card.card-complete {
    border-left: 4px solid var(--success);
}

.summary-card.card-outstanding {
    border-left: 4px solid var(--warning);
}

.summary-card.card-expiring {
    border-left: 4px solid var(--error);
}

.card-value {
    font-size: var(--font-size-large);
    font-weight: var(--font-weight-bold);
    color: var(--text-primary);
    line-height: var(--line-height-tight);
}

.card-label {
    font-size: var(--font-size-small);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: var(--spacing-sm);
}

/* ========================================
   PROGRESS BAR
   ======================================== */
.progress-bar-container {
    width: 100%;
    height: 8px;
    background: var(--border-medium);
    border-radius: var(--radius-sm);
    margin-top: var(--spacing-md);
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    background: var(--success);
    border-radius: var(--radius-sm);
    transition: width var(--transition-normal);
}

/* ========================================
   HEADER ACTIONS
   ======================================== */
.header-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
}

/* ========================================
   EXPIRY INDICATORS
   ======================================== */
.expiry-expired {
    color: var(--error-dark) !important;
    font-weight: var(--font-weight-medium);
}

.expiry-soon {
    color: var(--warning-dark) !important;
    font-weight: var(--font-weight-medium);
}

.expiry-badge.expired {
    background: var(--error-alt);
    color: var(--error-dark);
}

.expiry-badge.expiring {
    background: var(--warning-alt);
    color: var(--warning-dark);
}

/* ========================================
   FORM ELEMENTS
   ======================================== */
.form-control {
    padding: 6px 12px;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-input);
    font-size: var(--font-size-input);
    font-family: var(--font-family);
}

.form-control:focus {
    outline: none;
    border-color: var(--primary-blue);
    box-shadow: var(--shadow-focus);
}

/* ========================================
   FILTER ACTION BUTTONS
   ======================================== */
.filter-actions .btn-primary {
    background: var(--info);
    color: #fff;
    padding: 8px 16px;
    border-radius: var(--radius-input);
    font-size: 0.9em;
    border: none;
    cursor: pointer;
}

.filter-actions .btn-primary:hover {
    background: var(--info-dark);
}

.filter-actions .btn-export {
    background: var(--success-alt);
    color: #fff;
}

.filter-actions .btn-export:hover {
    background: var(--success-dark);
}

.filter-actions .btn-secondary {
    background: #6c757d;
    color: #fff;
}

.filter-actions .btn-secondary:hover {
    background: #5a6268;
}

/* ========================================
   DATATABLE EMPTY STATE
   ======================================== */
.dataTables_empty {
    text-align: center !important;
    color: var(--text-tertiary);
    font-style: italic;
    padding: var(--spacing-xl) !important;
}

/* ========================================
   SCREEN READER ONLY
   ======================================== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ========================================
   PRINT STYLES
   ======================================== */
@media print {
    .filter-panel,
    .filter-actions,
    .dataTables_filter,
    .dataTables_length,
    .dataTables_paginate {
        display: none !important;
    }

    .summary-card {
        box-shadow: none;
        border: 1px solid #000;
        padding: var(--spacing-md);
    }
}
