*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}#root,.app{display:flex;flex-direction:column;min-height:100vh}.app{background:#fff;width:100%}.main-content{flex:1 1;overflow-y:auto;padding:20px 20px 80px}.page-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;min-height:200px;text-align:center}.container{padding:0 20px;width:100%}.card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:20px;padding:24px}.card h2{color:#2c3e50;font-size:1.5rem;margin-bottom:16px}.card p{color:#666;line-height:1.6;margin-bottom:12px}@media (min-width:320px){.main-content{padding:16px 16px 80px}.container{padding:0 16px}.card{border-radius:8px;padding:16px}.card h2{font-size:1.25rem}}@media (min-width:768px){.main-content{padding:24px 24px 20px}.container{padding:0 24px}.card{border-radius:10px;padding:20px}.card h2{font-size:1.4rem}}@media (min-width:1024px){.main-content{padding:32px}.container{padding:0 32px}.card{border-radius:12px;padding:24px}.card h2{font-size:1.5rem}}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{animation:slideUp .5s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;max-width:420px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:32px;text-align:center}.login-title{color:#2c3e50;font-size:28px;font-weight:700;line-height:1.2;margin:0 0 8px}.login-subtitle{color:#7f8c8d;font-size:16px;font-weight:400;margin:0}.login-form{margin-bottom:32px}.form-label{color:#34495e;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-input{background:#fff;border:2px solid #e1e8ed;border-radius:8px;box-sizing:border-box;font-size:16px;transition:all .2s ease;width:100%}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-input-container{position:relative}.password-toggle{background:none;border:none;border-radius:4px;cursor:pointer;font-size:16px;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%);transition:background-color .2s ease}.password-toggle:hover:not(:disabled){background-color:#f1f3f4}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.error-message{align-items:center;border:1px solid #fcc;border-radius:8px;color:#c53030;display:flex;font-size:14px;gap:8px;margin-bottom:20px;padding:12px 16px}.error-icon{flex-shrink:0;font-size:16px}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;overflow:hidden;padding:14px;position:relative;transition:all .2s ease;width:100%}.login-button:hover:not(:disabled){box-shadow:0 8px 20px #667eea4d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button.loading{background:#95a5a6;cursor:not-allowed}.login-button:disabled{box-shadow:none;cursor:not-allowed;transform:none}.loading-text{align-items:center;display:flex;gap:8px;justify-content:center}.login-actions{margin-bottom:24px;text-align:center}.signup-text{color:#7f8c8d;font-size:14px;margin:0 0 12px}.signup-button{align-items:center;background:#fff;border:2px solid #e1e8ed;border-radius:8px;color:#667eea;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;text-decoration:none;transition:all .2s ease}.signup-button:hover:not(:disabled){background:#f8f9ff;border-color:#667eea;transform:translateY(-1px)}.signup-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.signup-icon{flex-shrink:0;font-size:14px}.login-footer{border-top:1px solid #e1e8ed;padding-top:24px;text-align:center}.footer-text{color:#95a5a6;font-size:13px;margin:0}@media (max-width:480px){.login-page{padding:16px}.login-container{max-width:100%;padding:24px}.login-title{font-size:24px}.signup-button{font-size:13px;padding:10px 16px}}@media (max-width:320px){.login-container{padding:20px}.login-title{font-size:22px}}@media (prefers-color-scheme:dark){.login-page{background:linear-gradient(135deg,#2c3e50,#34495e)}}.top-nav{background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 10px #0000001a;padding:0;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.nav-container{align-items:center;display:flex;height:64px;justify-content:space-between;padding:0 20px;width:100%}.brand-text{align-items:flex-start;display:flex;flex-direction:column;line-height:1.1}.brand-playground,.brand-stock{color:#2c3e50;font-size:1.4rem;font-weight:700;letter-spacing:-.5px}.brand-playground{margin-top:-2px}.brand-stock .brand-capital{color:#e74c3c}.brand-playground .brand-capital{color:#3498db}.nav-menu{gap:8px;list-style:none}.nav-item,.nav-link,.nav-menu{display:flex}.nav-link{align-items:center;background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:500;gap:8px;padding:12px 16px;text-decoration:none;transition:all .2s ease}.nav-link:hover{background:#f0f0f0;color:#2c3e50}.nav-link.active{background:#3498db;color:#fff}.nav-icon{font-size:18px}.nav-label{font-weight:500}.bottom-nav{background:#fff;border-top:1px solid #e0e0e0;bottom:0;box-shadow:0 -2px 10px #0000001a;display:none;left:50%;max-width:100vw;padding:8px 0 calc(8px + env(safe-area-inset-bottom));position:fixed;transform:translateX(-50%);width:100%;z-index:1000}.bottom-nav-item{align-items:center;background:#0000;border:none;color:#666;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:4px;justify-content:center;min-height:56px;padding:8px 4px;transition:all .2s ease}.bottom-nav-item:hover{background:#f0f0f0}.bottom-nav-item.active{color:#3498db}.bottom-nav-icon{font-size:20px;margin-bottom:2px}.bottom-nav-label{font-size:11px;font-weight:500;line-height:1}@media (max-width:800px){.top-nav{display:none}.bottom-nav{display:flex}}@media (min-width:801px){.top-nav{display:block}.bottom-nav{display:none}.nav-container{padding:0 24px}.sub-nav{top:64px}}@media (min-width:1000px){.nav-container{padding:0 32px}}.sub-nav{background:#f8f9fa;border-bottom:1px solid #e0e0e0;position:-webkit-sticky;position:sticky;top:0;z-index:999}.sub-nav-container{display:flex;gap:8px;justify-content:center;padding:8px 16px}.sub-nav-item{background:#fff;border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#666;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;max-width:120px;padding:12px 16px;text-align:center;transition:all .2s ease}.sub-nav-item:hover{background:#f0f0f0}.sub-nav-item.active{background:#3498db;color:#fff}.auth-menu-container,.login-button-nav{align-items:center;display:flex}.login-button-nav{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s ease}.login-button-nav:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.login-icon{font-size:16px}.login-text{font-weight:600}.user-menu-container{position:relative}.user-menu-button{background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#2c3e50;padding:8px 12px}.user-menu-button:hover{background:#f8f9fa;border-color:#3498db}.user-avatar{flex-shrink:0;font-size:16px}.user-name{font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-arrow{color:#7f8c8d;font-size:10px;transition:transform .2s ease}.user-dropdown{animation:dropdownSlide .2s ease-out;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 20px #00000026;margin-top:8px;min-width:220px;position:absolute;right:0;top:100%;z-index:1001}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info{border-bottom:1px solid #f0f0f0;padding:16px}.user-info-name{color:#2c3e50;font-size:16px;font-weight:600;margin-bottom:4px}.user-info-role{color:#7f8c8d;font-size:14px;margin-bottom:4px}.user-info-grade{background:#3498db1a;border-radius:4px;color:#3498db;display:inline-block;font-size:13px;font-weight:500;margin-bottom:8px;padding:2px 6px}.user-info-email{color:#95a5a6;font-size:13px;font-style:italic}.user-menu-divider{border:none;border-top:1px solid #f0f0f0;margin:0}.user-menu-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 16px;transition:all .2s ease;width:100%}.user-menu-button .logout-icon,.user-menu-button .menu-icon{font-size:16px}.profile-button{border-radius:8px 8px 0 0;color:#2c3e50}.profile-button:hover{background:#f8f9fa;color:#3498db}.logout-button{border-radius:0 0 8px 8px;color:#e74c3c}.logout-button:hover{background:#fdf2f2;color:#c0392b}.logout-icon{font-size:16px}.auth-loading{align-items:center;background:#f8f9fa;color:#2c3e50;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.auth-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid #0000;border-radius:50%;border-top-color:#3498db;height:48px;margin-bottom:16px;transform-origin:center center;width:48px}.auth-loading p{color:#7f8c8d;font-size:16px}.access-denied{color:#2c3e50}.access-denied p{color:#7f8c8d;margin-bottom:8px;max-width:400px}.access-denied p:last-of-type{margin-bottom:24px}.login-prompt-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:16px;padding:12px 24px;transition:all .2s ease}.login-prompt-button:hover{box-shadow:0 8px 20px #667eea4d;transform:translateY(-2px)}@media (max-width:800px){.user-name{display:none}.user-menu-button{padding:6px 8px}.user-dropdown{min-width:200px;right:-8px}.sub-nav-item{padding:6px 16px}}@media (max-width:500px){.nav-container{padding:0 12px}.user-dropdown{min-width:180px;right:-12px}.user-info{padding:12px}}.login-modal-overlay{align-items:center;animation:modalFadeIn .3s ease-out;background:#000000b3;bottom:0;box-sizing:border-box;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.login-modal-content{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;position:relative;width:100%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.login-modal-close{align-items:center;background:#0000001a;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:all .2s ease;width:32px;z-index:1}.login-modal-close:hover{background:#0003;color:#333}.login-modal-content .login-page{background:#0000;min-height:auto;padding:0}.login-modal-content .login-container{box-shadow:none;margin:0;max-width:none}.bottom-nav-item.login-mobile.active,.bottom-nav-item.user-menu-mobile.active{background:#3498db1a;color:#3498db}.mobile-user-menu-overlay{align-items:flex-end;animation:mobileMenuFadeIn .3s ease-out;background:#00000080;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:9999}@keyframes mobileMenuFadeIn{0%{opacity:0}to{opacity:1}}.mobile-user-menu{animation:mobileMenuSlideUp .3s ease-out;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;padding:24px 20px;position:relative;width:100%;z-index:10000}@keyframes mobileMenuSlideUp{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.mobile-user-info{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:16px;margin-bottom:24px;padding-bottom:20px}.mobile-user-avatar{align-items:center;background:#f8f9fa;border-radius:50%;display:flex;flex-shrink:0;font-size:32px;height:60px;justify-content:center;width:60px}.mobile-user-details{flex:1 1;min-width:0}.mobile-user-name{color:#2c3e50;font-size:18px;font-weight:600;margin-bottom:4px}.mobile-user-role{color:#7f8c8d;font-size:14px;margin-bottom:4px}.mobile-user-grade{background:#3498db1a;border-radius:4px;color:#3498db;display:inline-block;font-size:13px;font-weight:500;margin-bottom:6px;padding:2px 8px}.mobile-user-email{color:#95a5a6;font-size:13px;font-style:italic}.mobile-user-button{-webkit-tap-highlight-color:transparent;align-items:center;border:none;border-radius:12px;box-sizing:border-box;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;margin-bottom:8px;padding:16px;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s ease;-webkit-user-select:none;user-select:none;width:100%;z-index:1}.mobile-user-button .logout-icon,.mobile-user-button .menu-icon{font-size:18px}.mobile-profile-button{background:#3498db!important;border:2px solid #2980b9!important;color:#fff!important;min-height:48px!important}.mobile-profile-button:hover{background:#2980b9!important}.mobile-profile-button:active{background:#21618c!important;transform:scale(.98)}.mobile-logout-button{background:#e74c3c;color:#fff;margin-bottom:0}.mobile-logout-button:hover{background:#c0392b}@media (max-width:800px){.login-text{display:none}.login-button-nav{padding:6px 8px}.login-modal-content{margin:10px;max-height:calc(100vh - 20px);width:calc(100% - 20px)}.user-dropdown{display:none}.bottom-nav-item{min-height:52px;padding:6px 2px}.bottom-nav-icon{font-size:18px}.bottom-nav-label{font-size:10px;line-height:1.1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}}@media (max-width:500px){.login-modal-overlay{padding:10px}.login-modal-content{border-radius:12px}.bottom-nav-item{min-height:48px;padding:4px 1px}.bottom-nav-icon{font-size:16px}.bottom-nav-label{font-size:9px}}@media (max-width:400px){.bottom-nav-label{display:none}.bottom-nav-item{min-height:44px}.bottom-nav-icon{font-size:20px}}@media (min-width:1000px){.mobile-only{display:none!important}}@media (max-width:999px){.user-dropdown{display:none!important}}.sidebar-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:998}.board-sidebar{background:#fff;border-right:1px solid #e0e0e0;box-shadow:2px 0 10px #0000001a;display:flex;flex-direction:column;height:calc(100vh - 64px);left:0;position:fixed;top:64px;transform:translateX(-100%);transition:transform .3s ease;width:280px;z-index:999}.board-sidebar.open{transform:translateX(0)}.sidebar-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px}.sidebar-header h2{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.sidebar-close{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:none;font-size:18px;padding:4px}.sidebar-close:hover{background:#e0e0e0}.sidebar-content{flex:1 1;overflow-y:auto;padding:16px 0}.error-message,.loading-message{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.loading-spinner{margin-bottom:12px}.error-message p,.loading-message p{color:#666;font-size:14px;margin:0}.retry-btn{margin-top:12px;padding:8px 16px}.board-category{margin-bottom:24px}.category-title{color:#7f8c8d;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px 20px;text-transform:uppercase}.board-list{list-style:none;margin:0;padding:0}.board-item{margin:0}.board-link{align-items:center;background:#0000;border:none;color:#666;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;padding:12px 20px;text-decoration:none;transition:all .2s ease;width:100%}.board-link:hover{background:#f0f0f0;color:#2c3e50}.board-link.active{background:#3498db;color:#fff}.board-link.active .board-count{background:#fff3;color:#fff}.board-info{align-items:center;display:flex;gap:12px}.board-icon{font-size:16px}.board-name{font-weight:500}.board-count{background:#ecf0f1;border-radius:12px;color:#7f8c8d;font-size:12px;font-weight:600;min-width:24px;padding:2px 8px;text-align:center}.sidebar-footer{background:#f8f9fa;border-top:1px solid #e0e0e0;padding:16px 20px}.create-board-btn{align-items:center;background:#2ecc71;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 16px;transition:background .2s ease;width:100%}.create-board-btn:hover{background:#27ae60}@media (min-width:768px){.board-sidebar{border-right:1px solid #e0e0e0;box-shadow:none;height:auto;min-height:calc(100vh - 64px);position:static;transform:none}.sidebar-overlay{display:none!important}.sidebar-close{display:none}}@media (max-width:767px){.board-sidebar{height:100vh;top:0}.sidebar-close,.sidebar-overlay{display:block}}.board-content{background:#fff;flex:1 1;min-height:100%}.mobile-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:none;justify-content:space-between;padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.mobile-header h1{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.sidebar-toggle{background:none;border:none;color:#666;cursor:pointer;font-size:20px;padding:8px}.board-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:32px}.board-header,.board-title{align-items:center;display:flex}.board-title{gap:16px}.board-icon{font-size:32px}.board-title h1{color:#2c3e50;font-size:1.8rem;font-weight:600;margin:0 0 4px}.board-title p{color:#666;font-size:14px;margin:0}.write-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background .2s ease}.write-btn:hover{background:#2980b9}.write-btn.login-required{background:#95a5a6;font-size:13px;padding:8px 16px}.write-btn.login-required:hover{background:#7f8c8d}.write-btn.permission-denied{background:#e74c3c;cursor:not-allowed;opacity:.7}.write-btn.permission-denied:hover{background:#e74c3c}.retry-btn{background:#3498db;border-radius:6px;margin-top:16px;padding:12px 24px}.retry-btn:hover{background:#2980b9}.close-btn{font-size:1.5rem;padding:4px;transition:background-color .2s}.close-btn:hover{background:#e9ecef}.board-toolbar{background:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:16px 32px}.board-toolbar,.toolbar-left{align-items:center;display:flex}.toolbar-left{gap:16px}.toolbar-right{align-items:center;display:flex;gap:12px}.toolbar-right .post-count{color:#666;font-size:14px}.solved-filter,.sort-select{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 12px}.search-box{align-items:center;border:1px solid #ddd;border-radius:6px;display:flex;overflow:hidden}.search-box input{border:none;outline:none;padding:8px 12px;width:200px}.search-box button{background:#f0f0f0;border:none;cursor:pointer;font-size:14px;padding:8px 12px}.search-box button:hover{background:#e0e0e0}.loading-indicator{color:#3498db;font-size:14px}.post-list{background:#fff}.post-item{border-bottom:1px solid #f0f0f0;transition:background .2s ease}.post-item:hover{background:#f8f9fa}.post-main{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:20px 32px}.post-title-area{flex:1 1}.post-title{align-items:center;color:#2c3e50;display:flex;font-size:11.2px;font-weight:500;gap:8px;line-height:1.4;margin:0 0 8px}.post-meta{color:#7f8c8d;font-size:13px;gap:12px}.post-author{font-weight:500}.post-stats{gap:16px;margin-left:16px}.post-stats,.stat-item{align-items:center;display:flex}.stat-item{color:#7f8c8d;font-size:13px;gap:4px}.stat-icon{font-size:12px}.solve-badge{border-radius:4px;font-size:11px;padding:2px 6px}.solve-badge.solved{background:#2ecc71;color:#fff}.solve-badge.unsolved{background:#e74c3c;color:#fff}.pagination{gap:8px;padding:32px}.page-btn,.pagination{align-items:center;background:#fff;display:flex;justify-content:center}.page-btn{border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:14px;height:32px;min-width:32px;transition:all .2s ease}.page-btn:hover{background:#f0f0f0}.page-btn.active{background:#3498db;border-color:#3498db;color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.5}.page-btn:disabled:hover{background:#fff}.empty-message,.error-message,.loading-message{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 32px}.empty-message p,.error-message p,.loading-message p{color:#666;font-size:16px;margin:4px 0}.empty-message p:first-child{font-size:18px;margin-bottom:8px}.comments-loading{color:#666;padding:20px}.no-comments,.no-content{color:#999;font-style:italic;padding:20px;text-align:center}.post-detail-modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;left:0;position:absolute;right:0;top:0}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;position:relative;width:90%}.modal-header{background:#f8f9fa;border-bottom:1px solid #eee}.post-detail-title{color:#333;flex:1 1;font-size:1.4rem;margin:0 16px 0 0}.modal-body{flex:1 1;overflow-y:auto}.post-detail-meta{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:12px}.post-detail-meta span{color:#666;font-size:.9rem}.post-detail-content{line-height:1.6;margin-bottom:30px}.post-content{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:16px}.post-content p{color:#333;margin:0 0 8px}.comments-section{border-top:1px solid #eee;padding-top:20px}.comments-title{color:#333;font-size:1.2rem;margin:0 0 16px}.comments-list{gap:12px}.comment-item{border-radius:6px;padding:12px}.comment-header{color:#666;font-size:.85rem;gap:12px;margin-bottom:8px}.comment-content{color:#333;line-height:1.5}.comment-content p{margin:0 0 4px}@media (min-width:801px) and (max-width:1000px){.board-header{padding:24px}.board-toolbar,.post-main{padding:16px 24px}.search-box input{width:150px}}@media (max-width:800px){.mobile-header{display:flex}.board-header{display:none}.board-toolbar{padding:16px}.board-toolbar,.toolbar-left{align-items:stretch;flex-direction:column;gap:12px}.search-box input{width:100%}.post-main{align-items:flex-start;flex-direction:column;gap:12px;padding:16px}.post-stats{align-self:flex-end;margin-left:0}.pagination{padding:20px 16px}.modal-content{margin:20px;max-height:95vh;width:95%}.modal-body,.modal-header{padding:16px}.post-detail-title{font-size:1.2rem}.post-detail-meta{font-size:.85rem;gap:8px}.comment-header{flex-wrap:wrap;gap:8px}}@media (max-width:500px){.board-toolbar,.post-main{padding:12px}.pagination{padding:16px 12px}.page-btn{font-size:12px;height:28px;min-width:28px}.empty-message,.error-message,.loading-message{padding:40px 16px}.modal-body,.modal-header{padding:12px}.post-detail-title{font-size:1.1rem}}.rich-text-editor{background:#fff;border:1px solid #d0d7de;border-radius:8px;overflow:hidden;position:relative}.rich-text-editor.disabled{opacity:.6;pointer-events:none}.editor-toolbar{background:#f6f8fa;border-bottom:1px solid #d0d7de;flex-wrap:wrap;gap:4px;min-height:46px;padding:8px 12px}.editor-toolbar,.toolbar-group{align-items:center;display:flex}.toolbar-group{gap:2px}.toolbar-divider{background:#d0d7de;height:24px;margin:0 8px;width:1px}.toolbar-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:4px;color:#24292f;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:4px;min-height:28px;padding:6px 10px;transition:all .15s ease}.toolbar-btn:hover:not(:disabled){background:#f3f4f6;border-color:#d0d7de}.toolbar-btn:active:not(:disabled){background:#e5e7ea;border-color:#afb8c1}.toolbar-btn:disabled{cursor:not-allowed;opacity:.5}.toolbar-select{background:#fff;border:1px solid #d0d7de;border-radius:4px;color:#24292f;cursor:pointer;font-size:12px;min-width:80px;padding:4px 8px}.toolbar-select:hover:not(:disabled){border-color:#8c959f}.toolbar-select:focus:not(:disabled){border-color:#0969da;box-shadow:0 0 0 3px #0969da1a;outline:none}.editor-content{word-wrap:break-word;color:#24292f;direction:ltr;font-size:14px;line-height:1.6;outline:none;overflow-y:auto;padding:16px;position:relative;text-align:left;unicode-bidi:normal}.editor-content:focus{box-shadow:inset 0 0 0 2px #0969da}.editor-content[data-placeholder]:empty:before{color:#8c959f;content:attr(data-placeholder);pointer-events:none}.editor-content.dragging{background:#0969da0d;border:2px dashed #0969da}.drag-overlay{align-items:center;background:#0969da1a;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:46px;z-index:10}.drag-message{color:#0969da;text-align:center}.drag-icon{font-size:48px;margin-bottom:12px}.editor-content h1{font-size:28px;margin:24px 0 16px;padding-bottom:8px}.editor-content h1,.editor-content h2{border-bottom:1px solid #d0d7de;font-weight:600}.editor-content h2{font-size:24px;margin:20px 0 12px;padding-bottom:4px}.editor-content h3{font-size:20px;font-weight:600;margin:16px 0 8px}.editor-content h4,.editor-content h5,.editor-content h6{font-size:16px;font-weight:600;margin:12px 0 8px}.editor-content p{margin:8px 0}.editor-content blockquote{border-left:4px solid #d0d7de;color:#656d76;font-style:italic;margin:16px 0;padding:0 16px}.editor-content ol,.editor-content ul{margin:12px 0;padding-left:24px}.editor-content li{margin:4px 0}.editor-content a{color:#0969da;text-decoration:underline}.editor-content a:hover{text-decoration:none}.editor-content img{border-radius:6px;box-shadow:0 1px 3px #0000001a;height:auto;margin:12px 0;max-width:100%}.editor-content code{background:#f6f8fa;border:1px solid #d0d7de;border-radius:3px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;margin:0 2px;padding:2px 4px}.editor-content pre{background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;margin:16px 0;overflow-x:auto;padding:16px}.editor-content pre code{background:none;border:none;border-radius:0;font-size:13px;line-height:1.45;margin:0;padding:0}.editor-content input[type=checkbox]{margin-right:8px;transform:scale(1.1)}.editor-content table{border-collapse:collapse;margin:16px 0;width:100%}.editor-content td,.editor-content th{border:1px solid #d0d7de;padding:8px 12px;text-align:left}.editor-content th{background:#f6f8fa;font-weight:600}@media (max-width:768px){.editor-toolbar{gap:2px;padding:6px 8px}.toolbar-divider{display:none}.toolbar-btn{font-size:11px;min-height:24px;padding:4px 6px}.toolbar-select{font-size:11px;min-width:70px;padding:2px 6px}.editor-content{font-size:13px;padding:12px}}@media (max-width:480px){.toolbar-group{gap:1px}.toolbar-btn{font-size:10px;min-height:22px;padding:3px 5px}.toolbar-select{font-size:10px;min-width:60px}.editor-content{font-size:12px;padding:10px}}.post-detail-page{background:#f8f9fa;min-height:100%;overflow-y:auto}.post-detail-content{background:#fff;margin:0;min-height:auto;padding-bottom:40px;width:100%}.post-detail-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:16px 20px}.back-button{align-items:center;background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.back-button:hover{background:#0056b3;transform:translateY(-1px)}.header-actions{display:flex;gap:8px}.action-btn{background:#6c757d;color:#fff;font-size:13px;padding:8px 16px;transition:background .2s ease}.action-btn:hover{background:#545b62}.action-btn.danger{background:#dc3545}.action-btn.danger:hover{background:#c82333}.post-title-section{border-bottom:2px solid #e9ecef;padding:30px 30px 20px}.post-title{color:#212529;font-size:28px;font-weight:700;line-height:1.3;margin:0 0 16px;word-break:keep-all}.post-meta{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.meta-left,.meta-right{align-items:center;display:flex;gap:12px}.post-author,.post-date{align-items:center;color:#6c757d;display:flex;font-size:14px;gap:4px}.post-comments,.post-views{align-items:center;color:#868e96;display:flex;font-size:13px;gap:4px}.solve-status{margin-top:8px}.solve-badge{align-items:center;border-radius:16px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:4px 12px}.solve-badge.solved{background:#d4edda;color:#155724}.solve-badge.unsolved{background:#fff3cd;color:#856404}.post-like-btn{align-items:center;background:#f8f9fa;border:1px solid #0000;border-radius:16px;color:#868e96;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:4px;padding:4px 8px;transition:all .2s ease}.post-like-btn:hover{background:#e9ecef;border-color:#dee2e6;transform:translateY(-1px)}.post-like-btn.liked{background:#fff5f5;border-color:#f8d7da;color:#dc3545}.post-like-btn.liked:hover{background:#f8d7da}.post-like-btn.loading{animation:pulse 1.5s ease-in-out infinite;cursor:wait;opacity:.7}.post-like-btn:disabled{cursor:not-allowed;opacity:.6}.like-icon{font-size:14px}.like-count{font-weight:600}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.post-content-section{border-bottom:2px solid #e9ecef;padding:30px}.post-content{color:#212529;font-size:16px;line-height:1.8;white-space:pre-wrap;word-break:break-word}.post-content p{margin:0 0 12px;min-height:1.8em}.post-content p:last-child{margin-bottom:0}.no-content{color:#6c757d;font-style:italic;padding:40px 0;text-align:center}.comments-section{padding:30px}.comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.comments-title{align-items:center;color:#212529;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0}.comment-write-btn{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s ease}.comment-write-btn:hover{background:#218838}.comments-list{display:flex;flex-direction:column;gap:20px}.comment-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;transition:all .2s ease}.comment-item:hover{background:#f1f3f4;border-color:#dee2e6}.comment-item.first-comment{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border-color:#90caf9}.comment-item.reply-comment{background:#fafafa;border-left:3px solid #2196f3}.comment-level-0{background:#fff}.comment-level-1{background:#f8f9ff;border-left:3px solid #2196f3}.comment-level-2{background:#f0f8f0;border-left:3px solid #4caf50}.comment-level-3{background:#fff8f0;border-left:3px solid #ff9800}.comment-level-4{background:#fff0f8;border-left:3px solid #e91e63}.comment-level-5{background:#f8f0ff;border-left:3px solid #9c27b0}.comment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.comment-header-left{gap:12px}.comment-header-left,.comment-header-right{align-items:center;display:flex}.comment-author,.comment-date{align-items:center;color:#6c757d;display:flex;font-size:13px;gap:4px}.comment-likes{align-items:center;color:#868e96;display:flex;font-size:12px;gap:4px}.comment-content{color:#212529;font-size:15px;line-height:1.6;margin-bottom:12px;white-space:pre-wrap;word-break:break-word}.comment-content p{margin:0 0 8px;min-height:1.6em}.comment-content p:last-child{margin-bottom:0}.comment-actions{display:flex;gap:8px;margin-top:12px}.comment-action-btn{background:#e9ecef;border:none;border-radius:4px;color:#6c757d;cursor:pointer;font-size:12px;padding:4px 12px;transition:all .2s ease}.comment-action-btn:hover{background:#dee2e6;color:#495057}.comment-action-btn.disabled{color:#999;cursor:not-allowed;opacity:.5}.comment-action-btn.disabled:hover{background:#e9ecef;color:#999}.reply-indicator{align-items:center;display:flex;margin-right:8px}.reply-icon{color:#2196f3;font-size:14px;font-weight:700;margin-right:2px}.comment-level{background:#2196f3;border-radius:10px;color:#fff;font-size:10px;font-weight:600;padding:2px 6px}.has-reply-indicator{background:#d4edda;border-radius:4px;color:#28a745;font-size:10px;margin-left:auto;padding:2px 6px}.comment-menu-container{position:relative}.comment-menu-btn{background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;font-size:16px;padding:4px 8px;transition:all .2s ease}.comment-menu-btn:hover{background:#f8f9fa;color:#495057}.comment-menu-dropdown{background:#fff;border:1px solid #e9ecef;border-radius:4px;box-shadow:0 2px 8px #00000026;min-width:120px;position:absolute;right:0;top:100%;z-index:1000}.menu-item{align-items:center;background:none;border:none;color:#495057;display:flex;font-size:13px;justify-content:space-between;padding:8px 12px;text-align:left;transition:background .2s ease;width:100%}.menu-item:hover{background:#f8f9fa}.menu-item.delete{color:#dc3545}.menu-item.delete:hover{background:#f8f9fa;color:#c82333}.form-inputs{gap:16px;margin-bottom:20px}.input-group{gap:6px}.input-group label{font-size:14px}.input-group input,.input-group textarea{border:1px solid #ced4da;border-radius:4px;padding:10px 12px;resize:vertical}.input-group input:focus,.input-group textarea:focus{box-shadow:0 0 0 2px #007bff40}.cancel-btn,.submit-btn{border-radius:4px;font-size:12px;font-weight:500;padding:6px 14px}.submit-btn{background:#28a745}.submit-btn:hover:not(:disabled){background:#218838}.comment-form{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:24px;padding:20px}.comment-form .form-header{margin-bottom:16px}.comment-form .form-header h3{color:#212529;font-size:16px;font-weight:600;margin:0}.post-edit-form{background:#e8f4fd;border:1px solid #b3d9f7;border-radius:8px;margin:20px;padding:30px}.post-edit-form .form-header{margin-bottom:24px;text-align:center}.post-edit-form .form-header h2{color:#0056b3;font-size:20px;font-weight:600;margin:0}.post-edit-form .form-inputs{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.post-edit-form .input-group{display:flex;flex-direction:column;gap:8px}.post-edit-form .input-group label{color:#0056b3;font-size:15px;font-weight:600}.post-edit-form .input-group input,.post-edit-form .input-group textarea{background:#fff;border:2px solid #b3d9f7;border-radius:6px;font-size:14px;padding:12px 16px;transition:border-color .2s ease}.post-edit-form .input-group input:focus,.post-edit-form .input-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.post-edit-form .input-group textarea{min-height:200px;resize:vertical}.post-edit-form .form-actions{display:flex;gap:16px;justify-content:center}.post-edit-form .cancel-btn,.post-edit-form .submit-btn{font-size:15px;font-weight:600;min-width:120px;padding:12px 24px}.reply-form{background:#f0f8ff;border:1px solid #b3d9f7;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-top:16px;padding:16px}.reply-form .form-header{margin-bottom:12px}.reply-form .form-header h4{color:#007bff;font-size:14px;font-weight:600;margin:0}.reply-form .form-inputs{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.reply-form .input-group{display:flex;flex-direction:column;gap:6px}.reply-form .input-group label{color:#495057;font-size:13px;font-weight:500}.reply-form .input-group input,.reply-form .input-group textarea{border:1px solid #ced4da;border-radius:4px;font-size:13px;padding:8px 12px;transition:border-color .2s ease}.reply-form .input-group input:focus,.reply-form .input-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.reply-form .form-actions{display:flex;gap:8px;justify-content:flex-end}.reply-form .cancel-btn,.reply-form .submit-btn{border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;padding:6px 16px;transition:all .2s ease}.reply-form .cancel-btn{background:#6c757d;color:#fff}.reply-form .cancel-btn:hover:not(:disabled){background:#545b62}.reply-form .submit-btn{background:#007bff;color:#fff}.reply-form .submit-btn:hover:not(:disabled){background:#0056b3}.reply-form .cancel-btn:disabled,.reply-form .submit-btn:disabled{cursor:not-allowed;opacity:.6}.reply-form .submit-btn:disabled{background:#6c757d}.comment-edit-form{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:16px}.comment-edit-form .form-inputs{margin-bottom:16px}.comment-edit-form .input-group{margin-bottom:12px}.comment-edit-form .input-group:last-child{margin-bottom:0}.empty-message,.error-message,.loading-message{background:#fff;box-shadow:0 2px 4px #0000001a;margin:20px;padding:60px 20px}.comments-loading{color:#6c757d;padding:40px 0;text-align:center}.comments-loading .loading-spinner{border:3px solid #0000;border-top-color:#3498db;height:40px;margin-bottom:12px;width:40px}.no-comments{color:#6c757d;font-style:italic;padding:40px 0;text-align:center}.error-message p{color:#dc3545;font-weight:500;margin-bottom:16px}.retry-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px;transition:background .2s ease}.retry-btn:hover{background:#0056b3}.empty-message p{color:#6c757d;font-size:16px}.admin-notice{align-items:center;color:#ffc107;display:inline-flex;font-size:16px;margin-left:8px}.admin-badge{color:#ffc107;font-size:12px;margin-left:4px;opacity:.8}.login-required{background:#95a5a6;border-radius:8px;color:#fff;display:inline-block;font-size:13px;font-weight:600;padding:8px 16px}@media (max-width:800px){.post-detail-header{padding:12px 16px}.back-button{font-size:13px;padding:6px 12px}.header-actions{gap:6px}.action-btn{font-size:12px;padding:6px 12px}.post-detail-content{margin:0}.post-title-section{padding:20px 16px 16px}.post-title{font-size:22px}.post-meta{align-items:flex-start;flex-direction:column;gap:8px}.meta-left,.meta-right{gap:8px}.post-content-section{padding:20px 16px}.post-content{font-size:15px}.comments-section{padding:20px 16px}.comments-header{align-items:flex-start;flex-direction:column;gap:12px}.comments-title{font-size:18px}.comment-item{padding:16px}}@media (max-width:500px){.post-title{font-size:20px}.post-content{font-size:14px}.comments-title{font-size:16px}.comment-content{font-size:14px}.comment-form{padding:16px}.form-actions{flex-direction:column;gap:8px}.cancel-btn,.submit-btn{padding:10px;width:100%}.comment-header{flex-wrap:wrap;gap:8px}.comment-header-left{flex:1 1;min-width:0}.comment-menu-dropdown{left:auto;min-width:100px;right:0}.reply-form{padding:12px}.reply-form .form-actions{flex-direction:column;gap:6px}.reply-form .cancel-btn,.reply-form .submit-btn{padding:8px;width:100%}.comment-level-1,.comment-level-2,.comment-level-3,.comment-level-4,.comment-level-5{margin-left:16px!important}.reply-indicator{margin-right:4px}.reply-icon{font-size:12px}.comment-level{font-size:9px;padding:1px 4px}}@media (max-width:400px){.comment-level-1,.comment-level-2,.comment-level-3,.comment-level-4,.comment-level-5{margin-left:8px!important}.comment-author,.comment-date,.comment-likes{font-size:11px}}.post-write-page{background:#f8f9fa;min-height:100%;overflow-y:auto}.post-write-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:16px 20px}.post-write-header .back-button{align-items:center;background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.post-write-header .back-button:hover{background:#0056b3;transform:translateY(-1px)}.post-write-header .page-title{color:#212529;font-size:18px;font-weight:600;margin:0}.permission-error{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;justify-content:center;margin:20px;padding:60px 20px;text-align:center}.permission-error .error-icon{font-size:48px;margin-bottom:16px;opacity:.7}.permission-error .error-message h3{color:#e74c3c;font-size:20px;font-weight:600;margin:0 0 12px}.permission-error .error-message p{color:#666;font-size:14px;line-height:1.5;margin:0 0 24px;white-space:pre-line}.permission-error .back-to-list-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:background .2s ease}.permission-error .back-to-list-btn:hover{background:#2980b9}.post-write-content{padding:20px 20px 40px;width:100%}.post-write-form{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:0;padding:30px;width:100%}.form-inputs{display:flex;flex-direction:column;gap:24px;margin-bottom:32px}.input-group{gap:8px}.input-group label{color:#495057;font-size:15px;font-weight:600}.input-group input,.input-group textarea{border:2px solid #ced4da;border-radius:6px;font-family:inherit;font-size:14px;padding:12px 16px;transition:border-color .2s ease}.input-group input:focus,.input-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}.input-group input:disabled,.input-group textarea:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.input-group textarea{line-height:1.6;min-height:300px;resize:vertical}.form-actions{gap:16px}.cancel-btn,.submit-btn{border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:600;min-width:120px;padding:12px 32px;transition:all .2s ease}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover:not(:disabled){background:#545b62}.submit-btn{background:#007bff;color:#fff}.submit-btn:hover:not(:disabled){background:#0056b3}.cancel-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.6}.submit-btn:disabled{background:#6c757d}.author-info{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#495057;display:flex;font-size:14px;gap:8px;padding:12px 16px}.user-role{color:#6c757d;font-size:12px;font-weight:500}@media (max-width:768px){.post-write-header{flex-wrap:wrap;gap:12px;padding:12px 16px}.post-write-header .back-button{font-size:13px;padding:6px 12px}.post-write-header .page-title{font-size:16px;order:-1;text-align:center;width:100%}.post-write-content{padding:16px}.post-write-form{padding:20px}.form-inputs{gap:20px;margin-bottom:24px}.input-group textarea{min-height:250px}.form-actions{flex-direction:column;gap:12px}.cancel-btn,.submit-btn{padding:14px;width:100%}}@media (max-width:480px){.post-write-header .page-title{font-size:14px}.post-write-form{padding:16px}.input-group label{font-size:14px}.input-group input,.input-group textarea{font-size:13px;padding:10px 12px}.input-group textarea{min-height:200px}}.board-page{display:flex;min-height:calc(100vh - 64px);position:relative}.board-main{display:flex;flex:1 1;flex-direction:column;margin-left:0;overflow-y:auto}@media (max-width:800px){.board-page{min-height:calc(100vh - 80px)}.board-main{width:100%}}.page-container{margin:0 auto;max-width:1400px!important;padding:24px}.page-header{margin-bottom:32px;text-align:center}.page-header h1{color:#2c3e50;font-size:2rem;margin-bottom:8px}.page-header p{color:#666;font-size:1rem}.theme-ranking-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin:24px 0;padding:20px}.theme-ranking-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.theme-ranking-title{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.theme-pagination-controls{display:flex;gap:8px}.theme-next-btn,.theme-prev-btn{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;display:flex;font-size:14px;font-weight:600;height:36px;justify-content:center;pointer-events:auto;position:relative;transition:all .2s ease;width:36px;z-index:10}.theme-next-btn:hover:not(:disabled),.theme-prev-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd;color:#212529}.theme-next-btn:disabled,.theme-prev-btn:disabled{background:#f8f9fa;border-color:#dee2e6;color:#adb5bd;cursor:not-allowed}.empty-theme-row{background:#f8f9fa!important;pointer-events:none}.empty-theme-row td{color:#adb5bd!important;font-style:italic}.theme-ranking-table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.theme-ranking-table{border-collapse:collapse;table-layout:auto;width:100%}.theme-ranking-table th:first-child{width:50px}.theme-ranking-table td,.theme-ranking-table th{border-bottom:1px solid #eee;padding:12px 8px;text-align:center;vertical-align:middle}.theme-ranking-table th{color:#495057;font-size:.9rem;font-weight:600;white-space:nowrap}.theme-ranking-table th,.theme-ranking-table tr:hover{background-color:#f8f9fa}.theme-ranking-table .clickable-theme-row{cursor:pointer;transition:background-color .2s ease}.theme-ranking-table .clickable-theme-row:hover{background-color:#e3f2fd}.theme-ranking-table .selected-theme-name{color:#1976d2!important;font-weight:700!important}.theme-ranking-table .selected-indicator{color:#1976d2;font-size:14px;font-weight:700}.theme-ranking-table .rank-number{background:none!important;border-radius:0!important;color:#333;display:inline!important;font-size:1rem;font-weight:700;height:auto!important;line-height:normal!important;text-align:left!important;width:auto!important}.theme-ranking-table .theme-name{color:#2c3e50;font-weight:600;white-space:nowrap}.theme-ranking-table .trading-value{color:#28a745;font-weight:600}.theme-ranking-table .stock-count{background:none!important;border-radius:0!important;color:#6c757d;font-size:.9rem;padding:0!important}.theme-ranking-table .leader-stock{color:#2c3e50;font-weight:500;white-space:nowrap}.theme-ranking-table .leader-price{color:#495057;font-weight:500}.theme-ranking-table .avg-rate,.theme-ranking-table .leader-rate{font-weight:600}.theme-selection-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin:24px 0;padding:20px}.theme-selection-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.theme-selection-title{color:#2c3e50;flex:1 1;font-size:1.2rem;font-weight:600;margin:0}.select-all-themes-btn{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.select-all-themes-btn:hover{background:#2980b9;transform:translateY(-1px)}.theme-labels-container{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.theme-label{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:20px;color:#666;cursor:pointer;display:inline-flex;font-size:14px;gap:4px;padding:8px 12px}.theme-label:hover{background:#f8f9fa;border-color:#3498db;color:#2c3e50;transform:translateY(-1px)}.theme-label.selected{background:#3498db;border-color:#3498db;color:#fff}.theme-label.selected:hover{background:#2980b9;border-color:#2980b9}.theme-label.top-theme{background:#fff3cd;border-color:#f39c12;color:#856404}.theme-label.top-theme.selected{background:#f39c12;border-color:#f39c12;color:#fff}.theme-label.top-theme:hover{background:#ffeaa7;border-color:#e67e22}.theme-label.top-theme.selected:hover{background:#e67e22;border-color:#e67e22}.top-indicator{font-size:12px;opacity:.8}.no-theme-selected{color:#666;font-style:italic;padding:20px;text-align:center}.no-theme-selected p{font-size:14px;margin:0}.datetime-control-panel{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;flex-wrap:nowrap;justify-content:flex-end;margin-bottom:24px;overflow-x:auto;padding:20px}.datetime-control-panel,.datetime-inputs{align-items:flex-end;display:flex;gap:12px}.datetime-inputs{flex:1 1;min-width:0}.input-group{flex-shrink:1;justify-content:flex-end;min-width:0}.datetime-inputs .input-group:first-child,.datetime-inputs .input-group:nth-child(2){flex:1 1 auto}.input-group label{color:#666;font-size:12px;margin-bottom:4px}.condition-select,.date-input,.percentage-input,.time-input,.unit-select{background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-sizing:border-box;font-size:14px;height:40px;padding:10px 8px;transition:border-color .2s ease;width:100%}.condition-select:focus,.date-input:focus,.percentage-input:focus,.time-input:focus,.unit-select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.condition-select,.unit-select{cursor:pointer}.unit-select{min-width:60px}.date-input,.time-input{min-width:130px}.percentage-input{text-align:right}.condition-select{min-width:80px;width:80px}.percentage-filter-group{align-items:center!important;display:flex!important;flex-shrink:0!important;gap:8px!important}.control-buttons{align-items:flex-end;display:flex;flex-shrink:0;gap:8px;justify-content:flex-end}.nav-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:40px;justify-content:center;transition:all .2s ease;width:40px}.nav-btn:hover{background:#f0f0f0;border-color:#ccc;color:#2c3e50}.search-btn{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-left:8px;padding:10px 16px;text-align:center;transition:all .2s ease;white-space:nowrap;width:80px}.search-btn:hover{background:#2980b9}.search-btn:disabled{background:#bdc3c7;cursor:not-allowed}.settings-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;font-size:16px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.settings-btn:hover{background:#f0f0f0;border-color:#ccc;color:#2c3e50}.date-input.invalid-date,.time-input.invalid-time{background-color:#ffeaa7;border-color:#e74c3c}.time-input.invalid-time:hover{border-color:#c0392b;box-shadow:0 0 0 2px #e74c3c33;cursor:not-allowed}.trading-table-container{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;max-width:100%;min-height:200px;overflow-x:auto;overflow-y:hidden;scrollbar-color:#ccc #0000;scrollbar-width:thin;width:100%}.trading-table-container::-webkit-scrollbar{height:8px}.trading-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.trading-table-container::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.trading-table-container::-webkit-scrollbar-thumb:hover{background:#999}.trading-table{border-collapse:collapse;min-width:910px;table-layout:fixed;width:100%}.trading-table thead{background:#3498db;color:#fff}.trading-table td,.trading-table th{border-bottom:1px solid #e0e0e0;padding:16px 12px;text-align:center}.trading-table th{font-size:14px;font-weight:600}.trading-table th,.trading-table th.market-cap,.trading-table th.name,.trading-table th.price,.trading-table th.rank,.trading-table th.rate,.trading-table th.theme,.trading-table th.trading-value,.trading-table th.volume,.trading-table thead th{background:#3498db!important;color:#fff!important}.trading-table tbody tr:hover{background:#f8f9fa}.trading-table td.rank,.trading-table th.rank{font-weight:700;width:60px}.trading-table td.rank{color:#2c3e50}.trading-table td.name,.trading-table th.name{font-weight:600;position:relative;text-align:left;width:150px}.trading-table td.name{color:#2c3e50}.trading-table td.name .name-content{overflow-x:auto;overflow-y:hidden;padding:2px 0;scrollbar-color:#ccc #0000;scrollbar-width:thin;text-overflow:clip;white-space:nowrap}.trading-table td.name .name-content::-webkit-scrollbar{height:3px}.trading-table td.name .name-content::-webkit-scrollbar-track{background:#0000}.trading-table td.name .name-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.trading-table td.price,.trading-table th.price{font-weight:600;width:100px}.trading-table td.price{color:#2c3e50}.trading-table td.rate,.trading-table th.rate{width:80px}.trading-table td.trading-value,.trading-table th.trading-value{color:#666;font-family:monospace;font-weight:600;width:120px}.trading-table td.volume,.trading-table th.volume{color:#666;font-family:monospace;width:100px}.trading-table td.market-cap,.trading-table th.market-cap{color:#666;font-family:monospace;font-weight:600;width:100px}.trading-table td.theme,.trading-table th.theme{font-size:12px;padding:8px 12px;position:relative;width:auto}.rate-positive,.trading-table .change.positive,.trading-table .rate.positive{color:#e74c3c!important;font-weight:600}.rate-negative,.trading-table .change.negative,.trading-table .rate.negative{color:#3498db!important;font-weight:600}.rate-neutral{color:#6c757d!important}.theme-labels{align-items:center;display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;overflow-y:hidden;padding:2px 0;scrollbar-color:#ccc #0000;scrollbar-width:thin}.theme-labels::-webkit-scrollbar{height:4px}.theme-labels::-webkit-scrollbar-track{background:#0000;border-radius:2px}.theme-labels::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.theme-labels::-webkit-scrollbar-thumb:hover{background:#999}.theme-labels:after{background:linear-gradient(90deg,#0000,#ffffffe6);content:"";height:100%;opacity:0;pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:opacity .3s ease;width:16px}.theme-labels:hover:after,.theme:hover .theme-labels:after{opacity:1}.theme-label{background:#e3f2fd;border:1px solid #bbdefb;border-radius:12px;color:#1976d2;cursor:default;display:inline-block;flex-shrink:0;font-size:11px;font-weight:500;line-height:1.2;padding:3px 8px;transition:all .2s ease;white-space:nowrap}.theme-label:hover{background:#bbdefb;border-color:#90caf9;transform:scale(1.05)}.theme-label:nth-child(2n){background:#f3e5f5;border-color:#ce93d8;color:#7b1fa2}.theme-label:nth-child(2n):hover{background:#ce93d8;border-color:#ba68c8}.theme-label:nth-child(3n){background:#e8f5e8;border-color:#a5d6a7;color:#388e3c}.theme-label:nth-child(3n):hover{background:#a5d6a7;border-color:#81c784}.theme-label:nth-child(4n){background:#fff3e0;border-color:#ffcc02;color:#f57c00}.theme-label:nth-child(4n):hover{background:#ffcc02;border-color:#ffa000}.trading-table td.name,.trading-table td.price,.trading-table td.rank,.trading-table td.rate,.trading-table th.name,.trading-table th.price,.trading-table th.rank,.trading-table th.rate{display:table-cell!important}.clickable-row{cursor:pointer;transition:background-color .2s ease}.clickable-row:hover{background-color:#f0f8ff!important}.clickable-row.expanded{background-color:#e3f2fd;font-weight:500}.expanded-indicator{color:#1976d2;font-size:12px;font-weight:700;margin-left:6px}.expanded-row{background-color:#f8f9fa}.expanded-content{display:flex;flex-direction:column;gap:10px;padding:10px}.chart-row,.charts-row{display:flex;gap:16px;width:100%}.details-row{width:100%}.candle-chart{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex:1 1;flex-direction:column;min-height:350px;padding:16px}.candle-chart h4{color:#2c3e50;flex-shrink:0;font-size:16px;font-weight:600;margin:0 0 16px;text-align:center}.chart-container{display:flex;flex:1 1;flex-direction:column}.chart-area{background:#fafafa;border-radius:4px;flex:1 1;min-height:280px;padding:8px;position:relative}.modal-backdrop,.settings-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content,.settings-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-height:80vh;max-width:90vw;overflow-y:auto;position:relative;width:400px}.modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#2c3e50;font-size:18px;margin:0}.close-btn{font-size:24px;height:30px;width:30px}.close-btn:hover{background:#f0f0f0;color:#2c3e50}.modal-body,.modal-tabs{border-bottom:1px solid #e0e0e0;display:flex}.tab,.tab-btn{background:none;border:none;color:#666;cursor:pointer;flex:1 1;font-size:14px;padding:12px 20px;transition:all .2s ease}.tab-btn.active,.tab.active{background:#f8f9fa;border-bottom:2px solid #3498db;color:#3498db}.tab-btn:hover,.tab:hover{background:#f0f0f0}.modal-body{background:#fff;border-bottom:none;flex-direction:column;padding:20px}.chart-settings,.details-settings{max-height:400px;max-width:100%;overflow-y:auto}.setting-group{border-bottom:1px solid #f0f0f0;padding-bottom:20px}.setting-group:last-child{border-bottom:none}.setting-group h4{color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 12px}.color-settings{flex-direction:column;gap:0}.color-input{align-items:center;background:none!important;border:none!important;display:flex;gap:12px;height:20%}.color-input label{color:#2c3e50;font-size:14px;min-width:80px}.color-input input[type=color]{-webkit-appearance:none;appearance:none;background:#0000!important;border:none!important;cursor:pointer;height:22px!important;min-width:50px!important;outline:none!important;padding:0!important;width:50px!important}.color-input input[type=color]::-webkit-color-swatch-wrapper{border:none;padding:0}.color-input input[type=color]::-webkit-color-swatch{border:1px solid #ddd;border-radius:4px}.checkbox-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.checkbox-item{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;gap:12px;padding:12px 0}.checkbox-item:last-child{border-bottom:none}.checkbox-item:hover{background:#f8f9fa;margin:0 -20px;padding-left:20px;padding-right:20px}.checkbox-item input[type=checkbox]{accent-color:#3498db;height:18px;width:18px}.checkbox-item span{color:#2c3e50;font-size:14px}.stock-details{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.stock-details h4{border-bottom:2px solid #3498db;color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 20px;padding-bottom:8px;text-align:center}.details-grid{display:flex;flex-direction:column;gap:12px}.detail-item{border-bottom:1px solid #ecf0f1;padding:8px 0}.detail-item:last-child{border-bottom:none}.detail-item .label{color:#34495e;font-size:14px;font-weight:600}.detail-item .value{color:#2c3e50;font-size:14px;font-weight:500}.stock-details-table{border-collapse:collapse;margin-top:10px;width:100%}.stock-details-table td{border-bottom:1px solid #e0e0e0;padding:3px 6px;vertical-align:middle}.stock-details-table tr:last-child td{border-bottom:none}.stock-details-table .detail-label{background:#f8f9fa;color:#666;font-size:14px;font-weight:500;width:30%}.stock-details-table .detail-value{color:#2c3e50;font-size:14px;font-weight:600;width:70%}.no-details{color:#666;font-style:italic;padding:20px;text-align:center}.skeleton-text{animation:skeleton-loading 1.5s ease-in-out infinite alternate;background:#f0f0f0;border-radius:4px;color:#999;padding:2px 4px;text-align:center}@keyframes skeleton-loading{0%{background:#f0f0f0}to{background:#e0e0e0}}.trading-table tbody:empty:after{content:"";display:table-row;height:50px}.trading-table tbody:empty:before{content:"　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";display:table-row;height:1px;visibility:hidden;white-space:pre}.trading-table-container:has(.trading-table tbody:empty){min-height:120px}.trading-table tbody:empty{display:table-row-group!important;width:100%!important}@media (min-width:1300px){.trading-table{min-width:100%;table-layout:fixed;width:100%}.trading-table-container{overflow-x:visible;width:100%}}@media (max-width:1200px){.trading-table{min-width:810px;table-layout:fixed;width:100%}.trading-table td.volume,.trading-table th.volume{display:none}.trading-table-container{overflow-x:visible;width:100%}}@media (max-width:1000px){.trading-table{min-width:690px;width:100%}.trading-table td.trading-value,.trading-table th.trading-value{display:none}}@media (max-width:900px){.trading-table{min-width:590px;width:100%}.trading-table td.theme,.trading-table th.theme{display:none}.theme-ranking-table{font-size:12px;width:100%}.theme-ranking-table td,.theme-ranking-table th{padding:10px 6px}.theme-ranking-table th{font-size:11px}}@media (min-width:801px){.chart-row,.charts-container{display:flex;flex-direction:row;gap:16px}.candle-chart{flex:1 1;min-width:0}}@media (max-width:800px){.page-container{padding:16px}.trading-table{min-width:490px;width:100%}.trading-table td,.trading-table th{font-size:11px;padding:8px 4px}.trading-table td.rank,.trading-table th.rank{min-width:30px;padding:8px 2px;width:12%}.trading-table td.name,.trading-table th.name{max-width:120px;min-width:60px;padding:8px 4px;width:40%}.trading-table td.name .name-content{font-size:11px}.trading-table td.price,.trading-table td.rate,.trading-table th.price,.trading-table th.rate{font-size:10px;min-width:45px;padding:8px 2px;width:24%}.chart-row,.charts-container{flex-direction:column;gap:12px}.stock-details-table .detail-label,.stock-details-table .detail-value{font-size:12px;padding:6px 8px}.theme-ranking-section{margin:16px 0;padding:16px}.theme-ranking-title{font-size:1rem}.theme-pagination-controls{gap:6px}.theme-next-btn,.theme-prev-btn{font-size:12px;height:32px;width:32px}.theme-ranking-table{font-size:11px}.theme-ranking-table td,.theme-ranking-table th{padding:6px 4px}.theme-ranking-table th{font-size:10px}.theme-selection-section{margin:16px 0;padding:16px}.theme-selection-title{font-size:1rem;margin-bottom:12px}.theme-labels-container{gap:6px}.theme-label{font-size:12px;padding:6px 10px}.top-indicator{font-size:10px}.date-input,.time-input{min-width:130px}.page-container{padding:12px}.datetime-control-panel{align-items:flex-end;flex-direction:row;flex-wrap:nowrap;gap:8px;padding:12px}.datetime-inputs{align-items:flex-end;flex:1 1;flex-wrap:nowrap;gap:6px;min-width:0}.input-group{flex:none;min-width:0}.datetime-inputs .input-group:first-child,.datetime-inputs .input-group:nth-child(2){flex:1 1 auto}.input-group label{font-size:10px;margin-bottom:2px}.condition-select,.date-input,.percentage-input,.time-input,.unit-select{font-size:11px;height:32px;min-width:0;padding:6px 4px;width:100%}.control-buttons{align-items:flex-end;flex-shrink:0;gap:4px}.nav-btn{font-size:14px;height:32px;width:32px}.search-btn{box-sizing:border-box;font-size:11px;height:32px;margin-left:4px;padding:6px 10px;width:55px}.unit-select{min-width:60px;width:60px}.trading-table{min-width:550px}}@media (max-width:600px){.page-container{padding:10px}.trading-table td,.trading-table th{font-size:11px;padding:10px 6px}.trading-table td.rank,.trading-table th.rank{min-width:35px;padding:10px 3px;width:12%}.trading-table td.name,.trading-table th.name{max-width:110px;min-width:70px;padding:10px 5px;width:35%}.trading-table td.price,.trading-table td.rate,.trading-table th.price,.trading-table th.rate{min-width:50px;padding:10px 3px;width:26.5%}.trading-table{min-width:500px}.theme-ranking-table .theme-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}}@media (max-width:500px){.page-container{padding:8px}.datetime-control-panel{flex-direction:column;gap:8px;padding:12px}.datetime-control-panel .datetime-inputs{display:flex;gap:4px;margin-bottom:8px;width:100%}.datetime-control-panel .datetime-inputs .input-group:first-child,.datetime-control-panel .datetime-inputs .input-group:nth-child(2){flex:1 1;min-width:0}.control-buttons{align-items:flex-end;display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;width:100%}.percentage-filter-group{align-items:flex-end;display:flex;flex-shrink:0;gap:8px}.percentage-filter-group .input-group{align-items:center;display:flex;flex:0 0 auto;flex-direction:row;gap:4px;min-width:0;width:auto}.percentage-filter-group .input-group label{color:#666;display:block;flex-shrink:0;font-size:11px;margin-bottom:0;white-space:nowrap}.condition-select,.date-input,.percentage-input,.time-input,.unit-select{font-size:11px;height:32px;padding:6px 4px}.date-input,.time-input,.unit-select{min-width:60px}.nav-btn,.settings-btn{font-size:14px;height:32px;width:32px}.search-btn{font-size:11px;height:32px;padding:6px 12px}.trading-table{font-size:10px;min-width:320px}.trading-table td,.trading-table th{font-size:10px;padding:6px 2px}.trading-table td.rank,.trading-table th.rank{font-size:9px;min-width:25px;padding:6px 1px;width:10%}.trading-table td.name,.trading-table th.name{max-width:85px;min-width:50px;padding:6px 3px;width:42%}.trading-table td.name .name-content{font-size:10px}.trading-table td.price,.trading-table td.rate,.trading-table th.price,.trading-table th.rate{font-size:9px;min-width:35px;padding:6px 1px;width:24%}.page-header h1{font-size:1.3rem}.expanded-content{gap:6px;padding:6px}.theme-ranking-section,.theme-selection-section{margin:12px 0;padding:12px}.theme-ranking-title,.theme-selection-title{font-size:.9rem}.theme-ranking-header{align-items:flex-start;flex-direction:column;gap:12px}.theme-pagination-controls{align-self:flex-end;gap:4px}.theme-next-btn,.theme-prev-btn{font-size:11px;height:28px;width:28px}.theme-ranking-table{font-size:9px}.theme-ranking-table td,.theme-ranking-table th{padding:4px 2px;white-space:nowrap}.theme-ranking-table th{font-size:8px}.theme-ranking-table .rank-number{background:none!important;border-radius:0!important;display:inline!important;font-size:.7rem;height:auto!important;line-height:normal!important;text-align:left!important;width:auto!important}.theme-ranking-table .theme-name{font-size:8px;max-width:80px;overflow:hidden;text-overflow:ellipsis}.theme-ranking-table .trading-value{font-size:8px}.theme-ranking-table .stock-count{font-size:7px}.theme-ranking-table .leader-stock{font-size:8px;max-width:60px;overflow:hidden;text-overflow:ellipsis}.theme-labels-container{gap:4px}.theme-label{font-size:11px;padding:5px 8px}}@media (max-width:400px){.page-container{padding:6px}.trading-table-container{max-width:100%;overflow-x:auto}.trading-table{font-size:9px;min-width:280px}.trading-table td,.trading-table th{font-size:9px;line-height:1.2;padding:4px 1px}.trading-table td.rank,.trading-table th.rank{font-size:8px;min-width:20px;padding:4px 0;width:8%}.trading-table td.name,.trading-table th.name{max-width:80px;min-width:40px;padding:4px 2px;width:50%}.trading-table td.name .name-content{font-size:9px;max-width:75px}.trading-table td.price,.trading-table td.rate,.trading-table th.price,.trading-table th.rate{font-size:8px;min-width:30px;padding:4px 1px;width:21%}.theme-ranking-table{font-size:8px;min-width:320px}.theme-ranking-table td,.theme-ranking-table th{padding:3px 1px}.theme-ranking-table th{font-size:7px}.theme-ranking-section,.theme-selection-section{margin:4px 0;padding:4px}.theme-labels-container{gap:3px}.theme-label{font-size:10px;padding:4px 6px}.top-indicator{font-size:9px}.no-theme-selected p{font-size:12px}}.algorithm-control-panel{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:24px}.control-section{border-bottom:1px solid #eee;margin-bottom:24px;padding-bottom:20px}.control-section:last-child{border-bottom:none;margin-bottom:0}.control-section h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0 0 16px}.date-inputs,.execution-inputs,.time-inputs{display:flex;flex-wrap:wrap;gap:16px}.input-group{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:120px}.input-group label{color:#555;font-size:.9rem;font-weight:500}.input-group small{color:#666;font-size:.8rem;margin-top:4px}.date-input,.number-input,.time-input{border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:8px 12px;transition:border-color .2s ease}.date-input:focus,.number-input:focus,.time-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.invalid-date{background:#e74c3c0d;border-color:#e74c3c}.execution-summary{background:#f8f9fa;border-radius:8px;margin-bottom:16px;padding:16px}.execution-summary p{color:#555;font-size:.9rem;margin:0 0 8px}.execution-summary p:last-child{margin-bottom:0}.button-group{align-items:center;display:flex;gap:12px}.execute-btn{background:linear-gradient(45deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.execute-btn:hover:not(:disabled){background:linear-gradient(45deg,#5a6fd8,#6a4190);box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.execute-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.execute-btn.running{animation:pulse-running 2s ease-in-out infinite;background:#f39c12}.flush-btn{background:linear-gradient(45deg,#dc3545,#c82333);border:none;border-radius:8px;box-shadow:0 2px 8px #dc35454d;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.flush-btn:hover:not(:disabled){background:linear-gradient(45deg,#c82333,#a71e2a);box-shadow:0 4px 12px #dc354566;transform:translateY(-2px)}.flush-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.flush-btn.flushing{animation:pulse-flushing 2s ease-in-out infinite;background:#fd7e14}@keyframes pulse-running{0%,to{opacity:1}50%{opacity:.7}}@keyframes pulse-flushing{0%,to{opacity:1}50%{opacity:.8}}.toast-container{display:flex;flex-direction:column;gap:12px;max-width:400px;position:fixed;right:20px;top:20px;z-index:1000}.toast{align-items:center;animation:slideInToast .3s ease-out;background:#fff;border-left:4px solid #007bff;border-radius:8px;box-shadow:0 4px 12px #00000026;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:all .3s ease}.toast:hover{box-shadow:0 6px 16px #0003;transform:translateX(-4px)}.toast-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left-color:#28a745}.toast-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-left-color:#dc3545}.toast-warning{background:linear-gradient(135deg,#fff3cd,#ffeeba);border-left-color:#ffc107}.toast-info{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border-left-color:#17a2b8}.toast-message{color:#2c3e50;flex:1 1;font-weight:500;line-height:1.4}.toast-close{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:20px;justify-content:center;margin-left:12px;padding:0;transition:all .2s ease;width:20px}.toast-close:hover{background:#0000001a;color:#495057}@keyframes slideInToast{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.execution-status{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:20px}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.status-header h3{color:#2c3e50;margin:0}.progress-info{color:#666;display:flex;font-size:.9rem;gap:16px}.progress-bar{background:#eee;border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(45deg,#667eea,#764ba2);height:100%;transition:width .3s ease}.results-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:20px}.results-filters{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:20px;padding:16px}.filter-row{align-items:end;display:flex;flex-wrap:wrap;gap:12px}.filter-group{display:flex;flex-direction:column;gap:4px;min-width:120px}.filter-group label{color:#495057;font-size:.85rem;font-weight:500}.filter-input{border:1px solid #ced4da;border-radius:4px;font-size:.85rem;padding:6px 8px;transition:border-color .2s ease}.filter-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.range-inputs{align-items:center;display:flex;gap:6px}.range-input{width:60px}.reset-filters-btn{align-self:end;background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:6px 12px;transition:background-color .2s ease}.reset-filters-btn:hover{background:#5a6268}.results-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.results-header h3{color:#2c3e50;margin:0}.results-summary{color:#666;font-size:.9rem}.results-table-container{border:1px solid #eee;border-radius:8px;overflow-x:auto}.results-table{border-collapse:collapse;font-size:.9rem;width:100%}.results-table th{background:#f8f9fa;border-bottom:1px solid #ddd;color:#2c3e50;font-weight:600;padding:12px 8px;text-align:left}.results-table td{border-bottom:1px solid #eee;padding:10px 8px}.results-table tbody tr:hover{background:#667eea08}.results-table .datetime{color:#666;font-family:Courier New,monospace;font-size:.85rem;min-width:120px}.results-table .stock-code{color:#2c3e50;font-family:Courier New,monospace;font-weight:600}.results-table .stock-name{color:#2c3e50;font-weight:500}.results-table .price{color:#2c3e50;font-weight:600;text-align:right}.results-table .rate{border-radius:4px;font-weight:600;padding:4px 8px;text-align:right}.results-table .rate.positive{background:#e74c3c1a;color:#e74c3c}.results-table .rate.negative{background:#3498db1a;color:#3498db}.results-table .rate.neutral{background:#95a5a61a;color:#95a5a6}.results-table .rank{color:#667eea;font-weight:600;text-align:center}.results-table .themes{max-width:250px}.results-table .theme-labels{display:flex;flex-wrap:wrap;gap:3px}.results-table .theme-label{background:linear-gradient(45deg,#4caf50,#45a049);border:1px solid #4caf504d;border-radius:12px;box-shadow:0 1px 3px #0000001a;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;max-width:120px;overflow:hidden;padding:2px 8px;text-overflow:ellipsis;text-shadow:0 1px 2px #0000001a;transition:all .2s ease;white-space:nowrap}.results-table .theme-label:hover{background:linear-gradient(45deg,#45a049,#388e3c);box-shadow:0 3px 6px #4caf504d;transform:translateY(-1px)}.results-table .theme-label.active-filter{background:linear-gradient(45deg,#ff9800,#f57c00);border-color:#ff98004d;box-shadow:0 2px 4px #ff98004d}.results-table .theme-label.active-filter:hover{background:linear-gradient(45deg,#f57c00,#ef6c00);box-shadow:0 3px 6px #ff980066}.no-theme{color:#999;font-style:italic}.available-dates-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:20px}.available-dates-section h4{color:#2c3e50;font-size:1rem;margin:0 0 12px}.available-dates{display:flex;flex-wrap:wrap;gap:8px}.date-badge{background:#667eea1a;border:1px solid #667eea33;border-radius:12px;color:#667eea;font-size:.8rem;font-weight:500;padding:4px 8px}.more-dates{align-self:center;color:#666;font-size:.85rem;font-style:italic}@media (max-width:900px){.algorithm-control-panel{padding:20px}.date-inputs,.time-inputs{flex-direction:column}.input-group{min-width:auto}.status-header{align-items:flex-start;flex-direction:column;gap:8px}.progress-info{flex-direction:column;gap:4px}}@media (max-width:600px){.algorithm-control-panel{padding:16px}.control-section{margin-bottom:20px;padding-bottom:16px}.execution-summary{padding:12px}.button-group{flex-direction:column;gap:8px;width:100%}.execute-btn{padding:16px 24px;width:100%}.flush-btn{padding:14px 20px;width:100%}.filter-row{align-items:stretch;flex-direction:column}.filter-group{min-width:auto}.range-inputs{justify-content:flex-start}.reset-filters-btn{align-self:stretch;margin-top:8px}.results-table{font-size:.8rem}.results-table td,.results-table th{padding:8px 4px}.results-table .datetime{font-size:.75rem;min-width:100px}.results-table .theme-label{font-size:.7rem;max-width:80px;padding:1px 6px}}@media (max-width:400px){.algorithm-control-panel{padding:12px}.control-section h3{font-size:1rem}.execution-summary p{font-size:.85rem}.results-table{font-size:.75rem}.results-table td,.results-table th{padding:6px 2px}.date-badge{font-size:.75rem;padding:3px 6px}}.active-filters{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:16px;padding:12px}.filter-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.filter-tag{align-items:center;animation:fadeInScale .3s ease-out;border-radius:16px;box-shadow:0 2px 4px #0000001a;color:#fff;display:inline-flex;font-size:.8rem;font-weight:500;padding:4px 8px}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.stock-code-tag{background:linear-gradient(45deg,#007bff,#0056b3)}.theme-tag{background:linear-gradient(45deg,#28a745,#1e7e34)}.name-tag{background:linear-gradient(45deg,#6f42c1,#5a2d91)}.rate-tag{background:linear-gradient(45deg,#fd7e14,#e8590c)}.remove-tag{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1rem;line-height:1;margin-left:4px;padding:0 2px;transition:background-color .2s ease}.remove-tag:hover{background-color:#fff3}.filter-info{color:#6c757d;margin-top:8px}.clickable-filter{cursor:pointer;position:relative;transition:all .2s ease}.stock-code.clickable-filter{color:#007bff;font-weight:600;text-decoration:underline;-webkit-text-decoration-color:#0000;text-decoration-color:#0000}.stock-code.clickable-filter:hover{background-color:#e3f2fd;-webkit-text-decoration-color:#007bff;text-decoration-color:#007bff;transform:scale(1.02)}.stock-code.clickable-filter[data-active=true]{background-color:#1976d2;border-radius:4px;color:#fff;padding:2px 6px;text-decoration:none}.stock-code.clickable-filter[data-active=true]:hover{background-color:#1565c0}.calendar-layout{display:flex;gap:24px;margin:0 auto 24px;max-width:1400px;min-height:600px}.calendar-section{flex:0 0 60%;min-width:0}.info-section{display:flex;flex:1 1;flex-direction:column;gap:20px;min-width:0}.calendar-container{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;height:-webkit-fit-content;height:fit-content;padding:24px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.calendar-nav-btn{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#495057;cursor:pointer;font-weight:500;padding:10px 16px;transition:all .2s ease}.calendar-nav-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.calendar-nav-btn:disabled{cursor:not-allowed;opacity:.6}.calendar-title{align-items:center;color:#2c3e50;display:flex;font-size:1.5rem;font-weight:600;gap:8px;margin:0}.loading-indicator{animation:spin 1s linear infinite;font-size:1rem}.monthly-summary{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:24px}.monthly-summary h3{color:#2c3e50;font-size:1.2rem;margin:0 0 20px}.summary-cards{display:flex;flex-wrap:wrap;gap:20px}.summary-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 8px #0000001a;color:#2c3e50;display:flex;flex:1 1;flex-direction:column;min-width:140px;padding:16px 20px;transition:all .2s ease}.summary-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.summary-label{color:#6c757d;font-size:.9rem;margin-bottom:6px}.summary-value{font-size:1.3rem;font-weight:700}.calendar-weekdays{grid-gap:1px;display:grid;gap:1px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.calendar-weekday{background:#f8f9fa;border-radius:4px;color:#495057;font-weight:600;padding:12px;text-align:center}.calendar-weekday:first-child{color:#dc3545}.calendar-weekday:last-child{color:#007bff}.calendar-grid{grid-gap:1px;background:#dee2e6;border-radius:8px;display:grid;gap:1px;grid-template-columns:repeat(7,1fr);overflow:hidden}.calendar-day{cursor:pointer;display:flex;flex-direction:column;min-height:130px;overflow:hidden;padding:8px;position:relative;transition:all .2s ease}.calendar-day,.calendar-day.current-month{background:#fff}.calendar-day.other-month{background:#f8f9fa;color:#adb5bd;cursor:default}.calendar-day.current-month:hover{background:#e3f2fd;transform:scale(1.02)}.calendar-day.today{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.calendar-day.today:hover{background:linear-gradient(135deg,#20c997,#17a2b8)}.calendar-day.selected{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:3px solid #2196f3;box-shadow:0 4px 12px #2196f34d;color:#1565c0;transform:scale(1.05);z-index:10}.day-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.day-number{color:#2c3e50;font-size:1rem;font-weight:600}.theme-count-badge{background:linear-gradient(45deg,#ff6b6b,#ee5a24);border-radius:8px;box-shadow:0 1px 3px #ee5a244d;color:#fff;font-size:.7rem;font-weight:600;min-width:16px;padding:2px 6px;text-align:center}.calendar-day.today .theme-count-badge{background:linear-gradient(45deg,#feca57,#ff9ff3);color:#2c3e50}.calendar-day.selected .theme-count-badge{background:linear-gradient(45deg,#a29bfe,#6c5ce7)}.theme-preview{display:flex;flex:1 1;flex-direction:column;gap:2px;margin-top:2px}.theme-rank-item{font-size:.65rem;gap:4px;line-height:1.2;padding:1px 0}.rank-number,.theme-rank-item{align-items:center;display:flex}.rank-number{background:#007bff;border-radius:50%;color:#fff;flex-shrink:0;font-size:.6rem;font-weight:600;height:14px;justify-content:center;width:14px}.theme-name-preview{color:#495057;flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day.today .rank-number{background:#2c3e50}.calendar-day.today .theme-name-preview{color:#fff;font-weight:600}.calendar-day.selected .rank-number{background:#2196f3;border:2px solid #fff;color:#fff}.calendar-day.selected .theme-name-preview{color:#0d47a1;font-weight:700;text-shadow:0 1px 2px #fffc}.calendar-day.selected .day-number{color:#0d47a1;font-weight:700}.calendar-day.selected .theme-count-badge{background:#2196f3;border:2px solid #fff;color:#fff}.theme-details{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:24px}.theme-details-header{align-items:center;border-bottom:2px solid #f8f9fa;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.theme-details-header h3{color:#2c3e50;font-size:1.2rem;margin:0}.close-details-btn{background:#e9ecef;border:none;border-radius:50%;color:#6c757d;cursor:pointer;font-size:1.2rem;height:32px;transition:all .2s ease;width:32px}.close-details-btn:hover{background:#dc3545;color:#fff}.theme-list{grid-gap:12px;display:grid;gap:12px}.theme-item{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;padding:16px;transition:all .2s ease}.theme-item:hover{background:#e9ecef;transform:translateX(4px)}.theme-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.theme-name{color:#2c3e50;font-size:1rem;font-weight:600}.theme-stats{background:#fff;border-radius:12px;color:#6c757d;font-size:.85rem;padding:4px 8px}.theme-meta{display:flex;justify-content:flex-end}.last-date{color:#868e96;font-size:.8rem}.page-title-section{align-items:center;display:flex;gap:12px}.help-button{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.help-button:hover{background:#007bff;border-color:#007bff;color:#fff;transform:scale(1.1)}.theme-appearances{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;min-height:400px;padding:24px}.theme-appearances h3{color:#2c3e50;font-size:1.2rem;margin:0 0 20px}.theme-appearances-list{display:flex;flex-direction:column;gap:16px;max-height:500px;overflow-y:auto}.theme-appearance-item{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;padding:16px;transition:all .2s ease}.theme-appearance-item:hover{background:#e9ecef;transform:translateX(4px)}.theme-appearance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.theme-appearance-name{font-size:1rem;font-weight:600}.theme-appearance-stats{color:#6c757d;font-size:.85rem;font-weight:500}.theme-appearance-dates{display:flex;flex-wrap:wrap;gap:6px}.appearance-date-badge{background:#fff;border:1px solid #dee2e6;border-radius:12px;color:#495057;font-size:.75rem;font-weight:500;padding:4px 8px;transition:all .2s ease}.appearance-date-badge:hover{background:#f8f9fa;transform:scale(1.05)}.more-dates{background:#e9ecef;border-radius:12px;color:#6c757d;font-size:.75rem;font-weight:500;padding:4px 8px}.help-popup-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.help-popup-content{animation:popupSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto;width:100%}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.help-popup-header{align-items:center;border-bottom:2px solid #f8f9fa;display:flex;justify-content:space-between;margin-bottom:20px;padding:24px 24px 0}.help-popup-header h3{color:#2c3e50;font-size:1.3rem;margin:0}.help-popup-close{align-items:center;background:#e9ecef;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.help-popup-close:hover{background:#dc3545;color:#fff}.help-popup-body{padding:0 24px 24px}.help-popup-body ul{list-style:none;margin:0;padding-left:0}.help-popup-body li{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;color:#495057;line-height:1.6;margin-bottom:12px;padding:12px}.help-popup-body strong{color:#2c3e50}@media (max-width:900px){.calendar-layout{gap:16px}.calendar-section{flex:0 0 55%}.calendar-container,.monthly-summary{padding:20px}.summary-cards{gap:16px}.summary-card{min-width:120px;padding:14px 16px}.summary-label{font-size:.8rem}.summary-value{font-size:1.1rem}}@media (max-width:800px){.calendar-layout{flex-direction:column;gap:20px;min-height:auto}.calendar-section,.info-section{flex:none;width:100%}.theme-appearances{min-height:300px;padding:20px}.theme-appearances h3{font-size:1.1rem}.theme-appearance-item{padding:12px}.theme-appearance-header{align-items:flex-start;flex-direction:column;gap:4px}.help-popup-content{margin:10px;max-height:90vh}.help-popup-header{padding:20px 20px 0}.help-popup-body{padding:0 20px 20px}.calendar-header{flex-direction:column;gap:16px}.calendar-nav-btn{font-size:.9rem;padding:8px 12px}.monthly-summary{margin-bottom:16px;padding:16px}.summary-cards{gap:12px;justify-content:center}.summary-card{min-width:100px;padding:12px 14px;text-align:center}.summary-label{font-size:.75rem}.summary-value{font-size:1rem}.calendar-day{min-height:90px;padding:4px}.day-number{font-size:.9rem}.theme-count-badge{font-size:.6rem;padding:1px 4px}.theme-rank-item{font-size:.55rem;gap:2px}.rank-number{font-size:.5rem;height:12px;width:12px}.theme-name-preview{font-size:.55rem}.theme-details{padding:16px}.theme-item{padding:12px}.theme-info{align-items:flex-start;flex-direction:column;gap:4px}}@media (max-width:500px){.calendar-container{margin:0 -8px;padding:16px}.calendar-title{font-size:1.2rem}.calendar-nav-btn{font-size:.8rem;padding:6px 10px}.calendar-day{min-height:70px;padding:3px}.day-number{font-size:.8rem}.theme-count-badge{font-size:.5rem;padding:1px 3px}.theme-rank-item{font-size:.5rem;gap:1px}.rank-number{font-size:.45rem;height:10px;width:10px}.theme-name-preview{font-size:.5rem}.monthly-summary{margin-bottom:12px;padding:12px}.summary-cards{gap:8px}.summary-card{min-width:80px;padding:8px 10px}.summary-label{font-size:.7rem}.summary-value{font-size:.9rem}.theme-appearances{min-height:250px;padding:16px}.theme-appearances h3{font-size:1rem}.theme-appearance-item{padding:10px}.theme-appearance-dates{gap:4px}.appearance-date-badge{font-size:.65rem;padding:2px 6px}.help-popup-content{border-radius:12px;margin:5px}.help-popup-header{padding:16px 16px 0}.help-popup-header h3{font-size:1.1rem}.help-popup-body{padding:0 16px 16px}.help-popup-body li{font-size:.9rem;padding:8px}.theme-details{padding:12px}.theme-item{padding:10px}}.date-details-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;margin-top:20px;padding:16px}.date-details-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.date-details-header h4{color:#495057;font-size:1.1rem;margin:0}.execution-info{color:#6c757d;display:flex;font-size:.85rem;gap:12px}.execution-info span{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:4px 8px}.time-slots-container{background:#fff;border:1px solid #dee2e6;border-radius:8px;max-height:600px;overflow-y:auto}.time-slot{border-bottom:1px solid #e9ecef;padding:16px}.time-slot:last-child{border-bottom:none}.time-slot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.time-slot-header h5{color:#495057;font-size:1rem;margin:0}.result-count{background:#007bff;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:4px 8px}.stocks-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.stock-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px;transition:all .2s ease}.stock-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff26}.stock-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.stock-rank{background:#28a745;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;min-width:24px;padding:2px 6px;text-align:center}.stock-name{color:#212529;font-size:.9rem}.stock-code{color:#6c757d;font-size:.8rem}.stock-theme{margin-bottom:10px}.theme-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 8px;text-shadow:0 1px 2px #0000001a}.stock-metrics{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr 1fr}.metric{align-items:center;display:flex;justify-content:space-between;padding:4px 0}.metric-label{color:#6c757d;font-size:.8rem;font-weight:500}.metric-value{color:#212529;font-size:.8rem;font-weight:600}.metric-value.positive{color:#dc3545}.metric-value.negative{color:#007bff}.telegram-badge{background:#20c997;border-radius:6px;color:#fff;font-size:.75rem;font-weight:600;margin-top:8px;padding:4px 8px;text-align:center}@media (max-width:800px){.date-details-section{padding:12px}.date-details-header{align-items:flex-start;flex-direction:column;gap:8px}.execution-info{flex-direction:column;gap:6px}.time-slots-container{max-height:400px}.time-slot{padding:12px}.time-slot-header{align-items:flex-start;flex-direction:column;gap:6px}.stocks-grid{gap:8px;grid-template-columns:1fr}.stock-card{padding:10px}.stock-header{flex-wrap:wrap}.stock-metrics{gap:4px;grid-template-columns:1fr}}@media (max-width:500px){.date-details-header h4{font-size:1rem}.time-slot-header h5{font-size:.9rem}.stock-name{font-size:.85rem}.metric-label,.metric-value{font-size:.75rem}}.algorithm-card{background:#fff;border-radius:16px;box-shadow:0 8px 25px #00000026;cursor:pointer;overflow:hidden;transition:all .3s ease}.algorithm-card:hover{box-shadow:0 12px 35px #0003;transform:translateY(-4px)}.algorithm-card.expanded{cursor:default}.card-header{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #dee2e6;display:flex;gap:20px;justify-content:space-between;padding:16px 20px}.stock-info{flex-direction:column;gap:5px}.stock-name{color:#2c3e50;font-size:1.25rem;font-weight:700}.stock-theme{align-self:flex-start;background:#667eea;border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;padding:4px 8px}.price-info{align-items:flex-end;flex-direction:column;gap:4px}.stock-price{color:#2c3e50}.change-rate{padding:2px 6px}.change-rate.positive{background:#e74c3c1a;color:#e74c3c}.change-rate.negative{background:#3498db1a;color:#3498db}.change-rate.neutral{background:#7f8c8d1a;color:#7f8c8d}.trading-summary{display:flex;flex:1 1;gap:16px;justify-content:center}.summary-item{align-items:center;display:flex;flex-direction:column;gap:2px}.summary-label{color:#7f8c8d;font-size:.75rem;font-weight:500}.summary-value{color:#2c3e50;font-size:.9rem;font-weight:600}.expand-icon{color:#667eea;flex-shrink:0;transition:transform .3s ease}.algorithm-card.expanded .expand-icon{transform:rotate(180deg)}.card-expanded{background:#f8f9fa;border-top:1px solid #dee2e6;padding:20px}.chart-section{margin-bottom:20px}.chart-title{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:15px}.chart-loading{padding:40px;text-align:center}.chart-loading .loading-spinner{animation:spin 1s linear infinite;font-size:1.5rem;margin-bottom:10px;transform-origin:center}.chart-loading p{color:#7f8c8d;font-size:.9rem}.charts-container{display:flex;gap:16px;height:100%}.chart-item{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:15px}.chart-subtitle{color:#495057;font-size:.9rem;font-weight:600;margin-bottom:12px}.chart-placeholder{align-items:center;border-radius:6px;display:flex;height:150px;justify-content:center}.mock-chart{height:100%;position:relative;width:100%}.chart-bars{align-items:flex-end;display:flex;height:120px;justify-content:space-between;margin-bottom:10px;padding:0 5px}.chart-bar{border-radius:1px;transition:all .3s ease;width:3px}.chart-bar.positive{background:#e74c3c}.chart-bar.negative{background:#3498db}.chart-info{color:#7f8c8d;font-size:.75rem;text-align:center}.chart-error{color:#e74c3c;font-size:.8rem;text-align:center}.analysis-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:15px}.analysis-title{color:#2c3e50;font-size:1rem;font-weight:600;margin-bottom:12px}.analysis-content{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr)}.analysis-item{display:flex;flex-direction:column;gap:4px}.analysis-label{color:#7f8c8d;font-size:.8rem;font-weight:500}.analysis-value{color:#667eea;font-size:.9rem;font-weight:600}@media (max-width:900px){.charts-container{flex-direction:column;gap:12px}.chart-item{padding:12px}.chart-placeholder{height:120px}.chart-bars{height:90px}}@media (max-width:800px){.charts-container{flex-direction:column;gap:12px}.chart-item{padding:12px}.chart-placeholder{height:120px}.chart-bars{height:90px}}@media (max-width:600px){.card-header{gap:12px;padding:12px 15px}.card-expanded{padding:15px}.trading-summary{gap:12px}.summary-label{font-size:.7rem}.summary-value{font-size:.85rem}.analysis-content{gap:10px;grid-template-columns:1fr}.analysis-item{align-items:center;flex-direction:row;justify-content:space-between}}@media (max-width:400px){.card-header{flex-direction:column;gap:8px;padding:10px 12px;text-align:center}.trading-summary{gap:8px}.summary-label{font-size:.65rem}.summary-value{font-size:.8rem}.stock-name{font-size:1.1rem}.chart-placeholder{height:100px}.chart-bars{height:70px}}.algorithm-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.algorithm-header{color:#fff;margin-bottom:40px;text-align:center}.algorithm-title{font-size:2.5rem;font-weight:700;margin-bottom:12px;text-shadow:0 2px 4px #0000004d}.algorithm-description{font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px;opacity:.9}.algorithm-content{margin:0 auto;max-width:1200px}.date-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 15px #0000001a;margin-bottom:20px;overflow:hidden;transition:all .3s ease}.date-card:hover{box-shadow:0 6px 20px #00000026}.date-card-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:20px 25px;transition:background-color .2s ease}.date-card-header:hover{background:#667eea0d}.date-info{align-items:center;display:flex;gap:15px}.date-title{color:#333;font-size:1.5rem;font-weight:600;margin:0}.analysis-badge{background:linear-gradient(45deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:.85rem;font-weight:500;padding:6px 12px;text-shadow:0 1px 2px #0003}.date-summary{align-items:center;display:flex;gap:15px}.stock-count{background:#667eea;border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:8px 15px}.expand-icon{color:#666;font-size:1.2rem;transition:transform .2s ease;-webkit-user-select:none;user-select:none}.date-card-content{animation:slideDown .3s ease-out;border-top:1px solid #eee}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}.stocks-list{padding:0}.stock-item{border-bottom:1px solid #f0f0f0;padding:20px 25px;transition:background-color .2s ease}.stock-item:last-child{border-bottom:none}.stock-item:hover{background:#667eea08}.stock-info{align-items:center;display:flex;gap:10px;margin-bottom:12px}.stock-name{color:#333;font-size:1.1rem;font-weight:600;margin:0}.stock-code{color:#666;font-size:.9rem;font-weight:500}.stock-details{flex-wrap:wrap;gap:15px;justify-content:space-between}.price-info,.stock-details{align-items:center;display:flex}.price-info{gap:12px}.stock-price{color:#333;font-size:1.1rem;font-weight:600}.change-rate{border-radius:4px;font-size:.9rem;font-weight:600;padding:4px 8px}.change-rate.positive{background:#d32f2f1a;color:#d32f2f}.change-rate.negative{background:#1976d21a;color:#1976d2}.change-rate.neutral{background:#6666661a;color:#666}.analysis-info{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.analysis-info .nullim-days,.analysis-info .rank{background:#667eea1a;border-radius:12px;color:#667eea;font-size:.85rem;font-weight:500;padding:4px 8px}.message{background:#667eea0d;border-left:4px solid #667eea;border-radius:8px;margin-top:12px;padding:12px 15px}.message-text{color:#555;font-size:.95rem;line-height:1.5}.cards-grid{display:flex;flex-direction:column;gap:20px}.loading-section{color:#fff;padding:40px 20px;text-align:center}.loading-spinner{font-size:2rem;margin-bottom:15px;transform-origin:center}.loading-section p{font-size:1.1rem;opacity:.9}.end-message{color:#fff;opacity:.8;padding:40px 20px;text-align:center}.end-message p{font-size:1.1rem;font-style:italic}.empty-message{color:#fff;padding:60px 20px;text-align:center}.empty-message p{font-size:1.2rem;opacity:.8}@media (max-width:1200px){.cards-grid{gap:18px}}@media (max-width:900px){.algorithm-page{padding:15px}.algorithm-title{font-size:2rem}.algorithm-description{font-size:1rem}.date-card-header{padding:15px 20px}.date-title{font-size:1.3rem}.stock-item{padding:15px 20px}.stock-details{align-items:flex-start;flex-direction:column;gap:10px}.analysis-info{gap:10px}.cards-grid{gap:15px}}@media (max-width:600px){.algorithm-page{padding:10px}.algorithm-title{font-size:1.8rem}.algorithm-header{margin-bottom:30px}.date-card{margin-bottom:15px}.date-card-header{flex-direction:column;gap:10px;padding:12px 15px;text-align:center}.date-info{flex-direction:column;gap:8px}.date-summary{gap:10px;justify-content:center}.stock-item{padding:12px 15px}.stock-info{gap:5px;margin-bottom:8px}.stock-details,.stock-info{align-items:flex-start;flex-direction:column}.analysis-info,.price-info,.stock-details{gap:8px}.cards-grid{gap:12px}}@media (max-width:400px){.algorithm-page{padding:8px}.algorithm-title{font-size:1.6rem}.algorithm-description{font-size:.9rem}.date-title{font-size:1.2rem}.analysis-badge{font-size:.75rem;padding:4px 8px}.stock-count{font-size:.8rem;padding:4px 10px}.expand-icon{font-size:1rem}.date-card-header,.stock-item{padding:10px 12px}.stock-name,.stock-price{font-size:1rem}.change-rate{font-size:.8rem;padding:3px 6px}.analysis-info .nullim-days,.analysis-info .rank{font-size:.75rem;padding:3px 6px}.message{margin-top:8px;padding:8px 10px}.message-text{font-size:.85rem}}.settings-container{margin:0 auto;max-width:800px}.settings-header{margin-bottom:32px;text-align:center}.settings-header h2{color:#2c3e50;font-size:1.8rem;margin-bottom:8px}.settings-header p{color:#666;font-size:14px;margin-bottom:16px}.config-file-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.btn-export,.btn-import{align-items:center;background:#34495e;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:background .2s ease}.btn-export:hover{background:#2c3e50}.btn-import{background:#16a085}.btn-import:hover{background:#138d75}.config-file-info{background:#e8f4fd;border:1px solid #b8d4f0;border-radius:8px;margin:20px 0;padding:20px;text-align:left}.config-file-info h4{color:#06c;font-size:16px;margin:0 0 15px}.config-file-info .info-content{color:#333;line-height:1.6}.config-file-info p{margin:0 0 12px}.config-file-info ol{margin:12px 0;padding-left:20px}.config-file-info li{margin:8px 0}.config-file-info code{background:#f1f3f4;border-radius:3px;font-family:Monaco,Consolas,monospace;font-size:13px;padding:2px 6px}.config-file-info .info-note{background:#fff3cd;border:1px solid #ffeaa7;border-radius:5px;color:#856404;font-size:14px;margin:15px 0 0;padding:12px}.settings-form{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:24px}.setting-group,.settings-form{margin-bottom:24px}.setting-group:last-child{margin-bottom:0}.setting-group label{color:#2c3e50;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.setting-input{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.setting-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.setting-help{color:#666;display:block;font-size:12px;line-height:1.4;margin-top:4px}.settings-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:32px}.btn-reset,.btn-save,.btn-test{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 24px;transition:all .2s ease}.btn-test{background:#f39c12;color:#fff}.btn-test:hover{background:#e67e22}.btn-reset{background:#95a5a6;color:#fff}.btn-reset:hover{background:#7f8c8d}.btn-save{background:#3498db;color:#fff}.btn-save:hover{background:#2980b9}.save-message{border-radius:8px;font-size:14px;font-weight:500;margin-bottom:24px;padding:12px 16px;text-align:center}.save-message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.save-message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.save-message.auto-save{animation:slideInRight .3s ease-out;min-width:250px;position:fixed;right:20px;top:20px;z-index:9999}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.current-config{background:#f8f9fa;border-radius:12px;padding:20px}.current-config h3{color:#2c3e50;font-size:1.2rem;margin-bottom:16px}.config-display{display:flex;flex-direction:column;gap:12px}.config-item{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 0}.config-item:last-child{border-bottom:none}.config-label{color:#666;font-size:14px;font-weight:500}.config-value{background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#2c3e50;font-family:monospace;font-size:14px;font-weight:600;padding:4px 8px}.servers-section{margin-bottom:32px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.section-header h3{color:#2c3e50;font-size:1.3rem;margin:0}.btn-add-server{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:background .2s ease}.btn-add-server:hover{background:#219a52}.btn-cancel{background:#95a5a6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.btn-cancel:hover{background:#7f8c8d}.servers-list{display:flex;flex-direction:column;gap:12px}.server-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;transition:all .2s ease}.server-card.active{border-color:#27ae60;box-shadow:0 2px 8px #27ae601a}.server-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.server-info h4{color:#2c3e50;font-size:1.1rem;margin:0 0 4px}.server-url{color:#666;font-family:monospace;font-size:13px}.server-actions{display:flex;gap:6px}.btn-toggle{background:#fff;border:1px solid #95a5a6;border-radius:4px;color:#666;cursor:pointer;font-size:11px;padding:4px 8px;transition:all .2s ease}.btn-toggle.active{background:#27ae60;border-color:#27ae60;color:#fff}.btn-delete,.btn-edit,.btn-test-small{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;padding:4px 8px}.btn-test-small{background:#f39c12}.btn-edit{background:#3498db}.btn-delete{background:#e74c3c}.server-details{color:#666;display:flex;font-size:12px;gap:16px}.server-form-section{background:#f8f9fa;border-radius:12px;margin-bottom:24px;padding:20px}.form-row{margin-bottom:20px}.form-row .setting-group{flex:1 1}.checkbox-group{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;justify-content:center;padding:12px}.checkbox-label{color:#2c3e50;display:inline-flex;font-size:16px;font-weight:600;gap:8px;margin-bottom:8px;white-space:nowrap}.setting-checkbox,.settings-container .checkbox-label input[type=checkbox]{accent-color:#3498db;-webkit-appearance:none;appearance:none;background-color:#fff;border:2px solid #3498db;border-radius:4px;cursor:pointer;display:inline-block!important;flex-shrink:0;height:20px;margin-right:8px;position:relative;vertical-align:middle;width:20px}.setting-checkbox:checked,.settings-container .checkbox-label input[type=checkbox]:checked{background-color:#3498db;border-color:#3498db}.setting-checkbox:checked:after,.settings-container .checkbox-label input[type=checkbox]:checked:after{color:#fff;content:"✓";font-size:14px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.setting-checkbox:hover,.settings-container .checkbox-label input[type=checkbox]:hover{border-color:#2980b9;box-shadow:0 0 5px #3498db4d}.setting-checkbox:focus,.settings-container .checkbox-label input[type=checkbox]:focus{border-color:#2980b9;box-shadow:0 0 8px #3498db80;outline:none}.settings-tabs{border-bottom:1px solid #e0e0e0;display:flex;gap:4px;margin-top:16px}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.tab-btn.active{border-bottom-color:#3498db}.tab-btn.active,.tab-btn:hover{background:#3498db0d;color:#3498db}.table-settings-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;padding:24px}.toggle-switch{display:inline-block;width:50px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;width:18px}input:checked+.slider{background-color:#3498db}input:checked+.slider:before{transform:translateX(26px)}.filter-settings{background:#f8f9fa;border-radius:8px;margin-top:16px;padding:16px}.filter-mode{margin-bottom:16px}.filter-mode label{color:#2c3e50;display:block;font-weight:600;margin-bottom:8px}.mode-select{background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;padding:8px 12px;width:100%}.case-sensitive{margin-bottom:16px}.case-sensitive label{align-items:center;color:#2c3e50;cursor:pointer;display:flex;font-size:14px;gap:8px}.input-with-button{display:flex;gap:8px}.keyword-input-field{border:1px solid #e0e0e0;border-radius:6px;flex:1 1;font-size:14px;padding:10px 12px}.add-keyword-btn{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px}.add-keyword-btn:hover{background:#219a52}.keywords-list{margin-top:16px}.keywords-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.keywords-header span{color:#2c3e50;font-size:14px;font-weight:600}.clear-all-btn{background:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px}.clear-all-btn:hover{background:#c0392b}.keywords-tags{display:flex;flex-wrap:wrap;gap:8px}.keyword-tag{align-items:center;background:#3498db;border-radius:16px;color:#fff;display:inline-flex;font-size:13px;gap:6px;padding:6px 10px}.remove-keyword-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;line-height:1;margin-left:4px;padding:0}.remove-keyword-btn:hover{background:#fff3;border-radius:50%}.columns-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:16px}.column-checkbox{align-items:center;background:#f8f9fa;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:background .2s ease}.column-checkbox:hover{background:#e9ecef}.column-checkbox span{color:#2c3e50;font-size:14px}.theme-settings{margin-top:16px}.theme-settings label{align-items:center;color:#2c3e50;cursor:pointer;display:flex;font-size:14px;gap:8px;margin-bottom:12px}.max-themes{align-items:center;display:flex;gap:12px;margin-top:12px}.max-themes label{font-size:14px;font-weight:600;margin:0}.number-input{border:1px solid #e0e0e0;border-radius:4px;font-size:14px;padding:6px 8px;width:80px}.color-settings{display:flex;flex-wrap:wrap;gap:3px;margin-top:16px}.color-item{align-items:center;display:flex;gap:12px}.color-item label{color:#2c3e50;font-size:14px;font-weight:600;min-width:50px}.color-input{border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;height:22px;padding:2px;width:50px}@media (max-width:800px){.settings-container{margin:0;max-width:none}.settings-header h2{font-size:1.5rem}.section-header{align-items:stretch;flex-direction:column;gap:12px}.server-header{flex-direction:column;gap:8px}.server-actions{justify-content:flex-start}.server-details{flex-direction:column;gap:4px}.form-row{flex-direction:column;gap:16px}.settings-form{padding:16px}.settings-actions{align-items:stretch;flex-direction:column}.btn-reset,.btn-save,.btn-test{min-width:auto}.settings-tabs{flex-direction:column;gap:8px}.tab-btn{padding:10px 16px;text-align:left}.columns-grid{grid-template-columns:1fr}.color-settings{flex-direction:column;gap:12px}.input-with-button{flex-direction:column;gap:8px}.add-keyword-btn{align-self:stretch}}.board-management-page{margin:0 auto;max-width:1200px;padding:20px}.order-input{border:1px solid #ddd;border-radius:4px;font-size:14px;font-weight:500;padding:4px 8px;text-align:center;transition:border-color .2s ease;width:60px}.order-input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.order-input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.7}.board-order{text-align:center}.add-board-button{align-items:center;background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:12px 20px;transition:background .2s ease}.add-board-button:hover:not(:disabled){background:#2980b9}.add-board-button:disabled{background:#95a5a6;cursor:not-allowed}.board-form-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;padding:24px}.board-form h3{border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:12px}.form-group label{font-weight:500}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:14px;padding:12px;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.form-group input:disabled{background:#f8f9fa;color:#666;cursor:not-allowed}.form-group textarea{min-height:80px;resize:vertical}.form-group small{color:#666;display:block;margin-top:4px}.form-row{display:flex}.form-row .form-group{flex:1 1}.form-actions{border-top:1px solid #e9ecef;margin-top:24px;padding-top:20px}.cancel-button,.submit-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.cancel-button{background:#f8f9fa;border:1px solid #ddd;color:#666}.cancel-button:hover{background:#e9ecef;color:#495057}.submit-button{background:#27ae60}.submit-button:hover{background:#219a52}.boards-table-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.boards-table{border-collapse:collapse;width:100%}.boards-table td,.boards-table th{border-bottom:1px solid #e9ecef;padding:16px 12px;text-align:left}.boards-table th{color:#2c3e50;font-size:14px;font-weight:600}.boards-table tbody tr:hover,.boards-table th{background:#f8f9fa}.boards-table tbody tr:last-child td{border-bottom:none}.board-id{color:#7f8c8d;font-family:Courier New,monospace;font-size:13px;font-weight:500}.board-name{color:#2c3e50;font-weight:600}.board-description{word-wrap:break-word;color:#666;font-size:14px;max-width:200px}.permission-grade{text-align:center}.grade-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.grade-bronze{background:#f39c12}.actions{text-align:center;white-space:nowrap}.delete-button,.edit-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:12px;gap:4px;margin:0 4px;padding:8px 12px;transition:all .2s ease}.edit-button{background:#3498db;color:#fff}.edit-button:hover:not(:disabled){background:#2980b9}.delete-button{background:#e74c3c}.delete-button:hover:not(:disabled){background:#c0392b}.delete-button:disabled,.edit-button:disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed}@media (max-width:768px){.board-management-page{padding:16px}.page-header{align-items:flex-start;flex-direction:column;gap:12px}.page-header h2{font-size:20px}.board-form-container{padding:20px}.form-row{flex-direction:column;gap:12px}.form-actions{flex-direction:column;gap:8px}.cancel-button,.submit-button{justify-content:center;width:100%}.boards-table-container{background:#0000;border:none;box-shadow:none}.boards-table{display:none}.mobile-board-cards{display:block}}@media (max-width:480px){.board-management-page{padding:12px}.page-header h2{font-size:18px}.add-board-button{font-size:13px;padding:10px 16px}.board-form-container{padding:16px}.board-form h3{font-size:18px}}.mobile-board-cards{display:none}@media (max-width:768px){.mobile-board-cards{display:block}.board-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:12px;padding:16px}.board-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.board-card-title{color:#2c3e50;font-weight:600;margin-bottom:4px}.board-card-id{color:#7f8c8d;font-family:Courier New,monospace;font-size:12px}.board-card-description{color:#666;font-size:14px;margin:8px 0}.board-card-permissions{display:flex;gap:12px;margin:12px 0}.permission-item{flex:1 1}.permission-label{color:#666;font-size:12px;margin-bottom:4px}.board-card-actions{display:flex;gap:8px;justify-content:flex-end}}.user-management-page{margin:0 auto;max-width:1400px;padding:20px}.page-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.page-header h2{color:#2c3e50;font-size:24px;font-weight:600;margin:0}.user-stats{display:flex;gap:16px}.stat-item{background:#f8f9fa;border-radius:20px;color:#495057;font-size:14px;font-weight:500;padding:8px 16px}.empty-message,.error-message,.loading-message{border-radius:8px;margin:20px 0;padding:40px 20px;text-align:center}.loading-message{background:#f8f9fa;color:#666;font-size:16px}.error-message{background:#fee;border:1px solid #fadbd8;color:#e74c3c;font-size:15px}.empty-message{background:#f8f9fa;color:#666;font-size:16px}.filters-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000000d;display:flex;gap:20px;margin-bottom:20px;padding:20px}.search-box{flex:1 1}.search-box input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:border-color .2s ease;width:100%}.search-box input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.filter-selects{display:flex;gap:12px}.filter-selects select{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:14px;min-width:140px;padding:12px 16px}.filter-selects select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.users-table-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;overflow:hidden}.users-table{border-collapse:collapse;font-size:14px;width:100%}.users-table td,.users-table th{border-bottom:1px solid #e9ecef;padding:16px 12px;text-align:left;vertical-align:middle}.users-table th{color:#2c3e50;font-size:14px;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.users-table tbody tr:hover,.users-table th{background:#f8f9fa}.users-table tbody tr:last-child td{border-bottom:none}.users-table .inactive-user{opacity:.6}.user-id{color:#2c3e50;font-family:Courier New,monospace;font-weight:500;position:relative}.current-user-badge{background:#3498db;border-radius:12px;color:#fff;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;margin-left:8px;padding:2px 8px}.nickname{color:#2c3e50;font-weight:500}.email{color:#666;font-size:13px}.grade-cell,.role-cell,.status-cell{text-align:center}.grade-badge,.role-badge,.status-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:600;padding:4px 12px;text-align:center}.role-user{background:#ecf0f1;color:#2c3e50}.role-moderator{background:#f39c12;color:#fff}.role-admin{background:#e74c3c;color:#fff}.grade-newbie{background:#ecf0f1;color:#2c3e50}.grade-bronze{background:#d35400;color:#fff}.grade-silver{background:#95a5a6;color:#fff}.grade-gold{background:#f1c40f;color:#2c3e50}.grade-platinum{background:#1abc9c;color:#fff}.grade-diamond{background:#9b59b6;color:#fff}.status-badge.active{background:#d5f4e6;color:#27ae60}.status-badge.inactive{background:#fadbd8;color:#e74c3c}.created-date{color:#666;font-size:13px}.actions{min-width:280px;width:280px}.action-buttons{gap:8px}.grade-select,.role-select{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:11px;min-width:80px;padding:6px 10px}.role-select:disabled{background:#f8f9fa;color:#999;cursor:not-allowed}.toggle-button{border:none;border-radius:4px;cursor:pointer;font-size:10px;font-weight:500;min-width:60px;padding:6px 10px;transition:all .2s ease}.toggle-button.activate{background:#27ae60;color:#fff}.toggle-button.deactivate{background:#e74c3c;color:#fff}.toggle-button:hover:not(:disabled){opacity:.8}.toggle-button:disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.help-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;margin-top:30px;padding:24px}.help-section h3{color:#2c3e50;font-size:18px;margin:0 0 16px}.help-section ul{color:#495057;margin:0;padding-left:20px}.help-section li{line-height:1.5;margin-bottom:8px}.help-section strong{color:#2c3e50}@media (max-width:1200px){.users-table{font-size:13px}.users-table td,.users-table th{padding:12px 8px}.actions{min-width:240px;width:240px}.action-buttons{gap:6px}.grade-select,.role-select{font-size:10px;min-width:70px}}@media (max-width:768px){.user-management-page{padding:16px}.page-header{align-items:flex-start;flex-direction:column;gap:12px}.page-header h2{font-size:20px}.user-stats{gap:12px}.filters-container{flex-direction:column;gap:12px;padding:16px}.filter-selects{flex-direction:column;gap:8px}.filter-selects select{min-width:0;min-width:auto}.users-table-container{overflow-x:auto}.users-table{font-size:12px;min-width:800px}.users-table td,.users-table th{padding:10px 6px}.help-section{padding:16px}.help-section h3{font-size:16px}}@media (max-width:480px){.user-management-page{padding:12px}.page-header h2{font-size:18px}.stat-item{font-size:12px;padding:6px 12px}.filters-container{padding:12px}.users-table{font-size:11px;min-width:700px}.users-table td,.users-table th{padding:8px 4px}.actions{min-width:200px;width:200px}.action-buttons{flex-direction:column;gap:4px}.grade-select,.role-select,.toggle-button{font-size:9px;width:100%}.help-section{padding:12px}.delete-user-button{font-size:9px}}.delete-user-button{align-items:center;background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:500;gap:4px;padding:6px 12px;transition:all .2s ease}.delete-user-button:hover{background:#c82333;box-shadow:0 2px 4px #dc35454d;transform:translateY(-1px)}.delete-user-button:active{transform:translateY(0)}.action-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.menu-management{background-color:#f5f5f5;min-height:100vh;padding:20px}.menu-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.menu-title{color:#2c3e50;font-size:2rem;font-weight:700}.menu-subtitle{color:#666;margin-top:5px}.save-btn{align-items:center;background-color:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 24px;transition:background-color .3s}.save-btn:hover{background-color:#218838}.save-btn:disabled{background-color:#6c757d;cursor:not-allowed}.grade-sections{display:flex;flex-direction:column;gap:24px}.grade-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.grade-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.grade-header.guest{background:linear-gradient(135deg,#6c757d,#495057)}.grade-header.bronze{background:linear-gradient(135deg,#cd7f32,#8b4513)}.grade-header.silver{background:linear-gradient(135deg,silver,grey)}.grade-header.gold{background:linear-gradient(135deg,gold,#b8860b);color:#333}.grade-header.platinum{background:linear-gradient(135deg,#e5e4e2,#71706e)}.grade-header.diamond{background:linear-gradient(135deg,#b9f2ff,#0891b2)}.grade-info{align-items:center;display:flex;gap:12px}.grade-icon{font-size:1.5rem}.grade-name{font-size:1.25rem;font-weight:600}.grade-level,.menu-count{font-size:.9rem;opacity:.9}.menu-content{padding:24px}.menu-list{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.menu-item{background-color:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;padding:16px;transition:all .3s;-webkit-user-select:none;user-select:none}.menu-item:hover{background-color:#e3f2fd;border-color:#80bdff}.menu-item.enabled{background-color:#d4edda;border-color:#28a745}.menu-item.enabled:hover{background-color:#c3e6cb;border-color:#218838}.menu-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.menu-item-info{align-items:center;display:flex;gap:8px}.menu-item-icon{font-size:1.2rem}.menu-item-name{color:#2c3e50;font-weight:600}.menu-toggle{background-color:#ccc;border:none;border-radius:12px;cursor:pointer;height:24px;position:relative;transition:background-color .3s;width:44px}.menu-toggle.enabled{background-color:#28a745}.menu-toggle-slider{background-color:#fff;border-radius:50%;height:20px;left:2px;position:absolute;top:2px;transition:transform .3s;width:20px}.menu-toggle.enabled .menu-toggle-slider{transform:translateX(20px)}.menu-item-description{color:#666;font-size:.9rem;line-height:1.4;margin-bottom:12px}.menu-item-path{background-color:#f1f3f4;border-radius:4px;color:#6c757d;font-family:Courier New,monospace;font-size:.8rem;padding:4px 8px}.permission-panel{background-color:#e8f4fd;border-radius:8px;margin-bottom:24px;padding:20px}.permission-title{align-items:center;color:#1976d2;display:flex;font-size:1.1rem;font-weight:600;gap:8px;margin-bottom:16px}.permission-actions{display:flex;gap:12px;margin-bottom:16px}.permission-btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:background-color .3s}.enable-all-btn{background-color:#28a745;color:#fff}.enable-all-btn:hover{background-color:#218838}.disable-all-btn{background-color:#dc3545;color:#fff}.disable-all-btn:hover{background-color:#c82333}.reset-btn{background-color:#6c757d;color:#fff}.reset-btn:hover{background-color:#5a6268}.status-message{align-items:center;border-radius:6px;display:flex;gap:8px;margin-bottom:20px;padding:12px 16px}.status-message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}@media (min-width:1200px){.menu-list{gap:20px;grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.menu-management{padding:16px}.menu-header{align-items:flex-start;flex-direction:column;gap:16px}.menu-title{font-size:1.5rem}.menu-list{gap:12px;grid-template-columns:1fr}.permission-actions{flex-direction:column}.permission-btn{width:100%}.grade-header{padding:16px 20px}.grade-info{align-items:flex-start;flex-direction:column;gap:4px}}@media (max-width:480px){.menu-content,.permission-panel{padding:16px}.menu-item{padding:12px}.menu-item-header{align-items:flex-start;flex-direction:column;gap:8px}}.admin-page{background:#f8f9fa;min-height:100vh;padding:0}.access-denied{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:40px}.access-denied-icon{font-size:64px;margin-bottom:20px;opacity:.7}.access-denied h2{color:#e74c3c;font-size:24px;font-weight:600;margin:0 0 12px}.access-denied p{color:#666;margin:0}.admin-header{background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000001a;justify-content:space-between;padding:20px 30px}.admin-header,.admin-title{align-items:center;display:flex}.admin-title{gap:12px}.admin-icon{font-size:28px}.admin-title h1{color:#2c3e50;font-size:24px;font-weight:600;margin:0}.admin-info{align-items:center;display:flex}.admin-role{background:#e3f2fd;border-radius:20px;color:#1976d2;font-size:14px;font-weight:500;padding:8px 16px}.admin-tabs{background:#fff;border-bottom:1px solid #e9ecef;display:flex;gap:2px;padding:0 30px}.admin-tab{align-items:center;background:#0000;border:none;border-radius:8px 8px 0 0;color:#666;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;padding:16px 20px;position:relative;transition:all .2s ease}.admin-tab:hover{background:#f8f9fa;color:#2c3e50}.admin-tab.active{background:#f8f9fa;border-bottom:3px solid #3498db;color:#3498db}.tab-icon{font-size:16px}.tab-label{white-space:nowrap}.admin-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:0 30px 30px;min-height:calc(100vh - 140px);overflow:hidden}@media (max-width:768px){.admin-header{align-items:flex-start;flex-direction:column;gap:12px;padding:16px 20px}.admin-title h1{font-size:20px}.admin-tabs{flex-wrap:nowrap;overflow-x:auto;padding:0 20px}.admin-tab{flex-shrink:0;padding:12px 16px}.admin-content{margin:0 20px 20px}}@media (max-width:480px){.admin-header{padding:12px 16px}.admin-title{gap:8px}.admin-icon{font-size:24px}.admin-title h1{font-size:18px}.admin-tabs{padding:0 16px}.admin-tab{padding:10px 12px}.admin-tab,.tab-icon{font-size:14px}.admin-content{border-radius:6px;margin:0 16px 16px}}.signup-page{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.signup-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.signup-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:24px 28px 16px}.signup-header h2{color:#212529;font-size:24px;font-weight:700;margin:0}.close-btn{align-items:center;border-radius:50%;color:#6c757d;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.close-btn:hover{background:#f8f9fa;color:#495057}.signup-form{padding:24px 28px 28px}.form-group{margin-bottom:20px}.form-group label{color:#495057;display:block;margin-bottom:6px}.form-group input{background:#fff;border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-group input.valid{background:#f8fff9;border-color:#28a745}.form-group input.invalid{background:#fff8f8;border-color:#dc3545}.form-group input::placeholder{color:#adb5bd}.nickname-input-group{align-items:stretch;display:flex;gap:8px}.nickname-input-group input{flex:1 1}.nickname-check-btn{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:80px;padding:12px 16px;transition:all .2s ease;white-space:nowrap}.nickname-check-btn:hover:not(:disabled){background:#545b62}.nickname-check-btn:disabled{background:#adb5bd;cursor:not-allowed}.validation-message{display:block;font-size:12px;font-weight:500;margin-top:6px}.validation-message.success{color:#28a745}.validation-message.error{color:#dc3545}.submit-message{font-size:14px;margin-bottom:20px;padding:12px 16px}.signup-submit-btn{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:20px;padding:14px 24px;transition:all .2s ease;width:100%}.signup-submit-btn:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.signup-submit-btn:disabled{background:#adb5bd;cursor:not-allowed;transform:none}.switch-auth{color:#6c757d;font-size:14px;text-align:center}.switch-link{background:none;border:none;color:#007bff;cursor:pointer;font-size:14px;font-weight:600;margin-left:4px;padding:0;text-decoration:underline}.switch-link:hover{color:#0056b3}@media (max-width:768px){.signup-page{padding:10px}.signup-container{border-radius:8px;max-width:none}.signup-header{padding:20px 24px 14px}.signup-header h2{font-size:22px}.signup-form{padding:20px 24px 24px}.form-group{margin-bottom:18px}.form-group input{font-size:16px;padding:10px 14px}.nickname-input-group{gap:6px}.nickname-check-btn{font-size:12px;min-width:70px;padding:10px 12px}.signup-submit-btn{font-size:15px;padding:12px 20px}}@media (max-width:480px){.signup-page{padding:8px}.signup-container{border-radius:6px;max-height:95vh}.signup-header{padding:16px 20px 12px}.signup-header h2{font-size:20px}.close-btn{font-size:24px;height:28px;width:28px}.signup-form{padding:16px 20px 20px}.form-group{margin-bottom:16px}.form-group input{padding:10px 12px}.nickname-input-group{flex-direction:column;gap:8px}.nickname-check-btn{min-width:none;padding:10px;width:100%}.signup-submit-btn{padding:12px}.validation-message{font-size:11px}}.news-alert-page{background-color:#f8f9fa;min-height:100vh;padding-top:20px}.news-alert-page .page-container{margin:0 auto;max-width:1200px;padding:0 20px 100px}.page-title{align-items:center;color:#2c3e50;display:flex;font-size:28px;font-weight:700;gap:12px;justify-content:center;margin-bottom:12px;text-align:center}.page-icon{font-size:32px}.page-description{color:#6c757d;font-size:16px;line-height:1.5;margin-bottom:40px;text-align:center}.access-denied,.login-required{border-radius:12px;box-shadow:0 2px 12px #0000001a;margin-top:40px;text-align:center}.access-denied{background:#fff;border:2px solid #ffc107;padding:60px 20px}.login-required h2{color:#2c3e50;margin-bottom:16px}.login-required p{color:#6c757d;font-size:16px;margin-bottom:24px}.login-link{background:#007bff;border-radius:8px;color:#fff;display:inline-block;font-weight:600;padding:12px 24px;text-decoration:none;transition:all .2s ease}.login-link:hover{background:#0056b3;transform:translateY(-2px)}.access-denied h2{color:#856404;margin-bottom:16px}.access-denied p{color:#6c757d;font-size:16px;margin-bottom:16px}.access-denied p strong{color:#2c3e50}.back-link-container{margin-top:24px}.back-link{background:#6c757d;border-radius:8px;color:#fff;display:inline-block;font-weight:600;padding:12px 24px;text-decoration:none;transition:all .2s ease}.back-link:hover{background:#545b62;transform:translateY(-2px)}.alert-form-section{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;margin-bottom:32px;padding:32px}.alert-form-section h2{align-items:center;color:#2c3e50;display:flex;font-size:22px;font-weight:600;gap:8px;margin-bottom:24px}.alert-form-section h2:before{content:"✏️";font-size:20px}.alert-form{display:flex;flex-direction:column;gap:24px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-group{gap:8px}.form-group label{color:#2c3e50;font-size:14px;font-weight:600}.form-group input,.form-group select{background:#fff;border:2px solid #e9ecef;border-radius:8px;font-size:14px;padding:12px 16px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-group small{color:#6c757d;font-size:12px;line-height:1.4}.checkbox-group{margin-top:8px}.checkbox-label{align-items:center;display:flex;font-weight:500;gap:12px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{display:none}.checkmark{border:2px solid #ddd;border-radius:4px;height:20px;position:relative;transition:all .2s ease;width:20px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:#007bff;border-color:#007bff}.checkbox-label input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:12px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.form-actions{justify-content:center;margin-top:16px}.submit-button{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;min-width:140px;padding:14px 32px;transition:all .2s ease}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 4px 12px #007bff4d;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.loading-spinner{border:4px solid #0000;height:48px;transform-origin:center center;width:48px}.submit-message{border-radius:8px;font-weight:500;margin-top:16px;padding:12px 20px;text-align:center}.submit-message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.submit-message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.alert-list-section{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;padding:32px}.alert-list-section h2{align-items:center;color:#2c3e50;display:flex;font-size:22px;font-weight:600;gap:8px;margin-bottom:24px}.alert-list-section h2:before{content:"📋";font-size:20px}.loading-container{color:#6c757d;padding:40px;text-align:center}.loading-container .loading-spinner{animation:spin 1s linear infinite;border:4px solid #0000;border-radius:50%;border-top-color:#3498db;height:48px;margin:0 auto 16px;transform-origin:center center;width:48px}.empty-list{color:#6c757d;padding:60px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px}.empty-list p{color:#495057;font-size:18px;font-weight:500;margin-bottom:8px}.alert-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.alert-card{background:#fff;border:2px solid #e9ecef;border-radius:12px;padding:20px;position:relative;transition:all .2s ease}.alert-card:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff1a}.alert-card.inactive{background:#f8f9fa;opacity:.6}.alert-header{justify-content:space-between;margin-bottom:16px}.alert-header,.alert-keyword{align-items:center;display:flex}.alert-keyword{color:#2c3e50;font-size:18px;font-weight:600;gap:8px}.keyword-icon{font-size:16px}.status-toggle{background:none;border:none;border-radius:4px;cursor:pointer;font-size:20px;padding:4px;transition:all .2s ease}.status-toggle:hover{background:#f8f9fa}.status-toggle.inactive{opacity:.5}.alert-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.detail-item{align-items:center;display:flex;font-size:14px;justify-content:space-between}.detail-label{color:#6c757d;font-weight:500}.detail-value{color:#2c3e50;font-weight:600}.alert-meta{border-top:1px solid #e9ecef;display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding-top:12px}.alert-meta small{color:#6c757d;font-size:12px}.alert-actions{display:flex;justify-content:flex-end}.delete-button{align-items:center;background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s ease}.delete-button:hover{background:#c82333;transform:translateY(-1px)}.delete-icon{font-size:12px}.time-slots-section{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;margin:24px 0;padding:24px}.time-slots-section h3{align-items:center;color:#2c3e50;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 8px}.time-slots-section h3:before{content:"⏰";font-size:20px}.time-slots-description{color:#6c757d;font-size:14px;line-height:1.4;margin-bottom:20px}.time-slot-input{margin-bottom:24px}.time-input-row{align-items:flex-end;display:flex;gap:12px;margin-bottom:12px}.time-input-group{display:flex;flex-direction:column;gap:4px}.time-input-group label{color:#2c3e50;font-size:14px;font-weight:600}.time-input{border:2px solid #e9ecef;border-radius:6px;font-size:14px;min-width:120px;padding:10px 12px;transition:all .2s ease}.time-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.time-separator{font-size:18px;font-weight:700;margin-bottom:4px}.add-time-slot-button{align-items:center;background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease;white-space:nowrap}.add-time-slot-button:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1fa085);transform:translateY(-1px)}.add-time-slot-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.add-icon{font-size:12px}.time-slot-error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;font-size:14px;margin-bottom:8px;padding:10px 12px}.time-slot-help{color:#6c757d;display:block;font-size:13px;font-style:italic}.registered-time-slots{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:20px}.registered-time-slots h4{align-items:center;color:#2c3e50;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.registered-time-slots h4:before{content:"📋";font-size:16px}.time-slots-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.time-slot-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s ease}.time-slot-item:hover{background:#e9ecef;border-color:#007bff}.time-slot-info{align-items:center;display:flex;flex:1 1;gap:8px}.time-slot-icon{font-size:16px}.time-slot-text{color:#2c3e50;font-size:14px;font-weight:600}.time-slot-duration{color:#6c757d;font-size:13px;margin-left:8px}.remove-time-slot-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 10px;transition:all .2s ease}.remove-time-slot-button:hover{background:#c82333;transform:translateY(-1px)}.remove-icon{font-size:12px}.time-slots-summary{background:#e7f3ff;border:1px solid #b3d9ff;border-radius:6px;color:#06c;font-weight:600;padding:12px 16px;text-align:center}@media (max-width:768px){.news-alert-page .page-container{padding:0 16px 120px}.page-title{font-size:24px}.page-description{font-size:14px}.alert-form-section,.alert-list-section{padding:24px 20px}.alert-cards,.form-row{gap:16px;grid-template-columns:1fr}.alert-card{padding:16px}.time-slots-section{margin:16px 0;padding:16px}.time-input-row{align-items:stretch;flex-direction:column;gap:16px}.time-input-group{width:100%}.time-input{min-width:auto;width:100%}.time-separator{font-size:16px;margin:8px 0;text-align:center}.add-time-slot-button{justify-content:center;padding:12px;width:100%}.registered-time-slots{padding:16px}.time-slot-item{align-items:flex-start;flex-direction:column;gap:8px}.time-slot-info{width:100%}.remove-time-slot-button{align-self:flex-end;padding:8px 12px}.alert-header{align-items:flex-start;flex-direction:column;gap:12px}.status-toggle{align-self:flex-end}}@media (max-width:480px){.news-alert-page .page-container{padding:0 12px}.alert-form-section,.alert-list-section{padding:20px 16px}.page-title{flex-direction:column;font-size:20px;gap:8px}.submit-button{font-size:14px;padding:12px 24px}}.crawling-dashboard{background-color:#f5f5f5;min-height:100vh;padding:20px}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.dashboard-title{color:#2c3e50;font-size:2rem;font-weight:700}.dashboard-subtitle{color:#666;margin-top:5px}.add-request-btn{align-items:center;background-color:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-weight:500;gap:8px;padding:12px 24px;text-decoration:none;transition:background-color .3s}.add-request-btn:hover{background-color:#2980b9}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:24px}.stat-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.stat-title{color:#666;font-size:.9rem;font-weight:500}.stat-icon{font-size:1.5rem}.stat-value{color:#2c3e50;font-size:2rem;font-weight:700}.requests-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.requests-header{border-bottom:1px solid #e0e0e0;padding:20px 24px}.requests-title{color:#2c3e50;font-size:1.25rem;font-weight:600}.requests-table{border-collapse:collapse;width:100%}.requests-table th{background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#495057;font-weight:600;padding:16px;text-align:left}.requests-table td{border-bottom:1px solid #f0f0f0;padding:16px;vertical-align:middle}.requests-table tr:hover{background-color:#f8f9fa}.request-name{color:#2c3e50;font-weight:500}.request-url{color:#666;font-size:.9rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frequency-badge{background-color:#e9ecef;border-radius:4px;color:#495057;font-size:.8rem;font-weight:500;padding:4px 8px}.status-toggle{align-items:center;display:flex;gap:8px}.toggle-switch{background-color:#ccc;border-radius:12px;cursor:pointer;height:24px;position:relative;transition:background-color .3s;width:44px}.toggle-switch.active{background-color:#27ae60}.toggle-slider{background-color:#fff;border-radius:50%;height:20px;left:2px;position:absolute;top:2px;transition:transform .3s;width:20px}.toggle-switch.active .toggle-slider{transform:translateX(20px)}.status-text{font-size:.9rem;font-weight:500}.status-text.active{color:#27ae60}.status-text.inactive{color:#e74c3c}.actions-cell{display:flex;gap:8px}.action-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:500;gap:4px;padding:6px 12px;text-decoration:none;transition:background-color .3s}.edit-btn{background-color:#f39c12;color:#fff}.edit-btn:hover{background-color:#e67e22}.delete-btn{background-color:#e74c3c;color:#fff}.delete-btn:hover{background-color:#c0392b}.loading-container{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;min-height:200px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f0f0f0;border-radius:50%;border-top-color:#3498db;height:40px;margin-bottom:16px;width:40px}.empty-state{color:#666;padding:60px 20px;text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:16px}.empty-state-title{color:#2c3e50;font-size:1.5rem;font-weight:600;margin-bottom:8px}.empty-state-description{line-height:1.6;margin-bottom:24px}@media (max-width:768px){.crawling-dashboard{padding:16px}.dashboard-header{align-items:flex-start;flex-direction:column;gap:16px}.dashboard-title{font-size:1.5rem}.stats-grid{gap:16px;grid-template-columns:1fr}.requests-table{font-size:.9rem}.requests-table td,.requests-table th{padding:12px 8px}.request-url{max-width:200px}.actions-cell{flex-direction:column;gap:4px}}@media (max-width:480px){.requests-table td:nth-child(3),.requests-table th:nth-child(3){display:none}.request-url{max-width:150px}}.variable-input-container{padding:0}.variable-title{color:#2c3e50;font-size:1.25rem;font-weight:600;margin-bottom:8px}.variable-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:20px}.variable-help{background-color:#e8f4fd;border-radius:6px;margin-bottom:20px;padding:16px}.variable-help-title{color:#1976d2;font-size:.8rem;font-weight:500;margin-bottom:8px}.variable-helper-buttons{display:flex;flex-wrap:wrap;gap:6px}.variable-helper-btn{background-color:#e3f2fd;border:none;border-radius:4px;color:#1976d2;cursor:pointer;font-size:.75rem;font-weight:500;padding:4px 8px;transition:background-color .3s}.variable-helper-btn:hover{background-color:#bbdefb}.variables-list{margin-bottom:20px}.variable-item{align-items:flex-start;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;gap:12px;margin-bottom:12px;padding:16px}.variable-fields{grid-gap:12px;align-items:start;display:grid;flex:1 1;gap:12px;grid-template-columns:1fr 1fr 100px}.variable-field{display:flex;flex-direction:column}.variable-field-label{color:#495057;font-size:.8rem;font-weight:500;margin-bottom:4px}.variable-field-input{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:8px 12px;transition:border-color .3s,box-shadow .3s}.variable-field-input:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.variable-field-select{background-color:#fff;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:8px 12px;transition:border-color .3s,box-shadow .3s}.variable-field-select:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.variable-remove-btn{align-items:center;background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;padding:8px;transition:background-color .3s;width:32px}.variable-remove-btn:hover{background-color:#c82333}.add-variable-section{background-color:#fafafa;border:2px dashed #ced4da;border-radius:6px;padding:20px}.add-variable-fields{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:1fr 1fr 100px auto}.add-variable-input{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:10px 14px;transition:border-color .3s,box-shadow .3s}.add-variable-input:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.add-variable-select{background-color:#fff;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:10px 14px;transition:border-color .3s,box-shadow .3s}.add-variable-select:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.add-variable-btn{align-items:center;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:6px;padding:10px 16px;transition:background-color .3s;white-space:nowrap}.add-variable-btn:hover{background-color:#0056b3}.add-variable-btn:disabled{background-color:#6c757d;cursor:not-allowed}.variables-preview{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-top:20px;padding:16px}.preview-title{color:#495057}.preview-list{display:flex;flex-wrap:wrap;gap:8px}.preview-variable{background-color:#e9ecef;border-radius:4px;color:#495057;font-family:Courier New,monospace;font-size:.8rem;font-weight:500;padding:4px 8px}.empty-variables{color:#6c757d;padding:40px 20px;text-align:center}.empty-variables-icon{font-size:3rem;margin-bottom:16px}.empty-variables-text{font-size:1rem;margin-bottom:8px}.empty-variables-description{color:#adb5bd;font-size:.9rem}@media (max-width:768px){.variable-fields{gap:8px;grid-template-columns:1fr}.variable-item{align-items:stretch;flex-direction:column}.variable-remove-btn{align-self:flex-end;padding:8px 12px;width:auto}.add-variable-fields{gap:12px;grid-template-columns:1fr}.add-variable-btn{justify-content:center;width:100%}}@media (max-width:480px){.variable-input-container{padding:0}.variable-item{padding:12px}.add-variable-section{padding:16px}}.scheduler-container{padding:0}.scheduler-title{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:8px}.scheduler-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:24px}.scheduler-sections{display:flex;flex-direction:column;gap:24px}.scheduler-section{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px}.scheduler-section-title{align-items:center;color:#495057;display:flex;font-size:1rem;font-weight:600;gap:8px;margin-bottom:16px}.scheduler-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.scheduler-field{display:flex;flex-direction:column}.scheduler-field-label{color:#495057;font-size:.9rem;font-weight:500;margin-bottom:6px}.scheduler-field-input{border:1px solid #ced4da;border-radius:6px;font-size:.9rem;padding:10px 12px;transition:border-color .3s,box-shadow .3s}.scheduler-field-input:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.scheduler-field-select{background-color:#fff;border:1px solid #ced4da;border-radius:6px;font-size:.9rem;padding:10px 12px;transition:border-color .3s,box-shadow .3s}.scheduler-field-select:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.weekdays-section{background-color:#e8f4fd;border:1px solid #bbdefb;border-radius:8px;padding:20px}.weekdays-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.weekday-btn{background-color:#fff;border:2px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-size:.8rem;font-weight:500;padding:12px 8px;text-align:center;transition:all .3s}.weekday-btn:hover{background-color:#f8f9fa;border-color:#80bdff}.weekday-btn.selected{background-color:#007bff;border-color:#007bff;color:#fff}.weekday-btn.selected:hover{background-color:#0056b3;border-color:#0056b3}.time-range{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto 1fr}.time-separator{color:#6c757d;font-weight:500;text-align:center}.advanced-settings{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:20px}.setting-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.setting-item:last-child{margin-bottom:0}.setting-label{color:#495057;flex:1 1;font-size:.9rem}.setting-value{color:#6c757d;font-size:.9rem;margin-left:12px}.scheduler-checkbox{accent-color:#007bff;height:18px;width:18px}.checkbox-label{color:#495057}.execution-preview{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:8px;padding:20px}.preview-title{color:#155724;font-size:1rem;margin-bottom:12px}.preview-content{color:#155724;font-size:.9rem;line-height:1.5}.preview-times{background-color:#fff;border:1px solid #b8daff;border-radius:6px;margin-top:12px;padding:12px}.preview-time{background-color:#e3f2fd;border-radius:4px;color:#1976d2;display:inline-block;font-family:Courier New,monospace;font-size:.8rem;margin:2px 4px 2px 0;padding:4px 8px}.scheduler-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;margin-top:12px;padding:12px}.error-message{color:#721c24;font-size:.9rem;margin:0}.scheduler-help{background-color:#e2e3e5;border-radius:6px;margin-top:16px;padding:16px}.help-title{color:#495057;font-size:.9rem;font-weight:600;margin-bottom:8px}.help-text{color:#6c757d}@media (max-width:768px){.scheduler-grid{grid-template-columns:1fr}.weekdays-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.weekday-btn{font-size:.7rem;padding:8px 4px}.time-range{gap:8px;grid-template-columns:1fr}.time-separator{display:none}.setting-item{align-items:flex-start;flex-direction:column;gap:8px}.setting-value{margin-left:0}}@media (max-width:480px){.scheduler-container{padding:0}.advanced-settings,.execution-preview,.scheduler-section,.weekdays-section{padding:16px}.weekdays-grid{gap:2px;grid-template-columns:repeat(7,1fr)}.weekday-btn{font-size:.6rem;padding:6px 2px}}.keyvalue-container{padding:0}.keyvalue-title{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:8px}.keyvalue-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:20px}.mustache-helper{background-color:#e8f4fd;border-radius:6px;margin-bottom:20px;padding:12px}.mustache-helper-title{color:#1976d2;font-size:.8rem;font-weight:500;margin-bottom:8px}.mustache-buttons{display:flex;flex-wrap:wrap;gap:6px}.mustache-btn{background-color:#e3f2fd;border:none;border-radius:4px;color:#1976d2;cursor:pointer;font-family:Courier New,monospace;font-size:.75rem;font-weight:500;padding:4px 8px;transition:background-color .3s}.mustache-btn:hover{background-color:#bbdefb}.keyvalue-items{margin-bottom:20px}.keyvalue-item{align-items:flex-start;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;gap:12px;margin-bottom:12px;padding:16px}.keyvalue-fields{grid-gap:12px;align-items:start;display:grid;flex:1 1;gap:12px;grid-template-columns:1fr 1fr}.keyvalue-field{display:flex;flex-direction:column}.keyvalue-field-label{color:#495057;font-size:.8rem;font-weight:500;margin-bottom:4px}.keyvalue-field-input{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:8px 12px;transition:border-color .3s,box-shadow .3s}.keyvalue-field-input:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.keyvalue-field-textarea{border:1px solid #ced4da;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;min-height:60px;padding:8px 12px;resize:vertical;transition:border-color .3s,box-shadow .3s}.keyvalue-field-textarea:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.keyvalue-remove-btn{align-items:center;background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;padding:8px;transition:background-color .3s;width:32px}.keyvalue-remove-btn:hover{background-color:#c82333}.add-keyvalue-section{background-color:#fafafa;border:2px dashed #ced4da;border-radius:6px;padding:20px}.add-keyvalue-fields{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:1fr 1fr auto}.add-keyvalue-input{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:10px 14px;transition:border-color .3s,box-shadow .3s}.add-keyvalue-input:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.add-keyvalue-textarea{border:1px solid #ced4da;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;min-height:60px;padding:10px 14px;resize:vertical;transition:border-color .3s,box-shadow .3s}.add-keyvalue-textarea:focus{border-color:#80bdff;box-shadow:0 0 0 2px #007bff40;outline:none}.add-keyvalue-btn{align-items:center;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:6px;height:-webkit-fit-content;height:fit-content;padding:10px 16px;transition:background-color .3s;white-space:nowrap}.add-keyvalue-btn:hover{background-color:#0056b3}.add-keyvalue-btn:disabled{background-color:#6c757d;cursor:not-allowed}.empty-keyvalues{color:#6c757d;padding:30px 20px;text-align:center}.empty-keyvalues-icon{font-size:2.5rem;margin-bottom:12px}.empty-keyvalues-text{font-size:.9rem;margin-bottom:6px}.empty-keyvalues-description{color:#adb5bd;font-size:.8rem}@media (max-width:768px){.keyvalue-fields{gap:8px;grid-template-columns:1fr}.keyvalue-item{align-items:stretch;flex-direction:column}.keyvalue-remove-btn{align-self:flex-end;padding:8px 12px;width:auto}.add-keyvalue-fields{gap:12px;grid-template-columns:1fr}.add-keyvalue-btn{justify-content:center;width:100%}}@media (max-width:480px){.keyvalue-container{padding:0}.keyvalue-item{padding:12px}.add-keyvalue-section{padding:16px}}.form-container{background-color:#f5f5f5;min-height:100vh;padding:20px}.form-wrapper{margin:0 auto;max-width:1024px;padding:0 16px}.form-header{margin-bottom:32px}.header-content{align-items:center;display:flex;justify-content:space-between}.form-title{color:#2c3e50;font-size:2rem;font-weight:700;margin-bottom:4px}.form-subtitle{color:#666;font-size:.9rem}.close-btn{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;padding:8px;transition:color .3s}.close-btn:hover{color:#333}.form-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:24px;padding:24px}.section-title{color:#2c3e50;font-size:1.25rem;font-weight:600;margin-bottom:24px}.form-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}.form-grid.two-cols{grid-template-columns:1fr 1fr}.form-grid.full-width{grid-template-columns:1fr}.form-group{display:flex;flex-direction:column}.form-label{color:#374151;font-size:.9rem;font-weight:500;margin-bottom:4px}.form-label.required:after{color:#e74c3c;content:" *"}.form-input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:12px 16px;transition:border-color .3s,box-shadow .3s}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-input.error{background-color:#fef2f2;border-color:#ef4444}.form-textarea{border:1px solid #d1d5db;border-radius:6px;font-family:Courier New,monospace;font-size:.9rem;min-height:80px;padding:12px 16px;resize:vertical;transition:border-color .3s,box-shadow .3s}.form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:12px 16px;transition:border-color .3s,box-shadow .3s}.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.error-message{color:#ef4444}.error-message,.help-text{font-size:.8rem;margin-top:4px}.help-text{color:#6b7280;line-height:1.4}.url-group{align-items:end;display:flex;gap:8px}.url-input{flex:1 1}.test-btn{background-color:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:12px 16px;transition:background-color .3s;white-space:nowrap}.test-btn:hover{background-color:#4b5563}.parser-group{align-items:flex-start;display:flex;gap:8px}.parser-textarea{flex:1 1;min-height:200px}.preview-btn{background-color:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:12px 16px;transition:background-color .3s;white-space:nowrap}.preview-btn:hover{background-color:#059669}.preview-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.preview-result{background-color:#f9fafb;border-radius:8px;margin-top:16px;padding:16px}.preview-title{color:#374151;font-size:.9rem;font-weight:600;margin-bottom:8px}.preview-content{background:#fff;border:1px solid #e5e7eb;border-radius:4px;font-family:Courier New,monospace;font-size:.8rem;max-height:160px;overflow-y:auto;padding:12px;white-space:pre-wrap}.checkbox-group{align-items:center;display:flex;gap:8px}.form-checkbox{accent-color:#3b82f6;height:16px;width:16px}.checkbox-label{color:#374151;cursor:pointer;font-size:.9rem}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px}.btn{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;padding:12px 24px;text-decoration:none;transition:all .3s}.btn-secondary{background-color:#fff;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background-color:#f9fafb}.btn-primary{background-color:#3b82f6;border:1px solid #0000;color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.loading-spinner-inline{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.form-container{padding:16px}.form-wrapper{padding:0}.form-title{font-size:1.5rem}.header-content{align-items:flex-start;flex-direction:column;gap:16px}.form-grid.two-cols{grid-template-columns:1fr}.form-section{padding:20px}.parser-group,.url-group{align-items:stretch;flex-direction:column}.preview-btn,.test-btn{margin-top:8px;width:100%}.form-actions{flex-direction:column}.btn{justify-content:center;width:100%}}@media (max-width:480px){.form-section{margin-bottom:16px;padding:16px}.section-title{font-size:1.1rem}.form-input,.form-select,.form-textarea{padding:10px 12px}}
/*# sourceMappingURL=main.dcc492d1.css.map*/