:root{--primary-bg: #1a202c;--secondary-bg: #2d3748;--primary-text: #edf2f7;--accent-color: #4299e1;--error-color: #e53e3e;--success-color: #48bb78;--border-color: #4a5568}body{margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--primary-bg);color:var(--primary-text);display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 0}#root{width:100%;max-width:600px;padding:0 1rem}.container{background-color:var(--secondary-bg);padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;gap:1.5rem}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header-actions{display:flex;align-items:center;gap:1rem}.admin-btn{background:transparent;border:none;font-size:1.75rem;cursor:pointer;color:var(--primary-text);opacity:.5;transition:opacity .2s;padding:.25rem;line-height:1}.admin-btn:hover{opacity:1}h1{color:var(--primary-text);text-align:left;margin:0;font-size:1.5rem;font-weight:700}.calculator-form{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"from to" "wind actions";gap:1rem;align-items:flex-end}.input-group:nth-of-type(1){grid-area:from}.input-group:nth-of-type(2){grid-area:to}.wind-input{grid-area:wind}.form-actions{grid-area:actions}.calculator-form .input-group{flex-grow:1}.form-actions{display:flex;gap:.5rem;width:100%}.form-actions button{margin-top:0}.form-actions button[type=submit]{flex-grow:1}.return-btn{padding:.75rem;flex-shrink:0;width:44px;background-color:var(--border-color)}.return-btn:hover:not(:disabled){background-color:#718096}.input-group{display:flex;flex-direction:column;gap:.5rem;position:relative}label{font-weight:500;color:#a0aec0;font-size:.875rem}input{padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--primary-bg);color:var(--primary-text);font-size:1rem;transition:border-color .2s;font-family:inherit}input[type=text]{text-transform:uppercase}input::placeholder{color:#718096;text-transform:none}input:focus{outline:none;border-color:var(--accent-color)}button{padding:.75rem 1.5rem;border:none;border-radius:4px;background-color:var(--accent-color);color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s;display:flex;justify-content:center;align-items:center;min-height:44px}button:hover:not(:disabled){background-color:#3182ce}button:disabled{background-color:var(--border-color);cursor:not-allowed;opacity:.7}.spinner{border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top:2px solid #fff;width:20px;height:20px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.result{margin-top:0;background-color:var(--primary-bg);border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:2.5rem;padding:1rem;gap:1.5rem}.result .error{color:var(--error-color);font-weight:500;text-align:center;width:100%}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;width:100%;text-align:center}.result-data{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .5rem;background-color:var(--secondary-bg);border-radius:4px}.result-data span{font-size:.9rem;color:#a0aec0}.result-data strong{font-size:1.5rem;font-weight:700;color:var(--accent-color)}.result-data .percentage{font-size:.9rem;color:#a0aec0;font-weight:500}.result-data.total{grid-column:1 / -1;background-color:var(--accent-color);margin-top:.5rem;padding:1rem;gap:.5rem;align-items:stretch}.total-line{display:flex;justify-content:space-between;align-items:baseline;width:100%}.total-line span{color:#fff;font-size:1rem}.total-line span:first-child{color:#bee3f8;font-weight:400}.total-line span:last-child{font-weight:700;font-size:1.2rem}.total-line.grand-total{border-top:1px solid #63b3ed;padding-top:.5rem;margin-top:.5rem}.total-line.grand-total span{font-weight:700}.total-line.grand-total span:first-child{font-size:1.2rem;color:#fff}.total-line.grand-total span:last-child{font-size:2.25rem}.price-input-section{width:100%;max-width:300px;padding:1rem 0;margin:0 auto;border-top:1px solid var(--border-color);margin-top:1rem}.price-input-section .input-group input{text-transform:none;text-align:center}.price-input-section .input-group label{text-align:center}.price-details-wrapper{display:grid;grid-template-columns:2fr 1fr;gap:2rem;width:100%;align-items:center;border-top:1px solid var(--border-color);padding-top:1.5rem}.price-breakdown{width:100%}.pie-chart-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.pie-chart{width:120px;height:120px;border-radius:50%;border:4px solid var(--primary-bg)}.pie-chart-legend{display:flex;flex-direction:column;gap:.5rem;font-size:.8rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-color{width:12px;height:12px;border-radius:2px}.legend-label{color:#a0aec0}#map{height:400px;width:100%;border-radius:8px;background-color:#000;opacity:0;visibility:hidden;transition:opacity .5s ease-in-out;z-index:10}#map.visible{opacity:1;visibility:visible}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--secondary-bg);color:var(--primary-text);box-shadow:0 3px 14px #0006}.leaflet-popup-content{font-weight:700}.leaflet-container a.leaflet-popup-close-button{color:var(--primary-text)}.suggestions-container{position:absolute;top:100%;left:0;right:0;background-color:#fff;border-radius:4px;box-shadow:0 4px 6px #0000001a;margin-top:.25rem;z-index:50;max-height:200px;overflow-y:auto}.suggestion-item{padding:.75rem;color:#1a202c;cursor:pointer;font-weight:500}.suggestion-item:hover{background-color:#edf2f7}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background-color:var(--secondary-bg);padding:2rem;border-radius:8px;box-shadow:0 5px 15px #0000004d;width:90%;max-width:700px;max-height:90vh;overflow-y:auto}.admin-panel{display:flex;flex-direction:column;gap:1.5rem}.admin-panel h2{margin:0;text-align:center;color:var(--primary-text)}.admin-panel-warning{font-size:.875rem;background-color:var(--primary-bg);padding:1rem;border-radius:4px;margin:-1rem 0 .5rem;line-height:1.5;color:#a0aec0;border:1px solid var(--border-color)}.admin-panel-warning code{background-color:var(--border-color);color:var(--primary-text);padding:.1em .4em;border-radius:3px;font-family:monospace}.admin-panel-warning strong{color:var(--accent-color);font-weight:700}.admin-panel fieldset{border:1px solid var(--border-color);border-radius:4px;padding:1.5rem 1rem 1rem;display:flex;flex-direction:column;gap:1rem}.coeffs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}@media(max-width:500px){.coeffs-grid{grid-template-columns:repeat(2,1fr)}}.admin-panel legend{padding:0 .5rem;font-weight:500;color:var(--accent-color)}.admin-panel .input-group{flex-grow:1}.admin-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.admin-actions button{flex-grow:0}.admin-actions button:first-child{background-color:var(--border-color)}.admin-actions button:first-child:hover{background-color:#718096}.admin-panel input{text-transform:none}.password-modal{max-width:400px;display:flex;flex-direction:column;gap:1rem}.password-modal h2{margin:0;text-align:center}.password-error{color:var(--error-color);text-align:center;margin:-.5rem 0 0;width:100%}@media(max-width:600px){.price-details-wrapper{grid-template-columns:1fr}.pie-chart-container{padding-top:1.5rem;border-top:1px solid var(--border-color)}}@media(max-width:480px){.calculator-form{grid-template-columns:1fr;grid-template-areas:"from" "to" "wind" "actions"}}
