1+ /* JDBC Simulator Styles */
2+
3+ .container {
4+ width : 100% ;
5+ height : 100% ;
6+ padding : var (--space-6 );
7+ overflow-y : auto;
8+ background-color : var (--color-bg-primary );
9+ }
10+
11+ .grid {
12+ display : grid;
13+ grid-template-columns : repeat (auto-fit, minmax (320px , 1fr ));
14+ gap : var (--space-6 );
15+ max-width : 1200px ;
16+ margin : 0 auto;
17+ }
18+
19+ /* Panel */
20+ .panel {
21+ background-color : var (--color-bg-secondary );
22+ border : 1px solid var (--color-border-default );
23+ border-radius : var (--radius-xl );
24+ padding : var (--space-6 );
25+ }
26+
27+ .panelTitle {
28+ font-size : var (--text-xl );
29+ font-weight : 700 ;
30+ color : var (--color-text-primary );
31+ margin : 0 0 var (--space-1 ) 0 ;
32+ }
33+
34+ .panelSubtitle {
35+ font-size : var (--text-sm );
36+ color : var (--color-text-muted );
37+ margin : 0 0 var (--space-4 ) 0 ;
38+ }
39+
40+ /* Pool Stats */
41+ .poolStats {
42+ display : flex;
43+ gap : var (--space-4 );
44+ margin-bottom : var (--space-4 );
45+ }
46+
47+ .stat {
48+ flex : 1 ;
49+ text-align : center;
50+ background-color : rgba (34 , 211 , 238 , 0.1 );
51+ border-radius : var (--radius-lg );
52+ padding : var (--space-3 );
53+ }
54+
55+ .statValue {
56+ display : block;
57+ font-size : var (--text-2xl );
58+ font-weight : 800 ;
59+ color : # 22d3ee ;
60+ }
61+
62+ .statLabel {
63+ font-size : var (--text-xs );
64+ color : var (--color-text-muted );
65+ }
66+
67+ /* Connections Grid */
68+ .connectionsGrid {
69+ display : grid;
70+ grid-template-columns : repeat (auto-fill, minmax (80px , 1fr ));
71+ gap : var (--space-2 );
72+ margin-bottom : var (--space-4 );
73+ }
74+
75+ .connection {
76+ background-color : rgba (255 , 255 , 255 , 0.05 );
77+ border : 2px solid var (--color-border-default );
78+ border-radius : var (--radius-md );
79+ padding : var (--space-2 );
80+ text-align : center;
81+ cursor : pointer;
82+ transition : all 0.2s ease;
83+ }
84+
85+ .connection .idle {
86+ border-color : # 22d3ee ;
87+ background-color : rgba (34 , 211 , 238 , 0.1 );
88+ }
89+
90+ .connection .inUse {
91+ border-color : # 86efac ;
92+ background-color : rgba (134 , 239 , 172 , 0.1 );
93+ }
94+
95+ .connection .inUse : hover {
96+ background-color : rgba (134 , 239 , 172 , 0.2 );
97+ }
98+
99+ .connId {
100+ display : block;
101+ font-weight : 700 ;
102+ font-size : var (--text-sm );
103+ color : var (--color-text-primary );
104+ }
105+
106+ .connStatus {
107+ display : block;
108+ font-size : var (--text-xs );
109+ color : var (--color-text-muted );
110+ text-transform : uppercase;
111+ }
112+
113+ .connUser {
114+ display : block;
115+ font-size : var (--text-xs );
116+ color : # 86efac ;
117+ margin-top : var (--space-1 );
118+ }
119+
120+ /* Action Buttons */
121+ .actionBtn {
122+ width : 100% ;
123+ padding : var (--space-3 );
124+ background-color : # 22d3ee ;
125+ color : # 0f172a ;
126+ border : none;
127+ border-radius : var (--radius-md );
128+ font-weight : 700 ;
129+ cursor : pointer;
130+ transition : background-color 0.2s ;
131+ }
132+
133+ .actionBtn : hover {
134+ background-color : # 06b6d4 ;
135+ }
136+
137+ /* Query Input */
138+ .queryInput ,
139+ .paramInput {
140+ margin-bottom : var (--space-3 );
141+ }
142+
143+ .queryInput label ,
144+ .paramInput label {
145+ display : block;
146+ font-size : var (--text-sm );
147+ color : var (--color-text-muted );
148+ margin-bottom : var (--space-1 );
149+ }
150+
151+ .queryInput textarea {
152+ width : 100% ;
153+ background-color : # 0a0a0a ;
154+ border : 1px solid var (--color-border-default );
155+ border-radius : var (--radius-md );
156+ padding : var (--space-3 );
157+ font-family : var (--font-mono );
158+ font-size : var (--text-sm );
159+ color : # e2e8f0 ;
160+ resize : none;
161+ }
162+
163+ .paramInput input {
164+ width : 100% ;
165+ background-color : # 0a0a0a ;
166+ border : 1px solid var (--color-border-default );
167+ border-radius : var (--radius-md );
168+ padding : var (--space-2 ) var (--space-3 );
169+ font-family : var (--font-mono );
170+ font-size : var (--text-sm );
171+ color : # e2e8f0 ;
172+ }
173+
174+ .executeBtn {
175+ width : 100% ;
176+ padding : var (--space-3 );
177+ background-color : # 86efac ;
178+ color : # 0f172a ;
179+ border : none;
180+ border-radius : var (--radius-md );
181+ font-weight : 700 ;
182+ cursor : pointer;
183+ transition : background-color 0.2s ;
184+ margin-bottom : var (--space-3 );
185+ }
186+
187+ .executeBtn : hover {
188+ background-color : # 4ade80 ;
189+ }
190+
191+ .securityNote {
192+ font-size : var (--text-xs );
193+ color : var (--color-text-muted );
194+ background-color : rgba (255 , 255 , 255 , 0.03 );
195+ border-radius : var (--radius-md );
196+ padding : var (--space-2 );
197+ }
198+
199+ /* Transaction Status */
200+ .txStatus {
201+ display : flex;
202+ align-items : center;
203+ gap : var (--space-3 );
204+ margin-bottom : var (--space-4 );
205+ padding : var (--space-3 );
206+ background-color : rgba (255 , 255 , 255 , 0.03 );
207+ border-radius : var (--radius-md );
208+ }
209+
210+ .txLabel {
211+ color : var (--color-text-muted );
212+ font-size : var (--text-sm );
213+ }
214+
215+ .txOn {
216+ color : # 86efac ;
217+ font-weight : 700 ;
218+ }
219+
220+ .txOff {
221+ color : # fcd34d ;
222+ font-weight : 700 ;
223+ }
224+
225+ /* Transaction Buttons */
226+ .txButtons {
227+ display : flex;
228+ gap : var (--space-2 );
229+ margin-bottom : var (--space-4 );
230+ }
231+
232+ .beginBtn ,
233+ .commitBtn ,
234+ .rollbackBtn {
235+ flex : 1 ;
236+ padding : var (--space-2 );
237+ border : none;
238+ border-radius : var (--radius-md );
239+ font-weight : 700 ;
240+ font-size : var (--text-sm );
241+ cursor : pointer;
242+ transition : all 0.2s ;
243+ }
244+
245+ .beginBtn {
246+ background-color : # 60a5fa ;
247+ color : white;
248+ }
249+
250+ .beginBtn : hover : not (: disabled ) {
251+ background-color : # 3b82f6 ;
252+ }
253+
254+ .commitBtn {
255+ background-color : # 86efac ;
256+ color : # 0f172a ;
257+ }
258+
259+ .commitBtn : hover : not (: disabled ) {
260+ background-color : # 4ade80 ;
261+ }
262+
263+ .rollbackBtn {
264+ background-color : # f87171 ;
265+ color : white;
266+ }
267+
268+ .rollbackBtn : hover : not (: disabled ) {
269+ background-color : # ef4444 ;
270+ }
271+
272+ .beginBtn : disabled ,
273+ .commitBtn : disabled ,
274+ .rollbackBtn : disabled {
275+ opacity : 0.4 ;
276+ cursor : not-allowed;
277+ }
278+
279+ /* Transaction Log */
280+ .txLog {
281+ background-color : # 0a0a0a ;
282+ border : 1px solid var (--color-border-default );
283+ border-radius : var (--radius-md );
284+ padding : var (--space-3 );
285+ }
286+
287+ .txLog h4 {
288+ margin : 0 0 var (--space-2 ) 0 ;
289+ font-size : var (--text-sm );
290+ color : var (--color-text-muted );
291+ }
292+
293+ .logEntry {
294+ display : flex;
295+ gap : var (--space-2 );
296+ align-items : center;
297+ padding : var (--space-1 ) 0 ;
298+ border-bottom : 1px solid var (--color-border-default );
299+ }
300+
301+ .logEntry : last-child {
302+ border-bottom : none;
303+ }
304+
305+ .logTime {
306+ font-size : var (--text-xs );
307+ color : var (--color-text-muted );
308+ font-family : var (--font-mono );
309+ }
310+
311+ .logOp {
312+ flex : 1 ;
313+ font-size : var (--text-xs );
314+ color : var (--color-text-secondary );
315+ }
316+
317+ .logStatus {
318+ font-size : var (--text-xs );
319+ font-weight : 700 ;
320+ text-transform : uppercase;
321+ }
322+
323+ .logEntry .pending .logStatus {
324+ color : # fcd34d ;
325+ }
326+
327+ .logEntry .committed .logStatus {
328+ color : # 86efac ;
329+ }
330+
331+ .logEntry .rolled_back .logStatus {
332+ color : # f87171 ;
333+ }
0 commit comments