*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --bg: #0d1117; --surface: #161b22; --surface2: #21262d; --border: #30363d; --text: #e6edf3; --muted: #7d8590; --accent: #7c3aed; --accent-hover: #6d28d9; --accent-light: rgba(124, 58, 237, 0.15); --danger: #f85149; --danger-bg: rgba(248, 81, 73, 0.1); --success: #3fb950; --radius: 10px; } body { background: var(--bg); color: var(--text); font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; font-size: 15px; line-height: 1.6; min-height: 100vh; } /* ---- LAYOUT ---- */ .app { display: flex; flex-direction: column; min-height: 100vh; } header { background: var(--surface); border-bottom: 1px solid var(--border); padding: 0 28px; height: 58px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; } .logo { font-size: 1.15rem; font-weight: 700; color: var(--text); text-decoration: none; display: flex; align-items: center; gap: 8px; letter-spacing: -0.3px; } .logo-icon { font-size: 1.2rem; } .nav-btn { background: var(--accent); color: #fff; text-decoration: none; padding: 7px 16px; border-radius: 8px; font-size: 0.85rem; font-weight: 600; transition: background 0.2s; } .nav-btn:hover { background: var(--accent-hover); } main { flex: 1; padding: 28px 16px; } footer { background: var(--surface); border-top: 1px solid var(--border); padding: 14px 28px; text-align: center; color: var(--muted); font-size: 0.78rem; } /* ---- CONTAINER & CARD ---- */ .container { max-width: 980px; margin: 0 auto; } .hero { text-align: center; padding: 20px 0 28px; } .hero h1 { font-size: 2rem; font-weight: 700; background: linear-gradient(135deg, #e6edf3, #7c3aed); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 8px; } .hero p { color: var(--muted); font-size: 1rem; } .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; } .center-card { max-width: 420px; margin: 60px auto; text-align: center; } .center-card h2 { font-size: 1.3rem; margin-bottom: 6px; } .lock-icon { font-size: 3rem; margin-bottom: 12px; } .spinner { width: 36px; height: 36px; border: 3px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto 16px; } @keyframes spin { to { transform: rotate(360deg); } } /* ---- FORMS ---- */ .form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; } .form-group label { font-size: 0.8rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; } .form-group input, .form-group select, .form-group textarea { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; color: var(--text); padding: 9px 13px; font-size: 0.9rem; font-family: inherit; transition: border-color 0.2s, box-shadow 0.2s; outline: none; width: 100%; } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-light); } .form-group textarea { font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace; font-size: 0.85rem; resize: vertical; line-height: 1.65; min-height: 320px; } .form-row { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; } .form-row .form-group { flex: 1; min-width: 140px; } .form-footer { margin-top: 4px; align-items: flex-end; } .submit-area { display: flex; align-items: flex-end; padding-bottom: 16px; } /* ---- BUTTONS ---- */ .btn-primary { background: var(--accent); color: #fff; border: none; border-radius: 8px; padding: 10px 22px; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: background 0.2s, transform 0.1s; white-space: nowrap; } .btn-primary:hover { background: var(--accent-hover); } .btn-primary:active { transform: scale(0.98); } .btn-primary:disabled { opacity: 0.55; cursor: not-allowed; } .btn-secondary { background: var(--surface2); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 8px 16px; font-size: 0.85rem; font-weight: 500; cursor: pointer; transition: background 0.2s; white-space: nowrap; } .btn-secondary:hover { background: var(--border); } /* ---- ALERTS ---- */ .alert { border-radius: 8px; padding: 10px 14px; font-size: 0.85rem; margin-bottom: 16px; } .alert-error { background: var(--danger-bg); border: 1px solid rgba(248, 81, 73, 0.35); color: var(--danger); } /* ---- PASTE VIEW ---- */ .paste-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; } .paste-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 8px; } .paste-meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 0.78rem; color: var(--muted); align-items: center; } .lang-badge { background: var(--accent-light); color: #a78bfa; border: 1px solid rgba(124, 58, 237, 0.3); border-radius: 5px; padding: 1px 8px; font-family: monospace; font-size: 0.75rem; } .paste-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; } .code-toolbar { padding: 6px 0 10px; border-bottom: 1px solid var(--border); margin-bottom: 0; } .code-wrapper { border-radius: 8px; overflow: hidden; border: 1px solid var(--border); margin-top: 12px; } .code-wrapper pre { margin: 0; overflow-x: auto; } .code-wrapper code { font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace !important; font-size: 0.84rem !important; } .hljs { background: #0d1117 !important; padding: 20px !important; } .muted { color: var(--muted); } /* ---- RESPONSIVE ---- */ @media (max-width: 640px) { .form-row { flex-direction: column; } .paste-header { flex-direction: column; } .paste-actions { width: 100%; justify-content: flex-start; } .hero h1 { font-size: 1.5rem; } }