:root{--color-primary-50: oklch(97% .05 125);--color-primary-100: oklch(93% .08 125);--color-primary-200: oklch(88% .12 125);--color-primary-300: oklch(83% .15 125);--color-primary-400: oklch(81% .17 125);--color-primary-500: oklch(72% .17 125);--color-primary-600: oklch(62% .16 125);--color-primary-700: oklch(52% .14 125);--color-primary-800: oklch(42% .11 125);--color-primary-900: oklch(32% .08 125);--color-primary: var(--color-primary-400);--color-primary-light: var(--color-primary-200);--color-primary-dark: var(--color-primary-700);--color-secondary-50: oklch(97% .04 160);--color-secondary-100: oklch(93% .07 160);--color-secondary-200: oklch(88% .1 160);--color-secondary-300: oklch(78% .13 160);--color-secondary-400: oklch(68% .14 160);--color-secondary-500: oklch(58% .13 160);--color-secondary-600: oklch(48% .11 160);--color-secondary-700: oklch(40% .09 160);--color-secondary-800: oklch(32% .07 160);--color-secondary-900: oklch(24% .05 160);--color-secondary: var(--color-secondary-400);--color-secondary-light: var(--color-secondary-200);--color-secondary-dark: var(--color-secondary-600);--color-accent-50: oklch(97% .03 245);--color-accent-100: oklch(93% .06 245);--color-accent-200: oklch(85% .1 245);--color-accent-300: oklch(75% .14 245);--color-accent-400: oklch(65% .17 245);--color-accent-500: oklch(55% .18 245);--color-accent-600: oklch(45% .16 245);--color-accent-700: oklch(35% .12 245);--color-accent-800: oklch(28% .09 245);--color-accent-900: oklch(20% .06 245);--color-accent: var(--color-accent-400);--color-accent-light: var(--color-accent-200);--color-accent-dark: var(--color-accent-600);--color-success-50: oklch(97% .04 145);--color-success-100: oklch(93% .08 145);--color-success-400: oklch(65% .18 145);--color-success-500: oklch(55% .16 145);--color-success-600: oklch(45% .14 145);--color-success-700: oklch(38% .12 145);--color-success-800: oklch(30% .09 145);--color-success-900: oklch(22% .06 145);--color-success: var(--color-success-500);--color-warning-50: oklch(97% .04 85);--color-warning-100: oklch(93% .1 85);--color-warning-400: oklch(80% .16 85);--color-warning-500: oklch(75% .17 85);--color-warning-600: oklch(65% .16 85);--color-warning: var(--color-warning-500);--color-error-50: oklch(97% .02 25);--color-error-100: oklch(93% .06 25);--color-error-400: oklch(65% .22 25);--color-error-500: oklch(55% .22 25);--color-error-600: oklch(45% .18 25);--color-error: var(--color-error-500);--color-neutral-0: oklch(100% 0 0);--color-neutral-50: oklch(98% .005 125);--color-neutral-100: oklch(95% .008 125);--color-neutral-200: oklch(90% .01 125);--color-neutral-300: oklch(82% .012 125);--color-neutral-400: oklch(70% .01 125);--color-neutral-500: oklch(55% .008 125);--color-neutral-600: oklch(45% .008 125);--color-neutral-700: oklch(35% .008 125);--color-neutral-800: oklch(25% .008 125);--color-neutral-900: oklch(15% .008 125);--color-neutral-1000: oklch(0% 0 0);--color-background: var(--color-neutral-100);--color-surface: var(--color-neutral-0);--color-text: var(--color-neutral-800);--color-text-secondary: var(--color-neutral-500);--color-text-muted: var(--color-neutral-400);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-sidebar-bg: var(--color-neutral-900);--color-sidebar-text: var(--color-neutral-200);--color-sidebar-hover: var(--color-neutral-800);--color-sidebar-active: var(--color-primary-700);--color-link: var(--color-accent-500);--color-link-hover: var(--color-accent-600);--gradient-primary: linear-gradient(135deg, var(--color-primary-400) 0%, var(--color-secondary-400) 100%);--gradient-accent: linear-gradient(135deg, var(--color-accent-400) 0%, var(--color-accent-600) 100%);--shadow-sm: 0 1px 2px oklch(0% 0 0 / .05);--shadow-md: 0 4px 6px oklch(0% 0 0 / .07), 0 2px 4px oklch(0% 0 0 / .05);--shadow-lg: 0 10px 15px oklch(0% 0 0 / .1), 0 4px 6px oklch(0% 0 0 / .05);--shadow-xl: 0 20px 25px oklch(0% 0 0 / .1), 0 10px 10px oklch(0% 0 0 / .04);--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px}@supports not (color: oklch(0% 0 0)){:root{--color-primary-50: #f4fae6;--color-primary-100: #e8f5cc;--color-primary-200: #d4eb9f;--color-primary-300: #bfe073;--color-primary-400: #a9d65f;--color-primary-500: #8bc34a;--color-primary-600: #6fa239;--color-primary-700: #558029;--color-primary-800: #3d5e1c;--color-primary-900: #263c11;--color-secondary-50: #e6f7f4;--color-secondary-100: #ccefea;--color-secondary-200: #99dfd5;--color-secondary-300: #4dc9b5;--color-secondary-400: #26a69a;--color-secondary-500: #009688;--color-secondary-600: #00796b;--color-secondary-700: #004d40;--color-accent-50: #ede7f6;--color-accent-100: #d1c4e9;--color-accent-200: #b39ddb;--color-accent-300: #9575cd;--color-accent-400: #7e57c2;--color-accent-500: #673ab7;--color-accent-600: #5e35b1;--color-accent-700: #4527a0;--color-success-500: #4caf50;--color-warning-500: #ff9800;--color-error-500: #f44336;--color-neutral-0: #ffffff;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #eeeeee;--color-neutral-300: #e0e0e0;--color-neutral-400: #bdbdbd;--color-neutral-500: #9e9e9e;--color-neutral-600: #757575;--color-neutral-700: #616161;--color-neutral-800: #424242;--color-neutral-900: #212121}}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-background)}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover);text-decoration:underline}button{font-family:inherit}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.bg-primary{background-color:var(--color-primary)}.bg-surface{background-color:var(--color-surface)}.bg-background{background-color:var(--color-background)}:root{--touch-target-min: 48px;--touch-target-comfortable: 56px;--content-padding: var(--spacing-4);--card-padding: var(--spacing-4);--section-gap: var(--spacing-4);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--sidebar-width: 240px;--sidebar-collapsed-width: 0px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px)}@media(min-width:640px){:root{--content-padding: var(--spacing-6);--card-padding: var(--spacing-5);--section-gap: var(--spacing-6)}}@media(min-width:1024px){:root{--content-padding: var(--spacing-8);--card-padding: var(--spacing-6);--section-gap: var(--spacing-8)}}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}button,a,input,select,textarea,[role=button]{min-height:var(--touch-target-min);-webkit-tap-highlight-color:transparent}button:not(.icon-button){min-width:var(--touch-target-min);padding:var(--spacing-3) var(--spacing-4)}input,select,textarea{min-height:var(--touch-target-min);font-size:var(--font-size-base);padding:var(--spacing-3)}h1{font-size:var(--font-size-2xl);line-height:1.2;margin:0 0 var(--spacing-4)}h2{font-size:var(--font-size-xl);line-height:1.3;margin:0 0 var(--spacing-3)}h3{font-size:var(--font-size-lg);line-height:1.4;margin:0 0 var(--spacing-2)}p{font-size:var(--font-size-base);line-height:1.6;margin:0 0 var(--spacing-4)}@media(min-width:640px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}}.mobile-only{display:block}.desktop-only,.tablet-up{display:none}@media(min-width:640px){.tablet-up{display:block}}@media(min-width:1024px){.mobile-only{display:none}.desktop-only{display:block}}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--card-padding);box-shadow:var(--shadow-sm)}.grid{display:grid;gap:var(--section-gap);grid-template-columns:1fr}@media(min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.safe-area-top{padding-top:var(--safe-area-top)}.safe-area-bottom{padding-bottom:var(--safe-area-bottom)}.safe-area-all{padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right)}@media(max-width:639px){::-webkit-scrollbar{width:0;height:0}}@media(min-width:640px){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skeleton{background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;justify-content:space-around;padding:var(--spacing-2) 0;padding-bottom:calc(var(--spacing-2) + var(--safe-area-bottom));z-index:100}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:var(--spacing-1);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-xs);transition:color .2s}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item .nav-icon{font-size:1.5rem;margin-bottom:2px}@media(min-width:1024px){.bottom-nav{display:none}}
