:root{--primary: #ff6b6b;--secondary: #2ecc71;--dark: #2d3436;--light: #dfe6e9;--gold: #f1c40f;--bg-color: #f0f4f8;--font-main: "Inter", sans-serif;--font-fun: "Fredoka", cursive}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}body{font-family:var(--font-main);background-color:var(--bg-color);color:var(--dark);min-height:100vh;display:flex;flex-direction:column}.hidden{display:none!important}.table-selection{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;width:100%;max-width:900px;margin:0 auto}.quick-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}@media(min-width:640px){.quick-picks{grid-template-columns:repeat(4,minmax(0,1fr))}}.quick-pick{display:flex;flex-direction:column;align-items:flex-start;gap:.375rem;min-height:4.5rem;padding:.75rem;border:2px solid #e2e8ec;border-radius:1rem;background:#fff;box-shadow:0 2px 6px #0000000d;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.quick-pick:hover{border-color:#99d6cc}.quick-pick:active{transform:translateY(2px)}.quick-pick.active{border-color:#0d9488;box-shadow:0 3px #0d9488}.quick-pick-label{font-weight:800;font-size:.85rem;line-height:1.25;color:var(--dark)}.quick-pick-sub{font-weight:600;font-size:.75rem;color:#6b7280}.quick-pick-chips{display:flex;gap:.25rem}.quick-pick-chip{width:1.4rem;height:1.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;background:#fff;border:2px solid #dbe3e8;color:#4a5568}.quick-pick-chip.fresh{border-style:dashed;color:#8b95a1}.quick-pick-chip.learning{background:#ff6b6b;border-color:#ee5253;color:#fff}.quick-pick-chip.improving{background:var(--gold);border-color:#f39c12;color:#fff}.quick-pick-chip.good{background:#3498db;border-color:#2980b9;color:#fff}.quick-pick-chip.mastered{background:#2ecc71;border-color:#27ae60;color:#fff}.pick-mode{display:flex;gap:2px;padding:3px;border-radius:999px;background:#eef2f5}.pick-mode-btn{padding:.5rem 1.1rem;white-space:nowrap;border:0;border-radius:999px;background:transparent;color:#4a5568;font-family:var(--font-main);font-size:.8rem;font-weight:700;cursor:pointer}.pick-mode-btn.active{background:#fff;color:#115e59;font-weight:800;box-shadow:0 1px 3px #0000001f}.table-btn{width:60px;height:60px;border-radius:50%;background:#fff;border:4px solid var(--secondary);box-shadow:0 4px #3aa39b;font-family:var(--font-main);font-size:1.4rem;font-weight:800;color:var(--dark);display:flex;justify-content:center;align-items:center;position:relative;cursor:pointer;transition:transform .1s,box-shadow .1s;margin-bottom:24px;margin-left:1px;margin-right:1px;opacity:.5;filter:grayscale(40%);transform:scale(.9)}.table-btn:active{transform:scale(.9) translateY(4px);box-shadow:none;margin-bottom:28px}.table-btn .stars{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);display:flex;gap:2px;font-size:.8rem;color:#cbd5e1;width:60px;justify-content:center;pointer-events:none}.table-btn.selected{opacity:1;filter:none;transform:scale(1.1);box-shadow:0 2px #3aa39b;z-index:10}.table-btn.selected:after{display:none}.table-btn.mastered{background:#2ecc71;border-color:#27ae60;color:#fff;box-shadow:0 4px #1e8449}.table-btn.mastered:active{box-shadow:none}.table-btn.mastered.selected{box-shadow:0 2px #1e8449}.table-btn.mastered .stars{color:var(--gold)}.table-btn.good{background:#3498db;border-color:#2980b9;color:#fff;box-shadow:0 4px #1c5a85}.table-btn.good:active{box-shadow:none}.table-btn.good.selected{box-shadow:0 2px #1c5a85}.table-btn.good .stars{color:var(--light)}.table-btn.improving{background:var(--gold);border-color:#f39c12;color:#fff;box-shadow:0 4px #d35400}.table-btn.improving:active{box-shadow:none}.table-btn.improving.selected{box-shadow:0 2px #d35400}.table-btn.learning{background:#ff6b6b;border-color:#ee5253;color:#fff;box-shadow:0 4px #c0392b}.table-btn.learning:active{box-shadow:none}.table-btn.learning.selected{box-shadow:0 2px #c0392b}.table-btn.learning .stars{color:#fab1a0}.table-btn.selected .stars{color:var(--gold)}.table-btn.fresh{background:#fff;border:3px dashed #cfd8de;color:#8b95a1;box-shadow:none;opacity:.75}.table-btn.fresh.selected{opacity:1;filter:none;border-style:solid;border-color:#0d9488;color:#115e59;box-shadow:0 2px #b8ccd4}.table-btn.fresh:active{transform:scale(.9) translateY(2px)}.table-btn.fresh .stars{color:#dbe3e8}.table-btn.plain{background:#fff;border:3px solid #dbe3e8;color:var(--dark);box-shadow:0 4px #e8eef1;opacity:1;filter:none}.table-btn.plain.selected{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px #0b6b62}.table-selection.no-mastery .table-btn .stars{display:none}.table-selection.no-mastery .table-btn{margin-bottom:6px}.table-selection.no-mastery .table-btn:active{margin-bottom:10px}.table-selection:not(.mode-multi) .table-btn.selected{outline:4px solid rgba(13,148,136,.34);outline-offset:0}.table-selection.mode-multi .table-btn.selected:after{content:"✓";display:flex;align-items:center;justify-content:center;position:absolute;top:-3px;right:-5px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid #0d9488;color:#0d9488;font-size:.7rem;font-weight:900;line-height:1}button{font-family:var(--font-main);border:none;cursor:pointer;border-radius:12px;transition:transform .1s}button:active{transform:scale(.95)}.primary-btn{background:var(--primary);color:#fff;padding:1rem 2rem;font-size:1.5rem;font-weight:600;box-shadow:0 4px #d64545}.primary-btn:hover{background:#ff5252}#answer-input{font-family:var(--font-main);font-size:2.5rem;width:120px;text-align:center;padding:.5rem;border:3px solid #ddd;border-radius:12px;outline:none;margin-bottom:1rem}#answer-input:focus{border-color:var(--secondary)}.feedback{height:2rem;font-size:1.2rem;font-weight:600;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.feedback.visible{opacity:1}.feedback.correct{color:var(--secondary)}.feedback.wrong{color:#ff6b6b}#highscore-display{color:#f0c420;font-weight:600;text-shadow:1px 1px 0 rgba(0,0,0,.1)}#timer-bar{width:100%;height:100%;background:var(--secondary);transition:width 1s linear}#results-screen{text-align:center}.score-text{font-size:2.5rem;font-weight:700;color:var(--primary);margin:0}#result-message{font-size:1.5rem;color:#f0c420;margin-top:1rem;font-weight:600;min-height:2em}.modal{position:fixed!important;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex!important;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:1rem;height:100vh;height:100dvh;transition:opacity .3s,visibility 0s;opacity:1;visibility:visible;pointer-events:auto!important}.modal-scroll-lock{overflow:hidden}.modal.hidden,.modal.modal-hidden{opacity:0!important;pointer-events:none!important;visibility:hidden!important;transition:opacity .3s,visibility 0s .3s}.modal:not(.hidden) *{pointer-events:auto!important}.modal-content{background:#fff;padding:2rem;border-radius:20px;width:90%;max-width:500px;position:relative;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:1001;max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.close-btn{position:absolute;top:15px;right:20px;font-size:2rem;background:none;border:none;cursor:pointer!important;color:#888;z-index:1002;-webkit-user-select:none;-moz-user-select:none;user-select:none}.close-btn:hover{color:var(--primary)}.modal-content-wide{max-width:640px}.modal-scroll-body{width:100%}.modal-content .section-in-modal{width:100%;margin-top:0;padding-top:0;border-top:none}.modal-content .section-in-modal #week-summary-toggle{display:none}#login-btn,#logout-btn{font-weight:600;transition:all .2s ease}.question-container{background:#fff;padding:2rem 4rem;border-radius:20px;box-shadow:0 4px #e2e8f0;border:2px solid #e2e8f0;overflow:visible;display:flex;flex-direction:column;align-items:center;transition:all .5s cubic-bezier(.175,.885,.32,1.275);position:relative}.question-container.celebrating{transform:scale(1.1);border-color:var(--gold);box-shadow:0 10px 30px #f1c40f4d;z-index:100}.question-container.celebrating input,.question-container.celebrating .action-btn{display:none}#celebration-stars{display:flex;gap:10px;justify-content:center;margin-top:.5rem;height:40px;margin-bottom:1rem}#celebration-stars.hidden{display:none}.pop-anim{animation:pop .4s cubic-bezier(.175,.885,.32,1.275) forwards}.star-item{font-size:3rem;color:var(--light);transition:color .3s}.star-item.gold{color:var(--gold);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.star-item.pop-anim{animation:popGold .6s .2s forwards}.pop{animation:pop .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes pop{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}#table-levelup-card{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.levelup-title{font-family:var(--font-fun);font-size:2rem;font-weight:600;color:var(--dark)}.flip-container{perspective:1000px;display:flex;justify-content:center;align-items:center}#levelup-table-btn{width:90px;height:90px;font-size:2.1rem;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.175,.885,.32,1.275),border-color .4s ease .4s,background .4s ease .4s,box-shadow .4s ease .4s;cursor:default;opacity:1;filter:none;max-width:90vw;max-height:90vw}#levelup-table-btn .stars{font-size:1.2rem;gap:3px;width:90px;bottom:-36px;color:var(--gold)}#levelup-table-btn .stars .fa-solid{color:var(--gold)}#levelup-table-btn .stars .fa-regular{color:#cbd5e1}#levelup-table-btn.flipping{transform:rotateY(360deg) scale(1.1)}.levelup-star-pop{animation:levelup-star-appear .5s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes levelup-star-appear{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.5) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}#diploma-card{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.diploma-seal-wrap{position:relative;display:flex;justify-content:center;align-items:center}.diploma-ribbon{position:absolute;bottom:-16px;width:20px;height:42px;background:var(--primary);z-index:0;clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}.diploma-ribbon-left{left:calc(50% - 24px);transform:rotate(14deg)}.diploma-ribbon-right{right:calc(50% - 24px);transform:rotate(-14deg)}.diploma-seal{position:relative;z-index:1;width:120px;height:120px;border-radius:50%;background:var(--gold);border:4px solid #f39c12;box-shadow:0 4px #d35400;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.5rem;animation:pop .5s cubic-bezier(.175,.885,.32,1.275)}.diploma-seal-icon{font-size:2rem;line-height:1}.diploma-seal span:last-child{font-size:.75rem;font-weight:700;text-align:center}.diploma-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;width:100%;max-width:700px;margin:0 auto}.diploma-item{width:48px;height:48px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:var(--font-main);font-weight:800;font-size:.8rem;text-decoration:none;transition:transform .1s,box-shadow .1s}.diploma-item span:first-child{font-size:.85rem;line-height:1}.diploma-item.earned{background:var(--gold);border:3px solid #f39c12;color:#fff;box-shadow:0 3px #d35400;cursor:pointer}.diploma-item.earned:active{transform:translateY(3px);box-shadow:none}.diploma-item.earned.needs-name{border-style:dashed}.diploma-item.locked{background:#fff;border:3px solid #cbd5e1;color:#cbd5e1;opacity:.6}.diploma-name-chip{font-size:.8rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;border:2px dashed var(--gold);background:#fffbea;color:#8a6d0b;cursor:pointer;transition:background .2s,border-color .2s}.diploma-name-chip:hover{background:#fff3c4;border-color:#d4a800}#question-container.correct-flash{animation:correctPulse .3s ease-out}#question-container.wrong-flash{animation:wrongPulse 2s ease-out}@keyframes correctPulse{0%{border-color:#10b981;box-shadow:0 0 #10b981b3}50%{border-color:#10b981;box-shadow:0 0 20px 10px #10b98166}to{border-color:#e5e7eb;box-shadow:0 4px 20px #0000000d}}@keyframes wrongPulse{0%{border-color:#ef4444;box-shadow:0 0 #ef4444b3}10%{border-color:#ef4444;box-shadow:0 0 20px 10px #ef444466}to{border-color:#e5e7eb;box-shadow:0 4px 20px #0000000d}}.circular-timer{position:relative;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--primary) calc(var(--percentage) * 1%),var(--light) 0);transition:background .05s linear}.circular-timer:before{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%}.circular-timer span{position:relative;font-weight:700;font-size:1.2rem;color:var(--dark)}#streak-badge{display:flex;background:#fff7ed;border-color:#fed7aa;color:#c2410c}#streak-badge.at-risk{background:#fefce8;border-color:#fde68a;color:#a16207}.week-bars{display:flex;align-items:flex-end;gap:.5rem;height:84px}.week-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.25rem}.week-bar .bar{width:100%;min-height:2px;border-radius:.35rem .35rem 0 0;background:#14b8a6}.week-bar.empty .bar{background:#e5e7eb}.week-bar .day-label{font-size:.7rem;font-weight:700;color:#6b7280;line-height:1}.user-table-row{display:grid;grid-template-columns:6.5rem 1fr 3.5rem;align-items:center;gap:.75rem;padding:.4rem 0;border-bottom:1px solid #f1f5f9;text-align:left}.user-table-label{font-weight:600;font-size:.9rem;color:#374151;white-space:nowrap}.user-table-track{background:#eceff3;border-radius:999px;height:.65rem;overflow:hidden}.user-table-bar{display:block;height:100%;border-radius:999px;background:#14b8a6}.user-hard-bar{display:block;height:100%;border-radius:999px;background:#e8871e}.user-table-count{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem;color:#374151}.user-table-accuracy{display:block;font-size:.7rem;font-weight:400;color:#9ca3af}.hard-sum{border-bottom:1px solid #f1f5f9}.hard-sum>summary{display:grid;grid-template-columns:7rem 1fr 4.5rem;align-items:center;gap:.75rem;padding:.5rem 0;cursor:pointer;list-style:none}.hard-sum>summary::-webkit-details-marker{display:none}.hard-sum>summary:hover{background:#f8fafc}.hard-sum>summary:focus-visible{outline:2px solid #14b8a6;outline-offset:-2px;border-radius:.35rem}.hard-sum-static>summary{cursor:default}.hard-sum-name{font-weight:700;font-size:.95rem;color:#374151;white-space:nowrap}.hard-sum-rate{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem;color:#374151}.hard-sum-body{padding:.25rem 0 .75rem 1.5rem}@media(max-width:30rem){.user-table-row{grid-template-columns:1fr 3.5rem}.user-table-row .user-table-track{display:none}.hard-sum>summary{grid-template-columns:1fr 4.5rem}.hard-sum>summary .user-table-track{display:none}.hard-sum-body{padding-left:0}}.selectable-page,.selectable-page *{-webkit-user-select:text;-moz-user-select:text;user-select:text}#print-sheet{display:none}@media print{body.printing>*:not(#print-sheet){display:none!important}body.printing #print-sheet{display:block;font-family:var(--font-main),sans-serif;color:#111827;padding:1.5rem}body.printing #print-sheet h1{font-size:1.6rem;font-weight:800;margin-bottom:.25rem}body.printing #print-sheet .sheet-range{color:#4b5563;margin-bottom:1.25rem}body.printing #print-sheet ul{margin:.75rem 0 0 1.1rem;list-style:disc}body.printing #print-sheet ul.days{margin-left:0;list-style:none}body.printing #print-sheet ul.days li{border-bottom:1px solid #e5e7eb;padding:.2rem 0;margin-bottom:0}body.printing #print-sheet li{margin-bottom:.2rem}body.printing #print-sheet .sheet-footer{margin-top:2rem;font-size:.8rem;color:#6b7280}}#app-error{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:2000;max-width:min(90vw,30rem);padding:.75rem 1.25rem;border-radius:12px;background:var(--primary);color:#fff;font-family:var(--font-main);font-weight:600;text-align:center;box-shadow:0 6px 20px #0003}.challenge-btn:disabled{opacity:.5;cursor:progress;filter:saturate(.4);box-shadow:none;transform:none}.challenge-btn:disabled:hover{transform:none;box-shadow:none}
