:root { --bg: #f5f6f8; --panel: #ffffff; --panel-muted: #f2f3f6; --text: #111318; --muted: #5b6472; --border: rgba(17, 19, 24, 0.08); --accent: #0a84ff; --accent-ink: #005ad6; --shadow: 0 20px 60px rgba(17, 19, 24, 0.08); } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: "SF Pro Text", "SF Pro Display", "Helvetica Neue", "Segoe UI", sans-serif; background: radial-gradient(circle at top, #ffffff 0%, var(--bg) 60%); color: var(--text); } .page { max-width: 1200px; margin: 0 auto; padding: 48px 28px 72px; } .topbar { display: grid; grid-template-columns: minmax(240px, 1.2fr) minmax(280px, 0.8fr); gap: 32px; align-items: stretch; margin-bottom: 36px; } .header-actions { display: grid; gap: 16px; justify-items: end; } .header-actions .quick-actions { width: 100%; } .header-actions #theme-toggle { justify-self: end; } .brand h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); letter-spacing: -0.02em; } .eyebrow { text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.68rem; color: var(--muted); } .lede { margin-top: 12px; font-size: 1rem; color: var(--muted); } .lede.small { font-size: 0.85rem; } .card { background: var(--panel); padding: 22px; border-radius: 22px; border: 1px solid var(--border); box-shadow: var(--shadow); } .quick-actions h2 { margin-bottom: 14px; font-size: 1.1rem; } .layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; } .column { display: grid; gap: 24px; } .logs-panel { margin-top: 28px; } .card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; } .card-header h3 { font-size: 1.1rem; } .log-actions { display: flex; align-items: center; gap: 12px; } form { display: grid; gap: 12px; } label { display: grid; gap: 6px; font-size: 0.85rem; color: var(--muted); } input, textarea, button { font: inherit; } input, textarea { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border); background: #fff; } button { border: none; padding: 10px 16px; border-radius: 12px; background: var(--accent); color: #fff; font-weight: 600; cursor: pointer; transition: transform 0.2s ease, background 0.2s ease; } button:hover { transform: translateY(-1px); background: var(--accent-ink); } button.ghost { background: transparent; color: var(--accent); border: 1px solid rgba(10, 132, 255, 0.4); padding: 8px 12px; } .list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; } .list li { padding: 12px; border-radius: 14px; background: var(--panel-muted); border: 1px solid var(--border); font-family: "SF Mono", "JetBrains Mono", "Menlo", monospace; font-size: 0.85rem; } .list li.active { border-color: rgba(10, 132, 255, 0.4); background: #eef5ff; } .model-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .badge { display: inline-block; padding: 4px 8px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 0.7rem; font-weight: 600; } .badge.muted { background: rgba(17, 19, 24, 0.1); color: var(--muted); } .status { margin-bottom: 12px; font-size: 0.9rem; color: var(--muted); } .status.ok { color: #1a7f37; } .status.error { color: #b02a14; } .downloads { display: grid; gap: 12px; } .download-card { border-radius: 16px; border: 1px solid var(--border); padding: 12px; background: #f7f8fb; } .download-card strong { display: block; font-size: 0.9rem; margin-bottom: 6px; } .progress { height: 8px; border-radius: 999px; background: #dfe3ea; overflow: hidden; margin: 8px 0; } .progress > span { display: block; height: 100%; background: var(--accent); width: 0; } .error { color: #b02a14; font-size: 0.85rem; } .config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; } .config-wide { grid-column: 1 / -1; } textarea { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border); font-family: "SF Mono", "JetBrains Mono", "Menlo", monospace; font-size: 0.85rem; resize: vertical; } .log-output { background: #0f141b; color: #dbe6f3; padding: 16px; border-radius: 16px; min-height: 260px; max-height: 420px; overflow: auto; font-size: 12px; line-height: 1.6; white-space: pre-wrap; } [data-theme="dark"] { --bg: #0b0d12; --panel: #141824; --panel-muted: #1b2132; --text: #f1f4f9; --muted: #a5afc2; --border: rgba(241, 244, 249, 0.1); --accent: #4aa3ff; --accent-ink: #1f7ae0; --shadow: 0 20px 60px rgba(0, 0, 0, 0.4); } [data-theme="dark"] body { background: radial-gradient(circle at top, #131826 0%, var(--bg) 60%); } [data-theme="dark"] .download-card { background: #121826; } [data-theme="dark"] .progress { background: #2a3349; } [data-theme="dark"] .log-output { background: #080b12; color: #d8e4f3; } @media (max-width: 900px) { .topbar { grid-template-columns: 1fr; } } @media (max-width: 640px) { .page { padding: 32px 16px 48px; } }