/* Oriole DSU dashboard — base styles */
:root {
    --bg:        #0b0d10;
    --panel:     #14171c;
    --panel-2:   #1c2027;
    --border:    #2a2f38;
    --text:      #e8ecf1;
    --text-dim:  #9aa3ad;
    --accent:    #4ec3a1;
    --warn:      #f5a93f;
    --bad:       #ec5e5e;
    --good:      #4ec3a1;
}

* { box-sizing: border-box; }
html, body {
    margin: 0;
    padding: 0;
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

header {
    padding: 16px 24px;
    border-bottom: 1px solid var(--border);
    background: var(--panel);
    display: flex;
    align-items: center;
    gap: 24px;
}
header h1 { font-size: 18px; margin: 0; font-weight: 600; }
header nav a {
    color: var(--text-dim);
    text-decoration: none;
    margin-right: 16px;
    font-size: 13px;
}
header nav a:hover, header nav a.active { color: var(--accent); }

main { padding: 24px; max-width: 1400px; margin: 0 auto; }

h2 { font-size: 16px; font-weight: 600; margin: 0 0 12px 0; color: var(--text-dim); }

.card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
}

.grid { display: grid; gap: 16px; }
.grid.cols-2 { grid-template-columns: 1fr 1fr; }
.grid.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
    .grid.cols-2, .grid.cols-3, .grid.cols-4 { grid-template-columns: 1fr; }
}

.metric { padding: 12px; }
.metric .label { color: var(--text-dim); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.metric .value { font-size: 24px; font-weight: 600; margin-top: 4px; }
.metric .sub   { color: var(--text-dim); font-size: 12px; margin-top: 2px; }

.status-pill {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}
.status-pass        { background: rgba(78,195,161,0.16); color: var(--good); }
.status-fail_timing { background: rgba(245,169,63,0.16); color: var(--warn); }
.status-fail_drc    { background: rgba(236,94,94,0.16);  color: var(--bad);  }
.status-unknown     { background: rgba(154,163,173,0.16); color: var(--text-dim); }

table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { padding: 8px 12px; text-align: left; border-bottom: 1px solid var(--border); }
th { color: var(--text-dim); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
tr:hover td { background: var(--panel-2); }

.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.dim  { color: var(--text-dim); }

.heatmap-row { display: flex; gap: 4px; align-items: center; }
.heatmap-cell {
    width: 60px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    border-radius: 4px;
    color: var(--bg);
    font-weight: 600;
}
.heatmap-label { width: 100px; color: var(--text-dim); font-size: 12px; }

footer {
    margin-top: 48px;
    padding: 24px;
    color: var(--text-dim);
    font-size: 12px;
    text-align: center;
    border-top: 1px solid var(--border);
}
