/* jsonStructureEditor.css */

/* (existing styles)… */
.jsonStructureEdits-container {
            max-width: 100%;
            margin: 0 auto;
            padding: 20px;
            font-family: Arial, sans-serif;
            background-color: #f5f5f5;
        }

        .jsonStructureEdits-section {
            /*
            background: white;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 20px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            */
        }

        .jsonStructureEdits-section-title {
            font-size: 18px;
            font-weight: bold;
            color: #333;
            
        }

        .jsonStructureEdits-field-group {
            margin-bottom: 15px;
            width: 30%;
            display:inline-block;
            vertical-align: top;
        }

        .jsonStructureEdits-label {
            display: block;
            margin-bottom: 5px;
            font-weight: 600;
            color: #555;
            text-transform: capitalize;
        }

        .jsonStructureEdits-input {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 14px;
            box-sizing: border-box;
            transition: border-color 0.3s;
        }

        .jsonStructureEdits-input:focus {
            outline: none;
            border-color: #007bff;
            box-shadow: 0 0 0 2px rgba(0,123,255,0.25);
        }

        .jsonStructureEdits-textarea {
            min-height: 80px;
            resize: vertical;
        }

        .jsonStructureEdits-array-section {
            border: 2px dashed #007bff;
            padding: 15px;
            margin: 10px 0;
            border-radius: 6px;
            background-color: #f8f9ff;
        }

        .jsonStructureEdits-array-title {
            font-weight: bold;
            color: #007bff;
            margin-bottom: 10px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
        }

        .jsonStructureEdits-array-item {
            background: white;
            padding: 15px;
            margin: 10px 0;
            border-radius: 4px;
            border: 1px solid #e0e0e0;
            position: relative;
        }

        .jsonStructureEdits-btn {
            padding: 8px 16px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s;
        }

        .jsonStructureEdits-btn-primary {
            background-color: #007bff;
            color: white;
        }

        .jsonStructureEdits-btn-primary:hover {
            background-color: #0056b3;
        }

        .jsonStructureEdits-btn-success {
            background-color: #28a745;
            color: white;
        }

        .jsonStructureEdits-btn-success:hover {
            background-color: #218838;
        }

        .jsonStructureEdits-btn-danger {
            background-color: #dc3545;
            color: white;
            padding: 6px 12px;
            font-size: 12px;
            position: absolute;
            top: 10px;
            right: 10px;
        }

        .jsonStructureEdits-btn-danger:hover {
            background-color: #c82333;
        }

        .jsonStructureEdits-nested {
            border-left: 1px solid #e0e0e0;
            padding-left: 15px;
        }

        .jsonStructureEdits-date-group {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 10px;
        }

        .jsonStructureEdits-result {
            background: #f8f9fa;
            border: 1px solid #dee2e6;
            border-radius: 4px;
            padding: 15px;
            margin-top: 20px;
            font-family: monospace;
            white-space: pre-wrap;
            overflow-x: auto;
        }

        .jsonStructureEdits-json-editor {
            min-height: 200px;
            font-family: monospace;
            font-size: 12px;
            line-height: 1.4;
        }

        .jsonStructureEdits-btn-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }

        .jsonStructureEdits-message {
            padding: 10px;
            border-radius: 4px;
            margin: 10px 0;
            font-weight: 500;
        }

        .jsonStructureEdits-message-success {
            background-color: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }

        .jsonStructureEdits-message-error {
            background-color: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }

        .jsonStructureEdits-message-hidden {
            display: none;
        }

        .jsonStructureEdits-collapsible-header {
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: space-between;
            background-color: #f8f9fa;
            padding: 10px 15px;
            border-radius: 4px;
            margin-bottom: 10px;
            border: 1px solid #dee2e6;
            transition: background-color 0.2s;
        }

        .jsonStructureEdits-collapsible-header:hover {
            background-color: #e9ecef;
        }

        .jsonStructureEdits-expand-icon {
            font-weight: bold;
            font-size: 18px;
            color: #007bff;
            transition: transform 0.2s;
        }

        .jsonStructureEdits-expand-icon.expanded {
            transform: rotate(45deg);
        }

        .jsonStructureEdits-collapsible-content {
            overflow: hidden;
            transition: max-height 0.3s ease-out;
        }

        .jsonStructureEdits-collapsible-content.collapsed {
            max-height: 0;
        }

        .jsonStructureEdits-collapsible-content.expanded {
            max-height: none;
        }

        .jsonStructureEdits-master-controls {
            background: white;
            border-radius: 8px;
            padding: 15px;
            margin-bottom: 20px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            text-align: center;
        }

        @media (max-width: 768px) {
            .jsonStructureEdits-container {
                padding: 10px;
            }

            /*
            .jsonStructureEdits-section {
                padding: 15px;
                margin-bottom: 15px;
            }*/

            .jsonStructureEdits-date-group {
                grid-template-columns: 1fr;
                gap: 8px;
            }

            .jsonStructureEdits-nested {
                margin-left: 10px;
                padding-left: 10px;
            }

            .jsonStructureEdits-btn-danger {
                position: static;
                margin-top: 10px;
                width: 100%;
            }
        }

/* === Validation Badges & Invalid States === */
.jsonStructureEdits-issue-badge {
  display: inline-block;
  min-width: 22px;
  padding: 2px 8px;
  margin: 0 8px;
  border-radius: 999px;
  background: #dc3545;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  text-align: center;
}
.jsonStructureEdits-issue-badge.hidden { display: none; }

.jsonStructureEdits-field-group.invalid .jsonStructureEdits-label { color: #dc3545; }
.jsonStructureEdits-field-group.invalid .jsonStructureEdits-input {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 2px rgba(220,53,69,0.12);
}

.jsonStructureEdits-array-section.invalid {
  border: 1px dashed #dc3545;
  background-color: #fff5f6;
}

.jsonStructureEdits-overall-badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 14px;
  background: #343a40;
  color: #fff;
  font-weight: 600;
}

/* === Field-level inline error text (shown beside headers) === */
.jsonStructureEdits-error-text{
  display: inline-block;
  margin-left: 8px;
  color: #dc3545;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.jsonStructureEdits-error-text.hidden{ display:none; }
/* === End Validation Styles === */

/* === NEW: Overall error list (top of page) === */
.jsonStructureEdits-overall-errors {
  background: #fff5f6;
  border: 1px solid #f5c6cb;
  border-radius: 6px;
  padding: 10px;
  margin: 10px 0 16px 0;
}
.jsonStructureEdits-overall-errors.hidden {
  display: none;
}
.jsonStructureEdits-overall-errors h4 {
  margin: 0 0 8px 0;
  color: #b02a37;
  font-size: 14px;
}

/* Clickable chips for each error */
.jsonStructureEdits-error-chip,
.jsonStructureEdits-error-chip-small{
  display: inline-block;
  margin: 4px 6px 0 0;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #f1aeb5;
  background: #ffffff;
  color: #b02a37;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  line-height: 1;
}
.jsonStructureEdits-error-chip-small{
  padding: 4px 8px;
  font-weight: 600;
}

/* Section header inline list (beside the counter) */
.jsonStructureEdits-error-list{
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-left: 6px;
}

/* Subtle pulse when scrolled-to element is focused */
@keyframes jsonStructureEdits-pulse {
  0% { box-shadow: 0 0 0 0 rgba(220,53,69,0.35); }
  100% { box-shadow: 0 0 0 12px rgba(220,53,69,0); }
}
.jsonStructureEdits-pulse{
  animation: jsonStructureEdits-pulse 1.2s ease-out 1;
  border-color: #dc3545 !important;
}
