Spaces:
Sleeping
Sleeping
| :root { | |
| --bg-dark: #0a0b10; | |
| --panel-bg: rgba(17, 19, 26, 0.8); | |
| --border-color: rgba(255, 255, 255, 0.1); | |
| --accent-primary: #00d2ff; | |
| --accent-secondary: #3a7bd5; | |
| --text-main: #e2e8f0; | |
| --text-muted: #94a3b8; | |
| --success: #10b981; | |
| --danger: #ef4444; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| background-color: var(--bg-dark); | |
| color: var(--text-main); | |
| font-family: 'Inter', sans-serif; | |
| line-height: 1.6; | |
| height: 100vh; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| overflow: hidden; | |
| background-image: | |
| radial-gradient(circle at 20% 20%, rgba(0, 210, 255, 0.05) 0%, transparent 40%), | |
| radial-gradient(circle at 80% 80%, rgba(58, 123, 213, 0.05) 0%, transparent 40%); | |
| } | |
| .glass-container { | |
| width: 90vw; | |
| height: 90vh; | |
| background: var(--panel-bg); | |
| backdrop-filter: blur(12px); | |
| -webkit-backdrop-filter: blur(12px); | |
| border: 1px solid var(--border-color); | |
| border-radius: 24px; | |
| display: flex; | |
| flex-direction: column; | |
| box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.8); | |
| overflow: hidden; | |
| } | |
| header { | |
| padding: 1.5rem 2.5rem; | |
| border-bottom: 1px solid var(--border-color); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .logo-section { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .logo-section h1 { | |
| font-size: 1.4rem; | |
| font-weight: 600; | |
| background: linear-gradient(to right, var(--accent-primary), var(--accent-secondary)); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| .pulse-icon { | |
| width: 10px; | |
| height: 10px; | |
| background: var(--accent-primary); | |
| border-radius: 50%; | |
| box-shadow: 0 0 0 0 rgba(0, 210, 255, 0.7); | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { | |
| transform: scale(0.95); | |
| box-shadow: 0 0 0 0 rgba(0, 210, 255, 0.7); | |
| } | |
| 70% { | |
| transform: scale(1); | |
| box-shadow: 0 0 0 10px rgba(0, 210, 255, 0); | |
| } | |
| 100% { | |
| transform: scale(0.95); | |
| box-shadow: 0 0 0 0 rgba(0, 210, 255, 0); | |
| } | |
| } | |
| .status-bar { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.85rem; | |
| color: var(--text-muted); | |
| background: rgba(0, 0, 0, 0.3); | |
| padding: 6px 14px; | |
| border-radius: 20px; | |
| border: 1px solid var(--border-color); | |
| } | |
| .status-dot { | |
| width: 6px; | |
| height: 6px; | |
| background: var(--danger); | |
| border-radius: 50%; | |
| } | |
| .status-dot.healthy { | |
| background: var(--success); | |
| } | |
| main { | |
| flex: 1; | |
| display: flex; | |
| overflow: hidden; | |
| padding: 1.5rem 2.5rem; | |
| gap: 2.5rem; | |
| height: 0; | |
| /* Force children to respect parent flex height */ | |
| } | |
| .input-panel, | |
| .output-panel { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| min-width: 0; | |
| min-height: 0; | |
| height: 100%; | |
| overflow: hidden; | |
| } | |
| .panel-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 4px; | |
| } | |
| .output-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.8rem; | |
| } | |
| .helper-text { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| .upload-zone { | |
| border: 2px dashed var(--border-color); | |
| border-radius: 12px; | |
| padding: 1.5rem; | |
| text-align: center; | |
| transition: all 0.3s ease; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .upload-zone.drag-over { | |
| border-color: var(--accent-primary); | |
| background: rgba(0, 210, 255, 0.05); | |
| } | |
| textarea { | |
| flex: 1; | |
| background: rgba(0, 0, 0, 0.4); | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| padding: 1.2rem; | |
| color: var(--text-main); | |
| font-family: 'Inter', sans-serif; | |
| font-size: 0.95rem; | |
| resize: none; | |
| outline: none; | |
| transition: border-color 0.3s ease; | |
| } | |
| textarea:focus { | |
| border-color: var(--accent-primary); | |
| } | |
| .action-bar { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .primary-btn { | |
| background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary)); | |
| color: white; | |
| border: none; | |
| padding: 0.8rem 2rem; | |
| border-radius: 10px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| transition: transform 0.2s ease, opacity 0.2s ease; | |
| } | |
| .primary-btn:hover { | |
| transform: translateY(-1px); | |
| opacity: 0.9; | |
| } | |
| .secondary-btn { | |
| background: rgba(255, 255, 255, 0.05); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-main); | |
| padding: 0.5rem 1.2rem; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| } | |
| .text-btn { | |
| background: none; | |
| border: none; | |
| color: var(--text-muted); | |
| cursor: pointer; | |
| font-size: 0.9rem; | |
| } | |
| .text-btn:hover { | |
| color: var(--text-main); | |
| } | |
| .diff-view { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 0; | |
| } | |
| .result-box { | |
| flex: 1; | |
| background: rgba(0, 0, 0, 0.4); | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| padding: 1.2rem; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.9rem; | |
| overflow-y: auto; | |
| white-space: pre-wrap; | |
| min-height: 0; | |
| } | |
| .entity-highlight { | |
| background: rgba(0, 210, 255, 0.15); | |
| border-bottom: 2px solid var(--accent-primary); | |
| padding: 2px 4px; | |
| border-radius: 4px; | |
| cursor: help; | |
| transition: background 0.2s ease; | |
| } | |
| .entity-highlight:hover { | |
| background: rgba(0, 210, 255, 0.3); | |
| } | |
| .entity-legend { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| padding: 1rem; | |
| background: rgba(255, 255, 255, 0.02); | |
| border-radius: 12px; | |
| } | |
| .legend-item { | |
| font-size: 0.75rem; | |
| padding: 4px 10px; | |
| border-radius: 6px; | |
| background: var(--border-color); | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .legend-dot { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: var(--accent-primary); | |
| } | |
| footer { | |
| padding: 1.2rem 2.5rem; | |
| border-top: 1px solid var(--border-color); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| .footer .links { | |
| display: flex; | |
| gap: 1.5rem; | |
| } | |
| footer a { | |
| color: var(--text-muted); | |
| text-decoration: none; | |
| transition: color 0.2s ease; | |
| } | |
| footer a:hover { | |
| color: var(--text-main); | |
| } | |
| /* Loader */ | |
| .loader { | |
| width: 18px; | |
| height: 18px; | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| border-radius: 50%; | |
| border-top-color: white; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| [hidden] { | |
| display: none ; | |
| } |