:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#213547;text-decoration:inherit}a:hover{color:#21808d}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#21808d}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#242424}button{background-color:#f9f9f9}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(135deg,#1a1a1a,#2d2d2d,#1a1a1a);padding:20px;overflow:hidden}.login-container:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(rgba(255,255,255,.1) 2px,transparent 2px),radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:50px 50px,25px 25px;background-position:0 0,12.5px 12.5px;z-index:0;animation:patternPulse 20s infinite ease-in-out}.login-container:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:40px 40px;z-index:0}@keyframes patternPulse{0%,to{opacity:.6;background-size:50px 50px,25px 25px}50%{opacity:.8;background-size:52px 52px,26px 26px}}.particles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0}.particle{position:absolute;border-radius:50%;background:#ffffff4d;box-shadow:0 0 15px #ffffff80;pointer-events:none}.particle:nth-child(1){width:12px;height:12px;top:10%;left:20%;animation:float 25s infinite ease-in-out}.particle:nth-child(2){width:16px;height:16px;top:30%;left:40%;animation:float 20s infinite ease-in-out;animation-delay:-2s}.particle:nth-child(3){width:10px;height:10px;top:60%;left:10%;animation:float 22s infinite ease-in-out;animation-delay:-5s}.particle:nth-child(4){width:14px;height:14px;top:80%;left:70%;animation:float 18s infinite ease-in-out;animation-delay:-7s}.particle:nth-child(5){width:8px;height:8px;top:40%;left:80%;animation:float 24s infinite ease-in-out;animation-delay:-3s}.particle:nth-child(6){width:18px;height:18px;top:20%;left:60%;animation:float 21s infinite ease-in-out;animation-delay:-8s}@keyframes float{0%,to{transform:translateY(0) translate(0);opacity:.7}25%{transform:translateY(-70px) translate(35px);opacity:1}50%{transform:translateY(-35px) translate(-35px);opacity:.8}75%{transform:translateY(70px) translate(20px);opacity:1}}.login-background{width:100%;max-width:400px;position:relative;z-index:1}.login-content{position:relative;z-index:1}.login-card{box-shadow:0 8px 32px #0000004d;border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid rgba(255,255,255,.1);padding:20px}.login-header{text-align:center;margin-bottom:32px}.login-logo-container{margin-bottom:16px}.login-logo{height:64px;width:auto}.login-title{color:#333!important;margin-bottom:8px!important;font-weight:600;font-size:28px}.login-subtitle{font-size:14px;color:#666}.login-form{margin-bottom:24px}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-input-affix-wrapper,.login-form .ant-input-password{border-radius:8px;border:1px solid #d9d9d9;transition:all .3s;background:#ffffffe6}.login-form .ant-input-affix-wrapper:hover,.login-form .ant-input-password:hover{border-color:#666!important}.login-form .ant-input-affix-wrapper:focus,.login-form .ant-input-affix-wrapper-focused,.login-form .ant-input-password:focus,.login-form .ant-input-password-focused{border-color:#333!important;box-shadow:0 0 0 2px #3333!important}.login-button{height:44px;border-radius:8px;font-size:16px;font-weight:500;background:linear-gradient(135deg,#333,#000)!important;border:none!important;transition:all .3s;color:#fff!important}.login-button:hover,.login-button:focus{background:linear-gradient(135deg,#555,#333)!important;transform:translateY(-1px);box-shadow:0 4px 12px #0000004d!important;border-color:transparent!important;color:#fff!important}.login-button:active{transform:translateY(0);background:linear-gradient(135deg,#222,#000)!important}.login-footer{border-top:1px solid rgba(255,255,255,.1);padding-top:16px;margin-top:16px}@media (max-width: 480px){.login-container,.login-card{padding:16px}.login-title{font-size:24px}}.login-button.ant-btn-loading{background:linear-gradient(135deg,#333,#000)}.login-form .ant-form-item-has-error .ant-input-affix-wrapper,.login-form .ant-form-item-has-error .ant-input-password{border-color:#ff4d4f}.login-form .ant-form-item-has-error .ant-input-affix-wrapper:focus,.login-form .ant-form-item-has-error .ant-input-password:focus{border-color:#ff4d4f;box-shadow:0 0 0 2px #ff4d4f33}.login-form .anticon{color:#666!important}.login-form .ant-input-affix-wrapper:focus .anticon,.login-form .ant-input-password:focus .anticon{color:#333!important}.login-footer .ant-typography{color:#666c!important}.login-form .ant-form-item-explain-error{color:#ff4d4f!important}.login-form .ant-form-item-label>label{color:#333!important}.ant-btn-primary{background:linear-gradient(135deg,#333,#000)!important;border-color:transparent!important}.ant-btn-primary:hover,.ant-btn-primary:focus{background:linear-gradient(135deg,#555,#333)!important;border-color:transparent!important}.ant-input:focus,.ant-input-focused{border-color:#333!important;box-shadow:0 0 0 2px #3333!important}.ant-menu-inline-collapsed .ant-menu-item .ant-menu-item-icon{transition:transform .2s ease}.ant-menu-inline-collapsed .ant-menu-item:hover .ant-menu-item-icon{transform:scale(1.2)}.ant-layout-sider-collapsed .ant-menu-item{padding-left:0!important;padding-right:0!important;text-align:center;display:flex!important;align-items:center!important;justify-content:center!important}.ant-layout-sider-collapsed .ant-menu-item .ant-menu-item-icon{margin-inline-end:0!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important}.ant-layout-sider-collapsed .ant-menu-item .ant-menu-title-content{display:none!important}.ant-layout-sider-collapsed .ant-menu-item-icon svg{display:block!important;margin:0 auto!important}.main-layout{height:100vh;overflow:hidden}.main-layout-sider{background:#fff;box-shadow:2px 0 8px #0000001a;z-index:1;display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0}.logo-area{height:64px;display:flex;align-items:center;border-bottom:1px solid #f0f0f0;flex-shrink:0}.logo-area-expanded{justify-content:space-between;padding:0 24px;cursor:default}.logo-area-collapsed{justify-content:center;padding:0;cursor:pointer}.logo-inner{display:flex;align-items:center}.logo-inner-expanded{flex:1;justify-content:flex-start}.logo-inner-collapsed{flex:none;justify-content:center}.logo-img{height:36px;width:36px;object-fit:contain;transition:all .2s ease}.logo-title{margin:0 0 0 10px!important;color:#000;transition:opacity .2s ease,width .2s ease;white-space:nowrap;overflow:hidden}.logo-title-hidden{opacity:0;width:0!important;margin:0!important}.logo-img-wrapper-collapsed{position:relative}.logo-img-collapsed{height:40px;width:40px;object-fit:contain;transition:all .2s ease}.logo-img-collapsed:hover{transform:scale(1.1)}.ant-layout-sider .ant-menu-item .ant-menu-item-icon{font-size:18px}.ant-layout-sider-collapsed .ant-menu-item .ant-menu-item-icon{font-size:24px}.main-content-layout{transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.main-layout-sider{transition:width .3s cubic-bezier(.4,0,.2,1)}.main-content-layout .ant-layout-content{transition:all .3s cubic-bezier(.4,0,.2,1)}.fc{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.fc-header-toolbar{margin-bottom:.8em;padding:0}.fc-toolbar-chunk{display:flex;align-items:center;gap:6px}.fc-header-toolbar .fc-toolbar-chunk:last-child{justify-content:flex-end;margin-left:auto}.fc-header-toolbar .fc-toolbar-chunk:first-child{justify-content:flex-start}.fc-button{background-color:#333!important;border-color:#333!important;color:#fff;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .3s ease}.fc-button:hover{background-color:#777!important;border-color:#777!important}.fc-button:focus{box-shadow:0 0 0 2px #0003}.fc-button-active{background-color:#000!important;border-color:#000!important}.fc-button:disabled{background-color:#000!important;border-color:#000!important;opacity:.6}.fc-toolbar-title{font-size:14px;font-weight:600;color:#262626}.fc-daygrid-day{border:1px solid #f0f0f0}.fc-daygrid-day:hover{background-color:#fafafa}.fc-day-today{background-color:#f5f5f5!important}.fc-col-header-cell{background-color:#f5f5f5;font-weight:600;color:#262626;font-size:11px;border-bottom:1px solid #e8e8e8}.fc-col-header-cell-cushion{color:#262626;font-weight:600;padding:8px 4px}.fc-daygrid-day-number{color:#262626;font-weight:500;font-size:12px}.fc-event{border-radius:4px;border:none;padding:2px 4px;font-size:11px;font-weight:500;margin:1px 0;cursor:pointer;transition:all .2s ease}.fc-event:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026;opacity:.8}.fc-event-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-more-link{color:#262626;font-size:11px;font-weight:500}.fc-more-link:hover{color:#434343;text-decoration:none}.fc-list-event{cursor:pointer;transition:background-color .2s ease}.fc-list-event:hover{background-color:#f5f5f5}.fc-list-event-title{font-weight:500;color:#262626}.fc-list-event-time{color:#8c8c8c;font-size:12px}@media (max-width: 768px){.fc-header-toolbar{flex-direction:column;gap:8px}.fc-toolbar-chunk{display:flex;justify-content:center}.fc-button{font-size:11px;padding:3px 8px}.fc-toolbar-title{font-size:16px;margin:8px 0}}.training-camp-card{transition:all .3s ease;border:1px solid #f0f0f0}.training-camp-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#d9d9d9}.month-header{background:linear-gradient(135deg,#f5f5f5,#e8e8e8);border-radius:8px;padding:12px 16px;margin-bottom:24px;border:1px solid #e8e8e8}.month-title{background:linear-gradient(135deg,#1890ff,#096dd9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.loading-container{background:linear-gradient(135deg,#fafafa,#f0f0f0);border-radius:12px;padding:60px 20px}.empty-container{background:linear-gradient(135deg,#fafafa,#f0f0f0);border-radius:12px;padding:60px 20px;text-align:center}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.exercises-flow{display:flex;flex-wrap:wrap;gap:40px;padding:20px 0;max-width:100%;justify-content:flex-start}.exercise-node{position:relative;flex:0 0 auto}.exercises-flow>*:nth-child(6n+1),.exercises-flow>*:nth-child(6n+2),.exercises-flow>*:nth-child(6n+3){order:1}.exercises-flow>*:nth-child(6n+4),.exercises-flow>*:nth-child(6n+5),.exercises-flow>*:nth-child(6n+6){order:2}.exercise-node{width:calc(33.333% - 27px);min-width:280px}@media (max-width: 1200px){.exercise-node{width:calc(50% - 20px)}.exercises-flow>*:nth-child(4n+1),.exercises-flow>*:nth-child(4n+2){order:1}.exercises-flow>*:nth-child(4n+3),.exercises-flow>*:nth-child(4n+4){order:2}}@media (max-width: 768px){.exercise-node{width:100%}.exercises-flow{flex-direction:column;align-items:center}.exercises-flow>*{order:unset!important}}.connection-line{position:absolute;z-index:5;pointer-events:none}.line-content{position:relative;background:#d9d9d9;border-radius:2px;overflow:hidden}.arrow{position:absolute;width:0;height:0;z-index:10}.connection-line.horizontal{height:4px;top:50%;transform:translateY(-50%)}.connection-line.horizontal .arrow{right:-8px;top:50%;transform:translateY(-50%);border-left:8px solid #d9d9d9;border-top:6px solid transparent;border-bottom:6px solid transparent}.connection-line.vertical{width:4px;left:50%;transform:translate(-50%)}.connection-line.vertical .arrow{bottom:-8px;left:50%;transform:translate(-50%);border-top:8px solid #d9d9d9;border-left:6px solid transparent;border-right:6px solid transparent}.connection-line.diagonal{transform-origin:left center}.connection-line.diagonal .arrow{right:-6px;top:50%;transform:translateY(-50%) rotate(var(--arrow-rotation, 0deg));border-left:8px solid #d9d9d9;border-top:6px solid transparent;border-bottom:6px solid transparent}.flowing .line-content{background:#1890ff}.flowing .arrow{border-left-color:#1890ff!important;border-top-color:#1890ff!important}.flowing.horizontal .flow-animation{position:absolute;top:0;left:0;width:20px;height:100%;background:linear-gradient(to right,#fff0,#fffc,#fff0);animation:flowRight 2s linear infinite}.flowing.vertical .flow-animation{position:absolute;top:0;left:0;width:100%;height:20px;background:linear-gradient(to bottom,#fff0,#fffc,#fff0);animation:flowDown 2s linear infinite}.flowing.diagonal .flow-animation{position:absolute;top:0;left:0;width:20px;height:100%;background:linear-gradient(to right,#fff0,#fffc,#fff0);animation:flowDiagonal 2s linear infinite}.static .line-content{background:#d9d9d9}.static .flow-animation{display:none}@keyframes flowRight{0%{transform:translate(-20px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(calc(100% + 20px));opacity:0}}@keyframes flowDown{0%{transform:translateY(-20px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(calc(100% + 20px));opacity:0}}@keyframes flowDiagonal{0%{transform:translate(-20px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(calc(100% + 20px));opacity:0}}.exercise-node .ant-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f;transition:all .3s ease}.exercise-node .ant-card[style*="opacity: 0.6"]:hover{transform:none;box-shadow:0 2px 8px #00000017}.exercise-node .ant-card .anticon-lock{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.1)}to{transform:translate(-50%,-50%) scale(1)}}.ant-card .ant-card-body{padding:18px 20px!important}.exercise-node .ant-card-meta-title{margin-bottom:8px!important}.exercise-node .ant-card-meta-description{color:#666!important;line-height:1.5}.exercise-node .ant-tag{margin:0 0 4px 4px;font-size:11px;padding:2px 6px;line-height:1.2}.exercise-node .ant-card-actions{background:#fafafa;border-top:1px solid #f0f0f0}.exercise-node .ant-card-actions>li{margin:8px 0}.exercise-node .ant-card-actions .ant-typography{color:#666!important;font-size:12px}.exercise-node .ant-card-actions .anticon{color:#999}.react-flow__controls,.react-flow__controls button,.react-flow__panel{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.react-flow{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.guide-drawer .drawer-content{padding:0}.guide-drawer .guide-step{margin-bottom:16px;background-color:#21808d1a;padding:16px;border-radius:8px}.guide-drawer .guide-step-header{margin-bottom:12px}.guide-drawer .guide-step-title{margin:0!important;color:#262626;font-size:18px!important;display:flex;align-items:center}.guide-drawer .guide-step-number{background-color:#21808d;color:#fff;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;margin-right:12px;flex-shrink:0}.guide-drawer .guide-step-content{color:#595959;line-height:1.6;text-align:left;font-size:15px!important;margin-left:0;padding-left:0;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.guide-drawer .guide-step-content h1,.guide-drawer .guide-step-content h2,.guide-drawer .guide-step-content h3,.guide-drawer .guide-step-content h4,.guide-drawer .guide-step-content h5,.guide-drawer .guide-step-content h6{color:#262626;margin-top:16px;margin-bottom:8px}.guide-drawer .guide-step-content p{margin-bottom:12px}.guide-drawer .guide-step-content ul,.guide-drawer .guide-step-content ol{margin-bottom:12px;padding-left:20px}.guide-drawer .guide-step-content li{margin-bottom:4px}.guide-drawer .guide-step-content strong{color:#262626;font-weight:600}.guide-drawer .guide-step-content code{background-color:#f5f5f5;padding:2px 4px;border-radius:3px;font-family:Courier New,monospace}.guide-drawer .guide-step-content pre{background-color:#f5f5f5;padding:12px;border-radius:6px;overflow-x:auto;margin-bottom:12px}.guide-drawer .guide-step-content blockquote{border-left:4px solid #21808d;padding-left:12px;margin:12px 0;color:#666;font-style:italic}.target-drawer .drawer-content{padding:0}.target-drawer .framework-section{background:#21808d1a;border-radius:12px;padding:20px;border:1px solid #f0f0f0;margin-bottom:16px}.target-drawer .framework-header{margin-bottom:16px}.target-drawer .framework-title{display:flex;align-items:center;gap:12px}.target-drawer .framework-logo{width:24px;height:24px;object-fit:cover}.target-drawer .modules-container{margin-top:16px}.target-drawer .modules-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.target-drawer .module-item{display:flex;align-items:center;justify-content:center;padding:8px 12px;background:#fff;border-radius:4px;border:1px solid #e8e8e8;transition:all .2s ease}.target-drawer .module-item:hover{border-color:#21808d;box-shadow:0 2px 8px #21808d1a}.target-drawer .module-name{font-weight:500;color:#333;text-align:center;font-size:14px}@media (max-width: 768px){.target-drawer .modules-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 480px){.target-drawer .modules-grid{grid-template-columns:repeat(2,1fr)}}:root{--primary-color: #21808d;--primary-color-light: rgba(33, 128, 141, .15);--text-primary: #262626;--text-secondary: #8c8c8c;--border-color: #f0f0f0;--background-light: #fafafa;--white: #fff;--shadow-light: 2px 2px 8px rgba(0, 0, 0, .15)}.worksheet-button{border:none!important;outline:none!important;box-shadow:none!important}.worksheet-button:focus{border:none!important;outline:none!important;box-shadow:none!important}.custom-button:focus{border:1px solid rgb(33,128,141)!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.custom-button:active{border:1px solid rgb(33,128,141)!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.save-button{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;transition:all .3s ease!important}.save-button:hover{background-color:#21808dcc!important;border-color:#21808dcc!important;color:#fff!important;box-shadow:none!important}.save-button:focus{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;outline:none!important;box-shadow:none!important}.save-button:active{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;outline:none!important;box-shadow:none!important}.save-draft-button{border:1px solid rgb(33,128,141)!important;color:#21808d!important;background:#fff!important;transition:all .3s ease!important;display:flex!important;align-items:center!important;gap:6px!important;font-size:16px!important;font-weight:500!important;border-radius:6px!important;padding:4px 8px!important}.save-draft-button:hover{border:1px solid rgb(33,128,141)!important;color:#21808d!important;background:#21808d0a!important;box-shadow:none!important}.save-draft-button:focus{border:1px solid rgb(33,128,141)!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.save-draft-button:active{border:1px solid rgb(33,128,141)!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.worksheet-title{margin:0;color:var(--text-primary);font-size:28px!important;font-weight:600}.back-button{border:none!important;outline:none!important;box-shadow:none!important}.collapse-button{position:absolute;top:16px;left:0;z-index:1000;background:var(--white);border:1px solid #d9d9d9;border-radius:0 6px 6px 0;font-size:16px;width:32px;height:32px;box-shadow:var(--shadow-light);outline:none}.collapse-button:hover{border:1px solid #d9d9d9!important;outline:none!important;box-shadow:var(--shadow-light)!important}.collapse-button:focus{border:1px solid #d9d9d9!important;outline:none!important;box-shadow:var(--shadow-light)!important}.worksheet-sider{background:var(--background-light);border-right:1px solid var(--border-color)}.sider-header{padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--white);min-height:64px;display:flex;align-items:center}.background-button{padding:8px 12px;height:auto;font-size:16px;font-weight:500;color:var(--text-primary);border-radius:6px;border:none!important;outline:none!important;box-shadow:none!important}.background-button.active{background:var(--primary-color-light);font-weight:700;color:var(--primary-color)}.background-button.active:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.background-button:not(.active){background:transparent}.background-button:not(.active):hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.unit-menu{border:none;background:transparent}.unit-menu-item{margin:8px;border-radius:8px;height:auto;line-height:normal;padding:12px;width:calc(100% - 16px);transition:background-color .2s ease}.unit-menu-item.selected{background:var(--primary-color-light);cursor:default!important}.unit-menu-item:not(.selected){background:transparent;cursor:pointer}.unit-menu-item:not(.selected):hover{background:var(--primary-color-light)!important}.unit-menu-item-text{font-size:16px;display:flex;align-items:center;line-height:1.4}.unit-menu-item-text.selected{font-weight:700;color:var(--primary-color)}.unit-menu-item-text:not(.selected){font-weight:500;color:var(--text-primary)}.unit-number{font-weight:inherit}.content-area{padding:18px 24px;background:var(--white)}.section-title{margin:0;color:var(--text-primary);font-size:18px;display:flex;align-items:center}.section-title-icon{margin-right:8px;color:var(--primary-color)}.unified-background{background:#f8fafc;padding:8px 20px;border-radius:8px;border:2px dashed rgba(33,128,141,.3);font-size:16px;line-height:1.6;color:#434343}.unified-background *{font-size:16px!important}.unified-background p,.unified-background div{margin:4px 0;line-height:1.6}.unified-background h1,.unified-background h2,.unified-background h3,.unified-background h4,.unified-background h5,.unified-background h6{margin:8px 0 4px;color:#262626;font-weight:600}.unified-background ul,.unified-background ol{margin:4px 0;padding-left:20px}.unified-background li{margin:2px 0;line-height:1.6}.unit-background{margin-top:20px}.question-collapse{background:#fff;border-radius:8px;border:1px solid #f0f0f0;margin-bottom:24px;box-shadow:none!important;overflow:hidden}.question-collapse .ant-collapse-item{border:none!important}.question-collapse .ant-collapse-header{background:#fff!important;padding:16px 20px!important;border:none!important;border-bottom:1px solid #f5f5f5!important;border-radius:0!important}.question-collapse .ant-collapse-content{border:none!important}.question-collapse .ant-collapse-content-box{padding:0 20px 20px!important}.question-collapse .ant-collapse-expand-icon{position:absolute!important;right:8px!important;left:auto!important;top:50%!important;transform:translateY(-50%)!important;color:var(--primary-color)!important;font-size:16px!important;transition:all .3s ease!important}.question-collapse .ant-collapse-expand-icon:hover{color:var(--primary-color)!important}.question-collapse .ant-collapse-header-text{padding-right:40px!important}.question-header-content{display:flex;justify-content:space-between;align-items:center;width:100%;padding-right:4px}.question-title{font-size:18px;font-weight:600;color:var(--primary-color);margin:0;display:flex;align-items:center;line-height:1.4}.question-title-icon{margin-right:8px;color:var(--primary-color)}.question-action-button{padding:8px 12px;height:auto;font-size:15px;font-weight:500;color:var(--text-primary);border-radius:6px;border:none!important;outline:none!important;box-shadow:none!important;background:transparent;transition:all .3s ease}.question-action-button .anticon{color:var(--primary-color)}.question-action-button:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.question-action-button:hover .anticon{color:var(--primary-color)!important}.answer-area{margin-top:16px}.answer-textarea{margin-bottom:16px;padding-bottom:56px!important;font-size:16px!important;background-color:#21808d0d!important}.answer-textarea:hover{border-color:#21808d!important}.answer-textarea:focus,.answer-textarea.ant-input:focus,.answer-textarea.ant-input-focused{border-color:#21808d!important;box-shadow:0 0 0 2px #21808d33!important;background-color:#21808d0d!important}.answer-actions{text-align:right}.answer-button{margin-right:8px;border:none;outline:none;box-shadow:none}.chat-bubble-student{display:flex;justify-content:flex-end;margin-bottom:20px}.chat-bubble-student-content{max-width:97%}.chat-bubble-student-message{background:#21808d1a;padding:16px 24px 4px;border-radius:16px 16px 0;border:1px solid rgba(33,128,141,.15);margin-bottom:8px;font-size:16px;font-weight:400;line-height:1.6}.chat-bubble-student-label{text-align:right;font-size:14px;color:#999;display:flex;align-items:center;justify-content:flex-end}.chat-bubble-ai{display:flex;justify-content:flex-start;margin-bottom:20px}.chat-bubble-ai-content{max-width:97%}.chat-bubble-ai-message{background:#e5e7ebcc;padding:16px 24px 4px;border-radius:16px 16px 16px 0;border:1px solid rgba(33,128,141,.15);margin-bottom:8px;font-size:16px;font-weight:400;line-height:1.6}.chat-bubble-ai-label{display:flex;align-items:center;font-size:14px;color:#999}.chat-bubble-ai-icon{margin-right:4px}.retry-actions{text-align:right}.retry-button{border:none;outline:none;box-shadow:none}.retry-button:disabled{background-color:#f5f5f5!important;border-color:#d9d9d9!important;color:#fff!important;cursor:not-allowed;opacity:.8}.retry-button:disabled:hover{background-color:#f5f5f5!important;border-color:#d9d9d9!important;color:#fff!important;opacity:.8}.drawer-content{padding:16px 0}.drawer-section{margin-bottom:24px}.drawer-section:last-child{margin-bottom:0}.guide-item{margin-bottom:16px}.worksheet-layout{min-height:70vh;background:var(--white);border-radius:8px;overflow:hidden;position:relative}.worksheet-container{max-width:1400px;margin:0 auto;padding:0}.worksheet-header{margin-bottom:0}.worksheet-header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.worksheet-header-info{margin-bottom:16px}.worksheet-header-meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.unit-menu-container{height:calc(100vh - 200px);max-height:calc(100vh - 200px);overflow-y:auto;padding:8px 0}.empty-state{display:flex;justify-content:center;align-items:center;height:50vh}.menu-fold-button{font-size:16px;width:28px;height:28px;border:none!important;outline:none!important;box-shadow:none!important}.menu-fold-button:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.unit-number{padding:2px 6px;border-radius:6px;font-size:14px;margin-right:12px;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:24px;text-align:center;line-height:1;border:1px solid var(--primary-color);color:var(--primary-color);background-color:transparent}.unit-menu-item.selected .unit-number{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.section-number{background-color:#21808d;color:#fff;padding:4px 8px;border-radius:6px;font-size:18px;font-weight:600;margin-right:12px;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:24px;text-align:center;line-height:1;vertical-align:top}.question-number{background-color:#21808d;color:#fff;padding:4px 8px;border-radius:6px;font-size:16px;font-weight:600;margin-right:12px;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:24px;text-align:center;line-height:1;vertical-align:top}.framework-section{background:#21808d1a;border-radius:12px;padding:20px;border:1px solid #f0f0f0}.framework-header{margin-bottom:16px}.framework-title{display:flex;align-items:center;gap:12px}.framework-logo{width:24px;height:24px;object-fit:cover}.modules-container{margin-top:16px}.modules-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.module-item{display:flex;align-items:center;justify-content:center;padding:8px 12px;background:#fff;border-radius:4px;border:1px solid #e8e8e8;transition:all .2s ease}.module-item:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #21808d1a}.module-name{font-weight:500;color:#333;text-align:center;font-size:14px}.scroll-button{cursor:pointer;padding:10px 6px;display:flex;justify-content:center;align-items:center;border-radius:2px;transition:background-color .2s}.scroll-button:hover{background-color:#0000000a}:root{--primary-color: #21808d;--primary-color-medium: rgba(33, 128, 141, .65);--primary-color-light: rgba(33, 128, 141, .15);--text-primary: #262626;--text-secondary: #8c8c8c;--border-color: #f0f0f0;--background-light: #fafafa;--white: #fff;--shadow-light: 2px 2px 8px rgba(0, 0, 0, .15)}.scene-button{border:none!important;outline:none!important;box-shadow:none!important}.scene-button:focus{border:none!important;outline:none!important;box-shadow:none!important}.scene-title{margin:0;color:var(--text-primary);font-size:28px!important;font-weight:600}.status-tag{margin:0;font-size:12px;font-weight:500}.status-tag-pending{color:var(--text-secondary)}.status-tag-in-progress{color:var(--primary-color)}.status-tag-submitted{color:#13343b}.teacher-avatar{width:20px;height:20px;border-radius:50%;margin-right:6px;object-fit:cover}.teacher-icon{margin-right:6px;color:var(--text-secondary);font-size:16px}.teacher-text,.info-text{font-size:14px}.info-icon{margin-right:6px;color:var(--text-secondary);font-size:16px}.scene-header{margin-bottom:0}.scene-header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.scene-header-info{margin-bottom:16px}.scene-header-meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.scene-loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:60vh}.scene-loading-text{margin-top:16px}.scene-layout{min-height:70vh;background:var(--white);border-radius:8px;overflow:hidden;position:relative}.scene-layout .ant-layout-sider:after{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:var(--border-color);z-index:10}.scene-character-sider{background:var(--background-light);border-right:1px solid var(--border-color)!important;transition:width .25s ease-out!important;overflow:hidden!important;position:relative}.scene-character-sider.ant-layout-sider-collapsed{border-right:1px solid var(--border-color)!important;background:var(--background-light)}.scene-character-sider .ant-layout-sider-children{position:absolute;top:0;left:0;width:240px;height:100%;background:var(--background-light);transition:transform .05s ease-out,opacity .2s ease-out!important;transform-origin:left center;will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}.scene-character-sider.ant-layout-sider-collapsed .ant-layout-sider-children{transform:translate(-100%);opacity:0;pointer-events:none}.scene-character-sider:not(.ant-layout-sider-collapsed) .ant-layout-sider-children{transform:translate(0);opacity:1;pointer-events:auto}.scene-layout .ant-layout-sider{transition:width .25s ease-out!important;overflow:visible!important}.scene-layout .ant-layout-sider-trigger{display:none!important}.scene-character-sider.ant-layout-sider-collapsed .scene-character-list-container,.scene-character-sider.ant-layout-sider-collapsed .scene-character-header,.scene-character-sider.ant-layout-sider-collapsed .scene-character-item{visibility:hidden;opacity:0}.scene-character-list-container{padding:0;height:100%;width:100%;position:relative;overflow:hidden;background:var(--background-light)}.scene-character-header{padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--white)}.scene-character-header-left{display:flex;align-items:center}.scene-character-header-left span{padding:8px 12px;height:auto;font-size:16px!important;font-weight:500!important;color:var(--text-primary)!important;border-radius:6px;border:none!important;outline:none!important;box-shadow:none!important;background:transparent}.scene-character-header-right{display:flex;align-items:center}.scene-character-item{margin:8px!important;border-radius:8px!important;height:auto!important;line-height:normal!important;padding:12px!important;width:calc(100% - 16px)!important;transition:background-color .2s ease!important;border-bottom:none!important;background:transparent!important;position:relative;cursor:default;backface-visibility:hidden;-webkit-backface-visibility:hidden}.scene-character-item:hover{background:#21808d26!important}.scene-character-item:last-child{border-bottom:none!important}.scene-character-item-content{display:flex;justify-content:space-between;align-items:center;width:100%}.scene-character-left{display:flex;align-items:center;gap:12px;flex:1}.scene-character-meta{display:flex;flex-direction:column;gap:0;width:100%}.scene-character-name-row{display:flex;justify-content:space-between;align-items:center;width:100%}.scene-character-name-group{display:flex;align-items:center;gap:8px}.scene-character-name-group span{font-weight:500!important;color:var(--text-primary)!important;font-size:16px!important}.scene-character-info-button{padding:0 4px;height:auto;font-size:14px;color:var(--primary-color);border:none!important;outline:none!important;box-shadow:none!important}.scene-character-info-button:hover{color:var(--primary-color)!important;background:transparent!important}.scene-character-fold-button{font-size:16px;width:28px;height:28px;border:none!important;outline:none!important;box-shadow:none!important}.scene-character-fold-button:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-unfold-button{position:absolute;top:16px;left:0;z-index:1000;background:var(--white);border:1px solid #d9d9d9;border-radius:0 6px 6px 0;font-size:16px;width:32px;height:32px;box-shadow:var(--shadow-light);outline:none}.scene-unfold-button:hover{border:1px solid #d9d9d9!important;outline:none!important;box-shadow:var(--shadow-light)!important}.scene-unfold-button:focus{border:1px solid #d9d9d9!important;outline:none!important;box-shadow:var(--shadow-light)!important}.scene-character-status-icon{display:flex;align-items:center}.scene-character-user-icon{font-size:16px;color:var(--primary-color-medium)!important;transition:color .2s ease;padding:4px}.scene-character-robot-icon{font-size:16px;color:var(--text-secondary)!important;transition:color .2s ease;padding:4px}.scene-character-user-icon:hover,.scene-character-robot-icon:hover{color:#1a6b75!important}.scene-character-user-icon:focus,.scene-character-robot-icon:focus{color:var(--primary-color)!important}.scene-character-user-icon:active,.scene-character-robot-icon:active{color:var(--primary-color)!important}.scene-chat-layout{display:flex;flex-direction:column}.scene-chat-header{padding:14px 16px;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center;min-height:49px}.scene-chat-header-left{display:flex;align-items:center}.scene-chat-header-right{display:flex;align-items:center;gap:8px}.scene-fold-button{width:32px;height:32px;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:center}.scene-voice-switch-container{display:flex;align-items:center;gap:8px;margin:0 4px}.scene-voice-icon{display:flex;align-items:center;justify-content:center;color:var(--primary-color);font-size:16px;cursor:default}.scene-voice-switch{background-color:#f0f0f0!important;font-size:15px}.scene-voice-switch.ant-switch-checked{background-color:var(--primary-color)!important}.scene-voice-switch:focus{box-shadow:none!important;border:none!important;outline:none!important}.scene-voice-switch:focus-within{box-shadow:none!important;border:none!important;outline:none!important}.scene-voice-switch .ant-switch-handle:before{background-color:#fff!important}.scene-voice-switch .ant-switch-inner span{font-size:14px!important;font-weight:500!important}.scene-voice-switch:not(.ant-switch-checked) .ant-switch-inner{background-color:var(--text-secondary)!important}.scene-guide-button{margin:0 4px;padding:8px 12px;height:auto;font-size:15px;font-weight:500;color:var(--text-primary)!important;border-radius:6px;border:none!important;outline:none!important;box-shadow:none!important;background:transparent;transition:all .3s ease}.scene-guide-button .anticon{color:var(--primary-color)!important}.scene-guide-button:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-guide-button:hover .anticon{color:var(--primary-color)!important}.scene-guide-button:focus{background:transparent!important;color:var(--text-primary)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-guide-button:focus:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-guide-button:focus:hover .anticon{color:var(--primary-color)!important}.scene-guide-button:active{background:transparent!important;color:var(--text-primary)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-chat-content{flex:1;padding:8px 12px 85px;overflow-y:auto;background:#e5e7eb03;transition:padding-bottom .3s ease-out}.scene-chat-content.with-comments-panel{padding-bottom:20px}.scene-chat-empty{margin-top:100px}.scene-messages-container{max-width:100%;margin:0;padding:8px}.scene-message-item{margin-bottom:20px;width:100%}.scene-message-item.user{display:flex;justify-content:flex-end}.scene-message-item.ai{display:flex;justify-content:flex-start}.scene-message-wrapper{max-width:90%;min-width:200px;position:relative}.scene-message-wrapper.user{margin-right:0}.scene-message-wrapper.ai{margin-left:0}.scene-message-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative;width:100%}.scene-message-header.user,.scene-message-header.ai{flex-direction:row}.scene-message-actions-widget{display:flex;gap:4px;align-items:center;opacity:0;transition:opacity .2s ease;pointer-events:none}.scene-message-info-widget{display:flex;align-items:center;gap:8px}.scene-message-info-widget.user{flex-direction:row-reverse}.scene-message-info-widget.ai{flex-direction:row}.scene-message-avatar{flex-shrink:0}.scene-message-info{display:flex;flex-direction:column;gap:2px}.scene-message-info.user{align-items:flex-end}.scene-message-info.ai{align-items:flex-start}.scene-message-name{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.2}.scene-message-time{font-size:11px;color:var(--text-secondary);line-height:1.2}.scene-message-bubble{padding:12px 16px;border-radius:12px;box-shadow:none;margin-bottom:8px;word-wrap:break-word;word-break:break-word;font-size:16px}.scene-message-bubble.user{background:var(--primary-color);color:#fff;border-top-right-radius:4px}.scene-message-bubble.ai{background:#fff;color:#000;border-top-left-radius:4px}.scene-message-bubble .user-message-content,.scene-message-bubble .user-message-content *{color:#fff!important}.scene-message-bubble .user-message-content p{margin:0!important;line-height:1.5!important}.scene-message-bubble .user-message-content pre{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:6px!important;margin:8px 0!important}.scene-message-bubble .user-message-content code{background:#ffffff1a!important;color:#fff!important;padding:2px 4px!important;border-radius:3px!important}.scene-message-bubble .ai-message-content,.scene-message-bubble .ai-message-content *{color:#000!important}.scene-message-bubble .ai-message-content p{margin:0!important;line-height:1.5!important}.scene-message-bubble .ai-message-content pre{background:#f6f8fa!important;border:1px solid #e1e4e8!important;border-radius:6px!important;margin:8px 0!important}.scene-message-bubble .ai-message-content code{background:#f6f8fa!important;color:#000!important;padding:2px 4px!important;border-radius:3px!important}.scene-message-bubble .ai-message-content blockquote{border-left:4px solid #dfe2e5!important;padding-left:16px!important;margin:8px 0!important;color:#6a737d!important}.scene-message-bubble .ai-message-content ul,.scene-message-bubble .ai-message-content ol{margin:8px 0!important;padding-left:20px!important}.scene-message-bubble .ai-message-content li{margin:4px 0!important}.scene-message-wrapper:hover .scene-message-actions-widget{opacity:1;pointer-events:auto}.scene-message-action-btn{height:28px!important;width:28px!important;padding:0!important;font-size:16px!important;border-radius:50%!important;color:var(--text-secondary)!important;background:#e5e7eb03!important;border:none!important;outline:none!important;transition:all .2s ease!important;display:flex!important;align-items:center!important;justify-content:center!important}.scene-message-action-btn:hover{color:var(--primary-color)!important;background:var(--primary-color-light)!important;border:none!important;outline:none!important}.scene-message-action-btn:focus{color:var(--primary-color)!important;background:var(--primary-color-light)!important;box-shadow:none!important;border:none!important;outline:none!important}.scene-message-action-btn:active{color:var(--primary-color)!important;background:var(--primary-color-light)!important;box-shadow:none!important;border:none!important;outline:none!important}.scene-message-delete-btn:hover{color:#ff4d4f!important;background:#ff4d4f1a!important}.scene-message-delete-btn:focus{color:#ff4d4f!important;background:#ff4d4f1a!important}.scene-message-tts-btn{opacity:0;transition:opacity .2s ease}.scene-message-wrapper:hover .scene-message-tts-btn{opacity:1}.scene-message-tts-area .scene-message-tts-btn{opacity:1;transition:all .2s ease;position:relative;overflow:hidden}.scene-message-tts-area .scene-message-tts-btn .anticon{color:#8c8c8c!important}.scene-message-tts-area .scene-message-tts-btn:hover{opacity:1;color:var(--primary-color)!important;background:#21808d1a!important}.scene-message-tts-area .scene-message-tts-btn:hover .anticon{color:var(--primary-color)!important}.scene-message-tts-btn.tts-preparing{background:#ff4d4f1a!important;color:#ff4d4f!important;opacity:1!important;cursor:not-allowed!important;position:relative!important;overflow:hidden!important}.scene-message-tts-btn.tts-preparing .anticon{color:#ff4d4f!important;position:relative!important;z-index:1!important}.scene-message-tts-btn.tts-preparing:before{content:""!important;position:absolute!important;inset:1px!important;border:2px solid transparent!important;border-top:2px solid #ff4d4f!important;border-radius:50%!important;animation:spin-ring 1s linear infinite!important;z-index:0!important}.scene-message-tts-btn.tts-playing{background:#ff4d4f!important;color:#fff!important;opacity:1!important;cursor:pointer!important}.scene-message-tts-btn.tts-playing .anticon{color:#fff!important}.scene-message-tts-btn.tts-playing:hover{background:#ff7875!important;color:#fff!important}.scene-message-tts-btn.tts-playing:hover .anticon{color:#fff!important}.scene-message-tts-area .tts-status-container{opacity:1}.tts-status-text{font-size:13px;color:var(--text-secondary)!important;margin-right:10px}margin-left: 6px; white-space: nowrap; } .tts-playing-icon{animation:tts-pulse 1s ease-in-out infinite}.tts-connecting-icon{animation:tts-spin 1s linear infinite}@keyframes tts-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes tts-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scene-message-tts-area{display:flex;align-items:center;margin-left:8px;flex-shrink:0}.tts-status-container{display:flex;align-items:center;gap:6px}.tts-waiting-indicator{display:inline-flex;align-items:center;gap:2px;height:16px;margin-left:4px}.waiting-dot{width:3px;height:3px;background:#1890ff;border-radius:50%;animation:waiting-animation 1.4s ease-in-out infinite}.waiting-dot:nth-child(1){animation-delay:0s}.waiting-dot:nth-child(2){animation-delay:.2s}.waiting-dot:nth-child(3){animation-delay:.4s}@keyframes waiting-animation{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.voice-wave{display:inline-flex;align-items:center;gap:2px;height:16px;margin-left:6px}.wave-bar{width:3px;background:var(--primary-color);border-radius:1.5px;animation:wave-animation .8s ease-in-out infinite;transform-origin:center;opacity:.9}.wave-bar:nth-child(2){height:4px;animation-delay:0s;animation-duration:.8s}.wave-bar:nth-child(3){height:10px;animation-delay:.1s;animation-duration:.9s}.wave-bar:nth-child(4){height:16px;animation-delay:.2s;animation-duration:.7s}.wave-bar:nth-child(5){height:10px;animation-delay:.3s;animation-duration:.85s}.wave-bar:nth-child(6){height:4px;animation-delay:.4s;animation-duration:.8s}@keyframes wave-animation{0%{transform:scaleY(.4);opacity:.7}25%{transform:scaleY(.8);opacity:.85}50%{transform:scaleY(1.3);opacity:1}75%{transform:scaleY(.9);opacity:.9}to{transform:scaleY(.4);opacity:.7}}.tts-stop-btn{height:20px!important;width:20px!important;padding:0!important;font-size:10px!important;border-radius:50%!important;color:#ff4d4f!important;background:#ff4d4f1a!important;border:none!important;outline:none!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:20px!important;margin-left:4px!important;flex-shrink:0!important}.tts-stop-btn:hover{color:#ff4d4f!important;background:#ff4d4f33!important;border:none!important;outline:none!important;transform:scale(1.1)!important;transition:all .2s ease!important}.tts-stop-btn:focus{color:#ff4d4f!important;background:#ff4d4f33!important;box-shadow:none!important;border:none!important;outline:none!important}.tts-stop-btn:active{color:#ff4d4f!important;background:#ff4d4f4d!important;box-shadow:none!important;border:none!important;outline:none!important;transform:scale(.95)!important}.streaming-cursor{animation:blink 1s infinite;color:var(--primary-color);font-weight:700}.scene-input-floating-container{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:97%;z-index:100}.scene-input-area{background:#fff;border-radius:12px;box-shadow:none;border:1px solid #e8e8e8;min-height:80px;max-height:180px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1)}.scene-drag-indicator{position:absolute;top:0;left:0;right:0;height:4px;cursor:ns-resize;z-index:10;display:flex;justify-content:center;align-items:center;background-color:transparent;transition:background-color .2s}.scene-drag-indicator:hover{background-color:var(--primary-color-light)!important}.scene-drag-dots{display:flex;gap:4px;transition:opacity .2s}.scene-drag-dot{width:4px;height:4px;border-radius:50%;background-color:var(--primary-color)}.scene-textarea-container{flex:1;padding:8px 16px 0;background:#fff;position:relative;overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;margin-bottom:40px}.scene-input-textarea{width:100%!important;height:100%!important;min-height:28px!important;max-height:none!important;font-size:15px!important;background-color:transparent!important;border:none!important;box-shadow:none!important;outline:none!important;padding:4px 8px!important;line-height:1.4!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin;scrollbar-color:#d9d9d9 transparent;will-change:auto;resize:none!important;box-sizing:border-box;color:var(--text-primary);font-family:inherit;flex:1}.scene-input-textarea::-webkit-scrollbar{width:6px}.scene-input-textarea::-webkit-scrollbar-track{background:transparent}.scene-input-textarea::-webkit-scrollbar-thumb{background-color:#d9d9d9;border-radius:3px}.scene-input-textarea::-webkit-scrollbar-thumb:hover{background-color:#bfbfbf}.scene-input-textarea:focus{border:none!important;box-shadow:none!important;outline:none!important}.scene-input-textarea::placeholder{color:#bfbfbf}.scene-function-bar{height:40px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 16px;flex-shrink:0;will-change:auto}.scene-function-bar-left{display:flex;gap:8px;align-items:center}.scene-function-bar-right{display:flex;align-items:center}.scene-function-button{width:32px!important;height:32px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#8c8c8c!important;border:none!important;background:transparent!important;transition:all .2s!important}.scene-function-button:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important}.scene-function-button:focus{background:transparent!important;color:#8c8c8c!important;border:none!important;box-shadow:none!important;outline:none!important}.scene-function-button:focus:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-function-button:active{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;box-shadow:none!important;outline:none!important;transform:none!important}.scene-function-button:disabled{color:#d9d9d9!important;background:transparent!important;cursor:not-allowed!important}.scene-function-button:disabled:hover{color:#d9d9d9!important;background:transparent!important}.speech-recognition-button{position:relative;overflow:hidden}.speech-recognition-button .anticon{color:#8c8c8c!important}.speech-recognition-button:hover .anticon{color:var(--primary-color)!important}.speech-recognition-button.preparing{background:#ff4d4f1a!important;color:#ff4d4f!important}.speech-recognition-button.preparing .anticon{color:#ff4d4f!important}.speech-recognition-button.listening{background:#ff4d4f!important;color:#fff!important}.speech-recognition-button.listening .anticon{color:#fff!important}.speech-recognition-button.preparing:hover,.speech-recognition-button.listening:hover{background:#ff4d4f1a!important;color:#ff4d4f!important}.speech-recognition-button.listening:hover{background:#ff4d4f!important;color:#fff!important}.speech-recognition-button.preparing:hover .anticon{color:#ff4d4f!important}.speech-recognition-button.listening:hover .anticon{color:#fff!important}@keyframes spin-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.speech-recognition-button.preparing:before{content:"";position:absolute;inset:-2px;border:2px solid transparent;border-top:2px solid #ff4d4f;border-radius:50%;animation:spin-ring 1s linear infinite;z-index:0}.speech-recognition-button .speech-icon{position:relative;z-index:1}.scene-send-button{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:#fff!important;border-radius:8px!important;padding:0 16px!important;height:36px!important;font-size:14px!important;font-weight:500!important;display:flex!important;align-items:center!important;gap:6px!important;border:none!important;outline:none!important;box-shadow:none!important;transition:all .2s!important}.scene-send-button:hover{background:#21808dcc!important;border-color:#21808dcc!important;color:#fff!important;transform:translateY(-1px);box-shadow:none!important}.scene-send-button:focus{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-send-button:active{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:#fff!important;transform:translateY(0);box-shadow:none!important}.scene-send-button:disabled{background:#f5f5f5!important;border-color:#d9d9d9!important;color:#bfbfbf!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}.scene-send-button:disabled:hover{background:#f5f5f5!important;border-color:#d9d9d9!important;color:#bfbfbf!important;transform:none!important;box-shadow:none!important}.scene-profile-modal-title{display:flex;align-items:center;gap:8px}.scene-profile-content{padding:16px 0}.scene-profile-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.scene-profile-info h4{margin:0}.scene-profile-description{margin-top:8px;padding:12px;background:#fafafa;border-radius:6px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.scene-retry-button{border:none;outline:none;box-shadow:none}.scene-retry-button:disabled{background-color:#f5f5f5!important;border-color:#d9d9d9!important;color:#fff!important;cursor:not-allowed;opacity:.8}.scene-retry-button:disabled:hover{background-color:#f5f5f5!important;border-color:#d9d9d9!important;color:#fff!important;opacity:.8}.scene-function-button svg{width:16px!important;height:16px!important;transition:all .2s!important}.scene-function-button svg[data-icon]{font-size:16px!important}.scene-function-button .anticon,.scene-function-button svg{display:flex!important;align-items:center!important;justify-content:center!important}@media (max-width: 768px){.scene-function-button svg{width:14px!important;height:14px!important}.scene-send-button svg{width:14px!important;height:14px!important}}@media (min-width: 1200px){.scene-function-button svg{width:18px!important;height:18px!important}.scene-send-button svg{width:16px!important;height:16px!important}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.scene-function-button svg,.scene-send-button svg{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}.streaming-cursor{display:inline-block;animation:blink 1s infinite;color:var(--primary-color);font-weight:700;margin-left:2px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.delete-button{background-color:#ff4d4f!important;border-color:#ff4d4f!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:none!important}.delete-button:hover{background-color:#ff4d4fcc!important;border-color:#ff4d4fcc!important;color:#fff!important;box-shadow:none!important}.scene-waiting-participants{position:absolute;bottom:120px;left:20px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fffc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:8px;border:1px solid rgba(255,255,255,.2);font-size:14px;color:var(--text-secondary);z-index:150}.scene-speaking-bubble{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:14px}.scene-loading-dots{display:flex;gap:2px;align-items:center}.scene-loading-dots span{width:4px;height:4px;border-radius:50%;background-color:var(--primary-color);animation:loading-dots 1.4s infinite ease-in-out}.scene-loading-dots span:nth-child(1){animation-delay:-.32s}.scene-loading-dots span:nth-child(2){animation-delay:-.16s}.scene-loading-dots span:nth-child(3){animation-delay:0s}@keyframes loading-dots{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.scene-comments-overlay{position:absolute;inset:0;background:#0000004d;display:flex;justify-content:center;align-items:center;padding:40px;z-index:1000;pointer-events:auto}.scene-comments-overlay.show{animation:fadeIn .3s ease-out}.scene-comments-overlay.hide{animation:fadeOut .3s ease-out}.scene-comments-panel{background:var(--white);border-radius:12px;box-shadow:0 8px 32px #00000026;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;font-size:15px;transform-origin:top left}.scene-comments-panel.show{animation:slideInFromButton .4s cubic-bezier(.34,1.56,.64,1)}.scene-comments-panel.hide{animation:slideOutToButton .3s cubic-bezier(.55,.085,.68,.53)}.scene-comments-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--background-light)}.scene-comments-title{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-primary);font-size:16px}.scene-comments-content{flex:1;padding:20px;overflow-y:auto;height:0}.scene-comments-content .comments-content{line-height:1.6;color:var(--text-primary)}.scene-comments-content .comments-content h1,.scene-comments-content .comments-content h2,.scene-comments-content .comments-content h3,.scene-comments-content .comments-content h4,.scene-comments-content .comments-content h5,.scene-comments-content .comments-content h6{margin-top:0;margin-bottom:12px;color:var(--text-primary)}.scene-comments-content .comments-content p{margin-bottom:12px}.scene-comments-content .comments-content ul,.scene-comments-content .comments-content ol{margin-bottom:12px;padding-left:20px}.scene-comments-content .comments-content li{margin-bottom:4px}.scene-comments-content .comments-content strong{color:var(--primary-color)}.scene-comments-content .comments-content code{background:var(--background-light);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace}.scene-comments-content .comments-content pre{background:var(--background-light);padding:12px;border-radius:8px;overflow-x:auto;margin-bottom:12px}.ai-comment-button{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:none!important;font-size:16px!important;font-weight:500!important}.ai-comment-button:hover{background-color:#21808dcc!important;border-color:#21808dcc!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:none!important}.ai-comment-button:focus{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:none!important}.scene-comments-header .ant-btn:focus,.scene-comments-header .ant-btn:active{border-color:transparent!important;box-shadow:none!important;outline:none!important}.writing-animation{display:inline-block;margin-left:8px;animation:writing 1.5s ease-in-out infinite}@keyframes writing{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(4px) rotate(3deg)}50%{transform:translate(8px) rotate(-2deg)}75%{transform:translate(4px) rotate(2deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInFromButton{0%{opacity:0;transform:scale(.1)}to{opacity:1;transform:scale(1)}}@keyframes slideOutToButton{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.1)}}.scene-input-container-disabled{opacity:.6;position:relative;cursor:not-allowed}.scene-input-container-disabled:after{content:"";position:absolute;inset:0;background:#ffffff1a;z-index:1}.profile-container{max-width:800px;margin:0 auto;padding:0}.profile-header{margin-bottom:32px}.profile-header .ant-typography{margin-bottom:8px}.profile-content{display:flex;flex-direction:column;gap:24px}.profile-card{border-radius:12px;border:1px solid #f0f0f0;box-shadow:0 2px 8px #0000000f}.profile-avatar-section{display:flex;align-items:center;gap:24px;padding:8px 0}.profile-avatar{background-color:#13343b!important;border:4px solid #fff;box-shadow:0 4px 12px #00000026}.profile-basic-info{flex:1}.profile-name{margin-bottom:4px!important;color:#000!important;font-weight:600}.profile-username{color:#666;font-size:16px}.profile-details-card{border-radius:12px;border:1px solid #f0f0f0;box-shadow:0 2px 8px #0000000f}.profile-section{padding:8px 0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-header .ant-typography{margin-bottom:0!important;color:#000!important;font-weight:600}.edit-button{color:#666!important;padding:4px 8px;height:auto;font-size:14px;transition:all .3s}.edit-button:hover{color:#000!important;background-color:#f5f5f5}.custom-button{border:1px solid rgb(33,128,141)!important;color:#21808d!important;background:#fff!important;transition:all .3s ease!important}.custom-button:hover{border:1px solid rgb(33,128,141)!important;color:#21808d!important;background:#21808d0a!important;box-shadow:none!important}.custom-button:focus{border:none!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.custom-button:active{border:none!important;outline:none!important;box-shadow:none!important;color:#21808d!important;background:#fff!important}.info-grid{display:flex;flex-direction:column;gap:24px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #f5f5f5}.info-item:last-child{border-bottom:none}.info-label{display:flex;align-items:center;gap:12px;color:#666;font-size:14px;font-weight:500;min-width:120px}.info-icon{font-size:16px;color:#999;width:16px;text-align:center}.info-value{color:#000;font-size:14px;font-weight:500;text-align:right}.password-modal .ant-modal-header{padding:12px 24px;border-bottom:1px solid #f0f0f0}.password-modal .ant-modal-body{padding:16px 24px}.password-modal .ant-modal-title{font-size:16px;line-height:1.4;font-weight:600;color:#000}.password-modal .ant-form-item-label>label{color:#000;font-weight:500}.password-modal .ant-input-password{border-radius:6px}.confirm-password-button{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important}.confirm-password-button:hover{background-color:#21808dcc!important;border-color:#21808dcc!important;color:#fff!important}.confirm-password-button:focus{background-color:#21808d!important;border-color:#21808d!important;color:#fff!important;box-shadow:0 0 0 2px #21808d33!important}@media (max-width: 768px){.profile-container{padding:0 16px}.profile-avatar-section{flex-direction:column;text-align:center;gap:16px}.profile-avatar{align-self:center}.info-item{flex-direction:column;align-items:flex-start;gap:8px}.info-label{min-width:auto}.info-value{text-align:left;width:100%}}.profile-card .ant-spin-container{min-height:200px}.profile-card:hover,.profile-details-card:hover{box-shadow:0 4px 16px #0000001a;transition:box-shadow .3s ease}.password-modal .ant-form-item-has-error .ant-input-password{border-color:#ff4d4f}.password-modal .ant-form-item-has-error .ant-form-item-explain-error{color:#ff4d4f}*{box-sizing:border-box}#root{width:100%;min-height:100vh}html,body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}.ant-layout{background:#f0f2f5}.ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.ant-btn,.ant-input,.ant-input-password{border-radius:6px}.ant-menu-item-selected,.ant-menu-submenu-selected,.ant-menu-item:hover,.ant-menu-submenu-title:hover,.ant-menu-item-selected:hover,.ant-menu-submenu-selected:hover{background-color:#21808d26!important}.main-layout-sider .ant-avatar{background-color:#13343b!important}.main-layout-sider:not(.ant-layout-sider-collapsed) .ant-dropdown-trigger:hover{background-color:#21808d26!important}.main-layout-sider:not(.ant-layout-sider-collapsed) [style*="cursor: pointer"]:hover{background-color:#21808d26!important}.main-layout-sider.ant-layout-sider-collapsed .ant-avatar:hover{background-color:#13343b!important}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#21808d26!important}.logo-area .ant-btn{font-size:16px;width:32px;height:32px;border:none!important;outline:none!important;box-shadow:none!important}.logo-area .ant-btn:hover{background:var(--primary-color-light)!important;color:var(--primary-color)!important;border:none!important;outline:none!important;box-shadow:none!important}
