:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@keyframes progress{0%{width:100%}to{width:0}}.notification{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:16px 24px;border-radius:8px;box-shadow:0 4px 20px #00000026;color:#fff;display:flex;align-items:center;gap:16px;z-index:1000;min-width:320px;max-width:90%;opacity:0;transform:translate(-50%,-20px);animation:slide-in .3s ease-out forwards;overflow:hidden}@keyframes slide-in{to{opacity:1;transform:translate(-50%)}}.notification.hiding{opacity:0;transform:translate(-50%,-20px);transition:opacity .3s ease-in,transform .3s ease-in}.notification:before{content:"";position:absolute;bottom:0;left:0;height:4px;background-color:#ffffff80;animation:progress 3s linear forwards}.notification.visible{opacity:1;transform:translate(-50%)}.notification.success{background-color:#48bb78}.notification.error{background-color:#f56565}.notification.info{background-color:#4299e1}.notification .icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.notification .icon svg{width:24px;height:24px}.notification p{margin:0;flex-grow:1;font-size:1rem}.notification .close-btn{background:none;border:none;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;opacity:.8;padding:0 0 0 16px;align-self:flex-start;margin-top:-4px}.notification .close-btn:hover{opacity:1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#333}.app{max-width:800px;margin:0 auto;padding:20px}header{text-align:center;color:#fff;margin-bottom:30px}header h1{font-size:2.5rem;margin-bottom:10px}header p{font-size:1.1rem;opacity:.9}.container{max-width:800px;margin:50px auto;padding:40px;background:#fff;border-radius:10px;box-shadow:0 10px 30px #0000004d;text-align:center}.loading,.error{min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center}.mode-selector{display:flex;gap:10px;justify-content:center;margin-bottom:30px}.mode-selector button{padding:12px 30px;font-size:1rem;border:2px solid white;background:#fff3;color:#fff;border-radius:8px;cursor:pointer;transition:all .3s}.mode-selector button.active{background:#fff;color:#667eea}.mode-selector button:hover{background:#ffffff4d}.main-content{background:#fff;border-radius:10px;padding:25px;box-shadow:0 4px 15px #0000001a}.encode-panel,.decode-panel{display:flex;flex-direction:column;gap:20px}.encode-panel h2,.decode-panel h2{color:#667eea;margin-bottom:0;text-align:center}.key-manager{background:#f9f9f9;padding:20px;border-radius:8px;border:1px solid #e0e0e0;display:flex;flex-direction:column;gap:15px}.key-manager h3{margin-bottom:0;color:#667eea;text-align:center}.key-input-group{display:flex;flex-direction:column;gap:5px}.key-input-group label{font-weight:500;color:#555}.key-input-group input{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:6px;font-size:.95rem}.key-method{display:flex;gap:20px;justify-content:center}.key-method label{display:flex;align-items:center;gap:8px;cursor:pointer}.random-key,.password-key{display:flex;flex-direction:column;gap:10px}.password-key input{padding:10px;border:2px solid #e0e0e0;border-radius:6px;font-size:.95rem}.password-key .warning-text{background-color:#fffbe6;border:1px solid #ffe58f;border-radius:6px;padding:10px;font-size:.9rem;color:#8a6d3b}.key-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.uploader{margin-bottom:0}.drop-zone{border:3px dashed #ccc;border-radius:10px;padding:40px;text-align:center;cursor:pointer;transition:all .3s;background:#fafafa;min-height:250px;display:flex;align-items:center;justify-content:center}.drop-zone:hover,.drop-zone.dragging{border-color:#667eea;background:#f0f4ff}.placeholder p{margin:10px 0;color:#666}.placeholder .hint{font-size:.9rem;color:#999}.preview{text-align:center;width:100%}.preview img{max-width:100%;max-height:200px;width:auto;height:auto;border-radius:8px;margin-bottom:10px;object-fit:contain}.file-info{color:#666;font-size:.9rem}textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;margin-bottom:0}textarea:focus{outline:none;border-color:#667eea}button{padding:10px 20px;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;transition:all .3s;font-weight:500}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#48bb78;color:#fff}.btn-secondary:hover{background:#38a169}.btn-secondary:disabled{background:#ccc}.btn-danger{background:#f56565;color:#fff}.btn-danger:hover{background:#e53e3e}.btn-small{padding:5px 12px;font-size:.85rem}.btn-large{width:100%;padding:15px;font-size:1.1rem}.result{margin-top:10px;padding:20px;background:#f9f9f9;border-radius:8px}.result h3{color:#48bb78;margin-bottom:15px}.result img{max-width:100%;border-radius:8px;margin-bottom:15px}@media(max-width:768px){.app{padding:10px}.main-content{padding:15px}.mode-selector button{padding:10px 20px}}
