:root { --bg-color: #2c2c2c; --text-color: #e0e0e0; --textarea-bg: #3a3a3a; --textarea-border: #4a4a4a; --button-bg: linear-gradient(45deg, #ff0000, #ff0000); --button-text: #ffffff; --toggle-bg: #3a3a3a; --toggle-button: #ffffff; --modal-bg: #2c2c2c; --modal-border: #4a4a4a; --checkbox-bg: #3a3a3a; --input-bg: #3a3a3a; --modal-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); --input-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .light-mode { --bg-color: #f0f0f0; --text-color: #333333; --textarea-bg: #ffffff; --textarea-border: #cccccc; --toggle-bg: #ffffff; --toggle-button: #3a3a3a; --modal-bg: #ffffff; --modal-border: #cccccc; --checkbox-bg: #ffffff; --input-bg: #ffffff; } body { margin: 0; padding: 0; font-family: 'Roboto', sans-serif; background-color: var(--bg-color); color: var(--text-color); transition: background-color 0.3s, color 0.3s; } .container { display: flex; flex-direction: column; height: 100vh; padding: 20px; box-sizing: border-box; transition: filter 0.3s ease; } .container.blurred { filter: blur(10px); pointer-events: none; user-select: none; position: relative; z-index: 1000; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; height: 50px; } .header h1 { font-size: 24px; margin: 0; } .controls { display: flex; align-items: center; gap: 12px; } .textarea { flex-grow: 1; border: 1px solid var(--textarea-border); border-radius: 8px; padding: 15px; font-size: 16px; resize: none; background-color: var(--textarea-bg); color: var(--text-color); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; transform-style: preserve-3d; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .textarea:focus { outline: none; border-color: #ff0000; box-shadow: 0 2px 15px rgba(255, 123, 0, 0.2), 0 8px 20px rgba(0, 0, 0, 0.1); transform: translateY(-2px); } .textarea.locked { background-color: rgba(var(--textarea-bg), 0.5); cursor: not-allowed; } .button { padding: 10px 18px; color: var(--button-text); border-radius: 24px; font-weight: 600; font-size: 1.05rem; background: var(--button-bg); border: none; cursor: pointer; transform-style: preserve-3d; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 4px 12px rgba(255, 102, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2); } .button[style*="background: rgb(102, 102, 102)"], .button[style*="background: #666"] { background: var(--bg-color) !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } .button:hover { transform: translateY(-4px) scale(1.05); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3), 0 6px 8px rgba(0, 0, 0, 0.2), 0 -2px 6px rgba(255, 255, 255, 0.1) inset; } .button:active { transform: translateY(0) scale(0.98); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1), 0 -1px 4px rgba(255, 255, 255, 0.1) inset; } .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; z-index: 1500; } .modal { background-color: var(--modal-bg); padding: 24px; border-radius: 16px; box-shadow: var(--modal-shadow); width: 85%; max-width: 360px; border: 1px solid var(--modal-border); position: relative; overflow: hidden; } .modal h2 { margin: 0 0 20px 0; font-size: 1.4rem; } .checkbox-group { margin: 20px 0; } .checkbox-label { display: flex; align-items: center; margin: 10px 0; cursor: pointer; } .checkbox { margin-right: 10px; width: 18px; height: 18px; background-color: var(--checkbox-bg); border: 2px solid var(--textarea-border); border-radius: 4px; appearance: none; cursor: pointer; transition: all 0.2s ease; } .checkbox:checked { background-color: #ff0000; border-color: #ff0000; } .input { width: calc(100% - 16px); padding: 12px; margin: 10px 0; border: 1px solid var(--textarea-border); border-radius: 8px; background-color: var(--input-bg); color: var(--text-color); font-size: 1rem; box-shadow: var(--input-shadow); transform-style: preserve-3d; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .input:focus { outline: none; border-color: #ff0000; box-shadow: 0 2px 15px rgba(255, 123, 0, 0.2), 0 4px 8px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1) inset; transform: translateY(-1px); } .button-group { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; } .theme-switch { position: relative; display: inline-block; width: 60px; height: 34px; perspective: 800px; transform: scale(0.9); } .theme-switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--toggle-bg); transition: .4s; border-radius: 34px; transform-style: preserve-3d; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), 0 -1px 2px rgba(255, 255, 255, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2) inset; } .slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: var(--toggle-button); transition: .4s; border-radius: 50%; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), 0 4px 8px rgba(0, 0, 0, 0.1); transform: translateZ(2px); } input:checked + .slider:before { transform: translateX(26px) translateZ(2px); } .lock-icon { cursor: pointer; transition: all 0.3s ease; } .lock-icon:hover { transform: scale(1.1); } .password-modal { z-index: 1001; animation: slideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .Toaster { position: fixed !important; z-index: 2000 !important; pointer-events: auto !important; } .container.blurred + div[data-sonner-toaster], div[data-sonner-toaster] { filter: none !important; pointer-events: auto !important; position: relative; z-index: 2000 !important; } @keyframes slideIn { from { opacity: 0; transform: translateY(-20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }