:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-brand-50:#eef4ff;--color-brand-100:#d9e6ff;--color-brand-300:#8fb3ff;--color-brand-500:#2952cc;--color-brand-600:#1e3ea8;--color-brand-700:#162e84;--color-neutral-0:#fff;--color-neutral-50:#f4f5f7;--color-neutral-100:#e6e8ed;--color-neutral-200:#d0d3da;--color-neutral-300:#a8adb9;--color-neutral-500:#5c6270;--color-neutral-700:#383c47;--color-neutral-900:#1a1d23;--color-success:#1a7a42;--color-warning:#b86e0a;--color-danger:#b82d25;--color-gold:#9e720a;--color-purple:#6045d4;--color-bg:var(--color-neutral-50);--color-surface:var(--color-neutral-0);--color-text:var(--color-neutral-900);--color-text-muted:var(--color-neutral-500);--color-text-faint:var(--color-neutral-300);--color-border:var(--color-neutral-100);--color-accent:var(--color-brand-500);--color-accent-hover:var(--color-brand-600);--font-family-base:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--shadow-sm:0 1px 3px #1a1d231a;--shadow-md:0 4px 16px #1a1d2324;--breakpoint-sm:640px;--breakpoint-md:768px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-brand-500:#6b94ff;--color-brand-600:#4d7aff;--color-brand-700:#3361e0;--color-neutral-0:#1c1f27;--color-neutral-50:#222630;--color-neutral-100:#2e3344;--color-neutral-200:#3a4057;--color-success:#3db869;--color-warning:#e89a30;--color-danger:#f05a50;--color-gold:#d4a020;--color-purple:#9c7ef5;--color-bg:#13151a;--color-surface:#1c1f27;--color-text:#e8eaf0;--color-text-muted:#9aa0b2;--color-text-faint:#5a6070;--color-border:#2a2f3d;--color-accent:var(--color-brand-500);--color-accent-hover:var(--color-brand-600);--shadow-sm:0 1px 3px #00000059;--shadow-md:0 4px 16px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-brand-500:#6b94ff;--color-brand-600:#4d7aff;--color-brand-700:#3361e0;--color-neutral-0:#1c1f27;--color-neutral-50:#222630;--color-neutral-100:#2e3344;--color-neutral-200:#3a4057;--color-success:#3db869;--color-warning:#e89a30;--color-danger:#f05a50;--color-gold:#d4a020;--color-purple:#9c7ef5;--color-bg:#13151a;--color-surface:#1c1f27;--color-text:#e8eaf0;--color-text-muted:#9aa0b2;--color-text-faint:#5a6070;--color-border:#2a2f3d;--color-accent:var(--color-brand-500);--color-accent-hover:var(--color-brand-600);--shadow-sm:0 1px 3px #00000059;--shadow-md:0 4px 16px #00000080}}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;border:1px solid #0000;min-width:44px;min-height:44px;transition:background-color .12s;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-accent);color:var(--color-neutral-0)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-border)}select.btn-secondary{background-color:var(--color-surface)}select.btn-secondary option{background-color:var(--color-surface);color:var(--color-text)}select.btn-secondary option:checked{background-color:var(--color-accent);color:var(--color-neutral-0)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-block{width:100%}.btn-rating{font-weight:var(--font-weight-bold);border-width:2px}.btn-rating:focus-visible{outline-offset:2px;outline:2px solid}.btn-rating-again{background:color-mix(in srgb, var(--color-danger) 14%, transparent);border-color:color-mix(in srgb, var(--color-danger) 45%, transparent);color:var(--color-danger)}.btn-rating-again:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 24%, transparent)}.btn-rating-hard{background:color-mix(in srgb, var(--color-warning) 14%, transparent);border-color:color-mix(in srgb, var(--color-warning) 45%, transparent);color:var(--color-warning)}.btn-rating-hard:hover:not(:disabled){background:color-mix(in srgb, var(--color-warning) 24%, transparent)}.btn-rating-good{background:color-mix(in srgb, var(--color-success) 14%, transparent);border-color:color-mix(in srgb, var(--color-success) 45%, transparent);color:var(--color-success)}.btn-rating-good:hover:not(:disabled){background:color-mix(in srgb, var(--color-success) 24%, transparent)}.btn-rating-easy{background:color-mix(in srgb, var(--color-brand-500) 14%, transparent);border-color:color-mix(in srgb, var(--color-brand-500) 45%, transparent);color:var(--color-brand-600)}.btn-rating-easy:hover:not(:disabled){background:color-mix(in srgb, var(--color-brand-500) 24%, transparent)}.badge{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:.125rem var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;display:inline-flex}.badge-neutral{background:var(--color-neutral-100);color:var(--color-text-muted)}.badge-success{background:color-mix(in srgb, var(--color-success) 16%, transparent);color:var(--color-success)}.badge-warning{background:color-mix(in srgb, var(--color-warning) 16%, transparent);color:var(--color-warning)}.badge-danger{background:color-mix(in srgb, var(--color-danger) 16%, transparent);color:var(--color-danger)}.badge-gold{background:color-mix(in srgb, var(--color-gold) 18%, transparent);color:var(--color-gold)}.badge-purple{background:color-mix(in srgb, var(--color-purple) 16%, transparent);color:var(--color-purple)}.badge-blue{background:color-mix(in srgb, var(--color-brand-500) 16%, transparent);color:var(--color-brand-600)}.heatmap-cell{transition:opacity .15s;display:inline-block}.heatmap-cell:hover{opacity:.85}.heatmap-cell-empty{border-radius:var(--radius-sm);background:var(--color-neutral-50);width:28px;height:28px}.quick-action-card{align-items:flex-start;gap:var(--space-2);text-align:left;width:100%;font:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);cursor:pointer;flex-direction:column;transition:box-shadow .12s,border-color .12s;display:flex;position:relative}.quick-action-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.quick-action-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.quick-action-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 14%, transparent);width:40px;height:40px;color:var(--color-accent);justify-content:center;align-items:center;display:inline-flex}.quick-action-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.quick-action-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.quick-action-badge{top:var(--space-3);right:var(--space-3);position:absolute}.progress-track{background:var(--color-neutral-100);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-fill{background:var(--color-accent);border-radius:999px;height:100%;transition:width .2s}.domain-row{align-items:center;gap:var(--space-3);display:flex}.domain-row-label{min-width:9rem;font-size:var(--font-size-sm);color:var(--color-text-muted);flex:none}.domain-row-track{background:var(--color-neutral-100);border-radius:999px;flex:auto;height:10px;overflow:hidden}.domain-row-fill{border-radius:999px;height:100%}.domain-row-value{text-align:right;width:3rem;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;flex:none}.topic-summary-list{gap:var(--space-2);flex-direction:column;display:flex}.topic-summary-row{align-items:center;gap:var(--space-3);display:flex}button.topic-summary-row{text-align:left;width:100%;font:inherit;color:inherit;border-radius:var(--radius-sm);padding:var(--space-2);cursor:pointer;background:0 0;border:none}button.topic-summary-row:hover{background:var(--color-border)}button.topic-summary-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.topic-summary-bar-track{background:var(--color-neutral-100);border-radius:999px;flex:auto;width:100%;height:8px;overflow:hidden}.topic-summary-bar-fill{border-radius:999px;height:100%}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-neutral-100) 25%, var(--color-neutral-50) 37%, var(--color-neutral-100) 63%);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.toast-host{bottom:var(--space-6);right:var(--space-6);gap:var(--space-2);z-index:1000;flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-2);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-3) var(--space-4);max-width:22rem;font-size:var(--font-size-sm);display:flex}.toast-icon{color:var(--color-danger);flex:none;margin-top:.125rem}.flip-card-scene{perspective:1200px}.flip-card{width:100%;min-height:220px;font:inherit;text-align:inherit;color:inherit;transform-style:preserve-3d;background:0 0;border:none;padding:0;transition:transform .3s;display:block;position:relative}.flip-card.is-flipped{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.flip-card{transition:none}}.flip-card-face{text-align:center;padding:var(--space-6);backface-visibility:hidden;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flip-card-face-back{transform:rotateY(180deg)}.empty-state{text-align:left;color:var(--color-text-muted);padding:var(--space-8) 0}.empty-state-panel{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-muted);flex-direction:column;display:flex}.empty-state-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 14%, transparent);width:48px;height:48px;color:var(--color-accent);justify-content:center;align-items:center;display:inline-flex}.empty-state-message{max-width:32rem;color:var(--color-text);margin:0}.empty-state-secondary{font-size:var(--font-size-sm);margin:0}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}.page-fade{animation:.15s page-fade-in}@media (prefers-reduced-motion:reduce){.page-fade{animation:none}}.markdown-doc{line-height:1.6}.markdown-doc h1,.markdown-doc h2,.markdown-doc h3{margin-top:var(--space-8);margin-bottom:var(--space-3);scroll-margin-top:var(--space-6)}.markdown-doc h1:first-child{margin-top:0}.markdown-doc p,.markdown-doc ul,.markdown-doc ol{margin:var(--space-3) 0}.markdown-doc blockquote{margin:var(--space-4) 0;padding:var(--space-2) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-bg);color:var(--color-text-muted)}.markdown-doc code{background:var(--color-bg);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.9em}.markdown-doc pre{background:var(--color-bg);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto}.markdown-doc pre code{background:0 0;padding:0}.markdown-doc table{border-collapse:collapse;width:100%;margin:var(--space-4) 0;font-size:var(--font-size-sm)}.markdown-doc th,.markdown-doc td{border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left}.markdown-doc th{background:var(--color-bg)}.markdown-doc hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.markdown-doc a{color:var(--color-accent)}.app-shell{min-height:100%;display:flex}.app-topbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);z-index:20;display:none;position:sticky;top:0}.app-topbar-title{font-size:var(--font-size-lg);margin:0}.app-nav-toggle{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text);font-size:var(--font-size-lg);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}.app-nav-toggle:hover{background:var(--color-border)}.app-nav-toggle:focus-visible,.app-nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-sidebar{gap:var(--space-6);width:240px;padding:var(--space-6) var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;flex:0 0 240px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.app-sidebar-title{font-size:var(--font-size-lg);margin:0}.app-nav-section{gap:var(--space-2);flex-direction:column;display:flex}.app-nav-heading{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:0 var(--space-2)}.app-nav-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app-nav-link{min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);align-items:center;text-decoration:none;display:flex}.app-nav-link:hover{background:var(--color-border)}.app-nav-link.is-active{background:color-mix(in srgb, var(--color-accent) 14%, transparent);color:var(--color-accent)}.app-sidebar-user{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;margin-top:auto;display:flex}.app-sidebar-email{font-size:var(--font-size-sm);color:var(--color-text-muted);word-break:break-all}.app-sidebar-version{color:var(--color-text-faint);letter-spacing:.03em;margin-bottom:var(--space-2);font-size:.6875rem;display:block}.app-main{min-width:0;padding:var(--space-6);flex:auto}.app-nav-scrim{display:none}@media (width<=640px){.app-topbar{display:flex}.app-sidebar-title{display:none}.app-sidebar{z-index:30;height:100%;box-shadow:var(--shadow-md);display:none;position:fixed;inset:0 20% 0 0}.app-sidebar.is-open{display:flex}.app-nav-scrim{z-index:25;background:#0006;display:block;position:fixed;inset:0}.app-main{padding:var(--space-4)}}@media (width<=768px) and (width>=641px){.app-sidebar{width:200px;padding:var(--space-6) var(--space-3);flex:0 0 200px}.app-main{padding:var(--space-4)}}.admin-page{max-width:1200px;padding:var(--space-8) var(--space-4);gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}@media (width<=768px){.admin-page{padding:var(--space-6) var(--space-4)}}@media (width<=640px){.admin-page{padding:var(--space-4)}}.admin-items-stem{width:40%}.responsive-table{width:100%;overflow-x:auto}.responsive-table table{border-collapse:collapse;width:100%}@media (width<=640px){.responsive-table thead{display:none}.responsive-table-row{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);margin-bottom:var(--space-3);display:block}.responsive-table-row:last-child{margin-bottom:0}.responsive-table-cell{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);text-align:right;display:flex}.responsive-table-cell:last-child{border-bottom:none}.responsive-table-cell:before{content:attr(data-label);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-align:left;flex:none}}.app-sidebar-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.app-theme-toggle{border-radius:var(--radius-md);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;background:0 0;flex:0 0 36px;justify-content:center;align-items:center;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.app-theme-toggle:hover{background:var(--color-border);color:var(--color-text)}.app-theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-topbar .app-theme-toggle{margin-left:auto}@media (width<=640px){.app-sidebar .app-theme-toggle{display:none}}.coverage-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:760px}.coverage-table .num{text-align:right}.coverage-table .divider-cell{border-left:1px solid var(--color-neutral-200)}.coverage-table .doc-faint{color:var(--color-text-faint)}.coverage-helper{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.coverage-products{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.product-card{padding:var(--space-3) var(--space-4);cursor:default}.product-card .p-name{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.product-card .p-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.product-card .p-sub-empty{color:var(--color-text-faint)}.coverage-share{flex-direction:column;gap:4px;min-width:150px;display:flex}.coverage-caption{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap}.coverage-pct{color:var(--color-text);font-weight:600}.coverage-expected{color:var(--color-text-muted)}.coverage-delta.under{color:var(--color-danger);font-weight:700}.coverage-delta.over{color:var(--color-warning);font-weight:700}.coverage-dash{color:var(--color-text-faint)}.coverage-parent{color:var(--color-text-faint);font-size:var(--font-size-sm)}.coverage-bar{background:var(--color-border);border-radius:3px;height:6px;position:relative;overflow:visible}.coverage-bar-fill{background:var(--color-accent);border-radius:3px;height:100%}.coverage-bar-tick{background:var(--color-text);width:2px;position:absolute;top:-3px;bottom:-3px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-base);margin:0}button{font-family:inherit}
