:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#eef1f5;--color-bg-strong:#e2e6ec;--color-surface:#fff;--color-surface-raised:#fff;--color-surface-muted:#f4f6f9;--color-text:#0f172a;--color-text-strong:#0f172a;--color-text-muted:#4b5563;--color-border:#d4d9e2;--color-border-strong:#b8bfcc;--color-primary:#0b7e8a;--color-primary-strong:#096873;--color-primary-soft:#0b7e8a1f;--color-accent:#1d4ed8;--color-accent-soft:#dbeafe;--color-gold:#c0811a;--color-gold-soft:#fdf1cf;--color-danger:#dc2626;--color-danger-soft:#fee2e2;--color-warning:#d97706;--color-warning-soft:#fef3c7;--color-success:#15803d;--color-success-soft:#dcfce7;--shadow-sm:0 1px 3px #0000001a, 0 1px 2px #00000012;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 12px 40px #0000002e;--shadow-soft:var(--shadow-lg);--shadow-card:var(--shadow-sm);--shadow-hover:var(--shadow-md);--color-ink:var(--color-text-strong);--color-muted:var(--color-text-muted);--color-panel:var(--color-surface);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--transition:.18s ease;--sidebar-width:240px;--topbar-height:60px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif;--accent:var(--color-primary);--accent-hover:var(--color-primary-strong);--accent-dim:var(--color-primary-soft);--accent-text:var(--color-primary);--bg:var(--color-bg);--bg-secondary:var(--color-bg-strong);--surface:var(--color-surface);--surface-2:var(--color-surface-muted);--surface-hover:var(--color-surface-muted);--text:var(--color-text);--text-sub:var(--color-text);--text-muted:var(--color-text-muted);--border:var(--color-border);--border-strong:var(--color-border-strong);--input-bg:var(--color-surface-muted);--input-border:var(--color-border-strong);--input-focus:var(--color-primary);--card-bg:var(--color-surface);--sidebar-bg:var(--color-surface);--sidebar-nav:var(--color-text-muted);--sidebar-nav-active-bg:var(--color-primary-soft);--sidebar-nav-active:var(--color-primary);--badge-done-bg:var(--color-success-soft);--badge-done-text:var(--color-success);--badge-warn-bg:var(--color-warning-soft);--badge-warn-text:var(--color-warning);--badge-info-bg:var(--color-accent-soft);--badge-info-text:var(--color-accent);--badge-muted-bg:var(--color-surface-muted);--badge-muted-text:var(--color-text-muted)}[data-theme=dim]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0d1117;--color-bg-strong:#010409;--color-surface:#161b22;--color-surface-raised:#1c2128;--color-surface-muted:#0d1117;--color-text:#c9d1d9;--color-text-strong:#e6edf3;--color-text-muted:#8b949e;--color-border:#30363d;--color-border-strong:#484f58;--color-primary:#3dcfdb;--color-primary-strong:#2bb8c4;--color-primary-soft:#3dcfdb1f;--color-accent-soft:#1e3a5f;--color-gold-soft:#2d2210;--color-danger-soft:#2d1010;--color-warning-soft:#2d1f00;--color-success-soft:#0d2818}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#000;--color-bg-strong:#000;--color-surface:#111;--color-surface-raised:#1a1a1a;--color-surface-muted:#111;--color-text:#f5f5f5;--color-text-strong:#fff;--color-text-muted:#a0a0a0;--color-border:#1f1f1f;--color-border-strong:#2a2a2a;--color-primary:#3dcfdb;--color-primary-strong:#2bb8c4;--color-primary-soft:#3dcfdb1f;--color-accent-soft:#0a1628;--color-gold-soft:#1a1200;--color-danger-soft:#1a0000;--color-warning-soft:#1a1000;--color-success-soft:#001a08}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background var(--transition), color var(--transition);margin:0;font-size:.9375rem;line-height:1.5;overflow-x:hidden}body.preload,body.preload *{transition:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,select,input,textarea{color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #2563eb47}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-boundary{place-items:center;min-height:60vh;padding:2rem;display:grid}.error-boundary__card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;max-width:28rem;box-shadow:var(--shadow-soft);text-align:center;gap:1rem;padding:2rem;display:grid}.error-boundary__title{color:var(--color-text-strong);margin:0;font-size:1.2rem}.error-boundary__message{color:var(--color-text-muted);word-break:break-word;margin:0;font-size:.9rem}.error-boundary__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.error-boundary__btn{border:1px solid var(--color-border);background:var(--color-surface);min-height:2.25rem;color:var(--color-text);font:inherit;cursor:pointer;border-radius:8px;align-items:center;padding:0 1rem;font-weight:800;transition:border-color .15s,color .15s;display:inline-flex}.error-boundary__btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.error-boundary__link{color:var(--color-primary);font-size:.9rem;font-weight:800;text-decoration:none}.error-boundary__link:hover{text-decoration:underline}:root{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .95rem + .25vw, 1.125rem);--text-md:clamp(1.125rem, 1rem + .4vw, 1.25rem);--text-lg:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--text-xl:clamp(1.5rem, 1.3rem + .8vw, 2rem);--text-2xl:clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);--text-3xl:clamp(2rem, 1.7rem + 1.5vw, 3rem);--text-4xl:clamp(2.5rem, 2rem + 2.5vw, 4.5rem);--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-strong);margin-top:0;margin-bottom:.65em}h1,.h1{font-size:var(--text-4xl);letter-spacing:var(--tracking-tighter);font-weight:800}h2,.h2{font-size:var(--text-3xl)}h3,.h3{font-size:var(--text-2xl)}h4,.h4{font-size:var(--text-xl)}h5,.h5{font-size:var(--text-lg);letter-spacing:var(--tracking-normal);font-weight:600}h6,.h6{font-size:var(--text-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:600}p{max-width:65ch;margin-top:0;margin-bottom:1.25em}.lead:first-letter,.drop-cap:first-letter{float:left;color:var(--color-primary);padding-right:.1em;font-size:3.5em;font-weight:700;line-height:.8}.lead{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text-muted);font-weight:400}strong,b{color:var(--color-text-strong);font-weight:700}em,i{font-style:italic}small,.text-small{font-size:var(--text-sm)}.text-muted{color:var(--color-text-muted)}a{color:var(--color-primary);text-underline-offset:.2em;transition:color var(--transition), text-underline-offset var(--transition);text-decoration:underline;text-decoration-thickness:.08em}a:hover{color:var(--color-primary-strong);text-underline-offset:.3em}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}ul,ol{margin-top:0;margin-bottom:1.25em;padding-left:1.5em}li{margin-bottom:.35em}li::marker{color:var(--color-primary)}blockquote{border-left:4px solid var(--color-primary);background:var(--color-primary-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;font-family:Georgia,Cambria,Times New Roman,Times,serif;font-size:var(--text-lg);color:var(--color-text-muted);margin:1.5em 0;padding:1em 1.5em;font-style:italic}blockquote p:last-child{margin-bottom:0}blockquote cite{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);margin-top:.75em;font-style:normal;font-weight:600;display:block}blockquote cite:before{content:"— "}code,kbd,samp{background:var(--color-surface-muted);border-radius:var(--radius-sm);color:var(--color-text-strong);padding:.2em .4em;font-family:SFMono-Regular,Fira Code,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:.9em}pre{background:var(--color-bg-strong);color:var(--color-text-strong);border-radius:var(--radius-lg);font-family:SFMono-Regular,Fira Code,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:var(--text-sm);line-height:var(--leading-relaxed);border:1px solid var(--color-border);margin-bottom:1.25em;padding:1.25em;overflow-x:auto}pre code{font-size:inherit;color:inherit;background:0 0;padding:0}::selection{background:var(--color-primary);color:#fff}hr{background:linear-gradient(to right, transparent, var(--color-border), transparent);border:0;height:1px;margin:2.5em 0}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.font-mono{font-family:SFMono-Regular,Fira Code,Consolas,Liberation Mono,Menlo,Courier,monospace}.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.tracking-tighter{letter-spacing:var(--tracking-tighter)}.tracking-tight{letter-spacing:var(--tracking-tight)}.tracking-normal{letter-spacing:var(--tracking-normal)}.tracking-wide{letter-spacing:var(--tracking-wide)}.tracking-wider{letter-spacing:var(--tracking-wider)}.tracking-widest{letter-spacing:var(--tracking-widest)}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:var(--leading-none)}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.leading-loose{line-height:var(--leading-loose)}.balance{text-wrap:balance}
