:root { color-scheme: light; --bg: #f5f1e8; --bg-elevated: rgba(255, 252, 246, 0.9); --surface: #fffaf2; --surface-strong: #ffffff; --surface-soft: #efe7d7; --line: rgba(74, 78, 72, 0.12); --text: #243028; --muted: #66736a; --accent: #6a8b78; --accent-strong: #476654; --accent-soft: rgba(106, 139, 120, 0.12); --warning-soft: rgba(196, 136, 92, 0.16); --shadow: 0 18px 40px rgba(44, 56, 46, 0.08); --radius: 20px; --font-body: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; --font-heading: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif; } [data-theme="dark"] { color-scheme: dark; --bg: #1b211d; --bg-elevated: rgba(27, 33, 29, 0.92); --surface: #222925; --surface-strong: #29312c; --surface-soft: #323b36; --line: rgba(224, 229, 223, 0.1); --text: #edf1ea; --muted: #b6c0b6; --accent: #9dbf9d; --accent-strong: #b8d5b1; --accent-soft: rgba(157, 191, 157, 0.15); --warning-soft: rgba(201, 148, 108, 0.22); --shadow: 0 18px 40px rgba(0, 0, 0, 0.28); } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; } body { font-family: var(--font-body); color: var(--text); background: radial-gradient(circle at top left, rgba(178, 197, 168, 0.28), transparent 26rem), radial-gradient(circle at top right, rgba(238, 210, 177, 0.25), transparent 28rem), linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--bg) 84%, #000 16%)); } a { color: inherit; text-decoration: none; } img { max-width: 100%; display: block; } button, input, select, textarea { font: inherit; } button, .button { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; padding: 0.8rem 1.1rem; border: 1px solid transparent; border-radius: 999px; background: var(--accent); color: white; cursor: pointer; transition: transform 160ms ease, background 160ms ease, border-color 160ms ease; } button:hover, .button:hover { transform: translateY(-1px); background: var(--accent-strong); } .button.secondary, button.secondary, .ghost-button { background: transparent; color: var(--text); border-color: var(--line); } .button.secondary:hover, button.secondary:hover, .ghost-button:hover { background: var(--accent-soft); } .page-shell { width: min(1200px, calc(100% - 2rem)); margin: 1rem auto 2rem; } .site-header { position: sticky; top: 1rem; z-index: 10; display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem 1.25rem; margin-bottom: 1.25rem; background: var(--bg-elevated); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); backdrop-filter: blur(18px); } .brand { display: inline-flex; align-items: center; gap: 0.85rem; } .brand strong, h1, h2, h3, .planner-label { font-family: var(--font-heading); letter-spacing: -0.02em; } .brand small { display: block; color: var(--muted); margin-top: 0.12rem; } .brand-mark { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 0.9rem; background: linear-gradient(135deg, var(--accent), #d1b48f); color: white; font-weight: 700; } .site-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; } .site-nav a { padding: 0.55rem 0.85rem; border-radius: 999px; color: var(--muted); } .site-nav a.active, .site-nav a:hover { background: var(--accent-soft); color: var(--text); } .header-actions { display: flex; align-items: center; gap: 0.75rem; } .content { display: grid; gap: 1.25rem; } .hero, .page-intro, .panel, .auth-card, .stat-card, .item-card, .list-row, .planner-entry { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); } .hero, .page-intro, .panel, .auth-card { padding: 1.35rem; } .hero { display: flex; justify-content: space-between; gap: 1rem; align-items: end; background: linear-gradient(135deg, rgba(255, 255, 255, 0.35), transparent 45%), linear-gradient(180deg, var(--surface), var(--surface-strong)); } .eyebrow { margin: 0 0 0.45rem; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.78rem; color: var(--muted); } h1, h2, h3 { margin: 0; } h1 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.06; } h2 { font-size: 1.45rem; } h3 { font-size: 1.15rem; } .lead, .muted, .empty-state, .empty-slot, .planner-entry p, .simple-list span, .simple-list small { color: var(--muted); } .lead { max-width: 60ch; line-height: 1.6; } .stats-grid, .two-column, .card-grid, .mini-card-grid { display: grid; gap: 1rem; } .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .two-column { grid-template-columns: 1.1fr 0.9fr; } .stat-card { padding: 1.15rem 1.2rem; } .stat-card span { display: block; color: var(--muted); margin-bottom: 0.5rem; } .stat-card strong { display: block; font-size: 2rem; font-family: var(--font-heading); } .panel-head, .page-intro, .item-topline, .row-actions, .hero-actions, .form-actions, .week-nav { display: flex; gap: 0.85rem; justify-content: space-between; align-items: center; } .simple-list, .stack-list { list-style: none; padding: 0; margin: 0; } .simple-list li, .list-row { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line); } .simple-list li:last-child { border-bottom: 0; padding-bottom: 0; } .mini-card-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } .mini-card { border-radius: 18px; background: var(--surface-strong); border: 1px solid var(--line); padding: 1rem; } .chip-row { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.75rem; } .chip, .status-pill { display: inline-flex; align-items: center; padding: 0.35rem 0.7rem; border-radius: 999px; background: var(--accent-soft); color: var(--text); font-size: 0.9rem; } .status-home { background: rgba(96, 147, 114, 0.18); } .status-archived { background: var(--warning-soft); } .status-idea { background: rgba(130, 146, 151, 0.16); } .card-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); } .item-card { display: grid; grid-template-columns: 112px 1fr; gap: 1rem; padding: 1rem; } .item-card.compact { grid-template-columns: 84px 1fr; } .item-media { aspect-ratio: 1; overflow: hidden; border-radius: 18px; background: var(--surface-soft); } .item-media img { width: 100%; height: 100%; object-fit: cover; } .placeholder-tile { width: 100%; height: 100%; display: grid; place-items: center; font-size: 2rem; font-family: var(--font-heading); color: var(--accent-strong); } .item-body { min-width: 0; } .item-body p { line-height: 1.55; } .item-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.65rem; } .auth-shell { min-height: calc(100vh - 10rem); display: grid; place-items: center; } .auth-card { width: min(560px, 100%); } .stack-form { display: grid; gap: 1rem; } .stack-form label, .planner-form label { display: grid; gap: 0.5rem; color: var(--muted); } input[type="text"], input[type="password"], input[type="date"], input[type="file"], select, textarea { width: 100%; padding: 0.85rem 1rem; border-radius: 16px; border: 1px solid var(--line); background: var(--surface-strong); color: var(--text); } fieldset { margin: 0; padding: 1rem; border-radius: 18px; border: 1px solid var(--line); } legend { padding: 0 0.4rem; color: var(--muted); } .checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.6rem; } .check-option { display: flex; align-items: center; gap: 0.6rem; padding: 0.75rem 0.9rem; border-radius: 16px; background: var(--surface-strong); border: 1px solid var(--line); } .inline-photo img { width: min(220px, 100%); border-radius: 18px; border: 1px solid var(--line); } .compact-form-panel { padding: 1rem 1.1rem; } .inline-form, .planner-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; align-items: end; } .planner-form .wide { grid-column: span 2; } .list-row { padding: 1rem 1.1rem; } .row-actions { justify-content: end; } .stack-sections { display: grid; gap: 1rem; } .planner-grid { display: grid; gap: 1rem; } .planner-row { display: grid; grid-template-columns: 180px repeat(7, minmax(0, 1fr)); gap: 0.75rem; align-items: start; } .planner-label { padding: 1rem; border-radius: 18px; background: var(--surface-soft); border: 1px solid var(--line); } .planner-cell { min-height: 150px; padding: 0.8rem; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); } .planner-date { margin-bottom: 0.7rem; font-size: 0.9rem; color: var(--muted); } .planner-entry-stack { display: grid; gap: 0.55rem; } .planner-entry { padding: 0.75rem; border-radius: 16px; } .flash-stack { display: grid; gap: 0.7rem; } .flash { padding: 0.95rem 1rem; border-radius: 16px; border: 1px solid var(--line); box-shadow: var(--shadow); } .flash-success { background: rgba(111, 161, 122, 0.18); } .flash-error { background: rgba(195, 111, 98, 0.18); } .flash-info { background: rgba(125, 150, 164, 0.18); } .theme-toggle { min-width: 5rem; } @media (max-width: 980px) { .site-header, .hero, .page-intro, .panel-head { grid-template-columns: 1fr; flex-direction: column; align-items: start; } .site-header { position: static; } .stats-grid, .two-column, .planner-row, .inline-form, .planner-form { grid-template-columns: 1fr; } .planner-form .wide { grid-column: auto; } .planner-label { position: sticky; left: 0; } } @media (max-width: 720px) { .page-shell { width: min(100% - 1rem, 100%); } .site-header { padding: 1rem; } .site-nav, .header-actions, .item-card, .list-row, .row-actions { justify-content: start; } .item-card { grid-template-columns: 1fr; } }