:root{--primary-color:#007bff;--primary-hover:#0056b3;--secondary-color:#6c757d;--background-color:#f8f9fa;--panel-background:#ffffff;--text-color:#333;--border-color:#dee2e6;--success-color:#28a745;--error-color:#dc3545;--edificio-color:#dc3545;--construccion-color:#007bff;--font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}*{box-sizing:border-box}html{overflow-y:scroll}body{font-family:var(--font-family);margin:0;background-color:var(--background-color);color:var(--text-color);line-height:1.6;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.container{max-width:1200px;margin:0 auto;padding:0 20px}.hidden{display:none!important}#info-box #polygon-details-container,#info-box #total-summary-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:5px;font-weight:700;font-size:.9rem}.form-group input{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:5px}.panel-controls [id$="-data-form"]{display:flex;flex-direction:column;gap:15px}#cadastral-ref,#edificio-cadastral-ref,#local-id,.panel-controls [id$="-data-form"] input[type=number],.panel-controls [id$="-data-form"] input[type=text],.panel-controls [id$="-data-form"] select{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:5px}.panel-controls [id$="-data-form"] label{font-weight:700;font-size:.9rem;margin-bottom:-10px}.terms-acceptance{font-size:.75rem!important;color:var(--secondary-color)!important;text-align:center;margin:8px 0 0!important;line-height:1.3}.terms-acceptance a{color:var(--secondary-color);text-decoration:underline}.terms-acceptance a:hover{color:var(--primary-color)}.form-btn{width:100%;padding:12px;font-size:1.1rem;color:#fff;border:none;border-radius:5px;cursor:pointer;background-color:var(--secondary-color);transition:background-color .3s}.form-btn.primary{background-color:var(--success-color)}.form-btn.blue{background-color:var(--primary-color)}.form-btn:hover{background-color:#5a6268}.form-btn.primary:hover{background-color:#218838}.form-btn.blue:hover{background-color:var(--primary-hover)}.form-btn.save-ready{background-color:var(--success-color);transition:.3s}.form-btn.save-ready:hover{background-color:#218838}.form-btn.danger{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color)}.form-btn.danger:hover:not(:disabled){background-color:#c82333;border-color:#bd2130}.form-btn.danger:disabled{background-color:#ccc;border-color:#ccc;cursor:not-allowed}.form-btn:disabled{opacity:.8;cursor:not-allowed}.form-btn:disabled:hover{background-color:var(--secondary-color)!important}.form-btn.primary:disabled:hover{background-color:var(--success-color)!important}.form-btn.blue:disabled:hover{background-color:var(--primary-color)!important}.form-btn .btn-loader{display:inline-flex;align-items:center;gap:8px}.form-btn .btn-loader i{animation:1s linear infinite spin}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.form-btn-tertiary{background:0 0;border:1px solid var(--border-color);color:var(--secondary-color);padding:10px 20px;border-radius:5px;cursor:pointer;transition:.2s}.form-btn-tertiary:hover{background-color:#f8f9fa;border-color:#a0a0a0}.social-btn{width:100%;padding:12px;border-radius:5px;border:1px solid var(--border-color);background:#fff;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:10px;transition:.3s}.social-btn:hover{border-color:#333}button#generate-gml-btn,button#visualize-gml-btn{width:100%;padding:12px;font-size:1.1rem;background-color:var(--success-color);color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s}button#generate-gml-btn:hover:not(:disabled),button#visualize-gml-btn:hover:not(:disabled){background-color:#218838}button#generate-gml-btn:disabled,button#visualize-gml-btn:disabled{background-color:#a9a9a9;cursor:not-allowed}.input-with-button{display:flex;align-items:center}.input-with-button input[type=number],.input-with-button input[type=text]{flex-grow:1;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.input-with-button button{padding:8px 12px;background-color:var(--secondary-color);color:#fff;border:1px solid var(--secondary-color);border-top-right-radius:5px;border-bottom-right-radius:5px;cursor:pointer;transition:background-color .3s;height:40px}.input-with-button button:hover:not(:disabled){background-color:#5a6268}.input-with-button button:disabled{background-color:#a9a9a9;border-color:#a9a9a9;cursor:not-allowed}.form-group.checkbox-group{margin-bottom:1.5rem}.checkbox-label{display:flex;align-items:flex-start;font-weight:400;font-size:.9rem;line-height:1.4;cursor:pointer;margin-bottom:0}.checkbox-label input[type=checkbox]{width:auto;margin-right:10px;margin-top:2px;flex-shrink:0}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.main-switch-container,.switch-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 0;background-color:#f8f9fa;padding:10px;border-radius:5px}.main-switch-container{background-color:#e9ecef;margin-bottom:20px;gap:15px}.main-switch-container .switch-label{font-weight:700;cursor:pointer;transition:color .3s}.main-switch-container .switch-label.active{color:var(--primary-color)}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--secondary-color);transition:.4s}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--primary-color)}input:focus+.slider{box-shadow:0 0 1px var(--primary-color)}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.support-form{max-width:100%}.support-form .form-group{margin-bottom:1.5rem}.support-form label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.support-form .required{color:var(--error-color);font-weight:400}.support-form input[type=text],.support-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;font-family:var(--font-family);background-color:var(--panel-background);color:var(--text-color);transition:border-color .2s,box-shadow .2s}.support-form input[type=text]:focus,.support-form textarea:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(0,123,255,.1)}.support-form textarea{resize:vertical;min-height:120px}.support-form .form-btn{margin-top:1rem;min-width:160px}.support-form .optional-label{color:#999;font-weight:400;font-size:.9rem}.support-form .file-upload-info{margin:.5rem 0}.support-form .info-text{background:#f0f8ff;border-left:3px solid var(--primary-color);padding:.75rem;margin:.5rem 0;font-size:.9rem;color:#555;border-radius:4px;display:flex;align-items:flex-start;gap:.5rem}.support-form .info-text i{color:var(--primary-color);margin-top:2px;flex-shrink:0}.support-form input[type=file]{display:none}.support-form .file-upload-wrapper{position:relative;display:inline-block;width:100%}.support-form .file-upload-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background-color:#f8f9fa;border:2px dashed var(--border-color);border-radius:6px;color:var(--text-color);font-size:.95rem;font-weight:500;cursor:pointer;transition:.2s;width:100%;justify-content:center}.support-form .file-upload-button:hover{border-color:var(--primary-color);background-color:rgba(0,123,255,.05);color:var(--primary-color)}.support-form .file-upload-button i{font-size:1.1rem}.attachments-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.attachment-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--panel-background);border:1px solid var(--border-color);border-radius:4px;font-size:.9rem}.attachment-item i{color:var(--primary-color)}.attachment-item .file-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-item .file-size{color:#999;font-size:.85rem}.attachment-item .remove-attachment{background:0 0;border:none;color:var(--error-color);cursor:pointer;padding:.25rem .5rem;font-size:1rem}.attachment-item .remove-attachment:hover{color:#c00}.support-message-result{margin-top:1.5rem;padding:1rem;border-radius:6px;font-weight:500}.support-message-result.success{background-color:rgba(40,167,69,.1);border:1px solid rgba(40,167,69,.3);color:var(--success-color)}.support-message-result.error{background-color:rgba(220,53,69,.1);border:1px solid rgba(220,53,69,.3);color:var(--error-color)}.support-message-result.loading{background-color:rgba(0,123,255,.1);border:1px solid rgba(0,123,255,.3);color:var(--primary-color)}.form-group input.valid{border-color:var(--success-color);box-shadow:0 0 0 2px rgba(40,167,69,.25)}.form-group input.invalid{border-color:var(--error-color);box-shadow:0 0 0 2px rgba(220,53,69,.25)}.nif-error{color:var(--error-color)!important;font-size:.9em!important;margin-top:5px!important;display:block!important}.delete-error{color:var(--error-color);font-size:.85rem;margin-top:5px}.error{color:var(--error-color);font-weight:700;margin-top:1rem}.consent-banner-actions .form-btn,.consent-banner-actions .form-btn-tertiary{padding:8px 16px;font-size:.9rem;font-weight:600;border:1px solid transparent}#consent-accept.form-btn.primary{background-color:var(--primary-color);border-color:var(--primary-color)}#consent-accept.form-btn.primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}#consent-reject.form-btn{background-color:#f8f9fa;color:var(--secondary-color);border-color:var(--border-color)}#consent-reject.form-btn:hover{background-color:#e9ecef;border-color:#ced4da}main{padding:2rem 0}.content-wrapper{display:flex;gap:2rem;align-items:flex-start;margin-top:2rem}.panel-controls{flex:0 0 408px;width:100%;max-width:408px;background:var(--panel-background);padding:0;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,.05);background:var(--panel-background)}.panel-viewer{flex:2;min-width:0}h2{color:var(--primary-color);margin-top:0;border-bottom:2px solid var(--primary-color);padding-bottom:10px}p{color:#666;font-size:.9rem}hr{border:0;border-top:1px solid var(--border-color);margin:2rem 0}header{background-color:var(--panel-background);box-shadow:0 2px 4px rgba(0,0,0,.1);padding:1rem 0;border-bottom:1px solid var(--border-color)}header .container{display:flex;justify-content:space-between;align-items:center}header .logo h1{margin:0;color:var(--primary-color);font-size:1.5rem}#logo-img{height:45px;width:auto;display:block}header nav a{margin-left:15px;text-decoration:none;color:var(--secondary-color);padding:8px 12px;border-radius:5px;transition:.3s}header nav .placeholder-link:hover{color:var(--primary-color);background-color:#e9ecef}header nav .placeholder-link-primary{display:inline-flex;align-items:center;background-color:var(--primary-color);color:#fff;padding:8px 12px;border-radius:5px;font-weight:500;font-size:.9rem;white-space:nowrap;transition:.3s}header nav .placeholder-link-primary:hover{background-color:var(--primary-hover);color:#fff}.profile-button{display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--primary-color);color:var(--primary-color);padding:8px 12px;border-radius:5px;text-decoration:none;font-weight:500;font-size:.9rem;transition:.3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.profile-button:hover{background:var(--primary-color);color:#fff;text-decoration:none!important}.profile-button:hover .user-name{color:#fff;text-decoration:none!important}.profile-button:hover i{color:#fff}.profile-button i{flex-shrink:0;font-size:.9rem}.profile-button .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}footer{text-align:center;padding:2rem 0;margin-top:2rem;background-color:#e9ecef;color:var(--secondary-color);font-size:.9rem;border-top:1px solid var(--border-color)}.footer-links{margin-bottom:1rem}.footer-links a{color:var(--secondary-color);text-decoration:none;margin:0 10px}.footer-links a:hover{color:var(--primary-color);text-decoration:underline}footer p{margin:0}.login-container{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:900px;margin:2rem auto}.profile-container{display:flex;gap:2rem;align-items:flex-start;margin-top:2rem}.panel-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.info-box-header h3{padding:2px 15px 15px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-header h4{margin:0;color:var(--text-color)}@media (max-width:768px){.content-wrapper{flex-direction:column;margin-top:1rem}.panel-controls,.panel-viewer{width:100%}.panel-controls{flex:1 1 auto;max-width:100%;width:100%}.login-container{grid-template-columns:1fr}.profile-container{flex-direction:column;gap:1.5rem}.info-box-header{flex-direction:column;align-items:flex-start;gap:10px}.panel-header{flex-direction:column;align-items:flex-start}header nav{flex-shrink:1;min-width:0;overflow:hidden}header .container{gap:10px}#user-display-name{display:inline-block;max-width:150px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-button{max-width:120px;font-size:.8rem;padding:6px 8px;gap:4px;flex-shrink:1;min-width:0}.profile-button i{font-size:.8rem}header nav .placeholder-link-primary{font-size:.9rem;padding:6px 11px;max-width:120px}#logo-img{height:40px}}@media print{body,html{background:#fff}#generate-gml-btn,.info-actions,.panel-controls,footer,header{display:none}.content-wrapper{flex-direction:column;margin-top:0}.panel-viewer{width:100%;box-shadow:none;border:none}.container{max-width:none;padding:0}.app-version-note,.panel-controls,.workflow-header,header nav{display:none!important}}.gml-files-list{margin-top:1rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--panel-background);max-height:300px;overflow-y:auto}.gml-file-item{display:flex;align-items:center;padding:.75rem;border-bottom:1px solid var(--border-color);transition:background-color .2s}.gml-file-item:last-child{border-bottom:none}.gml-file-item:hover{background-color:#f8f9fa}.gml-file-item.hidden-layer{opacity:.6;background-color:#f5f5f5}.gml-file-info{flex:1;min-width:0}.gml-file-name{font-weight:500;color:var(--text-color);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gml-file-details{font-size:.85rem;color:var(--secondary-color)}.gml-file-controls{display:flex;gap:.5rem;margin-left:1rem;align-items:center}.gml-version-badge{display:inline-block;padding:.25rem .5rem;background-color:transparent;color:#4a4a4a;font-size:.75rem;font-weight:600;border:1.5px solid #4a4a4a;border-radius:4px;letter-spacing:.5px}.gml-version-badge.sanitized-badge{background-color:#ff9800;color:#fff;border:1.5px solid #ff9800;cursor:pointer;transition:.2s}.gml-version-badge.sanitized-badge:hover{background-color:#f57c00;border-color:#f57c00;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.2)}.gml-version-badge.sanitized-badge i{margin-right:.25rem}.gml-control-btn{padding:.5rem;border:none;border-radius:4px;cursor:pointer;transition:.2s;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.gml-control-btn:hover{transform:translateY(-1px)}.gml-control-btn.visibility-btn{background-color:var(--primary-color);color:#fff}.gml-control-btn.visibility-btn:hover{background-color:var(--primary-hover)}.gml-control-btn.visibility-btn.hidden-layer{background-color:var(--secondary-color)}.gml-control-btn.convert-btn{background-color:#28a745;color:#fff}.gml-control-btn.convert-btn:hover{background-color:#218838}.gml-control-btn.remove-btn{background-color:var(--error-color);color:#fff}.gml-control-btn.remove-btn:hover{background-color:#c82333}.file-navigation-top{display:flex;align-items:center;justify-content:space-between;background-color:#f8f9fa;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:.75rem 1rem;margin:0 -1.5rem 1rem}.file-info{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1;min-width:0;padding:0 1rem}#file-name-display{font-weight:500;color:var(--text-color);font-size:.9rem;display:flex;align-items:center;gap:.5rem;width:100%;overflow:hidden;justify-content:center}.file-name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;max-width:100%}.file-identifier{margin-left:.5rem;padding:.25rem .5rem;background-color:var(--primary-color);color:#fff;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap;cursor:help}#file-counter{font-size:.8rem;color:var(--secondary-color);white-space:nowrap}.nav-btn{background-color:#fff;border:1px solid var(--border-color);cursor:pointer;padding:.5rem;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:.2s;color:var(--secondary-color);box-shadow:0 1px 2px rgba(0,0,0,.1);flex-shrink:0}.nav-btn:hover:not(:disabled){background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.15)}.nav-btn:disabled{opacity:.5;cursor:not-allowed;background-color:#f5f5f5}.nav-btn:disabled:hover{transform:none;box-shadow:0 1px 2px rgba(0,0,0,.1)}.drop-area{border:2px dashed var(--border-color);padding:2rem;text-align:center;border-radius:8px;transition:background-color .3s,border-color .3s}.drop-area.highlight{background-color:#e9f5ff;border-color:var(--primary-color)}.file-label{display:inline-block;padding:10px 20px;background-color:var(--secondary-color);color:#fff;border-radius:5px;cursor:pointer;transition:background-color .3s}.file-label:hover{background-color:#5a6268}.file-name{margin-top:10px;font-style:italic;color:var(--primary-color)}#parcela-drop-area{border-color:var(--success-color)}#parcela-drop-area .file-label{background-color:var(--success-color)}#parcela-drop-area .file-label:hover{background-color:#218838}#parcela-drop-area.highlight{background-color:#d4edda;border-color:var(--success-color)}#parcela-drop-area .file-name{color:var(--success-color)}#edificio-workflow,#parcela-workflow{display:flex;flex-direction:column}#edificio-workflow>p:first-child,#parcela-workflow>p:first-child{margin-top:0;margin-bottom:15px}#edificio-drop-area{margin-bottom:15px}.drop-area-edificio{border-color:var(--edificio-color)}.drop-area-edificio .file-label{background-color:var(--edificio-color)}.drop-area-edificio .file-label:hover{background-color:#c82333}.drop-area-edificio.highlight{background-color:#f8d7da;border-color:var(--edificio-color)}.drop-area-edificio .file-name{color:var(--edificio-color)}.drop-area-construccion{border-color:var(--construccion-color)}.drop-area-construccion .file-label{background-color:var(--construccion-color)}.drop-area-construccion .file-label:hover{background-color:var(--primary-hover)}.drop-area-construccion.highlight{background-color:#e9f5ff;border-color:var(--construccion-color)}.drop-area-construccion .file-name{color:var(--construccion-color)}.support-link{color:var(--primary-color);text-decoration:none;transition:color .2s}.support-link:hover{color:var(--primary-hover);text-decoration:underline}.login-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10000;backdrop-filter:blur(3px)}.login-modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:400px;width:90%;position:relative;box-shadow:0 10px 30px rgba(0,0,0,.3);text-align:center;animation:.3s ease-out modalSlideIn}@keyframes modalSlideIn{from{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.close-modal-btn{position:absolute;top:15px;right:20px;background:0 0;border:none;font-size:24px;cursor:pointer;color:var(--secondary-color);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:.2s}.close-modal-btn:hover{background-color:#f8f9fa;color:var(--text-color)}.login-modal-header{margin-bottom:1.5rem}.login-modal-header i{font-size:3rem;color:var(--primary-color);margin-bottom:1rem}.login-modal-header h3{margin:0;color:var(--text-color);font-size:1.3rem}.beta-badge{display:inline-block!important;background:linear-gradient(135deg,#667eea 0,#764ba2 100%)!important;color:#fff!important;font-size:.65rem!important;font-weight:700!important;padding:.25rem .5rem!important;border-radius:4px!important;margin-left:.5rem!important;vertical-align:middle!important;text-transform:uppercase!important;letter-spacing:.5px!important;box-shadow:0 2px 4px rgba(102,126,234,.3)!important}.login-modal-content p{color:var(--secondary-color);margin-bottom:2rem;line-height:1.5}#sanitization-modal-message{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;text-align:left}#sanitization-modal-message strong{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;display:inline-block;max-width:100%}.login-modal-actions{display:flex;gap:1rem;justify-content:center}.login-modal-btn{padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:.2s;cursor:pointer;border:none;font-size:1rem;min-width:100px}.login-modal-btn.primary{background-color:var(--primary-color);color:#fff}.login-modal-btn.primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.login-modal-btn.secondary{background-color:#f8f9fa;color:var(--secondary-color);border:1px solid var(--border-color)}.login-modal-btn.secondary:hover{background-color:#e9ecef}.modal-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}@media (max-width:480px){.modal-actions{flex-direction:column;gap:.75rem}}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:1;transition:opacity .3s}.modal-backdrop.hidden{opacity:0;pointer-events:none}.modal-content{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.3);width:100%;max-width:450px;position:relative}#info-box{margin-top:1rem;padding:1.5rem;background:var(--panel-background);border:1px solid var(--border-color);border-radius:8px}#info-box h3{margin-top:0;color:var(--primary-color);border-bottom:1px solid var(--border-color);padding-bottom:10px;margin-bottom:15px}.info-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px}.info-summary>div{background:#f8f9fa;padding:10px;border-radius:5px;border:1px solid var(--border-color)}.info-actions{display:flex;gap:10px;margin-bottom:20px;width:100%;padding:15px 15px 0;border-top:1px solid var(--border-color)}.info-actions button{flex:1;padding:10px 15px;font-size:.9rem;background-color:var(--secondary-color);color:#fff;border:none;border-radius:5px;cursor:pointer;transition:.3s;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.info-actions button:hover{background-color:#5a6268;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.info-actions button#print-btn{background:linear-gradient(135deg,#007bff 0,#0056b3 100%);font-weight:600;box-shadow:0 2px 6px rgba(0,123,255,.3)}.info-actions button#print-btn:hover{background:linear-gradient(135deg,#0056b3 0,#004085 100%);box-shadow:0 4px 12px rgba(0,123,255,.4);transform:translateY(-2px)}.coordinates-table-container{max-height:250px;overflow-y:auto;border:1px solid var(--border-color);border-radius:5px}.coordinates-table-container table tr.section-header{background-color:#e3f2fd;font-weight:700}.coordinates-table-container table tr.section-header td{padding:8px;text-align:center;color:#1976d2;border-top:2px solid #1976d2}.info-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;padding-bottom:0;border-bottom:none}.info-box-header h3{margin:0!important;padding:2x 15px 15px;border:none!important;border-bottom:none!important}#total-summary-container .info-summary{margin-bottom:20px}.info-summary.optional-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.polygon-detail-block{margin-bottom:20px;padding:15px;border:1px solid #e9ecef;border-radius:8px;background-color:#f8f9fa}.polygon-detail-block h4{margin-top:0;color:var(--primary-color)}table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-color)}thead th{background-color:#e9ecef;position:sticky;top:0}tbody tr:nth-child(2n){background-color:#f8f9fa}tbody tr:hover{background-color:#e9f5ff}#gml-table th{cursor:pointer}#gml-table button{background:0 0;border:none;color:var(--primary-color);cursor:pointer}@media (max-width:768px){.info-summary.optional-fields{grid-template-columns:1fr}.file-info{padding:0 .5rem}#file-name-display{font-size:.85rem}.file-navigation{padding:.5rem .75rem}.nav-btn{width:32px;height:32px;padding:.4rem;flex-shrink:0}}@media (max-width:480px){.file-info{padding:0 .25rem}#file-name-display{font-size:.8rem;gap:.3rem;flex-wrap:wrap}.file-identifier{font-size:.65rem;padding:.35rem .5rem;margin-left:0;margin-top:.25rem;flex-basis:100%;display:flex;align-items:center;justify-content:center;line-height:1.2}.nav-btn{width:28px;height:28px}.login-modal-content{padding:1.5rem;margin:1rem}.login-modal-actions{flex-direction:column}.login-modal-btn{width:100%}}@media (max-width:768px){.info-box-header{flex-direction:column;align-items:flex-start;gap:10px}.info-actions{flex-direction:column;padding:15px 10px 0;gap:8px}.info-actions button{width:100%;padding:10px 12px;font-size:.85rem}}.purchase-modal{max-width:500px;text-align:center}.purchase-success-icon{font-size:4rem;color:#28a745;margin-bottom:1rem;animation:.5s scaleIn}@keyframes scaleIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.purchase-details{margin:1.5rem 0}.purchase-main-text{font-size:1.1rem;margin-bottom:1.5rem;color:var(--text-color)}.purchase-main-text strong{color:var(--primary-color);font-size:1.2rem}.purchase-info-box{background-color:#f8f9fa;border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin:1rem 0;text-align:left}.purchase-info-box p{margin:.5rem 0;font-size:.95rem}.purchase-info-box strong{color:var(--text-color);margin-right:.5rem}.purchase-invoice-text{font-size:.9rem;color:#6c757d;margin-top:1rem;padding:.75rem;background-color:#e7f3ff;border-left:3px solid #0d6efd;border-radius:4px;text-align:left}.purchase-invoice-text i{margin-right:.5rem;color:#0d6efd}#purchase-ok-btn{margin-top:1rem;min-width:150px}.basemap-switch{position:absolute;top:10px;left:10px;z-index:1000;display:flex;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:3px}.basemap-option{padding:6px 16px;font-size:13px;font-weight:600;color:#666;cursor:pointer;border:none;background:0 0;border-radius:4px;transition:.3s;z-index:1;position:relative;letter-spacing:.5px}.basemap-option:hover{color:#333}.basemap-option.active{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.basemap-switch-slider{position:absolute;background:linear-gradient(135deg,var(--primary-color,#007bff) 0,#0056b3 100%);border-radius:6px;transition:.3s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 4px rgba(0,0,0,.2);top:3px;height:calc(100% - 6px);width:calc(50% - 3px)}.basemap-switch-slider.sat{left:calc(50%)}.basemap-switch-slider.map{left:3px}@media (max-width:768px){.basemap-option{padding:5px 12px;font-size:12px}}.vertex-numbers-toggle{position:absolute;bottom:20px;left:50px;z-index:1000;height:34px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);cursor:pointer;transition:.3s;color:#666;font-size:13px;font-weight:600;white-space:nowrap}.vertex-numbers-toggle:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2);color:#333;transform:scale(1.05)}.vertex-numbers-toggle.active{background:linear-gradient(135deg,var(--primary-color,#007bff) 0,#0056b3 100%);color:#fff}.vertex-numbers-toggle.active:hover{background:linear-gradient(135deg,#0056b3 0,#004085 100%)}.recenter-map-button{position:absolute;bottom:20px;left:155px;z-index:1000;height:34px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);cursor:pointer;transition:.3s;color:#666;font-size:13px;font-weight:600;white-space:nowrap}.recenter-map-button:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2);color:#333;transform:scale(1.05)}.recenter-map-button:active{transform:scale(.95)}.geolocation-button{position:absolute;top:10px;right:10px;z-index:999;width:40px;height:40px;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border:none;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.2);cursor:pointer;color:#333;transition:.2s}.geolocation-button:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2);color:#007bff;transform:scale(1.05)}.geolocation-button:active{transform:scale(.95)}.geolocation-button.loading{pointer-events:none;opacity:.7}.geolocation-button.loading svg{animation:1s linear infinite geolocation-spin}@keyframes geolocation-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.vertex-number-marker{background:0 0!important;border:none!important;pointer-events:auto!important;cursor:pointer!important}.vertex-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:2px solid var(--primary-color,#007bff);border-radius:50%;color:var(--primary-color,#007bff);font-size:11px;font-weight:700;font-family:Arial,sans-serif;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:.2s;pointer-events:auto}.vertex-number:hover{transform:scale(1.2);z-index:10000;box-shadow:0 3px 8px rgba(0,0,0,.35)}.vertex-popup .leaflet-popup-content-wrapper{background:#fff;border-radius:8px;box-shadow:0 3px 14px rgba(0,0,0,.3);padding:8px}.vertex-popup .leaflet-popup-content{margin:8px 12px;line-height:1.6}.vertex-popup .leaflet-popup-tip{background:#fff}.leaflet-bar.leaflet-control-zoom{border:none;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);background:rgba(255,255,255,.95);backdrop-filter:blur(10px);margin-bottom:20px!important;margin-left:10px!important}.leaflet-control-zoom a{background-color:transparent;border-bottom:1px solid rgba(0,0,0,.1);color:#666;font-weight:600;font-size:18px;width:34px;height:34px;line-height:34px;transition:.2s}.leaflet-control-zoom a:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.leaflet-control-zoom a:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-bottom:none}.leaflet-control-zoom a:hover{background-color:rgba(0,123,255,.1);color:var(--primary-color,#007bff)}.leaflet-control-credits{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border:none;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);cursor:pointer;transition:.3s;margin-bottom:5px!important;margin-right:10px!important}.leaflet-control-credits:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2);transform:scale(1.05)}.map-loader{position:absolute;top:10px;right:10px;width:auto;height:auto;background-color:transparent;display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity .5s,visibility .5s;pointer-events:none}.map-loader.hidden{opacity:0;visibility:hidden}.spinner-container{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);padding:6px 12px;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);height:32px}.map-spinner{border:2px solid rgba(0,123,255,.1);border-top:2px solid var(--primary-color);border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin;flex-shrink:0}.spinner-container p{color:#666;font-size:13px;font-weight:100;margin:0;white-space:nowrap;letter-spacing:.3px}@media (max-width:768px){.geolocation-button{display:flex}.spinner-container{padding:5px 10px;height:28px;gap:8px}.spinner-container p{font-size:12px}.map-spinner{width:16px;height:16px}}.blocking-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10000;backdrop-filter:blur(3px)}.blocking-modal-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:400px;width:90%;text-align:center;max-height:80vh;overflow-y:auto;animation:.3s ease-out blocking-modal-slide-in}.blocking-modal-header{margin-bottom:1.5rem}.blocking-modal-icon{font-size:3rem;color:#ffc107;margin-bottom:1rem}.blocking-modal-header h2{margin:0;font-size:1.3rem;color:var(--text-color);font-weight:600}.blocking-modal-body{margin-bottom:2rem}.blocking-modal-body p{margin:0;font-size:1rem;line-height:1.5;color:var(--secondary-color)}.blocking-modal-footer{display:flex;gap:1rem;justify-content:center}.blocking-modal-btn{padding:.75rem 1.5rem;border-radius:8px;border:none;font-size:1rem;font-weight:500;cursor:pointer;transition:.2s;min-width:120px}.blocking-modal-btn.btn-danger{background-color:#dc3545;color:#fff}.blocking-modal-btn.btn-danger:hover{background-color:#c82333;transform:translateY(-1px)}.blocking-modal-btn.btn-primary{background-color:var(--primary-color);color:#fff}.blocking-modal-btn.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.blocking-modal-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}@keyframes blocking-modal-slide-in{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.blocking-modal-content{width:95%;padding:1.5rem;margin:1rem}.blocking-modal-icon{font-size:2.5rem}.blocking-modal-header h2{font-size:1.2rem}.blocking-modal-footer{flex-direction:column}.blocking-modal-btn{width:100%}}.pagination-controls{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;margin-top:1rem;border-top:1px solid var(--border-color);flex-wrap:wrap;gap:1rem}.pagination-group{display:flex;align-items:center;gap:1rem}.pagination-controls button{background-color:var(--primary-color);color:#fff;border:none;padding:8px 16px;font-size:.85rem;border-radius:20px;transition:background-color .2s,transform .2s;cursor:pointer;white-space:nowrap}.pagination-controls button:hover:not(:disabled){background-color:var(--primary-hover);transform:translateY(-2px)}.pagination-controls button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none}.pagination-controls span{font-size:.9rem;color:var(--secondary-color);font-weight:500;min-width:80px;text-align:center}.items-per-page-selector{padding:6px 8px;border:1px solid var(--border-color);border-radius:5px;background:var(--panel-background);color:var(--text-color);font-size:.85rem;cursor:pointer}.items-per-page-selector:focus{outline:0;border-color:var(--primary-color)}@media screen and (max-width:768px){.pagination-controls{flex-direction:column;gap:1rem}}#cookie-banner{position:fixed;bottom:0;left:0;width:100%;background-color:rgba(0,0,0,.85);color:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;z-index:10000;font-size:.9rem;transition:opacity .5s}#cookie-banner p{margin:0;color:#fff}#cookie-banner a{color:#a7d9ff;text-decoration:underline}#cookie-banner button{padding:8px 20px;background-color:var(--primary-color);color:#fff;border:none;border-radius:5px;cursor:pointer;margin-left:20px}#cookie-banner button:hover{background-color:var(--primary-hover)}.consent-banner{position:fixed;bottom:0;left:0;width:100%;background-color:var(--panel-background);box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:10000;transition:transform .3s ease-in-out}.consent-banner.hidden{transform:translateY(100%)}.consent-banner-content{max-width:1200px;margin:0 auto;padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.consent-banner-content p{margin:0;font-size:.9rem;flex-grow:1}.consent-banner-actions{display:flex;gap:10px;flex-shrink:0}.consent-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:10001}.consent-modal-content{background-color:var(--panel-background);padding:2rem;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.3);width:100%;max-width:600px;position:relative}.consent-category{border:1px solid var(--border-color);border-radius:5px;padding:1rem;margin:1.5rem 0}.consent-category-header{display:flex;justify-content:space-between;align-items:center}.consent-category-header h4{margin:0;color:var(--primary-color)}.consent-category-description{font-size:.85rem;margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid #f0f0f0}#consent-save{width:100%;margin-top:1rem}.consent-banner-content p a{color:var(--primary-color);text-decoration:underline;font-weight:600}.consent-banner-content p a:hover{color:var(--primary-hover)}@media (max-width:768px){#cookie-banner{flex-direction:column;text-align:center}#cookie-banner p{margin-bottom:15px}.consent-banner-content{flex-direction:column;text-align:center;padding:1rem}.consent-banner-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}#consent-customize{grid-column:1/-1}.consent-modal-content{width:90%}}#login-btn,#logout-btn{background:0 0;border:none;padding:8px 12px;margin:0;font-family:var(--font-family);font-size:1rem;color:var(--secondary-color);cursor:pointer;border-radius:5px;transition:.3s}#login-btn:hover,#logout-btn:hover{color:var(--primary-color);background-color:#e9ecef}#user-logged-in{display:flex;align-items:center;gap:15px}#user-display-name{font-weight:700;color:var(--text-color)}#user-display-name a{color:var(--text-color);text-decoration:none}#user-display-name a:hover{text-decoration:underline}.form-wrapper{background-color:var(--panel-background);padding:2rem;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05)}#auth-error-message{text-align:center;margin-top:1rem}#auth-message.success{color:var(--success-color)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:1rem}.panel-header h3{margin:0;font-size:1.8rem;color:var(--text-color);font-weight:600}.panel-description{color:var(--secondary-color);margin-bottom:2rem;font-size:.95rem;line-height:1.5}.credits-badge{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#fff9e6 0,#fff3d4 100%);border:2px solid gold;border-radius:25px;padding:.5rem .75rem;box-shadow:0 2px 8px rgba(255,215,0,.2);transition:.3s}.credits-badge:hover{box-shadow:0 4px 12px rgba(255,215,0,.3);transform:translateY(-1px)}.credits-badge i.fa-download{color:#007bff;font-size:1.1rem}.credits-badge span{font-weight:700;font-size:1.2rem;color:var(--primary-color);min-width:30px;text-align:center}.add-credits-icon{background:linear-gradient(135deg,#007bff 0,#0056b3 100%);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s;color:#fff;font-size:.8rem;box-shadow:0 2px 6px rgba(0,123,255,.3)}.add-credits-icon:hover{background:linear-gradient(135deg,#0056b3 0,#003d82 100%);transform:scale(1.1);box-shadow:0 3px 10px rgba(0,123,255,.4)}.profile-form-layout{display:grid;grid-template-columns:280px 1fr;gap:2.5rem;margin-bottom:1.5rem}.profile-avatar-section{display:flex;flex-direction:column;gap:1.5rem}.avatar-upload{display:flex;flex-direction:column;align-items:center;gap:1rem}.avatar-preview{width:180px;height:180px;border-radius:12px;background:linear-gradient(135deg,#e9ecef 0,#f8f9fa 100%);border:3px solid var(--border-color);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;transition:.3s;box-shadow:0 4px 12px rgba(0,0,0,.08)}.avatar-preview:hover{border-color:var(--primary-color);box-shadow:0 6px 16px rgba(0,123,255,.15)}.avatar-preview i{font-size:5rem;color:var(--secondary-color);opacity:.3}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-loader{display:flex;flex-direction:column;align-items:center;gap:.75rem}.avatar-loader .spinner{width:40px;height:40px;border:4px solid rgba(0,123,255,.1);border-top-color:var(--primary-color);border-radius:50%;animation:.8s linear infinite spin}.avatar-loader small{font-size:.75rem;color:var(--secondary-color);opacity:.7}.input-loading{background:linear-gradient(90deg,#f0f0f0 0,#e0e0e0 20%,#f0f0f0 40%,#f0f0f0 100%);background-size:200% 100%;animation:1.5s infinite shimmer;pointer-events:none;color:transparent!important}.input-loading::placeholder{color:transparent}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.avatar-upload-label{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--primary-color);color:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:.3s;box-shadow:0 2px 6px rgba(0,123,255,.3)}.avatar-upload-label:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,123,255,.4)}.avatar-upload-label i{font-size:1rem}.avatar-help-text{font-size:.75rem;color:var(--secondary-color);text-align:center;margin:.5rem 0 0;opacity:.8}.profile-data-section{display:flex;flex-direction:column;gap:0}.profile-data-section .form-group{margin-bottom:.75rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group-half{margin-bottom:0}.optional-label{font-size:.85rem;color:var(--secondary-color);opacity:.7;font-weight:400}.profile-sidebar{flex:1;background:var(--panel-background);padding:1.5rem;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05)}.profile-sidebar h2{margin-top:0;font-size:1.2rem}.profile-nav a{display:flex;align-items:center;gap:10px;padding:12px 15px;text-decoration:none;color:var(--secondary-color);border-radius:5px;margin-bottom:5px;transition:.2s ease-in-out}.profile-nav a:hover{background-color:#e9ecef;color:var(--primary-color)}.profile-nav a.active{background-color:var(--primary-color);color:#fff}.profile-nav a[data-target=comprar-bonos]{border:2px solid #007bff}.admin-link{background:linear-gradient(135deg,#ff6b35,#f7941e)!important;color:#fff!important;font-weight:600;margin-top:10px;box-shadow:0 2px 8px rgba(255,107,53,.3)}.admin-link:hover{background:linear-gradient(135deg,#e55a2b,#de8419)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,53,.4)}.back-link{color:var(--secondary-color)!important;border-top:1px solid var(--border-color);margin-top:1rem;padding-top:1rem}.back-link:hover{color:var(--primary-color)!important}.profile-content{flex:3;background:var(--panel-background);padding:2rem;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05);min-width:0;overflow:hidden}.profile-panel{display:none}.profile-panel.active{display:block}.profile-panel h3{margin-top:0}.bono-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.bono-card{border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;text-align:center}.bono-card h4{margin:0 0 10px;color:var(--primary-color)}.bono-card .price{font-size:2rem;font-weight:700;color:var(--success-color);margin:10px 0}.bono-card .vat-text{font-size:.75rem;font-style:italic;color:#999;margin:-15px 0 10px}.savings-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.savings-text{font-size:.9rem;font-weight:600;color:var(--success-color);margin:0;text-align:center;background:rgba(40,167,69,.1);padding:4px 8px;border-radius:12px;border:1px solid rgba(40,167,69,.2)}.bono-card.flexible{border:2px solid var(--primary-color);background:linear-gradient(135deg,#f8f9ff 0,#e6f3ff 100%);position:relative}.bono-card.flexible::before{content:"Popular";position:absolute;top:-1px;right:-1px;background:var(--primary-color);color:#fff;padding:4px 12px;border-radius:0 6px 0 8px;font-size:.75rem;font-weight:600;text-transform:uppercase}.quantity-selector{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.quantity-selector label{display:block;font-size:.9rem;font-weight:600;color:var(--secondary-color);margin-bottom:.5rem;text-align:center}.quantity-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.quantity-btn{background:var(--primary-color);color:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;user-select:none}.quantity-btn:hover{background:var(--primary-color-dark,#0056b3);transform:scale(1.05)}.quantity-btn:active{transform:scale(.95)}.quantity-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}#credit-quantity{border:2px solid var(--border-color);border-radius:6px;padding:8px 12px;font-size:1.1rem;font-weight:600;text-align:center;width:70px;background:#fff;color:var(--text-color);transition:border-color .2s;-moz-appearance:textfield}#credit-quantity::-webkit-inner-spin-button,#credit-quantity::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#credit-quantity:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(0,123,255,.1)}#profile-message{text-align:center;margin-top:1rem;font-weight:700}#profile-message.success{color:var(--success-color)}.forgot-password{display:block;text-align:center;margin-top:15px;font-size:.9rem;color:var(--secondary-color);text-decoration:none}.forgot-password:hover{text-decoration:underline;color:var(--primary-color)}#gml-table{width:100%;border-collapse:collapse;margin-top:1.5rem;table-layout:fixed;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.05)}#gml-table td,#gml-table th{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-color)}#gml-table td:first-child,#gml-table th:first-child{width:18%}#gml-table td:nth-child(2),#gml-table th:nth-child(2){width:22%}#gml-table td:nth-child(3),#gml-table th:nth-child(3){width:42%;word-break:break-word;overflow-wrap:break-word}#gml-table td:nth-child(4),#gml-table td:nth-child(5),#gml-table td:nth-child(6),#gml-table th:nth-child(4),#gml-table th:nth-child(5),#gml-table th:nth-child(6){width:6%;text-align:center;padding:8px 5px}#gml-table thead th{background-color:#e9ecef;font-weight:700;color:var(--secondary-color)}#gml-table th[data-sort],#users-table th[data-sort]{cursor:pointer;transition:background-color .2s}#gml-table th[data-sort]:hover,#users-table th[data-sort]:hover{background-color:#d8dde2}#gml-table th[data-sort] i,#users-table th[data-sort] i{margin-left:8px;color:#a0a0a0}#gml-table tbody tr:hover{background-color:#f8f9fa}.table-btn{background:0 0;border:none;padding:5px;cursor:pointer;font-size:1.1rem;color:var(--secondary-color);transition:color .2s}.table-btn:hover{color:var(--primary-color)}.table-btn.delete-gml:hover{color:var(--error-color)}.table-btn:disabled{color:#ccc;cursor:not-allowed}#no-gml-msg,#no-purchases-msg{text-align:center;background-color:#e9ecef;padding:1.5rem;border-radius:5px;margin-top:1rem}#user-purchases-table{width:100%;border-collapse:collapse;margin-top:1.5rem;table-layout:fixed;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.05)}#user-purchases-table td,#user-purchases-table th{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-color)}#user-purchases-table td:first-child,#user-purchases-table th:first-child{width:18%}#user-purchases-table td:nth-child(2),#user-purchases-table th:nth-child(2){width:24%}#user-purchases-table td:nth-child(3),#user-purchases-table td:nth-child(4),#user-purchases-table th:nth-child(3),#user-purchases-table th:nth-child(4){width:15%;text-align:center}#user-purchases-table td:nth-child(5),#user-purchases-table th:nth-child(5){width:18%;text-align:center}#user-purchases-table td:nth-child(6),#user-purchases-table th:nth-child(6){width:10%;text-align:center;padding:8px 5px}#user-purchases-table thead th{background-color:#e9ecef;font-weight:700;color:var(--secondary-color)}#user-purchases-table th[data-sort]{cursor:pointer;transition:background-color .2s}#user-purchases-table th[data-sort]:hover{background-color:#d8dde2}#user-purchases-table th[data-sort] i{margin-left:8px;color:#a0a0a0}#user-purchases-table tbody tr:hover{background-color:#f8f9fa}.purchase-conditions-text{text-align:center;margin-top:1.5rem;font-size:.85rem;color:var(--secondary-color)}.purchase-conditions-text a{color:var(--primary-color);text-decoration:underline}.purchase-conditions-text a:hover{color:var(--primary-hover)}@media (max-width:768px){.profile-content,.profile-sidebar{width:100%}.profile-content{padding:1rem}.profile-content h3,.profile-sidebar h2{font-size:1.3rem}.panel-header{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important}.panel-header h3{font-size:1.3rem}.credits-badge{padding:.4rem .65rem;gap:.4rem}.credits-badge span{font-size:1.1rem;min-width:25px}.credits-badge i.fa-coins{font-size:1rem}.add-credits-icon{width:26px;height:26px;font-size:.75rem}.profile-form-layout{grid-template-columns:1fr;gap:2rem}.profile-avatar-section{order:1}.profile-data-section{order:2}.avatar-preview{width:140px;height:140px}.avatar-preview i{font-size:4rem}.form-row{grid-template-columns:1fr;gap:1.25rem}.form-group-half{margin-bottom:0}header nav{flex-shrink:1;min-width:0}#user-display-name{display:inline-block;max-width:150px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (max-width:768px){#gml-table{table-layout:auto}#gml-table thead{display:none}#gml-table,#gml-table tbody,#gml-table td,#gml-table tr{display:block;width:100%!important}#gml-table tr{margin-bottom:1.5rem;border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:0 2px 4px rgba(0,0,0,.05)}#gml-table td{display:flex;justify-content:space-between;align-items:center;padding:.75rem .5rem;border-bottom:1px solid #e9ecef;text-align:right}#gml-table td:last-child{border-bottom:none}#gml-table td::before{content:attr(data-label);font-weight:700;text-align:left;margin-right:1rem;color:var(--primary-color)}#gml-table .table-btn{font-size:1.2rem;padding:8px}#user-purchases-table{table-layout:auto}#user-purchases-table thead{display:none}#user-purchases-table,#user-purchases-table tbody,#user-purchases-table td,#user-purchases-table tr{display:block;width:100%!important}#user-purchases-table tr{margin-bottom:1.5rem;border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:0 2px 4px rgba(0,0,0,.05)}#user-purchases-table td{display:flex;justify-content:space-between;align-items:center;padding:.75rem .5rem;border-bottom:1px solid #e9ecef;text-align:right}#user-purchases-table td:last-child{border-bottom:none}#user-purchases-table td::before{content:attr(data-label);font-weight:700;text-align:left;margin-right:1rem;color:var(--primary-color)}#user-purchases-table .table-btn{font-size:1.2rem;padding:8px}}.legal-content{background:var(--panel-background);padding:2rem 3rem;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05);margin-top:2rem}.legal-content h1,.legal-content h2{color:var(--primary-color)}.legal-content h1{border-bottom:2px solid var(--primary-color);padding-bottom:10px}.legal-content li,.legal-content p{line-height:1.8}.seo-content-block{margin-top:3rem;padding:2rem;background-color:var(--panel-background);border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05);border-top:3px solid var(--primary-color)}.seo-content-block h2{text-align:center;margin-bottom:1.5rem}.seo-content-block h3{color:var(--primary-color);border-bottom:1px solid var(--border-color);padding-bottom:8px;margin-top:2rem}.seo-content-block p{font-size:1rem;line-height:1.8}.seo-content-block strong{color:var(--text-color)}.how-to-guide{margin-top:2.5rem;padding-top:2.5rem;border-top:2px solid var(--border-color)}.how-to-guide h2{text-align:center;margin-top:2rem;margin-bottom:2rem}.step-by-step-list{list-style:none;counter-reset:step-counter;padding-left:0;margin-top:2rem}.step-by-step-list li{position:relative;padding-left:60px;margin-bottom:2rem}.step-by-step-list li::before{counter-increment:step-counter;content:counter(step-counter);position:absolute;left:0;top:-5px;font-size:2.5rem;font-weight:700;color:var(--primary-color);background-color:#e9f5ff;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}.step-by-step-list li h3{margin-top:0;margin-bottom:.5rem;color:var(--primary-color)}.step-by-step-list li p{margin:0;font-size:1rem;line-height:1.7}@media (max-width:768px){.legal-content{padding:1.5rem}.app-version-note{text-align:center}}@media screen{header .logo .user-logo-container,header .logo .user-professional-data{display:none!important}}@media print{.how-to-guide,.seo-content-block,body:not(.app-printing) #info-box #polygon-details-container,body:not(.app-printing) #info-box #total-summary-container,body:not(.app-printing) #map{display:none!important}body:not(.app-printing) #info-box::after{content:"⚠️ Los resultados están protegidos. Use el botón 'Imprimir' dentro de la aplicación para generar el informe.";display:block;padding:2rem;text-align:center;font-weight:700;font-size:14pt;color:#dc3545;border:3px solid #dc3545;border-radius:8px;background-color:#fff3cd;margin:2rem auto;max-width:600px}body.app-printing #info-box #polygon-details-container,body.app-printing #info-box #total-summary-container,body.app-printing #map{display:block!important}body{font-size:12pt;line-height:1.4}.container{max-width:none;padding:0}.app-version-note,.panel-controls,.workflow-header,header nav{display:none!important}#info-box{margin:0;padding:1rem;border:none;box-shadow:none}.polygon-item{page-break-inside:avoid;margin-bottom:1rem}}.print-metadata{display:none;padding:15px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin-bottom:15px;font-size:11pt}.print-metadata .metadata-row{margin-bottom:8px;line-height:1.6}.print-metadata .metadata-row:last-child{margin-bottom:0}@media print{body,html{background:#fff}.print-metadata{display:block!important;border:2px solid #2c5aa0;background-color:#e8f4f8;margin-bottom:15px}.print-metadata .metadata-row strong{color:#2c5aa0;min-width:120px;display:inline-block}header{display:block!important;background:#fff;border-bottom:3px solid #2c5aa0;padding:20px 0;margin-bottom:20px}header nav{display:none!important}header .logo img{max-height:60px}header::after{content:"Informe de Coordenadas Georreferenciadas";display:block;text-align:center;font-size:20pt;font-weight:700;color:#2c5aa0;margin-top:15px;letter-spacing:.5px}body.app-printing.print-personalized header .logo img#logo-img,body.app-printing.print-personalized header .logo>a{display:none!important}body.app-printing.print-personalized header .logo{display:flex!important;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:20px;padding:10px 0}body.app-printing.print-personalized header .logo .user-logo-container{display:block!important;flex-shrink:0}body.app-printing.print-personalized header .logo .user-logo-container img{display:block!important;max-width:100px;max-height:100px;object-fit:contain}body.app-printing.print-personalized header .logo .user-professional-data{display:flex!important;flex-direction:column;gap:6px;padding-top:5px}body.app-printing.print-personalized header .logo .user-professional-data .data-item{font-size:11pt;color:#2c5aa0;line-height:1.4;font-weight:400}body.app-printing.print-personalized header .logo .user-professional-data .data-item.name{font-weight:700;font-size:13pt}body.app-printing.print-personalized header .logo .user-professional-data .data-item .label{font-weight:600;margin-right:5px}#download-txt-btn,#export-dxf-btn,#generate-gml-btn,#print-btn,.file-navigation-top,.info-actions,.info-box-header h3,.panel-controls,footer{display:none!important}.content-wrapper{flex-direction:column;margin-top:0}.panel-viewer{width:100%;box-shadow:none;border:none}#map{height:45vh;border:2px solid #2c5aa0;border-radius:4px;margin-bottom:20px}#remnant-download-minimized,#remnant-download-notice button,.basemap-switch,.leaflet-control-credits,.leaflet-control-zoom,.recenter-map-button,.vertex-numbers-toggle{display:none!important}#info-box{display:block!important;box-shadow:none;border:none;padding:0}#total-summary-container{page-break-before:avoid;page-break-after:avoid;page-break-inside:avoid;border:2px solid #2c5aa0;border-radius:4px;padding:15px;margin-bottom:20px;background-color:#f8f9fa}#total-summary-container h4{color:#2c5aa0;margin-top:0;font-size:14pt;border-bottom:2px solid #2c5aa0;padding-bottom:8px;margin-bottom:12px}.info-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;font-size:11pt}#polygon-details-container{page-break-before:always}.polygon-detail-block{page-break-inside:avoid;margin-bottom:20px;border:1px solid #ddd;padding:15px;border-radius:4px}.polygon-detail-block h4{color:#2c5aa0;margin-top:0;font-size:13pt;border-bottom:1px solid #2c5aa0;padding-bottom:5px}.coordinates-table-container{max-height:none;overflow-y:visible}.coordinates-table-container table{width:100%;border-collapse:collapse;font-size:9pt}.coordinates-table-container td,.coordinates-table-container th{border:1px solid #ddd;padding:4px 8px;text-align:left}.coordinates-table-container th{background-color:#f8f9fa;font-weight:700}.app-version-note,.how-to-guide,.seo-content-block{display:none!important}}@media (max-width:768px){.content-wrapper{flex-direction:column;margin-top:1rem}.panel-controls,.panel-viewer{width:100%}.panel-controls{flex:1 1 auto;max-width:100%;height:auto;min-height:auto}.switch{overflow:hidden}input:checked+.slider:before{transform:translateX(25px)}}#map{height:526px;width:100%;background:#e9ecef;border-radius:8px;border:1px solid var(--border-color);position:relative;overflow:hidden}#map+.app-version-note{margin-top:6px}.app-version-note{color:var(--secondary-color);font-size:.8rem;line-height:1.2;text-align:center}@keyframes spin{100%,to{transform:rotate(360deg)}0%{transform:rotate(0)}}.loading-spinner{animation:1s linear infinite spin}.workflow-container{border-bottom:1px solid var(--border-color)}.workflow-container:last-child{border-bottom:none}.workflow-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;cursor:pointer;background-color:#f8f9fa;transition:background-color .3s}.workflow-header:hover{background-color:#e9ecef}.workflow-header.expanded{background-color:var(--primary-color);color:#fff}.workflow-header.expanded h2{color:#fff}.workflow-header.expanded .workflow-chevron{color:#fff;transform:rotate(90deg)}.workflow-header h2{margin:0;color:var(--primary-color);font-size:1.3rem;border-bottom:none;transition:color .3s}.workflow-chevron{color:var(--secondary-color);font-size:1rem;transition:transform .4s cubic-bezier(.25, .46, .45, .94),color .3s}.workflow-content{padding:1.5rem;background-color:#fff;overflow:hidden;transition:max-height .4s cubic-bezier(.25, .46, .45, .94),padding .4s,opacity .3s;max-height:1500px;opacity:1;max-height:none}.workflow-content.hidden{max-height:0;padding-top:0;padding-bottom:0;opacity:0}#visualizar-content{min-height:372px}.workflow-step{margin-bottom:1.5rem;width:100%}.workflow-step:last-child{margin-bottom:0}.workflow-step h2{color:var(--primary-color);margin-bottom:1rem;margin-top:0;font-size:1.3rem}.footer-attributions{margin-top:1rem;font-size:.8rem;color:#888}.footer-attributions p{margin:0}.footer-attributions a{color:#777;text-decoration:underline}.footer-attributions a:hover{color:var(--primary-color)}.workflow-content:not(.hidden){overflow:visible}#ai-chat-button{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#1e90ff,#06c);color:#fff;border:none;box-shadow:0 4px 12px rgba(30,144,255,.4);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:26px;z-index:1001;opacity:.65;transition:.3s;animation:2s infinite pulse}#ai-chat-button:hover{transform:scale(1.1);opacity:1;box-shadow:0 6px 20px rgba(30,144,255,.6)}@keyframes pulse{0%,100%{box-shadow:0 4px 12px rgba(30,144,255,.4)}50%{box-shadow:0 4px 20px rgba(30,144,255,.7)}}#ai-chat-widget{position:fixed;bottom:90px;right:20px;width:400px;max-width:calc(100vw - 40px);height:550px;max-height:calc(100vh - 120px);background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.2);display:flex;flex-direction:column;z-index:1000;transform:scale(.9) translateY(20px);opacity:0;pointer-events:none;transition:.3s}#ai-chat-widget.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}.ai-chat-header{background:linear-gradient(135deg,#1e90ff,#06c);color:#fff;padding:16px 20px;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between}.ai-chat-header-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}.ai-chat-header-title i{font-size:20px}.ai-chat-header-actions{display:flex;gap:8px}.ai-chat-header-actions button{background:rgba(255,255,255,.2);border:none;color:#fff;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.ai-chat-header-actions button:hover{background:rgba(255,255,255,.3)}#ai-chat-messages{flex:1;overflow-y:auto;padding:20px;background:#f9fafb;display:flex;flex-direction:column;gap:12px}.ai-chat-message{display:flex;animation:.3s messageSlide}@keyframes messageSlide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-message-content{max-width:80%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5;word-wrap:break-word}.ai-chat-message-user{justify-content:flex-end}.ai-chat-message-user .ai-chat-message-content{background:linear-gradient(135deg,#1e90ff,#06c);color:#fff;border-bottom-right-radius:4px}.ai-chat-message-assistant{justify-content:flex-start}.ai-chat-message-assistant .ai-chat-message-content{background:#fff;color:var(--text-color);border:1px solid #e5e7eb;border-bottom-left-radius:4px}.ai-chat-message-error .ai-chat-message-content{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.ai-chat-message-terms{justify-content:center;padding:10px 0}.ai-chat-message-terms .ai-chat-message-content{max-width:95%;background:#f0f9ff;border:2px solid #3b82f6;border-radius:12px;padding:16px}.ai-chat-terms-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#1e40af;font-size:16px}.ai-chat-terms-header i{font-size:20px}.ai-chat-message-terms p{margin:8px 0;line-height:1.6;color:#374151}.ai-chat-message-terms a{color:#2563eb;text-decoration:underline}.ai-chat-message-terms a:hover{color:#1d4ed8}.ai-chat-message-terms small{color:#6b7280;font-size:12px}.ai-chat-terms-buttons{display:flex;gap:10px;margin-top:16px}.ai-chat-terms-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:.2s}.ai-chat-terms-btn.accept{background:#22c55e;color:#fff}.ai-chat-terms-btn.accept:hover{background:#16a34a;transform:scale(1.02)}.ai-chat-terms-btn.reject{background:#e5e7eb;color:#374151}.ai-chat-terms-btn.reject:hover{background:#d1d5db}.ai-chat-message-content strong{font-weight:600}.ai-chat-message-content code{background:rgba(0,0,0,.1);padding:2px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:13px}.ai-chat-message-user .ai-chat-message-content code{background:rgba(255,255,255,.2)}.ai-chat-message-content a{color:#2563eb;text-decoration:underline;word-break:break-all}.ai-chat-message-content a:hover{color:#1d4ed8;text-decoration:none}.ai-chat-message-user .ai-chat-message-content a{color:#fff;text-decoration:underline;font-weight:500}.ai-chat-message-user .ai-chat-message-content a:hover{text-decoration:none;opacity:.9}.ai-chat-typing-indicator{display:flex;gap:4px;padding:4px 0}.ai-chat-typing-indicator span{width:8px;height:8px;background:#9ca3af;border-radius:50%;animation:1.4s infinite typing}.ai-chat-typing-indicator span:nth-child(2){animation-delay:.2s}.ai-chat-typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,100%,60%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.ai-chat-input{padding:16px 20px;border-top:1px solid #e5e7eb;background:#fff;border-radius:0 0 12px 12px;display:flex;gap:12px}#ai-chat-input{flex:1;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;resize:none;min-height:40px;max-height:100px;overflow-y:auto;transition:border-color .2s}#ai-chat-input:focus{outline:0;border-color:var(--primary-color)}#ai-chat-input:disabled{background:#f3f4f6;cursor:not-allowed}#ai-chat-send{background:var(--primary-color);color:#fff;border:none;border-radius:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:.2s}#ai-chat-send:hover:not(:disabled){background:#06c;transform:scale(1.05)}#ai-chat-send:disabled{background:#9ca3af;cursor:not-allowed;transform:none}#ai-chat-messages::-webkit-scrollbar{width:6px}#ai-chat-messages::-webkit-scrollbar-track{background:0 0}#ai-chat-messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}#ai-chat-messages::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width:768px){#ai-chat-widget{bottom:0;right:0;left:0;width:100%;height:100%;max-height:100vh;border-radius:0}#ai-chat-button{bottom:16px;right:16px;width:56px;height:56px;font-size:22px}.ai-chat-message-content{max-width:85%}}