/**
 * EXT:gfrs_report/Resources/Public/Css/dashboard.css
 *
 * Frontend dashboard styles. Standalone (no Bootstrap dependency required),
 * but plays well alongside Bootstrap 5.
 *
 * @author Marcel von Eiff <marcel.voneiff@a4kom.de>
 */

.gfrs-dashboard {
    --gfrs-color-primary: #2c5282;
    --gfrs-color-warning: #dd6b20;
    --gfrs-color-bg: #f7fafc;
    --gfrs-color-card: #ffffff;
    --gfrs-color-border: #e2e8f0;
    --gfrs-color-text: #2d3748;
    --gfrs-color-muted: #718096;
    --gfrs-radius: 6px;
    --gfrs-shadow: 0 1px 3px rgba(0, 0, 0, .08);

    color: var(--gfrs-color-text);
    font-size: 1rem;
    line-height: 1.5;
}

/* ---------- Header ---------- */
.gfrs-header {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--gfrs-color-border);
}

.gfrs-header h1 {
    margin: 0 0 .25rem 0;
    font-size: 1.75rem;
    color: var(--gfrs-color-primary);
}

.gfrs-company-name2 {
    margin: 0 0 .5rem 0;
    color: var(--gfrs-color-muted);
    font-size: 1.1rem;
}

.gfrs-company-meta {
    margin: 0;
    color: var(--gfrs-color-muted);
    font-size: .9rem;
}

/* ---------- KPI grid ---------- */
.gfrs-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.gfrs-kpi-card {
    background: var(--gfrs-color-card);
    border: 1px solid var(--gfrs-color-border);
    border-radius: var(--gfrs-radius);
    padding: 1.25rem;
    text-align: center;
    box-shadow: var(--gfrs-shadow);
    border-left: 4px solid var(--gfrs-color-primary);
}

.gfrs-kpi-card--warning {
    border-left-color: var(--gfrs-color-warning);
}

.gfrs-kpi-value {
    font-size: 1.675rem;
    font-weight: 700;
    color: var(--gfrs-color-primary);
    line-height: 1.1;
    margin-bottom: .25rem;
}

.gfrs-kpi-card--warning .gfrs-kpi-value {
    color: var(--gfrs-color-warning);
}

.gfrs-kpi-label {
    font-size: .8rem;
    color: var(--gfrs-color-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* ---------- Charts grid ---------- */
.gfrs-charts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.gfrs-chart-card {
    background: var(--gfrs-color-card);
    border: 1px solid var(--gfrs-color-border);
    border-radius: var(--gfrs-radius);
    padding: 1.25rem;
    box-shadow: var(--gfrs-shadow);
}

.gfrs-chart-title {
    margin: 0 0 1rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--gfrs-color-primary);
}

.gfrs-chart-canvas-wrap {
    position: relative;
    height: 300px;
}

.gfrs-chart-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 300px;
    color: var(--gfrs-color-muted);
    font-style: italic;
    background: var(--gfrs-color-bg);
    border-radius: var(--gfrs-radius);
}

/* ---------- Export section ---------- */
.gfrs-export-section {
    background: var(--gfrs-color-bg);
    border: 1px solid var(--gfrs-color-border);
    border-radius: var(--gfrs-radius);
    padding: 1.5rem;
    margin-top: 2rem;
}

.gfrs-export-section h2 {
    margin: 0 0 .5rem 0;
    font-size: 1.25rem;
    color: var(--gfrs-color-primary);
}

.gfrs-export-help {
    color: var(--gfrs-color-muted);
    margin: 0 0 1rem 0;
    font-size: .9rem;
}

.gfrs-export-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.gfrs-export-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    flex: 1;
}

.gfrs-export-field {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 140px;
}

.gfrs-export-field span {
    font-size: .85rem;
    font-weight: 500;
    color: var(--gfrs-color-text);
}

.gfrs-export-select {
    padding: .5rem .75rem;
    border: 1px solid var(--gfrs-color-border);
    border-radius: var(--gfrs-radius);
    background: #fff;
    font-size: 1rem;
}

.gfrs-export-button {
    padding: .65rem 1.5rem;
    background: var(--gfrs-color-primary);
    color: #fff;
    border: none;
    border-radius: var(--gfrs-radius);
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s ease;
}

.gfrs-export-button:hover,
.gfrs-export-button:focus {
    background: #1e3a5f;
}

/* ---------- Access denied state ---------- */
.gfrs-access-denied {
    padding: 2rem;
    background: #fff8e1;
    border: 1px solid #f59e0b;
    border-radius: var(--gfrs-radius);
    color: #78350f;
}

.gfrs-access-denied h3 {
    margin-top: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
    .gfrs-kpi-value {
        font-size: 1.5rem;
    }

    .gfrs-chart-canvas-wrap,
    .gfrs-chart-empty {
        height: 240px;
    }

    .gfrs-export-form {
        flex-direction: column;
        align-items: stretch;
    }

    .gfrs-export-button {
        width: 100%;
    }
}

/* ---------- Login ---------- */
.frame-type-felogin_login {
    background: #f7fafc;
    border-radius: 6px;
    margin:2rem 0;
    padding:2rem 0 1.5rem 2rem;
    border-left:4px solid #2c5282;
    position: relative;
}

.frame-type-felogin_login .d-inline-block {
    color:white;
    position: absolute;
    font-size:12px;
    background:#dd6b20;
    padding:.25rem .5rem;
    border-radius: 6px;
    right:1rem;
}
.frame-type-felogin_login input.btn {
    background:#2c5282;
    color:white;
    border:none;
    font-weight:500;
    letter-spacing: 1px;
}
.frame-type-felogin_login input.btn:hover{
    background:#dd6b20;

}