@import"https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:wght@300;400;500;600&family=Bebas+Neue&display=swap";html,body,#root{width:100%;min-height:100%}:root{--bg: #090b11;--surface: #111624;--surface-2: #171e31;--border: #27314a;--text: #ebefff;--muted: #96a1be;--cyan: #18d9da;--blue: #00d6ff;--orange: #ff8a3d;--green: #49d889;--mono: "Space Mono", monospace;--sans: "DM Sans", sans-serif;--display: "Bebas Neue", cursive}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:radial-gradient(circle at 20% 10%,#132036,var(--bg) 46%);color:var(--text)}.app-shell{min-height:100vh;display:flex}.sidebar{width:286px;height:100vh;border-right:1px solid var(--border);background:#111624f7;display:flex;flex-direction:column;overflow-y:auto;position:sticky;top:0}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.brand{border-bottom:1px solid var(--border);padding:24px 20px 16px}.brand-code{font-family:var(--mono);color:var(--blue);letter-spacing:2px;font-size:10px;margin-bottom:6px}.brand h1{font-family:var(--display);line-height:.9;font-size:24px;letter-spacing:1px}.brand p{margin-top:7px;color:var(--muted);font-size:12px}.nav-group{padding:10px 8px 2px}.nav-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);padding:0 10px;margin-bottom:5px}.nav-item{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);margin-bottom:2px;display:flex;align-items:center;gap:9px;padding:9px 10px;font-size:13px;text-align:left;cursor:pointer;transition:all .18s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:#00d6ff1a;border-color:#00d6ff52;color:var(--blue)}.nav-dot{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-family:var(--mono);font-size:10px;background:var(--surface-2);flex-shrink:0}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding:14px 18px 16px}.progress-head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:8px}.progress-track{width:100%;height:4px;border-radius:999px;background:var(--border);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .3s ease}.main-panel{flex:1;min-height:100vh;overflow-y:auto}.main-panel::-webkit-scrollbar{width:6px}.main-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.page{max-width:980px;padding:42px 52px;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-badge{display:inline-flex;align-items:center;border:1px solid rgba(0,214,255,.33);background:#00d6ff1a;color:var(--blue);border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:1.3px;padding:6px 14px;margin-bottom:20px}.hero-title{font-family:var(--display);font-size:56px;letter-spacing:1.6px;line-height:.92}.hero-title span{color:var(--cyan)}.hero-text{max-width:730px;margin-top:10px;margin-bottom:24px;color:var(--muted);line-height:1.75;font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.tag{font-family:var(--mono);font-size:11px;border:1px solid;border-radius:6px;padding:3px 8px}.tag.cyan{color:var(--blue);background:#00d6ff17;border-color:#00d6ff4d}.tag.green{color:var(--green);background:#49d88917;border-color:#49d8894d}.tag.orange{color:var(--orange);background:#ff8a3d1a;border-color:#ff8a3d4f}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:20px}.jump-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;text-align:left;padding:18px;color:var(--text);cursor:pointer;transition:all .2s}.jump-card:hover{transform:translateY(-2px);border-color:#00d6ff59}.jump-card span{display:block;font-family:var(--mono);color:var(--muted);font-size:10px;letter-spacing:1.4px;margin-bottom:6px}.jump-card h4{font-size:15px;margin-bottom:5px}.jump-card p{color:var(--muted);line-height:1.5;font-size:12px}.section-header{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:14px}.section-tag{font-family:var(--mono);color:var(--orange);letter-spacing:1.6px;font-size:10px;text-transform:uppercase;margin-bottom:6px}.section-header h3{font-family:var(--display);font-size:41px;letter-spacing:1px;line-height:.95}.section-header p{margin-top:7px;color:var(--muted);line-height:1.6;font-size:14px}.content-block{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:22px 24px;margin-bottom:14px}.content-block h4{font-family:var(--mono);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue);margin-bottom:10px}.content-block p{color:#ccd4ea;font-size:14px;line-height:1.74;margin-bottom:8px}.content-block p:last-child{margin-bottom:0}.content-block ul{list-style:none}.content-block li{position:relative;color:#ccd4ea;font-size:14px;line-height:1.64;margin:8px 0;padding-left:16px}.content-block li:before{content:">";position:absolute;left:0;color:var(--cyan)}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.table{width:100%;border-collapse:collapse;margin-top:8px;font-family:var(--mono);font-size:12px}.table th,.table td{border:1px solid var(--border);text-align:center;padding:7px 9px}.table th{font-size:10px;color:var(--blue);background:#00d6ff17}.table tr:nth-child(2n) td{background:#ffffff05}.formula{font-family:var(--mono);font-size:13px;color:var(--cyan);border:1px solid var(--border);border-left:3px solid var(--cyan);border-radius:0 8px 8px 0;background:var(--surface-2);padding:10px 12px;margin:10px 0}.info-box{border:1px solid;border-radius:9px;padding:11px 13px;margin-top:10px;font-size:13px;line-height:1.58}.info-box.info{border-color:#00d6ff59;background:#00d6ff1a;color:#c6f5ff}.info-box.ok{border-color:#49d88959;background:#49d88917;color:#cbf6de}.info-box.warn{border-color:#ff8a3d59;background:#ff8a3d1a;color:#ffd7c0}.term{color:var(--orange);border-bottom:1px dashed var(--orange);position:relative;cursor:help}.term-tip{opacity:0;pointer-events:none;position:absolute;left:0;bottom:calc(100% + 8px);width:250px;background:#121a2f;border:1px solid rgba(255,138,61,.35);border-radius:8px;padding:9px 10px;color:var(--text);font-size:12px;line-height:1.45;box-shadow:0 10px 28px #00000073;transition:opacity .15s}.term:hover .term-tip{opacity:1}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pill{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);padding:7px 13px;border-radius:8px;font-family:var(--mono);font-size:12px;cursor:pointer}.pill.active{border-color:#00d6ff61;color:var(--blue);background:#00d6ff17}.flash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:12px}.flash-card{height:190px;border:none;background:transparent;cursor:pointer;perspective:1000px}.flash-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .45s ease}.flash-card.flipped .flash-inner{transform:rotateY(180deg)}.flash-front,.flash-back{position:absolute;inset:0;border:1px solid var(--border);border-radius:12px;backface-visibility:hidden;padding:18px;display:flex;flex-direction:column;justify-content:center}.flash-front{background:var(--surface)}.flash-back{transform:rotateY(180deg);background:linear-gradient(135deg,#00d6ff1f,#49d8891c)}.flash-meta{font-family:var(--mono);color:var(--muted);font-size:10px;margin-bottom:8px}.flash-front p{font-size:14px;font-weight:600;line-height:1.5}.flash-back p{font-size:13px;line-height:1.6;color:#d4dcf6}.quiz-list{max-width:780px}.quiz-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:20px;margin-bottom:14px}.quiz-meta{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:10px}.module-badge{border:1px solid;border-radius:999px;padding:2px 9px;font-size:9px}.module-badge.lec1{color:var(--blue);border-color:#00d6ff59}.module-badge.note1{color:var(--cyan);border-color:#18d9da59}.module-badge.note2{color:var(--orange);border-color:#ff8a3d59}.quiz-card h5{font-size:15px;line-height:1.6;margin-bottom:11px}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;color:var(--text);text-align:left;cursor:pointer;padding:10px 12px;font-size:13px;line-height:1.45;display:flex;gap:10px;align-items:center}.quiz-option:hover:not(.locked){border-color:#00d6ff61}.quiz-option.selected{border-color:#00d6ff80;background:#00d6ff17}.quiz-option.correct{border-color:#49d88980;background:#49d8891c;color:#c4f5db}.quiz-option.wrong{border-color:#ff666680;background:#ff66661c;color:#ffd0d0}.quiz-option.locked{pointer-events:none}.letter{width:22px;height:22px;border-radius:50%;background:var(--border);font-family:var(--mono);font-size:10px;display:grid;place-items:center;flex-shrink:0}.feedback{margin-top:10px;border-radius:8px;border:1px solid;padding:10px 12px;font-size:13px;line-height:1.56}.feedback.ok{border-color:#49d88966;background:#49d8891a;color:#d0f9e4}.feedback.bad{border-color:#f666;background:#ff666617;color:#ffd8d8}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px}.action{border-radius:8px;font-size:12px;font-weight:600;padding:10px 16px;cursor:pointer}.action.primary{border:none;background:var(--blue);color:#041018}.action.primary:disabled{opacity:.45;cursor:not-allowed}.action.secondary{border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.quiz-container.interactive{max-width:780px;display:flex;flex-direction:column;gap:16px}.quiz-progress-bar{width:100%;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:8px}.quiz-progress-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .4s cubic-bezier(.175,.885,.32,1.275)}.quiz-card.interactive-card{margin-bottom:0;min-height:280px;display:flex;flex-direction:column}.interactive-card h5{font-size:17px;margin-bottom:16px}.interactive-feedback{margin-top:16px;padding:14px 16px;font-size:14px;border-radius:8px;line-height:1.5;border:1px solid transparent;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.interactive-feedback.ok{background:#49d88914;border-color:#49d8894d;color:#d0f9e4}.interactive-feedback.bad{background:#ff666614;border-color:#ff66664d;color:#ffd8d8}.feedback-text{opacity:.9}.button-row.interactive-row{justify-content:flex-end;margin-top:4px}.action.highlight{box-shadow:0 0 15px #00d6ff66}.quiz-results{max-width:780px;display:flex;flex-direction:column;align-items:center;gap:24px;padding:40px 0;animation:fadeIn .4s ease}.quiz-results h4{font-family:var(--display);font-size:32px;color:var(--text);letter-spacing:1px}.score-box{max-width:780px;margin-bottom:14px;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:20px;text-align:center}.score-box.large{width:100%;max-width:320px;padding:40px 20px;background:linear-gradient(135deg,#00d6ff0d,#49d8890d);border-color:#00d6ff33}.score-box.large h2{font-family:var(--display);font-size:64px;line-height:.9;background:linear-gradient(130deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.score-box h4{font-family:var(--display);font-size:54px;line-height:.9;letter-spacing:1.3px;background:linear-gradient(130deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.score-box p{margin-top:6px;color:var(--muted)}.glossary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.glossary-card{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:15px}.glossary-card h5{font-family:var(--mono);color:var(--blue);font-size:12px;margin-bottom:5px}.glossary-card p{color:#ccd5eb;font-size:13px;line-height:1.55}.glossary-card small{display:inline-block;margin-top:7px;font-family:var(--mono);color:var(--muted);font-size:10px}.file-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.file-card{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:14px}.file-card h5{font-size:13px;margin-bottom:6px}.file-card p{font-size:12px;color:var(--muted);line-height:1.55}@media(max-width:860px){.sidebar{display:none}.page{padding:22px 16px}.hero-title{font-size:42px}.split{grid-template-columns:1fr}}.ai-badge{background:linear-gradient(135deg,#7c3aed,#4f46e5)!important;color:#fff!important;letter-spacing:.08em}.ai-quiz-config{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:28px;display:flex;flex-direction:column;gap:18px}.ai-config-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ai-config-row label{font-size:.82rem;font-weight:600;letter-spacing:.06em;color:var(--muted);min-width:110px;text-transform:uppercase}.ai-select{flex:1;min-width:200px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--sans);font-size:.9rem;padding:10px 14px;cursor:pointer;outline:none;transition:border-color .2s}.ai-select:focus{border-color:#7c3aed}.count-pills{display:flex;gap:8px;flex-wrap:wrap}.ai-generate-btn{background:linear-gradient(135deg,#7c3aed,#4f46e5);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:700;letter-spacing:.04em;padding:14px 28px;cursor:pointer;transition:opacity .2s,transform .15s;align-self:flex-start;box-shadow:0 4px 22px #7c3aed66}.ai-generate-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.ai-generate-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.ai-generating{display:flex;align-items:center;gap:10px}.ai-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.ai-loading-area{display:flex;flex-direction:column;gap:14px;padding:24px 0}.ai-shimmer{height:18px;border-radius:8px;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite;width:100%}.ai-shimmer.short{width:60%}.ai-loading-label{color:var(--muted);font-size:.85rem;text-align:center;margin-top:8px;letter-spacing:.04em}.ai-error{border-color:#ef4444!important;background:#ef444414!important;margin-bottom:18px}.ai-fresh-badge{font-size:.78rem;color:#a78bfa;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px}.ai-idle-area{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted)}.ai-idle-icon{font-size:3.5rem;line-height:1;background:linear-gradient(135deg,#7c3aed,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.ai-idle-area p{font-size:1rem;max-width:420px}.ai-idle-sub{font-size:.82rem!important;color:#5a6480!important}.ai-history{margin-top:40px;border-top:1px solid var(--border);padding-top:28px}.ai-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.ai-history-title{font-size:.95rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ai-clear-btn{background:none;border:1px solid #3b4460;border-radius:6px;color:var(--muted);font-size:.76rem;padding:5px 12px;cursor:pointer;transition:border-color .2s,color .2s;font-family:var(--sans)}.ai-clear-btn:hover{border-color:#ef4444;color:#ef4444}.ai-session-list{display:flex;flex-direction:column;gap:10px}.ai-session-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 18px;display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;transition:border-color .2s,background .2s}.ai-session-card.completed{border-left:3px solid #49d889}.ai-session-card.pending{border-left:3px solid #4b5577}.ai-session-card:hover{background:var(--surface-2);border-color:#344169}.ai-session-info{display:flex;flex-direction:column;gap:4px;min-width:0}.ai-session-topic{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-session-date{font-size:.73rem;color:var(--muted);font-family:var(--mono)}.ai-session-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.ai-session-qcount{font-size:.73rem;color:var(--muted)}.ai-session-score{font-size:.82rem;font-weight:700;font-family:var(--mono);padding:2px 8px;border-radius:20px}.ai-session-score.grade-a{background:#49d88926;color:#49d889}.ai-session-score.grade-b{background:#00d6ff1f;color:#00d6ff}.ai-session-score.grade-c{background:#ff8a3d26;color:#ff8a3d}.ai-session-score.grade-d{background:#ef444426;color:#f87171}.ai-session-pending{font-size:.76rem;color:#4b5577;font-style:italic}.ai-session-actions{display:flex;gap:8px;align-items:center}.ai-session-btn{border:none;border-radius:7px;font-size:.76rem;font-weight:600;padding:6px 12px;cursor:pointer;font-family:var(--sans);transition:opacity .2s,transform .1s}.ai-session-btn:hover{opacity:.85;transform:translateY(-1px)}.ai-session-btn.replay{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff}.ai-session-btn.delete{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25);padding:6px 9px}.ai-session-btn.delete:hover{background:#ef444438}.provider-pills{display:flex;gap:10px;flex-wrap:wrap}.provider-pill{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;font-family:var(--sans);position:relative;flex:1;min-width:150px;text-align:left}.provider-pill:hover{border-color:#7c3aed;transform:translateY(-1px)}.provider-pill.active{border-color:#7c3aed;background:#7c3aed1f}.provider-pill.free.active{border-color:#10b981;background:#10b9811a}.provider-pill.free:hover{border-color:#10b981}.free-tag{position:absolute;top:-1px;right:-1px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.65rem;font-weight:800;letter-spacing:.06em;padding:2px 7px;border-radius:0 9px 0 7px}.provider-name{font-size:.83rem;font-weight:700;color:var(--text)}.provider-sub{font-size:.7rem;color:var(--muted);font-family:var(--mono)}.mobile-header,.mobile-drawer,.mobile-overlay{display:none}@media(max-width:768px){.sidebar{display:none}.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:200;height:56px;padding:0 16px;background:#090b11f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.mobile-brand{display:flex;flex-direction:column;gap:0}.mobile-brand-code{font-family:var(--mono);font-size:9px;color:var(--blue);letter-spacing:2px}.mobile-brand-title{font-family:var(--display);font-size:16px;letter-spacing:1px;line-height:1}.hamburger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background .2s}.hamburger:hover{background:var(--surface-2)}.hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-overlay{display:block;position:fixed;inset:0;z-index:250;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayIn .25s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.mobile-drawer{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:min(80vw,300px);z-index:300;background:#0b0e16fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--border);overflow-y:auto;transform:translate(-100%);transition:transform .32s cubic-bezier(.4,0,.2,1)}.mobile-drawer.open{transform:translate(0)}.main-panel{padding-top:56px}.page{padding:24px 18px 40px!important}}.hp-anim{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);transition-delay:var(--d, 0ms)}.hp-visible .hp-anim{opacity:1;transform:translateY(0)}.home-page{position:relative;overflow:hidden;max-width:1100px;padding:52px 56px 80px}.hp-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.hp-particle{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--blue);opacity:0;animation:particleFloat var(--dur, 7s) linear var(--del, 0s) infinite}.hp-particle:nth-child(odd){background:var(--cyan);width:2px;height:2px}.hp-particle:nth-child(3n){background:var(--orange)}.hp-particle:nth-child(5n){background:#a78bfa}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh) scale(.4)}10%{opacity:.5}90%{opacity:.3}to{opacity:0;transform:translateY(-120px) scale(1.2)}}.hp-hero{position:relative;z-index:1;margin-bottom:36px}.hp-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue);margin-bottom:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hp-eyebrow-dot{color:var(--border)}.hp-title{font-family:var(--display);font-size:clamp(52px,8vw,96px);line-height:.9;letter-spacing:2px;margin-bottom:20px}.hp-title-line1{display:inline-block;background:linear-gradient(135deg,#fff 30%,var(--blue) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hp-title-line2{display:inline-block;background:linear-gradient(135deg,var(--cyan) 0%,#a78bfa 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hp-subtitle{max-width:560px;font-size:1rem;color:var(--muted);line-height:1.7;margin-bottom:28px}.hp-subtitle em{color:var(--cyan);font-style:normal;font-weight:600}.hp-cta-row{display:flex;gap:12px;flex-wrap:wrap}.hp-cta-primary{background:linear-gradient(135deg,#00d6ff,#7c3aed);color:#fff;border:none;border-radius:10px;padding:13px 28px;font-family:var(--sans);font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 24px #00d6ff40}.hp-cta-primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 8px 32px #00d6ff59}.hp-cta-secondary{background:#7c3aed26;color:#a78bfa;border:1.5px solid rgba(124,58,237,.4);border-radius:10px;padding:13px 24px;font-family:var(--sans);font-size:.95rem;font-weight:700;cursor:pointer;transition:background .2s,transform .15s}.hp-cta-secondary:hover{background:#7c3aed40;transform:translateY(-2px)}.hp-stats{display:flex;gap:0;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:28px;background:var(--surface);position:relative;z-index:1}.hp-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:18px 12px;border-right:1px solid var(--border);transition:background .2s}.hp-stat:last-child{border-right:none}.hp-stat:hover{background:var(--surface-2)}.hp-stat-val{font-family:var(--display);font-size:2rem;background:linear-gradient(135deg,var(--blue),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;margin-bottom:4px}.hp-stat-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.hp-section-label{font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:32px 0 14px;position:relative;z-index:1}.hp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:40px;position:relative;z-index:1}.hp-card{display:flex;align-items:flex-start;gap:14px;padding:18px 16px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent, var(--blue));border-radius:12px;text-align:left;cursor:pointer;transition:background .2s,transform .18s,border-color .2s,box-shadow .2s;font-family:var(--sans)}.hp-card:hover{background:var(--surface-2);transform:translateY(-3px);box-shadow:0 8px 28px #0000004d;border-color:var(--accent, var(--blue))}.hp-card-icon{font-size:1.5rem;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:#ffffff0d;color:var(--accent, var(--blue));flex-shrink:0}.hp-card-body{flex:1}.hp-card-tag{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent, var(--blue));display:block;margin-bottom:4px}.hp-card-title{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:4px}.hp-card-desc{font-size:.78rem;color:var(--muted);line-height:1.5}.hp-card-arrow{color:var(--muted);font-size:1rem;opacity:0;transform:translate(-4px);transition:opacity .2s,transform .2s;flex-shrink:0;align-self:center}.hp-card:hover .hp-card-arrow{opacity:1;transform:translate(0)}.hp-flow,.hp-perf{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 28px;margin-bottom:20px;position:relative;z-index:1}.hp-flow-title{font-size:.9rem;font-weight:700;color:var(--text);margin-bottom:18px;letter-spacing:.03em}.hp-flow-steps{display:flex;flex-direction:column;gap:10px;list-style:none;counter-reset:none}.hp-flow-step{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;color:var(--muted)}.hp-step-num{width:22px;height:22px;border-radius:6px;background:#00d6ff1f;border:1px solid rgba(0,214,255,.25);color:var(--blue);font-family:var(--mono);font-size:10px;display:grid;place-items:center;flex-shrink:0;margin-top:1px}.hp-perf-grid{display:flex;flex-wrap:wrap;gap:20px}.hp-perf-card{display:flex;flex-direction:column;align-items:center;gap:8px}.hp-perf-ring{width:64px;height:64px;border-radius:50%;border:3px solid rgba(0,214,255,.2);display:grid;place-items:center;background:conic-gradient(var(--blue) calc(var(--pct) * 1%),var(--surface-2) 0);position:relative}.hp-perf-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--surface)}.hp-perf-ring span{position:relative;z-index:1;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--cyan)}.hp-perf-card p{font-size:.72rem;color:var(--muted);text-align:center;max-width:80px;line-height:1.3}.hp-signin-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,#ff8a3d1f,#a78bfa14);border:1px solid rgba(255,138,61,.35);border-radius:14px;padding:18px 22px;margin-bottom:8px;position:relative;z-index:1}.hp-signin-banner-content{display:flex;align-items:center;gap:14px}.hp-signin-banner-icon{font-size:1.6rem;width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:#ff8a3d26;flex-shrink:0}.hp-signin-banner-title{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:3px}.hp-signin-banner-sub{font-size:.78rem;color:var(--muted);line-height:1.4;max-width:420px}.hp-signin-banner-btn{background:linear-gradient(135deg,#ff8a3d,#a78bfa);color:#fff;border:none;border-radius:10px;padding:11px 22px;font-family:var(--sans);font-size:.88rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 20px #ff8a3d4d;flex-shrink:0}.hp-signin-banner-btn:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 8px 28px #ff8a3d66}@media(max-width:768px){.home-page{padding:24px 16px 60px}.hp-stats{flex-wrap:wrap}.hp-stat{flex:1 1 40%;border-bottom:1px solid var(--border)}.hp-card-grid{grid-template-columns:1fr}.hp-flow,.hp-perf{padding:18px 16px}.hp-signin-banner{flex-direction:column;align-items:flex-start}.hp-signin-banner-btn{width:100%;text-align:center}}.splash-root{position:fixed;inset:0;z-index:9999;background:#060810;display:flex;align-items:center;justify-content:center;overflow:hidden}.splash-root.splash-exit{animation:splashOut .65s cubic-bezier(.7,0,1,1) forwards}@keyframes splashOut{0%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.08);pointer-events:none}}.splash-grid{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .8s ease}.splash-grid.visible{opacity:1}.splash-scan{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--blue) 30%,rgba(0,214,255,.8) 50%,var(--blue) 70%,transparent 100%);box-shadow:0 0 20px #00d6ff99,0 0 60px #00d6ff33;animation:scanLine 1.2s ease-in-out forwards}@keyframes scanLine{0%{top:0%;opacity:0}5%{opacity:1}to{top:100%;opacity:0}}.splash-particles{position:absolute;inset:0;pointer-events:none}.splash-particle{position:absolute;bottom:-8px;width:2px;height:2px;border-radius:50%;background:var(--blue);animation:splashParticle linear infinite}.splash-particle:nth-child(odd){background:var(--cyan)}.splash-particle:nth-child(3n){background:#a78bfa;width:3px;height:3px}.splash-particle:nth-child(5n){background:var(--orange)}@keyframes splashParticle{0%{opacity:0;transform:translateY(0) scale(.5)}10%{opacity:.7}90%{opacity:.4}to{opacity:0;transform:translateY(-100vh) scale(1.2)}}.splash-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}.splash-hex-ring{width:110px;height:110px;border-radius:50%;border:2px solid transparent;background:linear-gradient(#060810,#060810) padding-box,linear-gradient(135deg,var(--blue),#a78bfa,var(--cyan)) border-box;display:grid;place-items:center;opacity:0;transform:scale(.6) rotate(-30deg);transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1);box-shadow:0 0 40px #00d6ff4d,0 0 80px #7c3aed26;animation:hexPulse 3s ease-in-out 1s infinite}.splash-hex-ring.visible{opacity:1;transform:scale(1) rotate(0)}@keyframes hexPulse{0%,to{box-shadow:0 0 40px #00d6ff4d,0 0 80px #7c3aed26}50%{box-shadow:0 0 60px #00d6ff80,0 0 120px #7c3aed4d}}.splash-hex-inner{display:flex;flex-direction:column;align-items:center;line-height:1}.splash-hex-code{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--blue)}.splash-hex-num{font-family:var(--display);font-size:36px;letter-spacing:2px;background:linear-gradient(135deg,var(--blue),#a78bfa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.splash-title{font-family:var(--display);font-size:clamp(36px,6vw,72px);letter-spacing:3px;line-height:.9;opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;background:linear-gradient(135deg,#fff 20%,var(--blue) 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.splash-title.visible{opacity:1;transform:translateY(0)}.splash-title-2{background:linear-gradient(135deg,var(--cyan) 0%,#a78bfa 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.splash-sub{font-family:var(--mono);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);opacity:0;transition:opacity .5s ease .1s}.splash-sub.visible{opacity:1}.splash-bar-wrap{width:min(340px,80vw);opacity:0;transition:opacity .4s ease}.splash-bar-wrap.visible{opacity:1}.splash-bar-track{height:3px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-bottom:8px}.splash-bar-fill{height:100%;background:linear-gradient(90deg,#7c3aed,var(--blue),var(--cyan));border-radius:999px;transition:width .06s linear;box-shadow:0 0 12px #00d6ff80}.splash-bar-pct{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--blue);text-align:center}.splash-corner{position:absolute;width:24px;height:24px;opacity:0;transition:opacity .5s ease}.splash-corner.visible{opacity:1}.splash-corner-tl{top:20px;left:20px;border-top:2px solid var(--blue);border-left:2px solid var(--blue)}.splash-corner-tr{top:20px;right:20px;border-top:2px solid var(--blue);border-right:2px solid var(--blue)}.splash-corner-bl{bottom:20px;left:20px;border-bottom:2px solid var(--blue);border-left:2px solid var(--blue)}.splash-corner-br{bottom:20px;right:20px;border-bottom:2px solid var(--blue);border-right:2px solid var(--blue)}.gem-lock-overlay{position:fixed;inset:0;z-index:8000;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px;animation:overlayFadeIn .2s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.gem-lock-modal{background:linear-gradient(145deg,#111624,#0d1220);border:1px solid var(--border);border-radius:18px;padding:32px 28px;max-width:380px;width:100%;text-align:center;box-shadow:0 24px 80px #0009,0 0 0 1px #7c3aed33;animation:modalIn .3s cubic-bezier(.22,1,.36,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.gem-lock-modal.shake{animation:shake .45s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-3px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}.gem-lock-icon{font-size:2.5rem;margin-bottom:12px;display:block;animation:lockBounce .6s ease}@keyframes lockBounce{0%{transform:scale(.5) rotate(-20deg);opacity:0}60%{transform:scale(1.15) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0)}}.gem-lock-title{font-family:var(--display);font-size:1.4rem;letter-spacing:.05em;color:var(--text);margin-bottom:10px}.gem-lock-desc{font-size:.84rem;color:var(--muted);line-height:1.6;margin-bottom:20px}.gem-lock-input{width:100%;padding:12px 16px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--mono);font-size:1rem;letter-spacing:3px;text-align:center;outline:none;transition:border-color .2s;margin-bottom:8px}.gem-lock-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.gem-lock-error{color:#f87171;font-size:.78rem;margin-bottom:12px;font-family:var(--mono)}.gem-lock-actions{display:flex;gap:10px;margin-top:12px}.gem-lock-btn{flex:1;padding:11px;border-radius:10px;font-family:var(--sans);font-weight:700;font-size:.88rem;cursor:pointer;border:none;transition:opacity .2s,transform .15s}.gem-lock-btn:hover{opacity:.88;transform:translateY(-1px)}.gem-lock-btn.cancel{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.gem-lock-btn.unlock{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;box-shadow:0 4px 16px #7c3aed4d}.gem-lock-hint{margin-top:16px;font-size:.76rem;color:var(--muted);line-height:1.5}.gem-lock-hint strong{color:var(--cyan)}.lock-tag{position:absolute;top:-1px;right:-1px;font-size:.65rem;padding:2px 6px;border-radius:0 9px 0 7px;background:#ef444426;border:1px solid rgba(239,68,68,.3)}.provider-pill.locked{opacity:.7}.provider-pill.locked:hover{border-color:#ef444466;opacity:1}.sidebar-user{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);position:relative}.sidebar-user-row{display:flex;align-items:center;gap:10px;cursor:pointer;padding:7px 8px;border-radius:10px;transition:background .2s}.sidebar-user-row:hover{background:var(--surface-2)}.sidebar-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.sidebar-avatar.sm{width:28px;height:28px;font-size:10px}.sidebar-user-info{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-matric{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.5px}.sidebar-user-caret{font-size:10px;color:var(--muted)}.sidebar-user-menu{position:absolute;bottom:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #0006;z-index:100;animation:menuSlideUp .18s ease}@keyframes menuSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sidebar-user-menu button{width:100%;padding:11px 14px;background:transparent;border:none;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:8px}.sidebar-user-menu button:hover{background:var(--surface-2)}.sidebar-user-menu button.signout{color:#f87171}.sidebar-signin-btn{width:100%;padding:10px 14px;background:#00d6ff14;border:1.5px dashed rgba(0,214,255,.25);border-radius:10px;color:var(--blue);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s;text-align:center}.sidebar-signin-btn:hover{background:#00d6ff24;border-color:#00d6ff73}.mobile-header-right{display:flex;align-items:center;gap:8px}.mobile-signin-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:4px}.auth-overlay{position:fixed;inset:0;z-index:9000;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:16px;animation:overlayFadeIn .2s ease}.auth-modal{background:linear-gradient(145deg,#111624,#0d1220);border:1px solid var(--border);border-radius:20px;padding:32px;max-width:440px;width:100%;position:relative;box-shadow:0 32px 80px #0009,0 0 0 1px #00d6ff1a;animation:modalIn .3s cubic-bezier(.22,1,.36,1)}.auth-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s,background .15s}.auth-close:hover{color:var(--text);background:var(--surface-2)}.auth-header{margin-bottom:24px;text-align:center}.auth-logo{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--blue);margin-bottom:8px}.auth-title{font-family:var(--display);font-size:1.6rem;letter-spacing:.04em;color:var(--text);margin-bottom:6px}.auth-muted{font-size:.84rem;color:var(--muted);line-height:1.5}.auth-muted strong{color:var(--cyan)}.auth-tabs{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:22px}.auth-tab{flex:1;padding:10px;background:transparent;border:none;color:var(--muted);font-family:var(--sans);font-size:.88rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s}.auth-tab.active{background:#00d6ff1a;color:var(--blue)}.auth-tab:hover:not(.active){background:var(--surface-2)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field label{font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.02em}.auth-field-hint{font-weight:400;color:var(--border)}.auth-field input{padding:11px 14px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:9px;color:var(--text);font-family:var(--sans);font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s}.auth-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #00d6ff26}.auth-error{color:#f87171;font-size:.8rem;font-family:var(--mono);padding:8px 12px;background:#f871711a;border-radius:7px;border:1px solid rgba(248,113,113,.2)}.auth-btn{padding:12px;border-radius:10px;font-family:var(--sans);font-weight:700;font-size:.95rem;cursor:pointer;border:none;transition:opacity .2s,transform .15s}.auth-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn.primary{background:linear-gradient(135deg,var(--blue),#7c3aed);color:#fff;box-shadow:0 4px 20px #00d6ff33}.auth-confirm-icon{font-size:3rem;text-align:center;display:block;margin-bottom:12px}.avatar-circle{border-radius:50%;display:grid;place-items:center;flex-shrink:0;overflow:hidden;position:relative}.avatar-sm{width:28px;height:28px}.avatar-md{width:36px;height:36px}.avatar-lg{width:72px;height:72px}.avatar-peep-img{width:130%;height:130%;object-fit:cover;object-position:center top;pointer-events:none;display:block}.avatar-initials{font-family:var(--mono);font-size:12px;font-weight:700;color:#fff}.avatar-sm .avatar-initials{font-size:10px}.avatar-lg .avatar-initials{font-size:22px}.avatar-picker{display:flex;flex-direction:column;gap:8px}.avatar-picker-label{font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.02em}.avatar-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.avatar-option{aspect-ratio:1;border-radius:50%;border:2.5px solid transparent;cursor:pointer;overflow:hidden;position:relative;transition:transform .15s,border-color .15s,box-shadow .15s;padding:0;outline:none}.avatar-option:hover{transform:scale(1.12);box-shadow:0 0 0 3px #00d6ff59}.avatar-option.selected{border-color:var(--cyan);box-shadow:0 0 0 3px #00d6ff66;transform:scale(1.1)}.auth-avatar-preview{display:flex;justify-content:center;margin-bottom:4px}.auth-avatar-preview .avatar-circle{box-shadow:0 0 0 3px #00d6ff4d}.auth-avatar-preview .avatar-initials{font-size:20px}.lb-page{max-width:1000px;padding:42px 52px 80px}.lb-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.lb-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue);margin-bottom:8px}.lb-title{font-family:var(--display);font-size:clamp(28px,4vw,48px);letter-spacing:1px;color:var(--text);margin-bottom:6px}.lb-sub{font-size:.88rem;color:var(--muted)}.lb-my-rank strong{color:var(--cyan)}.lb-live-dot{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--green);padding:6px 12px;border:1px solid rgba(73,216,137,.3);border-radius:999px;white-space:nowrap}.lb-live-pulse{width:7px;height:7px;background:var(--green);border-radius:50%;animation:livePulse 1.4s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.lb-filters{display:flex;gap:8px;margin-bottom:28px}.lb-filter-btn{padding:7px 16px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:var(--sans);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .18s,color .18s,border-color .18s}.lb-filter-btn:hover{background:var(--surface-2);color:var(--text)}.lb-filter-btn.active{background:#00d6ff1a;border-color:#00d6ff59;color:var(--blue)}.lb-guest-banner{padding:12px 18px;background:#a78bfa14;border:1px dashed rgba(167,139,250,.3);border-radius:10px;color:#a78bfa;font-size:.85rem;margin-bottom:24px}.lb-podium{display:flex;justify-content:center;align-items:flex-end;gap:12px;margin-bottom:36px}.lb-podium-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:120px;position:relative;transition:transform .2s}.lb-podium-card:hover{transform:translateY(-4px)}.lb-podium-card.rank-1{border-color:#facc1566;background:#facc150d;order:2;padding-top:28px}.lb-podium-card.rank-2{order:1}.lb-podium-card.rank-3{order:3}.lb-podium-card.is-me{box-shadow:0 0 0 2px var(--blue)}.lb-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:14px;font-weight:700;color:#fff}.lb-avatar.sm{width:34px;height:34px;font-size:11px}.lb-podium-trophy{font-size:1.5rem}.lb-podium-name{font-size:.82rem;font-weight:700;color:var(--text)}.lb-podium-pct{font-family:var(--display);font-size:1.4rem}.lb-podium-sub{font-size:.72rem;color:var(--muted)}.lb-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.lb-table{width:100%;border-collapse:collapse;font-size:.88rem}.lb-table thead tr{background:var(--surface-2);border-bottom:1px solid var(--border)}.lb-table th{padding:12px 16px;text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:400}.lb-row{border-bottom:1px solid rgba(39,49,74,.5);transition:background .15s}.lb-row:last-child{border-bottom:none}.lb-row:hover{background:var(--surface-2)}.lb-row-me{background:#00d6ff0a}.lb-row-me td:first-child{border-left:3px solid var(--blue)}.lb-row.rank-gold td{color:#facc15}.lb-row.rank-silver td{color:#cbd5e1}.lb-row.rank-bronze td{color:#fb923c}.lb-row.rank-gold td,.lb-row.rank-silver td,.lb-row.rank-bronze td{font-weight:600}.lb-table td{padding:12px 16px;color:var(--text);vertical-align:middle}.lb-rank-cell{font-size:1.1rem;width:56px}.lb-rank-num{font-family:var(--mono);font-size:12px;color:var(--muted)}.lb-player-cell{display:flex;align-items:center;gap:10px}.lb-username{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:6px}.lb-me-badge{font-size:.65rem;background:#00d6ff26;color:var(--blue);border:1px solid rgba(0,214,255,.3);border-radius:999px;padding:1px 6px;font-weight:400;font-family:var(--mono)}.lb-fullname{font-size:.75rem;color:var(--muted)}.lb-mono{font-family:var(--mono);font-size:11px;color:var(--muted)}.lb-center{text-align:center}.lb-pct{font-family:var(--display);font-size:1rem}.lb-loading{padding:48px;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted);font-size:.88rem}.lb-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lb-empty{padding:48px;text-align:center;color:var(--muted);font-size:.88rem}@media(max-width:768px){.lb-page{padding:24px 16px 60px}.lb-header{flex-direction:column}.lb-podium{flex-wrap:wrap}.lb-podium-card{min-width:90px;padding:14px 10px}.auth-row{grid-template-columns:1fr}.lb-filters{flex-wrap:wrap}.lb-table th:nth-child(3),.lb-table td:nth-child(3){display:none}}.auth-gate-overlay{position:fixed;inset:0;z-index:8800}.signin-modal{max-width:380px;text-align:center}.auth-hex-logo{font-family:var(--display);font-size:14px;letter-spacing:2px;color:var(--muted);margin-bottom:14px;line-height:1}.auth-hex-logo span{font-size:32px;letter-spacing:3px;background:linear-gradient(135deg,var(--blue),#a78bfa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:13px 20px;background:#fff;border:none;border-radius:12px;color:#3c4043;font-family:"Google Sans",var(--sans);font-size:.95rem;font-weight:600;cursor:pointer;transition:box-shadow .2s,transform .15s;box-shadow:0 2px 8px #0000004d;margin-top:8px}.google-signin-btn:hover:not(:disabled){box-shadow:0 4px 20px #0006;transform:translateY(-1px)}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}.auth-legal{font-size:.72rem;color:var(--muted);margin-top:14px;line-height:1.5}.topic-action-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:52px;padding-top:24px;border-top:1px solid var(--border)}.topic-action-left{display:flex;justify-content:flex-start}.topic-action-center{display:flex;justify-content:center}.topic-action-right{display:flex;justify-content:flex-end}.topic-nav-btn{display:flex;align-items:center;gap:8px;padding:11px 18px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--muted);font-family:var(--sans);font-size:.84rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .15s;max-width:220px;text-align:left;line-height:1.3}.topic-nav-btn:hover{background:var(--surface-2);color:var(--text);border-color:#00d6ff4d;transform:translateY(-1px)}.topic-nav-btn.next{text-align:right;justify-content:flex-end}.topic-nav-btn.next:hover{transform:translate(3px)}.topic-nav-btn.prev:hover{transform:translate(-3px)}.topic-quiz-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#00d6ff1f,#7c3aed1f);border:1.5px solid rgba(0,214,255,.3);border-radius:10px;color:var(--blue);font-family:var(--sans);font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}.topic-quiz-btn:hover{background:linear-gradient(135deg,#00d6ff33,#7c3aed33);border-color:#00d6ff8c;box-shadow:0 0 20px #00d6ff33;transform:translateY(-2px)}@media(max-width:768px){.topic-action-bar{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:10px}.topic-action-left,.topic-action-right{justify-content:center}.topic-nav-btn{max-width:100%;width:100%;justify-content:center;text-align:center}.topic-nav-btn.next{text-align:center}.topic-quiz-btn{width:100%;justify-content:center}}.sidebar-user-badges{display:flex;gap:4px;font-size:1.1rem;margin-top:4px}.lb-podium-badges{display:flex;justify-content:center;gap:4px;margin-top:8px;font-size:1.25rem;background:#ffffff0d;padding:4px 10px;border-radius:20px}.lb-table-badges{display:flex;justify-content:center;gap:6px;font-size:1.25rem}@media print{.sidebar,.mobile-header,.app-shell>aside,.hide-on-print{display:none!important}body,.app-shell,.main-content,.cheatsheet-page{background:#fff!important;color:#000!important;margin:0!important;padding:0!important;min-height:auto!important}.main-content{margin-left:0!important;width:100%!important;overflow:visible!important}.print-target{width:100%!important;padding:.5cm!important}.break-inside-avoid{page-break-inside:avoid;break-inside:avoid}:root{--text: #000000;--text-muted: #444444}}.h2h-page{max-width:960px}.h2h-section-label{font-family:var(--mono);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.h2h-standings{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.h2h-standing-card{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:transform .18s,border-color .18s}.h2h-standing-card:hover{transform:translateY(-2px);border-color:#00d6ff40}.h2h-standing-card.h2h-me{background:#00d6ff0a;border-color:#00d6ff40;box-shadow:0 0 0 1px #00d6ff1a}.h2h-standing-rank{width:36px;text-align:center;font-family:var(--display);font-size:1.2rem;color:var(--muted);flex-shrink:0}.h2h-standing-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:700;color:#111;flex-shrink:0;box-shadow:0 0 12px #18d9da4d}.h2h-standing-info{flex:1;min-width:0}.h2h-standing-name{font-weight:700;font-size:.92rem;color:var(--text);display:flex;align-items:center;gap:6px}.h2h-standing-record{display:flex;gap:10px;margin-top:3px;font-family:var(--mono);font-size:11px}.h2h-w{color:var(--green)}.h2h-d{color:var(--muted)}.h2h-l{color:#f87171}.h2h-standing-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.h2h-standing-gd{font-family:var(--display);font-size:1.3rem;color:var(--cyan)}.h2h-form-guide{display:flex;gap:3px}.h2h-form-badge{width:20px;height:20px;border-radius:4px;display:grid;place-items:center;font-family:var(--mono);font-size:9px;font-weight:700}.h2h-form-W{background:#49d88933;color:var(--green);border:1px solid rgba(73,216,137,.35)}.h2h-form-L{background:#f8717126;color:#f87171;border:1px solid rgba(248,113,113,.3)}.h2h-form-D{background:#96a1be1a;color:var(--muted);border:1px solid rgba(150,161,190,.25)}.h2h-match-list{display:flex;flex-direction:column;gap:12px}.h2h-match-card{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 24px 12px;position:relative;overflow:hidden;transition:transform .18s,border-color .18s}.h2h-match-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cyan),transparent 30%,transparent 70%,var(--orange));opacity:.6}.h2h-match-card:hover{transform:translateY(-2px);border-color:#00d6ff33}.h2h-player{display:flex;align-items:center;gap:10px;transition:opacity .2s}.h2h-player-left{justify-content:flex-start}.h2h-player-right{justify-content:flex-end}.h2h-player.h2h-loser{opacity:.45}.h2h-player.h2h-winner{opacity:1}.h2h-player-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;color:#111;flex-shrink:0}.h2h-winner .h2h-player-avatar{box-shadow:0 0 16px #49d88966}.h2h-player-name{font-weight:700;font-size:.9rem;color:var(--text)}.h2h-loser .h2h-player-name{color:var(--muted)}.h2h-crown{font-size:1rem;filter:drop-shadow(0 0 6px rgba(250,204,21,.6))}.h2h-scoreboard{display:flex;align-items:center;gap:12px;padding:0 20px}.h2h-score{font-family:var(--display);font-size:2.2rem;color:var(--muted);min-width:36px;text-align:center;line-height:1}.h2h-score-left{color:var(--cyan)}.h2h-score-right{color:var(--orange)}.h2h-score-win{text-shadow:0 0 20px currentColor}.h2h-vs{font-family:var(--display);font-size:.85rem;letter-spacing:2px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;opacity:.7}.h2h-match-meta{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid rgba(39,49,74,.5);font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.h2h-empty{text-align:center;padding:64px 24px;background:var(--surface);border:1px dashed var(--border);border-radius:16px}.h2h-empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.h2h-empty h3{font-family:var(--display);font-size:1.8rem;letter-spacing:1px;margin-bottom:8px;color:var(--text)}.h2h-empty p{color:var(--muted);font-size:.9rem;max-width:400px;margin:0 auto;line-height:1.6}@media(max-width:768px){.h2h-match-card{grid-template-columns:1fr auto 1fr;padding:14px 12px 10px}.h2h-player-name{font-size:.78rem}.h2h-score{font-size:1.6rem;min-width:28px}.h2h-scoreboard{padding:0 8px;gap:6px}.h2h-vs{font-size:.7rem;padding:2px 5px}.h2h-standing-card{padding:10px 12px;gap:10px}.h2h-standing-gd{font-size:1rem}}@keyframes battleBounce{0%,to{transform:translateY(0) scale(1.1)}50%{transform:translateY(-20px) scale(1.1)}}@keyframes battleShake{0%,to{transform:translate(0) scale(.9);opacity:.5}25%{transform:translate(-10px) rotate(-5deg);opacity:.8}75%{transform:translate(10px) rotate(5deg);opacity:.8}}@keyframes battleFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes battleSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes battlePulse{0%,to{box-shadow:0 0 20px #00d6ff66}50%{box-shadow:0 0 40px #00d6ffcc}}@keyframes inBattlePulse{0%,to{opacity:1}50%{opacity:.5}}.battle-victory{animation:battleBounce 1.5s infinite;color:var(--green);text-shadow:0 0 40px var(--green)}.battle-defeat{animation:battleShake 1s infinite;color:var(--muted);text-shadow:none;filter:grayscale(1)}.battle-fade{animation:battleFadeIn .5s ease-out forwards}.battle-spinner{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:battleSpin .8s linear infinite;margin:0 auto 16px}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
