170 lines
3.1 KiB
CSS
170 lines
3.1 KiB
CSS
/*
|
|
* Global stylesheet. Tailwind v4 is compiled by the `styles.process` hook in
|
|
* wrnexus.config.ts (@tailwindcss/cli) and served at /__wrnexus/styles.css, linked
|
|
* into every page. It styles SSR markup and hydrated components alike.
|
|
*
|
|
* `@source` tells Tailwind which files to scan for class names — our pages and
|
|
* components are `.wrn`/`.tsx` files under app/. Paths are relative to this file.
|
|
*/
|
|
@import "tailwindcss";
|
|
@plugin "@iconify/tailwind4";
|
|
@source "../**/*.wrn";
|
|
@source "../**/*.tsx";
|
|
|
|
/* --- App theme layered on top of Tailwind's utilities & preflight --- */
|
|
|
|
:root {
|
|
--bg: #0b1020;
|
|
--surface: #141a30;
|
|
--text: #e7ecff;
|
|
--muted: #9aa6d0;
|
|
--brand: #6c8cff;
|
|
--radius: 10px;
|
|
--maxw: 720px;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font:
|
|
16px/1.6 system-ui,
|
|
-apple-system,
|
|
Segoe UI,
|
|
Roboto,
|
|
sans-serif;
|
|
color: var(--text);
|
|
background: radial-gradient(1200px 600px at 50% -10%, #1b2750 0%, var(--bg) 60%);
|
|
background-color: var(--bg);
|
|
}
|
|
|
|
#app {
|
|
box-sizing: border-box;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 1.9rem;
|
|
letter-spacing: -0.02em;
|
|
margin: 0 0 0.5rem;
|
|
}
|
|
p {
|
|
color: var(--muted);
|
|
}
|
|
|
|
a {
|
|
color: var(--brand);
|
|
text-decoration: none;
|
|
}
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
button {
|
|
font: inherit;
|
|
color: white;
|
|
background: var(--brand);
|
|
border: 0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 0.25rem 0.25rem 0.25rem 0;
|
|
border-radius: var(--radius);
|
|
cursor: pointer;
|
|
transition:
|
|
transform 0.05s ease,
|
|
filter 0.15s ease;
|
|
}
|
|
button:hover {
|
|
filter: brightness(1.08);
|
|
}
|
|
button:active {
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
/* Page-layout chrome (app/layout.wrn). */
|
|
.site-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 1rem 0;
|
|
border-bottom: 1px solid var(--wire-color-border);
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
.site-brand {
|
|
font-size: 1.15rem;
|
|
color: var(--wire-color-text);
|
|
}
|
|
.site-nav {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
}
|
|
.site-footer {
|
|
margin-top: 2rem;
|
|
padding: 1.25rem 0;
|
|
border-top: 1px solid var(--wire-color-border);
|
|
color: var(--wire-color-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Dashboard layout (app/layouts/dashboard.wrn). */
|
|
.dash {
|
|
display: grid;
|
|
grid-template-columns: 200px 1fr;
|
|
gap: 1.5rem;
|
|
min-height: 60vh;
|
|
}
|
|
.dash-side {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
padding: 1rem 0;
|
|
border-right: 1px solid var(--wire-color-border);
|
|
}
|
|
.dash-nav {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.4rem;
|
|
}
|
|
.dash-main {
|
|
padding: 1rem 0;
|
|
}
|
|
.dash-topbar {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
margin-bottom: 1rem;
|
|
}
|
|
@media (max-width: 640px) {
|
|
.dash {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Auth layout (app/layouts/auth.wrn). */
|
|
.auth-wrap {
|
|
min-height: 70vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.auth-card {
|
|
width: 100%;
|
|
max-width: 360px;
|
|
}
|
|
|
|
/* A small utility, to show CSS nesting works through the bundler. */
|
|
.card {
|
|
background: var(--surface);
|
|
border: 1px solid #ffffff14;
|
|
border-radius: var(--radius);
|
|
padding: 1.25rem 1.5rem;
|
|
|
|
& strong {
|
|
color: var(--text);
|
|
}
|
|
}
|