@import "tailwindcss"; @custom-variant dark (&:is(.dark *)); /* ── Second Brain brand tokens ─────────────────────────────────────── */ @theme inline { --font-sans: var(--font-fira), ui-monospace, monospace; --font-mono: var(--font-fira), ui-monospace, monospace; --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --radius-sm: calc(var(--radius) * 0.6); --radius-md: calc(var(--radius) * 0.8); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) * 1.4); --radius-2xl: calc(var(--radius) * 1.8); /* Типографическая шкала — канон ДС-2, +2px к дефолту Tailwind */ --text-xs: 14px; --text-sm: 16px; --text-base: 18px; --text-lg: 20px; --text-xl: 22px; --text-2xl: 26px; --text-3xl: 32px; --text-4xl: 38px; --text-5xl: 50px; } /* ── Light mode: Second Brain palette ──────────────────────────────── */ :root { --background: #F5F5F0; --foreground: #323232; --card: #F5F5F0; --card-foreground: #323232; --popover: #F5F5F0; --popover-foreground: #323232; --primary: #323232; --primary-foreground: #F5F5F0; --secondary: #E8E8E0; --secondary-foreground: #323232; --muted: #E8E8E0; --muted-foreground: #666666; --accent: #E8F0D8; --accent-foreground: #323232; --destructive: oklch(0.577 0.245 27.325); --border: #AAAAAA; --input: #AAAAAA; --ring: #323232; --radius: 2px; /* Aubade */ --aubade-thickness: 2px; --aubade-shadow-offset: 4px; --color-divider: #AAAAAA; --color-hover: #D8D8D0; --color-surface: #E8E8E0; --color-highlight: #E8F0D8; /* Admin sidebar */ --sidebar-bg: #2A2A28; --sidebar-surface: #1E1E1C; --sidebar-text: #b3b3b3; --sidebar-border: #4A4A48; --sidebar-highlight: #2A3A2A; } /* ── Base ────────────────────────────────────────────────────────────── */ @layer base { * { @apply border-border outline-ring/50; box-sizing: border-box; } html { font-family: var(--font-sans); font-size: 16px; } body { background-color: var(--background); color: var(--foreground); font-size: 18px; } } /* ── Aubade utility classes ─────────────────────────────────────────── */ .card-aubade { border: var(--aubade-thickness) solid var(--color-divider); box-shadow: var(--aubade-shadow-offset) var(--aubade-shadow-offset) 0 0 var(--color-divider); background-color: var(--background); transition: transform 0.1s ease, box-shadow 0.1s ease; } .card-aubade:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 0 var(--color-divider); } .btn-aubade { display: inline-flex; align-items: center; justify-content: center; padding: 6px 16px; font-family: var(--font-sans); font-size: 16px; font-weight: 500; border: var(--aubade-thickness) solid var(--foreground); box-shadow: var(--aubade-shadow-offset) var(--aubade-shadow-offset) 0 0 var(--foreground); background-color: var(--background); color: var(--foreground); cursor: pointer; transition: transform 0.1s ease, box-shadow 0.1s ease; text-decoration: none; } .btn-aubade:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 0 var(--foreground); } .btn-aubade:active { transform: translate(2px, 2px); box-shadow: none; } .btn-aubade-accent { background-color: var(--color-highlight); border-color: var(--foreground); box-shadow: var(--aubade-shadow-offset) var(--aubade-shadow-offset) 0 0 var(--foreground); } .tag-aubade { background-color: var(--color-surface); border: var(--aubade-thickness) solid transparent; padding: 2px 8px; font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; transition: border-color 0.15s ease; font-family: var(--font-sans); } .tag-aubade:hover { border-color: var(--foreground); } /* ── Lesson content (TipTap nested lists fix) ──────────────────────── */ .prose :where(li > p) { margin-top: 0; margin-bottom: 0; } .prose :where(li > ul, li > ol) { margin-top: 0.375em; margin-bottom: 0.375em; padding-left: 1.5em; } .prose :where(ul > li, ol > li) { padding-left: 0.375em; } /* Admin sidebar (dark) */ .admin-sidebar { background-color: var(--sidebar-bg); color: var(--sidebar-text); } .admin-sidebar-nav-link { display: block; padding: 8px 12px; font-size: 16px; color: var(--sidebar-text); text-decoration: none; border-left: 2px solid transparent; transition: color 0.15s, border-color 0.15s, background-color 0.15s; } .admin-sidebar-nav-link:hover { color: #F5F5F0; background-color: var(--sidebar-surface); } .admin-sidebar-nav-link.active { color: #E8F0D8; border-left-color: #E8F0D8; background-color: var(--sidebar-surface); }