*{box-sizing:border-box;margin:0;padding:0}#root,body,html{background-color:#000}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.chat-interface{padding:20px}.chat-header{border-bottom:1px solid #eee;padding-bottom:20px}.chat-header h2{color:#333;margin:0}.messages-container{display:flex;flex:1 1;flex-direction:column;gap:10px;overflow-y:auto;padding:20px 0}.message{border-radius:15px;margin:5px 0;max-width:70%;padding:10px 15px;position:relative}.message-content{word-wrap:break-word;margin-bottom:4px;overflow-wrap:break-word;white-space:pre-wrap}.message-timestamp{font-size:11px;margin-top:4px;opacity:.7}.user-message .message-timestamp{text-align:right}.user-message{align-self:flex-end;background-color:#007bff;color:#fff}.bot-message{align-self:flex-start;background-color:#e9ecef;color:#333}.input-container{border-top:1px solid #eee;display:flex;gap:10px;padding-top:20px}.message-input{border:1px solid #ddd;border-radius:5px;flex:1 1;font-family:inherit;font-size:14px;line-height:1.5;min-height:60px;padding:10px;resize:none}.send-button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px;transition:background-color .2s}.send-button:hover{background-color:#0056b3}.error-message{background-color:#fff3f3;border:1px solid #ffcdd2;margin-top:5px;padding:5px 10px}.session-info{align-items:flex-end;color:#666;display:flex;flex-direction:column;font-size:14px;gap:4px}.extended-thinking-toggle{margin-top:8px}.thinking-message{align-self:stretch;background-color:#f8f9fa;border:1px dashed #ccc;color:#333;margin-bottom:10px;margin-top:10px;max-width:100%}.thinking-content{max-height:300px;overflow-y:auto}.provider-selector{gap:20px}.model-group{background:hsla(0,0%,100%,.1);border-radius:8px;display:flex;flex-direction:column;gap:5px;padding:10px}.model-group h3{color:#666;font-size:14px;margin:0}.model-group select{background:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:5px}.model-group select:disabled{background:#f5f5f5;cursor:not-allowed}.expression-display{display:flex;flex-direction:column;height:100%;padding:20px}.expression-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding-bottom:20px}.expression-header h2{color:#333;margin:0}.style-input-container{align-items:center;display:flex;gap:10px;padding:20px 0}.canvas-size-inputs{align-items:center;border-right:1px solid #ddd;display:flex;gap:8px;padding:0 10px}.size-input{border:1px solid #ddd;font-size:14px;padding:8px;width:70px}.size-input::-webkit-inner-spin-button,.size-input::-webkit-outer-spin-button{opacity:1}.canvas-size-inputs span{color:#666;font-size:16px}.style-input{border:1px solid #ddd;border-radius:5px;flex:1 1;font-size:14px;padding:10px}.generate-button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px;transition:background-color .2s}.generate-button:hover{background-color:#0056b3}.generate-button:disabled{background-color:#ccc;cursor:not-allowed}.expression-container{background-color:grey;border-radius:10px;flex:1 1;margin:20px 0;min-height:400px;overflow:hidden}.canvas-wrapper,.expression-container{align-items:center;display:flex;justify-content:center;position:relative}.canvas-wrapper{background-color:#000;height:800px;transform-origin:center center;width:1280px}.canvas-wrapper canvas{display:block;height:100%;width:100%}.svg-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.svg-container svg{max-height:90%;max-width:90%;min-height:200px;min-width:300px;object-fit:contain}.loading-overlay{align-items:center;background-color:hsla(0,0%,100%,.8);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.loading{color:#666;font-size:18px}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;color:#dc3545;margin:10px 0;padding:10px}.expression-controls{align-items:center;border-top:1px solid #eee;display:flex;gap:20px;padding-top:20px}.expression-status{color:#666;font-size:14px}.view-code-button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .2s}.view-code-button:hover{background-color:#218838}.code-modal-overlay{align-items:center;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.code-modal{background:#fff;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1);display:flex;flex-direction:column;max-height:80vh;max-width:800px;padding:20px;width:80%}.code-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.code-modal-header h3{color:#333;margin:0}.close-button{font-size:24px;padding:0 8px}.close-button:hover{color:#333}.code-content{background-color:#f8f9fa;border:1px solid #eee;border-radius:4px;flex:1 1;font-family:monospace;font-size:14px;line-height:1.5;margin:0;max-height:calc(80vh - 140px);min-height:600px;overflow-x:auto;padding:15px;resize:none;white-space:pre-wrap;width:100%}.code-content:focus{border-color:#007bff;box-shadow:0 0 0 2px rgba(0,123,255,.25);outline:none}.code-modal-footer{border-top:1px solid #eee;padding-top:15px}.apply-button{background-color:#007bff;border-radius:5px;transition:all .2s}.apply-button:hover:not(:disabled){background-color:#0056b3}.apply-button:disabled{opacity:.7}.extended-thinking-toggle{align-items:center;display:flex;margin-left:10px}.extended-thinking-toggle label{align-items:center;color:#666;cursor:pointer;display:flex;font-size:14px}.extended-thinking-toggle input{margin-right:8px}.thinking-container{background-color:#f8f9fa;border:1px dashed #ccc;border-radius:5px;margin:10px 0;max-height:200px;overflow-y:auto;padding:10px}.thinking-header{border-bottom:1px solid #eee;color:#555;font-weight:700;margin-bottom:8px;padding-bottom:4px}.thinking-content{word-wrap:break-word;background-color:#f5f5f5;border-radius:4px;font-family:monospace;font-size:13px;line-height:1.5;overflow-wrap:break-word;padding:8px;white-space:pre-wrap}.model-selector{align-items:center;display:flex;gap:10px}.model-selector select{background:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:5px}.model-selector select:disabled{background:#f5f5f5;cursor:not-allowed}.code-content{background-color:#fff;border-radius:12px;padding:30px;width:90%}.code-container h3{color:#333;margin:0 0 15px}.code-display{word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ddd;border-radius:8px;font-family:monospace;font-size:14px;line-height:1.5;max-height:500px;min-height:200px;overflow-y:auto;resize:vertical;white-space:pre-wrap;width:100%}.code-modal-footer{display:flex;justify-content:flex-end;margin-top:15px}.apply-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .3s}.apply-button:hover{background-color:#45a049}.apply-button:disabled{background-color:#ccc;cursor:not-allowed}.code-stats{color:#8e8e8e;display:flex;font-size:14px;gap:20px;margin-bottom:15px}.code-stats span{align-items:center;background-color:#2d2d2d;border-radius:4px;display:inline-flex;padding:4px 10px}.app{align-items:stretch;display:flex;height:calc(100vh - 80px);justify-content:center}.container{width:100%}.left-panel{max-width:500px;overflow:hidden}.right-panel{flex:2 1;min-width:500px;overflow:hidden}@media (max-width:768px){.container{flex-direction:column}.left-panel{max-width:none}.right-panel{min-width:0}}.app{box-sizing:border-box;height:100vh;padding:20px;width:100%}.app-nav{background-color:#333;margin-bottom:20px;padding:10px 20px}.app-nav ul{display:flex;list-style:none;margin:0;padding:0}.app-nav li{margin-right:20px}.app-nav a{border-radius:4px;color:#fff;font-weight:500;padding:5px 10px;text-decoration:none;transition:background-color .3s}.app-nav a:hover{background-color:#555}.container{display:flex;gap:20px;height:calc(100vh - 80px)}.left-panel,.right-panel{background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);flex:1 1;min-width:300px}.prompt-test-container,.temi-container{flex-direction:column}.full-width-panel{background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);height:100%;width:100%}.provider-selector{display:flex;gap:10px;margin:10px 0}.provider-selector select{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;padding:5px 10px;transition:border-color .3s}.provider-selector select:hover{border-color:#666}.provider-selector select:disabled{background-color:#f5f5f5;cursor:not-allowed}.provider-selector select:focus{border-color:#007bff;box-shadow:0 0 0 2px rgba(0,123,255,.25);outline:none}.temi-page{background-color:grey;flex-direction:column;height:100vh;margin:0;overflow:hidden;padding:0;position:relative;width:100vw}.canvas-container,.temi-page{align-items:center;display:flex;justify-content:center}.canvas-container{background-color:#000;height:800px;transform-origin:center center;width:1280px}.canvas-container canvas{display:block;height:100%;width:100%}.canvas-container .svg-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.canvas-container .svg-container svg{max-height:100%;max-width:100%;object-fit:contain}.bottom-controls{bottom:20px;gap:20px;height:100px;left:0;padding:0 20px;position:absolute;right:0}.bottom-controls,.voice-button{align-items:center;display:flex;justify-content:center}.voice-button{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:none;border-radius:12px;cursor:pointer;height:70px;transition:background-color .2s;width:400px}.voice-button,.voice-button:hover{background:hsla(0,0%,100%,.5)}.voice-button:disabled{cursor:default;opacity:.7}.voice-button svg{fill:#4285f4;height:36px;width:36px}.chat-history-button,.code-button,.customize-button,.feedback-button{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:hsla(0,0%,100%,.3);border:none;border-radius:12px;cursor:pointer;display:flex;height:70px;justify-content:center;position:absolute;right:30px;transition:background-color .2s;width:70px}.feedback-button{right:300px}.chat-history-button{right:210px}.customize-button{right:120px}.code-button{right:30px}.chat-history-button:hover,.code-button:hover,.customize-button:hover,.feedback-button:hover{background:hsla(0,0%,100%,.5)}.chat-history-button svg,.code-button svg,.customize-button svg,.feedback-button svg{height:36px;width:36px}.feedback-button svg{fill:#ea4335}.chat-history-button svg{fill:#4285f4}.customize-button svg{fill:#9c27b0}.code-button svg{fill:#34a853}.voice-button.listening{background:rgba(66,133,244,.3);box-shadow:0 0 15px rgba(66,133,244,.5)}.pulse-animation{background:rgba(66,133,244,.2);border-radius:12px}.backend-error,.voice-error{background-color:rgba(255,59,48,.1);border-radius:8px;color:#ff3b30;margin-top:10px;max-width:80%;padding:8px 12px}.backend-error{font-size:14px;font-weight:700;text-align:center}.qrcode-popup{animation:fadeIn .3s ease-in-out;height:100%;width:100%}.qrcode-content{align-items:center;border-radius:16px;box-shadow:0 10px 25px rgba(0,0,0,.2);display:flex;flex-direction:column;max-width:90%;width:400px}.qrcode-image-container{width:100%}.qrcode-text{color:#202124}.qrcode-text h3{font-size:20px;font-weight:500;margin-bottom:10px}.qrcode-text p{color:#5f6368;font-size:16px}.code-popup{align-items:center;background-color:rgba(0,0,0,.7);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.code-content{background-color:#1e1e1e;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1);max-height:80vh;max-width:800px;overflow-y:auto;padding:20px;position:relative;width:80%}.code-container{margin-top:20px}.code-container h3{color:#fff;font-size:1.2em;margin-bottom:15px}.code-display{background-color:#2d2d2d;border-radius:4px;margin:0;overflow-x:auto;padding:15px}.code-display code{color:#d4d4d4;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;tab-size:2;white-space:pre}.code-content .close-button{background:none;border:none;color:#fff;cursor:pointer;padding:5px;position:absolute;right:10px;top:10px;transition:color .3s ease}.code-content .close-button:hover{color:#f44}.code-content .close-button svg{height:24px;width:24px}.qrcode-popup{align-items:center;background-color:rgba(0,0,0,.7);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.qrcode-content{background-color:#fff;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:400px;padding:30px;position:relative;width:90%}.qrcode-image-container{display:flex;justify-content:center;margin:20px 0}.qrcode-image{height:200px;object-fit:contain;width:200px}.qrcode-text{margin-top:20px;text-align:center}.qrcode-text h3{color:#333;font-size:1.2em;margin:0 0 10px}.qrcode-text p{color:#666;margin:0}.chat-history-popup{align-items:center;background-color:rgba(0,0,0,.7);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.chat-history-content{background-color:#fff;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1);display:flex;flex-direction:column;max-height:80vh;max-width:800px;padding:30px;position:relative;width:90%}.chat-history-container{flex-grow:1;margin-top:20px;overflow-y:auto}.chat-history-container h3{color:#333;font-size:1.2em;margin:0 0 20px}.chat-history-list{display:flex;flex-direction:column;gap:20px}.chat-item{border-bottom:1px solid #eee;padding-bottom:15px}.chat-item:last-child{border-bottom:none}.chat-timestamp{color:#666;font-size:.8em;margin-bottom:8px}.chat-message{border-radius:8px;margin:8px 0;max-width:80%;padding:10px}.chat-message.user{background-color:#e3f2fd;margin-left:auto}.chat-message.assistant{background-color:#f5f5f5;margin-right:auto}.message-label{color:#666;font-size:.8em;margin-bottom:4px}.message-content{color:#333}.close-button{color:#666;padding:5px;transition:color .3s ease}.close-button:hover{color:#f44}.popup-overlay{align-items:center;animation:fadeIn .3s ease-in-out;background-color:rgba(0,0,0,.7);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.popup-content{background-color:#fff;border-radius:16px;box-shadow:0 10px 25px rgba(0,0,0,.2);max-width:90%;padding:30px;position:relative;width:600px}.close-button{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;height:30px;justify-content:center;position:absolute;right:10px;top:10px;transition:background-color .2s;width:30px}.close-button:hover{background-color:rgba(0,0,0,.1)}.close-button svg{fill:#5f6368;height:24px;width:24px}.customize-container{margin-top:10px}.customize-container h3{color:#202124;font-size:20px;font-weight:500;margin:0 0 20px}.customize-content{display:flex;flex-direction:column;gap:20px}.input-section{align-items:flex-start;gap:10px}.customize-textarea{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#202124;cursor:text;flex:1 1;font-size:14px;line-height:1.5;min-height:120px;padding:12px;resize:vertical;transition:border-color .3s,background-color .3s}.customize-textarea.readonly,.customize-textarea.readonly:focus{background-color:#f1f3f4;border-color:#dadce0}.customize-textarea.readonly:focus{outline:none}.customize-textarea:focus{background-color:#fff;border-color:#4285f4;box-shadow:0 0 0 2px rgba(66,133,244,.1);outline:none}.customize-textarea::-webkit-input-placeholder{color:#5f6368;opacity:.8}.customize-textarea::placeholder{color:#5f6368;opacity:.8}.voice-input-button{align-items:center;background-color:#4285f4;border:none;border-radius:8px;cursor:pointer;display:flex;height:44px;justify-content:center;position:relative;transition:background-color .3s;width:44px}.voice-input-button:hover{background-color:#1a73e8}.voice-input-button:disabled{background-color:#dadce0;cursor:not-allowed}.voice-input-button svg{fill:#fff;height:24px;width:24px}.voice-input-button.listening{background-color:#ea4335}.pulse-animation{animation:pulse 1.5s infinite;background-color:rgba(234,67,53,.3);border-radius:8px;height:100%;position:absolute;width:100%}.confirm-button{align-self:flex-end;background-color:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 24px;transition:background-color .3s}.confirm-button:hover{background-color:#1a73e8}.voice-error{color:#ea4335;font-size:14px;margin-top:-10px;text-align:center}.confirm-button.disabled{background-color:#dadce0;cursor:not-allowed}.confirm-button.disabled:hover{background-color:#dadce0}.error-message{background-color:#fce8e6;border:1px solid #ea4335;border-radius:4px;color:#ea4335;margin-top:-10px;padding:8px;text-align:center}.designer-page{background-color:#f7f9fc;color:#1d2129;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh;overflow:hidden}.designer-header{align-items:center;background-color:#131c2f;border-bottom:1px solid #3a4453;box-shadow:0 1px 2px rgba(0,0,0,.1);display:flex;justify-content:space-between;min-height:56px;position:relative}.designer-title{align-items:center;display:flex;flex:1 1;gap:0;padding:0 20px}.designer-title h1{color:#fff;font-size:18px;font-weight:600;margin:0}.left-save-controls{align-items:center;display:flex;gap:16px;margin-left:24px}.back-to-projects-btn{align-items:center;background:#1e2a47;border:none;border-radius:6px;color:#e2e8f0;cursor:pointer;display:flex;font-size:16px;height:28px;justify-content:center;padding:0;transition:none;width:28px}.back-to-projects-btn:active{transform:translateY(1px)}.designer-page .project-title{align-items:center;color:#fff;display:flex;flex-shrink:0;font-size:20px!important;font-weight:600;gap:0;margin:0;white-space:nowrap}h1.project-title{font-size:20px!important}.unsaved-indicator{animation:blink 1.5s infinite;color:#ff7d00;font-size:12px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.system-logo{align-items:center;display:flex;justify-content:center;margin-right:0}.logo-image{height:40px;object-fit:contain;width:auto}.home-btn{align-items:center;background:transparent;border:none;color:#e2e8f0;cursor:pointer;display:flex;justify-content:center;margin-left:8px;padding:0}.home-btn svg{height:28px;width:28px}.home-btn:active{transform:translateY(1px)}.header-divider{background-color:hsla(0,0%,100%,.16);flex-shrink:0;height:56px;margin:0 20px;width:1px}.header-save-controls{align-items:center;display:flex;gap:16px;margin-right:16px}.header-action-btn{background:transparent!important;border:none!important;box-shadow:none!important;color:#e2e8f0;cursor:pointer;font-size:20px;font-weight:700;padding:12px;transition:color .2s ease}.header-action-btn:hover{color:#fff}.header-action-btn:disabled{color:#86909c;cursor:not-allowed}.export-btn-with-icon{align-items:center;display:flex;gap:4px;white-space:nowrap}.export-btn-with-icon>span{margin:0}.export-btn-with-icon>:last-child{margin-left:2px}.export-btn-with-icon svg{flex-shrink:0;height:22px;width:22px}.mode-toggle-btn{gap:8px!important}.auto-save-indicator{align-items:center;color:#e2e8f0;display:flex;font-size:14px;gap:12px}.left-save-controls .auto-save-indicator{font-size:14px}.auto-save-toggle{align-items:center;cursor:pointer;display:flex;gap:8px;-webkit-user-select:none;user-select:none}.auto-save-toggle input[type=checkbox]{display:none}.toggle-slider{background-color:#e5e6eb;border-radius:12px;height:18px;position:relative;transition:background-color .3s ease;width:36px}.toggle-slider:before{background-color:#fff;border-radius:50%;content:"";height:14px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:14px}.auto-save-toggle input[type=checkbox]:checked+.toggle-slider{background-color:#00b42a}.auto-save-toggle input[type=checkbox]:checked+.toggle-slider:before{transform:translateX(18px)}.toggle-label{color:#e2e8f0;font-size:14px;font-weight:500}.auto-save-status{color:#00b42a;font-size:12px;font-weight:500}@keyframes fade-in-out{0%,to{opacity:.6}50%{opacity:1}}.project-name-display{color:#86909c;font-size:14px;font-weight:500}.version-management-bar{align-items:center;background-color:#dfe5ee;border-bottom:1px solid #e5e6eb;box-sizing:border-box;display:flex;flex-wrap:wrap;font-size:14px;gap:32px;height:48px;justify-content:flex-start;padding:10px 20px}.version-selector label{color:#4e5969;font-weight:500;margin:0}.version-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25 7 8.75l3.5-3.5' stroke='%234e5969' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;background-size:14px 14px;border:1px solid #e5e6eb;border-radius:4px;box-sizing:border-box;color:#1d2129;cursor:pointer;font-size:12px;height:28px;min-width:180px;padding:4px 20px 4px 8px;transition:all .2s ease}.version-select:hover{border-color:#165dff}.version-select:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.create-version-btn-simple{align-items:center;background:#fff;border:1px solid #e5e6eb;border-radius:4px;color:#4e5969;cursor:pointer;display:flex;font-size:12px;font-weight:500;height:28px;justify-content:center;padding:0;transition:all .2s ease;white-space:nowrap;width:28px}.create-version-btn-simple svg{height:16px;width:16px}.create-version-btn-simple:hover{background:#f2f8ff;border-color:#165dff;color:#165dff}.create-version-btn-simple:active{transform:translateY(1px)}.delete-version-btn{align-items:center;background:#fff;border:1px solid #e5e6eb;border-radius:4px;color:#4e5969;cursor:pointer;display:flex;font-size:12px;height:28px;justify-content:center;padding:0;transition:all .2s ease;white-space:nowrap;width:28px}.delete-version-btn svg{height:16px;width:16px}.delete-version-btn:hover{background:#ffece8;border-color:#f53f3f;color:#cb272d}.delete-version-btn:active{transform:translateY(1px)}.version-type-badge{background-color:#f2f3f5;border-radius:4px;color:#4e5969;font-size:11px;font-weight:500;padding:2px 6px}.version-type-badge[data-type=role]{background-color:#e8f4ff;color:#165dff}.version-type-badge[data-type=expression]{background-color:#e8ffea;color:#00b42a}.project-mode-badge{background-color:#f2f3f5;border-radius:4px;color:#4e5969;font-size:11px;font-weight:500;padding:2px 6px}.project-mode-badge[data-mode=role]{background-color:#e8f4ff;color:#165dff}.project-mode-badge[data-mode=expression]{background-color:#e8ffea;color:#00b42a}.designer-center-actions{display:flex;gap:12px;left:50%;position:absolute;transform:translateX(-50%)}.designer-actions{align-items:center;display:flex;padding:0 20px}.designer-settings-btn{font-size:14px!important}.designer-debug-btn,.designer-settings-btn{align-items:center;background-color:#1e2a47!important;border:none!important;border-radius:6px!important;color:#e2e8f0!important;cursor:pointer;display:flex;height:36px!important;justify-content:center;padding:0!important;transition:none!important;width:36px!important}.designer-debug-btn{font-size:16px!important}.back-btn,.export-btn,.history-generation-btn,.preview-btn,.save-btn,.save-test-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.back-btn{background-color:#f2f3f5;border:1px solid #e5e6eb;color:#4e5969}.back-btn:hover{background-color:#e5e6eb}.preview-btn{background-color:#165dff;color:#fff}.preview-btn:hover{background-color:#0e42d2}.export-btn{background-color:#165dff;border:none;color:#fff!important;transition:none}.export-btn:hover{background-color:#165dff!important;border:none!important;box-shadow:none!important;color:#fff!important;transform:none!important}.save-btn{background-color:#f53f3f}.save-btn:hover:not(:disabled){background-color:#cb272d}.save-btn:disabled{background-color:#86909c}.save-btn.simple{background-color:#1e2a47;border:none;color:#fff;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.header-action-btn .mode-tag{align-items:center;color:#e2e8f0!important;display:inline-flex;font-size:20px!important;font-weight:700!important;gap:8px;padding:4px 0!important}.header-action-btn .mode-tag,.header-action-btn .mode-tag.design-mode,.header-action-btn .mode-tag.test-mode{background:transparent!important;border:none!important;box-shadow:none!important}.save-btn.simple:disabled{background-color:#86909c;cursor:not-allowed}.save-test-btn{background-color:#00b42a;color:#fff}.save-test-btn:hover:not(:disabled){background-color:#009a29}.save-test-btn:disabled{background-color:#86909c;cursor:not-allowed}.mode-label{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;letter-spacing:0;outline:none;padding:6px 12px;transition:all .2s ease;width:100px}.mode-label.test-mode{background-color:#e74c3c;border:none;color:#fff;font-weight:500}.mode-label.edit-mode{background-color:#1e3a8a;border:none;color:#e2e8f0}.history-generation-btn{background-color:#553c9a;border:none;color:#e2e8f0}.history-generation-btn:hover{background-color:#44337a}.horizontal-toolbar{background-color:#fafbfc;border-bottom:1px solid #e5e6eb;box-shadow:0 1px 2px rgba(0,0,0,.04);overflow-x:auto;padding:0;position:relative;z-index:10}.designer-workspace{display:flex;flex:1 1;min-height:0;overflow:hidden}.designer-workspace.with-bottom-panel{flex-direction:column}.editor-area{display:flex;flex:1 1;min-height:200px;overflow:hidden}.editor-area.split-view{flex-shrink:0}.test-area{background-color:#fff;display:flex;flex:1 1;min-height:200px;overflow:hidden}.test-area.split-view{border-top:none;flex-shrink:0;flex:1 1}.bottom-test-bar{border-top:1px solid #e5e6eb;bottom:0;box-shadow:0 -2px 12px rgba(0,0,0,.12);cursor:pointer;height:50px;left:0;position:fixed;right:0;z-index:1000}.bottom-test-bar,.bottom-test-bar:hover{background-color:#263c77}.test-bar-content{align-items:center;display:flex;height:100%;justify-content:space-between;padding:0 20px}.test-bar-left{align-items:center;display:flex;gap:12px}.test-bar-icon{font-size:16px}.test-bar-title{color:#fff;font-size:20px;font-weight:600}.test-bar-info{color:#86909c;font-size:12px;margin-left:8px}.test-bar-right{align-items:center;display:flex;gap:12px}.test-quick-buttons{align-items:center;display:flex;gap:8px}.test-quick-btn{background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.3);border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.test-quick-btn:hover{background:hsla(0,0%,100%,.25);border-color:hsla(0,0%,100%,.5);transform:translateY(-1px)}.test-quick-btn:active{background:hsla(0,0%,100%,.2);transform:translateY(0)}.test-bar-expand-btn{align-items:center;background-color:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:#4e5969;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;transition:all .2s ease;width:28px}.test-bar-expand-btn:hover{background-color:#f2f8ff;border-color:#165dff;color:#165dff}.test-bar-expand-btn:active{transform:scale(.95)}.left-sidebar{background-color:#fff;border-right:1px solid #e5e6eb;display:flex;flex-direction:column;flex-shrink:0;min-height:0;overflow-y:auto;position:relative;transition:width .3s ease}.left-sidebar.collapsed{overflow:hidden;width:40px}.canvas-area{background-color:#e5ebf7;display:flex;flex:1 1;flex-direction:column;min-height:0;min-width:0;overflow:auto;position:relative}.canvas-info-bar{background-color:#fff;border-bottom:1px solid #e5e6eb;box-shadow:0 1px 2px rgba(0,0,0,.04);padding:8px 16px}.selected-element-display{align-items:center;color:#1d2129;display:flex;font-size:12px;gap:16px;min-height:20px}.selected-element-display span{white-space:nowrap}.selected-element-display strong{color:#4e5969;font-weight:500}.no-selection{color:#86909c;font-style:italic}.multi-selection{color:#165dff;font-weight:500}.canvas-status-bar{background-color:#f7f9fc;border-top:1px solid #e5e6eb;padding:6px 16px}.canvas-status{align-items:center;color:#86909c;display:flex;font-size:11px;gap:16px}.clear-properties-btn{background-color:initial;border:none;border-radius:4px;color:#86909c;cursor:pointer;font-size:12px;font-weight:500;min-width:48px;padding:4px 8px;transition:all .2s ease}.clear-properties-btn:hover{background-color:#e5e6eb;color:#4e5969}.clear-properties-btn:active{background-color:#c9cdd4;transform:scale(.98)}.history-rules-btn:hover{background-color:#e5e6eb}.right-sidebar{background-color:#fff;border-left:1px solid #e5e6eb;display:flex;flex-direction:column;flex-shrink:0;min-height:0;overflow-y:auto;position:relative;transition:width .3s ease}.right-sidebar.collapsed{overflow:hidden;width:40px}.sidebar-toggle-btn{align-items:center;background-color:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:#4e5969;cursor:pointer;display:flex;font-size:12px;font-weight:700;height:28px;justify-content:center;position:absolute;top:7px;transition:all .2s ease;width:28px;z-index:10}.sidebar-toggle-btn:hover{background-color:#f2f8ff;border-color:#165dff;color:#165dff}.sidebar-toggle-btn:active{transform:scale(.95)}.left-toggle{right:6px}.right-toggle{left:auto;right:6px}.left-sidebar.collapsed .left-toggle{right:8px}.right-sidebar.collapsed .right-toggle{left:8px}.panel{background-color:#fff;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.inspector-panel,.panel-header{border-bottom:1px solid #e5e6eb}.inspector-panel{flex:0 0 50%;min-height:300px}.layers-panel{flex:1 1;min-height:200px}.rules-panel{height:100%}.panel-header h3{color:#1d2129;font-size:20px;font-weight:600;margin:0}.layer-panel-header{background-color:#263c77!important}.layer-panel-header h3{color:#fff}.inspector-panel-header{background-color:#263c77!important}.inspector-panel-header h3{color:#fff}.rule-editor-panel-header{background-color:#263c77!important}.rule-editor-panel-header h3{color:#fff}.bottom-panel-header{background-color:#263c77!important}.panel-toggle{align-items:center;background:none;border:none;border-radius:4px;color:#86909c;cursor:pointer;display:flex;font-size:16px;height:20px;justify-content:center;padding:0;width:20px}.panel-toggle:hover{background-color:#f2f3f5}@media (max-width:1200px){.left-sidebar{width:250px}.right-sidebar{min-width:250px;width:35%}}@media (max-width:900px){.horizontal-toolbar{padding:4px 8px}.designer-workspace{flex-direction:column}.left-sidebar{flex-direction:row;height:150px;overflow-x:auto;width:100%}.right-sidebar{height:200px;width:100%}.inspector-panel,.layers-panel{min-width:250px}.rules-panel{margin:4px;min-width:auto}}.panel::-webkit-scrollbar,.right-sidebar::-webkit-scrollbar{width:8px}.panel::-webkit-scrollbar-track,.right-sidebar::-webkit-scrollbar-track{background:#1e1e1e}.panel::-webkit-scrollbar-thumb,.right-sidebar::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.panel::-webkit-scrollbar-thumb:hover,.right-sidebar::-webkit-scrollbar-thumb:hover{background:#555}.test-mode-content{align-items:center;background-color:#f7f9fc;display:flex;flex:1 1;justify-content:center}.test-mode-placeholder{background-color:#fff;border:2px dashed #e5e6eb;border-radius:12px;color:#86909c;font-size:16px;max-width:400px;padding:40px;text-align:center}.test-mode-placeholder p{margin:8px 0}.test-mode-placeholder p:first-child{color:#1d2129;font-size:20px;font-weight:600;margin-bottom:16px}.version-selector{align-items:center;display:flex;gap:6px}.create-version-btn{background-color:#00b42a;border-radius:4px;font-size:12px;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.create-version-btn:hover{background-color:#009a29;box-shadow:0 2px 8px rgba(0,180,42,.2);transform:translateY(-1px)}.create-version-btn:active{transform:translateY(0)}.modal-content{overflow:auto}.create-version-modal{padding:0;width:480px}.modal-header{padding:20px 24px 16px}.close-btn{background:none;color:#86909c;font-size:24px;line-height:1;padding:4px;transition:color .2s ease}.close-btn:hover{color:#1d2129}.modal-body{padding:20px 24px 24px}.modal-body p{color:#4e5969;font-size:14px;margin:0 0 20px}.version-type-options{display:flex;flex-direction:column;gap:12px}.version-type-btn{align-items:center;background-color:#f7f8fa;border:2px solid #e5e6eb;border-radius:8px;cursor:pointer;display:flex;gap:16px;padding:16px;text-align:left;transition:all .2s ease;width:100%}.version-type-btn:hover{background-color:#f0f7ff;border-color:#165dff;box-shadow:0 4px 12px rgba(22,93,255,.1);transform:translateY(-1px)}.version-type-btn:active{transform:translateY(0)}.version-type-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.version-type-btn:disabled:hover{background-color:#f7f8fa;border-color:#e5e6eb;box-shadow:none;transform:none}.role-btn:hover:not(:disabled){background-color:#f0f7ff;border-color:#165dff}.expression-btn:hover:not(:disabled){background-color:#f0fff2;border-color:#00b42a}.version-type-icon{flex-shrink:0;font-size:32px}.version-type-text{flex:1 1}.version-type-text h4{color:#1d2129;font-size:16px;font-weight:600;margin:0 0 4px}.version-type-text p{color:#86909c;font-size:13px;line-height:1.4;margin:0}.loading-indicator{color:#86909c;font-size:14px;padding:16px 0;text-align:center}.loading-indicator span{align-items:center;display:inline-flex;gap:8px}.loading-indicator span:before{animation:spin 1s linear infinite;border:2px solid #e5e6eb;border-radius:4px;border-top-color:#165dff;content:"";height:16px;width:16px}.create-version-modal-enhanced{display:flex;flex-direction:column;max-height:80vh;max-width:90vw;width:900px}.modal-body-enhanced{display:flex;flex:1 1;gap:24px;min-height:500px;padding:24px}.left-section{border-right:1px solid #e5e6eb;padding-right:24px}.left-section,.right-section{display:flex;flex:1 1;flex-direction:column;height:100%}.right-section{padding-left:24px}.section-title{align-items:center;border-bottom:1px solid #f2f3f5;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.section-title h4{color:#1d2129;font-size:18px!important;font-weight:600;margin:0}.current-version-info,.version-count{background:#f7f8fa;border-radius:12px;color:#86909c;font-size:12px;padding:2px 8px}.form-group{flex-shrink:0;margin-bottom:20px}.form-group label{color:#1d2129;margin-bottom:8px}.version-type-selection{display:flex;flex-direction:column;gap:12px}.version-type-option{align-items:center;background-color:#f7f8fa;border:2px solid #e5e6eb;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:16px;text-align:left;transition:all .2s ease;width:100%}.version-type-option.active,.version-type-option:hover:not(:disabled){background-color:#f0f7ff;border-color:#165dff}.version-type-option.active{box-shadow:0 2px 8px rgba(22,93,255,.1)}.version-type-option:disabled{cursor:not-allowed;opacity:.6}.version-type-option .version-type-icon{flex-shrink:0;font-size:24px}.version-type-option .version-type-text h5{color:#1d2129;font-size:14px;font-weight:600;margin:0 0 4px}.version-type-option .version-type-text p{color:#86909c;font-size:12px;line-height:1.4;margin:0}.create-actions{flex-shrink:0;margin-top:auto;padding-top:24px}.confirm-create-btn{background-color:#165dff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:all .2s ease;width:100%}.confirm-create-btn:hover:not(:disabled){background-color:#0e42d2;box-shadow:0 4px 12px rgba(22,93,255,.3);transform:translateY(-1px)}.confirm-create-btn:disabled{background-color:#86909c;box-shadow:none;cursor:not-allowed;transform:none}.versions-history-list{flex:1 1;min-height:0;overflow-y:auto}.versions-grid-small{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;height:100%}.version-card-small{background:#fff;border:1px solid #e5e6eb;border-radius:6px;padding:16px;transition:all .2s ease}.version-card-small:hover{border-color:#165dff;box-shadow:0 2px 8px rgba(22,93,255,.1)}.version-card-small.read-only{cursor:default}.version-card-small.read-only:hover{border-color:#e5e6eb;box-shadow:none}.version-header-small{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.version-number{color:#1d2129;font-size:13px;font-weight:600}.type-badge-small{border-radius:4px;font-size:10px;font-weight:500;padding:2px 6px}.type-badge-small.role{background-color:#e8f4ff;color:#165dff}.type-badge-small.expression{background-color:#e8ffea;color:#00b42a}.version-name-display{margin-bottom:8px}.version-name-display p{color:#4e5969;font-size:12px;margin:0}.version-info-small{display:flex;flex-direction:column;gap:4px}.version-info-small p{color:#86909c;font-size:11px;margin:0}.version-info-small strong{color:#4e5969;font-weight:500}.empty-versions{align-items:center;color:#86909c;display:flex;font-size:13px;height:100%;justify-content:center;padding:40px 20px;text-align:center}.versions-history-list::-webkit-scrollbar{width:4px}.versions-history-list::-webkit-scrollbar-track{background:#f7f8fa;border-radius:2px}.versions-history-list::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:2px}.versions-history-list::-webkit-scrollbar-thumb:hover{background:#86909c}.canvas-size-selector,.expression-mode-section{align-items:center;display:flex;gap:12px}.expression-mode-section{margin-left:auto}.expression-mode-section label{color:#4e5969;font-size:14px;font-weight:500}.expression-mode-selector{background:#fff;border:1px solid #e5e6eb;border-radius:14px;height:28px;overflow:hidden;padding:2px}.expression-mode-btn,.expression-mode-selector{align-items:center;box-sizing:border-box;display:flex}.expression-mode-btn{background:transparent;border:none;border-radius:12px;color:#4e5969;cursor:pointer;font-size:14px;font-weight:500;height:24px;justify-content:center;margin:0;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.expression-mode-btn:hover:not(.active){background-color:rgba(22,93,255,.1);color:#165dff}.expression-mode-btn.active{background-color:#165dff;color:#fff}.expression-mode-btn.change-expression-btn.active{background-color:#ff5d3c;color:#fff}.canvas-size-selector label{color:#4e5969;font-weight:500;white-space:nowrap}.canvas-size-options{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.canvas-size-btn{background:#fff;border:1px solid #e5e6eb;border-radius:4px;box-sizing:border-box;color:#4e5969;cursor:pointer;font-size:12px;height:28px;padding:4px 12px;transition:all .2s ease;white-space:nowrap}.canvas-size-btn.active,.canvas-size-btn:hover{border-color:#165dff;color:#165dff}.canvas-size-btn.active{background-color:#f0f7ff;font-weight:500}.custom-size-inputs{align-items:center;color:#4e5969;display:flex;font-size:12px;gap:6px}.custom-size-inputs span{white-space:nowrap}.size-input{border:1px solid #e5e6eb;border-radius:4px;font-size:12px;padding:4px 6px;text-align:center;transition:border-color .2s ease;width:60px}.size-input:focus{border-color:#1976d2;box-shadow:0 0 0 2px rgba(25,118,210,.1);outline:none}.auto-save-toggle-version-bar{align-items:center;cursor:pointer;display:flex;-webkit-user-select:none;user-select:none}.auto-save-toggle-version-bar input[type=checkbox]{display:none}.toggle-slider-version-bar{background-color:#e5e6eb;border-radius:12px;height:18px;position:relative;transition:background-color .3s ease;width:36px}.toggle-slider-version-bar:before{background-color:#fff;border-radius:50%;content:"";height:14px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:14px}.auto-save-toggle-version-bar input[type=checkbox]:checked+.toggle-slider-version-bar{background-color:#00b42a}.auto-save-toggle-version-bar input[type=checkbox]:checked+.toggle-slider-version-bar:before{transform:translateX(18px)}.canvas-editor{background-color:#e5ebf7;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.zoom-controls{left:5px}.action-controls,.zoom-controls{align-items:center;background-color:#fff;border:1px solid #e5e6eb;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);display:flex;font-size:12px;gap:4px;padding:8px;position:absolute;top:5px;z-index:1000}.action-controls{right:5px}.action-controls button,.zoom-controls button{align-items:center;background-color:#f7f8fa;border:none;border-radius:4px;color:#1d2129;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:28px;justify-content:center;transition:all .2s ease;width:28px}.action-controls button:hover:not(:disabled),.zoom-controls button:hover{background-color:#e5e6eb}.action-controls button:active:not(:disabled),.zoom-controls button:active{background-color:#c9cdd4}.action-controls button:disabled{background-color:#f7f8fa;color:#c9cdd4;cursor:not-allowed;opacity:.6}.zoom-level{color:#4e5969;font-family:Monaco,Menlo,Consolas,monospace;font-weight:500;min-width:45px;padding:0 4px;text-align:center}.canvas-container{background-color:#e5ebf7;flex:1 1;height:100%;min-height:0;overflow:hidden;padding:20px;position:relative;width:100%}.canvas-svg{background-color:#fff;cursor:crosshair;-webkit-user-select:none;user-select:none}.canvas-svg.panning{cursor:-webkit-grab;cursor:grab}.canvas-svg.panning:active{cursor:-webkit-grabbing;cursor:grabbing}.canvas-svg.select-tool{cursor:default}.canvas-svg circle.selected,.canvas-svg ellipse.selected,.canvas-svg path.selected,.canvas-svg polygon.selected,.canvas-svg rect.selected{stroke:#1890ff!important;stroke-width:2!important;stroke-dasharray:none!important}.element-label{pointer-events:none;-webkit-user-select:none;user-select:none}.element-label rect{-webkit-filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.element-label text{dominant-baseline:central;text-anchor:start}.drawing-path{stroke-dasharray:2,2;animation:dash 1s linear infinite}@keyframes dash{to{stroke-dashoffset:-4}}.canvas-info{align-items:center;background-color:#fff;border-top:1px solid #e5e6eb;color:#4e5969;display:flex;font-family:Monaco,Menlo,Consolas,monospace;font-size:12px;justify-content:space-between;padding:8px 16px}.canvas-info span{padding:0 8px}.canvas-info span:not(:last-child){border-right:1px solid #e5e6eb}.canvas-svg[data-tool=select]{cursor:default}.canvas-svg[data-tool=circle],.canvas-svg[data-tool=ellipse],.canvas-svg[data-tool=path],.canvas-svg[data-tool=rect]{cursor:crosshair}.canvas-svg.dragging{cursor:move}.canvas-svg.drawing{cursor:crosshair}.selection-box{fill:rgba(22,93,255,.1);stroke:#165dff;stroke-width:1;stroke-dasharray:4,4}.selection-container{pointer-events:none}.selection-border{cursor:move;pointer-events:auto}.control-point{fill:#1890ff;stroke:#fff;stroke-width:1;cursor:nw-resize;pointer-events:auto}.control-point:hover{fill:#40a9ff;stroke-width:2}.control-point[data-handle=bottom-right],.control-point[data-handle=top-left]{cursor:nw-resize}.control-point[data-handle=bottom-left],.control-point[data-handle=top-right]{cursor:ne-resize}.transform-handle{fill:#165dff;stroke:#fff;stroke-width:2;cursor:pointer}.transform-handle.resize{cursor:nw-resize}.transform-handle.rotate{cursor:-webkit-grab;cursor:grab}.transform-handle.rotate:active{cursor:-webkit-grabbing;cursor:grabbing}@media (max-width:1024px){.canvas-container{padding:20px}.canvas-svg{max-height:calc(100% - 20px);max-width:calc(100% - 20px)}}@media (max-width:768px){.canvas-container{padding:15px}.canvas-svg{border-width:1px;max-height:calc(100% - 15px);max-width:calc(100% - 15px)}.canvas-info{flex-wrap:wrap;gap:4px}.canvas-info span{font-size:10px;padding:0 4px}}@media (max-width:480px){.canvas-container{padding:10px}.canvas-svg{max-height:calc(100% - 10px);max-width:calc(100% - 10px)}}.toolbar{border:none;flex-direction:row;gap:2px;min-height:42px;overflow-x:auto;overflow-y:hidden;padding:6px 10px;-webkit-user-select:none;user-select:none;width:100%}.tool-section,.toolbar{align-items:center;background-color:initial;display:flex}.tool-section{gap:4px;margin-right:6px;min-width:-webkit-fit-content;min-width:fit-content;padding:3px 8px;position:relative}.tool-section:last-child{margin-right:0}.tools-grid{align-items:center;display:flex;gap:3px}.toolbar-section-title{color:#4e5969;flex-shrink:0;font-size:14px;font-weight:500;margin:0 6px 0 0;padding:0;text-align:center;white-space:nowrap}.tool-button{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;color:#4e5969;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;margin:0 2px;position:relative;transition:all .15s ease;width:36px}.tool-button:hover{background-color:#f2f3f5;border-color:#c9cdd4}.tool-button.active{background-color:#165dff;border-color:#165dff;color:#fff}.tool-icon{align-items:center;display:inline-flex;height:18px;justify-content:center;width:18px}.tool-button[data-tool=area] .tool-icon,.tool-button[data-tool=select] .tool-icon{text-shadow:0 0 2px hsla(0,0%,100%,.3)}.tool-button[data-tool=area] .tool-icon svg text{font-size:8px;font-weight:600}.tool-icon svg{display:block;height:18px;width:18px}.tool-button.active .tool-icon svg{color:#fff}.setting-group{align-items:center;background-color:initial;border:none;border-radius:4px;box-sizing:border-box;display:flex;gap:1px;margin:0;min-height:24px;padding:0;position:relative}.setting-label{color:#86909c;font-size:8px;font-weight:500;margin:0;padding:0 2px;white-space:nowrap}.color-button{align-items:center;border:1px solid #d2d3d5;border-radius:8px;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;margin:0;position:relative;transition:all .15s ease;width:40px}.color-button:hover{border-color:#165dff}.color-label{color:#fff;font-size:10px;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.color-picker-popup{background-color:#fff;border:1px solid #d2d3d5;border-radius:8px;left:50%;min-width:200px;padding:16px;position:absolute;top:calc(100% + 8px);transform:translateX(-50%);z-index:1000}.color-picker-popup input[type=color]{border:none;border-radius:4px;cursor:pointer;height:32px;margin-bottom:8px;width:100%}.preset-colors{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(4,1fr)}.preset-color{border:1px solid #d2d3d5;border-radius:4px;cursor:pointer;height:24px;transition:all .2s ease;width:32px}.preset-color:hover{border-color:#165dff}.range-input{background-color:#d2d3d5;border:1px solid #c9cdd4;border-radius:2px;cursor:pointer;display:block;flex-shrink:0;height:4px;margin:0;outline:none;width:50px}.range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#165dff;border-radius:50%;cursor:pointer;height:12px;width:12px}.range-input::-moz-range-thumb{background-color:#165dff;border:none;border-radius:50%;cursor:pointer;height:12px;width:12px}.setting-value{color:#86909c;font-size:9px;margin:0;min-width:24px;padding:0 4px;text-align:center;white-space:nowrap}.action-button{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;color:#4e5969;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:36px;justify-content:center;margin:0 2px;position:relative;transition:all .15s ease;width:36px}.action-button svg{height:18px;width:18px}.action-button:hover{background-color:#f2f3f5;border-color:#c9cdd4}.action-button:disabled{background-color:#f7f8fa;border-color:#d2d3d5;color:#c9cdd4;cursor:not-allowed;opacity:.6}.action-button:disabled svg{opacity:.5}.property-group{gap:6px}.property-group,.property-item{align-items:center;display:flex}.property-item{flex-direction:row;gap:3px;min-width:60px}.property-label{color:#86909c;font-size:12px;font-weight:500;letter-spacing:.4px;margin:0;min-width:12px;text-transform:uppercase}.property-input{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;box-sizing:border-box;color:#1d2129;font-size:12px;height:30px;padding:3px 6px;text-align:center;transition:all .15s ease;width:60px}.property-input:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.property-input:disabled{background-color:#f7f8fa;color:#86909c;cursor:not-allowed}.align-group{flex-direction:row}.align-group,.align-row{display:flex;gap:3px}.align-button{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;color:#4e5969;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;margin:0 2px;position:relative;transition:all .15s ease;width:36px}.align-button svg{height:18px;width:18px}.align-button:hover{background-color:#f2f3f5;border-color:#c9cdd4}.align-button:active{background-color:#165dff;border-color:#165dff;color:#fff}.align-button:disabled{background-color:#f7f8fa;border-color:#d2d3d5;color:#c9cdd4;cursor:not-allowed}.align-button:disabled img{opacity:.1!important}.action-button[title]:hover:after,.align-button[title]:hover:after,.color-button[title]:hover:after,.tool-button[title]:hover:after{word-wrap:break-word;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:rgba(30,30,30,.95);border:1px solid #404040;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);color:#fff;content:attr(title);font-size:12px;font-weight:500;left:50%;letter-spacing:.3px;line-height:1.2;max-width:200px;padding:8px 12px;pointer-events:none;position:fixed;top:10px;transform:translateX(-50%);white-space:nowrap;z-index:9999}.toolbar::-webkit-scrollbar{height:6px;width:6px}.toolbar::-webkit-scrollbar-track{background:#1e1e1e}.toolbar::-webkit-scrollbar-thumb{background:#404040;border-radius:3px}.toolbar::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:1024px){.toolbar{min-height:48px;padding:6px 8px}.tool-section{margin-right:6px;padding:3px 6px}.toolbar-section-title{font-size:11px;margin-right:4px;padding-right:4px}.tool-button{height:32px;width:32px}.action-button,.color-button{height:24px;width:28px}.range-input{width:40px}}@media (max-width:768px){.toolbar{gap:0;min-height:44px;padding:4px 6px}.tool-section{gap:2px;margin-right:4px;padding:2px 4px}.toolbar-section-title{display:none}.tool-button{height:28px;width:28px}.action-button,.color-button{height:20px;width:24px}.range-input{width:30px}.setting-group{gap:2px;padding:1px 2px}.setting-label{font-size:8px}.setting-value{font-size:7px;min-width:16px}}.color-grid{align-items:center;display:flex;gap:4px}.color-preset-button{border:2px solid #fff;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.1);cursor:pointer;height:24px;margin:0 1px;outline:none;transition:all .2s ease;width:24px}.color-preset-button:hover:not(:disabled){border-color:#165dff;box-shadow:0 2px 6px rgba(0,0,0,.15);transform:scale(1.1)}.color-preset-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.color-preset-button:disabled:hover{border-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);transform:none}.inspector{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100%}.inspector,.inspector.disabled{background-color:#fff;color:#1d2129}.inspector.disabled .inspector-content{opacity:1;pointer-events:auto}.inspector-content{display:flex;flex:1 1;flex-direction:column;height:calc(100% + 30px);overflow-y:auto;padding:16px}.section-title{border-bottom:1px solid #d2d3d5;color:#1d2129;font-size:14px;font-weight:600;margin-bottom:16px;padding-bottom:8px}.element-editor{display:flex;flex:1 1;flex-direction:column;margin-bottom:16px;padding:0}.step-section{margin-bottom:12px}.step-label{font-size:18px}.semantic-rules-panel{margin-bottom:24px}.semantic-tag-name{color:#075985;font-size:12px;font-style:italic;font-weight:500}.element-type-selector{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px}.element-type-option{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font-size:11px;gap:4px;justify-content:center;min-height:60px;padding:12px 8px;transition:all .2s ease}.element-type-option:hover{background-color:#f2f8ff;border-color:#94bfff}.element-type-option.active{background-color:#e8f3ff;border-color:#165dff;color:#165dff}.element-type-icon{display:block;font-size:18px;line-height:1}.element-type-label{font-size:12px;font-weight:500;line-height:1}.form-row{margin-bottom:12px}.form-row label{color:#4e5969;display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-input,.form-select,.form-textarea{background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;box-sizing:border-box;color:#1d2129;font-size:13px;padding:8px 12px;transition:all .2s ease;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#165dff;outline:none}.form-input[readonly]{background-color:#f7f8fa;color:#4e5969;cursor:default}.form-input[readonly]:focus{border-color:#d2d3d5}.label-preview-input{font-family:Monaco,Menlo,Consolas,monospace;font-weight:500}.form-select{-webkit-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill="%23c9cdd4" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');background-position:right 8px center;background-repeat:no-repeat;background-size:16px;height:36px;padding-right:32px}.form-textarea{font-family:inherit;height:48px;line-height:1.5;overflow-y:auto;resize:none}.form-textarea::-webkit-input-placeholder{color:#c9cdd4;font-style:italic}.form-textarea::placeholder{color:#c9cdd4;font-style:italic}.generate-btn{align-items:center;background-color:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;margin-top:8px;padding:10px 20px;transition:all .2s ease;width:100%}.generate-btn:hover{background-color:#333}.label-preview-simple{align-items:center;background-color:#f7f8fa;color:#1d2129;display:flex;font-family:Monaco,Menlo,Consolas,monospace;font-size:13px;min-height:20px;padding:8px 12px}.label-preview,.label-preview-simple{border:1px solid #d2d3d5;border-radius:6px}.label-preview{background-color:#f7f9fc;margin-top:8px;padding:10px 12px}.label-preview-title{color:#4e5969;font-size:12px;font-weight:500;margin-bottom:4px}.label-preview-value{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#1d2129;min-height:20px;padding:6px 8px}.label-preview-value,.tag-display-box{align-items:center;display:flex;font-family:Monaco,Menlo,Consolas,monospace;font-size:13px}.tag-display-box{background-color:#f7f8fa;border:1px solid #d2d3d5;border-radius:6px;box-sizing:border-box;color:#4e5969;height:36px;overflow:hidden;padding:8px 12px;text-overflow:ellipsis;white-space:nowrap;width:100%;word-break:break-all}.inspector-content::-webkit-scrollbar{width:6px}.inspector-content::-webkit-scrollbar-track{background:#f7f8fa}.inspector-content::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.inspector-content::-webkit-scrollbar-thumb:hover{background:#86909c}@media (max-width:768px){.inspector-content{padding:12px}.element-editor,.tag-generation{padding:16px}.element-type-selector{gap:6px;grid-template-columns:1fr}.element-type-option{min-height:50px;padding:10px 8px}.generated-tag-display{align-items:stretch;flex-direction:column}.copy-btn{align-self:center}}.multi-selection-message,.no-selection-message{align-items:center;color:#86909c;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:40px 20px;text-align:center}.multi-selection-message .message-icon,.no-selection-message .message-icon{font-size:48px;margin-bottom:16px;opacity:.6}.multi-selection-message h3,.no-selection-message h3{color:#4e5969;font-size:16px;font-weight:600;margin:0 0 8px}.multi-selection-message p,.no-selection-message p{font-size:14px;line-height:1.5;margin:0}.multi-selection-actions{display:flex;gap:12px;margin-top:16px}.multi-selection-actions button{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease}.element-info{background-color:#f7f8fa;border-radius:6px;margin-bottom:16px;padding:12px}.element-info p{color:#4e5969;font-size:13px;margin:4px 0}.element-info strong{color:#1d2129;font-weight:600}.form-actions{flex-wrap:wrap;gap:8px}.form-actions button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:12px;font-weight:500;min-width:80px;padding:8px 12px;transition:all .2s ease}.reset-btn{background-color:#f2f3f5;border:1px solid #d2d3d5;color:#4e5969}.reset-btn:hover{background-color:#d2d3d5}.delete-btn{background-color:#f53f3f;color:#fff}.delete-btn:hover{background-color:#cb272d}.duplicate-btn{background-color:#165dff;color:#fff}.duplicate-btn:hover{background-color:#0e42d2}.base-rule-tag .tag-name{color:#1e40af;font-size:13px;font-weight:600}.base-rule-content{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;margin-bottom:12px;padding:12px;white-space:pre-wrap;word-break:break-word}.base-rule-note{align-items:center;color:#6b7280;display:flex;font-size:12px;font-style:italic;gap:6px}.semantic-rules-panel{background:transparent;margin-bottom:12px;margin-top:0;padding:0}.semantic-rules-content{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #93c5fd;border-radius:8px;overflow:hidden}.semantic-rules-header{align-items:center;background-color:#dbeafe;border-bottom:1px solid #93c5fd;color:#1d2129;display:flex;font-size:14px;font-weight:600;justify-content:space-between;padding:12px 16px}.semantic-rules-hint{color:#4e5969;font-size:12px;font-style:italic;font-weight:500}.semantic-rule-item{background-color:#fff;padding:16px}.semantic-rule-text{color:#4e5969;font-size:13px;line-height:1.6;margin:0}.rule-editor-tabs{background-color:#f7f9fc;border-bottom:1px solid #d2d3d5;display:flex;margin-bottom:0}.tab-button{background:transparent;border:none;border-bottom:2px solid transparent;color:#4e5969;cursor:pointer;flex:1 1;font-size:14px;font-weight:400;padding:12px 16px;transition:all .2s ease}.tab-button:hover{background-color:#f2f3f5;color:#1d2129}.tab-button.active{background-color:#fff;border-bottom-color:#165dff;color:#165dff;font-weight:600}.llm-rules-tab,.tab-content,.user-rules-tab{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.rule-editor{background-color:#fff;color:#1d2129;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;height:100%}.role-generation-config{background-color:initial;border-bottom:none;margin-bottom:0;padding:16px 20px}.role-generation-config h4{color:#1d2129;font-size:16px;font-weight:600;margin:0 0 16px}.generation-mode-selector{margin-bottom:20px}.generation-mode-selector .config-label{color:#000;display:block;font-size:14px;font-weight:600;margin-bottom:10px}.mode-options{display:flex;flex-direction:column;gap:4px}.mode-option{align-items:flex-start;background:#fff;border:1px solid #d2d3d5;border-radius:8px;color:#4e5969;cursor:pointer;display:flex;gap:4px;padding:12px 16px;transition:all .2s ease}.mode-text{display:flex;flex:1 1;flex-direction:column;gap:4px}.mode-title{color:#1d2129;font-size:14px;font-weight:600}.mode-description{color:#86909c;font-size:12px;line-height:1.4;margin:0}.mode-option.active,.mode-option:hover{background-color:#f2f8ff;border-color:#165dff}.mode-option.active{color:#165dff;font-weight:500}.mode-option input[type=radio]{accent-color:#165dff;margin:0}.mode-option.disabled{background-color:#f7f8fa!important;border-color:#d2d3d5!important;cursor:not-allowed;opacity:.5}.mode-option.disabled input[type=radio]{cursor:not-allowed}.mode-option.disabled .mode-text{color:#86909c!important}.canvas-restriction-note{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;font-size:12px;margin-top:12px;padding:8px 12px}.canvas-restriction-note p{font-weight:500;margin:0}.context-config{background-color:#f7f9fc;border:none;border-radius:8px;display:flex;flex-direction:column;gap:8px;margin:8px 0;padding:16px}.context-definitions-header{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.context-definitions-header .config-label{color:#000;font-size:14px;font-weight:600;margin:0 0 10px}.context-header-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.preset-context-tags{display:flex;flex-wrap:wrap;gap:8px}.preset-context-tag{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#4e5969;cursor:pointer;display:inline-flex;font-size:13px;font-weight:400;height:28px;justify-content:center;padding:0 12px;transition:all .2s ease;white-space:nowrap;width:-webkit-fit-content;width:fit-content}.preset-context-tag:hover{background-color:#f2f3f5;border-color:#c9cdd4}.preset-context-tag.selected{background-color:#e8f4ff;border-color:#165dff;color:#165dff;font-weight:500}.add-context-btn{align-items:center;background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;height:28px;justify-content:center;padding:0 12px;transition:all .2s ease}.add-context-btn:hover{background-color:#0e42d2}.context-definitions-list{display:flex;flex-direction:column;gap:8px}.context-definition-item{align-items:center;display:flex;gap:8px}.context-input{border:1px solid #d2d3d5;border-radius:4px;flex:1 1;font-size:14px;padding:8px 16px;transition:border-color .2s ease}.context-input:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.remove-context-btn{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#4e5969;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.remove-context-btn svg{font-size:16px!important;height:16px!important;width:16px!important}.remove-context-btn:hover{background-color:#f7f8fa;border-color:#f53f3f;color:#f53f3f}.empty-context-hint{background-color:#f7f8fa;border-radius:4px;color:#86909c;font-size:12px;font-style:italic;margin:8px 0;padding:12px;text-align:center}.context-mapping-rules .config-label{color:#000;display:block;font-size:14px;font-weight:600;margin-bottom:10px}.mapping-rules-textarea{border:1px solid #d2d3d5;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;min-height:80px;padding:12px 16px;resize:vertical;transition:border-color .2s ease;width:100%}.mapping-rules-textarea:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.mapping-rules-textarea::-webkit-input-placeholder{color:#86909c;font-style:normal}.mapping-rules-textarea::placeholder{color:#86909c;font-style:normal}.rule-tabs{background-color:#f7f9fc;border-bottom:1px solid #d2d3d5;display:flex}.rule-tab{background:none;border:none;border-bottom:2px solid transparent;color:#4e5969;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px 16px;transition:all .2s ease}.rule-tab:hover{background-color:#f2f3f5;color:#1d2129}.rule-tab.active{background-color:#fff;border-bottom-color:#165dff;color:#165dff;font-weight:600}.rule-content{display:flex;flex:1 1;flex-direction:column;height:100%;overflow-y:auto;padding:20px 20px 100px}.add-rule-section{border-bottom:none;flex-shrink:0;margin-bottom:0}.add-rule-section h4{align-items:center;color:#1d2129;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.section-number{align-items:center;background-color:#000;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:600;height:20px;justify-content:center;width:20px}.rules-divider,.tips-bottom-divider{background-color:#d2d3d5;height:1px;margin:20px 0 16px}.rules-list{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.rules-list-header{align-items:center;border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:16px;padding:8px 0;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.rules-grid-container{flex:1 1;min-height:0;overflow-y:auto;padding-right:4px}.rules-grid-container::-webkit-scrollbar{width:4px}.rules-grid-container::-webkit-scrollbar-track{background:transparent}.rules-grid-container::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:2px}.rules-grid-container::-webkit-scrollbar-thumb:hover{background:#86909c}.rules-list-header:hover{background-color:#f7f9fc;margin:0 -12px 16px;padding:8px 12px}.rules-toggle{color:#86909c;font-size:14px;font-weight:500;transition:all .2s ease}.rules-toggle:hover{color:#4e5969}.rules-list h4{color:#1d2129;font-size:16px;font-weight:600;margin:0}.rule-form-card{background-color:#fff;border:1px solid #d2d3d5;border-radius:8px;overflow:hidden;padding:0}.rule-config{background-color:#f7f9fc;border-bottom:1px solid #d2d3d5;padding:16px 20px}.config-row{display:flex;flex-direction:column;gap:16px}.config-row+.config-row{margin-top:20px}.config-item.full-width{display:flex}.config-item,.config-item.full-width{flex-direction:column;gap:8px}.config-label{color:#000;font-weight:600;letter-spacing:.5px;margin:0 0 10px}.tool-selector{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.tool-option{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font-size:11px;gap:4px;min-height:50px;padding:8px 6px;transition:all .2s ease}.tool-option:hover{background-color:#f2f8ff;border-color:#94bfff}.tool-option.active{background-color:#e8f3ff;border-color:#165dff;color:#165dff}.tool-icon{display:block;font-size:16px}.tool-label{font-size:11px;font-weight:500}.target-selector{display:flex;gap:8px;margin-bottom:8px}.target-option{background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;cursor:pointer;flex:1 1;font-size:12px;font-weight:500;padding:8px 12px;text-align:center;transition:all .2s ease}.target-option:hover{background-color:#f2f8ff;border-color:#94bfff}.target-option.active{background-color:#e8f3ff;border-color:#165dff;color:#165dff}.element-id-input{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#1d2129;font-size:12px;padding:6px 8px;width:100%}.element-id-input:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.scene-selector{display:flex;flex-direction:column;gap:6px}.scene-option{background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;padding:8px 12px;text-align:center;transition:all .2s ease}.scene-option:hover{background-color:#f2f8ff;border-color:#94bfff}.scene-option.active{background-color:#e8f3ff;border-color:#165dff;color:#165dff}.rule-description{padding:10px 10px 3.33px;position:relative}.description-input-container{position:relative}.description-input:focus{border-color:#165dff;outline:none}.description-input.waiting-for-click{border-color:#ff7a00;box-shadow:0 0 0 2px rgba(255,122,0,.1)}.description-input:empty:before{color:#86909c;content:attr(data-placeholder);font-style:normal;pointer-events:none}.element-click-hint{animation:fadeInUp .2s ease;background-color:#e8f3ff;border:1px solid #94bfff;border-radius:6px;color:#165dff;font-size:12px;font-weight:500;left:0;margin-top:4px;padding:8px 12px;position:absolute;right:0;top:100%;z-index:1000}.element-tags-container{background-color:#f7f9fc;border:1px solid #d2d3d5;border-radius:6px;margin-top:8px;padding:12px}.element-tags-hint{color:#4e5969;font-size:12px;font-weight:500;margin-bottom:8px}.element-tags-list{display:flex;flex-wrap:wrap;gap:8px}.element-tag-selectable{background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px;transition:all .2s ease}.element-tag-selectable:hover{background-color:#0e42d2;transform:translateY(-1px)}.no-elements-hint{color:#86909c;font-size:12px;font-style:italic;padding:4px 8px}.description-input{word-wrap:break-word;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;box-sizing:border-box;color:#1d2129;font-family:inherit;font-size:14px;line-height:1.5;max-height:200px;min-height:80px;overflow-y:auto;padding:6px 8px;resize:vertical;transition:all .2s ease;white-space:pre-wrap;width:100%}.element-tag-inline{background-color:#e8f3ff;border:1px solid #94bfff;border-radius:4px;color:#165dff;cursor:default;display:inline-block;font-size:12px;font-weight:600;margin:0 2px;padding:2px 6px;-webkit-user-select:none;user-select:none}.rule-actions{background-color:initial;border-top:none;display:flex;justify-content:flex-start;padding:2.67px 10px 8px}.save-rule-btn{align-items:center;background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;height:24px;justify-content:center;margin-bottom:-12px;margin-top:8px;padding:0 12px;transition:all .2s ease}.save-rule-btn:hover:not(:disabled){background-color:#0e42d2}.save-rule-btn:disabled{background-color:#c0c4cc;color:#fff;cursor:not-allowed;opacity:.6}.rule-input-area{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}.ai-tips-section{background-color:#f7f9fc;border:1px solid #d2d3d5;border-radius:8px;margin-top:-12px;overflow:hidden}.tips-header{align-items:center;background:linear-gradient(135deg,#f7f9fc,#f2f5fa);border-bottom:1px solid #e8eaef;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.tips-header:hover{background:linear-gradient(135deg,#f2f5fa,#eef1f6)}.tips-title{align-items:center;color:#1d2129;display:flex;font-size:14px;font-weight:600;gap:6px;margin:0}.tips-toggle{color:#86909c;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.tips-toggle:hover{color:#4e5969}.tips-content{animation:fadeInDown .3s ease;background-color:#fff;display:flex;flex-direction:column;gap:4px;padding:16px}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.tip-item{align-items:flex-start;display:flex;gap:8px;line-height:1.6}.tip-number{flex-shrink:0;font-weight:600;margin-right:8px;margin-top:2px}.tip-number,.tip-text{color:#4e5969;font-size:13px}.tip-text{flex:1 1}.tip-text strong{color:#165dff;font-weight:600}.tip-text code{background-color:#e8f3ff;border-radius:3px;color:#165dff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;font-weight:500;padding:2px 4px}.rules-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr;max-height:600px;overflow-y:auto;padding-right:4px}.rule-card-content-inline{align-items:flex-start}.rule-number{color:#4e5969;flex-shrink:0;font-size:13px;font-weight:600;margin-right:8px;margin-top:2px}.rule-card-content-inline{align-items:center;display:flex;gap:4px;justify-content:space-between;padding:8px 16px}.rule-description-content{color:#4e5969;flex:1 1;font-size:13px;line-height:1.5;min-width:0;word-break:break-word}.rule-card-content-inline .rule-actions-menu{align-items:center;display:flex;flex-shrink:0;gap:4px}.rule-card{background:#fff;border:1px solid #d2d3d5;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.02);overflow:hidden;transition:all .2s ease}.rule-card:hover{border-color:#94bfff;box-shadow:0 2px 8px rgba(22,93,255,.08);transform:translateY(-1px)}.rule-card-header{align-items:center;background:linear-gradient(135deg,#f7f9fc,#f2f5fa);border-bottom:1px solid #e8eaef;display:flex;justify-content:space-between;padding:6px 16px}.rule-title{color:#1d2129;flex:1 1;font-size:14px;font-weight:600;min-width:0}.rule-actions-menu{align-items:center;display:flex;gap:4px}.rule-action-btn{background:none;border:none;border-radius:0;color:#86909c;cursor:pointer;font-size:14px;font-weight:500;padding:0;transition:color .2s ease;white-space:nowrap}.rule-action-btn:hover{color:#4e5969}.rule-card .delete-btn{background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:#86909c!important;cursor:pointer;font-size:14px!important;font-weight:500!important;padding:0!important;transition:color .2s ease;white-space:nowrap}.rule-card .delete-btn:hover{background:none!important;border:none!important;box-shadow:none!important;color:#4e5969!important}.rule-card-content{padding:16px}.rule-description-preview{color:#4e5969;font-size:13px;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;word-break:break-word}.rule-card-footer{background:#fafbfc;border-top:1px solid #f2f3f5;padding:6px 16px 10px}.rule-timestamp{color:#86909c;font-size:10px;font-weight:500}.no-rules{align-items:center;background:linear-gradient(135deg,#f7f9fc,#f2f5fa);border:1px dashed #c9cdd4;border-radius:12px;display:flex;flex-direction:column;justify-content:center;margin:16px 0;padding:40px 20px;text-align:center}.no-rules-icon{font-size:32px;margin-bottom:12px;opacity:.6}.no-rules-text{color:#4e5969;font-size:14px;font-weight:600;margin-bottom:4px}.no-rules-hint{color:#86909c;font-size:12px;line-height:1.4}@media (max-width:768px){.rules-grid{gap:8px}.rule-card-header{padding:10px 12px 6px}.rule-card-content{padding:6px 12px}.rule-card-footer{padding:4px 12px 8px}.rule-description-preview{font-size:11px}}.rules-grid::-webkit-scrollbar{width:4px}.rules-grid::-webkit-scrollbar-track{background:transparent}.rules-grid::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:2px}.rules-grid::-webkit-scrollbar-thumb:hover{background:#86909c}.rule-content::-webkit-scrollbar{width:6px}.rule-content::-webkit-scrollbar-track{background:#f7f9fc;border-radius:3px}.rule-content::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.rule-content::-webkit-scrollbar-thumb:hover{background:#86909c}@media (max-width:1024px){.config-row{gap:16px;grid-template-columns:1fr}.tool-selector{grid-template-columns:repeat(4,1fr)}.scene-selector{flex-direction:row;gap:8px}}@media (max-width:768px){.rule-content{gap:24px;padding:16px}.rule-config{padding:12px 16px}.rule-description{padding:16px}.rule-actions{padding:12px 16px}.config-row{gap:4px}.tool-selector{grid-template-columns:1fr 1fr}.scene-selector,.target-selector{flex-direction:column}.scene-selector{gap:6px}.rule-header{align-items:stretch;flex-direction:column;gap:8px}.rule-header,.rule-preview{padding:12px 16px}}.rule-form-card,.rule-item{animation:fadeIn .3s ease}.scene-option:focus,.target-option:focus,.tool-option:focus{outline:2px solid #165dff;outline-offset:2px}.scene-option:disabled,.target-option:disabled,.tool-option:disabled{cursor:not-allowed;opacity:.6}.save-rule-btn.loading{color:transparent;position:relative}.save-rule-btn.loading:after{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#fff;content:"";height:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:16px}.history-rules-btn{background-color:initial;border:none;border-radius:4px;color:#86909c;cursor:pointer;font-size:12px;font-weight:500;margin-right:12px;min-width:48px;padding:4px 8px;transition:all .2s ease}.history-rules-btn:hover{background-color:#d2d3d5;color:#4e5969}.history-rules-btn:active{background-color:#c9cdd4;transform:scale(.98)}.history-rules-panel{display:flex;flex-direction:column;height:auto;margin-top:16px;overflow:visible;padding:0}.history-panel-header{align-items:center;border-bottom:1px solid #d2d3d5;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:8px}.history-panel-header h4{color:#1d2129;font-size:16px;font-weight:600;margin:0}.history-panel-hint{color:#86909c;font-size:12px;font-style:italic}.history-rules-content{display:flex;flex-direction:column;overflow:visible}.history-rules-grid{grid-gap:8px!important;display:grid;gap:8px!important;grid-template-columns:1fr;max-height:300px;overflow-y:auto;padding-right:4px}.history-rules-grid::-webkit-scrollbar{width:4px}.history-rules-grid::-webkit-scrollbar-track{background:transparent}.history-rules-grid::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:2px}.history-rules-grid::-webkit-scrollbar-thumb:hover{background:#86909c}.history-rule-card{background:#fff;border:1px solid #d2d3d5;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.02);transition:all .2s ease}.history-rule-card:hover{border-color:#94bfff;box-shadow:0 2px 8px rgba(22,93,255,.08);transform:translateY(-1px)}.history-rule-content{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;min-height:36px;padding:12px}.history-rule-number{color:#4e5969;flex-shrink:0;font-size:13px;font-weight:600;margin-right:8px;margin-top:0}.history-rule-description{color:#4e5969;flex:1 1;font-size:13px;line-height:1.5;min-width:0;word-break:break-word}.history-rule-actions{align-items:center;display:flex;flex-direction:row;flex-shrink:0;gap:4px;margin-left:8px}.designer-style-btn{align-items:center;background:transparent;border:none;border-radius:6px;color:#86909c;cursor:pointer;display:flex;font-size:13px;gap:6px;justify-content:center;min-width:60px;padding:6px 12px;transition:all .15s ease}.designer-style-btn.icon-only{gap:0;height:32px;min-width:32px;padding:6px;width:32px}.designer-style-btn:hover{background:#f2f3f5;color:#4e5969}.designer-style-btn.delete-btn{color:#86909c}.designer-style-btn.delete-btn:hover{background:#f2f3f5;color:#4e5969}.history-rule-edit-btn.designer-style-btn{background:transparent!important;border:none!important;border-radius:6px!important;color:#4e5969!important;cursor:pointer;font-size:16px!important;height:32px!important;min-width:32px!important;padding:6px!important;transition:all .2s ease;width:32px!important}.history-rule-edit-btn.designer-style-btn svg{font-size:16px!important;height:16px!important;width:16px!important}.history-rule-edit-btn.designer-style-btn:hover{background:#f2f3f5!important;color:#4e5969!important}.history-rule-edit-btn.primary{background:#165dff;border-color:#165dff;color:#fff}.history-rule-edit-btn.primary:hover{background:#0e42d2;border-color:#0e42d2}.history-rule-delete-btn.designer-style-btn{background:transparent!important;border:none!important;border-radius:6px!important;box-shadow:none!important;color:#4e5969!important;cursor:pointer;font-size:16px!important;height:32px!important;min-width:32px!important;padding:6px!important;transition:all .2s ease;white-space:nowrap;width:32px!important}.history-rule-delete-btn.designer-style-btn svg{font-size:16px!important;height:16px!important;width:16px!important}.history-rule-delete-btn.designer-style-btn:hover{background:#f2f3f5!important;box-shadow:none!important;color:#4e5969!important}.history-rules-title{color:#1d2129;font-size:16px;font-weight:600;margin-bottom:12px;padding-left:0}.no-history-rules{align-items:center;background:linear-gradient(135deg,#f7f9fc,#f2f5fa);border:1px dashed #c9cdd4;border-radius:12px;display:flex;flex-direction:column;justify-content:center;margin:16px 0;max-height:200px;padding:30px 20px;text-align:center}.no-history-rules-icon{font-size:32px;margin-bottom:12px;opacity:.6}.no-history-rules-text{color:#4e5969;font-size:14px;font-weight:600;margin-bottom:4px}.no-history-rules-hint{color:#86909c;font-size:12px;line-height:1.4}.config-divider{background-color:#d2d3d5;border:none;height:1px;margin:24px 0}.user-config-section{background:transparent;border-top:none;margin-top:16px;padding:24px 0 0}.user-config-section h4{border-bottom:2px solid #1d2129;color:#1d2129;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.user-config-section.no-top-border{border-top:none;margin-top:0;padding-top:0}.mode-options.en-compact{flex-direction:row;flex-wrap:wrap;gap:12px}.mode-options.en-compact .mode-option{align-items:center;display:flex;flex:0 0 auto;justify-content:center;min-height:auto;min-width:-webkit-fit-content;min-width:fit-content;white-space:nowrap}.mode-options.en-compact .mode-description{display:none}.mode-options.en-compact .mode-text{align-items:center;justify-content:flex-start;padding-left:4px;text-align:left;white-space:nowrap;width:100%}.mode-options.en-compact .mode-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-header{border-bottom:none;margin-bottom:16px}.history-rules-btn-inline{align-items:center;background-color:#165dff;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:center;min-width:80px;padding:8px 16px;transition:all .2s ease}.history-rules-btn-inline:hover{background-color:#0e42d2;box-shadow:0 2px 8px rgba(22,93,255,.25);transform:translateY(-1px)}.history-rules-btn-inline:active{background-color:#0a2ca8;box-shadow:0 1px 4px rgba(22,93,255,.4);transform:translateY(0)}.default-rules-panel{background:transparent;margin-top:12px;padding:0}.default-rules-content{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #92c5fd;border-radius:8px;overflow:hidden}.default-rules-header{align-items:center;background-color:#dbeafe;border-bottom:1px solid #93c5fd;display:flex;justify-content:space-between;padding:12px 16px}.default-rules-header h5{align-items:center;color:#1d2129;display:flex;font-size:14px;font-weight:600;gap:6px;margin:0}.default-rules-header h5:before{content:"⚙️";font-size:14px}.default-rules-hint{color:#4e5969;font-size:12px;font-style:italic;font-weight:500}.default-rule-item{background-color:#fff;padding:16px}.default-rule-text{color:#4e5969;font-size:13px;font-weight:400;line-height:1.6;margin:0}.step-label{color:#1d2129;font-size:16px;font-weight:600;margin-bottom:12px}.base-rule-display{background-color:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:12px;padding:16px}.base-rule-tag{align-items:center;background-color:#dbeafe;border:1px solid #93c5fd;border-radius:6px;display:flex;gap:8px;margin-bottom:12px;padding:6px 12px}.base-rule-tag .tag-icon{font-size:14px}.base-rule-tag .tag-name{color:#1d2129;font-size:14px;font-weight:500}.base-rule-content{color:#4e5969;font-size:13px;line-height:1.6}.layer-panel{background-color:#fff;color:#1d2129;display:flex;flex-direction:column;height:100%}.layer-content{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.layer-header{align-items:center;background-color:#f7f9fc;border-bottom:1px solid #e5e6eb;display:flex;font-size:12px;font-weight:600;justify-content:space-between;padding:12px 16px}.layer-count{color:#86909c;font-weight:400}.layer-list{flex:1 1;overflow-y:auto;padding:8px 0}.layer-item{align-items:center;border-left:3px solid transparent;cursor:pointer;display:flex;justify-content:space-between;padding:8px 16px;transition:all .2s ease}.layer-item:hover{background-color:#f2f3f5}.layer-item.selected{background-color:#e8f3ff;border-left-color:#165dff}.layer-info{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}.layer-icon{flex-shrink:0;font-size:14px;text-align:center;width:16px}.layer-name{color:#4e5969;cursor:default;font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.layer-name:hover{color:#1d2129}.layer-name-input{background-color:#fff;border:2px solid #165dff;border-radius:4px;color:#1d2129;font-family:inherit;font-size:12px;margin:0;max-width:120px;min-width:80px;outline:none;padding:2px 6px}.layer-name-input:focus{box-shadow:0 0 0 2px rgba(22,93,255,.2)}.layer-controls{align-items:center;display:flex;flex-shrink:0;gap:4px}.layer-order-controls{align-items:center;background-color:#f7f9fc;border:1px solid #e5e6eb;border-radius:4px;display:flex;gap:2px;margin-right:8px;padding:2px}.order-btn{align-items:center;background:none;border:none;border-radius:2px;color:#4e5969;cursor:pointer;display:flex;font-size:10px;height:20px;justify-content:center;transition:all .2s ease;width:20px}.order-btn:hover:not(:disabled){background-color:#e5e6eb;color:#1d2129}.order-btn:active:not(:disabled){background-color:#c9cdd4}.order-btn:disabled{color:#c9cdd4;cursor:not-allowed;opacity:.5}.layer-panel .visibility-btn{background:none!important;border:none!important;border-radius:2px;color:inherit!important;cursor:pointer;font-size:12px;opacity:1;padding:2px;transition:opacity .2s ease}.layer-panel .visibility-btn:hover{background-color:#f2f3f5!important;color:inherit!important;opacity:1}.layer-panel .visibility-btn.hidden{opacity:.3}.layer-panel .visibility-btn svg{color:#86909c!important;height:16px;width:16px}.layer-panel .visibility-btn:hover svg{color:#4e5969!important}.no-layers{align-items:center;color:#86909c;display:flex;font-size:12px;font-style:italic;height:100px;justify-content:center}.layer-list::-webkit-scrollbar{width:6px}.layer-list::-webkit-scrollbar-track{background:#f7f9fc}.layer-list::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.layer-list::-webkit-scrollbar-thumb:hover{background:#86909c}.group-container{border-left:2px solid #e5e6eb;margin-left:2px}.group-item{background-color:#f7f9fc;border-bottom:1px solid #e5e6eb;font-weight:500}.group-item:hover{background-color:#eef3fd}.group-item.selected{background-color:#d6e8ff;border-left-color:#722ed1;border-left-width:4px}.group-name{color:#1d2129;font-weight:600}.group-toggle{align-items:center;background:none;border:none;border-radius:2px;color:#86909c;cursor:pointer;display:flex;font-size:10px;height:16px;justify-content:center;margin-right:4px;padding:2px 4px;transition:all .2s ease;width:16px}.group-toggle:hover{background-color:#e5e6eb;color:#4e5969}.ungroup-btn{background:none;border:none;border-radius:2px;cursor:pointer;font-size:12px;opacity:.7;padding:2px;transition:opacity .2s ease}.ungroup-btn:hover{background-color:#fff3cd;opacity:1}.group-children{background-color:#fafbfc;border-left:1px solid #d0d7de;margin-left:20px}.child-item{background-color:#fafbfc;padding-left:32px!important;position:relative}.child-item:hover{background-color:#f2f3f5}.child-item.selected{background-color:#e8f3ff;border-left-color:#165dff;border-left-width:3px}.child-item:before{background-color:#d0d7de;bottom:0;content:"";left:20px;position:absolute;top:0;width:1px}.child-item:last-child:before{height:50%}.child-indent{color:#86909c;flex-shrink:0;font-family:monospace;font-size:10px;margin-right:4px;width:16px}.layer-item{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;user-select:none}.layer-item.dragging,.layer-item:active{cursor:-webkit-grabbing;cursor:grabbing}.layer-item.dragging{background-color:#fff;border:1px solid #165dff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);opacity:.5;transform:scale(.98);z-index:1000}.layer-item.drag-over-top:before{top:0}.layer-item.drag-over-bottom:after,.layer-item.drag-over-top:before{background-color:#165dff;content:"";height:2px;left:0;position:absolute;right:0;z-index:10}.layer-item.drag-over-bottom:after{bottom:0}.layer-item{position:relative}.layer-panel.dragging{-webkit-user-select:none;user-select:none}.layer-panel.dragging .layer-controls{opacity:.5}.layer-panel.dragging .layer-name{pointer-events:none}.layer-item:not(.dragging):hover{position:relative}.layer-item.drag-target{background-color:#f0f7ff;border:1px dashed #165dff;border-radius:4px}@media (max-width:768px){.layer-header{padding:8px 12px}.layer-item{padding:6px 12px}.layer-name{font-size:11px}.layer-item[draggable=true]{touch-action:none}}.settings-modal-overlay{align-items:center;background:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.settings-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;max-height:90vh;max-width:800px;width:90vw}.settings-modal-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.settings-modal-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.settings-modal-body{display:flex;flex:1 1;overflow:hidden}.settings-tabs{background:#f8fafc;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;padding:16px 0;width:200px}.settings-tab{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:14px;padding:12px 16px;text-align:left;transition:all .2s ease}.settings-tab:hover{background:#e5e7eb;color:#374151}.settings-tab.active{background:#3b82f6;color:#fff;font-weight:500}.tab-icon{font-size:16px;margin-right:8px}.settings-tab-content{flex:1 1;overflow-y:auto;padding:24px}.settings-section h4{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 8px}.settings-description{color:#6b7280;font-size:14px;margin-bottom:24px}.setting-group{margin-bottom:32px}.setting-group.danger-zone{border-top:1px solid #fecaca;margin-top:32px;padding-top:24px}.setting-label{display:block;margin-bottom:12px}.label-text{color:#1f2937;display:block;font-weight:500;margin-bottom:4px}.label-description{color:#6b7280;display:block;font-size:13px}.provider-selection{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.provider-option{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;padding:16px;transition:all .2s ease}.provider-option:hover{background:#f9fafb;border-color:#d1d5db}.provider-option.active{background:#eff6ff;border-color:#3b82f6}.provider-icon{font-size:24px;margin-right:12px}.provider-info{flex:1 1}.provider-name{color:#1f2937;font-weight:500;margin-bottom:2px}.provider-desc{color:#6b7280;font-size:12px}.model-selection{display:flex;flex-direction:column;gap:8px}.model-option{align-items:center;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;padding:12px;transition:all .2s ease}.model-option:hover{background:#f9fafb;border-color:#d1d5db}.model-option input[type=radio]{margin-right:12px}.model-info{flex:1 1}.model-name{color:#1f2937;font-weight:500;margin-bottom:2px}.model-description{color:#6b7280;font-size:13px}.temperature-control{width:100%}.temperature-slider{background:#e5e7eb;border-radius:3px;height:6px;margin-bottom:8px;outline:none;width:100%}.temperature-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#3b82f6;border-radius:50%;cursor:pointer;height:18px;width:18px}.temperature-slider::-moz-range-thumb{background:#3b82f6;border:none;border-radius:50%;cursor:pointer;height:18px;width:18px}.temperature-labels{align-items:center;display:flex;font-size:12px;justify-content:space-between}.temp-label{color:#6b7280}.temp-value{background:#eff6ff;border-radius:4px;color:#3b82f6;font-weight:600;padding:2px 8px}.max-tokens-input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 12px;width:200px}.max-tokens-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.theme-selection{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.theme-option{cursor:pointer}.theme-option input[type=radio]{display:none}.theme-preview{border:2px solid #e5e7eb;border-radius:8px;font-weight:500;padding:16px;text-align:center;transition:all .2s ease}.theme-option input[type=radio]:checked+.theme-preview{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.light-theme{background:#fff;color:#1f2937}.dark-theme{background:#1f2937;color:#fff}.language-select{border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:200px;padding:8px 12px}.language-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.current-config{background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;padding:16px}.config-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.config-label{color:#6b7280;font-size:14px}.config-value{color:#1f2937;font-size:14px;font-weight:500}.settings-management{display:flex;gap:12px}.management-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:14px;justify-content:center;padding:10px 16px;text-decoration:none;transition:all .2s ease}.management-btn:hover{background:#f3f4f6;border-color:#9ca3af}.export-btn{border-color:#059669;color:#059669}.export-btn:hover{background:#ecfdf5}.import-btn{border-color:#7c3aed;color:#7c3aed;position:relative}.import-btn:hover{background:#f5f3ff}.danger-btn{background:#fff;border:1px solid #ef4444;border-radius:6px;color:#ef4444;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s ease}.danger-btn:hover{background:#fef2f2}.settings-modal-footer{align-items:center;background:#f9fafb;border-radius:0 0 12px 12px;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 24px}.footer-left .unsaved-indicator{color:#f59e0b;font-size:14px;font-weight:500}.footer-right{display:flex;gap:12px}.cancel-btn{background:#fff;transition:all .2s ease}.cancel-btn:hover{background:#f3f4f6}.save-btn{background:#3b82f6;border:1px solid #3b82f6;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.save-btn:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.save-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed}@media (max-width:768px){.settings-modal-content{height:90vh;max-width:none;width:95vw}.settings-modal-body{flex-direction:column}.settings-tabs{border-bottom:1px solid #e5e7eb;border-right:none;flex-direction:row;overflow-x:auto;padding:12px;width:100%}.settings-tab{border-radius:6px;margin-right:8px;padding:8px 12px;white-space:nowrap}.settings-tab-content{padding:16px}.provider-selection,.theme-selection{grid-template-columns:1fr}.settings-management{flex-direction:column}}.switch-container{align-items:center;display:flex;gap:12px;margin-top:8px}.switch{display:inline-block;height:24px;position:relative;width:50px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;box-shadow:0 2px 4px rgba(0,0,0,.2);content:"";height:18px;left:3px;width:18px}input:checked+.slider{background-color:#10b981}input:focus+.slider{box-shadow:0 0 1px #10b981}input:checked+.slider:before{transform:translateX(26px)}.switch-label{color:#6b7280;font-size:13px;font-weight:500}input:checked~.switch-label{color:#10b981}.setting-note{font-size:12px;margin-top:8px}.note-success{color:#10b981}.note-info{color:#6b7280}.note-warning{color:#f59e0b}.project-manager{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;max-width:none;padding:20px;width:100%}.project-manager-header{align-items:center;border-bottom:2px solid #e1e5e9;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.project-manager-header h2{color:#1f2937;font-size:24px;font-weight:600;margin:0}.header-actions{gap:12px}.header-actions,.settings-btn{align-items:center;display:flex}.settings-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:16px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.settings-btn:hover{background:#e5e7eb;border-color:#9ca3af}.create-project-btn{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s ease}.create-project-btn:hover{background:#2563eb}.loading{color:#6b7280;font-size:16px;padding:60px 20px;text-align:center}.error-message{background:#fef2f2;border-radius:8px;margin-bottom:20px;padding:12px 16px}.create-project-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:24px}.create-project-form h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.form-group{margin-bottom:16px}.form-group label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.form-group input.error,.form-group textarea.error{border-color:#dc2626}.form-group textarea{min-height:80px;resize:vertical}.error-text{color:#dc2626}.error-text,.form-help{display:block;font-size:12px;margin-top:4px}.form-help{color:#6b7280}.form-actions{display:flex;gap:12px;margin-top:24px}.cancel-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .2s ease}.cancel-btn:hover{background:#e5e7eb}.submit-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s ease}.submit-btn:hover:not(:disabled){background:#059669}.submit-btn:disabled{background:#9ca3af;cursor:not-allowed}.empty-state{color:#6b7280;padding:60px 20px;text-align:center}.empty-state p{font-size:16px;margin:0}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));width:100%}.project-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1);display:flex;flex-direction:column;position:relative;transition:all .2s ease}.project-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-2px)}.project-card-content{cursor:pointer;flex:1 1;padding:20px}.project-actions{display:flex;gap:10px;opacity:0;position:absolute;right:16px;top:16px;transform:translateY(-4px);transition:all .3s cubic-bezier(.4,0,.2,1)}.project-card:hover .project-actions{opacity:1;transform:translateY(0)}.project-card:hover .project-actions:before{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:hsla(0,0%,100%,.9);border-radius:8px;bottom:-8px;content:"";left:-8px;position:absolute;right:-8px;top:-8px;z-index:-1}.project-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.project-header h3{color:#1f2937;flex:1 1;font-size:18px;font-weight:600;margin:0 12px 0 0}.mode-badge{background:#e5e7eb;border-radius:12px;color:#374151;font-size:12px;font-weight:500;padding:4px 8px;white-space:nowrap}.mode-badge.role{background:#dbeafe;color:#1d4ed8}.mode-badge.expression{background:#d1fae5;color:#065f46}.project-info{color:#6b7280;font-size:14px}.project-info p{margin:6px 0}.project-info strong{color:#374151}.version-breakdown{color:#6b7280;display:flex;font-size:12px;gap:12px;margin-top:8px}.version-count-badge{background:#f3f4f6;border-radius:12px;color:#374151;font-size:12px;font-weight:500;padding:4px 8px;white-space:nowrap}.project-info .project-meta{color:#6b7280;display:flex;font-size:14px;gap:16px;margin:8px 0}.back-btn{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:14px;gap:4px;padding:8px 12px;text-decoration:none;transition:background-color .2s ease}.back-btn:hover{background:#e5e7eb}.create-version-btn{background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s ease}.create-version-btn:hover{background:#047857}.create-version-form{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;margin-bottom:24px;padding:24px}.create-version-form h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.versions-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));width:100%}.version-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.1);display:flex;flex-direction:column;position:relative;transition:all .2s ease}.version-card:hover{border-color:#10b981;box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-1px)}.version-card-content{cursor:pointer;flex:1 1;padding:16px}.version-actions{display:flex;gap:8px;opacity:0;position:absolute;right:12px;top:12px;transform:translateY(-4px);transition:all .3s cubic-bezier(.4,0,.2,1)}.version-card:hover .version-actions{opacity:1;transform:translateY(0)}.version-card:hover .version-actions:before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:hsla(0,0%,100%,.9);border-radius:6px;bottom:-6px;content:"";left:-6px;position:absolute;right:-6px;top:-6px;z-index:-1}.version-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:10px}.version-header h3{color:#1f2937;flex:1 1;font-size:16px;font-weight:600;margin:0 8px 0 0}.type-badge{background:#e5e7eb;border-radius:10px;color:#374151;font-size:11px;font-weight:500;padding:3px 8px;white-space:nowrap}.type-badge.role{background:#dbeafe;color:#1d4ed8}.type-badge.expression{background:#d1fae5;color:#065f46}.version-info{color:#6b7280}.version-info p{margin:4px 0}.version-info strong{color:#374151}.delete-btn{align-items:center;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;box-shadow:0 1px 3px rgba(220,38,38,.12),0 1px 2px rgba(220,38,38,.08);color:#dc2626;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:32px;justify-content:center;line-height:1;opacity:.9;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1);width:32px}.delete-btn:hover{background:#dc2626;border-color:#b91c1c;box-shadow:0 4px 12px rgba(220,38,38,.25),0 2px 6px rgba(220,38,38,.15);color:#fff;opacity:1;transform:scale(1.15)}.delete-btn:active{box-shadow:0 2px 6px rgba(220,38,38,.2);transform:scale(1.05)}@media (max-width:1440px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.versions-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}@media (max-width:1024px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.versions-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width:768px){.project-manager{padding:16px}.project-manager-header{align-items:stretch;flex-direction:column;gap:16px}.projects-grid{gap:16px}.projects-grid,.versions-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.versions-grid{gap:12px}.form-actions{flex-direction:column}}@media (max-width:480px){.project-manager{padding:12px}.projects-grid{gap:12px;grid-template-columns:1fr}.versions-grid{gap:8px;grid-template-columns:1fr}.project-manager-header{padding-bottom:12px}}.test-interface{background-color:#f7f9fc;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100%;overflow:hidden;padding:20px}.test-header{align-items:flex-start;border-bottom:2px solid #e5e6eb;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.test-title h3{color:#1d2129;font-size:20px;font-weight:600;margin:0 0 8px}.test-title p{color:#86909c;font-size:14px;margin:0}.test-stats{align-items:center;gap:16px}.stat-item{background:#f2f3f5;border-radius:16px;font-size:14px;font-weight:500;padding:6px 12px}.test-content{display:flex;flex:1 1;gap:24px;min-height:0}.test-input-section{background:#fff;border:1px solid #e5e6eb;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);display:flex;flex-direction:column;padding:20px;width:400px}.input-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.input-header h4{color:#1d2129;font-size:16px;font-weight:600;margin:0}.current-model-display{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;display:flex;font-size:13px;gap:8px;padding:8px 12px}.current-model-display .model-info-label{font-weight:500}.current-model-display .model-info-value{align-items:center;color:#1e293b;display:flex;font-weight:600;gap:4px}.current-model-display .model-provider{color:#64748b;font-size:12px;font-weight:400}.current-model-display .model-settings-hint{color:#94a3b8;font-size:11px;margin-left:auto}.provider-tabs{background:#f7f8fa;border-radius:6px;display:flex;padding:2px}.provider-tab{background:transparent;border:none;border-radius:4px;color:#4e5969;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s ease}.provider-tab.active{background:#165dff;color:#fff}.provider-tab:hover:not(.active){background:#e5e6eb}.model-select{background:#fff;border:1px solid #e5e6eb;min-width:140px;padding:6px 10px}.test-input{background:#fafbfc;border:1px solid #e5e6eb;border-radius:8px;font-family:inherit;line-height:1.5;transition:border-color .2s ease}.test-input:focus{background:#fff}.test-input:disabled{background:#f7f8fa}.context-inputs{gap:12px}.context-inputs-header{margin-bottom:8px}.context-inputs-label{color:#4e5969;font-weight:500}.context-input-item{gap:6px}.context-label{font-size:12px;font-weight:500}.context-textarea{background:#fafbfc;border:1px solid #e5e6eb;font-family:inherit}.context-textarea:focus{background:#fff}.no-context-hint{border:1px dashed #e5e6eb}.input-actions{justify-content:space-between;margin-top:16px}.action-buttons{gap:12px}.run-test-btn{background:#00b42a;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s ease}.run-test-btn:hover:not(:disabled){background:#009a29}.run-test-btn:disabled{background:#c9cdd4}.view-prompt-btn{background:#165dff;border:none;border-radius:6px;color:#fff;padding:10px 16px;transition:background-color .2s ease}.view-prompt-btn:hover:not(:disabled){background:#0e42d2}.view-prompt-btn:disabled{background:#c9cdd4;cursor:not-allowed}.input-counter{font-size:12px}.test-history-section{background:#fff;border:1px solid #e5e6eb;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);display:flex;flex:1 1;flex-direction:column;min-height:0;padding:20px}.history-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.history-header h4{color:#1d2129;font-size:16px;font-weight:600;margin:0}.clear-history-btn{background:#f53f3f;border:none;border-radius:4px;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s ease}.clear-history-btn:hover{background:#cb272d}.test-history{flex:1 1;margin:-4px;overflow-y:auto;padding:4px}.empty-history{align-items:center;display:flex;flex-direction:column;height:200px;justify-content:center}.empty-history p:first-child{color:#4e5969;font-size:16px;font-weight:500}.test-record{background:#fafbfc;border:1px solid #e5e6eb;border-radius:8px;margin-bottom:12px;overflow:hidden;transition:border-color .2s ease}.record-header{background:#f7f8fa;border-bottom:1px solid #e5e6eb;padding:12px 16px}.record-model{background:#e8f4ff;color:#165dff;font-weight:500}.record-status.success{background:#e8ffea}.record-status.error{background:#ffece8}.record-content{padding:16px}.record-error,.record-input,.record-output{margin-bottom:12px}.record-error strong,.record-input strong,.record-output strong{display:block;font-size:13px;margin-bottom:6px}.record-error p,.record-input p,.record-output p{background:#fff;border:1px solid #e5e6eb;border-radius:4px;color:#4e5969;font-size:13px;line-height:1.4;margin:0;padding:8px 12px}.record-error p{background:#fff2f0;border-color:#ffccc7;color:#a61e1e}.record-svg{margin-top:12px}.record-svg strong{color:#1d2129;display:block;font-size:13px;margin-bottom:8px}.svg-preview{background:#fff;border:1px solid #e5e6eb;padding:12px}.svg-preview svg{max-height:200px}.test-history::-webkit-scrollbar{width:6px}.test-history::-webkit-scrollbar-track{background:#f7f8fa}.test-history::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.test-history::-webkit-scrollbar-thumb:hover{background:#a9aeb8}@media (max-width:1024px){.test-content{flex-direction:column}.test-input-section{width:100%}.test-interface{padding:16px}}@media (max-width:768px){.test-header{align-items:stretch;flex-direction:column;gap:12px}.test-stats{justify-content:space-between}.input-header{align-items:stretch;flex-direction:column;gap:12px}.model-selector{justify-content:space-between}.action-buttons{flex-direction:column;gap:8px}}.modal-content{max-height:80vh;max-width:80vw;width:800px}.modal-body{display:flex;flex-direction:column}.prompt-info{background:#fafbfc;border-bottom:1px solid #e5e6eb;padding:16px 24px}.prompt-meta{font-size:14px}.prompt-meta span{background:#f2f3f5;border-radius:4px;color:#4e5969;font-weight:500;padding:4px 8px}.prompt-content{flex:1 1;min-height:200px;padding:24px}.prompt-content pre{background:none;border:none;font-size:13px;line-height:1.6;padding:0}.modal-actions{background:#f7f8fa;padding:16px 24px}.copy-btn{background:#165dff;font-weight:500}.copy-btn:hover{background:#0e42d2}.close-btn{background:#f2f3f5;transition:background-color .2s ease}.close-btn:hover{background:#e5e6eb}.prompt-content::-webkit-scrollbar{width:8px}.prompt-content::-webkit-scrollbar-track{background:#f7f8fa;border-radius:4px}.prompt-content::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:4px}.prompt-content::-webkit-scrollbar-thumb:hover{background:#a9aeb8}@media (max-width:768px){.modal-content{margin:16px;max-height:90vh;max-width:95vw}.modal-actions,.modal-header,.prompt-info{padding-left:16px;padding-right:16px}.prompt-content{padding:16px}.prompt-meta{flex-direction:column;gap:8px}}.svg-header{margin-bottom:8px}.view-svg-code-btn{padding:4px 8px}@media (max-width:768px){.svg-code-modal{height:90vh;max-height:90vh;width:95vw}.svg-code-content{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.svg-header{align-items:flex-start;flex-direction:column;gap:8px}.modal-actions{padding:12px 16px}}.view-test-prompt-btn{background-color:#00bc79;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px;transition:background-color .2s ease;white-space:nowrap}.view-test-prompt-btn:hover{background-color:#009a61}.test-record.running{animation:pulse 2s ease-in-out infinite;border-left:4px solid #165dff}.record-progress{margin-top:8px;padding:8px 0}.progress-text{color:#4e5969;display:block;font-size:13px;margin-bottom:6px}.progress-bar{background:#e5e6eb;border-radius:2px;height:4px;overflow:hidden;width:100%}.progress-fill{animation:progress-animate 1.5s ease-in-out infinite;background:linear-gradient(90deg,#165dff,#722ed1);border-radius:2px;height:100%}@keyframes progress-animate{0%{margin-left:0;width:0}50%{margin-left:12.5%;width:75%}to{margin-left:100%;width:0}}.record-status.running{background:#e6f4ff;color:#165dff;position:relative}.record-status.running:after{animation:spin 1s linear infinite;border:2px solid #165dff;border-radius:50%;border-top-color:transparent;content:"";height:8px;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:8px}.record-loading,.record-pending{color:#4e5969;padding:12px 0}.record-loading strong,.record-pending strong{color:#1d2129}.record-svg.streaming{background:#f0f5ff;border:2px dashed #165dff;position:relative}.record-svg.streaming:before{background:#165dff;border-radius:4px;color:#fff;content:"实时生成中...";font-size:11px;padding:2px 6px;position:absolute;right:12px;top:8px;z-index:1}.svg-preview.streaming{-webkit-filter:blur(.5px);filter:blur(.5px);transition:-webkit-filter .3s ease;transition:filter .3s ease;transition:filter .3s ease,-webkit-filter .3s ease}.svg-preview.streaming:hover{-webkit-filter:none;filter:none}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(0,0,0,.5);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,.2);display:flex;flex-direction:column;height:700px;max-height:85vh;min-width:800px;overflow:hidden;position:relative;width:1200px;z-index:1001}.modal-body{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:400px 1fr;min-height:0;overflow:hidden}.modal-header{background:#f7f8fa;border-bottom:1px solid #e5e6eb;padding:20px 24px}.modal-header h3{font-size:18px}.modal-close-btn{font-size:24px;height:32px;padding:0;transition:all .2s ease;width:32px}.modal-close-btn:hover{background:#e5e6eb;color:#4e5969}.history-list-section{background:#fafbfc;border-right:1px solid #e5e6eb;display:flex;flex-direction:column;min-height:0;overflow:hidden}.section-header{align-items:center;background:#fff;border-bottom:1px solid #e5e6eb;display:flex;justify-content:space-between;padding:16px 20px}.section-header h4{color:#1d2129;font-size:16px;font-weight:600;margin:0}.count-badge{background:#e8f4ff;border-radius:12px;color:#165dff;font-size:12px;font-weight:500;padding:4px 8px}.empty-state,.loading-state{align-items:center;color:#86909c;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.empty-state p:first-child{color:#4e5969;font-size:16px;font-weight:500;margin-bottom:8px}.empty-state p:last-child{font-size:14px;margin:0}.history-list{flex:1 1;max-height:100%;min-height:0;overflow-y:auto;padding:8px}.history-item{background:#fff;border:1px solid #e5e6eb;border-radius:8px;cursor:pointer;margin-bottom:8px;padding:12px;transition:all .2s ease}.history-item:hover{border-color:#165dff;box-shadow:0 2px 8px rgba(22,93,255,.1)}.history-item.selected{background:#f0f5ff;border-color:#165dff;box-shadow:0 2px 8px rgba(22,93,255,.15)}.item-header{justify-content:space-between;margin-bottom:8px}.item-header,.item-info{align-items:center;display:flex}.item-info{gap:8px}.version-info{color:#1d2129;font-size:13px;font-weight:600}.time-info{color:#86909c;font-size:12px}.model-badge{background:#e8ffea;border-radius:4px;color:#00b42a;font-size:11px;font-weight:500;padding:2px 6px}.item-content{margin-bottom:8px}.description,.test-input{color:#4e5969;font-size:13px;margin-bottom:4px}.description strong,.test-input strong{color:#1d2129}.item-preview{background:#f7f8fa;border-radius:4px;height:60px;overflow:hidden}.item-preview,.svg-thumbnail{align-items:center;display:flex;justify-content:center}.svg-thumbnail,.svg-thumbnail svg{max-height:100%;max-width:100%}.preview-section{background:#fff;display:flex;flex-direction:column;min-height:0;overflow:hidden}.add-to-canvas-btn{background:#00b42a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.add-to-canvas-btn:hover{background:#009a29}.preview-area{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow-y:auto}.preview-info{background:#fafbfc;border-bottom:1px solid #e5e6eb;padding:16px 20px}.selected-role-info h5{color:#1d2129;font-size:16px;font-weight:600;margin:0 0 8px}.selected-role-info p{color:#4e5969;font-size:14px;margin:4px 0}.selected-role-info strong{color:#1d2129}.preview-canvas{align-items:center;display:flex;flex:1 1;justify-content:center;min-height:200px;overflow:auto;padding:20px}.svg-preview{background:#f7f8fa;border:2px dashed #e5e6eb;border-radius:8px;max-height:100%;max-width:100%;padding:20px}.svg-preview svg{border-radius:4px;max-height:100%}.no-preview{height:200px}.no-preview,.select-prompt{align-items:center;background:#f7f8fa;border:2px dashed #e5e6eb;border-radius:8px;color:#86909c;display:flex;font-size:16px;justify-content:center}.select-prompt{flex:1 1;margin:20px;min-height:200px}.history-list::-webkit-scrollbar,.preview-area::-webkit-scrollbar,.preview-canvas::-webkit-scrollbar{width:6px}.history-list::-webkit-scrollbar-track,.preview-area::-webkit-scrollbar-track,.preview-canvas::-webkit-scrollbar-track{background:#f7f8fa}.history-list::-webkit-scrollbar-thumb,.preview-area::-webkit-scrollbar-thumb,.preview-canvas::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.history-list::-webkit-scrollbar-thumb:hover,.preview-area::-webkit-scrollbar-thumb:hover,.preview-canvas::-webkit-scrollbar-thumb:hover{background:#a9aeb8}@media (max-width:1024px){.modal-content{height:90vh;min-width:600px;width:95vw}.modal-body{grid-template-columns:300px 1fr}}@media (max-width:768px){.modal-content{border-radius:0;height:100vh;max-height:none;max-width:none;width:100vw}.modal-body{grid-template-columns:1fr;grid-template-rows:300px 1fr}.history-list-section{border-bottom:1px solid #e5e6eb;border-right:none}.section-header{padding:12px 16px}.modal-header{padding:16px 20px}}.preview-actions{display:flex;gap:8px}.view-svg-code-btn{background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px!important;padding:6px 12px;transition:background-color .2s ease}.view-svg-code-btn:hover{background-color:#0e4ba8}.svg-code-overlay{z-index:1100}.svg-code-modal{height:700px;max-height:90vh;max-width:95vw;min-height:500px;width:1000px}.svg-code-modal .modal-body{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.svg-code-content{grid-gap:20px;display:grid;flex:1 1;grid-template-columns:1fr 1fr;min-height:0;overflow:hidden}.code-section,.preview-section{display:flex;flex-direction:column;min-height:0;overflow:hidden}.code-section h4,.preview-section h4{border-bottom:1px solid #e5e6eb;font-size:16px;padding-bottom:8px}.svg-code{background:#f7f8fa;border:1px solid #e5e6eb;border-radius:6px;color:#1d2129;flex:1 1;font-size:12px;overflow:auto;padding:16px;white-space:pre-wrap;word-break:break-all}.svg-code::-webkit-scrollbar{height:8px;width:8px}.svg-code::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.svg-code::-webkit-scrollbar-thumb{background:silver;border-radius:4px}.svg-code::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.svg-preview-large{background:#fff;border:1px solid #e5e6eb;border-radius:6px;flex:1 1;min-height:0}.svg-preview-large svg{width:auto}.modal-actions{background:#fafbfc;border-top:1px solid #e5e6eb;flex-shrink:0;gap:12px;padding:16px 20px}.copy-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s ease}.copy-btn:hover{background-color:#0e4ba8}.close-btn{border:1px solid #e5e6eb;border-radius:6px;font-size:14px;padding:8px 16px;transition:all .2s ease}.close-btn:hover{background-color:#e5e6eb}@media (max-width:768px){.svg-code-modal{height:90vh;max-height:90vh;width:95vw}.svg-code-content{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.preview-actions{align-items:flex-start;flex-direction:column;gap:8px}.modal-actions{padding:12px 16px}}.horizontal-test-interface{background-color:#fff;border-radius:6px;display:flex;flex-direction:row;gap:2px;height:100%;overflow:hidden}.basic-expression-test-area{border-right:1px solid #d2d3d5}.basic-expression-test-area,.change-expression-test-area{display:flex;flex:1 1;flex-direction:column;min-width:400px}.test-area-content{display:flex;flex-direction:row;gap:1px;height:100%}.input-panel-container{background-color:#fff;border-right:1px solid #d2d3d5;display:flex;flex:1 1;flex-direction:column;max-width:400px;min-width:300px}.basic-expression-panel,.change-expression-panel{display:flex;flex-direction:column;height:100%}.test-history-panel{display:flex;flex:1 1;flex-direction:column;min-height:0;min-width:0}.panel-header{align-items:center;background-color:#edf1f6;border-bottom:1px solid #d2d3d5;display:flex;flex-shrink:0;height:42px;justify-content:space-between;max-height:42px;min-height:42px;padding:12px 16px}.panel-header h4{color:#1d2129;font-size:18px;font-weight:600;margin:0}.panel-mode-indicator{align-items:center;display:flex}.mode-tag{font-size:11px;padding:2px 8px}.basic-expression-content,.change-expression-content{display:flex;flex:1 1;flex-direction:column;min-height:0;padding:20px}.no-input-needed{align-items:center;display:flex;height:100%;justify-content:center}.no-input-needed,.no-input-text{color:#86909c;font-size:14px;text-align:center}.no-input-text{line-height:1.6}.dialogue-input,.direct-input{display:flex;flex-direction:column;height:100%}.dialogue-input .input-actions.centered .action-buttons{align-items:center;display:flex;flex-direction:row;gap:4px;justify-content:center}.direct-input-header{margin-bottom:12px}.direct-label{color:#1d2129;font-size:13px;font-weight:700}.direct-textarea{border:1px solid #d2d3d5;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;min-height:80px;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.direct-textarea:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.direct-textarea:disabled{background-color:#f7f8fa;color:#86909c;cursor:not-allowed}.input-actions{background-color:#f7f9fc;border-top:1px solid #d2d3d5;flex-direction:column;gap:12px;padding:16px}.action-buttons{display:flex;flex-wrap:wrap;gap:4px}.input-actions.centered{background-color:initial;border:none;display:flex;justify-content:center;margin-top:8px;padding:0}.input-actions.centered .action-buttons{align-items:center;display:flex;gap:4px;justify-content:center}.test-stats{display:flex;font-size:12px;gap:12px}.stat-item{background-color:#f2f3f5;border-radius:4px;color:#4e5969;padding:2px 6px}.stat-item.success{background-color:#e8ffea;color:#00b42a}.stat-item.error{background-color:#ffece8;color:#f53f3f}.version-info{color:#86909c;display:flex;font-size:12px;gap:12px}.version-info span{white-space:nowrap}.input-section{display:flex;flex:1 1;flex-direction:column;gap:12px;padding:16px}.current-model-info{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;display:flex;font-size:14px;gap:8px;margin-bottom:16px;padding:12px 16px}.model-info-label{color:#64748b;font-weight:500}.model-info-value{align-items:center;color:#1e293b;display:flex;font-weight:600;gap:6px}.model-provider{color:#64748b;font-size:13px;font-weight:400}.model-settings-hint{color:#94a3b8;font-size:12px;margin-left:auto}.model-select{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#1d2129;cursor:pointer;flex:1 1;font-size:12px;min-width:0;padding:6px 8px}.model-select:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.test-input{border:1px solid #d2d3d5;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;max-height:120px;min-height:80px;padding:12px;resize:vertical;width:100%}.test-input:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.test-input:disabled{background-color:#f7f8fa;color:#86909c;cursor:not-allowed}.context-scroll{flex:1 1;min-height:0;overflow-y:auto;padding-right:6px}.context-scroll::-webkit-scrollbar{width:6px}.context-scroll::-webkit-scrollbar-track{background:#f7f8fa}.context-scroll::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.context-scroll::-webkit-scrollbar-thumb:hover{background:#a9aeb8}.context-inputs-header{margin-bottom:12px}.context-inputs-label{color:#1d2129;font-size:13px;font-weight:700}.context-label{margin:0}.context-textarea{border:1px solid #d2d3d5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:50px;width:100%}.context-textarea:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.context-textarea:disabled,.no-context-hint{background-color:#f7f8fa;color:#86909c}.no-context-hint{border:1px dashed #d2d3d5;border-radius:4px;font-style:italic;padding:16px}.input-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.clear-history-btn,.run-test-btn,.view-prompt-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:6px 12px;transition:all .2s ease}.run-test-btn{background-color:#165dff;color:#fff}.run-test-btn:hover:not(:disabled){background-color:#0e42d2}.run-test-btn:disabled{background-color:#86909c;cursor:not-allowed}.view-prompt-btn:hover:not(:disabled){background-color:#f2f3f5}.clear-history-btn{background-color:#f53f3f;color:#fff}.clear-history-btn:hover{background-color:#cb272d}.input-counter{color:#86909c;font-size:11px;margin-left:auto}.history-content{flex:1 1;min-height:0;overflow-y:auto;padding:16px}.empty-history{color:#86909c;font-size:14px;padding:40px 20px;text-align:center}.empty-history p{margin:4px 0}.test-records{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;overflow-y:auto;padding-right:8px}.test-records.horizontal-scroll{align-items:flex-start;display:flex;flex-direction:row;gap:24px;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;padding-right:0}.test-records.horizontal-scroll .test-record{flex-shrink:0;height:auto;width:450px}@media (max-width:800px){.test-records{grid-template-columns:1fr}}@container (max-width: 600px){.test-records{grid-template-columns:1fr}}.test-records::-webkit-scrollbar{width:6px}.test-records::-webkit-scrollbar-track{background:#f7f8fa;border-radius:3px}.test-records::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.test-records::-webkit-scrollbar-thumb:hover{background:#86909c}.test-records.horizontal-scroll::-webkit-scrollbar{height:6px;width:auto}.test-records.horizontal-scroll::-webkit-scrollbar-track{background:#f7f8fa;border-radius:3px}.test-records.horizontal-scroll::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.test-records.horizontal-scroll::-webkit-scrollbar-thumb:hover{background:#86909c}.test-record{background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;display:flex;flex-direction:column;flex-shrink:0;overflow:visible;width:100%}.test-record.success{border-left:4px solid #00b42a}.horizontal-scroll .test-record.success{border-left:1px solid #d2d3d5;border-top:4px solid #00b42a}.test-record.streaming{animation:streamingPulse 2s ease-in-out infinite;background:linear-gradient(90deg,#f0f9ff,#e0f2fe);border-left:4px solid #0ea5e9}.test-record.streaming .record-status{background:#0ea5e9;border-radius:10px;color:#fff;font-size:11px;font-weight:500;padding:2px 6px}.test-record.streaming .record-status:after{animation:dots 1.5s steps(3) infinite;content:"..."}@keyframes streamingPulse{0%,to{box-shadow:0 0 0 0 rgba(14,165,233,.4)}50%{box-shadow:0 0 0 6px rgba(14,165,233,0)}}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.record-streaming{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:4px;margin-top:8px;padding:12px}.record-streaming strong{color:#0c4a6e;font-weight:600}.streaming-svg-preview{overflow:hidden;position:relative}.streaming-svg-preview:after{animation:streamingShine 2s ease-in-out infinite;background:linear-gradient(90deg,transparent,rgba(14,165,233,.1) 50%,transparent);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes streamingShine{0%{left:-100%}50%,to{left:100%}}.partial-svg{border:2px dashed #0ea5e9;border-radius:4px;position:relative}.partial-svg:before{animation:partialBlink 1.5s ease-in-out infinite;background:#0ea5e9;border-radius:3px;color:#fff;content:"⚡ 实时渲染中";font-size:10px;left:8px;padding:2px 6px;position:absolute;top:-8px;z-index:1}@keyframes partialBlink{0%,50%{opacity:1}51%,to{opacity:.6}}.svg-placeholder{align-items:center;background:#fafafa;border:1px dashed #ddd;border-radius:4px;color:#999;display:flex;font-size:12px;height:120px;justify-content:center;width:100%}.svg-placeholder.streaming{animation:placeholderPulse 2s ease-in-out infinite;background:#f0f9ff;border-color:#0ea5e9;color:#0ea5e9}@keyframes placeholderPulse{0%,to{background:#f0f9ff;border-color:#0ea5e9}50%{background:#e0f2fe;border-color:#38bdf8}}.test-record.error{border-left:4px solid #f53f3f}.record-header{background-color:#f7f9fc;border-bottom:1px solid #d2d3d5;padding:10px 16px}.record-info{align-items:center;display:flex;font-size:12px;gap:12px}.record-time{color:#4e5969;font-weight:500}.record-model{background-color:#f2f3f5;border-radius:4px;color:#4e5969;padding:2px 6px}.horizontal-scroll .record-model{background-color:initial;padding:0}.record-duration{color:#86909c}.record-status{border-radius:4px;font-weight:500;padding:2px 6px}.record-status.success{background-color:#e8ffea;color:#00b42a}.record-status.error{background-color:#ffece8;color:#f53f3f}.horizontal-scroll .record-status.success{background-color:#dcfce7;color:#16a34a}.horizontal-scroll .record-status.error{background-color:#fef2f2;color:#dc2626}.record-content{font-size:14px;overflow-y:visible;padding:12px 16px}.record-error,.record-input,.record-output{margin-bottom:10px}.record-error strong,.record-input strong,.record-output strong{color:#1d2129;font-weight:600;margin-right:8px}.record-input,.record-output{color:#4e5969}.record-error{color:#f53f3f}.record-svg{border-top:1px solid #f2f3f5;margin-top:8px;padding-top:8px}.svg-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.svg-header strong{color:#1d2129;font-weight:600}.svg-header-buttons{align-items:center;display:flex;gap:6px}.view-svg-code-btn,.view-test-prompt-btn{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#4e5969;cursor:pointer;font-size:14px!important;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.view-svg-code-btn:hover{border-color:#165dff;color:#165dff}.view-test-prompt-btn:hover{border-color:#00bc79;color:#00bc79}.error-actions{border-top:1px solid #f2f3f5;margin-top:8px;padding-top:8px}.error-content{margin-bottom:0}.svg-preview{align-items:center;background-color:#f7f9fc;border:1px solid #d2d3d5;border-radius:4px;display:flex;justify-content:center;min-height:100px;overflow:visible;padding:6px;width:100%}.svg-preview svg{background-color:#fff;border:1px solid #e0e0e0;border-radius:3px;height:auto;max-width:100%;object-fit:contain;width:100%}.svg-preview [dangerouslySetInnerHTML] svg{height:auto!important;object-fit:contain!important;width:100%!important}.modal-overlay{align-items:center;animation:fadeIn .2s ease;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideIn .3s ease;background-color:#fff;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.2);max-height:90vh;max-width:90vw;overflow:visible;width:600px}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content.svg-code-modal{max-width:95vw;width:800px}.modal-header{align-items:center;border-bottom:1px solid #d2d3d5;display:flex;justify-content:space-between;padding:16px 20px}.modal-header h3{color:#1d2129;font-size:16px;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#86909c;cursor:pointer;display:flex;font-size:18px;justify-content:center;line-height:1;min-height:32px;min-width:32px;padding:8px;transition:color .2s ease}.modal-close-btn:hover{background-color:#f5f5f5;color:#1d2129}.modal-body{padding:20px}.prompt-info,.prompt-meta{margin-bottom:16px}.prompt-meta{color:#86909c;display:flex;font-size:12px;gap:16px}.template-preview{margin-top:16px}.template-preview h4{color:#1d2129;font-size:14px;font-weight:600;margin:0 0 8px}.svg-template-container{align-items:center;background-color:#f7f9fc;border:1px solid #d2d3d5;border-radius:4px;display:flex;justify-content:center;max-height:200px;min-height:120px;overflow:auto;padding:12px}.svg-template-preview svg{background-color:#fff;border:2px dashed #c9cdd4;height:auto;max-height:100%;max-width:100%}.prompt-content{background-color:#f7f8fa;border:1px solid #d2d3d5;border-radius:4px;margin-bottom:16px;max-height:400px;overflow-y:auto;padding:16px}.prompt-content pre{word-wrap:break-word;color:#1d2129;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;margin:0;white-space:pre-wrap}.svg-code-content{display:flex;gap:20px}.code-section,.preview-section{flex:1 1}.code-section h4,.preview-section h4{color:#1d2129;font-size:14px;font-weight:600;margin:0 0 12px}.svg-code{background-color:#f7f8fa;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;line-height:1.4;overflow-y:auto;padding:12px}.svg-code,.svg-preview-large{border:1px solid #d2d3d5;border-radius:4px;max-height:300px}.svg-preview-large{align-items:center;background-color:#f7f9fc;display:flex;justify-content:center;min-height:200px;overflow:auto;padding:16px}.svg-preview-large svg{background-color:#fff;border:2px dashed #c9cdd4;height:auto;max-height:100%;max-width:100%}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.close-btn,.copy-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;min-height:40px;padding:10px 20px;transition:all .2s ease;white-space:nowrap}.copy-btn{background-color:#165dff;color:#fff}.copy-btn:hover{background-color:#0e42d2}.close-btn{background-color:#f2f3f5;border:1px solid #d2d3d5;color:#4e5969}.close-btn:hover{background-color:#d2d3d5}.modal-content.system-prompt-modal{max-width:95vw;width:900px}.system-prompt-content{max-height:60vh}.prompt-section h4{color:#1d2129;font-size:14px;font-weight:600;margin:0 0 12px}.system-prompt-text{background-color:#f7f8fa;border:1px solid #d2d3d5;border-radius:6px;max-height:50vh;overflow-y:auto;padding:16px}.system-prompt-text pre{word-wrap:break-word;color:#1d2129;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.6;margin:0;white-space:pre-wrap}.view-prompt-btn{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#4e5969;cursor:pointer;font-size:14px;font-weight:500;margin-left:8px;padding:6px 12px;transition:all .2s ease}.view-prompt-btn:hover{background-color:#f2f3f5;color:#1d2129}.emotion-input{display:flex;flex-direction:column;height:100%}.emotion-input-header{margin-bottom:12px}.emotion-label{color:#1d2129;font-size:13px;font-weight:700}.emotion-textarea{border:1px solid #d2d3d5;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;min-height:100px;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.emotion-textarea:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.emotion-textarea:disabled{background-color:#f7f8fa;color:#86909c;cursor:not-allowed}.chat-interface{background-color:#fff;border-radius:6px;display:flex;flex:1 1;flex-direction:column;height:100%;margin:0;overflow:hidden}.chat-messages{background-color:#f7f8fa;border-radius:6px 6px 0 0;display:flex;flex:1 1;flex-direction:column;gap:4px;min-height:0;overflow-y:auto;padding:4px}.chat-empty{align-items:center;color:#86909c;display:flex;font-size:14px;height:100%;justify-content:center;text-align:center}.chat-message{word-wrap:break-word;border-radius:6px;display:flex;flex-direction:column;gap:4px;max-width:85%;padding:8px 10px}.chat-message.user{align-self:flex-end;background-color:#165dff;color:#fff!important}.chat-message.ai{align-self:flex-start;background-color:#fff;border:1px solid #d2d3d5;color:#1d2129}.chat-message.loading{opacity:.8}.message-header{align-items:center;display:flex;font-size:11px;justify-content:space-between;margin-bottom:2px}.message-sender{font-weight:600}.chat-message.user .message-content,.chat-message.user .message-sender{color:#fff!important}.chat-message.user .message-time{color:#fff!important;opacity:.8}.chat-message.ai .message-sender{color:#4e5969}.message-time{font-size:11px;opacity:.7}.message-content{font-size:13px;line-height:1.4}.message-expression{border-top:1px solid hsla(0,0%,100%,.2);margin-top:8px;padding-top:8px}.chat-message.ai .message-expression{border-top:1px solid #d2d3d5}.expression-preview{align-items:center;background-color:hsla(0,0%,100%,.1);border-radius:4px;display:flex;justify-content:center;min-height:60px;padding:8px}.chat-message.ai .expression-preview{background-color:#f7f9fc}.expression-preview svg{height:auto;max-height:60px;max-width:100px;width:auto}.typing-indicator{align-items:center;display:flex;gap:4px}.typing-indicator span{animation:typingDot 1.5s ease-in-out infinite;background-color:#86909c;border-radius:50%;height:6px;width:6px}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.3s}.typing-indicator span:nth-child(3){animation-delay:.6s}@keyframes typingDot{0%,60%,to{opacity:.5;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-input-area{background-color:#fff;border-radius:0 0 6px 6px;margin:16px 0 0;padding:4px 6px}.chat-input-container{align-items:flex-end;display:flex;gap:8px;width:100%}.chat-input{border:1px solid #d2d3d5;border-radius:4px;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;max-height:80px;min-height:32px;padding:6px 10px;resize:none;transition:border-color .2s ease}.chat-input:focus{border-color:#165dff;box-shadow:0 0 0 2px rgba(22,93,255,.1);outline:none}.chat-input:disabled{background-color:#f7f8fa;color:#86909c;cursor:not-allowed}.chat-send-btn{background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease;white-space:nowrap}.chat-send-btn:hover:not(:disabled){background-color:#0e42d2}.chat-send-btn:disabled{background-color:#86909c;cursor:not-allowed}.clear-chat-btn{background-color:#f53f3f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:8px 12px;transition:background-color .2s ease;white-space:nowrap}.clear-chat-btn:hover{background-color:#cb272d}.clear-chat-btn-inline{background-color:#f53f3f;border:none;border-radius:4px;color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;height:-webkit-fit-content;height:fit-content;padding:6px 8px;transition:background-color .2s ease;white-space:nowrap}.clear-chat-btn-inline:hover{background-color:#cb272d}.clear-chat-btn-inline:disabled{background-color:#86909c;cursor:not-allowed}.chat-status{align-items:center;display:flex;justify-content:center;min-height:20px;padding:4px 8px}.status-indicator{border-radius:3px;font-size:12px;font-weight:500;padding:2px 6px}.status-indicator.chat-loading{background-color:#e8f4fd;color:#1d6bc6}.status-indicator.expression-loading{background-color:#fff2e8;color:#d67619}.status-indicator.ready{background-color:#e8f8f2;color:#00b85c}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#f7f8fa;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#86909c}.history-content::-webkit-scrollbar,.prompt-content::-webkit-scrollbar,.svg-code::-webkit-scrollbar{width:6px}.history-content::-webkit-scrollbar-track,.prompt-content::-webkit-scrollbar-track,.svg-code::-webkit-scrollbar-track{background:#f7f8fa;border-radius:3px}.history-content::-webkit-scrollbar-thumb,.prompt-content::-webkit-scrollbar-thumb,.svg-code::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.history-content::-webkit-scrollbar-thumb:hover,.prompt-content::-webkit-scrollbar-thumb:hover,.svg-code::-webkit-scrollbar-thumb:hover{background:#86909c}.selected-context-tags-preview{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:6px;margin-bottom:16px;padding:12px}.tags-preview-header{margin-bottom:8px}.preview-title{color:#374151;font-size:13px;font-weight:500}.selected-tags-chips{display:flex;flex-wrap:wrap;gap:6px}.context-tag-chip{align-items:center;background:#0ea5e9;border-radius:4px;color:#fff;display:inline-flex;font-size:12px;font-weight:500;padding:4px 8px;white-space:nowrap}.context-fields,.context-inputs{display:flex;flex-direction:column;gap:16px}.context-input-item{display:flex;flex-direction:column;gap:8px}.context-label{color:#1d2129;font-size:13px;font-weight:700}.context-textarea{border:1px solid #d1d5db;border-radius:4px;font-size:13px;min-height:60px;outline:none;padding:8px 12px;resize:vertical;transition:border-color .2s ease}.context-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.context-textarea:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.no-context-hint{background:#f9fafb;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;font-size:13px;padding:20px;text-align:center}.modal-content.configuration-details-modal{display:flex;flex-direction:column;max-height:90vh;overflow:visible!important;width:min(1200px,95vw)!important}.modal-content.system-prompt-focused{height:85vh;max-height:85vh;width:min(1400px,98vw)}.details-sections{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;gap:16px;min-height:0;min-width:0;overflow-x:visible;overflow-y:auto;padding:16px;width:100%}.detail-section{background-color:#f9fafb;border:1px solid #d2d3d5;border-radius:8px;overflow:visible;padding:16px}.detail-section h4{align-items:center;color:#1d2129;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 12px}.config-item{margin-bottom:12px;padding:8px 0}.config-item:last-child{margin-bottom:0}.config-item strong{color:#4e5969;display:block;font-size:13px;font-weight:600;margin-bottom:4px}.base-expression-preview,.generated-svg-preview,.svg-template-preview{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px}.svg-render{align-items:center;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;display:flex;flex:1 1;justify-content:center;max-height:300px;max-width:100%;min-height:120px;overflow:auto;padding:12px}.svg-render svg{height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.copy-svg-btn{align-items:center;background-color:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;justify-content:center;min-height:32px;padding:8px 16px;transition:background-color .2s ease;white-space:nowrap}.copy-svg-btn:hover{background-color:#0e42d2}.rules-content{word-wrap:break-word;background-color:#f7f8fa;border:1px solid #d2d3d5;border-radius:4px;color:#1d2129;font-size:13px;line-height:1.5;max-height:200px;overflow-y:auto;padding:12px;white-space:pre-wrap}.mode-tag{background-color:#f0f7ff;border:1px solid rgba(22,93,255,.3);border-radius:4px;color:#165dff;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.input-content,.test-input-content{word-wrap:break-word;background-color:#f7f8fa;border:1px solid #d2d3d5;border-radius:4px;color:#1d2129;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;max-height:150px;overflow-y:auto;padding:12px;white-space:pre-wrap}.system-prompt-content{word-wrap:break-word;background-color:#fff;border:1px solid #d2d3d5;border-radius:6px;color:#1a202c;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:14px;line-height:1.6;min-height:300px;overflow-y:auto;padding:20px;white-space:pre-wrap;word-break:break-word}.system-prompt-display{display:flex;flex-direction:column;height:100%;min-height:400px}.system-prompt-section{border:1px solid #e5e7eb;border-radius:8px;display:flex;flex:1 1;flex-direction:column;margin-bottom:16px;min-width:0;overflow:visible;width:100%}.system-prompt-section-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;color:#fff;display:flex;flex-shrink:0;font-size:15px;font-weight:600;justify-content:flex-start;line-height:1.4;min-height:44px;overflow:visible;padding:12px 20px;position:relative;text-align:left;white-space:normal;width:100%;word-break:break-word;z-index:10}.system-prompt-section-content{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:visible;padding:0}.system-prompt-content-enhanced{word-wrap:break-word;background-color:#fff;color:#1a202c;flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:14px;line-height:1.6;overflow-y:auto;padding:20px;white-space:pre-wrap;word-break:break-word}.system-prompt-toolbar{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;flex-shrink:0;gap:12px;padding:12px 16px}.font-size-controls{align-items:center;display:flex;gap:8px}.font-size-controls span{color:#64748b;font-size:12px;font-weight:500}.font-size-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;display:flex;font-size:12px;font-weight:500;height:28px;justify-content:center;transition:all .2s ease;width:28px}.font-size-btn:hover{background:#f9fafb;border-color:#9ca3af}.system-prompt-content-enhanced.font-small{font-size:12px;line-height:1.5}.system-prompt-content-enhanced.font-medium{font-size:14px;line-height:1.6}.system-prompt-content-enhanced.font-large{font-size:16px;line-height:1.7}.system-prompt-content-enhanced.font-xlarge{font-size:18px;line-height:1.8}.no-data{color:#86909c;font-size:12px;font-style:italic}.view-details-btn{background-color:#fff;border:1px solid #d2d3d5;border-radius:4px;color:#4e5969;cursor:pointer;font-size:14px!important;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.view-details-btn:hover{border-color:#165dff;color:#165dff}.details-sections::-webkit-scrollbar{width:6px}.details-sections::-webkit-scrollbar-track{background:#f7f8fa;border-radius:3px}.details-sections::-webkit-scrollbar-thumb{background:#c9cdd4;border-radius:3px}.details-sections::-webkit-scrollbar-thumb:hover{background:#86909c}.error-message{background-color:#fff5f5;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;line-height:1.5;padding:16px}.error-message p{margin:0 0 8px}.error-message p:last-child{margin-bottom:0}.configuration-details-modal .modal-body{display:flex;flex:1 1;flex-direction:column;overflow:visible}.config-item{overflow:visible}.input-content,.rules-content,.system-prompt-content,.test-input-content{overflow-wrap:break-word;word-break:break-word}.svg-result-display{display:flex;flex-direction:column;gap:16px;margin-top:12px}.svg-code-section,.svg-render-section{border:1px solid #d2d3d5;border-radius:6px;overflow:hidden}.svg-render-section .svg-render{max-height:400px;min-height:200px;padding:16px}.svg-code-header,.svg-render-header{align-items:center;background-color:#f8fafc;border-bottom:1px solid #d2d3d5;display:flex;justify-content:space-between;padding:8px 12px}.svg-code-header span,.svg-render-header span{color:#374151;font-size:13px;font-weight:600}.svg-code-preview{background-color:#fff;color:#1f2937;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:11px;line-height:1.4;max-height:200px;overflow-y:auto;padding:12px}.svg-code-preview pre{word-wrap:break-word;margin:0;white-space:pre-wrap}@media (min-width:900px){.svg-result-display{flex-direction:row;gap:20px}.svg-code-section,.svg-render-section{flex:1 1}}.input-content-empty{color:#8c8c8c;font-style:italic;padding:8px}.input-content-default{background-color:#f8f9fa;border-left:3px solid #4caf50;border-radius:4px;color:#666;padding:8px 12px}.input-content-fallback,.input-content-text{display:flex;flex-direction:column;gap:6px}.input-label{color:#374151;font-size:12px;font-weight:600}.input-value{background-color:#f8f9fa;border:1px solid #e5e7eb;border-radius:4px;color:#1f2937;padding:8px 12px;word-break:break-word}.input-content-context{display:flex;flex-direction:column;gap:8px}.context-item{background-color:#f1f5f9;border-left:3px solid #3b82f6;border-radius:4px;display:flex;flex-direction:column;gap:4px;padding:8px}.context-name{color:#475569;font-size:12px;font-weight:600}.context-value{color:#334155;word-break:break-word}.input-content-dialogue{display:flex;flex-direction:column;gap:8px}.dialogue-message{background-color:#fefefe;border:1px solid #e5e7eb;border-radius:4px;display:flex;flex-direction:column;gap:4px;padding:8px}.message-role{color:#6366f1;font-size:12px;font-weight:600}.message-content{color:#374151;word-break:break-word}.input-content-object{display:flex;flex-direction:column;gap:6px}.input-json{background-color:#f8f9fa;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;max-height:200px;overflow-y:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.system-prompt-wrapper{display:flex;flex-direction:column;gap:8px;width:100%}.system-prompt-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding-bottom:8px}.system-prompt-title{color:#374151;font-size:14px;font-weight:600}.system-prompt-toggle{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;font-size:12px;padding:4px 8px;transition:background-color .2s ease}.system-prompt-toggle:hover{background-color:#e5e7eb}.system-prompt-content-wrapper{overflow:hidden;width:100%}.system-prompt-content-auto-wrap{word-wrap:break-word;border:1px solid #e5e7eb;box-sizing:border-box;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;margin:0;max-height:400px;max-width:100%;overflow-wrap:break-word;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.system-prompt-content-auto-wrap,.system-prompt-empty{background-color:#f8f9fa;border-radius:4px;padding:12px}.system-prompt-empty{color:#8c8c8c;font-style:italic;text-align:center}.rules-content-enhanced{display:flex;flex-direction:column;gap:12px;width:100%}.rules-title{border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px;font-weight:600;margin-bottom:8px;padding-bottom:6px}.rules-text{word-wrap:break-word;background-color:#f8f9fa;border:1px solid #e5e7eb;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;margin:0;max-height:300px;overflow-y:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.rule-item{background-color:#fefefe;border:1px solid #e5e7eb;border-left:3px solid #8b5cf6;border-radius:6px;padding:12px}.rule-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.rule-name{color:#374151;font-size:13px;font-weight:600}.rule-type{background-color:#e0e7ff;border-radius:12px;color:#5b21b6;font-size:11px;font-weight:500;padding:2px 8px}.rule-content{color:#4b5563;font-size:13px;line-height:1.5;word-break:break-word}.rules-content-empty{align-items:center;background-color:#f9fafb;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;display:flex;flex-direction:column;gap:4px;padding:16px;text-align:center}.rules-content-empty span{font-size:14px;font-weight:500}.rules-content-empty small{color:#9ca3af;font-size:12px}.system-prompt-fallback{display:flex;flex-direction:column;gap:12px}.system-prompt-fallback h4{border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px;font-weight:600;margin:0;padding-bottom:8px}.system-prompt-raw{word-wrap:break-word;background-color:#f8f9fa;border:1px solid #e5e7eb;border-radius:4px;box-sizing:border-box;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;margin:0;max-height:400px;max-width:100%;overflow-y:auto;padding:12px;white-space:pre-wrap;word-break:break-word}@media (max-width:768px){.configuration-details-modal{max-height:90vh;width:95vw}.base-expression-preview,.generated-svg-preview,.svg-template-preview{align-items:stretch;flex-direction:column}.svg-render{max-height:100px}.detail-section{padding:12px}.details-sections{gap:12px;padding:12px}}.real-device-modal{max-height:80vh;max-width:90vw;overflow-y:auto;width:600px}.real-device-modal .modal-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.real-device-modal .modal-header h3{color:#333;font-size:18px;margin:0}.real-device-modal .modal-body{padding:0}.test-info{background-color:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:16px}.test-info p{font-size:14px;margin:6px 0}.access-addresses h4{color:#333;font-size:16px;margin:0 0 16px}.address-list{display:flex;flex-direction:column;gap:16px}.address-item{background-color:#fafafa;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.address-item label{color:#374151;display:block;font-weight:600;margin-bottom:8px}.address-url{align-items:center;display:flex;gap:12px}.address-url code{background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;color:#1e293b;flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;padding:8px 12px;word-break:break-all}.copy-url-btn{background-color:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:8px 16px;transition:background-color .2s;white-space:nowrap}.copy-url-btn:hover{background-color:#2563eb}.address-note{background-color:#f0f9ff;border-left:4px solid #3b82f6;border-radius:4px;margin-top:16px;padding:12px}.address-note p{font-size:13px;margin:4px 0}.address-note code{background-color:#e0e7ff;border-radius:3px;font-size:11px;padding:2px 6px}.usage-tips{background-color:#f0fdf4;border-left:4px solid #22c55e;border-radius:8px;margin-top:24px;padding:16px}.usage-tips h4{color:#166534;font-size:14px;margin:0 0 12px}.usage-tips ul{margin:0;padding-left:20px}.usage-tips li{color:#166534;font-size:13px;line-height:1.4;margin:6px 0}@media (max-width:600px){.real-device-modal{margin:20px;width:95vw}.address-url{flex-direction:column;gap:8px}.address-url code{font-size:11px;padding:6px 8px}.copy-url-btn{align-self:flex-start;padding:6px 12px}}.record-input.english-inline{align-items:flex-start;display:flex;gap:8px}.record-input.english-inline strong{flex-shrink:0;white-space:nowrap}.input-content-right{flex:1 1;text-align:right}.horizontal-scroll .test-record .svg-header-buttons .english-select-btn{background-color:#fff!important;background:#fff!important;border:1px solid #d2d3d5!important;border-radius:4px!important;box-shadow:none!important;color:#4e5969!important;cursor:pointer!important;font-family:inherit!important;font-size:14px!important;margin-left:4px!important;outline:none!important;padding:4px 8px!important;transition:all .2s ease!important;white-space:nowrap!important}.horizontal-scroll .test-record .svg-header-buttons .english-select-btn.selected{background-color:#e1edff!important;background:#e1edff!important;border:1px solid #3b82f6!important;color:#1d4ed8!important}.horizontal-scroll .test-record .svg-header-buttons .english-select-btn:hover{background-color:#fff!important;background:#fff!important;border-color:#165dff!important;color:#165dff!important}.horizontal-scroll .test-record .svg-header-buttons .english-select-btn.selected:hover{background-color:#e1edff!important;background:#e1edff!important;color:#1d4ed8!important}.bottom-panel{background-color:#fff;border-top:1px solid #e5e6eb;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.bottom-panel.collapsed{background-color:#263c77!important;flex:none;height:50px;max-height:50px;min-height:50px}.bottom-panel:not(.collapsed){flex:1 1;min-height:0}.bottom-panel-header{align-items:center;background-color:#263c77;border-bottom:1px solid #e5e6eb;display:flex;flex-shrink:0;height:50px;justify-content:space-between;max-height:50px;min-height:50px;padding:0 16px}.panel-title-simple{align-items:center;display:flex;flex:1 1;gap:12px}.panel-title-text{color:#fff;font-size:20px;font-weight:600;white-space:nowrap}.panel-header-actions{align-items:center;display:flex;gap:12px}.device-deploy-btn{align-items:center;background:#165dff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;height:28px;justify-content:center;padding:0 14px;transition:all .2s ease;white-space:nowrap;width:auto}.device-deploy-btn:hover{background:#0e42d2;transform:translateY(-1px)}.device-deploy-btn:active{background:#123bc4;transform:translateY(0)}.test-buttons-group{align-items:center;display:flex;gap:8px;margin-right:12px}.test-action-btn{background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.3);border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.test-action-btn:hover{background:hsla(0,0%,100%,.25);border-color:hsla(0,0%,100%,.5);transform:translateY(-1px)}.test-action-btn:active{background:hsla(0,0%,100%,.2);transform:translateY(0)}.panel-collapse-btn{align-items:center;background-color:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:#4e5969;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;transition:all .2s ease;width:28px}.panel-collapse-btn:hover{background-color:#f2f8ff;border-color:#165dff;color:#165dff}.panel-collapse-btn:active{transform:scale(.95)}.bottom-panel-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.collapsed-info{align-items:center;background-color:#263c77!important;cursor:pointer;display:flex;font-size:14px;gap:16px;height:50px;justify-content:space-between;max-height:50px;min-height:50px;padding:0 16px;transition:background-color .2s ease}.collapsed-info:hover{background-color:#556a8d!important}.collapsed-left{align-items:center;display:flex;flex:1 1;gap:12px}.collapsed-text{color:#1d2129;font-size:20px!important;font-weight:600;white-space:nowrap}.collapsed-version{color:#86909c;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-expand-btn{align-items:center;background:rgba(0,0,0,.15);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:32px;justify-content:center;transition:all .2s ease;width:32px}.panel-expand-btn:hover{background:rgba(0,0,0,.25);color:#fff}.panel-expand-btn:active{background:rgba(0,0,0,.2);transform:scale(.95)}@media (max-width:1200px){.bottom-panel{min-height:250px}}@media (max-width:900px){.bottom-panel{min-height:200px}.panel-title h3{font-size:14px}.panel-subtitle{font-size:11px}}@media (max-width:600px){.bottom-panel{min-height:180px}.collapsed-version{display:none}}.bottom-panel .horizontal-test-interface{height:100%;overflow:hidden}.sidebar-resize-handle{align-items:center;background:#f7f9fc;border-left:1px solid #f2f3f5;border-right:1px solid #e5e6eb;cursor:ew-resize;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:8px;z-index:1000}.sidebar-resize-handle.dragging,.sidebar-resize-handle:hover{background:#e8f4ff}.sidebar-resize-handle.left{border-left:none}.sidebar-resize-handle.right{border-right:none}.sidebar-drag-indicator{background-color:#c9cdd4;border-radius:2px;height:50px;transition:all .2s ease;width:3px}.sidebar-resize-handle.dragging .sidebar-drag-indicator,.sidebar-resize-handle:hover .sidebar-drag-indicator{background-color:#165dff}.drag-hint{bottom:16px;color:#86909c;font-size:11px;opacity:0;pointer-events:none;position:absolute;text-orientation:mixed;transition:opacity .2s ease;-webkit-user-select:none;user-select:none;-webkit-writing-mode:vertical-rl;writing-mode:vertical-rl}.sidebar-resize-handle:hover .drag-hint{opacity:1}@media (max-width:1200px){.sidebar-resize-handle{width:6px}.sidebar-drag-indicator{height:40px}}@media (max-width:900px){.sidebar-resize-handle{width:4px}.drag-hint{display:none}.sidebar-drag-indicator{height:30px}}.split-resize-handle{align-items:center;background:#f7f9fc;border-bottom:1px solid #e5e6eb;border-top:1px solid #f2f3f5;cursor:ns-resize;display:flex;flex-shrink:0;height:8px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;z-index:10}.split-resize-handle.dragging,.split-resize-handle:hover{background:#e8f4ff}.resize-handle-indicator{align-items:center;display:flex;flex-direction:column;gap:1px;justify-content:center}.resize-handle-line{background-color:#c9cdd4;border-radius:2px;height:3px;width:50px}.split-resize-handle.dragging .resize-handle-line,.split-resize-handle:hover .resize-handle-line{background-color:#165dff}.resize-handle-hint{color:#86909c;font-size:11px;opacity:0;pointer-events:none;position:absolute;right:12px;-webkit-user-select:none;user-select:none;white-space:nowrap}.split-resize-handle:hover .resize-handle-hint{opacity:1}.split-resize-handle.dragging~*{pointer-events:none;-webkit-user-select:none;user-select:none}.split-resize-handle.dragging{pointer-events:auto}@media (max-width:1200px){.split-resize-handle{height:6px}.resize-handle-line{width:40px}}@media (max-width:900px){.split-resize-handle{height:4px}.resize-handle-hint{display:none}.resize-handle-line{width:30px}}.debug-panel-overlay{align-items:center;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.debug-panel{background:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.3);display:flex;flex-direction:column;max-height:80vh;max-width:80vw;overflow:hidden;width:800px}.debug-header{align-items:center;background:#f5f5f5;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:16px 20px}.debug-header h3{color:#333;font-size:18px;margin:0}.debug-controls{align-items:center;display:flex;gap:12px}.auto-refresh-toggle{align-items:center;color:#666;cursor:pointer;display:flex;font-size:14px;gap:6px}.auto-refresh-toggle input[type=checkbox],.refresh-btn{cursor:pointer}.refresh-btn{background:#007bff;border:none;border-radius:4px;color:#fff;font-size:14px;padding:6px 12px;transition:background .2s}.refresh-btn:hover:not(:disabled){background:#0056b3}.refresh-btn:disabled{background:#6c757d;cursor:not-allowed}.close-btn{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:30px;justify-content:center;transition:background .2s;width:30px}.close-btn:hover{background:#c82333}.debug-content{flex:1 1;overflow-y:auto;padding:20px}.debug-section{margin-bottom:24px}.debug-section h4{border-bottom:2px solid #eee;color:#333;font-size:16px;margin:0 0 12px;padding-bottom:8px}.debug-section h5{color:#555;font-size:14px;font-weight:600;margin:16px 0 8px}.info-grid,.status-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:16px}.info-item,.status-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.info-item .label,.status-item .label{color:#495057;font-size:14px;font-weight:500}.info-item .value,.status-item .value{font-size:14px;font-weight:600}.value.success{color:#28a745}.value.warning{color:#ffc107}.value.error{color:#dc3545}.refresh-info{color:#6c757d;font-size:12px;margin-bottom:12px;text-align:right}.error-info,.loading-info{color:#6c757d;font-style:italic;padding:16px;text-align:center}.error-info{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24}.consistency-check{background:#f8f9fa;border-radius:6px;margin-top:16px;padding:12px}.check-item{align-items:center;display:flex;justify-content:space-between;padding:4px 0}.check-item .label{color:#495057;font-weight:500}.storage-elements{background:#f8f9fa;border-radius:6px;margin-top:16px;padding:12px}.elements-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.element-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:flex;font-size:12px;gap:6px;padding:4px 8px}.element-type{background:#007bff;border-radius:2px;color:#fff;font-weight:500;padding:2px 6px}.element-id{color:#6c757d;font-family:monospace}.element-tag{background:#28a745;border-radius:2px;color:#fff;font-weight:500;padding:2px 4px}@media (max-width:768px){.debug-panel{max-height:90vh;width:95vw}.info-grid,.status-grid{grid-template-columns:1fr}.debug-header{padding:12px 16px}.debug-content{padding:16px}}.desktop-agent-page{-webkit-overflow-scrolling:touch;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;align-items:center;background-color:#000;bottom:0;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh;height:calc(100vw + env(safe-area-inset-top) + env(safe-area-inset-bottom));justify-content:center;left:0;left:50%;min-height:100vw;min-width:100vh;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;right:0;top:0;top:50%;transform:rotate(90deg);transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center;-webkit-user-select:none;user-select:none;width:100vw;width:calc(100vh + env(safe-area-inset-left) + env(safe-area-inset-right))}.desktop-agent-page:before{background:#000;content:"";height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:-1}.desktop-agent-page .svg-display-area{align-items:center;bottom:0;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:5%;overflow:hidden;position:absolute;right:0;top:0;width:100%}.desktop-agent-page .svg-container{align-items:center;display:flex;height:90%;justify-content:center;transform-origin:center center;width:90%}.desktop-agent-page .svg-container svg{height:100%!important;object-fit:cover;transform-origin:center center;width:100%!important}.desktop-agent-page .voice-button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;align-items:center;-webkit-appearance:none;background:linear-gradient(135deg,#007aff,#0056d3);border:none;border-radius:50%;bottom:calc(30px + env(safe-area-inset-bottom));box-shadow:0 4px 15px rgba(0,122,255,.4);color:#fff;cursor:pointer;display:flex;height:50px;justify-content:center;left:90%;position:fixed;transform:translateX(-50%);transition:all .3s ease;-webkit-user-select:none;user-select:none;width:50px;z-index:1000}.desktop-agent-page .voice-button:hover:not(:disabled){box-shadow:0 6px 20px rgba(0,122,255,.6);transform:translateX(-50%) scale(1.05)}.desktop-agent-page .voice-button:active{transform:translateX(-50%) scale(.95)}.desktop-agent-page .voice-button svg{fill:currentColor;height:20px;width:20px}.desktop-agent-page .voice-button.listening{animation:listeningPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#ff9500,#ff6b00);box-shadow:0 4px 20px rgba(255,149,0,.6)}.desktop-agent-page .voice-button.fallback{background:linear-gradient(135deg,#8e8e93,#636366)}.desktop-agent-page .voice-button:disabled{cursor:not-allowed;opacity:.5}.desktop-agent-page .pulse-animation{animation:pulseRing 2s cubic-bezier(.25,.46,.45,.94) infinite;border:2px solid rgba(255,149,0,.6);border-radius:50%;bottom:150px;left:-5px;position:absolute;right:-5px;top:-5px}@keyframes listeningPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pulseRing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.desktop-agent-page .transcript-display{background:rgba(0,0,0,.6);border:1px solid rgba(52,199,89,.3);border-radius:15px;display:flex;flex-direction:column;gap:6px}.desktop-agent-page .transcript-display,.listening-hint{animation:fadeInUp .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);bottom:100px;left:50%;max-width:80%;padding:12px 20px;position:absolute;text-align:center;transform:translateX(-50%);z-index:1000}.listening-hint{background:rgba(255,149,0,.1);border:1px solid rgba(255,149,0,.3);border-radius:15px}.desktop-agent-page .listening-text{animation:pulse 2s infinite;color:#ff9500;font-size:14px;font-weight:500}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.desktop-agent-page .transcript-label{color:hsla(0,0%,100%,.7);font-size:14px;font-weight:500}.desktop-agent-page .transcript-text{color:#fff;font-size:16px;font-weight:600}.desktop-agent-page .text-overlay{animation:fadeInUp .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.6);border-radius:12px;bottom:100px;left:50%;max-width:70%;padding:8px 16px;position:absolute;transform:translateX(-50%);z-index:1000}.desktop-agent-page .text-content{align-items:center;display:flex;gap:8px}.desktop-agent-page .text-icon{flex-shrink:0;font-size:14px}.desktop-agent-page .text-message{color:#fff;font-size:14px;font-weight:400;line-height:1.3;text-align:left}.desktop-agent-page .text-overlay.listening{border:2px solid rgba(255,149,0,.5);box-shadow:0 0 20px rgba(255,149,0,.3)}.desktop-agent-page .text-overlay.speaking{border:2px solid rgba(52,199,89,.5);box-shadow:0 0 20px rgba(52,199,89,.3)}.desktop-agent-page .status-overlay{animation:fadeInUp .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:15px;bottom:100px;left:50%;padding:20px 30px;position:absolute;transform:translateX(-50%);z-index:1000}.desktop-agent-page .status-overlay.processing{border:2px solid rgba(94,158,255,.5);box-shadow:0 0 20px rgba(94,158,255,.3)}.desktop-agent-page .status-content{align-items:center;color:#fff;display:flex;font-size:16px;font-weight:500;gap:15px}.desktop-agent-page .loading-spinner{animation:spin 1s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:430px){.desktop-agent-page .voice-button{height:60px;width:60px}.desktop-agent-page .voice-button svg{height:24px;width:24px}.desktop-agent-page .text-overlay{bottom:15px;padding:12px 18px}.desktop-agent-page .text-message{font-size:16px}}.desktop-agent-page .debug-toggle{-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,100%,.3);border-radius:50%;bottom:calc(15px + env(safe-area-inset-bottom));color:#fff;cursor:pointer;display:flex;height:35px;justify-content:center;position:fixed;right:calc(15px + env(safe-area-inset-right));transition:all .3s ease;width:35px;z-index:200}.desktop-agent-page .debug-toggle:hover{background:hsla(0,0%,100%,.3);transform:scale(1.05)}.desktop-agent-page .debug-toggle:active{transform:scale(.95)}.desktop-agent-page .debug-panel{animation:fadeInRight .3s ease-out;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:rgba(0,0,0,.8);border:1px solid hsla(0,0%,100%,.2);border-radius:8px;bottom:calc(55px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;max-width:120px;min-width:100px;padding:8px;position:fixed;right:calc(15px + env(safe-area-inset-right));z-index:200}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.desktop-agent-page .debug-panel button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:6px;color:#fff;cursor:pointer;font-size:12px;padding:8px 12px;transition:all .2s ease}.desktop-agent-page .debug-panel button:hover{background:hsla(0,0%,100%,.2)}.desktop-agent-page .debug-panel button:active{transform:scale(.95)}@media (max-height:400px){.desktop-agent-page .voice-button{height:50px;width:50px}.desktop-agent-page .voice-button svg{height:20px;width:20px}.desktop-agent-page .bottom-control-area{bottom:20px}.desktop-agent-page .debug-toggle{bottom:15px;height:35px;right:15px;width:35px}.desktop-agent-page .debug-panel{bottom:55px;right:15px}}@supports (-webkit-appearance:none){.desktop-agent-page{backface-visibility:hidden}.voice-button{-webkit-touch-callout:none;-webkit-appearance:none;-webkit-user-select:none}}*{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}.aipet-page{background:#000;min-height:100vh;overflow:hidden;position:relative}.aipet-page.loading{align-items:center;display:flex;justify-content:center}.loading-container{position:relative;text-align:center;z-index:20}.loading-text{color:#fff;font-size:1.2rem;font-weight:500}@media (max-width:768px){.aipet-page{margin:0;padding:0}}@media (hover:none) and (pointer:coarse){button{min-height:44px;padding:12px 16px}input,select,textarea{font-size:16px;min-height:44px}}@viewport{zoom:1;width:device-width}@supports (-webkit-overflow-scrolling:touch){.aipet-page{-webkit-overflow-scrolling:touch}}
/*# sourceMappingURL=main.9236a242.css.map*/