*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html{overscroll-behavior:none;-webkit-overflow-scrolling:touch;position:fixed;width:100%;height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;position:fixed;width:100%;height:100%;overflow:hidden}#root{width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:none}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:10px;z-index:9999;pointer-events:none;width:min(90vw,420px)}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;background:#fff;box-shadow:0 4px 20px #0000002e;border-left:4px solid #667eea;pointer-events:all;cursor:pointer;animation:toast-in .25s ease;font-size:14px;font-weight:500;color:#333;word-break:break-word}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast-error{border-left-color:#f5576c}.toast-success{border-left-color:#4caf50}.toast-info{border-left-color:#667eea}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;font-size:18px;color:#999;cursor:pointer;padding:0;line-height:1;flex-shrink:0}.toast-close:hover{color:#555}.ui-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9998;padding:20px;animation:overlay-in .15s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.ui-confirm{background:#fff;border-radius:16px;padding:28px 24px 20px;max-width:360px;width:100%;box-shadow:0 10px 40px #00000040;animation:confirm-in .2s ease}@keyframes confirm-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.ui-confirm-message{font-size:15px;line-height:1.5;color:#333;margin-bottom:20px;text-align:center;white-space:pre-line}.ui-confirm-actions{display:flex;gap:10px;justify-content:flex-end}.ui-confirm-actions .btn{min-width:80px}.auth-container{position:relative}.avatar-button{background:none;border:none;padding:0;cursor:pointer;border-radius:50%;transition:transform .2s,box-shadow .2s}.avatar-button:hover{transform:scale(1.05);box-shadow:0 0 0 3px #667eea33}.user-avatar{width:40px;height:40px;border-radius:50%;border:2px solid #667eea;display:block}.user-avatar-fallback{width:40px;height:40px;border-radius:50%;border:2px solid #667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.dropdown-menu{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border-radius:10px;box-shadow:0 5px 20px #00000026;min-width:240px;z-index:1000;overflow:hidden;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:16px;background:#f8f9fa}.dropdown-user-name{font-size:15px;font-weight:600;color:#333;margin-bottom:4px}.dropdown-user-email{font-size:13px;color:#666}.dropdown-divider{height:1px;background:#e0e0e0;margin:0}.dropdown-item{width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:#333;transition:background .2s;display:flex;align-items:center;gap:10px}.dropdown-item:hover{background:#f8f9fa}.dropdown-item span{font-weight:500}.auth-login{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:15px;padding:50px;text-align:center;box-shadow:0 10px 30px #0003;max-width:400px;width:100%;position:relative}.back-button{position:absolute;top:20px;left:20px;background:none;border:none;color:#667eea;font-size:16px;font-weight:600;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .2s}.back-button:hover{background:#667eea1a;transform:translate(-3px)}.login-card h2{color:#667eea;font-size:28px;margin-bottom:15px;margin-top:40px}.login-card p{color:#666;margin-bottom:30px;line-height:1.6}.btn-google{background:#fff;color:#333;border:1px solid #ddd;padding:12px 24px;font-size:16px;font-weight:500;display:inline-flex;align-items:center;gap:10px;transition:all .2s}.btn-google:hover{background:#f8f8f8;box-shadow:0 2px 8px #0000001a}.btn-google svg{flex-shrink:0}.email-auth-form{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.auth-input{width:100%;padding:12px 16px;font-size:15px;border:1px solid #ddd;border-radius:8px;transition:all .2s;box-sizing:border-box}.auth-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.btn-primary{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;font-size:16px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.btn-link{background:none;border:none;color:#667eea;font-size:14px;cursor:pointer;padding:8px;margin-bottom:20px;transition:color .2s}.btn-link:hover{color:#764ba2;text-decoration:underline}.auth-divider{position:relative;text-align:center;margin:24px 0}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#ddd}.auth-divider span{position:relative;background:#fff;padding:0 12px;color:#999;font-size:14px;font-weight:500}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:15px;padding:20px;max-width:500px;width:100%;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content h2{color:#667eea;font-size:24px;text-align:center}.modal-description{color:#666;font-size:15px;line-height:1.6;margin-bottom:24px;text-align:center}.modal-description strong{color:#333;font-weight:600}.link-form{display:flex;flex-direction:column;gap:16px}.modal-buttons{display:flex;gap:12px;margin-top:8px}.modal-buttons .btn{flex:1}.btn-secondary{background:#fff;color:#666;border:2px solid #ddd;padding:12px 24px;font-size:16px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f5f5f5;border-color:#bbb}@media(max-width:768px){.login-card{padding:50px 25px}.modal-content{padding:30px 20px}.modal-buttons{flex-direction:column}.modal-buttons .btn{width:100%}}.landing-page{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.landing-content{max-width:600px;width:100%;background:#fff;border-radius:20px;padding:60px 40px;box-shadow:0 20px 60px #0000004d;text-align:center}.landing-logo{margin-bottom:50px}.landing-logo img{width:120px;height:120px;margin-bottom:20px;border-radius:20px;animation:fadeInDown .6s ease-out}.landing-logo h1{font-size:2.5rem;color:#333;margin:0;animation:fadeInUp .6s ease-out}.landing-features{margin-bottom:50px;text-align:left}.landing-features h2{font-size:1.8rem;color:#333;text-align:center;margin-bottom:30px}.features-list{list-style:none;padding:0;margin:0}.features-list li{display:flex;gap:15px;margin-bottom:25px;animation:fadeInLeft .6s ease-out;animation-fill-mode:both}.features-list li:nth-child(1){animation-delay:.1s}.features-list li:nth-child(2){animation-delay:.2s}.features-list li:nth-child(3){animation-delay:.3s}.features-list li:nth-child(4){animation-delay:.4s}.feature-icon{font-size:2rem;flex-shrink:0}.features-list li div{flex:1}.features-list strong{display:block;font-size:1.1rem;color:#333;margin-bottom:5px}.features-list p{margin:0;color:#666;font-size:.95rem;line-height:1.4}.landing-actions{display:flex;flex-direction:column;gap:15px;animation:fadeInUp .6s ease-out .5s;animation-fill-mode:both}.btn-large{padding:16px 32px;font-size:1.1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .3s ease;border:none}.btn-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.btn-large:active{transform:translateY(0)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:600px){.landing-content{padding:40px 30px}.landing-logo h1{font-size:2rem}.landing-logo img{width:100px;height:100px}.landing-features h2,.feature-icon{font-size:1.5rem}.features-list strong{font-size:1rem}.features-list p{font-size:.9rem}.btn-large{padding:14px 28px;font-size:1rem}}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:40px}.topic-detail{max-width:900px;max-height:90vh;overflow-y:auto}.topic-detail-inline{margin-top:20px;padding-top:20px;border-top:2px solid #e8eaf6;animation:expandDown .3s ease-out}.detail-actions{display:flex;justify-content:flex-end;margin-bottom:15px}@keyframes expandDown{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:1000px}}.topic-detail-body{padding:0}.topic-detail-description{color:#666;margin-bottom:25px;line-height:1.6;font-size:15px}.topic-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:15px;margin-bottom:25px}.stat-item{background:#f8f9fa;padding:20px;border-radius:10px;display:flex;flex-direction:column;gap:8px}.stat-label{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-value{font-size:28px;color:#667eea;font-weight:700}.btn-undo{width:100%;margin-bottom:30px;display:flex;align-items:center;justify-content:center;gap:8px}.topic-detail-actions{margin-top:20px;display:flex;flex-direction:column;gap:10px}.btn-undo-outline{width:100%;padding:12px 20px;border:2px solid #dc3545;border-radius:8px;background:transparent;color:#dc3545;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.btn-undo-outline:hover{background:#dc3545;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.btn-finish-outline{width:100%;padding:12px 20px;border:2px solid #28a745;border-radius:8px;background:transparent;color:#28a745;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.btn-finish-outline:hover{background:#28a745;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #28a7454d}.chart-section{margin-top:30px}.chart-section h3{color:#333;font-size:18px;margin-bottom:20px;font-weight:600}.chart-loading{text-align:center;padding:50px;color:#999}.bar-chart{display:flex;align-items:flex-end;justify-content:flex-start;height:300px;padding:20px;background:#f8f9fa;border-radius:10px;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.bar-item{display:flex;flex-direction:column;align-items:center;flex:0 0 20px;gap:8px}.bar-container{width:100%;height:250px;display:flex;align-items:flex-end;justify-content:center;padding-top:20px}.bar{width:100%;min-height:2px;background:#667eea;border-radius:4px 4px 0 0;transition:all .3s ease;position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:5px}.bar-value{font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.bar-label{font-size:10px;color:#666;white-space:nowrap;transform:rotate(-45deg);transform-origin:top left;margin-top:15px;min-height:20px;display:flex;align-items:flex-start}.modal-content{background:#fff;border-radius:12px;padding:24px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-content h3{color:#333;font-size:22px;margin-bottom:12px;font-weight:700;text-align:center}.modal-content p{color:#666;font-size:15px;margin-bottom:24px;text-align:center;line-height:1.5}.modal-actions{display:flex;gap:10px;justify-content:center;align-items:stretch}.topic-detail-inline .modal-actions .btn{flex:1 1 0;min-width:0;padding:12px 20px!important;border:2px solid transparent!important;border-radius:6px;font-size:14px!important;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-sizing:border-box;line-height:1.2!important;height:auto!important;background-image:none!important}.topic-detail-inline .modal-actions .btn-cancel{background:#f8f9fa!important;color:#555;border-color:#dee2e6!important}.topic-detail-inline .modal-actions .btn-cancel:hover:not(:disabled){background:#e9ecef!important;border-color:#ced4da!important;color:#333}.topic-detail-inline .modal-actions .btn-primary{background:#667eea!important;color:#fff;border-color:#667eea!important}.topic-detail-inline .modal-actions .btn-primary:hover:not(:disabled){background:#5568d3!important;border-color:#5568d3!important;transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.topic-detail-inline .modal-actions .btn-modal-undo{background:#dc3545!important;color:#fff;border-color:#dc3545!important}.topic-detail-inline .modal-actions .btn-modal-undo:hover:not(:disabled){background:#c82333!important;border-color:#c82333!important;transform:translateY(-1px);box-shadow:0 2px 8px #dc35454d}.topic-detail-inline .modal-actions .btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.topic-detail{max-width:100%;max-height:95vh;margin:10px}.topic-detail-stats{grid-template-columns:1fr}.topic-detail-inline{margin-top:15px;padding-top:15px}.bar-chart{height:220px;padding:10px 5px;gap:1px;justify-content:flex-start}.bar-item{flex:0 0 10px;gap:5px}.bar-container{height:160px;padding-top:15px}.bar{border-radius:2px 2px 0 0;padding-top:2px}.bar-value{font-size:7px;display:none}.bar:hover .bar-value{display:block}.bar-label{font-size:8px;margin-top:8px;min-height:15px}.chart-section{margin-top:20px}.chart-section h3{font-size:15px;margin-bottom:15px}.topic-detail-actions{margin-top:15px;gap:8px}.btn-undo-outline,.btn-finish-outline{padding:10px 16px;font-size:14px}.modal-content{padding:20px;max-width:85%}.modal-content h3{font-size:19px;margin-bottom:10px}.modal-content p{font-size:14px;margin-bottom:20px}.modal-actions{flex-direction:row;gap:8px}.modal-actions .btn{max-width:160px;padding:11px 16px;font-size:13px}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:15px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #eee}.modal-header h2{color:#333;font-size:24px;font-weight:600}.btn-close{background:transparent;border:none;font-size:32px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:5px;transition:background .2s}.btn-close:hover{background:#f0f0f0;color:#333}form{padding:30px}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:600;font-size:14px}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s;background:#fff}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:40px}.form-group textarea{resize:vertical;min-height:80px}.custom-goal-input{margin-top:10px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tag-input-group{display:flex;gap:10px;margin-bottom:8px}.tag-input-group input{flex:1}.selected-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;padding:15px;background:#f8f8f8;border-radius:8px}.tag-selected{display:inline-flex;align-items:center;gap:8px;background:#e8eaf6;color:#5c6bc0;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:500}.tag-remove{background:#5c6bc033;border:none;color:#5c6bc0;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .2s}.tag-remove:hover{background:#5c6bc04d}.available-tags{margin-top:15px}.tags-label{font-size:13px;color:#666;margin-bottom:10px}.tags-list{display:flex;flex-wrap:wrap;gap:8px}.tag-available{background:#f0f0f0;color:#666;padding:6px 12px;border-radius:20px;font-size:14px;cursor:pointer;transition:all .2s}.tag-available:hover{background:#e8eaf6;color:#5c6bc0}.form-actions{display:flex;flex-direction:column;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #eee}.btn-submit-full{width:100%}.form-actions-bottom{display:flex;gap:10px}.form-actions-bottom .btn{flex:1}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.btn-warning{background:#ffc107;color:#333}.btn-warning:hover:not(:disabled){background:#e0a800}.modal-container{background:#fff;border-radius:15px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{padding:20px 30px}.modal-close{background:transparent;border:none;font-size:32px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:5px;transition:background .2s}.modal-close:hover{background:#f0f0f0;color:#333}.modal-body{padding:30px}.form-input{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s;background:#fff}.form-input:focus{outline:none;border-color:#667eea}.form-help{display:block;font-size:12px;color:#666;margin-top:4px}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin:12px 0;font-size:14px}.modal-footer{display:flex;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.modal-footer .btn{flex:1}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover:not(:disabled){background:#5568d3;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#e0e0e0;color:#333}.btn-secondary:hover:not(:disabled){background:#d0d0d0}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.loading{text-align:center;padding:50px;color:#fff;font-size:20px}.empty-state{background:#fff;padding:60px 20px;border-radius:15px;text-align:center;color:#666;box-shadow:0 10px 30px #0000001a}.filters-container{display:flex;gap:8px;margin-bottom:20px;padding:4px 0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.filters-container::-webkit-scrollbar{display:none}.filter-button{padding:6px 14px;border:1.5px solid rgba(255,255,255,.4);border-radius:16px;background:#ffffff26;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filter-button:hover{background:#ffffff40;border-color:#fff9;transform:translateY(-1px)}.filter-button.active{background:#fff;color:#667eea;border-color:#fff;box-shadow:0 2px 8px #00000026}.topics-list{display:grid;gap:20px}.topic-card{background:#fff;border-radius:15px;padding:25px;box-shadow:0 10px 30px #0000001a;transition:box-shadow .2s,transform .2s,opacity .2s;cursor:pointer;overflow:hidden;min-width:0}.topic-card:hover{box-shadow:0 15px 40px #00000026}.topic-card.dragging{opacity:.5;transform:scale(.95)}.topic-card.sorting-mode{border:2px solid #667eea;background:#f8f9ff;cursor:default}.topic-card.sorting-mode:active{cursor:default}.topic-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.topic-title-section{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap;min-width:0;margin-bottom:15px}.topic-header h2{color:#333;font-size:24px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-actions{display:flex;gap:8px;flex-shrink:0}.topic-description{color:#666;margin-bottom:15px;line-height:1.5}.topic-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tag{background:#e8eaf6;color:#5c6bc0;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.progress-bar-container{width:100%;height:10px;background:#f0f0f0;border-radius:10px;overflow:hidden;margin-top:15px;margin-bottom:15px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:10px;transition:width .3s ease}.topic-footer{display:flex;justify-content:space-between;align-items:center}.topic-stats{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.push-count{line-height:30px;font-size:20px;font-weight:700;color:#667eea}.push-count.finished-count{color:#28a745;white-space:nowrap}.last-push{font-size:12px;color:#999}.topic-footer-completed{display:flex;gap:10px}.btn-finish{padding:12px 24px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.btn-finish:hover{transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.btn-continue{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.btn-continue:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-continue-pushing{padding:12px 24px;background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.btn-continue-pushing:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.completion-stats{margin-bottom:10px;padding:10px;background:#e8f5e9;border-radius:8px;text-align:center}.final-score{font-weight:600;color:#28a745;font-size:16px}.topic-footer-actions{display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}.btn-delete{padding:12px 24px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.btn-delete:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.push-button-group{display:flex;gap:8px;align-items:center}.btn-push-with-date{padding:12px 16px;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;font-size:20px;transition:all .2s;box-shadow:0 2px 6px #00000014}.btn-push-with-date:hover{background:#f8f9fa;border-color:#d0d0d0;transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.btn-push-with-date:active{transform:translateY(0)}@media(max-width:768px){.topic-card{padding:20px}.topic-header{gap:10px}.topic-title-section{gap:8px}.topic-header h2{font-size:18px;white-space:normal}.topic-footer{flex-direction:row;gap:15px;align-items:center}.filter-button{padding:5px 10px;font-size:12px}.tag{font-size:11px;padding:3px 8px}.topic-footer-completed{flex-direction:column;width:100%}.btn-finish,.btn-continue,.btn-continue-pushing{width:100%}.topic-footer-actions{gap:8px}}.delete-modal-content{max-width:600px}.delete-form{padding:0}.delete-warning{background:#fff3cd;border-left:4px solid #ffc107;color:#856404;padding:16px;border-radius:8px;margin-top:20px;margin-bottom:20px}.delete-warning strong{display:block;font-size:16px;margin-bottom:8px}.delete-warning p{margin:8px 0;font-size:14px;line-height:1.5}.delete-warning ul{margin:8px 0;padding-left:20px}.delete-warning li{font-size:14px;line-height:1.6}.delete-info{background:#d1ecf1;border-left:4px solid #17a2b8;color:#0c5460;padding:16px;border-radius:8px;margin-bottom:24px}.delete-info strong{display:block;font-size:16px;margin-bottom:8px}.delete-info p{margin:0;font-size:14px;line-height:1.5}.delete-confirmation-input{width:100%;padding:12px 15px;border:2px solid #dc3545;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s}.delete-confirmation-input:focus{outline:none;border-color:#c82333;box-shadow:0 0 0 3px #dc35451a}.delete-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #eee}.btn-delete-danger{background:#dc3545;color:#fff;padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-delete-danger:hover:not(:disabled){background:#c82333;transform:translateY(-1px);box-shadow:0 5px 15px #dc354566}.btn-delete-danger:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:768px){.delete-modal-actions{flex-direction:column-reverse}.delete-modal-actions .btn{width:100%}}.settings-page{max-width:900px;margin:0 auto}.settings-content{background:#fff;border-radius:15px;padding:30px;box-shadow:0 10px 30px #0000001a}.settings-section{margin-bottom:30px}.settings-section:last-child{margin-bottom:0}.settings-section h2{color:#333;font-size:24px;font-weight:600;margin-bottom:10px}.settings-description{color:#666;font-size:14px;line-height:1.5;margin-bottom:20px}.tag-create-form{margin-bottom:20px;padding:0}.tag-create-form .form-group{display:flex;gap:10px;margin-bottom:0}.tag-create-form .form-input{flex:1;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s}.tag-create-form .form-input:focus{outline:none;border-color:#667eea}.tag-create-form .btn{width:auto;flex-shrink:0;padding:12px 24px}.error-message{color:#dc3545;font-size:14px;padding:8px 12px;background:#ffe5e5;border-radius:5px;margin-top:10px}.loading-text{text-align:center;color:#666;padding:30px;font-size:14px}.empty-state{text-align:center;padding:40px 20px;color:#999;background:#f8f8f8;border-radius:10px}.empty-state p{margin:0;font-size:15px}.tags-grid{display:flex;flex-wrap:wrap;gap:12px}.tag-item{display:flex;align-items:center;justify-content:space-between;background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;padding:12px 15px;transition:all .2s}.tag-item:hover{border-color:#667eea;background:#f5f6fe;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.tag-name{color:#5c6bc0;font-weight:500;font-size:15px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-delete-btn{background:transparent;border:none;color:#999;font-size:24px;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0;margin-left:8px}.tag-delete-btn:hover{background:#ffebee;color:#dc3545}.auth-methods-status{margin-bottom:24px}.auth-methods-status h3{font-size:16px;font-weight:600;color:#333;margin-bottom:12px}.auth-methods-list{display:flex;flex-direction:column;gap:10px}.auth-method-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;font-size:15px}.auth-method-item.active{background:#f5f6fe;border-color:#667eea}.auth-method-item svg{flex-shrink:0}.auth-method-item span:first-of-type{font-size:18px}.badge-active{margin-left:auto;padding:4px 12px;background:#4caf50;color:#fff;font-size:12px;font-weight:600;border-radius:12px}.auth-link-section{margin-top:24px;padding:20px;background:#f8f9fa;border-radius:10px;border:1px solid #e0e0e0}.auth-link-section h3{font-size:16px;font-weight:600;color:#333;margin-bottom:8px}.auth-link-description{font-size:14px;color:#666;margin-bottom:16px}.auth-link-form{display:flex;flex-direction:column;gap:12px}.auth-link-form .form-input{padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s}.auth-link-form .form-input:focus{outline:none;border-color:#667eea}.auth-link-form .btn{width:auto;align-self:flex-start}.auth-link-section .btn-google{width:auto}.success-message{color:#28a745;font-size:14px;padding:12px 16px;background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;margin-top:16px}.export-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.export-option{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;transition:all .2s;font-size:15px}.export-option:hover{border-color:#667eea;background:#f5f6fe}.export-option input[type=radio]{cursor:pointer;width:18px;height:18px;accent-color:#667eea}.export-option input[type=radio]:checked+span{color:#667eea;font-weight:500}.settings-section-danger{border-top:2px solid #dc3545;padding-top:30px;margin-top:40px}.danger-zone{background:#fff5f5;border:2px solid #dc3545;border-radius:10px;padding:20px}.danger-zone-content{display:flex;justify-content:space-between;align-items:center;gap:20px}.danger-zone h3{font-size:16px;font-weight:600;color:#dc3545;margin-bottom:8px}.danger-zone-description{font-size:14px;color:#666;margin:0}.btn-danger{background:#dc3545;color:#fff;padding:10px 20px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-danger:hover:not(:disabled){background:#c82333;transform:translateY(-1px);box-shadow:0 5px 15px #dc354566}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.settings-content{padding:20px}.settings-section h2{font-size:20px}.tags-grid{gap:10px}.tag-item{padding:10px 12px}.tag-name{font-size:14px}.tag-create-form .form-group{flex-direction:column}.tag-create-form .form-input,.tag-create-form .btn{width:100%}.auth-link-form .btn{width:100%;align-self:stretch}.auth-link-section .btn-google{width:100%}.danger-zone-content{flex-direction:column;align-items:stretch}.btn-danger{width:100%}}.tutorial-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.tutorial-container{max-width:600px;width:100%;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;overflow:hidden;position:relative}.tutorial-skip-button{position:absolute;top:20px;right:20px;background:transparent;border:none;font-size:32px;color:#999;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;z-index:10;line-height:1;padding:0}.tutorial-skip-button:hover{background:#f0f0f0;color:#666}.tutorial-progress{padding:20px;margin-top:20px}.progress-dots{display:flex;justify-content:center;gap:12px}.progress-dot{width:10px;height:10px;border-radius:50%;background:#fff6;transition:all .3s ease}.progress-dot.active{background:#fff;transform:scale(1.3)}.progress-dot.completed{background:#fff9}.tutorial-content{padding:40px 30px;min-height:400px}.tutorial-slide{animation:slideIn .4s ease}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.tutorial-title{font-size:24px;font-weight:600;color:#333;margin-bottom:12px;text-align:center}.tutorial-description{font-size:16px;color:#666;margin-bottom:30px;text-align:center;line-height:1.5}.tutorial-topic-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:20px;margin-bottom:20px}.tutorial-topic-card.demo{pointer-events:none}.tutorial-topic-card .topic-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.tutorial-topic-card .topic-title-section h2{font-size:20px;font-weight:600;color:#333;margin:0 0 8px}.tutorial-topic-card .topic-tags{display:flex;gap:6px;flex-wrap:wrap}.tutorial-topic-card .tag{background:#667eea;color:#fff;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.tutorial-topic-card .topic-description{color:#666;font-size:14px;margin-bottom:16px;line-height:1.4}.tutorial-topic-card .progress-bar-container{background:#f0f0f0;height:8px;border-radius:4px;overflow:hidden;margin-bottom:16px}.tutorial-topic-card .progress-bar-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;border-radius:4px;transition:width .3s ease}.tutorial-topic-card .topic-footer{display:flex;justify-content:space-between;align-items:center;gap:16px}.tutorial-topic-card .topic-stats{display:flex;flex-direction:column;gap:4px;font-size:14px}.tutorial-topic-card .push-count{font-weight:600;color:#333}.tutorial-topic-card .last-push{color:#999;font-size:12px}.tutorial-topic-card .btn-push{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease;white-space:nowrap}.tutorial-topic-card .btn-push:not(:disabled):hover{transform:scale(1.05)}.tutorial-topic-card .btn-push.btn-disabled{background:transparent;color:#f5576c;border:2px solid #f5576c;cursor:not-allowed;opacity:.4}.tutorial-push-animation{animation:pushClick .6s ease-in-out}@keyframes pushClick{0%{transform:scale(1)}20%{transform:scale(.95);box-shadow:0 2px 8px #f093fb4d}40%{transform:scale(1.05);box-shadow:0 8px 20px #f093fb99}60%{transform:scale(.98)}to{transform:scale(1)}}.tutorial-progress-animation{transition:width .6s ease-out}.tutorial-filters-demo{background:#f9f9f9;border-radius:12px;padding:20px}.tutorial-filters-demo .filters-container{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px;justify-content:center}.tutorial-filters-demo .filter-button{padding:8px 16px;border:2px solid #e0e0e0;background:#fff;border-radius:20px;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .2s ease}.tutorial-filters-demo .filter-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.tutorial-filter-explanation{display:flex;flex-direction:column;gap:20px}.explanation-item{display:flex;gap:16px;align-items:flex-start;background:#fff;padding:16px;border-radius:8px}.explanation-icon{font-size:28px;min-width:40px;text-align:center}.explanation-text{flex:1}.explanation-text strong{display:block;font-size:16px;color:#333;margin-bottom:4px}.explanation-text p{font-size:14px;color:#666;margin:0;line-height:1.4}.tutorial-navigation{padding:20px 30px 30px;display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e0e0e0}.tutorial-navigation .btn{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.tutorial-navigation .btn-secondary{background:#f0f0f0;color:#666}.tutorial-navigation .btn-secondary:hover:not(:disabled){background:#e0e0e0}.tutorial-navigation .btn-secondary:disabled{opacity:.3;cursor:not-allowed}.tutorial-navigation .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex:1;min-width:120px}.tutorial-navigation .btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.tutorial-navigation .btn-secondary{min-width:100px}@media(max-width:768px){.tutorial-content{padding:30px 20px}.tutorial-title{font-size:20px}.tutorial-description{font-size:14px}.tutorial-navigation{padding:15px 20px 20px}}*{box-sizing:border-box;margin:0;padding:0}html{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;min-height:-webkit-fill-available}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:-webkit-fill-available}.app{max-width:800px;margin:0 auto;padding:20px}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;background:#fff;padding:20px 30px;border-radius:15px;box-shadow:0 10px 30px #0003}.app-header h1{color:#667eea;font-size:32px;font-weight:700;cursor:pointer;transition:opacity .2s;-webkit-user-select:none;user-select:none}.app-header h1:hover{opacity:.8}.header-actions{display:flex;align-items:center;gap:20px}.topic-tabs{display:flex;gap:10px;margin-left:auto;margin-right:20px}.tab-button{padding:8px 16px;background:#667eea1a;color:#667eea;border:1px solid rgba(102,126,234,.2);border-radius:8px;cursor:pointer;font-weight:500;font-size:14px;transition:all .2s}.tab-button:hover{background:#667eea26;border-color:#667eea4d}.tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 5px 15px #667eea66}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-push{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;padding:12px 24px;font-size:16px;font-weight:700}.btn-push:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #f5576c66}.btn-push:disabled,.btn-disabled{background:transparent;color:#f5576c;border:2px solid #f5576c;cursor:not-allowed;opacity:.4}.btn-icon{background:transparent;border:none;font-size:20px;cursor:pointer;padding:5px;border-radius:5px;transition:background .2s}.btn-icon:hover{background:#f0f0f0}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon:disabled:hover{background:transparent}.btn-text-mobile{display:none}.btn-text-full{display:inline}.app-header--mobile{position:sticky;top:0;z-index:100;border-radius:0;margin-bottom:0;padding-top:calc(20px + env(safe-area-inset-top))}@media(max-width:768px){.app{padding:16px 16px 24px}.app-header{padding:15px 20px}.app-header h1{font-size:24px}.header-actions{gap:10px}.btn-add-topic{min-width:44px;padding:10px 16px}.btn-text-mobile{display:inline;font-size:20px}.btn-text-full{display:none}.topic-tabs{margin-right:10px;gap:6px}.tab-button{padding:6px 12px;font-size:12px}}
