Files
Journal/static/css/style.css
SimolZimol 0e7efe4b74 new file: .env.example
new file:   .gitignore
	new file:   Dockerfile
	new file:   README.md
	new file:   app.py
	new file:   auth.py
	new file:   config.py
	new file:   db.py
	new file:   db_helpers.py
	new file:   docker-compose.yml
	new file:   requirements.txt
	new file:   routes/__init__.py
	new file:   routes/admin_routes.py
	new file:   routes/auth_routes.py
	new file:   routes/journal_routes.py
	new file:   static/css/style.css
	new file:   static/js/main.js
	new file:   templates/admin/dashboard.html
	new file:   templates/admin/users.html
	new file:   templates/base.html
	new file:   templates/day.html
	new file:   templates/future.html
	new file:   templates/index.html
	new file:   templates/login.html
	new file:   templates/week.html
2026-08-02 20:41:24 +02:00

193 lines
7.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Bullet Journal eigenes Design */
:root {
--bg: #f7f4ee;
--paper: #fffdf7;
--ink: #2b2b2b;
--muted: #8a867e;
--line: #e5ded2;
--accent: #c9a227;
--accent-dark: #a8871d;
--green: #2e7d32;
--red: #c62828;
--blue: #1565c0;
--shadow: 0 1px 3px rgba(0,0,0,.08);
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
background: var(--bg);
color: var(--ink);
line-height: 1.5;
}
/* Topbar */
.topbar { background: var(--ink); color: #fff; }
.topbar-inner {
max-width: 960px;
margin: 0 auto;
padding: .8rem 1rem;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
flex-wrap: wrap;
}
.brand { color: #fff; text-decoration: none; font-weight: 700; font-size: 1.1rem; }
.nav { display: flex; gap: .5rem; flex-wrap: wrap; }
.nav a { color: #e0dccf; text-decoration: none; padding: .3rem .6rem; border-radius: 4px; }
.nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
.nav-admin { color: var(--accent) !important; font-weight: 600; }
.user-area { display: flex; align-items: center; gap: .8rem; }
.username { color: #e0dccf; font-size: .9rem; }
/* Layout */
.container { max-width: 960px; margin: 0 auto; padding: 1.5rem 1rem; }
.page-head {
display: flex; align-items: center; justify-content: space-between;
gap: 1rem; margin-bottom: 1.2rem; flex-wrap: wrap;
}
h1 { margin: 0 0 .2rem; font-size: 1.6rem; }
h2 { font-size: 1.1rem; margin: 0 0 .8rem; color: var(--accent-dark); }
.muted { color: var(--muted); }
/* Cards */
.card {
background: var(--paper);
border: 1px solid var(--line);
border-radius: 8px;
padding: 1.2rem;
margin-bottom: 1.2rem;
box-shadow: var(--shadow);
}
/* Flash */
.flash { padding: .7rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
.flash-success { background: #e8f5e9; color: var(--green); border: 1px solid #a5d6a7; }
.flash-danger { background: #fdecea; color: var(--red); border: 1px solid #ef9a9a; }
.flash-warning { background: #fff8e1; color: #8d6e00; border: 1px solid #ffe082; }
.flash-info { background: #e3f2fd; color: var(--blue); border: 1px solid #90caf9; }
/* Buttons */
.btn {
display: inline-block; cursor: pointer; border: 1px solid var(--line);
background: #fff; color: var(--ink); padding: .5rem .9rem;
border-radius: 6px; text-decoration: none; font-size: .9rem;
line-height: 1.2;
}
.btn:hover { background: #f6f1e6; }
.btn-primary { background: var(--accent); border-color: var(--accent-dark); color: #fff; }
.btn-primary:hover { background: var(--accent-dark); }
.btn-small { padding: .3rem .6rem; font-size: .8rem; }
.btn-danger { background: var(--red); border-color: var(--red); color: #fff; }
.btn-danger:hover { background: #b71c1c; }
.btn-success { background: var(--green); border-color: var(--green); color: #fff; }
.btn-success:hover { background: #1b5e20; }
.btn-future { background: #f0e6c8; border-color: var(--accent); }
.btn-link { background: none; border: none; color: #e0dccf; cursor: pointer; font-size: .9rem; }
.btn-link:hover { text-decoration: underline; }
/* Formulare */
.stack { display: flex; flex-direction: column; gap: .8rem; }
label { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; }
input, select {
padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 6px;
font-size: .95rem; background: #fff; color: var(--ink);
}
input:focus, select:focus { outline: 2px solid var(--accent); }
.grow { flex: 1; }
.note-form-row { display: flex; gap: .8rem; align-items: flex-end; flex-wrap: wrap; }
.note-form-row label { flex: 0 1 auto; }
.checkbox-label { flex-direction: row; align-items: center; gap: .4rem; }
.inline { display: inline-flex; gap: .4rem; align-items: center; }
.inline .btn { }
/* Wöchentliche Übersicht (Dashboard) */
.week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .6rem; }
.day-card {
background: #fdfaf2; border: 1px solid var(--line); border-radius: 8px;
padding: .6rem; text-align: center; text-decoration: none; color: var(--ink);
display: flex; flex-direction: column; gap: .3rem;
}
.day-card:hover { border-color: var(--accent); background: #fffdf4; }
.day-name { font-weight: 600; font-size: .8rem; }
.day-date { font-size: .75rem; color: var(--muted); }
.day-stats { display: flex; flex-direction: column; gap: .2rem; margin-top: auto; }
.pill { font-size: .7rem; padding: .15rem .4rem; border-radius: 20px; }
.pill.open { background: #fff3cd; color: #8d6e00; }
.pill.done { background: #e8f5e9; color: var(--green); }
.pill.none { background: #f0ece3; color: var(--muted); }
/* Notiz-Liste */
.note-list { list-style: none; margin: 0; padding: 0; }
.note-item {
display: flex; align-items: center; gap: .7rem;
padding: .5rem 0; border-bottom: 1px dashed var(--line);
}
.note-item:last-child { border-bottom: none; }
.bullet { font-weight: 700; width: 1.4rem; text-align: center; font-size: 1.05rem; }
.bullet-\\. { color: var(--ink); }
.bullet-x { color: var(--red); }
.bullet-- { color: var(--blue); }
.bullet-\\? { color: var(--accent-dark); }
.note-text { flex: 1; }
.note-date { color: var(--muted); font-size: .8rem; }
.note-item.is-done .note-text { text-decoration: line-through; color: var(--muted); }
/* 3-Spalten Tabelle (Tagesansicht) */
.notes-table { display: flex; flex-direction: column; }
.notes-header, .notes-row {
display: grid; grid-template-columns: 70px 1fr 110px 340px; gap: .6rem;
align-items: center; padding: .5rem .2rem;
}
.notes-header { font-weight: 600; font-size: .8rem; color: var(--muted); border-bottom: 2px solid var(--line); }
.notes-row { border-bottom: 1px dashed var(--line); }
.notes-row:last-child { border-bottom: none; }
.notes-row.is-done .note-text { text-decoration: line-through; color: var(--muted); }
.priority-badge { justify-self: center; font-size: .75rem; padding: .15rem .5rem; border-radius: 20px; }
.priority-0 { background: #eceff1; color: var(--muted); }
.priority-1 { background: #fff3cd; color: #8d6e00; }
.priority-2 { background: #fdecea; color: var(--red); }
.actions { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.move-date { padding: .3rem; font-size: .8rem; width: 130px; }
/* Tabellen */
.table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.table th, .table td { text-align: left; padding: .55rem .6rem; border-bottom: 1px solid var(--line); }
.table th { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .02em; }
.num { text-align: center; }
.open { color: #b26a00; font-weight: 600; }
.done { color: var(--green); font-weight: 600; }
.table-actions { display: flex; gap: .4rem; align-items: center; }
/* Statistik */
.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.2rem; }
.stat-card {
background: var(--paper); border: 1px solid var(--line); border-radius: 8px;
padding: 1.2rem; text-align: center; box-shadow: var(--shadow);
}
.stat-number { display: block; font-size: 2rem; font-weight: 700; color: var(--accent-dark); }
.stat-label { color: var(--muted); font-size: .85rem; }
/* Auth */
.auth-card {
max-width: 380px; margin: 3rem auto; background: var(--paper);
border: 1px solid var(--line); border-radius: 10px; padding: 2rem;
box-shadow: var(--shadow);
}
.auth-card h1 { text-align: center; }
/* Footer */
.footer { text-align: center; padding: 1.5rem; color: var(--muted); font-size: .8rem; }
/* Responsive */
@media (max-width: 720px) {
.week-grid { grid-template-columns: repeat(2, 1fr); }
.notes-header, .notes-row { grid-template-columns: 40px 1fr; }
.notes-header span:nth-child(3), .notes-header span:nth-child(4),
.notes-row .priority-badge, .notes-row .actions { grid-column: 2; }
.stat-grid { grid-template-columns: 1fr; }
}