d14f86478a
New token system in global.css (near-white surfaces, one ink-blue accent, no sub-12px type), self-hosted Schibsted Grotesk, rewritten primitives (buttons, fields, modal shell, segmented, disclosure, skeleton), a borderless 56px header with an SV | EN language toggle, an Icon component replacing glyphs, page skeletons that keep the layout during loading, and leave-type colours moved out of TS into CSS variables. Feature blocks keep their structure for later phases. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
105 lines
2.0 KiB
CSS
105 lines
2.0 KiB
CSS
/* Layout container */
|
|
.layout {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
background-color: var(--c-bg);
|
|
}
|
|
|
|
.layout__main {
|
|
flex: 1;
|
|
max-width: var(--maxw);
|
|
width: 100%;
|
|
margin: 0 auto;
|
|
padding: var(--sp-6) var(--sp-5) var(--sp-7);
|
|
}
|
|
|
|
/* Dashboard & Pages */
|
|
.dashboard,
|
|
.calendar,
|
|
.settings-page,
|
|
.tips-page,
|
|
.auth-page {
|
|
width: 100%;
|
|
}
|
|
|
|
.dashboard > .alert {
|
|
margin-bottom: var(--sp-5);
|
|
}
|
|
|
|
/* Sections separate by whitespace and, where two run together, one
|
|
* hairline — never a stack of bordered cards. Every section looking equally
|
|
* "boxed" flattens the hierarchy the headline figures are meant to have. */
|
|
.dashboard__section,
|
|
.settings-page__section,
|
|
.calendar__section,
|
|
.tips-page__section {
|
|
background-color: transparent;
|
|
border: none;
|
|
border-top: 1px solid var(--c-border);
|
|
border-radius: 0;
|
|
padding: var(--sp-6) 0 0;
|
|
margin-bottom: var(--sp-7);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.dashboard__section:first-child,
|
|
.settings-page__section:first-child,
|
|
.calendar__section:first-child,
|
|
.tips-page__section:first-child {
|
|
border-top: none;
|
|
padding-top: 0;
|
|
}
|
|
|
|
.dashboard__section:last-child,
|
|
.settings-page__section:last-child,
|
|
.calendar__section:last-child,
|
|
.tips-page__section:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.dashboard__section h2,
|
|
.settings-page__section h2,
|
|
.calendar__section h2,
|
|
.tips-page__section h2 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.dashboard__break-list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.dashboard__break-item {
|
|
padding: var(--sp-3) 0;
|
|
border-bottom: 1px solid var(--c-border);
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.dashboard__break-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.dashboard__break-item strong {
|
|
display: block;
|
|
margin-bottom: var(--sp-2);
|
|
}
|
|
|
|
.dashboard__break-item small {
|
|
color: var(--c-text-muted);
|
|
font-size: var(--fs-sm);
|
|
}
|
|
|
|
/* Status & Freshness Info */
|
|
.status-info,
|
|
.freshness-info {
|
|
font-size: var(--fs-sm);
|
|
color: var(--c-text-muted);
|
|
margin-top: var(--sp-3);
|
|
padding-top: var(--sp-3);
|
|
border-top: 1px solid var(--c-border);
|
|
}
|