:root{--color-primary:#0d2137;--color-primary-hover:#071321;--color-primary-light:#f0f4f8;--color-primary-contrast:#fff;--color-secondary:#b91c1c;--color-secondary-hover:#991b1b;--color-secondary-light:#fef2f2;--color-secondary-contrast:#fff;--color-accent:#f59e0b;--color-accent-light:#fef3c7;--color-accent-contrast:#0f172a;--color-warning:#b45309;--color-warning-light:#fef3c7;--color-danger:#b91c1c;--color-danger-light:#fee2e2;--color-success:#166534;--color-success-light:#dcfce7;--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-subtle:#f1f5f9;--bg-surface-elevated:#fff;--text-main:#0f172a;--text-muted:#475569;--text-inverse:#fff;--border-color:#cbd5e1;--border-subtle:#e2e8f0;--border-focus:#0d47a1;--font-family-base:"Open Sans", Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display:Georgia, "Playfair Display", "Times New Roman", Times, serif;--font-family-heading:Georgia, "Playfair Display", "Times New Roman", Times, serif;--font-size-base:1rem;--line-height-base:1.6;--letter-spacing-base:.01em;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #0000001f, 0 8px 10px -6px #0000000f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--focus-ring:3px solid #ff9800;--focus-offset:2px}[data-theme=contrast-yellow]{--bg-app:#000;--bg-surface:#121212;--bg-surface-subtle:#1e1e1e;--bg-surface-elevated:#242424;--color-primary:#ff0;--color-primary-hover:#fe0;--color-primary-light:#2d2d00;--color-primary-contrast:#000;--color-secondary:#0ff;--color-secondary-hover:#80ffff;--color-secondary-light:#033;--color-secondary-contrast:#000;--color-accent:#0f6;--color-accent-light:#003314;--color-accent-contrast:#000;--text-main:#fff;--text-muted:#e2e8f0;--text-inverse:#000;--border-color:#ff0;--border-subtle:#888;--border-focus:#0ff;--focus-ring:4px solid #0ff}[data-theme=contrast-light]{--bg-app:#fff;--bg-surface:#fff;--bg-surface-subtle:#f0f0f0;--bg-surface-elevated:#fff;--color-primary:#000;--color-primary-hover:#1f1f1f;--color-primary-light:#e5e5e5;--color-primary-contrast:#fff;--color-secondary:#b30000;--color-secondary-hover:maroon;--color-secondary-light:#fcc;--color-secondary-contrast:#fff;--text-main:#000;--text-muted:#111;--text-inverse:#fff;--border-color:#000;--border-subtle:#000;--border-focus:#000;--focus-ring:4px solid #000}[data-theme=dark]{--bg-app:#0b1329;--bg-surface:#132247;--bg-surface-subtle:#1e3160;--bg-surface-elevated:#243b73;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-light:#1e3a8a;--color-primary-contrast:#fff;--color-secondary:#ef4444;--color-secondary-hover:#f87171;--color-secondary-light:#7f1d1d;--color-secondary-contrast:#fff;--text-main:#f8fafc;--text-muted:#cbd5e1;--text-inverse:#0f172a;--border-color:#334155;--border-subtle:#1e293b;--border-focus:#60a5fa}[data-theme=contrast-yellow],.theme-contrast-yellow,[data-theme=contrast-yellow] *,.theme-contrast-yellow *,[data-theme=contrast-yellow] :before,.theme-contrast-yellow :before,[data-theme=contrast-yellow] :after,.theme-contrast-yellow :after{color:#ff0!important;box-shadow:none!important;text-shadow:none!important;background:#000!important;border-color:#ff0!important}[data-theme=contrast-yellow] a,.theme-contrast-yellow a,[data-theme=contrast-yellow] a *,.theme-contrast-yellow a *,[data-theme=contrast-yellow] button,.theme-contrast-yellow button,[data-theme=contrast-yellow] button *,.theme-contrast-yellow button *{color:#0ff!important}[data-theme=contrast-yellow] button,.theme-contrast-yellow button,[data-theme=contrast-yellow] .btn,.theme-contrast-yellow .btn,[data-theme=contrast-yellow] input,.theme-contrast-yellow input,[data-theme=contrast-yellow] select,.theme-contrast-yellow select,[data-theme=contrast-yellow] textarea,.theme-contrast-yellow textarea{background-color:#000!important;border:2px solid #0ff!important}[data-theme=contrast-yellow] button:hover,.theme-contrast-yellow button:hover,[data-theme=contrast-yellow] a:hover,.theme-contrast-yellow a:hover{color:#000!important;background-color:#0ff!important}[data-theme=contrast-yellow] .btn-primary,.theme-contrast-yellow .btn-primary,[data-theme=contrast-yellow] .btn-primary *,.theme-contrast-yellow .btn-primary *,[data-theme=contrast-yellow] button[class*=btn-primary],.theme-contrast-yellow button[class*=btn-primary]{color:#000!important;background-color:#ff0!important;border:2px solid #ff0!important;font-weight:900!important}[data-theme=contrast-light],.theme-contrast-light,[data-theme=contrast-light] *,.theme-contrast-light *,[data-theme=contrast-light] :before,.theme-contrast-light :before,[data-theme=contrast-light] :after,.theme-contrast-light :after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important;border-color:#000!important}[data-theme=contrast-light] a,.theme-contrast-light a,[data-theme=contrast-light] a *,.theme-contrast-light a *,[data-theme=contrast-light] button,.theme-contrast-light button,[data-theme=contrast-light] button *,.theme-contrast-light button *{color:#000!important}[data-theme=contrast-light] button,.theme-contrast-light button,[data-theme=contrast-light] .btn,.theme-contrast-light .btn,[data-theme=contrast-light] input,.theme-contrast-light input,[data-theme=contrast-light] select,.theme-contrast-light select,[data-theme=contrast-light] textarea,.theme-contrast-light textarea{background-color:#fff!important;border:2px solid #000!important}[data-theme=contrast-light] button:hover,.theme-contrast-light button:hover,[data-theme=contrast-light] a:hover,.theme-contrast-light a:hover{color:#fff!important;background-color:#000!important}[data-theme=contrast-light] .btn-primary,.theme-contrast-light .btn-primary,[data-theme=contrast-light] .btn-primary *,.theme-contrast-light .btn-primary *,[data-theme=contrast-light] button[class*=btn-primary],.theme-contrast-light button[class*=btn-primary]{color:#fff!important;background-color:#000!important;border:2px solid #000!important;font-weight:900!important}[data-theme=dark],.theme-dark,[data-theme=dark] body,.theme-dark body,[data-theme=dark] #root,.theme-dark #root,[data-theme=dark] .main-content,.theme-dark .main-content,[data-theme=dark] main,.theme-dark main,[data-theme=dark] section,.theme-dark section,[data-theme=dark] article,.theme-dark article{color:#f8fafc!important;background:#0b1329!important}[data-theme=dark] header,.theme-dark header,[data-theme=dark] nav,.theme-dark nav,[data-theme=dark] footer,.theme-dark footer,[data-theme=dark] aside,.theme-dark aside{color:#f8fafc!important;background:#060b18!important;border-color:#1e293b!important}[data-theme=dark] .card,.theme-dark .card,[data-theme=dark] div[style*=background],.theme-dark div[style*=background],[data-theme=dark] div[style*=border],.theme-dark div[style*=border],[data-theme=dark] div[style*=box-shadow],.theme-dark div[style*=box-shadow],[data-theme=dark] table,.theme-dark table,[data-theme=dark] tr,.theme-dark tr,[data-theme=dark] td,.theme-dark td,[data-theme=dark] th,.theme-dark th{color:#f8fafc!important;background:#132247!important;border-color:#334155!important}[data-theme=dark] h1,.theme-dark h1,[data-theme=dark] h2,.theme-dark h2,[data-theme=dark] h3,.theme-dark h3,[data-theme=dark] h4,.theme-dark h4,[data-theme=dark] h5,.theme-dark h5,[data-theme=dark] strong,.theme-dark strong,[data-theme=dark] b,.theme-dark b{color:#fff!important}[data-theme=dark] p,.theme-dark p,[data-theme=dark] span:not(.badge):not(.badge *):not(.btn):not(.btn *),.theme-dark span:not(.badge):not(.badge *):not(.btn):not(.btn *),[data-theme=dark] li,.theme-dark li,[data-theme=dark] td,.theme-dark td,[data-theme=dark] label,.theme-dark label{color:#cbd5e1!important}[data-theme=dark] a:not(.btn),.theme-dark a:not(.btn){color:#60a5fa!important}[data-theme=dark] h6,.theme-dark h6{color:#fff!important}[data-theme=dark] input,.theme-dark input,[data-theme=dark] select,.theme-dark select,[data-theme=dark] textarea,.theme-dark textarea{color:#f8fafc!important;background:#1e293b!important;border-color:#475569!important}[data-theme=dark] input::placeholder,.theme-dark input::placeholder,[data-theme=dark] textarea::placeholder,.theme-dark textarea::placeholder{color:#94a3b8!important}[data-theme=dark] div,.theme-dark div{border-color:#334155!important}[data-font=dyslexic]{--font-family-base:"Atkinson Hyperlegible", sans-serif!important;--font-family-display:"Atkinson Hyperlegible", sans-serif!important;letter-spacing:.05em!important;word-spacing:.1em!important;line-height:1.8!important}[data-font-size="115"]{font-size:115%!important}[data-font-size="130"]{font-size:130%!important}[data-font-size="150"]{font-size:150%!important}@media (prefers-reduced-motion:reduce),(update:slow){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-reduced-motion=true] *,[data-reduced-motion=true] :before,[data-reduced-motion=true] :after{transition:none!important;animation:none!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);line-height:var(--line-height-base);letter-spacing:var(--letter-spacing-base);scroll-behavior:smooth}body{font-family:var(--font-family-base);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;display:flex}#root{flex-direction:column;min-height:100vh;display:flex}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}a,button,input,select,textarea,[role=button],.btn{touch-action:manipulation;-webkit-tap-highlight-color:#0d47a133}a{color:inherit;cursor:pointer;text-decoration:none}.link-action{color:var(--color-primary);align-items:center;gap:.35rem;min-height:44px;padding:.35rem .25rem;font-weight:700;text-decoration:underline;display:inline-flex}.link-action:hover,.link-action:active{color:var(--color-primary-hover);text-decoration:none}button{cursor:pointer;background:0 0;border:none}img,svg{max-width:100%;display:block}.skip-link{background:var(--color-primary);color:var(--color-primary-contrast);z-index:99999;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 20px;font-weight:700;transition:top .2s;position:absolute;top:-100px;left:20px}.skip-link:focus{top:20px}.app-container{width:100%;max-width:1280px;margin:0 auto;padding:0 1.5rem}.main-content{flex:1;padding-bottom:4rem}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}@media (width<=960px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.app-container{padding:0 1rem}}.btn{border-radius:var(--radius-md);border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-secondary-contrast)}.btn-secondary:hover{background-color:var(--color-secondary-hover)}.btn-outline{border-color:var(--color-primary);color:var(--color-primary);background-color:#0000}.btn-outline:hover{background-color:var(--color-primary-light)}.btn-accent{background-color:var(--color-accent);color:var(--color-accent-contrast)}.btn-accent:hover{opacity:.9}.btn-sm{min-height:36px;padding:.4rem .85rem;font-size:.875rem}.btn-lg{min-height:54px;padding:1rem 2rem;font-size:1.125rem}.card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem;transition:box-shadow .2s,border-color .2s}.card:hover{border-color:var(--border-color);box-shadow:var(--shadow-md)}.card-highlight{border-left:5px solid var(--color-primary)}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-secondary{background-color:var(--color-secondary-light);color:var(--color-secondary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.form-group{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.form-label{color:var(--text-main);align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.form-input,.form-select,.form-textarea{border:2px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);width:100%;color:var(--text-main);min-height:48px;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-textarea{resize:vertical;min-height:120px}.form-hint{color:var(--text-muted);font-size:.85rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background:var(--bg-surface);color:var(--text-main);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);padding:2rem;position:relative;overflow-y:auto}.progress-bar-container{background-color:var(--bg-surface-subtle);border-radius:var(--radius-full);border:1px solid var(--border-subtle);width:100%;height:14px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));border-radius:var(--radius-full);height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}@media (width<=768px){.mobile-bottom-nav{display:block!important}.main-content{padding-bottom:6rem!important}input,select,textarea,.form-input,.form-select,.form-textarea{font-size:16px!important}.btn-mobile-full{width:100%!important}.app-container{padding:0 .85rem!important}.card{border-radius:var(--radius-md)!important;padding:1.15rem!important}.modal-overlay{align-items:flex-end!important;padding:.5rem!important}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0!important;max-height:92vh!important;padding:1.25rem!important}}@media (hover:none){.btn:active,button:active{filter:brightness(.92);transform:scale(.97)}}
