@midscene/harmony 1.7.9 → 1.7.10-beta-20260507030203.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/es/bin.mjs CHANGED
@@ -736,17 +736,19 @@ class device_HarmonyDevice {
736
736
  const hdc = await this.getHdc();
737
737
  await hdc.keyEvent('Back');
738
738
  }
739
- async getTimestamp() {
739
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
740
740
  const hdc = await this.getHdc();
741
741
  try {
742
- const stdout = await hdc.shell('date +%s%3N');
743
- const timestamp = Number.parseInt(stdout.trim(), 10);
744
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
745
- debugDevice(`Got device time: ${timestamp}`);
746
- return timestamp;
742
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
743
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
744
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
745
+ const [, year, month, day, hours, minutes, seconds] = match;
746
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
747
+ debugDevice(`Got device local time: ${timeString}`);
748
+ return `${timeString} (${format})`;
747
749
  } catch (error) {
748
- debugDevice(`Failed to get device time: ${error}`);
749
- throw new Error(`Failed to get device time: ${error}`);
750
+ debugDevice(`Failed to get device local time: ${error}`);
751
+ throw new Error(`Failed to get device local time: ${error}`);
750
752
  }
751
753
  }
752
754
  async destroy() {
@@ -935,10 +937,7 @@ async function getHdcTargetsSafe() {
935
937
  try {
936
938
  const targets = await getHdcTargets();
937
939
  return {
938
- targets,
939
- ...0 === targets.length ? {
940
- error: HARMONY_NO_DEVICE_MESSAGE
941
- } : {}
940
+ targets
942
941
  };
943
942
  } catch (error) {
944
943
  return {
package/dist/es/cli.mjs CHANGED
@@ -733,17 +733,19 @@ class HarmonyDevice {
733
733
  const hdc = await this.getHdc();
734
734
  await hdc.keyEvent('Back');
735
735
  }
736
- async getTimestamp() {
736
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
737
737
  const hdc = await this.getHdc();
738
738
  try {
739
- const stdout = await hdc.shell('date +%s%3N');
740
- const timestamp = Number.parseInt(stdout.trim(), 10);
741
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
742
- debugDevice(`Got device time: ${timestamp}`);
743
- return timestamp;
739
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
740
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
741
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
742
+ const [, year, month, day, hours, minutes, seconds] = match;
743
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
744
+ debugDevice(`Got device local time: ${timeString}`);
745
+ return `${timeString} (${format})`;
744
746
  } catch (error) {
745
- debugDevice(`Failed to get device time: ${error}`);
746
- throw new Error(`Failed to get device time: ${error}`);
747
+ debugDevice(`Failed to get device local time: ${error}`);
748
+ throw new Error(`Failed to get device local time: ${error}`);
747
749
  }
748
750
  }
749
751
  async destroy() {
@@ -1020,7 +1022,7 @@ class HarmonyMidsceneTools extends BaseMidsceneTools {
1020
1022
  const tools = new HarmonyMidsceneTools();
1021
1023
  runToolsCLI(tools, 'midscene-harmony', {
1022
1024
  stripPrefix: 'harmony_',
1023
- version: "1.7.9",
1025
+ version: "1.7.10-beta-20260507030203.0",
1024
1026
  extraCommands: createReportCliCommands()
1025
1027
  }).catch((e)=>{
1026
1028
  process.exit(reportCLIError(e));
package/dist/es/index.mjs CHANGED
@@ -704,17 +704,19 @@ class HarmonyDevice {
704
704
  const hdc = await this.getHdc();
705
705
  await hdc.keyEvent('Back');
706
706
  }
707
- async getTimestamp() {
707
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
708
708
  const hdc = await this.getHdc();
709
709
  try {
710
- const stdout = await hdc.shell('date +%s%3N');
711
- const timestamp = Number.parseInt(stdout.trim(), 10);
712
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
713
- debugDevice(`Got device time: ${timestamp}`);
714
- return timestamp;
710
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
711
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
712
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
713
+ const [, year, month, day, hours, minutes, seconds] = match;
714
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
715
+ debugDevice(`Got device local time: ${timeString}`);
716
+ return `${timeString} (${format})`;
715
717
  } catch (error) {
716
- debugDevice(`Failed to get device time: ${error}`);
717
- throw new Error(`Failed to get device time: ${error}`);
718
+ debugDevice(`Failed to get device local time: ${error}`);
719
+ throw new Error(`Failed to get device local time: ${error}`);
718
720
  }
719
721
  }
720
722
  async destroy() {
@@ -1039,10 +1041,7 @@ async function getHdcTargetsSafe() {
1039
1041
  try {
1040
1042
  const targets = await getHdcTargets();
1041
1043
  return {
1042
- targets,
1043
- ...0 === targets.length ? {
1044
- error: HARMONY_NO_DEVICE_MESSAGE
1045
- } : {}
1044
+ targets
1046
1045
  };
1047
1046
  } catch (error) {
1048
1047
  return {
@@ -733,17 +733,19 @@ class HarmonyDevice {
733
733
  const hdc = await this.getHdc();
734
734
  await hdc.keyEvent('Back');
735
735
  }
736
- async getTimestamp() {
736
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
737
737
  const hdc = await this.getHdc();
738
738
  try {
739
- const stdout = await hdc.shell('date +%s%3N');
740
- const timestamp = Number.parseInt(stdout.trim(), 10);
741
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
742
- debugDevice(`Got device time: ${timestamp}`);
743
- return timestamp;
739
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
740
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
741
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
742
+ const [, year, month, day, hours, minutes, seconds] = match;
743
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
744
+ debugDevice(`Got device local time: ${timeString}`);
745
+ return `${timeString} (${format})`;
744
746
  } catch (error) {
745
- debugDevice(`Failed to get device time: ${error}`);
746
- throw new Error(`Failed to get device time: ${error}`);
747
+ debugDevice(`Failed to get device local time: ${error}`);
748
+ throw new Error(`Failed to get device local time: ${error}`);
747
749
  }
748
750
  }
749
751
  async destroy() {
@@ -1024,7 +1026,7 @@ class HarmonyMCPServer extends BaseMCPServer {
1024
1026
  constructor(toolsManager){
1025
1027
  super({
1026
1028
  name: '@midscene/harmony-mcp',
1027
- version: "1.7.9",
1029
+ version: "1.7.10-beta-20260507030203.0",
1028
1030
  description: 'Control the HarmonyOS device using natural language commands'
1029
1031
  }, toolsManager);
1030
1032
  }
package/dist/lib/bin.js CHANGED
@@ -762,17 +762,19 @@ class device_HarmonyDevice {
762
762
  const hdc = await this.getHdc();
763
763
  await hdc.keyEvent('Back');
764
764
  }
765
- async getTimestamp() {
765
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
766
766
  const hdc = await this.getHdc();
767
767
  try {
768
- const stdout = await hdc.shell('date +%s%3N');
769
- const timestamp = Number.parseInt(stdout.trim(), 10);
770
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
771
- debugDevice(`Got device time: ${timestamp}`);
772
- return timestamp;
768
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
769
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
770
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
771
+ const [, year, month, day, hours, minutes, seconds] = match;
772
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
773
+ debugDevice(`Got device local time: ${timeString}`);
774
+ return `${timeString} (${format})`;
773
775
  } catch (error) {
774
- debugDevice(`Failed to get device time: ${error}`);
775
- throw new Error(`Failed to get device time: ${error}`);
776
+ debugDevice(`Failed to get device local time: ${error}`);
777
+ throw new Error(`Failed to get device local time: ${error}`);
776
778
  }
777
779
  }
778
780
  async destroy() {
@@ -961,10 +963,7 @@ async function getHdcTargetsSafe() {
961
963
  try {
962
964
  const targets = await getHdcTargets();
963
965
  return {
964
- targets,
965
- ...0 === targets.length ? {
966
- error: HARMONY_NO_DEVICE_MESSAGE
967
- } : {}
966
+ targets
968
967
  };
969
968
  } catch (error) {
970
969
  return {
package/dist/lib/cli.js CHANGED
@@ -758,17 +758,19 @@ class HarmonyDevice {
758
758
  const hdc = await this.getHdc();
759
759
  await hdc.keyEvent('Back');
760
760
  }
761
- async getTimestamp() {
761
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
762
762
  const hdc = await this.getHdc();
763
763
  try {
764
- const stdout = await hdc.shell('date +%s%3N');
765
- const timestamp = Number.parseInt(stdout.trim(), 10);
766
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
767
- debugDevice(`Got device time: ${timestamp}`);
768
- return timestamp;
764
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
765
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
766
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
767
+ const [, year, month, day, hours, minutes, seconds] = match;
768
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
769
+ debugDevice(`Got device local time: ${timeString}`);
770
+ return `${timeString} (${format})`;
769
771
  } catch (error) {
770
- debugDevice(`Failed to get device time: ${error}`);
771
- throw new Error(`Failed to get device time: ${error}`);
772
+ debugDevice(`Failed to get device local time: ${error}`);
773
+ throw new Error(`Failed to get device local time: ${error}`);
772
774
  }
773
775
  }
774
776
  async destroy() {
@@ -1045,7 +1047,7 @@ class HarmonyMidsceneTools extends base_tools_namespaceObject.BaseMidsceneTools
1045
1047
  const tools = new HarmonyMidsceneTools();
1046
1048
  (0, cli_namespaceObject.runToolsCLI)(tools, 'midscene-harmony', {
1047
1049
  stripPrefix: 'harmony_',
1048
- version: "1.7.9",
1050
+ version: "1.7.10-beta-20260507030203.0",
1049
1051
  extraCommands: (0, core_namespaceObject.createReportCliCommands)()
1050
1052
  }).catch((e)=>{
1051
1053
  process.exit((0, cli_namespaceObject.reportCLIError)(e));
package/dist/lib/index.js CHANGED
@@ -741,17 +741,19 @@ class HarmonyDevice {
741
741
  const hdc = await this.getHdc();
742
742
  await hdc.keyEvent('Back');
743
743
  }
744
- async getTimestamp() {
744
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
745
745
  const hdc = await this.getHdc();
746
746
  try {
747
- const stdout = await hdc.shell('date +%s%3N');
748
- const timestamp = Number.parseInt(stdout.trim(), 10);
749
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
750
- debugDevice(`Got device time: ${timestamp}`);
751
- return timestamp;
747
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
748
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
749
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
750
+ const [, year, month, day, hours, minutes, seconds] = match;
751
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
752
+ debugDevice(`Got device local time: ${timeString}`);
753
+ return `${timeString} (${format})`;
752
754
  } catch (error) {
753
- debugDevice(`Failed to get device time: ${error}`);
754
- throw new Error(`Failed to get device time: ${error}`);
755
+ debugDevice(`Failed to get device local time: ${error}`);
756
+ throw new Error(`Failed to get device local time: ${error}`);
755
757
  }
756
758
  }
757
759
  async destroy() {
@@ -1085,10 +1087,7 @@ async function getHdcTargetsSafe() {
1085
1087
  try {
1086
1088
  const targets = await getHdcTargets();
1087
1089
  return {
1088
- targets,
1089
- ...0 === targets.length ? {
1090
- error: HARMONY_NO_DEVICE_MESSAGE
1091
- } : {}
1090
+ targets
1092
1091
  };
1093
1092
  } catch (error) {
1094
1093
  return {
@@ -774,17 +774,19 @@ class HarmonyDevice {
774
774
  const hdc = await this.getHdc();
775
775
  await hdc.keyEvent('Back');
776
776
  }
777
- async getTimestamp() {
777
+ async getDeviceLocalTimeString(format = 'YYYY-MM-DD HH:mm:ss') {
778
778
  const hdc = await this.getHdc();
779
779
  try {
780
- const stdout = await hdc.shell('date +%s%3N');
781
- const timestamp = Number.parseInt(stdout.trim(), 10);
782
- if (Number.isNaN(timestamp)) throw new Error(`Invalid timestamp format: ${stdout}`);
783
- debugDevice(`Got device time: ${timestamp}`);
784
- return timestamp;
780
+ const stdout = await hdc.shell('date +%Y-%m-%dT%H:%M:%S');
781
+ const match = stdout.trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/);
782
+ if (!match) throw new Error(`Invalid device time format: ${stdout}`);
783
+ const [, year, month, day, hours, minutes, seconds] = match;
784
+ const timeString = format.replace('YYYY', year).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
785
+ debugDevice(`Got device local time: ${timeString}`);
786
+ return `${timeString} (${format})`;
785
787
  } catch (error) {
786
- debugDevice(`Failed to get device time: ${error}`);
787
- throw new Error(`Failed to get device time: ${error}`);
788
+ debugDevice(`Failed to get device local time: ${error}`);
789
+ throw new Error(`Failed to get device local time: ${error}`);
788
790
  }
789
791
  }
790
792
  async destroy() {
@@ -1065,7 +1067,7 @@ class HarmonyMCPServer extends mcp_namespaceObject.BaseMCPServer {
1065
1067
  constructor(toolsManager){
1066
1068
  super({
1067
1069
  name: '@midscene/harmony-mcp',
1068
- version: "1.7.9",
1070
+ version: "1.7.10-beta-20260507030203.0",
1069
1071
  description: 'Control the HarmonyOS device using natural language commands'
1070
1072
  }, toolsManager);
1071
1073
  }
@@ -104,7 +104,11 @@ export declare class HarmonyDevice implements AbstractInterface {
104
104
  home(): Promise<void>;
105
105
  recentApps(): Promise<void>;
106
106
  hideKeyboard(): Promise<void>;
107
- getTimestamp(): Promise<number>;
107
+ /**
108
+ * Get the current device-local time as a formatted string.
109
+ * This avoids formatting a device timestamp in the host machine's timezone.
110
+ */
111
+ getDeviceLocalTimeString(format?: string): Promise<string>;
108
112
  destroy(): Promise<void>;
109
113
  }
110
114
 
@@ -102,7 +102,11 @@ declare class HarmonyDevice implements AbstractInterface {
102
102
  home(): Promise<void>;
103
103
  recentApps(): Promise<void>;
104
104
  hideKeyboard(): Promise<void>;
105
- getTimestamp(): Promise<number>;
105
+ /**
106
+ * Get the current device-local time as a formatted string.
107
+ * This avoids formatting a device timestamp in the host machine's timezone.
108
+ */
109
+ getDeviceLocalTimeString(format?: string): Promise<string>;
106
110
  destroy(): Promise<void>;
107
111
  }
108
112
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midscene/harmony",
3
- "version": "1.7.9",
3
+ "version": "1.7.10-beta-20260507030203.0",
4
4
  "description": "HarmonyOS automation library for Midscene",
5
5
  "keywords": [
6
6
  "HarmonyOS UI automation",
@@ -41,9 +41,9 @@
41
41
  "dependencies": {
42
42
  "@inquirer/prompts": "^7.8.6",
43
43
  "open": "10.1.0",
44
- "@midscene/core": "1.7.9",
45
- "@midscene/playground": "1.7.9",
46
- "@midscene/shared": "1.7.9"
44
+ "@midscene/core": "1.7.10-beta-20260507030203.0",
45
+ "@midscene/playground": "1.7.10-beta-20260507030203.0",
46
+ "@midscene/shared": "1.7.10-beta-20260507030203.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@rslib/core": "^0.18.3",
package/static/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html><head><link rel="icon" href="/favicon.ico"><title>Midscene Playground</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/lib-react.7b1abe58.js"></script><script defer src="/static/js/382.f480feba.js"></script><script defer src="/static/js/index.5bb455e1.js"></script><link href="/static/css/index.0c9d926c.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
1
+ <!doctype html><html><head><link rel="icon" href="/favicon.ico"><title>Midscene Playground</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/lib-react.7b1abe58.js"></script><script defer src="/static/js/793.5e753956.js"></script><script defer src="/static/js/index.1f3cefad.js"></script><link href="/static/css/index.9888013b.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
@@ -0,0 +1,2 @@
1
+ .logo img{vertical-align:baseline;height:30px;vertical-align:-webkit-baseline-middle;line-height:30px}.logo-with-star-wrapper{flex-direction:row;justify-content:space-between;display:flex}.nav-actions{align-items:center;gap:8px;display:flex}.nav-actions .nav-icon{color:#000000a6;cursor:pointer;font-size:16px;transition:color .3s}.nav-actions .nav-icon:hover{color:#2b83ff}.nav-actions a{align-items:center;text-decoration:none;display:flex}.nav-actions a:hover .nav-icon{color:#2b83ff}[data-theme=dark] .nav-actions .nav-icon{color:#f8fafd}[data-theme=dark] .nav-actions .nav-icon:hover{color:#2b83ff}.screenshot-viewer{flex-direction:column;height:100%;display:flex}.screenshot-viewer.screen-only{min-height:0}.screenshot-viewer.screen-only>.screenshot-content{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.screenshot-viewer.screen-only>.screenshot-content .screenshot-image{object-fit:contain;object-position:center center;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;display:block}.screenshot-viewer.offline,.screenshot-viewer.loading,.screenshot-viewer.error{text-align:center;color:#666;justify-content:center;align-items:center}.screenshot-viewer.offline .screenshot-placeholder h3,.screenshot-viewer.loading .screenshot-placeholder h3,.screenshot-viewer.error .screenshot-placeholder h3{color:#1890ff;text-transform:capitalize;margin-bottom:12px;font-size:18px}.screenshot-viewer.offline .screenshot-placeholder p,.screenshot-viewer.loading .screenshot-placeholder p,.screenshot-viewer.error .screenshot-placeholder p{color:#666;margin:0}.screenshot-viewer.offline .screenshot-placeholder p.error-message,.screenshot-viewer.loading .screenshot-placeholder p.error-message,.screenshot-viewer.error .screenshot-placeholder p.error-message{color:#ff4d4f}.screenshot-viewer .screenshot-header{justify-content:space-between;align-items:center;height:56px;display:flex}.screenshot-viewer .screenshot-header .screenshot-title{flex-direction:column;gap:4px;display:flex}.screenshot-viewer .screenshot-header .screenshot-title h3{color:#000;text-transform:capitalize;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.screenshot-viewer .screenshot-header .screenshot-title .screenshot-subtitle{color:#999;margin:0;font-size:12px}.screenshot-viewer .screenshot-container{background:#f2f4f7;border-radius:16px;flex-direction:column;flex:1;padding:0 15px;display:flex;overflow:hidden}.screenshot-viewer .screenshot-container .screenshot-overlay{z-index:10;justify-content:space-between;align-items:flex-start;padding:12px 5px 8px;display:flex}.screenshot-viewer .screenshot-container .screenshot-overlay .device-name-overlay{color:#000000d9;text-transform:capitalize;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.screenshot-viewer .screenshot-container .screenshot-overlay .device-name-overlay .info-icon{opacity:.8;cursor:pointer;font-size:12px}.screenshot-viewer .screenshot-container .screenshot-overlay .device-name-overlay .info-icon:hover{opacity:1}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls{opacity:1;box-sizing:border-box;border-radius:4px;align-items:center;gap:10px;height:18px;padding:4px 8px;display:flex}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .last-update-time{color:#666;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .operation-indicator{align-items:center;gap:4px;font-size:12px;display:flex}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .ant-btn{box-shadow:none;background:0 0;border:none;justify-content:center;align-items:center;width:16px;min-width:16px;height:16px;padding:0;display:flex}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .ant-btn:hover{background-color:#0000000f;border-radius:2px;transition:all .2s;transform:scale(1.1)}.screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .ant-btn .anticon{color:#666;font-size:12px;transition:color .2s}.screenshot-viewer .screenshot-container .screenshot-content{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.screenshot-viewer .screenshot-container .screenshot-content .screenshot-image{object-fit:contain;border-radius:12px;max-width:100%;height:auto;max-height:100%}.screenshot-viewer .screenshot-container .screenshot-content .screenshot-placeholder{text-align:center;color:#999}[data-theme=dark] .screenshot-viewer.offline,[data-theme=dark] .screenshot-viewer.loading,[data-theme=dark] .screenshot-viewer.error{color:#f8fafd}[data-theme=dark] .screenshot-viewer.offline .screenshot-placeholder h3,[data-theme=dark] .screenshot-viewer.loading .screenshot-placeholder h3,[data-theme=dark] .screenshot-viewer.error .screenshot-placeholder h3{color:#1890ff}[data-theme=dark] .screenshot-viewer.offline .screenshot-placeholder p,[data-theme=dark] .screenshot-viewer.loading .screenshot-placeholder p,[data-theme=dark] .screenshot-viewer.error .screenshot-placeholder p{color:#f8fafd}[data-theme=dark] .screenshot-viewer.offline .screenshot-placeholder p.error-message,[data-theme=dark] .screenshot-viewer.loading .screenshot-placeholder p.error-message,[data-theme=dark] .screenshot-viewer.error .screenshot-placeholder p.error-message{color:#ff4d4f}[data-theme=dark] .screenshot-viewer .screenshot-header .screenshot-title h3{color:#f8fafd}[data-theme=dark] .screenshot-viewer .screenshot-header .screenshot-title .screenshot-subtitle{color:#ffffff73}[data-theme=dark] .screenshot-viewer .screenshot-container{background:#141414}[data-theme=dark] .screenshot-viewer .screenshot-container .screenshot-overlay .device-name-overlay,[data-theme=dark] .screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .last-update-time{color:#f8fafd}[data-theme=dark] .screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .ant-btn:hover{background-color:#ffffff14}[data-theme=dark] .screenshot-viewer .screenshot-container .screenshot-overlay .screenshot-controls .ant-btn .anticon{color:#f8fafd}[data-theme=dark] .screenshot-viewer .screenshot-container .screenshot-content .screenshot-placeholder{color:#ffffff73}.blackboard .footer{color:#aaa}.blackboard ul{padding-left:0}.blackboard li{list-style:none}.blackboard .bottom-tip{height:30px}.blackboard .bottom-tip-item{color:#aaa;text-overflow:ellipsis;word-wrap:break-word;max-width:500px}.blackboard-main-content{position:relative;overflow:hidden}.blackboard-screenshot{box-sizing:border-box;border:1px solid #888;width:100%;display:block}.blackboard-overlay{pointer-events:none;width:100%;position:absolute;top:0;left:0}.blackboard-rect{box-sizing:content-box;pointer-events:none;z-index:1;position:absolute}.blackboard-rect-label{white-space:nowrap;padding:1px 4px;font-size:14px;font-weight:600;line-height:1.4;position:absolute;bottom:100%;left:0}.blackboard-rect-search{border:calc(1px*var(--ui-scale,1))solid #028391;background:#02839126}.blackboard-rect-search .blackboard-rect-label{color:#028391}.blackboard-rect-highlight{border:calc(1px*var(--ui-scale,1))solid #fd5907;background:#fd590726;animation:1.2s ease-in-out infinite blackboard-pulse}.blackboard-rect-highlight .blackboard-rect-label{color:#000}.blackboard-point{width:calc(20px*var(--ui-scale,1));height:calc(20px*var(--ui-scale,1));margin-left:calc(-10px*var(--ui-scale,1));margin-top:calc(-10px*var(--ui-scale,1));border:calc(2px*var(--ui-scale,1))solid #fd5907;box-shadow:0 0 calc(6px*var(--ui-scale,1))#fd590780;pointer-events:none;z-index:2;background:#fd590766;border-radius:50%;animation:1.2s ease-in-out infinite blackboard-pulse;position:absolute}@keyframes blackboard-pulse{0%,to{opacity:.4}50%{opacity:1;box-shadow:0 0 12px #fd590780}}[data-theme=dark] .blackboard .footer,[data-theme=dark] .blackboard .bottom-tip-item{color:#ffffff73}[data-theme=dark] .blackboard-screenshot{border-color:#ffffff1f}[data-theme=dark] .blackboard-rect-highlight .blackboard-rect-label{color:#fff}.shiny-text{color:#0000;letter-spacing:.5px;text-shadow:0 1px 2px #0000000d;background-image:linear-gradient(45deg,#2b83ff,#1d9bf0,#2575fc,#4481eb);background-size:300%;-webkit-background-clip:text;background-clip:text;font-weight:600;animation:8s infinite textGradient;display:inline-block;position:relative;overflow:hidden}.shiny-text.theme-blue{background-image:linear-gradient(45deg,#2b83ff,#1d9bf0,#2575fc,#4481eb)}.shiny-text.theme-purple{background-image:linear-gradient(45deg,#667eea,#764ba2,#b06ab3,#9d50bb)}.shiny-text.theme-green{background-image:linear-gradient(45deg,#11998e,#38ef7d,#2dd4bf,#10b981)}.shiny-text.theme-rainbow{background-image:linear-gradient(45deg,#ff0080,#ff8c00,#40e0d0,#9d50bb,#ff0080);background-size:400%}.shiny-text:after{content:"";width:120%;height:120%;animation:shine var(--animation-duration,5s)cubic-bezier(.25,.1,.25,1)infinite;z-index:1;pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffff1a 10%,#fff9 50%,#ffffff1a 90%,#fff0 100%);position:absolute;top:-10%;left:-150%;transform:skew(-20deg)translateY(0)}.shiny-text.disabled{color:#000;background:0 0;font-weight:400;animation:none}.shiny-text.disabled:after{animation:none;display:none}[data-theme=dark] .shiny-text{color:#0000;-webkit-text-fill-color:transparent;text-shadow:none;background-image:linear-gradient(45deg,#7dd3fc,#60a5fa,#38bdf8,#60a5fa);background-size:300%;-webkit-background-clip:text;background-clip:text;animation:8s infinite textGradient}[data-theme=dark] .shiny-text:after{background:linear-gradient(90deg,#c5b8ff00 0%,#c5b8ff0d 10%,#c5b8ff26 50%,#c5b8ff0d 90%,#c5b8ff00 100%)}@keyframes shine{0%{opacity:.7;left:-150%}20%{opacity:1}80%{opacity:1}to{opacity:.7;left:250%}}@keyframes textGradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.env-config-reminder{background:#fff2e8;border-radius:12px;align-items:center;gap:12px;margin-bottom:12px;padding:12px 16px;display:flex}.env-config-reminder .reminder-icon{color:#fa541c;width:16px;height:16px}.env-config-reminder .reminder-text{color:#000;flex:1;font-size:14px}[data-theme=dark] .env-config-reminder{background:#5226074d}[data-theme=dark] .env-config-reminder .reminder-text{color:#f8fafd}.player-container{box-sizing:border-box;border:1px solid #f2f4f7;border-radius:8px;flex-direction:column;width:100%;max-width:100%;height:100%;min-height:300px;max-height:100%;margin:0 auto;padding:12px;line-height:normal;display:flex;position:relative;overflow:visible}.player-container[data-fit-mode=height]{background:#fff}.player-container[data-fit-mode=height] .canvas-container{background-color:#000}.player-container .canvas-container{background-color:#000;border-radius:4px;outline:none;flex:auto;justify-content:center;align-items:center;width:100%;min-height:200px;display:flex;position:relative;overflow:hidden}.player-container .canvas-container .player-wrapper{width:100%;max-width:100%;max-height:100%;position:relative}.player-container .canvas-container .player-wrapper[data-portrait]{width:auto;height:100%}.player-container .player-subtitle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;pointer-events:none;background:#505050bf;border-radius:8px;align-items:center;gap:8px;max-width:calc(100% - 24px);height:32px;padding:0 14px;display:inline-flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.player-container .player-subtitle .player-subtitle-badge{color:#fff;background:#a34dff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;height:22px;padding:0 6px;font-size:13px;font-weight:700;display:inline-flex}.player-container .player-subtitle .player-subtitle-text{color:#fff;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.player-container .control-bar{z-index:2;background:linear-gradient(#0000,#0009);align-items:center;gap:8px;padding:8px 12px;transition:opacity .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.player-container .control-bar.hidden{opacity:0;pointer-events:none}.player-container .time-display{color:#fffc;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:14px}.player-container .seek-bar-track{cursor:pointer;touch-action:none;background:#ffffff4d;border-radius:2.5px;flex:1;height:5px;position:relative}.player-container .seek-bar-track .seek-bar-fill{pointer-events:none;background:#2b83ff;border-radius:2.5px;height:100%;position:absolute;top:0;left:0}.player-container .seek-bar-track .seek-bar-knob{pointer-events:none;background:#fff;border-radius:10px;width:8px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-container .seek-bar-track .chapter-marker{pointer-events:auto;cursor:pointer;z-index:1;background:#fff;width:2px;height:100%;position:absolute;top:0;transform:translate(-50%)}.player-container .seek-bar-track .chapter-marker:before{content:"";position:absolute;top:-8px;bottom:-8px;left:-8px;right:-8px}.player-container .status-icon{color:#fff;cursor:pointer;opacity:.7;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.player-container .status-icon svg{color:#fff;font-size:16px}.player-container .status-icon:hover{opacity:1;background:#ffffff26}.player-container .player-custom-controls{flex-direction:row;justify-content:center;align-items:center;gap:2px;min-width:58px;margin-left:4px;display:flex}.player-container .player-custom-controls .ant-spin{color:#fff}.player-container.player-container-empty{justify-content:center;align-items:center}.player-container.player-container-empty .player-empty-state{color:#6b7280;flex-direction:column;align-items:center;gap:12px;display:flex}.player-container.player-container-empty .player-empty-state .player-empty-text{font-size:14px}.chapter-tooltip .ant-tooltip-inner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#505050d9;border-radius:16px;max-width:360px;padding:6px 12px;font-size:12px}.chapter-tooltip .ant-tooltip-arrow:before{background:#505050d9}[data-theme=dark] .player-container{border-color:#292929}[data-theme=dark] .player-container[data-fit-mode=height]{background:#292929;border-color:#292929}[data-theme=dark] .player-container[data-fit-mode=height] .canvas-container,[data-theme=dark] .player-container .canvas-container{background-color:#000}.player-settings-dropdown{background-color:#fff;border:1px solid #00000014;border-radius:8px;padding:4px;overflow:hidden;box-shadow:0 2px 8px #00000014}.player-settings-divider{background:#0000000f;height:1px;margin:4px 0}.player-export-label{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:14px}.player-speed-option:hover,.player-settings-item:hover{background:#0000000a}.player-speed-option.active{color:#1677ff}[data-theme=dark] .player-settings-dropdown{color:#f8fafd;background-color:#1f1f1f;border-color:#ffffff14;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .player-settings-divider,[data-theme=dark] .player-speed-option:hover,[data-theme=dark] .player-settings-item:hover{background:#ffffff14}.result-wrapper{justify-content:center;align-items:flex-start;height:100%;margin:4px 0;display:flex}.result-wrapper .player-container{width:100%;max-width:500px;height:auto;min-height:0;max-height:none}.result-wrapper .player-container .canvas-container{height:60vh;min-height:0;max-height:60vh}.result-wrapper .player-container .player-wrapper{max-width:100%;max-height:100%}.result-wrapper .loading-container{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.result-wrapper .loading-container .loading-progress-text{color:#888;margin-top:8px;font-size:12px}.result-wrapper pre{white-space:pre-wrap;text-wrap:unset;word-wrap:break-word;overflow-wrap:break-word;background:#f2f4f7;border-radius:8px;margin:0;padding:14px;overflow:scroll}.result-wrapper .combined-result-layout{flex-direction:column;align-self:stretch;gap:16px;width:100%;min-width:0;max-width:100%;height:100%;display:flex}.result-wrapper .combined-result-section{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.result-wrapper .combined-result-player{flex:auto;width:100%;min-width:0;max-width:100%;min-height:0;overflow:hidden}[data-theme=dark] .result-wrapper .loading-container .loading-progress-text{color:#ffffff73}[data-theme=dark] .result-wrapper pre{color:#f8fafd;background:#ffffff14;border:1px solid #ffffff1f}.playground-container{background:var(--midscene-surface,#fff);width:100%;height:100vh;color:var(--midscene-text-primary,inherit);flex-direction:column;display:flex;position:relative}.playground-container .command-form{flex-direction:column;width:100%;height:100%;display:flex}.playground-container .context-preview-section{border-bottom:1px solid #f0f0f0;flex-shrink:0;padding:16px}.playground-container .middle-dialog-area{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.playground-container .middle-dialog-area .clear-button-container{z-index:10;position:absolute;top:16px;right:0}.playground-container .middle-dialog-area .clear-button-container .clear-button{opacity:.7;transition:opacity .2s}.playground-container .middle-dialog-area .clear-button-container .clear-button:hover{opacity:1}.playground-container .middle-dialog-area .info-list-container{scrollbar-width:none;flex:1;padding-top:16px;padding-bottom:16px;overflow:hidden auto}.playground-container .middle-dialog-area .info-list-container .ant-list .ant-list-item{border-bottom:none;padding:0}.playground-container .middle-dialog-area .info-list-container .ant-list .ant-list-item .ant-card{border:1px solid #f0f0f0;border-radius:8px;box-shadow:0 1px 3px #0000001a}.playground-container .middle-dialog-area .info-list-container .ant-list .ant-list-item .ant-card:hover{box-shadow:0 2px 6px #00000026}.playground-container .middle-dialog-area .info-list-container .ant-list .ant-list-item .ant-card .ant-card-body{padding:12px}.playground-container .middle-dialog-area .info-list-container .ant-list .ant-list-empty-text{color:#999;font-style:italic}.playground-container .middle-dialog-area .info-list-container::-webkit-scrollbar{display:none}.playground-container .middle-dialog-area .info-list-container .list-item{background:0 0;border:none;padding:0}.playground-container .middle-dialog-area .info-list-container .playground-empty-state-wrapper{min-height:100%}.playground-container .middle-dialog-area .info-list-container .playground-empty-state-wrapper-offset-for-prompt{padding-bottom:128px}.playground-container .middle-dialog-area .scroll-to-bottom-button{z-index:10;background:var(--midscene-surface-elevated,#fff);border:1px solid var(--midscene-border-strong,#00000014);position:absolute;bottom:10px;right:0}.playground-container .middle-dialog-area .scroll-to-bottom-button:hover{background:#1890ff}.playground-container .middle-dialog-area .scroll-to-bottom-button:hover .anticon{color:#fff}.playground-container .middle-dialog-area .scroll-to-bottom-button .anticon{color:#333;font-size:16px}.playground-container .user-message-container{justify-content:flex-end;width:100%;margin:20px 0 30px;display:flex}.playground-container .user-message-container .user-message-bubble{background:var(--midscene-surface-muted,#f2f4f7);color:var(--midscene-text-primary,#000000d9);text-align:left;border-radius:12px;max-width:80%;padding:12px 16px;font-size:14px;font-weight:400;display:inline-block}.playground-container .progress-action-item{background:var(--midscene-surface-muted,#f2f4f7);color:var(--midscene-text-primary,#000);border-radius:8px;justify-content:space-between;height:36px;margin:4px 0;padding:0 12px;font-size:14px;line-height:36px;display:flex}.playground-container .progress-action-item .progress-status-icon{margin-left:4px}.playground-container .progress-action-item .progress-status-icon.loading{color:#1890ff}.playground-container .progress-action-item .progress-status-icon.completed{color:#52c41a}.playground-container .progress-action-item .progress-status-icon.error{color:#ff4d4f;font-weight:700}.playground-container .progress-description{padding:8px 0;font-size:14px;line-height:22px;display:inline-block}.playground-container .system-message-container{flex-direction:column;display:flex}.playground-container .system-message-container .system-message-header{align-items:center;gap:8px;margin:12px 0;display:flex}.playground-container .system-message-container .system-message-header .system-message-title{font-size:12px;font-weight:400;line-height:100%}.playground-container .system-message-container .system-message-content{color:var(--midscene-text-primary,#000000d9);font-size:14px}.playground-container .system-message-container .system-message-content .system-message-text{color:var(--midscene-text-primary,#000000d9);font-size:14px;line-height:25px}.playground-container .system-message-container .system-message-content .error-message{color:#e51723;word-break:break-word;background-color:#fff;border:none;border-radius:0;align-items:flex-start;margin-bottom:16px;padding:0;font-size:14px;display:flex}.playground-container .system-message-container .system-message-content .error-message .divider{background-color:#e6e8eb;flex-shrink:0;align-self:stretch;width:1px;min-height:20px;margin:0 8px 0 0}.playground-container .system-message-container .system-message-content .loading-progress-text{color:#666;background:#f6f8fa;border-left:3px solid #1890ff;border-radius:4px;margin-top:8px;padding:8px 12px;font-size:13px}.playground-container .new-conversation-separator{flex-shrink:0;justify-content:center;align-items:center;padding:20px 0;display:flex;position:relative}.playground-container .new-conversation-separator .separator-line{background-color:var(--midscene-divider,#e8e8e8);height:1px;position:absolute;top:50%;left:0;right:0}.playground-container .new-conversation-separator .separator-text-container{background-color:var(--midscene-surface,#fff);z-index:1;padding:0 16px;position:relative}.playground-container .new-conversation-separator .separator-text-container .separator-text{color:var(--midscene-text-tertiary,#999);background-color:var(--midscene-surface,#fff);font-size:12px}.playground-container .progress-group-toggle{cursor:pointer;color:var(--midscene-text-tertiary,#00000080);-webkit-user-select:none;user-select:none;background:0 0;border:0;align-items:center;gap:8px;margin:0 0 8px;padding:0 4px;font-size:12px;font-weight:500;line-height:15px;display:inline-flex}.playground-container .progress-group-toggle:hover{color:var(--midscene-text-secondary,#000000b3)}.playground-container .progress-group-toggle .progress-group-toggle-chevron{font-size:10px;transition:transform .15s ease-out}.playground-container .progress-group-toggle.is-collapsed .progress-group-toggle-chevron{transform:rotate(180deg)}.playground-container .bottom-input-section{background-color:var(--midscene-surface,#fff);flex-shrink:0;padding:16px 0 0}.playground-container .version-info-section{flex-shrink:0;justify-content:center;align-items:center;height:38px;display:flex}.playground-container .version-text{color:#999;text-align:center;font-size:12px}.playground-container .hidden-result-ref{display:none}.playground-container .playground-description{margin-bottom:32px}.playground-container .playground-description .description-zh{color:#333;margin:0 0 8px;font-size:16px;line-height:1.5}.playground-container .playground-description .description-en{color:#666;margin:0;font-size:14px;line-height:1.5}.playground-container .config-section{margin-bottom:24px}.playground-container .config-section .config-title{color:#333;margin:0 0 16px;font-size:18px;font-weight:600}.playground-container .config-section .config-item{align-items:center;gap:8px;margin-bottom:12px;display:flex}.playground-container .config-section .config-item .config-check{color:#52c41a;font-size:16px}.playground-container .config-section .config-item .config-label{color:#333;font-size:14px}.playground-container .config-section .config-link{color:#1890ff;font-size:14px;text-decoration:none}.playground-container .config-section .config-link:hover{text-decoration:underline}.playground-container.playground-conversation-skin .middle-dialog-area .info-list-container{padding:20px 16px 32px}.playground-container.playground-conversation-skin .middle-dialog-area .info-list-container .ant-list-items{flex-direction:column;gap:16px;display:flex}.playground-container.playground-conversation-skin .middle-dialog-area .info-list-container .list-item{padding:0}.playground-container.playground-conversation-skin .user-message-container{margin:0}.playground-container.playground-conversation-skin .user-message-container .user-message-bubble{border-radius:12px;max-width:min(80%,280px);padding:8px 16px;font-size:14px;line-height:22px}.playground-container.playground-conversation-skin .bottom-input-section{border-top:1px solid var(--midscene-border-subtle);background:var(--midscene-surface);flex-shrink:0;padding:12px}.playground-container.playground-conversation-skin .list-item:has(.progress-action-item){padding-left:0;position:relative}.playground-container.playground-conversation-skin .list-item>div:has(>.progress-action-item){flex-direction:column;align-items:flex-start;gap:8px;display:flex}.playground-container.playground-conversation-skin .progress-action-item{color:#000000b3;background:#00000014;border-radius:38px;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;max-width:100%;height:28px;margin:0 0 0 24px;padding:2px 12px 2px 4px;font-size:14px;line-height:22px;display:flex}.playground-container.playground-conversation-skin .progress-action-item .progress-status-icon{justify-content:center;align-items:center;width:24px;height:24px;margin-left:0;font-size:14px;display:inline-flex}.playground-container.playground-conversation-skin .progress-action-item+div{width:100%;margin:0;padding-left:20px}.playground-container.playground-conversation-skin .progress-description{color:#000000d9;margin:0;padding:0}.playground-container.playground-conversation-skin .system-message-content,.playground-container.playground-conversation-skin .system-message-content .system-message-text{color:#000000d9;font-size:14px;line-height:22px}.playground-container.playground-conversation-skin .list-item:has(.progress-action-item)+.list-item:has(.progress-action-item){margin-top:-8px}.playground-container.playground-conversation-skin .list-item:has(.progress-action-item):has(+.list-item .progress-action-item):after{content:"";pointer-events:none;background:#00000014;width:1px;position:absolute;top:23px;bottom:-16px;left:12px}.playground-container.playground-conversation-skin .list-item:has(.progress-action-item)+.list-item:has(.progress-action-item):has(+.list-item .progress-action-item):after{top:0}.playground-container.playground-conversation-skin .progress-group-toggle{margin:0 0 8px;padding-left:4px}[data-theme=dark] .playground-container.playground-conversation-skin .progress-action-item{color:#ffffffb3;background:#ffffff14}[data-theme=dark] .playground-container.playground-conversation-skin .list-item:has(.progress-action-item):has(+.list-item .progress-action-item):after{background:#ffffff1f}[data-theme=dark] .playground-container.playground-conversation-skin .system-message-content,[data-theme=dark] .playground-container.playground-conversation-skin .system-message-content .system-message-text,[data-theme=dark] .playground-container.playground-conversation-skin .progress-description{color:var(--midscene-text-primary)}[data-theme=dark] .universal-playground .error-hint{color:#ffffff73}[data-theme=dark] .universal-playground .status-indicator{color:#f8fafd}[data-theme=dark] .universal-playground .status-indicator.error{color:#ff4d4f}[data-theme=dark] .universal-playground .status-indicator.success{color:#52c41a}[data-theme=dark] .universal-playground .operation-label{color:#f8fafd}[data-theme=dark] .universal-playground .alert-message{color:#f8fafd;background-color:#5226074d}[data-theme=dark] .universal-playground .operation-item .operation-icon-wrapper{background-color:#ffffff14}[data-theme=dark] .universal-playground .operation-item .operation-content{background-color:#0000}[data-theme=dark] .universal-playground .operation-item .operation-content .operation-title{color:#ffffff73}[data-theme=dark] .universal-playground .playground-footer{background-color:#ffffff0a}[data-theme=dark] .universal-playground .playground-footer .status-text{color:#f8fafd}[data-theme=dark] .universal-playground .results-info{color:#ffffff73}[data-theme=dark] .universal-playground .result-section .result-title,[data-theme=dark] .universal-playground .result-section .result-details,[data-theme=dark] .universal-playground .result-section .result-value{color:#f8fafd}[data-theme=dark] .universal-playground .result-section .result-value.success{color:#52c41a}[data-theme=dark] .universal-playground .result-section .result-value.error{color:#ff4d4f}.history-selector-wrapper{position:relative}.history-modal-overlay{z-index:9999;background:#fff;border:1px solid #00000014;border-radius:12px;width:320px;max-width:min(320px,100vw - 32px);height:400px;position:fixed;box-shadow:0 8px 24px #0000001f}.history-modal-container{border-radius:12px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.history-modal-container .history-modal-header{justify-content:space-between;align-items:center;height:48px;padding:0 25px;line-height:48px;display:flex}.history-modal-container .history-modal-header .close-button{justify-content:center;align-items:center;margin-right:-4px;padding:4px;display:flex}.history-modal-container .history-modal-header .close-button .anticon{color:#999;font-size:18px}.history-modal-container .history-modal-header .close-button:hover .anticon{color:#666}.history-modal-container .history-search-section{background:#fff;padding:16px 20px}.history-modal-container .history-search-section .search-input-wrapper{color:#00000040;align-items:center;gap:12px;display:flex}.history-modal-container .history-search-section .search-input-wrapper .search-input{background:#f1f2f3;border:none;border-radius:16px;flex:1;height:36px}.history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input{box-shadow:none;background:0 0;border:none}.history-modal-container .history-search-section .search-input-wrapper .search-input:hover,.history-modal-container .history-search-section .search-input-wrapper .search-input:focus-within{background:#fff;border-color:#d9d9d9}.history-modal-container .history-search-section .search-input-wrapper .clear-button{color:#1890ff;height:auto;padding:0}.history-modal-container .history-search-section .search-input-wrapper .clear-button:hover{color:#40a9ff}.history-modal-container .history-content{flex:1;padding:0 25px 25px;overflow-y:auto}.history-modal-container .history-content .history-group{margin-bottom:10px}.history-modal-container .history-content .history-group .history-group-title{color:#00000073;height:40px;font-size:12px;font-weight:400;line-height:40px}.history-modal-container .history-content .history-group .history-item{cursor:pointer;color:#000000d9;white-space:nowrap;text-overflow:ellipsis;height:40px;font-size:14px;line-height:40px;overflow:hidden}.history-modal-container .history-content .history-group .history-item:hover{background:#f2f4f7;margin:0 -8px;padding:0 8px}.history-modal-container .history-content .no-results{text-align:center;color:#999;padding:40px 20px}[data-theme=dark] .history-modal-overlay{background:#16181d!important;border-color:#ffffff1f!important;box-shadow:0 16px 40px #00000073!important}[data-theme=dark] .history-modal-container{background:#16181d!important}[data-theme=dark] .history-modal-container .history-modal-header .ant-typography{color:#ffffffeb!important}[data-theme=dark] .history-modal-container .history-modal-header .close-button .anticon{color:#ffffff7a}[data-theme=dark] .history-modal-container .history-modal-header .close-button:hover .anticon{color:#ffffffc7}[data-theme=dark] .history-modal-container .history-search-section{background:#16181d!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper{color:#ffffff61}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper{box-shadow:none!important;background:#ffffff14!important;border-color:#ffffff1f!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper .ant-input,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input-prefix,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper .ant-input-prefix,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input-clear-icon,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper .ant-input-clear-icon{color:#ffffffb8!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper .ant-input{background:0 0!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input .ant-input::placeholder,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper .ant-input::placeholder{color:#ffffff61!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input:hover,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper:hover,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input:focus-within,[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .search-input.ant-input-affix-wrapper:focus-within{background:#ffffff1f!important;border-color:#ffffff29!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .clear-button{color:#77b7ff!important}[data-theme=dark] .history-modal-container .history-search-section .search-input-wrapper .clear-button:hover{color:#9cccff!important}[data-theme=dark] .history-modal-container .history-content .history-group .history-group-title{color:#ffffff73!important}[data-theme=dark] .history-modal-container .history-content .history-group .history-item{color:#ffffffe0!important}[data-theme=dark] .history-modal-container .history-content .history-group .history-item:hover{background:#ffffff14!important}[data-theme=dark] .history-modal-container .history-content .no-results,[data-theme=dark] .history-modal-container .history-content .ant-typography.ant-typography-secondary{color:#ffffff73!important}.prompt-input-wrapper{box-sizing:border-box;width:100%;padding:0 4px}.prompt-input-wrapper .mode-radio-group-wrapper{align-items:center;gap:8px;display:flex;position:relative}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group{scrollbar-width:thin;flex:1;align-items:center;gap:8px;min-width:0;height:100%;margin-right:60px;display:flex;overflow:auto hidden}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group::-webkit-scrollbar{height:6px}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-form-item{flex-shrink:0;margin:0!important}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-form-item .ant-radio-group{flex-wrap:nowrap;gap:8px;display:flex}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper{height:24px;box-shadow:none;white-space:nowrap;background-color:#f7f7f7;border:none;border-radius:11px;flex-shrink:0;margin-right:0;padding:0 8px;font-size:12px;line-height:24px}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper:before{display:none}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper:focus-within{outline:none}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{color:#fff;background-color:#2b83ff;border-color:#2b83ff}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked:hover{color:#fff}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-dropdown-trigger{flex-shrink:0}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button{height:24px;box-shadow:none;white-space:nowrap;background-color:#f7f7f7;border:none;border-radius:11px;flex-shrink:0;align-items:center;gap:2px;max-width:160px;padding:0 8px;font-size:12px;display:inline-flex}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button .ant-btn-content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button:hover{background-color:#e6e6e6}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button.selected-from-dropdown{color:#fff;background-color:#2b83ff;font-weight:500}.prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button.selected-from-dropdown:hover{background-color:#2b83ff}.prompt-input-wrapper .mode-radio-group-wrapper .action-icons{z-index:10;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff80 20%,#fffc 40%,#fffffff2 60%,#fff 70%);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;width:80px;padding-left:20px;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.prompt-input-wrapper .mode-radio-group-wrapper .action-icons>*{pointer-events:auto}.prompt-input-wrapper .main-side-console-input{z-index:1;background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%) border-box;border:1px solid #0000;border-radius:12px;margin-top:10px;padding-bottom:48px;position:relative}@keyframes hue-shift{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}.prompt-input-wrapper .main-side-console-input:focus-within{z-index:10;box-shadow:0 0 0 3px #2b83ff29}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea{resize:none;white-space:pre-wrap;scrollbar-width:thin;background:0 0;border:none;border-radius:0;outline:none;min-height:120px;padding:12px 16px;line-height:21px;transition:background-color .2s;position:relative;overflow-y:auto}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea:focus{box-shadow:none;border:none;outline:none}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea:focus-visible{box-shadow:none;border:none;outline:none}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea:after{display:none}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea::-webkit-scrollbar{width:6px}.prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.prompt-input-wrapper .main-side-console-input.loading{background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%) border-box;border:1px solid #0000}.prompt-input-wrapper .main-side-console-input.loading:before{content:"";-webkit-mask-composite:xor;pointer-events:none;z-index:-1;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;background:linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%);border-radius:12px;padding:1px;animation:5s linear infinite hue-shift;position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.prompt-input-wrapper .main-side-console-input.disabled .form-controller-wrapper{background-color:#0000}.prompt-input-wrapper .no-input-method{text-align:center;color:var(--midscene-text-tertiary,#666);padding:20px;font-size:14px}.prompt-input-wrapper .ant-form-item-with-help+.form-controller-wrapper{bottom:14px}.prompt-input-wrapper .ant-input{padding-bottom:40px}.prompt-input-wrapper .form-controller-wrapper{box-sizing:border-box;z-index:1000;pointer-events:none;background-color:#0000;flex-direction:row;justify-content:flex-end;align-items:flex-end;gap:8px;width:calc(100% - 32px);height:56px;padding:12px 0;line-height:32px;transition:background-color .2s;display:flex;position:absolute;bottom:0;left:16px}.prompt-input-wrapper .form-controller-wrapper>*{pointer-events:auto}.prompt-input-wrapper .settings-wrapper{color:#777;flex-flow:wrap;gap:2px;display:flex}.prompt-input-wrapper .settings-wrapper.settings-wrapper-hover{color:#3b3b3b}.prompt-input-wrapper .structured-params-container{box-sizing:border-box;padding:16px 16px 56px;overflow:hidden}.prompt-input-wrapper .structured-params-container .structured-params{width:100%;min-width:0}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item{flex-direction:column;display:flex}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label{text-align:left;flex-basis:auto;padding-bottom:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label{color:#000000d9;height:auto;font-size:12px;font-weight:500;line-height:1.5}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:after{color:#ff4d4f;font-family:SimSun,sans-serif;font-size:12px;line-height:1;display:inline-block}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):after{margin-left:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):after{margin-left:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):after{margin-left:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):after{margin-left:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):after{margin-left:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):after{margin-right:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):after{margin-right:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-label>label:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):after{margin-right:4px}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-control{flex:1;margin-top:0}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-row{flex-direction:column}.prompt-input-wrapper .structured-params-container .structured-params .ant-form-item .ant-form-item-control-input{min-height:auto}.prompt-input-wrapper .structured-params-container .structured-params .ant-input,.prompt-input-wrapper .structured-params-container .structured-params .ant-input-number,.prompt-input-wrapper .structured-params-container .structured-params .ant-select{border:1px solid #e1e5e9;border-radius:6px;width:100%}.prompt-input-wrapper .structured-params-container .structured-params .ant-input:hover,.prompt-input-wrapper .structured-params-container .structured-params .ant-input-number:hover,.prompt-input-wrapper .structured-params-container .structured-params .ant-select:hover{border-color:#40a9ff}.prompt-input-wrapper .structured-params-container .structured-params textarea.ant-input{padding-bottom:5px}.prompt-input-wrapper .structured-params-container .structured-params .ant-input-number .ant-input-number-input{box-shadow:none;border:none}.prompt-input-wrapper .structured-params-container .structured-params .ant-input-number:hover .ant-input-number-input{box-shadow:none}.prompt-input-wrapper .structured-params-container .structured-params .ant-select{min-width:120px}.prompt-input-wrapper .structured-params-container .structured-params .ant-select .ant-select-selector{box-shadow:none;border:none}.prompt-input-wrapper .structured-params-container .structured-params .ant-select:hover .ant-select-selector,.prompt-input-wrapper .structured-params-container .structured-params .ant-select.ant-select-focused .ant-select-selector{box-shadow:none}.prompt-input-wrapper .structured-params-container .structured-params .ant-radio-group{width:100%}.prompt-input-wrapper .structured-params-container .structured-params .ant-radio-group .ant-radio-button-wrapper{border:1px solid #e1e5e9;border-radius:6px;height:32px;margin-right:4px;font-size:12px;line-height:30px}.prompt-input-wrapper .structured-params-container .structured-params .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{color:#fff;background-color:#2b83ff;border-color:#2b83ff}.selector-trigger{cursor:pointer;width:24px;height:24px;transition:all .2s}.selector-trigger .action-icon{color:#000000d9;font-size:14px;transition:all .2s}.selector-trigger .action-icon:hover{color:#2b83ff}.prompt-input-wrapper-minimal{width:100%;padding:0}.prompt-input-wrapper-minimal .minimal-main-side-console-input{background:#fff;border:1px solid #e8e8e8;border-radius:24px;margin-top:0;padding-bottom:56px;position:relative;overflow:hidden}.prompt-input-wrapper-minimal .minimal-main-side-console-input:focus-within{box-shadow:0 0 0 2px #1979ff1f}.prompt-input-wrapper-minimal .minimal-main-side-console-input:before{display:none}.prompt-input-wrapper-minimal .minimal-main-side-console-input .main-side-console-input-textarea{min-height:56px;padding:16px 16px 8px;line-height:22px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .structured-params-container{border-radius:inherit;background:0 0;padding:16px 16px 72px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-row{justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-left{align-items:center;gap:2px;min-width:0;display:flex}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-trigger,.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-icon-trigger{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-trigger{color:#878787;border-radius:32px;gap:4px;height:32px;margin-right:16px;padding:4px 0}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-trigger:hover{color:#5f6368}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-trigger:disabled{cursor:not-allowed;opacity:.5}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-icon{object-fit:contain;width:16px;height:16px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-icon-fallback{color:#878787;flex-shrink:0;width:16px;height:16px;display:block}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-label{color:#878787;white-space:nowrap;font-size:12px;font-weight:500;line-height:16px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-chevron{object-fit:contain;opacity:1;width:6px;height:10px;margin-left:0;display:block}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-chevron-fallback{opacity:.5;font-size:10px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .history-selector-wrapper,.prompt-input-wrapper-minimal .minimal-main-side-console-input .settings-wrapper,.prompt-input-wrapper-minimal .minimal-main-side-console-input .selector-trigger{justify-content:center;align-items:center;width:auto;height:auto;display:inline-flex}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-icon-trigger{border-radius:32px;width:32px;height:32px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-icon-trigger:hover{background:#0000000a}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-icon{object-fit:contain;width:16px;height:16px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-icon-history{width:16px;height:16px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-icon-fallback{color:#878787}.prompt-input-wrapper-minimal .minimal-main-side-console-input .form-controller-wrapper{width:auto;height:auto;padding:0;line-height:normal;position:static}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger{width:32px;min-width:32px;height:32px;box-shadow:none;color:#fff;background:#1979ff;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger:hover{color:#fff;background:#0f6ff0}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger:focus-visible{color:#fff;background:#0f6ff0}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger:disabled{color:#bfbfbf;background:#f0f0f0}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger .anticon{font-size:16px}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger-stop{color:#666;background:#f0f0f0}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger-stop:hover{color:#333;background:#e6e6e6}.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-run-trigger-stop:focus-visible{color:#333;background:#e6e6e6}.more-apis-dropdown .ant-dropdown-menu{scrollbar-width:thin;max-height:400px;overflow-y:auto}.more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar{width:6px}.more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#a8a8a8}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper{color:#f8fafd!important;background-color:#ffffff14!important}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{color:#fff!important;background-color:#2b83ff!important;border-color:#2b83ff!important}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button{color:#f8fafd!important;background-color:#ffffff14!important}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button:hover{background-color:#ffffff1f!important}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .mode-radio-group .more-apis-button.selected-from-dropdown{color:#fff!important;background-color:#2b83ff!important}[data-theme=dark] .prompt-input-wrapper .mode-radio-group-wrapper .action-icons{background:linear-gradient(90deg,#0000 0%,#1f1f1f80 20%,#1f1f1fcc 40%,#1f1f1ff2 60%,#1f1f1f 70%)!important}[data-theme=dark] .prompt-input-wrapper .main-side-console-input{background:#1f1f1f!important;border-color:#ffffff1f!important}[data-theme=dark] .prompt-input-wrapper .main-side-console-input:focus-within{background:linear-gradient(#1f1f1f,#1f1f1f) padding-box padding-box,linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%) border-box!important;border:1px solid #0000!important}[data-theme=dark] .prompt-input-wrapper .main-side-console-input .main-side-console-input-textarea{color:#f8fafd!important}[data-theme=dark] .prompt-input-wrapper .main-side-console-input.loading{background:linear-gradient(#1f1f1f,#1f1f1f) padding-box padding-box,linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%) border-box!important;border:1px solid #0000!important}[data-theme=dark] .prompt-input-wrapper .ant-form-item-control-input-content .ant-input,[data-theme=dark] .prompt-input-wrapper .ant-form-item-control-input-content textarea.ant-input{color:#f8fafd!important;background:0 0!important;border-color:#ffffff1f!important}[data-theme=dark] .prompt-input-wrapper .ant-form-item-control-input-content .ant-btn{color:#f8fafd!important;background-color:#ffffff14!important;border-color:#ffffff1f!important}[data-theme=dark] .prompt-input-wrapper .ant-form-item-control-input-content .ant-btn.ant-btn-primary{color:#fff!important;background-color:#2b83ff!important;border-color:#2b83ff!important}[data-theme=dark] .prompt-input-wrapper .form-controller-wrapper{background-color:#0000!important}[data-theme=dark] .prompt-input-wrapper .structured-params-container{background:linear-gradient(#1f1f1f,#1f1f1f) padding-box padding-box,linear-gradient(135deg,#4285f4 0%,#06f 25%,#7b02c5 50%,#ea4335 75%,#ff7043 100%) border-box!important}[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-form-item-label>label{color:#f8fafd!important}[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-input,[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-input-number,[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-select,[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-radio-group .ant-radio-button-wrapper{color:#f8fafd!important;background-color:#ffffff0a!important;border-color:#ffffff1f!important}[data-theme=dark] .prompt-input-wrapper .structured-params-container .structured-params .ant-radio-group .ant-radio-button-wrapper.ant-radio-button-wrapper-checked{color:#fff!important;background-color:#2b83ff!important;border-color:#2b83ff!important}[data-theme=dark] .prompt-input-wrapper.prompt-input-wrapper-minimal .minimal-main-side-console-input .structured-params-container{background:0 0!important}[data-theme=dark] .prompt-input-wrapper.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-toolbar-icon-fallback,[data-theme=dark] .prompt-input-wrapper.prompt-input-wrapper-minimal .minimal-main-side-console-input .minimal-action-icon-fallback{color:#ffffffb8!important}[data-theme=dark] .prompt-input .tip-button{background-color:#ffffff14}[data-theme=dark] .prompt-input .tip-button.active{color:#fff;background-color:#2b83ff}[data-theme=dark] .prompt-input .prompt-textarea-wrapper{background-color:#ffffff0a}[data-theme=dark] .prompt-input .prompt-textarea-wrapper:hover,[data-theme=dark] .prompt-input .prompt-textarea-wrapper.focused{background-color:#ffffff14}[data-theme=dark] .prompt-input .btn-wrapper .btn-item{color:#fff;background-color:#2b83ff}[data-theme=dark] .prompt-input .btn-wrapper .btn-item:hover{background-color:#2b83ff}[data-theme=dark] .prompt-input .dropdown-content{background-color:#1f1f1f;border-color:#ffffff1f}[data-theme=dark] .prompt-input .param-label{color:#f8fafd}[data-theme=dark] .prompt-input .error-message{color:#ff4d4f}[data-theme=dark] .prompt-input .send-button-text{color:#2b83ff}[data-theme=dark] .more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-track{background:#ffffff14}[data-theme=dark] .more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] .more-apis-dropdown .ant-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.session-setup-panel{background:var(--midscene-surface,#fff);flex-direction:column;flex:1;justify-content:flex-start;align-items:center;padding:0 56px;display:flex}.session-setup-card{flex-direction:column;align-items:center;width:100%;max-width:288px;margin-top:96px;display:flex}.session-setup-logo{object-fit:contain;flex-shrink:0;width:51px;height:48px}.session-setup-title{width:240px;color:var(--midscene-text-primary,#000);text-align:center;white-space:pre-line;margin:16px 0 0;font-family:Roboto,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:18px;font-weight:600;line-height:22px}.session-setup-description{width:276px;color:var(--midscene-text-secondary,#000000b3);text-align:center;margin:14.7px 0 0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:400;line-height:20px}.session-setup-alert.ant-alert{width:100%;margin-top:16px}.session-setup-form{width:100%;margin-top:24px}.session-setup-form .ant-form-item{margin-bottom:16px}.session-setup-form .ant-form-item-label{padding-bottom:4px}.session-setup-form .ant-form-item-label>label{height:15px;color:var(--midscene-text-tertiary,#00000080);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:500;line-height:14.5px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:before{color:var(--midscene-text-tertiary,#00000080)}.session-setup-form .ant-form-item-label>label.ant-form-item-required:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{margin-right:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{margin-right:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{margin-right:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{margin-right:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{margin-right:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{margin-left:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{margin-left:2px}.session-setup-form .ant-form-item-label>label.ant-form-item-required:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{margin-left:2px}.session-setup-form .ant-select-single .ant-select-selector{background:var(--midscene-surface-muted,#f2f4f7);height:36px;box-shadow:none;border:none;border-radius:8px;align-items:center;padding:0 12px;display:flex}.session-setup-form .ant-select-single .ant-select-selector .ant-select-selection-item,.session-setup-form .ant-select-single .ant-select-selector .ant-select-selection-placeholder{color:var(--midscene-text-primary,#000);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;line-height:36px}.session-setup-form .ant-select-single .ant-select-selector .ant-select-selection-placeholder{color:var(--midscene-text-placeholder,#0006)}.session-setup-form .ant-select-arrow:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.session-setup-form .ant-select-arrow:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.session-setup-form .ant-select-arrow:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.session-setup-form .ant-select-arrow:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.session-setup-form .ant-select-arrow:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.session-setup-form .ant-select-arrow:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:12px}.session-setup-form .ant-select-arrow:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:12px}.session-setup-form .ant-select-arrow:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:12px}.session-setup-form .ant-input,.session-setup-form .ant-input-number{background:var(--midscene-surface-muted,#f2f4f7);height:36px;box-shadow:none;color:var(--midscene-text-primary,#000);border:none;border-radius:8px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px}.session-setup-form .ant-input-number-input{height:36px}.session-setup-select-icon{object-fit:contain;pointer-events:none;width:16px;height:16px}.session-setup-submit{background:var(--midscene-brand,#1979ff);color:#f2f4f7;cursor:pointer;border:0;border-radius:8px;width:100%;height:32px;margin-top:7px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-weight:500;line-height:22px;transition:opacity .2s}.session-setup-submit:hover:not(:disabled){opacity:.9}.session-setup-submit:disabled{cursor:not-allowed;opacity:.6}.platform-selector-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.platform-selector-group .ant-radio-button-wrapper{white-space:normal;background:#fff;border-radius:14px;justify-content:flex-start;align-items:flex-start;height:auto;min-height:92px;padding:14px 16px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.platform-selector-group .ant-radio-button-wrapper:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-left-width:1px}.platform-selector-group .ant-radio-button-wrapper:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-left-width:1px}.platform-selector-group .ant-radio-button-wrapper:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-left-width:1px}.platform-selector-group .ant-radio-button-wrapper:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-left-width:1px}.platform-selector-group .ant-radio-button-wrapper:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-left-width:1px}.platform-selector-group .ant-radio-button-wrapper:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-right-width:1px}.platform-selector-group .ant-radio-button-wrapper:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-right-width:1px}.platform-selector-group .ant-radio-button-wrapper:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-right-width:1px}.platform-selector-group .ant-radio-button-wrapper:before{display:none}.platform-selector-group .ant-radio-button-wrapper:hover{border-color:#1677ff;transform:translateY(-1px)}.platform-selector-group .ant-radio-button-wrapper-checked{border-color:#1677ff;box-shadow:0 10px 24px #1677ff1f}.platform-selector-card .platform-selector-title{color:#000000e0;font-size:15px;font-weight:600;line-height:1.4}.platform-selector-card .platform-selector-description{color:#00000080;margin-top:6px;font-size:12px;line-height:1.5}.session-select-option{flex-direction:column;gap:2px;line-height:1.4;display:flex}.session-select-option-label{color:#000000e0}.session-select-option-description{color:#00000073;font-size:12px}@media (max-width:640px){.platform-selector-group{grid-template-columns:1fr}}.playground-conversation-panel,.playground-conversation-body{flex-direction:column;flex:1;min-height:0;display:flex}.playground-conversation-body>.playground-container{flex:1;min-height:0}.playground-conversation-offline{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px}h3{text-transform:capitalize}.app-container{background-color:#f5f5f5;flex-direction:column;width:100%;height:100vh;display:flex}.app-content{height:100vh;overflow:hidden}.app-panel{background-color:#fff;border-radius:0;height:100%;transition:box-shadow .3s;overflow:hidden;box-shadow:0 1px 2px #0000000d}.app-panel:hover{box-shadow:0 2px 8px #00000017}.app-panel.left-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-panel.right-panel{border-radius:0;flex:1;padding-top:16px;overflow:hidden;box-shadow:-4px 0 20px #0000000a}.panel-content{flex-direction:column;height:100%;display:flex;overflow:auto}.panel-content.left-panel-content{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-content.left-panel-content .playground-panel-header{border-bottom:1px solid #0000000f;flex-shrink:0;align-items:center;height:60px;padding:0 24px;display:flex}.panel-content.left-panel-content .playground-panel-header .header-row{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.panel-content.left-panel-content .playground-panel-playground{flex-direction:column;flex:1;min-height:0;padding:0 24px;display:flex}.panel-content.left-panel-content .playground-panel-playground .playground-container{background:#fff;border:none;border-radius:8px;flex:1;overflow:hidden}.panel-content.right-panel-content{border-radius:0;padding:0 24px 24px;overflow:hidden}.server-offline-container{background:#f5f5f5;justify-content:center;align-items:center;height:100vh;display:flex}.server-offline-container .server-offline-message{background:#f2f4f7;border-radius:8px;flex-direction:column;width:100%;height:100%;padding:14px 24px 0;display:flex;box-shadow:0 2px 8px #0000000f}.server-offline-container .server-offline-message .server-offline-content{text-align:center;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;padding-top:max(200px,min(24vh,280px));display:flex}.server-offline-container .server-offline-message .server-offline-icon{width:300px;height:212px;display:inline-block;position:relative}.server-offline-container .server-offline-message .server-offline-icon .icon-background,.server-offline-container .server-offline-message .server-offline-icon .icon-foreground{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.server-offline-container .server-offline-message .server-offline-icon .icon-background{z-index:1;width:300px;height:212px}.server-offline-container .server-offline-message .server-offline-icon .icon-foreground{z-index:2;width:134px;height:101px}.server-offline-container .server-offline-message h1{color:#000;margin:0;font-size:18px;font-weight:600}.server-offline-container .server-offline-message .connection-status{text-align:center;margin-top:8px;font-size:12px}.panel-resize-handle{background-color:#f0f0f0;transition:background-color .2s;position:relative}.panel-resize-handle.horizontal{cursor:col-resize;width:1px}.panel-resize-handle.vertical{cursor:row-resize;height:1px}.panel-resize-handle:hover,.panel-resize-handle:active,.panel-resize-handle[data-resize-handle-active]{background-color:#1677ff}.clear-button-container{top:20px!important;right:-4px!important}
2
+ /*# sourceMappingURL=index.9888013b.css.map*/