dsh-contextos-devops 0.0.0-stage → 1.48.32
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/LICENSE +21 -0
- package/README.md +207 -2
- package/assets/avatar.jpg +0 -0
- package/assets/client.css +3316 -0
- package/assets/icon-180.png +0 -0
- package/build/client.mjs +64 -0
- package/client.js +7622 -0
- package/cordis.patch.yml +3 -0
- package/icon.svg +15 -0
- package/index.js +345 -0
- package/lib/base/env.js +22 -0
- package/lib/base/field.js +25 -0
- package/lib/base/http.js +140 -0
- package/lib/base/platform.js +33 -0
- package/lib/base/registry.js +186 -0
- package/lib/base/state.js +66 -0
- package/lib/base/table.js +47 -0
- package/lib/base/texttable.js +26 -0
- package/lib/base/url.js +178 -0
- package/lib/core/README.md +17 -0
- package/lib/core/apps.js +675 -0
- package/lib/core/auth.js +110 -0
- package/lib/core/avatar.js +289 -0
- package/lib/core/backup.js +105 -0
- package/lib/core/codegen.js +401 -0
- package/lib/core/copilot.js +419 -0
- package/lib/core/data.js +157 -0
- package/lib/core/device.js +148 -0
- package/lib/core/files.js +152 -0
- package/lib/core/gobuild.js +63 -0
- package/lib/core/iam.js +122 -0
- package/lib/core/identity.js +22 -0
- package/lib/core/nodes.js +627 -0
- package/lib/core/ops.js +306 -0
- package/lib/core/project.js +393 -0
- package/lib/core/spaces.js +406 -0
- package/lib/core/terminal.js +137 -0
- package/lib/core/terminal2.js +141 -0
- package/lib/core/users.js +51 -0
- package/lib/core/vocab.js +158 -0
- package/lib/misc/async.js +15 -0
- package/lib/misc/shell.js +27 -0
- package/lib/misc/static.js +33 -0
- package/locale/en.json +10 -0
- package/locale/zh.json +10 -0
- package/package.json +92 -4
- package/src/client/README.md +37 -0
- package/src/client/parts/00-prelude.js +315 -0
- package/src/client/parts/05-bootstrap.js +61 -0
- package/src/client/parts/08-store.js +85 -0
- package/src/client/parts/10-ui.js +188 -0
- package/src/client/parts/12-debug.js +361 -0
- package/src/client/parts/15-layout.js +86 -0
- package/src/client/parts/20-devworkspace.js +789 -0
- package/src/client/parts/25-editor-ui.js +28 -0
- package/src/client/parts/30-modals.js +85 -0
- package/src/client/parts/32-cards.js +176 -0
- package/src/client/parts/34-forms.js +176 -0
- package/src/client/parts/36-data.js +267 -0
- package/src/client/parts/40-project.js +430 -0
- package/src/client/parts/45-map.js +109 -0
- package/src/client/parts/46-pm.js +158 -0
- package/src/client/parts/47-three.js +324 -0
- package/src/client/parts/49-msg.js +167 -0
- package/src/client/parts/50-chat.js +1422 -0
- package/src/client/parts/51-pmselection.js +31 -0
- package/src/client/parts/52-pmdata.js +29 -0
- package/src/client/parts/55-pm.js +146 -0
- package/src/client/parts/58-config.js +381 -0
- package/src/client/parts/59-monitor.js +262 -0
- package/src/client/parts/60-page.js +1518 -0
- package/src/client/styles/kit.css +20 -0
- package/src/client/styles/main.css +3294 -0
- package/src/client/styles/tokens.css +2 -0
- package/vendor/leaflet/leaflet.css +661 -0
- package/vendor/leaflet/leaflet.js +6 -0
- package/vendor/three/three.module.js +53044 -0
- package/vendor/xterm/addon-fit.js +2 -0
- package/vendor/xterm/xterm.css +218 -0
- package/vendor/xterm/xterm.js +2 -0
|
@@ -0,0 +1,3294 @@
|
|
|
1
|
+
.cx-shell{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;background:radial-gradient(1100px 500px at 15% -10%,rgba(var(--cx-hue-rgb),.12),transparent 55%),radial-gradient(900px 400px at 95% 0%,rgba(var(--cx-green-rgb),.07),transparent 50%),var(--cx-bg);color:var(--cx-text);font-family:var(--cx-font);overflow:hidden}
|
|
2
|
+
|
|
3
|
+
.cx-shell{overflow-x:hidden}
|
|
4
|
+
.cx-chat-b,.cx-pm-side,.cx-dev-b,.cx-sel-menu,.cx-console-main,.cx-webmask{overflow-x:hidden}
|
|
5
|
+
.cx-chat,.cx-chat-body,.cx-chat-center,.cx-chat-b{overflow-x:hidden!important;min-width:0}
|
|
6
|
+
.cx-chat-b{overflow-y:auto;overscroll-behavior-x:none}
|
|
7
|
+
.cx-hint{overflow:hidden}
|
|
8
|
+
.cx-compose{overflow:visible}
|
|
9
|
+
.cx-msg-body,.cx-msg-main{min-width:0;overflow-wrap:anywhere}
|
|
10
|
+
.cx-msg pre{max-width:100%;overflow-x:auto}
|
|
11
|
+
.cx-chat-hin,.cx-compose{min-width:0}
|
|
12
|
+
.cx-shell,.cx-shell *{scrollbar-width:thin;scrollbar-color:rgba(var(--cx-hue-rgb),.22) transparent}
|
|
13
|
+
.cx-shell::-webkit-scrollbar,.cx-shell ::-webkit-scrollbar{width:8px;height:8px}
|
|
14
|
+
.cx-shell::-webkit-scrollbar-track,.cx-shell ::-webkit-scrollbar-track{background:transparent}
|
|
15
|
+
.cx-shell::-webkit-scrollbar-thumb,.cx-shell ::-webkit-scrollbar-thumb{background:rgba(var(--cx-hue-rgb),.22);border-radius:8px;border:2px solid transparent;background-clip:content-box}
|
|
16
|
+
.cx-shell::-webkit-scrollbar-thumb:hover,.cx-shell ::-webkit-scrollbar-thumb:hover{background:rgba(var(--cx-hue-rgb),.42);background-clip:content-box}
|
|
17
|
+
.cx-shell ::-webkit-scrollbar-corner{background:transparent}
|
|
18
|
+
.cx-shell[data-theme="light"]{scrollbar-color:rgba(11,127,159,.28) transparent}
|
|
19
|
+
.cx-shell[data-theme="light"] ::-webkit-scrollbar-thumb{background:rgba(11,127,159,.28);background-clip:content-box}
|
|
20
|
+
.cx-shell[data-theme="light"] ::-webkit-scrollbar-thumb:hover{background:rgba(11,127,159,.45);background-clip:content-box}
|
|
21
|
+
|
|
22
|
+
.cx-shell *{box-sizing:border-box}
|
|
23
|
+
.cx-header{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--cx-line);background:linear-gradient(180deg,rgba(9,24,38,.96),rgba(5,10,18,.9));position:relative}
|
|
24
|
+
.cx-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--cx-cyan),transparent);opacity:.55}
|
|
25
|
+
.cx-brand{display:flex;align-items:center;gap:10px;min-width:250px}
|
|
26
|
+
.cx-mark{width:28px;height:28px;border:1px solid var(--cx-cyan);transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.3),inset 0 0 12px rgba(var(--cx-hue-rgb),.12)}
|
|
27
|
+
.cx-mark i{width:8px;height:8px;background:var(--cx-cyan);box-shadow:0 0 10px var(--cx-cyan)}
|
|
28
|
+
.cx-title{font-size:var(--cx-fs-title);font-weight:800;letter-spacing:.18em;color:#eaffff}
|
|
29
|
+
.cx-sub{font-size:var(--cx-fs-body);color:var(--cx-muted);letter-spacing:.16em;margin-top:2px}
|
|
30
|
+
.cx-chips{display:flex;gap:8px;flex:1;min-width:0;flex-wrap:wrap}
|
|
31
|
+
.cx-chip{display:flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--cx-line);background:rgba(7,20,32,.75);font-size:var(--cx-fs-body);letter-spacing:.08em;color:var(--cx-muted);white-space:nowrap}
|
|
32
|
+
.cx-chip b{color:var(--cx-text);font-size:var(--cx-fs);font-weight:700}
|
|
33
|
+
.cx-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--cx-muted)}
|
|
34
|
+
.cx-chip .dot.on{background:var(--cx-green);box-shadow:0 0 8px var(--cx-green)}
|
|
35
|
+
.cx-actions{display:flex;align-items:center;gap:7px;flex:none;white-space:nowrap}
|
|
36
|
+
.cx-btn{appearance:none;border:1px solid var(--cx-line2);background:rgba(8,25,40,.9);color:var(--cx-text);font:600 var(--cx-fs)/1 var(--cx-font);padding:7px 10px;cursor:pointer;letter-spacing:.04em}
|
|
37
|
+
.cx-btn:hover{border-color:var(--cx-cyan);color:var(--cx-cyan);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.12)}
|
|
38
|
+
.cx-btn.pri{border-color:var(--cx-cyan);background:linear-gradient(135deg,rgba(var(--cx-hue-rgb),.18),rgba(24,182,216,.08));color:#dffcff}
|
|
39
|
+
.cx-btn.warn{border-color:rgba(255,180,84,.55);color:var(--cx-orange)}
|
|
40
|
+
.cx-btn.danger{border-color:rgba(255,92,122,.5);color:var(--cx-red)}
|
|
41
|
+
.cx-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
|
|
42
|
+
.cx-btn.xs{height:26px;padding:0 8px;font-size:var(--cx-fs-body);display:inline-flex;align-items:center;justify-content:center;line-height:1}
|
|
43
|
+
.cx-pipe{display:flex;align-items:center;gap:0;padding:9px 16px;border-bottom:1px solid var(--cx-line);background:rgba(5,14,24,.78);overflow:auto}
|
|
44
|
+
.cx-stage{display:flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid transparent;color:var(--cx-muted);font-size:var(--cx-fs-body);letter-spacing:.12em;white-space:nowrap}
|
|
45
|
+
.cx-stage .n{width:18px;height:18px;border:1px solid var(--cx-line2);display:grid;place-items:center;font-size:var(--cx-fs-body);color:var(--cx-muted)}
|
|
46
|
+
.cx-stage.on{color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.35);background:rgba(var(--cx-hue-rgb),.06)}
|
|
47
|
+
.cx-stage.on .n{border-color:var(--cx-cyan);color:var(--cx-cyan);box-shadow:0 0 10px rgba(var(--cx-hue-rgb),.2)}
|
|
48
|
+
.cx-stage.done{color:var(--cx-green)}
|
|
49
|
+
.cx-stage.done .n{border-color:var(--cx-green);color:var(--cx-green)}
|
|
50
|
+
.cx-arrow{color:var(--cx-line2);padding:0 6px;font-size:var(--cx-fs)}
|
|
51
|
+
.cx-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(200px,.72fr) minmax(220px,.82fr) minmax(250px,.92fr) minmax(380px,2fr);gap:10px;padding:10px 12px 0;overflow:hidden}
|
|
52
|
+
.cx-panel{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid var(--cx-line);background:linear-gradient(180deg,rgba(8,22,36,.92),rgba(6,15,25,.94));position:relative}
|
|
53
|
+
.cx-panel:before{content:"";position:absolute;left:-1px;top:-1px;width:18px;height:18px;border-left:1px solid var(--cx-cyan);border-top:1px solid var(--cx-cyan);opacity:.7}
|
|
54
|
+
.cx-ph{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid var(--cx-line);background:rgba(9,27,43,.55)}
|
|
55
|
+
.cx-ph .idx{font-size:var(--cx-fs-body);color:var(--cx-cyan);border:1px solid rgba(var(--cx-hue-rgb),.35);padding:2px 4px}
|
|
56
|
+
.cx-ph .ttl{font-size:var(--cx-fs);font-weight:800;letter-spacing:.12em;color:#c9f7ff;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
57
|
+
.cx-ph .cnt{font-size:var(--cx-fs-body);color:var(--cx-muted)}
|
|
58
|
+
.cx-tools{display:flex;align-items:center;gap:5px;padding:7px 8px;border-bottom:1px solid rgba(22,56,77,.6);flex-wrap:wrap}
|
|
59
|
+
.cx-tools-spacer{flex:1;min-width:4px}
|
|
60
|
+
.cx-tools .cx-btn{flex:none}
|
|
61
|
+
.cx-tools .cx-filter{flex:none}
|
|
62
|
+
.cx-list{flex:1;min-height:0;overflow:auto;padding:6px}
|
|
63
|
+
.cx-empty{padding:18px 14px;color:var(--cx-muted);font-size:var(--cx-fs);line-height:1.8;border:1px dashed var(--cx-line);margin:8px}
|
|
64
|
+
.cx-node{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-left:2px solid var(--cx-line2);background:rgba(7,19,31,.7);margin-bottom:5px;cursor:pointer;position:relative}
|
|
65
|
+
.cx-node:hover{background:rgba(11,35,53,.8);border-color:var(--cx-line)}
|
|
66
|
+
.cx-node.on{border-color:var(--cx-cyan);border-left-color:var(--cx-cyan);background:rgba(12,42,60,.75);box-shadow:inset 0 0 18px rgba(var(--cx-hue-rgb),.06)}
|
|
67
|
+
.cx-led{width:7px;height:7px;border-radius:50%;background:#31536a;flex:none}
|
|
68
|
+
.cx-led.on{background:var(--cx-green);box-shadow:0 0 9px var(--cx-green)}
|
|
69
|
+
.cx-led.warn{background:var(--cx-orange);box-shadow:0 0 8px var(--cx-orange)}
|
|
70
|
+
.cx-main{flex:1;min-width:0}
|
|
71
|
+
.cx-name{font-size:var(--cx-fs);font-weight:700;color:#e9fbff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
72
|
+
.cx-meta{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
73
|
+
.cx-tag{font-size:var(--cx-fs-body);padding:1px 4px;border:1px solid var(--cx-line2);color:var(--cx-muted);letter-spacing:.06em}
|
|
74
|
+
.cx-tag.cy{color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.4)}
|
|
75
|
+
.cx-tag.gr{color:var(--cx-green);border-color:rgba(var(--cx-green-rgb),.35)}
|
|
76
|
+
.cx-node-actions{display:flex;gap:5px;align-items:center;justify-content:flex-end;width:100%;margin-left:0;flex:none;margin-top:2px}
|
|
77
|
+
.cx-space-icon{width:22px;height:22px;border-radius:4px;object-fit:cover;flex:none;border:1px solid var(--cx-border);background:var(--cx-surface-2)}
|
|
78
|
+
.cx-space{padding:8px;border:1px solid rgba(22,56,77,.7);background:rgba(7,19,31,.65);margin-bottom:5px;cursor:pointer}
|
|
79
|
+
.cx-space:hover,.cx-space.on{border-color:var(--cx-cyan);background:rgba(11,35,53,.8)}
|
|
80
|
+
.cx-space .row{display:flex;align-items:center;gap:7px;min-width:0}
|
|
81
|
+
.cx-space .nm{flex:1;min-width:0;font-size:var(--cx-fs);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
82
|
+
.cx-space .sub{display:flex;gap:6px;align-items:center;margin-top:2px;font-size:var(--cx-fs-body);color:var(--cx-muted);flex-wrap:wrap}
|
|
83
|
+
.cx-app{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:8px;border-bottom:1px solid rgba(22,56,77,.55);cursor:pointer}
|
|
84
|
+
.cx-app:hover{background:rgba(11,35,53,.55)}
|
|
85
|
+
.cx-app.on{background:rgba(13,45,64,.65);outline:1px solid var(--cx-accent);outline-offset:-1px;box-shadow:none}
|
|
86
|
+
.cx-app-top{display:flex;align-items:center;gap:8px;min-width:0}
|
|
87
|
+
.cx-ai{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:6px;overflow:hidden;color:#eafcff;font:700 var(--cx-fs) var(--cx-font);border:1px solid rgba(255,255,255,.08)}
|
|
88
|
+
.cx-ai img{width:100%;height:100%;object-fit:cover;display:block}
|
|
89
|
+
.cx-app .an{font-size:var(--cx-fs);font-weight:700;color:#e9fbff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
90
|
+
.cx-app .ac{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
91
|
+
.cx-app .aa{display:flex;gap:3px;align-items:center;justify-content:flex-end;grid-column:1/-1;margin-left:auto}
|
|
92
|
+
.cx-detail{border-top:1px solid var(--cx-line);padding:8px 9px;background:rgba(5,15,25,.85)}
|
|
93
|
+
.cx-detail .dt{font-size:var(--cx-fs-body);color:var(--cx-cyan);letter-spacing:.1em;margin-bottom:4px}
|
|
94
|
+
.cx-detail .dc{font-size:var(--cx-fs-body);color:var(--cx-muted);line-height:1.7;word-break:break-all}
|
|
95
|
+
.cx-preview{height:100%;min-height:320px;position:relative;background:#02060c}
|
|
96
|
+
.cx-preview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
|
|
97
|
+
.cx-preview-bar{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;gap:5px;padding:5px 7px;background:linear-gradient(180deg,rgba(2,8,14,.92),transparent);pointer-events:none}
|
|
98
|
+
.cx-preview-bar .cx-btn{pointer-events:auto}
|
|
99
|
+
.cx-log{flex:0 0 220px;border-top:1px solid var(--cx-line);background:rgba(4,11,19,.92);display:flex;flex-direction:column;min-height:0}
|
|
100
|
+
.cx-log-h{display:flex;align-items:center;gap:8px;padding:5px 12px;border-bottom:1px solid rgba(22,56,77,.6);font-size:var(--cx-fs-body);letter-spacing:.12em;color:var(--cx-muted)}
|
|
101
|
+
.cx-log-h b{color:var(--cx-cyan);font-weight:700}
|
|
102
|
+
.cx-log-b{flex:1;overflow:auto;padding:5px 12px;font-size:var(--cx-fs-body);line-height:1.65}
|
|
103
|
+
.cx-line{display:flex;gap:8px;white-space:pre-wrap;word-break:break-all}
|
|
104
|
+
.cx-line .t{color:#436a80;flex:none}
|
|
105
|
+
.cx-line .m{color:#9fc4d6}
|
|
106
|
+
.cx-line.ok .m{color:var(--cx-green)}
|
|
107
|
+
.cx-line.err .m{color:var(--cx-red)}
|
|
108
|
+
.cx-line.run .m{color:var(--cx-orange)}
|
|
109
|
+
.cx-debug .cx-line .m{color:#7fb8d0;font-size:var(--cx-fs-body)}
|
|
110
|
+
.cx-debug .cx-line{padding:1px 0;border-bottom:1px solid rgba(22,56,77,.2)}
|
|
111
|
+
.cx-err{margin:8px 12px 0;padding:7px 9px;border:1px solid rgba(255,92,122,.5);background:rgba(255,92,122,.08);color:#ff9caf;font-size:var(--cx-fs-body);white-space:pre-wrap}
|
|
112
|
+
.cx-modal{position:fixed;inset:0;background:rgba(1,5,10,.72);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}
|
|
113
|
+
.cx-card{width:min(620px,calc(100vw - 36px));max-height:calc(100vh - 60px);overflow:auto;border:1px solid var(--cx-cyan);background:linear-gradient(180deg,#081826,#050d16);box-shadow:0 0 50px rgba(var(--cx-hue-rgb),.15);padding:16px}
|
|
114
|
+
.cx-card h2{margin:0;font-size:var(--cx-fs);letter-spacing:.14em;color:var(--cx-cyan);font-weight:800}
|
|
115
|
+
.cx-card .desc{font-size:var(--cx-fs-body);color:var(--cx-muted);line-height:1.7;margin:6px 0 12px}
|
|
116
|
+
.cx-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
|
|
117
|
+
.cx-field{display:flex;flex-direction:column;gap:4px;font-size:var(--cx-fs-body);color:var(--cx-muted);letter-spacing:.06em}
|
|
118
|
+
.cx-field.full{grid-column:1/-1}
|
|
119
|
+
.cx-input,.cx-select,.cx-area{font:var(--cx-fs)/1.5 var(--cx-font);color:var(--cx-text);background:#04101a;border:1px solid var(--cx-line2);padding:7px 8px;outline:none;width:100%}
|
|
120
|
+
.cx-input:focus,.cx-select:focus,.cx-area:focus{border-color:var(--cx-cyan);box-shadow:0 0 0 1px rgba(var(--cx-hue-rgb),.15)}
|
|
121
|
+
.cx-area{min-height:90px;resize:vertical}
|
|
122
|
+
.cx-row{display:flex;gap:6px;align-items:center}
|
|
123
|
+
.cx-table{width:100%;border-collapse:collapse;font-size:var(--cx-fs-body)}
|
|
124
|
+
.cx-table th,.cx-table td{border-bottom:1px solid rgba(22,56,77,.6);padding:4px 5px;text-align:left;color:var(--cx-muted)}
|
|
125
|
+
.cx-table th{color:var(--cx-cyan);font-weight:700}
|
|
126
|
+
.cx-foot{display:flex;gap:7px;justify-content:flex-end;margin-top:14px}
|
|
127
|
+
.cx-spin{display:inline-block;width:8px;height:8px;border:1px solid var(--cx-cyan);border-top-color:transparent;border-radius:50%;animation:cxspin .7s linear infinite}
|
|
128
|
+
@keyframes cxspin{to{transform:rotate(360deg)}}
|
|
129
|
+
.cx-chat-fab{position:fixed;right:18px;bottom:88px;z-index:260;width:52px;height:52px;border-radius:50%;border:1px solid var(--cx-cyan);background:radial-gradient(circle at 30% 20%,rgba(var(--cx-hue-rgb),.35),rgba(5,15,25,.96));color:#eaffff;font:800 var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.08em;cursor:pointer;box-shadow:0 0 24px rgba(var(--cx-hue-rgb),.28),inset 0 0 18px rgba(var(--cx-hue-rgb),.12)}
|
|
130
|
+
.cx-chat-fab:hover{box-shadow:0 0 34px rgba(var(--cx-hue-rgb),.5)}
|
|
131
|
+
.cx-chat{position:fixed;right:18px;bottom:18px;z-index:270;width:min(560px,calc(100vw - 18px));height:min(640px,calc(100vh - 30px));display:flex;flex-direction:column;border:1px solid var(--cx-cyan);background:linear-gradient(180deg,rgba(7,24,38,.97),rgba(4,11,19,.98));box-shadow:0 0 50px rgba(0,0,0,.55),0 0 30px rgba(var(--cx-hue-rgb),.12)}
|
|
132
|
+
.cx-chat.full{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;border:0;z-index:500}
|
|
133
|
+
.cx-chat.full .cx-chat-b{max-width:900px;width:calc(100% - 36px);margin:0 auto;padding:18px 0}
|
|
134
|
+
.cx-chat.full .cx-chat-i,.cx-chat.full .cx-chat-q,.cx-chat.full .cx-chat-ctx,.cx-chat.full .cx-chat-modes{width:100%;max-width:900px;margin:0 auto}
|
|
135
|
+
.cx-chat.full .cx-msg{max-width:78%;font-size:var(--cx-fs);padding:10px 12px}
|
|
136
|
+
.cx-chat.full .cx-chat-b{gap:10px}
|
|
137
|
+
.cx-chat-h{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--cx-line);background:rgba(9,30,46,.9)}
|
|
138
|
+
.cx-chat-h .t{font-size:var(--cx-fs-body);font-weight:800;letter-spacing:.14em;color:var(--cx-cyan);flex:1}
|
|
139
|
+
.cx-chat-h .x{border:0;background:transparent;color:var(--cx-muted);cursor:pointer;font-size:var(--cx-fs-title)}
|
|
140
|
+
.cx-chat-modes{display:flex;gap:3px;padding:6px 8px;border-bottom:1px solid rgba(22,56,77,.6);background:rgba(5,16,26,.8)}
|
|
141
|
+
.cx-chat-mode{flex:1;font:700 var(--cx-fs-body)/1 var(--cx-font);padding:6px 4px;border:1px solid var(--cx-line);background:transparent;color:var(--cx-muted);cursor:pointer;letter-spacing:.06em}
|
|
142
|
+
.cx-chat-mode.on{color:var(--cx-cyan);border-color:var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.08)}
|
|
143
|
+
.cx-chat-selectors{display:flex;gap:6px;padding:8px 18px;border-bottom:1px solid rgba(22,56,77,.55);background:rgba(5,15,25,.7);position:relative;z-index:3;flex-wrap:wrap}
|
|
144
|
+
.cx-chat-selectors.bottom{border-top:1px solid rgba(22,56,77,.55);border-bottom:0;padding:7px 10px;background:rgba(4,12,21,.88);flex:none}
|
|
145
|
+
.cx-chat.full .cx-chat-selectors.bottom{width:100%;max-width:900px;margin:0 auto}
|
|
146
|
+
.cx-sel{position:relative;flex:1;min-width:125px}
|
|
147
|
+
.cx-sel-btn{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 10px;align-items:center;gap:5px;padding:7px 8px;border:1px solid var(--cx-line);background:rgba(7,20,32,.8);color:var(--cx-text);font:var(--cx-fs-body)/1.3 var(--cx-font);cursor:pointer;text-align:left}
|
|
148
|
+
.cx-sel-btn:hover,.cx-sel-btn.on{border-color:var(--cx-cyan);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.1)}
|
|
149
|
+
.cx-sel-btn .k{font-size:var(--cx-fs-body);color:var(--cx-cyan);letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis}
|
|
150
|
+
.cx-sel-btn .v{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e9fbff;font-size:var(--cx-fs-body)}
|
|
151
|
+
.cx-sel-btn .a{color:var(--cx-muted);font-size:var(--cx-fs-body)}
|
|
152
|
+
.cx-sel-menu{position:absolute;left:0;right:0;top:100%;z-index:500;margin-top:4px;max-height:260px;overflow:auto;border:1px solid var(--cx-cyan);background:#071522;box-shadow:0 12px 36px rgba(0,0,0,.55)}
|
|
153
|
+
.cx-sel-item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(22,56,77,.5);background:transparent;color:var(--cx-text);padding:7px 9px;cursor:pointer;font:var(--cx-fs-body)/1.4 var(--cx-font)}
|
|
154
|
+
.cx-sel-item:hover{background:rgba(var(--cx-hue-rgb),.1)}
|
|
155
|
+
.cx-sel-item.on{background:rgba(var(--cx-hue-rgb),.12);color:var(--cx-cyan)}
|
|
156
|
+
.cx-sel-item .s{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
157
|
+
.cx-chat-ctx{padding:5px 10px;border-bottom:1px solid rgba(22,56,77,.6);font-size:var(--cx-fs-body);color:var(--cx-muted);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,14,24,.7)}
|
|
158
|
+
.cx-chat-b{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:7px}
|
|
159
|
+
.cx-msg{max-width:92%;padding:7px 9px;font-size:var(--cx-fs);line-height:1.65;border:1px solid var(--cx-line);background:rgba(9,27,42,.8);color:#c7edf8;white-space:pre-wrap}
|
|
160
|
+
.cx-msg.ai{border-left:2px solid var(--cx-cyan);align-self:flex-start}
|
|
161
|
+
.cx-msg.user{align-self:flex-end;border-color:rgba(var(--cx-green-rgb),.4);background:rgba(8,35,31,.75);color:#c9ffe9}
|
|
162
|
+
.cx-msg.sys{align-self:center;font-size:var(--cx-fs-body);color:var(--cx-muted);border-color:transparent;background:transparent;padding:2px}
|
|
163
|
+
.cx-chat-q{display:flex;gap:5px;flex-wrap:wrap;padding:7px 9px;border-top:1px solid rgba(22,56,77,.6)}
|
|
164
|
+
.cx-chat-q button{font-size:var(--cx-fs-body)}
|
|
165
|
+
.cx-chat-i{display:flex;gap:5px;padding:8px;border-top:1px solid var(--cx-line);background:rgba(4,12,20,.9)}
|
|
166
|
+
.cx-chat-i input{flex:1;min-width:0}
|
|
167
|
+
.cx-chat-i button{flex:none}
|
|
168
|
+
.cx-official{border-top:1px solid var(--cx-line);padding:9px 10px;background:rgba(4,14,24,.75)}
|
|
169
|
+
.cx-official .oh{font-size:var(--cx-fs-body);letter-spacing:.12em;color:var(--cx-cyan);margin-bottom:6px}
|
|
170
|
+
.cx-official label{display:flex;align-items:center;gap:6px;font-size:var(--cx-fs-body);color:var(--cx-muted);padding:3px 0;cursor:pointer}
|
|
171
|
+
.cx-official input{accent-color:var(--cx-cyan)}
|
|
172
|
+
.cx-avatar-list{display:flex;flex-direction:column;gap:5px;max-height:240px;overflow:auto;margin-bottom:10px}
|
|
173
|
+
.cx-avatar{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--cx-line);background:rgba(7,19,31,.65);cursor:pointer}
|
|
174
|
+
.cx-avatar.on{border-color:var(--cx-cyan);box-shadow:inset 0 0 14px rgba(var(--cx-hue-rgb),.08)}
|
|
175
|
+
.cx-avatar .an{flex:1;min-width:0;font-size:var(--cx-fs);font-weight:700;color:#e9fbff}
|
|
176
|
+
.cx-avatar .ad{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px}
|
|
177
|
+
.cx-init{position:fixed;inset:0;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:26px 16px;overflow:hidden;background:radial-gradient(900px 520px at 50% 16%,rgba(var(--cx-hue-rgb),.20),transparent 62%),radial-gradient(700px 420px at 82% 92%,rgba(var(--cx-green-rgb),.14),transparent 62%),linear-gradient(180deg,#03070d,#04101a 58%,#02060b)}
|
|
178
|
+
.cx-init-grid{position:absolute;left:-20%;right:-20%;top:-10%;bottom:-25%;background-image:linear-gradient(rgba(var(--cx-hue-rgb),.28) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--cx-hue-rgb),.28) 1px,transparent 1px);background-size:48px 48px;transform:perspective(600px) rotateX(58deg) scale(1.35);transform-origin:50% 100%;animation:cx-init-grid 12s linear infinite;-webkit-mask-image:radial-gradient(ellipse at 50% 78%,#000 0%,rgba(0,0,0,.55) 45%,transparent 72%);mask-image:radial-gradient(ellipse at 50% 78%,#000 0%,rgba(0,0,0,.55) 45%,transparent 72%)}
|
|
179
|
+
@keyframes cx-init-grid{from{background-position:0 0}to{background-position:0 44px}}
|
|
180
|
+
.cx-init-ring{position:absolute;width:820px;height:820px;border-radius:50%;background:conic-gradient(from 0deg,rgba(var(--cx-hue-rgb),0),rgba(var(--cx-hue-rgb),.5),rgba(var(--cx-green-rgb),.35),rgba(var(--cx-hue-rgb),0));filter:blur(42px);opacity:.8;animation:cx-init-spin 18s linear infinite}
|
|
181
|
+
.cx-init:before{content:"";position:absolute;left:0;right:0;top:72%;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--cx-hue-rgb),.85),transparent);box-shadow:0 0 34px rgba(var(--cx-hue-rgb),.6);opacity:.55}
|
|
182
|
+
.cx-init:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}
|
|
183
|
+
@keyframes cx-init-spin{to{transform:rotate(360deg)}}
|
|
184
|
+
.cx-init-scan{position:absolute;left:0;right:0;height:160px;background:linear-gradient(180deg,transparent,rgba(var(--cx-hue-rgb),.09),transparent);animation:cx-init-scan 6.5s ease-in-out infinite}
|
|
185
|
+
@keyframes cx-init-scan{0%{top:-25%}50%{top:85%}100%{top:-25%}}
|
|
186
|
+
.cx-init-world{margin:0 auto;flex:none;animation:cxWorldIn .9s ease both}
|
|
187
|
+
.cx-init .cx-init-card{max-height:calc(100vh - 300px);flex:none}
|
|
188
|
+
@media(max-height:880px){.cx-init-world .cx-world-name{font-size:clamp(20px,3.2vw,34px)}.cx-init .cx-init-card{max-height:calc(100vh - 240px)}}
|
|
189
|
+
.cx-init-card{position:relative;width:min(620px,calc(100vw - 40px));max-height:calc(100vh - 60px);overflow:auto;padding:22px 24px 18px;border:1px solid rgba(var(--cx-hue-rgb),.55);background:linear-gradient(180deg,rgba(6,20,32,.93),rgba(3,10,18,.97));box-shadow:inset 0 0 0 1px rgba(var(--cx-hue-rgb),.12),0 0 60px rgba(var(--cx-hue-rgb),.25),0 30px 80px rgba(0,0,0,.6);clip-path:polygon(0 14px,14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px))}
|
|
190
|
+
.cx-init-card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--cx-cyan),transparent);animation:cx-init-sweep 3.2s linear infinite}
|
|
191
|
+
@keyframes cx-init-sweep{0%{opacity:.15;transform:translateX(-45%)}50%{opacity:1}100%{opacity:.15;transform:translateX(45%)}}
|
|
192
|
+
.cx-init-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}
|
|
193
|
+
.cx-init-badge{width:40px;height:40px;flex:none;display:grid;place-items:center;border:1px solid var(--cx-cyan);color:var(--cx-cyan);font:800 var(--cx-fs-body) var(--cx-mono);letter-spacing:.08em;box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.45),inset 0 0 14px rgba(var(--cx-hue-rgb),.2);animation:cx-init-pulse 2.4s ease-in-out infinite}
|
|
194
|
+
@keyframes cx-init-pulse{0%,100%{box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.35),inset 0 0 12px rgba(var(--cx-hue-rgb),.15)}50%{box-shadow:0 0 28px rgba(var(--cx-hue-rgb),.75),inset 0 0 18px rgba(var(--cx-hue-rgb),.3)}}
|
|
195
|
+
.cx-init-card h2{margin:0;font-size:var(--cx-fs-title);letter-spacing:.2em;color:#eaffff;text-shadow:0 0 12px rgba(var(--cx-hue-rgb),.65)}
|
|
196
|
+
.cx-init-card .desc{font-size:var(--cx-fs-body);color:#8fb8c9;margin-top:4px;line-height:1.5}
|
|
197
|
+
.cx-init-progress{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font:var(--cx-fs-body) var(--cx-mono);color:#8fb8c9}
|
|
198
|
+
.cx-init-progress .track{flex:1;height:4px;background:rgba(var(--cx-hue-rgb),.12);border-radius:2px;overflow:hidden}
|
|
199
|
+
.cx-init-progress .bar{height:100%;background:linear-gradient(90deg,var(--cx-cyan),var(--cx-green));box-shadow:0 0 10px rgba(var(--cx-hue-rgb),.7);transition:width .4s ease}
|
|
200
|
+
.cx-init-step{display:flex;gap:10px;align-items:flex-start;padding:9px 2px;border-bottom:1px dashed rgba(22,56,77,.55);font-size:var(--cx-fs);color:#8fb8c9;font-family:var(--cx-mono)}
|
|
201
|
+
.cx-init-step .idx{color:rgba(var(--cx-hue-rgb),.5);margin-right:6px;font-size:var(--cx-fs-body)}
|
|
202
|
+
.cx-init-step .st{width:16px;flex:none;text-align:center}
|
|
203
|
+
.cx-init-step.done{color:var(--cx-green);text-shadow:0 0 8px rgba(var(--cx-green-rgb),.35)}
|
|
204
|
+
.cx-init-step.run{color:var(--cx-orange);text-shadow:0 0 8px rgba(255,180,84,.4)}
|
|
205
|
+
.cx-init-step.run .st{animation:cx-init-blink 1s steps(2) infinite}
|
|
206
|
+
@keyframes cx-init-blink{50%{opacity:.25}}
|
|
207
|
+
.cx-init-step.err{color:var(--cx-red)}
|
|
208
|
+
.cx-init-step .sd{font-size:var(--cx-fs-body);color:#7fa6b8;margin-top:2px;white-space:pre-wrap}
|
|
209
|
+
.cx-init .cx-form label{color:#8fb8c9}
|
|
210
|
+
.cx-init .cx-err{color:#ff8fa3}
|
|
211
|
+
.cx-init .cx-btn{background:rgba(8,26,40,.92);border:1px solid rgba(var(--cx-hue-rgb),.35);color:#cfeff9}
|
|
212
|
+
.cx-init .cx-btn:hover{border-color:var(--cx-cyan);color:#eaffff;box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.3)}
|
|
213
|
+
.cx-init .cx-btn.pri{background:linear-gradient(90deg,rgba(10,108,134,.95),rgba(10,143,106,.95));border-color:var(--cx-cyan);color:#eaffff;box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.35)}
|
|
214
|
+
.cx-init .cx-btn.pri:hover{box-shadow:0 0 26px rgba(var(--cx-hue-rgb),.6)}
|
|
215
|
+
.cx-init .cx-form .cx-input{background:rgba(4,16,26,.9);border-color:rgba(var(--cx-hue-rgb),.28);color:#e6fbff}
|
|
216
|
+
.cx-init .cx-form .cx-input:focus{border-color:var(--cx-cyan);box-shadow:0 0 0 2px rgba(var(--cx-hue-rgb),.15)}
|
|
217
|
+
.cx-init .cx-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
|
|
218
|
+
.cx-menu-wrap{position:relative;display:inline-flex;flex:none}
|
|
219
|
+
.cx-menu{position:absolute;right:0;top:100%;z-index:400;min-width:145px;padding:4px;background:#081826;border:1px solid var(--cx-line2);box-shadow:0 8px 24px rgba(0,0,0,.45)}
|
|
220
|
+
.cx-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;color:var(--cx-text);font:var(--cx-fs-body)/1.5 var(--cx-font);padding:5px 8px;cursor:pointer;white-space:nowrap}
|
|
221
|
+
.cx-menu-item .mi{width:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;opacity:.85}
|
|
222
|
+
.cx-menu-item:hover{background:rgba(var(--cx-hue-rgb),.12);color:var(--cx-cyan)}
|
|
223
|
+
.cx-devices{display:flex;flex-direction:column;gap:6px}
|
|
224
|
+
.cx-adapter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
|
|
225
|
+
.cx-device{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--cx-line);background:rgba(7,19,31,.65)}
|
|
226
|
+
.cx-device .dn{flex:1;min-width:0;font-size:var(--cx-fs);font-weight:700;color:#e9fbff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
227
|
+
.cx-device .dd{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
228
|
+
.cx-store{display:flex;align-items:center;gap:8px;padding:7px 8px;border-bottom:1px solid rgba(22,56,77,.55);cursor:pointer}
|
|
229
|
+
.cx-store:hover{background:rgba(11,35,53,.55)}
|
|
230
|
+
.cx-store .si{width:24px;height:24px;border:1px solid var(--cx-line2);display:grid;place-items:center;font-size:var(--cx-fs-body);color:var(--cx-cyan);flex:none}
|
|
231
|
+
.cx-store .sn{font-size:var(--cx-fs);font-weight:700;color:#e9fbff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
232
|
+
.cx-store .ss{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
233
|
+
.cx-web{height:100%;min-height:320px;display:flex;flex-direction:column}
|
|
234
|
+
.cx-webtabs{display:flex;align-items:stretch;gap:3px;flex-wrap:nowrap;overflow:visible;border-bottom:1px solid var(--cx-line);flex:none;padding:4px 4px 0;min-height:34px}
|
|
235
|
+
.cx-webtab{position:relative;display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;height:28px;min-width:84px;max-width:220px;padding:0 8px;border:1px solid var(--cx-line);border-radius:5px 5px 0 0;background:rgba(7,19,31,.85);color:var(--cx-muted);font-size:var(--cx-fs-body);cursor:pointer;white-space:nowrap;box-sizing:border-box}
|
|
236
|
+
.cx-webtab>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
|
|
237
|
+
.cx-webtab .cx-menu-wrap{position:relative;margin-left:auto;flex:none}
|
|
238
|
+
.cx-webtab .cx-menu-wrap button{width:20px;height:20px;padding:0;font-size:var(--cx-fs);display:grid;place-items:center}
|
|
239
|
+
.cx-webtab .cx-menu{top:100%;right:0;left:auto;z-index:900}
|
|
240
|
+
.cx-webtab .x{width:18px;height:18px;display:grid;place-items:center}
|
|
241
|
+
.cx-webtab.on{color:var(--cx-cyan);border-color:var(--cx-cyan);background:rgba(10,32,48,.95)}
|
|
242
|
+
.cx-webtab .x{border:0;background:transparent;color:var(--cx-muted);cursor:pointer;padding:0 2px;font-size:var(--cx-fs)}
|
|
243
|
+
.cx-webtab .x:hover{color:var(--cx-red)}
|
|
244
|
+
.cx-webframe{flex:1;min-height:0;position:relative;background:#02060c}
|
|
245
|
+
.cx-webframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;opacity:0;pointer-events:none;transition:opacity .12s ease}
|
|
246
|
+
.cx-webframe iframe.on{opacity:1;pointer-events:auto}
|
|
247
|
+
.cx-webmask{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:var(--cx-surface-1);color:var(--cx-text-faint);font:var(--cx-fs)/1 var(--cx-font);letter-spacing:.14em}
|
|
248
|
+
.cx-webframe .cx-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
|
|
249
|
+
.cx-chat.full{background:radial-gradient(1200px 600px at 20% -10%,rgba(var(--cx-hue-rgb),.16),transparent 60%),radial-gradient(900px 500px at 90% 0%,rgba(var(--cx-green-rgb),.08),transparent 55%),#040a12}
|
|
250
|
+
.cx-chat.full:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(var(--cx-hue-rgb),.045) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--cx-hue-rgb),.045) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 70%)}
|
|
251
|
+
.cx-chat-h{position:relative;z-index:2;padding:12px 18px;background:rgba(5,14,24,.72);backdrop-filter:blur(12px)}
|
|
252
|
+
.cx-chat-hin{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:1080px;margin:0 auto;min-width:0}
|
|
253
|
+
.cx-chat-copy{min-width:0;flex:1}
|
|
254
|
+
.cx-chat-brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
|
|
255
|
+
.cx-chat-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
256
|
+
.cx-chat-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
257
|
+
.cx-chat-orb{width:26px;height:26px;border-radius:50%;background:conic-gradient(from 0deg,var(--cx-cyan),var(--cx-green),var(--cx-cyan));box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.5);position:relative;flex:none}
|
|
258
|
+
.cx-chat-orb:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#06121e}
|
|
259
|
+
.cx-chat-title{font-size:var(--cx-fs);font-weight:800;letter-spacing:.16em;color:#eaffff}
|
|
260
|
+
.cx-chat-sub{font-size:var(--cx-fs-body);color:var(--cx-muted);margin-top:2px;letter-spacing:.08em}
|
|
261
|
+
.cx-chat-actions{display:flex;gap:6px;align-items:center}
|
|
262
|
+
.cx-city3d{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 50% 30%,#03111d,#01050a 70%)}
|
|
263
|
+
.cx-city-labels{position:absolute;left:18px;bottom:18px;display:flex;gap:6px;flex-wrap:wrap;z-index:2;pointer-events:none}
|
|
264
|
+
.cx-city-labels span{font-size:var(--cx-fs-body);letter-spacing:.12em;color:rgba(143,232,255,.72);border:1px solid rgba(var(--cx-hue-rgb),.25);background:rgba(3,14,24,.55);padding:3px 6px;border-radius:3px}
|
|
265
|
+
.cx-city3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;opacity:.92}
|
|
266
|
+
.cx-tech-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.62}
|
|
267
|
+
.cx-tech-bg svg{width:100%;height:100%}
|
|
268
|
+
.cx-chat-body{position:relative;z-index:1}
|
|
269
|
+
.cx-world{max-width:900px;margin:14px auto 0;text-align:center;position:relative;z-index:1;pointer-events:none;animation:cxWorldIn .9s ease both}
|
|
270
|
+
.cx-world:before{content:"";position:absolute;left:50%;top:-30px;width:min(940px,94vw);height:280px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(var(--cx-hue-rgb),.20),rgba(var(--cx-green-rgb),.08) 45%,transparent 72%);z-index:-1;pointer-events:none}
|
|
271
|
+
.cx-world.gone{display:none}
|
|
272
|
+
.cx-world-kicker{font:var(--cx-fs-body) var(--cx-mono);letter-spacing:.55em;color:var(--cx-cyan);opacity:.75}
|
|
273
|
+
.cx-world-name{margin:6px 0 8px;font-size:clamp(26px,4.6vw,52px);font-weight:800;letter-spacing:.1em;line-height:1.1;background:linear-gradient(90deg,#8ff5ff,var(--cx-cyan) 32%,var(--cx-green) 68%,#b7ffe6);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px rgba(var(--cx-hue-rgb),.45));animation:cxWorldGlow 4.5s ease-in-out infinite}
|
|
274
|
+
@keyframes cxWorldGlow{0%,100%{filter:drop-shadow(0 0 16px rgba(var(--cx-hue-rgb),.32))}50%{filter:drop-shadow(0 0 34px rgba(var(--cx-hue-rgb),.7))}}
|
|
275
|
+
@keyframes cxWorldIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
|
|
276
|
+
.cx-world-sub{font-size:var(--cx-fs);letter-spacing:.34em;color:var(--cx-text-dim)}
|
|
277
|
+
.cx-world-line{width:min(540px,82%);height:1px;margin:14px auto 0;background:linear-gradient(90deg,transparent,var(--cx-cyan),transparent);box-shadow:0 0 20px rgba(var(--cx-hue-rgb),.65)}
|
|
278
|
+
.cx-shell[data-theme="light"] .cx-world-name{background:linear-gradient(90deg,#0a6d8f,#0b7f9f 32%,#0a7a4a 68%,#0a5f7d);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 12px rgba(10,109,143,.25))}
|
|
279
|
+
.cx-shell[data-theme="light"] .cx-world-sub{color:#3d6678}
|
|
280
|
+
.cx-shell[data-theme="light"] .cx-world-line{background:linear-gradient(90deg,transparent,#0b7f9f,transparent);box-shadow:0 0 14px rgba(11,127,159,.35)}
|
|
281
|
+
.cx-hero{display:flex;align-items:center;justify-content:center;gap:22px;text-align:left;padding:26px 12px 18px;max-width:900px;margin:0 auto;position:relative;z-index:1}
|
|
282
|
+
.cx-portrait-stage{position:relative;width:100%;perspective:900px;transform-style:preserve-3d}
|
|
283
|
+
.cx-portrait-depth{position:absolute;inset:4% 3% 2%;transform:translateZ(-26px) scale(1.06);filter:blur(12px);opacity:.55;border-radius:48% 48% 42% 42% / 32% 32% 18% 18%;overflow:hidden}
|
|
284
|
+
.cx-portrait-depth img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:saturate(1.3) brightness(.7)}
|
|
285
|
+
.cx-portrait-floor{position:absolute;left:8%;right:8%;bottom:-4%;height:18%;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--cx-hue-rgb),.35),transparent 70%);filter:blur(8px);transform:rotateX(70deg)}
|
|
286
|
+
.cx-portrait-ring{position:absolute;left:50%;bottom:-2%;width:88%;height:16%;transform:translateX(-50%) rotateX(72deg);border:1px solid rgba(var(--cx-hue-rgb),.55);border-radius:50%;box-shadow:0 0 22px rgba(var(--cx-hue-rgb),.35),inset 0 0 18px rgba(var(--cx-hue-rgb),.2);animation:cxRing 5s ease-in-out infinite}
|
|
287
|
+
.cx-avatar3d{position:relative;width:100%;aspect-ratio:1/1.08;cursor:grab;overflow:hidden;border-radius:14px;background:radial-gradient(circle at 50% 35%,rgba(var(--cx-hue-rgb),.1),transparent 65%)}
|
|
288
|
+
.cx-avatar3d:active{cursor:grabbing}
|
|
289
|
+
.cx-avatar3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
|
|
290
|
+
.cx-avatar-ghost{position:absolute;inset:2%;overflow:hidden;border-radius:48% 48% 42% 42% / 32% 32% 18% 18%;opacity:.22;filter:blur(3px) hue-rotate(35deg) saturate(1.6);transform:translateZ(-34px) scale(1.07)}
|
|
291
|
+
.cx-avatar-ghost img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
|
|
292
|
+
.cx-avatar-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(var(--cx-hue-rgb),.35);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) rotateX(72deg)}
|
|
293
|
+
.cx-avatar-ring.r1{width:88%;height:88%;animation:cxRingSpin 14s linear infinite}
|
|
294
|
+
.cx-avatar-ring.r2{width:74%;height:74%;border-color:rgba(var(--cx-green-rgb),.28);animation:cxRingSpin 9s linear infinite reverse}
|
|
295
|
+
.cx-avatar-ring.r3{width:100%;height:100%;border-style:dashed;opacity:.35;animation:cxRingSpin 22s linear infinite}
|
|
296
|
+
.cx-avatar-hud{position:absolute;left:7px;right:7px;top:7px;display:flex;justify-content:space-between;font-size:var(--cx-fs-body);letter-spacing:.1em;color:rgba(173,252,255,.8);text-shadow:0 0 8px rgba(var(--cx-hue-rgb),.6);pointer-events:none}
|
|
297
|
+
.cx-avatar-coords{position:absolute;left:8px;bottom:38px;font-size:var(--cx-fs-body);color:rgba(143,232,255,.65);letter-spacing:.08em;pointer-events:none}
|
|
298
|
+
.cx-avatar-wave{position:absolute;left:8px;bottom:10px;display:flex;gap:2px;align-items:flex-end;height:18px;pointer-events:none}
|
|
299
|
+
.cx-avatar-wave i{display:block;width:2px;height:4px;background:linear-gradient(180deg,#6ff7ff,var(--cx-green));animation:cxWave 1.1s ease-in-out infinite alternate;border-radius:1px}
|
|
300
|
+
.cx-avatar-particles{position:absolute;inset:0;pointer-events:none}
|
|
301
|
+
.cx-avatar-particles i{position:absolute;width:2px;height:2px;border-radius:50%;background:#7ff7ff;box-shadow:0 0 7px var(--cx-cyan);animation:cxParticle 4s ease-in-out infinite}
|
|
302
|
+
.cx-avatar-pulse{position:absolute;inset:18%;border:2px solid rgba(111,247,255,.8);border-radius:50%;pointer-events:none;animation:cxPulseRing .8s ease-out forwards}
|
|
303
|
+
@keyframes cxRingSpin{to{transform:translate(-50%,-50%) rotateX(72deg) rotateZ(360deg)}}
|
|
304
|
+
@keyframes cxWave{0%{height:3px;opacity:.45}100%{height:17px;opacity:1}}
|
|
305
|
+
@keyframes cxParticle{0%,100%{opacity:.15;transform:translateY(0)}50%{opacity:.9;transform:translateY(-8px)}}
|
|
306
|
+
@keyframes cxPulseRing{0%{transform:scale(.7);opacity:.9}100%{transform:scale(1.35);opacity:0}}
|
|
307
|
+
.cx-avatar3d-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .08s linear;border-radius:48% 48% 42% 42% / 32% 32% 18% 18%;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.55),0 0 30px rgba(var(--cx-hue-rgb),.18);border:1px solid rgba(var(--cx-hue-rgb),.35)}
|
|
308
|
+
.cx-avatar3d-inner img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;filter:saturate(1.05) contrast(1.04)}
|
|
309
|
+
.cx-avatar-halo{position:absolute;inset:-6% -12% 12%;border:5px solid rgba(181,255,255,.75);border-radius:50%;filter:blur(1px) drop-shadow(0 0 16px rgba(var(--cx-hue-rgb),.6));opacity:.8;pointer-events:none}
|
|
310
|
+
.cx-avatar-base{position:absolute;left:10%;right:10%;bottom:-3%;height:14%;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--cx-hue-rgb),.4),transparent 70%);filter:blur(5px);pointer-events:none}
|
|
311
|
+
.cx-avatar-scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(var(--cx-hue-rgb),.14) 48%,transparent 55%);animation:cxScan 6s linear infinite}
|
|
312
|
+
.cx-tech-portrait{position:relative;width:100%;aspect-ratio:152/194;border-radius:48% 48% 42% 42% / 32% 32% 18% 18%;overflow:hidden;border:1px solid rgba(var(--cx-hue-rgb),.35);box-shadow:0 0 34px rgba(var(--cx-hue-rgb),.28),inset 0 0 30px rgba(0,0,0,.35);background:#04121d}
|
|
313
|
+
.cx-tech-portrait{transform:rotateY(-7deg) rotateX(2deg) translateZ(18px);transform-style:preserve-3d;animation:cx3dFloat 6s ease-in-out infinite;box-shadow:-12px 14px 32px rgba(0,0,0,.55),0 0 34px rgba(var(--cx-hue-rgb),.28)}
|
|
314
|
+
.cx-tech-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:saturate(1.12) contrast(1.06) brightness(1.04);-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}
|
|
315
|
+
.cx-portrait-halo{position:absolute;inset:-12% -22% 8%;border:6px solid rgba(181,255,255,.8);border-radius:50%;filter:blur(1px) drop-shadow(0 0 16px rgba(var(--cx-hue-rgb),.65));opacity:.85;pointer-events:none}
|
|
316
|
+
.cx-portrait-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(3,14,24,.96) 0 6%,transparent 16%),linear-gradient(270deg,rgba(3,14,24,.95) 0 4%,transparent 14%),linear-gradient(0deg,rgba(3,12,20,.92) 0 5%,transparent 24%)}
|
|
317
|
+
.cx-portrait-scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(var(--cx-hue-rgb),.12) 48%,transparent 55%);animation:cxScan 6s linear infinite}
|
|
318
|
+
@keyframes cxScan{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}
|
|
319
|
+
@keyframes cx3dFloat{0%,100%{transform:rotateY(-7deg) rotateX(2deg) translateZ(18px) translateY(0)}50%{transform:rotateY(5deg) rotateX(-1deg) translateZ(24px) translateY(-7px)}}
|
|
320
|
+
@keyframes cxRing{0%,100%{opacity:.5;transform:translateX(-50%) rotateX(72deg) scale(.96)}50%{opacity:1;transform:translateX(-50%) rotateX(72deg) scale(1.05)}}
|
|
321
|
+
.cx-hero-avatar{width:clamp(120px,16vw,190px);flex:none;filter:drop-shadow(0 0 24px rgba(var(--cx-hue-rgb),.32));animation:cxFloat 5s ease-in-out infinite}
|
|
322
|
+
.cx-hero-avatar svg{display:block;width:100%;height:auto}
|
|
323
|
+
.cx-hero-copy{min-width:0;flex:1}
|
|
324
|
+
.cx-hero-title{text-align:left}
|
|
325
|
+
.cx-hero-sub{text-align:left;max-width:600px}
|
|
326
|
+
.cx-empty-hint{margin-top:12px;padding:7px 10px;border:1px dashed rgba(var(--cx-hue-rgb),.3);background:rgba(5,18,30,.55);color:#7fa8bb;font-size:var(--cx-fs-body);letter-spacing:.04em;border-radius:6px;display:inline-block}
|
|
327
|
+
.cx-anime-eyes{transform-box:fill-box;transform-origin:center;animation:cxBlink 5.5s infinite}
|
|
328
|
+
@keyframes cxBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
|
|
329
|
+
.cx-dash{animation:cxDash 12s linear infinite}
|
|
330
|
+
.cx-pulse{animation:cxPulse 3s ease-in-out infinite}
|
|
331
|
+
@keyframes cxDash{to{stroke-dashoffset:-120}}
|
|
332
|
+
@keyframes cxPulse{0%,100%{opacity:.3}50%{opacity:1}}
|
|
333
|
+
@keyframes cxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
|
|
334
|
+
@media(max-width:760px){.cx-hero{flex-direction:column;text-align:center;gap:8px}.cx-hero-copy{text-align:center}.cx-hero-title,.cx-hero-sub{text-align:center}.cx-hero-avatar{width:120px}.cx-tech-bg{opacity:.4}}
|
|
335
|
+
|
|
336
|
+
.cx-hero-kicker{font-size:var(--cx-fs-body);letter-spacing:.22em;color:var(--cx-cyan);margin-bottom:10px}
|
|
337
|
+
.cx-hero-title{font-size:clamp(22px,3.2vw,38px);line-height:1.2;font-weight:900;letter-spacing:.02em;background:linear-gradient(135deg,#eaffff,var(--cx-cyan) 55%,var(--cx-green));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(var(--cx-hue-rgb),.12)}
|
|
338
|
+
.cx-hero-sub{font-size:var(--cx-fs);line-height:1.8;color:#8db5c8;margin-top:10px}
|
|
339
|
+
.cx-msg{display:flex;gap:8px;align-items:flex-start;max-width:94%;padding:9px 11px;border-radius:14px;border:1px solid rgba(30,70,92,.75);background:linear-gradient(135deg,rgba(9,28,44,.92),rgba(6,17,28,.92));box-shadow:0 8px 26px rgba(0,0,0,.18);white-space:normal}
|
|
340
|
+
.cx-msg.ai{border-left:2px solid var(--cx-cyan)}
|
|
341
|
+
.cx-msg.user{align-self:flex-end;flex-direction:row-reverse;border-color:rgba(var(--cx-green-rgb),.35);background:linear-gradient(135deg,rgba(8,38,33,.9),rgba(6,20,20,.92))}
|
|
342
|
+
.cx-msg-avatar{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:var(--cx-fs-body);font-weight:800;flex:none;color:#041018;background:linear-gradient(135deg,var(--cx-cyan),var(--cx-green))}
|
|
343
|
+
.cx-msg.user .cx-msg-avatar{background:linear-gradient(135deg,var(--cx-green),#9bffd0);color:#042015}
|
|
344
|
+
.cx-msg-body{flex:1;min-width:0;white-space:normal;line-height:1.7}
|
|
345
|
+
.cx-msg.sys{max-width:none;align-self:center;border:0;background:transparent;box-shadow:none;color:var(--cx-muted);font-size:var(--cx-fs-body);padding:3px}
|
|
346
|
+
.cx-chat.full .cx-msg{max-width:82%}
|
|
347
|
+
.cx-suggest{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-width:1080px;width:100%;margin:8px auto 0;padding:0 10px}
|
|
348
|
+
.cx-suggest button{text-align:left;padding:10px 11px;border:1px solid rgba(30,70,92,.8);background:linear-gradient(135deg,rgba(10,32,49,.8),rgba(7,19,31,.8));color:#c9edf8;font:var(--cx-fs)/1.5 var(--cx-font);cursor:pointer;border-radius:10px;transition:.15s}
|
|
349
|
+
.cx-suggest button:hover{border-color:var(--cx-cyan);color:var(--cx-cyan);transform:translateY(-1px);box-shadow:0 8px 22px rgba(var(--cx-hue-rgb),.1)}
|
|
350
|
+
.cx-chat.full .cx-chat-i{background:rgba(5,15,25,.9);border:1px solid rgba(var(--cx-hue-rgb),.28);border-radius:14px;padding:7px;margin-top:8px;box-shadow:0 0 30px rgba(var(--cx-hue-rgb),.08)}
|
|
351
|
+
.cx-chat.full .cx-chat-i .cx-input{height:38px;font-size:var(--cx-fs);border:0;background:transparent}
|
|
352
|
+
.cx-chat.full .cx-chat-i .cx-btn{padding:9px 16px}
|
|
353
|
+
.cx-compose{width:calc(100% - 36px);max-width:1080px;margin:8px auto 18px;border:1px solid rgba(var(--cx-hue-rgb),.28);border-radius:16px;background:rgba(5,15,25,.92);box-shadow:0 0 32px rgba(var(--cx-hue-rgb),.08),inset 0 0 20px rgba(var(--cx-hue-rgb),.03);flex:none;position:relative}
|
|
354
|
+
.cx-compose-input{display:block;width:100%;min-height:84px;box-sizing:border-box;resize:none;border:0;outline:none;background:transparent;color:#dff8ff;font:13px/1.65 var(--cx-font);padding:12px 14px 4px}
|
|
355
|
+
.cx-compose-input::placeholder{color:#557a8d}
|
|
356
|
+
.cx-compose-tools{display:flex;align-items:center;gap:5px;padding:6px 8px;min-height:44px;overflow:visible}
|
|
357
|
+
.cx-compose-plus{width:32px;height:32px;border-radius:50%;border:1px solid var(--cx-line2);background:rgba(8,25,40,.9);color:var(--cx-cyan);font:var(--cx-fs-title)/30px var(--cx-font);cursor:pointer;flex:none;padding:0}
|
|
358
|
+
.cx-compose-plus:hover{border-color:var(--cx-cyan);box-shadow:0 0 12px rgba(var(--cx-hue-rgb),.2)}
|
|
359
|
+
.cx-compose .cx-sel{flex:0 1 auto;width:auto;min-width:0;max-width:220px}
|
|
360
|
+
.cx-compose .cx-sel-btn{height:32px;box-sizing:border-box;width:auto;min-width:62px;max-width:220px;padding:0 8px;border-color:rgba(30,70,92,.7);background:rgba(7,20,32,.55);display:flex;align-items:center;justify-content:space-between;gap:7px}
|
|
361
|
+
|
|
362
|
+
.cx-compose .cx-sel-btn .v{font-size:var(--cx-fs-body);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
363
|
+
.cx-compose .cx-sel-btn .v.ph{color:var(--cx-cyan);letter-spacing:.1em;font-weight:700}
|
|
364
|
+
.cx-compose .cx-sel-btn .a{font-size:var(--cx-fs-body);text-align:right}
|
|
365
|
+
.cx-compose .cx-sel-menu{bottom:100%;top:auto;margin-top:0;margin-bottom:6px;max-height:230px;left:0;right:auto;min-width:180px}
|
|
366
|
+
.cx-compose-right{display:flex;align-items:center;gap:5px;margin-left:auto;min-width:0}
|
|
367
|
+
.cx-compose-send{width:32px;height:32px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--cx-cyan),var(--cx-green));color:#041018;font:800 var(--cx-fs-title)/30px var(--cx-font);cursor:pointer;flex:none;box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.25)}
|
|
368
|
+
.cx-compose-send:disabled{opacity:.4;box-shadow:none}
|
|
369
|
+
.cx-compose-files{display:flex;gap:4px;flex-wrap:wrap;padding:8px 10px 0}
|
|
370
|
+
.cx-tag-x{border:0;background:transparent;color:var(--cx-muted);cursor:pointer;padding:0 0 0 3px;font-size:var(--cx-fs-body)}
|
|
371
|
+
.cx-tag-x:hover{color:var(--cx-red)}
|
|
372
|
+
.cx-chat.full .cx-compose{max-width:1080px;margin-top:10px}
|
|
373
|
+
.cx-hint{display:flex;align-items:center;gap:8px;max-width:1080px;width:100%;margin:8px auto 0;padding:0 4px;box-sizing:border-box}
|
|
374
|
+
.cx-hint-text{flex:1;min-width:0;font-size:var(--cx-fs-body);line-height:1.5;color:#7fa8bb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
375
|
+
.cx-hint-more{border:0;background:transparent;color:var(--cx-cyan);font:var(--cx-fs-body)/1 var(--cx-font);cursor:pointer;padding:4px 2px;flex:none}
|
|
376
|
+
.cx-hint-more:hover{text-decoration:underline}
|
|
377
|
+
.cx-hint-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-width:1080px;width:100%;margin:6px auto 0;padding:0 4px;box-sizing:border-box}
|
|
378
|
+
.cx-hint-card{text-align:left;border:1px solid rgba(30,70,92,.8);background:rgba(7,20,32,.75);padding:9px 10px;cursor:pointer;color:var(--cx-text);font-family:var(--cx-font);border-radius:8px}
|
|
379
|
+
.cx-hint-card:hover,.cx-hint-card.on{border-color:var(--cx-cyan);background:rgba(10,35,52,.9)}
|
|
380
|
+
.cx-hint-card .ht{font-size:var(--cx-fs-body);letter-spacing:.1em;color:var(--cx-cyan);font-weight:700;margin-bottom:4px}
|
|
381
|
+
.cx-hint-card .hd{font-size:var(--cx-fs-body);line-height:1.6;color:#8fb3c4}
|
|
382
|
+
@media(max-width:760px){.cx-hint-panel{grid-template-columns:1fr}.cx-hint-text{white-space:normal}}
|
|
383
|
+
.cx-chat.full .cx-chat-h{width:100%;max-width:none;margin:0;padding:12px 18px}
|
|
384
|
+
.cx-taskmap{position:relative;margin-top:8px;border:1px solid rgba(30,70,92,.7);background:rgba(4,13,22,.94);padding:6px;border-radius:6px;z-index:2}
|
|
385
|
+
.cx-taskmap-actions{display:flex;gap:3px;margin-left:auto}
|
|
386
|
+
.cx-taskmap-actions button{border:1px solid var(--cx-border);background:var(--cx-surface-2);color:var(--cx-text);font:var(--cx-fs)/1 var(--cx-font);width:22px;height:22px;padding:0;cursor:pointer;border-radius:3px}
|
|
387
|
+
.cx-taskmap-actions button:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
388
|
+
.cx-taskmap-loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--cx-surface-2);color:var(--cx-text-dim);font-size:var(--cx-fs-body);z-index:500;pointer-events:none}
|
|
389
|
+
.cx-taskmap-leaflet{position:relative}
|
|
390
|
+
.cx-taskmap-h{display:flex;justify-content:space-between;font-size:var(--cx-fs-body);color:var(--cx-cyan);letter-spacing:.08em;padding:2px 2px 5px}
|
|
391
|
+
.cx-taskmap-leaflet{display:block;width:100%;height:180px;border:1px solid rgba(var(--cx-hue-rgb),.2);border-radius:3px;overflow:hidden;background:#04121d}
|
|
392
|
+
.cx-taskmap-leaflet .leaflet-container{width:100%;height:100%;background:#04121d;font-family:var(--cx-font)}
|
|
393
|
+
.cx-taskmap-leaflet .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.72) contrast(1.18) saturate(.65)}
|
|
394
|
+
.cx-taskmap-leaflet .leaflet-control-attribution{font-size:var(--cx-fs-body)!important;background:rgba(2,8,14,.55)!important;color:#6f97a9!important}
|
|
395
|
+
.cx-taskmap-leaflet .leaflet-control-attribution a{color:#6f97a9!important}
|
|
396
|
+
.cx-mapsec{position:relative;z-index:2;margin-top:8px;background:var(--cx-surface-2);border:1px solid var(--cx-border);border-radius:6px;padding:0 2px 2px}
|
|
397
|
+
.cx-mapsec .cx-taskmap{position:relative;bottom:auto;margin-top:0;border:0;background:transparent;padding:6px}
|
|
398
|
+
.cx-mapsec.folded{margin-top:auto;background:var(--cx-surface-1);border-color:var(--cx-border);padding:0 2px;box-shadow:0 -6px 18px rgba(0,0,0,.25)}
|
|
399
|
+
.cx-mapsec.folded .cx-pm-h{padding:6px 4px}
|
|
400
|
+
.cx-mapsec .cx-taskmap-h>span:first-child{display:none}
|
|
401
|
+
.cx-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;flex:none;background:rgba(255,255,255,.05)}
|
|
402
|
+
.cx-ico svg{width:15px;height:15px}
|
|
403
|
+
.cx-ico-target{color:#ffb454;background:rgba(255,180,84,.14)}
|
|
404
|
+
.cx-ico-plan{color:#7be0ff;background:rgba(123,224,255,.14)}
|
|
405
|
+
.cx-ico-task{color:#b49cff;background:rgba(180,156,255,.14)}
|
|
406
|
+
.cx-ico-report{color:#ff9f6e;background:rgba(255,159,110,.14)}
|
|
407
|
+
.cx-ico-feedback{color:#6ef7b0;background:rgba(110,247,176,.14)}
|
|
408
|
+
.cx-ico-clock{color:#7be0ff;background:rgba(123,224,255,.14)}
|
|
409
|
+
.cx-ico-map{color:var(--cx-green);background:rgba(var(--cx-green-rgb),.14)}
|
|
410
|
+
.cx-shell[data-theme="light"] .cx-ico-target{color:#8a5200;background:#fbe7c6}
|
|
411
|
+
.cx-shell[data-theme="light"] .cx-ico-plan{color:#0a5f7d;background:#d8f0fa}
|
|
412
|
+
.cx-shell[data-theme="light"] .cx-ico-task{color:#4f3596;background:#e6dcfb}
|
|
413
|
+
.cx-shell[data-theme="light"] .cx-ico-report{color:#94400e;background:#fbdfd0}
|
|
414
|
+
.cx-shell[data-theme="light"] .cx-ico-feedback{color:#086b40;background:#d5f5e4}
|
|
415
|
+
.cx-shell[data-theme="light"] .cx-ico-clock{color:#0a5f7d;background:#d8f0fa}
|
|
416
|
+
.cx-shell[data-theme="light"] .cx-ico-map{color:#086b40;background:#d5f5e4}
|
|
417
|
+
|
|
418
|
+
.cx-shell[data-theme="light"] .cx-mapsec{background:#fff;border-color:#c9dde8}
|
|
419
|
+
|
|
420
|
+
.cx-map-popup .leaflet-popup-content-wrapper{background:#071522;color:#dff8ff;border:1px solid var(--cx-cyan);border-radius:3px;font-size:var(--cx-fs-body)}
|
|
421
|
+
.cx-map-popup .leaflet-popup-tip{background:#071522}
|
|
422
|
+
.cx-map-label{font-size:var(--cx-fs-body);fill:rgba(98,180,205,.7);letter-spacing:.14em}
|
|
423
|
+
.cx-map-dot{fill:#6b8a9c;stroke:#04121d;stroke-width:1;cursor:pointer}
|
|
424
|
+
.cx-map-dot.process{fill:#ffd166}.cx-map-dot.finished{fill:var(--cx-green)}.cx-map-dot.canceled{fill:#ff5c7a}.cx-map-dot.on{stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 0 5px var(--cx-cyan))}
|
|
425
|
+
.cx-taskmap-legend{display:flex;gap:8px;padding:5px 2px 1px;font-size:var(--cx-fs-body);color:var(--cx-muted)}
|
|
426
|
+
.cx-taskmap-legend .lc:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:3px;background:#6b8a9c}
|
|
427
|
+
.cx-taskmap-legend .lc.process:before{background:#ffd166}.cx-taskmap-legend .lc.finished:before{background:var(--cx-green)}
|
|
428
|
+
.cx-cal{border:1px solid rgba(30,70,92,.65);background:rgba(5,15,25,.75);padding:7px;margin-bottom:8px}
|
|
429
|
+
.cx-cal-h{display:flex;align-items:center;justify-content:space-between;font-size:var(--cx-fs-body);color:var(--cx-cyan);padding:2px 2px 5px}
|
|
430
|
+
.cx-cal-h button{border:0;background:transparent;color:var(--cx-muted);font:var(--cx-fs) var(--cx-font);cursor:pointer;padding:0 4px}
|
|
431
|
+
.cx-cal-w,.cx-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
|
|
432
|
+
.cx-cal-w span{text-align:center;font-size:var(--cx-fs-body);color:var(--cx-muted);padding:2px 0}
|
|
433
|
+
.cx-cal-grid>span{height:42px}
|
|
434
|
+
.cx-cal-day{position:relative;height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid transparent;background:transparent;color:#a9cad8;font:var(--cx-fs-body) var(--cx-font);cursor:pointer;border-radius:3px;padding:0}
|
|
435
|
+
.cx-cal-day:hover{border-color:rgba(var(--cx-hue-rgb),.35)}
|
|
436
|
+
.cx-cal-day.on{background:rgba(var(--cx-hue-rgb),.18);border-color:var(--cx-cyan);color:#eaffff}
|
|
437
|
+
.cx-cal-day .n{position:absolute;top:1px;right:2px;font-size:calc(var(--cx-fs-body) - 1px);color:var(--cx-green)}
|
|
438
|
+
.cx-cal-day .d{position:static;line-height:1.1}
|
|
439
|
+
.cx-cal-day .l{display:block;margin-top:2px;font-size:calc(var(--cx-fs-body) - 1.5px);line-height:1.1;color:var(--cx-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
|
|
440
|
+
.cx-cal-day .l.accent{color:var(--cx-cyan)}
|
|
441
|
+
.cx-cal-lunar{text-align:center;font-size:var(--cx-fs-body);color:var(--cx-muted);padding:5px 0 2px;letter-spacing:.04em}
|
|
442
|
+
.cx-cal-f{display:flex;justify-content:space-between;align-items:center;font-size:var(--cx-fs-body);color:var(--cx-muted);padding-top:5px}
|
|
443
|
+
.cx-cal-f button{border:0;background:transparent;color:var(--cx-cyan);font:var(--cx-fs-body) var(--cx-font);cursor:pointer}
|
|
444
|
+
.cx-chat-body{display:flex;flex:1;min-height:0;width:100%;overflow:hidden}
|
|
445
|
+
.cx-chat-center{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}
|
|
446
|
+
.cx-chat-center{position:relative}
|
|
447
|
+
.cx-webstatus{display:flex;align-items:center;gap:8px;margin:0 12px 6px;padding:6px 10px;border:1px solid var(--cx-border);border-radius:6px;background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-mono);cursor:pointer;flex:none}
|
|
448
|
+
.cx-webstatus:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
449
|
+
.cx-webstatus .dot{width:6px;height:6px;border-radius:50%;background:var(--cx-green);flex:none}
|
|
450
|
+
.cx-webstatus .dot.busy{background:var(--cx-orange);animation:cx-blink 1s steps(2) infinite}
|
|
451
|
+
.cx-webstatus .arr{margin-left:auto;opacity:.7}.cx-webstatus-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
|
|
452
|
+
.cx-webstatus .meta{display:flex;gap:10px;color:var(--cx-text-dim);font-size:var(--cx-fs-body);flex-wrap:wrap}
|
|
453
|
+
.cx-webstatus .sum{font-size:var(--cx-fs-body);color:var(--cx-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
|
|
454
|
+
.cx-webpop{position:absolute;right:14px;bottom:132px;width:min(580px,88%);max-height:46%;display:flex;flex-direction:column;border:1px solid var(--cx-border-strong);border-radius:8px;background:var(--cx-surface-1);box-shadow:0 18px 50px rgba(0,0,0,.45);z-index:40;overflow:hidden}
|
|
455
|
+
.cx-webpop .h{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--cx-border);font:var(--cx-fs-body) var(--cx-mono);letter-spacing:.08em;color:var(--cx-accent);flex:none}
|
|
456
|
+
.cx-webpop .h button{border:0;background:transparent;color:var(--cx-text-dim);cursor:pointer;font-size:var(--cx-fs)}
|
|
457
|
+
.cx-webpop .b{padding:10px 12px;overflow:auto;font-size:var(--cx-fs);line-height:1.7;color:var(--cx-text)}
|
|
458
|
+
.cx-chat-tabs{display:flex;align-items:center;gap:4px;padding:6px 18px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-2);overflow-x:auto;flex:none}
|
|
459
|
+
.cx-chat-tab{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-mono);cursor:pointer;white-space:nowrap}
|
|
460
|
+
.cx-chat-tab.on{color:var(--cx-accent);border-color:var(--cx-border-strong);background:var(--cx-accent-soft)}
|
|
461
|
+
.cx-chat-tab .nm{max-width:160px;overflow:hidden;text-overflow:ellipsis}
|
|
462
|
+
.cx-chat-tab .x{border:0;background:transparent;color:inherit;cursor:pointer;font-size:var(--cx-fs-body);margin-left:2px;padding:0}
|
|
463
|
+
.cx-addrbar{display:flex;align-items:center;gap:6px;padding:6px 18px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-1);flex:none}
|
|
464
|
+
.cx-addrbar .nav{width:24px;height:24px;border:1px solid var(--cx-border);border-radius:5px;background:var(--cx-surface-2);color:var(--cx-text-dim);cursor:pointer;font-size:var(--cx-fs);line-height:1;padding:0}
|
|
465
|
+
.cx-addrbar .nav:hover:not(:disabled){color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
466
|
+
.cx-addrbar .nav:disabled{opacity:.35;cursor:default}
|
|
467
|
+
.cx-addr-input{flex:1;min-width:0;height:26px;padding:0 10px;border:1px solid var(--cx-border);border-radius:6px;background:var(--cx-surface-2);color:var(--cx-text);font:var(--cx-fs) var(--cx-mono)}
|
|
468
|
+
.cx-addr-input:focus{outline:none;border-color:var(--cx-accent)}
|
|
469
|
+
.cx-chat.webmax .cx-pm-side,.cx-chat.webmax .cx-compose,.cx-chat.webmax .cx-hint{display:none}
|
|
470
|
+
|
|
471
|
+
.cx-chat-webframes{flex:1;min-height:0;position:relative;display:flex}
|
|
472
|
+
.cx-chat-webframes iframe{flex:1;width:100%;height:100%;border:0;background:var(--cx-surface-1)}
|
|
473
|
+
|
|
474
|
+
.cx-pm-side{width:280px;flex:none;overflow:auto;border-right:1px solid rgba(30,70,92,.65);background:rgba(4,13,22,.86);padding:9px;display:flex;flex-direction:column}
|
|
475
|
+
.cx-pm-side>*{flex:none}
|
|
476
|
+
.cx-pm-side.right{border-right:0;border-left:1px solid rgba(30,70,92,.65);width:300px}
|
|
477
|
+
.cx-pm-titleline{display:flex;align-items:center;gap:5px;min-width:0;flex:1;flex-wrap:wrap}
|
|
478
|
+
.cx-pm-count{display:inline-grid;place-items:center;min-width:0;height:auto;padding:0;border:0;border-radius:0;color:var(--cx-cyan);font-size:var(--cx-fs-body);background:transparent}
|
|
479
|
+
.cx-filter{position:relative;flex:none}
|
|
480
|
+
.cx-filter-btn{height:26px;border:1px solid var(--cx-border);background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body)/1 var(--cx-font);padding:0 7px;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;gap:4px}
|
|
481
|
+
.cx-filter-btn.on{color:var(--cx-cyan);border-color:var(--cx-cyan)}
|
|
482
|
+
.cx-filter-menu{position:absolute;left:0;right:auto;top:100%;z-index:450;margin-top:4px;min-width:190px;white-space:nowrap;padding:4px;border:1px solid var(--cx-cyan);background:#071522;box-shadow:0 10px 26px rgba(0,0,0,.5)}
|
|
483
|
+
.cx-filter-item{display:flex;gap:5px;align-items:center;width:100%;border:0;background:transparent;color:var(--cx-text);font:var(--cx-fs-body)/1.6 var(--cx-font);padding:4px 6px;cursor:pointer;text-align:left;white-space:nowrap}
|
|
484
|
+
.cx-filter-menu.right{left:auto;right:0}
|
|
485
|
+
.cx-filter-item:hover,.cx-filter-item.on{background:rgba(var(--cx-hue-rgb),.1);color:var(--cx-cyan)}
|
|
486
|
+
.cx-filter-clear{width:100%;border:0;border-top:1px solid rgba(30,70,92,.6);background:transparent;color:var(--cx-muted);font:var(--cx-fs-body) var(--cx-font);padding:5px;cursor:pointer}
|
|
487
|
+
.cx-filter-clear:hover{color:var(--cx-red)}
|
|
488
|
+
.cx-filter.inline{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
|
|
489
|
+
.cx-filter-label{font-size:var(--cx-fs-body);letter-spacing:.08em;color:var(--cx-text-faint);flex:none}
|
|
490
|
+
.cx-filter-chip{font:var(--cx-fs-body)/1 var(--cx-font);padding:4px 8px;border:1px solid var(--cx-border);border-radius:999px;background:transparent;color:var(--cx-text-dim);cursor:pointer;white-space:nowrap}
|
|
491
|
+
.cx-filter-chip:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
492
|
+
.cx-filter-chip.on{background:color-mix(in srgb,var(--cx-accent) 14%,transparent);border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
493
|
+
|
|
494
|
+
.cx-pm-h{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 8px;min-height:28px;font-size:var(--cx-fs);flex-wrap:wrap;letter-spacing:.12em;color:var(--cx-cyan);text-transform:uppercase;background:linear-gradient(90deg,color-mix(in srgb,var(--cx-cyan) 13%,transparent),color-mix(in srgb,var(--cx-cyan) 4%,transparent) 72%,transparent);border-left:2px solid color-mix(in srgb,var(--cx-cyan) 55%,transparent);border-radius:5px}
|
|
495
|
+
.cx-pm-h{border-radius:4px;cursor:pointer;transition:background .12s ease}
|
|
496
|
+
.cx-pm-h:hover{background:color-mix(in srgb,var(--cx-accent) 20%,transparent)}
|
|
497
|
+
.cx-shell[data-theme="light"] .cx-pm-h{background:linear-gradient(90deg,#e2f3fa,#f2fafd 70%,transparent);border-left-color:#7cc7de}
|
|
498
|
+
.cx-shell[data-theme="light"] .cx-pm-h:hover{background:#cfeaf5}
|
|
499
|
+
.cx-pm-ops{display:flex;align-items:center;gap:2px;margin-left:auto;flex:none}
|
|
500
|
+
.cx-pm-tools{display:flex;align-items:center;gap:4px;padding:0 3px 6px;flex-wrap:wrap}
|
|
501
|
+
|
|
502
|
+
.cx-pm-op{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid transparent;background:transparent;color:var(--cx-cyan);font:var(--cx-fs-title)/1 var(--cx-font);cursor:pointer;border-radius:3px}
|
|
503
|
+
.cx-pm-op:hover{color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.35);background:rgba(var(--cx-hue-rgb),.08)}
|
|
504
|
+
.cx-pm-refresh:hover{color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.35);background:rgba(var(--cx-hue-rgb),.08)}
|
|
505
|
+
.cx-pm-op.danger:hover{color:var(--cx-red);border-color:rgba(255,92,122,.4);background:rgba(255,92,122,.08)}
|
|
506
|
+
.cx-pm-refresh{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid transparent;background:transparent;color:var(--cx-muted);font:var(--cx-fs-title)/1 var(--cx-font);cursor:pointer;border-radius:3px}
|
|
507
|
+
.cx-pm-count{color:var(--cx-muted);font-size:var(--cx-fs-body);border:0;background:transparent}
|
|
508
|
+
.cx-pm-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:1px solid transparent;border-left:2px solid transparent;background:transparent;color:#b9dbe8;padding:6px 6px;cursor:pointer;border-radius:5px}
|
|
509
|
+
.cx-pm-item:hover{background:rgba(var(--cx-hue-rgb),.06)}
|
|
510
|
+
.cx-pm-item.on{background:rgba(var(--cx-hue-rgb),.1);border-left-color:var(--cx-cyan);color:#eaffff}
|
|
511
|
+
.cx-pm-item .t{font-size:var(--cx-fs-body);line-height:1.35;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
|
|
512
|
+
.cx-pm-item .s{font-size:var(--cx-fs-body);color:var(--cx-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
|
|
513
|
+
.cx-pm-topright{display:flex;align-items:center;gap:4px;flex:none}
|
|
514
|
+
.cx-pm-type{padding:2px 5px;border:1px solid currentColor;border-radius:3px;font-size:var(--cx-fs-body);font-weight:800;letter-spacing:.08em;line-height:1.3}
|
|
515
|
+
.cx-pm-type.type-target{color:#ffd166}
|
|
516
|
+
.cx-pm-type.type-plan{color:#7be0ff}
|
|
517
|
+
.cx-pm-type.type-task{color:#b49cff}
|
|
518
|
+
.cx-pm-type.type-report{color:#ff9f6e}
|
|
519
|
+
.cx-pm-type.type-feedback{color:#6ef7b0}
|
|
520
|
+
.cx-pm-status{padding:2px 5px;border:1px solid transparent;border-radius:3px;font-size:var(--cx-fs-body);line-height:1.3;letter-spacing:.04em}
|
|
521
|
+
.cx-pm-status.status-created{color:#8fa8b8;border-color:#355064;background:rgba(80,110,130,.12)}
|
|
522
|
+
.cx-pm-status.status-submited{color:#c39cff;border-color:#6d4a9b;background:rgba(120,80,180,.15)}
|
|
523
|
+
.cx-pm-status.status-approved{color:#7bd4ff;border-color:#2b6f92;background:rgba(50,140,180,.15)}
|
|
524
|
+
.cx-pm-status.status-process{color:#ffd166;border-color:#8a6a2a;background:rgba(180,130,40,.15)}
|
|
525
|
+
.cx-pm-status.status-finished,.cx-pm-status.status-canFinish{color:#6ef7b0;border-color:#2f8060;background:rgba(40,160,110,.15)}
|
|
526
|
+
.cx-pm-status.status-canceled,.cx-pm-status.status-rejected,.cx-pm-status.status-shouldImprove{color:#ff8fa3;border-color:#8a3d4d;background:rgba(180,60,80,.15)}
|
|
527
|
+
.cx-pm-status.status-target,.cx-pm-status.status-report{color:#7be0ff;border-color:#2b6f92;background:rgba(50,140,180,.12)}
|
|
528
|
+
.cx-fold{width:16px;height:16px;line-height:1;padding:0;border:0;background:transparent;color:var(--cx-text-faint);cursor:pointer;flex:none;font-size:var(--cx-fs-body)}
|
|
529
|
+
.cx-fold:hover{color:var(--cx-accent)}
|
|
530
|
+
.cx-shell[data-theme="light"] .cx-pm-type.type-target{color:#8a5200}
|
|
531
|
+
.cx-shell[data-theme="light"] .cx-pm-type.type-plan{color:#0a5f7d}
|
|
532
|
+
.cx-shell[data-theme="light"] .cx-pm-type.type-task{color:#4f3596}
|
|
533
|
+
.cx-shell[data-theme="light"] .cx-pm-type.type-report{color:#94400e}
|
|
534
|
+
.cx-shell[data-theme="light"] .cx-pm-type.type-feedback{color:#086b40}
|
|
535
|
+
.cx-shell[data-theme="light"] .cx-pm-status{font-weight:700}
|
|
536
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-created{color:#3a5160;border-color:#8aa9b8;background:#eef5f9}
|
|
537
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-submited{color:#523496;border-color:#9b7fd0;background:#f3eefc}
|
|
538
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-approved{color:#0a5f7d;border-color:#5aa6c4;background:#eaf6fb}
|
|
539
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-process{color:#7a5000;border-color:#c49a3a;background:#fdf5e3}
|
|
540
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-finished,.cx-shell[data-theme="light"] .cx-pm-status.status-canFinish{color:#08663f;border-color:#4fae85;background:#e9f8f0}
|
|
541
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-canceled,.cx-shell[data-theme="light"] .cx-pm-status.status-rejected,.cx-shell[data-theme="light"] .cx-pm-status.status-shouldImprove{color:#a02034;border-color:#cf7f8e;background:#fdeef1}
|
|
542
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-target,.cx-shell[data-theme="light"] .cx-pm-status.status-report{color:#0a5f7d;border-color:#5aa6c4;background:#eaf6fb}
|
|
543
|
+
.cx-pm-card .cx-menu-wrap .cx-btn.xs{width:22px;height:22px;padding:0;font-size:var(--cx-fs);line-height:1}
|
|
544
|
+
.cx-menu-item.danger{color:#ff8fa3}
|
|
545
|
+
.cx-menu-item.danger:hover{background:rgba(255,92,122,.15);color:#ff5c7a}
|
|
546
|
+
.cx-pm-card{position:relative;display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:1px solid rgba(30,70,92,.55);border-left:2px solid transparent;background:rgba(7,20,32,.55);color:#b9dbe8;padding:8px 9px;margin-bottom:5px;cursor:pointer;border-radius:6px}
|
|
547
|
+
.cx-pm-card:hover{background:rgba(var(--cx-hue-rgb),.06);border-color:rgba(var(--cx-hue-rgb),.35)}
|
|
548
|
+
.cx-pm-card.on{background:rgba(var(--cx-hue-rgb),.1);border-left-color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.45)}
|
|
549
|
+
.cx-pm-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
|
|
550
|
+
.cx-pm-type{font-size:var(--cx-fs-body);font-weight:800;letter-spacing:.08em;color:var(--cx-cyan)}
|
|
551
|
+
.cx-pm-status{font-size:var(--cx-fs-body);color:var(--cx-green);text-transform:uppercase;letter-spacing:.06em}
|
|
552
|
+
.cx-pm-title{font-size:var(--cx-fs);line-height:1.4;font-weight:700;color:#eaffff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
553
|
+
.cx-pm-meta{font-size:var(--cx-fs-body);line-height:1.45;color:#6f97a9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
554
|
+
.cx-pm-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap;margin-top:2px}
|
|
555
|
+
.cx-pm-card-actions .cx-menu-wrap{margin-left:auto}
|
|
556
|
+
.cx-pm-act{border:1px solid rgba(30,70,92,.75);background:rgba(5,16,26,.75);color:#8fb3c4;font:var(--cx-fs-body)/1.2 var(--cx-font);padding:3px 5px;border-radius:3px;cursor:pointer}
|
|
557
|
+
.cx-pm-act:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
558
|
+
.cx-pm-act.danger:hover{border-color:var(--cx-red);color:var(--cx-red)}
|
|
559
|
+
.cx-pm-empty{font-size:var(--cx-fs-body);color:#4f7a8c;padding:5px 4px;line-height:1.5}
|
|
560
|
+
.cx-gate{margin:20px auto;max-width:520px;padding:16px;border:1px solid rgba(var(--cx-hue-rgb),.3);background:rgba(7,24,38,.85);text-align:center;border-radius:10px}
|
|
561
|
+
.cx-gate-t{font-size:var(--cx-fs);font-weight:800;color:#eaffff;margin-bottom:6px}
|
|
562
|
+
.cx-gate-d{font-size:var(--cx-fs-body);line-height:1.7;color:#8fb3c4;margin-bottom:12px}
|
|
563
|
+
.cx-gate-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
|
|
564
|
+
@media(max-width:760px){.cx-pm-side{display:none}}
|
|
565
|
+
|
|
566
|
+
.cx-msg-main{flex:1;min-width:0;width:100%;display:flex;flex-direction:column;align-items:stretch;gap:2px}
|
|
567
|
+
/* 宿主/旧样式可能把消息主体变成横向 flex;列向是唯一合法布局,必须压住。 */
|
|
568
|
+
.cx-shell .cx-msg .cx-msg-main{display:flex!important;flex-direction:column!important;align-items:stretch!important;width:100%!important}
|
|
569
|
+
.cx-shell .cx-msg .cx-msg-body{width:100%!important;min-width:0}
|
|
570
|
+
.cx-msg-meta{display:flex;align-items:center;gap:8px;width:100%;font-size:var(--cx-fs-body);letter-spacing:.1em;color:var(--cx-muted);margin-bottom:4px}
|
|
571
|
+
.cx-msg-copy{margin-left:auto;border:0;background:transparent;color:var(--cx-muted);font:var(--cx-fs-body)/1 var(--cx-font);cursor:pointer;letter-spacing:.08em}
|
|
572
|
+
.cx-msg-copy:hover{color:var(--cx-cyan)}
|
|
573
|
+
.cx-msg-metrics{color:var(--cx-text-faint);font-size:var(--cx-fs-body);letter-spacing:.04em}
|
|
574
|
+
.cx-msg-body{width:100%;min-width:0;font-size:var(--cx-fs);line-height:1.75;color:#d9f4ff;overflow-wrap:anywhere}
|
|
575
|
+
.cx-msg.user .cx-msg-body{color:#e9fff8}
|
|
576
|
+
.cx-md-p{margin:2px 0}
|
|
577
|
+
.cx-md-h{font-weight:800;color:#eaffff;margin:8px 0 3px;font-size:var(--cx-fs)}
|
|
578
|
+
.cx-md-h.h1{font-size:var(--cx-fs-title)}.cx-md-h.h2{font-size:var(--cx-fs-title)}.cx-md-h.h3{font-size:var(--cx-fs)}
|
|
579
|
+
.cx-md-list{margin:4px 0 4px 16px;padding:0}
|
|
580
|
+
.cx-md-list li{margin:2px 0}
|
|
581
|
+
.cx-md-quote{margin:5px 0;padding:4px 8px;border-left:2px solid var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.06);color:#9fc8d8}
|
|
582
|
+
.cx-md-inline{font-family:var(--cx-mono);font-size:var(--cx-fs-body);color:var(--cx-green);background:rgba(var(--cx-green-rgb),.08);padding:1px 4px;border-radius:3px}
|
|
583
|
+
.cx-md-a{color:var(--cx-cyan);text-decoration:underline}
|
|
584
|
+
.cx-md-codebox{margin:6px 0;border:1px solid rgba(30,70,92,.8);border-radius:6px;overflow:hidden;background:#030b12}
|
|
585
|
+
.cx-md-codebar{display:flex;align-items:center;justify-content:space-between;padding:4px 7px;border-bottom:1px solid rgba(30,70,92,.7);font-size:var(--cx-fs-body);color:var(--cx-muted);letter-spacing:.08em}
|
|
586
|
+
.cx-md-codebar button{border:0;background:transparent;color:var(--cx-muted);cursor:pointer;font:var(--cx-fs-body) var(--cx-font)}
|
|
587
|
+
.cx-md-codebar button:hover{color:var(--cx-cyan)}
|
|
588
|
+
.cx-md-code{margin:0;padding:8px 10px;overflow:auto;font:var(--cx-fs-body)/1.65 var(--cx-mono);color:#bfe9f8}
|
|
589
|
+
.cx-sysline{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--cx-fs-body);letter-spacing:.12em;color:#4f7a8c;text-transform:uppercase}
|
|
590
|
+
.cx-sysdot{width:4px;height:4px;border-radius:50%;background:var(--cx-cyan);box-shadow:0 0 8px var(--cx-cyan)}
|
|
591
|
+
.cx-chat-typing{width:calc(100% - 36px);max-width:1080px;box-sizing:border-box;margin:0 auto;font-size:var(--cx-fs-body);color:var(--cx-cyan);letter-spacing:.1em;padding:4px 14px 2px}
|
|
592
|
+
@media(max-width:1250px){.cx-body{grid-template-columns:1fr 1fr;overflow:auto}.cx-panel{min-height:260px}.cx-shell{overflow:auto}}
|
|
593
|
+
@media(max-width:1000px){.cx-chat{width:calc(100vw - 12px);right:6px;bottom:6px;height:calc(100vh - 20px)}.cx-compose{max-width:none}.cx-compose-tools{display:flex;flex-wrap:wrap}.cx-compose .cx-sel{flex:0 1 auto;max-width:calc(50% - 18px)}.cx-compose .cx-sel-btn{max-width:100%}.cx-compose-right{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.cx-body{grid-template-columns:1fr;overflow:auto}.cx-panel{min-height:240px}.cx-shell{overflow:auto}.cx-log{min-height:110px}}
|
|
594
|
+
@media(max-width:760px){.cx-compose-tools{gap:4px}.cx-compose .cx-sel{flex:1 1 calc(33% - 14px);max-width:none}.cx-compose-right{flex:1 1 100%;margin-left:0;justify-content:flex-end;order:5}.cx-compose .cx-sel-btn{max-width:100%}}
|
|
595
|
+
|
|
596
|
+
/* light theme, follows system via data-theme */
|
|
597
|
+
.cx-shell[data-theme="light"]{--cx-bg:#eef6fb;--cx-panel:#ffffff;--cx-panel2:#f3f9fd;--cx-line:#c7dbe7;--cx-line2:#a8c9da;--cx-cyan:#0b7f9f;--cx-cyan2:#09677f;--cx-green:#07845a;--cx-orange:#a96700;--cx-red:#c73550;--cx-text:#183440;--cx-muted:#5e7d8e;color-scheme:light;background:radial-gradient(1000px 500px at 10% -10%,rgba(62,181,210,.14),transparent 55%),linear-gradient(180deg,#f4fbfe,#e9f3f9)}
|
|
598
|
+
.cx-shell[data-theme="light"] .cx-header{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(242,249,253,.96));border-bottom-color:var(--cx-line)}
|
|
599
|
+
.cx-shell[data-theme="light"] .cx-title,.cx-shell[data-theme="light"] .cx-name{color:#102f3d}
|
|
600
|
+
.cx-shell[data-theme="light"] .cx-panel{background:#fff;box-shadow:0 4px 18px rgba(31,73,94,.06)}
|
|
601
|
+
.cx-shell[data-theme="light"] .cx-ph,.cx-shell[data-theme="light"] .cx-tools{background:#f3f9fc;border-color:var(--cx-line)}
|
|
602
|
+
.cx-shell[data-theme="light"] .cx-ph .ttl{color:#123846}
|
|
603
|
+
.cx-shell[data-theme="light"] .cx-node,.cx-shell[data-theme="light"] .cx-space,.cx-shell[data-theme="light"] .cx-app{background:#f8fcfd;border-color:#d5e6ee}
|
|
604
|
+
.cx-shell[data-theme="light"] .cx-node:hover,.cx-shell[data-theme="light"] .cx-space:hover,.cx-shell[data-theme="light"] .cx-app:hover{background:#eef8fc}
|
|
605
|
+
.cx-shell[data-theme="light"] .cx-node.on,.cx-shell[data-theme="light"] .cx-space.on,.cx-shell[data-theme="light"] .cx-app.on{background:#e5f6fb;border-color:var(--cx-cyan)}
|
|
606
|
+
.cx-shell[data-theme="light"] .cx-chip{background:#fff;border-color:var(--cx-line);color:var(--cx-muted)}
|
|
607
|
+
.cx-shell[data-theme="light"] .cx-chip b{color:#173846}
|
|
608
|
+
.cx-shell[data-theme="light"] .cx-btn{background:#fff;border-color:#bcd4e1;color:#224a5b}
|
|
609
|
+
.cx-shell[data-theme="light"] .cx-btn.pri{background:#e6f7fb;border-color:var(--cx-cyan);color:#075a70}
|
|
610
|
+
.cx-shell[data-theme="light"] .cx-btn:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
611
|
+
.cx-shell[data-theme="light"] .cx-log{background:#f5fbfd;border-color:var(--cx-line)}
|
|
612
|
+
.cx-shell[data-theme="light"] .cx-log-b{background:#f5fbfd}
|
|
613
|
+
.cx-shell[data-theme="light"] .cx-line .t{color:#a2bdc9}
|
|
614
|
+
.cx-shell[data-theme="light"] .cx-line .m{color:#43697a}
|
|
615
|
+
.cx-shell[data-theme="light"] .cx-line.ok .m{color:#07845a}.cx-shell[data-theme="light"] .cx-line.err .m{color:#c73550}.cx-shell[data-theme="light"] .cx-line.run .m{color:#a96700}
|
|
616
|
+
.cx-shell[data-theme="light"] .cx-preview{background:#f2f7fa}
|
|
617
|
+
.cx-shell[data-theme="light"] .cx-detail{background:#f7fbfd}
|
|
618
|
+
.cx-shell[data-theme="light"] .cx-detail .dc{color:#5c7b8c}
|
|
619
|
+
.cx-shell[data-theme="light"] .cx-chat{background:linear-gradient(180deg,#ffffff,#f5fafd);border-color:#b9d8e5;box-shadow:0 20px 50px rgba(25,64,82,.18)}
|
|
620
|
+
.cx-shell[data-theme="light"] .cx-chat.full{background:radial-gradient(900px 500px at 15% 0%,rgba(96,205,230,.18),transparent 60%),linear-gradient(180deg,#f7fcfe,#eaf4f9)}
|
|
621
|
+
.cx-shell[data-theme="light"] .cx-chat.full:before{background-image:linear-gradient(rgba(11,127,159,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(11,127,159,.06) 1px,transparent 1px)}
|
|
622
|
+
.cx-shell[data-theme="light"] .cx-city3d,.cx-shell[data-theme="light"] .cx-tech-bg{opacity:.13}
|
|
623
|
+
.cx-shell[data-theme="light"] .cx-chat-h{background:rgba(255,255,255,.9);border-color:var(--cx-line)}
|
|
624
|
+
.cx-shell[data-theme="light"] .cx-chat-title{color:#0d3545}
|
|
625
|
+
.cx-shell[data-theme="light"] .cx-hero-title{background:linear-gradient(135deg,#0b4458,#0b7f9f 55%,#07845a);-webkit-background-clip:text;background-clip:text;color:transparent}
|
|
626
|
+
.cx-shell[data-theme="light"] .cx-hero-sub{color:#54798a}
|
|
627
|
+
.cx-shell[data-theme="light"] .cx-empty-hint{background:#fff;border-color:#b6d8e4;color:#55798a}
|
|
628
|
+
.cx-shell[data-theme="light"] .cx-msg{border-color:#c9e0ea;background:#fff;color:#173846;box-shadow:0 5px 16px rgba(32,80,102,.08)}
|
|
629
|
+
.cx-shell[data-theme="light"] .cx-msg.ai{border-left-color:var(--cx-cyan)}
|
|
630
|
+
.cx-shell[data-theme="light"] .cx-msg.user{background:#e9faf4;border-color:#a9dfc9}
|
|
631
|
+
.cx-shell[data-theme="light"] .cx-msg-body{color:#193845}
|
|
632
|
+
.cx-shell[data-theme="light"] .cx-msg.user .cx-msg-body{color:#123d30}
|
|
633
|
+
.cx-shell[data-theme="light"] .cx-msg-meta{color:#6d8a98}
|
|
634
|
+
.cx-shell[data-theme="light"] .cx-msg-copy{color:#6d8a98}
|
|
635
|
+
.cx-shell[data-theme="light"] .cx-sysline{color:#6a8b99}
|
|
636
|
+
.cx-shell[data-theme="light"] .cx-md-p,.cx-shell[data-theme="light"] .cx-md-list li{color:#193845}
|
|
637
|
+
.cx-shell[data-theme="light"] .cx-md-h{color:#123846}
|
|
638
|
+
.cx-shell[data-theme="light"] .cx-md-quote{background:#eef8fb;color:#446b7b}
|
|
639
|
+
.cx-shell[data-theme="light"] .cx-md-codebox{background:#f7fbfd;border-color:#c7dde8}
|
|
640
|
+
.cx-shell[data-theme="light"] .cx-md-code{color:#285366;background:#f2f8fb}
|
|
641
|
+
.cx-shell[data-theme="light"] .cx-md-inline{color:#076e55;background:#e6f7f0}
|
|
642
|
+
.cx-shell[data-theme="light"] .cx-compose{background:#fff;border-color:#b9d8e5;box-shadow:0 8px 28px rgba(24,66,84,.1)}
|
|
643
|
+
.cx-shell[data-theme="light"] .cx-compose-input{color:#173846}
|
|
644
|
+
.cx-shell[data-theme="light"] .cx-compose-input::placeholder{color:#8aa7b4}
|
|
645
|
+
.cx-shell[data-theme="light"] .cx-sel-btn,.cx-shell[data-theme="light"] .cx-compose .cx-sel-btn{background:#f4fafc;border-color:#c6dce7;color:#244a5a}
|
|
646
|
+
.cx-shell[data-theme="light"] .cx-sel-btn .v,.cx-shell[data-theme="light"] .cx-sel-btn .a{color:#244a5a}
|
|
647
|
+
.cx-shell[data-theme="light"] .cx-sel-btn .v.ph{color:#0b7f9f}
|
|
648
|
+
.cx-shell[data-theme="light"] .cx-sel-menu{background:#fff;border-color:#b9d8e5;box-shadow:0 12px 30px rgba(20,60,80,.18)}
|
|
649
|
+
.cx-shell[data-theme="light"] .cx-sel-item{color:#244a5a;border-color:#e1edf3}
|
|
650
|
+
.cx-shell[data-theme="light"] .cx-sel-item:hover,.cx-shell[data-theme="light"] .cx-sel-item.on{background:#eaf7fb;color:#0b7f9f}
|
|
651
|
+
.cx-shell[data-theme="light"] .cx-hint-text{color:#587b8b}
|
|
652
|
+
.cx-shell[data-theme="light"] .cx-hint-card{background:#fff;border-color:#c7dde8}
|
|
653
|
+
.cx-shell[data-theme="light"] .cx-hint-card .hd{color:#5d7f8f}
|
|
654
|
+
.cx-shell[data-theme="light"] .cx-suggest button{background:#fff;border-color:#c7dde8;color:#245164}
|
|
655
|
+
.cx-shell[data-theme="light"] .cx-pm-side{background:#f8fcfd;border-color:#c7dde8}
|
|
656
|
+
.cx-shell[data-theme="light"] .cx-pm-side.right{border-color:#c7dde8}
|
|
657
|
+
.cx-shell[data-theme="light"] .cx-pm-card{background:#fff;border-color:#d3e5ed}
|
|
658
|
+
.cx-shell[data-theme="light"] .cx-pm-card:hover,.cx-shell[data-theme="light"] .cx-pm-card.on{background:#eaf7fb;border-color:#8bcadd}
|
|
659
|
+
.cx-shell[data-theme="light"] .cx-pm-title{color:#173846}
|
|
660
|
+
.cx-shell[data-theme="light"] .cx-pm-meta{color:#698694}
|
|
661
|
+
.cx-shell[data-theme="light"] .cx-pm-empty{color:#708f9d}
|
|
662
|
+
.cx-shell[data-theme="light"] .cx-pm-act{background:#f7fbfd;border-color:#c7dde8;color:#4e7282}
|
|
663
|
+
.cx-shell[data-theme="light"] .cx-menu{background:#fff;border-color:#b9d8e5;box-shadow:0 10px 26px rgba(20,60,80,.18)}
|
|
664
|
+
.cx-shell[data-theme="light"] .cx-menu-item{color:#244a5a}
|
|
665
|
+
.cx-shell[data-theme="light"] .cx-cal,.cx-shell[data-theme="light"] .cx-taskmap{background:#fff;border-color:#c7dde8}
|
|
666
|
+
.cx-shell[data-theme="light"] .cx-cal-day{color:#41697a}
|
|
667
|
+
.cx-shell[data-theme="light"] .cx-cal-day:hover{border-color:#7ac6db}
|
|
668
|
+
.cx-shell[data-theme="light"] .cx-cal-day.on{background:#dff4fa;border-color:#0b7f9f;color:#084d60}
|
|
669
|
+
.cx-shell[data-theme="light"] .cx-taskmap-leaflet{background:#eaf4f8}
|
|
670
|
+
.cx-shell[data-theme="light"] .cx-taskmap-leaflet .leaflet-tile{filter:none}
|
|
671
|
+
.cx-shell[data-theme="light"] .cx-taskmap-leaflet .leaflet-container{background:#eaf4f8}
|
|
672
|
+
.cx-shell[data-theme="light"] .cx-gate{background:#fff;border-color:#b9d8e5}
|
|
673
|
+
.cx-shell[data-theme="light"] .cx-gate-t{color:#123846}
|
|
674
|
+
.cx-shell[data-theme="light"] .cx-gate-d{color:#5d7f8f}
|
|
675
|
+
.cx-shell[data-theme="light"] .cx-modal{background:rgba(226,240,247,.72)}
|
|
676
|
+
.cx-shell[data-theme="light"] .cx-card{background:#fff;border-color:#b9d8e5;box-shadow:0 20px 50px rgba(20,60,80,.2)}
|
|
677
|
+
.cx-shell[data-theme="light"] .cx-card h2{color:#0b7f9f}
|
|
678
|
+
.cx-shell[data-theme="light"] .cx-card .desc{color:#5d7f8f}
|
|
679
|
+
.cx-shell[data-theme="light"] .cx-input,.cx-shell[data-theme="light"] .cx-form .cx-input{background:#f7fbfd;border-color:#c7dde8;color:#173846}
|
|
680
|
+
.cx-shell[data-theme="light"] .cx-empty{color:#688795;border-color:#c7dde8}
|
|
681
|
+
.cx-shell[data-theme="light"] .cx-menu-item.danger{color:#c73550}
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
/* unified design tokens: typography + surfaces */
|
|
686
|
+
:root{--cx-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--cx-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--cx-radius-sm:5px;--cx-radius-md:8px;--cx-radius-lg:14px}
|
|
687
|
+
.cx-shell{font-family:var(--cx-font);font-size:var(--cx-fs);line-height:1.55;letter-spacing:.01em;color:var(--cx-text);background:var(--cx-bg)}
|
|
688
|
+
.cx-shell button,.cx-shell input,.cx-shell textarea,.cx-shell select{font-family:var(--cx-font);font-size:var(--cx-fs)}
|
|
689
|
+
.cx-shell .cx-mono,.cx-shell .cx-md-code,.cx-shell .cx-md-inline{font-family:var(--cx-mono)}
|
|
690
|
+
.cx-shell .cx-title{font-size:var(--cx-fs-title);line-height:1.2;letter-spacing:.08em}
|
|
691
|
+
.cx-shell .cx-sub{font-size:var(--cx-fs-body);letter-spacing:.1em}
|
|
692
|
+
.cx-shell .cx-ph .ttl{font-size:var(--cx-fs);letter-spacing:.06em;font-weight:700}
|
|
693
|
+
.cx-shell .cx-name,.cx-shell .cx-space .nm,.cx-shell .cx-app .an{font-size:var(--cx-fs);letter-spacing:.01em}
|
|
694
|
+
.cx-shell .cx-meta,.cx-shell .cx-app .ac,.cx-shell .cx-space .sub{font-size:var(--cx-fs-body)}
|
|
695
|
+
.cx-shell .cx-chat-title{font-size:var(--cx-fs-title);letter-spacing:.1em}
|
|
696
|
+
.cx-shell .cx-chat-sub{font-size:var(--cx-fs-body)}
|
|
697
|
+
.cx-shell .cx-btn{font-size:var(--cx-fs);font-weight:600;letter-spacing:.02em;border-radius:var(--cx-radius-sm)}
|
|
698
|
+
.cx-shell .cx-btn.xs{font-size:var(--cx-fs-body)}
|
|
699
|
+
.cx-shell .cx-msg-body{font-size:var(--cx-fs);line-height:1.7}
|
|
700
|
+
.cx-shell .cx-pm-title{font-size:var(--cx-fs);font-weight:650}
|
|
701
|
+
.cx-shell .cx-pm-meta{font-size:var(--cx-fs-body)}
|
|
702
|
+
.cx-shell .cx-pm-h{font-size:var(--cx-fs)}
|
|
703
|
+
.cx-shell .cx-md-p,.cx-shell .cx-md-list li{font-size:var(--cx-fs)}
|
|
704
|
+
.cx-shell .cx-hint-text{font-size:var(--cx-fs)}
|
|
705
|
+
.cx-shell .cx-compose-input{font-size:13px}
|
|
706
|
+
.cx-shell .cx-sel-btn .v{font-size:var(--cx-fs)}
|
|
707
|
+
|
|
708
|
+
.cx-shell[data-theme="dark"]{--cx-bg:#050b12;--cx-surface-0:#03080e;--cx-surface-1:#08141f;--cx-surface-2:#0b1c2a;--cx-surface-3:#102738;--cx-glass:rgba(6,18,29,.9);--cx-text-strong:#effcff;--cx-text:#c6e5f1;--cx-text-dim:#7fa5b6;--cx-text-faint:#54788a;--cx-border:rgba(42,92,116,.55);--cx-border-strong:rgba(var(--cx-hue-rgb),.38);--cx-accent:var(--cx-cyan);--cx-accent-soft:rgba(var(--cx-hue-rgb),.09);--cx-shadow:0 18px 48px rgba(0,0,0,.45)}
|
|
709
|
+
.cx-shell[data-theme="light"]{--cx-bg:#edf5fa;--cx-surface-0:#e5f0f6;--cx-surface-1:#ffffff;--cx-surface-2:#f4fafd;--cx-surface-3:#e8f3f9;--cx-glass:rgba(255,255,255,.92);--cx-text-strong:#102f3e;--cx-text:#294c5d;--cx-text-dim:#5e7f8f;--cx-text-faint:#8ba5b1;--cx-border:#c9dde8;--cx-border-strong:#8fc5d9;--cx-accent:#0b7f9f;--cx-accent-soft:rgba(11,127,159,.08);--cx-shadow:0 16px 38px rgba(31,73,94,.12)}
|
|
710
|
+
|
|
711
|
+
.cx-shell{background:var(--cx-bg);color:var(--cx-text)}
|
|
712
|
+
.cx-shell .cx-header{background:var(--cx-surface-1);border-color:var(--cx-border);color:var(--cx-text)}
|
|
713
|
+
.cx-shell .cx-pipe{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text-dim)}
|
|
714
|
+
.cx-shell .cx-panel{background:var(--cx-surface-1);border-color:var(--cx-border);color:var(--cx-text);box-shadow:var(--cx-shadow)}
|
|
715
|
+
.cx-shell .cx-ph,.cx-shell .cx-tools{background:var(--cx-surface-2);border-color:var(--cx-border)}
|
|
716
|
+
.cx-shell .cx-ph .ttl{color:var(--cx-text-strong)}
|
|
717
|
+
.cx-shell .cx-list{background:var(--cx-surface-1)}
|
|
718
|
+
.cx-shell .cx-node,.cx-shell .cx-space,.cx-shell .cx-app{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
719
|
+
.cx-shell .cx-node:hover,.cx-shell .cx-space:hover,.cx-shell .cx-app:hover{background:var(--cx-surface-3);border-color:var(--cx-border-strong)}
|
|
720
|
+
.cx-shell .cx-node.on,.cx-shell .cx-space.on,.cx-shell .cx-app.on{background:var(--cx-accent-soft);border-color:var(--cx-accent)}
|
|
721
|
+
.cx-shell .cx-name,.cx-shell .cx-space .nm,.cx-shell .cx-app .an{color:var(--cx-text-strong)}
|
|
722
|
+
.cx-shell .cx-meta,.cx-shell .cx-app .ac,.cx-shell .cx-space .sub,.cx-shell .cx-sub{color:var(--cx-text-dim)}
|
|
723
|
+
.cx-shell .cx-log{background:var(--cx-surface-0);border-color:var(--cx-border)}
|
|
724
|
+
.cx-shell .cx-log-b{color:var(--cx-text-dim)}
|
|
725
|
+
.cx-shell .cx-line .m{color:var(--cx-text)}
|
|
726
|
+
.cx-shell .cx-line .t{color:var(--cx-text-faint)}
|
|
727
|
+
.cx-shell .cx-chat{background:var(--cx-surface-1);border-color:var(--cx-border-strong);color:var(--cx-text);box-shadow:var(--cx-shadow)}
|
|
728
|
+
.cx-shell .cx-chat.full{background:radial-gradient(1000px 540px at 15% 0%,var(--cx-accent-soft),transparent 60%),var(--cx-surface-1)}
|
|
729
|
+
.cx-shell .cx-chat-h{background:var(--cx-glass);border-color:var(--cx-border);color:var(--cx-text)}
|
|
730
|
+
.cx-shell .cx-chat-title{color:var(--cx-text-strong)}
|
|
731
|
+
.cx-shell .cx-chat-sub{color:var(--cx-text-dim)}
|
|
732
|
+
.cx-shell .cx-compose{background:var(--cx-surface-1);border-color:var(--cx-border-strong);box-shadow:var(--cx-shadow)}
|
|
733
|
+
.cx-shell .cx-compose-input{color:var(--cx-text)}
|
|
734
|
+
.cx-shell .cx-compose-input::placeholder{color:var(--cx-text-faint)}
|
|
735
|
+
.cx-shell .cx-sel-btn,.cx-shell .cx-compose .cx-sel-btn{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
736
|
+
.cx-shell .cx-sel-btn .v,.cx-shell .cx-sel-btn .a{color:var(--cx-text)}
|
|
737
|
+
.cx-shell .cx-sel-btn .v.ph{color:var(--cx-accent)}
|
|
738
|
+
.cx-shell .cx-pm-side{background:var(--cx-surface-2);border-color:var(--cx-border)}
|
|
739
|
+
.cx-shell .cx-pm-card{background:var(--cx-surface-1);border-color:var(--cx-border);color:var(--cx-text)}
|
|
740
|
+
.cx-shell .cx-pm-card:hover,.cx-shell .cx-pm-card.on{background:var(--cx-accent-soft);border-color:var(--cx-border-strong)}
|
|
741
|
+
.cx-shell .cx-pm-title{color:var(--cx-text-strong)}
|
|
742
|
+
.cx-shell .cx-pm-meta{color:var(--cx-text-dim)}
|
|
743
|
+
.cx-shell .cx-pm-act{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text-dim)}
|
|
744
|
+
.cx-shell .cx-msg{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
745
|
+
.cx-shell .cx-msg.user{background:var(--cx-accent-soft);border-color:var(--cx-border-strong)}
|
|
746
|
+
.cx-shell .cx-msg-body{color:var(--cx-text)}
|
|
747
|
+
.cx-shell .cx-msg-meta{color:var(--cx-text-faint)}
|
|
748
|
+
.cx-shell .cx-sysline{color:var(--cx-text-faint)}
|
|
749
|
+
.cx-shell .cx-hint-text{color:var(--cx-text-dim)}
|
|
750
|
+
.cx-shell .cx-hint-card{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
751
|
+
.cx-shell .cx-hint-card .hd{color:var(--cx-text-dim)}
|
|
752
|
+
.cx-shell .cx-suggest button{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
753
|
+
.cx-shell .cx-cal,.cx-shell .cx-taskmap{background:var(--cx-surface-1);border-color:var(--cx-border)}
|
|
754
|
+
.cx-shell .cx-card{background:var(--cx-surface-1);border-color:var(--cx-border-strong);color:var(--cx-text);box-shadow:var(--cx-shadow)}
|
|
755
|
+
.cx-shell .cx-input,.cx-shell .cx-form .cx-input{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
756
|
+
.cx-shell .cx-modal{background:color-mix(in srgb,var(--cx-surface-0) 72%,transparent)}
|
|
757
|
+
.cx-shell .cx-gate{background:var(--cx-surface-2);border-color:var(--cx-border-strong);color:var(--cx-text)}
|
|
758
|
+
.cx-shell .cx-gate-t{color:var(--cx-text-strong)}
|
|
759
|
+
.cx-shell .cx-gate-d{color:var(--cx-text-dim)}
|
|
760
|
+
.cx-shell .cx-btn{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text)}
|
|
761
|
+
.cx-shell .cx-btn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
762
|
+
.cx-shell .cx-btn.pri{background:var(--cx-accent-soft);border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
763
|
+
.cx-node-actions .cx-btn,.cx-space-actions .cx-btn,.cx-app-actions .cx-btn{border-color:var(--cx-line2);background:rgba(8,25,40,.7);color:var(--cx-text-dim);box-shadow:none}
|
|
764
|
+
.cx-node-actions .cx-btn:hover,.cx-space-actions .cx-btn:hover,.cx-app-actions .cx-btn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
765
|
+
.cx-node-actions .cx-btn.pri,.cx-space-actions .cx-btn.pri,.cx-app-actions .cx-btn.pri{border-color:var(--cx-line2);background:rgba(8,25,40,.7);color:var(--cx-text)}
|
|
766
|
+
.cx-node-actions .cx-btn.pri:hover,.cx-space-actions .cx-btn.pri:hover,.cx-app-actions .cx-btn.pri:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
767
|
+
.cx-tools .cx-btn{border-color:var(--cx-line2);background:rgba(8,25,40,.7);color:var(--cx-text-dim);box-shadow:none}
|
|
768
|
+
.cx-tools .cx-btn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
769
|
+
.cx-tools .cx-btn.pri{border-color:var(--cx-line2);background:rgba(8,25,40,.7);color:var(--cx-text)}
|
|
770
|
+
.cx-tools .cx-btn.pri:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
.cx-shell .cx-menu,.cx-shell .cx-sel-menu{background:var(--cx-surface-1);border-color:var(--cx-border-strong)}
|
|
774
|
+
.cx-shell .cx-menu-item,.cx-shell .cx-sel-item{color:var(--cx-text);border-color:var(--cx-border)}
|
|
775
|
+
.cx-shell .cx-menu-item:hover,.cx-shell .cx-sel-item:hover,.cx-shell .cx-sel-item.on{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
776
|
+
.cx-shell .cx-taskmap-leaflet .leaflet-container{background:var(--cx-surface-2)}
|
|
777
|
+
|
|
778
|
+
.cx-space-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;width:100%;margin-left:0;flex:none;margin-top:4px}
|
|
779
|
+
.cx-shell .cx-filter-btn{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text-dim)}
|
|
780
|
+
.cx-shell .cx-filter-btn.on{color:var(--cx-accent);border-color:var(--cx-accent);background:var(--cx-accent-soft)}
|
|
781
|
+
.cx-shell .cx-compose-plus{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-accent)}
|
|
782
|
+
.cx-shell .cx-chat .x{background:transparent;border:0;color:var(--cx-text-dim);font-size:var(--cx-fs-title);line-height:1;width:24px;height:24px;border-radius:5px}
|
|
783
|
+
.cx-shell .cx-chat .x:hover{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
784
|
+
.cx-shell .cx-pm-op,.cx-shell .cx-pm-refresh{color:var(--cx-text-dim)}
|
|
785
|
+
.cx-shell .cx-pm-op:hover,.cx-shell .cx-pm-refresh:hover{color:var(--cx-accent);background:var(--cx-accent-soft)}
|
|
786
|
+
.cx-shell .cx-tag{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text-dim)}
|
|
787
|
+
.cx-shell .cx-tag.cy{color:var(--cx-accent);border-color:var(--cx-border-strong)}
|
|
788
|
+
.cx-shell .cx-webtab{background:var(--cx-surface-2);border-color:var(--cx-border);color:var(--cx-text-dim)}
|
|
789
|
+
.cx-shell .cx-webtab.on{background:var(--cx-accent-soft);border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
790
|
+
.cx-shell .cx-filter-menu{background:var(--cx-surface-1);border-color:var(--cx-border-strong)}
|
|
791
|
+
.cx-shell .cx-filter-item{color:var(--cx-text)}
|
|
792
|
+
.cx-shell .cx-filter-item:hover,.cx-shell .cx-filter-item.on{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
793
|
+
.cx-shell .cx-cal-h button{color:var(--cx-text-dim)}
|
|
794
|
+
.cx-shell .cx-cal-h button:hover{color:var(--cx-accent)}
|
|
795
|
+
.cx-shell .leaflet-bar a{background:var(--cx-surface-1);color:var(--cx-text);border-color:var(--cx-border)}
|
|
796
|
+
.cx-shell .leaflet-bar a:hover{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
797
|
+
|
|
798
|
+
.cx-shell[data-theme="light"] .cx-preview,.cx-shell[data-theme="light"] .cx-webframe{background:#f4fafd}
|
|
799
|
+
.cx-shell[data-theme="light"] .cx-preview .cx-empty,.cx-shell[data-theme="light"] .cx-webframe .cx-empty{color:#678694;background:#f4fafd}
|
|
800
|
+
.cx-shell[data-theme="light"] .cx-official{background:#f3f9fc;border-color:#c9dde8}
|
|
801
|
+
.cx-shell[data-theme="light"] .cx-official label{color:#4c6e7e}
|
|
802
|
+
.cx-shell[data-theme="light"] .cx-chat-actions .cx-btn{background:#fff;border-color:#bcd4e1;color:#224a5b}
|
|
803
|
+
.cx-shell[data-theme="light"] .cx-chat .x{background:transparent;color:#5e7f8f}
|
|
804
|
+
.cx-shell[data-theme="light"] .cx-compose-send{background:linear-gradient(135deg,#73eaff,#45e9ad);color:#063d42;box-shadow:0 0 18px rgba(54,210,220,.28)}
|
|
805
|
+
.cx-shell[data-theme="light"] .cx-compose-plus{background:#fff;color:#0b7f9f;border-color:#bcd4e1}
|
|
806
|
+
.cx-shell[data-theme="light"] .cx-chat-h{box-shadow:0 1px 0 rgba(31,73,94,.06)}
|
|
807
|
+
|
|
808
|
+
.cx-console{flex:0 0 auto;border-top:1px solid var(--cx-border);background:var(--cx-surface-0);display:flex;flex-direction:column;min-height:80px;position:relative}
|
|
809
|
+
.cx-console-h{display:flex;align-items:center;gap:10px;padding:4px 10px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-2);font-size:var(--cx-fs-body);color:var(--cx-text-dim)}
|
|
810
|
+
.cx-console-tabs{display:flex;gap:2px}
|
|
811
|
+
.cx-console-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body)/1.5 var(--cx-font);padding:4px 8px;cursor:pointer;display:flex;gap:5px;align-items:center}
|
|
812
|
+
.cx-console-tab span{font-size:var(--cx-fs-body);color:var(--cx-text-faint)}
|
|
813
|
+
.cx-console-tab.on{color:var(--cx-accent);border-bottom-color:var(--cx-accent)}
|
|
814
|
+
.cx-console-status{margin-left:auto;font-size:var(--cx-fs-body);letter-spacing:.1em;color:var(--cx-text-faint)}
|
|
815
|
+
.cx-console-actions{display:flex;gap:3px}
|
|
816
|
+
.cx-console-actions button{width:22px;height:20px;padding:0;border:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-text);font:var(--cx-fs)/1 var(--cx-font);cursor:pointer;border-radius:3px}
|
|
817
|
+
.cx-console-actions button:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
818
|
+
.cx-console-body{flex:1;min-height:0;overflow:auto;padding:4px 12px;font-size:var(--cx-fs-body);line-height:1.6;color:var(--cx-text-dim);font-family:var(--cx-mono)}
|
|
819
|
+
.cx-console-table{width:100%;border-collapse:collapse;font-size:var(--cx-fs-body);font-family:var(--cx-mono)}
|
|
820
|
+
.cx-console-table th{position:sticky;top:0;z-index:1;background:var(--cx-surface-1);color:var(--cx-text-dim);text-align:left;font-weight:600;padding:3px 8px;border-bottom:1px solid var(--cx-border);cursor:pointer;white-space:nowrap;letter-spacing:.06em;user-select:none}
|
|
821
|
+
.cx-console-table th:hover{color:var(--cx-accent)}
|
|
822
|
+
.cx-console-table td{padding:2px 8px;border-bottom:1px solid color-mix(in srgb,var(--cx-border) 50%,transparent);vertical-align:top;word-break:break-all}
|
|
823
|
+
.cx-console-table tr:hover td{background:var(--cx-accent-soft)}
|
|
824
|
+
.cx-console-table tr.err td{color:var(--cx-red)}
|
|
825
|
+
.cx-console-table td:first-child{white-space:nowrap;color:var(--cx-text-dim)}
|
|
826
|
+
.cx-console-body{display:flex;align-items:stretch;padding:0}
|
|
827
|
+
.cx-console-main{flex:1;min-width:0;overflow:auto;padding:4px 8px}
|
|
828
|
+
.cx-console-detail{width:40%;min-width:260px;max-width:560px;border-left:1px solid var(--cx-border);overflow:auto;padding:8px 10px;font-size:var(--cx-fs-body);font-family:var(--cx-mono);align-self:flex-start;height:auto;max-height:100%;box-sizing:border-box}
|
|
829
|
+
.cx-console-detail-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:var(--cx-accent);font-size:var(--cx-fs-body);letter-spacing:.08em}
|
|
830
|
+
.cx-console-detail-h button{border:0;background:transparent;color:var(--cx-text-dim);cursor:pointer;font-size:var(--cx-fs);line-height:1}
|
|
831
|
+
.cx-console-detail .kv{display:grid;grid-template-columns:64px 1fr;gap:3px 8px;margin-bottom:8px}
|
|
832
|
+
.cx-console-detail .k{color:var(--cx-text-dim)}
|
|
833
|
+
.cx-console-detail pre{white-space:pre-wrap;word-break:break-all;background:var(--cx-surface-2);border:1px solid var(--cx-border);border-radius:4px;padding:6px;margin:0}
|
|
834
|
+
.cx-console-table tbody tr{cursor:pointer}
|
|
835
|
+
.cx-console-table tr.on td{background:var(--cx-accent-soft)}
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
.cx-console-resize{position:absolute;left:0;right:0;top:-3px;height:6px;cursor:ns-resize}
|
|
839
|
+
.cx-console-open{position:absolute;right:16px;bottom:12px;z-index:10;border:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-accent);font:var(--cx-fs-body) var(--cx-font);padding:4px 8px;cursor:pointer;border-radius:4px;box-shadow:var(--cx-shadow)}
|
|
840
|
+
|
|
841
|
+
.cx-shell[data-theme="light"] .cx-preview iframe,.cx-shell[data-theme="light"] .cx-webframe iframe{background:#f4fafd}
|
|
842
|
+
|
|
843
|
+
.cx-select{border:1px solid var(--cx-border);background:var(--cx-surface-2);color:var(--cx-text);font:var(--cx-fs-body)/1.2 var(--cx-font);padding:5px 6px;border-radius:5px;cursor:pointer;outline:none}
|
|
844
|
+
.cx-select:hover,.cx-select:focus{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
845
|
+
.cx-icon-btn{min-width:30px;width:30px;height:30px;padding:0;display:inline-grid;place-items:center;font-size:var(--cx-fs-title);line-height:1}
|
|
846
|
+
.cx-kind{display:inline-flex;align-items:center;padding:2px 5px;border:1px solid currentColor;border-radius:3px;font-size:var(--cx-fs-body);font-weight:800;letter-spacing:.06em}
|
|
847
|
+
.cx-kind.type-serve{color:#0b7f9f}.cx-kind.type-space{color:#7a5bd6}.cx-kind.type-recent{color:#b57416}
|
|
848
|
+
.cx-card-line{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
|
|
849
|
+
.cx-card-line .cx-name{min-width:0;flex:1}
|
|
850
|
+
.cx-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
|
|
851
|
+
.cx-status-r{font-size:var(--cx-fs-body);padding:2px 5px;border:1px solid var(--cx-border);border-radius:3px;color:var(--cx-text-dim)}
|
|
852
|
+
.cx-status-r.on{color:#3ff0a2;font-weight:700;border-color:rgba(127,201,168,.35);background:rgba(7,132,90,.10)}
|
|
853
|
+
.cx-status-r.off{color:#ff8196;font-weight:700;border-color:rgba(216,169,177,.30);background:rgba(160,70,80,.08)}
|
|
854
|
+
|
|
855
|
+
.cx-actions .cx-btn{flex:none;white-space:nowrap;height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
|
|
856
|
+
.cx-actions .cx-btn.cx-icon-btn{width:30px;min-width:30px;padding:0}
|
|
857
|
+
.cx-actions .cx-select{flex:none;width:auto;min-width:86px;height:30px}
|
|
858
|
+
.cx-actions .cx-chip{flex:none}
|
|
859
|
+
.cx-chips{min-width:0}
|
|
860
|
+
|
|
861
|
+
.cx-shell .cx-store{background:var(--cx-surface-1);border-color:var(--cx-border);color:var(--cx-text);flex-wrap:wrap}
|
|
862
|
+
.cx-shell .cx-store:hover{background:var(--cx-accent-soft);border-color:var(--cx-border-strong)}
|
|
863
|
+
.cx-shell .cx-store .sn{color:var(--cx-text-strong)}
|
|
864
|
+
.cx-shell .cx-store .ss{color:var(--cx-text-dim)}
|
|
865
|
+
.cx-store-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:100%;margin-left:0;flex-wrap:wrap;margin-top:6px;border-top:1px solid var(--cx-border);padding-top:6px}
|
|
866
|
+
.cx-store-titleline{display:flex;align-items:center;gap:6px;min-width:0}
|
|
867
|
+
.cx-store-titleline .sn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
868
|
+
.cx-store-actions .cx-btn{height:26px;padding:0 7px;font-size:var(--cx-fs-body)}
|
|
869
|
+
.cx-shell[data-theme="light"] .cx-store{background:#fff}
|
|
870
|
+
.cx-shell[data-theme="light"] .cx-store:hover{background:#eef8fc}
|
|
871
|
+
.cx-store-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer}
|
|
872
|
+
|
|
873
|
+
.cx-avatar-extra{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--cx-border);margin-top:8px;padding-top:8px}
|
|
874
|
+
.cx-avatar-preview{width:54px;height:54px;flex:none;border:1px solid var(--cx-border);border-radius:6px;overflow:hidden;background:var(--cx-surface-2);display:grid;place-items:center;color:var(--cx-accent);font-size:var(--cx-fs-body)}
|
|
875
|
+
.cx-avatar-preview img{width:100%;height:100%;object-fit:cover}
|
|
876
|
+
.cx-avatar-extra-title{font-size:var(--cx-fs);font-weight:700;color:var(--cx-text-strong)}
|
|
877
|
+
.cx-avatar-extra-sub{font-size:var(--cx-fs-body);color:var(--cx-text-dim);line-height:1.5;margin:2px 0 5px}
|
|
878
|
+
.cx-avatar-skills{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:5px}
|
|
879
|
+
.cx-avatar-skill-empty{font-size:var(--cx-fs-body);color:var(--cx-text-faint)}
|
|
880
|
+
.cx-avatar-skill-add{display:flex;gap:4px;align-items:center}
|
|
881
|
+
.cx-avatar-skill-add .cx-input{flex:1;min-width:0;height:26px}
|
|
882
|
+
|
|
883
|
+
.cx-pm-side.right{display:flex;flex-direction:column}
|
|
884
|
+
.cx-pm-side.right .cx-taskmap{margin-top:auto;position:sticky;bottom:0;flex:none}
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
.cx-cal-views{display:flex;gap:3px;padding:3px 0 6px}
|
|
891
|
+
.cx-cal-view{flex:1;border:1px solid var(--cx-border);background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body)/1.2 var(--cx-font);padding:4px 0;cursor:pointer;border-radius:3px}
|
|
892
|
+
.cx-cal-view.on{color:var(--cx-accent);border-color:var(--cx-accent);background:var(--cx-accent-soft)}
|
|
893
|
+
.cx-cal-years{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
|
|
894
|
+
.cx-cal-year,.cx-cal-month{border:1px solid var(--cx-border);background:var(--cx-surface-2);color:var(--cx-text);font:var(--cx-fs-body) var(--cx-font);padding:7px 2px;cursor:pointer;border-radius:3px}
|
|
895
|
+
.cx-cal-year.on,.cx-cal-month.on{background:var(--cx-accent-soft);border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
896
|
+
.cx-cal-months{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
|
|
897
|
+
.cx-cal-month{display:flex;flex-direction:column;gap:2px}
|
|
898
|
+
.cx-cal-month span{font-size:var(--cx-fs-body);color:var(--cx-text-faint);white-space:nowrap;overflow:hidden}
|
|
899
|
+
.cx-cal-day .l{position:static;margin-top:2px;font-size:calc(var(--cx-fs-body) - 1.5px);line-height:1.1;color:var(--cx-text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
|
|
900
|
+
.cx-cal-day{height:42px}
|
|
901
|
+
|
|
902
|
+
.cx-cal-day.on{background:color-mix(in srgb,var(--cx-accent) 14%,transparent);border-color:color-mix(in srgb,var(--cx-accent) 45%,transparent);color:var(--cx-text-strong)}
|
|
903
|
+
.cx-cal-day.start,.cx-cal-day.end{background:color-mix(in srgb,var(--cx-accent) 32%,transparent);border-color:var(--cx-accent);color:var(--cx-text-strong);font-weight:800;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cx-accent) 45%,transparent)}
|
|
904
|
+
|
|
905
|
+
/* 四步递进:标题底色由左至右渐深,01→04 一眼看出层级(2026-11-06) */
|
|
906
|
+
.cx-pipe>.cx-stage:nth-of-type(1){--cx-a:10%;--cx-b:2%}
|
|
907
|
+
.cx-pipe>.cx-stage:nth-of-type(2){--cx-a:16%;--cx-b:5%}
|
|
908
|
+
.cx-pipe>.cx-stage:nth-of-type(3){--cx-a:22%;--cx-b:8%}
|
|
909
|
+
.cx-pipe>.cx-stage:nth-of-type(4){--cx-a:28%;--cx-b:11%}
|
|
910
|
+
.cx-body>.cx-panel:nth-of-type(1){--cx-a:14%;--cx-b:4%}
|
|
911
|
+
.cx-body>.cx-panel:nth-of-type(2){--cx-a:20%;--cx-b:8%}
|
|
912
|
+
.cx-body>.cx-panel:nth-of-type(3){--cx-a:26%;--cx-b:12%}
|
|
913
|
+
.cx-body>.cx-panel:nth-of-type(4){--cx-a:32%;--cx-b:16%}
|
|
914
|
+
.cx-pipe>.cx-stage:not(.on){background-image:linear-gradient(90deg,color-mix(in srgb,var(--cx-accent) var(--cx-a,0%),transparent),color-mix(in srgb,var(--cx-accent) var(--cx-b,0%),transparent))}
|
|
915
|
+
.cx-body>.cx-panel>.cx-ph{background-image:linear-gradient(90deg,color-mix(in srgb,var(--cx-accent) var(--cx-a,0%),transparent),color-mix(in srgb,var(--cx-accent) var(--cx-b,0%),transparent))}
|
|
916
|
+
|
|
917
|
+
/* 窗口模式:对话 / 管理 / 开发;右上角给 DSH 图标留白(2026-11-06) */
|
|
918
|
+
.cx-shell{--cx-host-right:88px;--cx-host-left:168px;--cx-host-left-pad:0px;position:relative}
|
|
919
|
+
.cx-header{padding-left:calc(16px + var(--cx-host-left-pad))}
|
|
920
|
+
.cx-chat.full .cx-chat-hin{max-width:900px}
|
|
921
|
+
.cx-chat.full .cx-compose{max-width:900px}
|
|
922
|
+
.cx-chat.full .cx-hint{max-width:900px;width:calc(100% - 36px);padding:0}
|
|
923
|
+
.cx-chat.full .cx-hint-panel{max-width:900px;width:calc(100% - 36px);padding:0}
|
|
924
|
+
.cx-shell{--cx-pm-side-w:280px}
|
|
925
|
+
.cx-chat-host{flex:1;min-height:0;display:flex;min-width:0;padding:10px 12px 12px}
|
|
926
|
+
.cx-dev-host{flex:1;min-height:0;display:flex;min-width:0}
|
|
927
|
+
.cx-chat-host.full{position:absolute;inset:0;z-index:500;padding:0}
|
|
928
|
+
.cx-shell.host-chrome .cx-chat-host.full .cx-chat{padding-top:0}
|
|
929
|
+
.cx-chat.dock{position:relative;inset:auto;width:100%;height:100%;flex:1;min-height:0;border:1px solid var(--cx-line);z-index:1;box-shadow:none}
|
|
930
|
+
.cx-header{padding-right:calc(16px + var(--cx-host-right))}
|
|
931
|
+
.cx-header>.cx-actions{margin-left:auto}
|
|
932
|
+
.cx-pipe>.cx-chips{margin-left:auto;flex:none;flex-wrap:nowrap;padding-left:12px;overflow:hidden}
|
|
933
|
+
|
|
934
|
+
.cx-views{display:flex;flex:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;border:1px solid var(--cx-line);background:var(--cx-surface-1)}
|
|
935
|
+
.cx-view{padding:6px 10px;border:0;border-right:1px solid var(--cx-line);background:transparent;color:var(--cx-muted);font:700 var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.08em;cursor:pointer}
|
|
936
|
+
.cx-view:last-child{border-right:0}
|
|
937
|
+
.cx-view:hover{color:var(--cx-text)}
|
|
938
|
+
.cx-view.on{background:color-mix(in srgb,var(--cx-accent) 16%,transparent);color:var(--cx-accent)}
|
|
939
|
+
.cx-dev{flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:10px;padding:10px 12px 0;overflow:hidden}.cx-dev-wrap{flex:1;min-height:0;display:flex;flex-direction:column;min-width:0}
|
|
940
|
+
.cx-dev-wrap{position:relative}
|
|
941
|
+
.cx-dev-wrap>.cx-chat-bg{z-index:0}
|
|
942
|
+
.cx-dev-top,.cx-dev{position:relative;z-index:1}
|
|
943
|
+
.cx-dev-top{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--cx-line);background:var(--cx-surface-1);flex:none;flex-wrap:wrap}
|
|
944
|
+
.cx-dev-projects{display:flex;gap:4px;overflow:auto;flex:1;min-width:0;padding-bottom:2px}
|
|
945
|
+
.cx-dev-ptab{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--cx-border);border-radius:4px;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-mono);cursor:pointer;white-space:nowrap}
|
|
946
|
+
.cx-dev-ptab.on{color:var(--cx-accent);border-color:var(--cx-accent);background:var(--cx-accent-soft)}
|
|
947
|
+
.cx-dev-ptab .x{border:0;background:transparent;color:inherit;cursor:pointer;font-size:var(--cx-fs-body);padding:0}
|
|
948
|
+
.cx-dev-target{display:flex;gap:6px;flex:none}
|
|
949
|
+
.cx-dev{flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr) var(--cx-preview-w,360px);grid-template-rows:minmax(0,1fr) 200px;gap:8px;padding:8px 10px;overflow:hidden}
|
|
950
|
+
.cx-dev-explorer{grid-column:1;grid-row:1/3}
|
|
951
|
+
.cx-dev-editor{grid-column:2;grid-row:1}
|
|
952
|
+
.cx-dev-preview{grid-column:3;grid-row:1}
|
|
953
|
+
.cx-dev-term{grid-column:2/4;grid-row:2}
|
|
954
|
+
.cx-preview-wrap{display:flex;flex-direction:column}
|
|
955
|
+
.cx-preview-frame{flex:1;width:100%;border:0;background:var(--cx-surface-1)}
|
|
956
|
+
.cx-preview-wrap{background:var(--cx-surface-1)}
|
|
957
|
+
.cx-preview-empty{background:var(--cx-surface-1);color:var(--cx-text-faint);font:var(--cx-fs-body) var(--cx-mono);align-items:center;justify-content:center}
|
|
958
|
+
.cx-dev-preview{position:relative}
|
|
959
|
+
.cx-pane-refresh{position:absolute;top:6px;right:8px;z-index:3;width:20px;height:20px;border:1px solid var(--cx-border);border-radius:4px;background:rgba(6,20,32,.75);color:var(--cx-text-dim);cursor:pointer;font-size:var(--cx-fs);line-height:1}
|
|
960
|
+
.cx-pane-refresh:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
961
|
+
.cx-preview-grip{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:4}
|
|
962
|
+
.cx-preview-grip:hover{background:var(--cx-accent-soft)}
|
|
963
|
+
.cx-preview-md{flex:1;min-height:0;overflow:auto;padding:10px 12px;font:var(--cx-fs)/1.8 var(--cx-font);color:var(--cx-text)}
|
|
964
|
+
.cx-preview-md h1,.cx-preview-md h2,.cx-preview-md h3{margin:10px 0 6px;color:var(--cx-text-strong)}
|
|
965
|
+
.cx-preview-md pre{background:rgba(6,20,32,.7);padding:8px;border-radius:6px;overflow:auto}
|
|
966
|
+
.cx-preview-md code{font-family:var(--cx-mono);color:var(--cx-accent)}
|
|
967
|
+
.cx-preview-text{flex:1;min-height:0;overflow:auto;margin:0;padding:10px 12px;font:var(--cx-fs)/1.7 var(--cx-mono);color:var(--cx-text-dim);white-space:pre-wrap}
|
|
968
|
+
|
|
969
|
+
.cx-dev .cx-dev-editor{background:transparent}
|
|
970
|
+
.cx-dev .cx-editor-wrap,.cx-dev .cx-editor-host,.cx-dev .cx-editor-ta{background:transparent}
|
|
971
|
+
.cx-dev .cx-editor-host .monaco-editor,.cx-dev .cx-editor-host .monaco-editor .margin,.cx-dev .cx-editor-host .monaco-editor-background,.cx-dev .cx-editor-host .monaco-editor .overflow-guard{background:transparent!important}
|
|
972
|
+
.cx-dev .cx-dev-editor{border:0}
|
|
973
|
+
.cx-dev .cx-dev-editor .cx-dev-h{border-bottom:0}
|
|
974
|
+
.cx-dev .cx-tabs{background:transparent;border:0}
|
|
975
|
+
.cx-dev .cx-editor-wrap,.cx-dev .cx-editor-host,.cx-dev .cx-editor-ta,.cx-dev .cx-dev-editor,.cx-dev .cx-dev-editor .cx-dev-b{border:0!important;box-shadow:none!important;outline:0!important}
|
|
976
|
+
.cx-dev.hide-left{grid-template-columns:minmax(0,1fr) var(--cx-preview-w,360px)}
|
|
977
|
+
.cx-dev.hide-right{grid-template-columns:220px minmax(0,1fr)}
|
|
978
|
+
.cx-dev.hide-left.hide-right{grid-template-columns:minmax(0,1fr)}
|
|
979
|
+
.cx-dev.hide-bottom{grid-template-rows:minmax(0,1fr)}
|
|
980
|
+
.cx-dev.hide-left .cx-dev-explorer{display:none}
|
|
981
|
+
.cx-dev.hide-left .cx-dev-editor{grid-column:1}
|
|
982
|
+
.cx-dev.hide-left .cx-dev-preview{grid-column:2}
|
|
983
|
+
.cx-dev.hide-left .cx-dev-term{grid-column:1/3}
|
|
984
|
+
.cx-dev.hide-right .cx-dev-preview{display:none}
|
|
985
|
+
.cx-dev.hide-right .cx-dev-term{grid-column:2/3}
|
|
986
|
+
.cx-dev.hide-left.hide-right .cx-dev-editor{grid-column:1}
|
|
987
|
+
.cx-dev.hide-left.hide-right .cx-dev-term{grid-column:1/2}
|
|
988
|
+
.cx-dev.hide-bottom .cx-dev-term{display:none}
|
|
989
|
+
.cx-dev.hide-bottom .cx-dev-explorer{grid-row:1/2}
|
|
990
|
+
.cx-pm-op.on{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
991
|
+
.cx-pm-op.cx-pm-txt{width:auto;min-width:34px;padding:0 6px;font:var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.04em}
|
|
992
|
+
|
|
993
|
+
.cx-dev .cx-editor-host .monaco-editor,.cx-dev .cx-editor-host .monaco-editor .overflow-guard,.cx-dev .cx-editor-host .monaco-editor .margin{border:0!important;box-shadow:none!important;outline:0!important}
|
|
994
|
+
.cx-dev .cx-tabs,.cx-dev .cx-tabs .cx-tab{border-bottom:0!important;box-shadow:none!important}
|
|
995
|
+
.cx-dev .cx-crumb{border:0}
|
|
996
|
+
.cx-dev .cx-tab{border-right:0}
|
|
997
|
+
.cx-dev .cx-tab .ico{font-size:var(--cx-fs-body);font-weight:800;letter-spacing:0;color:var(--cx-text-faint);min-width:12px;text-align:center}
|
|
998
|
+
.cx-dev .cx-tab.on .ico{color:var(--cx-accent)}
|
|
999
|
+
.cx-crumb{display:flex;align-items:center;gap:3px;padding:3px 10px;background:transparent;font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-dim);overflow:auto;flex:none;white-space:nowrap}
|
|
1000
|
+
.cx-crumb .seg{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:3px;cursor:pointer}
|
|
1001
|
+
.cx-crumb .seg:hover{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
1002
|
+
.cx-crumb .seg.file{color:var(--cx-text)}
|
|
1003
|
+
.cx-crumb .ci{opacity:.65;font-size:var(--cx-fs-body)}
|
|
1004
|
+
.cx-crumb .sep{opacity:.45}
|
|
1005
|
+
.cx-crumb-actions{margin-left:auto;display:flex;gap:2px;flex:none}
|
|
1006
|
+
.cx-git-log .h{color:var(--cx-accent);font:var(--cx-fs-body) var(--cx-mono);flex:none}
|
|
1007
|
+
.cx-git-log .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1008
|
+
.cx-git-log .when{flex:none;font-size:var(--cx-fs-body);opacity:.55}
|
|
1009
|
+
.cx-statusbar{display:flex;align-items:center;gap:10px;padding:3px 10px;border-top:1px solid var(--cx-border);background:var(--cx-surface-1);font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-dim);flex:none;overflow:hidden}
|
|
1010
|
+
.cx-statusbar .spacer{flex:1}
|
|
1011
|
+
.cx-statusbar .sep{width:1px;height:10px;background:var(--cx-border)}
|
|
1012
|
+
.cx-statusbar .sb-path{max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cx-text)}
|
|
1013
|
+
.cx-statusbar .sb-branch{color:var(--cx-accent)}
|
|
1014
|
+
.cx-tree-sect.cx-tree-sect-top{border-top:1px solid var(--cx-border);border-radius:0;margin-top:8px;padding-top:9px}
|
|
1015
|
+
.cx-git-count{margin-left:6px;padding:0 5px;border-radius:8px;background:var(--cx-accent-soft);color:var(--cx-accent);font-size:var(--cx-fs-body)}
|
|
1016
|
+
.cx-tree-item .cx-git-badge{margin-left:auto;width:12px;text-align:center;font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-muted)}
|
|
1017
|
+
.cx-git-badge.mod{color:#ffb454}.cx-git-badge.add{color:var(--cx-green)}.cx-git-badge.del{color:#ff5c7a}.cx-git-badge.unt{color:#8fd9b6}
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
.cx-dev .cx-tab{background:rgba(10,32,49,.65);border:0;border-top:2px solid transparent;border-radius:4px 4px 0 0;margin:0 2px 0 0}
|
|
1021
|
+
.cx-dev .cx-tab:hover{background:rgba(14,42,62,.8);color:var(--cx-text)}
|
|
1022
|
+
.cx-dev .cx-tab.on{background:transparent;border-top-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1023
|
+
.cx-dev .cx-tab .x{color:inherit}
|
|
1024
|
+
.cx-menu-item .hint{margin-left:auto;padding-left:12px;opacity:.5;font-size:var(--cx-fs-body)}
|
|
1025
|
+
.cx-menu-item .lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
|
|
1026
|
+
.cx-menu-item.on{color:var(--cx-accent)}
|
|
1027
|
+
.cx-tree-menu{position:fixed;z-index:900;min-width:150px;padding:4px;border:1px solid var(--cx-border-strong);border-radius:6px;background:var(--cx-surface-1);box-shadow:0 12px 30px rgba(0,0,0,.45)}
|
|
1028
|
+
.cx-namedlg{position:fixed;z-index:950;left:50%;top:30%;transform:translateX(-50%);width:min(360px,80vw);padding:12px;border:1px solid var(--cx-border-strong);border-radius:8px;background:var(--cx-surface-1);box-shadow:0 18px 50px rgba(0,0,0,.5)}
|
|
1029
|
+
.cx-namedlg .t{font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-accent);margin-bottom:8px}
|
|
1030
|
+
.cx-namedlg .cx-input{width:100%;margin-bottom:8px}
|
|
1031
|
+
.cx-namedlg .b{display:flex;justify-content:flex-end;gap:8px}
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
.cx-dev-col{display:flex;flex-direction:column;min-height:0;min-width:0;border:1px solid var(--cx-line);background:var(--cx-surface-1)}
|
|
1035
|
+
.cx-dev-h{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--cx-line);background:var(--cx-surface-2);font:700 var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.14em;color:var(--cx-text-dim)}
|
|
1036
|
+
.cx-dev-hint{margin-left:auto;font-weight:400;letter-spacing:.06em;opacity:.7}
|
|
1037
|
+
.cx-dev-b{flex:1;min-height:0;overflow:auto}
|
|
1038
|
+
.cx-tree{padding:8px 10px;font:var(--cx-fs)/1.9 var(--cx-font);color:var(--cx-text-dim)}
|
|
1039
|
+
.cx-tree .d{color:var(--cx-text)}
|
|
1040
|
+
.cx-tree .f{padding-left:14px;color:var(--cx-text-dim)}
|
|
1041
|
+
.cx-tabs{display:flex;border-bottom:1px solid var(--cx-line);background:var(--cx-surface-2);overflow:auto}
|
|
1042
|
+
.cx-tab{padding:7px 12px;border-right:1px solid var(--cx-line);font:var(--cx-fs)/1 var(--cx-font);color:var(--cx-text-dim);white-space:nowrap}
|
|
1043
|
+
.cx-tab.on{background:var(--cx-surface-1);color:var(--cx-text-strong);box-shadow:inset 0 -2px 0 var(--cx-accent)}
|
|
1044
|
+
.cx-code{margin:0;padding:12px 14px;font:var(--cx-fs)/1.8 var(--cx-font);color:var(--cx-text-faint);white-space:pre;overflow:auto}
|
|
1045
|
+
.cx-tree{display:flex;flex-direction:column;padding:4px 0}
|
|
1046
|
+
.cx-tree-item{display:flex;align-items:center;gap:6px;padding:3px 8px;font:var(--cx-fs) var(--cx-mono);color:var(--cx-text-dim);cursor:pointer;white-space:nowrap;overflow:hidden}
|
|
1047
|
+
.cx-tree-item:hover{background:var(--cx-accent-soft);color:var(--cx-text)}
|
|
1048
|
+
.cx-tree-item.on{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
1049
|
+
.cx-tree-item .ico{width:10px;flex:none;opacity:.8}
|
|
1050
|
+
.cx-tree-item .nm{overflow:hidden;text-overflow:ellipsis}
|
|
1051
|
+
.cx-tree-item .chev{width:10px;flex:none;opacity:.6;font-size:var(--cx-fs-body)}
|
|
1052
|
+
.cx-tree-item .fic{width:14px;display:inline-flex;align-items:center;justify-content:center;flex:none}
|
|
1053
|
+
.cx-tree-item .chev{display:inline-flex;align-items:center;justify-content:center;color:var(--cx-text-faint)}
|
|
1054
|
+
.cx-tree-recent{border-bottom:1px solid var(--cx-line);padding-bottom:4px;margin-bottom:4px}
|
|
1055
|
+
.cx-tree-sect{display:flex;align-items:center;gap:6px;padding:6px 8px;margin:2px 0;border-radius:4px;cursor:pointer;font:600 var(--cx-fs) var(--cx-font);letter-spacing:.02em;color:var(--cx-text-dim);position:sticky;top:0;z-index:3;background:var(--cx-surface-1)}
|
|
1056
|
+
.cx-tree-sect:hover{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
1057
|
+
.cx-tree-sect .chev{width:10px;display:inline-flex;align-items:center;justify-content:center;opacity:.7}
|
|
1058
|
+
.cx-crumb-sep{width:1px;height:12px;margin:0 4px;background:var(--cx-border)}
|
|
1059
|
+
|
|
1060
|
+
.cx-editor-wrap{position:relative;display:flex;flex-direction:column;overflow:hidden}
|
|
1061
|
+
.cx-editor-host{flex:1;min-height:0;width:100%;min-height:220px}
|
|
1062
|
+
.cx-editor-ta{flex:1;width:100%;min-height:220px;border:0;resize:none;background:#1e1e1e;color:#d4d4d4;font:var(--cx-fs)/1.6 Menlo,monospace;padding:10px;outline:none}
|
|
1063
|
+
.cx-term-wrap{display:flex;flex-direction:column;background:#04101a;overflow:hidden}
|
|
1064
|
+
.cx-term-h{padding:4px 8px;border-bottom:1px solid var(--cx-line)}
|
|
1065
|
+
.cx-term-tabs{display:flex;gap:4px;align-items:center}
|
|
1066
|
+
.cx-term-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cx-text-dim);font:600 var(--cx-fs-body) var(--cx-font);letter-spacing:.10em;text-transform:uppercase;padding:4px 10px;cursor:pointer}
|
|
1067
|
+
.cx-term-tab.on{color:var(--cx-accent);border-bottom-color:var(--cx-accent)}
|
|
1068
|
+
.cx-term-sessions{display:flex;gap:4px;align-items:center;margin-left:8px}
|
|
1069
|
+
.cx-term-sess{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border:1px solid var(--cx-border);border-radius:3px;font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-dim);cursor:pointer}
|
|
1070
|
+
.cx-term-sess.on{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
1071
|
+
.cx-term-sess .x{border:0;background:transparent;color:inherit;font-size:var(--cx-fs-body);cursor:pointer;padding:0 0 0 4px;opacity:.35}
|
|
1072
|
+
.cx-term-sess:hover .x{opacity:1}
|
|
1073
|
+
.cx-term-add{border:1px solid var(--cx-border);background:transparent;color:var(--cx-text-dim);border-radius:3px;font-size:var(--cx-fs);line-height:1;padding:1px 6px;cursor:pointer}
|
|
1074
|
+
.cx-term-add:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
1075
|
+
.cx-term-out{margin:0;padding:8px 10px;font:var(--cx-fs)/1.6 var(--cx-mono);color:var(--cx-text-dim);white-space:pre-wrap}
|
|
1076
|
+
|
|
1077
|
+
.cx-term-host{flex:1;min-height:0;padding:4px}
|
|
1078
|
+
.cx-dev-status{font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-dim);padding:4px 8px;border-top:1px solid var(--cx-border)}
|
|
1079
|
+
.cx-dev-status.err{color:var(--cx-red)}
|
|
1080
|
+
.cx-dev-statusbar{display:flex;align-items:center;gap:8px;padding:4px 8px;border-top:1px solid var(--cx-border);font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-dim)}
|
|
1081
|
+
.cx-dev-statusbar .cx-btn{margin-left:auto}
|
|
1082
|
+
.cx-tab{display:flex;align-items:center;gap:6px;cursor:pointer}
|
|
1083
|
+
.cx-tab.on{color:var(--cx-accent);background:var(--cx-accent-soft)}
|
|
1084
|
+
.cx-tab .x{border:0;background:transparent;color:var(--cx-text-dim);cursor:pointer;font-size:var(--cx-fs);line-height:1}
|
|
1085
|
+
.cx-dev-soon{margin:12px;padding:12px 14px;border:1px dashed var(--cx-border-strong);background:var(--cx-surface-2)}
|
|
1086
|
+
.cx-dev-soon .t{font:800 var(--cx-fs)/1.4 var(--cx-font);letter-spacing:.12em;color:var(--cx-accent)}
|
|
1087
|
+
.cx-dev-soon .d{margin-top:4px;font-size:var(--cx-fs);line-height:1.7;color:var(--cx-text-dim)}
|
|
1088
|
+
.cx-dev-soon ul{margin:6px 0 0;padding-left:16px;font-size:var(--cx-fs);line-height:1.8;color:var(--cx-text-dim)}
|
|
1089
|
+
@media(max-width:1100px){.cx-dev{grid-template-columns:1fr;overflow:auto}.cx-dev-col{min-height:220px}}
|
|
1090
|
+
@media(max-width:1000px){.cx-brand{min-width:0}.cx-brand .cx-sub{display:none}.cx-chips{display:none}.cx-header{gap:10px}.cx-views{position:static;transform:none;left:auto;top:auto}}
|
|
1091
|
+
|
|
1092
|
+
@media(max-width:900px){.cx-shell{--cx-host-right:56px}}
|
|
1093
|
+
|
|
1094
|
+
/* 我的背景:照片虚拟世界 + 输入区小按钮(2026-11-06) */
|
|
1095
|
+
.cx-chat-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
|
|
1096
|
+
.cx-chat-bg img{width:100%;height:100%;object-fit:cover;display:block;opacity:.55}
|
|
1097
|
+
.cx-chat-bg.photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,18,.35),rgba(4,10,18,.72))}
|
|
1098
|
+
.cx-shell[data-theme="light"] .cx-chat-bg img{opacity:.55}
|
|
1099
|
+
.cx-shell[data-theme="light"] .cx-chat-bg.photo:after{background:linear-gradient(180deg,rgba(238,246,251,.28),rgba(238,246,251,.72))}
|
|
1100
|
+
.cx-compose-mini{height:32px;min-width:32px;padding:0 6px;border:1px solid rgba(30,70,92,.7);background:rgba(7,20,32,.55);color:var(--cx-text-dim);font-size:var(--cx-fs);line-height:1;cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center}
|
|
1101
|
+
.cx-compose-mini:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
1102
|
+
.cx-shell[data-theme="light"] .cx-compose-mini{background:#fff;border-color:#bcd4e1;color:#33586a}
|
|
1103
|
+
|
|
1104
|
+
/* 右键菜单:数字人 / 背景(2026-11-06) */
|
|
1105
|
+
.cx-ctxmenu{position:fixed;z-index:600;min-width:176px;padding:4px;background:var(--cx-surface-1);border:1px solid var(--cx-border);box-shadow:var(--cx-shadow)}
|
|
1106
|
+
.cx-ctxmenu-t{padding:6px 10px 5px;font:700 var(--cx-fs-body)/1.2 var(--cx-font);letter-spacing:.12em;color:var(--cx-text-faint);border-bottom:1px solid var(--cx-border);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1107
|
+
.cx-ctxmenu button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;background:transparent;color:var(--cx-text);font:var(--cx-fs)/1.4 var(--cx-font);cursor:pointer;white-space:nowrap}
|
|
1108
|
+
.cx-ctxmenu button:hover{background:color-mix(in srgb,var(--cx-accent) 14%,transparent);color:var(--cx-accent)}
|
|
1109
|
+
.cx-chat-actions .cx-btn.on{color:var(--cx-accent);border-color:var(--cx-accent);background:color-mix(in srgb,var(--cx-accent) 12%,transparent)}
|
|
1110
|
+
|
|
1111
|
+
.cx-shell[data-theme="light"] .cx-init .cx-input{background:rgba(4,16,26,.92);border-color:rgba(var(--cx-hue-rgb),.28);color:#e6fbff}
|
|
1112
|
+
.cx-shell[data-theme="light"] .cx-init .cx-input:focus{border-color:var(--cx-cyan);box-shadow:0 0 0 2px rgba(var(--cx-hue-rgb),.18)}
|
|
1113
|
+
.cx-shell[data-theme="light"] .cx-init .cx-form label{color:#8fb8c9}
|
|
1114
|
+
.cx-shell[data-theme="light"] .cx-init .cx-btn{background:rgba(8,26,40,.92);border:1px solid rgba(var(--cx-hue-rgb),.35);color:#cfeff9}
|
|
1115
|
+
.cx-shell[data-theme="light"] .cx-init .cx-btn:hover{border-color:var(--cx-cyan);color:#eaffff}
|
|
1116
|
+
.cx-shell[data-theme="light"] .cx-init .cx-btn.pri{background:linear-gradient(90deg,rgba(10,108,134,.95),rgba(10,143,106,.95));border-color:var(--cx-cyan);color:#eaffff;box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.35)}
|
|
1117
|
+
|
|
1118
|
+
.cx-init-wiz{display:flex;gap:6px;margin:4px 0 12px}
|
|
1119
|
+
.cx-init-tab{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid rgba(var(--cx-hue-rgb),.25);background:rgba(6,22,34,.7);color:#8fb8c9;cursor:pointer;text-align:left;font:var(--cx-fs-body) var(--cx-mono);border-radius:2px}
|
|
1120
|
+
.cx-init-tab b{color:var(--cx-cyan);font-size:var(--cx-fs)}
|
|
1121
|
+
.cx-init-tab i{font-size:var(--cx-fs-body);letter-spacing:.1em;color:rgba(143,184,201,.6);font-style:normal}
|
|
1122
|
+
.cx-init-tab.on{border-color:var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.12);color:#eaffff;box-shadow:0 0 16px rgba(var(--cx-hue-rgb),.25)}
|
|
1123
|
+
.cx-init-tab.done b:after{content:" ✓";color:var(--cx-green)}
|
|
1124
|
+
.cx-init-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
|
|
1125
|
+
.cx-init-mode{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border:1px solid rgba(var(--cx-hue-rgb),.22);background:rgba(4,14,22,.8);color:#8fb8c9;cursor:pointer;text-align:left;border-radius:2px}
|
|
1126
|
+
.cx-init-mode b{font-size:var(--cx-fs-body);color:#cfeff9}
|
|
1127
|
+
.cx-init-mode span{font-size:var(--cx-fs-body);color:#6f97a9}
|
|
1128
|
+
.cx-init-mode.on{border-color:var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.12);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.25)}
|
|
1129
|
+
.cx-init-mode.on b{color:#eaffff}
|
|
1130
|
+
.cx-init-login{display:flex;align-items:center;gap:10px;margin-top:10px;font:var(--cx-fs-body) var(--cx-mono);flex-wrap:wrap}
|
|
1131
|
+
.cx-init-login .ok{color:var(--cx-green)}
|
|
1132
|
+
.cx-init-login .err{color:var(--cx-red)}
|
|
1133
|
+
.cx-init-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
|
|
1134
|
+
.cx-init-sub{display:flex;flex-direction:column;gap:6px}
|
|
1135
|
+
.cx-init-sub h3{margin:0;font:var(--cx-fs-body) var(--cx-mono);letter-spacing:.12em;color:var(--cx-cyan)}
|
|
1136
|
+
.cx-init-pic{height:120px;border:1px dashed rgba(var(--cx-hue-rgb),.35);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;background:rgba(4,16,26,.6)}
|
|
1137
|
+
.cx-init-pic img{width:100%;height:100%;object-fit:cover}
|
|
1138
|
+
.cx-init-pic .ph{display:flex;flex-direction:column;gap:4px;align-items:center;color:#8fb8c9;font-size:var(--cx-fs-body)}
|
|
1139
|
+
.cx-init-pic .ph b{color:var(--cx-cyan)}
|
|
1140
|
+
.cx-init-pic .ph span{font-size:var(--cx-fs-body);color:#6f97a9}
|
|
1141
|
+
.cx-init-sum{font:var(--cx-fs-body) var(--cx-mono);color:#8fb8c9;margin-top:8px}
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
/* ── 按钮一律不用强调色描边:只有数据卡片与页签才高亮 ─────────────── */
|
|
1145
|
+
.cx-shell .cx-btn,
|
|
1146
|
+
.cx-shell .cx-btn:hover,
|
|
1147
|
+
.cx-shell .cx-btn.pri,
|
|
1148
|
+
.cx-shell .cx-btn.pri:hover,
|
|
1149
|
+
.cx-shell .cx-pm-op,
|
|
1150
|
+
.cx-shell .cx-pm-op:hover,
|
|
1151
|
+
.cx-shell .cx-pm-op.on,
|
|
1152
|
+
.cx-shell .cx-pane-refresh,
|
|
1153
|
+
.cx-shell .cx-pane-refresh:hover,
|
|
1154
|
+
.cx-shell .cx-term-add,
|
|
1155
|
+
.cx-shell .cx-term-add:hover,
|
|
1156
|
+
.cx-shell .cx-compose-plus:hover,
|
|
1157
|
+
.cx-shell .cx-compose-mini:hover,
|
|
1158
|
+
.cx-shell .cx-sel-btn:hover,
|
|
1159
|
+
.cx-shell .cx-sel-btn.on,
|
|
1160
|
+
.cx-shell .cx-webstatus:hover,
|
|
1161
|
+
.cx-shell .cx-addrbar .nav:hover:not(:disabled),
|
|
1162
|
+
.cx-shell .cx-suggest button:hover,
|
|
1163
|
+
.cx-shell .cx-hint-card:hover,
|
|
1164
|
+
.cx-shell .cx-hint-card.on,
|
|
1165
|
+
.cx-shell .cx-pm-act:hover,
|
|
1166
|
+
.cx-shell .cx-console-actions button:hover,
|
|
1167
|
+
.cx-shell .cx-taskmap-actions button:hover,
|
|
1168
|
+
.cx-shell .cx-chat-actions .cx-btn.on,
|
|
1169
|
+
.cx-shell .cx-filter-chip:hover,
|
|
1170
|
+
.cx-shell .cx-filter-chip.on,
|
|
1171
|
+
.cx-shell .cx-filter-btn:hover,
|
|
1172
|
+
.cx-shell .cx-filter-btn.on {
|
|
1173
|
+
border-color: var(--cx-line2) !important;
|
|
1174
|
+
box-shadow: none !important;
|
|
1175
|
+
}
|
|
1176
|
+
/* 主按钮靠底色/文字体现,不靠描边 */
|
|
1177
|
+
.cx-shell .cx-btn.pri,
|
|
1178
|
+
.cx-shell .cx-chat-actions .cx-btn.on {
|
|
1179
|
+
background: var(--cx-accent-soft);
|
|
1180
|
+
color: var(--cx-accent);
|
|
1181
|
+
}
|
|
1182
|
+
.cx-shell .cx-select:hover,
|
|
1183
|
+
.cx-shell .cx-select:focus {
|
|
1184
|
+
border-color: var(--cx-line2) !important;
|
|
1185
|
+
color: var(--cx-accent);
|
|
1186
|
+
box-shadow: none !important;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
/* ── 卡片 / 按钮 / 标签:悬停统一背景高亮 ─────────────────────────────── */
|
|
1190
|
+
.cx-shell :is(.cx-btn,.cx-pm-op,.cx-pm-act,.cx-filter-chip,.cx-filter-btn,.cx-filter,.cx-sel-btn,
|
|
1191
|
+
.cx-compose-plus,.cx-compose-mini,.cx-suggest button,.cx-hint-card,.cx-webstatus,.cx-addrbar .nav,
|
|
1192
|
+
.cx-pane-refresh,.cx-term-add,.cx-term-tab,.cx-term-sess,.cx-tab,.cx-chat-tab,.cx-init-tab,.cx-init-mode,
|
|
1193
|
+
.cx-console-actions button,.cx-taskmap-actions button):hover {
|
|
1194
|
+
background: rgba(var(--cx-hue-rgb),.10);
|
|
1195
|
+
}
|
|
1196
|
+
.cx-shell :is(.cx-btn.pri,.cx-chat-actions .cx-btn.on):hover {
|
|
1197
|
+
background: color-mix(in srgb, var(--cx-accent) 20%, transparent);
|
|
1198
|
+
}
|
|
1199
|
+
.cx-shell :is(.cx-node,.cx-space,.cx-app,.cx-avatar,.cx-hint-card,.cx-cal-day):hover {
|
|
1200
|
+
background: rgba(var(--cx-hue-rgb),.07);
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
/* ── 统一下拉:所有选择器同一套外观 ───────────────────────────────── */
|
|
1204
|
+
.cx-drop{position:relative;display:inline-flex;align-items:center}
|
|
1205
|
+
.cx-drop-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--cx-line2);border-radius:4px;background:var(--cx-surface-2);color:var(--cx-text);font:var(--cx-fs) var(--cx-font);cursor:pointer;box-sizing:border-box}
|
|
1206
|
+
.cx-drop-btn:hover{background:rgba(var(--cx-hue-rgb),.10)}
|
|
1207
|
+
.cx-drop-btn.on{color:var(--cx-accent)}
|
|
1208
|
+
.cx-drop-btn .cv{opacity:.55;font-size:var(--cx-fs-body)}
|
|
1209
|
+
.cx-drop-pop{position:absolute;left:8px;top:100%;margin-top:4px;z-index:950;min-width:150px;padding:4px;border:1px solid var(--cx-line2);border-radius:6px;background:var(--cx-surface-1);box-shadow:0 14px 36px rgba(0,0,0,.5)}
|
|
1210
|
+
.cx-drop-item{display:flex;align-items:center;gap:8px;width:100%;border:0;text-align:left;background:transparent;color:var(--cx-text);font:var(--cx-fs) var(--cx-font);padding:6px 8px;border-radius:4px;cursor:pointer;white-space:nowrap}
|
|
1211
|
+
.cx-drop-item:hover{background:rgba(var(--cx-hue-rgb),.12);color:var(--cx-accent)}
|
|
1212
|
+
.cx-drop-item.on{color:var(--cx-accent)}
|
|
1213
|
+
.cx-drop-item .ck{margin-left:auto;padding-left:12px;width:12px;flex:none;font-size:var(--cx-fs-body);opacity:.9;text-align:right}
|
|
1214
|
+
/* 菜单类弹层与下拉保持同一套圆角/描边/阴影 */
|
|
1215
|
+
.cx-menu,.cx-tree-menu{border-radius:6px;background:var(--cx-surface-1);border:1px solid var(--cx-line2);box-shadow:0 14px 36px rgba(0,0,0,.5);padding:4px}
|
|
1216
|
+
|
|
1217
|
+
/* 浅色主题:文件标签 */
|
|
1218
|
+
.cx-shell[data-theme="light"] .cx-dev .cx-tab{background:rgba(9,60,80,.06);color:var(--cx-text-dim);border-top-color:transparent}
|
|
1219
|
+
.cx-shell[data-theme="light"] .cx-dev .cx-tab:hover{background:rgba(9,60,80,.11);color:var(--cx-text)}
|
|
1220
|
+
.cx-shell[data-theme="light"] .cx-dev .cx-tab.on{background:transparent;border-top-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1221
|
+
.cx-shell[data-theme="light"] .cx-dev .cx-tab.on .ico{color:var(--cx-accent)}
|
|
1222
|
+
.cx-shell[data-theme="light"] .cx-dev .cx-tab .ico{color:var(--cx-text-faint)}
|
|
1223
|
+
|
|
1224
|
+
.cx-shell[data-theme="light"] .cx-editor-ta{background:transparent;color:var(--cx-text)}
|
|
1225
|
+
.cx-shell[data-theme="light"] .cx-editor-host .monaco-editor,
|
|
1226
|
+
.cx-shell[data-theme="light"] .cx-editor-host .monaco-editor-background,
|
|
1227
|
+
.cx-shell[data-theme="light"] .cx-editor-host .monaco-editor .margin{background:transparent!important}
|
|
1228
|
+
|
|
1229
|
+
/* 请求日志 */
|
|
1230
|
+
.cx-term-badge{margin-left:5px;font-size:var(--cx-fs-body);letter-spacing:0;color:var(--cx-text-faint)}
|
|
1231
|
+
.cx-req-list{display:flex;flex-direction:column;padding:4px 6px}
|
|
1232
|
+
.cx-req-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--cx-line);background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-mono);padding:5px 6px;cursor:pointer}
|
|
1233
|
+
.cx-req-row:hover{background:rgba(var(--cx-hue-rgb),.10);color:var(--cx-text)}
|
|
1234
|
+
.cx-req-row .at{flex:none;color:var(--cx-text)}
|
|
1235
|
+
.cx-req-row .ms,.cx-req-row .tk{flex:none;opacity:.75}
|
|
1236
|
+
.cx-req-row .msg{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1237
|
+
.cx-req-detail{display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow:auto}
|
|
1238
|
+
.cx-req-detail .kv{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font:var(--cx-fs-body) var(--cx-mono)}
|
|
1239
|
+
.cx-req-detail .kv .row{display:flex;gap:8px}
|
|
1240
|
+
.cx-req-detail .kv .k{color:var(--cx-text-faint);flex:none}
|
|
1241
|
+
.cx-req-detail .kv .v{color:var(--cx-text)}
|
|
1242
|
+
.cx-req-sect{font:600 var(--cx-fs-body) var(--cx-font);color:var(--cx-accent);margin-top:4px}
|
|
1243
|
+
.cx-req-pre{margin:0;padding:8px;background:rgba(6,20,32,.6);border:1px solid var(--cx-line);border-radius:4px;font:var(--cx-fs-body)/1.55 var(--cx-mono);color:var(--cx-text);white-space:pre-wrap;word-break:break-word;max-height:26vh;overflow:auto}
|
|
1244
|
+
|
|
1245
|
+
.cx-chat-center{overflow:visible!important}
|
|
1246
|
+
|
|
1247
|
+
.cx-dev-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0}
|
|
1248
|
+
|
|
1249
|
+
.cx-scan-tabs{display:flex;gap:2px;margin:8px 0 4px;border-bottom:1px solid var(--cx-border)}
|
|
1250
|
+
.cx-scan-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cx-text-dim);font:600 var(--cx-fs-body) var(--cx-font);letter-spacing:.06em;padding:5px 10px;cursor:pointer}
|
|
1251
|
+
.cx-scan-tab:hover{background:rgba(var(--cx-hue-rgb),.10);color:var(--cx-text)}
|
|
1252
|
+
.cx-scan-tab.on{color:var(--cx-accent);border-bottom-color:var(--cx-accent)}
|
|
1253
|
+
.cx-scan-tab .n{margin-left:5px;font-size:var(--cx-fs-body);color:var(--cx-text-faint)}
|
|
1254
|
+
.cx-scan-body{max-height:46vh;overflow:auto}
|
|
1255
|
+
.cx-empty-d{padding:14px;text-align:center;color:var(--cx-text-faint);font:var(--cx-fs-body) var(--cx-mono)}
|
|
1256
|
+
|
|
1257
|
+
.cx-pm-stars{margin-top:4px;color:#ffd166;font-size:var(--cx-fs);letter-spacing:2px;line-height:1;text-shadow:0 0 8px rgba(255,209,102,.25)}
|
|
1258
|
+
.cx-shell[data-theme="light"] .cx-pm-stars{color:#d99400;text-shadow:none}
|
|
1259
|
+
.cx-pm-content{margin-top:4px;font-size:var(--cx-fs-body);line-height:1.45;color:var(--cx-text-dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
|
|
1260
|
+
.cx-shell[data-theme="light"] .cx-pm-content{color:#557080}
|
|
1261
|
+
.cx-pm-card-titleline{display:flex;align-items:center;gap:6px;min-width:0}
|
|
1262
|
+
.cx-pm-card-titleline .cx-pm-title{flex:1;min-width:0}
|
|
1263
|
+
.cx-pm-card-titleline .cx-pm-status{flex:none;white-space:nowrap}
|
|
1264
|
+
.cx-pm-status.status-daily{color:#7bd4ff;border-color:#2b6f92;background:rgba(50,140,180,.15)}
|
|
1265
|
+
.cx-pm-status.status-weekly{color:#b49cff;border-color:#6750a8;background:rgba(120,90,200,.16)}
|
|
1266
|
+
.cx-pm-status.status-monthly{color:#6ef7b0;border-color:#2f8060;background:rgba(40,160,110,.15)}
|
|
1267
|
+
.cx-pm-status.status-quarterly{color:#ffb454;border-color:#8a6a2a;background:rgba(180,130,40,.16)}
|
|
1268
|
+
.cx-pm-status.status-annual{color:#ff8fa3;border-color:#8a3d4d;background:rgba(180,60,80,.15)}
|
|
1269
|
+
.cx-pm-status.status-issue{color:#ff6b83;border-color:#8a3d4d;background:rgba(180,60,80,.18)}
|
|
1270
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-daily{color:#0a5f7d;border-color:#5aa6c4;background:#eaf6fb}
|
|
1271
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-weekly{color:#523496;border-color:#9b7fd0;background:#f3eefc}
|
|
1272
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-monthly{color:#08663f;border-color:#4fae85;background:#e9f8f0}
|
|
1273
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-quarterly{color:#7a5000;border-color:#c49a3a;background:#fdf5e3}
|
|
1274
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-annual{color:#a02034;border-color:#cf7f8e;background:#fdeef1}
|
|
1275
|
+
.cx-shell[data-theme="light"] .cx-pm-status.status-issue{color:#a02034;border-color:#cf7f8e;background:#fdeef1}
|
|
1276
|
+
.cx-busy-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:start center;padding-top:18vh;background:rgba(2,8,14,.36);backdrop-filter:blur(2px);pointer-events:all}
|
|
1277
|
+
.cx-busy-card{display:flex;align-items:center;gap:12px;min-width:240px;max-width:min(460px,90vw);padding:14px 18px;border:1px solid var(--cx-cyan);border-radius:8px;background:var(--cx-panel);box-shadow:0 18px 60px rgba(0,0,0,.45),0 0 30px rgba(var(--cx-hue-rgb),.12);color:var(--cx-text)}
|
|
1278
|
+
.cx-busy-card b{font-size:var(--cx-fs);color:var(--cx-cyan);letter-spacing:.06em}
|
|
1279
|
+
.cx-busy-sub{margin-top:5px;font-size:var(--cx-fs-body);color:var(--cx-muted)}
|
|
1280
|
+
.cx-busy-spinner{width:20px;height:20px;flex:none;border:2px solid rgba(var(--cx-hue-rgb),.22);border-top-color:var(--cx-cyan);border-radius:50%;animation:cx-spin .8s linear infinite}
|
|
1281
|
+
@keyframes cx-spin{to{transform:rotate(360deg)}}
|
|
1282
|
+
.cx-shell[data-theme="light"] .cx-busy-overlay{background:rgba(220,240,248,.5)}
|
|
1283
|
+
.cx-shell[data-theme="light"] .cx-busy-card{background:#fff;border-color:#5aa6c4;box-shadow:0 18px 60px rgba(20,70,90,.18)}
|
|
1284
|
+
.cx-shell[data-theme="light"] .cx-busy-card b{color:#0a5f7d}
|
|
1285
|
+
.cx-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1300;display:flex;align-items:center;gap:8px;max-width:min(520px,90vw);padding:10px 14px;border:1px solid var(--cx-cyan);border-radius:7px;background:var(--cx-panel);color:var(--cx-text);font-size:var(--cx-fs);box-shadow:0 12px 40px rgba(0,0,0,.38);animation:cx-toast-fade .18s ease both;will-change:opacity}
|
|
1286
|
+
.cx-toast.err{border-color:var(--cx-red);color:#ffdbe2}
|
|
1287
|
+
.cx-toast-mark{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:rgba(var(--cx-hue-rgb),.16);color:var(--cx-cyan);font-weight:800;font-size:var(--cx-fs)}
|
|
1288
|
+
.cx-toast.err .cx-toast-mark{background:rgba(255,92,122,.16);color:var(--cx-red)}
|
|
1289
|
+
@keyframes cx-toast-fade{from{opacity:0}to{opacity:1}}
|
|
1290
|
+
.cx-node,.cx-space,.cx-app,.cx-store,.cx-pm-card{transition:opacity .18s ease,transform .18s ease,background .18s ease}
|
|
1291
|
+
.cx-body.busy .cx-node,.cx-body.busy .cx-space,.cx-body.busy .cx-app,.cx-body.busy .cx-store{opacity:.45;transform:translateY(2px)}
|
|
1292
|
+
.cx-pm-side{transition:opacity .18s ease,transform .18s ease}
|
|
1293
|
+
.cx-pm-side.refreshing{opacity:.58;transform:translateY(2px)}
|
|
1294
|
+
.cx-shell[data-theme="light"] .cx-toast{background:#fff;box-shadow:0 12px 40px rgba(20,70,90,.18)}
|
|
1295
|
+
.cx-pm-card.fresh{position:relative;overflow:hidden;border-color:var(--cx-cyan);animation:cx-pm-fresh 1.7s ease-out both;box-shadow:0 0 0 1px rgba(var(--cx-hue-rgb),.35),0 0 28px rgba(var(--cx-hue-rgb),.18)}
|
|
1296
|
+
.cx-pm-card.fresh::after{content:"";position:absolute;inset:-40% -20%;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(var(--cx-hue-rgb),.28) 48%,rgba(var(--cx-green-rgb),.22) 52%,transparent 65%);transform:translateX(-120%);animation:cx-pm-scan 1.1s ease-out .1s both}
|
|
1297
|
+
@keyframes cx-pm-fresh{0%{opacity:.2;transform:translateY(8px) scale(.985)}45%{opacity:1;transform:translateY(0) scale(1.005)}100%{opacity:1;transform:none}}
|
|
1298
|
+
@keyframes cx-pm-scan{to{transform:translateX(120%)}}
|
|
1299
|
+
.cx-shell[data-theme="light"] .cx-pm-card.fresh{box-shadow:0 0 0 1px rgba(11,127,159,.35),0 0 24px rgba(11,127,159,.16)}
|
|
1300
|
+
.cx-data-table.fresh{animation:cx-data-fresh 1.4s ease-out both;border:1px solid rgba(var(--cx-hue-rgb),.35);border-radius:4px}
|
|
1301
|
+
@keyframes cx-data-fresh{0%{opacity:.3;box-shadow:inset 0 0 0 1px rgba(var(--cx-hue-rgb),.5),0 0 0 rgba(var(--cx-hue-rgb),0)}45%{opacity:1;box-shadow:inset 0 0 28px rgba(var(--cx-hue-rgb),.12),0 0 24px rgba(var(--cx-hue-rgb),.16)}100%{opacity:1;box-shadow:none}}
|
|
1302
|
+
.cx-form-hint{margin:0 0 10px;padding:7px 9px;border-left:2px solid var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.06);color:var(--cx-text-dim);font-size:var(--cx-fs-body);line-height:1.6}
|
|
1303
|
+
.cx-form-hint b,.cx-req{color:var(--cx-red);font-weight:800}
|
|
1304
|
+
.cx-field.req .cx-field-lb{color:var(--cx-text-strong)}
|
|
1305
|
+
.cx-form-warn{margin-top:8px;color:var(--cx-orange);font-size:var(--cx-fs-body)}
|
|
1306
|
+
.cx-pm-card.fresh{border-color:var(--cx-cyan);animation:cx-pm-fresh 2s ease-out both;box-shadow:0 0 0 2px rgba(var(--cx-hue-rgb),.45),0 0 42px rgba(var(--cx-hue-rgb),.32),inset 0 0 30px rgba(var(--cx-hue-rgb),.08)}
|
|
1307
|
+
.cx-pm-card.fresh::after{background:linear-gradient(105deg,transparent 28%,rgba(var(--cx-hue-rgb),.42) 46%,rgba(var(--cx-green-rgb),.35) 52%,transparent 70%);animation:cx-pm-scan 1.35s ease-out .05s 2 both}
|
|
1308
|
+
@keyframes cx-pm-fresh{0%{opacity:0;transform:translateY(12px) scale(.97)}35%{opacity:1;transform:translateY(-1px) scale(1.01)}100%{opacity:1;transform:none}}
|
|
1309
|
+
.cx-data-table.fresh{animation:cx-data-fresh 1.8s ease-out both;border:1px solid rgba(var(--cx-hue-rgb),.55);box-shadow:0 0 0 1px rgba(var(--cx-hue-rgb),.3),0 0 30px rgba(var(--cx-hue-rgb),.2)}
|
|
1310
|
+
.cx-data-flash{position:fixed;inset:0;z-index:1100;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(var(--cx-hue-rgb),.10),transparent 45%),linear-gradient(105deg,transparent 35%,rgba(var(--cx-hue-rgb),.13) 49%,transparent 62%);animation:cx-data-flash .62s ease-out both}
|
|
1311
|
+
@keyframes cx-data-flash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
|
|
1312
|
+
.cx-console-detail-table{max-height:none;overflow:visible;border-top:1px solid var(--cx-border);border-bottom:1px solid var(--cx-border);margin-top:6px}
|
|
1313
|
+
.cx-console-detail-table .cx-console-table{font-size:var(--cx-fs-body)}
|
|
1314
|
+
.cx-pm-card.trace{position:relative;border-color:#7be0ff;box-shadow:0 0 0 2px rgba(123,224,255,.55),0 0 34px rgba(123,224,255,.28);animation:cx-trace-pulse 1.3s ease-in-out 2}
|
|
1315
|
+
@keyframes cx-trace-pulse{0%,100%{box-shadow:0 0 0 1px rgba(123,224,255,.35),0 0 18px rgba(123,224,255,.15)}50%{box-shadow:0 0 0 3px rgba(123,224,255,.7),0 0 46px rgba(123,224,255,.42)}}
|
|
1316
|
+
.cx-trace-badge{flex:none;font:var(--cx-fs-body)/1.2 var(--cx-mono);color:#7be0ff;border:1px solid rgba(123,224,255,.45);border-radius:3px;padding:2px 4px;background:rgba(123,224,255,.08)}
|
|
1317
|
+
.cx-console-detail-sub{margin-top:8px;font-size:var(--cx-fs-body);font-weight:700;letter-spacing:.1em;color:var(--cx-cyan);text-transform:uppercase}
|
|
1318
|
+
.cx-console-detail-head{max-height:120px;overflow:auto;margin:3px 0 0;padding:6px;border:1px solid var(--cx-border);background:var(--cx-surface-2);font:var(--cx-fs-body)/1.45 var(--cx-mono);color:var(--cx-text-dim);white-space:pre-wrap}
|
|
1319
|
+
|
|
1320
|
+
.cx-console-table th:nth-child(5),.cx-console-table td:nth-child(5),.cx-console-table th:nth-child(6),.cx-console-table td:nth-child(6){white-space:nowrap;min-width:58px;word-break:normal}
|
|
1321
|
+
|
|
1322
|
+
.cx-console-actions .cx-console-clear{width:auto;min-width:38px;padding:0 7px;white-space:nowrap;font-size:var(--cx-fs-body);letter-spacing:.02em}
|
|
1323
|
+
.cx-pm-glance{display:flex;align-items:center;gap:4px;margin-right:8px;max-width:430px;overflow:hidden}
|
|
1324
|
+
.cx-pm-glance .lb{font-size:var(--cx-fs-body);color:var(--cx-text-dim);letter-spacing:.08em;white-space:nowrap}
|
|
1325
|
+
.cx-pm-glance button{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-text);font-size:var(--cx-fs-body);padding:3px 6px;border-radius:3px;cursor:pointer}
|
|
1326
|
+
.cx-pm-glance button:hover{color:var(--cx-accent);border-color:var(--cx-accent)}
|
|
1327
|
+
.cx-log-btn{margin-left:6px;border:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-cyan);font:var(--cx-fs-body)/1 var(--cx-mono);padding:2px 5px;border-radius:3px;cursor:pointer}
|
|
1328
|
+
.cx-result-card{margin-top:8px;border:1px solid var(--cx-border);border-radius:6px;background:var(--cx-surface-2);padding:9px 10px;min-width:220px}
|
|
1329
|
+
.cx-result-title{font:var(--cx-fs-body)/1.3 var(--cx-mono);letter-spacing:.08em;color:var(--cx-cyan);text-transform:uppercase;margin-bottom:6px}
|
|
1330
|
+
.cx-result-rows{display:flex;flex-direction:column;gap:3px}
|
|
1331
|
+
.cx-result-row{display:flex;justify-content:space-between;gap:18px;font-size:var(--cx-fs-body);color:var(--cx-text-dim)}
|
|
1332
|
+
.cx-result-row b{font-weight:500;color:var(--cx-text);text-align:right}
|
|
1333
|
+
.cx-result-link{margin-top:8px;border:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-accent);border-radius:4px;padding:4px 8px;font-size:var(--cx-fs-body);cursor:pointer}
|
|
1334
|
+
.cx-detail-tabs{display:flex;gap:4px;padding:4px 0 2px;border-bottom:1px solid var(--cx-border);margin-bottom:4px}
|
|
1335
|
+
.cx-detail-tabs .cx-console-tab{padding:3px 8px;font-size:var(--cx-fs-body)}
|
|
1336
|
+
.cx-console-detail-raw{max-height:300px;overflow:auto;margin:4px 0 0;padding:7px;border:1px solid var(--cx-border);background:var(--cx-surface-2);font:var(--cx-fs-body)/1.5 var(--cx-mono);white-space:pre-wrap}
|
|
1337
|
+
.cx-console-empty{padding:10px;color:var(--cx-text-dim);font-size:var(--cx-fs-body)}
|
|
1338
|
+
.cx-detail-tabs{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important}
|
|
1339
|
+
.cx-detail-tabs .cx-console-tab{display:inline-flex!important;width:auto!important;flex:0 0 auto!important;white-space:nowrap!important}
|
|
1340
|
+
.cx-console-detail .kv{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--cx-border);row-gap:6px}
|
|
1341
|
+
.cx-detail-head-table{table-layout:fixed;width:100%;margin-bottom:8px}
|
|
1342
|
+
.cx-detail-head-table th:first-child,.cx-detail-head-table td:first-child{width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1343
|
+
.cx-detail-head-table td:last-child{word-break:break-all}
|
|
1344
|
+
.cx-console-detail-sub{margin-top:12px}
|
|
1345
|
+
.cx-console-detail{display:flex!important;flex-direction:column!important;height:auto!important;max-height:100%!important;align-self:flex-start!important;overflow:auto!important;box-sizing:border-box}
|
|
1346
|
+
.cx-console-detail-h{justify-content:flex-end!important;margin-bottom:2px!important;flex:none}
|
|
1347
|
+
.cx-detail-tabs{position:sticky!important;top:0!important;z-index:8!important;background:var(--cx-surface-1)!important;flex:none;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;border-bottom:1px solid var(--cx-border)}
|
|
1348
|
+
.cx-detail-tabs .cx-console-tab{flex:1 1 0!important;justify-content:center!important;min-width:0!important;white-space:nowrap!important;padding:5px 4px!important}
|
|
1349
|
+
.cx-console-detail .cx-console-detail-table{width:100%;margin-top:2px}
|
|
1350
|
+
.cx-console-detail .cx-console-detail-table .cx-console-table{width:100%}
|
|
1351
|
+
.cx-console-detail{width:46%!important;min-width:320px!important;background:var(--cx-surface-1)!important;padding:0 12px 12px!important}
|
|
1352
|
+
.cx-detail-head{position:relative;z-index:9;background:var(--cx-surface-1);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0 7px;border-bottom:1px solid var(--cx-border)}
|
|
1353
|
+
.cx-detail-titlebox{display:flex;align-items:center;gap:6px;min-width:0}
|
|
1354
|
+
.cx-detail-method{font:var(--cx-fs-body)/1 var(--cx-mono);letter-spacing:.08em;padding:4px 6px;border-radius:3px;background:var(--cx-surface-2);border:1px solid var(--cx-border);color:var(--cx-cyan)}
|
|
1355
|
+
.cx-detail-titlebox b{font-size:var(--cx-fs);color:var(--cx-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1356
|
+
.cx-detail-status{font:var(--cx-fs-body)/1 var(--cx-mono);padding:4px 5px;border-radius:3px;border:1px solid var(--cx-border)}
|
|
1357
|
+
.cx-detail-status.ok{color:#66e0a3;border-color:rgba(102,224,163,.35);background:rgba(102,224,163,.08)}
|
|
1358
|
+
.cx-detail-status.bad{color:#ff7a7a;border-color:rgba(255,122,122,.4);background:rgba(255,122,122,.08)}
|
|
1359
|
+
.cx-detail-head-actions{display:flex;align-items:center;gap:5px;flex:none}
|
|
1360
|
+
.cx-detail-logid{font:var(--cx-fs-body)/1 var(--cx-mono);color:var(--cx-text-faint);border:1px solid var(--cx-border);border-radius:3px;padding:3px 5px;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1361
|
+
.cx-console-detail-h{display:none!important}
|
|
1362
|
+
.cx-detail-tabs{padding:7px 0 3px!important;margin-bottom:0!important;gap:3px!important}
|
|
1363
|
+
.cx-detail-tabs .cx-console-tab{border-radius:4px;border-bottom:0!important;padding:5px 6px!important;color:var(--cx-text-dim);background:transparent}
|
|
1364
|
+
.cx-detail-tabs .cx-console-tab.on{background:var(--cx-accent-soft);color:var(--cx-accent)}
|
|
1365
|
+
.cx-detail-section{margin:12px 0 5px;font:var(--cx-fs-body)/1.4 var(--cx-mono);letter-spacing:.12em;color:var(--cx-text-faint);text-transform:uppercase}
|
|
1366
|
+
.cx-detail-kv{grid-template-columns:78px minmax(0,1fr)!important;border:1px solid var(--cx-border);border-radius:5px;padding:7px 8px!important;background:var(--cx-surface-2)}
|
|
1367
|
+
.cx-detail-kv .k{color:var(--cx-text-faint);font-size:var(--cx-fs-body)}
|
|
1368
|
+
.cx-detail-kv .v{color:var(--cx-text);overflow-wrap:anywhere}
|
|
1369
|
+
.cx-detail-head-table{margin-top:2px!important;border:1px solid var(--cx-border);border-radius:4px;overflow:hidden}
|
|
1370
|
+
.cx-detail-head-table th{font-size:var(--cx-fs-body);letter-spacing:.1em;padding:5px 7px!important}
|
|
1371
|
+
.cx-detail-head-table td{font-size:var(--cx-fs-body);padding:5px 7px!important}
|
|
1372
|
+
.cx-detail-head-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--cx-surface-2) 45%,transparent)}
|
|
1373
|
+
.cx-console-detail{max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
|
|
1374
|
+
.cx-detail-kv{min-width:0!important}
|
|
1375
|
+
.cx-detail-kv .v{min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important;white-space:normal!important}
|
|
1376
|
+
.cx-console-detail .kv>span{min-width:0!important;overflow-wrap:anywhere;word-break:break-word}
|
|
1377
|
+
.cx-console-detail .cx-console-table{max-width:100%!important;table-layout:fixed!important}
|
|
1378
|
+
.cx-console-detail .cx-console-table td,.cx-console-detail .cx-console-table th{min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important;white-space:normal!important}
|
|
1379
|
+
.cx-console-detail .cx-console-table td:first-child,.cx-console-detail .cx-console-table th:first-child{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
|
|
1380
|
+
.cx-detail-tabs .cx-detail-close{flex:0 0 auto!important;border:0!important;background:transparent!important;color:var(--cx-text-dim)!important;font:var(--cx-fs-title)/1 var(--cx-mono)!important;padding:3px 5px!important;cursor:pointer}
|
|
1381
|
+
.cx-detail-tabs{top:0!important}
|
|
1382
|
+
.cx-git-sections{display:flex;flex-direction:column;border-top:1px solid var(--cx-border);margin-top:6px;padding-top:2px}
|
|
1383
|
+
.cx-git-sections .cx-tree-recent{border-bottom:0;margin:0;padding:0}
|
|
1384
|
+
.cx-git-sections .cx-tree-sect-top{margin-top:0;border-top:0;padding:6px 0}
|
|
1385
|
+
.cx-dev-explorer .cx-dev-b{display:flex;flex-direction:column}
|
|
1386
|
+
.cx-dev-explorer .cx-tree{flex:1;min-height:0;overflow:auto}
|
|
1387
|
+
.cx-git-sections{flex:none!important;margin-top:auto!important;border-top:1px solid var(--cx-border);padding-top:2px}
|
|
1388
|
+
.cx-git-sections .cx-tree-sect-top{padding:6px 8px!important;margin:2px 0!important;border-top:0!important;border-radius:4px}
|
|
1389
|
+
.cx-git-sections .cx-tree-sect-top .chev{width:10px}
|
|
1390
|
+
.cx-dev-explorer .cx-tree>*{flex:0 0 auto!important;min-height:auto!important}
|
|
1391
|
+
.cx-dev-explorer .cx-tree .cx-tree-item,.cx-dev-explorer .cx-tree .cx-tree-sect{flex:none!important}
|
|
1392
|
+
.cx-dev-explorer .cx-tree .cx-git-sections{flex:none!important;margin-top:auto!important}
|
|
1393
|
+
.cx-git-history-head{border-top:1px solid var(--cx-border)!important;border-bottom:1px solid var(--cx-border)!important;margin-top:4px!important}
|
|
1394
|
+
.cx-port-row{display:flex;gap:6px;align-items:center}
|
|
1395
|
+
.cx-port-row .cx-input{flex:1;min-width:0}
|
|
1396
|
+
.cx-init-debug-h{margin-top:12px;font:var(--cx-fs-body)/1.4 var(--cx-mono);letter-spacing:.12em;color:var(--cx-cyan);text-transform:uppercase}
|
|
1397
|
+
.cx-init-debug{max-height:220px;overflow:auto;margin-top:4px;padding:8px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-2);font:var(--cx-fs-body)/1.55 var(--cx-mono);color:var(--cx-text-dim);white-space:pre-wrap;word-break:break-word}
|
|
1398
|
+
.cx-init-debug{max-height:220px;overflow:auto;margin-top:4px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-2)}
|
|
1399
|
+
.cx-init-log{width:100%;border-collapse:collapse;font:var(--cx-fs-body)/1.5 var(--cx-mono);table-layout:fixed}
|
|
1400
|
+
.cx-init-log th{position:sticky;top:0;background:var(--cx-surface-1);color:var(--cx-text-faint);text-align:left;padding:4px 6px;border-bottom:1px solid var(--cx-border);font-size:var(--cx-fs-body);letter-spacing:.08em}
|
|
1401
|
+
.cx-init-log td{padding:4px 6px;border-bottom:1px solid color-mix(in srgb,var(--cx-border) 45%,transparent);color:var(--cx-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1402
|
+
.cx-init-log td.impact{white-space:normal;word-break:break-word}
|
|
1403
|
+
.cx-init-log tr.error td{color:#ff7a7a}
|
|
1404
|
+
.cx-init-log tr.ok td:last-child{color:#66e0a3}
|
|
1405
|
+
.cx-init-log th:nth-child(1),.cx-init-log td:nth-child(1){width:70px}
|
|
1406
|
+
.cx-init-log th:nth-child(2),.cx-init-log td:nth-child(2){width:52px}
|
|
1407
|
+
.cx-init-log th:nth-child(3),.cx-init-log td:nth-child(3){width:120px}
|
|
1408
|
+
.cx-init-log th:nth-child(5),.cx-init-log td:nth-child(5){width:48px}
|
|
1409
|
+
.cx-space-picker{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
|
|
1410
|
+
.cx-space-check{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--cx-border);background:var(--cx-surface-1);border-radius:4px;padding:5px 7px;font-size:var(--cx-fs-body);color:var(--cx-text-dim);cursor:pointer}
|
|
1411
|
+
.cx-space-check input{accent-color:var(--cx-cyan);margin:0}
|
|
1412
|
+
.cx-space-check.on{border-color:var(--cx-cyan);color:var(--cx-text);background:var(--cx-accent-soft)}
|
|
1413
|
+
.cx-space-check.forced{cursor:default;opacity:1}
|
|
1414
|
+
.cx-space-check i{font-style:normal;font-size:var(--cx-fs-body);color:var(--cx-cyan)}
|
|
1415
|
+
.cx-init-card .cx-foot{position:sticky;top:0;z-index:5;background:var(--cx-surface-1);border-bottom:1px solid var(--cx-border);padding-top:8px;padding-bottom:8px}
|
|
1416
|
+
.cx-init-debug-h{display:flex;align-items:center;gap:8px;justify-content:space-between}
|
|
1417
|
+
.cx-init-debug{max-height:150px}
|
|
1418
|
+
.cx-init-debug.expanded{max-height:420px}
|
|
1419
|
+
.cx-backend-log{display:flex;flex-direction:column;gap:6px;min-height:0}
|
|
1420
|
+
.cx-backend-log-h{display:flex;align-items:center;gap:8px;justify-content:space-between;color:var(--cx-text-dim);font:var(--cx-fs-body)/1.4 var(--cx-mono)}
|
|
1421
|
+
.cx-term-log{max-height:360px;overflow:auto;margin:0;padding:8px;border:1px solid var(--cx-border);background:#020a10;color:#b9d7e8;font:var(--cx-fs-body)/1.6 var(--cx-mono);white-space:pre-wrap;word-break:break-word}
|
|
1422
|
+
.cx-term-line{padding:0 2px}
|
|
1423
|
+
.cx-term-line.warn{color:#f3c969;background:rgba(243,201,105,.05)}
|
|
1424
|
+
.cx-term-line.err{color:#ff7a7a;background:rgba(255,122,122,.06)}
|
|
1425
|
+
.cx-term-log .t{color:#5c9fb8}
|
|
1426
|
+
.cx-term-log .id{color:#61e0c0}
|
|
1427
|
+
.cx-term-log .link{color:#7cc7ff;text-decoration:underline;text-underline-offset:2px}
|
|
1428
|
+
.cx-term-log .mark{font-weight:700}
|
|
1429
|
+
.cx-pm-caret{display:none;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;background:transparent;color:var(--cx-cyan);font:700 var(--cx-fs-title)/1 var(--cx-mono);cursor:pointer;flex:none}
|
|
1430
|
+
.cx-pm-caret span{transform:translateY(-1px)}
|
|
1431
|
+
.cx-pm-kind{display:inline-flex;align-items:center;justify-content:center;width:20px;flex:none}
|
|
1432
|
+
.cx-pm-h:hover .cx-pm-caret,.cx-pm-h:focus-within .cx-pm-caret{display:inline-flex}
|
|
1433
|
+
.cx-pm-h:hover .cx-pm-kind,.cx-pm-h:focus-within .cx-pm-kind{display:none}
|
|
1434
|
+
.cx-pm-create-big{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:9px;padding:11px 12px;border:1px dashed var(--cx-cyan);border-radius:5px;background:color-mix(in srgb,var(--cx-cyan) 7%,transparent);color:var(--cx-cyan);font:600 var(--cx-fs)/1 var(--cx-font);cursor:pointer;letter-spacing:.04em}
|
|
1435
|
+
.cx-pm-create-big span{font:400 var(--cx-fs-title)/1 var(--cx-mono)}
|
|
1436
|
+
.cx-pm-create-big:hover{background:color-mix(in srgb,var(--cx-cyan) 14%,transparent);border-style:solid}
|
|
1437
|
+
.cx-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;padding:0;border:0;background:transparent;color:currentColor;line-height:1;vertical-align:middle}
|
|
1438
|
+
.cx-icon svg{display:block;width:16px;height:16px;flex:none}
|
|
1439
|
+
.cx-pm-caret.cx-icon,.cx-pm-kind{width:20px;min-width:20px;height:20px}
|
|
1440
|
+
.cx-pm-refresh.cx-icon,.cx-pm-op.cx-icon{width:20px;height:20px;padding:0}
|
|
1441
|
+
.cx-fold.cx-icon{width:20px;height:20px}
|
|
1442
|
+
.cx-pm-create-big .cx-icon{width:18px;height:18px}
|
|
1443
|
+
.cx-pm-caret.cx-icon{display:none}
|
|
1444
|
+
.cx-pm-h:hover .cx-pm-caret.cx-icon,.cx-pm-h:focus-within .cx-pm-caret.cx-icon{display:inline-flex}
|
|
1445
|
+
.cx-btn.cx-icon{padding:0}
|
|
1446
|
+
.cx-pm-refresh.cx-icon,.cx-pm-op.cx-icon,.cx-term-add.cx-icon{background:transparent;border:0}
|
|
1447
|
+
.cx-view{display:inline-flex;align-items:center;gap:5px}
|
|
1448
|
+
.cx-view .cx-icon,.cx-view svg{width:14px;height:14px;min-width:14px}
|
|
1449
|
+
.cx-view svg{stroke-width:1.4}
|
|
1450
|
+
.cx-pm-h .cx-pm-refresh,.cx-tree-sect .cx-pm-refresh{visibility:hidden;opacity:0;transition:opacity .12s}
|
|
1451
|
+
.cx-pm-h:hover .cx-pm-refresh,.cx-pm-h:focus-within .cx-pm-refresh,.cx-tree-sect:hover .cx-pm-refresh,.cx-tree-sect:focus-within .cx-pm-refresh{visibility:visible;opacity:1}
|
|
1452
|
+
.cx-tree-sect .cx-pm-op{margin-left:0}
|
|
1453
|
+
.cx-pipe .cx-stage .cx-icon svg{width:14px;height:14px;stroke-width:1.4}
|
|
1454
|
+
.cx-panel .cx-tool-refresh{visibility:hidden;opacity:0;transition:opacity .12s}
|
|
1455
|
+
.cx-panel:hover .cx-tool-refresh,.cx-panel:focus-within .cx-tool-refresh{visibility:visible;opacity:1}
|
|
1456
|
+
.cx-ph .cx-icon{width:20px;height:20px;color:var(--cx-cyan)}
|
|
1457
|
+
.cx-ph .cx-icon svg{width:18px;height:18px;stroke-width:1.4}
|
|
1458
|
+
.cx-stage .cx-icon{color:currentColor}
|
|
1459
|
+
.cx-chip .cx-icon{width:14px;height:14px;color:var(--cx-cyan)}
|
|
1460
|
+
.cx-chip .cx-icon svg{width:14px;height:14px;stroke-width:1.4}
|
|
1461
|
+
.cx-aff{display:inline-flex;align-items:center;gap:6px;min-width:0;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;line-height:1.2;transition:background .12s,color .12s,border-color .12s,opacity .12s}
|
|
1462
|
+
.cx-aff .cx-aff-zh,.cx-aff .cx-aff-en{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1463
|
+
.cx-aff--icon .cx-aff-zh,.cx-aff--icon .cx-aff-en{display:none}
|
|
1464
|
+
.cx-aff--short .cx-aff-en{display:none}
|
|
1465
|
+
.cx-aff--text .cx-icon{display:none}
|
|
1466
|
+
.cx-aff.action{padding:2px 4px;cursor:pointer}
|
|
1467
|
+
.cx-aff.action:hover{background:color-mix(in srgb,var(--cx-accent) 12%,transparent);border-color:color-mix(in srgb,var(--cx-accent) 30%,transparent);color:var(--cx-accent)}
|
|
1468
|
+
.cx-aff.on{background:color-mix(in srgb,var(--cx-accent) 14%,transparent);border-color:color-mix(in srgb,var(--cx-accent) 35%,transparent);color:var(--cx-accent)}
|
|
1469
|
+
.cx-panel-title{gap:7px;color:var(--cx-text)}
|
|
1470
|
+
.cx-panel-title .cx-aff-zh{font:700 var(--cx-fs-body)/1.2 var(--cx-font);letter-spacing:.12em}
|
|
1471
|
+
.cx-panel-title .cx-aff-en{font:600 var(--cx-fs-body)/1.2 var(--cx-font);letter-spacing:.12em;color:var(--cx-text-faint)}
|
|
1472
|
+
.cx-stage-title{gap:6px}
|
|
1473
|
+
.cx-stage-title .cx-aff-zh{font-size:var(--cx-fs-body);letter-spacing:.12em}
|
|
1474
|
+
.cx-chip.cx-aff{padding:5px 9px;border:1px solid var(--cx-line);background:rgba(7,20,32,.75);white-space:nowrap}
|
|
1475
|
+
.cx-chip.cx-aff:hover{border-color:var(--cx-cyan);background:color-mix(in srgb,var(--cx-cyan) 10%,rgba(7,20,32,.75))}
|
|
1476
|
+
.cx-aff.action:active{transform:translateY(1px)}
|
|
1477
|
+
.cx-icon{cursor:pointer;border-radius:4px;transition:background .12s,color .12s,opacity .12s}
|
|
1478
|
+
.cx-icon:hover{background:color-mix(in srgb,var(--cx-accent) 12%,transparent);color:var(--cx-accent)}
|
|
1479
|
+
.cx-icon:active{transform:translateY(1px)}
|
|
1480
|
+
.cx-pm-refresh.cx-icon:hover,.cx-tree-sect .cx-pm-refresh.cx-icon:hover{background:transparent}
|
|
1481
|
+
.cx-ph .cx-panel-title{flex:1;min-width:0;color:#c9f7ff}
|
|
1482
|
+
.cx-shell .cx-ph .cx-panel-title{color:var(--cx-text-strong)}
|
|
1483
|
+
.cx-ph .cx-panel-title .cx-aff-en{color:var(--cx-text-faint)}
|
|
1484
|
+
.cx-aff--icon.action{padding:0}
|
|
1485
|
+
.cx-view.cx-aff{padding:6px 10px;border:0;border-right:1px solid var(--cx-line);border-radius:0;background:transparent}
|
|
1486
|
+
.cx-view.cx-aff:hover{border-right-color:var(--cx-line);background:color-mix(in srgb,var(--cx-accent) 12%,transparent)}
|
|
1487
|
+
.cx-view.cx-aff.on{background:color-mix(in srgb,var(--cx-accent) 16%,transparent);color:var(--cx-accent)}
|
|
1488
|
+
.cx-aff{vertical-align:middle;line-height:1}
|
|
1489
|
+
.cx-aff>*{align-self:center;flex:none}
|
|
1490
|
+
.cx-aff .cx-aff-zh,.cx-aff .cx-aff-en,.cx-aff>B{display:inline-flex;align-items:center;align-self:center;min-height:1em;line-height:1}
|
|
1491
|
+
.cx-aff .cx-aff-zh{font-size:var(--cx-fs-body)}
|
|
1492
|
+
.cx-aff .cx-aff-en{font-size:var(--cx-fs-body);letter-spacing:.08em}
|
|
1493
|
+
.cx-panel-title,.cx-stage-title{height:20px}
|
|
1494
|
+
.cx-panel-title .cx-aff-zh,.cx-panel-title .cx-aff-en,.cx-stage-title .cx-aff-zh{height:20px}
|
|
1495
|
+
.cx-chip.cx-aff .cx-aff-zh,.cx-chip.cx-aff .cx-aff-en,.cx-chip.cx-aff b{height:14px}
|
|
1496
|
+
.cx-aff{height:20px}
|
|
1497
|
+
.cx-aff .cx-aff-zh,.cx-aff .cx-aff-en{display:inline-flex;align-items:center;height:20px;line-height:20px;vertical-align:middle;padding:0}
|
|
1498
|
+
.cx-aff .cx-icon{height:20px;line-height:0;align-items:center;justify-content:center}
|
|
1499
|
+
.cx-aff>b{display:inline-flex;align-items:center;height:20px;line-height:20px}
|
|
1500
|
+
.cx-chip.cx-aff{height:24px}
|
|
1501
|
+
.cx-chip.cx-aff .cx-aff-zh,.cx-chip.cx-aff .cx-aff-en,.cx-chip.cx-aff>b{height:14px;line-height:14px}
|
|
1502
|
+
.cx-view.cx-aff{height:28px}
|
|
1503
|
+
.cx-view.cx-aff .cx-aff-zh,.cx-view.cx-aff .cx-aff-en{height:20px;line-height:20px}
|
|
1504
|
+
.cx-ph .cnt{display:inline-flex;align-items:center;height:20px;line-height:20px}
|
|
1505
|
+
.cx-entity{display:flex;align-items:center;gap:10px;min-width:0;width:100%;padding:4px 2px;border-radius:4px;cursor:pointer;transition:background .12s}
|
|
1506
|
+
.cx-entity:hover{background:color-mix(in srgb,var(--cx-accent) 7%,transparent)}
|
|
1507
|
+
.cx-entity.on{background:color-mix(in srgb,var(--cx-accent) 10%,transparent)}
|
|
1508
|
+
.cx-entity-pic{width:46px;height:46px;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--cx-line);border-radius:5px;background:var(--cx-surface-2);color:var(--cx-cyan)}
|
|
1509
|
+
.cx-entity-pic img{width:100%;height:100%;object-fit:cover;display:block}
|
|
1510
|
+
.cx-entity-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
|
|
1511
|
+
.cx-entity-head{display:flex;align-items:center;gap:6px;min-width:0}
|
|
1512
|
+
.cx-entity-type{font:700 var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.08em;color:var(--cx-cyan);text-transform:uppercase;white-space:nowrap}
|
|
1513
|
+
.cx-entity-name{font:700 var(--cx-fs)/1.2 var(--cx-font);color:var(--cx-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
|
|
1514
|
+
.cx-entity-status{font:600 var(--cx-fs-body)/1 var(--cx-font);letter-spacing:.06em;white-space:nowrap;padding:3px 5px;border-radius:3px;border:1px solid var(--cx-line)}
|
|
1515
|
+
.cx-entity-status.ok{color:var(--cx-green);border-color:color-mix(in srgb,var(--cx-green) 45%,transparent)}
|
|
1516
|
+
.cx-entity-status.off{color:var(--cx-muted)}
|
|
1517
|
+
.cx-entity-meta{font:var(--cx-fs-body)/1.4 var(--cx-mono);color:var(--cx-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1518
|
+
.cx-entity-pic{width:38px;height:38px;align-self:center}
|
|
1519
|
+
.cx-entity-copy{gap:4px}
|
|
1520
|
+
.cx-entity-head{height:20px}
|
|
1521
|
+
.cx-entity-meta{height:14px;line-height:14px}
|
|
1522
|
+
.cx-stage.cx-aff,.cx-chip.cx-aff{height:32px;box-sizing:border-box;padding:0 10px;border:1px solid var(--cx-line);border-radius:4px;background:transparent;color:var(--cx-text-dim);gap:6px}
|
|
1523
|
+
.cx-stage.cx-aff .cx-aff-zh,.cx-chip.cx-aff .cx-aff-zh,.cx-stage.cx-aff .cx-aff-value,.cx-chip.cx-aff b{height:20px;line-height:20px;font-size:var(--cx-fs-body);letter-spacing:.08em;display:inline-flex;align-items:center}
|
|
1524
|
+
.cx-stage.cx-aff .cx-icon,.cx-chip.cx-aff .cx-icon{width:18px;height:18px;min-width:18px;color:var(--cx-cyan)}
|
|
1525
|
+
.cx-stage.cx-aff .cx-icon svg,.cx-chip.cx-aff .cx-icon svg{width:18px;height:18px}
|
|
1526
|
+
.cx-stage.cx-aff:hover,.cx-chip.cx-aff:hover{background:color-mix(in srgb,var(--cx-accent) 10%,transparent);border-color:color-mix(in srgb,var(--cx-accent) 35%,transparent);color:var(--cx-accent)}
|
|
1527
|
+
.cx-stage.cx-aff.on,.cx-chip.cx-aff.on{background:color-mix(in srgb,var(--cx-accent) 14%,transparent);border-color:color-mix(in srgb,var(--cx-accent) 45%,transparent);color:var(--cx-accent)}
|
|
1528
|
+
.cx-pipe>.cx-stage.cx-aff:not(.on){background:transparent}
|
|
1529
|
+
.cx-shell[data-theme="light"] .cx-stage.cx-aff,.cx-shell[data-theme="light"] .cx-chip.cx-aff{background:transparent;border-color:var(--cx-line)}
|
|
1530
|
+
.cx-pipe>.cx-stage.cx-aff,.cx-pipe .cx-chips .cx-chip.cx-aff{height:36px;flex:0 0 auto;min-width:0;padding:0 12px;background:var(--cx-surface-1);border-color:var(--cx-line);color:var(--cx-text-dim)}
|
|
1531
|
+
.cx-pipe>.cx-stage.cx-aff .cx-aff-zh,.cx-pipe>.cx-stage.cx-aff .cx-aff-value{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1532
|
+
.cx-pipe .cx-chips .cx-chip.cx-aff .cx-aff-zh,.cx-pipe .cx-chips .cx-chip.cx-aff b{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1533
|
+
.cx-pipe>.cx-stage.cx-aff:hover,.cx-pipe .cx-chips .cx-chip.cx-aff:hover{background:color-mix(in srgb,var(--cx-accent) 10%,var(--cx-surface-1));border-color:color-mix(in srgb,var(--cx-accent) 35%,transparent);color:var(--cx-accent)}
|
|
1534
|
+
.cx-pipe>.cx-stage.cx-aff.on,.cx-pipe .cx-chips .cx-chip.cx-aff.on{background:color-mix(in srgb,var(--cx-accent) 12%,var(--cx-surface-1));border-color:color-mix(in srgb,var(--cx-accent) 40%,transparent);color:var(--cx-accent)}
|
|
1535
|
+
.cx-shell[data-theme="light"] .cx-pipe>.cx-stage.cx-aff,.cx-shell[data-theme="light"] .cx-pipe .cx-chips .cx-chip.cx-aff{background:#fff;border-color:var(--cx-line)}
|
|
1536
|
+
.cx-bar{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border-bottom:1px solid var(--cx-line)}
|
|
1537
|
+
.cx-workspace{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--cx-bg)}
|
|
1538
|
+
.cx-workspace-header,.cx-workspace-tabs,.cx-workspace-toolbar{flex:none}
|
|
1539
|
+
.cx-workspace-body{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;flex:1}
|
|
1540
|
+
.cx-workspace-left,.cx-workspace-right{min-width:0;overflow:auto;border-right:1px solid var(--cx-line)}
|
|
1541
|
+
.cx-workspace-right{border-right:0;border-left:1px solid var(--cx-line)}
|
|
1542
|
+
.cx-workspace-main{display:flex;flex-direction:column;min-width:0;min-height:0}
|
|
1543
|
+
.cx-workspace-canvas{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:0;flex:1}
|
|
1544
|
+
.cx-workspace-content,.cx-workspace-preview{min-width:0;min-height:0;overflow:auto}
|
|
1545
|
+
.cx-workspace-preview{border-left:1px solid var(--cx-line)}
|
|
1546
|
+
.cx-workspace-output{flex:none;max-height:42%;overflow:auto;border-top:1px solid var(--cx-line)}
|
|
1547
|
+
.cx-workspace-status{flex:none;min-height:24px;padding:0 10px;display:flex;align-items:center;border-top:1px solid var(--cx-line);font:var(--cx-fs-body)/1.4 var(--cx-mono);color:var(--cx-text-dim)}
|
|
1548
|
+
.cx-card-list{display:flex;flex-direction:column;gap:6px;min-width:0}
|
|
1549
|
+
.cx-table-list,.cx-tree-list{min-width:0}
|
|
1550
|
+
.cx-pm-card .cx-entity{padding:0 0 4px}
|
|
1551
|
+
.cx-pm-card .cx-entity-pic{width:30px;height:30px}
|
|
1552
|
+
.cx-pm-card .cx-entity-type{font-size:var(--cx-fs-body)}
|
|
1553
|
+
.cx-pm-card .cx-entity-name{font-size:var(--cx-fs)}
|
|
1554
|
+
.cx-entity-status.warn{color:var(--cx-orange);border-color:color-mix(in srgb,var(--cx-orange) 45%,transparent)}
|
|
1555
|
+
.cx-stage.cx-aff,.cx-chip.cx-aff{height:var(--cx-control-h)}
|
|
1556
|
+
.cx-aff .cx-aff-zh,.cx-aff .cx-aff-en,.cx-aff>b{height:var(--cx-line-h);line-height:var(--cx-line-h)}
|
|
1557
|
+
/* Address bar: breadcrumb segments + optional input + actions, one 32px line box. */
|
|
1558
|
+
.cx-addressbar{display:flex;align-items:center;gap:6px;height:32px;min-width:0;padding:0 8px;border:1px solid var(--cx-line);border-radius:4px;background:var(--cx-surface-1);color:var(--cx-text-dim);font:var(--cx-fs-body)/1 var(--cx-font)}
|
|
1559
|
+
.cx-addressbar-segments{display:flex;align-items:center;gap:3px;min-width:0;overflow:hidden}
|
|
1560
|
+
.cx-addressbar-seg{display:inline-flex;align-items:center;gap:5px;height:24px;min-width:0;padding:0 5px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body)/1 var(--cx-font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1561
|
+
.cx-addressbar-seg:hover,.cx-addressbar-seg.on{color:var(--cx-accent);border-color:color-mix(in srgb,var(--cx-accent) 30%,transparent);background:color-mix(in srgb,var(--cx-accent) 8%,transparent)}
|
|
1562
|
+
.cx-addressbar-seg .cx-icon{width:13px;height:13px;min-width:13px;color:currentColor}
|
|
1563
|
+
.cx-addressbar-input{flex:1;min-width:0}
|
|
1564
|
+
.cx-addressbar-actions{display:flex;align-items:center;gap:4px;flex:none}
|
|
1565
|
+
/* Dropdowns and context menus: aligned rows, scrollable, never run off-screen. */
|
|
1566
|
+
.cx-menu,.cx-tree-menu,.cx-drop-pop,.cx-ctxmenu{max-height:min(60vh,420px);overflow-y:auto;overscroll-behavior:contain;min-width:180px;max-width:min(420px,calc(100vw - 16px))}
|
|
1567
|
+
.cx-menu-item,.cx-tree-menu .cx-menu-item,.cx-drop-item,.cx-ctxmenu button{display:flex;align-items:center;min-height:28px;padding:6px 9px;gap:8px;line-height:1.25;text-align:left;white-space:nowrap}
|
|
1568
|
+
.cx-menu-item .mi,.cx-tree-menu .cx-menu-item .mi{width:16px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex:none}
|
|
1569
|
+
.cx-menu-item .lb,.cx-tree-menu .cx-menu-item .lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
|
|
1570
|
+
.cx-menu-item .hint{margin-left:auto;flex:none}
|
|
1571
|
+
.cx-menu-item:hover,.cx-tree-menu .cx-menu-item:hover,.cx-drop-item:hover,.cx-ctxmenu button:hover{background:color-mix(in srgb,var(--cx-accent) 12%,transparent);color:var(--cx-accent)}
|
|
1572
|
+
.cx-menu-item.danger,.cx-ctxmenu button.danger{color:var(--cx-red)}
|
|
1573
|
+
.cx-tree-menu{padding:4px}
|
|
1574
|
+
.cx-tree-menu .cx-menu-item{gap:6px;padding-left:0}
|
|
1575
|
+
.cx-tree-menu .cx-menu-item .mi{width:12px;min-width:12px;height:12px}
|
|
1576
|
+
.cx-menu-more{position:sticky;bottom:-4px;margin:4px -4px -4px;padding:6px 9px;border-top:1px solid var(--cx-border);background:var(--cx-surface-1);color:var(--cx-text-faint);font:var(--cx-fs-body)/1.3 var(--cx-font);text-align:center;pointer-events:none}
|
|
1577
|
+
/* All chrome bars share the same vertical center line. */
|
|
1578
|
+
.cx-header,.cx-pipe,.cx-ph,.cx-tools,.cx-crumb,.cx-statusbar,.cx-dev-h,.cx-webtabs,.cx-addrbar,.cx-addressbar,.cx-bar{display:flex;align-items:center}
|
|
1579
|
+
.cx-header>*,.cx-pipe>*,.cx-ph>*,.cx-tools>*,.cx-crumb>*,.cx-statusbar>*,.cx-dev-h>*,.cx-webtabs>*,.cx-addrbar>*,.cx-addressbar>*,.cx-bar>*{align-self:center}
|
|
1580
|
+
.cx-ph{min-height:38px}
|
|
1581
|
+
.cx-tools{min-height:36px;align-content:center}
|
|
1582
|
+
.cx-crumb{min-height:32px}
|
|
1583
|
+
.cx-webtabs{align-items:center;padding-bottom:4px}
|
|
1584
|
+
.cx-webtab{align-self:center}
|
|
1585
|
+
.cx-addrbar,.cx-addressbar{min-height:38px}
|
|
1586
|
+
.cx-statusbar{min-height:26px}
|
|
1587
|
+
.cx-dev-h{min-height:32px}
|
|
1588
|
+
|
|
1589
|
+
/* ── 工具栏对齐修复(2026-11-08)──
|
|
1590
|
+
1. 过滤组件(label + chips)上下居中:统一高度,避免 label 与 chip 基线错位
|
|
1591
|
+
2. 工具栏图标按钮长宽一致:.cx-btn.xs 的 height 会覆盖 .cx-icon-btn,这里用 3 类选择器拉平 */
|
|
1592
|
+
.cx-tools{align-items:center}
|
|
1593
|
+
.cx-tools .cx-filter{align-self:center}
|
|
1594
|
+
.cx-filter.inline{align-items:center;justify-content:flex-start}
|
|
1595
|
+
.cx-filter.inline .cx-filter-label{display:inline-flex;align-items:center;height:24px;line-height:1}
|
|
1596
|
+
.cx-filter.inline .cx-filter-chip{height:24px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
|
|
1597
|
+
.cx-btn.xs.cx-icon-btn{width:26px;min-width:26px;height:26px;padding:0;display:inline-grid;place-items:center;box-sizing:border-box}
|
|
1598
|
+
|
|
1599
|
+
/* ── 初始化弹层:浅色主题下保持深色 splash,消除白块(2026-11-08)──
|
|
1600
|
+
.cx-init-card 是硬编码深色,而 .cx-input / .cx-foot 走 var(--cx-surface-*)
|
|
1601
|
+
在浅色主题会翻成白色 → 白输入框 + 白页脚条。这里把 init 内部 token 钉死为深色。 */
|
|
1602
|
+
.cx-init{--cx-surface-0:#050a12;--cx-surface-1:#08131f;--cx-surface-2:#0b1b2b;--cx-border:#16384d;--cx-line:#16384d;--cx-text:#d9f4ff;--cx-text-dim:#8fb8c9;--cx-text-faint:#6f9bb3}
|
|
1603
|
+
.cx-init .cx-input,.cx-init .cx-input:focus{background:rgba(4,16,26,.92)!important;border-color:rgba(var(--cx-hue-rgb),.28)!important;color:#e6fbff!important}
|
|
1604
|
+
.cx-init .cx-field,.cx-init .cx-form label{color:#8fb8c9!important}
|
|
1605
|
+
.cx-init-card .cx-foot{position:static;background:transparent;border-bottom:0}
|
|
1606
|
+
|
|
1607
|
+
/* 控件定位:调试栏点条目 → 滚动到控件并高亮 */
|
|
1608
|
+
.cx-locate-flash{outline:2px solid var(--cx-green)!important;outline-offset:2px;box-shadow:0 0 0 4px rgba(var(--cx-green-rgb),.28)!important;animation:cx-locate-pulse .7s ease 2;z-index:5;position:relative}
|
|
1609
|
+
@keyframes cx-locate-pulse{50%{box-shadow:0 0 0 10px rgba(var(--cx-green-rgb),.10)!important}}
|
|
1610
|
+
.cx-console-table td.cx-loc{color:var(--cx-green);text-align:center;font-size:var(--cx-fs)}
|
|
1611
|
+
|
|
1612
|
+
/* 工具栏上下边距 + 上下居中;官方空间列表图标/中英文对齐;部署按钮加宽(2026-11-08) */
|
|
1613
|
+
.cx-tools{padding-top:9px;padding-bottom:9px;min-height:42px;align-items:center}
|
|
1614
|
+
.cx-pm-tools{padding:6px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
|
|
1615
|
+
.cx-space-check,.cx-official-row{display:flex;align-items:center;gap:6px;min-height:22px}
|
|
1616
|
+
.cx-space-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;flex:none;color:var(--cx-cyan)}
|
|
1617
|
+
.cx-space-name{font-size:var(--cx-fs);color:var(--cx-text)}
|
|
1618
|
+
.cx-space-en{font-style:normal;font-size:var(--cx-fs-body);letter-spacing:.02em;color:var(--cx-text-faint);white-space:nowrap}
|
|
1619
|
+
.cx-space-date{font-size:var(--cx-fs-body);color:var(--cx-text-faint);opacity:.75}
|
|
1620
|
+
.cx-space-check.forced,.cx-official-row.forced{cursor:default}
|
|
1621
|
+
.cx-deploy-btn{width:100%;max-width:100%;min-width:0;padding:0 18px;justify-content:center;display:flex}
|
|
1622
|
+
.cx-entity-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--cx-cyan)}
|
|
1623
|
+
|
|
1624
|
+
/* 已安装空间卡片标题:图标 + 中文 + 英文(与待安装列表一致) */
|
|
1625
|
+
.cx-space-title{display:inline-flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap;white-space:normal;overflow:visible}
|
|
1626
|
+
.cx-space-title .cx-space-name{font-weight:700;color:var(--cx-text)}
|
|
1627
|
+
.cx-space-title .cx-space-ico{color:var(--cx-cyan)}
|
|
1628
|
+
|
|
1629
|
+
/* 网页标签图标 + 管理视图地址栏(2026-11-08) */
|
|
1630
|
+
.cx-webtab-ico{width:14px;height:14px;border-radius:3px;object-fit:cover;flex:none;background:rgba(var(--cx-hue-rgb),.12)}
|
|
1631
|
+
.cx-webtabs .cx-webtab,.cx-chat-tabs .cx-chat-tab{display:inline-flex;align-items:center;gap:6px}
|
|
1632
|
+
.cx-web .cx-addrbar,.cx-webframe .cx-addrbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-2)}
|
|
1633
|
+
.cx-web .cx-addr-input,.cx-webframe .cx-addr-input{flex:1;min-width:0;height:24px;background:var(--cx-surface-0);border:1px solid var(--cx-border);color:var(--cx-text);font:var(--cx-fs) var(--cx-font);padding:0 8px;border-radius:4px}
|
|
1634
|
+
|
|
1635
|
+
/* 管理视图网页最大化 + 地址栏 */
|
|
1636
|
+
.cx-web.max{position:absolute;top:44px;left:0;right:0;bottom:0;z-index:520;background:var(--cx-surface-0);padding:8px;display:flex;flex-direction:column}
|
|
1637
|
+
.cx-web.max .cx-webframe{flex:1;min-height:0}
|
|
1638
|
+
|
|
1639
|
+
/* 面板最大化:铺满插件区域,只保留顶部标题栏(2026-11-08) */
|
|
1640
|
+
.cx-mapsec.max,.cx-cal.max{position:absolute;left:0;right:0;top:44px;bottom:0;z-index:520;background:var(--cx-surface-0);padding:8px;display:flex;flex-direction:column;overflow:auto;margin:0}
|
|
1641
|
+
.cx-mapsec.max .cx-taskmap{flex:1;min-height:0}
|
|
1642
|
+
.cx-mapsec.max .cx-taskmap-leaflet{flex:1;min-height:0}
|
|
1643
|
+
.cx-cal.max{overflow:auto}
|
|
1644
|
+
|
|
1645
|
+
/* 最大化内容撑满(地图/日历与网页一致,2026-11-08) */
|
|
1646
|
+
.cx-mapsec.max .cx-taskmap{position:static;flex:1;display:flex;flex-direction:column;min-height:0;margin-top:8px}
|
|
1647
|
+
.cx-mapsec.max .cx-taskmap-leaflet{flex:1;height:auto;min-height:0}
|
|
1648
|
+
.cx-cal.max .cx-cal-grid{flex:1;grid-auto-rows:1fr}
|
|
1649
|
+
.cx-cal.max .cx-cal-day{height:auto;min-height:30px}
|
|
1650
|
+
.cx-cal.max .cx-cal-w{flex:none}
|
|
1651
|
+
|
|
1652
|
+
/* 最大化 = 插件输出区(fixed 到 shell 矩形,跳过标题栏) */
|
|
1653
|
+
.cx-web.max,.cx-mapsec.max,.cx-calsec.max,.cx-cal.max{
|
|
1654
|
+
position:fixed;
|
|
1655
|
+
left:var(--cx-shell-left,0);
|
|
1656
|
+
top:calc(var(--cx-shell-top,0px) + 44px);
|
|
1657
|
+
width:var(--cx-shell-width,100vw);
|
|
1658
|
+
height:calc(var(--cx-shell-height,100vh) - 44px);
|
|
1659
|
+
z-index:520;background:var(--cx-surface-0);padding:8px;margin:0;
|
|
1660
|
+
display:flex;flex-direction:column;overflow:auto;box-sizing:border-box;
|
|
1661
|
+
}
|
|
1662
|
+
.cx-calsec.max .cx-cal{flex:1;min-height:0;display:flex;flex-direction:column}
|
|
1663
|
+
.cx-calsec.max .cx-cal-grid{flex:1;grid-auto-rows:1fr}
|
|
1664
|
+
.cx-calsec.max .cx-cal-day{height:auto;min-height:30px}
|
|
1665
|
+
|
|
1666
|
+
/* 最大化:脱离侧栏,相对 chat 满区(与网页最大化的 flex 机制一致) */
|
|
1667
|
+
.cx-chat.maxview .cx-pm-side{position:static!important;overflow:visible!important;width:auto!important;border:0!important;padding:0!important;background:transparent!important}
|
|
1668
|
+
.cx-chat.maxview .cx-mapsec.max,
|
|
1669
|
+
.cx-chat.maxview .cx-calsec.max{position:absolute;left:0;right:0;top:0;bottom:0;z-index:520;width:auto;height:auto;background:var(--cx-surface-0);padding:8px;margin:0;display:flex;flex-direction:column;overflow:auto;box-sizing:border-box}
|
|
1670
|
+
.cx-chat.maxview .cx-chat-h,.cx-chat.maxview .cx-compose,.cx-chat.maxview .cx-chat-tabs{display:none}
|
|
1671
|
+
|
|
1672
|
+
/* 调试栏最大化(与网页同盒)+ 初始化空间两列(2026-11-08) */
|
|
1673
|
+
.cx-console.max{position:absolute;left:0;right:0;top:44px;bottom:0;z-index:520;height:auto!important;margin:0;border-radius:0;display:flex;flex-direction:column}
|
|
1674
|
+
.cx-console.max .cx-console-body{flex:1;min-height:0}
|
|
1675
|
+
.cx-space-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;width:100%}
|
|
1676
|
+
.cx-space-check{width:100%;min-width:0}
|
|
1677
|
+
.cx-space-check .cx-space-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1678
|
+
|
|
1679
|
+
/* 管理模式网页最大化:与网页最大化同盒(:has 让面板让位,绝对定位到 shell) */
|
|
1680
|
+
.cx-panel:has(> .cx-web.max){position:static;border:0;background:transparent}
|
|
1681
|
+
.cx-web.max{position:absolute;left:0;right:0;top:84px;bottom:0;z-index:520;width:auto;height:auto;margin:0;padding:6px;background:var(--cx-surface-0);display:flex;flex-direction:column;box-sizing:border-box}
|
|
1682
|
+
|
|
1683
|
+
/* 最大化统一盒子 = 插件输出区(实测矩形,!important 覆盖旧规则) */
|
|
1684
|
+
.cx-web.max,.cx-console.max,.cx-mapsec.max,.cx-calsec.max,.cx-cal.max{
|
|
1685
|
+
position:fixed!important;
|
|
1686
|
+
left:var(--cx-area-left,0)!important;
|
|
1687
|
+
top:var(--cx-area-top,0)!important;
|
|
1688
|
+
width:var(--cx-area-width,100vw)!important;
|
|
1689
|
+
height:var(--cx-area-height,100vh)!important;
|
|
1690
|
+
z-index:520!important;margin:0!important;border:0!important;border-radius:0!important;
|
|
1691
|
+
display:flex!important;flex-direction:column!important;overflow:auto!important;
|
|
1692
|
+
background:var(--cx-surface-0)!important;padding:6px!important;box-sizing:border-box!important;
|
|
1693
|
+
}
|
|
1694
|
+
.cx-web.max .cx-webframe{flex:1!important;min-height:0!important}
|
|
1695
|
+
.cx-console.max .cx-console-body{flex:1!important;min-height:0!important}
|
|
1696
|
+
|
|
1697
|
+
/* 调试栏终端 + 编辑器终端标签换行(2026-11-08) */
|
|
1698
|
+
.cx-console-term{flex:1;min-height:0;width:100%;background:#04101a;border-radius:4px;overflow:hidden}
|
|
1699
|
+
.cx-term-sessions{flex-wrap:wrap;overflow:visible;max-width:100%}
|
|
1700
|
+
.cx-term-sess{flex:none}
|
|
1701
|
+
|
|
1702
|
+
/* 终端宿主容器:保持挂载,只切换显示 */
|
|
1703
|
+
.cx-term-hosts{flex:1;min-height:0;display:flex;flex-direction:column}
|
|
1704
|
+
.cx-term-hosts .cx-term-host{flex:1;min-height:0}
|
|
1705
|
+
|
|
1706
|
+
/* 编辑器输出栏开发工具(终端执行) */
|
|
1707
|
+
.cx-term-outwrap{flex:1;min-height:0;display:flex;flex-direction:column}
|
|
1708
|
+
.cx-devtools{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0;border-bottom:1px solid var(--cx-line);flex:none}
|
|
1709
|
+
.cx-devbtn{border:1px solid var(--cx-line);background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-font);letter-spacing:.04em;padding:3px 7px;border-radius:3px;cursor:pointer}
|
|
1710
|
+
.cx-devbtn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1711
|
+
|
|
1712
|
+
/* 调试栏极简终端 */
|
|
1713
|
+
.cx-console-term-simple{flex:1;min-height:0;display:flex;flex-direction:column;background:#04101a;border-radius:4px;overflow:hidden;font-family:var(--cx-mono)}
|
|
1714
|
+
.cx-console-term-out{flex:1;min-height:0;margin:0;padding:6px 8px;overflow:auto;white-space:pre-wrap;word-break:break-all;color:#cfeff9;font:var(--cx-fs)/1.5 var(--cx-mono)}
|
|
1715
|
+
.cx-console-term-bar{display:flex;align-items:center;gap:6px;border-top:1px solid #16384d;padding:4px 8px;flex:none}
|
|
1716
|
+
.cx-console-term-bar .ps{color:var(--cx-green);font:var(--cx-fs) var(--cx-mono)}
|
|
1717
|
+
.cx-console-term-in{flex:1;min-width:0;background:transparent;border:0;outline:none;color:#eaffff;font:var(--cx-fs) var(--cx-mono)}
|
|
1718
|
+
|
|
1719
|
+
/* 调试栏 xterm 终端宿主 */
|
|
1720
|
+
.cx-console-term{flex:1;min-height:0;width:100%;position:relative;background:#04101a;border-radius:4px;overflow:hidden}
|
|
1721
|
+
.cx-console-term .xterm{height:100%}
|
|
1722
|
+
|
|
1723
|
+
/* 调试栏终端:单例 wrap 撑满 */
|
|
1724
|
+
.cx-console-term-inner{position:absolute;inset:0;overflow:hidden}
|
|
1725
|
+
.cx-calsec.max>.cx-pm-h{flex:none;position:sticky;top:0;z-index:2;background:var(--cx-surface-0);padding:6px 2px;margin:0 0 8px}
|
|
1726
|
+
.cx-calsec.max>.cx-cal{flex:1;min-height:0;margin:0;overflow:auto}
|
|
1727
|
+
.cx-calsec.max .cx-cal-grid{flex:1}
|
|
1728
|
+
.cx-pm-max.cx-icon{color:var(--cx-text-dim)}
|
|
1729
|
+
.cx-pm-h:hover .cx-pm-max.cx-icon{color:var(--cx-cyan)}
|
|
1730
|
+
|
|
1731
|
+
/* 管理视图网页:标签图标 + 地址栏 + 最大化(2026-11-08) */
|
|
1732
|
+
.cx-webtab-ico{width:14px;height:14px;border-radius:3px;object-fit:cover;flex:none;background:rgba(var(--cx-hue-rgb),.12)}
|
|
1733
|
+
.cx-webtabs .cx-webtab{display:inline-flex;align-items:center;gap:6px}
|
|
1734
|
+
.cx-web .cx-addrbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-2)}
|
|
1735
|
+
.cx-web .cx-addr-input{flex:1;min-width:0;height:24px;background:var(--cx-surface-0);border:1px solid var(--cx-border);color:var(--cx-text);font:var(--cx-fs) var(--cx-font);padding:0 8px;border-radius:4px}
|
|
1736
|
+
.cx-webframe.max{position:fixed;left:var(--cx-shell-left,0);top:calc(var(--cx-shell-top,0px) + 44px);width:var(--cx-shell-width,100vw);height:calc(var(--cx-shell-height,100vh) - 44px);z-index:520;background:var(--cx-surface-0);padding:6px;box-sizing:border-box}
|
|
1737
|
+
|
|
1738
|
+
/* 最大化统一:只用插件输出区(shell 矩形),不盖 DSH 侧边栏(2026-11-08 最终) */
|
|
1739
|
+
.cx-calsec.max{position:fixed!important;left:var(--cx-shell-left,0)!important;top:calc(var(--cx-shell-top,0px) + 44px)!important;width:var(--cx-shell-width,100vw)!important;height:calc(var(--cx-shell-height,100vh) - 44px)!important;z-index:520!important;background:var(--cx-surface-0)!important;padding:8px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;overflow:auto!important;margin:0!important;border:0!important}
|
|
1740
|
+
.cx-calsec.max .cx-cal{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important}
|
|
1741
|
+
.cx-calsec.max .cx-cal-grid{flex:1!important;grid-auto-rows:1fr!important}
|
|
1742
|
+
.cx-calsec.max .cx-cal-day{height:auto!important;min-height:30px!important}
|
|
1743
|
+
|
|
1744
|
+
/* 修正:聊天面板有 transform,fixed 会被它当容器 → 改用 absolute 相对 .cx-chat 铺满(2026-11-08 v2) */
|
|
1745
|
+
.cx-calsec.max,.cx-taskmap.full{
|
|
1746
|
+
position:absolute!important;
|
|
1747
|
+
left:0!important;right:0!important;top:44px!important;bottom:0!important;
|
|
1748
|
+
width:auto!important;height:auto!important;max-width:none!important;
|
|
1749
|
+
z-index:900!important;margin:0!important;padding:8px!important;border-radius:0!important;
|
|
1750
|
+
box-sizing:border-box!important;overflow:auto!important;background:var(--cx-surface-0)!important;
|
|
1751
|
+
}
|
|
1752
|
+
.cx-calsec.max .cx-cal{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important}
|
|
1753
|
+
.cx-calsec.max .cx-cal-grid{flex:1!important;grid-auto-rows:1fr!important}
|
|
1754
|
+
.cx-calsec.max .cx-cal-day{height:auto!important;min-height:30px!important}
|
|
1755
|
+
|
|
1756
|
+
/* 根因:.cx-pm-side 的 transform(refreshing 动画)会成为绝对定位容器,把最大化困在 300px 侧栏里。
|
|
1757
|
+
最大化时让它让位,使 absolute 落到 .cx-chat-body(插件输出区)。 */
|
|
1758
|
+
.cx-pm-side:has(.cx-calsec.max),.cx-pm-side:has(.cx-taskmap.full){
|
|
1759
|
+
transform:none!important;position:static!important;overflow:visible!important;
|
|
1760
|
+
width:auto!important;flex:1!important;padding:0!important;border:0!important;background:transparent!important;
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
/* 最大化四视图统一:与 .cx-webframe.max 完全同一套 fixed + shell 矩形;
|
|
1764
|
+
并中和祖先 transform(刷新动画会改变包含块)。 */
|
|
1765
|
+
body:has(.cx-calsec.max) .cx-chat,
|
|
1766
|
+
body:has(.cx-calsec.max) .cx-pm-side,
|
|
1767
|
+
body:has(.cx-taskmap.full) .cx-chat,
|
|
1768
|
+
body:has(.cx-taskmap.full) .cx-pm-side{transform:none!important;contain:none!important;filter:none!important}
|
|
1769
|
+
.cx-calsec.max,.cx-taskmap.full{
|
|
1770
|
+
position:fixed!important;
|
|
1771
|
+
left:var(--cx-shell-left,0)!important;
|
|
1772
|
+
top:calc(var(--cx-shell-top,0px) + 44px)!important;
|
|
1773
|
+
width:var(--cx-shell-width,100vw)!important;
|
|
1774
|
+
height:calc(var(--cx-shell-height,100vh) - 44px)!important;
|
|
1775
|
+
right:auto!important;bottom:auto!important;max-width:none!important;
|
|
1776
|
+
z-index:900!important;margin:0!important;padding:8px!important;border-radius:0!important;
|
|
1777
|
+
box-sizing:border-box!important;overflow:auto!important;background:var(--cx-surface-0)!important;
|
|
1778
|
+
}
|
|
1779
|
+
.cx-calsec.max .cx-cal{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important}
|
|
1780
|
+
.cx-calsec.max .cx-cal-grid{flex:1!important;grid-auto-rows:1fr!important}
|
|
1781
|
+
.cx-calsec.max .cx-cal-day{height:auto!important;min-height:30px!important}
|
|
1782
|
+
|
|
1783
|
+
/* 最高优先级覆盖:.cx-shell .cx-pm-side.right .cx-taskmap.full 是旧的全窗口规则(specificity 更高) */
|
|
1784
|
+
.cx-shell .cx-pm-side .cx-taskmap.full{
|
|
1785
|
+
position:fixed!important;
|
|
1786
|
+
left:var(--cx-shell-left,0)!important;
|
|
1787
|
+
top:calc(var(--cx-shell-top,0px) + 44px)!important;
|
|
1788
|
+
width:var(--cx-shell-width,100vw)!important;
|
|
1789
|
+
height:calc(var(--cx-shell-height,100vh) - 44px)!important;
|
|
1790
|
+
right:auto!important;bottom:auto!important;max-width:none!important;margin:0!important;padding:8px!important;
|
|
1791
|
+
box-sizing:border-box!important;overflow:hidden!important;background:var(--cx-surface-1)!important;
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
/* 地图 leaflet 同步收敛到插件矩形(覆盖旧 100vw/100vh) */
|
|
1795
|
+
.cx-shell .cx-pm-side .cx-taskmap.full .cx-taskmap-leaflet{
|
|
1796
|
+
position:absolute!important;left:8px!important;right:8px!important;top:44px!important;bottom:8px!important;
|
|
1797
|
+
width:auto!important;height:auto!important;border:0!important;border-radius:0!important;
|
|
1798
|
+
}
|
|
1799
|
+
|
|
1800
|
+
/* 地图最大化:让整块 section(标题栏 + 地图)flex 撑满 */
|
|
1801
|
+
.cx-mapsec.max{display:flex!important;flex-direction:column!important}
|
|
1802
|
+
.cx-mapsec.max .cx-taskmap{flex:1!important;min-height:0!important;position:static!important;margin-top:8px!important}
|
|
1803
|
+
.cx-mapsec.max .cx-taskmap-leaflet{position:absolute!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:auto!important;height:auto!important}
|
|
1804
|
+
|
|
1805
|
+
/* 地图最大化:标题栏在最上,地图在下方占满(leaflet 相对 .cx-taskmap 定位) */
|
|
1806
|
+
.cx-mapsec.max{display:flex!important;flex-direction:column!important;overflow:hidden!important}
|
|
1807
|
+
.cx-mapsec.max>.cx-pm-h{flex:none!important}
|
|
1808
|
+
.cx-mapsec.max .cx-taskmap{flex:1!important;min-height:0!important;position:relative!important;margin:8px 0 0!important;overflow:hidden!important}
|
|
1809
|
+
.cx-mapsec.max .cx-taskmap-leaflet{position:absolute!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:auto!important;height:auto!important}
|
|
1810
|
+
|
|
1811
|
+
/* ContextOS 控制台:输入框芯片 + 配置抽屉(2026-11-08) */
|
|
1812
|
+
.cx-ctx-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border:1px solid var(--cx-border);border-radius:999px;background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-font);cursor:pointer;flex:none}
|
|
1813
|
+
.cx-ctx-chip:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1814
|
+
.cx-ctx-chip-k{color:var(--cx-cyan);font-weight:700;letter-spacing:.06em}
|
|
1815
|
+
.cx-ctx-chip-v{color:var(--cx-text)}
|
|
1816
|
+
.cx-ctx-chip-s{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cx-text-faint)}
|
|
1817
|
+
.cx-ctx-drawer{position:fixed;inset:0;z-index:1200;background:rgba(2,8,14,.28);display:flex;align-items:stretch;justify-content:flex-end;padding:0}
|
|
1818
|
+
.cx-ctx-panel{width:min(520px,46vw);height:100%;display:flex;flex-direction:column;border-left:1px solid var(--cx-cyan);border-radius:0;background:var(--cx-surface-0);box-shadow:-18px 0 60px rgba(0,0,0,.5);overflow:hidden}
|
|
1819
|
+
.cx-ctx-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-1)}
|
|
1820
|
+
.cx-ctx-title{font:800 var(--cx-fs) var(--cx-font);letter-spacing:.14em;color:var(--cx-cyan)}
|
|
1821
|
+
.cx-ctx-meta{flex:1;min-width:0;font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1822
|
+
.cx-ctx-x{border:0;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-title) var(--cx-font);cursor:pointer}
|
|
1823
|
+
.cx-ctx-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-1)}
|
|
1824
|
+
.cx-ctx-tab{height:24px;padding:0 9px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-font);cursor:pointer}
|
|
1825
|
+
.cx-ctx-tab.on{border-color:var(--cx-cyan);color:var(--cx-cyan);background:color-mix(in srgb,var(--cx-cyan) 10%,transparent)}
|
|
1826
|
+
.cx-ctx-body{flex:1;min-height:0;overflow:auto;padding:12px}
|
|
1827
|
+
.cx-ctx-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
|
|
1828
|
+
.cx-ctx-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
|
|
1829
|
+
.cx-ctx-list{display:flex;flex-direction:column;gap:6px}
|
|
1830
|
+
.cx-ctx-cmd{display:flex;gap:10px;padding:6px 8px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-1)}
|
|
1831
|
+
.cx-ctx-cmd .nm{color:var(--cx-cyan);font:var(--cx-fs) var(--cx-mono)}
|
|
1832
|
+
.cx-ctx-cmd .ds{color:var(--cx-text-faint);font:var(--cx-fs-body) var(--cx-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1833
|
+
.cx-ctx-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
|
|
1834
|
+
.cx-ctx-stat{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-1)}
|
|
1835
|
+
.cx-ctx-stat b{font:700 var(--cx-fs-title) var(--cx-font);color:var(--cx-cyan)}
|
|
1836
|
+
.cx-ctx-stat span{font:var(--cx-fs-body) var(--cx-font);color:var(--cx-text-faint)}
|
|
1837
|
+
.cx-ctx-empty{padding:16px;color:var(--cx-text-faint);font:var(--cx-fs) var(--cx-font)}
|
|
1838
|
+
|
|
1839
|
+
/* ContextOS 会话标题栏按钮 */
|
|
1840
|
+
.cx-ctx-hbtn{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-font);cursor:pointer}
|
|
1841
|
+
.cx-ctx-hbtn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1842
|
+
.cx-ctx-hdot{width:6px;height:6px;border-radius:50%;background:var(--cx-cyan);box-shadow:0 0 6px var(--cx-cyan)}
|
|
1843
|
+
|
|
1844
|
+
/* 控制台:命令行内输入与刷新按钮 */
|
|
1845
|
+
.cx-ctx-cmd .cx-input{flex:1;min-width:0;height:22px;font-size:var(--cx-fs-body)}
|
|
1846
|
+
.cx-ctx-cmd{flex-wrap:nowrap}
|
|
1847
|
+
.cx-ctx-head .cx-btn.xs{flex:none}
|
|
1848
|
+
|
|
1849
|
+
/* 控制台提示条 */
|
|
1850
|
+
.cx-ctx-msg{padding:6px 12px;border-bottom:1px solid var(--cx-border);background:color-mix(in srgb,var(--cx-cyan) 10%,transparent);color:var(--cx-cyan);font:var(--cx-fs-body) var(--cx-font)}
|
|
1851
|
+
|
|
1852
|
+
/* 控制台视觉:头部 logo / 摘要 pill / 分段标签(2026-11-08) */
|
|
1853
|
+
.cx-ctx-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--cx-border);background:linear-gradient(180deg,var(--cx-surface-1),var(--cx-surface-0))}
|
|
1854
|
+
.cx-ctx-logo{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--cx-cyan);border-radius:6px;color:var(--cx-cyan);font:800 var(--cx-fs-body) var(--cx-mono);letter-spacing:.08em;box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.25)}
|
|
1855
|
+
.cx-ctx-titles{flex:1;min-width:0}
|
|
1856
|
+
.cx-ctx-title{font:800 var(--cx-fs) var(--cx-font);letter-spacing:.2em;color:var(--cx-cyan)}
|
|
1857
|
+
.cx-ctx-sub{font:var(--cx-fs-body) var(--cx-mono);color:var(--cx-text-faint);letter-spacing:.06em;margin-top:2px}
|
|
1858
|
+
.cx-ctx-acts{display:flex;align-items:center;gap:6px;flex:none}
|
|
1859
|
+
.cx-ctx-acts .cx-icon-btn{width:26px;height:26px;border:1px solid var(--cx-border);border-radius:4px;background:var(--cx-surface-2);color:var(--cx-text-dim);font:var(--cx-fs-title) var(--cx-font);cursor:pointer}
|
|
1860
|
+
.cx-ctx-acts .cx-icon-btn:hover{border-color:var(--cx-accent);color:var(--cx-accent)}
|
|
1861
|
+
.cx-ctx-sum{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-0)}
|
|
1862
|
+
.cx-ctx-pill{height:20px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid var(--cx-border);border-radius:999px;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-mono);background:var(--cx-surface-1)}
|
|
1863
|
+
.cx-ctx-pill.on{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
1864
|
+
.cx-ctx-pill.dim{opacity:.65}
|
|
1865
|
+
.cx-ctx-tabs{display:flex;flex-wrap:wrap;gap:2px;padding:8px 10px;border-bottom:1px solid var(--cx-border);background:var(--cx-surface-1)}
|
|
1866
|
+
.cx-ctx-tab{height:26px;padding:0 10px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--cx-text-dim);font:var(--cx-fs-body) var(--cx-font);cursor:pointer}
|
|
1867
|
+
.cx-ctx-tab:hover{color:var(--cx-text)}
|
|
1868
|
+
.cx-ctx-tab.on{border-color:var(--cx-cyan);color:var(--cx-cyan);background:color-mix(in srgb,var(--cx-cyan) 12%,transparent)}
|
|
1869
|
+
.cx-ctx-body{padding:14px}
|
|
1870
|
+
.cx-ctx-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
|
|
1871
|
+
.cx-ctx-form .cx-field{display:flex;flex-direction:column;gap:4px;font:var(--cx-fs-body) var(--cx-font);letter-spacing:.08em;color:var(--cx-text-faint);text-transform:uppercase}
|
|
1872
|
+
.cx-ctx-form .cx-input{height:26px;font-size:var(--cx-fs)}
|
|
1873
|
+
.cx-ctx-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px;border-top:1px solid var(--cx-border)}
|
|
1874
|
+
|
|
1875
|
+
/* 控制台下拉:统一高度与内边距,避免文字被截 */
|
|
1876
|
+
.cx-ctx-form select.cx-input{height:28px;padding:0 8px;line-height:28px;font-size:var(--cx-fs);appearance:auto;-webkit-appearance:auto;background-color:var(--cx-surface-0)}
|
|
1877
|
+
.cx-ctx-form .cx-input{height:28px}
|
|
1878
|
+
|
|
1879
|
+
/* 右栏五个标题栏:常驻堆叠(滚动时依次吸顶,全部可见) */
|
|
1880
|
+
.cx-pm-side.right .cx-pm-h{position:sticky;top:calc(var(--cx-hi, 0) * 34px);z-index:calc(60 - var(--cx-hi, 0));backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--cx-border)}
|
|
1881
|
+
/* 让日历/地图的标题也直接参与右栏布局,才能对整栏吸顶吸底 */
|
|
1882
|
+
.cx-pm-side.right .cx-calsec:not(.max),.cx-pm-side.right .cx-mapsec:not(.max){display:contents}
|
|
1883
|
+
.cx-pm-side.right .cx-pm-h:hover{z-index:calc(60 - var(--cx-hi, 0))}
|
|
1884
|
+
|
|
1885
|
+
/* 卡片图标容器 */
|
|
1886
|
+
.cx-entity-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--cx-cyan)}
|
|
1887
|
+
|
|
1888
|
+
/* 卡片出场特效:5 种,新卡/变更卡轮换(2026-11-08) */
|
|
1889
|
+
.cx-in{animation-duration:1s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:both;will-change:transform,opacity,filter}
|
|
1890
|
+
.cx-in-1{animation-name:cx-in-slide}
|
|
1891
|
+
.cx-in-2{animation-name:cx-in-pop}
|
|
1892
|
+
.cx-in-3{animation-name:cx-in-flip}
|
|
1893
|
+
.cx-in-4{animation-name:cx-in-neon}
|
|
1894
|
+
.cx-in-5{animation-name:cx-in-drop}
|
|
1895
|
+
@keyframes cx-in-slide{
|
|
1896
|
+
0%{opacity:0;transform:translateX(26px) skewX(-2deg);filter:blur(3px)}
|
|
1897
|
+
60%{opacity:1;transform:translateX(-3px) skewX(0);filter:blur(0)}
|
|
1898
|
+
100%{opacity:1;transform:none}
|
|
1899
|
+
}
|
|
1900
|
+
@keyframes cx-in-pop{
|
|
1901
|
+
0%{opacity:0;transform:scale(.86);filter:blur(4px)}
|
|
1902
|
+
55%{opacity:1;transform:scale(1.035);filter:blur(0)}
|
|
1903
|
+
80%{transform:scale(.995)}
|
|
1904
|
+
100%{transform:scale(1)}
|
|
1905
|
+
}
|
|
1906
|
+
@keyframes cx-in-flip{
|
|
1907
|
+
0%{opacity:0;transform:perspective(720px) rotateX(-32deg) translateY(10px);transform-origin:50% 0}
|
|
1908
|
+
70%{opacity:1;transform:perspective(720px) rotateX(4deg) translateY(0)}
|
|
1909
|
+
100%{opacity:1;transform:none}
|
|
1910
|
+
}
|
|
1911
|
+
@keyframes cx-in-neon{
|
|
1912
|
+
0%{opacity:0;box-shadow:0 0 0 rgba(var(--cx-hue-rgb),0)}
|
|
1913
|
+
45%{opacity:1;box-shadow:0 0 26px rgba(var(--cx-hue-rgb),.5),inset 0 0 18px rgba(var(--cx-hue-rgb),.18);border-color:rgba(var(--cx-hue-rgb),.85)}
|
|
1914
|
+
100%{opacity:1;box-shadow:0 0 0 rgba(var(--cx-hue-rgb),0)}
|
|
1915
|
+
}
|
|
1916
|
+
@keyframes cx-in-drop{
|
|
1917
|
+
0%{opacity:0;transform:translateY(-18px) scale(.98)}
|
|
1918
|
+
60%{opacity:1;transform:translateY(3px) scale(1)}
|
|
1919
|
+
80%{transform:translateY(-1px)}
|
|
1920
|
+
100%{transform:none}
|
|
1921
|
+
}
|
|
1922
|
+
@media (prefers-reduced-motion: reduce){.cx-in{animation:none!important}}
|
|
1923
|
+
|
|
1924
|
+
/* 新卡/变更卡的闪光扫过(恢复旧的闪光感,叠加在五种出场特效上) */
|
|
1925
|
+
.cx-pm-card.cx-in{position:relative;overflow:hidden}
|
|
1926
|
+
.cx-pm-card.cx-in::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 28%,rgba(var(--cx-hue-rgb),.38) 46%,rgba(255,255,255,.22) 50%,rgba(var(--cx-hue-rgb),.38) 54%,transparent 72%);transform:translateX(-130%);animation:cx-card-sweep 1.8s cubic-bezier(.4,0,.2,1) .1s both}
|
|
1927
|
+
@keyframes cx-card-sweep{0%{transform:translateX(-130%);opacity:0}18%{opacity:1}100%{transform:translateX(130%);opacity:0}}
|
|
1928
|
+
|
|
1929
|
+
/* 数字分身:呼吸、悬停加速、点击故障闪烁(2026-11-08) */
|
|
1930
|
+
.cx-avatar3d{cursor:grab}
|
|
1931
|
+
.cx-avatar3d:active{cursor:grabbing}
|
|
1932
|
+
.cx-avatar3d-inner{animation:cx-av-breathe 6.5s ease-in-out infinite}
|
|
1933
|
+
@keyframes cx-av-breathe{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
|
|
1934
|
+
.cx-avatar3d.hover .cx-avatar-ring{animation-duration:5s}
|
|
1935
|
+
.cx-avatar3d.hover .cx-avatar-halo{opacity:1;transform:scale(1.08)}
|
|
1936
|
+
.cx-avatar3d.hover .cx-avatar-wave i{animation-duration:.7s}
|
|
1937
|
+
.cx-avatar3d.hover .cx-avatar3d-inner{filter:brightness(1.12) saturate(1.1)}
|
|
1938
|
+
.cx-avatar-glitch{position:absolute;inset:0;pointer-events:none;z-index:9;background:linear-gradient(90deg,rgba(var(--cx-hue-rgb),.14),transparent 30%,rgba(255,120,220,.12) 60%,transparent);mix-blend-mode:screen;animation:cx-av-glitch .42s steps(3,end) both}
|
|
1939
|
+
@keyframes cx-av-glitch{
|
|
1940
|
+
0%{opacity:0;transform:translateX(0)}
|
|
1941
|
+
15%{opacity:1;transform:translateX(-4px)}
|
|
1942
|
+
30%{opacity:.6;transform:translateX(5px)}
|
|
1943
|
+
45%{opacity:1;transform:translateX(-2px)}
|
|
1944
|
+
60%{opacity:.4;transform:translateX(3px)}
|
|
1945
|
+
100%{opacity:0;transform:translateX(0)}
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
/* 赛博世界:点击爆发光 + 顶部 HUD */
|
|
1949
|
+
.cx-city3d{position:relative}
|
|
1950
|
+
.cx-city3d.cx-city-burst::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:6;background:radial-gradient(circle at 50% 55%,rgba(var(--cx-hue-rgb),.35),transparent 45%);animation:cx-city-burst .72s ease-out both}
|
|
1951
|
+
@keyframes cx-city-burst{0%{opacity:0;transform:scale(.9)}30%{opacity:1}100%{opacity:0;transform:scale(1.06)}}
|
|
1952
|
+
.cx-city-hud{position:absolute;left:18px;top:14px;z-index:5;display:flex;gap:14px;align-items:center;pointer-events:none;font:var(--cx-fs-body) var(--cx-mono);letter-spacing:.14em;color:var(--cx-cyan)}
|
|
1953
|
+
.cx-city-hud span{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--cx-border);border-radius:999px;background:rgba(4,12,20,.55);backdrop-filter:blur(6px)}
|
|
1954
|
+
.cx-city-hud .dot{width:5px;height:5px;border-radius:50%;background:var(--cx-green);box-shadow:0 0 6px var(--cx-green);animation:cx-hud-blink 1.8s ease-in-out infinite}
|
|
1955
|
+
@keyframes cx-hud-blink{0%,100%{opacity:.35}50%{opacity:1}}
|
|
1956
|
+
|
|
1957
|
+
/* 切换模式:选中卡片统一「移动闪光」扫过(管理模式/开发模式/对话模式一致) */
|
|
1958
|
+
.cx-shell.cx-view-flash .cx-pm-card.on,
|
|
1959
|
+
.cx-shell.cx-view-flash .cx-node.on,
|
|
1960
|
+
.cx-shell.cx-view-flash .cx-space.on,
|
|
1961
|
+
.cx-shell.cx-view-flash .cx-app.on,
|
|
1962
|
+
.cx-shell.cx-view-flash .cx-webtab.on,
|
|
1963
|
+
.cx-shell.cx-view-flash .cx-tree-item.on,
|
|
1964
|
+
.cx-shell.cx-view-flash .cx-tab.on,
|
|
1965
|
+
.cx-shell.cx-view-flash .cx-term-tab.on,
|
|
1966
|
+
.cx-shell.cx-view-flash .cx-term-sess.on{position:relative;overflow:hidden}
|
|
1967
|
+
|
|
1968
|
+
.cx-shell.cx-view-flash .cx-pm-card.on::before,
|
|
1969
|
+
.cx-shell.cx-view-flash .cx-node.on::before,
|
|
1970
|
+
.cx-shell.cx-view-flash .cx-space.on::before,
|
|
1971
|
+
.cx-shell.cx-view-flash .cx-app.on::before,
|
|
1972
|
+
.cx-shell.cx-view-flash .cx-webtab.on::before,
|
|
1973
|
+
.cx-shell.cx-view-flash .cx-tree-item.on::before,
|
|
1974
|
+
.cx-shell.cx-view-flash .cx-tab.on::before,
|
|
1975
|
+
.cx-shell.cx-view-flash .cx-term-tab.on::before,
|
|
1976
|
+
.cx-shell.cx-view-flash .cx-term-sess.on::before{
|
|
1977
|
+
content:'';position:absolute;inset:0;pointer-events:none;z-index:4;border-radius:inherit;
|
|
1978
|
+
background:linear-gradient(105deg,transparent 28%,rgba(var(--cx-hue-rgb),.42) 46%,rgba(255,255,255,.24) 50%,rgba(var(--cx-hue-rgb),.42) 54%,transparent 72%);
|
|
1979
|
+
transform:translateX(-130%);
|
|
1980
|
+
box-shadow:0 0 0 1px rgba(var(--cx-hue-rgb),.55),0 0 18px rgba(var(--cx-hue-rgb),.35);
|
|
1981
|
+
animation:cx-sel-sweep 1.5s cubic-bezier(.4,0,.2,1) .05s both;
|
|
1982
|
+
}
|
|
1983
|
+
@keyframes cx-sel-sweep{
|
|
1984
|
+
0%{transform:translateX(-130%);opacity:0}
|
|
1985
|
+
12%{opacity:1}
|
|
1986
|
+
100%{transform:translateX(130%);opacity:0}
|
|
1987
|
+
}
|
|
1988
|
+
|
|
1989
|
+
|
|
1990
|
+
/* 首次进入模式:五扇门开门过场 + WELCOME TO(2026-11-08) */
|
|
1991
|
+
.cx-intro{position:absolute;inset:0;z-index:950;display:grid;place-items:center;overflow:hidden;pointer-events:none;
|
|
1992
|
+
background:radial-gradient(circle at 50% 50%,rgba(6,18,28,.94),rgba(2,7,12,.985));
|
|
1993
|
+
animation:cx-intro-fade 3.2s ease both}
|
|
1994
|
+
@keyframes cx-intro-fade{0%{opacity:1}82%{opacity:1}100%{opacity:0}}
|
|
1995
|
+
.cx-intro-doors{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1px}
|
|
1996
|
+
.cx-intro-doors i{display:block;background:linear-gradient(180deg,#0a1b28,#02080f 60%,#061520);
|
|
1997
|
+
border-left:1px solid rgba(var(--cx-hue-rgb),.22);box-shadow:inset 0 0 40px rgba(var(--cx-hue-rgb),.08);
|
|
1998
|
+
animation:cx-door 1.15s cubic-bezier(.76,0,.24,1) both}
|
|
1999
|
+
.cx-intro-doors i:nth-child(odd){transform-origin:top}
|
|
2000
|
+
.cx-intro-doors i:nth-child(even){transform-origin:bottom}
|
|
2001
|
+
@keyframes cx-door{0%{transform:scaleY(1)}100%{transform:scaleY(0);opacity:0}}
|
|
2002
|
+
.cx-intro-txt{position:relative;z-index:2;text-align:center;animation:cx-intro-txt 3.2s ease both}
|
|
2003
|
+
@keyframes cx-intro-txt{0%,10%{opacity:0;transform:translateY(14px)}25%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
|
|
2004
|
+
.cx-intro-w{font:800 var(--cx-fs-body) var(--cx-mono);letter-spacing:.5em;color:var(--cx-cyan);opacity:.9}
|
|
2005
|
+
.cx-intro-m{font:900 var(--cx-fs-title) var(--cx-font);letter-spacing:.18em;color:#eafcff;margin:8px 0;
|
|
2006
|
+
text-shadow:0 0 26px rgba(var(--cx-hue-rgb),.55),0 0 60px rgba(var(--cx-hue-rgb),.25)}
|
|
2007
|
+
.cx-intro-s{font:var(--cx-fs-body) var(--cx-mono);letter-spacing:.3em;color:var(--cx-text-faint)}
|
|
2008
|
+
|
|
2009
|
+
/* 进入/离开初始化:快速欢迎过场(2026-11-08) */
|
|
2010
|
+
.cx-welcome{animation:cx-welcome-fade 1.8s ease both}
|
|
2011
|
+
@keyframes cx-welcome-fade{0%{opacity:1}75%{opacity:1}100%{opacity:0}}
|
|
2012
|
+
.cx-welcome .cx-intro-doors i{animation-duration:.9s}
|
|
2013
|
+
.cx-welcome .cx-intro-txt{animation:cx-welcome-txt 1.8s ease both}
|
|
2014
|
+
@keyframes cx-welcome-txt{0%{opacity:0;transform:scale(.94)}22%{opacity:1;transform:none}75%{opacity:1}100%{opacity:0;transform:scale(1.02)}}
|
|
2015
|
+
.cx-welcome .cx-intro-m{font-size:var(--cx-fs-title)}
|
|
2016
|
+
|
|
2017
|
+
/* 输入框:边框包住工具栏 + 更大圆角 + 流动光带(2026-11-08) */
|
|
2018
|
+
.cx-compose{
|
|
2019
|
+
border-radius:24px;
|
|
2020
|
+
border-color:rgba(var(--cx-hue-rgb),.42);
|
|
2021
|
+
box-shadow:0 0 26px rgba(var(--cx-hue-rgb),.12),0 10px 34px rgba(0,0,0,.35),inset 0 0 24px rgba(var(--cx-hue-rgb),.045);
|
|
2022
|
+
animation:cx-compose-breathe 5.5s ease-in-out infinite;
|
|
2023
|
+
}
|
|
2024
|
+
@keyframes cx-compose-breathe{
|
|
2025
|
+
0%,100%{box-shadow:0 0 22px rgba(var(--cx-hue-rgb),.10),0 10px 34px rgba(0,0,0,.35),inset 0 0 22px rgba(var(--cx-hue-rgb),.04)}
|
|
2026
|
+
50%{box-shadow:0 0 38px rgba(var(--cx-hue-rgb),.22),0 10px 34px rgba(0,0,0,.35),inset 0 0 30px rgba(var(--cx-hue-rgb),.07)}
|
|
2027
|
+
}
|
|
2028
|
+
.cx-compose::after{
|
|
2029
|
+
content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:0;
|
|
2030
|
+
background:linear-gradient(90deg,transparent 0%,rgba(var(--cx-hue-rgb),.05) 12%,rgba(var(--cx-hue-rgb),.95) 30%,rgba(255,255,255,.75) 38%,rgba(var(--cx-green-rgb),.85) 52%,rgba(var(--cx-hue-rgb),.05) 72%,transparent 100%);
|
|
2031
|
+
background-size:300% 100%;
|
|
2032
|
+
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
|
|
2033
|
+
-webkit-mask-composite:xor;mask-composite:exclude;
|
|
2034
|
+
animation:cx-compose-ring 4.2s linear infinite;
|
|
2035
|
+
}
|
|
2036
|
+
@keyframes cx-compose-ring{0%{background-position:0% 0}100%{background-position:300% 0}}
|
|
2037
|
+
.cx-compose .cx-compose-tools{background:transparent}
|
|
2038
|
+
.cx-compose .cx-compose-input{padding-bottom:6px}
|
|
2039
|
+
.cx-shell[data-theme="light"] .cx-compose{box-shadow:0 8px 28px rgba(24,66,84,.12),0 0 22px rgba(var(--cx-hue-rgb),.10)}
|
|
2040
|
+
|
|
2041
|
+
/* 输入框边框:提高基础亮度(同选择器、后置覆盖) */
|
|
2042
|
+
.cx-shell .cx-compose{border-color:rgba(var(--cx-hue-rgb),.48)}
|
|
2043
|
+
.cx-shell[data-theme="light"] .cx-compose{border-color:rgba(24,120,150,.45)}
|
|
2044
|
+
|
|
2045
|
+
/* 去掉输入区外层方框;圆角框加光波扩散(2026-11-08) */
|
|
2046
|
+
.cx-chat,.cx-chat.full,.cx-chat.webmax,.cx-chat-center,.cx-chat-body{border:0;outline:0;box-shadow:none}
|
|
2047
|
+
.cx-chat.full{background:transparent}
|
|
2048
|
+
.cx-compose::before{
|
|
2049
|
+
content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
|
|
2050
|
+
border:0;box-shadow:0 0 0 0 rgba(var(--cx-hue-rgb),.5);
|
|
2051
|
+
animation:cx-compose-wave 3.2s ease-out infinite;
|
|
2052
|
+
}
|
|
2053
|
+
@keyframes cx-compose-wave{
|
|
2054
|
+
0%{box-shadow:0 0 0 0 rgba(var(--cx-hue-rgb),.5),0 0 18px rgba(var(--cx-hue-rgb),.18)}
|
|
2055
|
+
70%{box-shadow:0 0 0 10px rgba(var(--cx-hue-rgb),.10),0 0 22px rgba(var(--cx-hue-rgb),.10)}
|
|
2056
|
+
100%{box-shadow:0 0 0 16px rgba(var(--cx-hue-rgb),0),0 0 26px rgba(var(--cx-hue-rgb),0)}
|
|
2057
|
+
}
|
|
2058
|
+
.cx-compose:focus-within::before{animation-duration:2.2s}
|
|
2059
|
+
|
|
2060
|
+
/* 输入框:彻底去掉宿主/浏览器给的 outline(那圈“多余边框”),聚焦改用边框配色 */
|
|
2061
|
+
.cx-shell .cx-compose,
|
|
2062
|
+
.cx-shell .cx-compose:focus,
|
|
2063
|
+
.cx-shell .cx-compose:focus-within,
|
|
2064
|
+
.cx-shell .cx-compose:focus-visible,
|
|
2065
|
+
.cx-shell .cx-compose-input,
|
|
2066
|
+
.cx-shell .cx-compose-input:focus,
|
|
2067
|
+
.cx-shell .cx-compose-input:focus-visible{
|
|
2068
|
+
outline:0!important;outline-width:0!important;outline-offset:0!important;
|
|
2069
|
+
}
|
|
2070
|
+
.cx-shell .cx-compose:focus-within{border-color:rgba(var(--cx-green-rgb),.75)}
|
|
2071
|
+
|
|
2072
|
+
/* + / 发送:更大、带底色、间距更松(2026-11-08) */
|
|
2073
|
+
.cx-compose .cx-compose-tools{gap:8px;padding:8px 12px 10px}
|
|
2074
|
+
.cx-compose-plus,.cx-compose-send{width:40px;height:40px;flex:none}
|
|
2075
|
+
.cx-compose-plus{margin-right:6px;border:1px solid rgba(var(--cx-hue-rgb),.5);background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.22),rgba(var(--cx-hue-rgb),.08));color:#d6fbff;font:var(--cx-fs-title)/38px var(--cx-font);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.18),inset 0 0 10px rgba(var(--cx-hue-rgb),.12)}
|
|
2076
|
+
.cx-compose-plus:hover{border-color:var(--cx-cyan);background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.34),rgba(var(--cx-hue-rgb),.14));box-shadow:0 0 20px rgba(var(--cx-hue-rgb),.4),inset 0 0 12px rgba(var(--cx-hue-rgb),.2)}
|
|
2077
|
+
.cx-compose-send{margin-left:6px;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--cx-cyan),var(--cx-green));color:#03141c;font:800 var(--cx-fs-title)/40px var(--cx-font);box-shadow:0 0 20px rgba(var(--cx-hue-rgb),.45),inset 0 1px 0 rgba(255,255,255,.5)}
|
|
2078
|
+
.cx-compose-send:hover{box-shadow:0 0 26px rgba(var(--cx-hue-rgb),.65),inset 0 1px 0 rgba(255,255,255,.6)}
|
|
2079
|
+
.cx-compose-send:disabled{opacity:.35;box-shadow:none}
|
|
2080
|
+
.cx-compose .cx-compose-input{padding:12px 16px 8px}
|
|
2081
|
+
|
|
2082
|
+
/* + 号:主题覆盖下也保持青色底 */
|
|
2083
|
+
.cx-shell .cx-compose-plus{background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.22),rgba(var(--cx-hue-rgb),.08))}
|
|
2084
|
+
.cx-shell .cx-compose-plus:hover{background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.34),rgba(var(--cx-hue-rgb),.14))}
|
|
2085
|
+
.cx-shell[data-theme="light"] .cx-compose-plus{background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.28),rgba(var(--cx-hue-rgb),.12));color:#0a3a47}
|
|
2086
|
+
.cx-shell[data-theme="light"] .cx-compose-send{background:linear-gradient(135deg,var(--cx-cyan),var(--cx-green));color:#03141c}
|
|
2087
|
+
|
|
2088
|
+
/* + / 发送:同尺寸同圆角 + 悬停光影 + 点击光波 + 右键震动(2026-11-08) */
|
|
2089
|
+
.cx-compose-plus,.cx-compose-send{width:40px;height:40px;border-radius:50%;position:relative;overflow:hidden;isolation:isolate}
|
|
2090
|
+
.cx-compose-plus{font:var(--cx-fs-title)/38px var(--cx-font)}
|
|
2091
|
+
.cx-compose-send{font:800 var(--cx-fs-title)/38px var(--cx-font)}
|
|
2092
|
+
.cx-compose-plus::after,.cx-compose-send::after{
|
|
2093
|
+
content:'';position:absolute;inset:-45%;pointer-events:none;z-index:2;
|
|
2094
|
+
background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.55) 38deg,transparent 96deg);
|
|
2095
|
+
opacity:0;mix-blend-mode:screen;
|
|
2096
|
+
}
|
|
2097
|
+
.cx-compose-plus:hover::after,.cx-compose-send:hover::after{opacity:1;animation:cx-btn-spin 1.35s linear infinite}
|
|
2098
|
+
@keyframes cx-btn-spin{to{transform:rotate(360deg)}}
|
|
2099
|
+
.cx-compose-plus:active,.cx-compose-send:active{animation:cx-btn-wave .45s ease-out}
|
|
2100
|
+
@keyframes cx-btn-wave{
|
|
2101
|
+
0%{box-shadow:0 0 0 0 rgba(var(--cx-hue-rgb),.75),0 0 14px rgba(var(--cx-hue-rgb),.5)}
|
|
2102
|
+
100%{box-shadow:0 0 0 16px rgba(var(--cx-hue-rgb),0),0 0 22px rgba(var(--cx-hue-rgb),0)}
|
|
2103
|
+
}
|
|
2104
|
+
.cx-shake{animation:cx-shake .45s cubic-bezier(.36,.07,.19,.97)}
|
|
2105
|
+
@keyframes cx-shake{
|
|
2106
|
+
10%,90%{transform:translateX(-1px)}
|
|
2107
|
+
20%,80%{transform:translateX(2px)}
|
|
2108
|
+
30%,50%,70%{transform:translateX(-3px)}
|
|
2109
|
+
40%,60%{transform:translateX(3px)}
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
/* 声效 / 动效 / 色系:三档可切换(2026-11-08) */
|
|
2113
|
+
.cx-shell[data-color="green"]{--cx-cyan:var(--cx-green);--cx-accent:var(--cx-green);--cx-green:var(--cx-cyan)}
|
|
2114
|
+
.cx-shell[data-color="violet"]{--cx-cyan:#a78bfa;--cx-accent:#a78bfa;--cx-green:#7dd3fc}
|
|
2115
|
+
.cx-shell[data-color="amber"]{--cx-cyan:#ffb454;--cx-accent:#ffb454;--cx-green:#ffe08a}
|
|
2116
|
+
.cx-shell[data-light="off"] .cx-compose::before,
|
|
2117
|
+
.cx-shell[data-light="off"] .cx-compose::after,
|
|
2118
|
+
.cx-shell[data-light="off"] .cx-compose-plus::after,
|
|
2119
|
+
.cx-shell[data-light="off"] .cx-compose-send::after,
|
|
2120
|
+
.cx-shell[data-light="off"] .cx-in,
|
|
2121
|
+
.cx-shell[data-light="off"] .cx-intro,
|
|
2122
|
+
.cx-shell[data-light="off"] .cx-city-hud .dot{animation:none!important}
|
|
2123
|
+
.cx-shell[data-light="off"] .cx-compose{animation:none}
|
|
2124
|
+
.cx-shell[data-light="mid"] .cx-compose::after{animation-duration:6.5s}
|
|
2125
|
+
.cx-shell[data-light="mid"] .cx-compose::before{animation-duration:4.6s}
|
|
2126
|
+
.cx-shell[data-light="low"] .cx-compose::after{animation-duration:9s}
|
|
2127
|
+
.cx-shell[data-light="low"] .cx-compose::before{animation:none}
|
|
2128
|
+
|
|
2129
|
+
/* 更多鼠标特效:按钮/下拉悬停发光、抬升、描边 */
|
|
2130
|
+
.cx-btn,.cx-sel-btn,.cx-compose-plus,.cx-compose-send{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
|
|
2131
|
+
.cx-btn:hover,.cx-sel-btn:hover{transform:translateY(-1px);border-color:rgba(var(--cx-hue-rgb),.8);box-shadow:0 0 16px rgba(var(--cx-hue-rgb),.35),inset 0 0 10px rgba(var(--cx-hue-rgb),.12)}
|
|
2132
|
+
.cx-sel-btn:hover .v{color:var(--cx-cyan)}
|
|
2133
|
+
.cx-btn:active,.cx-sel-btn:active{transform:translateY(0) scale(.97)}
|
|
2134
|
+
.cx-compose-plus:hover,.cx-compose-send:hover{transform:translateY(-1px) scale(1.04)}
|
|
2135
|
+
.cx-compose-plus:active,.cx-compose-send:active{transform:scale(.94)}
|
|
2136
|
+
|
|
2137
|
+
/* 头部下拉:悬停也有光影 */
|
|
2138
|
+
.cx-drop{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
|
|
2139
|
+
.cx-drop:hover{transform:translateY(-1px);border-color:rgba(var(--cx-hue-rgb),.8);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.35),inset 0 0 8px rgba(var(--cx-hue-rgb),.12)}
|
|
2140
|
+
.cx-drop:active{transform:scale(.97)}
|
|
2141
|
+
|
|
2142
|
+
/* 风格:科技 / 古典 / 沙漠 / 雨林(2026-11-08) */
|
|
2143
|
+
.cx-shell[data-style="classic"]{
|
|
2144
|
+
--cx-cyan:#d8b45a;--cx-accent:#d8b45a;--cx-green:#b8963e;--cx-line2:rgba(216,180,90,.3);
|
|
2145
|
+
background:radial-gradient(900px 420px at 20% -10%,rgba(216,180,90,.16),transparent 60%),radial-gradient(700px 360px at 90% 0%,rgba(120,80,30,.14),transparent 55%),linear-gradient(180deg,#120e08,#0a0806);
|
|
2146
|
+
font-family:Georgia,"Songti SC",serif;
|
|
2147
|
+
}
|
|
2148
|
+
.cx-shell[data-style="desert"]{
|
|
2149
|
+
--cx-cyan:#f0a35e;--cx-accent:#f0a35e;--cx-green:#ffcf8a;--cx-line2:rgba(240,163,94,.3);
|
|
2150
|
+
background:radial-gradient(900px 420px at 15% -10%,rgba(240,163,94,.18),transparent 60%),radial-gradient(800px 400px at 95% 0%,rgba(180,90,30,.14),transparent 55%),linear-gradient(180deg,#18100a,#0b0704);
|
|
2151
|
+
}
|
|
2152
|
+
.cx-shell[data-style="rainforest"]{
|
|
2153
|
+
--cx-cyan:#5eead4;--cx-accent:#5eead4;--cx-green:#86efac;--cx-line2:rgba(94,234,212,.3);
|
|
2154
|
+
background:radial-gradient(900px 420px at 18% -10%,rgba(94,234,212,.16),transparent 60%),radial-gradient(800px 400px at 92% 0%,rgba(40,140,90,.16),transparent 55%),linear-gradient(180deg,#06120e,#030806);
|
|
2155
|
+
}
|
|
2156
|
+
.cx-shell[data-style="classic"] .cx-pm-card,
|
|
2157
|
+
.cx-shell[data-style="classic"] .cx-compose{border-color:rgba(216,180,90,.42)}
|
|
2158
|
+
.cx-shell[data-style="classic"] .cx-title{letter-spacing:.08em}
|
|
2159
|
+
|
|
2160
|
+
/* 下拉不被遮挡 */
|
|
2161
|
+
.cx-header{position:relative;z-index:60;overflow:visible}
|
|
2162
|
+
.cx-actions{overflow:visible}
|
|
2163
|
+
.cx-drop{position:relative;z-index:61}
|
|
2164
|
+
.cx-drop-pop{z-index:2000!important}
|
|
2165
|
+
|
|
2166
|
+
/* 追加色系 */
|
|
2167
|
+
.cx-shell[data-color="rose"]{--cx-cyan:#ff6b9d;--cx-accent:#ff6b9d;--cx-green:#ff9ec4}
|
|
2168
|
+
.cx-shell[data-color="ice"]{--cx-cyan:#7dd3fc;--cx-accent:#7dd3fc;--cx-green:#a5f3fc}
|
|
2169
|
+
.cx-shell[data-color="warm"]{--cx-cyan:#ff9f6b;--cx-accent:#ff9f6b;--cx-green:#ffd08a}
|
|
2170
|
+
|
|
2171
|
+
/* 追加风格:赛博 / 蒸汽 / 极简 */
|
|
2172
|
+
.cx-shell[data-style="cyber"]{
|
|
2173
|
+
--cx-cyan:#ff5cf0;--cx-accent:#ff5cf0;--cx-green:var(--cx-cyan);
|
|
2174
|
+
background:radial-gradient(900px 420px at 15% -10%,rgba(255,92,240,.18),transparent 60%),radial-gradient(800px 400px at 92% 0%,rgba(var(--cx-hue-rgb),.14),transparent 55%),linear-gradient(180deg,#150a1e,#07030c);
|
|
2175
|
+
}
|
|
2176
|
+
.cx-shell[data-style="steam"]{
|
|
2177
|
+
--cx-cyan:#c98a5a;--cx-accent:#c98a5a;--cx-green:#e0b07a;
|
|
2178
|
+
background:radial-gradient(900px 420px at 20% -10%,rgba(201,138,90,.16),transparent 60%),radial-gradient(800px 400px at 90% 0%,rgba(90,50,20,.18),transparent 55%),linear-gradient(180deg,#14100c,#0a0704);
|
|
2179
|
+
}
|
|
2180
|
+
.cx-shell[data-style="minimal"]{
|
|
2181
|
+
--cx-cyan:#d7e3ea;--cx-accent:#d7e3ea;--cx-green:#b8c9d4;
|
|
2182
|
+
background:linear-gradient(180deg,#0d1216,#080b0e);
|
|
2183
|
+
}
|
|
2184
|
+
.cx-shell[data-style="minimal"] .cx-compose::after,
|
|
2185
|
+
.cx-shell[data-style="minimal"] .cx-compose::before{animation:none!important;opacity:0}
|
|
2186
|
+
.cx-shell[data-style="minimal"] .cx-in{animation-duration:.3s}
|
|
2187
|
+
|
|
2188
|
+
/* 动效·微 */
|
|
2189
|
+
.cx-shell[data-light="micro"] .cx-compose::after{animation-duration:12s}
|
|
2190
|
+
.cx-shell[data-light="micro"] .cx-compose::before{animation:none}
|
|
2191
|
+
.cx-shell[data-light="micro"] .cx-in{animation-duration:.45s}
|
|
2192
|
+
|
|
2193
|
+
/* 数据操作特效:创建 / 修改 / 删除 / 刷新(2026-11-08) */
|
|
2194
|
+
.cx-op-fx{position:absolute;inset:0;z-index:940;pointer-events:none;animation-duration:.95s;animation-fill-mode:both}
|
|
2195
|
+
.cx-op-create{background:radial-gradient(circle at 50% 58%,rgba(var(--cx-green-rgb),.35),transparent 58%);animation-name:cx-op-pop}
|
|
2196
|
+
.cx-op-update{background:linear-gradient(90deg,transparent 20%,rgba(var(--cx-hue-rgb),.30) 50%,transparent 80%);animation-name:cx-op-sweep}
|
|
2197
|
+
.cx-op-delete{background:radial-gradient(circle at 50% 55%,rgba(255,88,88,.34),transparent 58%);animation-name:cx-op-shock}
|
|
2198
|
+
.cx-op-refresh{background:repeating-linear-gradient(0deg,rgba(var(--cx-hue-rgb),.16) 0 2px,transparent 2px 7px);animation-name:cx-op-scan}
|
|
2199
|
+
@keyframes cx-op-pop{0%{opacity:0;transform:scale(.9)}30%{opacity:1}100%{opacity:0;transform:scale(1.05)}}
|
|
2200
|
+
@keyframes cx-op-sweep{0%{opacity:0;transform:translateX(-60%)}40%{opacity:1}100%{opacity:0;transform:translateX(60%)}}
|
|
2201
|
+
@keyframes cx-op-shock{0%{opacity:0}15%{opacity:1;transform:translateX(-4px)}45%{transform:translateX(4px)}70%{transform:translateX(-2px)}100%{opacity:0;transform:none}}
|
|
2202
|
+
@keyframes cx-op-scan{0%{opacity:0;background-position:0 0}20%{opacity:1}100%{opacity:0;background-position:0 140px}}
|
|
2203
|
+
.cx-shell[data-light="off"] .cx-op-fx{animation:none;display:none}
|
|
2204
|
+
|
|
2205
|
+
/* 鼠标跟随光晕 + 光标环(2026-11-08) */
|
|
2206
|
+
.cx-shell::after{
|
|
2207
|
+
content:'';position:absolute;inset:0;pointer-events:none;z-index:905;
|
|
2208
|
+
opacity:var(--cx-cursor,0);transition:opacity .25s ease;
|
|
2209
|
+
background:radial-gradient(220px 220px at var(--mx,50%) var(--my,50%),rgba(var(--cx-hue-rgb),.18),rgba(var(--cx-hue-rgb),.05) 45%,transparent 70%);
|
|
2210
|
+
mix-blend-mode:screen;
|
|
2211
|
+
}
|
|
2212
|
+
.cx-cursor-ring{
|
|
2213
|
+
position:absolute;left:var(--mx,50%);top:var(--my,50%);width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;
|
|
2214
|
+
border:1.5px solid rgba(var(--cx-hue-rgb),.9);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.7),inset 0 0 8px rgba(var(--cx-hue-rgb),.4);
|
|
2215
|
+
pointer-events:none;z-index:906;opacity:var(--cx-cursor,0);
|
|
2216
|
+
transition:opacity .25s ease,transform .12s ease-out;
|
|
2217
|
+
transform:translate(0,0) scale(1);
|
|
2218
|
+
mix-blend-mode:screen;
|
|
2219
|
+
}
|
|
2220
|
+
.cx-shell[data-light="off"]::after,.cx-shell[data-light="off"] .cx-cursor-ring{display:none}
|
|
2221
|
+
|
|
2222
|
+
/* 彗星拖尾画布 + 水波光纹(2026-11-08) */
|
|
2223
|
+
.cx-comet{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:904;mix-blend-mode:screen;opacity:.95}
|
|
2224
|
+
.cx-water{position:absolute;inset:0;pointer-events:none;z-index:903;overflow:hidden;mix-blend-mode:screen;opacity:.55}
|
|
2225
|
+
.cx-water i{position:absolute;width:160px;height:160px;margin:-80px 0 0 -80px;border-radius:50%;
|
|
2226
|
+
border:1px solid rgba(var(--cx-hue-rgb),.35);
|
|
2227
|
+
box-shadow:0 0 50px rgba(var(--cx-hue-rgb),.18),inset 0 0 40px rgba(var(--cx-hue-rgb),.12);
|
|
2228
|
+
animation:cx-ripple 6.6s cubic-bezier(.22,1,.36,1) infinite;transform-origin:center}
|
|
2229
|
+
.cx-water i:nth-child(2){border-color:rgba(var(--cx-green-rgb),.3);box-shadow:0 0 50px rgba(var(--cx-green-rgb),.16),inset 0 0 40px rgba(var(--cx-green-rgb),.1)}
|
|
2230
|
+
.cx-water i:nth-child(3){border-color:rgba(157,139,255,.28);box-shadow:0 0 50px rgba(157,139,255,.16),inset 0 0 40px rgba(157,139,255,.1)}
|
|
2231
|
+
@keyframes cx-ripple{
|
|
2232
|
+
0%{transform:scale(.25);opacity:0}
|
|
2233
|
+
12%{opacity:.9}
|
|
2234
|
+
60%{opacity:.35}
|
|
2235
|
+
100%{transform:scale(2.6);opacity:0}
|
|
2236
|
+
}
|
|
2237
|
+
.cx-water::before{content:'';position:absolute;inset:-20%;background:
|
|
2238
|
+
repeating-radial-gradient(circle at 30% 40%,rgba(var(--cx-hue-rgb),.10) 0 2px,transparent 2px 26px),
|
|
2239
|
+
repeating-radial-gradient(circle at 70% 65%,rgba(var(--cx-green-rgb),.08) 0 2px,transparent 2px 34px);
|
|
2240
|
+
animation:cx-caustic 22s linear infinite;opacity:.35}
|
|
2241
|
+
@keyframes cx-caustic{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2%,-1.5%,0) scale(1.03)}100%{transform:translate3d(0,0,0) scale(1)}}
|
|
2242
|
+
.cx-shell[data-light="off"] .cx-comet,.cx-shell[data-light="off"] .cx-water{display:none}
|
|
2243
|
+
|
|
2244
|
+
/* 光标光效:降低亮度 + 随动效强弱变化(2026-11-08) */
|
|
2245
|
+
.cx-shell[data-light="high"]{--cx-glow:.10;--cx-comet-op:1;--cx-ring-op:1}
|
|
2246
|
+
.cx-shell[data-light="mid"]{--cx-glow:.07;--cx-comet-op:.7;--cx-ring-op:.8}
|
|
2247
|
+
.cx-shell[data-light="low"]{--cx-glow:.045;--cx-comet-op:.45;--cx-ring-op:.6}
|
|
2248
|
+
.cx-shell[data-light="micro"]{--cx-glow:.03;--cx-comet-op:.25;--cx-ring-op:.45}
|
|
2249
|
+
.cx-shell::after{
|
|
2250
|
+
background:radial-gradient(160px 160px at var(--mx,50%) var(--my,50%),
|
|
2251
|
+
rgba(var(--cx-hue-rgb),var(--cx-glow,.10)),
|
|
2252
|
+
rgba(var(--cx-hue-rgb),calc(var(--cx-glow,.10) * .35)) 45%,
|
|
2253
|
+
transparent 72%) !important;
|
|
2254
|
+
mix-blend-mode:normal !important;
|
|
2255
|
+
}
|
|
2256
|
+
.cx-comet{opacity:var(--cx-comet-op,1) !important}
|
|
2257
|
+
.cx-cursor-ring{opacity:calc(var(--cx-cursor,0) * var(--cx-ring-op,1)) !important}
|
|
2258
|
+
|
|
2259
|
+
/* 色系:主色与 rgba 三元组(2026-11-08) */
|
|
2260
|
+
.cx-shell[data-hue="cyan"]{--cx-cyan:#3ee7ff;--cx-accent:#3ee7ff;--cx-green:#42f5a7;--cx-hue-rgb:62,231,255;--cx-green-rgb:66,245,167}
|
|
2261
|
+
.cx-shell[data-hue="green"]{--cx-cyan:#42f5a7;--cx-accent:#42f5a7;--cx-green:#3ee7ff;--cx-hue-rgb:66,245,167;--cx-green-rgb:62,231,255}
|
|
2262
|
+
.cx-shell[data-hue="violet"]{--cx-cyan:#a78bfa;--cx-accent:#a78bfa;--cx-green:#7dd3fc;--cx-hue-rgb:167,139,250;--cx-green-rgb:125,211,252}
|
|
2263
|
+
.cx-shell[data-hue="amber"]{--cx-cyan:#ffb454;--cx-accent:#ffb454;--cx-green:#ffe08a;--cx-hue-rgb:255,180,84;--cx-green-rgb:255,224,138}
|
|
2264
|
+
.cx-shell[data-hue="rose"]{--cx-cyan:#ff6b9d;--cx-accent:#ff6b9d;--cx-green:#ff9ec4;--cx-hue-rgb:255,107,157;--cx-green-rgb:255,158,196}
|
|
2265
|
+
.cx-shell[data-hue="ice"]{--cx-cyan:#7dd3fc;--cx-accent:#7dd3fc;--cx-green:#a5f3fc;--cx-hue-rgb:125,211,252;--cx-green-rgb:165,243,252}
|
|
2266
|
+
.cx-shell[data-hue="warm"]{--cx-cyan:#ff9f6b;--cx-accent:#ff9f6b;--cx-green:#ffd08a;--cx-hue-rgb:255,159,107;--cx-green-rgb:255,208,138}
|
|
2267
|
+
|
|
2268
|
+
/* 色系:边框与弱文字也跟随色调 */
|
|
2269
|
+
.cx-shell[data-hue]:not([data-hue="cyan"]){
|
|
2270
|
+
--cx-line:rgba(var(--cx-hue-rgb),.20);
|
|
2271
|
+
--cx-line2:rgba(var(--cx-hue-rgb),.34);
|
|
2272
|
+
--cx-border:rgba(var(--cx-hue-rgb),.30);
|
|
2273
|
+
--cx-border-strong:rgba(var(--cx-hue-rgb),.55);
|
|
2274
|
+
--cx-muted:color-mix(in srgb,var(--cx-cyan) 38%,#6f9bb3);
|
|
2275
|
+
--cx-text-dim:color-mix(in srgb,var(--cx-cyan) 22%,#7fa5b6);
|
|
2276
|
+
}
|
|
2277
|
+
.cx-shell[data-theme="light"][data-hue]:not([data-hue="cyan"]){
|
|
2278
|
+
--cx-line:rgba(var(--cx-hue-rgb),.30);
|
|
2279
|
+
--cx-line2:rgba(var(--cx-hue-rgb),.45);
|
|
2280
|
+
--cx-border:rgba(var(--cx-hue-rgb),.40);
|
|
2281
|
+
--cx-border-strong:rgba(var(--cx-hue-rgb),.65);
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
/* 按键与标签统一跟随色系 */
|
|
2285
|
+
.cx-shell .cx-btn,.cx-shell .cx-sel-btn,.cx-shell .cx-drop,.cx-shell .cx-view,.cx-shell .cx-compose-plus,.cx-shell .cx-term-tab,.cx-shell .cx-pm-act{
|
|
2286
|
+
color:color-mix(in srgb,var(--cx-cyan) 55%,var(--cx-text));
|
|
2287
|
+
}
|
|
2288
|
+
.cx-shell .cx-btn:not(.pri),.cx-shell .cx-sel-btn,.cx-shell .cx-term-tab{border-color:rgba(var(--cx-hue-rgb),.35)}
|
|
2289
|
+
.cx-shell .cx-btn:not(.pri):hover,.cx-shell .cx-sel-btn:hover,.cx-shell .cx-term-tab:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
2290
|
+
.cx-shell .cx-view.on,.cx-shell .cx-console-tab.on,.cx-shell .cx-pm-card.on,.cx-shell .cx-tree-item.on,.cx-shell .cx-webtab.on{color:var(--cx-cyan)}
|
|
2291
|
+
.cx-shell .cx-sub,.cx-shell .cx-label,.cx-shell .cx-meta,.cx-shell .cx-sysline,.cx-shell .cx-hint{color:color-mix(in srgb,var(--cx-cyan) 26%,var(--cx-text-dim))}
|
|
2292
|
+
.cx-shell .cx-pipe,.cx-shell .cx-statusbar,.cx-shell .cx-crumb{border-color:rgba(var(--cx-hue-rgb),.18)}
|
|
2293
|
+
|
|
2294
|
+
/* 头部按钮边框也跟随色系 */
|
|
2295
|
+
.cx-shell .cx-actions .cx-btn,.cx-shell .cx-header .cx-btn{border-color:rgba(var(--cx-hue-rgb),.42);color:color-mix(in srgb,var(--cx-cyan) 55%,var(--cx-text))}
|
|
2296
|
+
.cx-shell .cx-actions .cx-btn:hover,.cx-shell .cx-header .cx-btn:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
2297
|
+
|
|
2298
|
+
/* 顶部流程条 / 状态标签:强制跟随色系 */
|
|
2299
|
+
.cx-shell .cx-pipe .cx-stage{color:color-mix(in srgb,var(--cx-cyan) 32%,var(--cx-muted))}
|
|
2300
|
+
.cx-shell .cx-pipe .cx-stage.on,.cx-shell .cx-pipe .cx-stage-title.on{color:var(--cx-cyan);border-color:rgba(var(--cx-hue-rgb),.42)}
|
|
2301
|
+
.cx-shell .cx-pipe .cx-stage.on .cx-aff-value,.cx-shell .cx-pipe .cx-stage-title.on .cx-aff-value{color:var(--cx-cyan)}
|
|
2302
|
+
.cx-shell .cx-pipe .cx-stage .n{border-color:rgba(var(--cx-hue-rgb),.45);color:var(--cx-cyan)}
|
|
2303
|
+
.cx-shell .cx-chip{border-color:rgba(var(--cx-hue-rgb),.35);color:color-mix(in srgb,var(--cx-cyan) 45%,var(--cx-text))}
|
|
2304
|
+
.cx-shell .cx-chip.on{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
/* ============================================================
|
|
2308
|
+
DESIGN SYSTEM(2026-11-08 收敛版)
|
|
2309
|
+
字号 10/12/14 · 图标 14/18 · 控件 28px · 栏高自动
|
|
2310
|
+
============================================================ */
|
|
2311
|
+
/* 令牌一律 --cx- 前缀:宿主 DSH 也定义 --fs-…、--sp-…、--h-item 等通用名,
|
|
2312
|
+
在 :root 上覆盖它们会把宿主原生界面(如消息工具栏)一起改坏。 */
|
|
2313
|
+
:root{
|
|
2314
|
+
--cx-fs-10:10px; --cx-fs-12:12px; --cx-fs-14:14px;
|
|
2315
|
+
--cx-icon-10:14px; --cx-icon-12:18px; --cx-icon-14:18px;
|
|
2316
|
+
--cx-sp-2:4px; --cx-sp-3:6px; --cx-sp-4:8px; --cx-sp-5:10px; --cx-sp-7:20px;
|
|
2317
|
+
--cx-r-sm:4px; --cx-r-lg:24px;
|
|
2318
|
+
--cx-pad-bar:10px; --cx-gap-bar:8px; --cx-h-item:28px;
|
|
2319
|
+
--cx-fs:var(--cx-fs-12); --cx-fs-body:var(--cx-fs-10); --cx-fs-status:var(--cx-fs-10); --cx-fs-title:var(--cx-fs-14);
|
|
2320
|
+
}
|
|
2321
|
+
|
|
2322
|
+
/* —— 字号角色 —— */
|
|
2323
|
+
.cx-shell{font-size:var(--cx-fs-12)}
|
|
2324
|
+
.cx-shell .cx-title,.cx-shell .cx-entity-name,.cx-shell .cx-pm-card .cx-entity-name,.cx-shell .cx-msg-role{font-size:var(--cx-fs-14)!important}
|
|
2325
|
+
.cx-shell .cx-msg,.cx-shell .cx-pm-content,.cx-shell .cx-entity-copy,.cx-shell .cx-compose-input,.cx-shell .cx-input,.cx-shell .cx-select,.cx-shell .cx-table,.cx-shell .cx-console{font-size:var(--cx-fs-10)!important}
|
|
2326
|
+
.cx-shell .cx-entity-type,.cx-shell .cx-entity-status,.cx-shell .cx-entity-meta,.cx-shell .cx-sub,.cx-shell .cx-hint,.cx-shell .cx-sysline{font-size:var(--cx-fs-10)!important}
|
|
2327
|
+
.cx-shell .cx-btn,.cx-shell .cx-sel-btn,.cx-shell .cx-drop,.cx-shell .cx-view,.cx-shell .cx-stage,.cx-shell .cx-tag,.cx-shell .cx-chip,.cx-shell .cx-pm-act,.cx-shell .cx-aff-zh,.cx-shell .cx-aff-en,.cx-shell .cx-aff-value,.cx-shell .cx-pm-h{font-size:var(--cx-fs-12)!important}
|
|
2328
|
+
|
|
2329
|
+
/* —— 图标角色 —— */
|
|
2330
|
+
.cx-shell .cx-aff svg,.cx-shell .cx-view svg,.cx-shell .cx-drop svg,.cx-shell .cx-btn svg,.cx-shell .cx-sel-btn svg,
|
|
2331
|
+
.cx-shell .cx-stage svg,.cx-shell .cx-term-tab svg,.cx-shell .cx-pm-ops svg,.cx-shell .cx-compose-plus svg,
|
|
2332
|
+
.cx-shell .cx-compose-send svg,.cx-shell .cx-menu-item svg,.cx-shell .cx-tag svg,.cx-shell .cx-pm-h svg,
|
|
2333
|
+
.cx-shell .cx-entity-ico,.cx-shell .cx-entity-ico svg,.cx-shell .cx-entity-pic svg,.cx-shell .cx-title svg,
|
|
2334
|
+
.cx-shell .cx-header .cx-mark svg{width:var(--cx-icon-12)!important;height:var(--cx-icon-12)!important;flex:none}
|
|
2335
|
+
.cx-shell .cx-entity-meta svg,.cx-shell .cx-hint svg,.cx-shell .cx-sysline svg,.cx-shell .cx-entity-status svg,
|
|
2336
|
+
.cx-shell .cx-tag svg{width:var(--cx-icon-10)!important;height:var(--cx-icon-10)!important}
|
|
2337
|
+
|
|
2338
|
+
/* —— 栏:不设高度,统一内边距 —— */
|
|
2339
|
+
.cx-shell .cx-header,.cx-shell .cx-pipe,.cx-shell .cx-chat-h,.cx-shell .cx-chat-tabs,
|
|
2340
|
+
.cx-shell .cx-addrbar,.cx-shell .cx-statusbar,.cx-shell .cx-console-head,.cx-shell .cx-console-tabs,.cx-shell .cx-pm-h{
|
|
2341
|
+
height:auto!important;max-height:none!important;min-height:0!important;
|
|
2342
|
+
margin:0!important;box-sizing:border-box;
|
|
2343
|
+
display:flex!important;align-items:center;gap:var(--cx-gap-bar)!important;flex-wrap:nowrap;
|
|
2344
|
+
}
|
|
2345
|
+
.cx-shell .cx-header{padding:var(--cx-sp-7)!important;overflow:visible!important}
|
|
2346
|
+
.cx-shell .cx-pipe,.cx-shell .cx-chat-tabs,.cx-shell .cx-console-tabs{padding:var(--cx-sp-3) var(--cx-pad-bar)!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
|
|
2347
|
+
.cx-shell .cx-pipe::-webkit-scrollbar,.cx-shell .cx-chat-tabs::-webkit-scrollbar,.cx-shell .cx-console-tabs::-webkit-scrollbar{height:0}
|
|
2348
|
+
.cx-shell .cx-chat-h{padding:var(--cx-sp-7)!important;overflow:visible!important}
|
|
2349
|
+
.cx-shell .cx-pm-h{padding:var(--cx-sp-3) var(--cx-pad-bar)!important;overflow:hidden}
|
|
2350
|
+
.cx-shell .cx-pm-h>*{flex:none}
|
|
2351
|
+
|
|
2352
|
+
/* —— 顶栏四段:品牌 | 模式(占满居中) | 样式 —— */
|
|
2353
|
+
.cx-shell .cx-header .cx-brand{flex:0 0 auto;min-width:0;overflow:visible!important}
|
|
2354
|
+
.cx-shell .cx-header .cx-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
2355
|
+
.cx-shell .cx-header .cx-views{flex:1 1 auto;min-width:0;position:static!important;transform:none!important;display:flex;justify-content:center;align-items:center;gap:2px!important;border:0!important;background:transparent!important;box-shadow:none!important;z-index:auto!important}
|
|
2356
|
+
.cx-shell .cx-header .cx-actions{flex:0 0 auto;margin-left:0!important;gap:2px!important;justify-content:flex-end;display:flex;align-items:center}
|
|
2357
|
+
|
|
2358
|
+
/* —— 控件:28px / 10px / 12px —— */
|
|
2359
|
+
.cx-shell .cx-header .cx-view,
|
|
2360
|
+
.cx-shell .cx-header .cx-btn,
|
|
2361
|
+
.cx-shell .cx-header .cx-actions .cx-drop>*:not(.cx-drop-pop),
|
|
2362
|
+
.cx-shell .cx-drop-btn,
|
|
2363
|
+
.cx-shell .cx-pipe .cx-stage,
|
|
2364
|
+
.cx-shell .cx-chat-tabs .cx-chat-tab,
|
|
2365
|
+
.cx-shell .cx-console-tabs .cx-console-tab{
|
|
2366
|
+
height:var(--cx-h-item)!important;min-height:var(--cx-h-item)!important;
|
|
2367
|
+
padding:0 var(--cx-pad-bar)!important;margin:0!important;
|
|
2368
|
+
font-size:var(--cx-fs-12)!important;line-height:1!important;
|
|
2369
|
+
box-sizing:border-box;display:inline-flex;align-items:center;
|
|
2370
|
+
}
|
|
2371
|
+
.cx-shell .cx-pipe .cx-stage .n{width:var(--cx-icon-12)!important;height:var(--cx-icon-12)!important;font-size:var(--cx-fs-10)!important}
|
|
2372
|
+
.cx-shell .cx-header .cx-view *,.cx-shell .cx-header .cx-drop *,.cx-shell .cx-btn *{font-size:var(--cx-fs-12)!important;line-height:1!important}
|
|
2373
|
+
|
|
2374
|
+
/* —— 窄屏隐藏顺序 —— */
|
|
2375
|
+
@media (max-width:1560px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(1){display:none}}
|
|
2376
|
+
@media (max-width:1440px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(2){display:none}}
|
|
2377
|
+
@media (max-width:1340px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(3){display:none}}
|
|
2378
|
+
@media (max-width:1240px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(4){display:none}}
|
|
2379
|
+
@media (max-width:1140px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(5){display:none}}
|
|
2380
|
+
@media (max-width:1040px){.cx-shell .cx-header .cx-actions .cx-drop:nth-child(6){display:none}}
|
|
2381
|
+
@media (max-width:900px){.cx-shell .cx-header .cx-views .cx-aff-en,.cx-shell .cx-header .cx-brand .cx-sub{display:none}}
|
|
2382
|
+
|
|
2383
|
+
/* —— 性能:减少重绘 —— */
|
|
2384
|
+
.cx-shell .cx-comet,.cx-shell .cx-water,.cx-shell .cx-cursor-ring{contain:strict}
|
|
2385
|
+
.cx-shell .cx-in,.cx-shell .cx-op-fx{will-change:transform,opacity}
|
|
2386
|
+
@media (prefers-reduced-motion: reduce){
|
|
2387
|
+
.cx-shell .cx-in,.cx-shell .cx-op-fx,.cx-shell .cx-intro,.cx-shell .cx-welcome,.cx-shell .cx-cursor-ring{animation:none!important}
|
|
2388
|
+
.cx-shell .cx-comet,.cx-shell .cx-water{display:none!important}
|
|
2389
|
+
}
|
|
2390
|
+
|
|
2391
|
+
/* 「更多」菜单键:正方形,不再窄条 */
|
|
2392
|
+
.cx-shell .cx-menu-wrap{display:inline-flex;flex:none}
|
|
2393
|
+
.cx-shell .cx-menu-wrap>.cx-btn,
|
|
2394
|
+
.cx-shell .cx-menu-wrap>.cx-btn.xs{
|
|
2395
|
+
width:var(--cx-h-item)!important;min-width:var(--cx-h-item)!important;
|
|
2396
|
+
height:var(--cx-h-item)!important;padding:0!important;
|
|
2397
|
+
display:inline-flex;align-items:center;justify-content:center;
|
|
2398
|
+
box-sizing:border-box;
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
/* 所有图标控件:正方向(宽高相等) */
|
|
2402
|
+
.cx-shell .cx-icon-btn,
|
|
2403
|
+
.cx-shell .cx-menu-wrap>.cx-btn,
|
|
2404
|
+
.cx-shell .cx-pm-ops button,
|
|
2405
|
+
.cx-shell .cx-addrbar .cx-icon-btn,
|
|
2406
|
+
.cx-shell .cx-console-head .cx-btn,
|
|
2407
|
+
.cx-shell .cx-compose-plus,
|
|
2408
|
+
.cx-shell .cx-compose-send{
|
|
2409
|
+
width:var(--cx-h-item)!important;min-width:var(--cx-h-item)!important;
|
|
2410
|
+
height:var(--cx-h-item)!important;
|
|
2411
|
+
padding:0!important;aspect-ratio:1/1;
|
|
2412
|
+
display:inline-flex;align-items:center;justify-content:center;
|
|
2413
|
+
box-sizing:border-box;flex:none;
|
|
2414
|
+
}
|
|
2415
|
+
.cx-shell svg{aspect-ratio:1/1;flex:none}
|
|
2416
|
+
.cx-shell .cx-webtab-ico,
|
|
2417
|
+
.cx-shell .cx-webtab-ico img,
|
|
2418
|
+
.cx-shell .cx-tab img{width:var(--cx-icon-12)!important;height:var(--cx-icon-12)!important;object-fit:contain;border-radius:3px}
|
|
2419
|
+
|
|
2420
|
+
/* 标签栏 + 与地址栏更多:统一 28×28 方形 */
|
|
2421
|
+
.cx-shell .cx-webtabs>.cx-btn.xs,
|
|
2422
|
+
.cx-shell .cx-webtabs .cx-webtab-add,
|
|
2423
|
+
.cx-shell .cx-addrbar>.cx-btn.xs,
|
|
2424
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions>.cx-btn,
|
|
2425
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions button{
|
|
2426
|
+
width:var(--cx-h-item)!important;min-width:var(--cx-h-item)!important;
|
|
2427
|
+
height:var(--cx-h-item)!important;padding:0!important;
|
|
2428
|
+
aspect-ratio:1/1;display:inline-flex;align-items:center;justify-content:center;
|
|
2429
|
+
box-sizing:border-box;flex:none;
|
|
2430
|
+
}
|
|
2431
|
+
.cx-shell .cx-addrbar .cx-btn.xs svg,
|
|
2432
|
+
.cx-shell .cx-webtabs>.cx-btn.xs svg{width:var(--cx-icon-10)!important;height:var(--cx-icon-10)!important}
|
|
2433
|
+
|
|
2434
|
+
/* 输入类控件文字 12px */
|
|
2435
|
+
.cx-shell .cx-compose-input,
|
|
2436
|
+
.cx-shell .cx-input,
|
|
2437
|
+
.cx-shell .cx-select,
|
|
2438
|
+
.cx-shell .cx-textarea,
|
|
2439
|
+
.cx-shell .cx-addr-input,
|
|
2440
|
+
.cx-shell .cx-addr-input::placeholder,
|
|
2441
|
+
.cx-shell .cx-compose-input::placeholder{font-size:13px!important}
|
|
2442
|
+
|
|
2443
|
+
/* 特效筛选(下拉选项 / 菜单项)文字放大到 14px */
|
|
2444
|
+
.cx-shell .cx-drop-pop .cx-drop-item,
|
|
2445
|
+
.cx-shell .cx-drop-pop button,
|
|
2446
|
+
.cx-shell .cx-menu .cx-menu-item,
|
|
2447
|
+
.cx-shell .cx-ctxmenu button{
|
|
2448
|
+
font-size:var(--cx-fs-14)!important;
|
|
2449
|
+
padding:8px 10px!important;
|
|
2450
|
+
line-height:1.2!important;
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
/* 品牌标识:两个 SVG logo,去掉旧的旋转方块/圆点 */
|
|
2454
|
+
.cx-shell .cx-mark{transform:none!important;border:0!important;background:transparent!important;box-shadow:none!important;width:26px;height:26px;display:grid;place-items:center;color:var(--cx-cyan)}
|
|
2455
|
+
.cx-shell .cx-mark svg{width:22px!important;height:22px!important}
|
|
2456
|
+
.cx-shell .cx-chat-orb{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 30% 20%,rgba(var(--cx-hue-rgb),.25),rgba(4,14,22,.9));border:1px solid rgba(var(--cx-hue-rgb),.45);color:var(--cx-cyan);box-shadow:0 0 14px rgba(var(--cx-hue-rgb),.28)}
|
|
2457
|
+
.cx-shell .cx-chat-orb svg{width:22px!important;height:22px!important}
|
|
2458
|
+
|
|
2459
|
+
/* 地址栏按钮图标统一 14px(更多菜单不再偏大) */
|
|
2460
|
+
.cx-shell .cx-addrbar button svg,
|
|
2461
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions svg{width:var(--cx-icon-10)!important;height:var(--cx-icon-10)!important}
|
|
2462
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions button{padding:0!important;display:inline-flex;align-items:center;justify-content:center}
|
|
2463
|
+
|
|
2464
|
+
/* 地图:深色主题 + 与插件主题协调;标题栏恢复高度 */
|
|
2465
|
+
.cx-mapsec .cx-pm-h{min-height:34px!important;padding:4px 10px!important}
|
|
2466
|
+
.cx-taskmap{background:#04101a}
|
|
2467
|
+
.cx-taskmap .leaflet-container{background:#04101a}
|
|
2468
|
+
.cx-taskmap .leaflet-tile-pane{filter:invert(1) hue-rotate(185deg) brightness(.82) contrast(.92) saturate(.9)}
|
|
2469
|
+
.cx-taskmap.cx-map-blue .leaflet-tile-pane{filter:invert(1) hue-rotate(195deg) saturate(1.5) brightness(.7) contrast(.95)}
|
|
2470
|
+
.cx-taskmap.cx-map-light .leaflet-tile-pane{filter:none}
|
|
2471
|
+
.cx-taskmap .leaflet-control-attribution{background:rgba(4,16,26,.7);color:var(--cx-text-faint)}
|
|
2472
|
+
.cx-map-theme{height:24px!important;min-height:24px!important;padding:0 8px!important;font-size:var(--cx-fs-10)!important}
|
|
2473
|
+
|
|
2474
|
+
/* 地址栏图标:统一标准 18px(与 12px 文字配套) */
|
|
2475
|
+
.cx-shell .cx-addrbar button svg,
|
|
2476
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions svg,
|
|
2477
|
+
.cx-shell .cx-addrbar .cx-btn svg{width:var(--cx-icon-12)!important;height:var(--cx-icon-12)!important}
|
|
2478
|
+
.cx-shell .cx-addrbar button,
|
|
2479
|
+
.cx-shell .cx-addrbar .cx-addressbar-actions button{
|
|
2480
|
+
width:var(--cx-h-item)!important;min-width:var(--cx-h-item)!important;height:var(--cx-h-item)!important;
|
|
2481
|
+
padding:0!important;display:inline-flex;align-items:center;justify-content:center;flex:none;
|
|
2482
|
+
}
|
|
2483
|
+
|
|
2484
|
+
/* 最大化地图:标题栏回到顶部(取消吸顶偏移),地图在标题下方 */
|
|
2485
|
+
.cx-mapsec.max .cx-pm-h,
|
|
2486
|
+
.cx-calsec.max .cx-pm-h{position:static!important;top:auto!important;bottom:auto!important;z-index:auto!important}
|
|
2487
|
+
.cx-mapsec.max .cx-taskmap{position:relative!important;flex:1!important;min-height:0!important}
|
|
2488
|
+
.cx-mapsec.max .cx-taskmap-leaflet{position:absolute!important;left:0!important;right:0!important;top:0!important;bottom:0!important;height:auto!important}
|
|
2489
|
+
|
|
2490
|
+
/* 地图主题:瓦片滤镜按档位覆盖(取消 pane 级滤镜叠加) */
|
|
2491
|
+
.cx-taskmap .leaflet-tile-pane{filter:none!important}
|
|
2492
|
+
.cx-taskmap .leaflet-tile{filter:none!important}
|
|
2493
|
+
.cx-taskmap.cx-map-dark .leaflet-tile{filter:invert(1) hue-rotate(185deg) brightness(.82) contrast(.95) saturate(.85)!important}
|
|
2494
|
+
.cx-taskmap.cx-map-blue .leaflet-tile{filter:invert(1) hue-rotate(200deg) brightness(.7) contrast(1) saturate(1.4)!important}
|
|
2495
|
+
.cx-taskmap.cx-map-light .leaflet-tile{filter:none!important}
|
|
2496
|
+
|
|
2497
|
+
/* 分区标题栏:最小高度 34px,标题不参与压缩 */
|
|
2498
|
+
.cx-shell .cx-pm-h{min-height:34px!important;padding:4px 10px!important;box-sizing:border-box}
|
|
2499
|
+
.cx-shell .cx-pm-h .cx-pm-title,
|
|
2500
|
+
.cx-shell .cx-pm-h .t,
|
|
2501
|
+
.cx-shell .cx-pm-h .cx-aff{flex:1 1 auto;min-width:0}
|
|
2502
|
+
.cx-shell .cx-pm-h .cx-aff-zh,
|
|
2503
|
+
.cx-shell .cx-pm-h .cx-aff-en{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
2504
|
+
.cx-shell .cx-pm-h .cx-pm-ops,
|
|
2505
|
+
.cx-shell .cx-pm-h .cx-pm-max{flex:0 0 auto}
|
|
2506
|
+
|
|
2507
|
+
/* 卡片上的「更多」与左侧动作键同尺寸(22px) */
|
|
2508
|
+
.cx-shell .cx-pm-card .cx-menu-wrap{display:inline-flex}
|
|
2509
|
+
.cx-shell .cx-pm-card .cx-menu-wrap>.cx-btn,
|
|
2510
|
+
.cx-shell .cx-pm-card .cx-menu-wrap>.cx-btn.xs{
|
|
2511
|
+
width:22px!important;min-width:22px!important;
|
|
2512
|
+
height:22px!important;min-height:22px!important;
|
|
2513
|
+
padding:0!important;border-radius:3px;
|
|
2514
|
+
display:inline-flex;align-items:center;justify-content:center;
|
|
2515
|
+
}
|
|
2516
|
+
.cx-shell .cx-pm-card .cx-menu-wrap>.cx-btn svg{width:14px!important;height:14px!important}
|
|
2517
|
+
|
|
2518
|
+
/* 节点/空间/应用卡片:更多菜单与 主页/编程 同尺寸 */
|
|
2519
|
+
.cx-shell .cx-node .cx-menu-wrap,
|
|
2520
|
+
.cx-shell .cx-space .cx-menu-wrap,
|
|
2521
|
+
.cx-shell .cx-app .cx-menu-wrap{display:inline-flex;flex:none}
|
|
2522
|
+
.cx-shell .cx-node .cx-menu-wrap>.cx-btn,
|
|
2523
|
+
.cx-shell .cx-space .cx-menu-wrap>.cx-btn,
|
|
2524
|
+
.cx-shell .cx-app .cx-menu-wrap>.cx-btn{
|
|
2525
|
+
width:26px!important;min-width:26px!important;
|
|
2526
|
+
height:26px!important;min-height:26px!important;
|
|
2527
|
+
padding:0!important;border-radius:3px;
|
|
2528
|
+
display:inline-flex;align-items:center;justify-content:center;
|
|
2529
|
+
}
|
|
2530
|
+
.cx-shell .cx-node .cx-menu-wrap>.cx-btn svg,
|
|
2531
|
+
.cx-shell .cx-space .cx-menu-wrap>.cx-btn svg,
|
|
2532
|
+
.cx-shell .cx-app .cx-menu-wrap>.cx-btn svg{width:14px!important;height:14px!important}
|
|
2533
|
+
.cx-shell .cx-node .cx-btn.xs,
|
|
2534
|
+
.cx-shell .cx-space .cx-btn.xs,
|
|
2535
|
+
.cx-shell .cx-app .cx-btn.xs{height:26px!important;min-height:26px!important;padding:0 10px!important;font-size:var(--cx-fs-12)!important}
|
|
2536
|
+
|
|
2537
|
+
/* 开发模式:停掉装饰性特效,面板延迟渲染 */
|
|
2538
|
+
.cx-shell[data-view="dev"] .cx-comet,
|
|
2539
|
+
.cx-shell[data-view="dev"] .cx-water,
|
|
2540
|
+
.cx-shell[data-view="dev"] .cx-cursor-ring{display:none!important}
|
|
2541
|
+
.cx-shell[data-view="dev"] .cx-dev .cx-panel,
|
|
2542
|
+
.cx-shell[data-view="dev"] .cx-console{content-visibility:auto;contain-intrinsic-size:400px}
|
|
2543
|
+
|
|
2544
|
+
/* 模式过场:更大的字 + 炫酷扫光 */
|
|
2545
|
+
.cx-intro-w{font-size:12px!important;letter-spacing:.62em!important;color:var(--cx-cyan);text-shadow:0 0 18px rgba(var(--cx-hue-rgb),.8)}
|
|
2546
|
+
.cx-intro-m{font-size:56px!important;letter-spacing:.2em!important;line-height:1.05!important;margin:14px 0 10px!important;
|
|
2547
|
+
background:linear-gradient(100deg,#eafcff 10%,var(--cx-cyan) 38%,#ffffff 52%,var(--cx-green) 70%,#eafcff 90%);
|
|
2548
|
+
-webkit-background-clip:text;background-clip:text;color:transparent!important;
|
|
2549
|
+
filter:drop-shadow(0 0 26px rgba(var(--cx-hue-rgb),.55));
|
|
2550
|
+
background-size:220% 100%;animation:cx-intro-shine 3.2s linear both}
|
|
2551
|
+
@keyframes cx-intro-shine{0%{background-position:0% 0}100%{background-position:120% 0}}
|
|
2552
|
+
.cx-intro-s{font-size:12px!important;letter-spacing:.32em!important;color:var(--cx-text-dim)}
|
|
2553
|
+
.cx-intro::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
|
|
2554
|
+
background:repeating-linear-gradient(0deg,rgba(var(--cx-hue-rgb),.10) 0 1px,transparent 1px 4px);
|
|
2555
|
+
opacity:.35;animation:cx-intro-scan 3.2s linear both}
|
|
2556
|
+
@keyframes cx-intro-scan{0%{background-position:0 0}100%{background-position:0 220px}}
|
|
2557
|
+
.cx-intro-txt::after{content:'';display:block;width:120px;height:2px;margin:14px auto 0;
|
|
2558
|
+
background:linear-gradient(90deg,transparent,var(--cx-cyan),transparent);
|
|
2559
|
+
box-shadow:0 0 18px rgba(var(--cx-hue-rgb),.8);animation:cx-intro-line 3.2s ease both}
|
|
2560
|
+
@keyframes cx-intro-line{0%{width:0;opacity:0}30%{width:160px;opacity:1}100%{width:220px;opacity:.35}}
|
|
2561
|
+
|
|
2562
|
+
/* 顶部工具条:所有 chip 等高、等内外边距 */
|
|
2563
|
+
.cx-shell .cx-pipe{gap:6px!important;align-items:center}
|
|
2564
|
+
.cx-shell .cx-pipe>*:not(.cx-arrow){
|
|
2565
|
+
height:28px!important;min-height:28px!important;max-height:28px!important;
|
|
2566
|
+
padding:0 10px!important;margin:0!important;
|
|
2567
|
+
display:inline-flex!important;align-items:center;gap:6px;
|
|
2568
|
+
box-sizing:border-box;border-radius:4px;
|
|
2569
|
+
}
|
|
2570
|
+
.cx-shell .cx-pipe>*:not(.cx-arrow) *{line-height:1!important}
|
|
2571
|
+
|
|
2572
|
+
/* 顶部工具条:所有 chip 统一样式(底色/描边/圆角/内边距) */
|
|
2573
|
+
.cx-shell .cx-pipe>*:not(.cx-arrow){
|
|
2574
|
+
background:var(--cx-surface-1)!important;
|
|
2575
|
+
border:1px solid rgba(var(--cx-hue-rgb),.30)!important;
|
|
2576
|
+
color:var(--cx-text)!important;
|
|
2577
|
+
border-radius:4px!important;
|
|
2578
|
+
padding:0 10px!important;
|
|
2579
|
+
height:28px!important;min-height:28px!important;max-height:28px!important;
|
|
2580
|
+
margin:0!important;
|
|
2581
|
+
}
|
|
2582
|
+
.cx-shell .cx-pipe>*:not(.cx-arrow):hover{
|
|
2583
|
+
border-color:var(--cx-cyan)!important;
|
|
2584
|
+
box-shadow:0 0 12px rgba(var(--cx-hue-rgb),.35);
|
|
2585
|
+
}
|
|
2586
|
+
.cx-shell .cx-pipe>*:not(.cx-arrow).on{
|
|
2587
|
+
border-color:var(--cx-cyan)!important;
|
|
2588
|
+
background:color-mix(in srgb,var(--cx-cyan) 14%,var(--cx-surface-1))!important;
|
|
2589
|
+
color:var(--cx-cyan)!important;
|
|
2590
|
+
}
|
|
2591
|
+
.cx-shell .cx-pipe .cx-arrow{color:var(--cx-text-faint)!important;padding:0 2px!important;margin:0!important;height:28px!important;display:inline-flex;align-items:center}
|
|
2592
|
+
|
|
2593
|
+
/* 顶部工具条:强制完全同款(覆盖所有历史差异) */
|
|
2594
|
+
.cx-shell .cx-pipe > *:not(.cx-arrow){
|
|
2595
|
+
all: unset;
|
|
2596
|
+
box-sizing: border-box!important;
|
|
2597
|
+
display: inline-flex!important;
|
|
2598
|
+
align-items: center!important;
|
|
2599
|
+
justify-content: flex-start!important;
|
|
2600
|
+
gap: 6px!important;
|
|
2601
|
+
flex: 0 0 auto!important;
|
|
2602
|
+
align-self: center!important;
|
|
2603
|
+
height: 28px!important;
|
|
2604
|
+
min-height: 28px!important;
|
|
2605
|
+
max-height: 28px!important;
|
|
2606
|
+
padding: 0 10px!important;
|
|
2607
|
+
margin: 0!important;
|
|
2608
|
+
border: 1px solid rgba(var(--cx-hue-rgb), .30)!important;
|
|
2609
|
+
border-radius: 4px!important;
|
|
2610
|
+
background: var(--cx-surface-1)!important;
|
|
2611
|
+
color: var(--cx-text)!important;
|
|
2612
|
+
font-family: var(--cx-font)!important;
|
|
2613
|
+
font-size: 12px!important;
|
|
2614
|
+
font-weight: 600!important;
|
|
2615
|
+
line-height: 1!important;
|
|
2616
|
+
letter-spacing: .04em!important;
|
|
2617
|
+
white-space: nowrap!important;
|
|
2618
|
+
cursor: pointer;
|
|
2619
|
+
}
|
|
2620
|
+
.cx-shell .cx-pipe > *:not(.cx-arrow) *{
|
|
2621
|
+
font-size: 12px!important;
|
|
2622
|
+
line-height: 1!important;
|
|
2623
|
+
font-weight: 600!important;
|
|
2624
|
+
color: inherit!important;
|
|
2625
|
+
background: transparent!important;
|
|
2626
|
+
border: 0!important;
|
|
2627
|
+
margin: 0!important;
|
|
2628
|
+
padding: 0!important;
|
|
2629
|
+
}
|
|
2630
|
+
.cx-shell .cx-pipe .cx-arrow{
|
|
2631
|
+
all: unset;
|
|
2632
|
+
display: inline-flex!important;
|
|
2633
|
+
align-items: center!important;
|
|
2634
|
+
height: 28px!important;
|
|
2635
|
+
padding: 0 2px!important;
|
|
2636
|
+
margin: 0!important;
|
|
2637
|
+
color: var(--cx-text-faint)!important;
|
|
2638
|
+
font-size: 12px!important;
|
|
2639
|
+
}
|
|
2640
|
+
|
|
2641
|
+
/* .cx-chips 是容器,不是 chip 本身;内部 4 个 chip 与左侧 4 个完全同款 */
|
|
2642
|
+
.cx-shell .cx-pipe > .cx-chips{
|
|
2643
|
+
all: unset;
|
|
2644
|
+
display: flex!important;
|
|
2645
|
+
align-items: center!important;
|
|
2646
|
+
gap: 6px!important;
|
|
2647
|
+
flex: 0 0 auto!important;
|
|
2648
|
+
height: 28px!important;
|
|
2649
|
+
padding: 0!important;
|
|
2650
|
+
margin: 0!important;
|
|
2651
|
+
border: 0!important;
|
|
2652
|
+
background: transparent!important;
|
|
2653
|
+
}
|
|
2654
|
+
.cx-shell .cx-pipe .cx-chip{
|
|
2655
|
+
box-sizing: border-box!important;
|
|
2656
|
+
display: inline-flex!important;
|
|
2657
|
+
align-items: center!important;
|
|
2658
|
+
gap: 6px!important;
|
|
2659
|
+
flex: 0 0 auto!important;
|
|
2660
|
+
height: 28px!important;min-height: 28px!important;max-height: 28px!important;
|
|
2661
|
+
padding: 0 10px!important;
|
|
2662
|
+
margin: 0!important;
|
|
2663
|
+
border: 1px solid rgba(var(--cx-hue-rgb), .30)!important;
|
|
2664
|
+
border-radius: 4px!important;
|
|
2665
|
+
background: var(--cx-surface-1)!important;
|
|
2666
|
+
color: var(--cx-text)!important;
|
|
2667
|
+
font-family: var(--cx-font)!important;
|
|
2668
|
+
font-size: 12px!important;
|
|
2669
|
+
font-weight: 600!important;
|
|
2670
|
+
line-height: 1!important;
|
|
2671
|
+
letter-spacing: .04em!important;
|
|
2672
|
+
white-space: nowrap!important;
|
|
2673
|
+
cursor: pointer;
|
|
2674
|
+
}
|
|
2675
|
+
.cx-shell .cx-pipe .cx-chip *{
|
|
2676
|
+
font-size: 12px!important;line-height: 1!important;font-weight: 600!important;
|
|
2677
|
+
color: inherit!important;background: transparent!important;border: 0!important;margin: 0!important;padding: 0!important;
|
|
2678
|
+
}
|
|
2679
|
+
.cx-shell .cx-pipe .cx-chip:hover{border-color:var(--cx-cyan)!important;box-shadow:0 0 12px rgba(var(--cx-hue-rgb),.35)!important}
|
|
2680
|
+
|
|
2681
|
+
/* 顶上工具条:选中态只变描边,底色与其它 chip 完全一致 */
|
|
2682
|
+
.cx-shell .cx-pipe .cx-stage.on,
|
|
2683
|
+
.cx-shell .cx-pipe .cx-chip.on,
|
|
2684
|
+
.cx-shell .cx-pipe > *:not(.cx-arrow).on{
|
|
2685
|
+
background:var(--cx-surface-1)!important;
|
|
2686
|
+
color:var(--cx-text)!important;
|
|
2687
|
+
border-color:var(--cx-cyan)!important;
|
|
2688
|
+
box-shadow:none!important;
|
|
2689
|
+
}
|
|
2690
|
+
|
|
2691
|
+
/* 标签栏/工具条容器:内边距统一 10px */
|
|
2692
|
+
.cx-shell .cx-pipe,
|
|
2693
|
+
.cx-shell .cx-webtabs,
|
|
2694
|
+
.cx-shell .cx-chat-tabs,
|
|
2695
|
+
.cx-shell .cx-console-tabs{padding:10px!important}
|
|
2696
|
+
|
|
2697
|
+
/* 顶部工具条下拉:容器不占样式,按钮保持 chip 外观 */
|
|
2698
|
+
.cx-shell .cx-pipe > .cx-pipe-sel{
|
|
2699
|
+
all: unset;
|
|
2700
|
+
position: relative;
|
|
2701
|
+
display: inline-flex!important;
|
|
2702
|
+
align-items: center!important;
|
|
2703
|
+
height: 28px!important;
|
|
2704
|
+
padding: 0!important;margin: 0!important;
|
|
2705
|
+
border: 0!important;background: transparent!important;
|
|
2706
|
+
flex: 0 0 auto!important;
|
|
2707
|
+
}
|
|
2708
|
+
.cx-shell .cx-pipe .cx-stage-btn{
|
|
2709
|
+
box-sizing: border-box;
|
|
2710
|
+
display: inline-flex;align-items: center;gap: 6px;
|
|
2711
|
+
height: 28px;padding: 0 10px;margin: 0;
|
|
2712
|
+
border: 1px solid rgba(var(--cx-hue-rgb), .30);
|
|
2713
|
+
border-radius: 4px;
|
|
2714
|
+
background: var(--cx-surface-1);
|
|
2715
|
+
color: var(--cx-text);
|
|
2716
|
+
font: 600 12px/1 var(--cx-font);
|
|
2717
|
+
letter-spacing: .04em;white-space: nowrap;cursor: pointer;
|
|
2718
|
+
}
|
|
2719
|
+
.cx-shell .cx-pipe .cx-stage-btn:hover{border-color: var(--cx-cyan)}
|
|
2720
|
+
.cx-shell .cx-pipe .cx-pipe-caret{font-size: 12px;opacity: .7;margin-left: 2px}
|
|
2721
|
+
.cx-shell .cx-pipe .cx-pipe-menu{
|
|
2722
|
+
position: absolute;left: 0;top: calc(100% + 4px);z-index: 3000;
|
|
2723
|
+
min-width: 220px;max-height: 320px;overflow: auto;
|
|
2724
|
+
padding: 4px;border: 1px solid var(--cx-line2);border-radius: 6px;
|
|
2725
|
+
background: var(--cx-surface-1);box-shadow: 0 14px 36px rgba(0,0,0,.45);
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
/* 顶部 chip 点击下拉(固定定位,不改动 layout) */
|
|
2729
|
+
.cx-shell .cx-pipe .cx-stage,
|
|
2730
|
+
.cx-shell .cx-pipe .cx-chip{cursor:pointer}
|
|
2731
|
+
.cx-shell .cx-pipe-menu-fixed{
|
|
2732
|
+
position:fixed;z-index:3000;
|
|
2733
|
+
min-width:220px;max-height:340px;overflow:auto;
|
|
2734
|
+
padding:4px;border:1px solid var(--cx-line2);border-radius:6px;
|
|
2735
|
+
background:var(--cx-surface-1);box-shadow:0 16px 40px rgba(0,0,0,.45);
|
|
2736
|
+
}
|
|
2737
|
+
.cx-shell .cx-pipe-menu-fixed .cx-pipe-menu-title{
|
|
2738
|
+
padding:6px 8px;font:600 10px var(--cx-font);letter-spacing:.12em;
|
|
2739
|
+
color:var(--cx-text-faint);text-transform:uppercase;
|
|
2740
|
+
}
|
|
2741
|
+
.cx-shell .cx-pipe-menu-fixed .cx-menu-item.on{border-left:2px solid var(--cx-cyan);color:var(--cx-cyan)}
|
|
2742
|
+
.cx-shell .cx-pipe-menu-fixed .cx-menu-item.empty{opacity:.6;cursor:default}
|
|
2743
|
+
|
|
2744
|
+
/* 顶部下拉:三列(图标 / 文字 / 选中)对齐 */
|
|
2745
|
+
.cx-shell .cx-pipe-menu-fixed .cx-menu-item.cx-menu-3col{
|
|
2746
|
+
display:grid!important;
|
|
2747
|
+
grid-template-columns:18px minmax(0,1fr) 16px;
|
|
2748
|
+
align-items:center;gap:8px;
|
|
2749
|
+
width:100%;text-align:left;
|
|
2750
|
+
padding:6px 8px!important;
|
|
2751
|
+
}
|
|
2752
|
+
.cx-shell .cx-menu-3col svg{width:14px!important;height:14px!important;opacity:.85}
|
|
2753
|
+
.cx-shell .cx-menu-3col .cx-menu-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px!important}
|
|
2754
|
+
.cx-shell .cx-menu-3col .cx-menu-chk{text-align:right;color:var(--cx-cyan);font-size:12px!important;line-height:1}
|
|
2755
|
+
.cx-shell .cx-menu-3col.on .cx-menu-lbl{color:var(--cx-cyan)}
|
|
2756
|
+
|
|
2757
|
+
/* 顶部下拉与流程条下拉统一:三列、左对齐、两端对齐 */
|
|
2758
|
+
.cx-shell .cx-menu-item.cx-menu-3col{
|
|
2759
|
+
display:grid!important;
|
|
2760
|
+
grid-template-columns:18px minmax(0,1fr) 18px;
|
|
2761
|
+
align-items:center;gap:8px;
|
|
2762
|
+
width:100%;text-align:left;
|
|
2763
|
+
padding:6px 10px!important;
|
|
2764
|
+
}
|
|
2765
|
+
.cx-shell .cx-menu-item.cx-menu-3col .cx-menu-lbl{
|
|
2766
|
+
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px!important;
|
|
2767
|
+
}
|
|
2768
|
+
.cx-shell .cx-menu-item.cx-menu-3col .cx-menu-chk{
|
|
2769
|
+
display:flex;justify-content:flex-end;color:var(--cx-cyan);
|
|
2770
|
+
}
|
|
2771
|
+
.cx-shell .cx-drop-pop{left:0!important;right:auto!important;min-width:100%!important}
|
|
2772
|
+
|
|
2773
|
+
/* 下拉浮层:左对齐 chip,宽度随内容,保证中间文字列有空间 */
|
|
2774
|
+
.cx-shell .cx-drop-pop{
|
|
2775
|
+
left:0!important;right:auto!important;
|
|
2776
|
+
width:max-content!important;
|
|
2777
|
+
min-width:200px!important;
|
|
2778
|
+
max-width:min(360px, 92vw)!important;
|
|
2779
|
+
}
|
|
2780
|
+
|
|
2781
|
+
/* 全局下拉列表:三列 + 上下溢出箭头 */
|
|
2782
|
+
.cx-shell .cx-menu-list{display:flex;flex-direction:column;min-width:0}
|
|
2783
|
+
.cx-shell .cx-menu-scroll{
|
|
2784
|
+
display:flex;flex-direction:column;gap:1px;
|
|
2785
|
+
max-height:300px;overflow-y:auto;overscroll-behavior:contain;
|
|
2786
|
+
}
|
|
2787
|
+
.cx-shell .cx-menu-hint{
|
|
2788
|
+
height:16px;flex:none;display:flex;align-items:center;justify-content:center;
|
|
2789
|
+
font-size:10px;line-height:1;color:var(--cx-cyan);pointer-events:none;
|
|
2790
|
+
letter-spacing:2px;opacity:.9;
|
|
2791
|
+
}
|
|
2792
|
+
.cx-shell .cx-menu-hint.top{background:linear-gradient(180deg,var(--cx-surface-1),transparent)}
|
|
2793
|
+
.cx-shell .cx-menu-hint.bottom{background:linear-gradient(0deg,var(--cx-surface-1),transparent)}
|
|
2794
|
+
.cx-shell .cx-drop-pop{overflow:visible!important}
|
|
2795
|
+
.cx-shell .cx-pipe-menu-fixed{overflow:visible!important}
|
|
2796
|
+
|
|
2797
|
+
/* 侧边栏切换键与品牌之间 10px */
|
|
2798
|
+
.cx-shell .cx-header > .cx-sb-toggle{margin-right:10px!important}
|
|
2799
|
+
.cx-shell .cx-header > .cx-brand{margin-left:0!important}
|
|
2800
|
+
|
|
2801
|
+
/* 顶栏间距改为显式 margin:侧栏键后正好 10px */
|
|
2802
|
+
.cx-shell .cx-header{gap:0!important}
|
|
2803
|
+
.cx-shell .cx-header>.cx-sb-toggle{margin-right:10px!important}
|
|
2804
|
+
.cx-shell .cx-header>.cx-brand{margin-right:10px!important}
|
|
2805
|
+
|
|
2806
|
+
/* 侧栏键与品牌之间 20px */
|
|
2807
|
+
.cx-shell .cx-header>.cx-sb-toggle{margin-right:20px!important}
|
|
2808
|
+
|
|
2809
|
+
/* 浅色主题:不显示开场过场 / INITIALIZE 遮罩(READY 保留) */
|
|
2810
|
+
.cx-shell[data-theme="light"] .cx-intro:not(.cx-welcome){display:none!important}
|
|
2811
|
+
.cx-shell[data-theme="light"] .cx-welcome:not([data-ready="true"]){display:none!important}
|
|
2812
|
+
|
|
2813
|
+
/* 过滤下拉:文字在左,选中勾在右 */
|
|
2814
|
+
.cx-shell .cx-filter-item{display:flex!important;align-items:center;justify-content:space-between;gap:10px;width:100%}
|
|
2815
|
+
.cx-shell .cx-filter-item .cx-filter-text{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
2816
|
+
.cx-shell .cx-filter-item .cx-filter-check{flex:0 0 16px;display:flex;justify-content:flex-end;margin-left:auto;color:var(--cx-cyan)}
|
|
2817
|
+
|
|
2818
|
+
/* 地图:标题栏与地图贴在一起(不再吸底、不再 display:contents) */
|
|
2819
|
+
.cx-pm-side.right .cx-mapsec{display:block!important;position:relative!important;margin-top:8px!important}
|
|
2820
|
+
.cx-pm-side.right .cx-mapsec .cx-taskmap{position:relative!important;bottom:auto!important;margin-top:0!important;flex:none!important}
|
|
2821
|
+
.cx-pm-side.right .cx-mapsec.folded{display:block!important}
|
|
2822
|
+
|
|
2823
|
+
/* 地图吸附在右侧栏底部(非最大化时) */
|
|
2824
|
+
.cx-pm-side.right .cx-mapsec:not(.max){
|
|
2825
|
+
display:block!important;
|
|
2826
|
+
position:sticky!important;
|
|
2827
|
+
bottom:0!important;
|
|
2828
|
+
left:auto!important;
|
|
2829
|
+
right:auto!important;
|
|
2830
|
+
top:auto!important;
|
|
2831
|
+
width:auto!important;
|
|
2832
|
+
margin:8px 0 0!important;
|
|
2833
|
+
z-index:30!important;
|
|
2834
|
+
border-radius:6px;
|
|
2835
|
+
box-shadow:0 -8px 24px rgba(0,0,0,.22);
|
|
2836
|
+
}
|
|
2837
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-taskmap{position:relative!important;bottom:auto!important;margin:0!important;flex:none!important;padding:6px}
|
|
2838
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-taskmap-leaflet{height:170px!important}
|
|
2839
|
+
.cx-pm-side.right .cx-mapsec:not(.max).folded{width:auto!important}
|
|
2840
|
+
|
|
2841
|
+
/* 右侧栏改为纵向 flex:地图贴住栏底(内容短时推到底,长时 sticky 吸附) */
|
|
2842
|
+
.cx-pm-side.right{display:flex!important;flex-direction:column}
|
|
2843
|
+
.cx-pm-side.right .cx-mapsec:not(.max){margin-top:auto!important;position:sticky!important;bottom:0!important}
|
|
2844
|
+
|
|
2845
|
+
/* 地图标题栏:与其它分栏一致,左侧留出内边距 */
|
|
2846
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-pm-h{padding-left:10px!important}
|
|
2847
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-pm-h>:first-child{margin-left:0!important;padding-left:0!important}
|
|
2848
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-pm-titleline{gap:6px}
|
|
2849
|
+
|
|
2850
|
+
/* 地图卡片左右内边距清零,标题从最左开始 */
|
|
2851
|
+
.cx-pm-side.right .cx-mapsec:not(.max){padding-left:0!important;padding-right:0!important}
|
|
2852
|
+
|
|
2853
|
+
/* 输入框工具栏:四段(添加 / 节点组 / 分身组 / 发送) */
|
|
2854
|
+
.cx-shell .cx-compose-tools{display:flex!important;align-items:center!important;gap:0!important}
|
|
2855
|
+
.cx-shell .cx-compose-tools>.cx-compose-plus{margin-right:10px!important}
|
|
2856
|
+
.cx-shell .cx-compose-tools>:nth-child(2),
|
|
2857
|
+
.cx-shell .cx-compose-tools>:nth-child(3){margin-right:3px!important}
|
|
2858
|
+
.cx-shell .cx-compose-tools>.cx-compose-right{margin-left:auto!important;display:flex!important;align-items:center!important;gap:0!important}
|
|
2859
|
+
.cx-shell .cx-compose-right>*+*{margin-left:3px!important}
|
|
2860
|
+
.cx-shell .cx-compose-right>.cx-compose-send{margin-left:10px!important}
|
|
2861
|
+
|
|
2862
|
+
/* 输入框:字号 12,提示词标签化 */
|
|
2863
|
+
.cx-shell .cx-compose-input{font-size:13px!important;line-height:1.65!important}
|
|
2864
|
+
.cx-shell .cx-suggest{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
|
|
2865
|
+
.cx-shell .cx-suggest-tag{
|
|
2866
|
+
border:1px solid rgba(var(--cx-hue-rgb),.32);
|
|
2867
|
+
background:var(--cx-surface-2);
|
|
2868
|
+
color:var(--cx-text-dim);
|
|
2869
|
+
font:12px/1 var(--cx-font);
|
|
2870
|
+
padding:6px 10px;border-radius:14px;cursor:pointer;
|
|
2871
|
+
max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
|
|
2872
|
+
transition:border-color .15s,color .15s;
|
|
2873
|
+
}
|
|
2874
|
+
.cx-shell .cx-suggest-tag:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
2875
|
+
|
|
2876
|
+
/* 浅色主题:发送键用深青底白箭头 */
|
|
2877
|
+
.cx-shell[data-theme="light"] .cx-compose-send{
|
|
2878
|
+
background:linear-gradient(135deg,#0b7f9f,#0f766e)!important;
|
|
2879
|
+
color:#fff!important;
|
|
2880
|
+
box-shadow:0 2px 10px rgba(11,127,159,.35)!important;
|
|
2881
|
+
}
|
|
2882
|
+
|
|
2883
|
+
/* 甘特图:计划条 + 任务条 */
|
|
2884
|
+
.cx-shell .cx-gantt{padding:2px 0 0}
|
|
2885
|
+
.cx-shell .cx-gantt-row{display:flex;align-items:flex-start;gap:6px;padding:3px 0}
|
|
2886
|
+
.cx-shell .cx-gantt-name{flex:0 0 62px;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--cx-text-dim);line-height:14px}
|
|
2887
|
+
.cx-shell .cx-gantt-track{position:relative;flex:1;min-height:14px;background:rgba(var(--cx-hue-rgb),.06);border-radius:3px}
|
|
2888
|
+
.cx-shell .cx-gantt-plan{position:absolute;top:0;background:rgba(var(--cx-hue-rgb),.16);border:1px solid rgba(var(--cx-hue-rgb),.35);border-radius:3px;overflow:hidden}
|
|
2889
|
+
.cx-shell .cx-gantt-task{position:absolute;height:3px;border-radius:2px;background:var(--cx-amber,#e0a44a)}
|
|
2890
|
+
.cx-shell .cx-gantt-task.finished{background:var(--cx-green,#3ddc84)}
|
|
2891
|
+
.cx-shell .cx-gantt-task.canceled{background:var(--cx-text-faint,#6b7d88)}
|
|
2892
|
+
.cx-shell .cx-gantt-task.created{background:rgba(var(--cx-hue-rgb),.55)}
|
|
2893
|
+
.cx-shell .cx-gantt-empty{font-size:10px;color:var(--cx-text-faint);padding:4px 0}
|
|
2894
|
+
|
|
2895
|
+
/* 甘特图:顶部总时间轴 + 当前计划高亮 */
|
|
2896
|
+
.cx-shell .cx-gantt-axis{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--cx-text-faint);padding:0 2px 4px;letter-spacing:.06em}
|
|
2897
|
+
.cx-shell .cx-gantt-axis .mid{color:var(--cx-text-dim);letter-spacing:.1em}
|
|
2898
|
+
.cx-shell .cx-gantt-plan.on{background:rgba(var(--cx-hue-rgb),.34);border-color:var(--cx-cyan);box-shadow:0 0 0 1px rgba(var(--cx-hue-rgb),.25)}
|
|
2899
|
+
|
|
2900
|
+
/* 进度甘特图:吸附左栏底部(同地图) */
|
|
2901
|
+
.cx-shell .cx-pm-side:not(.right){display:flex!important;flex-direction:column}
|
|
2902
|
+
.cx-shell .cx-gantt-sec{
|
|
2903
|
+
margin-top:auto!important;
|
|
2904
|
+
position:sticky!important;bottom:0!important;
|
|
2905
|
+
z-index:30;
|
|
2906
|
+
padding:4px 6px 6px;
|
|
2907
|
+
border:1px solid var(--cx-border);
|
|
2908
|
+
border-radius:6px;
|
|
2909
|
+
background:var(--cx-surface-2);
|
|
2910
|
+
box-shadow:0 -8px 24px rgba(0,0,0,.18);
|
|
2911
|
+
}
|
|
2912
|
+
|
|
2913
|
+
/* 甘特图:不外溢,任务条加高到 10px */
|
|
2914
|
+
.cx-shell .cx-gantt-sec{box-sizing:border-box!important;width:100%!important;max-width:100%!important;overflow:hidden}
|
|
2915
|
+
.cx-shell .cx-gantt{overflow:hidden}
|
|
2916
|
+
.cx-shell .cx-gantt-row{overflow:hidden}
|
|
2917
|
+
.cx-shell .cx-gantt-track{overflow:hidden}
|
|
2918
|
+
.cx-shell .cx-gantt-task{height:10px!important;border-radius:3px}
|
|
2919
|
+
.cx-shell .cx-gantt-plan{overflow:hidden!important}
|
|
2920
|
+
|
|
2921
|
+
/* 甘特图:当前时间竖线 */
|
|
2922
|
+
.cx-shell .cx-gantt-body{position:relative}
|
|
2923
|
+
.cx-shell .cx-gantt-now{
|
|
2924
|
+
position:absolute;top:0;bottom:0;width:1px;
|
|
2925
|
+
background:var(--cx-cyan);
|
|
2926
|
+
box-shadow:0 0 6px rgba(var(--cx-hue-rgb),.55);
|
|
2927
|
+
z-index:3;pointer-events:none;
|
|
2928
|
+
}
|
|
2929
|
+
.cx-shell .cx-gantt-now::before{
|
|
2930
|
+
content:'';position:absolute;top:-3px;left:-2px;
|
|
2931
|
+
width:5px;height:5px;border-radius:50%;background:var(--cx-cyan);
|
|
2932
|
+
}
|
|
2933
|
+
|
|
2934
|
+
/* 甘特图内容区加高 */
|
|
2935
|
+
.cx-shell .cx-gantt{min-height:56px;padding-bottom:6px}
|
|
2936
|
+
.cx-shell .cx-gantt-row{padding:5px 0}
|
|
2937
|
+
.cx-shell .cx-gantt-track{min-height:30px}
|
|
2938
|
+
.cx-shell .cx-gantt-sec{padding-bottom:10px}
|
|
2939
|
+
|
|
2940
|
+
/* 进度区与地图卡片等高 */
|
|
2941
|
+
.cx-shell .cx-gantt-sec{
|
|
2942
|
+
min-height:210px!important;
|
|
2943
|
+
display:flex!important;flex-direction:column;
|
|
2944
|
+
}
|
|
2945
|
+
.cx-shell .cx-gantt{flex:1 1 auto;min-height:0;overflow:auto}
|
|
2946
|
+
|
|
2947
|
+
/* 地图/进度固定在栏底时,必须盖住所有分区标题栏(标题 z-index 是 60..56 递减) */
|
|
2948
|
+
.cx-shell .cx-pm-side.right .cx-mapsec:not(.max){z-index:80!important}
|
|
2949
|
+
.cx-shell .cx-pm-side:not(.right) .cx-gantt-sec{z-index:80!important}
|
|
2950
|
+
|
|
2951
|
+
/* 甘特图折叠后只占标题高度,仍贴栏底 */
|
|
2952
|
+
.cx-shell .cx-gantt-sec.folded{min-height:0!important}
|
|
2953
|
+
|
|
2954
|
+
/* 终端操作键 + 分屏 + 浅色主题背景 */
|
|
2955
|
+
.cx-shell .cx-term-acts{display:flex;align-items:center;gap:4px;margin-left:auto}
|
|
2956
|
+
.cx-shell .cx-term-act{
|
|
2957
|
+
height:22px;padding:0 8px;border-radius:4px;
|
|
2958
|
+
border:1px solid var(--cx-border);background:var(--cx-surface-2);
|
|
2959
|
+
color:var(--cx-text-dim);font:12px/1 var(--cx-font);cursor:pointer;
|
|
2960
|
+
}
|
|
2961
|
+
.cx-shell .cx-term-act:hover{border-color:var(--cx-cyan);color:var(--cx-cyan)}
|
|
2962
|
+
.cx-shell .cx-term-act.on{border-color:var(--cx-cyan);color:var(--cx-cyan);background:color-mix(in srgb,var(--cx-cyan) 12%,var(--cx-surface-2))}
|
|
2963
|
+
.cx-shell .cx-console-terms{display:flex;flex-direction:column;height:100%;min-height:0}
|
|
2964
|
+
.cx-shell .cx-console-terms .cx-console-term{flex:1 1 0;min-height:0;height:auto}
|
|
2965
|
+
.cx-shell .cx-console-terms.split .cx-console-term+.cx-console-term{border-top:1px solid var(--cx-border)}
|
|
2966
|
+
.cx-shell .cx-console-term-inner{height:100%}
|
|
2967
|
+
.cx-shell[data-theme="light"] .xterm,
|
|
2968
|
+
.cx-shell[data-theme="light"] .xterm .xterm-viewport,
|
|
2969
|
+
.cx-shell[data-theme="light"] .xterm .xterm-screen{background:#ffffff!important}
|
|
2970
|
+
.cx-shell[data-theme="light"] .xterm .xterm-rows{color:#1d3a4a}
|
|
2971
|
+
|
|
2972
|
+
/* ============ 监控视图(数字大屏) ============ */
|
|
2973
|
+
.cx-shell .cx-monitor{padding:12px 14px 18px;overflow:auto;height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}
|
|
2974
|
+
.cx-shell .cx-mon-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
|
|
2975
|
+
.cx-shell .cx-mon-title{font:700 16px var(--cx-font);color:var(--cx-text);letter-spacing:.06em}
|
|
2976
|
+
.cx-shell .cx-mon-sub{font:11px var(--cx-font);color:var(--cx-text-faint);margin-top:3px}
|
|
2977
|
+
.cx-shell .cx-mon-head-r{display:flex;align-items:center;gap:8px}
|
|
2978
|
+
.cx-shell .cx-mon-live{font:600 10px var(--cx-font);color:var(--cx-green);letter-spacing:.14em}
|
|
2979
|
+
.cx-shell .cx-mon-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
|
|
2980
|
+
.cx-shell .cx-mon-kpi{border:1px solid var(--cx-border);border-radius:8px;background:var(--cx-surface-2);padding:10px 12px;position:relative;overflow:hidden}
|
|
2981
|
+
.cx-shell .cx-mon-kpi::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--cx-cyan);opacity:.7}
|
|
2982
|
+
.cx-shell .cx-mon-kpi.tone-green::after{background:var(--cx-green)}
|
|
2983
|
+
.cx-shell .cx-mon-kpi.tone-amber::after{background:var(--cx-amber,#ffbe4a)}
|
|
2984
|
+
.cx-shell .cx-mon-kpi.tone-rose::after{background:var(--cx-rose,#ff5c8a)}
|
|
2985
|
+
.cx-shell .cx-mon-kpi .k{font:600 10px var(--cx-font);color:var(--cx-text-faint);letter-spacing:.12em}
|
|
2986
|
+
.cx-shell .cx-mon-kpi .v{font:700 24px var(--cx-font);color:var(--cx-text);margin:4px 0 2px;line-height:1}
|
|
2987
|
+
.cx-shell .cx-mon-kpi .s{font:10px var(--cx-font);color:var(--cx-text-dim)}
|
|
2988
|
+
.cx-shell .cx-mon-grid{display:grid;grid-template-columns:1.05fr 1.5fr 1fr;gap:10px;min-height:220px}
|
|
2989
|
+
.cx-shell .cx-mon-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
|
|
2990
|
+
.cx-shell .cx-mon-panel{border:1px solid var(--cx-border);border-radius:8px;background:var(--cx-surface-2);padding:10px 12px;display:flex;flex-direction:column;min-height:0}
|
|
2991
|
+
.cx-shell .cx-mon-pt{font:600 10px var(--cx-font);color:var(--cx-text-faint);letter-spacing:.14em;margin-bottom:8px}
|
|
2992
|
+
.cx-shell .cx-mon-spark{width:100%;height:100px;flex:1}
|
|
2993
|
+
.cx-shell .cx-mon-twin{width:100%;flex:1;min-height:170px;display:block}
|
|
2994
|
+
.cx-shell .cx-mon-legend{display:flex;align-items:center;gap:6px;font:10px var(--cx-font);color:var(--cx-text-faint);margin-top:6px}
|
|
2995
|
+
.cx-shell .cx-mon-legend .dot,.cx-shell .cx-mon-keys .dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--cx-cyan)}
|
|
2996
|
+
.cx-shell .cx-mon-legend .dot.amber,.cx-shell .cx-mon-keys .dot.amber{background:var(--cx-amber,#ffbe4a)}
|
|
2997
|
+
.cx-shell .cx-mon-keys .dot.green{background:var(--cx-green)}
|
|
2998
|
+
.cx-shell .cx-mon-donut-wrap{display:flex;align-items:center;gap:12px;flex:1}
|
|
2999
|
+
.cx-shell .cx-mon-donut-n{font:700 20px var(--cx-font);fill:var(--cx-text)}
|
|
3000
|
+
.cx-shell .cx-mon-donut-l{font:9px var(--cx-font);fill:var(--cx-text-faint);letter-spacing:.14em}
|
|
3001
|
+
.cx-shell .cx-mon-keys{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font:11px var(--cx-font);color:var(--cx-text-dim)}
|
|
3002
|
+
.cx-shell .cx-mon-keys li{display:flex;align-items:center;gap:6px}
|
|
3003
|
+
.cx-shell .cx-mon-keys b{margin-left:auto;color:var(--cx-text);font-weight:700}
|
|
3004
|
+
.cx-shell .cx-mon-bar{display:flex;align-items:center;gap:8px;margin:5px 0;font:11px var(--cx-font);color:var(--cx-text-dim)}
|
|
3005
|
+
.cx-shell .cx-mon-bar .n{width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3006
|
+
.cx-shell .cx-mon-bar .t{flex:1;height:6px;border-radius:3px;background:rgba(var(--cx-hue-rgb),.10);overflow:hidden}
|
|
3007
|
+
.cx-shell .cx-mon-bar .t i{display:block;height:100%;background:linear-gradient(90deg,var(--cx-cyan),var(--cx-green));border-radius:3px}
|
|
3008
|
+
.cx-shell .cx-mon-bar .v{width:28px;text-align:right;color:var(--cx-text)}
|
|
3009
|
+
.cx-shell .cx-mon-feed{display:flex;gap:8px;font:11px var(--cx-font);color:var(--cx-text-dim);padding:3px 0;border-bottom:1px dashed rgba(var(--cx-hue-rgb),.10)}
|
|
3010
|
+
.cx-shell .cx-mon-feed .t{color:var(--cx-text-faint);width:58px}
|
|
3011
|
+
.cx-shell .cx-mon-feed .o{color:var(--cx-cyan);width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3012
|
+
.cx-shell .cx-mon-feed .s{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3013
|
+
.cx-shell .cx-mon-empty{font:11px var(--cx-font);color:var(--cx-text-faint);padding:6px 0}
|
|
3014
|
+
@media (max-width:1200px){
|
|
3015
|
+
.cx-shell .cx-mon-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
|
|
3016
|
+
.cx-shell .cx-mon-grid{grid-template-columns:1fr 1fr}
|
|
3017
|
+
}
|
|
3018
|
+
|
|
3019
|
+
/* 顶部下拉:中间列保底宽度,避免 1fr 塌成 0 */
|
|
3020
|
+
.cx-shell .cx-drop-pop{min-width:240px!important}
|
|
3021
|
+
.cx-shell .cx-drop-pop .cx-menu-3col{grid-template-columns:18px minmax(120px,1fr) 18px!important}
|
|
3022
|
+
|
|
3023
|
+
/* 2026-11-13: today ring + full-screen year/long views fill the panel */
|
|
3024
|
+
.cx-cal-day .d.today{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border:1px solid var(--cx-cyan);border-radius:50%;color:var(--cx-cyan);font-weight:600}
|
|
3025
|
+
.cx-cal-f-r{display:flex;align-items:center;gap:12px}
|
|
3026
|
+
.cx-calsec.max .cx-cal-years,.cx-calsec.max .cx-cal-months{flex:1!important;grid-auto-rows:1fr!important}
|
|
3027
|
+
.cx-calsec.max .cx-cal-years>button,.cx-calsec.max .cx-cal-months>button{height:100%!important;min-height:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center}
|
|
3028
|
+
|
|
3029
|
+
/* 2026-11-13: map header aligns with other sections; gantt matches map height */
|
|
3030
|
+
.cx-mapsec .cx-pm-h{padding-left:10px;padding-right:8px}
|
|
3031
|
+
.cx-shell .cx-gantt{min-height:180px}
|
|
3032
|
+
|
|
3033
|
+
/* 2026-11-13: 进度分栏与地图卡片固定同高(标题 + 180 画布 + 内边距 ≈ 218) */
|
|
3034
|
+
.cx-shell{--cx-sec-h:218px}
|
|
3035
|
+
.cx-gantt-sec{height:var(--cx-sec-h)!important;display:flex;flex-direction:column;overflow:hidden}
|
|
3036
|
+
.cx-gantt-sec .cx-gantt{flex:1 1 auto!important;min-height:0!important;overflow:auto!important}
|
|
3037
|
+
.cx-pm-side.right .cx-mapsec:not(.max){height:var(--cx-sec-h)!important;display:flex!important;flex-direction:column!important}
|
|
3038
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-taskmap{flex:1 1 auto!important;min-height:0!important;display:flex;flex-direction:column}
|
|
3039
|
+
.cx-pm-side.right .cx-mapsec:not(.max) .cx-taskmap-leaflet{flex:1 1 auto!important;height:auto!important;min-height:0!important}
|
|
3040
|
+
|
|
3041
|
+
/* 2026-11-15: 折叠态不再继承固定高度,收成标题条 */
|
|
3042
|
+
.cx-gantt-sec.folded{height:auto!important;min-height:0!important;flex:0 0 auto!important;overflow:visible!important}
|
|
3043
|
+
.cx-pm-side.right .cx-mapsec.folded{height:auto!important;min-height:0!important;flex:0 0 auto!important}
|
|
3044
|
+
.cx-pm-side .cx-gantt-sec.folded .cx-pm-h,.cx-pm-side .cx-mapsec.folded .cx-pm-h{min-height:0!important}
|
|
3045
|
+
|
|
3046
|
+
/* 2026-11-13: gantt rows share the fixed section height so every plan stays visible */
|
|
3047
|
+
.cx-shell .cx-gantt-body{display:flex;flex-direction:column;gap:4px}
|
|
3048
|
+
.cx-shell .cx-gantt-row{padding:0!important}
|
|
3049
|
+
.cx-shell .cx-gantt-track{min-height:0!important}
|
|
3050
|
+
|
|
3051
|
+
/* 2026-11-13: left panel keeps the progress block visible; the plan list scrolls above it */
|
|
3052
|
+
.cx-pm-side:not(.right){display:flex!important;flex-direction:column;overflow:hidden;min-height:0;height:100%}
|
|
3053
|
+
.cx-pm-side:not(.right) .cx-pm-scroll{flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden}
|
|
3054
|
+
.cx-pm-side:not(.right) .cx-gantt-sec{flex:none}
|
|
3055
|
+
|
|
3056
|
+
/* 2026-11-13: message hover toolbar */
|
|
3057
|
+
.cx-msg-wrap{display:flex;flex-direction:column;align-items:stretch;gap:2px;max-width:94%;min-width:0}
|
|
3058
|
+
.cx-msg-wrap.user{align-items:flex-end}
|
|
3059
|
+
.cx-msg-wrap .cx-msg{max-width:100%}
|
|
3060
|
+
.cx-msg-meta .cx-msg-tools{margin-left:auto;display:flex;align-items:center;gap:6px;flex:0 0 auto;opacity:0;transition:opacity .12s ease}
|
|
3061
|
+
.cx-msg-wrap:hover .cx-msg-meta .cx-msg-tools,.cx-msg-wrap:focus-within .cx-msg-meta .cx-msg-tools{opacity:1}
|
|
3062
|
+
.cx-msg-meta .cx-msg-tools{font-size:inherit;line-height:inherit;letter-spacing:inherit}
|
|
3063
|
+
.cx-msg-meta .cx-msg-tools .cx-msg-tool{font:inherit;line-height:inherit;height:auto;padding:0 4px;letter-spacing:inherit;color:inherit;opacity:1}
|
|
3064
|
+
.cx-msg-tool{border:0;background:transparent;color:var(--cx-muted);font:var(--cx-fs-body)/1 var(--cx-font);cursor:pointer;padding:1px 4px;border-radius:3px;letter-spacing:.06em}
|
|
3065
|
+
.cx-msg-tool:hover{color:var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.12)}
|
|
3066
|
+
.cx-msg-tool.danger:hover{color:#ff7b7b}
|
|
3067
|
+
@media (hover:none){.cx-msg-meta .cx-msg-tools{opacity:1}}
|
|
3068
|
+
|
|
3069
|
+
/* 应用实例回执卡(参考管理视图 APP 卡片) */
|
|
3070
|
+
.cx-app-card{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--cx-line);border-radius:8px;background:var(--cx-panel-2);min-width:280px;max-width:420px}
|
|
3071
|
+
.cx-app-card-ico{width:34px;height:34px;flex:none;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(var(--cx-hue-rgb),.55),rgba(var(--cx-hue-rgb),.18));border:1px solid rgba(var(--cx-hue-rgb),.45)}
|
|
3072
|
+
.cx-app-card-ico img{width:100%;height:100%;object-fit:cover}
|
|
3073
|
+
.cx-app-card-ico .ph{font-size:14px;font-weight:600;color:#fff}
|
|
3074
|
+
.cx-app-card-main{flex:1;min-width:0}
|
|
3075
|
+
.cx-app-card-title{font-size:14px;font-weight:600;color:var(--cx-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3076
|
+
.cx-app-card-sub{font-size:10px;color:var(--cx-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
|
|
3077
|
+
.cx-app-card-open{flex:none;height:24px;padding:0 10px;border-radius:4px;border:1px solid rgba(var(--cx-hue-rgb),.5);background:rgba(var(--cx-hue-rgb),.12);color:var(--cx-cyan);font-size:10px;letter-spacing:.08em;cursor:pointer}
|
|
3078
|
+
.cx-app-card-open:hover{background:rgba(var(--cx-hue-rgb),.22)}
|
|
3079
|
+
|
|
3080
|
+
/* 消息列表里的数据表单 */
|
|
3081
|
+
.cx-wform{border:1px solid var(--cx-line);border-radius:8px;background:var(--cx-panel-2);padding:12px 14px;width:100%;max-width:720px}
|
|
3082
|
+
.cx-wform-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
|
|
3083
|
+
.cx-wform-h .t{font-size:12px;font-weight:600;color:var(--cx-text)}
|
|
3084
|
+
.cx-wform-h .s{font-size:10px;color:var(--cx-text-3)}
|
|
3085
|
+
.cx-wform-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}
|
|
3086
|
+
.cx-wform-row .k{width:96px;flex:none;font-size:10px;color:var(--cx-text-2)}
|
|
3087
|
+
.cx-wform-input{flex:1;height:26px;padding:0 8px;border-radius:4px;border:1px solid var(--cx-line);background:var(--cx-panel);color:var(--cx-text);font-size:12px;outline:0}
|
|
3088
|
+
.cx-wform-input:focus{border-color:rgba(var(--cx-hue-rgb),.6)}
|
|
3089
|
+
.cx-wform-acts{display:flex;justify-content:flex-end;margin-top:8px}
|
|
3090
|
+
.cx-wform-submit{height:26px;padding:0 14px;border-radius:4px;border:1px solid rgba(var(--cx-hue-rgb),.55);background:rgba(var(--cx-hue-rgb),.18);color:var(--cx-cyan);font-size:12px;cursor:pointer}
|
|
3091
|
+
.cx-wform-submit:hover{background:rgba(var(--cx-hue-rgb),.3)}
|
|
3092
|
+
.cx-wform-submit:disabled{opacity:.6;cursor:default}
|
|
3093
|
+
|
|
3094
|
+
/* 表单里的实例/功能信息 + 错误提示 */
|
|
3095
|
+
.cx-wform-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 10px;font-size:10px;color:var(--cx-text-3)}
|
|
3096
|
+
|
|
3097
|
+
/* 参数确认表单(创建空间 / 应用模板):标题、参数名、脚注 */
|
|
3098
|
+
.cx-wform-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
|
|
3099
|
+
.cx-wform-title{font-size:12px;font-weight:600;color:var(--cx-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3100
|
+
.cx-wform-count{flex:none;font-size:10px;color:var(--cx-text-3)}
|
|
3101
|
+
.cx-wform-note{margin:0 0 10px;font-size:10px;line-height:1.6;color:var(--cx-text-2);word-break:break-word}
|
|
3102
|
+
.cx-wform-label{width:96px;flex:none;font-size:10px;color:var(--cx-text-2)}
|
|
3103
|
+
.cx-wform-label .req{color:#ff6b6b;font-style:normal;margin-left:2px}
|
|
3104
|
+
.cx-wform-foot{display:flex;justify-content:flex-end;margin-top:8px}
|
|
3105
|
+
.cx-wform-err{margin-top:8px;padding:6px 8px;border-radius:4px;border:1px solid rgba(255,90,90,.5);background:rgba(255,90,90,.12);color:#ff9a9a;font-size:10px;word-break:break-word}
|
|
3106
|
+
|
|
3107
|
+
/* 表单顶部的实例卡 */
|
|
3108
|
+
.cx-wform-app{display:flex;align-items:center;gap:8px;margin-bottom:8px}
|
|
3109
|
+
.cx-wform-app .ico{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:6px;background:rgba(var(--cx-hue-rgb),.18);color:var(--cx-cyan)}
|
|
3110
|
+
.cx-wform-app .body{display:flex;flex-direction:column;min-width:0}
|
|
3111
|
+
.cx-wform-app .name{font-size:12px;font-weight:600;color:var(--cx-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3112
|
+
.cx-wform-app .sub{font-size:10px;color:var(--cx-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3113
|
+
|
|
3114
|
+
/* 表单实例卡可点击 */
|
|
3115
|
+
.cx-wform-app.link{cursor:pointer;border-radius:6px;margin-left:-4px;padding:4px}
|
|
3116
|
+
.cx-wform-app.link:hover{background:rgba(var(--cx-hue-rgb),.12)}
|
|
3117
|
+
|
|
3118
|
+
/* 提交成功后的「查看详情」 */
|
|
3119
|
+
.cx-wform-open{height:26px;padding:0 14px;border-radius:4px;border:1px solid rgba(var(--cx-hue-rgb),.55);background:rgba(var(--cx-hue-rgb),.16);color:var(--cx-cyan);font-size:12px;cursor:pointer}
|
|
3120
|
+
.cx-wform-open:hover{background:rgba(var(--cx-hue-rgb),.3)}
|
|
3121
|
+
.cx-wform.done{border-color:rgba(var(--cx-green,80,220,160),.45)}
|
|
3122
|
+
|
|
3123
|
+
/* 已提交:字段置灰只读 */
|
|
3124
|
+
.cx-wform-row.ro{opacity:.62}
|
|
3125
|
+
.cx-wform-row.ro .v{flex:1;height:26px;line-height:26px;padding:0 8px;border-radius:4px;border:1px solid var(--cx-line);background:var(--cx-panel);font-size:12px;color:var(--cx-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3126
|
+
|
|
3127
|
+
/* 必填标记 */
|
|
3128
|
+
.cx-wform-row .k .req{font-style:normal;color:#ff7b7b;margin-left:2px}
|
|
3129
|
+
|
|
3130
|
+
/* 全局统一结果卡片:节点 / 空间 / 实例 / 模板 / 数据 */
|
|
3131
|
+
.cx-msg .cx-rc,.cx-rc{
|
|
3132
|
+
display:flex!important;flex-direction:row!important;align-items:center!important;
|
|
3133
|
+
gap:12px;white-space:normal!important;font-family:var(--cx-font,system-ui,sans-serif);
|
|
3134
|
+
margin:8px 0;padding:12px;border:1px solid var(--cx-line);
|
|
3135
|
+
border-left:3px solid rgba(var(--cx-hue-rgb),.85);border-radius:8px;
|
|
3136
|
+
background:linear-gradient(180deg,rgba(var(--cx-hue-rgb),.07),rgba(0,0,0,0));
|
|
3137
|
+
background-color:var(--cx-panel);
|
|
3138
|
+
}
|
|
3139
|
+
.cx-msg .cx-rc-ico,.cx-rc-ico{
|
|
3140
|
+
flex:0 0 40px!important;width:40px;height:40px;border-radius:10px;overflow:hidden;
|
|
3141
|
+
display:flex!important;align-items:center;justify-content:center;
|
|
3142
|
+
background:rgba(var(--cx-hue-rgb),.16);border:1px solid rgba(var(--cx-hue-rgb),.35);color:var(--cx-cyan);
|
|
3143
|
+
}
|
|
3144
|
+
.cx-rc-ico img{width:100%;height:100%;object-fit:cover}
|
|
3145
|
+
.cx-msg .cx-rc-main,.cx-rc-main{flex:1 1 auto!important;min-width:0;display:block!important}
|
|
3146
|
+
.cx-msg .cx-rc-head,.cx-rc-head{display:flex!important;align-items:center;gap:8px;white-space:nowrap;overflow:hidden}
|
|
3147
|
+
.cx-msg .cx-rc-kind,.cx-rc-kind{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cx-cyan);opacity:.75;flex:0 0 auto}
|
|
3148
|
+
.cx-msg .cx-rc-title,.cx-rc-title{font-size:14px!important;font-weight:600;color:var(--cx-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3149
|
+
.cx-msg .cx-rc-badge,.cx-rc-badge{flex:0 0 auto;font-size:10px;padding:1px 7px;border-radius:999px;border:1px solid rgba(var(--cx-hue-rgb),.5);color:var(--cx-cyan);background:rgba(var(--cx-hue-rgb),.1)}
|
|
3150
|
+
.cx-rc-badge.ok{border-color:rgba(90,220,160,.5);color:#5adca0;background:rgba(90,220,160,.1)}
|
|
3151
|
+
.cx-msg .cx-rc-sub,.cx-rc-sub{font-size:10px!important;line-height:16px;color:var(--cx-text-2);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
3152
|
+
.cx-msg .cx-rc-meta,.cx-rc-meta{display:flex!important;flex-wrap:wrap;gap:4px 10px;margin-top:5px;font-size:10px;color:var(--cx-text-2);opacity:.85}
|
|
3153
|
+
.cx-msg .cx-rc-acts,.cx-rc-acts{flex:0 0 auto!important;display:flex!important;flex-direction:row!important;gap:6px;align-self:center}
|
|
3154
|
+
.cx-msg .cx-rc-btn,.cx-rc-btn{
|
|
3155
|
+
height:26px!important;min-height:26px;padding:0 12px!important;border-radius:5px;
|
|
3156
|
+
border:1px solid rgba(var(--cx-hue-rgb),.55)!important;background:rgba(var(--cx-hue-rgb),.14)!important;
|
|
3157
|
+
color:var(--cx-cyan)!important;font-size:10px!important;line-height:24px;cursor:pointer;white-space:nowrap;
|
|
3158
|
+
box-shadow:none!important;
|
|
3159
|
+
}
|
|
3160
|
+
.cx-msg .cx-rc-btn:hover,.cx-rc-btn:hover{background:rgba(var(--cx-hue-rgb),.3)!important}
|
|
3161
|
+
|
|
3162
|
+
/* 失败后的常用调试工具条(编程 / 节点 / 空间 / 开发模式) */
|
|
3163
|
+
.cx-toolrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 8px}
|
|
3164
|
+
.cx-toolsel{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--cx-dim)}
|
|
3165
|
+
.cx-toolsel select{height:28px;padding:0 8px;border-radius:4px;border:1px solid var(--cx-line);background:var(--cx-panel);color:var(--cx-fg);font-size:12px}
|
|
3166
|
+
.cx-toolrow .cx-btn.sm{height:28px;padding:0 10px;font-size:12px}
|
|
3167
|
+
|
|
3168
|
+
/* 网页最大化:强制收起左右两栏(覆盖文件中部所有 display:flex!important) */
|
|
3169
|
+
.cx-shell .cx-chat.webmax .cx-pm-side,
|
|
3170
|
+
.cx-shell .cx-chat.webmax .cx-pm-side:not(.right),
|
|
3171
|
+
.cx-shell .cx-chat.webmax .cx-pm-side.right{display:none!important;width:0!important;min-width:0!important;padding:0!important;border:0!important}
|
|
3172
|
+
.cx-shell .cx-chat.webmax .cx-chat-b{max-width:none!important}
|
|
3173
|
+
|
|
3174
|
+
/* 网页聚焦:shell 级收起左右两栏(不依赖组件内部状态) */
|
|
3175
|
+
.cx-shell[data-webfocus="1"] .cx-pm-side{display:none!important;width:0!important;min-width:0!important;padding:0!important;border:0!important;overflow:hidden!important}
|
|
3176
|
+
/* 网页最大化:连对话框标题栏一起收起,只留标签栏 + 地址栏 */
|
|
3177
|
+
.cx-shell[data-webfocus="1"] .cx-chat-h{display:none!important}
|
|
3178
|
+
|
|
3179
|
+
/* 写数据的四步拆解 */
|
|
3180
|
+
.cx-step{display:flex;align-items:center;gap:6px;margin:4px 0 4px 34px;font-size:var(--cx-fs-body);color:var(--cx-text-faint,rgba(180,220,235,.6));letter-spacing:.04em}
|
|
3181
|
+
.cx-step::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--cx-cyan,#3fd0d8);opacity:.75;flex:none}
|
|
3182
|
+
.cx-shell[data-theme="light"] .cx-step{color:#5e7f8d}
|
|
3183
|
+
|
|
3184
|
+
/* 应用/功能只读表格 */
|
|
3185
|
+
.cx-dtable{border:1px solid var(--cx-line,rgba(120,200,220,.18));border-radius:8px;overflow:hidden;margin:6px 0;background:rgba(8,24,34,.35)}
|
|
3186
|
+
.cx-dtable-h{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;font-size:var(--cx-fs-body);color:var(--cx-text-dim,#9fc4d2);border-bottom:1px solid var(--cx-line,rgba(120,200,220,.14))}
|
|
3187
|
+
.cx-dtable-h .n{color:var(--cx-cyan,#3fd0d8)}
|
|
3188
|
+
.cx-dtable-wrap{max-height:320px;overflow:auto}
|
|
3189
|
+
.cx-dtable table{width:100%;border-collapse:collapse;font-size:var(--cx-fs-body)}
|
|
3190
|
+
.cx-dtable th,.cx-dtable td{padding:6px 10px;text-align:left;white-space:nowrap;border-bottom:1px solid rgba(120,200,220,.08)}
|
|
3191
|
+
.cx-dtable th{color:var(--cx-text-faint,rgba(180,220,235,.6));font-weight:400;position:sticky;top:0;background:rgba(8,24,34,.9)}
|
|
3192
|
+
.cx-shell[data-theme="light"] .cx-dtable{background:#fff}
|
|
3193
|
+
.cx-shell[data-theme="light"] .cx-dtable th{background:#f4fafc}
|
|
3194
|
+
|
|
3195
|
+
/* 含表单的消息:整条铺满,参数不被气泡挤窄 */
|
|
3196
|
+
.cx-msg:has(.cx-wform),
|
|
3197
|
+
.cx-chat.full .cx-msg:has(.cx-wform){max-width:100%!important;width:100%!important}
|
|
3198
|
+
.cx-msg:has(.cx-wform) .cx-msg-main,
|
|
3199
|
+
.cx-msg:has(.cx-wform) .cx-msg-body{width:100%!important;min-width:0}
|
|
3200
|
+
.cx-msg .cx-wform{width:100%!important;max-width:none!important}
|
|
3201
|
+
.cx-wform-row .k{width:120px;flex:none}
|
|
3202
|
+
.cx-wform-row .cx-wform-input,.cx-wform-row input,.cx-wform-row textarea,.cx-wform-row select{min-width:0;flex:1;width:auto}
|
|
3203
|
+
|
|
3204
|
+
/* 含表单的消息:右边留白,不贴满 */
|
|
3205
|
+
.cx-msg:has(.cx-wform),
|
|
3206
|
+
.cx-chat.full .cx-msg:has(.cx-wform){max-width:calc(100% - 32px)!important;width:calc(100% - 32px)!important;margin-right:32px}
|
|
3207
|
+
|
|
3208
|
+
/* 统一消息最大宽度:表单与普通消息同宽,表单占满该消息 */
|
|
3209
|
+
.cx-msg,
|
|
3210
|
+
.cx-chat.full .cx-msg,
|
|
3211
|
+
.cx-msg:has(.cx-wform),
|
|
3212
|
+
.cx-chat.full .cx-msg:has(.cx-wform){max-width:92%!important;width:auto!important;margin-right:0!important}
|
|
3213
|
+
.cx-msg:has(.cx-wform),
|
|
3214
|
+
.cx-chat.full .cx-msg:has(.cx-wform){width:92%!important}
|
|
3215
|
+
.cx-msg .cx-wform{width:100%!important;max-width:none!important}
|
|
3216
|
+
|
|
3217
|
+
/* 执行状态行:与输入框同一容器、同一左基线 */
|
|
3218
|
+
.cx-chat-typing{width:calc(100% - 36px);max-width:1080px;box-sizing:border-box;margin:0 auto;padding:2px 15px 4px}
|
|
3219
|
+
|
|
3220
|
+
/* 上下文菜单右侧的「是否已打开」状态点 */
|
|
3221
|
+
.cx-menu-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(var(--cx-hue-rgb),.28)}
|
|
3222
|
+
.cx-menu-dot.open{background:var(--cx-green,#42f5a7);box-shadow:0 0 6px rgba(66,245,167,.6)}
|
|
3223
|
+
|
|
3224
|
+
/* 菜单分隔线:常用工具与危险操作之间 */
|
|
3225
|
+
.cx-menu-sep{height:1px;margin:4px 8px;background:rgba(var(--cx-hue-rgb),.18)}
|
|
3226
|
+
.cx-menu-item.danger .cx-menu-lbl{color:#ff6b6b}
|
|
3227
|
+
.cx-menu-item.danger svg{color:#ff6b6b}
|
|
3228
|
+
|
|
3229
|
+
/* 节点/空间卡:加宽一档;标题与副标题都只占一行,超出省略,悬停看完整 */
|
|
3230
|
+
/* 服务节点与项目空间等宽,两边都能完整显示副标题 */
|
|
3231
|
+
.cx-body{grid-template-columns:minmax(320px,1fr) minmax(320px,1fr) minmax(250px,.92fr) minmax(360px,1.6fr)}
|
|
3232
|
+
.cx-node .cx-entity-meta,.cx-space .cx-entity-meta{height:14px;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}
|
|
3233
|
+
.cx-node .cx-entity-name,.cx-space .cx-entity-name{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}
|
|
3234
|
+
|
|
3235
|
+
/* 标题后面的时间(最近应用) */
|
|
3236
|
+
.cx-entity-time{flex:none;margin-left:6px;font-size:10px;color:var(--cx-muted);letter-spacing:.02em;white-space:nowrap}
|
|
3237
|
+
|
|
3238
|
+
/* 详情:键值两列 */
|
|
3239
|
+
.cx-dtable-kv th{width:150px;text-align:left;font-weight:500;color:var(--cx-mut);white-space:nowrap}
|
|
3240
|
+
.cx-dtable-kv td{color:var(--cx-fg)}
|
|
3241
|
+
|
|
3242
|
+
/* ===== 监控看板(Grafana 风格面板) ===== */
|
|
3243
|
+
.cx-mon-board{margin:0 0 14px}
|
|
3244
|
+
.cx-mon-board-h{display:flex;align-items:center;gap:10px;padding:0 0 8px}
|
|
3245
|
+
.cx-mon-board-h .t{font-size:12px;letter-spacing:.12em;color:var(--cx-cyan)}
|
|
3246
|
+
.cx-mon-board-h .s{font-size:10px;color:var(--cx-mut)}
|
|
3247
|
+
.cx-mon-board-h .cx-btn{margin-left:auto}
|
|
3248
|
+
.cx-mon-board-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}
|
|
3249
|
+
.cx-mon-bo{min-height:120px}
|
|
3250
|
+
.cx-mon-bo-act{margin-left:auto;display:flex;gap:4px}
|
|
3251
|
+
.cx-mon-bo-body{padding:8px 4px 2px;min-height:64px}
|
|
3252
|
+
.cx-mon-stat{display:flex;align-items:baseline;gap:8px}
|
|
3253
|
+
.cx-mon-stat b{font-size:22px;color:var(--cx-fg);font-variant-numeric:tabular-nums}
|
|
3254
|
+
.cx-mon-stat b.sm{font-size:12px;font-weight:500}
|
|
3255
|
+
.cx-mon-stat span{font-size:10px;color:var(--cx-mut)}
|
|
3256
|
+
.cx-mon-tbl .h,.cx-mon-tbl .r{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;font-size:10px;padding:3px 0;border-bottom:1px solid rgba(var(--cx-hue-rgb),.10)}
|
|
3257
|
+
.cx-mon-tbl .h{color:var(--cx-mut);text-transform:uppercase;letter-spacing:.06em}
|
|
3258
|
+
.cx-mon-tbl .r{color:var(--cx-fg);white-space:nowrap;overflow:hidden}
|
|
3259
|
+
.cx-mon-kv div{display:flex;justify-content:space-between;font-size:10px;padding:2px 0;border-bottom:1px solid rgba(var(--cx-hue-rgb),.08)}
|
|
3260
|
+
.cx-mon-kv span{color:var(--cx-mut)}
|
|
3261
|
+
.cx-mon-kv b{color:var(--cx-fg);font-weight:500;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3262
|
+
.cx-mon-frame{width:100%;height:220px;border:1px solid rgba(var(--cx-hue-rgb),.18);border-radius:6px;background:#fff}
|
|
3263
|
+
.cx-mon-empty.err{color:var(--cx-rose)}
|
|
3264
|
+
.cx-mon-ed{position:fixed;right:24px;bottom:24px;width:340px;max-height:70vh;overflow:auto;z-index:4000;padding:12px;border-radius:8px;background:var(--cx-panel);border:1px solid rgba(var(--cx-hue-rgb),.35);box-shadow:0 16px 48px rgba(0,0,0,.45);display:flex;flex-direction:column;gap:8px}
|
|
3265
|
+
.cx-mon-ed-h{font-size:12px;color:var(--cx-cyan);letter-spacing:.08em}
|
|
3266
|
+
.cx-mon-ed label{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--cx-mut)}
|
|
3267
|
+
.cx-mon-ed input,.cx-mon-ed select{height:28px;padding:0 8px;font-size:12px;border-radius:4px;border:1px solid rgba(var(--cx-hue-rgb),.3);background:var(--cx-bg);color:var(--cx-fg);outline:0}
|
|
3268
|
+
.cx-mon-ed-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
|
|
3269
|
+
.cx-mon-ed-f{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}
|
|
3270
|
+
|
|
3271
|
+
/* 输入框上方:可点击的提示词 */
|
|
3272
|
+
.cx-hint{flex-wrap:nowrap}
|
|
3273
|
+
.cx-hint-name{flex:none;font-size:var(--cx-fs-body);color:var(--cx-cyan);letter-spacing:.06em;max-width:32%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3274
|
+
.cx-hint-quick{flex:1;min-width:0;display:flex;gap:6px;overflow:hidden}
|
|
3275
|
+
.cx-hint-chip{flex:none;height:24px;padding:0 9px;border:1px solid rgba(0,212,255,.28);background:rgba(0,212,255,.07);color:#bfe9f7;border-radius:12px;font-family:var(--cx-font);font-size:10px;line-height:22px;cursor:pointer;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
|
|
3276
|
+
.cx-hint-chip:hover{border-color:var(--cx-cyan);background:rgba(0,212,255,.16);color:#eafcff}
|
|
3277
|
+
|
|
3278
|
+
/* 实时过程行 */
|
|
3279
|
+
.cx-live{display:flex;align-items:center;gap:8px;padding:6px 2px;color:#8fc7da;font-size:10px;letter-spacing:.04em}
|
|
3280
|
+
.cx-live-dot{width:6px;height:6px;border-radius:50%;background:var(--cx-cyan);box-shadow:0 0 8px var(--cx-cyan);animation:cx-pulse 1.1s ease-in-out infinite}
|
|
3281
|
+
@keyframes cx-pulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
|
|
3282
|
+
.cx-live-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
3283
|
+
|
|
3284
|
+
/* 请求上下文面板 */
|
|
3285
|
+
.cx-trace-mask{position:fixed;inset:0;background:rgba(2,10,16,.62);backdrop-filter:blur(2px);z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px}
|
|
3286
|
+
.cx-trace{width:min(980px,94vw);max-height:86vh;display:flex;flex-direction:column;background:#05121c;border:1px solid rgba(0,212,255,.28);border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.55)}
|
|
3287
|
+
.cx-trace-h{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(0,212,255,.18);font-size:12px;color:#dff6ff}
|
|
3288
|
+
.cx-trace-sub{flex:1;font-size:10px;color:#7d9bb0}
|
|
3289
|
+
.cx-trace-x{border:0;background:transparent;color:#8fc7da;cursor:pointer;font-size:12px}
|
|
3290
|
+
.cx-trace-b{flex:1;overflow:auto;padding:6px 14px 12px}
|
|
3291
|
+
.cx-trace-sec{margin-top:8px}
|
|
3292
|
+
.cx-trace-k{font-size:10px;color:var(--cx-cyan);letter-spacing:.08em;margin-bottom:4px}
|
|
3293
|
+
.cx-trace-code{margin:0;padding:8px 10px;background:#04101a;border:1px solid rgba(0,212,255,.14);border-radius:6px;font-size:10px;line-height:1.55;color:#bfe9f7;white-space:pre-wrap;word-break:break-all;max-height:260px;overflow:auto}
|
|
3294
|
+
.cx-trace-f{display:flex;justify-content:flex-end;padding:8px 14px;border-top:1px solid rgba(0,212,255,.18)}
|