/* enɳoté - Dark Theme Styles */ /* Color Palette from spec */ :root { --background: #171717; --surface: #212121; --surface-elevated: #2A2A2A; --text-primary: #FAFAFA; --text-secondary: #A3A3A3; --accent: #FBBF23; --accent-muted: #78590A; --success: #4ADE80; --border: #2E2E2E; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif; background-color: var(--background); color: var(--text-primary); min-height: 100vh; line-height: 1.5; } .container { max-width: 480px; margin: 0 auto; padding: 2rem 1.5rem; min-height: 100vh; display: flex; flex-direction: column; } /* Header */ header { text-align: center; margin-bottom: 2.5rem; } header h1 { font-size: 2rem; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 0.5rem; } .tagline { color: var(--text-secondary); font-size: 0.9rem; } /* Main Content */ main { flex: 1; } .section { display: flex; flex-direction: column; gap: 1rem; } .hidden { display: none !important; } /* Input Section */ label { font-size: 0.875rem; color: var(--text-secondary); font-weight: 500; } textarea { width: 100%; padding: 1rem; background-color: var(--surface); border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); font-family: inherit; font-size: 1rem; line-height: 1.6; resize: vertical; min-height: 200px; transition: border-color 0.2s ease; } textarea::placeholder { color: var(--text-secondary); opacity: 0.6; } textarea:focus { outline: none; border-color: var(--accent); } .note-count { text-align: right; color: var(--text-secondary); font-size: 0.875rem; } .note-count span { color: var(--accent); font-weight: 600; } /* Buttons */ button { padding: 1rem 1.5rem; border-radius: 12px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.2s ease; border: none; } .primary-button { background-color: var(--accent); color: var(--background); } .primary-button:hover { background-color: #E5AC1F; transform: translateY(-1px); } .primary-button:active { transform: translateY(0); } .primary-button:disabled { background-color: var(--accent-muted); cursor: not-allowed; transform: none; } .secondary-button { background-color: var(--surface); color: var(--text-primary); border: 1px solid var(--border); } .secondary-button:hover { background-color: var(--surface-elevated); border-color: var(--text-secondary); } /* QR Section */ #qr-section { align-items: center; text-align: center; } .qr-container { background-color: white; padding: 1.5rem; border-radius: 16px; margin-bottom: 1.5rem; } #qr-canvas { display: block; width: 200px; height: 200px; } /* Timer */ .timer-container { width: 100%; margin-bottom: 1rem; } .timer-bar { height: 4px; background-color: var(--surface); border-radius: 2px; overflow: hidden; margin-bottom: 0.5rem; } .timer-progress { height: 100%; background-color: var(--accent); width: 100%; transition: width 1s linear; } .timer-progress.warning { background-color: #F97316; } .timer-progress.critical { background-color: #EF4444; } .timer-text { color: var(--text-secondary); font-size: 0.875rem; } .timer-text span { color: var(--text-primary); font-weight: 500; font-variant-numeric: tabular-nums; } .instruction { color: var(--text-secondary); font-size: 0.9rem; margin-bottom: 1.5rem; } /* Footer */ footer { margin-top: 2rem; text-align: center; padding-top: 1.5rem; border-top: 1px solid var(--border); } footer p { color: var(--text-secondary); font-size: 0.8rem; } /* Responsive */ @media (max-width: 480px) { .container { padding: 1.5rem 1rem; } header h1 { font-size: 1.75rem; } textarea { min-height: 180px; } } /* Animation for QR appearance */ @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } #qr-section:not(.hidden) { animation: fadeIn 0.3s ease-out; }