.chat-container{background-color:#f5f7fa;border-radius:12px;box-shadow:0 6px 16px #00000014;display:flex;flex-direction:column;height:auto;margin:20px auto;max-height:700px;max-width:900px;min-height:500px;overflow:hidden;padding:20px;position:relative}.chat-messages-wrapper{display:flex;flex:1 1;flex-direction:column;margin-bottom:20px;overflow:hidden}.empty-messages{align-items:center;animation:fadeIn .8s ease-out;background:linear-gradient(145deg,#f0f8ffe6,#f0ffffe6);border-radius:12px;box-shadow:inset 0 0 10px #00000008;color:#666;display:flex;flex-direction:column;height:350px;justify-content:center;margin:10px auto 20px;padding:30px;text-align:center;width:90%}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-messages h3{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#1890ff,#36cfc9);-webkit-background-clip:text;font-size:24px;font-weight:600;margin-bottom:16px;position:relative}.empty-messages h3:after{background:linear-gradient(90deg,#1890ff,#36cfc9);border-radius:3px;bottom:-8px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.empty-messages p{color:#555;font-size:16px;line-height:1.6;max-width:420px}.chat-messages{background-color:#fffc;border-radius:12px;box-shadow:inset 0 0 10px #00000008;flex:1 1;height:400px;overflow-y:auto;padding:15px;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:#1890ff4d;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#1890ff80}.message-item{margin:8px 0;padding:8px 0;position:relative;transition:all .3s ease}.message-item:hover{background-color:#ffffff80;border-radius:10px;box-shadow:0 3px 6px #0000000d;transform:translateY(-3px)}.message-user{justify-content:flex-end;text-align:right}.message-assistant{justify-content:flex-start;text-align:left}.message-sender{color:#555;display:inline-block;font-size:14px;font-weight:700;margin-bottom:4px;position:relative}.message-user .message-sender{color:#1890ff;padding-right:10px}.message-user .message-sender:after{background-color:#1890ff;border-radius:50%;bottom:5px;content:"";height:6px;position:absolute;right:0;width:6px}.message-assistant .message-sender{color:#36cfc9;padding-left:10px}.message-assistant .message-sender:before{background-color:#36cfc9;border-radius:50%;bottom:5px;content:"";height:6px;left:0;position:absolute;width:6px}.message-content{border-radius:18px;box-shadow:0 2px 8px #00000014;display:inline-block;line-height:1.6;margin-top:2px;max-width:80%;padding:12px 16px;position:relative;transition:box-shadow .2s ease;word-break:break-word}.message-content:hover{box-shadow:0 4px 12px #0000001f}.message-user .message-content{background-color:#e6f7ff;border:1px solid #91d5ff;border-top-right-radius:4px;color:#0050b3;margin-left:auto}.message-assistant .message-content{background-color:#e6fffb;border:1px solid #87e8de;border-top-left-radius:4px;color:#006d75;margin-right:auto;position:relative}.chat-input-container{align-items:center;background:#fff;border:1px solid #eee;border-radius:24px;box-shadow:0 2px 10px #0000001a;display:flex;margin-top:auto;padding:12px;transition:all .3s ease}.chat-input-container:focus-within{border-color:#1890ff;box-shadow:0 4px 14px #1890ff40;transform:translateY(-2px)}.chat-input{background:#0000;border:none;flex:1 1;font-size:16px;padding:8px 12px}.chat-input:focus{box-shadow:none}.chat-send-button{align-items:center;background:linear-gradient(135deg,#1890ff,#36cfc9);border:none;border-radius:50%;box-shadow:0 2px 6px #1890ff66;display:flex;height:40px;justify-content:center;margin-left:8px;transition:transform .2s ease,box-shadow .2s ease;width:40px}.chat-send-button:hover{background:linear-gradient(135deg,#40a9ff,#5cdbd3);box-shadow:0 4px 8px #1890ff80;transform:scale(1.05)}.chat-send-button .anticon{font-size:18px}@media (max-width:768px){.chat-container{border-radius:8px;margin:10px 8px;max-height:600px;min-height:300px;padding:15px}.empty-messages{height:300px;padding:20px}.chat-messages{height:350px}.empty-messages h3{font-size:20px}.empty-messages p{font-size:14px}.message-content{max-width:90%;padding:10px 14px}.chat-input-container{padding:10px}.chat-input{font-size:14px}.chat-send-button{height:36px;width:36px}.chat-send-button .anticon{font-size:16px}}.image-generator{margin:0 auto;max-width:900px}.header-section{margin-bottom:32px;text-align:center}.header-title{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#36cfc9,#1890ff);-webkit-background-clip:text;display:inline-block;font-size:28px!important;margin-bottom:16px!important;position:relative}.header-title:after{background:linear-gradient(90deg,#36cfc9,#1890ff);border-radius:3px;bottom:-6px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.header-description{color:#8c8c8c;margin:0 auto!important;max-width:600px}.input-section{padding:24px}.prompt-input{border-radius:12px;box-shadow:inset 0 1px 3px #0000000d;font-size:16px;margin-bottom:24px;min-height:120px;padding:16px;transition:all .3s}.prompt-input:focus,.prompt-input:hover{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff1a}.size-section,.style-section{margin-bottom:24px}.style-tag{border:1px solid #e8e8e8;border-radius:16px;cursor:pointer;font-size:14px;margin:6px;padding:6px 16px;transition:all .3s}.style-tag:hover{background:#1890ff0d;border-color:#1890ff;color:#1890ff}.controls{display:flex;gap:16px;justify-content:center;margin-top:24px}.controls button{border-radius:24px;box-shadow:0 2px 8px #0000000d;font-size:15px;height:44px;padding:0 24px;transition:all .3s}.controls button[type=primary]{background:linear-gradient(90deg,#36cfc9,#1890ff);border:none;box-shadow:0 4px 12px #1890ff26}.controls button:hover{box-shadow:0 6px 16px #1890ff33;transform:translateY(-2px)}.result-section{border-radius:16px;box-shadow:0 6px 24px #00000014;margin-top:32px;overflow:hidden}.image-wrapper{align-items:center;background:#f0f2f5;border-radius:12px;display:flex;justify-content:center;overflow:hidden;position:relative}.generated-image{display:block;max-width:100%;transition:transform .3s}.image-actions{bottom:16px;display:flex;gap:12px;opacity:0;position:absolute;right:16px;transform:translateY(10px);transition:all .3s ease}.image-wrapper:hover .image-actions{opacity:1;transform:translateY(0)}.image-actions button{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border-radius:50%;box-shadow:0 2px 10px #0000001a;display:flex;height:42px;justify-content:center;width:42px}.image-modal img{max-height:80vh;max-width:100%}@media (max-width:576px){.controls{flex-direction:column}.image-actions{opacity:1;transform:translateY(0)}}.mock-service-toggle{align-items:center;background-color:#f0f2f5;border-radius:4px;display:flex;margin-bottom:16px;padding:6px 12px;width:fit-content}.mock-service-toggle .ant-switch{margin-right:8px}.mock-service-active .prompt-input{border-color:#faad14}.mock-service-active .ant-btn-primary{background-color:#faad14;border-color:#faad14}.mock-settings-collapse{background-color:#fff8e6;border:1px dashed #faad14;border-radius:4px;margin-bottom:16px;padding:4px 8px}.mock-settings-collapse .ant-collapse-header{color:#d46b08!important;font-weight:500}.mock-settings-content{padding:8px 0}.mock-setting-item{margin-bottom:16px}.mock-setting-item label{color:#5c5c5c;display:block;font-size:14px;margin-bottom:8px}.mock-setting-item .ant-slider{margin:8px 0}.mock-service-active .mock-settings-collapse{display:block}.settings-panel{margin-bottom:20px;margin-top:10px}.advanced-settings{padding:10px 0}.setting-item{margin-bottom:16px}.slider-value{font-weight:700;margin-top:5px;text-align:center}.seed-controls{display:flex;gap:8px;margin-bottom:8px;margin-top:8px}.ant-select-dropdown{z-index:1050!important}.image-generator-container{margin:0 auto;max-width:1200px;padding:20px}.prompt-card{margin-bottom:20px}.toggle-settings{margin:10px 0}.login-container{align-items:center;animation:gradient-shift 15s ease infinite;background:linear-gradient(120deg,#e6f7ff,#f5f7fa);background-size:400% 400%;display:flex;height:100vh;justify-content:center}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #1890ff1a;max-width:420px;overflow:hidden;padding:0;width:100%}.login-card:before{background:linear-gradient(90deg,#36cfc9,#1890ff);content:"";display:block;height:4px;margin-bottom:16px}.login-card .ant-card-body{padding:24px 32px 32px}.login-header{margin-bottom:32px;position:relative;text-align:center}.login-header:after{border-radius:3px;content:"";display:block;height:3px;margin:16px auto 0;width:60px}.login-header h1,.login-header:after{background:linear-gradient(90deg,#36cfc9,#1890ff)}.login-header h1{-webkit-text-fill-color:#0000;-webkit-background-clip:text;color:#1890ff;font-size:28px;font-weight:600;letter-spacing:1px;margin-bottom:8px}.login-header p{color:#8c8c8c;font-size:16px}.login-button{background:linear-gradient(90deg,#36cfc9,#1890ff);border:none;border-radius:24px;box-shadow:0 4px 12px #1890ff26;font-size:16px;height:48px;margin-top:16px;transition:all .3s ease}.login-button:hover{box-shadow:0 6px 16px #1890ff40;transform:translateY(-2px)}.ant-form-item-control-input-content .ant-input-password{border-color:#e8e8e8;border-radius:24px;box-shadow:inset 0 1px 3px #0000000d;height:48px;padding-left:16px;transition:all .3s ease}.ant-form-item-control-input-content .ant-input-password:focus,.ant-form-item-control-input-content .ant-input-password:hover{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff1a}@media (max-width:576px){.login-card{margin:0 16px;max-width:90%}.login-card .ant-card-body{padding:20px}}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}.app-container{background:linear-gradient(180deg,#f5f7fa,#fff);min-height:100vh}.app-header{background:linear-gradient(90deg,#36cfc9,#1890ff);box-shadow:0 2px 12px #00000014;margin-bottom:2rem;padding:1.5rem 0;position:relative}.app-header:before{background:linear-gradient(90deg,#1890ff,#36cfc9);content:"";height:3px;left:0;opacity:.8;position:absolute;right:0;top:0}.header-content{align-items:center;display:flex;margin:0 auto;max-width:1200px;padding:0 2rem}.title-wrapper{align-items:flex-start;display:flex;flex-direction:column}.app-title{color:#fff;font-size:2rem;font-weight:600;letter-spacing:1px;margin:0}.app-subtitle{color:#ffffffd9;font-size:1rem;font-weight:400;letter-spacing:.5px;margin-top:.2rem}.logout-button{background-color:#ffffff26;border:1px solid #ffffff4d;border-radius:24px;box-shadow:0 2px 8px #0000000d;color:#fff;cursor:pointer;font-weight:500;margin-left:auto;padding:6px 18px;transition:all .3s}.logout-button:hover{background-color:#ffffff40;box-shadow:0 4px 12px #0000001a}.app-main{margin:0 auto;max-width:1200px;padding:0 2rem 2rem}.app-main .ant-tabs-nav{margin-bottom:2rem}.app-main .ant-tabs-tab{background-color:#f5f7fa;border-radius:8px 8px 0 0;font-size:1.1rem;margin-right:4px;padding:12px 24px;transition:all .3s ease}.app-main .ant-tabs-tab:hover{background-color:#e6f7ff;color:#1890ff}.app-main .ant-tabs-tab-active{background:linear-gradient(90deg,#36cfc9,#1890ff)}.app-main .ant-tabs-tab-active .ant-tabs-tab-btn{color:#fff!important;font-weight:500}.app-main .ant-tabs-ink-bar{background:linear-gradient(90deg,#36cfc9,#1890ff);border-radius:3px;height:3px}@media (max-width:576px){.header-content{padding:0 1rem}.app-title{font-size:1.5rem}.app-subtitle{font-size:.85rem}.app-main{padding:0 1rem 1rem}}