* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --black: #000000;
    --white: #FFFFFF;
    --border-width: 4px;
    --spacing-unit: 16px;
}

body {
    font-family: 'Courier New', 'Courier', monospace;
    background: var(--white);
    color: var(--black);
    line-height: 1.2;
    overflow: hidden;
}

.container {
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    border: var(--border-width) solid var(--black);
}

/* HEADER */
.header {
    border-bottom: var(--border-width) solid var(--black);
    padding: calc(var(--spacing-unit) * 1.5);
    background: var(--black);
    color: var(--white);
}

.title {
    font-size: 48px;
    font-weight: 900;
    letter-spacing: 4px;
    text-transform: uppercase;
    margin-bottom: calc(var(--spacing-unit) / 2);
}

.meta {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 2px;
    display: flex;
    gap: calc(var(--spacing-unit) / 2);
}

.separator {
    opacity: 0.5;
}

/* STATS BAR */
.stats-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: var(--border-width) solid var(--black);
}

.stat {
    padding: var(--spacing-unit);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing-unit) / 4);
    border-right: var(--border-width) solid var(--black);
}

.stat:last-child {
    border-right: none;
}

.stat-label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
}

.stat-value {
    font-size: 36px;
    font-weight: 900;
    letter-spacing: 1px;
}

/* ISSUES CONTAINER */
.issues-container {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
}

.loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 3px;
}

.issue {
    border-bottom: var(--border-width) solid var(--black);
    padding: var(--spacing-unit);
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: var(--spacing-unit);
    align-items: start;
}

.issue:hover {
    background: var(--black);
    color: var(--white);
}

.issue-number {
    font-size: 32px;
    font-weight: 900;
    letter-spacing: 1px;
}

.issue-content {
    display: flex;
    flex-direction: column;
    gap: calc(var(--spacing-unit) / 2);
}

.issue-repo {
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 2px;
    opacity: 0.6;
    text-transform: uppercase;
}

.issue:hover .issue-repo {
    opacity: 0.8;
}

.issue-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.issue-labels {
    display: flex;
    gap: calc(var(--spacing-unit) / 2);
    flex-wrap: wrap;
}

.label {
    padding: 4px 8px;
    border: 2px solid var(--black);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.issue:hover .label {
    border-color: var(--white);
}

.issue-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: calc(var(--spacing-unit) / 4);
    min-width: 220px;
}

.age-indicator {
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 2px;
    padding: 4px 8px;
    border: 3px solid var(--black);
}

.age-indicator.fresh {
    background: var(--black);
    color: var(--white);
}

.age-indicator.warning {
    background: var(--white);
    color: var(--black);
}

.age-indicator.critical {
    background: var(--black);
    color: var(--white);
    border-width: 4px;
}

.issue:hover .age-indicator {
    border-color: var(--white);
}

.issue:hover .age-indicator.warning,
.issue:hover .age-indicator.critical {
    background: var(--white);
    color: var(--black);
}

.issue-comments {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
}

.issue-state {
    font-size: 16px;
    font-weight: 900;
    letter-spacing: 2px;
    padding: 4px 12px;
    border: 3px solid var(--black);
}

.issue:hover .issue-state {
    border-color: var(--white);
    background: var(--white);
    color: var(--black);
}

.issue-state.open {
    background: var(--black);
    color: var(--white);
}

.issue-state.closed {
    background: var(--white);
    color: var(--black);
}

.issue-author {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
}

.issue-date {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    opacity: 0.7;
}

/* FOOTER */
.footer {
    border-top: var(--border-width) solid var(--black);
    padding: var(--spacing-unit);
    display: flex;
    justify-content: space-between;
    background: var(--white);
}

.display-indicator,
.last-update {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    display: flex;
    gap: calc(var(--spacing-unit) / 2);
}

.display-indicator span:last-child,
.last-update span:last-child {
    font-size: 18px;
    font-weight: 900;
}

/* NO ISSUES STATE */
.no-issues {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    gap: var(--spacing-unit);
}

.no-issues-title {
    font-size: 48px;
    font-weight: 900;
    letter-spacing: 4px;
}

.no-issues-message {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 2px;
    opacity: 0.6;
}

/* ERROR STATE */
.error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    gap: var(--spacing-unit);
    padding: calc(var(--spacing-unit) * 2);
    text-align: center;
}

.error-title {
    font-size: 48px;
    font-weight: 900;
    letter-spacing: 4px;
    background: var(--black);
    color: var(--white);
    padding: var(--spacing-unit);
}

.error-message {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 1px;
    max-width: 600px;
}

/* SCROLLBAR */
.issues-container::-webkit-scrollbar {
    width: 12px;
}

.issues-container::-webkit-scrollbar-track {
    background: var(--white);
    border-left: var(--border-width) solid var(--black);
}

.issues-container::-webkit-scrollbar-thumb {
    background: var(--black);
    border: 2px solid var(--white);
}

/* RESPONSIVE ADJUSTMENTS */
@media (max-width: 1200px) {
    .issue {
        grid-template-columns: 60px 1fr auto;
    }

    .issue-number {
        font-size: 24px;
    }

    .issue-title {
        font-size: 18px;
    }
}
