:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: .9375rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-xl: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--color-bg: #ffffff;--color-surface: #fafafa;--color-surface-elevated: #ffffff;--color-border: #e5e5e5;--color-border-subtle: #f5f5f5;--color-text: #171717;--color-text-secondary: #525252;--color-text-muted: #737373;--color-text-disabled: #a3a3a3;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-light: #dbeafe;--color-accent-dark: #1e40af;--color-success: #10b981;--color-success-bg: #d1fae5;--color-success-text: #065f46;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-error: #ef4444;--color-error-bg: #fee2e2;--color-error-text: #991b1b;--color-info: #3b82f6;--color-info-bg: #dbeafe;--color-info-text: #1e40af;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-tooltip: 500}@media(prefers-color-scheme:dark){:root{--color-bg: #0a0a0a;--color-surface: #141414;--color-surface-elevated: #1a1a1a;--color-border: #262626;--color-border-subtle: #1f1f1f;--color-text: #fafafa;--color-text-secondary: #a3a3a3;--color-text-muted: #737373;--color-text-disabled: #525252;--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-accent-light: #1e3a8a;--color-accent-dark: #60a5fa;--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .1);--color-success-text: #6ee7b7;--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-warning-text: #fbbf24;--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .1);--color-error-text: #fca5a5;--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .1);--color-info-text: #93c5fd}}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans Thai,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text);background:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-8)}h2{font-size:var(--font-size-xl);margin-top:var(--space-16);margin-bottom:var(--space-6)}h2:first-of-type{margin-top:var(--space-12)}h3{font-size:var(--font-size-lg);margin-top:var(--space-10);margin-bottom:var(--space-4)}h4{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-top:var(--space-8);margin-bottom:var(--space-4);color:var(--color-text)}p{margin-bottom:var(--space-5);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}ul,ol{margin-left:var(--space-7);margin-bottom:var(--space-7);padding-left:var(--space-2)}li{margin-bottom:var(--space-3);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}li strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}ul li::marker{color:var(--color-accent)}ul ul,ol ol{margin-top:var(--space-2);margin-bottom:var(--space-2)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover);text-decoration:underline}code{font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:var(--font-size-sm);background:var(--color-surface);color:var(--color-accent);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border)}pre{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);overflow-x:auto;margin-bottom:var(--space-8);line-height:var(--line-height-relaxed)}pre code{background:none;padding:0;color:var(--color-text);border:none}section{margin-bottom:var(--space-10)}section:last-child{margin-bottom:0}@media(max-width:768px){h1{font-size:var(--font-size-xl);margin-bottom:var(--space-6)}h2{font-size:var(--font-size-lg);margin-top:var(--space-12);margin-bottom:var(--space-5)}h2:first-of-type{margin-top:var(--space-8)}h3{font-size:var(--font-size-md);margin-top:var(--space-8);margin-bottom:var(--space-3)}h4{font-size:var(--font-size-base);margin-top:var(--space-6)}p{margin-bottom:var(--space-4);font-size:var(--font-size-sm)}ul,ol{margin-left:var(--space-5);margin-bottom:var(--space-5)}pre{padding:var(--space-4);font-size:var(--font-size-xs);margin-bottom:var(--space-6)}section{margin-bottom:var(--space-8)}}.container{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-8) var(--space-5);position:fixed;height:100vh;overflow-y:auto;overflow-x:hidden}.logo{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-12);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}.mobile-bar{display:flex;align-items:center;justify-content:space-between}.mobile-toggle{display:none;width:40px;height:36px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.mobile-toggle .bar{display:block;width:18px;height:2px;background:var(--color-text);position:relative}.mobile-toggle .bar:before,.mobile-toggle .bar:after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--color-text)}.mobile-toggle .bar:before{top:-6px}.mobile-toggle .bar:after{top:6px}@media(max-width:768px){.mobile-bar{margin-bottom:var(--space-3)}.mobile-toggle{display:inline-flex}.logo{margin-bottom:0}}.nav-section{margin-bottom:var(--space-8)}.nav-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-3);padding-left:var(--space-2)}.nav-link{display:block;padding:var(--space-2);margin-bottom:var(--space-1);text-decoration:none;color:var(--color-text-secondary);transition:color var(--transition-fast);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.nav-link:hover{color:var(--color-text)}.nav-link.active{color:var(--color-accent);font-weight:var(--font-weight-medium)}.nav-link.has-submenu{position:relative}.nav-link.has-submenu:after{content:"▼";font-size:10px;margin-left:var(--space-2);transition:transform var(--transition-base);display:inline-block}.nav-link.has-submenu.expanded:after{transform:rotate(180deg)}.submenu{max-height:0;overflow:hidden;transition:max-height var(--transition-slow) ease-out;padding-left:var(--space-4)}.submenu.expanded{max-height:500px}.submenu-link{display:block;padding:var(--space-2) var(--space-2);margin-bottom:2px;text-decoration:none;color:var(--color-text-muted);font-size:var(--font-size-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.submenu-link:hover{color:var(--color-text-secondary);background:#00000005}@media(prefers-color-scheme:dark){.submenu-link:hover{background:#ffffff05}}.submenu-link.active{color:var(--color-accent);font-weight:var(--font-weight-medium)}.main{flex:1;margin-left:220px}.content{padding:var(--space-12);max-width:820px;margin:0 auto}.content>h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--space-8);margin-top:0}@media(max-width:1024px){.sidebar{width:200px;padding:var(--space-8) var(--space-5)}.main{margin-left:200px}.content{padding:var(--space-12) var(--space-10)}}@media(max-width:768px){.container{flex-direction:column}.sidebar{position:sticky;top:0;z-index:50;width:100%;height:auto;border-right:none;border-bottom:1px solid var(--color-border);padding:var(--space-5) var(--space-6);background:var(--color-surface);backdrop-filter:saturate(140%) blur(6px);-webkit-backdrop-filter:saturate(140%) blur(6px);box-shadow:0 1px #0000000a}.mobile-toggle{display:inline-flex}.sidebar .nav-section{display:none}.sidebar.mobile-open .nav-section{display:block}.logo{margin-bottom:0}.main{margin-left:0}.content>h1{font-size:var(--font-size-xl)}.content{padding:var(--space-8) var(--space-5)}}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.grid{display:grid;gap:var(--space-5);margin-bottom:var(--space-8)}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.container-narrow{max-width:900px;margin:0 auto}@media(max-width:768px){.grid-auto-fit{grid-template-columns:1fr}.container-narrow{max-width:100%;padding:0 var(--space-4)}}.card[data-astro-cid-dohjnao5]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-6)}.card-bordered[data-astro-cid-dohjnao5]{border-left:3px solid var(--color-accent)}.card-elevated[data-astro-cid-dohjnao5]{box-shadow:var(--shadow-sm)}.card-padding-sm[data-astro-cid-dohjnao5]{padding:var(--space-4)}.card-padding-md[data-astro-cid-dohjnao5]{padding:var(--space-6)}.card-padding-lg[data-astro-cid-dohjnao5]{padding:var(--space-8)}.card>h3,.card>h4{margin-top:0;border-bottom:none;padding-bottom:0}.card>h3:first-child,.card>h4:first-child{margin-top:0}.card>h3+h4{margin-top:var(--space-6)}@media(max-width:768px){.card-padding-sm[data-astro-cid-dohjnao5]{padding:var(--space-3)}.card-padding-md[data-astro-cid-dohjnao5]{padding:var(--space-4)}.card-padding-lg[data-astro-cid-dohjnao5]{padding:var(--space-5)}.card[data-astro-cid-dohjnao5]{margin-bottom:var(--space-4)}}.toc[data-astro-cid-qw4gscv3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-5);margin:var(--space-6) 0 var(--space-8)}.toc-title[data-astro-cid-qw4gscv3]{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.toc[data-astro-cid-qw4gscv3] ul[data-astro-cid-qw4gscv3]{list-style:none;margin:0;padding:0}.toc[data-astro-cid-qw4gscv3] li[data-astro-cid-qw4gscv3]{margin:6px 0}.toc[data-astro-cid-qw4gscv3] a[data-astro-cid-qw4gscv3]{color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm)}.toc[data-astro-cid-qw4gscv3] a[data-astro-cid-qw4gscv3]:hover{color:var(--color-accent);text-decoration:underline}.toc[data-astro-cid-qw4gscv3] .indent[data-astro-cid-qw4gscv3]{padding-left:16px}@media(max-width:768px){.toc[data-astro-cid-qw4gscv3]{padding:var(--space-4);margin:var(--space-5) 0 var(--space-6)}.toc[data-astro-cid-qw4gscv3] ul[data-astro-cid-qw4gscv3]{max-height:200px;overflow-y:auto}}
