:root{--bg-primary: #0d0d0d;--bg-secondary: rgba(26, 26, 26, .6);--bg-tertiary: rgba(37, 37, 37, .7);--bg-hover: rgba(42, 42, 42, .75);--text-primary: #e5e5e5;--text-secondary: #a0a0a0;--text-muted: #666666;--accent-gold: #c9aa58;--accent-gold-dim: #8a7a45;--accent-green: #4a9b4a;--accent-red: #9b4a4a;--accent-blue: #4a6a9b;--border-color: #333333;--border-light: #444444;--shadow-dark: 0 4px 20px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(201, 170, 88, .1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease;--transition-normal: .25s ease;font-family:Segoe UI,Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:linear-gradient(#141e28b3,#0a141ecc),url(../bg_snow_dark.png) no-repeat center center fixed;background-size:cover}#root{width:100%;max-width:none;margin:0;padding:0;height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-gold);color:var(--bg-primary)}[data-theme=light]{--bg-primary: #f0f2f5;--bg-secondary: rgba(255, 255, 255, .6);--bg-tertiary: rgba(255, 255, 255, .6);--bg-hover: rgba(228, 230, 235, .6);--text-primary: #1c1e21;--text-secondary: #65676b;--text-muted: #8a8d91;--accent-gold: #b38b2d;--accent-gold-dim: #d4ac4a;--accent-green: #2e7d32;--accent-red: #c62828;--accent-blue: #1565c0;--border-color: #ced0d4;--border-light: #e4e6eb;--shadow-dark: 0 2px 8px rgba(0, 0, 0, .1);--shadow-glow: 0 0 10px rgba(179, 139, 45, .1);color-scheme:light}[data-theme=light] body{background:linear-gradient(#f0f2f5cc,#ffffffe6),url(../bg_lab_light.png) no-repeat center center fixed!important;background-size:cover!important}[data-theme=light] .task-item,[data-theme=light] .tree-node,[data-theme=light] .trader-panel{background:#ffffffe6;border-color:#ddd;box-shadow:0 1px 3px #0000001a}[data-theme=light] .task-tree-container,[data-theme=light] .panel-content-area{background-color:#f7f8fa99;background-image:radial-gradient(rgba(0,0,0,.1) 1px,transparent 1px);background-size:20px 20px}body,.trader-panel,.task-item,.tree-node{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:linear-gradient(#141814d9,#141814f2),url(../bg_forest.png) no-repeat center center fixed;background-size:cover}.app-body{display:flex;flex:1;overflow:hidden;position:relative}.main-content{flex:1;overflow:hidden;padding:16px;max-width:100%;transition:all .3s cubic-bezier(.25,.8,.25,1);min-width:0}@media(min-width:1200px){.main-content{padding:24px 32px}}.trader-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-dark);animation:panelEnter .4s cubic-bezier(.2,.8,.2,1) forwards}@keyframes panelEnter{0%{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.trader-header{display:flex;align-items:center;padding:16px 24px;background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-bottom:1px solid var(--border-color);-webkit-user-select:none;user-select:none;flex-shrink:0}.trader-icon{font-size:2rem;margin-right:20px;display:flex;align-items:center;justify-content:center}.trader-info{flex:1}.trader-name{font-size:1.2rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:12px}.trader-name-jp{font-size:.9rem;color:var(--text-muted);font-weight:400}.trader-progress{font-size:.85rem;color:var(--text-secondary);margin-top:4px}.trader-toggle{display:none}.trader-name-row{display:flex;align-items:center;gap:12px}.view-mode-toggle-inline{display:flex;gap:4px}.mode-btn-small{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.85rem;display:flex;align-items:center;justify-content:center;min-width:32px}.mode-btn-small:hover{border-color:var(--accent-gold);color:var(--text-primary)}.mode-btn-small.active{background:var(--accent-gold);color:var(--bg-primary);border-color:var(--accent-gold)}.sort-selector{margin-left:auto}.sort-select{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;transition:border-color var(--transition-fast);min-width:140px}.sort-select:hover{border-color:var(--accent-gold)}.sort-select:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 0 2px #c9aa5833}.view-mode-toggle{display:flex;gap:10px;padding:12px 24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0}.mode-btn{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:6px}.mode-btn:hover{border-color:var(--accent-gold);color:var(--text-primary)}.mode-btn.active{background:var(--accent-gold);color:var(--bg-primary);border-color:var(--accent-gold);font-weight:700}.panel-content-area{flex:1;overflow:hidden;position:relative;background:var(--bg-pattern)}.task-list{padding:16px 24px;display:flex;flex-direction:column;gap:10px;height:100%;overflow-y:auto}.task-tree-container{width:100%;height:100%!important;background:transparent!important;overflow:hidden;border:none!important;border-radius:0!important}.task-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:14px 18px;transition:background .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease}.task-item:hover:not(.task-item--completed):not(.task-item--locked){background:var(--bg-hover);border-color:var(--border-light);transform:translate(2px)}.task-item--completed{opacity:.7;background:var(--bg-secondary);border-color:var(--accent-green);padding:10px 16px;animation:taskFlash .5s ease-out;transition:opacity .2s ease,background .2s ease,padding .2s ease,border-color .2s ease}.task-item--completed:hover{opacity:1;background:var(--bg-tertiary);padding:14px 18px;transition:opacity .2s ease .2s,background .2s ease .2s,padding .2s ease .2s,border-color .2s ease .2s}.task-item--completed .task-objectives,.task-item--completed .task-items,.task-item--completed .task-rewards,.task-item--completed .task-next-tasks{visibility:hidden;opacity:0;max-height:0;overflow:hidden;margin:0;padding:0;transition:visibility 0s 0s,opacity .15s ease-out,max-height .2s ease-out,margin .2s ease-out}.task-item--completed:hover .task-objectives,.task-item--completed:hover .task-items,.task-item--completed:hover .task-rewards,.task-item--completed:hover .task-next-tasks{visibility:visible;opacity:1;max-height:500px;margin-top:10px;transition:visibility 0s .2s,opacity .3s ease-out .2s,max-height .4s ease-out .2s,margin .3s ease-out .2s}.task-item--story{border-left:3px solid var(--accent-gold)}.task-item--locked{opacity:.6;background:#28282d99;border-left-color:var(--text-muted)}.task-item--locked:hover{transform:none;box-shadow:none}.task-item--level-locked{border-left:3px solid #e74c3c}.checkbox-wrapper{position:relative;display:flex;align-items:center}.lock-icon{position:absolute;top:-4px;right:-8px;font-size:12px;z-index:1}.task-item--locked .task-checkbox{cursor:not-allowed;opacity:.5;border-color:var(--text-muted)}.task-item--locked .task-checkbox:hover{border-color:var(--text-muted)}.task-lock-reason{margin-top:8px;padding:6px 10px;background:#e74c3c26;border-radius:var(--radius-sm);border-left:2px solid #e74c3c}.lock-reason{font-size:.8rem;display:block}.lock-reason--level{color:#e74c3c}.lock-reason--prereq{color:#f39c12}.task-badge--locked{background:#e74c3c33;color:#e74c3c;border-color:#e74c3c66}.prereq-link{background:none;border:none;padding:0;margin:0 2px;color:#3498db;text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit;transition:color .2s}.prereq-link:hover{color:#2ecc71}.task-item--highlight{animation:taskHighlight 2s ease-out}@keyframes taskHighlight{0%{box-shadow:0 0 0 4px #3498dbcc;background:#3498db33}to{box-shadow:none;background:var(--bg-tertiary)}}.task-header{display:flex;align-items:flex-start;gap:14px}.task-checkbox{appearance:none;width:24px;height:24px;min-width:24px;border:2px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);position:relative;margin-top:2px}.task-checkbox:hover{border-color:var(--accent-gold)}.task-checkbox:checked{background:var(--accent-green);border-color:var(--accent-green);animation:checkPop .4s cubic-bezier(.175,.885,.32,1.275)}.task-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:16px;font-weight:700}.task-content{flex:1}.task-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.task-name{font-weight:700;color:var(--text-primary);font-size:1rem}.task-name--completed{text-decoration:line-through;color:var(--text-muted)}.task-name-jp{font-size:.85rem;color:var(--text-secondary)}.task-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:uppercase}.task-badge--story{background:#c9aa5833;color:var(--accent-gold)}.task-badge--kappa{background:#b450ff33;color:#c77dff;border:1px solid rgba(180,80,255,.3)}.task-badge--level{background:#4a9b9b33;color:#7cc}.task-badge--location{background:#4a6a9b33;color:var(--accent-blue)}.task-objectives{margin-top:8px;border-left:2px solid var(--border-light);padding-left:12px}.task-objective{display:flex;align-items:flex-start;gap:8px;font-size:.9rem;color:var(--text-secondary);margin-bottom:4px;line-height:1.4}.task-items{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.task-item-tag{background:#9b4a4a26;color:#c77;font-size:.8rem;padding:4px 10px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:6px}.task-item-tag--fir{background:#4a9b4a26;color:#7c7}.task-rewards{margin-top:12px;display:flex;gap:16px;flex-wrap:wrap;padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}.task-reward{font-size:.8rem;color:var(--text-muted)}.task-reward span{color:var(--accent-gold);font-weight:600}.task-next-tasks{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}.next-label{font-size:.75rem;color:var(--text-muted);font-weight:600}.next-task-badge{font-size:.8rem;padding:4px 10px;border-radius:var(--radius-sm);background:#6495ed33;color:#7af;border:1px solid rgba(100,149,237,.3)}.next-task-badge--cross{background:#ffa50026;color:#fa0;border-color:#ffa5004d}.next-trader{font-weight:700;margin-right:4px;opacity:.8}.task-wiki-link{display:inline-flex;align-items:center;justify-content:center;padding:0;width:42px;height:42px;border-radius:8px;background:transparent;border:1px solid transparent;cursor:pointer;margin-left:auto;transition:all var(--transition-fast)}.task-wiki-icon-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3));transition:transform .2s}.task-wiki-link:hover .task-wiki-icon-img{transform:scale(1.15) rotate(-5deg)}.task-wiki-link:hover{background:#4a9b9b66;color:#aff;border-color:#4a9b9b80}.task-tree-svg{min-width:100%}.tree-node{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:14px;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;cursor:pointer;transition:all .2s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden;box-shadow:0 2px 4px #0003}.tree-node:hover{border-color:var(--accent-gold);transform:translateY(-2px);box-shadow:0 4px 8px #0006,0 0 0 1px var(--accent-gold);z-index:10}.tree-node--completed{background:#4caf5026;border-color:var(--accent-green);border-left:4px solid var(--accent-green);transition:all .5s ease;animation:nodeComplete .5s forwards}.tree-node--story{border-top:3px solid var(--accent-gold)}.tree-node-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tree-node-name{font-weight:700;font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.tree-node-jp{font-size:.9rem;color:var(--text-muted);margin-bottom:8px}.tree-node-obj{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin-top:auto}.tree-node-wiki{position:absolute;top:6px;right:6px;font-size:.65rem;padding:2px 6px;background:#4a9b9b33;color:#7cc;border-radius:4px;text-decoration:none;opacity:.7}.tree-node:hover .tree-node-wiki{opacity:1}.checkbox-indicator{width:16px;height:16px;border:1px solid var(--border-light);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--accent-green);flex-shrink:0}.checkbox-indicator.checked{background:#4caf5033;border-color:var(--accent-green);animation:checkPop .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 0 10px #4caf5099}@keyframes taskFlash{0%{box-shadow:0 0 #fff0;border-color:var(--border-light)}50%{box-shadow:0 0 20px #fff9,inset 0 0 10px #fff6;border-color:#fff;background:#ffffff1a}to{box-shadow:0 0 #fff0;border-color:var(--accent-green);background:var(--bg-secondary)}}.no-results{text-align:center;padding:60px 20px;color:var(--text-muted);height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.no-results-icon{font-size:4rem;margin-bottom:24px;opacity:.3}@keyframes checkPop{0%{transform:scale(.8)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes nodeComplete{0%{transform:scale(1)}50%{transform:scale(1.02);box-shadow:0 0 15px var(--accent-green)}to{transform:scale(1)}}.task-tree-svg path{transition:stroke .8s ease,stroke-width .3s,filter .3s}.task-tree-svg path[stroke="#4caf50"]{stroke-width:3;filter:drop-shadow(0 0 3px rgba(76,175,80,.6))}.trader-icon-img{width:80px;height:80px;border-radius:8px;object-fit:cover;box-shadow:0 4px 8px #0009;border:1px solid var(--border-color);transition:transform .2s ease,box-shadow .2s ease}.trader-icon-img:hover{transform:scale(1.05);box-shadow:0 6px 12px #000000b3,0 0 10px #c9aa5833}@keyframes flow{0%{stroke-dashoffset:30}to{stroke-dashoffset:0}}@keyframes lightsaber-grow{0%{stroke-dashoffset:5000;filter:drop-shadow(0 0 0 rgba(76,175,80,0))}to{stroke-dashoffset:0;filter:drop-shadow(0 0 8px rgba(76,175,80,.8))}}@keyframes lightsaber-pulse{0%{filter:drop-shadow(0 0 5px rgba(76,175,80,.6));stroke-width:3px}50%{filter:drop-shadow(0 0 12px rgba(76,175,80,1));stroke-width:4px}to{filter:drop-shadow(0 0 5px rgba(76,175,80,.6));stroke-width:3px}}.tree-arrow-animated{animation:flow 8s linear infinite;stroke-linecap:round}.tree-arrow-lightsaber{stroke-dasharray:5000;stroke-dashoffset:0;animation:lightsaber-grow 1s ease-out forwards,lightsaber-pulse 2s ease-in-out infinite 1s;stroke-linecap:round}@keyframes flow-reverse{0%{stroke-dashoffset:0}to{stroke-dashoffset:30}}.tree-arrow-highlight-anim{animation:flow .5s linear infinite;stroke-opacity:.8}.tree-node-completed{box-shadow:0 0 15px #4caf5066}.tree-kappa-badge{background:linear-gradient(135deg,#0052cc,#007bff);border:1px solid rgba(255,255,255,.2);box-shadow:0 2px 4px #0000004d}@keyframes pulse-border{0%{box-shadow:0 0 #6495edb3;border-color:#6495edcc}70%{box-shadow:0 0 20px 10px #6495ed00;border-color:#6495ed66}to{box-shadow:0 0 #6495ed00;border-color:#6495edcc}}.tree-node-active{animation:pulse-border 2s infinite;z-index:15!important}.wiki-ad-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;padding:4px;background:var(--bg-tertiary);border-top:1px solid var(--border-color);margin-top:auto;flex-shrink:0}.wiki-ad-space{padding:16px;display:flex;flex-direction:column;gap:16px;border-bottom:1px solid var(--border-color)}.wiki-toolbar-left{display:flex;align-items:center;gap:8px}.wiki-nav-buttons{display:flex;gap:4px}.wiki-nav-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}.wiki-nav-btn:hover:not(.disabled){background:var(--bg-hover);border-color:var(--accent-gold)}.wiki-nav-btn.disabled{opacity:.4;cursor:not-allowed}.wiki-sidebar{width:0;transition:width .3s cubic-bezier(.4,0,.2,1);background:var(--bg-secondary);display:flex;flex-direction:column;border-left:1px solid var(--border-color);overflow:visible;white-space:nowrap;position:relative;z-index:200}.wiki-handle{position:absolute;top:50%;left:-24px;width:24px;height:60px;background:var(--bg-secondary);border:1px solid var(--border-color);border-right:none;border-radius:8px 0 0 8px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:12px;opacity:0;pointer-events:none;transition:opacity .3s;box-shadow:-2px 0 5px #0000001a}.wiki-sidebar.open .wiki-handle{opacity:1;pointer-events:auto}@media(max-width:768px){.app-body{flex-direction:column}.main-content{padding:10px}.trader-panel{border-radius:var(--radius-sm)}.trader-header{padding:10px 16px}.trader-icon-img{width:60px;height:60px}.trader-icon{font-size:1.5rem;margin-right:12px}.trader-name{font-size:1rem}.task-list{padding:10px}.task-item{padding:12px}.task-title-row{flex-direction:column;align-items:flex-start;gap:4px}.wiki-sidebar{position:fixed;inset:auto 0 0;width:100%;height:90vh;z-index:1000;border-left:none;border-top:1px solid var(--border-color);box-shadow:0 -5px 20px #0009;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);border-radius:20px 20px 0 0}.wiki-sidebar.open{width:100%!important;transform:translateY(0)}.wiki-sidebar:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:50px;height:5px;background-color:var(--border-light);border-radius:3px;z-index:205}.wiki-handle{display:none}.wiki-toolbar{padding:20px 16px 12px;background:transparent}.wiki-actions{gap:8px}.wiki-lang-btn{padding:4px 8px;font-size:.8rem}.wiki-ad-container{display:flex;justify-content:center;padding:8px;gap:0}.navbar .container{padding:0 12px}.nav-title{font-size:1rem}.nav-logo{font-size:1.2rem}}.wiki-handle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.wiki-sidebar.open{width:70%}@media(max-width:1200px){.wiki-sidebar.open{width:60%}}.wiki-toolbar{height:36px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0}.wiki-title{font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}.wiki-browser-header{border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);flex-shrink:0}.wiki-top-ads{display:flex;justify-content:center;gap:16px;padding:12px;background:#0003;border-bottom:1px solid var(--border-color)}.wiki-warning-box{padding:12px 16px;background:#ffc1071a;color:var(--text-warning, #ffc107);font-size:.85rem;line-height:1.5;text-align:center}.wiki-actions{display:flex;gap:12px;align-items:center}.wiki-lang-toggle{display:flex;gap:4px;background:var(--bg-primary);padding:3px;border-radius:6px;border:1px solid var(--border-color)}.wiki-lang-btn{background:transparent;border:none;color:var(--text-secondary);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:4px}.wiki-lang-btn:hover{color:var(--text-primary);background:#ffffff0d}.wiki-lang-btn.active{background:var(--accent-gold);color:var(--bg-primary)}.wiki-external-link{font-size:.8rem;color:var(--accent-blue);text-decoration:none;font-weight:600;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;transition:background .2s}.wiki-external-link:hover{background:#6495ed1a}.wiki-close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.wiki-close-btn:hover{background:#ffffff1a;color:var(--text-primary)}.wiki-content{flex:1;display:flex;flex-direction:column;background:#fff;position:relative;overflow:hidden;height:100%}.wiki-iframe{flex:1;width:100%;height:100%;border:none;display:block}webview.wiki-iframe{display:flex;height:100%}.wiki-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);background:var(--bg-pattern);padding:24px;text-align:center}.wiki-ad-container{flex-shrink:0;padding:12px;background:var(--bg-tertiary);border-top:1px solid var(--border-color);display:flex;justify-content:center}.settings-button{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:1.1rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.settings-button:hover{border-color:var(--accent-gold);color:var(--accent-gold);background:#c9aa581a}body.no-animation .tree-arrow-animated,body.no-animation .tree-arrow-lightsaber,body.no-animation .tree-arrow-highlight-anim{animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important;filter:none!important}body.no-animation .tree-node-active{animation:none!important}body.no-animation *{transition-duration:0s!important}@media(prefers-reduced-motion:reduce){.tree-arrow-animated,.tree-arrow-lightsaber,.tree-arrow-highlight-anim,.tree-node-active{animation:none!important}}@media(max-width:768px){.app-body{flex-direction:column;height:calc(100vh - 56px);overflow-x:hidden!important;overscroll-behavior-x:none}.main-content{padding:8px;height:100%;overflow:hidden;overflow-x:hidden!important}.trader-panel{border-radius:8px;height:100%;overflow-x:hidden!important}.task-list{overflow-x:hidden!important;overscroll-behavior:contain}.task-item:hover{transform:none!important}.trader-header{padding:10px 12px;flex-wrap:wrap;gap:8px}.trader-icon{margin-right:10px}.trader-icon-img{width:50px;height:50px}.trader-name{font-size:1rem}.trader-name-jp,.trader-progress{font-size:.75rem}.view-mode-toggle-inline{gap:2px}.mode-btn-small{padding:4px 6px;min-width:28px}.sort-selector{width:100%;margin-top:4px;margin-left:0}.sort-select{width:100%;min-width:auto;font-size:.8rem;padding:6px 8px}.task-list{padding:8px;gap:8px}.task-item{padding:10px 12px!important;border-radius:6px;text-align:left!important}.task-header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:flex-start!important;gap:10px!important;text-align:left!important}.task-content{flex:1;text-align:left!important;display:block!important}.task-title-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:flex-start!important;align-items:center!important;gap:6px!important;text-align:left!important}.task-name{font-size:1rem!important;font-weight:600;text-align:left!important}.task-name-jp{font-size:.85rem!important;text-align:left!important;display:block!important;width:100%}.task-checkbox{width:28px!important;height:28px!important;min-width:28px!important;flex-shrink:0}.task-badge{font-size:.65rem;padding:2px 6px}.task-wiki-link{width:40px!important;height:40px!important;flex-shrink:0}.task-badge--story{display:none!important}.task-item--completed{padding:8px 10px!important;opacity:.7}.task-item--completed .task-badge{display:none!important}.wiki-sidebar.open{position:fixed;top:0;right:0;width:100vw;height:100vh;z-index:1000}.wiki-handle{display:none!important}.wiki-close-btn{font-size:24px!important;padding:12px!important;min-width:48px!important;min-height:48px!important}.no-results{padding:40px 16px}.no-results-icon{font-size:3rem}}@media(max-width:390px){.main-content{padding:4px}.trader-header{padding:8px 10px}.trader-icon-img{width:40px;height:40px}.task-list{padding:6px;gap:6px}.task-item{padding:8px 10px}}@media(hover:none)and (pointer:coarse){.task-item:hover{transform:none}.task-item--mobile{padding:12px;cursor:pointer;position:relative;text-align:left}.task-item--mobile .task-header{display:flex;align-items:flex-start;gap:10px;text-align:left}.task-item--mobile .task-content{flex:1;min-width:0;text-align:left}.task-item--mobile .task-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-start;text-align:left}.task-item--mobile .task-name{font-size:1rem;font-weight:600;color:var(--text-primary);flex-shrink:1;min-width:0}.task-item--mobile .task-badge{font-size:.7rem;padding:2px 8px;flex-shrink:0}.task-item--mobile .task-badge--story,.task-item--mobile .task-badge--level{display:none}.task-item--mobile .task-name-jp{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:4px;text-align:left}.task-item--mobile .task-wiki-link{width:40px;height:40px;flex-shrink:0;border-radius:8px}.task-item--mobile .task-checkbox{width:28px;height:28px;min-width:28px}.task-item--mobile:after{content:"▼";position:absolute;right:12px;bottom:10px;font-size:10px;color:var(--text-muted);transition:transform .2s}.task-item--mobile.task-item--expanded:after{transform:rotate(180deg)}.task-item--mobile.task-item--expanded{background:var(--bg-tertiary);border-color:var(--accent-gold);padding:14px}.task-item--mobile.task-item--expanded .task-name{white-space:normal}.task-item--mobile.task-item--expanded .task-badge--level{display:inline-flex}.task-item--mobile.task-item--completed{padding:10px 12px;opacity:.7}.task-item--mobile.task-item--completed .task-name{font-size:.9rem}.task-item--mobile.task-item--completed .task-name-jp{font-size:.75rem}.task-item--mobile.task-item--completed .task-badge{display:none}.task-item--mobile.task-item--completed .task-wiki-link{width:32px;height:32px}.task-item--mobile.task-item--completed .task-checkbox{width:24px;height:24px;min-width:24px}.wiki-close-btn{font-size:24px!important;padding:12px!important;min-width:48px!important;min-height:48px!important}}@media(max-width:768px){.wiki-sidebar.open{position:fixed;top:10vh;left:0;width:100vw;height:90vh;z-index:1000;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000080;transition:transform .2s ease-out,top .3s ease;touch-action:pan-y}.wiki-sidebar.open:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:60px;height:6px;background:#ffffff80;border-radius:3px;z-index:10}.wiki-toolbar{padding-top:24px}.wiki-sidebar.open:after{content:"↓ 下スワイプで閉じる";position:absolute;top:22px;left:50%;transform:translate(-50%);font-size:11px;color:#ffffffb3;white-space:nowrap;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5)}.wiki-content,.wiki-iframe{overscroll-behavior:contain}}.header{display:flex;align-items:center;padding:0 0 0 24px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:100px;box-shadow:0 4px 12px #0003;z-index:100;gap:20px;justify-content:space-between;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.header__left{display:flex;align-items:center;width:380px;flex-shrink:0;padding-left:2px}.header__logo-img{height:94px;width:380px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transition:transform .2s;margin-left:-10px}.header__logo-img:hover{transform:scale(1.02)}.header__center{display:flex;justify-content:center;align-items:center;flex-grow:1}.header__controls-card{display:flex;align-items:center;gap:12px;background:var(--bg-tertiary);padding:8px 12px;border-radius:12px;border:1px solid var(--border-color);box-shadow:0 2px 8px #0000001a;width:100%}.control-item{flex-shrink:0}.header-select{background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);padding:0 12px;height:44px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:inset 0 1px 2px #0000001a}.header-select:hover{border-color:var(--accent-gold)}.header-select:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 0 2px #b38b2d33}.trader-select{width:160px}.map-select{width:130px}.level-control{display:flex;align-items:center;gap:4px}.level-label{color:var(--accent-gold);font-weight:700;font-size:14px}.level-input{width:60px;height:44px;padding:0 8px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-primary);color:var(--text-primary);font-size:16px;font-weight:700;text-align:center;transition:all .2s}.level-input:focus{border-color:var(--accent-gold);box-shadow:0 0 0 2px #b38b2d33;outline:none}.level-input::-webkit-inner-spin-button,.level-input::-webkit-outer-spin-button{opacity:1}.header__search-bar{flex-grow:1;position:relative;min-width:150px}.header__search-bar--compact{max-width:160px;min-width:120px}.search-input-large{width:100%;height:44px;padding:0 20px 0 44px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-primary);color:var(--text-primary);font-size:16px;transition:all .2s}.search-input-large:focus{border-color:var(--accent-gold);box-shadow:0 0 0 2px #b38b2d33;outline:none}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:18px;pointer-events:none}.header__right{display:flex;justify-content:flex-end;align-items:center;gap:16px;width:auto;flex-shrink:0;min-width:500px}.header__stats-block{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:380px;box-shadow:inset 0 0 20px #0000000d;height:auto}.stat-row{display:flex;flex-direction:column;gap:2px;font-size:13px;font-weight:700;color:var(--text-primary)}.stat-info{display:flex;justify-content:space-between;align-items:center;width:100%;line-height:1.2}.stat-graph{display:flex;align-items:center;gap:8px;width:100%}.stat-label{color:#e0e0e0;font-size:11px;letter-spacing:1px}.stat-count{font-family:Consolas,monospace;font-size:14px;color:var(--text-primary);text-shadow:0 1px 2px rgba(0,0,0,.8)}.stat-row--total .stat-count,.stat-row--total .stat-percentage{color:gold}.stat-row--kappa .stat-count,.stat-row--kappa .stat-percentage{color:#4da6ff}.stat-bar-container{flex:1;height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden;position:relative;border:1px solid var(--border-light);box-shadow:inset 0 1px 3px #0003}.stat-bar{height:100%;border-radius:2px;box-shadow:0 0 8px #0000004d;transition:width .5s ease-out}.stat-percentage{width:45px;text-align:right;font-family:Consolas,monospace;font-size:14px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.8);line-height:1}.settings-button-large{background:transparent;border:none;color:var(--text-secondary);font-size:28px;cursor:pointer;padding:8px;border-radius:50%;transition:all .3s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-button-large:hover{background:var(--bg-hover);color:var(--text-primary);transform:rotate(90deg);box-shadow:0 0 15px #ffffff1a}.kappa-tree-button{background:linear-gradient(135deg,#3ddc8426,#3ddc840d);border:2px solid #3ddc84;color:#3ddc84;cursor:pointer;padding:0 10px 0 4px;border-radius:12px;transition:all .3s;display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:2px;box-shadow:0 2px 8px #3ddc8433;min-width:100px;height:64px}.kappa-button-text{font-size:13px;font-weight:800;letter-spacing:.5px;text-shadow:0 0 10px rgba(61,220,132,.4);margin-top:4px}.kappa-tree-button:hover{background:linear-gradient(135deg,#3ddc8440,#3ddc8426);transform:translateY(-2px);box-shadow:0 6px 20px #3ddc8466}.kappa-tree-button:hover .kappa-button-text{text-shadow:0 0 15px rgba(61,220,132,.8)}@media(max-width:1200px){.header{height:auto;flex-wrap:wrap;padding:16px}.header__left{order:1;width:auto}.header__right{order:2;min-width:280px}.header__center{order:3;width:100%;margin-top:10px}}@media(max-width:1024px){.header__controls-card{flex-wrap:wrap}.header__search-bar{order:-1;width:100%;min-width:100%}.trader-select,.map-select{flex-grow:1;width:auto}}@media(max-width:768px){.header__left,.header__center,.header__right{display:none!important}.header{height:auto;min-height:56px;padding:0;flex-direction:column;gap:0}.header__mobile-bar{display:flex!important;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-sizing:border-box}.trader-select--mobile{flex:1;max-width:none;width:auto;margin-right:12px;height:40px;font-size:15px}.mobile-menu-toggle{display:flex!important;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:8px;width:44px;height:40px;cursor:pointer;padding:0;transition:all .2s}.mobile-menu-toggle:hover{border-color:var(--accent-gold)}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:20px;height:20px}.hamburger span{display:block;width:100%;height:2px;background:var(--text-primary);border-radius:1px;transition:all .3s ease}.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)}.header__mobile-controls{display:flex!important;flex-direction:column;width:100%;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .2s ease,padding .3s ease;padding:0 12px;box-sizing:border-box}.header__mobile-controls--open{max-height:300px;opacity:1;padding:12px}.mobile-control-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mobile-control-row:last-child{margin-bottom:0}.level-input--mobile{width:70px;height:40px}.header__search-bar--mobile{flex:1;max-width:none;min-width:0}.header__search-bar--mobile .search-input-large{height:40px;font-size:15px}.map-select--mobile{flex:1;height:40px}.mobile-control-row--actions{justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border-color);margin-top:4px}.kappa-tree-button--mobile{min-width:90px;height:44px;padding:4px 10px}.kappa-tree-button--mobile .kappa-button-text{font-size:11px}}@media(min-width:769px){.header__mobile-bar,.header__mobile-controls{display:none!important}}.sync-button{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;transition:all .2s;margin-right:8px}.sync-button:hover{background:var(--bg-hover);border-color:var(--accent-gold);transform:rotate(180deg)}.sync-button--mobile{width:48px;height:48px;font-size:24px;border-radius:8px;margin:0}.settings-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.settings-header h2{margin:0;font-size:1.3rem;color:var(--text-primary);display:flex;align-items:center;gap:10px}.settings-close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.settings-close-btn:hover{background:#ffffff1a;color:var(--text-primary)}.settings-content{padding:20px 24px;overflow-y:auto;max-height:calc(80vh - 80px)}.settings-section{margin-bottom:28px}.settings-section:last-child{margin-bottom:0}.settings-section h3{margin:0 0 16px;font-size:1rem;color:var(--text-primary);display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border-color)}.settings-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:10px;transition:all .2s}.settings-item:last-child{margin-bottom:0}.settings-item:hover:not(.settings-item--disabled){border-color:var(--border-light)}.settings-item--disabled{opacity:.5;cursor:not-allowed}.settings-item-info{display:flex;flex-direction:column;gap:4px}.settings-item-label{font-weight:600;color:var(--text-primary);font-size:.95rem}.settings-item-desc{font-size:.8rem;color:var(--text-muted)}.settings-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;border:1px solid transparent}.settings-btn--danger{background:#dc354526;color:#ff6b6b;border-color:#dc35454d}.settings-btn--danger:hover{background:#dc35454d;border-color:#dc354580}.settings-btn--primary{background:#6495ed33;color:#7af;border-color:#6495ed4d}.settings-btn--primary:hover{background:#6495ed59;border-color:#6495ed80}.settings-btn--primary:disabled{opacity:.5;cursor:not-allowed}.settings-btn--secondary{background:#4caf5033;color:#7c7;border-color:#4caf504d;cursor:pointer}.settings-btn--secondary:hover{background:#4caf5059;border-color:#4caf5080}.settings-select{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);padding:6px 12px;border-radius:var(--radius-sm);font-size:.9rem;outline:none;cursor:pointer}.settings-select:focus{border-color:var(--accent-gold)}.settings-checkbox{width:20px;height:20px;cursor:pointer}.settings-info-block{background:var(--bg-tertiary);padding:16px;border-radius:var(--radius-sm);border:1px solid var(--border-color);text-align:center}.settings-info-block p{margin:4px 0;color:var(--text-secondary);font-size:.9rem}.settings-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;margin-top:16px}.settings-links a{color:var(--accent-blue);text-decoration:none;font-size:.9rem;font-weight:600}.settings-links a:hover{text-decoration:underline}.settings-btn--confirm{background:#ffc1074d;color:#ffc107;border-color:#ffc10780;animation:pulse .5s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.splash-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#0d0d0d,#1a1a2e,#16213e);display:flex;align-items:center;justify-content:center;z-index:9999;opacity:1;transition:opacity .5s ease-out}.splash-screen--fade-out{opacity:0;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;gap:30px;max-width:600px;padding:40px}.splash-logo-container{width:512px;height:512px;max-width:90%;display:flex;justify-content:center;align-items:center;overflow:hidden}.splash-character{width:100%;height:100%;background-image:url(../splash_running_strip.png);background-repeat:no-repeat;background-size:1600% 100%;background-position:0 0}.splash-character.anim-pickup{animation:killa-pickup-strip .8s steps(1) forwards}.splash-character.anim-run{animation:killa-run-strip .8s steps(1) infinite}@keyframes killa-pickup-strip{0%{background-position:0% 0}25%{background-position:6.666% 0}50%{background-position:13.333% 0}75%{background-position:20% 0}to{background-position:20% 0}}@keyframes killa-run-strip{0%{background-position:26.666% 0}8.33%{background-position:33.333% 0}16.66%{background-position:40% 0}25%{background-position:46.666% 0}33.33%{background-position:53.333% 0}41.66%{background-position:60% 0}50%{background-position:66.666% 0}58.33%{background-position:73.333% 0}66.66%{background-position:80% 0}75%{background-position:86.666% 0}83.33%{background-position:93.333% 0}91.66%{background-position:100% 0}to{background-position:26.666% 0}}.splash-loader{width:300px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.splash-loader-bar{height:100%;width:100%;background:linear-gradient(90deg,var(--accent-gold),#e6c65a);animation:splash-loading 4s linear;transform-origin:left}@keyframes splash-loading{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.splash-ad-container{position:absolute;bottom:90px;left:0;width:100%;display:flex;flex-direction:column;align-items:center;padding:16px 20px;background:#0006;border-top:1px solid rgba(255,255,255,.1)}.splash-ad-image{max-width:100%;max-height:100px;width:auto;height:auto;border-radius:4px}.splash-ad-placeholder{width:100%;max-width:728px;height:90px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:2px dashed rgba(255,255,255,.2);border-radius:4px;color:var(--text-muted);font-size:14px}.splash-ad-label{position:absolute;top:4px;right:8px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.splash-skip-btn{position:absolute;bottom:30px;right:30px;padding:10px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:20px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.splash-skip-btn:hover{background:#fff3;color:var(--text-primary)}@media(max-width:600px){.splash-logo{width:280px}.splash-ad-placeholder,.splash-ad-image{max-width:320px;width:100%}.splash-skip-btn{bottom:20px;right:20px}}@media(max-width:768px){.splash-screen{height:100%;min-height:100vh;min-height:-webkit-fill-available;overflow:hidden}.splash-content{padding:20px;gap:20px}.splash-logo-container{width:200px;height:200px}.splash-ad-container{bottom:60px;padding:10px 12px}.splash-ad-placeholder{height:60px}.splash-skip-btn{bottom:10px;right:10px;padding:8px 16px;font-size:12px}}.kappa-tree-overlay{position:fixed;inset:0;background:#000000f2;z-index:1000;display:flex;flex-direction:column}.kappa-tree-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:linear-gradient(135deg,#1a1a1a,#0d0d0d);border-bottom:1px solid #333}.kappa-tree-header h2{margin:0;font-size:1.5rem;color:#3ddc84;font-weight:700;text-transform:uppercase;letter-spacing:2px}.kappa-tree-close{background:#333;border:1px solid #555;color:#fff;width:36px;height:36px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .2s}.kappa-tree-close:hover{background:#f44336;border-color:#f44336}.kappa-tree-viewport{flex:1;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:radial-gradient(circle at 50% 50%,rgba(61,220,132,.03) 0%,transparent 50%),linear-gradient(#0a0a0a,#111)}.kappa-tree-canvas{position:relative;transform-origin:0 0;transition:transform .1s ease-out}.kappa-trader-section{position:absolute;border-radius:8px;pointer-events:none}.kappa-trader-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0006;border-radius:8px 8px 0 0}.kappa-trader-icon{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid currentColor}.kappa-trader-name{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.kappa-tree-edges{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.kappa-tree-node{position:absolute;padding:12px 16px;background:linear-gradient(145deg,#1e1e1e,#141414);border:2px solid #3ddc84;border-radius:8px;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #00000080}@keyframes kappa-pulse-border{0%{box-shadow:0 0 #00e5ffb3;border-color:#00e5ffcc}70%{box-shadow:0 0 20px 10px #00e5ff00;border-color:#00e5ff66}to{box-shadow:0 0 #00e5ff00;border-color:#00e5ffcc}}.kappa-tree-node.active{animation:kappa-pulse-border 2s infinite;border-color:#00e5ff!important;z-index:15}.kappa-tree-node:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3ddc8433}.kappa-tree-node.completed{border-color:#4caf50;background:linear-gradient(145deg,#1a2a1a,#0f1a0f)}.kappa-tree-node.prereq{border-color:#ff9800;border-style:dashed}.kappa-tree-node.prereq.completed{border-color:#ff9800}.kappa-node-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:8px}.kappa-node-name{font-size:14px;font-weight:700;color:#fff;line-height:1.3;flex:1}.completed .kappa-node-name{color:#888;text-decoration:line-through}.kappa-badge{font-size:10px;font-weight:700;color:#3ddc84;background:#3ddc8426;padding:2px 6px;border-radius:4px;border:1px solid #3ddc84;flex-shrink:0}.prereq-badge{font-size:10px;font-weight:700;color:#ff9800;background:#ff980026;padding:2px 6px;border-radius:4px;border:1px solid #ff9800;flex-shrink:0}.kappa-node-obj{font-size:12px;color:#aaa;line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kappa-node-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #333;padding-top:8px;font-size:11px}.kappa-node-map{color:#00e5ff;font-weight:600;text-transform:uppercase}.kappa-node-level{color:gold;font-weight:600}.kappa-node-check{color:#4caf50;font-size:16px;font-weight:700}.kappa-tree-controls{position:absolute;bottom:20px;right:20px;display:flex;gap:8px}.kappa-tree-controls button{padding:10px 16px;background:#333;color:#fff;border:1px solid #555;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.kappa-tree-controls button:hover{background:#444;border-color:#666}.loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(#141e28b3,#0a141ecc),url(../bg_snow_dark.png) no-repeat center center fixed;background-size:cover;z-index:8000;display:flex;align-items:center;justify-content:center;opacity:1}.loading-overlay--fade-out{animation:loading-fade-out .4s ease-out forwards}@keyframes loading-fade-out{0%{opacity:1}to{opacity:0}}.loading-overlay-content{display:flex;flex-direction:column;align-items:center;gap:30px;max-width:600px;padding:40px}.loading-character{width:256px;height:256px;background-image:url(../splash_running_strip.png);background-repeat:no-repeat;background-size:1600% 100%;animation:loading-run .8s steps(1) infinite}@keyframes loading-run{0%{background-position:26.666% 0}8.33%{background-position:33.333% 0}16.66%{background-position:40% 0}25%{background-position:46.666% 0}33.33%{background-position:53.333% 0}41.66%{background-position:60% 0}50%{background-position:66.666% 0}58.33%{background-position:73.333% 0}66.66%{background-position:80% 0}75%{background-position:86.666% 0}83.33%{background-position:93.333% 0}91.66%{background-position:100% 0}to{background-position:26.666% 0}}.loading-bar-container{width:300px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loading-bar{height:100%;width:100%;background:linear-gradient(90deg,var(--accent-gold),#e6c65a);animation:loading-progress linear forwards;transform-origin:left;transform:scaleX(0)}@keyframes loading-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.loading-ad-slot{position:absolute;bottom:90px;left:0;width:100%;display:flex;flex-direction:column;align-items:center;padding:16px 20px;background:#0006;border-top:1px solid rgba(255,255,255,.1)}.loading-ad-image{max-width:100%;max-height:100px;border-radius:4px}.loading-ad-placeholder{width:100%;max-width:728px;height:90px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:2px dashed rgba(255,255,255,.2);border-radius:4px;color:var(--text-muted);font-size:14px}.loading-ad-label{position:absolute;top:4px;right:20px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;opacity:.6}@media(max-width:600px){.loading-character{width:180px;height:180px}.loading-ad-placeholder{max-width:320px;width:100%}}@media(max-width:768px){.loading-overlay{height:100%;min-height:100vh;min-height:-webkit-fill-available;overflow:hidden}.loading-overlay-content{padding:20px;gap:20px}.loading-character{width:150px;height:150px}.loading-ad-slot{bottom:40px;padding:8px 12px}.loading-ad-placeholder{height:50px;max-width:280px}}[data-theme=light] .loading-overlay{background:linear-gradient(#f0f2f5cc,#ffffffe6),url(../bg_lab_light.png) no-repeat center center fixed;background-size:cover}.sync-panel-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sync-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:420px;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.sync-panel__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.sync-panel__header h2{margin:0;font-size:1.2rem;color:var(--text-primary)}.sync-panel__close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary);padding:4px 8px;border-radius:4px;transition:all .2s}.sync-panel__close:hover{background:var(--bg-hover);color:var(--text-primary)}.sync-panel__content{padding:20px}.sync-section{margin-bottom:24px}.sync-section h3{margin:0 0 8px;font-size:.95rem;color:var(--text-primary)}.sync-hint{margin:0 0 12px;font-size:.8rem;color:var(--text-muted)}.sync-code-display{display:flex;gap:10px;align-items:center}.sync-code{flex:1;font-family:Courier New,monospace;font-size:1.5rem;font-weight:700;letter-spacing:3px;color:var(--accent-gold);background:var(--bg-tertiary);padding:12px 16px;border-radius:8px;border:1px solid var(--border-color);text-align:center}.sync-copy-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s;white-space:nowrap}.sync-copy-btn:hover{background:var(--bg-hover);border-color:var(--accent-gold)}.sync-copy-btn:disabled{opacity:.5;cursor:not-allowed}.sync-actions{display:flex;gap:10px}.sync-btn{flex:1;padding:14px 16px;border-radius:8px;border:1px solid var(--border-color);cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.sync-btn--upload{background:#4caf5033;color:#4caf50;border-color:#4caf5066}.sync-btn--upload:hover:not(:disabled){background:#4caf504d}.sync-btn--download{background:#2196f333;color:#2196f3;border-color:#2196f366}.sync-btn--download:hover:not(:disabled){background:#2196f34d}.sync-btn--link{background:var(--accent-gold);color:var(--bg-primary);border-color:var(--accent-gold)}.sync-btn--link:hover:not(:disabled){filter:brightness(1.1)}.sync-link-input{display:flex;gap:10px}.sync-link-input input{flex:1;padding:12px 16px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem;font-family:Courier New,monospace;letter-spacing:2px;text-transform:uppercase}.sync-link-input input::placeholder{color:var(--text-muted);letter-spacing:normal;text-transform:none}.sync-link-input input:focus{outline:none;border-color:var(--accent-gold)}.sync-status{padding:12px 16px;border-radius:8px;text-align:center;font-size:.9rem;margin-top:16px}.sync-status--syncing{background:#ffc10733;color:#ffc107;border:1px solid rgba(255,193,7,.4)}.sync-status--success{background:#4caf5033;color:#4caf50;border:1px solid rgba(76,175,80,.4)}.sync-status--error{background:#f4433633;color:#f44336;border:1px solid rgba(244,67,54,.4)}.sync-last{text-align:center;font-size:.8rem;color:var(--text-muted);margin-top:12px}@media(max-width:768px){.sync-panel{width:95%;max-height:90vh}.sync-code{font-size:1.3rem;letter-spacing:2px}.sync-actions,.sync-link-input{flex-direction:column}}.sync-status-indicator{display:flex;align-items:center;gap:8px;background:#4caf501a;border:1px solid rgba(76,175,80,.3);padding:10px 16px;border-radius:8px;margin-bottom:20px}.status-text{font-weight:700;color:#4caf50;font-size:.9rem}.sync-guide{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;overflow:hidden}.sync-guide summary{padding:12px 16px;cursor:pointer;font-weight:600;background:var(--bg-hover);list-style:none;display:flex;align-items:center;justify-content:space-between}.sync-guide summary:after{content:"▼";font-size:.8rem;transition:transform .2s}.sync-guide[open] summary:after{transform:rotate(180deg)}.sync-guide-content{padding:16px;border-top:1px solid var(--border-color);font-size:.9rem;line-height:1.6}.sync-guide-content ol{padding-left:20px;margin:0}.sync-guide-content li{margin-bottom:12px}.sync-note{font-size:.8rem;color:var(--text-muted);margin-top:12px;font-style:italic}
