*, *::before, *::after { box-sizing: border-box; } :root { --bg: #0f1419; --surface: #1a2332; --border: #2d3a4d; --text: #e8eef7; --muted: #8b9cb3; --accent: #5b9fd4; --danger: #c75c5c; --ok: #5a9e6a; --focus: #e0b045; font-family: system-ui, "Segoe UI", Roboto, Ubuntu, sans-serif; } body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--text); line-height: 1.5; } .top { padding: 1.25rem 1.5rem 0.5rem; max-width: 52rem; margin: 0 auto; } .top h1 { margin: 0 0 0.25rem; font-size: 1.35rem; font-weight: 600; } .tagline { margin: 0; color: var(--muted); font-size: 0.95rem; } .tabs { display: flex; gap: 0.35rem; padding: 0 1.5rem; max-width: 52rem; margin: 0 auto 0.75rem; border-bottom: 1px solid var(--border); } .tab { appearance: none; border: none; background: transparent; color: var(--muted); padding: 0.55rem 0.85rem; cursor: pointer; font-size: 0.95rem; border-bottom: 2px solid transparent; margin-bottom: -1px; } .tab:hover { color: var(--text); } .tab.is-active { color: var(--text); border-bottom-color: var(--accent); } main { max-width: 52rem; margin: 0 auto; padding: 0 1.5rem 2rem; } .panel[hidden] { display: none !important; } .panel { padding-top: 0.75rem; } .field { display: block; } .label { display: block; font-size: 0.9rem; color: var(--muted); margin-bottom: 0.35rem; } textarea { width: 100%; padding: 0.65rem 0.75rem; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font-size: 0.95rem; resize: vertical; min-height: 8rem; } textarea:focus { outline: 2px solid var(--focus); outline-offset: 1px; } .row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin-top: 0.65rem; } .actions { margin-top: 0.85rem; } .inline { font-size: 0.9rem; color: var(--muted); cursor: pointer; user-select: none; } .btn { appearance: none; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); color: var(--text); padding: 0.5rem 1rem; font-size: 0.95rem; cursor: pointer; } .btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; } .btn.primary { background: #2a4a66; border-color: #3d6a8a; } .btn.primary:hover { background: #335c80; } .btn.success { background: #264530; border-color: #3a6b48; } .btn.success:hover { background: #2f563a; } .btn.danger { background: #4a2a2a; border-color: #6b3d3d; } .btn.danger:hover { background: #5c3434; } .btn.danger.outline { background: transparent; } .btn.ghost { background: transparent; } .btn.wide { flex: 1 1 10rem; min-height: 3.25rem; font-size: 1.05rem; } .status { min-height: 1.25rem; font-size: 0.9rem; color: var(--muted); margin-top: 0.5rem; } .review-bar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; margin-bottom: 1rem; } .badge { font-size: 0.95rem; color: var(--muted); } .hint { font-size: 0.85rem; color: var(--muted); } kbd { display: inline-block; padding: 0.1rem 0.35rem; border-radius: 4px; border: 1px solid var(--border); background: var(--surface); font-size: 0.8rem; font-family: inherit; } .empty { padding: 1.5rem; border: 1px dashed var(--border); border-radius: 10px; color: var(--muted); } .review-card { text-align: center; padding: 1.5rem 1rem 1rem; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); } .word { margin: 0 0 1.25rem; font-size: clamp(1.75rem, 5vw, 2.75rem); font-weight: 600; letter-spacing: 0.02em; line-height: 1.2; word-break: break-word; } .review-actions { justify-content: center; margin-bottom: 0.75rem; } .key-hint { opacity: 0.65; font-size: 0.85em; margin-left: 0.25rem; } .stats { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-bottom: 1rem; } .stat { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.5rem 0.75rem; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); min-width: 6rem; } .stat strong { font-size: 1.25rem; } .stat span { font-size: 0.8rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; } .columns { display: grid; gap: 1.25rem; } @media (min-width: 720px) { .columns { grid-template-columns: 1fr 1fr; } } .col h2 { margin: 0 0 0.5rem; font-size: 1rem; font-weight: 600; } .danger-zone { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); } .foot { max-width: 52rem; margin: 0 auto; padding: 0 1.5rem 1.5rem; font-size: 0.85rem; color: var(--muted); }