:root{--bg-dark:hsl(0, 0%, 92%);--bg:hsl(0, 0%, 96%);--bg-light:hsl(0, 0%, 100%);--bg-underlay:rgba(0, 0, 0, 0.2);--primary:oklch(0.4 0.0458 153.3);--primary-dark:oklch(0.3 0.0458 153.3);--accent:oklch(0.5 0.103 144.357);--accent-dark:oklch(0.4 0.103 144.357);--danger-bg:oklch(0.546 0.194 25.504);--danger-bg-dark:oklch(0.5 0.194 25.504);--warn-bg:oklch(0.68 0.161 58.98);--warn-bg-dark:oklch(0.6 0.161 58.98);--info-bg:oklch(0.595 0.079 198.56);--info-bg-dark:oklch(0.53 0.079 198.56);--contrast-bg:hsl(0, 0%, 10%);--contrast-bg-dark:hsl(0, 0%, 0%);--text:hsl(0, 0%, 5%);--text-contrast:hsl(0, 0%, 95%);--text-muted:hsl(0, 0%, 30%);--font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--border-color:hsl(0, 0%, 80%);--border-highlight:hsl(0, 0%, 88%);--border-radius-sm:8px;--border-radius:16px;--card-border:solid 1px hsl(0, 0%, 85%);--shadow-sm:0 1px 1px hsla(0, 0%, 0%, 0.07),0 2px 2px hsla(0, 0%, 0%, 0.07);--shadow:0 2px 3px hsla(0, 0%, 0%, 0.1);--shadow-lg:0 3px 3px hsla(0, 0%, 0%, 0.07),0 5px 5px hsla(0, 0%, 0%, 0.07);--spacing-xxs:4px;--spacing-xs:8px;--spacing-sm:12px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--container-padding-x:16px}[data-theme=light]{--bg-light:hsl(0, 0%, 100%);--accent:oklch(0.5 0.103 144.357);--border-color:hsl(0, 0%, 80%)}[data-theme=dark]{--bg-dark:hsl(0, 0%, 10%);--bg:hsl(60, 2%, 10%);--bg-light:hsl(60, 2%, 12%);--bg-underlay:rgba(0, 0, 0, 0.5);--contrast-bg:hsl(0, 0%, 90%);--contrast-bg-dark:hsl(0, 0%, 100%);--text:hsl(0, 0%, 100%);--text-contrast:hsl(0, 0%, 5%);--text-muted:hsl(0, 0%, 58%);--border-color:hsl(0, 0%, 26%);--border-highlight:hsl(0, 0%, 22%);--card-border:solid 1px hsl(0, 0%, 23%);--shadow-sm:0 1px 1px hsla(0, 0%, 0%, 0.3),0 2px 2px hsla(0, 0%, 0%, 0.3);--shadow:0 2px 3px hsla(0, 0%, 0%, 0.4);--shadow-lg:0 3px 3px hsla(0, 0%, 0%, 0.3),0 5px 5px hsla(0, 0%, 0%, 0.3);--primary:oklch(0.487 0.075 154.027);--primary-dark:oklch(0.429 0.065 154.397);--accent:oklch(0.673 0.118 144.756);--accent-dark:oklch(0.561 0.129 145.098);--danger-bg:oklch(0.66 0.102 19.376);--danger-bg-dark:oklch(0.633 0.18 19.543);--warn-bg:oklch(0.68 0.161 58.98);--warn-bg-dark:oklch(0.6 0.161 58.98);--info-bg:oklch(0.595 0.079 198.56);--info-bg-dark:oklch(0.53 0.079 198.56)}[data-theme=dune]{--bg-dark:hsl(36, 38%, 84%);--bg:hsl(38, 45%, 90%);--bg-light:hsl(40, 55%, 95%);--bg-underlay:rgba(60, 35, 10, 0.25);--primary:oklch(0.45 0.07 55);--primary-dark:oklch(0.36 0.06 55);--accent:oklch(0.6 0.13 50);--accent-dark:oklch(0.5 0.13 50);--text:hsl(28, 35%, 15%);--text-contrast:hsl(40, 55%, 96%);--text-muted:hsl(28, 18%, 36%);--border-color:hsl(34, 28%, 70%);--border-highlight:hsl(34, 32%, 78%);--card-border:solid 1px hsl(34, 28%, 75%);--shadow-sm:0 1px 1px hsla(28, 30%, 20%, 0.08),0 2px 2px hsla(28, 30%, 20%, 0.08);--shadow:0 2px 3px hsla(28, 30%, 20%, 0.12);--shadow-lg:0 3px 3px hsla(28, 30%, 20%, 0.08),0 5px 5px hsla(28, 30%, 20%, 0.08)}[data-theme=tokyo_night]{--bg-dark:hsl(231, 28%, 11%);--bg:hsl(231, 26%, 13%);--bg-light:hsl(229, 26%, 18%);--bg-underlay:rgba(10, 12, 30, 0.6);--contrast-bg:hsl(229, 75%, 88%);--contrast-bg-dark:hsl(229, 100%, 95%);--text:hsl(229, 75%, 88%);--text-contrast:hsl(231, 28%, 11%);--text-muted:hsl(229, 22%, 64%);--border-color:hsl(229, 22%, 28%);--border-highlight:hsl(229, 22%, 24%);--card-border:solid 1px hsl(229, 22%, 26%);--shadow-sm:0 1px 1px hsla(231, 60%, 4%, 0.45),0 2px 2px hsla(231, 60%, 4%, 0.45);--shadow:0 2px 3px hsla(231, 60%, 4%, 0.55);--shadow-lg:0 3px 3px hsla(231, 60%, 4%, 0.45),0 5px 5px hsla(231, 60%, 4%, 0.45);--primary:oklch(0.5 0.16 263);--primary-dark:oklch(0.42 0.16 263);--accent:oklch(0.78 0.15 295);--accent-dark:oklch(0.66 0.15 295);--danger-bg:oklch(0.68 0.16 15);--danger-bg-dark:oklch(0.6 0.16 15);--warn-bg:oklch(0.78 0.13 80);--warn-bg-dark:oklch(0.7 0.13 80);--info-bg:oklch(0.75 0.11 220);--info-bg-dark:oklch(0.66 0.11 220)}[data-theme=rose]{--bg-dark:hsl(345, 50%, 90%);--bg:hsl(348, 65%, 95%);--bg-light:hsl(345, 80%, 98%);--bg-underlay:rgba(80, 20, 40, 0.25);--primary:oklch(0.46 0.13 5);--primary-dark:oklch(0.38 0.13 5);--accent:oklch(0.62 0.17 5);--accent-dark:oklch(0.52 0.17 5);--text:hsl(345, 35%, 18%);--text-contrast:hsl(345, 80%, 98%);--text-muted:hsl(345, 18%, 40%);--border-color:hsl(345, 30%, 80%);--border-highlight:hsl(345, 36%, 86%);--card-border:solid 1px hsl(345, 30%, 84%);--shadow-sm:0 1px 1px hsla(345, 50%, 25%, 0.08),0 2px 2px hsla(345, 50%, 25%, 0.08);--shadow:0 2px 3px hsla(345, 50%, 25%, 0.12);--shadow-lg:0 3px 3px hsla(345, 50%, 25%, 0.08),0 5px 5px hsla(345, 50%, 25%, 0.08)}[data-theme=coastal_heritage]{--bg-dark:hsl(200, 22%, 86%);--bg:hsl(40, 35%, 94%);--bg-light:hsl(40, 55%, 97%);--bg-underlay:rgba(14, 42, 63, 0.3);--primary:oklch(0.4 0.07 245);--primary-dark:oklch(0.32 0.07 245);--accent:oklch(0.52 0.09 195);--accent-dark:oklch(0.43 0.09 195);--text:hsl(210, 50%, 14%);--text-contrast:hsl(40, 55%, 97%);--text-muted:hsl(210, 18%, 38%);--border-color:hsl(200, 22%, 78%);--border-highlight:hsl(200, 28%, 84%);--card-border:solid 1px hsl(200, 22%, 82%);--shadow-sm:0 1px 1px hsla(210, 60%, 18%, 0.1),0 2px 2px hsla(210, 60%, 18%, 0.08);--shadow:0 2px 3px hsla(210, 60%, 18%, 0.14);--shadow-lg:0 3px 3px hsla(210, 60%, 18%, 0.1),0 5px 5px hsla(210, 60%, 18%, 0.08)}[data-theme=mocha]{--bg-dark:hsl(20, 40%, 5%);--bg:hsl(20, 35%, 8%);--bg-light:hsl(22, 28%, 11%);--bg-underlay:rgba(15, 7, 3, 0.65);--contrast-bg:hsl(35, 32%, 84%);--contrast-bg-dark:hsl(35, 38%, 92%);--text:hsl(35, 32%, 84%);--text-contrast:hsl(20, 40%, 5%);--text-muted:hsl(28, 14%, 56%);--border-color:hsl(22, 20%, 20%);--border-highlight:hsl(22, 20%, 16%);--card-border:solid 1px hsl(22, 20%, 18%);--shadow-sm:0 1px 1px hsla(20, 60%, 2%, 0.45),0 2px 2px hsla(20, 60%, 2%, 0.45);--shadow:0 2px 3px hsla(20, 60%, 2%, 0.55);--shadow-lg:0 3px 3px hsla(20, 60%, 2%, 0.45),0 5px 5px hsla(20, 60%, 2%, 0.45);--primary:oklch(0.58 0.11 60);--primary-dark:oklch(0.48 0.11 60);--accent:oklch(0.65 0.11 50);--accent-dark:oklch(0.55 0.11 50);--danger-bg:oklch(0.62 0.12 25);--danger-bg-dark:oklch(0.52 0.12 25);--warn-bg:oklch(0.68 0.12 70);--warn-bg-dark:oklch(0.58 0.12 70);--info-bg:oklch(0.64 0.08 200);--info-bg-dark:oklch(0.54 0.08 200)}[data-theme=butter]{--bg-dark:hsl(48, 76%, 88%);--bg:hsl(50, 75%, 93%);--bg-light:hsl(52, 85%, 96%);--bg-underlay:rgba(80, 60, 10, 0.2);--primary:oklch(0.612 0.126 78.924);--primary-dark:oklch(0.541 0.113 77.506);--accent:oklch(0.65 0.16 85);--accent-dark:oklch(0.55 0.16 85);--text:hsl(40, 30%, 16%);--text-contrast:hsl(52, 85%, 96%);--text-muted:hsl(40, 18%, 38%);--border-color:hsl(48, 50%, 78%);--border-highlight:hsl(48, 60%, 86%);--card-border:solid 1px hsl(48, 50%, 82%);--shadow-sm:0 1px 1px hsla(40, 40%, 25%, 0.07),0 2px 2px hsla(40, 40%, 25%, 0.07);--shadow:0 2px 3px hsla(40, 40%, 25%, 0.1);--shadow-lg:0 3px 3px hsla(40, 40%, 25%, 0.07),0 5px 5px hsla(40, 40%, 25%, 0.07)}[data-theme=forest]{--bg-dark:hsl(120, 18%, 86%);--bg:hsl(120, 22%, 92%);--bg-light:hsl(120, 30%, 97%);--bg-underlay:rgba(20, 50, 30, 0.25);--primary:oklch(0.4 0.08 150);--primary-dark:oklch(0.32 0.08 150);--accent:oklch(0.55 0.12 145);--accent-dark:oklch(0.45 0.12 145);--text:hsl(140, 30%, 12%);--text-contrast:hsl(120, 30%, 97%);--text-muted:hsl(140, 14%, 34%);--border-color:hsl(120, 18%, 76%);--border-highlight:hsl(120, 22%, 84%);--card-border:solid 1px hsl(120, 18%, 80%);--shadow-sm:0 1px 1px hsla(140, 50%, 15%, 0.08),0 2px 2px hsla(140, 50%, 15%, 0.08);--shadow:0 2px 3px hsla(140, 50%, 15%, 0.12);--shadow-lg:0 3px 3px hsla(140, 50%, 15%, 0.08),0 5px 5px hsla(140, 50%, 15%, 0.08)}[data-theme=azure]{--bg-dark:hsl(212, 38%, 86%);--bg:hsl(212, 55%, 93%);--bg-light:hsl(210, 70%, 97%);--bg-underlay:rgba(10, 30, 80, 0.28);--primary:oklch(0.45 0.13 250);--primary-dark:oklch(0.37 0.13 250);--accent:oklch(0.6 0.16 245);--accent-dark:oklch(0.5 0.16 245);--text:hsl(218, 45%, 15%);--text-contrast:hsl(210, 70%, 97%);--text-muted:hsl(218, 18%, 38%);--border-color:hsl(212, 30%, 78%);--border-highlight:hsl(212, 36%, 86%);--card-border:solid 1px hsl(212, 30%, 82%);--shadow-sm:0 1px 1px hsla(218, 50%, 20%, 0.08),0 2px 2px hsla(218, 50%, 20%, 0.08);--shadow:0 2px 3px hsla(218, 50%, 20%, 0.12);--shadow-lg:0 3px 3px hsla(218, 50%, 20%, 0.08),0 5px 5px hsla(218, 50%, 20%, 0.08)}[data-theme=lavender]{--bg-dark:hsl(270, 30%, 88%);--bg:hsl(270, 45%, 94%);--bg-light:hsl(270, 60%, 98%);--bg-underlay:rgba(60, 30, 90, 0.25);--primary:oklch(0.46 0.13 295);--primary-dark:oklch(0.38 0.13 295);--accent:oklch(0.62 0.16 295);--accent-dark:oklch(0.52 0.16 295);--text:hsl(270, 30%, 18%);--text-contrast:hsl(270, 60%, 98%);--text-muted:hsl(270, 16%, 40%);--border-color:hsl(270, 26%, 80%);--border-highlight:hsl(270, 32%, 86%);--card-border:solid 1px hsl(270, 26%, 84%);--shadow-sm:0 1px 1px hsla(270, 50%, 20%, 0.08),0 2px 2px hsla(270, 50%, 20%, 0.08);--shadow:0 2px 3px hsla(270, 50%, 20%, 0.12);--shadow-lg:0 3px 3px hsla(270, 50%, 20%, 0.08),0 5px 5px hsla(270, 50%, 20%, 0.08)}[data-theme=mint]{--bg-dark:hsl(165, 35%, 86%);--bg:hsl(165, 50%, 93%);--bg-light:hsl(165, 65%, 97%);--bg-underlay:rgba(10, 60, 50, 0.25);--primary:oklch(0.5 0.1 175);--primary-dark:oklch(0.4 0.1 175);--accent:oklch(0.65 0.12 170);--accent-dark:oklch(0.55 0.12 170);--text:hsl(170, 40%, 14%);--text-contrast:hsl(165, 65%, 97%);--text-muted:hsl(170, 18%, 34%);--border-color:hsl(165, 30%, 76%);--border-highlight:hsl(165, 36%, 84%);--card-border:solid 1px hsl(165, 30%, 80%);--shadow-sm:0 1px 1px hsla(170, 50%, 15%, 0.08),0 2px 2px hsla(170, 50%, 15%, 0.08);--shadow:0 2px 3px hsla(170, 50%, 15%, 0.12);--shadow-lg:0 3px 3px hsla(170, 50%, 15%, 0.08),0 5px 5px hsla(170, 50%, 15%, 0.08)}[data-theme=harvest]{--bg-dark:hsl(26, 80%, 84%);--bg:hsl(26, 90%, 90%);--bg-light:hsl(28, 95%, 94%);--bg-underlay:rgba(80, 30, 10, 0.25);--primary:oklch(0.45 0.13 35);--primary-dark:oklch(0.37 0.13 35);--accent:oklch(0.62 0.18 40);--accent-dark:oklch(0.52 0.18 40);--text:hsl(20, 40%, 16%);--text-contrast:hsl(28, 95%, 94%);--text-muted:hsl(20, 20%, 36%);--border-color:hsl(26, 60%, 72%);--border-highlight:hsl(26, 70%, 80%);--card-border:solid 1px hsl(26, 60%, 76%);--shadow-sm:0 1px 1px hsla(20, 50%, 18%, 0.1),0 2px 2px hsla(20, 50%, 18%, 0.1);--shadow:0 2px 3px hsla(20, 50%, 18%, 0.13);--shadow-lg:0 3px 3px hsla(20, 50%, 18%, 0.1),0 5px 5px hsla(20, 50%, 18%, 0.1)}[data-theme=crimson]{--bg-dark:hsl(2, 75%, 82%);--bg:hsl(2, 85%, 88%);--bg-light:hsl(2, 90%, 93%);--bg-underlay:rgba(80, 10, 10, 0.3);--primary:oklch(0.42 0.18 25);--primary-dark:oklch(0.34 0.18 25);--accent:oklch(0.55 0.21 25);--accent-dark:oklch(0.45 0.21 25);--text:hsl(0, 50%, 12%);--text-contrast:hsl(2, 90%, 93%);--text-muted:hsl(0, 24%, 32%);--border-color:hsl(2, 50%, 72%);--border-highlight:hsl(2, 60%, 80%);--card-border:solid 1px hsl(2, 50%, 76%);--shadow-sm:0 1px 1px hsla(0, 60%, 20%, 0.1),0 2px 2px hsla(0, 60%, 20%, 0.1);--shadow:0 2px 3px hsla(0, 60%, 20%, 0.14);--shadow-lg:0 3px 3px hsla(0, 60%, 20%, 0.1),0 5px 5px hsla(0, 60%, 20%, 0.1)}[data-theme=plum]{--bg-dark:hsl(310, 38%, 8%);--bg:hsl(308, 32%, 11%);--bg-light:hsl(306, 26%, 15%);--bg-underlay:rgba(30, 10, 30, 0.6);--contrast-bg:hsl(305, 35%, 88%);--contrast-bg-dark:hsl(305, 45%, 94%);--text:hsl(305, 35%, 90%);--text-contrast:hsl(310, 38%, 8%);--text-muted:hsl(305, 14%, 62%);--border-color:hsl(305, 18%, 26%);--border-highlight:hsl(305, 18%, 22%);--card-border:solid 1px hsl(305, 18%, 24%);--shadow-sm:0 1px 1px hsla(310, 60%, 3%, 0.5),0 2px 2px hsla(310, 60%, 3%, 0.5);--shadow:0 2px 3px hsla(310, 60%, 3%, 0.6);--shadow-lg:0 3px 3px hsla(310, 60%, 3%, 0.5),0 5px 5px hsla(310, 60%, 3%, 0.5);--primary:oklch(0.58 0.15 330);--primary-dark:oklch(0.48 0.15 330);--accent:oklch(0.72 0.17 325);--accent-dark:oklch(0.62 0.17 325);--danger-bg:oklch(0.66 0.18 20);--danger-bg-dark:oklch(0.56 0.18 20);--warn-bg:oklch(0.74 0.14 75);--warn-bg-dark:oklch(0.64 0.14 75);--info-bg:oklch(0.7 0.12 285);--info-bg-dark:oklch(0.6 0.12 285)}[data-theme=high_contrast]{--bg-dark:hsl(0, 0%, 0%);--bg:hsl(0, 0%, 0%);--bg-light:hsl(0, 0%, 0%);--bg-underlay:rgba(0, 0, 0, 0.85);--contrast-bg:oklch(0.55 0.18 195);--contrast-bg-dark:oklch(0.85 0.12 195);--text:hsl(0, 0%, 100%);--text-contrast:hsl(0, 0%, 0%);--text-muted:hsl(0, 0%, 90%);--border-color:hsl(0, 0%, 100%);--border-highlight:hsl(0, 0%, 100%);--card-border:solid 2px hsl(0, 0%, 100%);--shadow-sm:none;--shadow:none;--shadow-lg:none;--primary:oklch(0.55 0.18 195);--primary-dark:oklch(0.45 0.18 195);--accent:oklch(0.55 0.18 195);--accent-dark:oklch(0.45 0.18 195);--danger-bg:oklch(0.55 0.22 25);--danger-bg-dark:oklch(0.45 0.22 25);--warn-bg:oklch(0.55 0.18 195);--warn-bg-dark:oklch(0.45 0.18 195);--info-bg:oklch(0.55 0.18 195);--info-bg-dark:oklch(0.45 0.18 195)}*{box-sizing:border-box}body,html{display:flex;flex-direction:column;background:var(--bg-light);font-family:var(--font-family),sans-serif;color:var(--contrast-bg-dark);line-height:1.4;font-size:1.05rem;margin:0;padding:0}html{height:100%}body{min-height:calc(100% - 104px);margin:104px 0 0}.sim-banner{position:fixed;top:0;left:0;right:0;z-index:50;background:#000;color:#fff;font-size:.75rem;line-height:1.2;text-align:center;padding:6px 12px}.hx-indicator{display:none}.hide-when-loading{display:inline-block}.htmx-request .hx-indicator{display:none}.htmx-request .hide-when-loading{display:inline-block}.text-primary{color:var(--accent)}nav.navbar{position:fixed;top:36px;padding:0 8px;z-index:40;width:100%}@media (max-width:600px){body{min-height:calc(100% - 124px);margin-top:124px}nav.navbar{top:56px}}nav.navbar .content{background:var(--bg-light);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);box-shadow:var(--shadow);margin:0 auto}nav.navbar h1{font-size:1rem;margin:0}nav.navbar button{padding:0;border:0;box-shadow:none}nav.navbar button:hover{background:0 0;color:var(--primary-dark)}nav a{color:var(--text);text-decoration:none;font-weight:700;font-size:.85rem}nav button.add-btn{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:2px;line-height:0;transition:border-color 250ms}nav button.add-btn:hover{color:var(--accent-dark);border-color:var(--accent-dark)}nav button.add-btn.htmx-request>svg{animation:1ms linear 150ms forwards spinner-hide-icon}nav.breadcrumbs{font-size:.85rem;margin-bottom:var(--spacing-xs);line-height:1.6}nav.breadcrumbs a{color:var(--accent);text-decoration:underline;font-weight:400;font-size:.85rem}nav.breadcrumbs a:focus,nav.breadcrumbs a:hover{color:var(--accent-dark)}nav.breadcrumbs .separator{color:var(--text-muted);margin:0 var(--spacing-xxs)}nav.breadcrumbs span[aria-current=page]{color:var(--text);font-weight:700}header.hero{text-align:center;clip-path:ellipse(150% 100% at 50% 0%);background-color:#effff4;padding-top:5rem;padding-bottom:6rem;margin-top:-5rem;margin-bottom:24px}header.hero div.container{text-align:center;align-items:center;display:flex;flex-direction:column;justify-content:center;gap:var(--spacing-sm);max-width:768px;margin-top:16px}header.hero p{font-weight:500}@media (min-width:748px){header.hero{clip-path:ellipse(100% 100% at 50% 0%)}}main{display:block;flex-grow:1}footer{font-size:.9rem;margin-top:var(--spacing-xl);padding:var(--spacing-xl) 0 var(--spacing-md);border-top:1px solid var(--border-color);background:var(--bg-dark)}footer a{color:var(--text);text-decoration:none}footer a:focus,footer a:hover{color:var(--accent)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--spacing-lg)}.footer-brand{max-width:320px}@media (max-width:748px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;max-width:none}}.footer-bottom{padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}p{margin:0}.container{width:100%;max-width:1024px;margin:0 auto;padding:0 var(--container-padding-x)}.card{width:100%;box-shadow:var(--shadow);border:var(--card-border);border-top:1px solid var(--border-highlight);background:var(--bg-light);padding:var(--spacing-md);border-radius:var(--border-radius)}main.card-hover .card{transition:transform 180ms,box-shadow 180ms,border-color 180ms}main.card-hover .card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.12);border-color:var(--accent)}.flex{display:flex;align-items:center;gap:var(--spacing-md)}.flex-wrap{flex-wrap:wrap}.flex-col{display:flex;flex-direction:column;gap:var(--spacing-md)}.gap-xxs{gap:var(--spacing-xxs)!important}.gap-xs{gap:var(--spacing-xs)!important}.gap-sm{gap:var(--spacing-sm)!important}.gap-lg{gap:var(--spacing-lg)!important}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-md)}.grid-2>*,.grid-3>*{min-width:0}.w-full{width:100%}.w-fit{width:fit-content}.whitespace-nowrap{white-space:nowrap}.space-between{justify-content:space-between}.items-start{align-items:start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:end}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.drawer.underlay{position:fixed;top:0;left:0;background:var(--bg-underlay);height:100%;width:100%;z-index:45}aside.drawer{position:fixed;height:100%;top:0;right:0;width:80%;max-width:312px;overflow-y:auto;z-index:50;transition:.3s;transform:translateX(100%);background:var(--bg-light);display:flex;flex-direction:column;gap:var(--spacing-md);padding:0}aside.drawer .drawer-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--bg)}aside.drawer .drawer-nav{padding:0 var(--spacing-xs)}aside.drawer .drawer-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-sm);color:var(--text);text-decoration:none;font-weight:600;font-size:1rem}aside.drawer .drawer-link svg{color:var(--text-muted);flex-shrink:0}aside.drawer .drawer-link:focus,aside.drawer .drawer-link:hover{background:var(--bg);color:var(--text)}aside.drawer .drawer-actions{margin-top:auto;padding:var(--spacing-md);border-top:1px solid var(--border-color)}.link,a{cursor:pointer;font-weight:400;text-decoration:underline;color:var(--accent);background:0 0;border:0}a.card{text-decoration:none;color:inherit;transition:background-color .3s}a.card:hover{background-color:var(--bg);color:inherit}.link:active,.link:focus,.link:hover,a:active,a:focus,a:hover{color:var(--accent-dark)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm)!important;font-size:.85rem!important}header strong{font-weight:900}a.btn,a.ghost,button{font-size:1rem;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:var(--border-radius);transition:.2s;font-weight:700;color:var(--text);background:var(--bg-light);text-decoration:none}a.btn:hover,button:hover{background:var(--bg);font-weight:700}a.btn.primary,button.primary{color:#fff;background:var(--primary);border:1px solid #ffffff00}a.btn.primary:active,a.btn.primary:focus,a.btn.primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background:var(--primary-dark)}.text-danger{color:var(--danger-bg-dark)}button.danger{color:#fff;background:var(--danger-bg);border:1px solid #ffffff00}button.danger:active,button.danger:focus,button.danger:hover{background:var(--danger-bg-dark)}button.warn{color:#fff;background:var(--warn-bg);border:1px solid #ffffff00}button.warn:active,button.warn:focus,button.warn:hover{background:var(--warn-bg-dark)}button.info{color:#fff;background:var(--info-bg);border:1px solid #ffffff00}button.info:active,button.info:focus,button.info:hover{background:var(--info-bg-dark)}button.contrast{color:#fff;background:var(--contrast-bg);border:1px solid #ffffff00}button.contrast:active,button.contrast:focus,button.contrast:hover{background:var(--contrast-bg-dark)}button:disabled,button:disabled:active,button:disabled:focus,button:disabled:hover{cursor:not-allowed;opacity:.55;background:var(--bg-dark);color:var(--text-muted);box-shadow:none}:is(button,a).ghost{border:1px solid transparent;box-shadow:none;background:0 0}:is(button,a).primary.ghost{color:var(--primary-dark)}:is(button,a).primary.ghost:hover{background:color-mix(in oklch,var(--primary) 7%,transparent)}:is(button,a).danger.ghost{color:var(--danger-bg-dark)}:is(button,a).danger.ghost:hover{background:color-mix(in oklch,var(--danger-bg) 7%,transparent)}:is(button,a).warn.ghost{color:var(--warn-bg-dark)}:is(button,a).warn.ghost:hover{background:color-mix(in oklch,var(--warn-bg) 7%,transparent)}:is(button,a).info.ghost{color:var(--info-bg-dark)}:is(button,a).info.ghost:hover{background:color-mix(in oklch,var(--info-bg) 7%,transparent)}:is(button,a).contrast.ghost{color:var(--contrast-bg-dark)}:is(button,a).contrast.ghost:hover{background:color-mix(in oklch,var(--contrast-bg) 7%,transparent)}:is(button,a).ghost:active,:is(button,a).ghost:focus,:is(button,a).ghost:hover{background:color-mix(in oklch,var(--contrast-bg) 6%,transparent)}a.btn,a[role=button],a[type=button],button{--spinner-color:currentColor}:is(button:not(.link),a[role=button]:not(.link),a.btn:not(.link):not([type=button])).htmx-request,form.htmx-request button:not([type]):not(.link),form.htmx-request button[type=submit]:not(.link){position:relative;pointer-events:none;animation:1ms linear 150ms forwards spinner-hide-label;text-shadow:none}:is(button:not(.link),a[role=button]:not(.link),a.btn:not(.link):not([type=button])).htmx-request::after,form.htmx-request button:not([type]):not(.link)::after,form.htmx-request button[type=submit]:not(.link)::after{content:"";position:absolute;inset:0;margin:auto;width:.875rem;height:.875rem;border:2.5px solid var(--spinner-color);border-top-color:transparent;border-radius:50%;opacity:0;animation:.7s linear infinite spinner-rotate,170ms ease-out 150ms forwards spinner-fade-in}:is(button.link,a[role=button].link,a[type=button],a.btn.link).htmx-request,form.htmx-request button.link:not([type]),form.htmx-request button.link[type=submit]{pointer-events:none;text-shadow:none}:is(button.link,a[role=button].link,a[type=button],a.btn.link).htmx-request::after,form.htmx-request button.link:not([type])::after,form.htmx-request button.link[type=submit]::after{content:"...";display:inline-block;width:0;margin-left:0;overflow:hidden;vertical-align:bottom;white-space:nowrap;opacity:0;animation:1s steps(4,end) 150ms infinite link-loading-dots,1ms linear 150ms forwards link-loading-show}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-hide-label{to{-webkit-text-fill-color:transparent}}@keyframes spinner-hide-icon{to{opacity:0}}@keyframes spinner-fade-in{to{opacity:1}}@keyframes link-loading-dots{to{width:1em}}@keyframes link-loading-show{to{margin-left:.15em;opacity:1}}.banner{width:100%;border-radius:var(--border-radius-sm);padding:var(--spacing-sm) var(--spacing-sm);border:1px dashed var(--border-color)}.banner.contrast{background:color-mix(in oklch,var(--contrast-bg) 10%,transparent);border-color:color-mix(in oklch,var(--contrast-bg) 30%,transparent)}.banner.warn{background:color-mix(in oklch,var(--warn-bg) 10%,transparent);border-color:color-mix(in oklch,var(--warn-bg) 30%,transparent)}.banner.info{background:color-mix(in oklch,var(--info-bg) 10%,transparent);border-color:color-mix(in oklch,var(--info-bg) 30%,transparent)}.banner.danger{background:color-mix(in oklch,var(--danger-bg) 10%,transparent);border-color:color-mix(in oklch,var(--danger-bg) 30%,transparent)}.banner.primary{background:color-mix(in oklch,var(--primary) 10%,transparent);border-color:color-mix(in oklch,var(--primary) 30%,transparent)}.badge{padding:4px 8px;border-radius:var(--border-radius-sm);font-weight:600;display:inline-block}.badge.primary{background:var(--primary);color:#fff}.badge.danger{background:var(--danger-bg);color:#fff}.badge.warn{background:var(--warn-bg);color:#fff}.badge.contrast{background:var(--contrast-bg);color:var(--text-contrast)}.badge.info{background:var(--info-bg);color:#fff}.text-muted{color:var(--text-muted)}.text-3xl,.text-4xl{font-size:2.25rem}.text-2xl{font-size:1.75rem}.text-xl{font-size:1.5rem}.text-lg{font-size:1.25rem}.text-md{font-size:1rem}.text-sm{font-size:.895rem}.text-xs{font-size:.8rem}.text-xxs{font-size:.75rem}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.subtitle{font-weight:400;font-size:1rem}h1,h2,h3{font-weight:900;margin:0;padding:0}ul{list-style-type:none;margin:0;padding:0}img.avatar{border-radius:50%;border:1px solid var(--border-color)}.table-container{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}table.hoverable tbody tr{cursor:pointer}table thead{border-bottom:2px solid var(--border-color)}table tbody tr{cursor:default;border-bottom:1px solid var(--border-highlight)}table tbody tr td,table tfoot tr td,table tfoot tr th,table thead tr th{padding:var(--spacing-sm)}table.compact tbody tr td,table.compact tfoot tr td,table.compact tfoot tr th,table.compact thead tr th{padding:var(--spacing-xs)}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding:0;background:0 0;border-top:none}.pagination-controls{display:flex;align-items:center;gap:var(--spacing-xxs);margin-left:auto}.pagination-btn{display:inline-flex;align-items:center;gap:var(--spacing-xxs)}.pagination-btn:disabled{background:0 0}.pagination-page{color:var(--text-muted);padding:0 var(--spacing-sm);white-space:nowrap}@media (max-width:748px){.pagination{flex-direction:column;align-items:center;justify-content:center}.pagination-controls{margin-left:0}.pagination-page{padding:0 var(--spacing-xs)}}table.pricing-table td,table.pricing-table th{text-align:center;white-space:nowrap}table.pricing-table td:first-child,table.pricing-table th:first-child{text-align:left;white-space:normal}table tbody tr:hover{background:var(--bg)}table caption{width:100%;caption-side:bottom;padding:var(--spacing-sm);font-size:.85rem;color:var(--text-muted)}input,select,textarea{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:var(--spacing-xs);background:var(--bg-light);font-family:var(--font-family),sans-serif;font-size:1rem;color:var(--contrast-bg-dark)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.animate-wiggle{animation:.6s ease-in-out .6s forwards wiggle}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes zoomIn{0%{transform:scale(.9)}100%{transform:scale(1)}}@keyframes zoomOut{0%{transform:scale(1)}100%{transform:scale(.9)}}@keyframes wiggle{0%,100%{transform:rotate(0)}15%{transform:rotate(3deg)}30%{transform:rotate(-3deg)}45%{transform:rotate(2deg)}60%{transform:rotate(-2deg)}75%{transform:rotate(1deg)}}.spinner{animation:.75s linear infinite spin;vertical-align:middle}.bulk-action-bar{position:fixed;bottom:24px;left:50%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--spacing-sm);z-index:40;animation:1.4s ease-in-out infinite bulk-action-bar-bounce}@keyframes bulk-action-bar-bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-8px)}}@keyframes spin{to{transform:rotate(360deg)}}.mobile-only{display:none}#dashboard aside{width:384px}.activity-timeline{list-style:none;padding:0;margin:0}.activity-item{position:relative;display:flex;gap:var(--spacing-sm);padding-bottom:var(--spacing-md)}.activity-item:last-child{padding-bottom:0}.activity-item:not(:last-child)::before{content:"";position:absolute;left:15px;top:36px;bottom:0;width:2px;background:var(--border-color);border-radius:1px}.activity-icon{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in oklch,var(--text) 6%,transparent);color:var(--text-muted);position:relative;z-index:1;box-shadow:0 0 0 4px var(--bg-light)}.activity-icon svg{width:16px;height:16px}.activity-body{flex:1;min-width:0;padding-top:4px}.activity-message{margin:0;line-height:1.45;font-size:.95rem}.activity-meta{margin:2px 0 0;font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:var(--spacing-xxs)}.activity-meta .link{color:inherit}.activity-meta .link:hover{color:var(--accent)}.font-extrabold{font-weight:900!important}.font-bold{font-weight:700!important}.hidden{display:none!important}@media screen and (max-width:748px){.bulk-action-bar .btn{font-size:1.15rem}.mobile-only{display:inherit}.mobile-hidden{display:none}.grid-2,.grid-3{grid-template-columns:repeat(1,1fr)}#dashboard aside{width:100%}.flex-col-sm{flex-direction:column}}@media screen and (min-width:769px) and (max-width:1080px){.grid-3{grid-template-columns:repeat(2,1fr)}}form{display:flex;flex-direction:column;gap:12px}form .form-control{display:flex;flex-direction:column;gap:2px}form .form-control label{font-weight:700}form button{width:fit-content}form button[type=submit]{padding:var(--spacing-xs) var(--spacing-md)}.theme-picker{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xxs)}.theme-card{display:inline-flex;align-items:center;justify-content:center;padding:3px;border:1px solid transparent;border-radius:50%;cursor:pointer;transition:border-color .15s,box-shadow .15s}.theme-card:hover{border-color:var(--accent)}.theme-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.theme-card:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-card:has(input:disabled){cursor:not-allowed}.theme-card:has(input:disabled):hover{border-color:transparent}.theme-card:has(input:disabled) .theme-swatch{opacity:.55}.theme-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.theme-swatch{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--bg-light) 0 50%,var(--accent) 50% 100%);border:1px solid var(--border-color);flex-shrink:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{border-radius:50%;border:1px solid var(--border-color)}.bulk-element{width:24px}.bulk-hidden .bulk-element{display:none}.blog-section{display:flex;flex-direction:column;gap:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.blog-admin-bar{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.blog-empty{padding:var(--spacing-2xl) 0;display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:center}.blog-feature{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--spacing-xl);align-items:center;text-decoration:none;color:inherit;padding:var(--spacing-lg)}.blog-feature:focus,.blog-feature:hover{color:inherit}.blog-feature:focus .blog-feature-title,.blog-feature:hover .blog-feature-title{color:var(--accent-dark)}.blog-feature-media{aspect-ratio:16/10;overflow:hidden;border-radius:var(--border-radius);background:var(--bg);border:var(--card-border)}.blog-feature-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.blog-feature:hover .blog-feature-media img{transform:scale(1.03)}.blog-feature-body{display:flex;flex-direction:column;gap:var(--spacing-md)}.blog-feature-title{font-size:clamp(1.5rem, 3vw, 2.25rem);font-weight:900;line-height:1.15;letter-spacing:-.01em;margin:0;transition:color .2s}.blog-feature-excerpt{font-size:1.05rem;line-height:1.55;margin:0}@media (max-width:748px){.blog-feature{grid-template-columns:1fr;gap:var(--spacing-md)}}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-xl) var(--spacing-lg)}@media (max-width:1080px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.blog-grid{grid-template-columns:1fr}}.blog-card{display:flex;flex-direction:column;gap:var(--spacing-sm);text-decoration:none;color:inherit;padding:var(--spacing-md)}.blog-card:focus,.blog-card:hover{color:inherit;background:var(--bg-light)}.blog-card:focus .blog-card-title,.blog-card:hover .blog-card-title{color:var(--accent-dark)}.blog-card-media{aspect-ratio:16/10;overflow:hidden;border-radius:var(--border-radius);background:var(--bg);border:var(--card-border)}.blog-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.blog-card:focus .blog-card-media img,.blog-card:hover .blog-card-media img{transform:scale(1.04)}.blog-card-body{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:0 var(--spacing-xxs)}.blog-card-title{font-size:1.25rem;font-weight:900;line-height:1.25;margin:0;letter-spacing:-.005em;transition:color .2s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blog-card-excerpt{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.blog-meta{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:auto;padding-top:var(--spacing-xs)}.blog-tag{display:inline-block;width:fit-content;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:color-mix(in oklch,var(--accent) 14%,transparent);color:var(--accent-dark)}.blog-detail{max-width:760px;padding-top:var(--spacing-lg);padding-bottom:var(--spacing-2xl)}.blog-article-toolbar{margin-bottom:var(--spacing-lg)}.blog-article-toolbar .breadcrumbs{margin:0}.blog-article{display:flex;flex-direction:column;gap:var(--spacing-lg)}.blog-article-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.blog-article-meta{display:flex;align-items:center;gap:var(--spacing-xs)}.blog-article-title{font-size:clamp(1.75rem, 4vw, 2.5rem);font-weight:900;line-height:1.15;letter-spacing:-.015em;margin:0}.blog-article-cover{margin:0;overflow:hidden;border-radius:var(--border-radius);background:var(--bg)}.blog-article-cover img{width:100%;max-height:480px;object-fit:cover;display:block}.blog-article-body{display:flex;flex-direction:column;gap:var(--spacing-md);font-size:1.1rem;line-height:1.7}.blog-article-body p{margin:0}.blog-form textarea{resize:vertical;min-height:200px;font-family:var(--font-family);line-height:1.5}.menu{position:relative;display:inline-block}.menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid transparent;border-radius:var(--border-radius);color:var(--text);background:0 0;transition:background .2s}.menu>summary::-webkit-details-marker{display:none}.menu>summary::marker{content:""}.menu>summary:hover,.menu[open]>summary{background:color-mix(in oklch,var(--contrast-bg) 6%,transparent)}.menu>.menu-items{position:absolute;top:calc(100% + var(--spacing-xs));right:0;z-index:100;min-width:220px;display:flex;flex-direction:column;gap:2px;padding:var(--spacing-xs);background:var(--bg-light);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-lg)}.menu>.menu-items :is(button,a){width:100%;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid transparent;box-shadow:none;background:0 0;border-radius:var(--border-radius-sm);font-size:.9rem;font-weight:600;color:var(--text);text-align:left;text-decoration:none;cursor:pointer}.menu>.menu-items :is(button,a):hover{background:var(--bg)}.menu>.menu-items :is(button,a).danger{color:var(--danger-bg-dark);background:0 0}.menu>.menu-items :is(button,a).danger:hover{background:color-mix(in oklch,var(--danger-bg) 10%,transparent)}