:root { color-scheme: light; --background: #ffffff; --foreground: #09090b; --card: #ffffff; --card-foreground: #09090b; --muted: #f4f4f5; --muted-foreground: #71717a; --border: #e4e4e7; --input: #e4e4e7; --primary: #18181b; --primary-foreground: #fafafa; --ring: #a1a1aa; --radius: 0.5rem; --shadow: 0 1px 2px rgba(0, 0, 0, 0.04); } * { box-sizing: border-box; } html { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--background); color: var(--foreground); } body { min-height: 100vh; margin: 0; display: flex; flex-direction: column; background: radial-gradient(circle at top, #fafafa 0, var(--background) 34rem); } a { color: inherit; } :focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; } .skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 10; padding: 0.75rem 1rem; border-radius: var(--radius); background: var(--primary); color: var(--primary-foreground); } .skip-link:focus { top: 1rem; } .site-header { border-bottom: 1px solid var(--border); background: rgba(255, 255, 255, 0.84); backdrop-filter: blur(14px); } .nav { width: min(1180px, calc(100% - 2rem)); min-height: 4.5rem; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .brand, .nav-links { display: inline-flex; align-items: center; gap: 0.7rem; } .brand { font-weight: 800; text-decoration: none; letter-spacing: 0; } .brand-mark { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: calc(var(--radius) - 0.125rem); background: var(--primary); color: var(--primary-foreground); font-size: 0.9rem; } .nav-links a { text-decoration: none; } main { flex: 1; } .upload-view { width: min(620px, calc(100% - 2rem)); min-height: calc(100vh - 9rem); margin: 0 auto; padding: 3rem 0; display: flex; align-items: center; justify-content: center; } h1 { margin: 0; color: var(--card-foreground); font-size: 1.8rem; line-height: 1.15; font-weight: 700; } .panel-header { display: grid; gap: 0.5rem; text-align: center; } .panel-header p { margin: 0; color: var(--muted-foreground); font-size: 0.95rem; line-height: 1.5; } .upload-panel { width: 100%; display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow); } .drop-zone { min-height: 17rem; display: grid; place-items: center; align-content: center; gap: 0.65rem; padding: 2rem; border: 1px dashed var(--input); border-radius: var(--radius); background: var(--muted); text-align: center; cursor: pointer; transition: border-color 160ms ease, background 160ms ease; } .drop-zone:hover, .drop-zone.is-dragging { border-color: var(--primary); background: #fafafa; } .drop-zone input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; } .drop-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border: 1px solid var(--border); border-radius: var(--radius); background: var(--background); color: var(--foreground); font-size: 2rem; font-weight: 400; } .drop-title { font-size: 1rem; font-weight: 650; } .drop-copy { color: var(--muted-foreground); font-size: 0.9rem; } .advanced-options { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.8rem 0.9rem; } .advanced-options summary { color: var(--foreground); cursor: pointer; font-size: 0.9rem; font-weight: 650; } .option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.9rem; margin-top: 1rem; } label span { display: block; margin-bottom: 0.35rem; color: var(--foreground); font-size: 0.85rem; font-weight: 600; } input, select, button { font: inherit; } input, select { width: 100%; min-height: 2.25rem; border: 1px solid var(--input); border-radius: calc(var(--radius) - 0.125rem); padding: 0.6rem 0.75rem; background: var(--background); color: var(--foreground); } input::placeholder { color: var(--muted-foreground); } .form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .form-footer p { margin: 0; color: var(--muted-foreground); font-size: 0.85rem; } .button, button { min-height: 2.25rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: calc(var(--radius) - 0.125rem); padding: 0.45rem 0.85rem; color: var(--foreground); background: transparent; font: inherit; font-size: 0.9rem; font-weight: 600; line-height: 1; cursor: pointer; } .button-primary { background: var(--primary); color: var(--primary-foreground); } .button-primary:hover { background: #27272a; } .button-outline { border-color: var(--border); background: var(--background); } .button-outline:hover, .button-ghost:hover { background: var(--muted); } .site-footer { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 1.5rem 0; display: flex; justify-content: space-between; gap: 1rem; color: var(--muted-foreground); font-size: 0.85rem; } @media (max-width: 840px) { .upload-view { min-height: calc(100vh - 9rem); padding: 2.5rem 0; } .option-grid, .form-footer, .site-footer { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; } .drop-zone { min-height: 14rem; } }