*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #07070d;--surface: #0f0f1a;--border: #1b1b2e;--accent: #e07d52;--text: #dcdcf0;--muted: #585878;--font: "Inter", system-ui, -apple-system, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1400px;margin:0 auto;padding:0 28px 60px}.header{padding:32px 0 0;border-bottom:1px solid var(--border);margin-bottom:36px}.header-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding-bottom:20px}.sub-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;flex-wrap:wrap;gap:12px}.main{min-height:55vh}.logo{font-size:1.1rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);white-space:nowrap;flex-shrink:0}.controls{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.search-wrap{position:relative;flex:1;min-width:0;max-width:400px}.search-field{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:0 12px;gap:8px;transition:border-color .15s}.search-field:focus-within{border-color:var(--accent)}.search-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0}.search-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:var(--font);font-size:.875rem;padding:10px 0;min-width:0}.search-input::placeholder{color:var(--muted)}.search-spinner{width:14px;height:14px;border:1.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;z-index:50;list-style:none;box-shadow:0 8px 32px #00000080}.search-option{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;gap:12px;transition:background .1s}.search-option:hover,.search-option.active{background:#ffffff0a}.option-name{font-size:.875rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.option-country{font-size:.75rem;color:var(--muted);flex-shrink:0;font-weight:500;letter-spacing:.04em}.lang-switcher{display:flex;align-items:center;gap:2px;flex-shrink:0;border-left:1px solid var(--border);padding-left:14px}.lang-btn{background:none;border:none;color:var(--muted);font-family:var(--font);font-size:.7rem;padding:4px 7px;cursor:pointer;border-radius:4px;letter-spacing:.07em;transition:color .15s,background .15s}.lang-btn:hover:not(.active){color:var(--text)}.lang-btn.active{color:var(--accent);background:#e07d5217}.year-picker{display:flex;align-items:center;gap:10px;flex-shrink:0}.year-arrow{background:none;border:1px solid var(--border);color:var(--muted);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.year-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.year-arrow:disabled{opacity:.25;cursor:not-allowed}.year-val{font-size:.9rem;font-weight:500;color:var(--text);min-width:42px;text-align:center}.location-label{font-size:.8rem;color:var(--muted);letter-spacing:.03em}.tabs{display:flex;gap:2px}.tab{background:none;border:none;color:var(--muted);font-family:var(--font);font-size:.825rem;padding:6px 14px;cursor:pointer;border-radius:6px;transition:color .15s,background .15s;letter-spacing:.02em}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);background:#e07d5217}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48vh;gap:14px;color:var(--muted)}.empty-glyph{font-size:2.5rem;opacity:.2;line-height:1}.empty p{font-size:.85rem;letter-spacing:.02em}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48vh;gap:14px;color:var(--muted);font-size:.825rem}.loading-track{width:180px;height:2px;background:var(--border);border-radius:2px;overflow:hidden}.loading-fill{height:100%;width:40%;background:var(--accent);border-radius:2px;animation:slide 1.1s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.error-msg{padding:14px 18px;border:1px solid rgba(220,80,80,.25);border-radius:8px;color:#ee8080;font-size:.85rem;background:#dc50500d}.art-tab{display:flex;flex-direction:column;gap:0}.palette-selector{display:flex;align-items:center;gap:6px;padding:0 0 14px}.palette-label{font-size:.72rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-right:4px;flex-shrink:0}.palette-btn{background:none;border:1px solid var(--border);color:var(--muted);font-family:var(--font);font-size:.75rem;padding:4px 13px;border-radius:20px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;letter-spacing:.03em}.palette-btn:hover:not(.active){color:var(--text);border-color:#ffffff24}.palette-btn.active{border-color:var(--accent);color:var(--accent);background:#e07d5214}.canvas-wrap{width:100%;overflow-x:auto;line-height:0}.art-actions{display:flex;gap:8px;padding:14px 0 28px;justify-content:flex-end}.btn-download{display:flex;align-items:center;gap:7px;background:none;border:1px solid var(--border);color:var(--muted);font-family:var(--font);font-size:.8rem;padding:7px 16px;border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s;letter-spacing:.02em;white-space:nowrap}.btn-download:hover{border-color:var(--accent);color:var(--accent)}.footer{display:flex;align-items:center;gap:24px;padding:20px 0;border-top:1px solid var(--border);font-size:.75rem;color:var(--muted);flex-wrap:wrap}.footer a{color:var(--muted);text-decoration:none;transition:color .15s}.footer a:hover{color:var(--text)}.charts-tab{display:flex;flex-direction:column;gap:16px}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 12px 12px}@media(max-width:680px){.charts-row{grid-template-columns:1fr}.app{padding:0 16px 40px}.controls{flex-wrap:wrap}.search-wrap{max-width:100%}}
