*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f0e8;--bg2:#ede5d8;--bg3:#ddd3c3;--card:#fff9f0;--border:#c8b89a;--text:#2c1f0e;--text2:#6b4c2a;--accent:#8b3a1a;--accent2:#c45c28;--green:#2d7a4f;--red:#b32020;--gold:#c9860c;--blue:#1a5c8b;--shadow:0 2px 8px #0000001f;--radius:10px;--font:"Georgia", "Times New Roman", serif;--font-ui:system-ui, -apple-system, sans-serif}.dark{--bg:#1a1410;--bg2:#252018;--bg3:#302820;--card:#1e1a14;--border:#4a3828;--text:#e8d9c0;--text2:#b89870;--accent:#d4602a;--accent2:#e8803a;--green:#4ab870;--red:#e05050;--gold:#e0a030;--blue:#4a8ec4;--shadow:0 2px 8px #0006}html{font-size:16px}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);min-height:100vh;transition:background .2s,color .2s}#root{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--accent);color:#fff;z-index:100;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #0003}.app-title{font-family:var(--font);letter-spacing:.03em;font-size:1.4rem;font-weight:700}.app-title span{opacity:.75;margin-left:.5rem;font-size:1rem}.header-right{align-items:center;gap:.75rem;display:flex}.points-badge{background:#fff3;border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.streak-badge{background:#ffffff26;border-radius:20px;padding:.25rem .6rem;font-size:.85rem}.icon-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem;font-size:1.2rem;transition:background .15s}.icon-btn:hover{background:#ffffff26}.nav{background:var(--bg2);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav-btn{min-width:80px;color:var(--text2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.7rem .5rem;font-size:.82rem;font-weight:600;transition:background .15s,color .15s;display:flex}.nav-btn:hover{background:var(--bg3);color:var(--text)}.nav-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--bg)}.nav-icon{font-size:1.25rem}.main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:1.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.2rem;font-size:.9rem;font-weight:600;transition:filter .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:hover{filter:brightness(1.07)}.btn-primary{background:var(--accent);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-neutral{background:var(--bg3);color:var(--text);border:1px solid var(--border)}.btn-outline{color:var(--accent);border:2px solid var(--accent);background:0 0}.btn-row{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.progress-bar-wrap{background:var(--bg3);border-radius:99px;height:10px;overflow:hidden}.progress-bar-fill{background:var(--accent2);border-radius:99px;height:100%;transition:width .4s}.flashcard-scene{perspective:900px;aspect-ratio:3/2;cursor:pointer;width:100%;max-width:480px;margin:0 auto}.flashcard-card{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s;position:relative}.flashcard-scene.flipped .flashcard-card{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;background:var(--card);border:2px solid var(--border);box-shadow:var(--shadow);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:absolute;inset:0}.flashcard-back{transform:rotateY(180deg)}.flashcard-latin{font-family:var(--font);color:var(--accent);margin-bottom:.5rem;font-size:2rem}.flashcard-forms{color:var(--text2);margin-bottom:.75rem;font-size:.82rem;font-style:italic}.flashcard-hint{color:var(--text2);opacity:.7;margin-top:1.5rem;font-size:.8rem}.flashcard-german{color:var(--text);margin-bottom:.5rem;font-size:1.5rem}.flashcard-category{color:var(--text2);background:var(--bg2);border-radius:20px;padding:.2rem .7rem;font-size:.8rem}.flashcard-counter{text-align:center;color:var(--text2);margin-bottom:.75rem;font-size:.85rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border:1px solid var(--border);text-align:center;padding:.5rem .75rem}th{background:var(--bg2);color:var(--text2);font-size:.8rem;font-weight:600}.case-cell{background:var(--bg2);color:var(--accent);font-weight:600}td input.cell-input{width:100%;min-width:80px;color:var(--text);text-align:center;border:none;border-bottom:2px solid var(--border);background:0 0;outline:none;padding:.1rem .25rem;font-size:.85rem;transition:border-color .15s}td input.cell-input:focus{border-bottom-color:var(--accent)}td input.cell-input.correct{border-bottom-color:var(--green);background:#2d7a4f1a}td input.cell-input.wrong{border-bottom-color:var(--red);background:#b320201a}.quiz-question{font-size:1.2rem;font-family:var(--font);color:var(--text);margin-bottom:1.25rem;line-height:1.5}.quiz-options{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=480px){.quiz-options{grid-template-columns:1fr}}.quiz-option{border-radius:var(--radius);border:2px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;text-align:left;padding:.85rem 1rem;font-size:.95rem;transition:background .15s,border-color .15s,transform .1s}.quiz-option:hover:not(:disabled){border-color:var(--accent);background:var(--bg2)}.quiz-option:active:not(:disabled){transform:scale(.98)}.quiz-option.correct-opt{border-color:var(--green);color:var(--green);background:#2d7a4f1f}.quiz-option.wrong-opt{border-color:var(--red);color:var(--red);background:#b320201f}.quiz-option:disabled{cursor:default}.quiz-feedback{border-radius:var(--radius);margin-top:.75rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600}.quiz-feedback.correct{color:var(--green);background:#2d7a4f26}.quiz-feedback.wrong{color:var(--red);background:#b320201f}.dashboard-welcome{font-family:var(--font);color:var(--accent);margin-bottom:.25rem;font-size:1.6rem}.dashboard-subtitle{color:var(--text2);margin-bottom:1.5rem;font-size:.9rem}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:1rem}.stat-value{color:var(--accent2);font-size:2rem;font-weight:700;line-height:1}.stat-label{color:var(--text2);margin-top:.25rem;font-size:.8rem}.level-bar-wrap{margin:1.5rem 0}.level-label{color:var(--text2);justify-content:space-between;margin-bottom:.35rem;font-size:.85rem;display:flex}.level-name{color:var(--gold);font-weight:700}.module-btn{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;box-shadow:var(--shadow);align-items:center;gap:.85rem;width:100%;padding:1rem 1.25rem;transition:border-color .15s,box-shadow .15s;display:flex}.module-btn:hover{border-color:var(--accent);box-shadow:0 4px 14px #0000001f}.module-icon{font-size:1.75rem}.module-info h3{color:var(--text);font-size:1rem;font-weight:700}.module-info p{color:var(--text2);margin-top:.15rem;font-size:.8rem}.settings-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.85rem 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-info h3{font-size:.95rem;font-weight:600}.settings-info p{color:var(--text2);margin-top:.15rem;font-size:.8rem}.toggle-wrap{flex-shrink:0;width:46px;height:26px;position:relative}.toggle-wrap input{opacity:0;width:0;height:0}.toggle-slider{background:var(--bg3);cursor:pointer;border:1px solid var(--border);border-radius:99px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-wrap input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle-wrap input:checked+.toggle-slider:before{transform:translate(20px)}h2{color:var(--text);margin-bottom:1rem;font-size:1.25rem;font-weight:700}h3{font-size:1rem;font-weight:700}.gap{gap:1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.text-sm{font-size:.85rem}.text-muted{color:var(--text2)}.text-center{text-align:center}.badge{border-radius:20px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-optional{color:var(--gold);background:#c9860c33}.filter-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.filter-chip{border:1.5px solid var(--border);background:var(--card);color:var(--text2);cursor:pointer;border-radius:20px;padding:.3rem .8rem;font-size:.8rem;font-weight:600;transition:all .15s}.filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.25s slideIn}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.shake{animation:.35s shake}@media (width<=600px){.main{padding:1rem .75rem}.card-grid{grid-template-columns:1fr 1fr}.flashcard-latin{font-size:1.5rem}.flashcard-german{font-size:1.2rem}}.user-switcher{position:relative}.user-switcher-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff38;border-radius:20px;align-items:center;gap:.45rem;padding:.3rem .65rem .3rem .4rem;font-size:.82rem;font-weight:600;transition:background .15s;display:flex}.user-switcher-btn:hover{background:#ffffff38}.user-switcher-name{text-overflow:ellipsis;max-width:110px;overflow:hidden}.user-switcher-caret{opacity:.8;font-size:.65rem}.user-panel{z-index:200;background:var(--card);border:1px solid var(--border);border-radius:12px;width:240px;padding:.75rem;animation:.18s slideIn;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 8px 24px #0000002e}.user-panel-header{color:var(--text2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);margin-bottom:.6rem;padding-bottom:.5rem;font-size:.88rem;font-weight:700}.user-panel-text{color:var(--text);margin-bottom:.75rem;font-size:.85rem;line-height:1.4}.user-list{flex-direction:column;gap:.25rem;margin:0 0 .6rem;padding:0;list-style:none;display:flex}.user-item{border-radius:8px;align-items:center;transition:background .12s;display:flex;overflow:hidden}.user-item:hover{background:var(--bg)}.user-item.active{background:color-mix(in srgb, var(--accent) 10%, transparent)}.user-item-main{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:.5rem;min-width:0;padding:.45rem .5rem;font-size:.88rem;font-weight:500;display:flex}.user-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.user-item-check{color:var(--accent);font-size:.9rem;font-weight:700}.user-item-actions{gap:.15rem;padding-right:.35rem;display:flex}.user-item-actions button{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:5px;padding:.2rem .3rem;font-size:.85rem;transition:opacity .12s,background .12s}.user-item-actions button:hover{opacity:1;background:var(--border)}.user-add-btn{border:1.5px dashed var(--border);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:.45rem;font-size:.85rem;font-weight:600;transition:background .12s,border-color .12s}.user-add-btn:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent)}.user-input{box-sizing:border-box;border:1.5px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:.6rem;padding:.5rem .65rem;font-size:.9rem}.user-input:focus{border-color:var(--accent)}.user-panel-btns{gap:.5rem;display:flex}.btn-sm{padding:.35rem .9rem;font-size:.82rem}
