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