@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap";.app{height:100vh;display:flex;overflow:hidden}.app-hidden{visibility:hidden;pointer-events:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent;z-index:1;flex-direction:column;gap:20px;width:280px;min-width:240px;padding:20px 16px;display:flex;position:relative;overflow:hidden auto;box-shadow:4px 0 24px #00000014}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.brand{align-items:center;gap:10px;display:flex}.study-brand{z-index:10;align-items:center;gap:10px;display:flex;position:fixed;top:20px;left:20px}.explore-home-btn{z-index:400;background:var(--surface2);border:1px solid var(--border);height:34px;color:var(--text2);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:border-color .2s,color .2s;display:flex;position:fixed;top:16px;right:16px}.explore-home-btn:hover{border-color:var(--accent);color:var(--accent)}.home-back-btn{background:var(--surface2);border:1px solid var(--border);height:32px;color:var(--text2);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:5px;margin-left:6px;padding:0 10px;font-size:12px;font-weight:500;transition:border-color .2s,color .2s;display:flex}.home-back-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;font-size:15px;line-height:1;transition:border-color .2s,background .2s,transform .15s;display:flex}.theme-toggle:hover{border-color:var(--accent);transform:rotate(-12deg)scale(1.05)}.element-tile{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;font-weight:700;font-family:var(--font);box-shadow:0 4px 14px rgba(var(--accent-rgb), .35);border-radius:.26em;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.element-tile-num{opacity:.85;letter-spacing:.04em;font-size:.26em;font-weight:600;position:absolute;top:10%;left:12%}.element-tile-sym{letter-spacing:.02em;font-size:.46em;line-height:1}.brand-icon{width:36px;height:36px;font-size:36px}.brand-icon svg{color:#fff;width:64%;height:64%}.empty-icon.element-tile svg{color:#fff;width:60%;height:60%}.mode-switch{background:var(--surface2);border:1px solid var(--border);border-radius:8px;gap:3px;padding:3px;display:flex}.mode-switch button{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 0;font-size:13px;transition:background .2s,color .2s}.mode-switch button.active{background:var(--accent);color:#042c53;font-weight:600}.suggestions-grid.suggestions-col{flex-direction:column;display:flex}.suggestions-col .suggestion-chip{text-align:left;white-space:normal;border-radius:8px;font-size:12px}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-name{letter-spacing:-.3px;background:linear-gradient(135deg, var(--accent), var(--accent2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.brand-credit{letter-spacing:.04em;color:var(--text2);font-size:10px;font-weight:500}.search-form{flex-direction:column;gap:8px;display:flex}.search-input{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text2)}.search-btn{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;cursor:pointer;min-height:38px;box-shadow:0 4px 16px rgba(var(--accent-rgb), .3);border:none;border-radius:8px;justify-content:center;align-items:center;padding:10px;font-size:14px;font-weight:600;transition:opacity .2s,transform .15s,box-shadow .2s;display:flex}.search-btn:hover{opacity:.9;box-shadow:0 6px 20px rgba(var(--accent-rgb), .4);transform:translateY(-1px)}.search-btn:active{transform:scale(.98)}.search-btn:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{color:var(--error);background:#ff6b6b1f;border:1px solid #ff6b6b66;border-radius:8px;padding:10px 12px;font-size:13px}.error-hint{color:var(--text2);opacity:.8;margin:6px 0 0;font-size:12px}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin-bottom:8px;font-size:11px;font-weight:600}.suggestions-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin-bottom:10px;font-size:11px;font-weight:600}.suggestions-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.suggestion-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:6px 14px 6px 10px;font-size:13px;font-weight:500;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;display:inline-flex}.suggestion-chip:before{display:none}.suggestion-chip:hover{border-color:var(--accent);background:rgba(var(--accent-rgb), .1);box-shadow:0 4px 12px rgba(var(--accent-rgb), .2);transform:translateY(-2px)}.view-modes{flex-direction:column;gap:6px;display:flex}.mode-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;text-align:left;border-radius:8px;padding:9px 12px;font-size:13px;transition:border-color .2s,color .2s,background .2s,transform .15s}.mode-btn:hover{border-color:var(--accent);color:var(--text);transform:translate(2px)}.mode-btn.active{border-color:var(--accent);background:rgba(var(--accent-rgb), .15);color:var(--text);box-shadow:inset 3px 0 0 var(--accent);font-weight:500}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.toggle-label{color:var(--text);font-size:13px}.toggle-btn{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:11px;flex-shrink:0;width:38px;height:22px;padding:0;transition:background .2s,border-color .2s;position:relative}.toggle-btn.on{background:var(--accent);border-color:var(--accent)}.toggle-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-btn.on .toggle-knob{transform:translate(16px)}.reset-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:8px;padding:8px 12px;font-size:13px;transition:border-color .2s,color .2s}.reset-btn:hover{border-color:var(--accent2);color:var(--accent2)}.info-panel{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:14px;display:flex}.info-grid{flex-direction:column;gap:4px;display:flex}.info-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px;padding:4px 0;font-size:12.5px;display:flex}.info-row:last-child{border-bottom:none}.info-label{color:var(--text2);flex-shrink:0}.info-value{color:var(--text);text-align:right;word-break:break-word;font-weight:500}.pubchem-link{color:var(--accent2);margin-top:4px;font-size:12px;text-decoration:none}.pubchem-link:hover{text-decoration:underline}.viewer-area{background:radial-gradient(ellipse at 50% 40%, rgba(var(--accent-rgb), .08), transparent 60%), var(--bg);flex:1;position:relative;overflow:hidden}.empty-state{color:var(--text2);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;font-size:15px;display:flex;position:absolute;inset:0}.empty-icon{opacity:.15;font-size:64px}.coming-soon{color:var(--accent2);opacity:.8;margin-top:-8px;font-size:13px;font-style:italic}.empty-icon.element-tile{opacity:1;width:92px;height:92px;font-size:40px;animation:3.5s ease-in-out infinite tile-float}@keyframes tile-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(3deg)}}.loading-ring{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.9s linear infinite spin}.reaction-viewer{flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:20px 32px 28px;display:flex;position:absolute;inset:0}.reaction-scene{border-radius:var(--radius);flex:1;width:100%;min-height:220px;overflow:hidden}.reaction-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;width:100%;display:flex}.mol-card{border:1px solid rgba(var(--accent-rgb), .35);border-radius:var(--radius);width:180px;height:180px;box-shadow:0 0 24px rgba(var(--accent-rgb), .12), 0 4px 24px #0006;background:radial-gradient(at 50% 40%,#0d2020 0%,#060f0f 100%);flex-direction:column;transition:transform .9s cubic-bezier(.4,0,.2,1),opacity .9s;display:flex;position:relative;overflow:hidden}.mol-card-viewer{flex:1;justify-content:center;align-items:center;display:flex;position:relative}.mol-card-name{text-align:center;color:var(--text2);border-top:1px solid rgba(var(--accent-rgb), .2);padding:8px;font-size:14px}.state-label{color:var(--text2);margin-left:2px;font-size:.85em;font-style:italic}.mol-coeff{color:var(--accent2);z-index:5;font-size:13px;font-weight:700;position:absolute;top:6px;left:8px}.mol-card-error{color:var(--error);text-align:center;padding:0 12px;font-size:12px}.mol-card.reacting,.mol-card.consumed{opacity:.2;transform:scale(.7)}.mol-card.pending{opacity:.25;transform:scale(.85)}.mol-card.formed{opacity:1;transform:scale(1)}.reaction-arrow{background:#fff;border-radius:2px;flex-shrink:0;align-items:center;width:100px;height:2px;transition:background .4s;display:flex;position:relative}.arrow-head{color:#fff;font-size:14px;transition:color .4s;position:absolute;top:50%;right:-14px;transform:translateY(-50%)}.reaction-arrow.reacting{background:var(--accent2)}.reaction-arrow.reacting .arrow-head{color:var(--accent2)}.reaction-arrow.no-reaction{background:var(--error)}.reaction-arrow.no-reaction .arrow-head{color:var(--error)}.arrow-cross{color:var(--error);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:22px;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mol-card.no-reaction{border-color:var(--error);animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.step-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;width:100%;max-width:760px;padding:24px 32px;display:flex}.step-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.step-counter{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;font-size:13px}.step-badge{background:rgba(var(--accent-rgb), .18);color:var(--accent2);border:1px solid var(--accent);border-radius:20px;padding:4px 14px;font-size:13px;font-weight:600}.step-title{color:var(--text);margin:0;font-size:24px;font-weight:700}.step-description{color:var(--text2);min-height:52px;margin:0;font-size:17px;line-height:1.6}.step-nav{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.step-btn{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;cursor:pointer;box-shadow:0 4px 16px rgba(var(--accent-rgb), .3);border:none;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .15s,box-shadow .2s}.step-btn:hover:not(:disabled){opacity:.9;box-shadow:0 6px 20px rgba(var(--accent-rgb), .4);transform:translateY(-1px)}.step-btn:active:not(:disabled){transform:scale(.98)}.step-btn:disabled{opacity:.35;cursor:default;box-shadow:none;transform:none}.step-dots{gap:6px;display:flex}.step-dot{background:var(--border);border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.step-dot.active{background:var(--accent2);transform:scale(1.3)}.notice-stack{z-index:10;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.notice-banner{background:rgba(var(--accent-rgb), .2);border:1px solid var(--accent);color:var(--accent2);white-space:nowrap;border-radius:20px;padding:5px 16px;font-size:12px}.element-legend{background:var(--overlay-bg);border:1px solid var(--overlay-border);color:var(--text);z-index:10;border-radius:10px;flex-wrap:wrap;justify-content:center;gap:8px 16px;max-width:90%;padding:8px 16px;font-size:12px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.element-legend span{white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.element-legend .dot{border:1px solid #00000026;border-radius:50%;width:11px;height:11px;display:inline-block}.electron-legend{background:var(--overlay-bg);border:1px solid var(--overlay-border);color:var(--text);z-index:10;border-radius:10px;flex-wrap:wrap;justify-content:center;gap:8px 16px;max-width:90%;padding:8px 16px;font-size:11px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.electron-legend span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.electron-legend .dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot-atomic{background:#7df9ff}.dot-bond{background:#ff6b9d}.dot-sea{background:#ffd54a}.dot-transfer{background:#b388ff}.dot-proton{background:#ff5252}.dot-neutron{background:#5c7cfa}.dot-shell-electron{background:#7df9ff}[data-theme=light] .dot-atomic,[data-theme=light] .dot-shell-electron{background:#1aa3c4}.electron-legend .charge{font-style:normal;font-weight:700}.charge-pos{color:#ff8a65}.charge-neg{color:#64b5f6}.chat-fab{z-index:1000;background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;cursor:pointer;box-shadow:0 4px 20px rgba(var(--accent-rgb), .4);border:none;border-radius:50px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:700;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;bottom:24px;right:24px}.chat-fab:hover{box-shadow:0 6px 24px rgba(var(--accent-rgb), .5);transform:translateY(-2px)}.chat-fab-label{letter-spacing:.01em}.chat-popup{z-index:999;background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;width:340px;max-height:520px;display:flex;position:fixed;bottom:80px;right:24px;overflow:hidden;box-shadow:0 8px 40px #0006}.chat-header{border-bottom:1px solid var(--border);background:var(--surface2);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chat-header-info{align-items:center;gap:10px;display:flex}.chat-avatar{font-size:22px}.chat-title{color:var(--text);margin:0;font-size:14px;font-weight:700}.chat-subtitle{color:var(--text2);margin:0;font-size:11px}.chat-close{cursor:pointer;color:var(--text2);background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;display:flex}.chat-close:hover{color:var(--text);background:var(--surface)}.chat-context-bar{color:var(--text2);background:rgba(var(--accent-rgb), .08);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 14px;font-size:11px;display:flex}.chat-context-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.chat-bubble{word-break:break-word;border-radius:14px;max-width:85%;padding:9px 12px;font-size:13px;line-height:1.5}.chat-bubble.user{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;border-bottom-right-radius:4px;align-self:flex-end;font-weight:500}.chat-bubble.assistant{background:var(--surface2);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.chat-typing{align-items:center;gap:4px;padding:12px 14px;display:flex}.chat-typing span{background:var(--text2);border-radius:50%;width:7px;height:7px;animation:1.2s infinite chat-bounce}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-suggestions{flex-wrap:wrap;gap:6px;padding:0 12px 10px;display:flex}.chat-suggestion-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:20px;padding:5px 11px;font-size:12px;transition:border-color .15s,color .15s}.chat-suggestion-chip:hover{border-color:var(--accent);color:var(--accent)}.chat-input-row{border-top:1px solid var(--border);background:var(--surface2);gap:8px;padding:12px;display:flex}.chat-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:20px;outline:none;flex:1;padding:8px 14px;font-size:13px}.chat-input:focus{border-color:var(--accent)}.chat-send{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .15s;display:flex}.chat-send:disabled{opacity:.4;cursor:default}.home-screen{z-index:600;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;display:flex;position:fixed;inset:0}.home-content{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:400px;display:flex}.home-logo{margin-bottom:4px}.home-title{color:var(--text);letter-spacing:-.5px;margin:0;font-size:32px;font-weight:800}.home-subtitle{color:var(--text2);margin:0 0 16px;font-size:15px}.home-choices{flex-direction:column;gap:12px;width:100%;display:flex}.home-choice{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:16px;align-items:center;gap:16px;width:100%;padding:20px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.home-choice:hover{border-color:var(--accent);box-shadow:0 6px 24px rgba(var(--accent-rgb), .15);transform:translateY(-2px)}.home-choice-icon{background:rgba(var(--accent-rgb), .12);width:52px;height:52px;color:var(--accent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-choice-title{color:var(--text);margin-bottom:3px;font-size:17px;font-weight:700;display:block}.home-choice-desc{color:var(--text2);font-size:13px;line-height:1.4;display:block}.home-credit{color:var(--text2);opacity:.5;font-size:12px;position:absolute;bottom:24px}.study-page{z-index:500;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.study-topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 16px;display:grid;position:sticky;top:0}.study-topbar-back{color:var(--accent);cursor:pointer;background:0 0;border:none;justify-self:start;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:600;display:flex}.study-topbar-back:hover{opacity:.75}.study-topbar-title{color:var(--text);text-align:center;font-size:15px;font-weight:700}.study-topbar-counter{color:var(--text2);justify-self:end;font-size:13px}.study-grid-header{text-align:center;padding:28px 20px 4px}.study-grid-header h2{color:var(--text);margin:0 0 6px;font-size:22px;font-weight:700}.study-grid-header p{color:var(--text2);margin:0;font-size:14px}.topic-grid{grid-template-columns:1fr 1fr;gap:12px;padding:20px;display:grid}.topic-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 14px 14px;transition:border-color .15s,transform .1s;display:flex}.topic-card:hover{border-color:var(--accent);transform:translateY(-2px)}.topic-icon{background:rgba(var(--accent-rgb), .1);width:48px;height:48px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;display:flex}.topic-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.3}.topic-pbar{background:var(--surface2);border-radius:2px;width:100%;height:4px;overflow:hidden}.topic-pbar-fill{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:2px;height:100%;transition:width .3s}.topic-pbar-label{color:var(--text2);font-size:11px}.study-pbar-wrap{background:var(--surface2);height:3px}.study-pbar-fill{background:linear-gradient(90deg, var(--accent), var(--accent2));height:100%;transition:width .4s}.flashcard-area{flex-direction:column;flex:1;justify-content:center;padding-bottom:40px;display:flex}.fc-wrap{perspective:1200px;justify-content:center;padding:24px 20px 0;display:flex}.fc{cursor:pointer;width:100%;max-width:480px;height:clamp(220px,38vh,320px);transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.fc-flipped{transform:rotateY(180deg)}.fc-inner{width:100%;height:100%;transform-style:preserve-3d;position:relative}.fc-front,.fc-back{text-align:center;backface-visibility:hidden;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:28px 24px;display:flex;position:absolute;inset:0}.fc-front{background:var(--surface);border:1px solid var(--border)}.fc-back{background:var(--surface2);border:1px solid var(--accent);transform:rotateY(180deg)}.fc-tag{text-transform:uppercase;letter-spacing:.1em;color:var(--text2);background:var(--surface2);border-radius:20px;padding:3px 10px;font-size:10px;font-weight:700}.fc-tag-answer{background:rgba(var(--accent-rgb), .15);color:var(--accent)}.fc-text{color:var(--text);margin:0;font-size:16px;line-height:1.6}.fc-tap{color:var(--text2);opacity:.6;font-size:12px}.fc-hint{text-align:center;color:var(--text2);opacity:.7;margin:14px 0 0;font-size:13px}.fc-actions{justify-content:center;gap:12px;padding:16px 20px 0;display:flex}.fc-btn-no,.fc-btn-yes{cursor:pointer;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;max-width:180px;padding:13px 16px;font-size:14px;font-weight:600;transition:opacity .15s,transform .1s;display:flex}.fc-btn-no:hover,.fc-btn-yes:hover{transform:translateY(-1px)}.fc-btn-no{background:var(--surface2);border:1px solid var(--border);color:var(--text2)}.fc-btn-yes{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;border:none}.study-done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px 24px;display:flex}.study-done-check{background:rgba(var(--accent-rgb), .12);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.study-done h2{color:var(--text);margin:0;font-size:24px;font-weight:700}.study-done p{color:var(--text2);margin:0;font-size:15px}.study-done-btns{gap:12px;margin-top:8px;display:flex}.study-solid-btn{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#042c53;cursor:pointer;border:none;border-radius:10px;padding:12px 22px;font-size:14px;font-weight:700}.study-outline-btn{background:var(--surface2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:12px 22px;font-size:14px;font-weight:600}.study-home{justify-content:flex-start;overflow-y:auto}.study-hero{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 12%, var(--surface)) 0%, var(--surface) 70%);border-bottom:1px solid var(--border);text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:12px;width:100%;padding:48px 32px 40px;display:flex;position:relative}.study-hero-back{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;font-size:13px;font-weight:500;transition:color .2s,background .2s;display:flex;position:absolute;top:18px;left:20px}.study-hero-back:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.study-hero-icon{background:color-mix(in srgb, var(--accent) 18%, var(--surface2));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);width:72px;height:72px;color:var(--accent);border-radius:20px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.study-hero-title{color:var(--text);letter-spacing:-.5px;background:linear-gradient(135deg, var(--accent), var(--accent2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:30px;font-weight:800}.study-hero-sub{color:var(--text2);margin:0;font-size:14px}.study-home-body{flex-direction:column;flex:1;justify-content:center;gap:14px;width:100%;max-width:620px;margin:0 auto;padding:32px 32px 48px;display:flex}.study-mode-grid{flex-direction:column;gap:14px;display:flex}.study-mode-card{background:var(--surface2);border:1.5px solid var(--border);cursor:pointer;text-align:left;border-radius:16px;flex-direction:row;align-items:center;gap:18px;width:100%;padding:22px 24px;transition:border-color .2s,transform .15s,background .2s;display:flex}.study-mode-card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--surface2));transform:translate(4px)}.study-mode-icon{background:color-mix(in srgb, var(--accent) 15%, transparent);width:60px;height:60px;color:var(--accent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.study-mode-text{flex-direction:column;flex:1;gap:4px;display:flex}.study-mode-title{color:var(--text);font-size:17px;font-weight:700}.study-mode-desc{color:var(--text2);font-size:13px;line-height:1.4}.study-home-header h2{color:var(--text)}.study-mode-arrow{color:var(--text2);flex-shrink:0;transition:color .2s,transform .2s}.study-mode-card:hover .study-mode-arrow{color:var(--accent);transform:translate(3px)}.quiz-area{flex-direction:column;flex:1;gap:16px;width:100%;max-width:640px;margin:0 auto;padding:24px 24px 32px;display:flex}.quiz-question{color:var(--text1);margin:0;font-size:18px;font-weight:600;line-height:1.5}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option{background:var(--surface2);border:1.5px solid var(--border);color:var(--text1);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;font-size:14px;transition:border-color .15s,background .15s;display:flex}.quiz-option:hover:not(.correct):not(.wrong):not(.dim){border-color:var(--accent)}.quiz-option.correct{color:var(--text1);background:#34d3991f;border-color:#34d399}.quiz-option.wrong{color:var(--text1);background:#f871711f;border-color:#f87171}.quiz-option.dim{opacity:.4}.quiz-option-letter{background:var(--surface3,var(--border));width:26px;height:26px;color:var(--text2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.quiz-feedback{flex-direction:column;align-items:flex-start;gap:12px;margin-top:4px;display:flex}.quiz-feedback-correct{color:#34d399;margin:0;font-size:14px;font-weight:600}.quiz-feedback-wrong{color:#f87171;margin:0;font-size:14px;font-weight:600}.quiz-results{flex-direction:column;flex:1;align-items:center;gap:20px;width:100%;max-width:600px;margin:0 auto;padding:24px 24px 40px;display:flex;overflow-y:auto}.quiz-score-circle{border:4px solid var(--accent);border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;width:120px;height:120px;display:flex}.quiz-score-circle.great{border-color:#34d399}.quiz-score-circle.ok{border-color:#fbbf24}.quiz-score-circle.low{border-color:#f87171}.quiz-score-pct{color:var(--text1);font-size:28px;font-weight:800;line-height:1}.quiz-score-label{color:var(--text2);font-size:11px}.quiz-results-msg{color:var(--text2);text-align:center;margin:0;font-size:15px}.quiz-review{flex-direction:column;gap:8px;width:100%;display:flex}.quiz-review-item{background:var(--surface2);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.quiz-review-item.correct{border-color:#34d39966}.quiz-review-item.wrong{border-color:#f8717166}.quiz-review-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.quiz-review-item.correct .quiz-review-icon{color:#34d399}.quiz-review-item.wrong .quiz-review-icon{color:#f87171}.quiz-review-text{flex-direction:column;gap:3px;display:flex}.quiz-review-q{color:var(--text1);margin:0;font-size:13px;line-height:1.4}.quiz-review-ans{color:#34d399;margin:0;font-size:12px;font-weight:500}.balancer-area{flex-direction:column;flex:1;gap:20px;width:100%;max-width:680px;margin:0 auto;padding:24px 32px 40px;display:flex}.balancer-difficulty{justify-content:space-between;align-items:center;display:flex}.balancer-diff-badge{letter-spacing:.06em;text-transform:uppercase;border:1.5px solid;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:700}.balancer-score-label{color:var(--text2);font-size:13px}.balancer-instruction{color:var(--text2);margin:0;font-size:14px}.balancer-equation{background:var(--surface2);border:2px solid var(--border);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px;padding:28px 24px;transition:border-color .3s;display:flex}.balancer-equation.eq-correct{border-color:#34d399}.balancer-equation.eq-wrong{border-color:#f87171}.balancer-term{align-items:center;gap:6px;display:flex}.balancer-op{color:var(--text2);font-size:22px;font-weight:300}.balancer-arrow{color:var(--text2);padding:0 4px;font-size:22px}.coeff-input{text-align:center;background:var(--surface);border:2px solid var(--border);width:44px;height:44px;color:var(--text);border-radius:10px;outline:none;font-size:20px;font-weight:700;transition:border-color .2s}.coeff-input::placeholder{color:var(--text2);font-size:16px;font-weight:400}.coeff-input:focus{border-color:var(--accent)}.coeff-input:disabled{opacity:.85}.coeff-input.coeff-ok{background:color-mix(in srgb, #34d399 10%, var(--surface));border-color:#34d399}.coeff-input.coeff-bad{background:color-mix(in srgb, #f87171 10%, var(--surface));border-color:#f87171}.balancer-formula{color:var(--text);font-size:20px;font-weight:600}.balancer-answer-row{border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.balancer-answer-row.answer-correct{color:#34d399;background:#34d3991a}.balancer-answer-row.answer-wrong{color:#f87171;background:#f871711a}.balancer-hint-btn{color:var(--text2);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:13px;transition:color .2s;display:flex}.balancer-hint-btn:hover{color:var(--accent)}.balancer-hint{background:color-mix(in srgb, var(--accent) 8%, var(--surface2));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--text2);border-radius:10px;padding:12px 16px;font-size:13px;line-height:1.5}.balancer-actions{margin-top:4px}.balancer-reset-later-btn{color:var(--text2);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline;transition:color .2s}.balancer-reset-later-btn:hover{color:var(--text)}.pt-page{overflow:hidden}.pt-challenge-btn{background:color-mix(in srgb, var(--accent) 15%, var(--surface2));color:var(--accent);border:1.5px solid color-mix(in srgb, var(--accent) 40%, transparent);cursor:pointer;white-space:nowrap;border-radius:20px;justify-self:end;padding:6px 16px;font-size:13px;font-weight:600;transition:background .2s,border-color .2s}.pt-challenge-btn:hover{background:color-mix(in srgb, var(--accent) 25%, var(--surface2));border-color:var(--accent)}.pt-question-bar{background:var(--surface2);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 24px;font-size:15px;font-weight:600;transition:background .3s,border-color .3s;display:flex}.pt-question-bar.q-correct{background:color-mix(in srgb, #34d399 10%, var(--surface2));border-bottom-color:#34d399}.pt-question-bar.q-wrong{background:color-mix(in srgb, #f87171 10%, var(--surface2));border-bottom-color:#f87171}.pt-question-text{color:var(--text);flex:1}.pt-feedback-correct{color:#34d399;flex:1;align-items:center;gap:7px;display:flex}.pt-feedback-wrong{color:#f87171;flex:1;align-items:center;gap:7px;font-size:13px;display:flex}.pt-next-btn{background:var(--accent);color:#042c53;cursor:pointer;border:none;border-radius:20px;flex-shrink:0;margin-left:auto;padding:7px 18px;font-size:13px;font-weight:700;transition:opacity .2s}.pt-next-btn:hover{opacity:.85}.pt-scroll{flex-direction:column;flex:1;align-items:center;gap:16px;padding:20px 24px 32px;display:flex;overflow:auto}.pt-legend{flex-wrap:wrap;justify-content:center;gap:6px 14px;display:flex}.pt-legend-item{color:var(--text2);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:flex}.pt-legend-dot{border-radius:3px;flex-shrink:0;width:9px;height:9px}.pt-grid{grid-template-rows:repeat(9,minmax(38px,44px));grid-template-columns:repeat(18,minmax(38px,44px)) 22px;gap:3px;width:fit-content;display:grid}.pt-period-label{color:var(--text2);justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.pt-spacer{grid-row:7;height:8px}.pt-el{border:1.5px solid color-mix(in srgb, var(--el-color) 35%, transparent);background:color-mix(in srgb, var(--el-color) 12%, var(--surface2));cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:2px 1px 3px;transition:transform .12s,border-color .15s,background .15s,opacity .2s;display:flex;position:relative}.pt-el:hover{border-color:var(--el-color);background:color-mix(in srgb, var(--el-color) 28%, var(--surface2));z-index:10;transform:scale(1.15)}.pt-el-z{color:var(--text2);align-self:flex-start;padding-left:3px;font-size:8px;line-height:1}.pt-el-sym{color:var(--el-color);font-size:13px;font-weight:700;line-height:1.1}.pt-el-correct{z-index:10;transform:scale(1.2);background:color-mix(in srgb, #34d399 30%, var(--surface2))!important;border-color:#34d399!important}.pt-el-wrong{z-index:10;transform:scale(1.2);background:color-mix(in srgb, #f87171 30%, var(--surface2))!important;border-color:#f87171!important}.pt-el-reveal{animation:.6s infinite alternate pt-pulse;border-color:#34d399!important}@keyframes pt-pulse{0%{background:color-mix(in srgb, #34d399 12%, var(--surface2))}to{background:color-mix(in srgb, #34d399 30%, var(--surface2))}}.pt-el-dim{opacity:.35}.pt-el-selected{z-index:10;transform:scale(1.15);border-color:var(--accent)!important;background:color-mix(in srgb, var(--accent) 25%, var(--surface2))!important}.pt-info-panel{background:var(--surface2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:16px;max-width:400px;padding:16px 20px;display:flex}.pt-info-tile{background:color-mix(in srgb, var(--el-color) 20%, var(--surface));border:2px solid var(--el-color);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.pt-info-z{color:var(--text2);font-size:10px}.pt-info-sym{color:var(--el-color);font-size:22px;font-weight:800;line-height:1}.pt-info-text{flex-direction:column;gap:4px;display:flex}.pt-info-name{color:var(--text);font-size:18px;font-weight:700}.pt-info-meta{color:var(--text2);font-size:12px}.pt-browse-hint{color:var(--text2);text-align:center;margin:4px 0 0;padding:0 16px;font-size:13px}.pt-phase-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text2);flex-shrink:0;font-size:10px;font-weight:700}.pt-followup-bar{background:var(--surface2);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:12px;padding:16px 24px;transition:background .3s,border-color .3s;display:flex}.pt-followup-bar.q-correct{background:color-mix(in srgb, #34d399 10%, var(--surface2));border-bottom-color:#34d399}.pt-followup-bar.q-wrong{background:color-mix(in srgb, #f87171 10%, var(--surface2));border-bottom-color:#f87171}.pt-followup-top{align-items:center;gap:10px;display:flex}.pt-followup-options{flex-wrap:wrap;gap:8px;display:flex}.pt-fopt{background:var(--surface);border:1.5px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s}.pt-fopt:hover{border-color:var(--accent)}.pt-fopt.fopt-correct{background:color-mix(in srgb, #34d399 15%, var(--surface));color:#34d399;border-color:#34d399;font-weight:700}.pt-fopt.fopt-wrong{background:color-mix(in srgb, #f87171 15%, var(--surface));color:#f87171;border-color:#f87171}.pt-fopt.fopt-dim{opacity:.4}.pt-question-bar .pt-phase-tag{flex-shrink:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#080f1a;--surface:#0f1828;--surface2:#162235;--border:#1e3350;--accent:#38bdf8;--accent2:#7dd3fc;--accent-rgb:56, 189, 248;--text:#e0f2fe;--text2:#7bc8e8;--error:#ff6b6b;--success:#50fa7b;--overlay-bg:#080f1ab3;--overlay-border:#ffffff1a;--radius:12px;--font:"DM Sans", system-ui, sans-serif}[data-theme=light]{--bg:#f0f8ff;--surface:#fff;--surface2:#e0f2fe;--border:#bae6fd;--accent:#0284c7;--accent2:#0ea5e9;--accent-rgb:2, 132, 199;--text:#0c1a2e;--text2:#0369a1;--error:#ff9a9a;--success:#8fe3ad;--overlay-bg:#f0f8ffbf;--overlay-border:#0284c71f}button,input,select,textarea{font-family:var(--font)}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);transition:background .2s,color .2s}body{overflow:hidden}
