/* GeoTIFF Export Panel */
.geo-tiff-panel.show {
    display: flex !important;
    animation: geoTiffPanelSlideIn 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes geoTiffPanelSlideIn {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.geo-tiff-panel--collapsed .geo-tiff-panel__body {
    display: none;
}

.geo-tiff-panel-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: rgb(17 24 39);
    line-height: 1.25;
}

.dark .geo-tiff-panel-title {
    color: rgb(243 244 246);
}

.geo-tiff-panel-subtitle {
    font-size: 0.75rem;
    color: rgb(107 114 128);
    line-height: 1.2;
}

.dark .geo-tiff-panel-subtitle {
    color: rgb(156 163 175);
}

.geo-tiff-panel-icon-btn {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    color: rgb(75 85 99);
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.geo-tiff-panel-icon-btn:hover {
    background: rgb(219 234 254);
    color: rgb(37 99 235);
}

.dark .geo-tiff-panel-icon-btn {
    color: rgb(156 163 175);
}

.dark .geo-tiff-panel-icon-btn:hover {
    background: rgb(31 41 55);
    color: rgb(96 165 250);
}

.geo-tiff-panel-field__label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgb(107 114 128);
    margin-bottom: 0.375rem;
}

.dark .geo-tiff-panel-field__label {
    color: rgb(156 163 175);
}

.geo-tiff-panel-input {
    width: 100%;
    border-radius: 0.5rem;
    border: 1px solid rgb(209 213 219);
    background: rgb(255 255 255 / 0.9);
    padding: 0.5rem 0.625rem;
    font-size: 0.875rem;
    color: rgb(17 24 39);
}

.dark .geo-tiff-panel-input {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39 / 0.8);
    color: rgb(243 244 246);
}

.geo-tiff-panel-input.geo-tiff-panel-input--required {
    border-color: rgb(249 115 22);
}

.geo-tiff-panel-hint {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: rgb(107 114 128);
    line-height: 1.35;
}

.geo-tiff-panel-hint.is-warning {
    color: rgb(234 88 12);
}

.dark .geo-tiff-panel-hint {
    color: rgb(156 163 175);
}

.dark .geo-tiff-panel-hint.is-warning {
    color: rgb(251 146 60);
}

.geo-tiff-panel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 0.5rem;
    padding: 0.5rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s, opacity 0.15s;
}

.geo-tiff-panel-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.geo-tiff-panel-btn--primary {
    background: rgb(59 130 246);
    color: white;
}

.geo-tiff-panel-btn--primary:hover:not(:disabled) {
    background: rgb(37 99 235);
}

.geo-tiff-panel-btn--secondary {
    background: rgb(243 244 246);
    color: rgb(55 65 81);
    border: 1px solid rgb(209 213 219);
}

.geo-tiff-panel-btn--secondary:hover:not(:disabled) {
    background: rgb(229 231 235);
}

.geo-tiff-panel-btn--secondary.is-active {
    background: rgb(219 234 254);
    border-color: rgb(147 197 253);
    color: rgb(29 78 216);
}

.dark .geo-tiff-panel-btn--secondary {
    background: rgb(31 41 55);
    color: rgb(229 231 235);
    border-color: rgb(55 65 81);
}

.geo-tiff-panel-link-btn {
    border: none;
    background: transparent;
    color: rgb(59 130 246);
    font-size: 0.8125rem;
    cursor: pointer;
    padding: 0;
}

.geo-tiff-panel-link-btn:hover {
    text-decoration: underline;
}

.geo-tiff-panel-region-chip {
    font-size: 0.8125rem;
    color: rgb(55 65 81);
    background: rgb(243 244 246);
    border-radius: 0.5rem;
    padding: 0.375rem 0.5rem;
    font-variant-numeric: tabular-nums;
}

.dark .geo-tiff-panel-region-chip {
    color: rgb(229 231 235);
    background: rgb(31 41 55);
}

.geo-tiff-panel-region-controls.hidden {
    display: none !important;
}

.geo-tiff-panel-status {
    font-size: 0.8125rem;
    color: rgb(75 85 99);
    padding: 0.375rem 0;
}

.geo-tiff-panel-status.is-error {
    color: rgb(220 38 38);
}

.geo-tiff-panel-status.hidden {
    display: none !important;
}

.dark .geo-tiff-panel-status {
    color: rgb(209 213 219);
}

.dark .geo-tiff-panel-status.is-error {
    color: rgb(248 113 113);
}

.geo-tiff-panel-loading {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgb(255 255 255 / 0.82);
    backdrop-filter: blur(4px);
}

.dark .geo-tiff-panel-loading {
    background: rgb(17 24 39 / 0.82);
}

.geo-tiff-panel-loading.hidden {
    display: none !important;
}

.geo-tiff-panel-loading__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    text-align: center;
}

.geo-tiff-panel-loading__spinner {
    width: 2rem;
    height: 2rem;
    border: 2px solid rgb(209 213 219);
    border-top-color: rgb(59 130 246);
    border-radius: 9999px;
    animation: geoTiffPanelSpin 0.75s linear infinite;
}

@keyframes geoTiffPanelSpin {
    to {
        transform: rotate(360deg);
    }
}

.geo-tiff-panel-loading__text {
    font-size: 0.8125rem;
    color: rgb(75 85 99);
    max-width: 16rem;
}

.dark .geo-tiff-panel-loading__text {
    color: rgb(209 213 219);
}

/* Export Menu */
.export-menu.show {
    display: flex !important;
    animation: exportMenuSlideIn 0.3s ease-out;
}

@keyframes exportMenuSlideIn {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

/* Region selection overlay (PotreeOrthoExporter / ExportRegionTool) — required when ui:false */
.oe-region-overlay {
    position: absolute;
    pointer-events: none;
    z-index: 10000;
    overflow: hidden;
}

.oe-selection-mask {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
}

.oe-selection-mask path {
    fill: rgba(0, 0, 0, 0.45);
}

.oe-selection-frame {
    position: absolute;
    border: 2px dashed rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
    pointer-events: none;
    box-sizing: border-box;
}

.oe-region-size-chip {
    position: absolute;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(18, 18, 20, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 11px;
    color: rgba(255, 255, 255, 0.92);
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    pointer-events: none;
}

.oe-canvas-banner {
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10001;
    padding: 8px 16px;
    border-radius: 10px;
    background: rgba(18, 18, 20, 0.85);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.88);
    pointer-events: none;
    white-space: nowrap;
}
