*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light]{color-scheme:light;color:#213547;background-color:#f5f5f5}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:inherit;color:inherit}#root{width:100%;margin:0 auto;text-align:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}input,select{font-family:inherit}@media (prefers-color-scheme: light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;color:#213547;background-color:#f5f5f5}}:root{--primary-color: #646cff;--primary-hover: #535bf2;--background: #242424;--card-background: #1a1a1a;--text-primary: rgba(255, 255, 255, .87);--text-secondary: rgba(255, 255, 255, .6);--border-color: rgba(255, 255, 255, .1);--hover-background: rgba(255, 255, 255, .1);--error-color: #ff6b6b;--success-color: #51cf66;--shadow: 0 4px 6px rgba(0, 0, 0, .3);--warning-color: #ffb800;--accent: #646cff;--accent-hover: #535bf2;--accent-color: #f59e0b;--success-green: #22c55e;--error-red: #ef4444;--success: #22c55e;-webkit-tap-highlight-color:rgba(100,108,255,.2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%;-webkit-text-size-adjust:100%}:root[data-theme=light]{--primary-color: #4f5acf;--primary-hover: #3d47b8;--background: #f5f5f5;--card-background: #ffffff;--text-primary: rgba(0, 0, 0, .87);--text-secondary: rgba(0, 0, 0, .65);--border-color: rgba(0, 0, 0, .15);--hover-background: rgba(0, 0, 0, .05);--error-color: #d32f2f;--success-color: #2e7d32;--shadow: 0 4px 6px rgba(0, 0, 0, .1);--warning-color: #e65100;--accent: #4f5acf;--accent-hover: #3d47b8;--accent-color: #d97706;--success-green: #16a34a;--error-red: #dc2626;--success: #16a34a}:root[data-theme=light] .subtitle{color:#000000bf;font-weight:500}:root[data-theme=light] .info-text{color:#000000b3}:root[data-theme=light] .info-section{background:#00000008;border-radius:8px;padding:1rem}.app{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}@media (max-width: 640px){.app{padding:4.5rem 1rem 1rem;align-items:flex-start}}.converter-container{max-width:600px;width:100%}.title{font-size:3rem;font-weight:700;text-align:center;margin-bottom:.5rem;background:linear-gradient(135deg,var(--primary-color) 0%,#747bff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:1.25rem;text-align:center;color:var(--text-secondary);margin-bottom:2rem}.converter-card{background:var(--card-background);border-radius:12px;padding:2rem;box-shadow:var(--shadow);border:1px solid var(--border-color)}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.input-group{margin-bottom:1.5rem}.input-row .input-group{margin-bottom:0}.input-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.input-hint{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary);opacity:.7;font-style:italic}.game-select{width:100%;padding:.75rem;font-size:1rem;background:var(--background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.game-select:hover{border-color:var(--primary-color)}.game-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #646cff1a}@media (max-width: 640px){.game-select{padding:1rem 2.5rem 1rem 1rem;font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem}}.sensitivity-input{width:100%;padding:.75rem;font-size:1rem;background:var(--background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;transition:all .2s}.sensitivity-input:hover{border-color:var(--primary-color)}.sensitivity-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #646cff1a}@media (max-width: 640px){.sensitivity-input{padding:1rem;font-size:16px;border-width:2px;-webkit-appearance:none}.sensitivity-input[type=number]{-moz-appearance:textfield}.sensitivity-input[type=number]::-webkit-inner-spin-button,.sensitivity-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sensitivity-input:active{border-color:var(--primary-color);background:#646cff08}}.swap-button-container{display:flex;justify-content:center;margin:1rem 0}.swap-button{background:var(--card-background);color:var(--primary-color);border:2px solid var(--primary-color);border-radius:50%;width:48px;height:48px;font-size:1.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.swap-button:hover{background:var(--primary-color);color:#fff;transform:rotate(180deg)}.swap-button:active{transform:rotate(180deg) scale(.95)}@media (max-width: 640px){.swap-button{width:56px;height:56px;font-size:1.75rem}.swap-button:hover{transform:none}.swap-button:active{background:var(--primary-color);color:#fff;transform:scale(.95)}}.action-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.convert-button{flex:1;min-width:140px;padding:.75rem 1rem;font-size:.9375rem;font-weight:600;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.convert-button:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 6px 12px #646cff4d}.convert-button:active:not(:disabled){transform:translateY(0)}.convert-button:disabled{opacity:.7;cursor:not-allowed}.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.reset-button{padding:.625rem .875rem;font-size:.875rem;font-weight:600;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.375rem}.reset-button:hover:not(:disabled){border-color:var(--error-color);color:var(--error-color);background:#ff6b6b0d;transform:translateY(-2px)}.reset-button:active:not(:disabled){transform:translateY(0)}.reset-button:disabled{opacity:.5;cursor:not-allowed}.history-button{padding:.625rem .875rem;font-size:.875rem;font-weight:600;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.375rem}.history-button:hover:not(:disabled){border-color:var(--accent-hover);color:#fff;background:var(--accent);transform:translateY(-2px)}.history-button:active:not(:disabled){transform:translateY(0)}.history-button:disabled{opacity:.5;cursor:not-allowed}.profile-button{padding:.625rem .875rem;font-size:.875rem;font-weight:600;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.375rem}.profile-button:hover:not(:disabled){border-color:var(--accent-hover);color:#fff;background:var(--accent);transform:translateY(-2px)}.profile-button:active:not(:disabled){transform:translateY(0)}.profile-button:disabled{opacity:.5;cursor:not-allowed}.result-actions{display:flex;gap:.75rem;margin-top:1rem}.copy-button{flex:1;padding:.875rem;font-size:1rem;font-weight:600;background:transparent;color:var(--success-color);border:2px solid var(--success-color);border-radius:8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.copy-button:hover{background:var(--success-color);color:var(--card-background);transform:translateY(-2px);box-shadow:0 4px 8px #51cf664d}.copy-button:active{transform:translateY(0)}.share-button{flex:1;padding:.875rem;font-size:1rem;font-weight:600;background:transparent;color:var(--accent);border:2px solid var(--accent);border-radius:8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.share-button:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #646cff4d}.share-button:active{transform:translateY(0)}.dpi-preset-container{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.dpi-preset-button{padding:.75rem;font-size:.875rem;font-weight:600;background:var(--background);color:var(--text-primary);border:2px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.dpi-preset-button:hover{border-color:var(--primary-color);background:#646cff1a}.dpi-preset-button.active{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.dpi-preset-button.custom{grid-column:span 3;border-style:dashed;color:var(--text-secondary)}.dpi-preset-button.custom:hover{border-color:var(--primary-color);color:var(--primary-color)}@media (max-width: 640px){.dpi-preset-container{grid-template-columns:repeat(2,1fr);gap:.75rem}.dpi-preset-button{padding:1rem;font-size:1rem;min-height:48px}.dpi-preset-button.custom{grid-column:span 2}.dpi-preset-button:active:not(.active){background:#646cff26;transform:scale(.98)}.dpi-back-button{padding:.75rem;font-size:.9375rem;min-height:44px}.dpi-back-button:active{background:#646cff1a;transform:scale(.98)}}.dpi-custom-container{display:flex;flex-direction:column;gap:.5rem}.dpi-back-button{padding:.5rem;font-size:.875rem;font-weight:500;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.dpi-back-button:hover{border-color:var(--primary-color);color:var(--primary-color);background:#646cff0d}.error-message{margin-top:1rem;padding:1rem;background:#ff6b6b1a;border:1px solid var(--error-color);border-radius:8px;color:var(--error-color);text-align:center}.result-container{margin-top:2rem;padding:1.5rem;background:var(--background);border-radius:8px;border:1px solid var(--success-color)}.result-title{font-size:1.25rem;font-weight:600;color:var(--success-color);margin-bottom:1rem;text-align:center}.result-content{display:flex;flex-direction:column;gap:.5rem}.result-item{display:flex;flex-direction:column;gap:.25rem}.result-content p{font-size:1.125rem;color:var(--text-primary)}.edpi-text{font-size:.875rem;color:var(--text-secondary);margin-left:1rem}.result-arrow{text-align:center;font-size:1.5rem;color:var(--primary-color)}.converted-value{color:var(--success-color);font-weight:700;font-size:1.25rem}.ads-result{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.ads-value{color:var(--accent-color, #f59e0b)}.ads-multiplier-info{font-size:.875rem;color:var(--text-secondary);font-weight:400}.ads-input-group{position:relative}.label-with-button{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.label-with-button label{margin-bottom:0}.use-default-btn{font-size:.75rem;padding:4px 8px;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.use-default-btn:hover{opacity:.9;transform:scale(1.02)}.use-default-btn:disabled{opacity:.5;cursor:not-allowed}.cm360-info{margin-top:1.5rem;padding:1rem;background:#646cff0d;border:1px solid var(--border-color);border-radius:8px}.cm360-title{font-size:.875rem;font-weight:600;color:var(--primary-color);margin-bottom:.75rem;text-align:center;text-transform:uppercase;letter-spacing:.5px}.cm360-content{display:flex;justify-content:space-around;gap:1rem}.cm360-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.cm360-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.cm360-value{font-size:1.125rem;font-weight:700;color:var(--primary-color)}.quality-indicator{margin-bottom:1rem;padding:.75rem 1rem;border-radius:8px;display:flex;flex-direction:column;gap:.25rem;border:1px solid}.quality-exact{background:#51cf661a;border-color:var(--success-color)}.quality-high{background:#646cff1a;border-color:var(--primary-color)}.quality-approximate{background:#ffb8001a;border-color:#ffb800}.quality-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.quality-value{font-size:.875rem;font-weight:700}.quality-exact .quality-value{color:var(--success-color)}.quality-high .quality-value{color:var(--primary-color)}.quality-approximate .quality-value{color:var(--warning-color)}.quality-hint{font-size:.75rem;color:var(--text-secondary);font-style:italic}.edpi-tooltip{display:inline-block;margin-left:.5rem;width:16px;height:16px;line-height:16px;text-align:center;background:var(--primary-color);color:#fff;border-radius:50%;font-size:.625rem;font-weight:700;cursor:help;transition:all .2s}.edpi-tooltip:hover{transform:scale(1.2);background:var(--primary-hover)}.warnings-container{margin-top:1.5rem;padding:1rem;background:#ffb8000d;border:1px solid rgba(255,184,0,.3);border-radius:8px}.warnings-title{font-size:.875rem;font-weight:600;color:var(--warning-color);margin-bottom:.75rem;text-align:center;text-transform:uppercase;letter-spacing:.5px}.warnings-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.warning-item{font-size:.875rem;color:var(--text-primary);padding:.5rem;background:#ffb8000d;border-left:3px solid #ffb800;border-radius:4px}.info-section{margin-top:2rem;text-align:center}.info-text{color:var(--text-secondary);font-size:.875rem;margin:.5rem 0}@media (max-width: 640px){.title{font-size:2rem;margin-bottom:.75rem}.subtitle{font-size:1rem;margin-bottom:1.5rem}.converter-card{padding:1.25rem}.input-row{grid-template-columns:1fr;gap:1.5rem}.input-row .input-group{margin-bottom:0}.input-group{margin-bottom:1.25rem}.input-group label{font-size:.9375rem;margin-bottom:.625rem}.input-hint{font-size:.8125rem;margin-top:.375rem}.action-buttons{flex-wrap:wrap;gap:.5rem;margin-top:1rem}.convert-button{flex:1 1 100%;padding:.875rem;font-size:1rem;min-height:44px}.reset-button,.history-button,.profile-button{flex:1 1 auto;padding:.625rem .75rem;font-size:.8125rem;min-height:40px}.copy-button{padding:.75rem;min-height:44px}.result-content{font-size:1rem}.result-content p{font-size:1.0625rem}.converted-value{font-size:1.375rem}.quality-indicator{padding:1rem;margin-bottom:1.25rem}.cm360-info{margin-top:1.25rem;padding:1.125rem}.cm360-content{flex-direction:row;gap:1.5rem}.cm360-value{font-size:1.25rem}.warnings-container{margin-top:1.25rem;padding:1.125rem}.warning-item{font-size:.9375rem;padding:.75rem}.info-section{margin-top:1.5rem}.info-text{font-size:.9375rem;line-height:1.6}}.theme-toggle{position:fixed;top:1.5rem;right:1.5rem;width:48px;height:48px;border-radius:50%;border:2px solid var(--border-color);background:var(--card-background);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .3s ease;box-shadow:var(--shadow);z-index:1000}.theme-toggle:hover{border-color:var(--primary-color);background:var(--primary-color);color:#fff;transform:scale(1.1) rotate(15deg);box-shadow:0 6px 12px #0003}.theme-toggle:active{transform:scale(1.05) rotate(15deg)}@media (max-width: 640px){.theme-toggle{top:1rem;right:1rem;width:40px;height:40px;font-size:1.25rem}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--background)}.error-boundary-content{max-width:600px;width:100%;background:var(--card-background);border-radius:12px;padding:2.5rem;box-shadow:var(--shadow);border:1px solid var(--error-color);text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-title{font-size:2rem;font-weight:700;color:var(--error-color);margin-bottom:1rem}.error-message{font-size:1.125rem;color:var(--text-primary);margin-bottom:2rem;line-height:1.6}.error-details{text-align:left;margin-bottom:2rem;background:var(--background);border-radius:8px;padding:1rem;border:1px solid var(--border-color)}.error-details summary{cursor:pointer;font-weight:600;color:var(--text-secondary);padding:.5rem;-webkit-user-select:none;user-select:none}.error-details summary:hover{color:var(--primary-color)}.error-stack{margin-top:1rem;padding:1rem;background:#0003;border-radius:6px;overflow-x:auto;font-size:.875rem;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:1rem;margin-bottom:2rem;justify-content:center;flex-wrap:wrap}.error-button{padding:1rem 2rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;gap:.5rem}.error-button.primary{background:var(--primary-color);color:#fff}.error-button.primary:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 6px 12px #646cff4d}.error-button.secondary{background:transparent;color:var(--text-secondary);border:2px solid var(--border-color)}.error-button.secondary:hover{border-color:var(--primary-color);color:var(--primary-color);background:#646cff0d;transform:translateY(-2px)}.error-button:active{transform:translateY(0)}.error-help{text-align:left;padding:1.5rem;background:#ff6b6b0d;border-radius:8px;border:1px solid rgba(255,107,107,.2)}.error-help-text{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.error-help-list{list-style:none;padding:0;margin:0}.error-help-list li{font-size:.875rem;color:var(--text-secondary);padding:.5rem 0 .5rem 1.5rem;position:relative}.error-help-list li:before{content:"→";position:absolute;left:0;color:var(--error-color);font-weight:700}@media (max-width: 640px){.error-boundary-content{padding:1.5rem}.error-title{font-size:1.5rem}.error-message{font-size:1rem}.error-actions{flex-direction:column}.error-button{width:100%;justify-content:center}}.pwa-update-notification{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:9999;background:var(--card-background);border:2px solid var(--primary-color);border-radius:12px;box-shadow:0 8px 24px #0006;padding:1rem 1.5rem;min-width:320px;max-width:90vw;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pwa-update-content{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.pwa-update-content p{margin:0;color:var(--text-primary);font-weight:600;flex:1;min-width:150px}.pwa-update-button,.pwa-dismiss-button{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.pwa-update-button{background:var(--primary-color);color:#fff}.pwa-update-button:hover{background:var(--primary-hover);transform:translateY(-1px)}.pwa-dismiss-button{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.pwa-dismiss-button:hover{background:#ffffff0d;border-color:var(--text-secondary)}@media (max-width: 640px){.pwa-update-notification{bottom:1rem;left:1rem;right:1rem;transform:none;min-width:auto;padding:1rem}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pwa-update-content{flex-direction:column;gap:.75rem;align-items:stretch}.pwa-update-button,.pwa-dismiss-button{width:100%}}.install-prompt{position:fixed;bottom:2rem;right:2rem;z-index:9998;max-width:380px;animation:slideInRight .4s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}.install-prompt-content{background:var(--card-background);border:2px solid var(--primary-color);border-radius:12px;padding:1.5rem;box-shadow:0 8px 32px #0006;position:relative;display:flex;flex-direction:column;gap:1rem}.install-prompt-icon{font-size:2.5rem;text-align:center;margin-bottom:.5rem}.install-prompt-text{text-align:center}.install-prompt-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.install-prompt-description{font-size:.9375rem;color:var(--text-secondary);margin:0;line-height:1.5}.install-prompt-actions{display:flex;gap:.75rem;margin-top:.5rem}.install-prompt-button{flex:1;padding:.75rem 1rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.install-prompt-button.primary{background:var(--primary-color);color:#fff}.install-prompt-button.primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.install-prompt-button.secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.install-prompt-button.secondary:hover{background:#ffffff0d;border-color:var(--text-secondary)}.install-prompt-close{position:absolute;top:.75rem;right:.75rem;background:transparent;border:none;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:.25rem;line-height:1;transition:all .2s;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px}.install-prompt-close:hover{background:#ffffff1a;color:var(--text-primary)}@media (max-width: 640px){.install-prompt{bottom:1rem;left:1rem;right:1rem;max-width:none}@keyframes slideInRight{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.install-prompt-content{padding:1.25rem}.install-prompt-icon{font-size:2rem;margin-bottom:.25rem}.install-prompt-title{font-size:1.125rem}.install-prompt-description{font-size:.875rem}.install-prompt-actions{flex-direction:column;gap:.5rem}.install-prompt-button{width:100%}}.history-panel-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.history-panel{background:var(--card-background);border-radius:12px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.history-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.history-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.close-button{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.close-button:hover{background:var(--hover-background);color:var(--text-primary)}.history-filter{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:1rem}.history-filter label{font-size:.875rem;color:var(--text-secondary);white-space:nowrap}.game-filter-select{flex:1;padding:.5rem;border-radius:6px;border:1px solid var(--border-color);background:var(--card-background);color:var(--text-primary);font-size:.875rem}.history-list{flex:1;overflow-y:auto;padding:1rem}.history-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.history-empty p{margin:.5rem 0}.history-empty-hint{font-size:.875rem;opacity:.7}.history-entry{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:.75rem;transition:all .2s ease}.history-entry:hover{border-color:var(--accent);box-shadow:0 2px 8px #646cff1a}.history-entry-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.history-time{font-size:.75rem;color:var(--text-secondary);font-weight:500}.history-delete-btn{background:none;border:none;font-size:1.125rem;cursor:pointer;padding:.25rem;border-radius:4px;opacity:.6;transition:all .2s ease}.history-delete-btn:hover{opacity:1;background:#ff3b301a}.history-entry-content{display:flex;flex-direction:column;gap:.75rem}.history-conversion{display:flex;align-items:center;gap:.75rem;font-weight:600;color:var(--text-primary)}.history-game{color:var(--accent)}.history-arrow{color:var(--text-secondary);font-size:1.125rem}.history-values{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.875rem}.history-value-group{display:flex;gap:.5rem}.history-label{color:var(--text-secondary)}.history-value{color:var(--text-primary);font-weight:500}.history-result{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--border-color)}.history-result-value{display:flex;gap:.75rem;align-items:center}.history-converted{font-size:1.125rem;font-weight:700;color:var(--success)}.history-metrics{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary)}.history-reapply-btn{margin-top:.75rem;width:100%;padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.history-reapply-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.history-reapply-btn:active{transform:translateY(0)}.history-actions{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;gap:1rem}.history-export-btn,.history-clear-btn{flex:1;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color)}.history-export-btn{background:var(--card-background);color:var(--text-primary)}.history-export-btn:hover{background:var(--hover-background);border-color:var(--accent)}.history-clear-btn{background:#ff3b301a;color:#ff3b30;border-color:#ff3b304d}.history-clear-btn:hover{background:#ff3b3033;border-color:#ff3b30}@media (max-width: 640px){.history-panel{max-height:95vh}.history-header h2{font-size:1.25rem}.history-filter{flex-direction:column;align-items:stretch}.history-values{flex-direction:column;gap:.5rem}.history-result{flex-direction:column;align-items:flex-start;gap:.5rem}.history-metrics{width:100%;justify-content:space-between}.history-actions{flex-direction:column}}.shortcuts-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.shortcuts-panel{background:var(--card-background);border-radius:12px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.shortcuts-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.shortcuts-content{flex:1;overflow-y:auto;padding:1.5rem}.shortcuts-list{display:flex;flex-direction:column;gap:.75rem}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;transition:all .2s ease}.shortcut-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #646cff1a}.shortcut-keys{font-family:Courier New,monospace;font-size:.875rem;font-weight:600;color:var(--accent);background:#646cff1a;padding:.25rem .5rem;border-radius:4px;border:1px solid rgba(100,108,255,.3);white-space:nowrap}.shortcut-description{color:var(--text-primary);font-size:.9375rem;margin-left:1rem}.shortcuts-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);text-align:center}.shortcuts-hint{color:var(--text-secondary);font-size:.875rem;margin:0}.shortcuts-hint kbd{font-family:Courier New,monospace;font-size:.8125rem;font-weight:600;color:var(--text-primary);background:var(--card-background);padding:.125rem .375rem;border-radius:3px;border:1px solid var(--border-color)}@media (max-width: 640px){.shortcuts-panel{max-height:95vh}.shortcuts-header h2{font-size:1.25rem}.shortcut-item{flex-direction:column;align-items:flex-start;gap:.5rem}.shortcut-description{margin-left:0}}.profile-manager-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.profile-manager{background:var(--card-background);border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;animation:slideUpFade .3s ease-out}.profile-manager-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.profile-manager-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.profile-manager-content{flex:1;overflow-y:auto;padding:1.5rem}.profile-success-message{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9375rem}.profile-error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9375rem}.profile-form{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.profile-form h3{margin:0 0 1.5rem;font-size:1.125rem;color:var(--text-primary)}.profile-form-field{margin-bottom:1rem}.profile-form-field label{display:block;margin-bottom:.5rem;font-size:.9375rem;font-weight:500;color:var(--text-primary)}.profile-form-field input,.profile-form-field select{width:100%;padding:.75rem;background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;transition:all .2s}.profile-form-field input:focus,.profile-form-field select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #646cff1a}.profile-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.profile-form-checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.profile-form-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.profile-form-checkbox label{font-size:.9375rem;color:var(--text-primary);cursor:pointer;margin:0}.profile-form-actions{display:flex;gap:.75rem}.profile-save-button,.profile-cancel-button{flex:1;padding:.75rem 1rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.profile-save-button{background:var(--primary-color);color:#fff}.profile-save-button:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.profile-cancel-button{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.profile-cancel-button:hover{background:#ffffff0d;border-color:var(--text-secondary)}.profile-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.profile-list-header h3{margin:0;font-size:1.125rem;color:var(--text-primary)}.profile-new-button{background:var(--primary-color);color:#fff;border:none;padding:.625rem 1rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.profile-new-button:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.profile-new-button:disabled{opacity:.5;cursor:not-allowed}.profile-empty-state{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.profile-empty-state p{margin:.5rem 0}.profile-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.profile-item{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1rem;transition:all .2s}.profile-item:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a}.profile-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.profile-item-header h4{margin:0;font-size:1.125rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.profile-default-badge{display:inline-flex;align-items:center;font-size:.8125rem;font-weight:600;color:#fbbf24;background:#fbbf241a;padding:.25rem .5rem;border-radius:4px;border:1px solid rgba(251,191,36,.2)}.profile-game-badge{font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:var(--card-background);padding:.25rem .75rem;border-radius:12px;border:1px solid var(--border-color)}.profile-item-details{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem;font-size:.875rem;color:var(--text-secondary)}.profile-item-actions{display:flex;gap:.5rem;flex-wrap:wrap}.profile-load-button,.profile-edit-button,.profile-default-button,.profile-delete-button{padding:.5rem .875rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid var(--border-color)}.profile-load-button{background:var(--primary-color);color:#fff;border:none}.profile-load-button:hover{background:var(--primary-hover);transform:translateY(-1px)}.profile-edit-button{background:transparent;color:var(--text-secondary)}.profile-edit-button:hover{background:#ffffff0d;color:var(--text-primary)}.profile-default-button{background:transparent;color:#fbbf24;border-color:#fbbf244d}.profile-default-button:hover{background:#fbbf241a;border-color:#fbbf24}.profile-delete-button{background:transparent;color:#ef4444;border-color:#ef44444d}.profile-delete-button:hover{background:#ef44441a;border-color:#ef4444}.profile-manager-footer{padding:1.5rem;border-top:1px solid var(--border-color)}.profile-footer-actions{display:flex;gap:.75rem;justify-content:center}.profile-export-button,.profile-import-button,.profile-clear-button{padding:.625rem 1rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary)}.profile-export-button:hover:not(:disabled),.profile-import-button:hover:not(:disabled){background:#ffffff0d;color:var(--text-primary);border-color:var(--text-secondary)}.profile-clear-button:hover:not(:disabled){background:#ef44441a;color:#ef4444;border-color:#ef4444}.profile-export-button:disabled,.profile-import-button:disabled,.profile-clear-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.profile-manager{max-height:95vh}.profile-manager-header h2{font-size:1.25rem}.profile-form-row{grid-template-columns:1fr}.profile-item-header{flex-direction:column;align-items:flex-start;gap:.5rem}.profile-item-actions{width:100%}.profile-item-actions button{flex:1}.profile-footer-actions{flex-direction:column}.profile-footer-actions button{width:100%}}.input-with-validation{position:relative;display:flex;align-items:center;width:100%}.input-valid{border:2px solid var(--success-green)!important;padding-right:40px!important}.input-error{border:2px solid var(--error-red)!important;padding-right:40px!important}.validation-icon{position:absolute;right:12px;font-size:18px;font-weight:700;pointer-events:none;z-index:1}.validation-success{color:var(--success-green)}.validation-error{color:var(--error-red)}.validation-message{margin-top:6px;padding:8px 12px;border-radius:6px;font-size:13px;line-height:1.4;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.validation-message-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error-red)}.validation-message-warning{background-color:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#f59e0b}.validation-suggestion{margin-top:4px;font-size:12px;opacity:.85;font-style:italic}body.dark-theme .validation-message-error{background-color:#ef444426;border-color:#ef444466;color:#fca5a5}body.dark-theme .validation-message-warning{background-color:#fbbf2426;border-color:#fbbf2466;color:#fcd34d}body.dark-theme .input-valid{border-color:#10b981!important}body.dark-theme .input-error{border-color:#ef4444!important}body.dark-theme .validation-success{color:#10b981}body.dark-theme .validation-error{color:#ef4444}.input-valid:focus{outline:none;box-shadow:0 0 0 3px #22c55e1a}.input-error:focus{outline:none;box-shadow:0 0 0 3px #ef44441a}@media (max-width: 768px){.validation-icon{right:10px;font-size:16px}.validation-message{font-size:12px;padding:6px 10px}.validation-suggestion{font-size:11px}.input-valid,.input-error{padding-right:35px!important}}@media (max-width: 480px){.validation-icon{right:8px;font-size:15px}.validation-message{font-size:11px;padding:5px 8px}.validation-suggestion{font-size:10px}}@media (prefers-contrast: high){.input-valid,.input-error{border-width:3px!important}.validation-message-error,.validation-message-warning{border-width:2px}}@media (prefers-reduced-motion: reduce){.validation-message{animation:none}}
