:root{--primary-bg:#fff;--secondary-bg:#f7f7f7;--shadow:0 8px 30px #0000001f;--border-radius-lg:16px;--border-radius-md:12px;--border-radius-sm:8px;--text-color:#333;--accent-color:#007bff;--danger-color:#dc3545;--pro-ease:cubic-bezier(0.4,0,0.2,1)}body,html{background-color:#eef2f5;font-family:Inter,sans-serif;margin:0;overflow:hidden;padding:0}#root,body,html{height:100%;width:100%}*{box-sizing:border-box}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-80px)}to{opacity:1;transform:translate(-50%)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pulse-fade{0%{stroke-opacity:.8;stroke-width:5}to{stroke-opacity:0;stroke-width:15}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.app-container{height:100%;position:relative;width:100%}.map-container{height:100%;width:100%;z-index:1}.shape-drawn-animation{animation:pulse-fade .75s var(--pro-ease)}.leaflet-control-container{display:none}.top-bar{align-items:center;animation:slideDown .6s var(--pro-ease) forwards;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#ffffff4d;border:1px solid #ffffff2e;border-radius:var(--border-radius-md);box-shadow:0 8px 32px 0 #1f26871a;display:flex;gap:12px;left:50%;padding:10px 20px;position:absolute;top:20px;transform:translateX(-50%);z-index:1000}.logo{color:var(--text-color);font-size:1.2rem;font-weight:700}.search-container{align-items:center;display:flex;position:relative}.search-container i{color:#888;left:14px;pointer-events:none;position:absolute;transition:opacity .3s ease}#search-input:not(:placeholder-shown)+i{opacity:0}#search-input{background-color:initial;border:1px solid #0000001a;border-radius:var(--border-radius-sm);color:var(--text-color);font-size:1rem;outline:none;padding:8px 12px 8px 38px;transition:width .4s var(--pro-ease),background-color .3s ease;width:150px}#search-input::placeholder{color:#555;transition:color .3s ease}#search-input:focus::placeholder{color:#999}#search-input:focus,.top-bar:hover #search-input{background-color:#ffffff4d;width:300px}.custom-layer-control{animation:fadeIn .5s ease forwards;animation-delay:.4s;background-color:var(--primary-bg);border-radius:var(--border-radius-md);box-shadow:var(--shadow);display:flex;opacity:0;overflow:hidden;position:absolute;right:20px;top:20px;z-index:1000}.layer-btn{background-color:initial;border:none;color:#888;cursor:pointer;font-size:1.1rem;padding:10px 15px;transition:background-color .2s ease,color .2s ease}.layer-btn:hover{background-color:var(--secondary-bg)}.layer-btn.active{background-color:var(--accent-color);color:#fff}.activator-icon{align-items:center;animation:scaleUp .5s var(--pro-ease) forwards;background-color:var(--primary-bg);border:none;border-radius:50%;bottom:30px;box-shadow:var(--shadow);color:var(--text-color);cursor:pointer;display:flex;font-size:1.5rem;height:56px;justify-content:center;opacity:0;position:absolute;transition:transform .2s ease,box-shadow .2s ease;width:56px;z-index:1000}#toolbar-activator{animation-delay:.2s;left:30px}#chatbot-activator{animation-delay:.3s;right:30px}#dashboard-activator{animation-delay:.4s}.activator-icon:hover{box-shadow:0 12px 35px #00000026;transform:scale(1.1)}.toolbar-container{background-color:var(--primary-bg);border-radius:var(--border-radius-md);bottom:100px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;left:30px;padding:8px;position:absolute;transform-origin:bottom left;transition:transform .4s var(--pro-ease),opacity .3s var(--pro-ease);z-index:1000}.toolbar-container.hidden{opacity:0;pointer-events:none;transform:scale(.8)}.toolbar-container .tool-button{opacity:0;transform:translateY(20px);transition:transform .3s var(--pro-ease),opacity .2s var(--pro-ease)}.toolbar-container:not(.hidden) .tool-button{opacity:1;transform:translateY(0)}.toolbar-container:not(.hidden) .main-tools>:first-child{transition-delay:.05s}.toolbar-container:not(.hidden) .main-tools>:nth-child(2){transition-delay:.1s}.toolbar-container:not(.hidden) .main-tools>:nth-child(3){transition-delay:.15s}.toolbar-container:not(.hidden) .main-tools>:nth-child(4){transition-delay:.2s}.contextual-actions{display:flex;flex-direction:column;gap:8px;max-height:0;opacity:0;overflow:hidden;transition:opacity .3s ease,max-height .4s ease,margin-top .4s ease,padding-top .4s ease}.contextual-actions.visible{border-top:1px solid #eee;margin-top:8px;max-height:250px;opacity:1;padding-top:8px}.tool-button{align-items:center;background-color:var(--secondary-bg);border:none;border-radius:var(--border-radius-sm);color:#555;cursor:pointer;display:flex;font-size:1.2rem;height:48px;justify-content:center;position:relative;transition:background-color .2s ease,color .2s ease;width:48px}.tool-button:disabled{cursor:not-allowed;opacity:.5}.tool-button:hover:not(:disabled){background-color:#e0e0e0}.tool-button.active{background-color:var(--accent-color);color:#fff}#clear-all-tool:hover:not(:disabled){background-color:#f8d7da;color:var(--danger-color)}.shapes-menu{background-color:var(--primary-bg);border-radius:var(--border-radius-md);box-shadow:var(--shadow);display:flex;flex-direction:row;gap:8px;left:115%;padding:8px;position:absolute;top:50%;transform:translateY(-50%);transform-origin:left center;transition:transform .3s var(--pro-ease),opacity .3s var(--pro-ease)}.shapes-menu.hidden{opacity:0;pointer-events:none;transform:scaleX(.9) translateY(-50%)}.chatbot-container{background-color:var(--primary-bg);border-radius:var(--border-radius-lg);bottom:100px;box-shadow:var(--shadow);display:flex;flex-direction:column;height:500px;max-height:calc(100vh - 130px);max-width:calc(100vw - 60px);position:absolute;right:30px;transform-origin:bottom right;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;width:380px;z-index:2000}.chatbot-container.hidden{opacity:0;pointer-events:none;transform:scale(0)}.chat-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:15px 20px}.chat-header .title{font-size:1.1rem;font-weight:700}.chat-header .close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:1.2rem}.chat-body{display:flex;flex-direction:column;flex-grow:1;gap:15px;overflow-y:auto;padding:20px}.chat-message{border-radius:var(--border-radius-lg);line-height:1.5;max-width:80%;padding:10px 15px;white-space:pre-wrap}.user-message{align-self:flex-end;background-color:var(--accent-color);border-bottom-right-radius:4px;color:#fff}.ai-message{align-self:flex-start;background-color:var(--secondary-bg);border-bottom-left-radius:4px;color:var(--text-color)}.loading-indicator{align-self:flex-start;display:flex;gap:5px;padding:10px 15px}.loading-indicator span{animation:bounce 1.4s ease-in-out infinite both;background-color:#ccc;border-radius:50%;height:8px;width:8px}.loading-indicator span:first-child{animation-delay:-.32s}.loading-indicator span:nth-child(2){animation-delay:-.16s}.chat-input-area{border-top:1px solid #eee;padding:15px}#chat-input{background-color:var(--secondary-bg);border:none;border-radius:var(--border-radius-md);box-sizing:border-box;font-size:1rem;outline:none;padding:12px 15px;width:100%}.loading-overlay{align-items:center;background-color:#0009;color:#fff;display:flex;flex-direction:column;font-size:1.2rem;height:100%;justify-content:center;left:0;opacity:0;padding:20px;pointer-events:none;position:fixed;text-align:center;top:0;transition:opacity .3s var(--pro-ease);width:100%;z-index:4000}.loading-overlay:not(.hidden){opacity:1;pointer-events:auto}.spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:40px;margin-bottom:15px;width:40px}.loading-text{font-weight:500}.analysis-legend{background-color:var(--primary-bg);border-radius:var(--border-radius-md);bottom:30px;box-shadow:var(--shadow);font-size:.9rem;padding:15px;position:absolute;right:100px;transform-origin:bottom right;transition:opacity .3s ease,transform .3s ease;z-index:1000}.analysis-legend.hidden{opacity:0;pointer-events:none;transform:scale(.9)}.analysis-legend h4{border-bottom:1px solid #eee;font-size:1rem;margin:0 0 10px;padding-bottom:8px}.legend-item{align-items:center;display:flex;margin-bottom:5px}.legend-color-box{border:1px solid #0000001a;border-radius:4px;height:16px;margin-right:10px;width:16px}#legend-close-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:1rem;position:absolute;right:5px;top:5px}.dashboard-overlay{align-items:flex-end;background:none;border-radius:var(--border-radius-lg);bottom:100px;display:flex;height:580px;justify-content:flex-start;left:30px;max-height:calc(100vh - 130px);max-width:calc(100vw - 60px);opacity:0;overflow:hidden;pointer-events:none;position:fixed;transition:opacity .3s ease;width:480px;z-index:5000}.dashboard-overlay:not(.hidden){opacity:1;pointer-events:auto}.dashboard-container{animation:slideInFromLeft .4s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#ffffffd9;border:1px solid #ffffff2e;border-radius:var(--border-radius-lg);box-shadow:0 8px 32px 0 #1f26875e;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}.dashboard-header{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#667eeacc,#764ba2cc);border-bottom:1px solid #ffffff4d;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;color:#fff;display:flex;justify-content:space-between;padding:15px 20px}.dashboard-header h2{font-size:1.4rem;font-weight:700;margin:0}.dashboard-close-btn{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.dashboard-close-btn:hover{background:#ffffff59;box-shadow:0 4px 15px #ffffff4d;transform:scale(1.1) rotate(90deg)}.dashboard-body{flex:1 1;max-height:calc(100vh - 180px);overflow-y:auto;padding:20px}.dashboard-section{margin-bottom:30px}.dashboard-section h3{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(135deg,#667eea1a,#764ba21a);border-left:3px solid #667eea;border-radius:8px;color:#2c3e50;font-size:1.2rem;margin-bottom:15px;padding:10px 15px}.suitability-card{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:var(--border-radius-md);display:flex;gap:20px;padding:20px}.score-circle-container{flex-shrink:0;height:100px;position:relative;width:100px}.score-circle{height:100%;transform:rotate(-90deg);width:100%}.score-text{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.score-value{color:#2c3e50;font-size:1.8rem;font-weight:700}.score-max{color:#7f8c8d;font-size:1rem}.score-level{color:#7f8c8d;font-size:.9rem;margin-top:3px;text-transform:capitalize}.score-summary{color:#2c3e50;flex:1 1;font-size:1rem;line-height:1.4;margin:0}.summary-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.summary-card{background:#fff;border-radius:var(--border-radius-sm);box-shadow:0 2px 10px #0000001a;padding:15px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.summary-card:hover{box-shadow:0 4px 15px #00000026;transform:translateY(-3px)}.summary-card.alert{background:linear-gradient(135deg,#ffeaa7,#fdcb6e)}.summary-icon{font-size:1.8rem;margin-bottom:8px}.summary-value{color:#2c3e50;font-size:1.8rem;font-weight:700;margin-bottom:3px}.summary-label{color:#7f8c8d;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.risks-list{grid-gap:12px;display:grid;gap:12px}.risk-card{background:#fff;border-left:3px solid #dc3545;border-radius:var(--border-radius-sm);box-shadow:0 2px 8px #00000014;padding:15px;transition:transform .2s ease,box-shadow .2s ease}.risk-card:hover{box-shadow:0 3px 15px #0000001f;transform:translateX(3px)}.risk-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.risk-severity-badge{border-radius:15px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase}.risk-header h4{color:#2c3e50;font-size:1rem;margin:0}.risk-impact{color:#555;font-size:.9rem;line-height:1.4;margin:8px 0}.risk-meta{color:#7f8c8d;display:flex;font-size:.8rem;gap:15px;margin-top:8px}.recommendations-list{grid-gap:12px;display:grid;gap:12px}.recommendation-card{background:#fff;border-left:3px solid #28a745;border-radius:var(--border-radius-sm);box-shadow:0 2px 8px #00000014;padding:15px;transition:transform .2s ease,box-shadow .2s ease}.recommendation-card:hover{box-shadow:0 3px 15px #0000001f;transform:translateX(3px)}.rec-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.rec-priority-badge{border-radius:15px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase}.rec-meta{display:flex;font-size:.75rem;gap:10px}.rec-cost{color:#e74c3c;font-weight:600}.rec-effort{color:#7f8c8d}.rec-action{color:#2c3e50;font-size:1rem;font-weight:600;line-height:1.4;margin:8px 0}.rec-impact,.rec-timeframe{color:#555;font-size:.85rem;line-height:1.3;margin:6px 0}.metrics-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.metric-card{background:#fff;border-radius:var(--border-radius-sm);box-shadow:0 2px 10px #0000001a;padding:15px;text-align:center;transition:transform .2s ease}.metric-card:hover{transform:translateY(-3px)}.metric-icon{font-size:2rem;margin-bottom:8px}.metric-card h4{color:#2c3e50;font-size:1rem;margin:8px 0}.metric-value{color:#667eea;font-size:1.8rem;font-weight:700;margin:10px 0}.metric-assessment,.metric-range,.metric-trend{color:#7f8c8d;font-size:.8rem;margin:5px 0}.findings-list{grid-gap:12px;display:grid;gap:12px}.finding-card{background:#fff;border-left:3px solid #3498db;border-radius:var(--border-radius-sm);box-shadow:0 2px 8px #00000014;padding:15px}.finding-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.finding-category{background-color:#3498db;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:3px 8px;text-transform:capitalize}.finding-confidence{color:#7f8c8d;font-size:.8rem}.finding-text{color:#2c3e50;font-size:.9rem;line-height:1.4;margin:8px 0 0}@media (max-width:768px){.dashboard-overlay{bottom:30px;height:500px;left:10px;right:10px;width:auto}.suitability-card{flex-direction:column;gap:15px;text-align:center}.score-circle-container{height:80px;width:80px}.score-value{font-size:1.5rem}.metrics-grid,.summary-grid{grid-template-columns:1fr}.dashboard-header h2{font-size:1.2rem}}@media (max-width:600px){.dashboard-overlay{bottom:10px;height:450px;left:5px;right:5px}.dashboard-body{padding:15px}.dashboard-section{margin-bottom:20px}}.modal-container{align-items:center;background-color:#0006;display:flex;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .3s var(--pro-ease);width:100%;z-index:3000}.modal-container:not(.hidden){opacity:1;pointer-events:auto}.modal-content{background-color:var(--primary-bg);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);padding:25px;transform:scale(.95);transition:transform .3s var(--pro-ease);width:320px}.modal-container:not(.hidden) .modal-content{transform:scale(1)}.modal-content h3{color:var(--text-color);margin-bottom:8px;margin-top:0}.modal-content p{color:#666;font-size:.9rem;margin-bottom:20px;margin-top:0}.modal-input{border:1px solid #ddd;border-radius:var(--border-radius-sm);box-sizing:border-box;font-size:1rem;margin-bottom:20px;padding:10px;width:100%}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions button{border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .2s ease}.modal-cancel-btn{background-color:var(--secondary-bg);color:var(--text-color)}.modal-cancel-btn:hover{background-color:#e0e0e0}.modal-confirm-btn{background-color:var(--accent-color);color:#fff}.modal-confirm-btn:hover{background-color:#0056b3}#clear-confirm-btn{background-color:var(--danger-color)}#clear-confirm-btn:hover{background-color:#c82333}
/*# sourceMappingURL=main.600e59f8.css.map*/