Spaces:
Running
Running
| :root { | |
| --bg: #0b1020; | |
| --surface: #121a2b; | |
| --surface-2: #1b2740; | |
| --text: #e6edf3; | |
| --muted: #9fb3c8; | |
| --border: #243453; | |
| --primary: #4f46e5; /* Indigo-600 */ | |
| --primary-700: #4338ca; | |
| --secondary: #0ea5e9; /* Sky-500 */ | |
| --shadow: 0 8px 30px rgba(0,0,0,0.25); | |
| } | |
| * { box-sizing: border-box; } | |
| html, body { height: 100%; } | |
| body { | |
| margin: 0; | |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji"; | |
| background: radial-gradient(1200px 600px at 20% -10%, rgba(79,70,229,0.18), transparent 60%), | |
| radial-gradient(1000px 800px at 120% 10%, rgba(14,165,233,0.18), transparent 55%), | |
| var(--bg); | |
| color: var(--text); | |
| line-height: 1.45; | |
| } | |
| .header { | |
| text-align: center; | |
| padding: 48px 16px 12px; | |
| } | |
| .header h1 { | |
| margin: 0; | |
| font-size: 2.1rem; | |
| letter-spacing: 0.3px; | |
| } | |
| .subtitle { | |
| margin: 8px 0 0; | |
| color: var(--muted); | |
| } | |
| .container { | |
| width: min(1100px, 92vw); | |
| margin: 0 auto; | |
| padding: 20px 0 56px; | |
| display: grid; | |
| gap: 16px; | |
| } | |
| .panel { | |
| background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)); | |
| border: 1px solid var(--border); | |
| border-radius: 14px; | |
| padding: 16px; | |
| box-shadow: var(--shadow); | |
| backdrop-filter: blur(6px); | |
| } | |
| .panel-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| margin-bottom: 10px; | |
| } | |
| .panel-header h2 { | |
| margin: 0; | |
| font-size: 1.05rem; | |
| } | |
| .count { | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| } | |
| .drop-zone { | |
| border: 2px dashed var(--border); | |
| border-radius: 14px; | |
| padding: 28px; | |
| text-align: center; | |
| background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); | |
| transition: border-color .2s, background-color .2s, transform .1s; | |
| cursor: pointer; | |
| outline: none; | |
| } | |
| .drop-zone:focus-visible { | |
| border-color: var(--secondary); | |
| box-shadow: 0 0 0 3px rgba(14,165,233,0.35); | |
| } | |
| .drop-zone.is-dragover { | |
| border-color: var(--primary); | |
| background: rgba(79,70,229,0.08); | |
| transform: scale(1.01); | |
| } | |
| .drop-zone__content .icon { | |
| font-size: 42px; | |
| margin-bottom: 6px; | |
| } | |
| .drop-zone__content .primary { | |
| font-size: 1.05rem; | |
| font-weight: 600; | |
| } | |
| .drop-zone__content .secondary { | |
| color: var(--muted); | |
| margin: 6px 0; | |
| } | |
| .drop-zone__content .hint { | |
| margin-top: 6px; | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| } | |
| .controls { | |
| margin-top: 14px; | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .input { | |
| flex: 1 1 280px; | |
| padding: 10px 12px; | |
| border-radius: 10px; | |
| border: 1px solid var(--border); | |
| background: var(--surface); | |
| color: var(--text); | |
| outline: none; | |
| } | |
| .input::placeholder { color: #7d94ad; } | |
| .btn { | |
| appearance: none; | |
| border: 1px solid transparent; | |
| border-radius: 10px; | |
| padding: 10px 14px; | |
| cursor: pointer; | |
| font-weight: 600; | |
| transition: background-color .15s, transform .04s, border-color .15s, opacity .15s; | |
| background: var(--surface); | |
| color: var(--text); | |
| } | |
| .btn:active { transform: translateY(1px); } | |
| .btn:disabled { opacity: 0.5; cursor: not-allowed; } | |
| .btn-primary { | |
| background: var(--primary); | |
| border-color: var(--primary-700); | |
| } | |
| .btn-primary:hover { background: var(--primary-700); } | |
| .btn-secondary { | |
| border-color: var(--border); | |
| background: var(--surface-2); | |
| } | |
| .btn-secondary:hover { border-color: var(--secondary); } | |
| .status { | |
| margin-bottom: 8px; | |
| color: var(--muted); | |
| } | |
| .meta { | |
| display: flex; | |
| gap: 12px; | |
| color: var(--muted); | |
| font-size: 0.92rem; | |
| margin-top: 6px; | |
| } | |
| .progress { | |
| width: 100%; | |
| height: 10px; | |
| border-radius: 999px; | |
| background: #0e1629; | |
| border: 1px solid var(--border); | |
| overflow: hidden; | |
| display: none; | |
| } | |
| .progress__bar { | |
| height: 100%; | |
| width: 0%; | |
| background: linear-gradient(90deg, var(--primary), var(--secondary)); | |
| transition: width .2s ease-out; | |
| } | |
| .file-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| border-top: 1px solid var(--border); | |
| } | |
| .file { | |
| display: grid; | |
| grid-template-columns: 1fr auto auto; | |
| gap: 10px; | |
| align-items: center; | |
| padding: 12px 8px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .file__name { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| min-width: 0; | |
| } | |
| .file__name .badge { | |
| font-size: 0.78rem; | |
| color: var(--muted); | |
| border: 1px solid var(--border); | |
| border-radius: 999px; | |
| padding: 2px 8px; | |
| } | |
| .file__name .path { | |
| color: #93a6bd; | |
| font-size: 0.9rem; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .file__size { | |
| color: var(--muted); | |
| font-variant-numeric: tabular-nums; | |
| padding: 0 10px; | |
| } | |
| .file__actions { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .preview { | |
| margin-top: 6px; | |
| } | |
| .preview__content { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| padding: 12px; | |
| overflow: auto; | |
| max-height: 55vh; | |
| } | |
| .preview__content pre { | |
| margin: 0; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; | |
| font-size: 0.92rem; | |
| } | |
| .preview__content img, .preview__content embed, .preview__content iframe { | |
| width: 100%; | |
| height: auto; | |
| border: none; | |
| border-radius: 8px; | |
| background: #0c1326; | |
| } | |
| .footer { | |
| text-align: center; | |
| color: var(--muted); | |
| padding: 24px 16px 48px; | |
| } |