.geo-modal-overlay {
	position: fixed; top: 0; left: 0; width: 100%; height: 100%;
	background: rgba(0,0,0,0.5); z-index: 10000;
	display: flex; align-items: center; justify-content: center;
}
.geo-modal {
	background: #fff; border-radius: 8px; padding: 20px;
	width: 520px; max-height: 80vh; overflow-y: auto;
	box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
.geo-modal h3 { margin: 0 0 12px; font-size: 16px; }
.geo-modal textarea {
	width: 100%; height: 100px; font-family: monospace;
	font-size: 13px; padding: 8px; border: 1px solid #ccc;
	border-radius: 4px; resize: vertical; box-sizing: border-box;
}
.geo-modal .preview { margin-top: 10px; max-height: 200px; overflow-y: auto; }
.geo-modal .preview-item { padding: 2px 0; font-size: 13px; }
.geo-modal .preview-item.valid { color: #2e7d32; }
.geo-modal .preview-item.invalid { color: #c62828; }
.geo-modal .preview-item.duplicate { color: #f57f17; }
.geo-modal .summary {
	margin-top: 8px; padding: 6px 10px; background: #f5f5f5;
	border-radius: 4px; font-size: 12px; color: #555;
}
.geo-modal .mode-row { margin: 10px 0; font-size: 13px; }
.geo-modal .mode-row label { margin-right: 16px; cursor: pointer; }
.geo-modal .btn-row { margin-top: 14px; text-align: right; }
.geo-modal .btn-row button {
	padding: 6px 18px; margin-left: 8px; border: none;
	border-radius: 4px; cursor: pointer; font-size: 13px;
}
.geo-modal .btn-ok { background: #1976d2; color: #fff; }
.geo-modal .btn-ok:disabled { background: #90caf9; cursor: not-allowed; }
.geo-modal .btn-cancel { background: #e0e0e0; }
