agentic-owner-tracker / styles.css
smlflg's picture
Initial public upload from Projekte/agentic-owner-tracker
4bd0d68 verified
Raw History Blame Contribute Delete
10.9 kB
:root {
color-scheme: dark;
--ink: #f7f0df;
--muted: #b9ad95;
--quiet: #766d5f;
--black: #070806;
--surface: rgba(247, 240, 223, 0.055);
--surface-strong: rgba(247, 240, 223, 0.1);
--line: rgba(247, 240, 223, 0.16);
--line-strong: rgba(247, 240, 223, 0.34);
--agent: #80dcc9;
--human: #e5aa3d;
--overload: #df6242;
--owner: #a7ff4f;
--empty: rgba(247, 240, 223, 0.08);
--max: 1240px;
--pad: clamp(16px, 3.8vw, 54px);
--display: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
--body: "Aptos", "Segoe UI", sans-serif;
--mono: "Berkeley Mono", "Iosevka", "SFMono-Regular", Consolas, monospace;
}
* {
box-sizing: border-box;
}
html {
background: var(--black);
max-width: 100%;
overflow-x: hidden;
}
body {
width: 100%;
max-width: 100%;
min-width: 320px;
margin: 0;
color: var(--ink);
font-family: var(--body);
background:
radial-gradient(circle at 82% 10%, rgba(128, 220, 201, 0.14), transparent 34vw),
radial-gradient(circle at 9% 28%, rgba(223, 98, 66, 0.12), transparent 28vw),
linear-gradient(180deg, #070806 0%, #11110d 48%, #080907 100%);
overflow-x: hidden;
}
button,
input {
font: inherit;
}
a {
color: inherit;
text-decoration: none;
}
h1,
h2,
h3,
p {
margin: 0;
}
.grain {
position: fixed;
inset: 0;
z-index: 20;
pointer-events: none;
opacity: 0.2;
background-image:
linear-gradient(rgba(247, 240, 223, 0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(247, 240, 223, 0.028) 1px, transparent 1px);
background-size: 72px 72px;
mask-image: linear-gradient(180deg, black, transparent 82%);
}
.topbar {
width: min(var(--max), calc(100% - (2 * var(--pad))));
min-height: 58px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
margin: 18px auto 0;
padding: 12px 14px;
border: 1px solid var(--line);
background: rgba(7, 8, 6, 0.74);
backdrop-filter: blur(18px);
}
.brand,
.top-actions,
.privacy-badge {
display: inline-flex;
align-items: center;
}
.brand {
min-width: 0;
gap: 10px;
color: var(--muted);
font-family: var(--mono);
font-size: 12px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.brand-mark {
width: 34px;
height: 34px;
display: grid;
place-items: center;
flex: 0 0 auto;
border: 1px solid var(--line-strong);
color: var(--owner);
font-size: 11px;
}
.top-actions {
gap: 14px;
color: var(--quiet);
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.privacy-badge {
min-height: 30px;
padding: 0 10px;
border: 1px solid rgba(167, 255, 79, 0.42);
color: var(--owner);
background: rgba(167, 255, 79, 0.08);
}
.text-link {
color: var(--muted);
}
.app-shell {
width: min(var(--max), calc(100% - (2 * var(--pad))));
display: grid;
grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1.2fr) minmax(260px, 0.58fr);
gap: 16px;
margin: 34px auto 70px;
}
.intro-panel,
.map-panel,
.detail-panel,
.meaning-panel {
min-width: 0;
border: 1px solid var(--line);
background: rgba(7, 8, 6, 0.68);
box-shadow: 0 24px 88px rgba(0, 0, 0, 0.24);
}
.intro-panel,
.detail-panel {
align-self: start;
padding: clamp(20px, 2.6vw, 30px);
}
.map-panel {
min-width: 0;
padding: clamp(20px, 2.8vw, 34px);
background:
linear-gradient(180deg, rgba(128, 220, 201, 0.06), rgba(247, 240, 223, 0.025)),
rgba(7, 8, 6, 0.72);
}
.meaning-panel {
grid-column: 1 / -1;
padding: clamp(24px, 4vw, 44px);
}
.eyebrow {
margin-bottom: 14px;
color: var(--human);
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
}
h1 {
font-family: var(--display);
font-size: clamp(44px, 5vw, 68px);
font-weight: 500;
line-height: 0.96;
letter-spacing: 0;
overflow-wrap: break-word;
}
h2 {
font-family: var(--display);
font-size: clamp(32px, 4vw, 58px);
font-weight: 500;
line-height: 0.98;
letter-spacing: 0;
overflow-wrap: break-word;
}
h3 {
font-family: var(--display);
font-size: 28px;
font-weight: 500;
line-height: 1;
}
.intro-copy {
margin-top: 22px;
color: var(--muted);
font-size: 18px;
line-height: 1.48;
overflow-wrap: break-word;
}
.controls {
display: grid;
gap: 10px;
margin-top: 28px;
}
.button,
.file-button {
min-height: 46px;
display: inline-flex;
align-items: center;
justify-content: center;
border: 1px solid var(--line);
background: rgba(247, 240, 223, 0.055);
color: var(--ink);
cursor: pointer;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}
.button.primary {
border-color: rgba(167, 255, 79, 0.72);
background: rgba(167, 255, 79, 0.13);
color: var(--owner);
}
.button:hover,
.button:focus-visible,
.file-button:hover,
.file-button:focus-within {
transform: translateY(-1px);
border-color: var(--line-strong);
background: rgba(247, 240, 223, 0.09);
}
.file-button input {
position: absolute;
inline-size: 1px;
block-size: 1px;
opacity: 0;
pointer-events: none;
}
.status-line {
min-height: 34px;
margin-top: 18px;
color: var(--quiet);
font-family: var(--mono);
font-size: 11px;
line-height: 1.45;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.map-heading {
display: flex;
justify-content: space-between;
gap: 18px;
align-items: start;
}
.source-card {
min-width: 118px;
padding: 12px;
border: 1px solid var(--line);
background: rgba(247, 240, 223, 0.04);
font-family: var(--mono);
text-transform: uppercase;
}
.source-card span {
display: block;
color: var(--quiet);
font-size: 10px;
letter-spacing: 0.08em;
}
.source-card strong {
display: block;
margin-top: 7px;
color: var(--agent);
font-size: 13px;
letter-spacing: 0.04em;
}
.metrics {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1px;
margin-top: 28px;
border: 1px solid var(--line);
background: var(--line);
}
.metric {
min-height: 88px;
display: grid;
align-content: space-between;
padding: 14px;
background: rgba(7, 8, 6, 0.86);
}
.metric span {
color: var(--quiet);
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.metric strong {
color: var(--ink);
font-family: var(--display);
font-size: 38px;
font-weight: 500;
line-height: 0.9;
}
.grid-wrap {
margin-top: 30px;
padding: clamp(14px, 2.2vw, 22px);
border: 1px solid rgba(247, 240, 223, 0.13);
background:
radial-gradient(circle at 18% 22%, rgba(128, 220, 201, 0.12), transparent 30%),
rgba(247, 240, 223, 0.035);
}
.owner-grid {
display: grid;
grid-template-columns: repeat(14, minmax(0, 1fr));
gap: 7px;
}
.day-cell {
position: relative;
aspect-ratio: 1;
border: 1px solid rgba(247, 240, 223, 0.12);
background: var(--empty);
cursor: pointer;
transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.day-cell::after {
content: attr(data-day);
position: absolute;
left: 5px;
bottom: 4px;
color: rgba(7, 8, 6, 0.58);
font-family: var(--mono);
font-size: 9px;
}
.day-cell.agent {
border-color: rgba(128, 220, 201, 0.42);
background: rgba(128, 220, 201, 0.54);
}
.day-cell.overload {
border-color: rgba(223, 98, 66, 0.64);
background: rgba(223, 98, 66, 0.7);
}
.day-cell.human {
border-color: rgba(229, 170, 61, 0.6);
background: rgba(229, 170, 61, 0.72);
}
.day-cell.owner {
border-color: rgba(167, 255, 79, 0.88);
background: rgba(167, 255, 79, 0.82);
box-shadow: 0 0 28px rgba(167, 255, 79, 0.18);
}
.day-cell.selected,
.day-cell:hover,
.day-cell:focus-visible {
outline: none;
transform: translateY(-2px);
border-color: var(--ink);
box-shadow: 0 16px 34px rgba(0, 0, 0, 0.25);
}
.legend {
display: flex;
flex-wrap: wrap;
gap: 10px 16px;
margin-top: 18px;
color: var(--quiet);
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.07em;
text-transform: uppercase;
}
.legend span {
display: inline-flex;
align-items: center;
gap: 7px;
}
.dot {
width: 10px;
height: 10px;
display: inline-block;
border: 1px solid rgba(247, 240, 223, 0.18);
}
.dot.agent {
background: var(--agent);
}
.dot.overload {
background: var(--overload);
}
.dot.human {
background: var(--human);
}
.dot.owner {
background: var(--owner);
}
.dot.empty {
background: var(--empty);
}
.day-state {
margin-top: 18px;
padding: 14px;
border-left: 2px solid var(--owner);
background: rgba(167, 255, 79, 0.075);
color: var(--ink);
font-size: 17px;
line-height: 1.35;
}
.detail-list {
display: grid;
gap: 1px;
margin: 22px 0 0;
border: 1px solid var(--line);
background: var(--line);
}
.detail-list div {
display: grid;
grid-template-columns: 1fr auto;
gap: 14px;
padding: 13px;
background: rgba(7, 8, 6, 0.82);
}
.detail-list dt,
.notes-box span {
color: var(--quiet);
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.detail-list dd {
margin: 0;
color: var(--ink);
font-family: var(--mono);
font-size: 12px;
}
.notes-box {
margin-top: 18px;
padding: 16px;
border: 1px solid var(--line);
background: rgba(247, 240, 223, 0.045);
}
.notes-box p {
margin-top: 10px;
color: var(--muted);
font-size: 15px;
line-height: 1.45;
}
.meaning-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1px;
margin-top: 26px;
border: 1px solid var(--line);
background: var(--line);
}
.meaning-grid article {
min-height: 210px;
display: grid;
align-content: space-between;
padding: 20px;
background: rgba(7, 8, 6, 0.84);
}
.meaning-grid span {
color: var(--overload);
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.1em;
text-transform: uppercase;
}
.meaning-grid p {
color: var(--muted);
font-size: 15px;
line-height: 1.45;
}
@media (max-width: 1080px) {
.app-shell {
grid-template-columns: 1fr;
}
.meaning-panel {
grid-column: auto;
}
.meaning-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 620px) {
.topbar,
.app-shell {
width: min(340px, calc(100vw - 28px));
margin-left: 14px;
margin-right: 14px;
}
.topbar {
align-items: flex-start;
}
.top-actions {
display: none;
}
h1 {
font-size: clamp(40px, 12vw, 52px);
}
h1,
h2,
h3,
p,
.brand span:last-child,
.metric strong,
.detail-list dd {
max-width: 100%;
overflow-wrap: anywhere;
}
.map-heading,
.metrics {
grid-template-columns: 1fr;
}
.map-heading {
display: grid;
}
.owner-grid {
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 6px;
}
.meaning-grid {
grid-template-columns: 1fr;
}
}