body,html{-webkit-text-size-adjust:100%;margin:0;overflow-x:hidden;padding:0;position:relative;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}img{height:auto;max-width:100%}.admin-login{align-items:center;background:#f8f9fa;display:flex;justify-content:center;min-height:100vh}.login-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:400px;padding:2.5rem;width:100%}.login-container h2{color:#333;margin-bottom:2rem;text-align:center}.checkbox-group{align-items:center;display:flex;margin-bottom:1.5rem}.checkbox-group label{align-items:center;color:#666;cursor:pointer;display:flex;font-size:.9rem}.checkbox-group input[type=checkbox]{cursor:pointer;margin-right:.5rem;width:auto}.form-group input{border:2px solid #e5e7eb;font-size:1rem;padding:.75rem}.form-group input:focus{border-color:#6366f1}.error-message{padding:.75rem}button{background:#4f46e5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem;transition:all .2s;width:100%}button:hover:not(:disabled){background:#4338ca}button:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.content-form-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.content-form{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-height:90vh;max-width:800px;overflow-y:auto;width:90%}.form-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1.5rem}.form-header h2{color:#333;margin:0}.close-btn{background:none;border:none;color:#666;cursor:pointer;font-size:1.5rem;padding:0;width:auto}.close-btn:hover{color:#333}.content-form form{padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#333;font-weight:700;margin-bottom:.5rem}.form-group input,.form-group textarea{border:2px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem;width:100%}.form-group textarea{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;min-height:80px;resize:vertical}.form-group textarea[placeholder*=\D574\C124]{border-left:4px solid #10b981}.form-group textarea[placeholder*=\B2E8\C5B4]{border-left:4px solid #8b5cf6}.form-group input:focus,.form-group textarea:focus{border-color:#6366f1;outline:none}.subtitles-section{margin-top:1rem}.subtitles-header h3{color:#333;margin:0}.btn-add{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.625rem 1.25rem;transition:all .2s;width:auto}.btn-add:hover{background:#059669}.subtitle-item{background:#fafafa;border:2px solid #e5e7eb;margin-bottom:1rem}.subtitle-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.subtitle-header span{color:#333;font-weight:700}.btn-remove{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.375rem .75rem;transition:all .2s;width:auto}.btn-remove:hover{background:#dc2626}.subtitle-fields{grid-gap:1rem;display:grid;gap:1rem}.time-fields{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.error-message{background:#fee2e2;color:#991b1b;font-weight:500;margin-bottom:1rem;padding:.875rem;text-align:center}.success-message{background:#d1fae5;border:2px solid #a7f3d0;color:#065f46;margin-bottom:1rem;padding:1rem}.success-message h4{font-size:1.1rem;margin:0 0 1rem}.success-details p,.url-display{margin:.5rem 0}.url-display{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:.75rem}.url-display code{color:#495057;font-family:Courier New,monospace;font-size:.9rem;word-break:break-all}.auto-close-notice{color:#6c757d;font-size:.9rem;font-style:italic;margin-top:1rem}.form-actions{border-top:1px solid #eee;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.btn-cancel{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s;width:auto}.btn-cancel:hover{background:#4b5563}.btn-submit{background:#4f46e5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s;width:auto}.btn-submit:hover:not(:disabled){background:#4338ca}.btn-submit:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.input-mode-toggle{display:flex;gap:.5rem}.input-mode-toggle button{background:#0000;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;font-weight:600;padding:.625rem 1.25rem;transition:all .2s;width:auto}.input-mode-toggle button:hover{border-color:#d1d5db}.input-mode-toggle button.active{background:#4f46e5;border-color:#4f46e5;color:#fff}.json-input-section{margin-top:1rem}.json-textarea{font-family:Courier New,monospace;font-size:.9rem;min-height:200px}.btn-parse{background:#06b6d4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem;transition:all .2s;width:auto}.btn-parse:hover{background:#0891b2}.parsed-info{background:#d1fae5;border:2px solid #a7f3d0;border-radius:8px;color:#065f46;padding:.875rem}.manual-input-section,.parsed-info{margin-top:1rem}.voice-selection{display:flex;gap:1.5rem;margin-top:.5rem}.radio-option{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:.5rem}.radio-option input[type=radio]{margin:0;width:auto}.radio-option span{color:#333}.admin-dashboard{background:#f8f9fa;min-height:100vh}.dashboard-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.25rem 2rem}.dashboard-header h1{color:#333;margin:0}.header-actions{gap:1rem}.btn-primary{background:#4f46e5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-primary:hover{background:#4338ca}.btn-secondary{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-secondary:hover{background:#4b5563}.contents-list{padding:2rem}.contents-header{margin-bottom:1.5rem}.contents-header h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.contents-list h2{color:#333;margin-bottom:1.5rem}.contents-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@media (max-width:768px){.contents-list,.dashboard-header{padding:1rem}.contents-grid{gap:1rem;grid-template-columns:1fr}}@media (max-width:480px){.dashboard-header{align-items:flex-start;flex-direction:column;gap:.75rem;padding:.75rem .5rem}.header-actions{justify-content:space-between;width:100%}}.content-card h3{color:#333;margin:0 0 .5rem}.content-card p{color:#666;margin:0 0 1rem}.content-actions{display:flex;flex-direction:column;flex-wrap:wrap;gap:.5rem}.viewer-url{background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;margin:.5rem 0;padding:.5rem}.viewer-url small{color:#6c757d;font-family:monospace;word-break:break-all}.btn-view{background:#10b981;border-radius:8px;color:#fff;font-weight:600;padding:.625rem 1.25rem;text-decoration:none;transition:all .2s}.btn-view:hover{background:#059669}.btn-admin-view{background:#ef4444;border-radius:8px;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;text-align:center;text-decoration:none;transition:all .2s}.btn-admin-view:hover{background:#dc2626;color:#fff;text-decoration:none}.btn-edit{background:#f59e0b;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-edit:hover{background:#d97706}.btn-publish{background:#14b8a6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-publish:hover{background:#0d9488}.btn-copy{background:#8b5cf6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-copy:hover{background:#7c3aed}.btn-tts{background:#06b6d4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-tts:hover{background:#0891b2}.btn-tts.regenerating{background:#6b7280;cursor:not-allowed;opacity:.7;position:relative}.btn-tts.regenerating:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#fff;content:"";height:16px;left:8px;margin:auto;position:absolute;top:50%;transform:translateY(-50%);width:16px}.btn-tts:disabled{background:#6b7280;cursor:not-allowed;opacity:.7}.btn-delete{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.btn-delete:hover{background:#dc2626}.deepgram-status{border-left:4px solid;border-radius:12px;margin:2rem;padding:1.5rem}.deepgram-status.valid{background:#d1fae5;border-color:#10b981;color:#065f46}.deepgram-status.invalid{background:#fee2e2;border-color:#ef4444;color:#991b1b}.deepgram-status h3{font-size:1.1rem;margin:0 0 .5rem}.deepgram-status p{margin:0 0 1rem}.api-key-guide{background:#ffffffb3;border-radius:5px;margin-top:1rem;padding:1rem}.api-key-guide ol{margin:.5rem 0 0 1rem;padding:0}.api-key-guide li{margin-bottom:.5rem}.api-key-guide a{color:#007bff;text-decoration:none}.api-key-guide a:hover{text-decoration:underline}.loading{align-items:center;color:#666;font-size:1.2rem;justify-content:center}.loading,.viewer{display:flex;height:100vh}.viewer{background:#f8f9fa;flex-direction:column;overflow-x:hidden}.viewer-header{background:#fff;border-bottom:1px solid #e9ecef;box-sizing:border-box;flex-shrink:0;justify-content:space-between;padding:.75rem 1.25rem}.header-content,.viewer-header{align-items:center;display:flex}.header-content{gap:.5rem}.back-button{align-items:center!important;background:#0000!important;border-radius:8px!important;box-sizing:border-box!important;color:#6b7280!important;cursor:pointer!important;display:inline-flex!important;flex-shrink:0!important;font-size:.9rem!important;font-weight:600!important;height:40px!important;justify-content:center!important;line-height:1!important;max-width:40px!important;min-width:40px!important;padding:.5rem!important;transition:all .2s!important;white-space:nowrap!important;width:40px!important}.back-button:hover{background:#f5f3ff;border-color:#6366f1;color:#6366f1}.back-button:focus{border-color:#6366f1;color:#6366f1;outline:none}.back-button-text{color:#6b7280;font-size:.9rem;font-weight:500;white-space:nowrap}.viewer-header h1{font-size:2rem}.viewer-header h1,.viewer-header h2{color:#333;flex:1 1;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-header h2{font-size:1.5rem}.header-right{align-items:center;display:flex;gap:1rem}.admin-mode-indicator{align-items:center;display:flex;gap:.75rem}.admin-badge{background:#ef4444;border-radius:6px;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.375rem .875rem;text-transform:uppercase}.admin-help{color:#666;font-size:.875rem;font-style:italic;word-break:break-word}.viewer-content{grid-gap:2rem;box-sizing:border-box;display:grid;flex:1 1;gap:2rem;grid-template-columns:1fr 400px;margin:0 auto;max-width:1400px;min-height:0;padding:2rem;width:100%}.video-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;overflow:hidden}.youtube-embed{height:0;padding-bottom:56.25%;position:relative;width:100%}.youtube-embed #youtube-player,.youtube-embed iframe{height:100%;left:0;position:absolute;top:0;width:100%}.subtitles-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:1.5rem}.subtitles-list{-ms-overflow-style:none;flex:1 1;min-height:0;overflow-y:auto;scrollbar-width:none}.subtitles-list::-webkit-scrollbar{display:none}.subtitle-item{background:#fff;border:2px solid #e9ecef;border-radius:10px;cursor:pointer;margin-bottom:.75rem;padding:1rem;position:relative;transition:all .2s}.subtitle-item:hover{background:#fafafa;border-color:#6366f1}.subtitle-item.active{background:#f5f3ff;border-color:#6366f1}.subtitle-time{align-items:center;background:#f3f4f6;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;margin-bottom:.5rem;padding:.5rem .875rem;transition:all .2s;-webkit-user-select:none;user-select:none}.subtitle-time:before{border-bottom:4px solid #0000;border-left:6px solid #ef4444;border-top:4px solid #0000;content:"";flex-shrink:0;height:0;width:0}.subtitle-time:focus{background:#f3f4f6!important;border-color:#e5e7eb!important;color:#6b7280!important;outline:none!important}.edit-time-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;margin-left:.5rem;opacity:.7;padding:.25rem;transition:all .2s}.edit-time-btn:hover{background:#0000001a;opacity:1}.time-edit-form{align-items:center;background:#fff;border:2px solid #3b82f6;border-radius:8px;display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem}.time-input{border:2px solid #e5e7eb;border-radius:6px;font-family:monospace;font-size:.875rem;font-weight:600;padding:.375rem .5rem;text-align:center;width:60px}.time-input:focus{border-color:#3b82f6;outline:none}.edit-buttons{display:flex;gap:.25rem;margin-left:.5rem}.cancel-btn,.save-btn{border:none;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:700;padding:.375rem .75rem;transition:all .2s}.save-btn{background:#10b981;color:#fff}.save-btn:hover{background:#059669}.cancel-btn{background:#6b7280;color:#fff}.cancel-btn:hover{background:#4b5563}.subtitle-time.repeating{animation:repeatPulse 2s infinite;background-color:#10b981;border-color:#10b981;color:#fff}.subtitle-time.repeating:hover{background-color:#ef4444;border-color:#ef4444}.repeat-indicator{animation:spin 2s linear infinite;margin-left:.5rem}@keyframes repeatPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.subtitle-controls{align-items:stretch;box-sizing:border-box;display:flex;gap:.25rem;margin-bottom:.75rem;width:100%}.toggle-btn{background:#0000!important;border:2px solid #e5e7eb!important;border-radius:8px;color:#9ca3af!important;cursor:pointer;flex:1 1;font-size:.75rem;font-weight:600;min-width:0;padding:.375rem .5rem;text-align:center;transition:all .2s;white-space:nowrap}.toggle-btn.active{background:#0000!important;border:2px solid #6366f1!important;color:#6366f1!important;font-weight:700!important}.toggle-btn:focus{outline:none!important}.audio-btn{align-items:center;background:#0000!important;border:2px solid #e5e7eb;border-radius:8px;color:#6366f1;cursor:pointer;display:flex;flex:1 1;font-size:.75rem;font-weight:600;justify-content:center;min-width:0;padding:.375rem .5rem;text-align:center;transition:all .2s;white-space:nowrap}.audio-btn:focus{outline:none!important}.audio-btn.playing{animation:pulse 1.5s infinite;background:#0000!important;border:2px solid #ef4444;color:#ef4444}.audio-btn.playing:focus{outline:none!important}@keyframes pulse{0%{box-shadow:0 0 0 0 #ef4444b3}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 0 0 #ef444400}}.bookmark-btn{align-items:center;background:#0000!important;border:2px solid #e5e7eb;border-radius:8px;color:#9ca3af;cursor:pointer;display:flex;flex:1 1;font-size:.75rem;font-weight:600;justify-content:center;min-width:0;padding:.375rem .5rem;text-align:center;transition:all .2s;white-space:nowrap}.bookmark-btn:hover{border-color:#fbbf24;color:#fbbf24}.bookmark-btn.bookmarked{background:#0000!important;border:2px solid #fbbf24;color:#fbbf24}.bookmark-btn:focus{outline:none!important}.bookmarks-button{align-items:center;background:#0000;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;flex:none;font-size:.9rem;font-weight:600;gap:.5rem;padding:.5rem 1rem;transition:all .2s;white-space:nowrap;width:auto}.bookmarks-button:hover{background:#fbbf240d;border-color:#fbbf24;color:#fbbf24}.bookmarks-button:focus{border-color:#fbbf24;outline:none}.subtitle-text{border-radius:4px;cursor:pointer;line-height:1.5;padding:.5rem;transition:background-color .2s}.subtitle-text:hover{background-color:#667eea0d}.subtitle-text .english{color:#333;font-weight:500;margin-bottom:.25rem;overflow-wrap:break-word;text-align:left;word-break:break-word}.subtitle-text .english-section{margin-bottom:.5rem;text-align:left}.subtitle-text .comment{border-left:4px solid #10b981;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.9rem;line-height:1.5;overflow-wrap:break-word;text-align:left;word-break:break-word}.subtitle-text .comment,.subtitle-text .words{margin-top:.75rem;padding:.5rem 0 .5rem .75rem}.subtitle-text .words{border-left:4px solid #8b5cf6}.subtitle-text .words-header{color:#8b5cf6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.subtitle-text .words-list{display:flex;flex-direction:column;gap:.4rem}.subtitle-text .word-item{align-items:flex-start;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.85rem;gap:.5rem;justify-content:flex-start;line-height:1.4;padding:.3rem 0}.subtitle-text .word-item .word{color:#495057;flex-shrink:0;font-weight:600;min-width:-webkit-fit-content;min-width:fit-content}.subtitle-text .word-item .meaning{color:#6c757d;flex:1 1;font-weight:400;min-width:0}.subtitle-text .korean,.subtitle-text .word-item .meaning{overflow-wrap:break-word;text-align:left;word-break:break-word}.subtitle-text .korean{color:#666;font-size:.9rem}.subtitle-hidden{color:#999;font-size:.875rem;font-style:italic;padding:1rem 0;text-align:center}.audio-indicator{font-size:.875rem;opacity:.7;position:absolute;right:.5rem;top:.5rem}.audio-notice{background:#dbeafe;border:2px solid #93c5fd;border-radius:8px;margin-bottom:1rem;padding:.875rem;text-align:center}.audio-notice p{color:#1e40af;font-size:.9rem;font-weight:500;margin:0}.subtitles-section h2{color:#333;font-size:1.25rem;margin:0 0 1rem}.subtitles-header{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:1rem}.global-controls{align-items:center;display:flex;gap:.5rem}.playback-rate-control{margin-left:.5rem}.playback-rate-select{background:#0000;border:2px solid #9ca3af;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.8rem;font-weight:600;min-width:60px;outline:none;padding:.375rem .5rem;transition:all .2s}.playback-rate-select:focus,.playback-rate-select:hover{border-color:#6366f1;color:#6366f1}.toggle-btn.global{background:#0000!important;border:2px solid #9ca3af!important;border-radius:8px;color:#6b7280!important;font-size:.8rem;padding:.375rem .75rem}.toggle-btn.global.active{background:#0000!important;border:2px solid #10b981!important;color:#10b981!important;font-weight:700!important}.toggle-btn.global:focus{outline:none!important}@media (max-width:1200px){.viewer-content{gap:1.5rem;grid-template-columns:1fr 350px;padding:1.5rem}}@media (max-width:1024px){.viewer-content{display:flex;flex-direction:column;gap:1rem;grid-template-columns:1fr;max-width:none;padding:1rem}.video-section{flex-shrink:0}.subtitles-section{flex:1 1;min-height:0}}@media (max-width:768px){.viewer-header{padding:.75rem 1rem}.viewer-header h1{font-size:1.5rem}.viewer-header h2{font-size:1.25rem}.back-button{height:36px;padding:.4rem;width:36px}.bookmarks-button{font-size:.85rem;padding:.4rem .75rem}.bookmarks-button span{display:inline}.viewer-content{padding:.75rem}}@media (max-width:480px){.viewer-header{gap:.5rem;padding:.5rem .75rem}.viewer-header h1{font-size:1.25rem}.viewer-header h2{font-size:1.1rem}.back-button{height:32px;padding:.3rem;width:32px}.bookmarks-button{font-size:.8rem;padding:.4rem .6rem}.bookmarks-button span{display:none}.viewer-content{padding:.5rem}.subtitles-section{padding:.75rem}.subtitle-item{margin-bottom:.5rem;padding:.75rem}.subtitle-controls{gap:.2rem}.audio-btn,.toggle-btn{font-size:.65rem;padding:.2rem .1rem}}@media (max-width:360px){.subtitle-controls{gap:.15rem}.audio-btn,.toggle-btn{font-size:.6rem;padding:.15rem .05rem}}@media (max-width:320px){.viewer-header{padding:.4rem .5rem}.viewer-content{padding:.25rem}.subtitle-controls{gap:.1rem}.audio-btn,.toggle-btn{font-size:.55rem;padding:.1rem .05rem}.subtitle-item{padding:.5rem}}.content-list{background:#f8f9fa;min-height:100vh}.content-list-header{align-items:center;background:#fff;border-bottom:1px solid #f1f5f9;box-shadow:0 1px 3px #00000005;display:flex;justify-content:space-between;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.content-list-header h1{color:#1e293b;font-size:1.25rem;font-weight:700;letter-spacing:-.025em;margin:0}.header-actions{align-items:center;display:flex;gap:1.5rem}.auth-buttons,.user-profile{align-items:center;display:flex;flex-wrap:nowrap;gap:1.25rem}.user-name{color:#64748b;flex-shrink:0;font-size:.9375rem;white-space:nowrap}.user-name strong{color:#1e293b;font-weight:600;margin-left:.25rem}.action-buttons,.auth-buttons{align-items:center;display:flex;gap:.625rem}.admin-link,.auth-link,.logout-button{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;justify-content:center;padding:.5rem 1.25rem;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.auth-link{background:#f5f3ff;color:#4f46e5}.auth-link:hover{background:#ede9fe;transform:translateY(-1px)}.auth-link.register{background:#4f46e5;color:#fff}.auth-link.register:hover{background:#4338ca;box-shadow:0 4px 6px -1px #4f46e533}.logout-button{background:#fef2f2;border-color:#fee2e2;color:#ef4444}.logout-button:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:translateY(-1px)}.logout-button.mini{background:#fff;font-size:.75rem;margin-left:.5rem;padding:.25rem .625rem}.logout-button.mini:hover{background:#fef2f2;border-color:#fee2e2;color:#ef4444;transform:none}.admin-link{background:#fff;border-color:#e0e7ff;color:#6366f1}.admin-link:hover{background:#f5f3ff;border-color:#6366f1;transform:translateY(-1px)}.bookmarks-nav-button{align-items:center;background:#0000;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.bookmarks-nav-button:hover{background:#fbbf240d;border-color:#fbbf24;color:#fbbf24}.bookmarks-nav-button:focus{border-color:#fbbf24;outline:none}.notice-banner{box-sizing:border-box;margin:1.5rem auto 0;max-width:1400px;padding:0 2rem}.notice-content{animation:slideIn .6s cubic-bezier(.16,1,.3,1);background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:12px;box-shadow:0 10px 15px -3px #4f46e533;color:#fff;gap:1rem;padding:1rem 1.5rem}.notice-content,.notice-icon{align-items:center;display:flex}.notice-icon{background:#fff3;border-radius:10px;font-size:1.25rem;height:36px;justify-content:center;width:36px}.notice-content p{font-size:1rem;font-weight:500;letter-spacing:-.01em;margin:0}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.contents-grid{grid-gap:2rem;box-sizing:border-box;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin:0 auto;max-width:1400px;padding:2rem}.content-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;cursor:pointer;display:block;overflow:hidden;text-decoration:none;transition:all .2s}.content-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.content-thumbnail{height:180px;overflow:hidden;position:relative;width:100%}.content-thumbnail img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.content-card:hover .content-thumbnail img{transform:scale(1.05)}.content-info{padding:1.5rem}.content-info h3{color:#333;font-size:1.1rem;line-height:1.4;margin:0 0 .5rem}.content-date{color:#666;font-size:.9rem;margin:0}.no-contents{color:#666;grid-column:1/-1;padding:4rem 2rem;text-align:center}.no-contents p{font-size:1.1rem;margin:0}.error,.loading{align-items:center;color:#666;display:flex;font-size:1.2rem;height:100vh;justify-content:center}.error{color:#e74c3c}@media (max-width:768px){.content-list-header{align-items:center;box-sizing:border-box;flex-direction:row;gap:.5rem;justify-content:space-between;padding:1rem;width:100%}.content-list-header h1{flex:1 1;font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{width:auto}.auth-buttons,.user-profile{gap:.5rem;justify-content:flex-end;width:auto}.user-name{font-size:.875rem}.contents-grid{gap:1rem;grid-template-columns:1fr;padding:1rem}.notice-banner{margin-top:1rem;padding:0 1rem}.notice-content{gap:.75rem;padding:.75rem 1rem}.notice-content p{font-size:.9rem}.notice-icon{font-size:1.1rem;height:30px;width:30px}}@media (max-width:480px){.user-profile{justify-content:flex-end;width:auto}.auth-buttons,.user-profile{align-items:center;flex-direction:row;gap:.5rem}.action-buttons,.auth-buttons{display:flex;gap:.4rem;width:auto}.user-profile .action-buttons{display:none}.logout-button.mini{padding:.375rem .75rem;width:auto}.admin-link,.auth-link,.logout-button{font-size:.8125rem;padding:.5rem .75rem;width:auto}}@media (max-width:380px){.content-list-header{padding:.75rem .5rem}.auth-buttons,.user-profile{gap:.25rem}.admin-link,.auth-link,.logout-button{font-size:.75rem;padding:.4rem .5rem}.content-list-header h1{font-size:1rem}}.login-wrapper{align-items:center;background:#f8f9fa;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:20px;width:100%}.login-box{background:#fff;border:1px solid #e9ecef;border-radius:16px;max-width:420px;padding:50px 40px;text-align:left;width:100%}.login-box h2{color:#1f2937;font-size:32px;font-weight:700;margin:0 0 35px;text-align:center}.login-box form{width:100%}.login-box .form-group{margin-bottom:24px;text-align:left}.login-box .form-group label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:10px;text-align:left}.login-box .form-group input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:15px;padding:14px 16px;text-align:left;transition:all .2s;width:100%}.login-box .form-group input:focus{border-color:#6366f1;outline:none}.login-box .error-message{background-color:#fee2e2;border:2px solid #fecaca;border-radius:10px;color:#991b1b;font-size:14px;font-weight:500;margin-bottom:20px;padding:12px 16px;text-align:center}.login-box .login-button{background:#4f46e5;border:none;border-radius:10px;box-sizing:border-box;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 16px;transition:all .2s;width:100%}.login-box .login-button:hover:not(:disabled){background:#4338ca}.login-box .login-button:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.login-box .login-footer{border-top:1px solid #e5e7eb;margin-top:25px;padding-top:20px;text-align:center}.login-box .login-footer p{color:#6b7280;font-size:14px;margin:8px 0}.login-box .login-footer a{color:#4f46e5;font-weight:600;text-decoration:none}.login-box .login-footer a:hover{color:#4338ca;text-decoration:underline}*,.register-container{box-sizing:border-box}.register-container{align-items:center;background:#f8f9fa;display:flex;justify-content:center;min-height:100vh;padding:20px;width:100%}.register-box{background:#fff;border:1px solid #e9ecef;border-radius:16px;max-width:500px;padding:50px 40px;text-align:left;width:100%}.register-box h2{color:#1f2937;font-size:32px;font-weight:700;margin:0 0 35px;text-align:center}.step{flex:0 0 auto}.step-number{background:#e5e7eb;color:#9ca3af;transition:all .3s}.step.active .step-number{background:#4f46e5}.step-label{color:#9ca3af;font-weight:600;transition:all .3s}.step.active .step-label{color:#4f46e5}.step-line{background:#e5e7eb}.email-display{align-items:center;background:#f9fafb;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding:16px}.email-label{color:#6b7280;font-size:13px;font-weight:600}.email-value{color:#1f2937;flex:1 1;font-size:14px;font-weight:600}.email-value.verified{color:#059669}.change-email-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s}.change-email-btn:hover{background:#f9fafb;border-color:#9ca3af}.timer{color:#ef4444;font-weight:700;margin-left:8px}.register-box form{width:100%}.register-box .form-group{margin-bottom:24px;text-align:left}.register-box .form-group label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:10px;text-align:left}.register-box .form-group input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:15px;padding:14px 16px;text-align:left;transition:all .2s;width:100%}.register-box .form-group input:focus{border-color:#6366f1;outline:none}.form-hint{color:#6b7280;font-size:12px;margin:8px 0 0}.register-box .error-message{background-color:#fee2e2;border:2px solid #fecaca;border-radius:10px;color:#991b1b}.register-box .error-message,.register-box .success-message{font-size:14px;font-weight:500;margin-bottom:20px;padding:12px 16px;text-align:center}.register-box .success-message{background-color:#d1fae5;border:2px solid #a7f3d0;border-radius:10px;color:#065f46}.register-box .register-button{background:#4f46e5;border:none;border-radius:10px;box-sizing:border-box;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 16px;transition:all .2s;width:100%}.register-box .register-button:hover:not(:disabled){background:#4338ca}.register-box .register-button:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.register-box .resend-button{background:#fff;border:2px solid #4f46e5;border-radius:10px;box-sizing:border-box;color:#4f46e5;cursor:pointer;font-size:14px;font-weight:600;margin-top:12px;padding:12px 16px;transition:all .2s;width:100%}.register-box .resend-button:hover:not(:disabled){background:#f5f3ff}.register-box .resend-button:disabled{background:#fff;border-color:#d1d5db;color:#d1d5db;cursor:not-allowed}.register-box .register-footer{border-top:1px solid #e5e7eb;margin-top:25px;padding-top:20px;text-align:center}.register-box .register-footer p{color:#6b7280;font-size:14px;margin:0}.register-box .register-footer a{color:#4f46e5;font-weight:600;text-decoration:none}.register-box .register-footer a:hover{color:#4338ca}.forgot-password-wrapper{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.forgot-password-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:500px;padding:40px;width:100%}.forgot-password-box h2{color:#333;font-size:28px;margin:0 0 30px;text-align:center}.progress-steps{justify-content:space-between;margin-bottom:40px;padding:0 20px}.progress-steps,.step{align-items:center;display:flex}.step{flex-direction:column;gap:8px}.step-number{align-items:center;background-color:#e0e0e0;border-radius:50%;color:#999;display:flex;font-size:16px;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.step.active .step-number{background-color:#667eea;color:#fff}.step-label{color:#999;font-size:12px;transition:color .3s ease}.step.active .step-label{color:#667eea;font-weight:600}.step-line{background-color:#e0e0e0;flex:1 1;height:2px;margin:0 10px 20px;transition:background-color .3s ease}.step-line.active{background-color:#667eea}.instruction{background-color:#f8f9fa;border-radius:8px;color:#666;font-size:14px;line-height:1.6;margin-bottom:20px;padding:15px;text-align:center}.instruction strong{color:#667eea}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:15px;padding:12px 15px;transition:all .3s ease;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.error-message{background-color:#fee;border-left:4px solid #c33;color:#c33}.error-message,.success-message{border-radius:8px;font-size:14px;margin-bottom:15px;padding:12px 15px}.success-message{background-color:#efe;border-left:4px solid #3c3;color:#3c3}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:10px;padding:14px;transition:all .3s ease;width:100%}.submit-button:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.back-button{background-color:#f5f5f5;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:12px;transition:all .3s ease;width:100%}.back-button:hover{background-color:#e8e8e8}.forgot-password-footer{border-top:1px solid #e0e0e0;margin-top:25px;padding-top:20px;text-align:center}.forgot-password-footer p{color:#666;font-size:14px;margin:0}.forgot-password-footer a{color:#667eea;font-weight:500;text-decoration:none;transition:color .3s ease}.forgot-password-footer a:hover{color:#764ba2;text-decoration:underline}@media (max-width:600px){.forgot-password-box{padding:30px 20px}.forgot-password-box h2{font-size:24px}.progress-steps{padding:0 10px}.step-number{font-size:14px;height:35px;width:35px}.step-label{font-size:11px}}.bookmarks-page{background-color:#f0f4f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding-bottom:3rem}.bookmarks-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a;padding:1.25rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.bookmarks-header .header-content{align-items:center;display:flex;gap:1.25rem;margin:0 auto;max-width:800px}.bookmarks-header .back-button{align-items:center;background:#f1f5f9;border:none;border-radius:50%;color:#475569;cursor:pointer;display:flex;justify-content:center;padding:.6rem;transition:all .2s}.bookmarks-header .back-button:hover{background-color:#e2e8f0;color:#1e293b}.bookmarks-header h1{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.title-wrapper{align-items:center;display:flex;gap:.6rem}.title-icon{color:#3b82f6}.bookmarks-content{margin:2rem auto;max-width:800px;padding:0 1.5rem}.no-bookmarks{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;padding:4rem 2rem;text-align:center}.no-bookmarks p{color:#64748b;font-size:1.125rem;margin-bottom:2rem}.go-home-button{background-color:#3b82f6;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 2rem;transition:all .2s}.go-home-button:hover{background-color:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.bookmarks-list{display:flex;flex-direction:column;gap:2rem}.bookmark-item{background:#fff;border:1px solid #f1f5f9;border-radius:16px;box-shadow:0 10px 15px -3px #0000000d,0 4px 6px -2px #00000005;padding:1.75rem;transition:all .3s ease}.bookmark-item:hover{box-shadow:0 20px 25px -5px #0000001a;transform:translateY(-4px)}.bookmark-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem}.content-title{color:#3b82f6;cursor:pointer;font-size:1.125rem;font-weight:700;line-height:1.4;margin:0;transition:color .2s;word-break:keep-all}.content-title:hover{color:#1d4ed8;text-decoration:none}.bookmark-time{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:20px;color:#1d4ed8;display:inline-flex;font-size:.8125rem;font-weight:600;margin-bottom:1.25rem;padding:.3rem .75rem}.bookmark-text{margin-bottom:1.5rem}.bookmark-text .english{color:#0f172a;font-size:1.25rem;font-weight:600;line-height:1.6;margin-bottom:.75rem}.bookmark-text .korean{color:#475569;font-size:1.0625rem;line-height:1.6}.bookmark-text .comment{background:#f8fafc;border-left:4px solid #3b82f6;border-radius:8px;color:#475569;font-size:.9375rem;line-height:1.6;margin-top:1.25rem;padding:1rem 1.25rem}.words-section{background:#f1f5f9;border-radius:12px;margin-bottom:1.75rem;padding:1.25rem}.words-section h4{color:#64748b;font-size:.875rem;font-weight:700;letter-spacing:.025em;margin:0 0 1rem;text-transform:uppercase}.words-section .words-list{display:flex;flex-direction:column;gap:.75rem}.words-section .word-item{align-items:baseline;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;display:flex;gap:1rem;padding:.75rem 1rem}.words-section .word{color:#1e293b;font-size:1rem;font-weight:700;min-width:100px}.words-section .meaning{color:#64748b;font-size:.9375rem}.bookmark-actions{border-top:1px solid #f1f5f9;display:flex;gap:1rem;padding-top:1rem}.audio-button,.bookmark-actions .delete-button,.view-button{align-items:center;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.9375rem;font-weight:600;gap:.6rem;justify-content:center;padding:.875rem 1.25rem;transition:all .2s}.audio-button{background-color:#3b82f6;border:none;color:#fff}.audio-button:hover{background-color:#2563eb;box-shadow:0 4px 12px #3b82f640;transform:translateY(-2px)}.audio-button.playing{background-color:#f43f5e}.audio-button.playing:hover{background-color:#e11d48;box-shadow:0 4px 12px #f43f5e40}.view-button{background:#fff;border:2px solid #3b82f6;color:#3b82f6}.view-button:hover{background:#eff6ff;transform:translateY(-2px)}.bookmark-actions .delete-button{background:#fff1f2;border:2px solid #f43f5e;color:#f43f5e}.bookmark-actions .delete-button:hover{background-color:#ffe4e6;border-color:#e11d48;color:#e11d48;transform:translateY(-2px)}@media (max-width:640px){.bookmarks-header{padding:1rem}.bookmarks-header h1{font-size:1.125rem}.bookmarks-content{margin:1.5rem auto;padding:0 1rem}.bookmark-item{padding:1.25rem}.bookmark-header{align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.75rem}.content-title{font-size:1rem}.bookmark-text .english{font-size:1.125rem}.bookmark-text .korean{font-size:.9375rem}.bookmark-actions{flex-direction:column;gap:.75rem}.audio-button,.bookmark-actions .delete-button,.view-button{padding:.75rem;width:100%}.words-section .word-item{flex-direction:column;gap:.25rem;padding:.5rem .75rem}.words-section .word{min-width:auto}}.install-pwa-banner{animation:slideUp .3s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);bottom:0;box-shadow:0 -4px 12px #00000026;color:#fff;left:0;padding:1rem;position:fixed;right:0;z-index:1000}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.install-pwa-content{align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:1rem;margin:0 auto;max-width:1200px;width:100%}.install-pwa-icon{font-size:2rem}.install-pwa-text{flex:1 1;min-width:200px}.install-pwa-text h3{font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.install-pwa-text p{font-size:.9rem;line-height:1.5;margin:0;opacity:.9}.share-icon{display:inline-block;font-size:1.1rem;font-weight:700;padding:0 .2rem}.install-pwa-actions{display:flex;gap:.5rem}.dismiss-btn,.install-btn{border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.6rem 1.2rem;transition:all .2s}.install-btn{background:#fff;color:#667eea}.install-btn:hover{box-shadow:0 4px 12px #ffffff4d;transform:scale(1.05)}.dismiss-btn{background:#fff3;color:#fff}.dismiss-btn:hover{background:#ffffff4d}@media (max-width:600px){.install-pwa-content{flex-direction:column;text-align:center}.install-pwa-actions{justify-content:center;width:100%}.dismiss-btn,.install-btn{flex:1 1}}.App{max-width:100%;overflow-x:hidden;position:relative;width:100%}.App>*{text-align:left;text-align:initial}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.62e16daf.css.map*/