@keyframes ai-spin{0%{transform:translate(-50%,-50%) rotate(0)}100%{transform:translate(-50%,-50%) rotate(360deg)}}.mode-toggle-container{background-color:#e3e6ea;padding:4px;border-radius:100px;display:flex;width:fit-content;min-width:320px;max-width:95%;margin:15px auto 20px;position:relative;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.08);gap:6px}.mode-toggle-btn{flex:1;border:none;padding:10px 20px;border-radius:100px;background:0 0;color:#5f6368;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px;outline:0!important;transition:all .2s ease;position:relative;isolation:isolate;box-shadow:none;white-space:nowrap}.mode-toggle-btn:hover{color:#1f1f1f}.mode-toggle-btn.normal-mode.active{background-color:#fff;color:#1f1f1f;box-shadow:0 1px 3px rgba(0,0,0,.1);font-weight:600}.mode-toggle-btn.ai-mode{overflow:hidden;--ai-bg:#e3e6ea}.mode-toggle-btn.ai-mode:hover{--ai-bg:#edeff1}.mode-toggle-btn.ai-mode.active{color:#1f1f1f;font-weight:600;--ai-bg:#ffffff}.mode-toggle-btn.ai-mode::before{content:"";position:absolute;top:50%;left:50%;width:200%;height:200%;padding:50%;background:conic-gradient(#3186ff00 0deg,#34a853 43deg,#ffd314 65deg,#ff4641 105deg,#3186ff 144deg,#3186ff 180deg,#3186ff00 324deg,#3186ff00 360deg);animation:ai-spin 3s linear infinite;opacity:0;transition:opacity .5s ease;z-index:-2;pointer-events:none;aspect-ratio:1/1}.mode-toggle-btn.ai-mode.active::before,.mode-toggle-btn.ai-mode.suggestion-pulse::before,.mode-toggle-btn.ai-mode:hover::before{opacity:1}.mode-toggle-btn.ai-mode.suggestion-pulse{transform:scale(1.02);--ai-bg:#f8f9fa}.mode-toggle-btn.ai-mode.suggestion-pulse::before{animation-duration:1.5s}.mode-toggle-btn.ai-mode::after{content:"";position:absolute;inset:2px;border-radius:inherit;background:var(--ai-bg);z-index:-1;transition:background .3s ease}.default-mode{display:block}.default-mode.hidden{display:none}.keyboard-mode{display:none}.keyboard-mode.active{display:block;animation:fadeIn .3s ease-in}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.input-wrapper{position:relative;display:inline-block;width:100%;margin-bottom:0;z-index:100;overflow:hidden;padding-bottom:25px}#text_letters.form-control-lg{margin-bottom:0!important;height:60px;font-size:18px;font-weight:500;border-radius:12px;border:2px solid #e3e6ea;padding-right:15px;box-shadow:none}#text_letters[readonly]{background-color:#fff;cursor:text;opacity:1;caret-color:transparent}#text_letters:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.15)}.fake-cursor{position:absolute;width:2px;height:1.3em;background:linear-gradient(to bottom,#e91e63,#c2185b);pointer-events:none;animation:blink 1s step-end infinite;display:none;top:0%;transform:translateY(100%);z-index:10;box-shadow:0 0 8px rgba(233,30,99,.6)}.fake-cursor.show{display:block}@keyframes blink{0%,50%{opacity:1}100%,51%{opacity:0}}.text-measurer{position:absolute;visibility:hidden;white-space:pre;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;left:0;top:0}.input-overlay-group{position:absolute;top:30px;right:10px;transform:translateY(50%);display:flex;align-items:center;gap:10px;z-index:20;background:#fff;padding:5px 8px 5px 15px;border-radius:50px;box-shadow:0 4px 15px rgba(0,0,0,.1);border:1px solid #f0f0f0;pointer-events:auto;height:36px}.char-count{font-size:12px;color:#6c757d;font-weight:600;background:0 0;padding:0;white-space:nowrap;line-height:1}.action-buttons{display:none;gap:8px;padding-left:10px;border-left:1px solid #eee}.action-buttons.show{display:flex;animation:fadeInRight .3s ease}@keyframes fadeInRight{from{opacity:0;transform:translateX(5px)}to{opacity:1;transform:translateX(0)}}.btn-action{width:30px;height:30px;border:none;border-radius:50%;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;box-shadow:none;outline:0!important}.btn-primary-custom{background:#e3f2fd;color:#1976d2}.btn-primary-custom:hover{background:#1976d2;color:#fff;transform:translateY(-2px);box-shadow:0 3px 8px rgba(25,118,210,.3)}.btn-primary-custom:active{transform:scale(.95)}.btn-destructive{background:#ffebee;color:#d32f2f}.btn-destructive:hover{background:#d32f2f;color:#fff;transform:translateY(-2px);box-shadow:0 3px 8px rgba(211,47,47,.3)}.btn-destructive:active{transform:scale(.95)}.toast-notification{position:fixed;top:20px;right:20px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;padding:14px 24px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.3);z-index:10000;opacity:0;transform:translateX(400px);transition:all .4s cubic-bezier(.4,0,.2,1);font-weight:600;font-size:14px}.toast-notification.show{opacity:1;transform:translateX(0)}.tabs-horizontal-container{border-bottom:1px solid #e9ecef;background:#f8f9fa;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch;border-radius:12px 12px 0 0;margin-top:15px;scrollbar-width:thin;scrollbar-color:#ced4da #f1f3f5}.tabs-horizontal-container::-webkit-scrollbar{height:4px}.tabs-horizontal-container::-webkit-scrollbar-track{background:#f1f3f5}.tabs-horizontal-container::-webkit-scrollbar-thumb{background:#ced4da;border-radius:2px}.nav-tabs-horizontal{display:inline-flex;border:none;flex-wrap:nowrap;padding:8px 8px 0;margin-bottom:0;gap:4px}.nav-tabs-horizontal .nav-item{flex-shrink:0}.nav-tabs-horizontal .nav-link{border:none;border-radius:8px 8px 0 0;padding:8px 16px;background:0 0;color:#6c757d;font-weight:500;transition:all .2s ease;white-space:nowrap;cursor:pointer;font-size:13px;position:relative}.nav-tabs-horizontal .nav-link:hover{color:#212529;background:rgba(0,0,0,.03)}.nav-tabs-horizontal .nav-link.active{color:#007bff;background:#fff;font-weight:600;box-shadow:0 -2px 5px rgba(0,0,0,.02)}.tab-content-area{background:#fff;border:1px solid #e9ecef;border-top:none;border-radius:0 0 12px 12px;padding:0;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.03)}.tab-pane{display:none}.tab-pane.active{display:block}.characters-grid-container{position:relative;background:#f8f9fa;border-radius:0 0 12px 12px;overflow:hidden}.characters-grid-wrapper{display:grid;grid-template-rows:repeat(4,55px);grid-auto-flow:column;grid-auto-columns:55px;gap:10px;padding:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#cfd8dc #f8f9fa}@media (max-width:576px){.characters-grid-wrapper{grid-template-rows:repeat(3,50px);grid-auto-columns:50px;gap:8px;padding:12px}}@media (min-width:768px){.characters-grid-wrapper{grid-template-rows:repeat(5,60px);grid-auto-columns:60px}}.characters-grid-wrapper::-webkit-scrollbar{height:8px}.characters-grid-wrapper::-webkit-scrollbar-track{background:0 0}.characters-grid-wrapper::-webkit-scrollbar-thumb{background:#cfd8dc;border-radius:4px;border:2px solid #f8f9fa}.characters-grid-wrapper::-webkit-scrollbar-thumb:hover{background:#b0bec5}.loading-spinner{text-align:center;padding:60px 20px;color:#adb5bd}.spinner{border:3px solid #f1f3f5;border-top:3px solid #007bff;border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite;margin:0 auto 15px}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.char-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:1px solid #e9ecef;border-radius:12px;background:#fff;cursor:pointer;font-size:24px;color:#343a40;transition:all .2s ease;box-shadow:0 1px 2px rgba(0,0,0,.02);user-select:none;-webkit-tap-highlight-color:transparent;position:relative}.char-button:hover{background:#fff;border-color:#e91e63;transform:translateY(-3px);box-shadow:0 4px 10px rgba(233,30,99,.15);color:#e91e63;z-index:5}.char-button:active{transform:scale(.96);box-shadow:none}@media (max-width:768px){.char-button{font-size:20px;border-radius:10px}}#historyTab .char-button{background:#fffcf5;border-color:#f5ecd7}#historyTab .char-button:hover{border-color:#ffc107;box-shadow:0 4px 10px rgba(255,193,7,.2);color:#b78a02}.scroll-indicator{position:absolute;top:0;bottom:0;width:40px;display:none;align-items:center;justify-content:center;font-size:24px;color:#adb5bd;z-index:5;pointer-events:none;opacity:0;transition:opacity .3s ease}.scroll-indicator.show{display:flex;opacity:1}.scroll-indicator.left{left:0;background:linear-gradient(to right,rgba(248,249,250,.95),transparent)}.scroll-indicator.right{right:0;background:linear-gradient(to left,rgba(248,249,250,.95),transparent)}#copyHistoryTab .copy-history-wrapper{display:grid;grid-template-rows:repeat(4,auto);grid-auto-flow:column;grid-auto-columns:minmax(280px,1fr);gap:10px;padding:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;max-height:320px}@media (max-width:768px){#copyHistoryTab .copy-history-wrapper{grid-template-rows:repeat(3,auto);grid-auto-columns:minmax(260px,1fr)}}#copyHistoryTab .copy-item{background:#f0fff4;border:1px solid #c3e6cb;border-radius:10px;padding:10px 14px;cursor:pointer;transition:all .2s ease;word-wrap:break-word;position:relative;min-height:65px}#copyHistoryTab .copy-item:hover{background:#fff;border-color:#28a745;transform:translateY(-2px);box-shadow:0 4px 12px rgba(40,167,69,.15);z-index:10}#copyHistoryTab .copy-item .copy-text{font-size:13px;color:#155724;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;padding-right:40px}#copyHistoryTab .copy-item .copy-time{font-size:11px;color:#9aa0a6;font-weight:500}#copyHistoryTab .copy-item .recopy-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600;cursor:pointer;opacity:0;transition:all .2s ease}#copyHistoryTab .copy-item:hover .recopy-btn{opacity:1}#copyHistoryTab .copy-item .recopy-btn:hover{background:#2e7d32;color:#fff}.empty-history{text-align:center;padding:80px 30px;color:#adb5bd;font-style:italic;font-size:14px;font-weight:400}.scroll-controls{display:flex;justify-content:center;gap:10px;padding:10px;background:#f8f9fa;border-top:1px solid #dee2e6}.scroll-btn{padding:6px 16px;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 4px rgba(0,123,255,.2)}.scroll-btn:hover{background:linear-gradient(135deg,#0056b3,#004085);transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,123,255,.3)}.scroll-btn:active{transform:translateY(0)}
#SymbolTextGenerator.sticky .input-overlay-group,#SymbolTextGenerator.sticky .mode-toggle-container{display:none}
#SymbolTextGenerator.sticky .input-wrapper{padding-bottom:10px;}
button.btn-action.btn-primary-custom {
    background-image: url(/assets/images/copy-icon.svg);
    background-repeat: no-repeat;
    background-position: center;
}