2506327b62
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASstMtsZWLSRcD1Tq8T68Q
66 lines
3.2 KiB
CSS
66 lines
3.2 KiB
CSS
/* maven web ui — one theme for every server-rendered page.
|
|
Palette and type mirror the PWA (static/index.html): dark, restrained,
|
|
#00aaff accent. Pages carry NO inline <style> beyond true one-offs. */
|
|
:root{
|
|
--bg:#111; --panel:#1a1a2e; --line:#222; --border:#333;
|
|
--fg:#ddd; --soft:#aaa; --muted:#888; --dim:#555;
|
|
--accent:#00aaff; --ok:#00ff88; --warn:#ffaa00; --err:#ff4444;
|
|
}
|
|
*{box-sizing:border-box}
|
|
body{background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,sans-serif;
|
|
margin:0;padding:1rem;-webkit-text-size-adjust:100%}
|
|
h1,h2{font-weight:400;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
|
|
h1{font-size:1.2rem;margin:.2rem 0 .6rem}
|
|
h2{font-size:.95rem;margin:1.4rem 0 .3rem}
|
|
h1 small,h2 small{color:var(--dim);letter-spacing:0;text-transform:none}
|
|
a{color:var(--accent);text-decoration:none}
|
|
a:hover{text-decoration:underline}
|
|
|
|
/* shared site nav (the "nav" template partial) */
|
|
nav.site{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;
|
|
border-bottom:1px solid var(--line);padding-bottom:.6rem;margin-bottom:1rem}
|
|
nav.site a{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
|
|
nav.site a:hover{color:var(--fg);text-decoration:none}
|
|
nav.site a.active{color:var(--accent)}
|
|
|
|
/* tables: always inside a .scroll wrapper so wide data pans instead of
|
|
breaking the page on a phone */
|
|
.scroll{overflow-x:auto}
|
|
table{width:100%;border-collapse:collapse;margin-top:.4rem}
|
|
th,td{padding:.35rem .5rem;text-align:left;vertical-align:top;
|
|
border-bottom:1px solid var(--line)}
|
|
th{color:var(--dim);font-size:.75rem;text-transform:uppercase;
|
|
letter-spacing:.05em;white-space:nowrap}
|
|
td{color:var(--soft)}
|
|
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
|
|
code,.key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ok)}
|
|
|
|
/* status colors — nudge outcomes, presence, booleans */
|
|
.pending{color:var(--muted)}.acted{color:var(--ok)}
|
|
.snoozed{color:var(--warn)}.ignored{color:var(--err)}
|
|
.pres,.green{color:var(--ok)}.away,.gray{color:var(--muted)}.red{color:var(--err)}
|
|
.badge{font-size:.75rem;color:var(--dim);background:var(--panel);
|
|
padding:.15rem .35rem;border-radius:3px;white-space:nowrap}
|
|
.updated,.muted{color:var(--dim);font-size:.85rem}
|
|
.empty{color:var(--dim);padding:2rem;text-align:center}
|
|
.voided{opacity:.45;text-decoration:line-through}
|
|
.void-badge{color:var(--dim);font-size:.8rem;margin-right:.3rem}
|
|
|
|
/* controls */
|
|
button{font:inherit;font-size:.85rem;background:var(--panel);color:var(--fg);
|
|
border:1px solid var(--border);border-radius:3px;padding:.25rem .6rem;cursor:pointer}
|
|
button:hover{border-color:var(--accent)}
|
|
button:disabled{opacity:.4;cursor:not-allowed}
|
|
input[type=text]{font:inherit;font-size:.85rem;background:var(--bg);color:var(--fg);
|
|
border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;max-width:100%}
|
|
input[type=checkbox]{accent-color:var(--accent)}
|
|
label{color:var(--soft)}
|
|
|
|
/* inline feedback (/history revert, /tools enable, /auth/passkey) */
|
|
.msg{margin:.6rem 0;padding:.5rem .7rem;border-radius:3px;border:1px solid var(--line)}
|
|
.msg-ok{border-color:var(--ok);color:var(--ok)}
|
|
.msg-err{border-color:var(--err);color:var(--err)}
|
|
|
|
details{color:var(--soft);font-size:.85rem}
|
|
summary{cursor:pointer;color:var(--dim)}
|