.character-list{background:var(--island-surface);border-radius:12px;padding:1.5rem;box-shadow:var(--island-shadow-md);max-height:calc(100vh - 400px);overflow-y:auto;position:sticky;top:calc(var(--navbar-height, 70px) + 1rem)}.character-card{background:var(--island-bg);border:2px solid transparent;border-radius:10px;padding:1rem;margin-bottom:.75rem;cursor:pointer;transition:var(--island-transition);display:flex;align-items:center;gap:1rem}.character-card:hover{background:var(--island-surface-hover);border-color:var(--island-accent);transform:translate(4px)}.character-card.selected{background:var(--island-accent-light);border-color:var(--island-accent)}.character-card-portrait{width:50px;height:50px;border-radius:8px;background:var(--island-border);flex-shrink:0;overflow:hidden;position:relative}.character-card-portrait img{width:100%;height:100%;object-fit:cover}.character-card-portrait:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--primary-alpha-20),transparent);opacity:0;transition:var(--island-transition)}.character-card:hover .character-card-portrait:before{opacity:1}.character-card-info{flex:1;min-width:0}.character-card-name{font-weight:600;font-size:.9375rem;color:var(--island-text-primary);margin:0 0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-card-power{font-size:.8125rem;color:var(--island-text-tertiary);margin:0;display:flex;align-items:center;gap:.25rem}.character-card-power .material-symbols-outlined{font-size:1rem;color:var(--island-warning)}.character-detail{background:var(--island-surface);border-radius:12px;padding:2rem;box-shadow:var(--island-shadow-md);min-height:600px}.detail-header{display:flex;gap:2rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid var(--island-border)}.detail-portrait{width:120px;height:180px;border-radius:12px;background:var(--island-bg);flex-shrink:0;overflow:hidden;box-shadow:var(--island-shadow-sm);position:relative}.detail-portrait img{width:100%;height:100%;object-fit:cover}.detail-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 60%,var(--island-accent));opacity:.1}.detail-info{flex:1}.detail-name{font-size:2rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .5rem}.detail-stats-row{display:flex;gap:2rem;margin-top:1rem}.detail-stat{display:flex;align-items:center;gap:.5rem}.detail-stat .material-symbols-outlined{font-size:1.25rem;color:var(--island-accent)}.detail-stat span{font-size:.9375rem;color:var(--island-text-secondary)}.detail-stat strong{color:var(--island-text-primary);font-weight:600}.level-calculator{background:var(--island-bg);padding:1.5rem;border-radius:10px;margin-bottom:1.5rem}.level-slider-container{margin-top:1rem}.level-slider-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:2rem}.level-info-group{display:flex;flex-direction:column;gap:.5rem}.level-display-item{display:flex;align-items:center;gap:.5rem}.level-slider-label span{font-size:.875rem;color:var(--island-text-secondary)}.level-slider-label strong{font-size:1.25rem;color:var(--island-accent)}.exp-display{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--island-surface);border-radius:6px;border:1px solid var(--island-border)}.exp-label{font-size:.75rem;color:var(--island-text-tertiary);font-weight:500}.exp-value{font-size:.875rem;color:var(--island-success);font-weight:700;font-family:Courier New,monospace}.exp-max{font-size:.875rem;color:var(--island-warning);font-weight:600}.limit-break-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--island-surface);border-radius:8px;border:2px solid var(--island-accent)}.limit-break-label{font-size:.875rem;color:var(--island-text-secondary);font-weight:500}.limit-break-value{font-size:1.5rem;color:var(--island-accent);font-weight:700;min-width:1.5rem;text-align:center}.level-slider{-webkit-appearance:none;width:100%;height:8px;border-radius:4px;background:var(--island-border);outline:none;cursor:pointer;position:relative;z-index:10}.level-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--island-accent);cursor:pointer;box-shadow:var(--island-shadow-sm);transition:var(--island-transition)}.level-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:var(--island-shadow-md)}.level-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--island-accent);cursor:pointer;box-shadow:var(--island-shadow-sm);border:none;transition:var(--island-transition)}.level-slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:var(--island-shadow-md)}.enhancement-selector{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--island-border)}.enhancement-label{display:block;font-size:.875rem;color:var(--island-text-secondary);font-weight:500;margin-bottom:.75rem}.enhancement-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.enhancement-btn{padding:.75rem 1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--island-transition);white-space:nowrap}.enhancement-btn:hover{background:var(--island-surface-hover);border-color:var(--island-accent);color:var(--island-accent)}.enhancement-btn.active{background:var(--island-accent);border-color:var(--island-accent);color:#fff;box-shadow:var(--island-shadow-sm)}.enhancement-bonus{color:var(--island-success);font-weight:700}.stats-table{width:100%;border-collapse:separate;border-spacing:0 .5rem}.stats-table th{text-align:center;font-size:.8125rem;font-weight:600;color:var(--island-text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:.5rem 1rem}.stats-table th:first-child{text-align:left}.stats-table td{background:var(--island-bg);padding:.875rem 1rem;color:var(--island-text-primary);font-size:.9375rem;text-align:center}.stats-table tr td:first-child{border-radius:8px 0 0 8px;font-weight:600;text-align:left}.stats-table tr td:last-child{border-radius:0 8px 8px 0}.attr-name-cell{font-weight:600;color:var(--island-text-primary)}.stat-cell{font-family:Courier New,monospace;text-align:center}.rank-cell{text-align:center}.stat-cell .stat-value{font-family:Courier New,monospace;font-weight:700;font-size:1rem}.stat-cell .base-stat{color:var(--island-text-secondary)}.stat-cell .current-stat{color:var(--island-accent)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;padding:.375rem .625rem;border-radius:6px;font-size:.8125rem;font-weight:700;letter-spacing:.5px;text-align:center;min-width:3rem;box-shadow:0 2px 4px #0003;transition:var(--island-transition)}.rank-sss{background:linear-gradient(135deg,gold,#ffed4e);color:#4a3000;border:1px solid #ffb700}.rank-ss{background:linear-gradient(135deg,#9b59b6,#c39bd3);color:#fff;border:1px solid #7d3c98}.rank-s{background:linear-gradient(135deg,var(--island-danger),#ec7063);color:#fff;border:1px solid var(--island-danger-hover)}.rank-a{background:linear-gradient(135deg,#e67e22,var(--island-warning));color:#fff;border:1px solid #d35400}.rank-b{background:linear-gradient(135deg,var(--island-success),#52be80);color:#fff;border:1px solid #1e8449}.rank-c{background:linear-gradient(135deg,#3498db,#5dade2);color:#fff;border:1px solid #2874a6}.rank-d{background:linear-gradient(135deg,#95a5a6,#bdc3c7);color:#2c3e50;border:1px solid #7f8c8d}.rank-e{background:linear-gradient(135deg,#7f8c8d,#95a5a6);color:#ecf0f1;border:1px solid #5d6d7e}.growth-rates-cell{font-family:Courier New,monospace;font-size:.875rem}.growth-rate{color:var(--island-text-secondary);transition:var(--island-transition)}.growth-rate-active{color:var(--island-accent);font-weight:700;font-size:1.1em;background:var(--island-accent-light);padding:.125rem .375rem;border-radius:4px;display:inline-block;transition:var(--island-transition)}.growth-separator{color:var(--island-text-tertiary);margin:0 .25rem}.skill-card{background:var(--island-bg);border-left:4px solid var(--island-accent);border-radius:10px;padding:1.5rem;margin-bottom:1rem}.skill-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.skill-title-container{display:flex;align-items:center;gap:1rem}.skill-icon{width:50px;height:50px;border-radius:8px;background:var(--island-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.skill-icon img{width:36px;height:36px}.skill-title{font-size:1.125rem;font-weight:600;color:var(--island-text-primary);margin:0}.skill-description{color:var(--island-text-secondary);line-height:1.6;margin:0 0 1rem;font-size:.9375rem}.skill-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:.5rem}.skill-level-badge{background:var(--island-surface);padding:.5rem;border-radius:6px;text-align:center;font-size:.8125rem;color:var(--island-text-secondary);border:1px solid var(--island-border)}.skill-level-badge.active{background:var(--island-accent);color:#fff;border-color:var(--island-accent);font-weight:600}.skill-level-label{font-size:.875rem;color:var(--island-text-tertiary);margin:0}.skill-level-label span{color:var(--island-accent);font-weight:700}.skill-level-selector{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--island-border)}.skill-level-selector-label{display:block;font-size:.875rem;color:var(--island-text-secondary);font-weight:500;margin-bottom:.75rem}.skill-level-buttons{display:grid;grid-template-columns:repeat(10,1fr);gap:.5rem}.skill-level-btn{padding:.5rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:6px;color:var(--island-text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--island-transition)}.skill-level-btn:hover{background:var(--island-surface-hover);border-color:var(--island-accent);color:var(--island-accent)}.skill-level-btn.active{background:var(--island-accent);border-color:var(--island-accent);color:#fff;box-shadow:var(--island-shadow-sm)}.skill-material{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--island-border)}.skill-material-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--island-text-secondary);font-weight:600;margin-bottom:.75rem}.skill-material-label .material-symbols-outlined{font-size:1.125rem;color:var(--island-accent)}.skill-material-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,var(--island-surface) 0%,var(--island-bg) 100%);border-radius:10px;border:2px solid var(--island-border);transition:var(--island-transition)}.skill-material-item:hover{border-color:var(--island-accent);box-shadow:0 2px 8px #7289da26}.skill-material-icon{width:56px;height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--island-bg);border:2px solid var(--island-border);border-radius:10px;font-size:2rem}.skill-material-icon img{width:100%;height:100%;object-fit:contain}.icon-placeholder{filter:grayscale(30%);opacity:.9}.skill-material-info{flex:1;display:flex;justify-content:space-between;align-items:center;gap:1rem}.skill-material-name{font-size:.9375rem;font-weight:600;color:var(--island-text-primary)}.skill-material-quantity{font-size:1.125rem;font-weight:700;color:var(--island-accent);background:var(--island-accent-light);padding:.375rem .75rem;border-radius:6px;white-space:nowrap}.material-resource{font-size:.875rem;color:var(--island-text-secondary)}.material-quantity{font-size:.9375rem;font-weight:700;color:var(--island-accent);font-family:Courier New,monospace}.skin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.skin-card{background:var(--island-bg);border-radius:10px;overflow:hidden;cursor:pointer;transition:var(--island-transition)}.skin-card:hover{transform:translateY(-4px);box-shadow:var(--island-shadow-lg)}.skin-thumbnail{width:100%;aspect-ratio:1;background:var(--island-border);position:relative;overflow:hidden}.skin-thumbnail img{width:100%;height:100%;object-fit:cover}.skin-info{padding:1rem}.skin-name{font-weight:600;font-size:.9375rem;color:var(--island-text-primary);margin:0 0 .5rem}.skin-description{font-size:.8125rem;color:var(--island-text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 768px){.character-list{position:static;max-height:400px}.detail-header{flex-direction:column;text-align:center;align-items:center}.detail-portrait{width:100px;height:100px}.detail-name{font-size:1.5rem}.detail-stats-row{flex-direction:column;gap:.75rem}.skin-gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.skill-level-buttons{grid-template-columns:repeat(5,1fr);gap:.375rem}.skill-level-btn{padding:.375rem;font-size:.8125rem}}@media (max-width: 480px){.character-detail{padding:1.5rem}.stats-table th,.stats-table td{padding:.625rem .75rem;font-size:.875rem}.skill-level-buttons{grid-template-columns:repeat(5,1fr);gap:.25rem}.skill-level-btn{padding:.375rem .25rem;font-size:.75rem}.level-calculator{padding:1rem}.level-slider-label{flex-direction:column;align-items:flex-start;gap:.75rem}.limit-break-indicator{width:100%;justify-content:center}.skill-card{padding:1rem}.skin-gallery{grid-template-columns:1fr}}.tech-category-filter{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem;padding:1rem;background:var(--island-surface);border-radius:12px;box-shadow:var(--island-shadow-sm)}.category-filter-btn{flex:1;min-width:140px;padding:.875rem 1.25rem;background:transparent;border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-secondary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:var(--island-transition);display:flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap}.category-filter-btn .material-symbols-outlined{font-size:1.25rem}.category-filter-btn:hover{background:var(--category-color, var(--island-accent))20;border-color:var(--category-color, var(--island-accent));color:var(--category-color, var(--island-accent))}.category-filter-btn.active{background:var(--category-color, var(--island-accent))20;border-color:var(--category-color, var(--island-accent));color:var(--category-color, var(--island-accent));box-shadow:0 0 0 3px var(--category-color, var(--island-accent)) 20}.tech-layout{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%}.tech-tree-container{background:var(--island-surface);border-radius:12px;padding:2rem;box-shadow:var(--island-shadow-md);min-height:600px;overflow-x:auto;overflow-y:auto;width:100%;max-width:100%;box-sizing:border-box;cursor:grab}.tech-tree-container:active{cursor:grabbing}.tech-resource-totals-wrapper{width:100%;max-width:100%;box-sizing:border-box}.tech-detail{position:fixed;top:50%;right:2rem;transform:translateY(-50%) translate(450px);width:420px;max-height:calc(100vh - 8rem);background:var(--island-surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;overflow-y:auto;z-index:1000;opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}.tech-detail.visible{transform:translateY(-50%) translate(0);opacity:1;pointer-events:auto}.tech-detail-close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:var(--island-transition)}.tech-detail-close:hover{background:var(--island-accent);border-color:var(--island-accent);transform:rotate(90deg)}.tech-detail-close .material-symbols-outlined{font-size:1.5rem;color:var(--island-text-secondary)}.tech-detail-close:hover .material-symbols-outlined{color:#fff}.skill-tree-grid{display:grid;grid-template-columns:repeat(var(--max-x, 10),18.75rem);grid-template-rows:repeat(var(--max-y, 10),2.1rem);gap:2rem;position:relative;padding:2rem;min-height:25rem}.skill-tree-connections{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.tech-connection{stroke:var(--island-border);stroke-width:2;opacity:.5}.skill-tree-node{width:18.75rem;height:2.1rem;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;background:var(--island-bg);border:2px solid var(--island-border);border-radius:.625rem;padding:.25rem .5rem;gap:.5rem;cursor:pointer;transition:var(--island-transition);position:relative;z-index:2}.skill-tree-node.empty{opacity:0;pointer-events:none}.skill-tree-node:not(.empty):hover{transform:translateY(-4px);box-shadow:var(--island-shadow-md);border-color:var(--island-accent)}.skill-tree-node.selected{border-color:var(--island-accent);box-shadow:0 0 0 3px var(--island-accent) 20}.skill-tree-node.locked{opacity:.6}.skill-tree-node.available{border-color:var(--island-accent)}.skill-tree-node.unlocked{border-color:var(--island-success);background:var(--island-success)10}.node-icon{width:1.25rem;height:1.25rem;min-width:1.25rem;border-radius:.375rem;display:flex;align-items:center;justify-content:center;border:2px solid}.node-icon .material-symbols-outlined{font-size:1.125rem}.node-name{flex:1;font-size:.75rem;font-weight:600;color:var(--island-text-primary);text-align:left;line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.node-level-badge{display:inline-block;padding:.125rem .375rem;margin-right:.375rem;background:var(--island-border);color:var(--island-text-tertiary);font-size:.625rem;font-weight:600;border-radius:4px;vertical-align:middle;flex-shrink:0}.tech-badge{position:absolute;top:-.375rem;left:-.375rem;width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 .125rem .5rem #0000004d;z-index:3;cursor:help;animation:badge-appear .3s ease-out}@keyframes badge-appear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.tech-badge .material-symbols-outlined{font-size:.875rem;color:#fff}.external-dep-badge{background:var(--island-warning)}.lock-badge{background:#ed4245}.lock-badge .material-symbols-outlined{font-variation-settings:"FILL" 1}.tech-category-group{margin-bottom:3rem;width:100%;max-width:100%}.tech-category-group:last-child{margin-bottom:0}.tech-category-title{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--island-text-primary);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--island-border)}.tech-category-title .material-symbols-outlined{font-size:2rem}.tech-count{font-size:1rem;font-weight:500;color:var(--island-text-tertiary);background:var(--island-border);padding:.25rem .75rem;border-radius:12px;margin-left:auto}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.tech-card{display:flex;align-items:center;gap:1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:.625rem;padding:1rem;cursor:pointer;transition:var(--island-transition);position:relative}.tech-card:hover{transform:translateY(-2px);box-shadow:var(--island-shadow-md);border-color:var(--island-accent)}.tech-card.selected{border-color:var(--island-accent);box-shadow:0 0 0 3px var(--island-accent) 20}.tech-card.locked{opacity:.7}.tech-card-icon{width:2.5rem;height:2.5rem;min-width:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid}.tech-card-icon .material-symbols-outlined{font-size:2rem}.tech-card-content{flex:1}.tech-card-name{font-size:.9375rem;font-weight:600;color:var(--island-text-primary);margin:0;line-height:1.3;display:flex;align-items:center}.tech-detail-content{padding:1.5rem}.tech-detail-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--island-border)}.tech-detail-icon{width:3.5rem;height:3.5rem;min-width:3.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid}.tech-detail-title h2{font-size:1.5rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .75rem;line-height:1.3}.tech-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem}.tech-category-badge,.tech-level-badge{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:600}.tech-level-badge{background:var(--island-border);color:var(--island-text-secondary)}.tech-description{font-size:.9375rem;color:var(--island-text-secondary);line-height:1.6;margin:0}.no-requirements{font-size:.875rem;color:var(--island-text-tertiary);font-style:italic;margin:0}.requirements-list{display:flex;flex-direction:column;gap:.75rem}.requirement-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--island-bg);border-radius:8px;border-left:3px solid var(--island-accent);transition:var(--island-transition)}.requirement-item.clickable{cursor:pointer;position:relative}.requirement-item.clickable:hover{background:var(--island-surface-hover);border-left-color:var(--island-accent-hover);transform:translate(2px)}.requirement-item.clickable .link-arrow{opacity:0;transition:var(--island-transition);font-size:1.125rem;color:var(--island-accent)}.requirement-item.clickable:hover .link-arrow{opacity:1;transform:translate(2px)}.requirement-item .material-symbols-outlined{font-size:1.25rem;color:var(--island-accent);flex-shrink:0}.requirement-content{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1}.requirement-content>span{font-size:.875rem;color:var(--island-text-primary);font-weight:500}.requirement-category-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;border:1px solid currentColor}.requirement-quest-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;background-color:#43b58126;color:#43b581;border:1px solid #43b581}.formula-stats{display:flex;flex-direction:column;gap:.75rem}.formula-stat{display:flex;align-items:center;gap:1rem;padding:.875rem;background:var(--island-bg);border-radius:8px}.stat-icon{font-size:1.75rem;color:var(--island-accent)}.stat-info{display:flex;flex-direction:column;gap:.125rem}.stat-label{font-size:.75rem;color:var(--island-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1rem;font-weight:600;color:var(--island-text-primary)}.formula-costs{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--island-border)}.formula-costs h4{font-size:.875rem;font-weight:600;color:var(--island-text-secondary);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.5px}.cost-list{display:flex;flex-direction:column;gap:.5rem}.cost-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .875rem;background:var(--island-bg);border-radius:6px;font-size:.875rem}.cost-resource{color:var(--island-text-secondary)}.cost-amount{font-weight:600;color:var(--island-text-primary)}.cost-resource-display{display:flex;align-items:center;gap:.5rem}.cost-resource-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.cost-resource-icon.material-symbols-outlined{font-size:1.5rem;color:var(--island-text-secondary)}.cost-resource-name{font-size:.875rem;color:var(--island-text-secondary);font-weight:500}.completion-tips{padding:1rem;background:var(--island-success)10;border-left:3px solid var(--island-success);border-radius:8px;font-size:.875rem;color:var(--island-text-secondary);line-height:1.6}.completion-tips .highlight{color:var(--island-accent);font-weight:600}.tech-completion-toggle{position:absolute;top:.375rem;right:.375rem;width:1.75rem;height:1.75rem;background:transparent;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--island-transition);z-index:10;padding:0}.tech-completion-toggle .material-symbols-outlined{font-size:1.5rem;color:var(--island-text-tertiary);transition:var(--island-transition)}.tech-completion-toggle:hover:not(.disabled){transform:scale(1.1)}.tech-completion-toggle:hover:not(.disabled) .material-symbols-outlined{color:var(--island-accent)}.tech-completion-toggle.completed .material-symbols-outlined{color:var(--island-success);font-variation-settings:"FILL" 1}.tech-completion-toggle.disabled{cursor:not-allowed;opacity:.4}.tech-completion-toggle.disabled .material-symbols-outlined{color:var(--island-text-tertiary)}.tech-card.tech-completed,.skill-tree-node.tech-completed{opacity:.7;filter:saturate(.6);background:linear-gradient(to right,var(--island-success)15 0%,var(--island-success)05 100%);border-left:4px solid var(--island-success);padding-left:calc(1rem - 4px)}.skill-tree-node.tech-completed{padding-left:calc(.5rem - 4px)}.tech-card.tech-completed:hover,.skill-tree-node.tech-completed:hover{opacity:.85;filter:saturate(.8)}.resource-totals-container{padding:2rem;background:var(--island-surface);border-radius:12px;box-shadow:var(--island-shadow-md);border:2px solid var(--island-accent);width:100%;max-width:100%;box-sizing:border-box}.resource-totals-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--island-border);flex-wrap:wrap}.resource-totals-title{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--island-text-primary);margin:0}.resource-totals-title .material-symbols-outlined{font-size:2rem;color:var(--island-accent)}.resource-totals-mode-toggle{padding:.5rem 1rem;font-size:var(--island-text-sm);white-space:nowrap;flex-shrink:0}.resource-totals-mode-toggle .material-symbols-outlined{font-size:var(--island-icon-sm)}.resource-totals-empty{font-size:1rem;color:var(--island-text-secondary);text-align:center;padding:2rem;margin:0}.tech-progress{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.tech-progress-text{font-size:.875rem;font-weight:600;color:var(--island-text-secondary);text-align:right}.tech-progress-bar{width:100%;height:8px;background:var(--island-border);border-radius:4px;overflow:hidden}.tech-progress-fill{height:100%;background:linear-gradient(90deg,var(--island-accent),var(--island-success));border-radius:4px;transition:width .3s ease}.resource-totals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.resource-total-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--island-bg);border-radius:8px;border-left:3px solid var(--island-accent)}.resource-total-icon{width:2.5rem;height:2.5rem;min-width:2.5rem;background:var(--island-accent)20;border-radius:8px;display:flex;align-items:center;justify-content:center}.resource-total-icon .material-symbols-outlined{font-size:1.5rem;color:var(--island-accent)}.resource-total-icon img{width:100%;height:100%;object-fit:contain}.resource-total-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.resource-total-name{font-size:.875rem;color:var(--island-text-secondary);font-weight:500}.resource-total-amount{font-size:1.125rem;font-weight:700;color:var(--island-text-primary)}.tech-detail .empty-state{padding:4rem 2rem}.tech-detail .empty-state .material-symbols-outlined{font-size:5rem;opacity:.3}.tech-detail .empty-state h3{font-size:1.25rem;margin:1rem 0 .5rem}.tech-detail .empty-state p{font-size:.875rem}@media (max-width: 1200px){.resource-totals-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.tech-detail{width:380px}.skill-tree-grid{grid-template-columns:repeat(var(--max-x, 10),16.875rem);grid-template-rows:repeat(var(--max-y, 10),1.875rem);gap:1.5rem}.skill-tree-node{width:16.875rem;height:1.875rem;padding:.25rem .5rem;gap:.5rem}.node-icon{width:1.5rem;height:1.5rem;min-width:1.5rem}.node-icon .material-symbols-outlined{font-size:1rem}.node-name{font-size:.6875rem}.node-level-badge{padding:.0625rem .25rem;margin-right:.25rem;font-size:.5625rem}}@media (max-width: 1024px){.tech-detail{right:1rem;left:1rem;width:auto;max-width:500px;margin:0 auto}.tech-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.resource-totals-header{flex-direction:column;align-items:flex-start}.tech-progress{width:100%}.tech-progress-text{text-align:left}}@media (max-width: 768px){.tech-detail{width:calc(100vw - 2rem);max-width:none;inset:4rem 1rem;transform:translateY(100vh);max-height:calc(100vh - 8rem)}.tech-detail.visible{transform:translateY(0)}.tech-category-filter{padding:.75rem;gap:.5rem}.category-filter-btn{min-width:120px;padding:.75rem 1rem;font-size:.875rem}.tech-tree-container{padding:1.5rem}.skill-tree-grid{grid-template-columns:repeat(var(--max-x, 10),15rem);grid-template-rows:repeat(var(--max-y, 10),1.8rem);gap:1.25rem;padding:1rem}.skill-tree-node{width:15rem;height:1.8rem;padding:.25rem .5rem;gap:.375rem}.node-icon{width:1.375rem;height:1.375rem;min-width:1.375rem}.node-icon .material-symbols-outlined{font-size:.875rem}.node-name{font-size:.625rem}.node-level-badge{padding:.0625rem .25rem;margin-right:.25rem;font-size:.5625rem}.tech-grid{grid-template-columns:1fr}.tech-detail-header{flex-direction:column;text-align:center}.tech-detail-icon{width:4rem;height:4rem;min-width:4rem}.formula-stat{gap:.75rem}.resource-totals-container{padding:1.5rem}.resource-totals-grid{grid-template-columns:1fr}}@media (max-width: 480px){.category-filter-btn{min-width:100px;padding:.625rem .75rem;font-size:.8125rem;flex:1 1 calc(50% - .5rem)}.tech-tree-container{padding:1rem}.skill-tree-grid{grid-template-columns:repeat(var(--max-x, 10),13.125rem);grid-template-rows:repeat(var(--max-y, 10),1.6875rem);gap:1rem;padding:.5rem}.skill-tree-node{width:13.125rem;height:1.6875rem;padding:.25rem .375rem;border-radius:.375rem;gap:.375rem}.node-icon{width:1.25rem;height:1.25rem;min-width:1.25rem}.node-icon .material-symbols-outlined{font-size:.75rem}.node-name{font-size:.5625rem}.node-level-badge{padding:.0625rem .1875rem;margin-right:.1875rem;font-size:.5rem}.tech-detail-content{padding:1rem}.tech-category-title{font-size:1.25rem}.tech-category-title .material-symbols-outlined{font-size:1.75rem}.resource-totals-container{padding:1rem;margin-top:2rem}.resource-totals-title{font-size:1.125rem}.resource-totals-title .material-symbols-outlined{font-size:1.5rem}.tech-completion-toggle{width:1.5rem;height:1.5rem;top:.25rem;right:.25rem}.tech-completion-toggle .material-symbols-outlined{font-size:1.25rem}}.node-icon img,.tech-card-icon img,.tech-detail-icon img{width:100%;height:100%;object-fit:contain}.node-icon,.tech-card-icon,.tech-detail-icon{background-color:#000}.quest-layout{display:grid;grid-template-columns:400px 1fr;gap:2rem;align-items:start}.quest-type-filter{position:relative;margin-bottom:1.5rem}.quest-type-dropdown{width:100%;padding:1rem 1.25rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:10px;color:var(--island-text-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--island-transition);display:flex;align-items:center;gap:.75rem;box-shadow:var(--island-shadow-sm)}.quest-type-dropdown:hover{border-color:var(--island-accent);background:var(--island-surface-hover)}.quest-type-dropdown .material-symbols-outlined:first-child{color:var(--island-accent);font-size:1.5rem}.dropdown-text{flex:1;text-align:left}.dropdown-arrow{color:var(--island-text-tertiary);transition:transform .3s ease}.quest-type-dropdown:hover .dropdown-arrow{color:var(--island-accent)}.quest-type-menu{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--island-surface);border:2px solid var(--island-border);border-radius:10px;box-shadow:var(--island-shadow-lg);max-height:400px;overflow-y:auto;z-index:100;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease}.quest-type-menu.visible{opacity:1;visibility:visible;transform:translateY(0)}.quest-type-option{padding:.875rem 1.25rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:var(--island-transition);border-bottom:1px solid var(--island-border)}.quest-type-option:last-child{border-bottom:none}.quest-type-option:hover{background:var(--island-accent-light)}.quest-type-option.active{background:var(--island-accent);color:#fff}.quest-type-option .material-symbols-outlined{font-size:1.25rem;color:var(--island-accent)}.quest-type-option.active .material-symbols-outlined{color:#fff}.option-name{flex:1;font-size:.9375rem;font-weight:600}.option-count{background:var(--island-bg);padding:.25rem .625rem;border-radius:12px;font-size:.8125rem;font-weight:700;color:var(--island-text-secondary)}.quest-type-option.active .option-count{background:var(--highlight-medium);color:#fff}.quest-list{background:var(--island-surface);border-radius:12px;padding:1rem;box-shadow:var(--island-shadow-sm);max-height:800px;overflow-y:auto}.quest-card{background:var(--island-bg);border:2px solid var(--island-border);border-radius:10px;padding:1rem;margin-bottom:1rem;cursor:pointer;transition:var(--island-transition)}.quest-card:last-child{margin-bottom:0}.quest-card:hover{border-color:var(--island-accent);background:var(--island-surface-hover);transform:translate(4px)}.quest-card.active{border-color:var(--island-accent);background:var(--island-accent-light);box-shadow:var(--island-shadow-sm)}.quest-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.quest-type-badge{display:flex;align-items:center;gap:.375rem;color:#fff;padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.quest-type-badge .material-symbols-outlined{font-size:1rem}.quest-series{color:var(--island-text-tertiary);font-size:.8125rem;font-weight:500}.quest-name{font-size:1rem;font-weight:600;color:var(--island-text-primary);margin:0 0 .5rem;line-height:1.4}.quest-desc{font-size:.875rem;color:var(--island-text-secondary);margin:0 0 .75rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.quest-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--island-text-tertiary);padding-top:.75rem;border-top:1px solid var(--island-border)}.quest-id{font-family:Consolas,monospace}.quest-unlock-time{background:var(--island-warning);color:#fff;padding:.125rem .5rem;border-radius:4px;font-weight:600}.quest-detail{background:var(--island-surface);border-radius:12px;padding:2rem;box-shadow:var(--island-shadow-md);position:sticky;top:2rem}.quest-detail-header{text-align:center;padding-bottom:1.5rem;border-bottom:2px solid var(--island-border);margin-bottom:2rem}.quest-detail-type{display:inline-flex;align-items:center;gap:.5rem;color:#fff;padding:.5rem 1.25rem;border-radius:8px;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1rem;box-shadow:0 2px 8px #00000026}.quest-detail-type .material-symbols-outlined{font-size:1.125rem}.quest-detail-header h2{font-size:1.75rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .5rem;line-height:1.3}.quest-detail-series{color:var(--island-text-secondary);font-size:1rem;font-weight:500}.quest-detail-desc{font-size:1rem;color:var(--island-text-secondary);line-height:1.7;margin:0}.unlock-conditions{display:flex;flex-direction:column;gap:.75rem}.unlock-condition-item{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:var(--island-bg);border:1px solid var(--island-border);border-radius:8px;font-size:.9375rem;color:var(--island-text-secondary)}.unlock-condition-item .material-symbols-outlined{color:var(--island-success);font-size:1.25rem}.quest-targets{display:flex;flex-direction:column;gap:1rem}.quest-target-item{background:var(--island-bg);border:1px solid var(--island-border);border-radius:8px;padding:1rem}.target-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.target-index{background:var(--island-accent);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}.target-name{font-weight:600;color:var(--island-text-primary);font-size:.9375rem}.target-info{font-size:.875rem;color:var(--island-text-secondary);margin:.5rem 0;padding-left:2.25rem}.target-tips{font-size:.875rem;color:var(--island-text-tertiary);font-style:italic;margin:.5rem 0;padding-left:2.25rem}.dev-note{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding:1rem;background:#faa61a1a;border:1px solid var(--island-warning);border-radius:8px;color:var(--island-warning);font-size:.875rem}.dev-note .material-symbols-outlined{font-size:1.25rem}.quest-metadata{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.metadata-item{background:var(--island-bg);border:1px solid var(--island-border);border-radius:8px;padding:1rem}.metadata-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--island-text-tertiary);margin-bottom:.5rem}.metadata-value{display:block;font-size:.9375rem;font-weight:600;color:var(--island-text-primary)}@media (max-width: 1024px){.quest-layout{grid-template-columns:350px 1fr;gap:1.5rem}}@media (max-width: 768px){.quest-layout{grid-template-columns:1fr;gap:1.5rem}.quest-detail{position:static}.quest-list{max-height:600px}.quest-metadata{grid-template-columns:1fr}}@media (max-width: 480px){.quest-detail{padding:1.5rem}.quest-detail-header h2{font-size:1.5rem}}.resource-layout{display:grid;grid-template-columns:350px 1fr 400px;gap:1.5rem;align-items:start}.resource-filter-controls{display:grid;grid-template-columns:220px 1fr auto;gap:.75rem;align-items:center;margin-bottom:1.5rem}.category-select{width:100%;padding:.875rem 1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:var(--island-transition);appearance:none}.category-select:hover,.category-select:focus{border-color:var(--island-accent);outline:none}.search-input{width:100%;padding:.875rem 2.5rem .875rem 1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.9375rem;transition:var(--island-transition)}.search-input:focus{border-color:var(--island-accent);outline:none}.search-input::placeholder{color:var(--island-text-tertiary)}.filter-action{display:flex;justify-content:flex-end}.tree-btn{height:100%;padding:.85rem 1.1rem;gap:.4rem}.dropdown-container{position:relative}.dropdown-icon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--island-text-tertiary);pointer-events:none;font-size:1.25rem}.recipe-icon img,.recipe-icon-large img,.material-icon img,.tree-node-icon img,.modal-item-icon img,.modal-recipe-icon img,.cost-item .cost-icon img{width:100%;height:100%;object-fit:contain}.recipe-list{background:var(--island-surface);border-radius:12px;padding:1rem;box-shadow:var(--island-shadow-sm);max-height:800px;overflow-y:auto}.recipe-card{display:flex;align-items:center;gap:1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:10px;padding:.875rem;margin-bottom:.75rem;cursor:pointer;transition:var(--island-transition)}.recipe-card:last-child{margin-bottom:0}.recipe-card:hover{border-color:var(--island-accent);background:var(--island-surface-hover);transform:translate(4px)}.recipe-card.active{border-color:var(--island-accent);background:var(--island-accent-light);box-shadow:var(--island-shadow-sm)}.recipe-icon{width:44px;height:44px;flex-shrink:0;background:var(--island-surface);border:1px solid var(--island-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}.recipe-icon img{width:82%;height:82%;object-fit:contain;image-rendering:auto;background:transparent}.recipe-info{flex:1;min-width:0}.recipe-name{font-size:.9375rem;font-weight:600;color:var(--island-text-primary);margin-bottom:.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--island-text-secondary)}.recipe-time,.recipe-exp{display:flex;align-items:center;gap:.25rem}.recipe-detail{background:var(--island-surface);border-radius:12px;padding:2rem;box-shadow:var(--island-shadow-md);min-height:600px}.recipe-detail-header{display:flex;align-items:center;gap:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid var(--island-border);margin-bottom:2rem}.recipe-icon-large{width:80px;height:80px;flex-shrink:0;background:var(--island-bg);border:3px solid var(--island-accent);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;overflow:hidden;box-shadow:var(--island-shadow-sm)}.recipe-icon-large img{width:100%;height:100%;object-fit:cover}.recipe-title-section h3{font-size:1.5rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .75rem}.recipe-meta-badges{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.recipe-category{display:inline-flex;align-items:center;background:var(--island-accent);color:#fff;padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.stat-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;background:var(--island-bg);border:1px solid var(--island-border);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--island-text-secondary)}.stat-badge.exp{border-color:var(--island-warning);color:var(--island-warning)}.stat-badge.stamina{border-color:var(--island-stamina);color:var(--island-stamina)}.recipe-header-actions{display:flex;flex-direction:column;gap:.5rem}.recipe-header-actions .action-btn{flex:0;padding:.5rem .75rem;font-size:.75rem}.recipe-flow{display:flex;align-items:stretch;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:12px}.flow-section{flex:1;min-width:0}.flow-title{font-size:.875rem;font-weight:700;color:var(--island-text-primary);margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.flow-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:0 1rem;position:relative}.arrow-head{width:48px;height:48px;background:var(--island-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #7289da4d}.arrow-head .material-symbols-outlined{font-size:1.75rem;color:#fff}.flow-stats{display:flex;flex-direction:row;gap:.5rem;align-items:center}.flow-stat{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;background:var(--island-surface);border:1px solid var(--island-border);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--island-text-secondary);white-space:nowrap}.material-list-vertical{display:flex;flex-direction:column;gap:.75rem}.material-item-vertical{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:var(--island-surface);border:1px solid var(--island-border);border-radius:8px;padding:.75rem;transition:var(--island-transition);text-align:center;color:var(--island-text-primary)}.material-top-row{display:flex;align-items:center;gap:.5rem}.material-item-vertical:hover{border-color:var(--island-border);background:var(--island-surface);transform:translate(2px)}.material-item-vertical,.material-item{border-left:none}.material-item-vertical[class*=rarity-],.material-item[class*=rarity-]{background:var(--island-surface);color:var(--island-text-primary)}.material-item .material-icon,.material-item-vertical .material-icon{border:2px solid var(--island-border);border-radius:10px}.material-item.rarity-1 .material-icon,.material-item-vertical.rarity-1 .material-icon{border-color:var(--rarity-n)}.material-item.rarity-2 .material-icon,.material-item-vertical.rarity-2 .material-icon{border-color:var(--island-stamina)}.material-item.rarity-3 .material-icon,.material-item-vertical.rarity-3 .material-icon{border-color:var(--island-points)}.material-item.rarity-4 .material-icon,.material-item-vertical.rarity-4 .material-icon{border-color:var(--island-warning)}.material-item.rarity-5 .material-icon,.material-item-vertical.rarity-5 .material-icon{border-color:var(--island-danger)}.manual-drop-section{margin-bottom:2rem;padding:1.5rem;background:var(--island-bg);border:2px solid var(--island-border);border-left:4px solid var(--island-points);border-radius:12px}.manual-drop-section.category1-manual{border-left-color:var(--island-success)}.manual-drop-section.category2-manual{border-left-color:var(--island-stamina)}.manual-flow{margin-top:1rem;padding:1rem;background:var(--island-surface);border-radius:8px}.manual-drop-title{font-size:.875rem;font-weight:700;color:var(--island-text-primary);margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.manual-time{font-size:.75rem;font-weight:600;color:var(--island-text-tertiary)}.material-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.material-item{display:flex;align-items:center;gap:.75rem;background:var(--island-surface);border:1px solid var(--island-border);border-radius:8px;padding:.75rem;transition:var(--island-transition);color:var(--island-text-primary)}.material-item:hover{border-color:var(--island-border);background:var(--island-surface);transform:translateY(-2px)}.material-icon{width:40px;height:40px;flex-shrink:0;background:var(--island-surface);border:1px solid var(--island-border);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;overflow:hidden}.material-icon img{width:100%;height:100%;object-fit:cover}.material-info{flex:1;min-width:0}.material-name{font-size:.875rem;font-weight:600;color:var(--island-text-primary);width:100%}.material-quantity{font-size:.875rem;font-weight:700;color:var(--island-accent);white-space:nowrap}.no-materials{color:var(--island-text-tertiary);font-style:italic;font-size:.875rem;margin:0;padding:1rem;background:var(--island-bg);border-radius:8px;text-align:center}.recipe-actions{display:flex;gap:.75rem;padding-top:1.5rem;border-top:2px solid var(--island-border)}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--island-transition)}.action-btn:hover{border-color:var(--island-accent);background:var(--island-accent-light);color:var(--island-accent)}.action-btn.primary{background:var(--island-accent);border-color:var(--island-accent);color:#fff}.action-btn.primary:hover{background:var(--island-accent-hover);transform:translateY(-2px)}.action-btn .material-symbols-outlined{font-size:1.125rem}.dependency-chain{background:linear-gradient(180deg,var(--highlight-subtle),var(--primary-alpha-10));border-radius:12px;padding:1.5rem;box-shadow:var(--island-shadow-md);position:sticky;top:2rem;max-height:800px;overflow-y:auto;border:1px solid var(--island-border)}.tree-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:2px solid var(--island-border);margin-bottom:1.5rem}.tree-header h3{font-size:1.125rem;font-weight:700;color:var(--island-text-primary);margin:0;display:flex;align-items:center;gap:.5rem}.tree-header h3 .material-symbols-outlined{font-size:1.375rem;color:var(--island-accent)}.tree-stats{display:flex;gap:.5rem}.stat-badge-sm{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--island-bg);border:1px solid var(--island-border);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--island-text-secondary)}.stat-badge-sm .material-symbols-outlined{font-size:.875rem}.stat-badge-sm.upstream{border-color:var(--island-stamina);color:var(--island-stamina)}.stat-badge-sm.downstream{border-color:#e67e22;color:#e67e22}.tree-section{margin-bottom:1.5rem}.tree-section-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;color:var(--island-text-primary);margin:0 0 1.25rem;padding:.75rem 1rem;background:linear-gradient(90deg,var(--highlight-subtle),var(--highlight-subtle));border-radius:8px;border:1px solid var(--island-border)}.tree-section-title .material-symbols-outlined{font-size:1rem}.tree-section-title.upstream{border:1px solid var(--primary-alpha-30);background:linear-gradient(90deg,var(--primary-alpha-15),var(--primary-alpha-10));color:var(--island-text-primary)}.tree-section-title.downstream{border:1px solid rgba(243,156,18,.55);background:linear-gradient(90deg,#f39c1229,#f39c1208);color:var(--island-text-primary)}.tree-nodes-wrapper{position:relative;padding-left:.25rem}.current-recipe-separator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.25rem;margin:2rem 0;background:repeating-linear-gradient(45deg,var(--island-surface),var(--island-surface) 10px,var(--primary-alpha-10) 10px,var(--primary-alpha-10) 20px);border:2px solid var(--island-accent);border-left:4px solid var(--island-accent);border-radius:8px;font-size:.875rem;font-weight:600;color:var(--island-text-secondary);box-shadow:0 2px 8px #7289da26}.current-recipe-separator .material-symbols-outlined{font-size:1.125rem;color:var(--island-accent);animation:pulse-icon 2s ease-in-out infinite}@keyframes pulse-icon{0%,to{opacity:1}50%{opacity:.6}}.current-recipe-text{color:var(--island-text-primary)}.tree-node{position:relative;margin-bottom:0;padding-left:.35rem}.tree-node:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--highlight-soft)}.tree-node[data-direction=upstream]:before{background:var(--primary-alpha-30)}.tree-node[data-direction=downstream]:before{background:#f39c1259}.tree-node.depth-0:before{display:none}.tree-node.last-child:before{height:50%}.tree-node-card{display:flex;align-items:center;gap:.875rem;background:var(--island-surface);border:1px solid var(--island-border);border-radius:10px;padding:1rem;margin-left:1.75rem;margin-bottom:.875rem;cursor:pointer;transition:var(--island-transition);position:relative;box-shadow:var(--island-shadow-sm)}.tree-node-card.manual-mode{border-left:4px solid var(--island-success);background:linear-gradient(to right,rgba(39,174,96,.05) 0%,var(--island-surface) 50%)}.tree-node-card.upstream{background:linear-gradient(90deg,var(--primary-alpha-10),var(--island-surface));border-color:var(--primary-alpha-30)}.tree-node-card.downstream{background:linear-gradient(90deg,rgba(243,156,18,.12),var(--island-surface));border-color:#f39c1273}.manual-badge{display:inline-block;font-size:.875rem;margin-right:.25rem}.tree-node.depth-0>.tree-node-card{margin-left:0}.tree-node-card:before{content:"";position:absolute;left:-1.75rem;top:50%;width:1.75rem;height:2px;background:var(--island-border)}.tree-node-card.upstream:before{background:#7289da73}.tree-node-card.downstream:before{background:#f39c1273}.tree-node.depth-0>.tree-node-card:before{display:none}.tree-node-card:hover{border-color:var(--island-accent);background:var(--island-surface-hover);transform:translate(3px);box-shadow:var(--island-shadow-sm)}.tree-node-card:hover .tree-node-arrow{opacity:1;transform:translate(2px)}.tree-node-icon{width:48px;height:48px;flex-shrink:0;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden;box-shadow:var(--island-shadow-sm)}.tree-node-icon img{width:100%;height:100%;object-fit:cover}.tree-node-info{flex:1;min-width:0;color:var(--island-text-primary)}.tree-node-name{font-size:.9375rem;font-weight:600;color:var(--island-text-primary);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node-via{font-size:.6875rem;color:var(--island-accent);margin-bottom:.375rem;font-style:italic}.tree-node-meta{display:flex;gap:.875rem;font-size:.75rem;color:var(--island-text-secondary)}.tree-node-meta span{display:flex;align-items:center;gap:.25rem}.tree-node-arrow{width:28px;height:28px;flex-shrink:0;color:var(--island-accent);opacity:0;transition:var(--island-transition);font-size:1.125rem}.tree-node-children{margin-top:.5rem;margin-left:.85rem;padding-left:.85rem;border-left:1px solid var(--highlight-soft)}.modal-empty-state{min-height:400px}.recipe-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:1;visibility:visible;transition:opacity .4s cubic-bezier(.4,0,.2,1),visibility .4s cubic-bezier(.4,0,.2,1)}.recipe-modal.hidden{opacity:0;visibility:hidden;pointer-events:none}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--overlay-intense);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-container{position:relative;width:100%;max-width:1000px;max-height:90vh;background:linear-gradient(135deg,var(--island-surface) 0%,var(--island-bg) 100%);border:2px solid var(--primary-alpha-30);border-radius:20px;box-shadow:0 24px 80px #0006,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;animation:modalSlideIn .4s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes modalSlideIn{0%{transform:translateY(-40px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.75rem 2.25rem;background:linear-gradient(135deg,var(--primary-alpha-10) 0%,var(--primary-alpha-10) 100%);border-bottom:2px solid var(--primary-alpha-20);box-shadow:0 2px 8px #0000000d}.modal-header h3{font-size:1.375rem;font-weight:700;color:var(--island-text-primary);margin:0;display:flex;align-items:center;gap:.75rem}.modal-header h3:before{content:"🌲";font-size:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.modal-close-btn{width:40px;height:40px;background:linear-gradient(135deg,var(--island-danger) 0%,var(--island-danger-hover) 100%);border:2px solid var(--highlight-soft);border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #e74c3c4d}.modal-close-btn:hover{background:linear-gradient(135deg,var(--island-danger-hover) 0%,#a93226 100%);transform:scale(1.1) rotate(90deg);box-shadow:0 6px 16px #e74c3c80}.modal-close-btn .material-symbols-outlined{font-size:1.375rem}.modal-content{flex:1;overflow-y:auto;padding:2.25rem;background:linear-gradient(180deg,transparent 0%,var(--overlay-lightest) 100%)}.modal-recipe-groups{display:flex;flex-direction:column;gap:2rem}.modal-recipe-group{background:var(--island-bg);border:2px solid var(--island-border);border-radius:12px;padding:1.5rem}.modal-item-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--island-border)}.modal-item-icon{width:60px;height:60px;flex-shrink:0;background:var(--island-surface);border:2px solid var(--island-accent);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:2rem;overflow:hidden}.modal-item-icon img{width:100%;height:100%;object-fit:cover}.modal-item-info h4{font-size:1.125rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .375rem}.modal-item-info p{font-size:.875rem;color:var(--island-text-secondary);margin:0}.modal-recipe-list{display:flex;flex-direction:column;gap:.75rem}.modal-recipe-card{display:flex;align-items:center;gap:1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:10px;padding:1rem;transition:var(--island-transition);cursor:pointer}.modal-recipe-card:hover{border-color:var(--island-accent);transform:translate(4px)}.modal-recipe-icon{width:48px;height:48px;flex-shrink:0;background:var(--island-bg);border:1px solid var(--island-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}.modal-recipe-icon img{width:100%;height:100%;object-fit:cover}.modal-recipe-info{flex:1;min-width:0}.modal-recipe-name{font-size:.9375rem;font-weight:600;color:var(--island-text-primary);margin-bottom:.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-recipe-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--island-text-secondary);flex-wrap:wrap}.modal-recipe-category{background:var(--island-accent);color:#fff;padding:.125rem .5rem;border-radius:4px;font-weight:600}.modal-select-btn{width:36px;height:36px;flex-shrink:0;background:var(--island-accent);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--island-transition)}.modal-select-btn:hover{background:var(--island-accent-hover);transform:scale(1.1)}.modal-select-btn .material-symbols-outlined{font-size:1.25rem}.modal-source-info{display:flex;align-items:center;gap:.75rem;margin-top:2rem;padding:1rem;background:var(--island-accent-light);border:2px solid var(--island-accent);border-radius:8px;color:var(--island-text-primary);font-size:.875rem}.modal-source-info .material-symbols-outlined{color:var(--island-accent);font-size:1.25rem}.cost-summary{margin-bottom:1.5rem;padding:.75rem;background:var(--island-bg-secondary);border:1px solid var(--island-border);border-radius:8px}.cost-summary-title{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;color:var(--island-text-secondary);margin:0 0 .75rem}.cost-summary-title .material-symbols-outlined{font-size:1rem}.cost-items{display:flex;flex-direction:column;gap:.5rem}.cost-item{display:flex;align-items:center;gap:.625rem;background:var(--island-surface);border:1px solid var(--island-border);border-radius:6px;padding:.5rem .75rem;transition:var(--island-transition)}.cost-item:hover{border-color:var(--island-border-hover);transform:translate(1px)}.cost-item.gold{border-left:2px solid var(--island-warning)}.cost-item.points{border-left:2px solid var(--island-points)}.cost-item.net-gain{border-left:2px solid var(--island-success)}.cost-item.net-gain .cost-amount.positive{color:var(--island-success);font-weight:700}.cost-item.net-gain .cost-amount.negative{color:var(--island-danger);font-weight:700}.cost-item.normalized{border-left:2px solid var(--island-stamina);opacity:.9}.cost-item .cost-icon{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;overflow:hidden}.cost-item.gold .cost-icon{font-size:1rem}.cost-item.normalized .cost-icon{font-size:.75rem}.cost-item .cost-icon img{width:100%;height:100%;object-fit:cover}.cost-name{flex:1;font-size:.75rem;font-weight:500;color:var(--island-text-primary)}.cost-item.gold .cost-name{color:var(--island-text-primary);font-weight:600}.cost-amount{font-size:.75rem;font-weight:600;color:var(--island-text-primary)}.cost-item.gold .cost-amount{color:var(--island-text-primary);font-size:.75rem}.cost-item.normalized .cost-name{color:var(--island-text-secondary);font-weight:500;font-size:.7rem}.cost-item.normalized .cost-amount{color:var(--island-text-secondary);font-weight:600;font-size:.7rem}.cost-comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.cost-column{background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;padding:1rem}.cost-column.manual-cost{border-left:4px solid var(--island-success)}.cost-column.auto-cost{border-left:4px solid var(--island-stamina)}.cost-column-title{font-size:.875rem;font-weight:700;color:var(--island-text-primary);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.cost-column.manual-cost .cost-column-title{color:var(--island-success)}.cost-column.auto-cost .cost-column-title{color:var(--island-stamina)}.resource-costs{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--island-border)}.resource-costs-title{font-size:.875rem;font-weight:700;color:var(--island-text-secondary);margin:0 0 .75rem}.tree-node.shop-purchase{position:relative}.tree-node-card.shop{background:var(--island-bg);border:1px solid var(--island-border);border-left:2px solid rgba(243,156,18,.4);cursor:default;padding:.625rem .75rem;box-shadow:none}.tree-node-card.shop:before{background:#f39c124d}.tree-node-card.shop:hover{border-color:var(--island-border);border-left-color:#f39c1299;background:var(--island-bg);transform:none}.tree-node-card.shop .tree-node-arrow{display:none}.tree-node-card.shop .tree-node-icon{width:36px;height:36px;border-width:1px}.shop-badge{display:inline-block;background:#f39c1226;color:var(--island-warning);border:1px solid rgba(243,156,18,.3);padding:.125rem .375rem;border-radius:3px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-right:.375rem;vertical-align:middle}.tree-node-meta.shop-cost{display:flex;flex-direction:row;gap:.375rem;align-items:center;margin-top:.25rem;padding-top:0;border-top:none}.shop-cost-label{font-size:.625rem;font-weight:500;color:var(--island-text-tertiary);text-transform:none;letter-spacing:0}.shop-cost-value{display:flex;align-items:center;gap:.25rem;font-size:.6875rem;font-weight:500;color:var(--island-text-secondary)}.total-cost{font-size:.625rem;color:var(--island-text-tertiary);font-weight:500}@media (max-width: 1400px){.resource-layout{grid-template-columns:320px 1fr 350px;gap:1.25rem}.recipe-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.resource-layout{grid-template-columns:300px 1fr;gap:1.5rem}.dependency-chain{display:none}.material-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width: 768px){.resource-layout{grid-template-columns:1fr;gap:1.5rem}.recipe-detail{position:static}.recipe-list{max-height:500px}.resource-filter-controls{grid-template-columns:1fr}.recipe-flow{flex-direction:column;gap:1.5rem}.flow-arrow{flex-direction:row;padding:1rem 0}.arrow-head{transform:rotate(90deg)}.flow-stats{flex-direction:row}.material-list{grid-template-columns:1fr}.recipe-actions{flex-direction:column}}@media (max-width: 480px){.recipe-detail{padding:1.5rem}.recipe-detail-header{flex-direction:column;align-items:flex-start}.recipe-meta-badges{width:100%}.recipe-flow,.manual-drop-section{padding:1rem}}@media (max-width: 768px){.recipe-modal{padding:1rem}.modal-container{max-height:95vh}.modal-header{padding:1.25rem 1.5rem}.modal-content{padding:1.5rem}.modal-recipe-card{flex-wrap:wrap}.modal-select-btn{margin-left:auto}}@media (max-width: 480px){.modal-item-header{flex-direction:column;align-items:flex-start}.modal-recipe-meta{flex-direction:column;gap:.5rem}}@media (max-width: 768px){.cost-comparison-grid{grid-template-columns:1fr}}.resource-utility-bar{display:flex;justify-content:flex-end;margin-bottom:1rem}.ghost-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#7289da14,#7289da08);border:2px solid var(--island-border);border-radius:10px;color:var(--island-text-primary);font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0000000d}.ghost-btn:hover{border-color:var(--island-accent);background:linear-gradient(135deg,#7289da26,#7289da14);color:var(--island-accent);transform:translateY(-2px);box-shadow:0 4px 12px #7289da33}.ghost-btn .material-symbols-outlined{font-size:1.25rem}.recipe-restaurant-links{margin:1.5rem 0;padding:1rem;border:1px solid var(--island-border);border-radius:var(--island-radius-lg);background:var(--island-surface)}.restaurant-links-title{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1rem}.restaurant-link-chips{display:flex;flex-wrap:wrap;gap:.5rem}.action-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.6rem .75rem;background:var(--island-bg);border:1px solid var(--island-border);border-radius:var(--island-radius-md);cursor:pointer;transition:var(--island-transition);min-width:160px}.action-chip:hover{border-color:var(--island-accent);color:var(--island-accent)}.chip-name{font-weight:700;color:#fff}.chip-meta{font-size:.85rem;color:var(--island-text-tertiary)}.forest-container{display:flex;flex-direction:column;gap:2rem}.forest-category{background:linear-gradient(135deg,#ffffff05,#ffffff03);border:2px solid var(--island-border);border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:0 2px 8px #00000014}.forest-category[open]{background:linear-gradient(135deg,#7289da0d,#7289da05);border-color:#7289da66;box-shadow:0 4px 16px #7289da26}.forest-category-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.75rem;font-size:1.25rem;font-weight:700;cursor:pointer;color:var(--island-text-primary);background:linear-gradient(90deg,var(--primary-alpha-10) 0%,transparent 100%);border-bottom:2px solid transparent;transition:all .3s ease}.forest-category[open] .forest-category-header{border-bottom-color:var(--primary-alpha-20);background:linear-gradient(90deg,var(--primary-alpha-15) 0%,rgba(114,137,218,.03) 100%)}.forest-category-header:hover{background:linear-gradient(90deg,var(--primary-alpha-20) 0%,rgba(114,137,218,.05) 100%)}.forest-category-header .material-symbols-outlined{font-size:1.5rem;color:var(--island-accent);filter:drop-shadow(0 2px 4px rgba(114,137,218,.3))}.forest-category-count{font-size:.9rem;font-weight:600;color:var(--island-accent);background:var(--primary-alpha-15);padding:.25rem .75rem;border-radius:12px;margin-left:auto}.forest-category-body{padding:1.5rem 1.75rem 1.75rem;display:flex;flex-direction:column;gap:1.25rem;background:linear-gradient(180deg,rgba(0,0,0,.02) 0%,transparent 100%)}.forest-tree-wrapper{background:var(--island-surface);border:2px solid var(--island-border);border-left:4px solid var(--island-accent);border-radius:12px;padding:1.25rem;transition:all .3s ease;box-shadow:0 2px 6px #0000000d}.forest-tree-wrapper:hover{border-left-color:var(--island-accent);box-shadow:0 4px 12px #7289da26;transform:translate(4px)}.forest-tree summary{list-style:none}.forest-tree summary::-webkit-details-marker{display:none}.forest-root{font-size:1.0625rem;font-weight:600;cursor:pointer}.forest-root-chip{display:inline-flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;background:linear-gradient(135deg,var(--primary-alpha-10) 0%,rgba(114,137,218,.03) 100%);border:2px solid var(--primary-alpha-30);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0000000d}.forest-root-chip:hover{border-color:var(--island-accent);background:linear-gradient(135deg,var(--primary-alpha-20) 0%,rgba(114,137,218,.08) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #7289da40}.forest-root-chip img{width:32px;height:32px;border-radius:6px;border:2px solid var(--primary-alpha-30);box-shadow:0 2px 4px #0000001a}.forest-chip-name{font-weight:700;color:var(--island-text-primary);font-size:1rem}.forest-root-meta{font-size:.8125rem;color:var(--island-text-secondary);font-weight:500;margin-left:auto;display:flex;align-items:center;gap:.5rem}.forest-tree-body{margin-top:1rem;padding-left:1.5rem}.forest-tree__group{position:relative;padding-left:2.5rem;margin-left:.75rem}.forest-tree__group:before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:linear-gradient(180deg,#7289da66,#7289da33,#7289da1a);border-radius:2px}.forest-tree__node{position:relative;padding:.375rem 0}.forest-tree__node:before{content:"";position:absolute;top:1.125rem;left:-2.5rem;width:2.5rem;height:3px;background:linear-gradient(90deg,#7289da66,#7289da33);border-radius:2px}.forest-tree__node:last-child>.forest-tree__group:before{height:1.5rem}.forest-tree__content{display:inline-flex;align-items:center;gap:.625rem;padding:.625rem 1rem;border-radius:10px;background:linear-gradient(135deg,var(--highlight-subtle) 0%,rgba(255,255,255,.02) 100%);border:2px solid var(--island-border);font-size:.9375rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000000d}.forest-tree__content:hover{border-color:var(--island-accent);background:linear-gradient(135deg,var(--primary-alpha-15) 0%,rgba(114,137,218,.05) 100%);transform:translate(4px);box-shadow:0 3px 8px #7289da33;cursor:pointer}.forest-tree__icon{width:28px;height:28px;border-radius:6px;border:2px solid var(--primary-alpha-20);box-shadow:0 2px 4px #00000014;transition:all .3s ease}.forest-tree__content:hover .forest-tree__icon{border-color:var(--island-accent);transform:scale(1.1)}.forest-tree__text{font-weight:600;color:var(--island-text-primary)}.forest-tree__meta{font-size:.8125rem;color:var(--island-text-secondary);font-weight:500;display:flex;align-items:center;gap:.375rem}.forest-tree__cost{font-size:.8125rem;color:var(--island-accent);font-style:normal;font-weight:500;background:var(--primary-alpha-10);padding:.125rem .5rem;border-radius:6px;margin-left:.5rem}.forest-category[data-category="1"][open]{background:linear-gradient(135deg,#27ae600d,#27ae6005);border-color:#27ae6066;box-shadow:0 4px 16px #27ae6026}.forest-category[data-category="1"] .forest-category-header{background:linear-gradient(90deg,rgba(39,174,96,.1) 0%,transparent 100%)}.forest-category[data-category="1"][open] .forest-category-header{border-bottom-color:#27ae6033;background:linear-gradient(90deg,#27ae6026,#27ae6008)}.forest-category[data-category="1"] .forest-category-header .material-symbols-outlined{color:var(--island-success);filter:drop-shadow(0 2px 4px rgba(39,174,96,.3))}.forest-category[data-category="1"] .forest-category-count{color:var(--island-success);background:#27ae6026}.forest-category[data-category="1"] .forest-tree-wrapper{border-left-color:var(--island-success)}.forest-category[data-category="1"] .forest-tree__group:before{background:linear-gradient(180deg,#27ae6066,#27ae6033,#27ae601a)}.forest-category[data-category="1"] .forest-tree__node:before{background:linear-gradient(90deg,#27ae6066,#27ae6033)}.forest-category[data-category="2"][open]{background:linear-gradient(135deg,#3498db0d,#3498db05);border-color:#3498db66;box-shadow:0 4px 16px #3498db26}.forest-category[data-category="2"] .forest-category-header{background:linear-gradient(90deg,rgba(52,152,219,.1) 0%,transparent 100%)}.forest-category[data-category="2"][open] .forest-category-header{border-bottom-color:#3498db33;background:linear-gradient(90deg,#3498db26,#3498db08)}.forest-category[data-category="2"] .forest-category-header .material-symbols-outlined{color:var(--island-stamina);filter:drop-shadow(0 2px 4px rgba(52,152,219,.3))}.forest-category[data-category="2"] .forest-category-count{color:var(--island-stamina);background:#3498db26}.forest-category[data-category="2"] .forest-tree-wrapper{border-left-color:var(--island-stamina)}.forest-category[data-category="2"] .forest-tree__group:before{background:linear-gradient(180deg,#3498db66,#3498db33,#3498db1a)}.forest-category[data-category="2"] .forest-tree__node:before{background:linear-gradient(90deg,#3498db66,#3498db33)}.forest-category[data-category="3"][open]{background:linear-gradient(135deg,#9b59b60d,#9b59b605);border-color:#9b59b666;box-shadow:0 4px 16px #9b59b626}.forest-category[data-category="3"] .forest-category-header{background:linear-gradient(90deg,rgba(155,89,182,.1) 0%,transparent 100%)}.forest-category[data-category="3"][open] .forest-category-header{border-bottom-color:#9b59b633;background:linear-gradient(90deg,#9b59b626,#9b59b608)}.forest-category[data-category="3"] .forest-category-header .material-symbols-outlined{color:var(--island-points);filter:drop-shadow(0 2px 4px rgba(155,89,182,.3))}.forest-category[data-category="3"] .forest-category-count{color:var(--island-points);background:#9b59b626}.forest-category[data-category="3"] .forest-tree-wrapper{border-left-color:var(--island-points)}.forest-category[data-category="3"] .forest-tree__group:before{background:linear-gradient(180deg,#9b59b666,#9b59b633,#9b59b61a)}.forest-category[data-category="3"] .forest-tree__node:before{background:linear-gradient(90deg,#9b59b666,#9b59b633)}.forest-category[data-category="4"][open]{background:linear-gradient(135deg,#f39c120d,#f39c1205);border-color:#f39c1266;box-shadow:0 4px 16px #f39c1226}.forest-category[data-category="4"] .forest-category-header{background:linear-gradient(90deg,rgba(243,156,18,.1) 0%,transparent 100%)}.forest-category[data-category="4"][open] .forest-category-header{border-bottom-color:#f39c1233;background:linear-gradient(90deg,#f39c1226,#f39c1208)}.forest-category[data-category="4"] .forest-category-header .material-symbols-outlined{color:var(--island-warning);filter:drop-shadow(0 2px 4px rgba(243,156,18,.3))}.forest-category[data-category="4"] .forest-category-count{color:var(--island-warning);background:#f39c1226}.forest-category[data-category="4"] .forest-tree-wrapper{border-left-color:var(--island-warning)}.forest-category[data-category="4"] .forest-tree__group:before{background:linear-gradient(180deg,#f39c1266,#f39c1233,#f39c121a)}.forest-category[data-category="4"] .forest-tree__node:before{background:linear-gradient(90deg,#f39c1266,#f39c1233)}.forest-category[data-category="6"][open]{background:linear-gradient(135deg,#e74c3c0d,#e74c3c05);border-color:#e74c3c66;box-shadow:0 4px 16px #e74c3c26}.forest-category[data-category="6"] .forest-category-header{background:linear-gradient(90deg,rgba(231,76,60,.1) 0%,transparent 100%)}.forest-category[data-category="6"][open] .forest-category-header{border-bottom-color:#e74c3c33;background:linear-gradient(90deg,#e74c3c26,#e74c3c08)}.forest-category[data-category="6"] .forest-category-header .material-symbols-outlined{color:var(--island-danger);filter:drop-shadow(0 2px 4px rgba(231,76,60,.3))}.forest-category[data-category="6"] .forest-category-count{color:var(--island-danger);background:#e74c3c26}.forest-category[data-category="6"] .forest-tree-wrapper{border-left-color:var(--island-danger)}.forest-category[data-category="6"] .forest-tree__group:before{background:linear-gradient(180deg,#e74c3c66,#e74c3c33,#e74c3c1a)}.forest-category[data-category="6"] .forest-tree__node:before{background:linear-gradient(90deg,#e74c3c66,#e74c3c33)}.seasonal-source{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:8px;margin-bottom:.75rem;transition:var(--island-transition)}.seasonal-source:hover{border-color:var(--island-accent);background:var(--island-hover)}.seasonal-source .material-symbols-outlined{font-size:1.5rem;color:var(--island-accent)}.seasonal-source.pickup{border-left:4px solid var(--island-warning)}.seasonal-source.shop{border-left:4px solid var(--island-stamina)}.seasonal-source.recipe{border-left:4px solid var(--island-success)}.seasonal-sources,.seasonal-recipes{margin:1.5rem 0}.seasonal-recipe-list{display:flex;flex-direction:column;gap:.5rem}.seasonal-recipe-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--island-surface);border:2px solid var(--island-border);border-radius:8px;cursor:pointer;transition:var(--island-transition)}.seasonal-recipe-card:hover{border-color:var(--island-accent);background:var(--island-hover);transform:translate(4px)}.seasonal-recipe-card .recipe-icon{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0}.seasonal-recipe-card .recipe-icon img{width:100%;height:100%;object-fit:cover}.seasonal-recipe-card .recipe-info{flex:1}.seasonal-recipe-card .recipe-name{font-weight:600;color:var(--island-text-primary);margin-bottom:.25rem}.seasonal-recipe-card .recipe-meta{display:flex;gap:.75rem;font-size:.875rem;color:var(--island-text-secondary)}.seasonal-recipe-card .material-symbols-outlined{color:var(--island-accent);opacity:0;transition:opacity .2s}.seasonal-recipe-card:hover .material-symbols-outlined{opacity:1}.seasonal-usage-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.seasonal-usage-list .tree-node-card{cursor:pointer}.seasonal-usage-list .tree-node-card:hover{transform:translate(4px)}.item-description{margin-top:.75rem;color:var(--island-text-secondary);font-size:.9375rem;line-height:1.6}.forest-category[data-category=시즌템][open]{background:linear-gradient(135deg,#e67e220d,#e67e2205);border-color:#e67e2266;box-shadow:0 4px 16px #e67e2226}.forest-category[data-category=시즌템] .forest-category-header{background:linear-gradient(90deg,rgba(230,126,34,.1) 0%,transparent 100%)}.forest-category[data-category=시즌템][open] .forest-category-header{border-bottom-color:#e67e2233;background:linear-gradient(90deg,#e67e2226,#e67e2208)}.forest-category[data-category=시즌템] .forest-category-header .material-symbols-outlined{color:#e67e22;filter:drop-shadow(0 2px 4px rgba(230,126,34,.3))}.forest-category[data-category=시즌템] .forest-category-count{color:#e67e22;background:#e67e2226}.forest-category[data-category=시즌템] .forest-tree-wrapper{border-left-color:#e67e22}.forest-category[data-category=시즌템] .forest-tree__group:before{background:linear-gradient(180deg,#e67e2266,#e67e2233,#e67e221a)}.forest-category[data-category=시즌템] .forest-tree__node:before{background:linear-gradient(90deg,#e67e2266,#e67e2233)}:root{--planner-bg: #1a1a1a;--planner-text: #ffffff;--planner-border: var(--island-accent);--planner-surface: rgba(255, 255, 255, .05);--planner-surface-hover: rgba(255, 255, 255, .1)}.restaurant-tabs-container{background:var(--island-surface);border-radius:var(--island-radius-xl);padding:var(--island-spacing-md);margin-bottom:var(--island-spacing-lg);box-shadow:var(--island-shadow-md)}.restaurant-tabs{display:flex;gap:var(--island-gap-sm);overflow-x:auto;padding-bottom:var(--island-spacing-xs)}.restaurant-tab{background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm) var(--island-spacing-md);cursor:pointer;transition:var(--island-transition);display:flex;align-items:center;gap:var(--island-gap-sm);white-space:nowrap;flex-shrink:0}.restaurant-tab .material-symbols-outlined{font-size:var(--island-icon-md);color:var(--island-text-tertiary)}.restaurant-tab-name{font-size:var(--island-text-md);font-weight:600;color:var(--island-text-secondary)}.restaurant-tab:hover{border-color:var(--island-accent);background:var(--island-surface)}.restaurant-tab.active{background:var(--island-accent);border-color:var(--island-accent)}.restaurant-tab.active .material-symbols-outlined,.restaurant-tab.active .restaurant-tab-name{color:#fff}.restaurant-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--island-spacing-md);margin-bottom:var(--island-spacing-lg)}.rank-selector-container{background:var(--island-surface);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);box-shadow:var(--island-shadow-md)}.rank-selector-label{display:flex;align-items:center;gap:var(--island-gap-xs);margin-bottom:var(--island-spacing-sm);font-size:var(--island-text-md);font-weight:600;color:var(--island-text-primary)}.rank-selector-label .material-symbols-outlined{font-size:var(--island-icon-md);color:var(--island-accent)}.rank-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--island-gap-sm)}.rank-btn{background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm);cursor:pointer;transition:var(--island-transition);display:flex;flex-direction:column;align-items:center;gap:.25rem;position:relative;overflow:hidden}.rank-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--rank-color);opacity:0;transition:opacity .2s}.rank-btn.active:before{opacity:1}.rank-icon{width:24px;height:24px;object-fit:contain}.rank-name{font-size:var(--island-text-xs);font-weight:600;color:var(--island-text-secondary)}.rank-coeff{font-size:.65rem;color:var(--island-text-tertiary);font-weight:600}.rank-btn:hover{border-color:var(--rank-color);background:var(--island-surface)}.rank-btn.active{border-color:var(--rank-color);background:linear-gradient(to bottom,var(--island-surface),var(--island-bg));box-shadow:0 0 12px rgba(var(--rank-color),.3)}.rank-btn.active .rank-name{color:var(--rank-color)}.event-toggles-container{background:var(--island-surface);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);box-shadow:var(--island-shadow-md)}.event-toggles-label{display:flex;align-items:center;gap:var(--island-gap-xs);margin-bottom:var(--island-spacing-sm);font-size:var(--island-text-md);font-weight:600;color:var(--island-text-primary)}.event-toggles-label .material-symbols-outlined{font-size:var(--island-icon-md);color:var(--island-accent)}.event-checkboxes{display:flex;flex-direction:column;gap:var(--island-gap-sm)}.event-checkbox-label{display:flex;align-items:center;gap:var(--island-gap-sm);padding:var(--island-spacing-xs) var(--island-spacing-sm);background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);cursor:pointer;transition:var(--island-transition)}.event-checkbox{position:absolute;opacity:0;pointer-events:none}.event-checkbox-custom{width:18px;height:18px;border:2px solid var(--island-border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:var(--island-transition);flex-shrink:0}.event-checkbox-custom:after{content:"✓";color:#fff;font-size:12px;font-weight:700;opacity:0;transform:scale(0);transition:all .2s}.event-checkbox:checked+.event-checkbox-custom{background:var(--island-accent);border-color:var(--island-accent)}.event-checkbox:checked+.event-checkbox-custom:after{opacity:1;transform:scale(1)}.event-checkbox-label:hover{border-color:var(--island-accent);background:var(--island-surface)}.event-name{flex:1;font-size:var(--island-text-sm);font-weight:500;color:var(--island-text-secondary)}.event-bonus{font-size:var(--island-text-xs);font-weight:700;color:var(--island-success);background:#27ae601a;padding:.2rem .4rem;border-radius:var(--island-radius-sm)}.shipgirl-selector-container{background:var(--island-surface);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);box-shadow:var(--island-shadow-md)}.shipgirl-selector{opacity:1;transition:opacity .3s}.shipgirl-selector.disabled{opacity:.5;pointer-events:none}.shipgirl-selector-label{display:flex;align-items:center;gap:var(--island-gap-xs);margin-bottom:var(--island-spacing-sm);font-size:var(--island-text-md);font-weight:600;color:var(--island-text-primary)}.shipgirl-selector-label .material-symbols-outlined{font-size:var(--island-icon-md);color:var(--island-accent)}.gold-only-badge{font-size:.65rem;padding:.2rem .5rem;border-radius:var(--island-radius-sm);font-weight:700;background:linear-gradient(135deg,gold,#ffed4e);color:#1a1d23;margin-left:auto}.shipgirl-attributes{display:flex;flex-direction:column;gap:var(--island-gap-sm)}.attribute-selector{display:flex;flex-direction:column;gap:.25rem}.attribute-label{font-size:var(--island-text-xs);font-weight:600;color:var(--island-text-secondary);padding-left:.25rem}.attribute-select{background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm) var(--island-spacing-md);font-size:var(--island-text-sm);font-weight:600;color:var(--island-text-primary);cursor:pointer;transition:var(--island-transition)}.attribute-select:hover:not(:disabled){border-color:var(--island-accent);background:var(--island-surface)}.attribute-select:focus{outline:none;border-color:var(--island-accent);box-shadow:0 0 0 3px rgba(var(--island-accent-rgb),.1)}.attribute-select:disabled{cursor:not-allowed;opacity:.5}.restaurant-menu-container{background:var(--island-surface);border-radius:var(--island-radius-xl);padding:var(--island-spacing-lg);box-shadow:var(--island-shadow-md);padding-bottom:80px}#restaurant-planner-view .restaurant-menu-container{display:none}.restaurant-menu-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--island-spacing-md)}.menu-card{background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);transition:var(--island-transition)}.menu-card:hover{border-color:var(--island-accent);box-shadow:var(--island-shadow-sm)}.menu-card.error{border-color:var(--island-danger);color:var(--island-danger)}.menu-card-header{display:flex;align-items:center;gap:var(--island-gap-md);margin-bottom:var(--island-spacing-md);padding-bottom:var(--island-spacing-md);border-bottom:2px solid var(--island-border)}.restaurant-menu-icon{width:48px;height:48px;background:var(--island-surface);border:2px solid var(--island-border);border-radius:var(--island-radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;background-size:cover}.restaurant-menu-icon .material-symbols-outlined{font-size:var(--island-icon-xl);color:var(--island-accent)}.restaurant-menu-icon img{width:100%;height:100%;object-fit:contain}.menu-info{flex:1;min-width:0}.menu-name{font-size:var(--island-text-lg);font-weight:700;color:var(--island-text-primary);margin:0 0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-meta{display:flex;align-items:center;gap:var(--island-gap-sm)}.menu-id{font-size:var(--island-text-xs);color:var(--island-text-tertiary)}.recipe-time{font-size:var(--island-text-xs);color:var(--island-accent);font-weight:600;background:rgba(var(--island-accent-rgb),.1);padding:.125rem .375rem;border-radius:var(--island-radius-sm)}.rarity-badge{font-size:var(--island-text-xs);font-weight:700;padding:.125rem .375rem;border-radius:var(--island-radius-sm)}.rarity-1{background:gray;color:#fff}.rarity-2{background:#4caf50;color:#fff}.rarity-3{background:#2196f3;color:#fff}.rarity-4{background:#9c27b0;color:#fff}.rarity-5{background:gold;color:#1a1d23}.menu-planner-control{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--island-spacing-md);background:var(--island-surface);padding:var(--island-spacing-sm);border-radius:var(--island-radius-md)}.menu-planner-control label{font-size:var(--island-text-sm);font-weight:600;color:var(--island-text-secondary)}.planner-qty-control{display:flex;align-items:center;gap:.5rem}.planner-qty-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--island-border);background:var(--island-bg);color:var(--island-text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--island-transition)}.planner-qty-btn:hover{background:var(--island-accent);color:#fff;border-color:var(--island-accent)}.planner-qty-btn .material-symbols-outlined{font-size:16px}.planner-qty-input{width:60px;height:28px;text-align:center;border:1px solid var(--island-border);border-radius:var(--island-radius-sm);background:var(--island-bg);color:var(--island-text-primary);font-weight:600}.planner-qty-input:focus{outline:none;border-color:var(--island-accent)}.profit-summary{display:flex;flex-direction:column;gap:var(--island-gap-sm);margin-bottom:var(--island-spacing-md)}.profit-row{display:flex;justify-content:space-between;align-items:center;padding:var(--island-spacing-xs) 0}.profit-row.highlight{border-top:1px solid var(--island-border);border-bottom:1px solid var(--island-border);padding:var(--island-spacing-sm) 0;margin:var(--island-spacing-xs) 0}.profit-label{font-size:var(--island-text-sm);color:var(--island-text-secondary);display:flex;align-items:center;gap:var(--island-gap-xs)}.profit-value{font-size:var(--island-text-md);font-weight:600;color:var(--island-text-primary);font-variant-numeric:tabular-nums}.profit-value.cost{color:var(--island-danger)}.profit-value.sales-count{color:var(--island-accent);font-weight:700}.profit-row.total-profit{background:linear-gradient(to right,rgba(var(--island-accent-rgb),.05),rgba(var(--island-accent-rgb),.1));margin:var(--island-spacing-xs) -var(--island-spacing-xs);padding:var(--island-spacing-sm) var(--island-spacing-xs);border-radius:var(--island-radius-md)}.profit-value.total-value{color:var(--island-success);font-size:var(--island-text-lg);font-weight:700}.profit-value small{font-size:.75rem;font-weight:600;margin-left:.25rem}.margin-excellent{color:#0eac6a;opacity:1}.margin-great{color:#7fae27;opacity:1}.margin-good{color:#cecb79;opacity:1}.margin-fair{color:#e67e22;opacity:1}.margin-very-low{color:var(--island-danger);opacity:1}.profit-row.profit-positive .profit-value,.profit-row.profit-negative .profit-value{color:var(--island-text-primary)}.profit-row.profit-neutral .profit-value{color:var(--island-text-tertiary)}.event-active-indicator{font-size:1rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.menu-details{border-top:2px solid var(--island-border);padding-top:var(--island-spacing-md)}.menu-details summary{display:flex;align-items:center;gap:var(--island-gap-sm);cursor:pointer;padding:var(--island-spacing-sm);background:var(--island-surface);border-radius:var(--island-radius-md);font-size:var(--island-text-sm);font-weight:600;color:var(--island-text-secondary);transition:var(--island-transition);list-style:none;user-select:none}.menu-details summary::-webkit-details-marker{display:none}.menu-details summary .material-symbols-outlined{font-size:var(--island-icon-md);color:var(--island-accent)}.menu-details summary:hover{background:var(--island-surface-hover);color:var(--island-accent)}.menu-details[open] summary{border-bottom:1px solid var(--island-border);margin-bottom:var(--island-spacing-sm)}.rank-comparison-table{display:flex;flex-direction:column;gap:var(--island-gap-xs)}.rank-comparison-row{display:grid;grid-template-columns:auto 1fr 1fr .8fr 1fr;align-items:center;gap:var(--island-spacing-md);padding:var(--island-spacing-sm);background:var(--island-bg);border:1px solid var(--island-border);border-radius:var(--island-radius-md);transition:var(--island-transition)}.rank-comparison-row:hover{background:var(--island-surface);border-color:var(--island-accent)}.rank-comparison-row.current{background:rgba(var(--island-accent-rgb),.1);border-color:var(--island-accent)}.rank-label{display:flex;align-items:center;gap:var(--island-gap-xs);font-weight:600;font-size:var(--island-text-sm)}.rank-label .material-symbols-outlined{font-size:var(--island-icon-sm)}.current-badge{font-size:.65rem;padding:.15rem .4rem;border-radius:var(--island-radius-sm);font-weight:700;margin-left:var(--island-gap-xs)}.current-badge{background:var(--island-accent);color:#fff}.rank-sell-price{font-size:var(--island-text-sm);font-weight:600;color:var(--island-text-secondary);text-align:right}.rank-profit{font-size:var(--island-text-sm);font-weight:700;text-align:right}.rank-profit.profit-positive{color:var(--island-success)}.rank-profit.profit-negative{color:var(--island-danger)}.rank-profit.profit-neutral{color:var(--island-text-tertiary)}.rank-profit small{font-size:.7rem;font-weight:600;margin-left:.25rem}.rank-sales-count{font-size:var(--island-text-xs);font-weight:600;color:var(--island-text-tertiary);text-align:right}.rank-total-profit{font-size:var(--island-text-sm);font-weight:700;color:var(--island-success);text-align:right}.cost-breakdown-details{margin-top:var(--island-spacing-md)}.cost-breakdown-list{display:flex;flex-direction:column;gap:var(--island-gap-xs)}.cost-breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:var(--island-spacing-xs) var(--island-spacing-sm);background:var(--island-surface);border-radius:var(--island-radius-sm);font-size:var(--island-text-sm)}.cost-breakdown-item .resource-name{color:var(--island-text-secondary);font-weight:500}.cost-breakdown-item .resource-amount{color:var(--island-text-primary);font-weight:700;font-variant-numeric:tabular-nums}.profit-row .resource-count{color:var(--island-accent);font-weight:600}.menu-actions{display:flex;gap:var(--island-gap-sm);margin-top:var(--island-spacing-md)}.menu-action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .9rem;border-radius:var(--island-radius-md);border:1px solid var(--island-border);background:var(--island-accent);color:#fff;cursor:pointer;transition:var(--island-transition)}.menu-action-btn:hover{box-shadow:var(--island-shadow-md)}.menu-card-highlight{outline:2px solid var(--island-accent);box-shadow:0 0 0 6px rgba(var(--island-accent-rgb),.12)}.planner-btn{border:none;border-radius:var(--island-radius-md);padding:.6rem 1.25rem;font-weight:700;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:var(--island-transition)}.planner-btn.reset{background:#e74c3c1a;color:var(--island-danger);border:1px solid rgba(231,76,60,.3)}.planner-btn.reset:hover{background:var(--island-danger);color:#fff;border-color:var(--island-danger);transform:translateY(-1px)}.planner-btn.calculate{background:var(--island-accent);color:#fff;border:1px solid var(--island-accent);box-shadow:0 2px 8px rgba(var(--island-accent-rgb),.25)}.planner-btn.calculate:hover{background:var(--island-accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--island-accent-rgb),.35)}.planner-btn.text-only{background:transparent;border:1px solid var(--island-border);color:var(--island-text-secondary);padding:.5rem 1rem}.planner-btn.text-only:hover{border-color:var(--island-danger);color:var(--island-danger);background:#e74c3c0d}@media (max-width: 1200px){.restaurant-controls{grid-template-columns:1fr}.restaurant-menu-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.rank-comparison-row{grid-template-columns:auto 1fr 1fr .8fr 1fr;font-size:var(--island-text-xs)}}@media (max-width: 768px){.restaurant-tabs{flex-wrap:nowrap;overflow-x:auto}.restaurant-tab{font-size:var(--island-text-sm)}.rank-buttons{grid-template-columns:repeat(4,1fr)}.restaurant-menu-list{grid-template-columns:1fr}.rank-comparison-row{grid-template-columns:auto .8fr .8fr .6fr .8fr;font-size:var(--island-text-xs);gap:var(--island-spacing-xs)}.planner-bar{width:90%;flex-direction:column;gap:1rem;padding:1rem;border-radius:20px}.planner-actions{width:100%}.planner-btn{flex:1;justify-content:center}}@media (max-width: 480px){.restaurant-tabs-container{padding:var(--island-spacing-sm)}.restaurant-tab{padding:var(--island-spacing-xs) var(--island-spacing-sm)}.restaurant-tab-name{font-size:var(--island-text-sm)}.rank-buttons{grid-template-columns:repeat(2,1fr);gap:var(--island-gap-xs)}.rank-btn{padding:var(--island-spacing-xs)}.event-checkboxes{gap:var(--island-gap-xs)}.event-checkbox-label{padding:.25rem .5rem}.profit-row{font-size:var(--island-text-xs)}}.planner-slot-custom{position:relative;background:var(--island-bg);border:1px solid var(--island-border);border-radius:var(--island-radius-md);padding:var(--island-spacing-xs);cursor:pointer;transition:all .2s ease;min-height:65px;display:flex;align-items:center;justify-content:center}.planner-slot-custom:hover{border-color:var(--island-accent);background:var(--island-surface)}.planner-slot-custom.filled{border-color:rgba(var(--island-accent-rgb),.4);background:var(--island-surface)}.planner-slot-custom.filled:hover{border-color:var(--island-accent);box-shadow:0 3px 10px rgba(var(--island-accent-rgb),.2)}.slot-content{display:flex;flex-direction:column;align-items:center;gap:.25rem;width:100%}.slot-icon{width:40px;height:40px;border-radius:var(--island-radius-sm);display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;border:1px solid var(--highlight-soft)}.slot-icon img{width:100%;height:100%;object-fit:contain}.slot-name{font-size:.7rem;font-weight:600;color:var(--island-text-primary);text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.slot-placeholder{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--island-text-tertiary);opacity:.5;transition:opacity .2s}.planner-slot-custom:hover .slot-placeholder{opacity:1;color:var(--island-accent)}.slot-placeholder .material-symbols-outlined{font-size:1.5rem}.slot-placeholder span:last-child{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.menu-selection-modal-overlay{position:fixed;inset:0;background:var(--overlay-intense);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--island-spacing-lg);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.menu-selection-modal{background:var(--island-surface);border:2px solid var(--island-border);border-radius:var(--island-radius-xl);max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.menu-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--island-spacing-md) var(--island-spacing-lg);border-bottom:2px solid var(--island-border);background:linear-gradient(to bottom,var(--highlight-subtle),transparent)}.menu-modal-header h3{display:flex;align-items:center;gap:var(--island-gap-sm);margin:0;font-size:1.1rem;font-weight:700;color:var(--island-text-primary)}.menu-modal-header .material-symbols-outlined{color:var(--island-accent);font-size:1.5rem}.menu-modal-header .modal-close-btn{width:32px;height:32px;border-radius:var(--island-radius-sm);border:1px solid var(--island-border);background:var(--island-bg);color:var(--island-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.menu-modal-header .modal-close-btn:hover{background:var(--island-danger);border-color:var(--island-danger);color:#fff}.menu-modal-body{display:flex;flex-direction:column;gap:var(--island-spacing-md);padding:var(--island-spacing-md);overflow-y:auto}.menu-modal-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--island-gap-sm);padding:var(--island-spacing-sm);background:var(--overlay-medium);border-radius:var(--island-radius-md)}.menu-modal-slot{display:flex;flex-direction:column;gap:.25rem;padding:var(--island-spacing-xs);background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-sm);text-align:center;cursor:pointer;transition:all .2s}.menu-modal-slot:hover{border-color:rgba(var(--island-accent-rgb),.5);background:var(--island-surface)}.menu-modal-slot.selected{border-color:rgba(var(--island-accent-rgb),.4);background:rgba(var(--island-accent-rgb),.05)}.menu-modal-slot.active{border-color:var(--island-accent);background:rgba(var(--island-accent-rgb),.15);box-shadow:0 0 0 2px rgba(var(--island-accent-rgb),.2)}.menu-modal-current-slot{padding:var(--island-spacing-sm);text-align:center;font-size:.85rem;color:var(--island-text-secondary);background:var(--overlay-light);border-radius:var(--island-radius-sm);border:1px solid var(--island-border)}.menu-modal-current-slot strong{color:var(--island-accent);font-weight:700}.slot-number{font-size:.65rem;font-weight:700;color:var(--island-text-tertiary);text-transform:uppercase}.slot-current{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-height:50px;justify-content:center}.slot-current img{width:32px;height:32px;object-fit:contain}.slot-current span{font-size:.65rem;font-weight:600;color:var(--island-text-primary);line-height:1.2}.slot-current .empty-text{color:var(--island-text-tertiary);opacity:.5}.menu-modal-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--island-gap-sm)}.menu-option-item{display:flex;align-items:center;gap:var(--island-gap-sm);padding:var(--island-spacing-sm);background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);cursor:pointer;transition:all .2s}.menu-option-item:hover{border-color:var(--island-accent);background:var(--island-surface);transform:translate(4px)}.menu-option-icon{width:48px;height:48px;flex-shrink:0;border-radius:var(--island-radius-sm);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;border:1px solid var(--highlight-soft)}.menu-option-icon img{width:100%;height:100%;object-fit:contain}.menu-option-icon.empty-icon{background:#e74c3c1a;border-color:var(--island-danger)}.menu-option-icon.empty-icon .material-symbols-outlined{color:var(--island-danger);font-size:1.5rem}.menu-option-details{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.menu-option-name{font-size:.85rem;font-weight:600;color:var(--island-text-primary);line-height:1.3}.menu-option-ingredients{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap;overflow:visible}.menu-option-ingredients img{width:28px;height:28px;object-fit:contain;border-radius:4px;background:var(--overlay-medium);border:1px solid var(--highlight-soft);position:relative;transition:opacity .2s}.menu-option-ingredients img:hover{z-index:100}.menu-option-ingredients img:before{content:attr(data-name);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--overlay-opaque);color:#fff;padding:.4rem .7rem;border-radius:var(--island-radius-sm);font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000;box-shadow:0 2px 8px #0000004d}.menu-option-ingredients img:hover:before{opacity:1}.menu-option-ingredients img:after{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--overlay-opaque);opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000}.menu-option-ingredients img:hover:after{opacity:1}.menu-option-ingredients .more-count{font-size:.65rem;font-weight:700;color:var(--island-text-tertiary);padding:.1rem .3rem;background:var(--highlight-subtle);border-radius:3px}.copy-preset-description{text-align:center;color:var(--island-text-secondary);font-size:var(--island-text-md);margin-bottom:var(--island-spacing-md);padding:var(--island-spacing-sm);background:var(--overlay-medium);border-radius:var(--island-radius-md)}.copy-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--island-spacing-md);padding:var(--island-spacing-sm)}.copy-preset-option{display:flex;flex-direction:column;align-items:center;gap:var(--island-gap-sm);cursor:pointer;transition:all .2s}.copy-preset-option.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.copy-preset-option:not(.disabled):hover .copy-preset-slot{border-color:var(--island-accent);background:var(--island-surface);transform:translateY(-3px);box-shadow:0 4px 12px rgba(var(--island-accent-rgb),.3)}.copy-preset-slot{width:100px;height:100px;background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:all .2s ease}.copy-preset-slot .preset-slot-num{position:absolute;top:4px;left:6px;font-size:.75rem;color:var(--island-text-tertiary);font-weight:800;background:var(--overlay-opaque);padding:.25rem .4rem;border-radius:4px;z-index:2}.copy-preset-slot .preset-mini-grid{width:80px;height:80px}.copy-preset-slot .preset-empty-dash{font-size:2rem}.copy-preset-label{font-size:var(--island-text-sm);font-weight:600;color:var(--island-text-secondary);text-align:center}@media (max-width: 768px){.menu-modal-slots{grid-template-columns:repeat(2,1fr)}.menu-modal-options{grid-template-columns:1fr}.copy-preset-grid{grid-template-columns:repeat(2,1fr)}}.planner-modal-container{max-width:600px;width:90%;background:var(--planner-bg);border:1px solid var(--island-border);color:var(--planner-text)}.planner-modal-container .modal-header h3{color:var(--planner-text)}.planner-modal-container .modal-close-btn{color:#ccc}.planner-modal-container .modal-close-btn:hover{background:var(--planner-surface-hover);color:#fff}.planner-meal-summary{margin-bottom:var(--island-spacing-lg);background:var(--planner-surface);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);border:1px solid var(--highlight-soft)}.planner-meal-summary h4{margin:0 0 var(--island-spacing-md) 0;color:var(--island-accent);font-size:1rem;border-bottom:1px solid var(--highlight-soft);padding-bottom:.5rem}.planner-meal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--island-spacing-md)}.planner-restaurant-group{background:var(--overlay-medium);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm)}.planner-restaurant-name{font-weight:700;color:#ccc;font-size:.9rem;margin-bottom:.5rem}.planner-meal-items{list-style:none;padding:0;margin:0}.planner-meal-item{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:.25rem;color:var(--planner-text)}.planner-meal-qty{font-weight:700;color:var(--island-accent);margin-right:.5rem}.planner-section-title{margin:0 0 1rem;color:var(--island-accent);font-size:1rem;border-bottom:1px solid var(--highlight-soft);padding-bottom:.5rem}.planner-ingredient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--island-spacing-md);max-height:60vh;overflow-y:auto;padding-right:.5rem}.planner-ingredient-grid::-webkit-scrollbar-thumb{background-color:var(--highlight-medium)}.planner-ingredient-grid::-webkit-scrollbar-track{background-color:var(--planner-surface)}.ingredient-card{background:var(--planner-surface);border:1px solid var(--highlight-soft);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm);display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;transition:var(--island-transition)}.ingredient-card:hover{background:var(--planner-surface-hover);border-color:var(--highlight-strong)}.ingredient-icon{width:48px;height:48px;position:relative;display:flex;align-items:center;justify-content:center}.ingredient-icon img{width:100%;height:100%;object-fit:contain}.ingredient-qty{position:absolute;bottom:-5px;right:-5px;background:var(--island-accent);color:#fff;font-size:.75rem;font-weight:700;padding:.1rem .3rem;border-radius:4px;box-shadow:0 2px 4px #0000004d;border:none}.ingredient-name{font-size:.85rem;color:#e0e0e0;font-weight:600;line-height:1.2}.confirm-modal-container{max-width:400px;width:90%;background:var(--planner-bg);border:1px solid var(--planner-border);color:var(--planner-text)}.confirm-modal-container .modal-header h3{color:var(--planner-text);display:flex;align-items:center;gap:.5rem}.confirm-modal-container .modal-header .material-symbols-outlined{color:var(--island-warning)}.confirm-modal-container .modal-close-btn{color:#ccc}.confirm-modal-container .modal-close-btn:hover{background:var(--planner-surface-hover);color:#fff}.confirm-message{font-size:1.1rem;text-align:center;margin:1.5rem 0;line-height:1.5}.confirm-actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.confirm-actions .planner-btn{min-width:100px;justify-content:center}.restaurant-tab.planner-tab{position:relative;border-color:var(--island-accent);background:linear-gradient(135deg,rgba(var(--island-accent-rgb),.1),rgba(var(--island-accent-rgb),.05))}.restaurant-tab.planner-tab:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--island-accent);opacity:0;transition:opacity .2s}.restaurant-tab.planner-tab:hover{background:linear-gradient(135deg,rgba(var(--island-accent-rgb),.2),rgba(var(--island-accent-rgb),.1))}.restaurant-tab.planner-tab:hover:before{opacity:.5}.restaurant-tab.planner-tab.active{background:var(--island-accent);color:#fff;box-shadow:0 4px 12px rgba(var(--island-accent-rgb),.3)}.restaurant-tab.planner-tab.active:before{opacity:1}.planner-layout-grid{display:grid;grid-template-columns:1fr;gap:var(--island-spacing-lg);max-width:100%}@media (min-width: 1000px){.planner-layout-grid{grid-template-columns:1fr 420px;align-items:start}}.planner-builder-section{width:100%}.planner-actions-bar{display:flex;justify-content:flex-end;padding:var(--island-spacing-sm) 0;margin-top:var(--island-spacing-md)}.planner-modern-card{background:var(--island-surface);border:1px solid var(--island-border);border-radius:var(--island-radius-lg);margin-bottom:var(--island-spacing-md);overflow:visible;box-shadow:0 1px 4px #0000000d;transition:all .3s ease}.planner-modern-card:hover{box-shadow:0 2px 8px #00000014;border-color:rgba(var(--island-accent-rgb),.3)}.card-header{background:linear-gradient(to bottom,rgba(255,255,255,.03),transparent);padding:var(--island-spacing-sm) var(--island-spacing-md);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--island-border)}.header-left{display:flex;align-items:center;gap:var(--island-gap-sm)}.header-left .icon{font-size:1.15rem;color:var(--island-accent)}.header-left .restaurant-name{font-size:.95rem;font-weight:700;color:var(--island-text-primary);letter-spacing:-.01em}.header-right{display:flex;gap:var(--island-gap-sm);align-items:center}.global-qty-wrapper{display:flex;align-items:center;gap:var(--island-gap-xs)}.global-qty-wrapper .qty-label{font-size:.7rem;font-weight:700;color:var(--island-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-right:.25rem}.qty-control-group{display:flex;align-items:center;gap:0;background:var(--island-bg);border:1px solid var(--island-border);border-radius:var(--island-radius-sm);overflow:hidden}.qty-btn{width:32px;height:32px;border:none;background:var(--overlay-medium);color:var(--island-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.qty-btn:hover{background:var(--island-accent);color:#fff}.qty-btn .material-symbols-outlined{font-size:1.25rem}.qty-btn-minus{border-right:1px solid var(--island-border)}.qty-btn-plus{border-left:1px solid var(--island-border)}.planner-global-input.modern{background:transparent;border:none;padding:.25rem .3rem;width:38px;text-align:center;color:var(--island-text-primary);font-weight:700;font-size:.85rem;-webkit-appearance:none;-moz-appearance:textfield;appearance:none}.planner-global-input.modern:focus{outline:none}.planner-global-input.modern::-webkit-outer-spin-button,.planner-global-input.modern::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.card-body{padding:var(--island-spacing-md)}.planner-slot-grid.modern{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--island-spacing-sm)}.card-footer{background:linear-gradient(to top,rgba(255,255,255,.02),transparent);padding:var(--island-spacing-xs) var(--island-spacing-md);border-top:1px solid var(--island-border)}.preset-control-group{display:flex;align-items:center;gap:var(--island-gap-sm)}.preset-label-group{display:flex;flex-direction:column;gap:.15rem;min-width:50px}.preset-label{font-size:.85rem;font-weight:700;color:var(--island-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.preset-current-indicator{font-size:.65rem;color:var(--island-accent);font-weight:600;line-height:1}.planner-preset-actions{margin-left:auto;display:flex;gap:.25rem}.preset-action-btn{width:36px;height:36px;border-radius:var(--island-radius-sm);border:1px solid var(--island-border);background:var(--island-bg);color:var(--island-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative}.preset-action-btn:before{content:attr(title);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--overlay-opaque);color:#fff;padding:.4rem .6rem;border-radius:var(--island-radius-sm);font-size:.7rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10001;box-shadow:0 2px 8px #0000004d}.preset-action-btn:hover:before{opacity:1}.card-footer,.preset-control-group{overflow:visible}.preset-action-btn:hover{background:var(--island-accent);color:#fff;border-color:var(--island-accent);transform:translateY(-1px);box-shadow:0 2px 6px rgba(var(--island-accent-rgb),.2)}.preset-action-btn .material-symbols-outlined{font-size:1.2rem}.planner-preset-visual-row{display:flex;gap:var(--island-gap-sm)}.preset-visual-slot{width:80px;height:80px;background:var(--island-bg);border:2px solid var(--island-border);border-radius:var(--island-radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:all .2s ease}.preset-visual-slot:hover{background:var(--island-surface);border-color:var(--island-accent)}.preset-visual-slot.selected{border-color:var(--island-accent);background:linear-gradient(135deg,rgba(var(--island-accent-rgb),.2),rgba(var(--island-accent-rgb),.05));box-shadow:0 0 0 3px rgba(var(--island-accent-rgb),.25);z-index:1}.preset-slot-num{position:absolute;top:2px;left:3px;font-size:.65rem;color:var(--island-text-tertiary);font-weight:800;line-height:1;background:var(--overlay-opaque);padding:.2rem .35rem;border-radius:3px;z-index:2}.preset-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);width:64px;height:64px;gap:3px}.preset-mini-grid img{width:100%;height:100%;object-fit:contain;border-radius:3px;background:var(--overlay-strong);border:1px solid var(--highlight-soft)}.preset-empty-dash{color:var(--island-text-tertiary);font-size:1.75rem;line-height:1;opacity:.3;font-weight:200}.preset-visual-slot:hover .preset-empty-dash{opacity:.6;color:var(--island-accent)}.planner-result-group-card{background:var(--island-surface);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);margin-bottom:var(--island-spacing-md);border:1px solid var(--island-border);transition:all .2s}.group-header{display:flex;align-items:center;gap:.5rem;margin-bottom:var(--island-spacing-md);color:var(--island-text-secondary);font-weight:700;font-size:.9rem;border-bottom:1px solid var(--highlight-subtle);padding-bottom:.5rem}.planner-ingredient-grid.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:.5rem}.ingredient-card.mini{width:48px;height:48px;padding:0;border-radius:6px;background:transparent;border:1px solid transparent;position:relative;display:flex;align-items:center;justify-content:center}.ingredient-card.mini.active{background:rgba(var(--island-accent-rgb),.1);border-color:var(--island-accent)}.ingredient-card.mini .ingredient-icon{width:100%;height:100%}.ingredient-card.mini .ingredient-qty{position:absolute;bottom:-4px;right:-4px;background:var(--island-accent);color:#fff;font-size:.65rem;font-weight:700;padding:0 .2rem;border-radius:4px;box-shadow:0 2px 4px #00000080;border:1px solid var(--highlight-medium);z-index:10}.ingredient-card.mini:hover{z-index:100}.planner-results-section{position:sticky;top:var(--island-spacing-md);overflow:visible}.planner-stale-note{background:linear-gradient(135deg,#ff980026,#ff98000d);border:2px solid rgba(255,152,0,.4);border-radius:var(--island-radius-lg);padding:var(--island-spacing-md);margin-bottom:var(--island-spacing-lg);font-size:var(--island-text-sm);font-weight:600;color:#ff9800;display:flex;align-items:center;gap:var(--island-gap-sm);animation:pulse 2s ease-in-out infinite}.planner-stale-note:before{content:"⚠";font-size:1.25rem}.planner-section-title{margin:var(--island-spacing-lg) 0 var(--island-spacing-md) 0;color:var(--island-text-primary);font-size:1.1rem;font-weight:700;border-bottom:2px solid var(--island-border);padding-bottom:var(--island-spacing-sm);display:flex;align-items:center;gap:var(--island-gap-sm)}.planner-section-title:before{content:"▸";color:var(--island-accent);font-weight:900}.planner-result-group-card{background:var(--island-surface);border-radius:var(--island-radius-md);padding:var(--island-spacing-sm) var(--island-spacing-md);margin-bottom:var(--island-spacing-sm);border:1px solid var(--island-border);overflow:visible}.planner-result-group-card:hover{border-color:rgba(var(--island-accent-rgb),.3);box-shadow:0 4px 12px #0000001a}.group-header{display:flex;align-items:center;gap:var(--island-gap-sm);margin-bottom:var(--island-spacing-sm);color:var(--island-text-primary);font-weight:700;font-size:.85rem;border-bottom:1px solid var(--island-border);padding-bottom:.25rem}.group-header .material-symbols-outlined{color:var(--island-accent);font-size:1.25rem}.planner-ingredient-grid.compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:var(--island-gap-sm);width:100%;overflow:visible}.planner-result-group-card{overflow:visible}.ingredient-card.mini{width:56px;height:56px;padding:0;border-radius:var(--island-radius-md);background:var(--island-bg);border:2px solid transparent;position:relative;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.4;flex-shrink:0}.ingredient-card.mini.active{background:var(--island-surface);border-color:var(--island-accent);opacity:1;box-shadow:0 2px 8px rgba(var(--island-accent-rgb),.25)}.ingredient-card.mini:hover{opacity:1;z-index:100}.ingredient-card.mini:before{content:attr(data-name);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--overlay-opaque);color:#fff;padding:.4rem .7rem;border-radius:var(--island-radius-sm);font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000;box-shadow:0 2px 8px #0000004d}.ingredient-card.mini:hover:before{opacity:1}.ingredient-card.mini:after{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--overlay-opaque);opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000}.ingredient-card.mini:hover:after{opacity:1}.ingredient-card.mini .ingredient-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.ingredient-card.mini .ingredient-icon img{width:48px!important;height:48px!important;max-width:48px;max-height:48px;object-fit:contain}.ingredient-card.mini .ingredient-qty{position:absolute;bottom:-4px;right:-4px;background:var(--island-accent);color:#fff;font-size:.65rem;font-weight:800;padding:.1rem .25rem;border-radius:4px;box-shadow:0 2px 6px #0006;border:2px solid var(--island-bg);z-index:11;min-width:20px;text-align:center}@media (max-width: 1000px){.planner-results-section{position:static}}@media (max-width: 1000px){.planner-slot-grid.modern{grid-template-columns:repeat(2,1fr)}.planner-layout-grid{gap:var(--island-spacing-lg)}.card-body{padding:var(--island-spacing-lg)}}@media (max-width: 768px){.planner-slot-grid.modern{grid-template-columns:repeat(2,1fr);gap:var(--island-spacing-sm)}.card-header{flex-direction:column;align-items:flex-start;gap:var(--island-gap-sm);padding:var(--island-spacing-xs) var(--island-spacing-sm)}.header-right{width:100%;justify-content:space-between}.preset-control-group{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--island-gap-sm)}.planner-preset-visual-row{flex:1}.preset-visual-slot{width:32px;height:32px}.planner-ingredient-grid.compact{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}.ingredient-card.mini{width:48px;height:48px}}@media (max-width: 480px){.planner-layout-grid{gap:var(--island-spacing-sm)}.planner-slot-grid.modern{grid-template-columns:1fr}.card-header,.card-body,.card-footer{padding:var(--island-spacing-xs) var(--island-spacing-sm)}.header-left .restaurant-name{font-size:.85rem}.global-qty-wrapper{padding:.25rem .4rem}.planner-global-input.modern{width:45px;padding:.2rem .3rem;font-size:.75rem}.preset-visual-slot{width:30px;height:30px}.preset-mini-grid{width:20px;height:20px}.preset-action-btn{width:32px;height:32px}.preset-action-btn .material-symbols-outlined{font-size:1rem}.picker-grid{grid-template-columns:1fr}.picker-item.empty-choice{grid-column:span 1}.planner-ingredient-grid.compact{grid-template-columns:repeat(auto-fit,minmax(42px,1fr))}.ingredient-card.mini{width:42px;height:42px}}.season-calc-layout{display:grid;gap:1.5rem}.calc-controls-row{display:flex;justify-content:space-between;align-items:center;background:var(--island-surface);border-radius:12px;padding:1rem 1.25rem;box-shadow:var(--island-shadow-sm);margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.calc-owned-points-group{display:flex;align-items:center;gap:.75rem}.calc-owned-points-group label{font-weight:600;color:var(--island-text-secondary);font-size:.9375rem;white-space:nowrap}.calc-owned-points-input{padding:.625rem 1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:var(--island-transition);min-width:120px;text-align:center}.calc-owned-points-input:hover,.calc-owned-points-input:focus{border-color:var(--island-accent);outline:none}.calc-sort-group{display:flex;align-items:center;gap:.75rem}.calc-sort-group label{font-weight:600;color:var(--island-text-secondary);font-size:.9375rem}.calc-sort-select{padding:.625rem 1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:var(--island-transition);min-width:180px}.calc-sort-select:hover,.calc-sort-select:focus{border-color:var(--island-accent);outline:none}.calc-actions{display:flex;gap:.75rem}.calc-clear-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-secondary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:var(--island-transition)}.calc-clear-btn:hover{border-color:var(--island-danger);color:var(--island-danger);background:#e74c3c0d}.calc-clear-btn .material-symbols-outlined{font-size:1.125rem}.calc-total-card{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,var(--island-accent) 0%,var(--island-stamina) 100%);border-radius:12px;padding:1rem 1.5rem;box-shadow:var(--island-shadow-md);margin-bottom:1.5rem;position:relative;overflow:hidden}.calc-total-card:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,var(--highlight-soft) 0%,var(--highlight-subtle) 100%);pointer-events:none}.calc-total-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--highlight-medium);border-radius:50%;flex-shrink:0;position:relative}.calc-total-icon .material-symbols-outlined{font-size:2rem;color:#fff;font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 48}.calc-total-content{flex:1;position:relative}.calc-total-label{font-size:.8125rem;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.calc-total-value{font-size:2rem;font-weight:800;color:#fff;line-height:1;margin-bottom:.25rem;text-shadow:0 2px 8px rgba(0,0,0,.2)}.calc-total-breakdown{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#ffffffd9;font-weight:500;margin-bottom:.125rem}.calc-total-meta{font-size:.8125rem;color:#fffc;font-weight:500}.season-calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.875rem}.calc-item-card{background:var(--island-surface);border:2px solid var(--island-border);border-radius:10px;padding:.875rem;transition:var(--island-transition);display:flex;flex-direction:column;gap:.625rem}.calc-item-card:hover{border-color:var(--island-accent);box-shadow:var(--island-shadow-sm);transform:translateY(-2px)}.calc-item-card.has-quantity{border-color:var(--island-accent);background:var(--island-accent-light)}.calc-item-header{display:flex;align-items:center;gap:.75rem}.calc-item-icon{width:44px;height:44px;flex-shrink:0;background:var(--island-bg);border:2px solid var(--island-border);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.calc-item-icon img{width:100%;height:100%;object-fit:cover}.calc-item-icon-fallback{display:flex;align-items:center;justify-content:center;color:var(--island-text-tertiary)}.calc-item-icon-fallback .material-symbols-outlined{font-size:1.75rem}.calc-item-info{flex:1;min-width:0}.calc-item-name{font-size:.9375rem;font-weight:700;color:var(--island-text-primary);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calc-item-pt{display:flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:600;color:var(--island-accent)}.calc-item-pt .material-symbols-outlined{font-size:1rem;font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}.calc-item-accumulated{margin-left:.25rem;font-size:.75rem;color:var(--island-text-tertiary);font-weight:500}.calc-item-net-pt{margin-left:.25rem;font-size:.75rem;font-weight:600;color:var(--island-text-secondary);opacity:.85}.calc-item-net-gain{display:flex;align-items:center;gap:.375rem;margin-top:.375rem;font-size:.75rem}.calc-net-gain-label{color:var(--island-text-secondary);font-weight:500}.calc-net-gain-value{font-weight:700}.calc-net-gain-value.positive{color:var(--island-success)}.calc-net-gain-value.negative{color:var(--island-danger)}.calc-net-gain-percentage{font-weight:600;font-size:.7rem}.calc-net-gain-percentage.positive{color:var(--island-success)}.calc-net-gain-percentage.negative{color:var(--island-danger)}.calc-item-actions-row{display:flex;gap:.5rem}.calc-view-recipe-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-secondary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:var(--island-transition);flex:1}.calc-view-recipe-btn:hover{border-color:var(--island-accent);color:var(--island-accent);background:var(--island-accent-light)}.calc-view-recipe-btn .material-symbols-outlined{font-size:1rem}.calc-item-input-row{display:grid;grid-template-columns:1fr 90px;gap:.75rem;align-items:center}.calc-quantity-input{width:100%;padding:.625rem .875rem;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;color:var(--island-text-primary);font-size:.9375rem;font-weight:600;text-align:center;transition:var(--island-transition)}.calc-quantity-input:focus{border-color:var(--island-accent);outline:none;background:var(--island-surface)}.calc-quantity-input::placeholder{color:var(--island-text-tertiary)}.calc-quantity-input::-webkit-inner-spin-button,.calc-quantity-input::-webkit-outer-spin-button{opacity:1}.calc-item-total{font-size:.875rem;color:var(--island-text-secondary);white-space:nowrap;text-align:right}.calc-item-total strong{color:var(--island-accent);font-size:1rem}.calc-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--island-text-tertiary);background:var(--island-surface);border-radius:12px;border:2px dashed var(--island-border)}.calc-empty-state .material-symbols-outlined{font-size:4rem;margin-bottom:1rem;opacity:.5}.calc-empty-state p{font-size:1rem;font-weight:500}@media (max-width: 1200px){.season-calc-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.calc-total-card{padding:1.5rem 2rem}.calc-total-icon{width:64px;height:64px}.calc-total-icon .material-symbols-outlined,.calc-total-value{font-size:2.5rem}}@media (max-width: 768px){.calc-controls-row{flex-direction:column;gap:1rem;align-items:stretch}.calc-sort-group{width:100%;justify-content:space-between}.calc-sort-select{flex:1}.calc-actions{width:100%}.calc-clear-btn{width:100%;justify-content:center}.season-calc-grid{grid-template-columns:1fr}.calc-total-card{flex-direction:column;text-align:center;padding:1.5rem}.calc-total-value{font-size:2rem}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.calc-ingredient-detail{animation:slideDown .2s ease-out}.calc-quantity-input:focus-visible,.calc-sort-select:focus-visible,.calc-clear-btn:focus-visible{outline:2px solid var(--island-accent);outline-offset:2px}.season-pass-container{background:var(--island-surface);border-radius:12px;padding:1.25rem;box-shadow:var(--island-shadow-sm);margin-bottom:1.5rem}.season-pass-container.collapsed .season-pass-tiers{display:none}.season-pass-header{margin-bottom:1rem}.season-pass-container.collapsed .season-pass-header{margin-bottom:0}.season-pass-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:1rem;flex-wrap:wrap}.season-pass-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,var(--island-accent) 0%,var(--island-stamina) 100%);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--island-transition);box-shadow:0 2px 8px #3498db4d}.season-pass-toggle:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3498db66}.season-pass-toggle:active{transform:translateY(0)}.season-pass-toggle .material-symbols-outlined{font-size:1.25rem;font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}.season-pass-header h2{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--island-text-primary);margin:0}.season-pass-header h2 .material-symbols-outlined{font-size:1.5rem;color:var(--island-accent);font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 48}.season-time{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--island-text-secondary);font-weight:500}.season-time .material-symbols-outlined{font-size:1rem}.season-pass-progress-bar{position:relative;height:32px;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;overflow:hidden}.season-pass-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--island-accent) 0%,var(--island-stamina) 100%);transition:width .5s ease}.season-pass-progress-text{position:relative;display:flex;align-items:center;justify-content:center;height:100%;font-size:.875rem;font-weight:700;color:var(--island-text-primary);text-shadow:0 1px 3px rgba(0,0,0,.3);z-index:1}.season-pass-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:.5rem}.season-tier{position:relative;background:var(--island-bg);border:2px solid var(--island-border);border-radius:8px;padding:.5rem;display:flex;flex-direction:column;align-items:center;gap:.375rem;transition:var(--island-transition);opacity:.6}.season-tier:hover{transform:translateY(-4px);box-shadow:var(--island-shadow-sm)}.season-tier.unlocked{opacity:1;border-color:var(--island-accent);background:var(--island-accent-light)}.season-tier.high-value{border-color:var(--island-warning);background:linear-gradient(135deg,#f39c121a,#f39c120d)}.season-tier.high-value.unlocked{background:linear-gradient(135deg,#f39c1233,#f39c121a)}.season-tier-header{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%}.season-tier-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--island-surface);border:2px solid var(--island-border);border-radius:50%;font-size:.6875rem;font-weight:700;color:var(--island-text-secondary)}.season-tier.unlocked .season-tier-number{background:var(--island-accent);border-color:var(--island-accent);color:#fff}.season-tier-badge{display:flex;align-items:center;justify-content:center}.season-tier-badge .material-symbols-outlined{font-size:1rem;color:var(--island-warning);font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.season-tier-reward{position:relative;display:flex;flex-direction:column;align-items:center;gap:.25rem}.season-tier-icon{width:48px;height:48px;background:var(--island-surface);border:2px solid var(--island-border);border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.season-tier.unlocked .season-tier-icon{border-color:var(--island-accent);box-shadow:0 0 12px #3498db66}.season-tier.high-value .season-tier-icon{border-color:var(--island-warning)}.season-tier-icon img{width:100%;height:100%;object-fit:cover}.season-tier-icon-fallback{display:flex;align-items:center;justify-content:center;color:var(--island-text-tertiary)}.season-tier-icon-fallback .material-symbols-outlined{font-size:1.5rem}.season-tier-quantity{position:absolute;bottom:-6px;right:-6px;background:var(--island-accent);color:#fff;font-size:.625rem;font-weight:700;padding:.125rem .375rem;border-radius:4px;box-shadow:0 1px 3px #0003}.season-tier-name{font-size:.6875rem;font-weight:600;color:var(--island-text-primary);text-align:center;line-height:1.2;min-height:2.4em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.season-tier-target{font-size:.625rem;font-weight:600;color:var(--island-text-tertiary);text-align:center}.season-tier.unlocked .season-tier-target{color:var(--island-accent)}.season-tier-check{position:absolute;top:-6px;right:-6px;width:24px;height:24px;background:var(--island-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #3498db66}.season-tier-check .material-symbols-outlined{font-size:1rem;color:#fff;font-variation-settings:"FILL" 1,"wght" 600,"GRAD" 0,"opsz" 20}.season-pass-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:var(--island-text-tertiary);background:var(--island-surface);border-radius:12px;border:2px dashed var(--island-border);margin-bottom:2rem}.season-pass-unavailable .material-symbols-outlined{font-size:3rem;margin-bottom:1rem;opacity:.5}.season-pass-unavailable p{font-size:1rem;font-weight:500}
