/* Weekly Update Report - Metro style */

/* ============================================
   Setup popup (range picker)
   ============================================ */

.report-setup-content {
    max-width: 520px;
}

.report-presets {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-xs);
}

.report-preset {
    padding: var(--spacing-xs) var(--spacing-md);
    background-color: var(--color-bg-primary);
    color: var(--color-text-secondary);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.report-preset:hover {
    color: var(--color-text-primary);
    border-color: var(--color-text-tertiary);
}

.report-preset.active {
    background-color: var(--color-accent-primary);
    border-color: var(--color-accent-primary);
    color: white;
}

.report-range-row {
    display: flex;
    gap: var(--spacing-lg);
}

.report-range-row .form-group {
    flex: 1;
    min-width: 0;
}

.report-range-row .date-picker-btn {
    width: 100%;
}

.report-setup-error {
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: rgba(230, 57, 70, 0.12);
    border-left: 3px solid var(--color-error);
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
}

/* ============================================
   Report modal
   ============================================ */

.report-overlay {
    background-color: rgba(13, 17, 23, 0.92);
    padding: var(--spacing-lg);
}

.report-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 960px;
    height: 100%;
    max-height: 92vh;
    background-color: var(--color-bg-primary);
    border: 3px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.report-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-lg);
    padding: var(--spacing-lg);
    border-bottom: 2px solid var(--color-border);
    background-color: var(--color-bg-secondary);
    flex-wrap: wrap;
}

.report-panel-heading h2 {
    font-size: var(--font-size-xl);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-text-primary);
}

.report-range-label {
    margin-top: var(--spacing-xs);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.report-panel-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.report-panel-actions .btn-secondary {
    padding: var(--spacing-xs) var(--spacing-md);
    font-size: var(--font-size-sm);
}

.report-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--spacing-lg);
}

/* ============================================
   Sections
   ============================================ */

.report-section {
    margin-bottom: var(--spacing-xl);
}

.report-section-title {
    font-size: var(--font-size-md);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-text-secondary);
    padding-bottom: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--color-border);
}

.report-count {
    display: inline-block;
    margin-left: var(--spacing-xs);
    padding: 0 var(--spacing-sm);
    background-color: var(--color-bg-tertiary);
    border-radius: var(--radius-sm);
    color: var(--color-text-tertiary);
    font-size: var(--font-size-xs);
}

.report-lead {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.report-meta {
    color: var(--color-text-tertiary);
    font-size: var(--font-size-xs);
}

.report-notes {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-left: 3px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    white-space: pre-wrap;
}

/* Summary stats */
.report-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.report-stat {
    padding: var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-md);
    border-top: 4px solid var(--color-border);
}

.report-stat-publish { border-top-color: var(--color-publish); }
.report-stat-branch-opened { border-top-color: var(--color-branch-opened); }
.report-stat-branch-merged { border-top-color: var(--color-branch-merge); }
.report-stat-branch-archived { border-top-color: var(--color-branch-archive); }
.report-stat-update { border-top-color: var(--color-update); }

.report-stat-value {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-text-primary);
}

.report-stat-label {
    margin-top: var(--spacing-xs);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-tertiary);
}

/* Activity chart */
.report-chart {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 160px;
    padding: var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

.report-bar {
    flex: 1 1 0;
    min-width: 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
}

.report-bar-count {
    font-size: var(--font-size-xs);
    color: var(--color-text-tertiary);
    height: 14px;
}

.report-bar-track {
    flex: 1;
    width: 100%;
    display: flex;
    align-items: flex-end;
}

.report-bar-fill {
    width: 100%;
    background-color: var(--color-accent-primary);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    min-height: 0;
    transition: height var(--transition-normal);
}

.report-bar-label {
    margin-top: var(--spacing-xs);
    font-size: 9px;
    color: var(--color-text-tertiary);
    white-space: nowrap;
}

/* Changelog digest - publish notes aggregated per file */
.report-digest-file {
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-publish);
}

.report-change-group {
    margin-top: var(--spacing-md);
}

.report-change-group-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding-left: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    border-left: 3px solid var(--color-text-tertiary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-secondary);
}

.report-change-group-added { border-left-color: var(--color-publish); }
.report-change-group-fixed { border-left-color: var(--metro-blue); }
.report-change-group-removed { border-left-color: var(--color-error); }
.report-change-group-deprecated { border-left-color: var(--color-branch-archive); }
.report-change-group-updated { border-left-color: var(--color-update); }
.report-change-group-other { border-left-color: var(--metro-purple); }
.report-change-group-notice { border-left-color: var(--color-error); }
.report-change-group-meta { border-left-color: var(--color-border); }

/* Release bookkeeping - present, but visibly not a change */
.report-change-group-meta,
.report-change-group-meta + .report-changes .report-change-text {
    color: var(--color-text-tertiary);
}

.report-changes {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    padding-left: var(--spacing-md);
}

.report-change {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-md);
    padding: var(--spacing-xs) var(--spacing-sm);
    background-color: var(--color-bg-tertiary);
    border-radius: var(--radius-sm);
}

.report-change-text {
    flex: 1;
    min-width: 0;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    word-break: break-word;
}

.report-change-meta {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    gap: var(--spacing-xs);
    color: var(--color-text-tertiary);
    font-size: var(--font-size-xs);
    white-space: nowrap;
}

.report-repeat {
    padding: 0 var(--spacing-xs);
    background-color: var(--color-bg-primary);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-weight: 600;
}

.report-digest-note {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--color-border-light);
    color: var(--color-text-tertiary);
    font-size: var(--font-size-xs);
}

/* Branches */
.report-branches {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
}

.report-branch {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-md);
}

.report-branch-status {
    flex: 0 0 auto;
    min-width: 116px;
    padding: 2px var(--spacing-sm);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--color-text-tertiary);
    background-color: var(--color-bg-tertiary);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-secondary);
}

.report-branch-branch-opened { border-left-color: var(--color-branch-opened); }
.report-branch-branch-merged { border-left-color: var(--color-branch-merge); }
.report-branch-branch-archived { border-left-color: var(--color-branch-archive); }
.report-branch-branch-open { border-left-color: var(--color-branch-update); }

.report-branch-body {
    flex: 1;
    min-width: 0;
}

.report-branch-name {
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    font-weight: 500;
    word-break: break-word;
}

/* Per-file breakdown */
.report-file {
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-md);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-md);
}

.report-file-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    flex-wrap: wrap;
}

.report-file-name {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
}

.report-chips {
    display: flex;
    gap: var(--spacing-xs);
    flex-wrap: wrap;
}

.report-chip {
    padding: 2px var(--spacing-sm);
    background-color: var(--color-bg-tertiary);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    border-left: 3px solid var(--color-border);
}

.report-chip-publish { border-left-color: var(--color-publish); }
.report-chip-branch-opened { border-left-color: var(--color-branch-opened); }
.report-chip-branch-merged { border-left-color: var(--color-branch-merge); }
.report-chip-branch-archived { border-left-color: var(--color-branch-archive); }
.report-chip-update { border-left-color: var(--color-update); }

.report-events {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.report-event {
    display: flex;
    gap: var(--spacing-sm);
    align-items: flex-start;
}

.report-event-body {
    flex: 1;
    min-width: 0;
}

.report-event-title {
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    font-weight: 500;
    word-break: break-word;
}

.report-dot {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    margin-top: 5px;
    border-radius: var(--radius-circle);
    background-color: var(--color-text-tertiary);
}

.report-dot-publish { background-color: var(--color-publish); }
.report-dot-branch-opened { background-color: var(--color-branch-opened); }
.report-dot-branch-merged { background-color: var(--color-branch-merge); }
.report-dot-branch-archived { background-color: var(--color-branch-archive); }
.report-dot-update { background-color: var(--color-update); }

/* Contributors */
.report-contributors {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.report-contributor {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.report-contributor-name {
    flex: 0 0 30%;
    max-width: 30%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}

.report-contributor-bar {
    flex: 1;
    height: 10px;
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.report-contributor-fill {
    display: block;
    height: 100%;
    background-color: var(--color-accent-primary);
}

.report-contributor-count {
    /* Fixed width so every bar track is the same length and comparable */
    flex: 0 0 110px;
    text-align: right;
    font-size: var(--font-size-xs);
    color: var(--color-text-tertiary);
}

.report-contributor-count em {
    font-style: normal;
    opacity: 0.75;
}

/* Empty state */
.report-empty {
    padding: var(--spacing-xl);
    text-align: center;
}

.report-empty-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.report-empty-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-tertiary);
}

.report-generated {
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-border-light);
    font-size: var(--font-size-xs);
    color: var(--color-text-tertiary);
    text-align: center;
}

/* ============================================
   Responsive
   ============================================ */

@media (max-width: 768px) {
    .report-overlay {
        padding: 0;
    }

    .report-panel {
        max-height: 100%;
        border: none;
        border-radius: 0;
    }

    .report-range-row {
        flex-direction: column;
        gap: var(--spacing-md);
    }

    .report-contributor-name {
        flex-basis: 40%;
        max-width: 40%;
    }

    .report-change,
    .report-branch {
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .report-branch-status {
        align-self: flex-start;
    }

    .report-change-meta {
        white-space: normal;
    }
}

/* ============================================
   Print - only the report itself
   ============================================ */

@media print {
    body.report-open {
        overflow: visible;
    }

    body.report-open > *:not(#reportModal) {
        display: none !important;
    }

    body.report-open #reportModal {
        position: static;
        display: block;
        background: white;
        padding: 0;
    }

    body.report-open .report-panel {
        max-width: none;
        max-height: none;
        height: auto;
        border: none;
        background: white;
        color: black;
    }

    body.report-open .report-panel-header {
        background: white;
        border-bottom: 2px solid #ccc;
    }

    body.report-open .report-panel-actions {
        display: none !important;
    }

    body.report-open .report-body {
        overflow: visible;
        padding: 0;
    }

    body.report-open .report-panel-heading h2,
    body.report-open .report-range-label,
    body.report-open .report-section-title,
    body.report-open .report-stat-value,
    body.report-open .report-file-name,
    body.report-open .report-branch-name,
    body.report-open .report-change-text,
    body.report-open .report-change-group-label,
    body.report-open .report-event-title,
    body.report-open .report-notes,
    body.report-open .report-contributor-name,
    body.report-open .report-lead,
    body.report-open .report-meta {
        color: black;
    }

    body.report-open .report-stat,
    body.report-open .report-digest-file,
    body.report-open .report-branch,
    body.report-open .report-change,
    body.report-open .report-file,
    body.report-open .report-notes,
    body.report-open .report-chart {
        background: white;
        border: 1px solid #ddd;
    }

    body.report-open .report-file,
    body.report-open .report-digest-file,
    body.report-open .report-change-group {
        break-inside: avoid;
    }
}
