:root { color-scheme: dark; --bg: #0c0f14; --card: #141a22; --border: #2a3340; --text: #e8eef6; --muted: #8b98a8; --accent: #3b82f6; --accent-hover: #60a5fa; --danger: #f87171; --ok: #4ade80; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--text); } body.popup { width: 340px; padding: 14px; } body.page { max-width: 480px; margin: 0 auto; padding: 20px 16px 40px; min-height: 100vh; } .head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; } .logo { border-radius: 8px; } .grow { flex: 1; min-width: 0; } h1 { margin: 0; font-size: 16px; font-weight: 600; } .sub { margin: 2px 0 0; font-size: 11px; color: var(--muted); } .blurb { margin: 0 0 12px; font-size: 13px; line-height: 1.45; color: var(--muted); } .badge { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 4px 8px; border-radius: 999px; border: 1px solid var(--border); } .badge.locked { color: #fbbf24; border-color: #854d0e; } .badge.unlocked { color: var(--ok); border-color: #166534; } .error { background: #450a0a; border: 1px solid #7f1d1d; color: #fecaca; padding: 8px 10px; border-radius: 8px; font-size: 12px; margin: 0 0 12px; } .ok { color: var(--ok); font-size: 14px; font-weight: 500; } .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; font-size: 12px; color: var(--muted); } .field input, .field textarea { border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); padding: 9px 10px; font-size: 13px; } .field textarea { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; resize: vertical; } .pw-row { display: flex; gap: 6px; } .pw-row input { flex: 1; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); padding: 9px 10px; font-size: 13px; } .eye { width: 40px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); cursor: pointer; } button.primary, button.ghost, button.danger { width: 100%; border-radius: 8px; padding: 10px 12px; font-size: 13px; font-weight: 500; cursor: pointer; margin-bottom: 6px; border: 1px solid var(--border); text-align: left; } button.primary { background: var(--accent); border-color: transparent; color: #fff; } button.primary:hover { background: var(--accent-hover); } button.primary:disabled { opacity: 0.45; cursor: not-allowed; } button.ghost { background: var(--card); color: var(--text); } button.danger { background: transparent; border-color: #7f1d1d; color: var(--danger); } .meta, .label { font-size: 11px; color: var(--muted); margin: 0 0 6px; } .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; } .break { word-break: break-all; margin: 0 0 12px; color: var(--text); } .foot { margin: 14px 0 0; font-size: 10px; color: var(--muted); line-height: 1.4; } .row { display: flex; flex-wrap: wrap; gap: 6px; } .row button { width: auto; flex: 1; min-width: 100px; } .phrase-grid { list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; } .phrase-grid li { border: 1px solid var(--border); border-radius: 999px; padding: 8px 10px; font-family: ui-monospace, monospace; font-size: 12px; display: flex; gap: 6px; } .phrase-grid .n { color: var(--muted); } .reveal-box { border: 1px dashed var(--border); border-radius: 12px; padding: 24px; text-align: center; margin-bottom: 12px; } .quiz-row { margin-bottom: 14px; } .q-label { margin: 0 0 6px; font-size: 13px; font-weight: 500; } .choices { display: flex; flex-wrap: wrap; gap: 6px; } .choice { border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text); padding: 8px 12px; font-family: ui-monospace, monospace; font-size: 12px; cursor: pointer; width: auto !important; margin: 0 !important; } .choice.selected { border-color: var(--accent); background: rgba(59, 130, 246, 0.15); color: var(--accent-hover); }