:root{--bg: #FAF7F2;--bg-card: #FFFFFF;--bg-muted: #F0EBE3;--bg-elevated: #FFFFFF;--surface-glass: rgba(255, 255, 255, .72);--text: #1D2939;--text-muted: #667085;--text-soft: #98A2B3;--text-light: #FFFFFF;--primary: #4F8FE0;--primary-dark: #2E6FB8;--primary-soft: #DEEAFB;--accent-math: #4F8FE0;--accent-math-dark: #2E6FB8;--accent-math-soft: #DEEAFB;--accent-de: #F0875A;--accent-de-dark: #D46A3F;--accent-de-soft: #FCE4D7;--accent-free: #B47CF5;--accent-free-dark: #9355DE;--accent-free-soft: #ECDCFE;--accent-sach: #5BA66B;--accent-sach-dark: #408253;--accent-sach-soft: #DBEFE0;--accent-logik: #9B6BD9;--accent-logik-dark: #7847BF;--accent-logik-soft: #E5D9F6;--success: #14B8A6;--success-dark: #0E948A;--warning: #F5B042;--warning-dark: #D8901E;--danger: #EF6F6C;--danger-dark: #D74E4B;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 32px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(20, 30, 60, .05);--shadow-sm: 0 2px 8px rgba(20, 30, 60, .06);--shadow-md: 0 8px 24px rgba(20, 30, 60, .08);--shadow-lg: 0 20px 48px rgba(20, 30, 60, .12);--shadow-pop: 0 6px 0 rgba(20, 30, 60, .12);--shadow-glow: 0 0 0 4px rgba(79, 143, 224, .18);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .27, 1.55);--header-height: 64px;--max-width: 1040px;--max-width-narrow: 640px;--touch-min: 44px;--font-display: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--bg-default: var(--bg);--success-soft: #CCF5F0;--warning-soft: #FFE9C5;--danger-soft: #FCDDDC}:root[data-theme=dark]{--bg: #131826;--bg-card: #1C2238;--bg-muted: #232A44;--bg-elevated: #252C48;--surface-glass: rgba(28, 34, 56, .7);--text: #E8EAF0;--text-muted: #98A2B3;--text-soft: #6B7385;--text-light: #FFFFFF;--primary-soft: rgba(79, 143, 224, .18);--accent-math-soft: rgba(79, 143, 224, .18);--accent-de-soft: rgba(240, 135, 90, .18);--accent-free-soft: rgba(180, 124, 245, .18);--accent-sach-soft: rgba(91, 166, 107, .2);--accent-logik-soft: rgba(155, 107, 217, .2);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .5);--shadow-pop: 0 6px 0 rgba(0, 0, 0, .4)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);line-height:1.55;font-size:16px;font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"tnum" 0;transition:background-color .3s var(--ease-smooth),color .3s var(--ease-smooth)}#app{height:100%;display:flex;flex-direction:column}h1,h2,h3{color:var(--text);font-weight:800;font-family:var(--font-display);line-height:1.2;letter-spacing:-.01em}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.text-display{font-family:var(--font-display);font-weight:800}.tabular{font-feature-settings:"tnum"}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-min);padding:var(--space-sm) var(--space-lg);font-family:var(--font-body);font-size:1.05rem;font-weight:700;border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform .12s var(--ease-spring),box-shadow .12s var(--ease-smooth),background .15s var(--ease-smooth);text-decoration:none;gap:var(--space-sm);color:var(--text);background:var(--bg-card)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(3px)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-glow)}.btn-primary{background:var(--primary);color:var(--text-light);box-shadow:var(--shadow-pop)}.btn-primary:active{box-shadow:0 1px #141e3c26}.btn-success{background:var(--success);color:var(--text-light);box-shadow:0 6px 0 var(--success-dark)}.btn-success:active{box-shadow:0 1px 0 var(--success-dark)}.btn-secondary{background:var(--bg-muted);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--bg-elevated);box-shadow:var(--shadow-md)}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:var(--shadow-xs)!important}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease-smooth),transform .2s var(--ease-spring)}.card-hero{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-md)}.input{width:100%;min-height:var(--touch-min);padding:var(--space-sm) var(--space-md);font-family:var(--font-body);font-size:1.1rem;font-weight:600;background:var(--bg-card);color:var(--text);border:2px solid var(--bg-muted);border-radius:var(--radius-md);text-align:center;transition:border-color .2s var(--ease-smooth),box-shadow .2s var(--ease-smooth)}.input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-glow)}.input::placeholder{color:var(--text-soft);font-weight:500}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{align-items:center;justify-content:center}.flex-between{justify-content:space-between}.flex-1{flex:1}.screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-md);overflow-y:auto;-webkit-overflow-scrolling:touch}.screen-content{width:100%;max-width:var(--max-width)}.screen-content.narrow{max-width:var(--max-width-narrow)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@keyframes springIn{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn .35s var(--ease-smooth)}.animate-pop-in{animation:popIn .35s var(--ease-spring)}.animate-spring{animation:springIn .5s var(--ease-spring)}.animate-float{animation:float 3s var(--ease-smooth) infinite}.animate-pulse{animation:pulse 1.6s var(--ease-smooth) infinite}.page-enter-active,.page-leave-active{transition:opacity .25s var(--ease-smooth),transform .25s var(--ease-smooth)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-muted);border-radius:var(--radius-full);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-soft)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root[data-reduce-motion] *,:root[data-reduce-motion] *:before,:root[data-reduce-motion] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
