Duriin-API/public/admin/assets/css/layout.css

178 lines
3.2 KiB
CSS

/* page chrome — header, tabs, subnav, stats bar, content shell */
/* ── header ── */
header.app-header {
background: var(--bg-card);
border-bottom: 1px solid var(--border);
padding: 0 24px;
display: flex;
align-items: center;
gap: 24px;
height: 52px;
}
header.app-header h1 {
font-size: 15px;
font-weight: 600;
color: var(--foreground);
letter-spacing: -.01em;
}
header.app-header h1 span {
color: var(--muted);
font-weight: 400;
}
/* ── primary tabs (underline style) ── */
.tabs {
display: flex;
gap: 0;
margin-left: auto;
height: 100%;
align-items: stretch;
}
.tabs a {
background: none;
border: none;
border-bottom: 2px solid transparent;
color: var(--muted);
padding: 0 14px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: color .15s, border-color .15s;
height: 100%;
display: flex;
align-items: center;
text-decoration: none;
}
.tabs a:hover { color: var(--foreground); }
.tabs a.active {
color: var(--foreground);
border-bottom-color: var(--foreground);
}
/* ── subnav (intelligence sub-sections) ── */
.subnav {
background: var(--bg-card);
border-bottom: 1px solid var(--border);
padding: 0 24px;
display: flex;
align-items: stretch;
gap: 0;
height: 38px;
}
.subnav a {
color: var(--muted-dark);
font-size: 12px;
font-weight: 500;
text-decoration: none;
padding: 0 14px;
display: flex;
align-items: center;
border-bottom: 2px solid transparent;
transition: color .15s, border-color .15s;
text-transform: uppercase;
letter-spacing: .05em;
}
.subnav a:hover { color: var(--foreground); }
.subnav a.active {
color: var(--foreground);
border-bottom-color: var(--accent);
}
/* ── stats bar ── */
/* each .stat owns its own horizontal padding so the vertical separator
renders edge-to-edge; no margin gap between cells. */
.stats-bar {
display: flex;
background: var(--bg-card);
border-bottom: 1px solid var(--border);
flex-wrap: wrap;
}
.stat {
display: flex;
flex-direction: column;
justify-content: center;
gap: 4px;
padding: 16px 32px;
border-right: 1px solid var(--border);
flex: 0 0 auto;
}
.stat:first-child { padding-left: 24px; }
.stat:last-child { border-right: none; }
.stat .label {
color: var(--muted-dark);
font-size: 11px;
text-transform: uppercase;
letter-spacing: .06em;
font-weight: 500;
}
.stat .value {
font-size: 22px;
font-weight: 700;
color: var(--foreground);
letter-spacing: -.02em;
line-height: 1;
}
/* ── content ── */
.content { padding: 24px; }
/* ── filters ── */
.filters {
display: flex;
gap: 10px;
margin-bottom: 18px;
flex-wrap: wrap;
align-items: flex-end;
padding: 14px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
}
.filters label {
display: flex;
flex-direction: column;
gap: 5px;
font-size: 11px;
font-weight: 500;
color: var(--muted);
text-transform: uppercase;
letter-spacing: .05em;
}
/* ── section heading ── */
.section-heading {
font-size: 12px;
color: var(--muted-dark);
font-weight: 600;
text-transform: uppercase;
letter-spacing: .06em;
margin-bottom: 12px;
}