:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#0f172a;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;min-width:320px;min-height:100vh}#root{width:100%}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#333;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;margin:0;padding:0}.app{max-width:1400px;margin:0 auto;padding:20px;background:#fff;min-height:100vh;box-shadow:0 0 30px #0000001a}.app-header{text-align:center;margin-bottom:40px;padding:30px 20px;background:linear-gradient(135deg,#1e40af,#3730a3);color:#fff;border-radius:12px;box-shadow:0 8px 25px #00000026}.header-content{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.app-logo{width:80px;height:80px;border-radius:12px;box-shadow:0 4px 12px #0003;background:#fff;padding:8px}.header-text{text-align:left}.app-header h1{font-size:2.5rem;margin-bottom:10px;font-weight:700}.app-header p{font-size:1.1rem;opacity:.9;margin:0}.app-main{display:flex;flex-direction:column;gap:30px}.parametrit-section{background:#f8fafc;padding:25px;border-radius:12px;border:1px solid #e2e8f0}.parametrit-container{display:grid;grid-template-columns:1fr 550px;gap:30px;align-items:start}.ohje-laatikko{background:#fff;padding:20px;border-radius:8px;border:1px solid #d1d5db;box-shadow:0 2px 8px #0000000d;position:sticky;top:20px}.ohje-laatikko h3{color:#1e293b;margin:0 0 20px;font-size:1.3rem;border-bottom:2px solid #e2e8f0;padding-bottom:10px}.ohje-osio{margin-bottom:18px}.ohje-osio h4{color:#374151;margin:0 0 8px;font-size:1rem;font-weight:600}.ohje-osio p{color:#6b7280;margin:0 0 5px;font-size:.9rem;line-height:1.5}.ohje-osio em{color:#059669;font-style:normal;font-weight:500}.ohje-tulos{background:#f0f9ff;padding:15px;border-radius:6px;border-left:4px solid #0ea5e9;margin-top:20px}.ohje-tulos h4{color:#0c4a6e;margin:0 0 10px;font-size:1rem}.ohje-tulos p{color:#075985;margin:0;font-size:.9rem;line-height:1.6}@media (max-width: 1024px){.parametrit-container{grid-template-columns:1fr;gap:20px}.parametrit-ohje-wrapper{display:none}.ohje-laatikko{position:static}}.yrittaja-linkki{margin-top:20px;text-align:center;padding:12px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:8px;border-left:4px solid #0ea5e9;max-width:400px;margin-left:auto;margin-right:auto}.optimointi-linkki{display:inline-block;color:#0c4a6e;text-decoration:none;font-weight:600;font-size:1rem;padding:10px 16px;background:#fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;border:2px solid transparent;white-space:nowrap}.optimointi-linkki:hover{color:#075985;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 8px #00000026;border-color:#0ea5e9}.optimointi-linkki:active{transform:translateY(0)}.parametri-lomake h2{color:#1e293b;margin-bottom:20px;font-size:1.5rem}.parametri-rivi{display:flex;align-items:center;margin-bottom:15px;gap:15px}.parametri-rivi label{min-width:220px;font-weight:500;color:#374151}.parametri-rivi input{padding:8px 12px;border:2px solid #d1d5db;border-radius:6px;font-size:14px;width:120px;transition:border-color .2s}.parametri-rivi select{padding:8px 12px;border:2px solid #d1d5db;border-radius:6px;font-size:14px;width:200px;transition:border-color .2s;background-color:#fff}.parametri-rivi input:focus,.parametri-rivi select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.taulukko-section{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.taulukko-otsikko{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.taulukko-otsikko h2{margin:0;color:#1e293b}.taulukko-toggle{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}.taulukko-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.verotaulukko-container{padding:25px}.taulukko-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.verotaulukko{width:100%;border-collapse:collapse;font-size:14px}.verotaulukko th{background:#1e40af;color:#fff;padding:12px 8px;text-align:left;font-weight:600;font-size:13px;white-space:nowrap}.verotaulukko td{padding:10px 8px;border-bottom:1px solid #f1f5f9;text-align:right;white-space:nowrap}.verotaulukko tbody tr:hover{background:#f8fafc}.verotaulukko tbody tr:nth-child(2n){background:#fafbfc}.verotaulukko tbody tr:nth-child(2n):hover{background:#f1f5f9}.kaavio-section,.kaavio-stacked-section{background:#fff;padding:25px;border-radius:12px;border:1px solid #e2e8f0}.verokaavio-container h2,.verokaavio-stacked-container h2{margin-top:0;margin-bottom:20px;color:#1e293b}.verokaavio-stacked-container .kaavio-selitys{background:#f0f9ff;padding:15px;border-radius:8px;border-left:4px solid #3b82f6;margin-bottom:20px;font-size:.95rem;color:#1e40af}.verokaavio-stacked-container .kaavio-info{margin-top:20px;padding:15px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}.verokaavio-stacked-container .kaavio-info p{margin:0;font-size:.9rem;color:#92400e}.dataset-valinnat{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.dataset-valinnat h3{margin:0 0 15px;color:#374151;font-size:1.1rem}.valinta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.valinta-label{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #d1d5db;cursor:pointer;transition:all .2s;font-weight:500}.valinta-label:hover{border-color:#3b82f6;box-shadow:0 2px 4px #0000000d}.valinta-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.kaavio-wrapper{background:#fff;padding:20px;border-radius:8px;border:1px solid #e2e8f0;min-height:400px;position:relative;width:100%;overflow:hidden}.app-footer{margin-top:40px;padding:20px;text-align:center;border-top:1px solid #e2e8f0;color:#6b7280}.app-footer a{color:#3b82f6;text-decoration:none}.app-footer a:hover{text-decoration:underline}.footer-copyright{margin-top:15px;padding-top:15px;border-top:1px solid #f1f5f9;font-size:14px}.footer-copyright p{margin:0;color:#94a3b8}.footer-copyright a{color:#6366f1;font-weight:500}.footer-copyright a:hover{color:#4f46e5}.cookie-settings-link{background:none;border:none;color:#6366f1;font-weight:500;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0;margin:0}.cookie-settings-link:hover{color:#4f46e5}@media (max-width: 768px){.app{padding:10px}.app-header h1{font-size:2rem}.header-content{flex-direction:column;gap:15px}.header-text{text-align:center}.app-logo{width:60px;height:60px}.parametri-rivi{flex-direction:column;align-items:flex-start;gap:5px}.parametri-rivi label{min-width:auto}.parametri-rivi input{width:100%;max-width:200px}.taulukko-otsikko{flex-direction:column;gap:15px;align-items:flex-start}.valinta-grid{grid-template-columns:1fr}.verotaulukko{font-size:13px;overflow-x:auto}.verotaulukko th,.verotaulukko td{padding:8px 4px;min-width:80px}.valinta-grid button{min-height:44px;font-size:14px}.parametrit select,.parametrit input{min-height:44px;font-size:16px}.kaavio-wrapper{padding:10px;min-height:300px}.dataset-valinnat{padding:15px}.valinta-label{padding:6px 8px;font-size:14px}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.parametri-info{margin-top:8px;padding:8px 12px;background-color:#f8f9fa;border-left:3px solid #007bff;border-radius:3px}.parametri-info small{color:#6c757d;font-size:.875rem;font-style:italic}.verotus-selitys{margin-top:40px;padding:30px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0;max-width:1200px;line-height:1.7}.verotus-selitys h3{color:#1e40af;font-size:1.8rem;margin-bottom:20px;text-align:center;border-bottom:2px solid #3b82f6;padding-bottom:15px}.selitys-intro{margin-bottom:30px;padding:20px;background:#eff6ff;border-radius:8px;border-left:4px solid #3b82f6}.selitys-intro p:first-child{font-size:1.1rem;font-weight:600;color:#1e40af;margin-bottom:15px}.selitys-osio{margin-bottom:35px;padding:25px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 2px 4px #0000000d}.selitys-osio h4{color:#1e40af;font-size:1.4rem;margin-bottom:18px;border-bottom:1px solid #e2e8f0;padding-bottom:10px}.selitys-osio h5{color:#374151;font-size:1.1rem;margin:20px 0 12px;font-weight:600}.selitys-osio ul{margin:15px 0;padding-left:25px}.selitys-osio li{margin-bottom:12px;color:#374151}.selitys-osio li strong{color:#1e40af;font-weight:600}.veroasteikko{margin:20px 0;padding:15px;background:#fef3c7;border-radius:6px;border-left:4px solid #f59e0b}.veroasteikko h5{color:#92400e;margin-top:0}.veroasteikko ul{margin:10px 0 0}.veroasteikko li{color:#92400e;font-family:Courier New,monospace;font-size:.9rem;margin-bottom:6px}.selitys-yhteenveto{margin-top:35px;padding:25px;background:#f0f9ff;border-radius:8px;border-left:4px solid #0ea5e9}.selitys-yhteenveto h4{color:#0c4a6e;font-size:1.4rem;margin-bottom:18px}.selitys-yhteenveto p{color:#374151;margin-bottom:15px}.selitys-yhteenveto p strong{color:#0c4a6e;font-weight:600}.kustannus-yhteenveto{margin-top:20px;padding:20px;background:#ecfdf5;border-radius:8px;border-left:4px solid #10b981}.kustannus-yhteenveto h5{color:#065f46;margin-top:0;margin-bottom:15px}.kustannus-yhteenveto ul{margin:10px 0}.kustannus-yhteenveto li{color:#374151;margin-bottom:8px}.kustannus-yhteenveto li strong{color:#065f46}.kustannus-yhteenveto p{color:#374151;margin-top:15px;font-size:1rem;line-height:1.6}.kustannus-yhteenveto p strong{color:#065f46}.kustannus-yhteenveto p em{color:#059669;font-weight:500;font-style:italic}@media (max-width: 768px){.verotus-selitys{padding:20px 15px;margin-top:30px}.verotus-selitys h3{font-size:1.5rem}.selitys-intro,.selitys-osio,.selitys-yhteenveto{padding:18px}.selitys-osio h4,.selitys-yhteenveto h4{font-size:1.2rem}.selitys-osio ul{padding-left:20px}.veroasteikko li{font-size:.8rem}}.cookie-consent-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.cookie-consent-banner{background:#fff;border-radius:12px;box-shadow:0 20px 50px #0000004d;max-width:600px;max-height:90vh;overflow-y:auto;position:relative}.cookie-consent-content{padding:30px}.cookie-consent-content h3{margin:0 0 15px;color:#1e40af;font-size:1.25rem}.cookie-consent-content p{margin:0 0 20px;line-height:1.6;color:#374151}.cookie-details{margin:20px 0;padding:20px;background:#f8fafc;border-radius:8px;border-left:4px solid #3b82f6}.cookie-details h4{margin:0 0 15px;color:#1e40af;font-size:1rem}.cookie-category{margin-bottom:15px}.cookie-category strong{display:block;color:#374151;margin-bottom:5px}.cookie-category p{margin:0;font-size:14px;color:#6b7280}.cookie-consent-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.btn{padding:12px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.btn-outline{background:transparent;color:#374151;border:2px solid #d1d5db}.btn-outline:hover{background:#f3f4f6;border-color:#9ca3af}.cookie-custom-settings{margin-top:20px;padding:20px;background:#f1f5f9;border-radius:8px}.cookie-custom-settings h4{margin:0 0 15px;color:#1e40af;font-size:1rem}.cookie-toggles{margin:15px 0}.cookie-toggles label{display:block;margin:10px 0;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:14px}.cookie-toggles input[type=checkbox]{width:18px;height:18px;accent-color:#3b82f6}.cookie-toggles input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.cookie-legal-info{margin-top:20px;padding-top:15px;border-top:1px solid #e5e7eb}.cookie-legal-info small{font-size:12px;color:#6b7280;line-height:1.5}.cookie-legal-info a{color:#3b82f6;text-decoration:none}.cookie-legal-info a:hover{text-decoration:underline}@media (max-width: 768px){.cookie-consent-overlay{padding:10px}.cookie-consent-content{padding:20px}.cookie-consent-actions{flex-direction:column}.btn{width:100%;justify-content:center}.cookie-consent-banner{max-height:95vh}}@media (max-width: 480px){.cookie-consent-content{padding:15px}.cookie-consent-content h3{font-size:1.1rem}.btn{padding:14px 16px;font-size:16px}}
