.toast-container{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast-item{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 6px 20px #0000001f;animation:toastIn .25s ease;pointer-events:auto;max-width:400px}.toast-item.toast-leave{animation:toastOut .25s ease forwards}.toast-success{background:#e8f5e9;color:#2e7d32;border:1px solid #C8E6C9}.toast-error{background:#ffebee;color:#c62828;border:1px solid #FFCDD2}.toast-info{background:#e3f2fd;color:#1565c0;border:1px solid #BBDEFB}@keyframes toastIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.custom-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10001;animation:fadeIn .15s ease;overflow-y:auto;-webkit-overflow-scrolling:touch}.custom-modal{width:340px;max-width:90vw;background:#fff;border-radius:16px;padding:28px 24px 20px;box-shadow:0 20px 60px #0003;animation:fadeInUp .2s ease;text-align:center}.custom-modal-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.custom-modal-icon.info{background:#e3f2fd;color:#1565c0}.custom-modal-icon.success{background:#e8f5e9;color:#2e7d32}.custom-modal-icon.error{background:#ffebee;color:#c62828}.custom-modal-title{font-size:17px;font-weight:600;color:#1c1c1e;margin-bottom:8px}.custom-modal-content{font-size:14px;color:#6e6e73;line-height:1.5;margin-bottom:20px;word-break:break-word}.custom-modal-input{width:100%;padding:10px 14px;border:1.5px solid #e5e5ea;border-radius:10px;font-size:14px;font-family:inherit;outline:none;margin-bottom:20px;box-sizing:border-box;transition:border-color .15s}.custom-modal-input:focus{border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.custom-modal-actions{display:flex;gap:10px}.custom-modal-cancel{flex:1;padding:10px 0;border:1.5px solid #e5e5ea;border-radius:10px;background:#fff;font-size:14px;font-weight:500;cursor:pointer;color:#3c3c43;transition:background .15s}.custom-modal-cancel:hover{background:#f5f5f7}.custom-modal-confirm{flex:1;padding:10px 0;background:#007aff;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.custom-modal-confirm:hover{opacity:.9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-layout{display:flex;height:100%;background:#f7f8fc;overflow:hidden;overscroll-behavior:none;position:relative}.sidebar{width:260px;background:#fff;border-right:1px solid #eef0f5;box-shadow:2px 0 8px #0000000a;display:flex;flex-direction:column;flex-shrink:0;transition:width .2s ease;padding-bottom:env(safe-area-inset-bottom);position:relative;height:100%}.sidebar-main{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.sidebar.collapsed{width:56px}.sidebar.collapsed .sidebar-header{justify-content:center;padding:18px 0}.sidebar.collapsed .sidebar-nav{padding:8px 6px;align-items:center}.sidebar.collapsed .sidebar-nav-btn{justify-content:center;padding:10px;gap:0;position:relative}.sidebar.collapsed .sidebar-nav-btn.primary{padding:10px}.sidebar.collapsed .sidebar-nav-btn:after{content:attr(title);position:fixed;left:64px;background:#1c1c1e;color:#fff;font-size:12px;padding:5px 12px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:9999;box-shadow:0 2px 8px #00000026}.sidebar.collapsed .sidebar-nav-btn:hover:after{opacity:1}.sidebar.collapsed .sidebar-footer{justify-content:center;padding:12px 0;border-top:1px solid #f0f0f5;margin-top:auto}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px 16px;border-bottom:1px solid #f0f0f5;flex-shrink:0}.sidebar-title{font-size:16px;font-weight:600}.sidebar-list{flex:1;min-height:0;overflow-y:auto;padding:6px 8px}.sidebar-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13px;color:#3a3a3c;transition:background .15s}.sidebar-item{position:relative}.sidebar-item:hover{background:#f5f6fa}.sidebar-item.active{background:#e8f0fe;color:#007aff;font-weight:500}.sidebar-item.pinned{border-left:2px solid #FFD60A}.sidebar-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-menu-btn{background:none;border:none;cursor:pointer;padding:2px 4px;color:#8e8e93;flex-shrink:0;border-radius:4px;font-size:14px;font-weight:700;letter-spacing:1px;line-height:1}.conv-menu-btn:hover{background:#e5e5ea;color:#1c1c1e}.conv-menu{position:absolute;right:8px;top:100%;background:#fff;border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:30;min-width:100px;overflow:hidden}.conv-menu button{display:block;width:100%;padding:8px 14px;border:none;background:none;font-size:13px;color:#1c1c1e;cursor:pointer;text-align:left}.conv-menu button:hover{background:#f5f6fa}.conv-menu button.danger{color:#ff3b30}.conv-menu button.danger:hover{background:#fff0f0}.conv-rename-input{flex:1;padding:2px 6px;border:1px solid #007AFF;border-radius:4px;font-size:13px;outline:none;font-family:inherit;min-width:0}.sidebar-empty{text-align:center;color:#8e8e93;padding:40px 16px;font-size:13px}.sidebar-footer{padding:10px 12px;border-top:1px solid #f0f0f5;display:flex;flex-direction:column;gap:4px;flex-shrink:0;position:relative}.sidebar-footer-row{display:flex;align-items:center;justify-content:space-between}.user-panel{position:absolute;bottom:100%;left:10px;right:10px;margin-bottom:8px;background:#fff;border:1px solid #e5e5ea;border-radius:14px;box-shadow:0 8px 30px #00000026;overflow:hidden;animation:fadeInUp .15s ease;z-index:100}.user-panel-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #f0f0f5}.user-panel-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#af52de,#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.user-panel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-panel-name{font-size:15px;font-weight:600;color:#1c1c1e}.user-panel-edit{background:none;border:none;color:#8e8e93;cursor:pointer;padding:2px;display:inline-flex;margin-left:4px}.user-panel-edit:hover{color:#007aff}.user-panel-username{font-size:12px;color:#8e8e93}.user-panel-edit-row{display:flex;align-items:center;gap:6px}.user-panel-input{flex:1;padding:5px 10px;border:1.5px solid #007AFF;border-radius:6px;font-size:14px;outline:none;font-family:inherit}.user-panel-save{width:28px;height:28px;border:none;border-radius:6px;background:#007aff;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.user-panel-save:hover{opacity:.9}.user-panel-menu{padding:6px;display:flex;flex-direction:column}.user-panel-menu button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:8px;background:transparent;font-size:14px;color:#1c1c1e;cursor:pointer;transition:background .15s;text-align:left}.user-panel-menu button:hover{background:#f5f5f7}.user-panel-menu button.danger{color:#ff3b30}.user-panel-menu button.danger:hover{background:#fff5f5}.settings-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .15s ease;overflow-y:auto;-webkit-overflow-scrolling:touch}.settings-panel{width:720px;max-width:92vw;height:520px;max-height:85vh;background:#fff;border-radius:16px;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003;animation:fadeInUp .2s ease}.settings-sidebar{width:200px;background:#fafafa;border-right:1px solid #f0f0f5;padding:20px 10px;display:flex;flex-direction:column;gap:2px}.settings-sidebar-title{padding:0 10px 16px;font-size:18px;font-weight:700;color:#1c1c1e}.settings-nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:8px;background:transparent;font-size:14px;color:#3c3c43;cursor:pointer;transition:all .15s;text-align:left}.settings-nav:hover{background:#e8e8ed}.settings-nav.active{background:#007aff;color:#fff}.settings-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.settings-content-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #f0f0f5}.settings-content-header h2{margin:0;font-size:17px;font-weight:600}.settings-body{flex:1;overflow-y:auto;padding:24px}.st-section h3{font-size:15px;font-weight:600;color:#1c1c1e;margin:0 0 16px}.st-profile-card{display:flex;gap:20px;align-items:flex-start}.st-profile-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#af52de,#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex-shrink:0}.st-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#0006;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .15s}.st-profile-avatar:hover .st-avatar-overlay{opacity:1}.st-profile-info{flex:1;display:flex;flex-direction:column;gap:16px}.st-field{display:flex;flex-direction:column;gap:6px}.st-field label{font-size:12px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px}.st-value{font-size:15px;color:#1c1c1e}.st-value-row{display:flex;align-items:center;gap:10px}.st-value-row span{font-size:15px;color:#1c1c1e}.st-edit-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #e5e5ea;border-radius:6px;background:#fff;font-size:12px;color:#007aff;cursor:pointer}.st-edit-btn:hover{background:#f0f5ff}.st-edit-row{display:flex;align-items:center;gap:8px}.st-edit-row input{flex:1;padding:8px 12px;border:1.5px solid #007AFF;border-radius:8px;font-size:14px;outline:none;font-family:inherit}.st-save-btn{padding:8px 16px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.st-cancel-btn{padding:8px 12px;border:1px solid #e5e5ea;border-radius:8px;background:#fff;font-size:13px;color:#3c3c43;cursor:pointer}.st-form{display:flex;flex-direction:column;gap:14px;max-width:360px}.st-form input{padding:10px 14px;border:1.5px solid #e5e5ea;border-radius:8px;font-size:14px;outline:none;font-family:inherit;transition:border-color .15s}.st-form input:focus{border-color:#007aff;box-shadow:0 0 0 2px #007aff1a}.st-submit{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px}.st-submit:hover{opacity:.9}.st-submit:disabled{opacity:.5;cursor:not-allowed}.st-about{text-align:center;padding:20px 0}.st-about-logo{margin-bottom:12px}.st-about h3{font-size:20px;margin:0 0 4px}.st-about-ver{font-size:13px;color:#8e8e93;margin:0 0 16px}.st-about-desc{font-size:14px;color:#3c3c43;line-height:1.6;max-width:400px;margin:0 auto 20px}.st-about-info{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#aeaeb2}.st-policy-list{display:flex;flex-direction:column;gap:8px}.st-policy-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #f0f0f5;border-radius:10px;text-decoration:none;color:#1c1c1e;transition:background .15s}.st-policy-item:hover{background:#f5f5f7}.st-policy-item div{flex:1}.st-policy-item strong{font-size:14px;display:block;margin-bottom:2px}.st-policy-item p{font-size:12px;color:#8e8e93;margin:0}.st-policy-item>svg:last-child{color:#c7c7cc}.st-contact-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.st-contact-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid #f0f0f5;border-radius:10px;color:#1c1c1e}.st-contact-item>svg{color:#007aff;flex-shrink:0}.st-contact-item strong{font-size:14px;display:block;margin-bottom:2px}.st-contact-item p{font-size:12px;color:#8e8e93;margin:0}.st-feedback h3{margin:0 0 6px}.st-feedback p{font-size:14px;color:#8e8e93;margin:0}.sidebar-user{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.avatar-sm{width:28px;height:28px;border-radius:50%;background:#007aff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.btn-text-sm{position:relative;font-size:12px;color:#8e8e93;background:none;border:1px solid #e0e0e5;border-radius:6px;padding:4px 10px;cursor:pointer}.btn-text-sm:hover{color:#e74c3c;border-color:#e74c3c}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.chat-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border-bottom:1px solid #eef0f5}.topbar-title{font-size:15px;font-weight:600;margin:0}.topbar-actions{display:flex;gap:4px}.icon-btn{background:none;border:none;padding:8px;cursor:pointer;color:#1c1c1e;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s}.icon-btn:hover{background:#f0f1f5}.icon-btn-sm{background:none;border:none;padding:6px;cursor:pointer;color:#1c1c1e;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s}.icon-btn-sm:hover{background:#f0f1f5;color:#007aff}.icon-btn-sm.active{color:#e74c3c}.chat-messages{flex:1;overflow-y:auto;padding:20px 6%;display:flex;flex-direction:column;gap:16px}.welcome-new{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 120px;max-width:720px;margin:0 auto;width:100%}.welcome-greeting{text-align:center;margin-bottom:48px}.welcome-greeting h2{font-size:28px;font-weight:700;color:#1c1c1e;margin:16px 0 8px}.welcome-greeting p{font-size:17px;color:#8e8e93;margin:0}.welcome-input-box{position:relative;width:100%;background:#fff;border:1px solid #d1d1d6;border-radius:19px;padding:14px 17px 10px;margin-bottom:20px;transition:border-color .2s}.welcome-input-box:focus-within{border-color:#007aff}.msg{display:flex;align-items:flex-start;gap:10px;max-width:75%}.msg.user{align-self:flex-end;flex-direction:row-reverse}.msg.assistant{align-self:flex-start}.msg-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.msg-avatar.user{background:#007aff;color:#fff;font-size:15px;font-weight:600}.msg-bubble{padding:12px 16px;border-radius:18px;font-size:16px;line-height:1.7;max-width:480px}.msg.assistant .msg-bubble{background:#fff;color:#333;border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000000d}.msg.user .msg-bubble{background:#007aff;color:#fff;border-bottom-right-radius:4px}.msg-text{word-break:break-word}.msg-card{cursor:pointer;border-radius:12px;overflow:hidden;transition:transform .15s}.msg-card:hover{transform:scale(1.02)}.msg-card-img{max-width:220px;max-height:220px;display:block;border-radius:10px}.msg-card-label{font-size:11px;color:#ffffffb3;text-align:center;margin-top:4px}.msg.assistant .msg-card-label{color:#8e8e93}.msg-audio{display:flex;align-items:center;gap:6px;font-size:14px}.msg-content-wrap{display:flex;flex-direction:column;max-width:100%}.quick-replies{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.quick-reply-btn{padding:10px 18px;font-size:15px;color:#007aff;background:#fff;border:1.5px solid #007AFF;border-radius:20px;cursor:pointer;white-space:nowrap;transition:all .2s;font-family:inherit;line-height:1.4}.quick-reply-btn:hover{background:#007aff;color:#fff}.quick-reply-btn:active{transform:scale(.95);background:#06d;color:#fff;border-color:#06d}.typing{display:flex;gap:4px;padding:4px 0}.typing span{width:7px;height:7px;border-radius:50%;background:#bbb;animation:typingAnim 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes typingAnim{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.chat-bottom{background:transparent;padding:10px 6%;padding-bottom:max(10px,env(safe-area-inset-bottom));z-index:1}.skill-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.skill-bar::-webkit-scrollbar{display:none}.skill-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:14px;color:#1c1c1e;background:#fff;border:1px solid #e5e5ea;border-radius:18px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .15s}.skill-chip svg{color:var(--chip-color, #1c1c1e)}.skill-chip:hover{background:#f5f5f7;border-color:#d1d1d6}.skill-chip.highlight{background:#007aff;color:#fff;border-color:#007aff;font-weight:500}.skill-chip.highlight svg{color:#fff}.skill-chip.highlight:hover{background:#06d;border-color:#06d}.float-panel{position:absolute;bottom:100%;left:16px;right:16px;background:#fff;border-radius:16px;box-shadow:0 -4px 24px #0000001a;padding:16px;margin-bottom:4px;z-index:10}.float-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:14px;font-weight:600;color:#333}.style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.style-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:10px;cursor:pointer;font-size:11px;color:#1c1c1e;font-weight:500;transition:background .15s}.style-item:hover{background:#f5f6fa}.style-emoji{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f5f6fa;transition:all .15s}.style-item:hover .style-emoji{transform:scale(1.08)}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.skill-grid-item{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;font-size:11px;color:#1c1c1e;font-weight:500}.skill-grid-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .15s}.skill-grid-item:hover .skill-grid-icon{transform:scale(1.08)}.recording-bar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff5f5;border-radius:14px}.rec-dot{width:10px;height:10px;border-radius:50%;background:#e74c3c;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.recording-bar span{flex:1;font-size:14px;color:#e74c3c;font-weight:500}.rec-send{padding:7px 18px;background:#e74c3c;color:#fff;border:none;border-radius:18px;font-size:13px;font-weight:500;cursor:pointer}.input-box{position:relative;background:#fff;border:1px solid #d1d1d6;border-radius:19px;padding:14px 17px 10px;transition:border-color .2s}.input-box:focus-within{border-color:#007aff}.pending-image-wrap{position:relative;display:inline-block;margin-bottom:8px}.pending-image-thumb{max-width:120px;max-height:80px;border-radius:8px;border:1px solid #e0e0e0;object-fit:cover}.pending-image-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#0009;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;padding:0}.input-textarea{width:100%;border:none;background:none;outline:none;font-size:19px;line-height:1.5;resize:none;font-family:inherit;color:#1c1c1e;min-height:48px;max-height:160px}.input-textarea::placeholder{color:#8e8e93}.input-actions{display:flex;align-items:center;justify-content:space-between;padding-top:4px}.input-actions-left{display:flex;gap:2px}.input-actions-right{display:flex;align-items:center;gap:4px}.input-divider{width:1px;height:18px;background:#1c1c1e;margin:0 6px;opacity:.35}.send-btn{width:34px;height:34px;border-radius:50%;border:none;background:#007aff;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .2s}.send-btn:disabled{opacity:.3;cursor:not-allowed}.canvas-panel{width:0;overflow:hidden;background:#fff;border-left:1px solid #eef0f5;box-shadow:-2px 0 8px #0000000a;flex-shrink:0;transition:width .3s ease;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);position:relative}.canvas-panel.show{width:380px;min-width:300px;max-width:50vw;transition:none}.canvas-resize-handle{position:absolute;left:-10px;top:0;bottom:0;width:20px;cursor:col-resize;z-index:10;display:flex;align-items:center;justify-content:center;touch-action:none}.canvas-resize-handle:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#eef0f5;transform:translate(-50%);transition:width .15s,background .15s}.canvas-resize-handle:hover:before{width:3px;background:#007aff}.canvas-resize-handle:active:before{width:3px;background:#007aff}.canvas-resize-handle:after{content:"";width:4px;height:36px;background:transparent;border-radius:2px;transition:background .15s;z-index:1}.canvas-resize-handle:hover:after{background:#c7c7cc}.canvas-resize-handle:active:after{background:#007aff}.canvas-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #f0f0f5}.canvas-title{font-size:15px;font-weight:600}.canvas-body{flex:1;overflow-y:auto;padding:20px 16px}.canvas-image-wrap{text-align:center}.canvas-image{max-width:100%;border-radius:12px;box-shadow:0 2px 12px #00000014}.canvas-label{font-size:13px;color:#636366;margin-top:12px}.canvas-3d-placeholder{height:300px;background:#f5f6fa;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:40px}.canvas-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8e8e93}.canvas-empty-icon{font-size:48px;margin-bottom:12px}.canvas-empty p{font-size:13px}@media(max-width:768px){.sidebar{position:fixed;left:-260px;top:0;bottom:0;z-index:100;transition:left .3s ease}.sidebar.show{left:0}.canvas-panel.show{width:100%;position:fixed;right:0;top:0;bottom:0;z-index:100}.msg{max-width:88%}}.canvas-portfolio{text-align:center;padding:20px}.canvas-portfolio-icon{font-size:48px;margin-bottom:12px}.canvas-portfolio h3{font-size:18px;font-weight:600;margin:0 0 8px}.canvas-portfolio p{font-size:13px;color:#636366;margin:0 0 20px}.canvas-view-btn{background:#007aff;color:#fff;border:none;padding:12px 28px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer}.canvas-view-btn:hover{transform:translateY(-1px)}.msg-image-grid{max-width:360px}.grid-title{font-size:12px;color:#8e8e93;margin:0 0 8px}.grid-wrap{display:grid;grid-template-columns:1fr 1fr;gap:4px;border-radius:14px;overflow:hidden}.grid-wrap.single{grid-template-columns:1fr;max-width:280px}.grid-wrap.triple{grid-template-columns:1fr 1fr 1fr}.grid-img{width:100%;aspect-ratio:1;object-fit:cover;cursor:pointer;transition:transform .2s,box-shadow .2s}.grid-wrap.single .grid-img{aspect-ratio:4/3;border-radius:14px}.grid-img:hover{transform:scale(1.02);box-shadow:0 0 0 2px #007aff;z-index:1;position:relative}.grid-generating{position:relative;width:240px;height:130px;border-radius:14px;background:#f5f7fa;border:1px solid #e8ecf1;overflow:hidden;display:flex;align-items:center;justify-content:center}.grid-gen-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(0,122,255,.06) 50%,transparent 100%);animation:shimmer 1.8s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.grid-gen-content{position:relative;display:flex;align-items:center;gap:8px;color:#636366;font-size:13px;font-weight:500}.grid-gen-content svg{color:#007aff;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.grid-failed{display:flex;align-items:center;gap:6px;padding:12px 14px;background:#fff5f5;border:1px solid #FED7D7;border-radius:12px;color:#c53030;font-size:13px}.msg-actions{display:flex;gap:2px;margin-top:4px}.msg-action-btn{background:none;border:none;padding:4px 8px;cursor:pointer;opacity:.4;transition:opacity .15s;border-radius:5px}.msg-action-btn:hover{opacity:1;background:#f0f1f5}.canvas-items{display:flex;flex-direction:column;gap:16px}.canvas-item{border-bottom:1px solid #f0f0f5;padding-bottom:16px}.canvas-item:last-child{border-bottom:none}.course-step-ui{padding:8px 0}.course-step-ui.inline-step{margin-top:8px;padding:10px 0}.step-ui-label{font-size:15px;color:#1c1c1e;margin:0 0 10px;font-weight:500;display:flex;align-items:center;gap:6px}.step-waiting{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#fff8e1;border:1.5px solid #FFE082;border-radius:12px;font-size:14px;color:#f57f17;font-weight:500}.step-waiting-dot{width:10px;height:10px;border-radius:50%;background:#ffb300;animation:waitingPulse 1.2s ease-in-out infinite}@keyframes waitingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.host-step{background:#e8f5e9;border:1.5px solid #C8E6C9;border-radius:12px;padding:14px 18px}.step-host-label{color:#2e7d32;font-weight:600;margin:0 0 6px}.step-host-hint{font-size:13px;color:#1b5e20;margin:0 0 12px;line-height:1.5;white-space:pre-wrap}.step-style-btn.host{background:#2e7d32;color:#fff;border-color:#2e7d32}.step-style-btn.host:hover{background:#1b5e20}.step-style-grid{display:flex;flex-wrap:wrap;gap:8px}.step-style-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;background:#007aff;border-radius:22px;font-size:15px;cursor:pointer;transition:all .2s;font-weight:500;color:#fff}.step-style-btn svg{color:#fff}.step-style-btn:hover{background:#06d}.step-style-btn:active{background:#05b;transform:scale(.96)}.step-upload-btns{display:flex;gap:10px}.step-action-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;border:1.5px solid #e5e5ea;background:#fff;border-radius:16px;font-size:16px;cursor:pointer;font-weight:500;color:#1c1c1e;transition:all .15s}.step-action-btn svg{color:#ff9500}.step-action-btn:hover{border-color:#ff9500;background:#f5f5f7}.step-action-btn:active{background:#ff9500;border-color:#ff9500;color:#fff}.step-action-btn:active svg{color:#fff}.course-progress{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0}.progress-phase-tags{display:flex;gap:4px}.progress-phase-tag{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#f0f0f5;color:#8e8e93;white-space:nowrap}.progress-phase-tag.active{color:#fff}.progress-label{font-size:12px;color:#636366;white-space:nowrap}.progress-mini-bar{flex:1;height:4px;background:#eef0f5;border-radius:2px;overflow:hidden}.progress-mini-fill{height:100%;background:#007aff;border-radius:2px;transition:width .3s}.step-progress-dots{display:flex;gap:8px;margin-top:4px}.step-dot-q{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;border:2px solid #e0e0e0;color:#8e8e93;background:#fff;transition:all .2s}.step-dot-q.done{background:#007aff;border-color:#007aff;color:#fff}.step-dot-q.active{border-color:#007aff;color:#007aff;background:#f0f2ff;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.sidebar-nav{padding:8px 12px;display:flex;flex-direction:column;gap:2px;flex:0 0 auto}.sidebar-nav-btn{position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px;border:none;border-radius:10px;background:transparent;color:#1c1c1e;font-size:14px;cursor:pointer;transition:background .15s;text-align:left}.sidebar-nav-btn:hover{background:#f0f0f5}.sidebar-nav-btn.active{background:#e8f0fe;color:#007aff;font-weight:500}.sidebar-nav-btn.primary{background:#007aff;color:#fff;font-weight:500;font-size:14px;padding:10px 14px}.sidebar-nav-btn.primary:hover{background:#0066d6}.sidebar-divider{height:1px;background:#e5e5ea;margin:6px 16px}.sidebar-section-title{padding:6px 16px 4px;font-size:11px;font-weight:500;color:#8e8e93;letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between}.sidebar-manage-btn{font-size:11px;color:#007aff;background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px}.sidebar-manage-btn:hover{background:#e3f2fd}.sidebar-item.manage-mode{gap:5px}.manage-checkbox{width:12px!important;height:12px!important;min-width:12px!important;max-width:12px!important;border:1.5px solid #8e8e93;border-radius:2px;display:flex!important;align-items:center;justify-content:center;font-size:8px;color:transparent;flex-shrink:0!important;flex-grow:0!important;transition:all .15s;box-sizing:border-box;padding:0!important;margin:0!important}.manage-checkbox.checked{background:#007aff;color:#fff;border-color:#007aff}.sidebar-item.selected{background:#e3f2fd}.manage-bar{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #e5e5ea;background:#fff}.manage-bar-btn{flex:1;padding:8px;border:1.5px solid #e5e5ea;border-radius:8px;font-size:12px;font-weight:500;background:#fff;color:#636366;cursor:pointer;transition:all .15s}.manage-bar-btn:hover{background:#f5f5f7}.manage-bar-btn.danger{color:#ff3b30;border-color:#ff3b30}.manage-bar-btn.danger:hover{background:#fff5f5}.manage-bar-btn.danger:disabled{opacity:.4;cursor:not-allowed}.classroom-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000059;z-index:100;display:flex;align-items:center;overflow-y:auto;-webkit-overflow-scrolling:touch;justify-content:center}@keyframes fadeInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.cls-panel{width:820px;max-width:92vw;height:520px;max-height:82vh;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e;display:flex;flex-direction:column;animation:fadeInUp .2s ease;overflow:hidden;margin-bottom:10vh}.cls-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid #f0f0f5;flex-shrink:0}.cls-panel-header h3{margin:0;font-size:17px;font-weight:600;color:#1c1c1e}.cls-panel-body{display:flex;flex:1;min-height:0}.cls-col-title{font-size:13px;font-weight:600;color:#1c1c1e;margin-bottom:12px}.cls-code{font-family:monospace;color:#8e8e93;letter-spacing:1px}.cls-status{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500}.cls-status.waiting{background:#fff3e0;color:#e65100}.cls-status.in_progress{background:#e8f5e9;color:#2e7d32}.cls-status.ended{background:#f5f5f5;color:#9e9e9e}.cls-empty-sm{text-align:center;color:#8e8e93;padding:24px 0;font-size:12px}.cls-left-actions{width:300px;padding:40px 28px;display:flex;flex-direction:column;justify-content:center;flex-shrink:0}.cls-btn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.cls-action-btn{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;border:none;background:transparent;cursor:pointer;border-radius:16px;transition:background .15s;color:#1c1c1e;font-size:14px;font-weight:500}.cls-action-btn:hover{background:#f0f1f5}.cls-action-btn:disabled{opacity:.35;cursor:not-allowed}.cls-action-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff}.cls-action-icon.quick{background:#ff9500}.cls-action-icon.schedule{background:#34c759}.cls-action-icon.join{background:#007aff}.cls-action-icon.share{background:#c7c7cc}.cls-right-list{flex:1;border-left:1px solid #f0f0f5;display:flex;flex-direction:column;background:#f9fafb;min-width:0}.cls-date-header{padding:18px 20px 14px;flex-shrink:0;border-bottom:1px solid #eef0f5}.cls-date-main{font-size:22px;font-weight:700;color:#1c1c1e}.cls-date-sub{font-size:13px;color:#8e8e93;margin-top:2px}.cls-list-scroll{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.cls-card{padding:14px 16px;border-radius:12px;transition:all .12s;background:#fff;border:1px solid #e8e8ed;position:relative}.cls-card:hover{border-color:#d0d0d6;box-shadow:0 2px 8px #0000000d}.cls-card.in_progress{border-left:3px solid #34C759}.cls-card.ended{opacity:.5}.cls-card-row1{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cls-card-title{font-size:15px;font-weight:600;color:#1c1c1e;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}.cls-card-actions-top{display:flex;align-items:center;gap:6px;flex-shrink:0}.cls-card-status{font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px}.cls-card-status.waiting{background:#fff3e0;color:#e65100}.cls-card-status.in_progress{background:#e8f5e9;color:#2e7d32}.cls-card-status.ended{background:#f5f5f5;color:#9e9e9e}.cls-card-more{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#8e8e93;cursor:pointer;transition:background .12s}.cls-card-more:hover{background:#e8e8ed;color:#1c1c1e}.cls-card-row2{display:flex;align-items:center;gap:12px;margin-bottom:10px}.cls-card-time{font-size:13px;color:#636366;display:flex;align-items:center;gap:4px}.cls-card-countdown{font-size:12px;font-weight:600;color:#ff3b30;background:#fff0f0;padding:2px 8px;border-radius:4px;display:flex;align-items:center;gap:3px}.cls-card-countdown.urgent{animation:urgentPulse 1s ease-in-out infinite;background:#ff3b30;color:#fff}@keyframes urgentPulse{0%,to{opacity:1}50%{opacity:.5}}.cls-card-row3{display:flex;align-items:center;gap:8px}.cls-card-code{font-size:13px;font-family:monospace;color:#636366;letter-spacing:1.5px;font-weight:600}.cls-card-copy,.cls-card-share{font-size:12px;padding:3px 10px;border:1px solid #e0e0e5;border-radius:6px;background:#fff;color:#007aff;cursor:pointer;transition:all .12s}.cls-card-copy:hover,.cls-card-share:hover{background:#007aff;color:#fff;border-color:#007aff}.cls-card-enter{margin-left:auto;font-size:12px;padding:4px 14px;border:none;border-radius:6px;background:#007aff;color:#fff;cursor:pointer;font-weight:500;transition:background .12s}.cls-card-enter:hover{background:#06d}.cls-card-entered{margin-left:auto;font-size:12px;padding:4px 14px;border:none;border-radius:6px;background:#e8f5e9;color:#34c759;font-weight:500;cursor:default}.cls-card-dropdown{position:absolute;right:12px;top:42px;background:#fff;border:1px solid #e5e5ea;border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:60;min-width:140px;padding:4px 0}.cls-dd-item{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;cursor:pointer;color:#1c1c1e;white-space:nowrap;transition:background .1s}.cls-dd-item:hover{background:#f5f5f7}.cls-dd-item.danger{color:#ff3b30}.cls-dd-item.danger:hover{background:#fff0f0}.cls-card-live{font-size:11px;font-weight:600;color:#34c759;background:#e8f5e9;padding:2px 8px;border-radius:4px}.cls-card-type{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px}.cls-card-type.quick{background:#fff8e1;color:#f57f17}.cls-card-type.scheduled{background:#e8f0fe;color:#1565c0}.cls-in-session{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;text-align:center;padding:20px}.cls-session-badge{font-size:13px;font-weight:600;color:#34c759;background:#e8f5e9;padding:6px 16px;border-radius:20px}.cls-session-title{font-size:22px;font-weight:700;color:#1c1c1e}.cls-session-info{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#636366}.cls-session-actions{display:flex;gap:12px;margin-top:8px}.cls-session-enter{padding:10px 28px;background:#007aff;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.cls-session-enter:hover{background:#06d}.cls-session-end{padding:10px 28px;background:#fff;color:#ff3b30;border:1px solid #FF3B30;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.cls-session-end:hover{background:#fff0f0}.cls-leave-modal{background:#fff;border-radius:16px;padding:28px;width:360px;max-width:90vw;text-align:center;margin-bottom:10vh}.cls-leave-menu{padding:8px;width:280px}.cls-menu-item{display:block;width:100%;padding:14px 0;border:none;background:transparent;font-size:16px;font-weight:500;color:#1c1c1e;cursor:pointer;border-radius:10px;transition:background .15s}.cls-menu-item:hover{background:#f5f5f7}.cls-menu-item.danger{color:#ff3b30}.cls-menu-item.danger:hover{background:#fff5f5}.cls-menu-item.cancel{color:#8e8e93}.cls-menu-item+.cls-menu-item{border-top:1px solid #f0f0f5}.cls-leave-title{font-size:18px;font-weight:600;color:#1c1c1e;margin-bottom:12px}.cls-leave-desc{font-size:14px;color:#636366;margin-bottom:24px;line-height:1.6}.cls-leave-actions{display:flex;gap:12px;justify-content:center}.cls-leave-cancel{padding:10px 28px;background:#f5f5f7;color:#1c1c1e;border:none;border-radius:10px;font-size:15px;cursor:pointer}.cls-leave-cancel:hover{background:#e5e5ea}.cls-leave-confirm{padding:10px 28px;background:#ff3b30;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.cls-leave-confirm:hover{background:#e0352b}.cls-toolbar{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;background:#1c1c1e;color:#fff;padding:8px 16px;border-radius:0 0 14px 14px;box-shadow:0 4px 20px #00000040;max-width:92vw;animation:cls-toolbar-slide .25s ease}@keyframes cls-toolbar-slide{0%{transform:translate(-50%) translateY(-100%)}to{transform:translate(-50%) translateY(0)}}.cls-toolbar-restore{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:6px;background:#1c1c1e;color:#fffc;border:none;padding:4px 14px 6px;border-radius:0 0 10px 10px;cursor:pointer;font-size:12px;font-family:monospace;box-shadow:0 4px 16px #0003;animation:cls-toolbar-slide .2s ease;transition:background .15s}.cls-toolbar-restore:hover{background:#2c2c2e;color:#fff}.cls-toolbar-restore-dot{width:6px;height:6px;border-radius:50%;background:#34c759;animation:cls-dot-pulse 2s infinite}.cls-toolbar-row{display:flex;align-items:center;gap:8px;font-size:13px}.cls-toolbar-dot{width:8px;height:8px;border-radius:50%;background:#34c759;flex-shrink:0;animation:cls-dot-pulse 2s infinite}@keyframes cls-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.cls-toolbar-name{font-weight:600;font-size:14px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cls-toolbar-divider{width:1px;height:14px;background:#fff3}.cls-toolbar-code{font-family:monospace;letter-spacing:2px;color:#ffffffb3}.cls-toolbar-copy{background:none;border:none;color:#ffffff80;cursor:pointer;padding:2px;display:flex;align-items:center}.cls-toolbar-copy:hover{color:#fff}.cls-toolbar-timer{font-family:monospace;color:#ff9500;font-weight:600}.cls-toolbar-members{display:flex;align-items:center;gap:4px;color:#ffffffb3}.cls-toolbar-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;border:none;background:#ffffff1a;color:#fff;border-radius:8px;cursor:pointer;font-size:13px;transition:background .12s}.cls-toolbar-btn:hover{background:#fff3}.cls-toolbar-end{padding:5px 12px;border:none;background:#ff3b30;color:#fff;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s}.cls-toolbar-end:hover{background:#e0352b}.cls-toolbar-leave{padding:5px 12px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .12s}.cls-toolbar-leave:hover{background:#ffffff1a}.cls-end-dropdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:209}.cls-end-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:120px;background:#2c2c2e;border-radius:10px;box-shadow:0 8px 24px #0006;overflow:hidden;z-index:210;animation:cls-dropdown-in .15s ease}@keyframes cls-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cls-end-dropdown-item{display:block;width:100%;padding:10px 16px;border:none;background:transparent;color:#fff;font-size:13px;text-align:center;cursor:pointer;white-space:nowrap}.cls-end-dropdown-item:hover{background:#ffffff1a}.cls-end-dropdown-item.danger{color:#ff3b30;font-weight:500}.cls-end-dropdown-item.cancel{color:#8e8e93;border-top:1px solid rgba(255,255,255,.08)}.cls-student-panel{position:fixed;top:48px;right:0;z-index:199;width:280px;bottom:100px;background:#1c1c1e;color:#fff;border-radius:14px 0 0 14px;box-shadow:-4px 0 20px #00000040;display:flex;flex-direction:column;animation:cls-panel-slide-in .2s ease}@keyframes cls-panel-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.cls-panel-toggle{position:fixed;top:56px;right:0;z-index:199;width:28px;height:48px;background:#1c1c1e;border:none;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #0003;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ffffffb3;transition:all .15s}.cls-panel-toggle:hover{background:#2c2c2e;color:#fff;width:32px}.cls-student-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;font-weight:600;color:#fff}.cls-student-header .icon-btn{color:#fff9}.cls-student-header .icon-btn:hover{color:#fff}.cls-student-list{flex:1;overflow-y:auto;padding:8px}.cls-student-item{padding:6px 8px;border-radius:10px;transition:background .12s}.cls-student-item:hover{background:#ffffff14}.cls-student-item.has-video{background:#ffffff0f}.cls-student-row{display:flex;align-items:center;gap:10px}.cls-student-progress{height:3px;background:#f0f0f5;border-radius:2px;margin:4px 12px 0;overflow:hidden}.cls-student-progress-bar{height:100%;background:#34c759;border-radius:2px;transition:width .3s ease}.cls-student-video{margin-top:6px;border-radius:8px;overflow:hidden;background:#000;aspect-ratio:16/9}.cls-student-video video{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.cls-student-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.cls-student-info{display:flex;flex-direction:column}.cls-student-name{font-size:14px;font-weight:500;color:#fff}.cls-student-status{font-size:11px;color:#ffffff73}.cls-student-sharing{display:flex;align-items:center;gap:3px;font-size:10px;color:#34c759;margin-top:1px}.cls-student-media{display:flex;align-items:center;gap:6px;margin-left:auto}.cls-media-dot{color:#c7c7cc;display:flex;align-items:center}.cls-media-dot.on{color:#34c759}.cls-media-dot.speaking{color:#34c759;animation:cls-speak-pulse .6s infinite alternate}@keyframes cls-speak-pulse{0%{transform:scale(1)}to{transform:scale(1.3)}}.cls-student-avatar.speaking{box-shadow:0 0 0 3px #34c759;animation:cls-avatar-glow .8s infinite alternate}@keyframes cls-avatar-glow{0%{box-shadow:0 0 0 2px #34c75966}to{box-shadow:0 0 0 4px #34c759b3}}.cls-toolbar-btn.active{background:#34c7594d}.cls-wb-wrap{position:relative}.cls-wb-popup{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:#2c2c2e;border-radius:12px;padding:10px 12px;box-shadow:0 8px 24px #0000004d;display:flex;align-items:center;gap:10px;z-index:300;white-space:nowrap}.cls-wb-popup:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #2c2c2e}.cls-wb-colors{display:flex;gap:5px}.cls-wb-color{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .12s;padding:0;flex-shrink:0}.cls-wb-color.active{border-color:#fff;transform:scale(1.15)}.cls-wb-color:hover{transform:scale(1.1)}.cls-wb-sep{width:1px;height:20px;background:#ffffff26;flex-shrink:0}.cls-wb-sizes{display:flex;gap:4px;align-items:center}.cls-wb-size{width:28px;height:28px;border-radius:6px;background:#ffffff14;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;padding:0;flex-shrink:0}.cls-wb-clear{background:#ffffff1a;border:none;color:#fff;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:12px;flex-shrink:0;transition:background .12s}.cls-wb-clear:hover{background:#ff3b304d}.cls-wb-size.active{border-color:#007aff;background:#007aff26}.cls-wb-size:hover{background:#ffffff26}.cls-screenshare-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;background:#000}.cls-screenshare-hint{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#00000080;color:#fffc;font-size:13px;padding:6px 16px;border-radius:20px;z-index:1;pointer-events:none}.cls-screenshare-minimize{position:absolute;top:16px;right:16px;background:#00000080;border:none;color:#fff;padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;z-index:1}.cls-screenshare-minimize:hover{background:#000000b3}.cls-screenshare-tools{display:flex;align-items:center;gap:8px}.cls-screenshare-btn{display:flex;align-items:center;gap:4px;background:#ffffff26;border:none;color:#fff;padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .12s}.cls-screenshare-btn:hover{background:#ffffff40}.cls-screenshare-btn.active{background:#34c7594d}.cls-screenshare-restore{position:fixed;bottom:100px;left:50%;transform:translate(-50%);z-index:201;display:flex;align-items:center;gap:6px;background:#1c1c1e;color:#fff;border:none;padding:8px 18px;border-radius:10px;box-shadow:0 4px 16px #0000004d;cursor:pointer;font-size:13px;animation:fadeInUp .2s ease}.cls-screenshare-restore:hover{background:#2c2c2e}.cls-wb-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;background:transparent}.cls-wb-canvas.active{cursor:crosshair;pointer-events:auto}.cls-wb-canvas.inactive{pointer-events:none}.cls-screenshare-video{width:100%;height:100%;object-fit:contain}.cls-toolbar-btn{position:relative}.cls-toolbar-btn[data-tip]:after{content:attr(data-tip);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:#1c1c1e;color:#fff;font-size:11px;padding:4px 8px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:300}.cls-toolbar-btn[data-tip]:hover:after{opacity:1}.cls-toolbar-end,.cls-toolbar-leave{position:relative}.classroom-modal{width:400px;max-width:90vw;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;animation:fadeInUp .2s ease}.drawer-label{display:block;font-size:13px;font-weight:500;color:#1c1c1e;margin-bottom:6px;margin-top:14px}.drawer-label:first-child{margin-top:0}.drawer-select,.drawer-input{width:100%;padding:10px 12px;border:1px solid #e5e5ea;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box}.drawer-select:focus,.drawer-input:focus{border-color:#007aff}.drawer-submit-btn{width:100%;margin-top:20px;padding:12px;background:#007aff;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.drawer-submit-btn:hover{background:#0066d6}.marketplace-view{flex:1;overflow-y:auto;padding:20px 24px;background:#f7f8fc}.market-header{margin-bottom:24px}.market-header h2{font-size:18px;font-weight:600;color:#1c1c1e;margin:0 0 6px;display:flex;align-items:center;gap:8px}.market-subtitle{font-size:14px;color:#8e8e93;margin:0}.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.market-grid:has(.draft-card){grid-template-columns:1fr;gap:8px}.market-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #0000000f;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.market-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.market-card-cover{height:0;padding-bottom:56.25%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.market-card-cover>*{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.market-card-cover img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transform:none}.market-card-placeholder{color:#ffffff80}.market-card-body{padding:12px;display:flex;flex-direction:column;flex:1}.market-card-title{font-size:14px;font-weight:600;color:#1c1c1e;margin:0 0 6px}.market-card-desc{font-size:12px;color:#8e8e93;margin:0 0 12px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.market-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.market-tag{padding:2px 8px;background:#f0f0f5;border-radius:6px;font-size:11px;color:#636366}.market-steps{font-size:11px;color:#8e8e93}.market-card-btn{width:100%;padding:7px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.market-card-btn:hover{background:#0066d6}.market-card-btn.free{background:#34c759}.market-card-btn.practice{background:#fff;color:#007aff;border:1.5px solid #007AFF;display:flex;align-items:center;justify-content:center;gap:4px}.market-card-btn.practice:hover{background:#e3f2fd}.market-card-btn.classroom{background:#34c759;display:flex;align-items:center;justify-content:center;gap:4px}.market-card-btn.classroom:hover,.market-card-btn.free:hover{background:#2da44e}.market-card-btn.purchase{background:#ff9500}.market-card-btn.purchase:hover{background:#e68600}.create-submit.purchase{background:#ff9500}.create-submit.purchase:hover{background:#e68600}.pay-modal{width:400px;max-width:92vw;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e;animation:fadeInUp .2s ease;margin-bottom:10vh;overflow:hidden}.pay-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f5}.pay-modal-header h3{margin:0;font-size:16px;font-weight:600}.pay-body{padding:24px 20px;text-align:center}.pay-info{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f7f8fc;border-radius:10px;margin-bottom:20px;font-size:13px;color:#1c1c1e}.pay-amount{font-size:20px;font-weight:700;color:#ff3b30}.pay-qr{display:inline-block;padding:16px;background:#f8f9fa;border-radius:12px;margin-bottom:16px}.pay-hint{font-size:13px;color:#8e8e93;margin:0 0 16px}.pay-polling{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;font-size:12px;color:#8e8e93}.pay-spinner{width:16px;height:16px;border:2px solid #e5e5ea;border-top-color:#007aff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pay-order-no{font-size:11px;color:#c7c7cc;margin:0}.pay-success{padding:40px 20px;text-align:center}.pay-success h3{margin:16px 0 8px;font-size:18px;color:#1c1c1e}.pay-success p{font-size:13px;color:#8e8e93;margin:0 0 24px}.pay-success .create-submit{min-width:140px}.market-loading,.market-empty{text-align:center;color:#8e8e93;padding:80px 20px;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:8px}.market-header-row{display:flex;justify-content:space-between;align-items:center}.market-tabs{display:flex;background:#f0f0f5;border-radius:10px;padding:3px;gap:2px}.market-tab{display:flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:8px;background:transparent;font-size:14px;font-weight:500;color:#8e8e93;cursor:pointer;transition:all .15s}.market-tab:hover{color:#3c3c43}.market-tab.active{background:#fff;color:#1c1c1e;font-weight:600;box-shadow:0 1px 4px #00000014}.market-header-btns{display:flex;gap:8px}.market-draft-btn{padding:8px 14px;background:#fff;color:#3c3c43;border:1.5px solid #e5e5ea;border-radius:8px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;transition:all .15s}.market-draft-btn:hover{border-color:#c7c7cc;background:#f5f5f7}.market-draft-btn.active{background:#007aff;color:#fff;border-color:#007aff}.market-search-inline{position:relative;display:flex;align-items:center}.market-search-inline .market-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#8e8e93;pointer-events:none}.market-search-inline .market-search-input{width:180px;padding:7px 30px 7px 32px;border:1.5px solid #e5e5ea;border-radius:8px;font-size:13px;background:#fff;outline:none;box-sizing:border-box;transition:width .2s,border-color .15s}.market-search-inline .market-search-input:focus{border-color:#007aff;width:240px}.market-search-inline .market-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:#8e8e93;cursor:pointer;padding:2px;display:flex}.sp-banner-carousel{padding:20px 24px 12px;overflow:hidden}.sp-banner-track{position:relative;height:150px;display:flex;align-items:center;justify-content:center}.sp-banner-slide{position:absolute;width:18%;height:120px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;text-align:center;line-height:1.4;cursor:pointer;overflow:hidden;transition:left .5s ease,transform .5s ease,opacity .5s ease,box-shadow .5s ease}.sp-banner-slide:hover{filter:brightness(1.05)}.sp-banner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;border-radius:14px;pointer-events:none;transition:opacity .5s ease}.sp-banner-slide-name{position:relative;z-index:1}.sp-banner-sub{font-size:12px;font-weight:400;margin-top:5px;position:relative;z-index:1;opacity:0;max-height:0;overflow:hidden;transition:opacity .4s ease,max-height .4s ease}.sp-banner-sub.visible{opacity:.85;max-height:24px}.sp-banner-dots{display:flex;gap:6px;justify-content:center;margin-top:10px}.sp-banner-dots span{width:7px;height:7px;border-radius:50%;background:#d1d1d6;cursor:pointer;transition:all .2s}.sp-banner-dots span.active{background:#007aff;width:20px;border-radius:4px}.sp-tabs{display:flex;align-items:center;gap:0;padding:0 24px;border-bottom:1.5px solid #e5e5ea}.sp-tab{padding:11px 18px;font-size:13px;font-weight:500;color:#8e8e93;cursor:pointer;border:none;background:none;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;white-space:nowrap;transition:color .15s}.sp-tab.active{color:#007aff;border-bottom-color:#007aff;font-weight:600}.sp-tab:hover:not(.active){color:#3c3c43}.sp-tabs-spacer{flex:1}.sp-action-btn{padding:6px 14px;font-size:13px;font-weight:500;color:#636366;cursor:pointer;border:none;background:none;white-space:nowrap;display:flex;align-items:center;gap:5px;border-radius:8px;transition:all .15s}.sp-action-btn:hover{background:#f0f0f5;color:#1c1c1e}.sp-action-btn.active{color:#007aff;background:#e3f2fd;font-weight:600}.sp-action-badge{background:#ff3b30;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.sp-create-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid #e5e5ea;background:#fff;color:#007aff;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:6px;flex-shrink:0;transition:background .15s}.sp-create-btn:hover{background:#e3f2fd}.sp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;padding:18px 24px;flex:1}.sp-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 6px #0000000f;cursor:pointer;transition:transform .15s,box-shadow .15s}.sp-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.sp-card-cover{height:100px;display:flex;align-items:center;justify-content:center;color:#ffffffe6;font-size:28px;background-size:cover;background-position:center}.sp-card-body{padding:10px 12px 12px}.sp-card-name{font-size:13px;font-weight:600;color:#1c1c1e;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-card-desc{font-size:11px;color:#8e8e93;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-card-footer{display:flex;justify-content:space-between;align-items:center}.sp-card-price{font-size:12px;font-weight:700}.sp-card-price.free{color:#34c759}.sp-card-price.paid{color:#ff9500}.sp-card-author{font-size:10px;color:#8e8e93}.sp-card-author.official{color:#007aff;font-weight:600}.sp-drafts{display:flex;flex-direction:column;gap:8px;padding:18px 24px}.sp-page-header{display:flex;align-items:center;gap:12px;padding:18px 24px 14px;border-bottom:1px solid #e5e5ea}.sp-page-header h2{font-size:18px;font-weight:700;margin:0;color:#1c1c1e}.sp-back-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1.5px solid #e5e5ea;background:#fff;color:#636366;cursor:pointer;border-radius:50%;transition:all .15s;flex-shrink:0;padding:0}.sp-back-btn:hover{background:#f0f0f5;border-color:#d1d1d6;color:#1c1c1e}.market-draft-count{background:#ff3b30;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.market-create-btn{padding:8px 16px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap}.market-card-actions{display:flex;gap:8px}.market-card-actions .market-card-btn{flex:1}.market-card-edit{padding:8px 12px;background:#f0f0f5;color:#1c1c1e;border:none;border-radius:8px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap}.market-card-edit:hover{background:#e5e5ea}.ce-layout{display:flex;height:100%;overflow:hidden}.ce-left{flex:1;min-width:200px;border-right:1px solid #f0f0f5;display:flex;flex-direction:column;background:#fafafa;overflow-y:auto}.ce-left-title{padding:16px 16px 8px;font-size:14px;font-weight:700;color:#1c1c1e}.ce-skill-group{padding:0 12px 14px}.ce-skill-group-title{display:flex;align-items:center;gap:6px;padding:10px 6px 6px;font-size:11px;font-weight:700;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px}.ce-skill-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:#fff;font-size:13px;color:#1c1c1e;transition:all .15s;text-align:left;box-shadow:0 1px 3px #0000000a;margin-bottom:4px}.ce-skill-item:hover{background:#f5f5f7}.ce-skill-item.ai:hover{background:#e3f2fd}.ce-skill-item.student:hover{background:#fff3e0}.ce-skill-item.plugin:hover{background:#e8f5e9}.ce-skill-item.teacher:hover{background:#f3e5f5}.ce-skill-icon{width:32px;height:32px;border-radius:8px;background:#f0f0f5;display:flex;align-items:center;justify-content:center;color:#636366;flex-shrink:0}.ce-skill-item.ai .ce-skill-icon{background:#e3f2fd;color:#007aff}.ce-skill-item.student .ce-skill-icon{background:#fff3e0;color:#ff9500}.ce-skill-item.plugin .ce-skill-icon{background:#e8f5e9;color:#34c759}.ce-skill-item.teacher .ce-skill-icon{background:#f3e5f5;color:#af52de}.ce-skill-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ce-skill-name{font-size:13px;font-weight:500}.ce-skill-desc{font-size:11px;color:#aeaeb2;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ce-skill-add-btn{padding:3px 10px;border:none;border-radius:5px;color:#fff;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;opacity:0;transition:opacity .15s}.ce-skill-item:hover .ce-skill-add-btn{opacity:1}.ce-skill-add-btn:hover{opacity:.85}.ce-center{flex:1.5;min-width:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid #f0f0f5}.ce-center-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #f0f0f5;flex-shrink:0;background:#fff}.ce-center-info h3{margin:0;font-size:15px;font-weight:600}.ce-step-count{font-size:12px;color:#8e8e93}.ce-center-actions{display:flex;gap:8px}.ce-btn-back{display:flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid #e5e5ea;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;color:#3c3c43}.ce-btn-back:hover{background:#f5f5f7}.ce-btn-save{display:flex;align-items:center;gap:4px;padding:6px 16px;border:none;border-radius:8px;background:#007aff;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.ce-btn-save:hover{opacity:.9}.ce-btn-save:disabled{background:#c7c7cc;cursor:not-allowed}.ce-timeline{flex:1;overflow-y:auto;padding:16px 20px}.ce-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#c7c7cc;gap:8px}.ce-empty p{font-size:14px;margin:0}.ce-tl-item{display:flex;gap:12px;min-height:60px}.ce-tl-rail{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0}.ce-tl-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.ce-tl-dot.teacher{background:#007aff}.ce-tl-dot.student{background:#ff9500}.ce-tl-line{flex:1;width:2px;background:#e5e5ea;min-height:12px}.ce-tl-card{flex:1;border:1.5px solid #e5e5ea;border-radius:10px;background:#fff;margin-bottom:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s;overflow:hidden}.ce-tl-card:hover{border-color:#c7c7cc}.ce-tl-card.selected{box-shadow:0 0 0 2px #007aff26}.ce-tl-card.selected.teacher{border-color:#007aff}.ce-tl-card.selected.student{border-color:#ff9500}.ce-tl-card-top{display:flex;align-items:center;gap:8px;padding:10px 12px}.ce-tl-role-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0}.ce-tl-role-tag.teacher{background:#e3f2fd;color:#1565c0}.ce-tl-role-tag.student{background:#fff3e0;color:#e65100}.ce-tl-type-name{font-size:12px;color:#8e8e93;flex-shrink:0}.ce-tl-title{font-size:13px;font-weight:500;color:#1c1c1e;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ce-tl-card-ops{display:flex;gap:2px;opacity:0;transition:opacity .15s}.ce-tl-card:hover .ce-tl-card-ops,.ce-tl-card.selected .ce-tl-card-ops{opacity:1}.ce-tl-card-ops button{width:24px;height:24px;border:none;border-radius:4px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#8e8e93}.ce-tl-card-ops button:hover{background:#f0f0f5;color:#1c1c1e}.ce-tl-card-ops button.danger:hover{background:#ffebee;color:#c62828}.ce-tl-card-ops button:disabled{opacity:.3;cursor:not-allowed}.ce-tl-preview{padding:0 12px 10px;font-size:12px;color:#8e8e93;line-height:1.4}.ce-tl-edit{padding:12px;border-top:1px solid #f0f0f5;display:flex;flex-direction:column;gap:10px;background:#fafafa}.ce-form-row{display:flex;gap:10px}.ce-form-field{display:flex;flex-direction:column;gap:4px}.ce-form-field label{font-size:12px;font-weight:600;color:#3c3c43}.ce-form-field input,.ce-form-field select,.ce-form-field textarea{padding:8px 12px;border:1.5px solid #e5e5ea;border-radius:8px;font-size:13px;font-family:inherit;outline:none;background:#fff;transition:border-color .15s;width:100%;box-sizing:border-box}.ce-form-field input:focus,.ce-form-field select:focus,.ce-form-field textarea:focus{border-color:#007aff;box-shadow:0 0 0 2px #007aff1a}.ce-step-linker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.ce-link-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;font-size:12px;cursor:pointer;background:#f5f5f5}.ce-link-item.active{background:#e3f2fd;color:#007aff}.ce-link-item input{width:14px;height:14px}.ce-link-idx{display:inline-flex;width:18px;height:18px;border-radius:50%;background:#ddd;color:#333;font-size:10px;align-items:center;justify-content:center}.ce-link-item.active .ce-link-idx{background:#007aff;color:#fff}.ce-switch{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.ce-switch input{width:auto}.ce-right{flex:1.2;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#f5f5f7}.ce-right-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e5ea;background:#fff;flex-shrink:0}.ce-right-title{font-size:14px;font-weight:600;color:#1c1c1e}.ce-right-hint{font-size:12px;color:#8e8e93}.ce-preview-chat{flex:1;overflow-y:auto;padding:16px}.ce-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#c7c7cc;gap:8px}.ce-preview-empty p{font-size:13px;margin:0}.ce-pv-step{margin-bottom:4px;transition:opacity .2s;cursor:pointer}.ce-pv-step.future{opacity:.3}.ce-pv-step.active{opacity:1}.ce-pv-divider{display:flex;align-items:center;gap:10px;margin:12px 0 10px}.ce-pv-divider-line{flex:1;height:1px;background:#e5e5ea}.ce-pv-divider-tag{font-size:11px;font-weight:600;color:#8e8e93;white-space:nowrap}.ce-pv-divider-tag.teacher{color:#007aff}.ce-pv-divider-tag.student{color:#ff9500}.ce-pv-step.active .ce-pv-divider-tag{color:#34c759}.ce-pv-student-area{margin-left:44px;padding:12px;border:1.5px solid #FFE0B2;border-radius:10px;background:#fff8e1}.ce-pv-student-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#e65100;margin-bottom:8px}.ce-pv-step-btns{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px 44px}.ce-pv-action{margin:8px 0 4px 44px;padding:16px;border:2px dashed #e5e5ea;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:8px;color:#c7c7cc;font-size:13px;background:#fff}.ce-pv-student-area .ce-pv-action{margin:0;border-color:#ffe0b2}.ce-pv-auto-area{margin-left:44px;padding:12px;border:1.5px solid #C8E6C9;border-radius:10px;background:#e8f5e9}.ce-pv-auto-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#2e7d32;margin-bottom:6px}.ce-pv-auto-desc{display:flex;align-items:center;gap:8px;font-size:13px;color:#1b5e20}.ce-pv-auto-desc span{flex:1}.ce-preview-input{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #e5e5ea;background:#fff;flex-shrink:0}.ce-preview-input-box{flex:1;padding:10px 14px;border:1px solid #e5e5ea;border-radius:20px;font-size:14px;color:#c7c7cc;background:#f5f5f7}.ce-preview-send{width:36px;height:36px;border-radius:50%;background:#007aff;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:default;flex-shrink:0}.editor-step-card{background:#fff;border:1px solid #f0f0f5;border-radius:12px;margin-bottom:12px;overflow:hidden}.editor-step-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fafafa;border-bottom:1px solid #f0f0f5}.editor-step-num{color:#8e8e93;font-size:13px;font-weight:600;min-width:28px}.editor-step-select{padding:6px 10px;border:1px solid #e5e5ea;border-radius:6px;font-size:13px;outline:none}.editor-step-title{flex:1;padding:6px 10px;border:1px solid #e5e5ea;border-radius:6px;font-size:13px;outline:none}.editor-step-actions{display:flex;gap:4px}.editor-step-actions button{width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#8e8e93}.editor-step-actions button:hover{background:#f0f0f5;color:#1c1c1e}.editor-step-actions button.danger:hover{background:#ffe5e5;color:#ff3b30}.editor-step-actions button:disabled{opacity:.3;cursor:not-allowed}.editor-step-body{padding:14px 16px}.editor-field{margin-bottom:12px}.editor-field:last-child{margin-bottom:0}.editor-field label{display:block;font-size:12px;font-weight:500;color:#636366;margin-bottom:4px}.editor-field textarea,.editor-field input[type=text],.editor-field input:not([type]){width:100%;padding:8px 12px;border:1px solid #e5e5ea;border-radius:8px;font-size:13px;outline:none;box-sizing:border-box;font-family:inherit}.editor-field textarea:focus,.editor-field input:focus{border-color:#007aff}.editor-switch{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.editor-add-step{text-align:center;padding:20px;border:2px dashed #e5e5ea;border-radius:12px;margin-top:8px}.editor-add-step p{margin:0 0 10px;font-size:13px;font-weight:500;color:#8e8e93}.editor-add-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.editor-add-btns button{padding:6px 12px;border:1px solid #e5e5ea;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;color:#1c1c1e}.editor-add-btns button:hover{background:#f0f0f5;border-color:#007aff;color:#007aff}.skill-category{margin-bottom:20px}.skill-cat-title{font-size:14px;font-weight:600;color:#1c1c1e;margin:0 0 14px}.market-card-author{font-size:11px;color:#8e8e93;margin-bottom:8px}.market-card-badge{position:absolute;top:8px;left:8px;padding:2px 8px;background:#f57f17e6;color:#fff;border-radius:4px;font-size:10px;font-weight:600}.draft-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1.5px solid #e5e5ea;border-radius:12px;transition:border-color .15s,box-shadow .15s}.draft-card:hover{border-color:#c7c7cc;box-shadow:0 2px 8px #0000000f}.draft-card-icon{width:44px;height:44px;border-radius:10px;background:#f0f0f5;display:flex;align-items:center;justify-content:center;color:#8e8e93;flex-shrink:0}.draft-card-info{flex:1;min-width:0}.draft-card-info h4{margin:0 0 3px;font-size:14px;font-weight:600;color:#1c1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-card-info p{margin:0 0 6px;font-size:12px;color:#8e8e93;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-card-meta{display:flex;gap:8px;font-size:11px;color:#aeaeb2}.draft-card-meta span{background:#f5f5f7;padding:2px 6px;border-radius:4px}.draft-card-actions{display:flex;gap:6px;flex-shrink:0}.draft-btn{display:flex;align-items:center;gap:4px;padding:7px 14px;border:1.5px solid #e5e5ea;border-radius:8px;background:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;color:#3c3c43}.draft-btn:hover{background:#f5f5f7}.draft-btn.primary{background:#007aff;color:#fff;border-color:#007aff}.draft-btn.primary:hover{opacity:.9}.draft-btn.success{color:#34c759;border-color:#34c759}.draft-btn.success:hover{background:#e8f5e9}.draft-btn.danger{color:#ff3b30;border-color:transparent;padding:7px 8px}.draft-btn.danger:hover{background:#fff5f5;border-color:#ff3b30}.market-card-del{width:34px;height:34px;border:1.5px solid #e5e5ea;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8e8e93;transition:all .15s;flex-shrink:0}.market-card-del:hover{border-color:#ff3b30;color:#ff3b30;background:#fff5f5}.market-card-edit-btn{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:#ffffffe6;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8e8e93;box-shadow:0 1px 4px #0000001f;opacity:1;transition:color .15s;z-index:2}.market-card-edit-btn:hover{color:#007aff}.market-card-badge.draft{background:#8e8e93e6;left:auto;right:8px}.market-card-cover{position:relative}.market-card-rating{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.market-rating-stars{display:flex;align-items:center;gap:1px}.market-rating-num{font-size:12px;font-weight:600;color:#1c1c1e;margin-left:4px}.market-rating-count{font-size:10px;color:#8e8e93}.market-card-more{padding:7px 12px;background:#f0f0f5;color:#636366;border:none;border-radius:8px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:2px;white-space:nowrap;transition:background .15s}.market-card-more:hover{background:#e5e5ea;color:#007aff}.skill-card-ar-btn{position:absolute;top:8px;right:8px;padding:4px 10px;background:#ffffffe6;color:#7b1fa2;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:3px;text-decoration:none;box-shadow:0 1px 4px #0000001a}.skill-card-ar-btn:hover{background:#fff}.skill-card-ar-btn img{display:none}.skill-feature-grid{display:flex;flex-direction:column;gap:12px}.skill-feature-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#f7f8fc;border-radius:10px}.skill-feature-item>div{display:flex;flex-direction:column;gap:2px}.skill-feature-title{font-size:13px;font-weight:600;color:#1c1c1e}.skill-feature-desc{font-size:12px;color:#8e8e93}.create-modal{width:520px;max-width:92vw;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e;animation:fadeInUp .2s ease;margin-bottom:10vh;overflow:hidden}.create-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #f0f0f5}.create-modal-header h3{margin:0;font-size:16px;font-weight:600}.create-modal-body{padding:20px 24px}.create-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.create-field{display:flex;flex-direction:column;gap:4px}.create-field.full{grid-column:1 / -1}.create-field label{font-size:13px;font-weight:500;color:#1c1c1e}.create-field .req{color:#ff3b30}.create-field input,.create-field select,.create-field textarea{padding:9px 12px;border:1px solid #e5e5ea;border-radius:8px;font-size:13px;outline:none;font-family:inherit;box-sizing:border-box;width:100%}.create-field input:focus,.create-field select:focus,.create-field textarea:focus{border-color:#007aff}.create-toggle-row{display:flex;align-items:center;gap:10px}.create-toggle{padding:6px 16px;border:1px solid #e5e5ea;border-radius:20px;background:#f5f5f5;font-size:13px;cursor:pointer;color:#8e8e93;transition:all .15s}.create-toggle.on{background:#007aff;color:#fff;border-color:#007aff}.create-price-input{display:flex;align-items:center;gap:4px;font-size:14px;color:#e65100;font-weight:600}.create-price-input input{width:80px;padding:6px 8px;border:1px solid #e5e5ea;border-radius:6px;font-size:13px;outline:none}.create-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #f0f0f5}.create-cancel{padding:9px 20px;border:1px solid #e5e5ea;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;color:#1c1c1e}.create-cancel:hover{background:#f5f5f5}.create-submit{padding:9px 24px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer}.create-submit:hover{background:#0066d6}.cc-type-cards{display:flex;gap:8px;margin-bottom:16px}.cc-type-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border:2px solid #e5e5ea;border-radius:12px;background:#fafafa;cursor:pointer;transition:all .15s;text-align:center}.cc-type-card:hover{border-color:#c7c7cc;background:#f0f0f5}.cc-type-card.active{border-color:#007aff;background:#e3f2fd}.cc-type-card strong{font-size:14px;color:#1c1c1e}.cc-type-card span{font-size:11px;color:#8e8e93}.cc-type-card.active strong{color:#007aff}.cc-video-section,.cc-doc-section{margin-top:12px;display:flex;flex-direction:column;gap:12px}.market-card-type-tag{position:absolute;bottom:8px;left:8px;display:flex;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;color:#fff}.market-card-type-tag.interactive{background:#007affd9}.market-card-type-tag.video{background:#af52ded9}.market-card-type-tag.doc{background:#34c759d9}.cc-mode-tabs{display:flex;background:#f0f0f5;border-radius:10px;padding:3px;margin-bottom:16px;gap:2px}.cc-mode-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 0;border:none;border-radius:8px;background:transparent;font-size:13px;font-weight:500;color:#8e8e93;cursor:pointer;transition:all .15s}.cc-mode-tab:hover{color:#3c3c43}.cc-mode-tab.active{background:#fff;color:#1c1c1e;font-weight:600;box-shadow:0 1px 4px #00000014}.cc-ai-section{margin-top:12px;display:flex;flex-direction:column;gap:10px}.cc-ai-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.cc-ai-btn:hover{opacity:.9}.cc-ai-btn:disabled{opacity:.5;cursor:not-allowed}.cc-excel-section{margin-top:12px;display:flex;flex-direction:column;gap:12px}.cc-excel-tip{display:flex;align-items:center;gap:12px;font-size:12px;color:#8e8e93}.cc-download-tpl{display:flex;align-items:center;gap:4px;color:#007aff;text-decoration:none;font-weight:500;white-space:nowrap}.cc-download-tpl:hover{text-decoration:underline}.cc-upload-area{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;border:2px dashed #e5e5ea;border-radius:10px;cursor:pointer;color:#8e8e93;font-size:14px;transition:all .15s}.cc-upload-area:hover{border-color:#007aff;color:#007aff;background:#f0f5ff}.cc-preview-steps{margin-top:12px;border:1px solid #f0f0f5;border-radius:10px;overflow:hidden}.cc-preview-title{padding:8px 12px;font-size:12px;font-weight:600;color:#8e8e93;background:#fafafa;border-bottom:1px solid #f0f0f5}.cc-preview-list{max-height:180px;overflow-y:auto}.cc-preview-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12px;border-bottom:1px solid #f8f8f8}.cc-preview-item:last-child{border-bottom:none}.cc-pv-num{width:20px;height:20px;border-radius:50%;background:#007aff;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cc-pv-type{font-size:11px;color:#8e8e93;background:#f0f0f5;padding:2px 6px;border-radius:4px;flex-shrink:0}.cc-pv-title{flex:1;color:#1c1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-body{padding:0!important}.schedule-hero{display:flex;align-items:center;gap:14px;padding:24px 28px 20px;background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-bottom:1px solid #f0f0f5}.schedule-hero-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.schedule-hero-icon.green{background:linear-gradient(135deg,#34c759,#30b350);box-shadow:0 4px 12px #34c7594d}.schedule-hero-icon.orange{background:linear-gradient(135deg,#ff9500,#f08c00);box-shadow:0 4px 12px #ff95004d}.schedule-hero-text{display:flex;flex-direction:column;gap:2px}.schedule-hero-title{font-size:16px;font-weight:600;color:#1c1c1e}.schedule-hero-desc{font-size:13px;color:#8e8e93}.schedule-fields{padding:20px 28px;display:flex;flex-direction:column;gap:18px}.schedule-field{display:flex;flex-direction:column;gap:8px}.schedule-field-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#3c3c43}.schedule-field-label .req{color:#ff3b30;font-size:12px}.schedule-optional{font-size:11px;color:#aeaeb2;font-weight:400;margin-left:2px}.schedule-select-wrap{position:relative}.schedule-select-wrap select{width:100%;padding:11px 36px 11px 14px;border:1.5px solid #e5e5ea;border-radius:10px;font-size:14px;font-family:inherit;outline:none;background:#fafafa;color:#1c1c1e;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,background .15s}.schedule-select-wrap select:focus{border-color:#007aff;background:#fff;box-shadow:0 0 0 3px #007aff1a}.schedule-select-wrap select option[value=""]{color:#aeaeb2}.schedule-select-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(90deg);color:#c7c7cc;pointer-events:none}.schedule-input{width:100%;padding:11px 14px;border:1.5px solid #e5e5ea;border-radius:10px;font-size:14px;font-family:inherit;outline:none;background:#fafafa;color:#1c1c1e;transition:border-color .15s,background .15s;box-sizing:border-box}.schedule-input:focus{border-color:#007aff;background:#fff;box-shadow:0 0 0 3px #007aff1a}.schedule-input::placeholder{color:#c7c7cc}.schedule-datetime{color:#1c1c1e;cursor:pointer}.schedule-datetime::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}.schedule-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px 20px;border-top:1px solid #f0f0f5}.schedule-cancel{padding:10px 22px;border:1.5px solid #e5e5ea;border-radius:10px;background:#fff;font-size:14px;cursor:pointer;color:#3c3c43;font-weight:500;transition:background .15s}.schedule-cancel:hover{background:#f5f5f7}.schedule-submit{padding:10px 28px;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.schedule-submit.green{background:linear-gradient(135deg,#34c759,#30b350);box-shadow:0 2px 8px #34c7594d}.schedule-submit.green:hover{opacity:.9}.schedule-submit.orange{background:linear-gradient(135deg,#ff9500,#f08c00);box-shadow:0 2px 8px #ff95004d}.schedule-submit.orange:hover{opacity:.9}.schedule-submit:active{transform:scale(.97)}.schedule-time-display{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1.5px solid #e5e5ea;border-radius:10px;font-size:14px;background:#fafafa;color:#1c1c1e;cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.schedule-time-display:hover{border-color:#c7c7cc;background:#f5f5f7}.schedule-time-icon{color:#8e8e93;flex-shrink:0}.time-picker-panel{margin-top:8px;border:1.5px solid #e5e5ea;border-radius:12px;background:#fff;overflow:visible;box-shadow:0 4px 16px #00000014}.tp-date-section{position:relative;padding:14px 16px 12px}.tp-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tp-section-title{font-size:12px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px}.tp-cal-toggle{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #e5e5ea;border-radius:6px;background:#fafafa;cursor:pointer;color:#8e8e93;font-size:11px;font-weight:500;transition:all .15s}.tp-cal-toggle:hover{border-color:#c7c7cc;background:#f0f0f5;color:#1c1c1e}.tp-cal-toggle.active{background:#007aff;border-color:#007aff;color:#fff}.tp-date-chips-row{display:flex;align-items:center;gap:4px}.tp-chips-arrow{width:24px;height:24px;border:none;border-radius:6px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8e8e93;flex-shrink:0;transition:all .15s}.tp-chips-arrow:hover:not(:disabled){background:#f0f0f5;color:#1c1c1e}.tp-chips-arrow:disabled{opacity:.25;cursor:not-allowed}.tp-date-chips{display:flex;gap:6px;flex:1;min-width:0}.tp-date-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border:1.5px solid #e5e5ea;border-radius:10px;background:#fafafa;cursor:pointer;flex:1;min-width:0;transition:all .15s}.tp-date-chip:hover{border-color:#c7c7cc;background:#f0f0f5}.tp-date-chip.active{background:#007aff;border-color:#007aff;color:#fff}.tp-chip-label{font-size:13px;font-weight:600}.tp-chip-date{font-size:11px;opacity:.7}.tp-cal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999}.tp-cal-float{position:fixed;top:50%;left:50%;transform:translate(-50%,-55%);width:300px;background:#fff;border:1px solid #e5e5ea;border-radius:14px;padding:16px;box-shadow:0 12px 40px #0003;z-index:1001;animation:fadeInUp .15s ease}.tp-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tp-cal-title{font-size:14px;font-weight:600;color:#1c1c1e}.tp-cal-nav{width:28px;height:28px;border:none;border-radius:6px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8e8e93;transition:all .15s}.tp-cal-nav:hover{background:#e5e5ea;color:#1c1c1e}.tp-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.tp-cal-weekdays span{text-align:center;font-size:11px;font-weight:600;color:#aeaeb2;padding:4px 0}.tp-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.tp-cal-empty{aspect-ratio:1}.tp-cal-day{aspect-ratio:1;border:none;border-radius:8px;background:transparent;font-size:13px;cursor:pointer;color:#1c1c1e;display:flex;align-items:center;justify-content:center;transition:all .15s}.tp-cal-day:hover:not(:disabled){background:#e5e5ea}.tp-cal-day.today{font-weight:700;color:#007aff}.tp-cal-day.active{background:#007aff;color:#fff;font-weight:600}.tp-cal-day.past{color:#d1d1d6;cursor:not-allowed}.tp-bottom-row{display:flex;align-items:center;gap:10px;padding:12px 16px 14px;border-top:1px solid #f0f0f5}.tp-time-select-wrap{position:relative;flex:1}.tp-time-select{width:100%;padding:9px 14px 9px 32px;border:1.5px solid #e5e5ea;border-radius:10px;font-size:14px;font-family:inherit;outline:none;background:#fafafa;color:#1c1c1e;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,background .15s}.tp-time-select:focus{border-color:#007aff;background:#fff;box-shadow:0 0 0 3px #007aff1a}.tp-time-select-icon-left{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#c7c7cc;pointer-events:none}.tp-confirm-btn{padding:9px 22px;background:#007aff;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;flex-shrink:0}.tp-confirm-btn:hover{opacity:.9}.tp-confirm-btn:disabled{background:#c7c7cc;cursor:not-allowed}.market-filter-btn{padding:6px 14px;border:1px solid #e5e5ea;border-radius:8px;background:#fff;font-size:12px;cursor:pointer;color:#1c1c1e;white-space:nowrap}.market-filter-btn.active{background:#e8f0fe;border-color:#007aff;color:#007aff}.course-detail-modal{width:500px;max-width:92vw;max-height:85vh;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e;animation:fadeInUp .2s ease;margin-bottom:10vh;overflow:hidden;display:flex;flex-direction:column}.course-detail-cover{height:160px;position:relative;display:flex;align-items:flex-start;justify-content:flex-end;padding:12px}.course-detail-official{position:absolute;bottom:12px;left:12px;padding:4px 10px;background:#f57f17e6;color:#fff;border-radius:6px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px}.course-detail-close{width:32px;height:32px;border-radius:50%;background:#0006;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.course-detail-body{padding:20px 24px;overflow-y:auto;flex:1}.course-detail-body h2{margin:0 0 8px;font-size:18px;font-weight:600;color:#1c1c1e}.course-detail-desc{font-size:13px;color:#636366;margin:0;line-height:1.7}.course-detail-section{margin-bottom:20px}.course-detail-section h4{font-size:14px;font-weight:600;margin:0 0 10px;color:#1c1c1e;display:flex;align-items:center;gap:6px}.section-count{font-size:11px;font-weight:400;color:#8e8e93}.course-detail-rating-overview{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:10px 14px;background:#fffde7;border-radius:10px}.course-detail-rating-stars{display:flex;align-items:center;gap:2px}.course-detail-rating-num{font-size:16px;font-weight:700;color:#1c1c1e;margin-left:6px}.course-detail-rating-count{font-size:12px;color:#8e8e93;display:flex;align-items:center;gap:3px}.course-detail-info-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.course-detail-info-item{background:#f7f8fc;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.info-label{font-size:11px;color:#8e8e93}.info-value{font-size:13px;font-weight:600;color:#1c1c1e}.course-detail-provider{display:flex;align-items:center;gap:10px}.provider-avatar{width:36px;height:36px;border-radius:50%;background:#f0f0f5;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.provider-avatar img{width:100%;height:100%;object-fit:cover}.provider-info{display:flex;align-items:center;gap:6px}.provider-name{font-size:13px;font-weight:500;color:#1c1c1e}.provider-badge{padding:1px 6px;background:#fff3e0;color:#f57f17;border-radius:4px;font-size:10px;font-weight:600}.course-detail-highlights{list-style:none;margin:0;padding:0}.course-detail-highlights li{font-size:13px;color:#3a3a3c;padding:4px 0;display:flex;align-items:center;gap:6px}.course-detail-steps{max-height:240px;overflow-y:auto}.course-step-row{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;color:#3a3a3c;border-bottom:1px solid #f5f5f7}.course-step-row:last-child{border-bottom:none}.course-step-num{width:24px;height:24px;border-radius:50%;background:#e8f0fe;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#007aff;flex-shrink:0}.course-step-info{display:flex;flex-direction:column;gap:2px}.course-step-title{font-size:13px;color:#1c1c1e}.course-step-type{font-size:11px;color:#8e8e93}.course-detail-rate-box{background:#f7f8fc;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.rate-label{font-size:12px;color:#8e8e93}.rate-stars-input{display:flex;gap:4px}.rate-comment-input{padding:8px 10px;border:1px solid #e5e5ea;border-radius:8px;font-size:13px;outline:none;font-family:inherit}.rate-comment-input:focus{border-color:#007aff}.rate-submit-btn{align-self:flex-end;padding:6px 16px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:12px;cursor:pointer}.rate-submit-btn:disabled{opacity:.5;cursor:not-allowed}.course-detail-reviews{display:flex;flex-direction:column;gap:10px}.review-item{padding:10px 0;border-bottom:1px solid #f0f0f5}.review-item:last-child{border-bottom:none}.review-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.review-user{font-size:12px;font-weight:500;color:#1c1c1e}.review-stars{display:flex;gap:1px}.review-comment{font-size:12px;color:#636366;margin:0;line-height:1.5}.course-detail-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #f0f0f5}.msg-action-tip{position:relative}.msg-action-tip:before{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:5px 12px;background:#000c;color:#fff;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:50}.msg-action-tip:hover:before{opacity:1}.msg-action-tip.tip-below:before{bottom:auto;top:100%;margin-bottom:0;margin-top:6px}.tts-toggle{color:#1c1c1e}.logout-modal{background:#fff;border-radius:16px;padding:28px 24px 20px;width:320px;max-width:90vw;text-align:center;box-shadow:0 20px 60px #0000002e;animation:fadeInUp .2s ease;margin-bottom:10vh}.logout-modal h3{margin:0 0 8px;font-size:17px;font-weight:600;color:#1c1c1e}.logout-modal p{margin:0 0 24px;font-size:13px;color:#8e8e93}.logout-actions{display:flex;gap:10px}.logout-cancel{flex:1;padding:10px;border:1px solid #e5e5ea;border-radius:10px;background:#fff;font-size:14px;cursor:pointer;color:#1c1c1e}.logout-cancel:hover{background:#f5f6fa}.logout-confirm{flex:1;padding:10px;border:none;border-radius:10px;background:#ff3b30;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.logout-confirm:hover{background:#e0332a}.msg-media-groups{display:flex;flex-direction:column;gap:12px;width:100%}.media-group-card{border:1.5px solid #e5e5ea;border-radius:14px;overflow:hidden;background:#fff}.media-group-title{padding:10px 14px;font-size:15px;font-weight:700;color:#1c1c1e;background:#f5f5f7;border-bottom:1px solid #f0f0f5;text-align:center}.media-group-row{display:grid;grid-template-columns:1fr 1fr;height:160px}.media-group-img{display:flex;align-items:center;justify-content:center;background:#fafafa;border-right:1px solid #f0f0f5;padding:12px;overflow:hidden}.media-group-img img{max-width:100%;max-height:100%;object-fit:contain}.media-group-video{display:flex;align-items:center;justify-content:center;padding:8px;overflow:hidden}.media-group-video video{width:100%;height:100%;object-fit:cover;border-radius:8px}.ai-img-placeholder{position:relative;width:200px;height:200px;border-radius:16px;background:#f0f0f0;overflow:hidden;display:flex;align-items:center;justify-content:center}.ai-img-placeholder-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;color:#999;font-size:13px}.ai-img-placeholder-content svg{opacity:.4;animation:ai-img-pulse 1.5s ease-in-out infinite}@keyframes ai-img-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.ai-img-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%);animation:ai-img-shimmer 1.8s ease-in-out infinite}@keyframes ai-img-shimmer{0%{left:-100%}to{left:100%}}.bugubot-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:linear-gradient(135deg,#e0f7fa,#b2ebf2);border:1.5px solid #80DEEA;border-radius:14px}.bugubot-icon{width:48px;height:48px;border-radius:50%;background:#00bcd4;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:bugubotPulse 2s ease-in-out infinite}@keyframes bugubotPulse{0%,to{box-shadow:0 0 #00bcd466}50%{box-shadow:0 0 0 10px #00bcd400}}.bugubot-info{flex:1}.bugubot-title{display:block;font-size:15px;font-weight:700;color:#006064;margin-bottom:4px}.bugubot-desc{display:block;font-size:13px;color:#00838f;line-height:1.4}.bugubot-dots{display:flex;gap:4px;margin-top:8px}.bugubot-dots span{width:6px;height:6px;border-radius:50%;background:#00bcd4;animation:dotBounce 1.2s ease-in-out infinite}.bugubot-dots span:nth-child(2){animation-delay:.2s}.bugubot-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.bugubot-hint{font-size:12px;color:#8e8e93;margin:8px 0;text-align:center}.login-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9999;overflow-y:auto;-webkit-overflow-scrolling:touch}.login-modal{background:#fff;border-radius:20px;padding:36px 32px;width:380px;max-width:92vw;box-shadow:0 20px 60px #0000002e;position:relative;margin-bottom:10vh}.login-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;color:#8e8e93;cursor:pointer;padding:4px;border-radius:6px}.login-modal-close:hover{background:#f0f0f5}.login-modal-logo{text-align:center;font-size:40px;margin-bottom:8px}.login-modal-tabs{display:flex;justify-content:center;gap:0;margin-bottom:24px;border-bottom:1.5px solid #e5e5ea}.login-modal-tabs button{padding:10px 28px;font-size:14px;font-weight:500;color:#8e8e93;background:none;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;cursor:pointer;transition:color .15s}.login-modal-tabs button.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.login-modal-field{display:flex;align-items:center;gap:10px;margin-bottom:12px;border:1.5px solid #e5e5ea;border-radius:10px;padding:0 12px;transition:border-color .2s}.login-modal-field:focus-within{border-color:#667eea}.login-modal-field svg{color:#8e8e93;flex-shrink:0}.login-modal-field input{flex:1;border:none;outline:none;padding:12px 0;font-size:14px;background:transparent}.login-modal-error{color:#ff3b30;font-size:12px;margin:4px 0 0}.login-modal-btn{width:100%;padding:12px;margin-top:16px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 12px #667eea4d}.login-modal-btn:hover{transform:translateY(-1px)}.login-modal-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.guest-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#667eea15,#764ba215);border-bottom:1px solid #e5e5ea;font-size:13px;color:#636366}.guest-bar-btn{color:#667eea;font-weight:600;background:none;border:none;cursor:pointer;font-size:13px}.guest-bar-btn:hover{text-decoration:underline}.sidebar-login-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #667eea4d}.sidebar-login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.topbar-login-btn{padding:7px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:18px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #667eea4d}.topbar-login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.about-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:9999;padding-bottom:20px}.about-modal{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:400px;padding:24px 20px 32px;position:relative;margin-bottom:0;box-shadow:0 -4px 24px #0000001a}.about-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;color:#8e8e93;cursor:pointer;padding:4px;border-radius:6px}.about-modal-close:hover{background:#f0f0f5}.about-modal-header{text-align:center;padding-bottom:20px;border-bottom:1px solid #f0f0f5;margin-bottom:16px}.about-modal-logo{font-size:40px;margin-bottom:8px}.about-modal-header h3{font-size:18px;font-weight:700;color:#1c1c1e;margin:0 0 4px}.about-modal-header p{font-size:13px;color:#8e8e93;margin:0}.about-modal-menu{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.about-modal-item{display:flex;align-items:center;gap:10px;padding:12px 14px;color:#1c1c1e;text-decoration:none;border-radius:10px;transition:background .15s;font-size:14px}.about-modal-item:hover{background:#f5f5f7}.about-modal-item svg{color:#8e8e93}.about-modal-footer{padding-top:16px;border-top:1px solid #f0f0f5;text-align:center}.about-modal-footer p{font-size:12px;color:#8e8e93;margin:6px 0;line-height:1.5}.about-company{font-weight:500;color:#636366;margin-top:10px!important}.about-police{display:flex;align-items:center;justify-content:center;gap:4px}.sp-card-start{display:flex;align-items:center;gap:4px;padding:4px 12px;background:#007aff;color:#fff;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s}.sp-card-start:hover{background:#0066d6}.slash-menu{position:absolute;bottom:100%;left:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;border:1px solid #e5e5ea;padding:6px 0;z-index:50;max-height:260px;overflow-y:auto;margin-bottom:6px;animation:slashMenuIn .15s ease}@keyframes slashMenuIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.slash-menu-header{padding:8px 16px 6px;font-size:11px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px}.slash-menu-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .12s}.slash-menu-item:hover{background:#f5f5f7}.slash-menu-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.slash-menu-text{flex:1;min-width:0}.slash-menu-name{font-size:14px;font-weight:600;color:#1c1c1e}.slash-menu-desc{font-size:12px;color:#8e8e93;margin-top:1px}.slash-menu-empty{padding:16px;text-align:center;font-size:13px;color:#8e8e93}.input-textarea-row{display:flex;align-items:flex-start;gap:6px;width:100%}.input-textarea-row .input-textarea{flex:1;min-width:0}.skill-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 7px;border-radius:8px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;flex-shrink:0;margin-top:2px;line-height:1;animation:skillTagIn .15s ease}@keyframes skillTagIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.skill-tag svg{flex-shrink:0}.skill-tag-close{display:flex;align-items:center;justify-content:center;background:#ffffff4d;border:none;border-radius:50%;width:16px;height:16px;padding:0;cursor:pointer;color:#fff;margin-left:2px;transition:background .12s}.skill-tag-close:hover{background:#ffffff80}.notif-btn-wrap{position:relative}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;border-radius:8px;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.notif-panel{position:absolute;bottom:0;left:calc(100% + 6px);width:340px;max-height:440px;background:#fff;border-radius:16px;box-shadow:0 12px 40px #00000026,0 0 0 1px #0000000a;z-index:200;display:flex;flex-direction:column;overflow:hidden;animation:notifPanelIn .2s ease}@keyframes notifPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.notif-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid #f0f0f5}.notif-panel-header span{font-size:16px;font-weight:700;color:#1c1c1e}.notif-read-all{background:none;border:none;color:#007aff;font-size:13px;font-weight:500;cursor:pointer;padding:4px 10px;border-radius:6px;transition:background .12s}.notif-read-all:hover{background:#f0f5ff}.notif-panel-list{flex:1;overflow-y:auto;overscroll-behavior:contain}.notif-empty{text-align:center;padding:48px 16px;color:#aeaeb2;font-size:13px}.notif-item{display:flex;gap:12px;padding:14px 18px;cursor:pointer;transition:background .12s;border-bottom:1px solid #f8f8fa}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:#f9f9fb}.notif-item.unread{background:#f0f6ff}.notif-item.unread:hover{background:#e6f0ff}.notif-item-dot{width:8px;padding-top:6px;flex-shrink:0}.notif-item-dot span{display:block;width:7px;height:7px;border-radius:50%;background:#007aff}.notif-item-body{flex:1;min-width:0}.notif-item-title{font-size:14px;font-weight:600;color:#1c1c1e;margin-bottom:3px}.notif-item-content{font-size:13px;color:#636366;line-height:1.5;margin-bottom:5px}.notif-item-time{font-size:11px;color:#c7c7cc}.ce-content-groups{display:flex;flex-direction:column;gap:8px}.ce-content-group-card{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:10px;position:relative}.ce-content-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ce-content-group-idx{font-size:12px;font-weight:600;color:#666}.ce-content-group-del{background:none;border:none;cursor:pointer;color:#999;padding:2px;border-radius:4px}.ce-content-group-del:hover{color:#ff3b30;background:#fff0f0}.ce-media-row{display:flex;align-items:center;gap:6px;margin-top:4px}.ce-media-row input{flex:1;padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px}.ce-media-row button{background:none;border:none;cursor:pointer;color:#999;padding:2px}.ce-media-row button:hover{color:#ff3b30}.ce-media-add-row{display:flex;gap:8px;margin-top:6px}.ce-media-add-row button{display:flex;align-items:center;gap:4px;background:none;border:1px dashed #ccc;border-radius:4px;padding:3px 8px;font-size:11px;color:#666;cursor:pointer}.ce-media-add-row button:hover{border-color:#007aff;color:#007aff}.ce-add-group-btn{display:flex;align-items:center;justify-content:center;gap:4px;background:none;border:1px dashed #ccc;border-radius:8px;padding:8px;font-size:12px;color:#666;cursor:pointer;width:100%}.ce-add-group-btn:hover{border-color:#007aff;color:#007aff}.push-content-step .step-push-label{color:#af52de}.push-content-step .step-push-empty{color:#999;font-size:12px;text-align:center;padding:12px}.push-content-preview-card{padding:0;margin-bottom:6px;background:transparent;border:none;border-radius:0}.push-preview-text{font-size:13px;color:#333;line-height:1.5;margin-bottom:6px;white-space:pre-wrap}.push-preview-img,.push-preview-video{width:100%;height:140px;object-fit:cover;border-radius:8px;margin-bottom:4px}.step-style-btn.push{background:#af52de;color:#fff;display:flex;align-items:center;gap:4px}.step-style-btn.push:hover{background:#9b3dc8}.msg-push-content{display:flex;flex-direction:column;gap:8px}.msg.assistant:has(.msg-push-content) .msg-bubble{background:transparent!important;box-shadow:none!important;padding:0}.push-content-card{padding:0;background:transparent;border:none;border-radius:0}.push-content-text{font-size:14px;color:#333;line-height:1.6;white-space:pre-wrap;margin-bottom:4px}.push-content-media-row{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.push-content-img,.push-content-video{width:100%;height:180px;object-fit:cover;border-radius:8px}.push-content-media-row>img,.push-content-media-row>video{flex:1;min-width:0}.ce-tl-item.teacher .ce-tl-dot{background:#af52de}.ce-skill-item.teacher{border-left:3px solid #AF52DE}.ce-tl-item.plugin .ce-tl-dot{background:#34c759}.ce-upload-btn{background:#f0f4ff;border:1px solid #d6e4ff;border-radius:4px;padding:2px 6px;font-size:11px;color:#007aff;cursor:pointer;white-space:nowrap}.ce-upload-btn:hover{background:#d6e4ff}.ce-upload-btn:disabled{opacity:.5;cursor:not-allowed}.ce-media-thumb{width:32px;height:32px;border-radius:4px;object-fit:cover;flex-shrink:0}.avatar-notif-badge{position:absolute;top:-4px;right:-6px;min-width:16px;height:16px;background:#ff3b30;border-radius:8px;border:2px solid #fff;color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.sidebar.collapsed .sidebar-footer-row,.sidebar.collapsed .sidebar-user{justify-content:center}.ce-pv-push-area{background:#f9f0ff;border:1px solid #D3ADF7;border-radius:10px;padding:10px;margin-top:4px}.ce-pv-push-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#af52de;margin-bottom:6px}.ce-pv-push-empty{font-size:12px;color:#999;text-align:center;padding:8px 0}.ce-pv-push-card{padding:0;margin-bottom:4px;background:transparent;border:none;border-radius:0}.ce-pv-push-card:last-child{margin-bottom:0}.ce-pv-push-text{font-size:13px;color:#333;line-height:1.5;white-space:pre-wrap}.ce-pv-push-media-row{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.ce-pv-push-img,.ce-pv-push-video{width:100%;height:100px;object-fit:cover;border-radius:6px}.ce-pv-push-media-row>img,.ce-pv-push-media-row>video{flex:1;min-width:0}.ce-skill-item.bugubot:hover{background:#fff0f3}.ce-skill-item.bugubot .ce-skill-icon{background:#fff0f3;color:#ff6482}.ce-tl-item.bugubot .ce-tl-dot{background:#ff6482}.ce-skill-item.bugubot{border-left:3px solid #FF6482}.ce-skill-item.create:hover{background:#fff3e0}.ce-skill-item.create .ce-skill-icon{background:#fff3e0;color:#ff9500}.ce-tl-item.create .ce-tl-dot{background:#ff9500}.ce-skill-item.output:hover{background:#ede7f6}.ce-skill-item.output .ce-skill-icon{background:#ede7f6;color:#5856d6}.ce-tl-item.output .ce-tl-dot{background:#5856d6}.ce-skill-item.media:hover{background:#e0f7fa}.ce-skill-item.media .ce-skill-icon{background:#e0f7fa;color:#30b0c7}.ce-tl-item.media .ce-tl-dot{background:#30b0c7}.ce-skill-item.analysis:hover{background:#e8f5e9}.ce-skill-item.analysis .ce-skill-icon{background:#e8f5e9;color:#34c759}.ce-tl-item.analysis .ce-tl-dot{background:#34c759}.generic-skill-ui{padding:4px 0}.gsk-waiting{display:flex;align-items:center;gap:8px;color:#666;font-size:13px;padding:12px;background:#f8f9fa;border-radius:10px}.gsk-executing{display:flex;align-items:center;gap:8px;color:#007aff;font-size:13px;padding:12px;background:#f0f4ff;border-radius:10px}.gsk-spin{animation:gsk-rotate 1s linear infinite}@keyframes gsk-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gsk-trigger-btn{display:block;width:100%;margin-top:8px;padding:10px;border:none;border-radius:10px;background:#007aff;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.gsk-trigger-btn:hover{background:#06d}.gsk-student-done{display:flex;align-items:center;gap:6px;color:#34c759;font-size:13px;padding:12px;background:#e8f5e9;border-radius:10px}.gsk-report{background:#f8f9fa;border-radius:10px;padding:14px}.gsk-report-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#333;margin-bottom:10px}.gsk-report-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f0f0f5}.gsk-report-row:last-of-type{border-bottom:none}.gsk-dim-name{font-size:13px;color:#333;width:80px;flex-shrink:0}.gsk-dim-stars{display:flex;gap:2px}.gsk-dim-label{font-size:12px;color:#888;margin-left:auto}.gsk-report-suggestion{margin-top:10px;padding-top:10px;border-top:1px solid #e5e7eb;font-size:13px;color:#666}.gsk-text-result{font-size:14px;color:#333;line-height:1.6;padding:12px;background:#f8f9fa;border-radius:10px;white-space:pre-wrap}.gsk-image-result{max-width:100%;border-radius:10px}.gsk-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.gsk-option-btn{padding:8px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;transition:all .15s}.gsk-option-btn:hover{background:#007aff;color:#fff;border-color:#007aff}.gsk-confirm-btn{display:block;width:100%;margin-top:10px;padding:10px;border:none;border-radius:10px;background:#34c759;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.gsk-confirm-btn:hover{background:#2db84d}.ce-cover-banner{position:relative;height:100px;border-radius:10px;overflow:hidden;cursor:pointer;margin:0 12px 12px;flex-shrink:0}.ce-cover-img{width:100%;height:100%;object-fit:cover}.ce-cover-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#ffffffb3;font-size:13px}.ce-cover-overlay{position:absolute;bottom:0;left:0;right:0;padding:6px;background:#00000080;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;gap:4px;opacity:0;transition:opacity .2s}.ce-cover-banner:hover .ce-cover-overlay{opacity:1}.sp-card-status{position:absolute;top:6px;left:6px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;color:#fff}.sp-card-status.saved{background:#007aff}.sp-card-status.pending{background:#ff9500}.sp-card-status.rejected{background:#ff3b30}.sp-card-status.draft{background:#8e8e93}.sp-card-cover{position:relative}.portfolio-loading{height:100vh;display:flex;align-items:center;justify-content:center;color:#888}.portfolio-page{min-height:100vh;background:#f7f8fc}.portfolio-cover{position:relative;height:280px;background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden}.cover-bg{width:100%;height:100%;object-fit:cover;opacity:.3}.cover-overlay{position:absolute;bottom:0;left:0;right:0;padding:32px 24px;background:linear-gradient(transparent,#00000080);color:#fff}.cover-overlay h1{margin:0 0 8px;font-size:28px;font-weight:700}.cover-author{margin:0;font-size:14px;opacity:.8}.portfolio-back{position:absolute;top:16px;left:16px;background:#fff3;border:none;color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;z-index:1}.portfolio-body{max-width:720px;margin:-40px auto 0;padding:0 20px 40px;position:relative}.portfolio-section{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 2px 8px #0000000a}.portfolio-section h2{margin:0 0 16px;font-size:18px;font-weight:600}.section-text{font-size:15px;line-height:1.8;color:#555;margin:0}.works-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.work-card{border-radius:12px;overflow:hidden;border:1px solid #f0f0f5}.work-img{width:100%;height:180px;object-fit:cover;display:block}.work-img.styled{border-top:2px solid #667eea}.work-info{padding:12px}.work-info h3{margin:0 0 4px;font-size:14px;font-weight:600}.work-style{font-size:11px;color:#667eea;background:#eef0ff;padding:2px 8px;border-radius:10px}.work-note{font-size:12px;color:#888;margin:6px 0 0}.portfolio-footer{text-align:center;padding:32px 0;color:#bbb;font-size:12px}.portfolio-footer p{margin:4px 0}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;background:#f7f8fc}html{position:fixed;width:100%}body{position:fixed;width:100%;touch-action:pan-x pan-y}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--safe-area-top: env(safe-area-inset-top);--safe-area-bottom: env(safe-area-inset-bottom)}
