@charset "UTF-8";html,body,#root{height:100%;margin:0}.home{display:flex;flex-direction:column;height:100%}.home .content{display:flex;flex:1;overflow:hidden}@media (max-width: 600px){.home .content{flex-direction:column}}.header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#f8f8f8;border-bottom:2px solid #ccc;box-shadow:0 2px 6px #0000000d;position:sticky;top:0;z-index:1000}.header .title{font-size:2rem;font-weight:700;color:#222;text-transform:uppercase;text-align:center;position:relative}.header .title:after{content:"";display:block;width:50px;height:4px;background-color:#f08030;border-radius:2px;margin:.25rem auto 0}.header .sidebar-toggle{background:#fff;border:2px solid #f08030;border-radius:50%;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s ease;position:relative}.header .sidebar-toggle:hover{background-color:#f08030;color:#fff}.header .sidebar-toggle:before{content:"";position:absolute;width:20px;height:20px;background:radial-gradient(circle at center,#fff 50%,#f08030 50%);border-radius:50%;border:2px solid #222}.header .sidebar-toggle span{position:absolute;font-size:.9rem;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:700;color:#222}.sidebar{width:0;overflow:hidden;background:#fff;transition:width .3s ease,padding .3s ease;border-right:1px solid #ddd;padding:0;height:auto;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:none;border-radius:0 12px 12px 0}.sidebar.open{width:280px;padding:1.5rem 1rem;box-shadow:4px 0 12px #00000014}@media (max-width: 600px){.sidebar{width:100%;max-width:none;border-right:none;border-bottom:1px solid #eee;border-radius:0;transition:height .3s ease,padding .3s ease}.sidebar.open{height:auto;box-shadow:0 2px 6px #0000000d;animation:slideDown .3s ease forwards;overflow-y:auto;max-height:90%;width:90%;align-self:center}.sidebar:not(.open){height:0;padding:0;overflow:hidden}}.sidebar .sidebar-content{flex:1;width:100%;max-width:300px;overflow-y:auto;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding-right:.25rem;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.sidebar .sidebar-content::-webkit-scrollbar{width:6px}.sidebar .sidebar-content::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.sidebar h2{margin-top:0;font-size:1.3rem;margin-bottom:.75rem;font-weight:600;color:#333}.sidebar .filter-clear-all{margin-bottom:.5rem}.sidebar .filter-clear-all button{background:linear-gradient(135deg,#ff6b6b,#e74c3c);color:#fff;border:none;border-radius:8px;padding:.5rem .75rem;cursor:pointer;font-size:.9rem;transition:all .25s ease;box-shadow:0 2px 6px #0000001f}.sidebar .filter-clear-all button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000002e}.sidebar .filter-section{width:100%;max-width:220px;text-align:center}.sidebar .filter-section label{display:block;margin-bottom:.4rem;font-weight:600;font-size:.9rem;color:#444}.sidebar .filter-section input[type=text],.sidebar .filter-section input[type=number],.sidebar .filter-section select,.sidebar .filter-section .custom-dropdown,.sidebar .filter-section .scrollable-checkbox-dropdown,.sidebar .filter-section .stat-slider{width:100%;max-width:100%;box-sizing:border-box}.sidebar .filter-section.search-input{width:100%;max-width:220px;text-align:center}.sidebar .filter-section.search-input .search-box{display:flex;align-items:center;gap:.5rem}.sidebar .filter-section.search-input .search-box input[type=text]{flex:1;padding:.6rem .75rem;border-radius:12px;border:2px solid #ccc;background:#f8f8f8;font-size:1rem;color:#222;box-shadow:inset 0 1px 2px #0000000d;transition:all .2s ease}.sidebar .filter-section.search-input .search-box input[type=text]:focus{outline:none;border-color:#3498db;box-shadow:0 0 6px #007bff4d}.sidebar .filter-section.search-input .search-box .search-button{background:#3498db;border:none;color:#fff;padding:.6rem .75rem;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .15s ease;box-shadow:0 2px 6px #0000001f}.sidebar .filter-section.search-input .search-box .search-button svg{width:18px;height:18px}.sidebar .filter-section.search-input .search-box .search-button:hover{background:#2383c4;transform:translateY(-1px);box-shadow:0 4px 10px #00000026}.sidebar .filter-section.search-input .search-box .search-button:active{background:#1d6fa5;transform:translateY(0);box-shadow:0 2px 6px #0000001a}@keyframes slideDown{0%{opacity:0;transform:translateY(-8%)}to{opacity:1;transform:translateY(0)}}.checkbox-dropdown{position:relative;width:100%;font-size:14px}.checkbox-dropdown.disabled{opacity:.6;pointer-events:none}.checkbox-dropdown .dropdown-header{padding:4px 8px;border:1px solid #ccc;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:30px;background-color:#f8f8f8;box-shadow:0 2px 5px #0000001a;transition:border-color .2s,box-shadow .2s}.checkbox-dropdown .dropdown-header.focused{border-color:#3498db;box-shadow:0 0 0 3px #3498db26}.checkbox-dropdown .dropdown-header .actions{display:flex;align-items:center}.checkbox-dropdown .dropdown-header .actions .clear-btn{background:#0000001a;border:none;border-radius:50%;width:20px;height:20px;margin-right:4px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.checkbox-dropdown .dropdown-header .actions .clear-btn:hover{background:#0003;color:#000}.checkbox-dropdown .dropdown-header .actions .arrow{border:solid #555;border-width:0 1.5px 1.5px 0;display:inline-block;padding:2px;transform:rotate(45deg);transition:transform .2s,border-color .2s}.checkbox-dropdown .dropdown-header .actions .arrow.open{transform:rotate(-135deg);border-color:#3498db}.checkbox-dropdown .dropdown-list{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;border:1px solid #ccc;border-radius:8px;background-color:#f8f8f8;z-index:10;padding:4px 0;box-shadow:0 4px 8px #00000026}.checkbox-dropdown .dropdown-list .filter-input{padding:4px 8px;border-bottom:1px solid #b0b0b0;display:flex;justify-content:center}.checkbox-dropdown .dropdown-list .filter-input input{width:auto;max-width:90%;padding:4px;border-radius:6px;border:1px solid #ccc;font-size:.85rem;outline:none;transition:border-color .2s,box-shadow .2s}.checkbox-dropdown .dropdown-list .filter-input input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db26}.checkbox-dropdown .dropdown-list .dropdown-item{display:flex;align-items:center;padding:2px 8px;font-size:13px;color:#222;cursor:pointer;transition:background .2s}.checkbox-dropdown .dropdown-list .dropdown-item:hover{background-color:#3498db0d}.checkbox-dropdown .dropdown-list .dropdown-item input[type=checkbox]{margin-right:6px;width:14px;height:14px}.checkbox-dropdown .dropdown-list .no-results{padding:4px 8px;font-size:.85rem;color:#555}.stat-slider{font-family:inherit;width:100%;margin-bottom:1rem}.stat-slider__label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}.stat-slider__container{position:relative;width:100%;height:40px;display:flex;align-items:center}.stat-slider__track{position:absolute;left:0;right:0;height:6px;background:#e6e6e6;border-radius:999px;top:50%;transform:translateY(-50%);z-index:1}.stat-slider__highlight{position:absolute;top:50%;transform:translateY(-50%);height:6px;background:#2b90ff;border-radius:999px;z-index:2}.stat-slider .stat-slider__range{-webkit-appearance:none;appearance:none;position:absolute;left:0;width:100%;height:40px;margin:0;background:transparent;pointer-events:none}.stat-slider .stat-slider__range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:all;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #2b90ff;box-shadow:0 2px 5px #0000002e;cursor:pointer;margin-top:-7px;position:relative;z-index:3}.stat-slider .stat-slider__range::-moz-range-thumb{pointer-events:all;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #2b90ff;box-shadow:0 2px 5px #0000002e;cursor:pointer;position:relative;z-index:3}.stat-slider .stat-slider__range::-webkit-slider-runnable-track{background:transparent;height:6px}.stat-slider .stat-slider__range::-moz-range-track{background:transparent;height:6px}.stat-slider .stat-slider__range--min::-webkit-slider-thumb{z-index:4}.stat-slider .stat-slider__range--max::-webkit-slider-thumb{z-index:3}.stat-slider__values{margin-top:6px;text-align:center;font-size:.85rem;color:#333}.sort-dropdown{margin-bottom:1rem;display:flex;flex-direction:column;gap:.35rem;width:220px;text-align:center}.sort-dropdown label{font-weight:600;font-size:.9rem;color:#222}.sort-dropdown select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:.5rem 2rem .5rem .75rem;font-size:.9rem;border-radius:10px;border:1px solid #ccc;background:#f8f8f8 url("data:image/svg+xml;utf8,<svg fill='gray' height='16' viewBox='0 0 24 24' width='16' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>") no-repeat right .75rem center;background-size:16px;cursor:pointer;transition:all .25s ease;box-shadow:inset 0 1px 2px #0000000d;color:#222}.sort-dropdown select:hover{border-color:#b0b0b0;box-shadow:inset 0 1px 3px #00000014}.sort-dropdown select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db26}.pokemon-grid-container{flex:1;overflow:auto;position:relative;padding:1rem}.pokemon-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}@media (min-width: 640px){.pokemon-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.pokemon-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1280px){.pokemon-grid{grid-template-columns:repeat(5,1fr)}}.pokemon-card{height:280px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:#f8f8f8;border:2px solid #ccc;border-radius:16px;padding:1rem;cursor:pointer;box-shadow:0 4px 12px #0000001a;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.pokemon-card:hover{transform:translateY(-6px);box-shadow:0 8px 20px #00000026;border-color:#b0b0b0}.pokemon-card .pokemon-image{width:120px;height:120px;margin-bottom:.5rem}.pokemon-card .pokemon-image img{width:100%;height:100%;object-fit:contain;transition:transform .25s ease}.pokemon-card .pokemon-image img:hover{transform:scale(1.1)}.pokemon-card .pokemon-name{font-size:1.2rem;font-weight:700;text-transform:capitalize;margin-bottom:.5rem;color:#222;text-align:center}.pokemon-card .pokemon-types{display:flex;gap:.5rem;margin-bottom:.75rem}.pokemon-card .pokemon-types .type{padding:.2rem .5rem;border-radius:8px;font-size:.8rem;font-weight:600;text-transform:capitalize;color:#fff}.pokemon-card .pokemon-types .fire{background-color:#f08030}.pokemon-card .pokemon-types .water{background-color:#6890f0}.pokemon-card .pokemon-types .grass{background-color:#78c850}.pokemon-card .pokemon-types .electric{background-color:#f8d030}.pokemon-card .pokemon-types .ice{background-color:#98d8d8}.pokemon-card .pokemon-types .fighting{background-color:#c03028}.pokemon-card .pokemon-types .poison{background-color:#a040a0}.pokemon-card .pokemon-types .ground{background-color:#e0c068}.pokemon-card .pokemon-types .flying{background-color:#a890f0}.pokemon-card .pokemon-types .psychic{background-color:#f85888}.pokemon-card .pokemon-types .bug{background-color:#a8b820}.pokemon-card .pokemon-types .rock{background-color:#b8a038}.pokemon-card .pokemon-types .ghost{background-color:#705898}.pokemon-card .pokemon-types .dragon{background-color:#7038f8}.pokemon-card .pokemon-types .dark{background-color:#705848}.pokemon-card .pokemon-types .steel{background-color:#b8b8d0}.pokemon-card .pokemon-types .fairy{background-color:#ee99ac}.pokemon-card .pokemon-stats{display:flex;gap:1rem;justify-content:center;font-size:.9rem}.pokemon-card .pokemon-stats .stat{display:flex;flex-direction:column;align-items:center}.pokemon-card .pokemon-stats .stat .label{font-weight:600;color:#555}.pokemon-card .pokemon-stats .stat .value{font-weight:700;color:#222}.pokemon-card:active{transform:translateY(-2px) scale(.98);box-shadow:0 4px 8px #0000001f}@media (max-width: 640px){.pokemon-card{height:200px;padding:.5rem}.pokemon-card .pokemon-image{width:80px;height:80px}.pokemon-card .pokemon-name{font-size:1rem}.pokemon-card .pokemon-stats{font-size:.75rem;gap:.5rem}}@media (min-width: 641px) and (max-width: 1023px){.pokemon-card{height:240px}.pokemon-card .pokemon-image{width:100px;height:100px}.pokemon-card .pokemon-name{font-size:1.1rem}}.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;z-index:9999;padding:1rem}.modal-content{background:#f8f8f8;border-radius:16px;padding:1.5rem 2rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 12px 36px #0000005c;position:relative;animation:modalPop .24s cubic-bezier(.2,.9,.3,1);display:flex;flex-direction:column;gap:1rem}@keyframes modalPop{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.close-btn{position:absolute;top:12px;right:12px;border:none;background:transparent;font-size:1.5rem;cursor:pointer;color:#222;transition:color .2s ease}.close-btn:hover{color:#b0b0b0}.modal-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}.modal-header img{width:140px;height:140px;object-fit:contain}.modal-header h2{margin:0;font-size:1.8rem;text-transform:capitalize;color:#222}.modal-header .pokemon-id{font-size:.9rem;color:#555}.pokemon-types{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}.pokemon-types .type{padding:.3rem .6rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:capitalize;color:#fff;text-align:center}.pokemon-types .fire{background-color:#f08030}.pokemon-types .water{background-color:#6890f0}.pokemon-types .grass{background-color:#78c850}.pokemon-types .electric{background-color:#f8d030}.pokemon-types .ice{background-color:#98d8d8}.pokemon-types .fighting{background-color:#c03028}.pokemon-types .poison{background-color:#a040a0}.pokemon-types .ground{background-color:#e0c068}.pokemon-types .flying{background-color:#a890f0}.pokemon-types .psychic{background-color:#f85888}.pokemon-types .bug{background-color:#a8b820}.pokemon-types .rock{background-color:#b8a038}.pokemon-types .ghost{background-color:#705898}.pokemon-types .dragon{background-color:#7038f8}.pokemon-types .dark{background-color:#705848}.pokemon-types .steel{background-color:#b8b8d0}.pokemon-types .fairy{background-color:#ee99ac}.pokemon-info{display:flex;flex-direction:column;gap:1rem}.pokemon-info .basic-info{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.95rem}.pokemon-info .basic-info p{margin:0;flex:1}.pokemon-info .pokemon-stats{display:flex;flex-direction:column;gap:.5rem}.pokemon-info .pokemon-stats .stat-bar{display:flex;align-items:center;gap:.5rem}.pokemon-info .pokemon-stats .stat-bar .label{width:90px;font-weight:600;text-transform:capitalize;font-size:.85rem;color:#222}.pokemon-info .pokemon-stats .stat-bar .bar-container{flex:1;background:#eee;border-radius:8px;overflow:hidden;height:12px}.pokemon-info .pokemon-stats .stat-bar .bar-container .bar{height:100%;background:#f08030;transition:width .3s ease}@media (max-width: 480px){.modal-content{padding:1rem}.modal-header img{width:100px;height:100px}.pokemon-stats .stat-bar .label{width:70px;font-size:.75rem}}.empty-state{text-align:center;margin-top:2rem;color:#555}.empty-state img{width:150px;height:auto;margin-bottom:1rem;opacity:.7}.empty-state p{font-size:1.2rem}.loader-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0003;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:1000}.loader-overlay .loader-container{display:flex;flex-direction:column;align-items:center}.loader-overlay .loader-container .pokeball{width:100px;height:100px;animation:bounce 1s ease-in-out infinite,spin 2s linear infinite}.loader-overlay .loader-container .shadow{width:80px;height:12px;background:#0000004d;border-radius:50%;margin-top:10px;animation:shadow-scale 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shadow-scale{0%,to{transform:scaleX(1);opacity:.3}50%{transform:scaleX(1.2);opacity:.5}}
