*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-box{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;animation:.3s slideUp;box-shadow:0 8px 32px #0000004d}.login-title{text-align:center;color:#333;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:30px;font-size:2rem}.login-form{flex-direction:column;gap:20px;display:flex}.login-input-group{flex-direction:column;gap:8px;display:flex}.login-label{color:#555;font-size:.95rem;font-weight:600}.login-input{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 16px;font-size:1rem;transition:border-color .3s}.login-input:focus{border-color:#667eea;outline:none}.login-error{color:#ff6b6b;margin-top:4px;font-size:.9rem;font-weight:500}.login-button{color:#fff;cursor:pointer;background-color:#667eea;border:none;border-radius:8px;margin-top:10px;padding:12px 24px;font-size:1rem;font-weight:600;transition:background-color .3s,transform .2s}.login-button:hover{background-color:#5568d3;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.login-button:active{transform:translateY(0)}.app{--cardSizeFactor:1;max-width:1400px;margin:0 auto;padding:20px}.app-header{text-align:center;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:10px;margin-bottom:30px;padding:20px;position:relative;box-shadow:0 4px 6px #0000001a}.language-picker{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#fff3;border:2px solid #ffffff4d;border-radius:8px;padding:8px 16px;font-size:1rem;font-weight:600;transition:all .3s;position:absolute;top:20px;right:20px}.language-picker:hover{background-color:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.language-picker:active{transform:translateY(0)}.settings-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#fff3;border:2px solid #ffffff4d;border-radius:8px;justify-content:center;align-items:center;min-width:44px;height:44px;padding:8px 16px;font-size:1.2rem;transition:all .3s;display:flex;position:absolute;top:20px;right:120px}.settings-button:hover{background-color:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.settings-button:active{transform:translateY(0)}.app-header h1{margin-bottom:10px;font-size:2.5rem}.app-header p{opacity:.9;font-size:1.1rem}.app-content{flex-direction:column;gap:20px;display:flex}.mobile-menu-toggle{color:#fff;cursor:pointer;background-color:#667eea;border:none;border-radius:8px;margin-bottom:15px;padding:12px 20px;font-size:1rem;font-weight:600;transition:background-color .3s;display:none;box-shadow:0 2px 4px #0000001a}.mobile-menu-toggle:hover{background-color:#5568d3}.mobile-close-button{color:#fff;cursor:pointer;z-index:10;background-color:#ff6b6b;border:none;border-radius:5px;padding:8px 12px;font-size:1.2rem;transition:background-color .3s;display:none;position:absolute;top:15px;right:15px}.mobile-close-button:hover{background-color:#ff5252}.filters-container{background:#fff;border-radius:10px;flex-direction:column;gap:20px;padding:20px;transition:opacity .3s,transform .3s;display:flex;position:relative;box-shadow:0 2px 4px #0000001a}.filter-group{flex-direction:column;gap:10px;display:flex}.filter-stats{border-bottom:2px solid #e0e0e0;justify-content:center;align-items:center;gap:30px;margin-bottom:10px;padding:15px 0;display:flex}.filter-stat-item{flex-direction:column;align-items:center;gap:8px;display:flex}.filter-stat-circle-wrapper{justify-content:center;align-items:center;width:70px;height:70px;display:flex;position:relative}.filter-stat-circle{color:#fff;z-index:1;background-color:#667eea;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.5rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 2px 4px #0003}.filter-stat-circle:hover{transform:scale(1.05);box-shadow:0 4px 8px #0000004d}.filter-stat-ring{pointer-events:none;z-index:0;width:70px;height:70px;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.filter-stat-ring-bg{stroke:#d0d0d0;stroke-width:3.5px;opacity:.4}.filter-stat-ring-progress{stroke:#667eea;stroke-width:3.5px;stroke-linecap:round;opacity:.9;transition:stroke-dashoffset .5s cubic-bezier(.4,0,.2,1)}.filter-stat-label{color:#555;text-align:center;font-size:.9rem;font-weight:500}.edition-badges-container{flex-wrap:wrap;gap:10px;margin-top:5px;display:flex}.edition-filter-badge{border:2px solid;border-radius:12px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.edition-filter-badge:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.edition-filter-badge-remove{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;justify-content:center;align-items:center;width:18px;height:18px;margin:0;padding:0;font-size:1.2rem;font-weight:700;line-height:1;transition:opacity .2s;display:flex}.edition-filter-badge-remove:hover{opacity:1}.edition-filter-empty{text-align:center;color:#666;background-color:#f8f9fa;border:1px dashed #e0e0e0;border-radius:6px;padding:15px;font-style:italic}.add-editions-button{color:#fff;cursor:pointer;text-align:center;background-color:#667eea;border:none;border-radius:6px;min-width:140px;margin-top:10px;padding:10px 16px;font-size:.95rem;font-weight:600;transition:background-color .3s}.add-editions-button:hover{background-color:#5568d3}.edition-dropdown-wrapper{width:100%;position:relative;overflow:visible}.edition-dropdown{z-index:1000;background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex-direction:column;width:100%;min-width:300px;max-width:100%;max-height:400px;margin-top:12px;padding:4px 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.edition-dropdown-search{box-sizing:border-box;border:none;border-bottom:2px solid #e0e0e0;border-radius:0;outline:none;width:calc(100% - 8px);margin:0 4px;padding:14px 16px;font-size:1rem}.edition-dropdown-search:focus{border-bottom-color:#667eea}.edition-dropdown-list{max-height:350px;padding:4px 0;overflow-y:auto}.edition-dropdown-item{text-align:left;cursor:pointer;background:#fff;border:none;border-left:4px solid #0000;justify-content:space-between;align-items:center;width:100%;margin:0 4px;padding:14px 20px;font-size:.95rem;transition:background-color .2s;display:flex}.edition-dropdown-item:hover{background-color:#f8f9fa}.edition-dropdown-item:active{background-color:#e9ecef}.edition-dropdown-item span:first-child{color:#333;font-weight:500}.edition-dropdown-date{color:#666;margin-left:10px;font-size:.85rem}.edition-dropdown-empty{text-align:center;color:#999;padding:20px;font-style:italic}.edition-dropdown-portal,.type-dropdown-portal{margin:0}.type-badges-container{flex-wrap:wrap;gap:10px;margin-top:5px;display:flex}.type-filter-badge{color:#fff;background-color:#667eea;border:2px solid #5568d3;border-radius:12px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.type-filter-badge:hover{background-color:#5568d3;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.type-filter-badge-remove{color:#fff;cursor:pointer;opacity:.8;background:0 0;border:none;justify-content:center;align-items:center;width:18px;height:18px;margin:0;padding:0;font-size:1.2rem;font-weight:700;line-height:1;transition:opacity .2s;display:flex}.type-filter-badge-remove:hover{opacity:1}.type-filter-empty{text-align:center;color:#666;background-color:#f8f9fa;border:1px dashed #e0e0e0;border-radius:6px;padding:15px;font-style:italic}.add-types-button{color:#fff;cursor:pointer;text-align:center;background-color:#667eea;border:none;border-radius:6px;min-width:140px;margin-top:10px;padding:10px 16px;font-size:.95rem;font-weight:600;transition:background-color .3s}.add-types-button:hover{background-color:#5568d3}.type-dropdown-wrapper{width:100%;position:relative;overflow:visible}.type-dropdown{z-index:1000;background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex-direction:column;width:100%;min-width:300px;max-width:100%;max-height:400px;margin-top:12px;padding:4px 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.type-dropdown-search{box-sizing:border-box;border:none;border-bottom:2px solid #e0e0e0;border-radius:0;outline:none;width:calc(100% - 8px);margin:0 4px;padding:14px 16px;font-size:1rem}.type-dropdown-search:focus{border-bottom-color:#667eea}.type-dropdown-list{max-height:350px;padding:4px 0;overflow-y:auto}.type-dropdown-item{text-align:left;cursor:pointer;background:#fff;border:none;border-left:4px solid #667eea;justify-content:space-between;align-items:center;width:100%;margin:0 4px;padding:14px 20px;font-size:.95rem;transition:background-color .2s;display:flex}.type-dropdown-item:hover{background-color:#f8f9fa}.type-dropdown-item:active{background-color:#e9ecef}.type-dropdown-empty{text-align:center;color:#999;padding:20px;font-style:italic}.filter-group label{color:#555;font-size:.95rem;font-weight:600}.kingdom-filter-label{cursor:pointer;align-items:center;gap:8px;display:flex}.search-input{border:2px solid #e0e0e0;border-radius:6px;padding:10px 15px;font-size:1rem;transition:border-color .3s}.search-input:focus{border-color:#667eea;outline:none}.search-input{width:100%}.type-filter-header{justify-content:space-between;align-items:center;display:flex}.clear-button{color:#fff;cursor:pointer;background-color:#ff6b6b;border:none;border-radius:5px;padding:5px 12px;font-size:.85rem;transition:background-color .3s}.clear-button:hover{background-color:#ff5252}.type-checkboxes{flex-wrap:wrap;gap:15px;margin-top:5px;display:flex}.type-checkbox-label{cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;transition:all .2s;display:flex}.type-checkbox-label:hover{background-color:#e9ecef;border-color:#d0d0d0}.type-checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.type-checkbox-label span{-webkit-user-select:none;user-select:none}.sort-control{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sort-buttons{flex-wrap:wrap;flex:1;gap:8px;display:flex}.sort-button{color:#555;cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:all .2s}.sort-button:hover{background-color:#e9ecef;border-color:#667eea}.sort-button.active{color:#fff;background-color:#667eea;border-color:#667eea}.sort-direction-toggle{color:#555;cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;justify-content:center;align-items:center;min-width:50px;padding:8px 16px;font-size:1.2rem;font-weight:700;transition:all .2s;display:flex}.sort-direction-toggle:hover{background-color:#e9ecef;border-color:#667eea}.sort-direction-toggle.asc,.sort-direction-toggle.desc{color:#fff;background-color:#667eea;border-color:#667eea}.image-filter-buttons{flex-wrap:wrap;gap:8px;margin-top:5px;display:flex}.image-filter-button{color:#555;cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:all .2s}.image-filter-button:hover{background-color:#e9ecef;border-color:#667eea}.image-filter-button.active{color:#fff;background-color:#667eea;border-color:#667eea}.card-grid{grid-template-columns:repeat(auto-fill, minmax(calc(280px * var(--cardSizeFactor)), 1fr));gap:calc(20px * var(--cardSizeFactor));flex:1;display:grid}.card{padding:calc(20px * var(--cardSizeFactor));background:#fff;border:1px solid #e0e0e0;border-radius:10px;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #0000001a}.card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.card-image-container{width:100%;margin-bottom:calc(15px * var(--cardSizeFactor));aspect-ratio:2/3;background-color:#f8f9fa;border-radius:8px;justify-content:center;align-items:center;display:flex;overflow:hidden}.card-image{object-fit:contain;width:100%;height:100%;display:block}.card-header{margin-bottom:calc(15px * var(--cardSizeFactor));padding-bottom:calc(15px * var(--cardSizeFactor));border-bottom:2px solid #f0f0f0}.card-name{font-size:max(1rem, calc(1.4rem * var(--cardSizeFactor)));color:#333;margin-bottom:calc(5px * var(--cardSizeFactor))}.card-name-de{font-size:max(.85rem, calc(1rem * var(--cardSizeFactor)));color:#666;min-height:1.2rem;margin:0;font-style:italic;line-height:1.2rem}.card-body{gap:calc(12px * var(--cardSizeFactor));flex-direction:column;display:flex}.card-price,.card-edition{justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.price-label,.edition-label{color:#666;font-weight:600;font-size:max(.75rem, calc(.9rem * var(--cardSizeFactor)));flex-shrink:0}.price-value{font-size:max(.9rem, calc(1.2rem * var(--cardSizeFactor)));color:#667eea;font-weight:700}.edition-badges{gap:calc(6px * var(--cardSizeFactor));flex-wrap:wrap;flex:1;display:flex}.edition-badge{padding:calc(4px * var(--cardSizeFactor)) calc(10px * var(--cardSizeFactor));font-size:max(.65rem, calc(.75rem * var(--cardSizeFactor)));cursor:pointer;white-space:nowrap;border:1px solid;border-radius:12px;font-weight:500;transition:all .2s;display:inline-block}.edition-badge:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.edition-badge:active{opacity:.9;transform:translateY(0)}.card-types{gap:calc(8px * var(--cardSizeFactor));margin-top:calc(10px * var(--cardSizeFactor));flex-wrap:wrap;display:flex}.type-badge{padding:calc(4px * var(--cardSizeFactor)) calc(10px * var(--cardSizeFactor));color:#fff;font-size:max(.7rem, calc(.8rem * var(--cardSizeFactor)));background-color:#667eea;border-radius:12px;font-weight:500;display:inline-block}.type-badge.type-action{background-color:#4caf50}.type-badge.type-attack{background-color:#f44336}.type-badge.type-victory{background-color:#ff9800}.type-badge.type-treasure{color:#333;background-color:#ffc107}.type-badge.type-reaction{background-color:#2196f3}.type-badge.type-duration{background-color:#9c27b0}.type-badge.type-reserve{background-color:#00bcd4}.type-badge.type-night{background-color:#212121}.type-badge.type-fate{background-color:#e91e63}.type-badge.type-event{background-color:#795548}.type-badge.type-traveller{background-color:#607d8b}.type-badge.type-looter{background-color:#8bc34a}.type-badge.type-knight{background-color:#3f51b5}.type-badge.type-zombie{background-color:#4caf50}.type-badge.type-hex{background-color:#9c27b0}.type-badge.type-doom{background-color:#d32f2f}.type-badge.type-mat{background-color:#ff5722}.type-badge.type-journey{background-color:#009688}.no-cards{text-align:center;background:#fff;border-radius:10px;padding:60px 20px;box-shadow:0 2px 4px #0000001a}.no-cards p{color:#666;margin-bottom:10px;font-size:1.1rem}.settings-overlay-backdrop{z-index:2000;background-color:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-overlay-modal{background:#fff;border-radius:12px;width:90%;max-width:500px;max-height:90vh;animation:.3s slideUp;position:relative;overflow-y:auto;box-shadow:0 8px 32px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-overlay-header{border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.settings-overlay-header h2{color:#333;margin:0;font-size:1.5rem}.settings-overlay-close{color:#666;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:4px 8px;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.settings-overlay-close:hover{color:#333;background-color:#f0f0f0}.settings-overlay-content{padding:24px}.settings-option{margin-bottom:20px}.settings-toggle-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;display:flex}.settings-toggle-input{opacity:0;width:0;height:0;position:absolute}.settings-toggle-switch{background-color:#ccc;border-radius:28px;flex-shrink:0;width:50px;height:28px;transition:background-color .3s;position:relative}.settings-toggle-switch:after{content:"";background-color:#fff;border-radius:50%;width:24px;height:24px;transition:transform .3s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.settings-toggle-input:checked+.settings-toggle-switch{background-color:#667eea}.settings-toggle-input:checked+.settings-toggle-switch:after{transform:translate(22px)}.settings-toggle-text{color:#333;font-size:1rem;font-weight:500}.settings-range-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.settings-range-label{color:#333;font-size:1rem;font-weight:500}.settings-range-value{color:#666;font-variant-numeric:tabular-nums;font-size:.95rem}.settings-range-input{width:100%}.settings-reset-button{color:#555;cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;margin-top:10px;padding:8px 12px;font-size:.9rem;font-weight:600;transition:all .2s}.settings-reset-button:hover{background-color:#e9ecef;border-color:#667eea}.settings-upload-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.settings-upload-label{color:#333;font-size:1rem;font-weight:500}.settings-upload-count{color:#666;font-variant-numeric:tabular-nums;font-size:.9rem}.settings-upload-button{color:#fff;cursor:pointer;text-align:center;background-color:#667eea;border:none;border-radius:6px;width:100%;margin-bottom:8px;padding:10px 16px;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-block}.settings-upload-button:hover{background-color:#5568d3;transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}.settings-upload-button:active{transform:translateY(0)}.settings-clear-button{color:#dc3545;cursor:pointer;background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;width:100%;padding:8px 12px;font-size:.9rem;font-weight:600;transition:all .2s}.settings-clear-button:hover:not(:disabled){background-color:#fff5f5;border-color:#dc3545}.settings-clear-button:disabled{opacity:.6;cursor:not-allowed}.settings-upload-status{border-radius:6px;margin-top:10px;padding:10px 12px;font-size:.9rem;font-weight:500;animation:.3s fadeIn}.settings-upload-status-success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb}.settings-upload-status-error{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb}.settings-upload-status-uploading{color:#0c5460;background-color:#d1ecf1;border:1px solid #bee5eb}@media (width>=1024px){.app-content{flex-direction:row;align-items:flex-start}.filters-container{flex-shrink:0;width:300px;max-height:calc(100vh - 40px);margin-bottom:0;position:sticky;top:20px;overflow:visible auto}.card-grid{flex:1;min-width:0}.edition-dropdown,.type-dropdown{width:400px;min-width:320px;max-width:400px;margin-top:12px;top:100%;left:calc(100% + 20px)}.filters-container{overflow:visible}.filters-inner{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 40px);overflow:hidden auto}.edition-dropdown-wrapper,.type-dropdown-wrapper{overflow:visible}}@media (width<=1023px){.mobile-menu-toggle,.mobile-close-button{display:block}.filters-container{margin-bottom:20px;display:none}.filters-container.mobile-open{display:flex}.edition-dropdown,.type-dropdown{min-width:100%;left:0;right:0}}@media (width<=768px){.app{padding:15px}.app-header h1{font-size:2rem}.language-picker{padding:6px 12px;font-size:.9rem;top:15px;right:15px}.settings-button{min-width:40px;height:40px;padding:6px 12px;font-size:1rem;top:15px;right:100px}.filters-container{padding:15px}.card-grid{grid-template-columns:1fr;gap:15px}.type-checkboxes{gap:10px}.type-checkbox-label{padding:6px 10px;font-size:.9rem}.sort-control{flex-direction:column;align-items:stretch}.sort-buttons{width:100%}.sort-button{flex:1;min-width:calc(50% - 4px)}.sort-direction-toggle{width:100%}}@media (width<=480px){.app-header h1{font-size:1.5rem}.app-header p{font-size:.9rem}.language-picker{padding:5px 10px;font-size:.85rem;top:10px;right:10px}.settings-button{min-width:36px;height:36px;padding:5px 10px;font-size:.9rem;top:10px;right:80px}.card{padding:15px}.card-name{font-size:1.2rem}}
