:root{--color-bg:#f8f9fb;--color-surface:#fff;--color-border:#e2e5ea;--color-border-light:#eef0f3;--color-text:#1a1d23;--color-text-secondary:#5a5f6b;--color-text-muted:#8b909d;--color-primary:#3b5ccc;--color-primary-light:#ecf0fd;--color-primary-dark:#2a43a0;--color-accent:#0ea364;--color-accent-light:#e7f7ef;--color-warn:#d97706;--color-warn-light:#fef7e7;--color-danger:#d92d2d;--color-danger-light:#fef0f0;--color-code-bg:#1e2230;--color-code-text:#d6deeb;--color-code-border:#2d3344;--color-inline-code:#3b5ccc;--color-inline-code-bg:#ecf0fd;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.25;--leading-normal:1.6;--leading-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--sidebar-width:16rem;--content-max-w:48rem;--header-height:3.5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg)}img,svg{max-width:100%;display:block}a{color:var(--color-primary);text-decoration:none;transition:color .15s}a:hover{color:var(--color-primary-dark);text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight);color:var(--color-text)}h1{font-size:var(--text-4xl);margin-bottom:var(--space-6)}h2{font-size:var(--text-2xl);margin-top:var(--space-12);margin-bottom:var(--space-4)}h3{font-size:var(--text-xl);margin-top:var(--space-8);margin-bottom:var(--space-3)}h4{font-size:var(--text-lg);margin-top:var(--space-6);margin-bottom:var(--space-2)}h2+h3{margin-top:var(--space-6)}h3+h4{margin-top:var(--space-4)}p{margin-bottom:var(--space-4);color:var(--color-text-secondary)}strong{color:var(--color-text);font-weight:600}ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-6);color:var(--color-text-secondary)}li{margin-bottom:var(--space-2)}li:last-child{margin-bottom:0}blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);border-left:4px solid var(--color-primary);background:var(--color-primary-light);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary);font-style:italic}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-6) var(--space-5);z-index:10;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-header{margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-light)}.sidebar-header .logo{font-size:var(--text-lg);color:var(--color-text);align-items:center;gap:var(--space-2);font-weight:700;display:flex}.sidebar-header .logo-icon{font-size:1.4rem}.sidebar-header .subtitle{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.sidebar-nav{margin:0;padding:0;list-style:none}.sidebar-nav li{margin-bottom:var(--space-1)}.sidebar-nav a{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav a:hover{background:var(--color-primary-light);color:var(--color-primary);text-decoration:none}.sidebar-nav a.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.sidebar-nav .nav-icon{text-align:center;flex-shrink:0;width:1.25rem;font-size:1rem}.sidebar-section-title{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--space-6);margin-bottom:var(--space-2);padding-left:var(--space-3);font-weight:600}.main-content{margin-left:var(--sidebar-width);padding:var(--space-12) var(--space-16);max-width:calc(var(--content-max-w) + var(--space-16) * 2);flex:1}.page-header{margin-bottom:var(--space-10);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border-light)}.page-header h1{margin-bottom:var(--space-2)}.page-header .page-summary{font-size:var(--text-lg);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:36rem}.section-heading{font-size:var(--text-xl);color:var(--color-text);margin-top:var(--space-12);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-primary-light);font-weight:600}.section-subtitle{font-size:var(--text-base);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-6);line-height:1.6}.overview-page{animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.overview-hero{margin-bottom:var(--space-12)}.overview-hero h1{margin-bottom:var(--space-4);letter-spacing:-.02em;font-size:2.5rem;line-height:1.15}.overview-hero .hero-desc{font-size:var(--text-xl);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:40rem}.getting-started{margin-bottom:var(--space-8)}.getting-started p{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.getting-started-list{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));padding:0;list-style:none;display:grid}.getting-started-list li{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.getting-started-list li strong{color:var(--color-primary);margin-bottom:var(--space-1);display:block}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg)}.empty-state p{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-2)}.empty-state p:last-child{margin-bottom:0}.practices-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));display:grid}.practice-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);flex-direction:column;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.practice-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.practice-card .card-number{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2);font-weight:600;font-family:var(--font-mono)}.practice-card .card-icon{margin-bottom:var(--space-3);font-size:1.75rem;line-height:1}.practice-card .card-title{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-2);font-weight:600}.practice-card .card-summary{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);flex:1}code{font-family:var(--font-mono);font-size:.875em}:not(pre)>code{background:var(--color-inline-code-bg);color:var(--color-inline-code);border-radius:var(--radius-sm);white-space:nowrap;padding:.15em .4em;font-weight:500}pre{margin:var(--space-6) 0;padding:var(--space-5) var(--space-6);background:var(--color-code-bg);border:1px solid var(--color-code-border);border-radius:var(--radius-lg);line-height:1.6;overflow-x:auto}pre code{color:var(--color-code-text);white-space:pre;background:0 0;padding:0;font-size:.8125rem}.code-keyword{color:#c792ea;font-style:italic}.code-string{color:#c3e88d}.code-number{color:#f78c6c}.code-comment{color:#697098;font-style:italic}.code-type{color:#ffcb6b}.code-func{color:#82aaff}.code-op{color:#89ddff}.code-label{margin-top:var(--space-6);padding:var(--space-2) var(--space-6);background:var(--color-code-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-family:var(--font-sans);justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.code-label+pre{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.callout{margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);border-left:4px solid}.callout-do{background:var(--color-accent-light);border-color:var(--color-accent)}.callout-dont{background:var(--color-danger-light);border-color:var(--color-danger)}.callout-warn{background:var(--color-warn-light);border-color:var(--color-warn)}.callout-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2);font-weight:700}.callout-do .callout-label{color:var(--color-accent)}.callout-dont .callout-label{color:var(--color-danger)}.callout-warn .callout-label{color:var(--color-warn)}.callout p{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.callout p:last-child{margin-bottom:0}.callout pre{margin:var(--space-3) 0 0 0}hr{border:none;border-top:1px solid var(--color-border-light);margin:var(--space-8) 0}table{width:100%;margin:var(--space-6) 0;border-collapse:collapse;font-size:var(--text-sm)}th,td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light)}th{color:var(--color-text);background:var(--color-bg);font-weight:600}tr:last-child td{border-bottom:none}.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}@media (width<=960px){:root{--sidebar-width:14rem;--content-max-w:100%}.main-content{padding:var(--space-8) var(--space-6)}.practices-grid{grid-template-columns:1fr}}@media (width<=720px){.sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;padding:var(--space-4) var(--space-5);position:relative;bottom:auto}.app-layout{flex-direction:column}.main-content{padding:var(--space-6) var(--space-5);margin-left:0}.overview-hero h1{font-size:var(--text-3xl)}}
