linny-r 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +312 -0
  3. package/console.js +973 -0
  4. package/package.json +32 -0
  5. package/server.js +1547 -0
  6. package/static/fonts/FantasqueSansMono-Bold.ttf +0 -0
  7. package/static/fonts/FantasqueSansMono-BoldItalic.ttf +0 -0
  8. package/static/fonts/FantasqueSansMono-Italic.ttf +0 -0
  9. package/static/fonts/FantasqueSansMono-Regular.ttf +0 -0
  10. package/static/fonts/Hack-Bold.ttf +0 -0
  11. package/static/fonts/Hack-BoldItalic.ttf +0 -0
  12. package/static/fonts/Hack-Italic.ttf +0 -0
  13. package/static/fonts/Hack-Regular.ttf +0 -0
  14. package/static/fonts/Lato-Bold.ttf +0 -0
  15. package/static/fonts/Lato-BoldItalic.ttf +0 -0
  16. package/static/fonts/Lato-Italic.ttf +0 -0
  17. package/static/fonts/Lato-Regular.ttf +0 -0
  18. package/static/fonts/mplus-1m-bold.ttf +0 -0
  19. package/static/fonts/mplus-1m-light.ttf +0 -0
  20. package/static/fonts/mplus-1m-medium.ttf +0 -0
  21. package/static/fonts/mplus-1m-regular.ttf +0 -0
  22. package/static/fonts/mplus-1m-thin.ttf +0 -0
  23. package/static/images/access.png +0 -0
  24. package/static/images/actor.png +0 -0
  25. package/static/images/actors.png +0 -0
  26. package/static/images/add-selector.png +0 -0
  27. package/static/images/add.png +0 -0
  28. package/static/images/back.png +0 -0
  29. package/static/images/black-box.png +0 -0
  30. package/static/images/by-sa.svg +74 -0
  31. package/static/images/cancel.png +0 -0
  32. package/static/images/chart.png +0 -0
  33. package/static/images/check-disab.png +0 -0
  34. package/static/images/check-off.png +0 -0
  35. package/static/images/check-on.png +0 -0
  36. package/static/images/check-x.png +0 -0
  37. package/static/images/clone.png +0 -0
  38. package/static/images/close.png +0 -0
  39. package/static/images/cluster.png +0 -0
  40. package/static/images/compare.png +0 -0
  41. package/static/images/compress.png +0 -0
  42. package/static/images/constraint.png +0 -0
  43. package/static/images/copy.png +0 -0
  44. package/static/images/data-to-clpbrd.png +0 -0
  45. package/static/images/dataset.png +0 -0
  46. package/static/images/delete.png +0 -0
  47. package/static/images/diagram.png +0 -0
  48. package/static/images/down.png +0 -0
  49. package/static/images/edit-chart.png +0 -0
  50. package/static/images/edit.png +0 -0
  51. package/static/images/eq.png +0 -0
  52. package/static/images/equation.png +0 -0
  53. package/static/images/experiment.png +0 -0
  54. package/static/images/favicon.ico +0 -0
  55. package/static/images/fewer-dec.png +0 -0
  56. package/static/images/filter.png +0 -0
  57. package/static/images/find.png +0 -0
  58. package/static/images/forward.png +0 -0
  59. package/static/images/host-logo.png +0 -0
  60. package/static/images/icon.png +0 -0
  61. package/static/images/icon.svg +23 -0
  62. package/static/images/ignore.png +0 -0
  63. package/static/images/include.png +0 -0
  64. package/static/images/info-to-clpbrd.png +0 -0
  65. package/static/images/info.png +0 -0
  66. package/static/images/is-black-box.png +0 -0
  67. package/static/images/lbl.png +0 -0
  68. package/static/images/lift.png +0 -0
  69. package/static/images/link.png +0 -0
  70. package/static/images/linny-r.icns +0 -0
  71. package/static/images/linny-r.ico +0 -0
  72. package/static/images/linny-r.png +0 -0
  73. package/static/images/linny-r.svg +21 -0
  74. package/static/images/logo.png +0 -0
  75. package/static/images/model-info.png +0 -0
  76. package/static/images/module.png +0 -0
  77. package/static/images/monitor.png +0 -0
  78. package/static/images/more-dec.png +0 -0
  79. package/static/images/ne.png +0 -0
  80. package/static/images/new.png +0 -0
  81. package/static/images/note.png +0 -0
  82. package/static/images/ok.png +0 -0
  83. package/static/images/open.png +0 -0
  84. package/static/images/outcome.png +0 -0
  85. package/static/images/parent.png +0 -0
  86. package/static/images/paste.png +0 -0
  87. package/static/images/pause.png +0 -0
  88. package/static/images/print-chart.png +0 -0
  89. package/static/images/print.png +0 -0
  90. package/static/images/process.png +0 -0
  91. package/static/images/product.png +0 -0
  92. package/static/images/pwlf.png +0 -0
  93. package/static/images/receiver.png +0 -0
  94. package/static/images/redo.png +0 -0
  95. package/static/images/remove.png +0 -0
  96. package/static/images/rename.png +0 -0
  97. package/static/images/repo-logo.png +0 -0
  98. package/static/images/repository.png +0 -0
  99. package/static/images/reset.png +0 -0
  100. package/static/images/resize.png +0 -0
  101. package/static/images/restore.png +0 -0
  102. package/static/images/save-chart.png +0 -0
  103. package/static/images/save-data.png +0 -0
  104. package/static/images/save-diagram.png +0 -0
  105. package/static/images/save.png +0 -0
  106. package/static/images/sensitivity.png +0 -0
  107. package/static/images/settings.png +0 -0
  108. package/static/images/solve.png +0 -0
  109. package/static/images/solver-logo.png +0 -0
  110. package/static/images/stats-to-clpbrd.png +0 -0
  111. package/static/images/stats.png +0 -0
  112. package/static/images/stop.png +0 -0
  113. package/static/images/store.png +0 -0
  114. package/static/images/stretch.png +0 -0
  115. package/static/images/table-to-clpbrd.png +0 -0
  116. package/static/images/table.png +0 -0
  117. package/static/images/tree.png +0 -0
  118. package/static/images/tudelft.png +0 -0
  119. package/static/images/ubl.png +0 -0
  120. package/static/images/undo.png +0 -0
  121. package/static/images/up.png +0 -0
  122. package/static/images/zoom-in.png +0 -0
  123. package/static/images/zoom-out.png +0 -0
  124. package/static/index.html +3088 -0
  125. package/static/linny-r.css +4722 -0
  126. package/static/scripts/iro.min.js +7 -0
  127. package/static/scripts/linny-r-config.js +105 -0
  128. package/static/scripts/linny-r-ctrl.js +1199 -0
  129. package/static/scripts/linny-r-gui.js +14814 -0
  130. package/static/scripts/linny-r-milp.js +286 -0
  131. package/static/scripts/linny-r-model.js +10405 -0
  132. package/static/scripts/linny-r-utils.js +687 -0
  133. package/static/scripts/linny-r-vm.js +7079 -0
  134. package/static/show-diff.html +84 -0
  135. package/static/show-png.html +113 -0
  136. package/static/sounds/error.wav +0 -0
  137. package/static/sounds/notification.wav +0 -0
  138. package/static/sounds/warning.wav +0 -0
@@ -0,0 +1,4722 @@
1
+ /*
2
+ Linny-R is an executable graphical specification language for (mixed integer)
3
+ linear programming (MILP) problems, especially unit commitment problems (UCP).
4
+ The Linny-R language and tool have been developed by Pieter Bots at Delft
5
+ University of Technology, starting in 2009. The project to develop a browser-
6
+ based version started in 2017. See https://linny-r.org for more information.
7
+
8
+ This Cascading Style Sheets file (linny-r.css) defines the styles for the HTML
9
+ file that implements the graphical user interface for Linny-R.
10
+ */
11
+
12
+ /*
13
+ Copyright (c) 2017-2022 Delft University of Technology
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights to
18
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
19
+ of the Software, and to permit persons to whom the Software is furnished to do
20
+ so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in
23
+ all copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
32
+ */
33
+
34
+ body {
35
+ display: initial;
36
+ }
37
+
38
+ body.waiting * { cursor: wait; }
39
+
40
+ @font-face {
41
+ font-family: Lato;
42
+ src: url(fonts/Lato-Regular.ttf);
43
+ }
44
+
45
+ @font-face {
46
+ font-family: Lato;
47
+ src: url(fonts/Lato-Bold.ttf);
48
+ font-weight: bold;
49
+ }
50
+
51
+ @font-face {
52
+ font-family: Lato;
53
+ src: url(fonts/Lato-Italic.ttf);
54
+ font-style: italic;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: Lato;
59
+ src: url(fonts/Lato-BoldItalic.ttf);
60
+ font-weight: bold;
61
+ font-style: italic;
62
+ }
63
+
64
+ @font-face {
65
+ font-family: Fantasque;
66
+ src: url(fonts/FantasqueSansMono-Regular.ttf);
67
+ }
68
+
69
+ @font-face {
70
+ font-family: Fantasque;
71
+ src: url(fonts/FantasqueSansMono-Bold.ttf);
72
+ font-weight: bold;
73
+ }
74
+
75
+ @font-face {
76
+ font-family: Fantasque;
77
+ src: url(fonts/FantasqueSansMono-Italic.ttf);
78
+ font-style: italic;
79
+ }
80
+
81
+ @font-face {
82
+ font-family: Fantasque;
83
+ src: url(fonts/FantasqueSansMono-BoldItalic.ttf);
84
+ font-weight: bold;
85
+ font-style: italic;
86
+ }
87
+
88
+ @font-face {
89
+ font-family: Hack;
90
+ src: url(fonts/Hack-Regular.ttf);
91
+ }
92
+
93
+ @font-face {
94
+ font-family: Hack;
95
+ src: url(fonts/Hack-Bold.ttf);
96
+ font-weight: bold;
97
+ }
98
+
99
+ @font-face {
100
+ font-family: Hack;
101
+ src: url(fonts/Hack-Italic.ttf);
102
+ font-style: italic;
103
+ }
104
+
105
+ @font-face {
106
+ font-family: Hack;
107
+ src: url(fonts/Hack-BoldItalic.ttf);
108
+ font-weight: bold;
109
+ font-style: italic;
110
+ }
111
+
112
+ @font-face {
113
+ font-family: Mplus;
114
+ src: url(fonts/mplus-1m-regular.ttf);
115
+ }
116
+
117
+ html, body {
118
+ margin: 0;
119
+ height: 100%;
120
+ min-height: 100%;
121
+ overflow: hidden;
122
+ font-family: Lato, Arial, Helvetica, sans-serif;
123
+ font-size: 12px;
124
+ -webkit-user-select: none;
125
+ -moz-user-select: none;
126
+ -ms-user-select: none;
127
+ -khtml-user-select: none;
128
+ user-select: none;
129
+ }
130
+
131
+ body {
132
+ display: flex;
133
+ flex-direction: column;
134
+ }
135
+
136
+ blockquote {
137
+ font-size: 10px;
138
+ margin-left: 9px;
139
+ padding-left: 3px;
140
+ border-left: solid 3px #bfc0e2;
141
+ }
142
+
143
+ header,
144
+ footer {
145
+ flex: none;
146
+ background-color: #f4f0f2;
147
+ }
148
+
149
+ header {
150
+ min-height: 38px;
151
+ }
152
+
153
+ footer {
154
+ margin-left: 30px;
155
+ }
156
+
157
+ main {
158
+ margin-left: 30px;
159
+ overflow: scroll;
160
+ -webkit-overflow-scrolling: touch;
161
+ flex: auto;
162
+ border-top: 1px solid #e2d8e8;
163
+ background-color: #faf8f9;
164
+ }
165
+
166
+ /* the chart container that holds the SVG paper in the main area */
167
+ #cc {
168
+ min-width: 100%;
169
+ min-height: 80vh;
170
+ background-color: #fdfeff;
171
+ overflow: hidden;
172
+ /* background-image: url(images/NOTICE.png); */
173
+ background-position: center;
174
+ background-size: contain;
175
+ background-repeat: no-repeat;
176
+ }
177
+
178
+ /* SVG with "rippling circles" positioned to keep top buttons accessible */
179
+ #solver-active {
180
+ width: 90vh;
181
+ height: 90vh;
182
+ margin: auto;
183
+ padding: 0;
184
+ position: absolute;
185
+ top: 35px;
186
+ left: calc(50vw - 45vh);
187
+ filter: opacity(0.5);
188
+ display: none;
189
+ }
190
+
191
+ #static-icon,
192
+ #rotating-icon {
193
+ position: absolute;
194
+ top: 3px;
195
+ left: 3px;
196
+ height: 40px;
197
+ width: 40px;
198
+ }
199
+
200
+ #rotating-icon {
201
+ display: none;
202
+ }
203
+
204
+ #linny-r-name {
205
+ position: absolute;
206
+ top: 5px;
207
+ left: 40px;
208
+ height: 20px;
209
+ margin: 5px 3px 3px 0px;
210
+ z-index: 1;
211
+ }
212
+
213
+ #linny-r-version-number {
214
+ position: absolute;
215
+ top: 26px;
216
+ left: 38px;
217
+ height: 8px;
218
+ padding: 2px;
219
+ font: 7px sans-serif;
220
+ font-style: oblique;
221
+ color: gray;
222
+ cursor: pointer;
223
+ }
224
+
225
+ #topbar {
226
+ display: inline-block;
227
+ margin-left: 200px;
228
+ margin-top: 5px;
229
+ }
230
+
231
+ #host-logo {
232
+ height: 25px;
233
+ margin: 3px;
234
+ }
235
+
236
+ img.local-server {
237
+ cursor: pointer;
238
+ }
239
+
240
+ img.local-server:hover {
241
+ filter: brightness(150%);
242
+ }
243
+
244
+ img.btn {
245
+ width: 26px;
246
+ height: 26px;
247
+ margin: 1px;
248
+ border-radius: 3px;
249
+ vertical-align: middle;
250
+ }
251
+
252
+ img.sep {
253
+ margin-bottom: 13px;
254
+ }
255
+
256
+ img.enab {
257
+ cursor: pointer;
258
+ }
259
+
260
+ img.enab:hover {
261
+ background-color: #bfc0e2;
262
+ }
263
+
264
+ img.disab {
265
+ filter: grayscale(100%) brightness(180%) contrast(60%);
266
+ }
267
+
268
+ img.activ {
269
+ background-color: #9e96e5;
270
+ }
271
+
272
+ img.stay-activ {
273
+ background-color: #cc88b0;
274
+ }
275
+
276
+ img.off {
277
+ display: none !important;
278
+ }
279
+
280
+ @keyframes blink {
281
+ 50% {
282
+ opacity: 0.5;
283
+ }
284
+ }
285
+
286
+ img.blink {
287
+ animation: blink 1s step-start 0s infinite;
288
+ }
289
+
290
+ img.mbtn {
291
+ width: 21px;
292
+ height: 21px;
293
+ margin: 1px 2px;
294
+ border-radius: 2px;
295
+ vertical-align: top;
296
+ }
297
+
298
+ img.sbtn {
299
+ width: 16px;
300
+ height: 16px;
301
+ margin: 1px 2px;
302
+ border-radius: 2px;
303
+ vertical-align: middle;
304
+ }
305
+
306
+ img.sbtn.senab:hover {
307
+ filter: brightness(150%);
308
+ }
309
+
310
+ div.eqbtn {
311
+ background-image: url('images/eq.png');
312
+ background-size: contain;
313
+ background-repeat: no-repeat;
314
+ cursor: pointer;
315
+ }
316
+
317
+ div.eqbtn:hover,
318
+ div.intbtn:hover {
319
+ filter: brightness(120%);
320
+ }
321
+
322
+ div.nebtn {
323
+ background-image: url('images/ne.png');
324
+ background-size: contain;
325
+ background-repeat: no-repeat;
326
+ cursor: pointer;
327
+ }
328
+
329
+ div.nebtn:hover,
330
+ div.contbtn:hover {
331
+ filter: brightness(110%);
332
+ }
333
+
334
+ div.intbtn {
335
+ background-image: url('images/integer-on.png');
336
+ background-size: contain;
337
+ background-repeat: no-repeat;
338
+ cursor: pointer;
339
+ }
340
+
341
+ div.contbtn {
342
+ background-image: url('images/integer-off.png');
343
+ background-size: contain;
344
+ background-repeat: no-repeat;
345
+ cursor: pointer;
346
+ }
347
+
348
+ input {
349
+ vertical-align: baseline;
350
+ }
351
+
352
+ input[type="text"],
353
+ input[type="password"] {
354
+ height: 18px !important;
355
+ /* prevent overrun in Safari */
356
+ border-width: thin !important;
357
+ padding: 0;
358
+ border-radius: 0;
359
+ font-size: 14px;
360
+ }
361
+
362
+ input[type="text"]:disabled {
363
+ background-color: #f4f0f2;
364
+ }
365
+
366
+ textarea {
367
+ /* prevent overrun in Safari */
368
+ box-sizing: border-box !important;
369
+ resize: none;
370
+ }
371
+
372
+ /* the vertical side bar with editing buttons on the left-hand side of the browser window */
373
+ #sidebar {
374
+ position: fixed;
375
+ top: 38px;
376
+ left: 0;
377
+ width: 30px;
378
+ height: inherit;
379
+ background-color: #f4f0f2;
380
+ border-right: 1px solid #e2d8e8;
381
+ }
382
+
383
+ /* the horizontal status bar at the bottom of the browser window */
384
+ /* NOTE: a similar status bar (having its own X and Y coordinates) is shown at the bottom of the dynamic bounds editor */
385
+ #statusbar,
386
+ #db-statusbar {
387
+ border: 1px solid #e2d8e8;
388
+ border-collapse: collapse;
389
+ }
390
+
391
+ #pos-x,
392
+ #pos-y,
393
+ #db-pos-x,
394
+ #db-pos-y {
395
+ min-width: 51px;
396
+ padding-left: 4px;
397
+ padding-right: 4px;
398
+ }
399
+
400
+ #zoom {
401
+ min-width: 32px;
402
+ text-align: center;
403
+ }
404
+
405
+ #step {
406
+ min-width: 32px;
407
+ text-align: center;
408
+ }
409
+
410
+ #pos-y,
411
+ #db-pos-y,
412
+ #zoom-sep,
413
+ #step-sep,
414
+ #info-line,
415
+ #autosave-sep {
416
+ border-right: 1px solid #e2d8e8;
417
+ }
418
+
419
+ #info-line,
420
+ #db-equation {
421
+ width: 100%;
422
+ }
423
+
424
+ #recall-btn {
425
+ min-width: 14px;
426
+ background-image: url(images/info.png);
427
+ background-size: contain;
428
+ background-position: center;
429
+ background-repeat: no-repeat;
430
+ cursor: pointer;
431
+ }
432
+
433
+ #recall-btn:hover {
434
+ filter: brightness(1.3);
435
+ }
436
+
437
+ #set-up-progress {
438
+ width: 100%;
439
+ height: 1.5px;
440
+ background-color: #e8e8e8;
441
+ }
442
+
443
+ #set-up-progress-bar {
444
+ height: 100%;
445
+ width: 0%;
446
+ background-color: #500080;
447
+ }
448
+
449
+ div.error-time,
450
+ div.warning-time,
451
+ div.notification-time {
452
+ display: inline-block;
453
+ font: 9px monospace;
454
+ width: 50px;
455
+ vertical-align: top;
456
+ padding-top: 4px;
457
+ }
458
+
459
+ div.error-time {
460
+ color: red;
461
+ }
462
+
463
+ div.warning-time {
464
+ color: orange;
465
+ }
466
+
467
+ div.notification-time {
468
+ color: #0040f0;
469
+ }
470
+
471
+ div.error-msg,
472
+ div.warning-msg,
473
+ div.notification-msg {
474
+ display: inline-block;
475
+ max-width: calc(100% - 65px);
476
+ }
477
+
478
+ div.error-msg {
479
+ color: #c00000;
480
+ }
481
+
482
+ div.warning-msg {
483
+ color: #806040;
484
+ }
485
+
486
+ div.notification-msg {
487
+ color: #0060a0;
488
+ }
489
+
490
+ #info-line.error,
491
+ div.error-msg.first-msg {
492
+ background: Orange;
493
+ font-weight: bold;
494
+ color: black;
495
+ }
496
+
497
+ #info-line.warning,
498
+ div.warning-msg.first-msg {
499
+ background: Yellow;
500
+ color: black;
501
+ }
502
+
503
+ #info-line.notification,
504
+ div.notification-msg.first-msg {
505
+ background: SkyBlue;
506
+ color: black;
507
+ }
508
+
509
+ /* Modal dialogs cover the entire browser window with a dark,
510
+ semi-transparent DIV that ignores mouse events. Their z-index
511
+ is 100+ so that they cover "stay-on-top" dialogs. */
512
+ div.modal {
513
+ display: none;
514
+ position: fixed;
515
+ z-index: 100;
516
+ left: 0;
517
+ top: 0;
518
+ width: 100%;
519
+ height: 100%;
520
+ overflow: auto;
521
+ background-color: rgba(0, 0, 0, 0.1);
522
+ }
523
+
524
+ /* on top of the "modal layer", modal dialogs appear in the center of
525
+ the browser window */
526
+ div.inp-dlg {
527
+ position: absolute;
528
+ top: 0;
529
+ bottom: 0;
530
+ left: 0;
531
+ right: 0;
532
+ margin: auto;
533
+ border-radius: 4px;
534
+ border: 1px solid #400080;
535
+ box-shadow: 0 0 3px rgb(0, 0, 0, 0.5);
536
+ background-color: #f4f0f2;
537
+ }
538
+
539
+ div.dlg-title {
540
+ background-color: #c0c0e0;
541
+ border-radius: 3.3px 3.3px 0pt 0pt;
542
+ padding: 3px;
543
+ font-weight: 700;
544
+ white-space: nowrap;
545
+ }
546
+
547
+ /* all input dialogs have an OK button and a CANCEL button,
548
+ stay-on-top dialogs have a CLOSE button */
549
+ img.ok-btn,
550
+ img.cancel-btn,
551
+ img.close-btn,
552
+ img.info-btn {
553
+ width: 17px;
554
+ height: 17px;
555
+ margin-left: 4px;
556
+ margin-top: -1px;
557
+ float: right;
558
+ cursor: pointer;
559
+ }
560
+
561
+ /* To appear responsive to cursor, buttons change brightness */
562
+ img.ok-btn:hover,
563
+ img.inline-ok-btn:hover,
564
+ img.close-btn:hover,
565
+ img.info-btn:hover {
566
+ filter: brightness(130%);
567
+ }
568
+
569
+ img.cancel-btn,
570
+ img.inline-cancel-btn {
571
+ filter: brightness(85%);
572
+ }
573
+
574
+ img.cancel-btn:hover,
575
+ img.inline-cancel-btn:hover {
576
+ filter: brightness(120%);
577
+ }
578
+
579
+ /* CHECK BOX styles
580
+ NOTE: separate style names `abox` and `vbox` so that different events can be
581
+ bound dynamically to actor check boxes */
582
+ div.box,
583
+ div.abox,
584
+ div.vbox {
585
+ display: inline-block;
586
+ filter: brightness(95%);
587
+ width: 16px;
588
+ height: 16px;
589
+ margin: 2px;
590
+ margin-bottom: 0px;
591
+ cursor: pointer;
592
+ }
593
+
594
+ div.box:hover,
595
+ div.abox:hover,
596
+ div.vbox:hover {
597
+ filter: brightness(105%);
598
+ }
599
+
600
+ div.clear {
601
+ background-size: contain;
602
+ background-image: url('images/check-off.png');
603
+ }
604
+
605
+ div.checked {
606
+ background-size: contain;
607
+ background-image: url('images/check-on.png');
608
+ }
609
+
610
+ div.crossed {
611
+ background-size: contain;
612
+ background-image: url('images/check-x.png');
613
+ }
614
+
615
+ div.disab {
616
+ background-size: contain;
617
+ background-image: url('images/check-disab.png');
618
+ }
619
+
620
+ /* NOTE: the name of the focal cluster is displayed to the right of
621
+ the top bar buttons */
622
+ #focal-cluster {
623
+ display: inline-block;
624
+ margin-left: 50px;
625
+ }
626
+
627
+ #focal-name {
628
+ font: 10pt sans-serif;
629
+ display: inline-block;
630
+ max-width: 60vw;
631
+ vertical-align: middle;
632
+ cursor: pointer;
633
+ }
634
+
635
+ /* LOGON modal dialog */
636
+ #logon-dlg {
637
+ width: 303px;
638
+ height: min-content;
639
+ }
640
+
641
+ /* LOAD modal dialog */
642
+ #load-dlg,
643
+ #comparison-dlg {
644
+ width: 430px;
645
+ height: min-content;
646
+ overflow: hidden;
647
+ }
648
+
649
+ #load-xml-file,
650
+ #comparison-xml-file {
651
+ padding: 2px;
652
+ max-width: 375px;
653
+ overflow: hidden;
654
+ }
655
+
656
+ #load-autosaved-btn {
657
+ position: absolute;
658
+ right: 2px;
659
+ top: 23px;
660
+ height: 20px;
661
+ width: 20px;
662
+ display: none;
663
+ }
664
+
665
+ #autosave-btn {
666
+ height: 15px;
667
+ width: 15px;
668
+ }
669
+
670
+ #restore-dlg {
671
+ width: 440px;
672
+ max-height: 219px;
673
+ }
674
+
675
+ #restore-scroll-area {
676
+ position: absolute;
677
+ top: 24px;
678
+ left: 2px;
679
+ width: calc(100% - 4px);
680
+ max-height: 190px;
681
+ overflow-x: clip;
682
+ overflow-y: auto;
683
+ border-top: 1px solid Silver;
684
+ }
685
+
686
+ td.restore-name {
687
+ color: navy;
688
+ padding-right: 4px;
689
+ max-width: 272px;
690
+ overflow: hidden;
691
+ text-overflow: ellipsis;
692
+ }
693
+
694
+ img.del-asm-btn {
695
+ height: 12px;
696
+ width: 12px;
697
+ border-radius: 2px;
698
+ margin-bottom: -2px;
699
+ margin-right: 1px;
700
+ cursor: pointer;
701
+ }
702
+
703
+ img.del-asm-btn:hover {
704
+ background-color: #bfc0e2;
705
+ }
706
+
707
+ #auto-save-settings {
708
+ position: absolute;
709
+ bottom: 2px;
710
+ left: 2px;
711
+ width: calc(100% - 4px);
712
+ }
713
+
714
+ #auto-save-minutes,
715
+ #auto-save-hours {
716
+ width: 25px;
717
+ text-align: center;
718
+ max-height: 17px;
719
+ }
720
+
721
+ #auto-save-clear-btn {
722
+ position: absolute;
723
+ right: 0px;
724
+ bottom: -1px;
725
+ width: 18px;
726
+ height: 18px;
727
+ }
728
+
729
+ #confirm-remove-models {
730
+ position: absolute;
731
+ bottom: 2px;
732
+ left: 2px;
733
+ height: 15px;
734
+ width: calc(100% - 8px);
735
+ background-color: #cc88b0;
736
+ padding: 1px 2px 3px 2px;
737
+ }
738
+
739
+ img.inline-ok-btn,
740
+ img.inline-cancel-btn {
741
+ width: 17px;
742
+ height: 17px;
743
+ margin-bottom: -4px;
744
+ margin-left: 8px;
745
+ margin-right: 2px;
746
+ cursor: pointer;
747
+ }
748
+
749
+
750
+ /* styles for the MODEL SETTINGS dialog */
751
+ #settings-dlg {
752
+ width: min-content;
753
+ height: min-content;
754
+ }
755
+
756
+ #password-dlg {
757
+ width: min-content;
758
+ height: min-content;
759
+ }
760
+
761
+ #encryption-password {
762
+ margin: 2px;
763
+ width: 160px;
764
+ }
765
+
766
+ input.pws-0 {
767
+ color: #c00000;
768
+ background-color: #ffc0c0;
769
+ }
770
+
771
+ input.pws-1 {
772
+ color: #600000;
773
+ background-color: #ffd0b0;
774
+ }
775
+
776
+ input.pws-2 {
777
+ background-color: #ffe0a0;
778
+ }
779
+
780
+ input.pws-3 {
781
+ background-color: #f0f0a0;
782
+ }
783
+
784
+ input.pws-4 {
785
+ color: #006000;
786
+ background-color: #e0ffb0;
787
+ }
788
+
789
+ input.pws-5 {
790
+ color: #00c000;
791
+ background-color: #c0ffc0;
792
+ }
793
+
794
+ /* styles for the ACTOR DIALOG
795
+ NOTE: the z-index is very high for this dialog, as it should appear
796
+ on top of the ACTOR LIST DIALOG
797
+ */
798
+ #actor-modal {
799
+ z-index: 110;
800
+ }
801
+
802
+ #actor-dlg {
803
+ width: 300px;
804
+ height: 72px;
805
+ }
806
+
807
+ /* styles for the ACTOR LIST DIALOG */
808
+ #actor-list-dlg {
809
+ width: 365px;
810
+ height: 350px;
811
+ }
812
+
813
+ #round-settings {
814
+ width: calc(100% - 2px);
815
+ height: 38px;
816
+ }
817
+
818
+ #round-count-lbl {
819
+ position: absolute;
820
+ top: 24px;
821
+ left: 2px;
822
+ }
823
+
824
+ #add-round-btn {
825
+ position: absolute;
826
+ top: 23px;
827
+ left: 150px;
828
+ }
829
+
830
+ #delete-round-btn {
831
+ position: absolute;
832
+ left: 180px;
833
+ top: 23px;
834
+ }
835
+
836
+ #default-seq-div {
837
+ position: absolute;
838
+ left: 210px;
839
+ top: 23px;
840
+ }
841
+
842
+ #default-sequence {
843
+ width: calc(100% - 62px);
844
+ max-height: 16px;
845
+ font-family: monospace;
846
+ font-size: 12px;
847
+ }
848
+
849
+ #round-info-lbl {
850
+ position: absolute;
851
+ top: 41px;
852
+ left: 3px;
853
+ }
854
+
855
+ #actors-name-hdr {
856
+ position: absolute;
857
+ top: 1px;
858
+ left: 2px;
859
+ }
860
+
861
+ #actors-weight-hdr {
862
+ position: absolute;
863
+ top: 1px;
864
+ left: 210px;
865
+ }
866
+
867
+ div.round-nr {
868
+ display: inline-block;
869
+ background-color: #d4d5f0;
870
+ padding: 3px 1px 1px 1px;
871
+ width: 20px;
872
+ max-width: 20px;
873
+ overflow: hidden;
874
+ height: 11px;
875
+ font-family: monospace;
876
+ font-size: 11px;
877
+ vertical-align: top;
878
+ text-align: center;
879
+ cursor: pointer;
880
+ }
881
+
882
+ div.round-nr:hover {
883
+ color: white;
884
+ }
885
+
886
+ div.round-nr.sel {
887
+ background-color: #cc88b0;
888
+ }
889
+
890
+ #rounds-hdr {
891
+ position: absolute;
892
+ top: 1px;
893
+ left: 335px;
894
+ }
895
+
896
+ td.actor {
897
+ padding: 0 0 0 3px;
898
+ }
899
+
900
+ td.opt {
901
+ padding-bottom: 2px;
902
+ }
903
+
904
+ #actors-scroll-hdr {
905
+ background-color: #bfc0e2;
906
+ font-weight: bold;
907
+ padding-left: 3px;
908
+ width:calc(100% - 8.5px);
909
+ height: 17px;
910
+ margin-left: 3px;
911
+ margin-bottom: 0.2px;
912
+ }
913
+
914
+ #actors-scroll-hdr {
915
+ position: relative;
916
+ }
917
+
918
+ #actors-scroll {
919
+ padding-left: 3px;
920
+ width:calc(100% - 6px);
921
+ overflow-y: scroll;
922
+ }
923
+
924
+ #actors-table {
925
+ width: 100%;
926
+ border-collapse: collapse;
927
+ background-color: white;
928
+ border: 1px solid Silver;
929
+ }
930
+
931
+ #actor-span {
932
+ display: inline-block;
933
+ max-width: 180px;
934
+ margin-bottom: -2.5px;
935
+ overflow: hidden;
936
+ text-overflow: ellipsis;
937
+ }
938
+
939
+ tr.actor {
940
+ height: 23px;
941
+ }
942
+
943
+ tr.actor:hover {
944
+ background-color: #dfe0ff;
945
+ }
946
+
947
+ td.a-box {
948
+ width: 20px;
949
+ white-space: nowrap;
950
+ overflow: hidden;
951
+ text-overflow: ellipsis;
952
+ }
953
+
954
+ td.a-box > div.abox {
955
+ margin-left: 4px;
956
+ }
957
+
958
+ td.a-name {
959
+ width: 208px;
960
+ white-space: nowrap;
961
+ overflow: hidden;
962
+ text-overflow: ellipsis;
963
+ }
964
+
965
+
966
+ td.a-weight {
967
+ width: 124px;
968
+ white-space: nowrap;
969
+ overflow: hidden;
970
+ text-overflow: ellipsis;
971
+ }
972
+
973
+ td.import,
974
+ td.export {
975
+ font-weight: 600;
976
+ text-decoration-line: underline;
977
+ text-decoration-style: dotted;
978
+ }
979
+
980
+ td.import {
981
+ color: #b00000;
982
+ }
983
+
984
+ td.export {
985
+ color: #0000b0;
986
+ }
987
+
988
+ /* styles for the MODEL dialog */
989
+ #model-dlg {
990
+ width: 270px;
991
+ height: 70px;
992
+ }
993
+
994
+ /* styles for the ADD PROCESS dialog */
995
+ #add-process-dlg {
996
+ width: 270px;
997
+ height: 70px;
998
+ }
999
+
1000
+ /* styles for the ADD PRODUCT dialog */
1001
+ #add-product-dlg {
1002
+ width: 270px;
1003
+ height: 70px;
1004
+ }
1005
+
1006
+ /* styles for the CLUSTER dialog */
1007
+ #cluster-dlg {
1008
+ width: 315px;
1009
+ height: min-content;
1010
+ }
1011
+
1012
+ /* the MOVE modal asks whether node should be moved to focal cluster */
1013
+ #move-dlg {
1014
+ width: 270px;
1015
+ height: 120px;
1016
+ }
1017
+
1018
+ #move-msg {
1019
+ width: calc(100% - 8px);
1020
+ height: calc(100% - 55px);
1021
+ margin: 3px;
1022
+ overflow: auto;
1023
+ }
1024
+
1025
+ #move-node-type,
1026
+ #move-node-name,
1027
+ #move-from-cluster {
1028
+ white-space: nowrap;
1029
+ }
1030
+
1031
+ /* styles for the NOTE dialog */
1032
+ #note-dlg {
1033
+ width: 320px;
1034
+ height: 200px;
1035
+ }
1036
+
1037
+ #note-text {
1038
+ width: calc(100% - 4px);
1039
+ height: calc(100% - 50px);
1040
+ margin: 2px;
1041
+ }
1042
+
1043
+ #note-attr {
1044
+ width: calc(100% - 4px);
1045
+ height: 20px;
1046
+ margin: 2px;
1047
+ }
1048
+
1049
+ #note-color {
1050
+ width: calc(100% - 61px);
1051
+ font-size: 13px;
1052
+ }
1053
+
1054
+ /* styles for the CONSTRAINT dialog */
1055
+ #constraint-dlg {
1056
+ width: 445px;
1057
+ height: 75px;
1058
+ }
1059
+
1060
+ #c-threshold, #c-low, #c-high {
1061
+ width: 40px; margin-top: -4px;
1062
+ }
1063
+
1064
+ /* styles for the PROCESS properties dialog */
1065
+ #process-dlg {
1066
+ width: 314px;
1067
+ height: 213px;
1068
+ }
1069
+
1070
+ #process-name-lbl {
1071
+ position: absolute;
1072
+ top: 26px;
1073
+ left: 3px;
1074
+ }
1075
+
1076
+ #process-name {
1077
+ position: absolute;
1078
+ top: 24px;
1079
+ left: 41px;
1080
+ width: 268px;
1081
+ }
1082
+
1083
+ #process-actor-lbl {
1084
+ position: absolute;
1085
+ top: 50px;
1086
+ left: 3px;
1087
+ }
1088
+
1089
+ #process-actor {
1090
+ position: absolute;
1091
+ top: 48px;
1092
+ left: 41px;
1093
+ width: 268px;
1094
+ }
1095
+
1096
+ #process-LB-lbl {
1097
+ position: absolute;
1098
+ top: 75px;
1099
+ left: 19px;
1100
+ width: 80px;
1101
+ }
1102
+
1103
+ #process-LB {
1104
+ position: absolute;
1105
+ top: 72px;
1106
+ left: 94px;
1107
+ width: 195px;
1108
+ }
1109
+
1110
+ #process-LB-x {
1111
+ position: absolute;
1112
+ top: 72px;
1113
+ right: 2px
1114
+ }
1115
+
1116
+ #process-UB-lbl {
1117
+ position: absolute;
1118
+ top: 100px;
1119
+ left: 19px;
1120
+ width: 80px;
1121
+ }
1122
+
1123
+ #process-UB {
1124
+ position: absolute;
1125
+ top: 97px;
1126
+ left: 94px;
1127
+ width: 195px;
1128
+ }
1129
+
1130
+ #process-UB-x {
1131
+ position: absolute;
1132
+ top: 97px;
1133
+ right: 2px
1134
+ }
1135
+
1136
+ #process-UB-equal {
1137
+ position: absolute;
1138
+ top: 83px;
1139
+ left: 3px;
1140
+ width: 16px;
1141
+ height: 26px;
1142
+ }
1143
+
1144
+ #process-IL-lbl {
1145
+ position: absolute;
1146
+ top: 125px;
1147
+ left: 31px;
1148
+ }
1149
+
1150
+ #process-IL {
1151
+ position: absolute;
1152
+ top: 122px;
1153
+ left: 94px;
1154
+ width: 195px;
1155
+ }
1156
+
1157
+ #process-IL-x {
1158
+ position: absolute;
1159
+ top: 122px;
1160
+ right: 2px
1161
+ }
1162
+
1163
+ #process-int-lbl,
1164
+ #process-shut-down-lbl,
1165
+ #process-collapsed-lbl {
1166
+ position: absolute;
1167
+ left: 22px;
1168
+ top: 3px;
1169
+ white-space: nowrap;
1170
+ }
1171
+
1172
+ #process-int-div {
1173
+ position: absolute;
1174
+ top: 145px;
1175
+ left: 2px;
1176
+ width: 65px;
1177
+ }
1178
+
1179
+ #process-shut-down-div {
1180
+ position: absolute;
1181
+ top: 145px;
1182
+ left: 72px;
1183
+ width: 165px;
1184
+ }
1185
+
1186
+ #process-pace-div {
1187
+ position: absolute;
1188
+ top: 168px;
1189
+ left: 2px;
1190
+ white-space: nowrap;
1191
+ }
1192
+
1193
+ #process-pace {
1194
+ width: 77px;
1195
+ }
1196
+
1197
+ #process-pace-x {
1198
+ margin-bottom: 5px;
1199
+ }
1200
+
1201
+ #process-collapsed-div {
1202
+ position: absolute;
1203
+ top: 191px;
1204
+ left: 2px;
1205
+ width: 65px;
1206
+ }
1207
+
1208
+ /* styles for the PRODUCT properties dialog */
1209
+ #product-dlg {
1210
+ width: 360px;
1211
+ height: 190px;
1212
+ }
1213
+
1214
+ #product-name-lbl {
1215
+ position: absolute;
1216
+ top: 26px;
1217
+ left: 3px;
1218
+ }
1219
+
1220
+ #product-name {
1221
+ position: absolute;
1222
+ top: 24px;
1223
+ left: 41px;
1224
+ width: 314px;
1225
+ }
1226
+
1227
+ #product-unit-lbl {
1228
+ position: absolute;
1229
+ top: 50px;
1230
+ left: 3px;
1231
+ }
1232
+
1233
+ #product-unit {
1234
+ position: absolute;
1235
+ top: 48px;
1236
+ left: 41px;
1237
+ width: 60px;
1238
+ }
1239
+
1240
+ #source {
1241
+ position: absolute;
1242
+ top: 48px;
1243
+ left: 115px;
1244
+ }
1245
+
1246
+ #sink {
1247
+ position: absolute;
1248
+ top: 48px;
1249
+ left: 185px;
1250
+ }
1251
+
1252
+ #stock {
1253
+ position: absolute;
1254
+ top: 48px;
1255
+ left: 242px;
1256
+ }
1257
+
1258
+ #data {
1259
+ position: absolute;
1260
+ top: 48px;
1261
+ left: 306px;
1262
+ }
1263
+
1264
+ #product-source-lbl,
1265
+ #product-sink-lbl,
1266
+ #product-stock-lbl,
1267
+ #product-data-lbl,
1268
+ #product-int-lbl,
1269
+ #product-no-slack-lbl,
1270
+ #product-no-links-lbl {
1271
+ position: absolute;
1272
+ left: 22px;
1273
+ top: 3px;
1274
+ }
1275
+
1276
+ #product-LB-lbl {
1277
+ position: absolute;
1278
+ top: 75px;
1279
+ left: 18px;
1280
+ }
1281
+
1282
+ #product-LB {
1283
+ position: absolute;
1284
+ top: 72px;
1285
+ left: 93px;
1286
+ width: 240px;
1287
+ }
1288
+
1289
+ #product-LB-x {
1290
+ position: absolute;
1291
+ top: 72px;
1292
+ left: 337px
1293
+ }
1294
+
1295
+ #product-UB-lbl {
1296
+ position: absolute;
1297
+ top: 100px;
1298
+ left: 18px;
1299
+ }
1300
+
1301
+ #product-UB {
1302
+ position: absolute;
1303
+ top: 97px;
1304
+ left: 93px;
1305
+ width: 240px;
1306
+ }
1307
+
1308
+ #product-UB-x {
1309
+ position: absolute;
1310
+ top: 97px;
1311
+ left: 337px
1312
+ }
1313
+
1314
+ #product-UB-equal {
1315
+ position: absolute;
1316
+ top: 82px;
1317
+ left: 3px;
1318
+ width: 16px;
1319
+ height: 26px;
1320
+ }
1321
+
1322
+ #product-IL-lbl {
1323
+ position: absolute;
1324
+ left: 18px;
1325
+ top: 125px;
1326
+ }
1327
+
1328
+ #product-IL {
1329
+ position: absolute;
1330
+ top: 122px;
1331
+ left: 93px;
1332
+ width: 240px;
1333
+ }
1334
+
1335
+ #product-IL-x {
1336
+ position: absolute;
1337
+ top: 122px;
1338
+ left: 337px;
1339
+ }
1340
+
1341
+ #product-P-div {
1342
+ position: absolute;
1343
+ left: 3px;
1344
+ top: 147px;
1345
+ }
1346
+
1347
+ #product-P-lbl {
1348
+ display: inline-block;
1349
+ vertical-align: middle;
1350
+ padding-bottom: 4px;
1351
+ max-width: 105px;
1352
+ white-space: nowrap;
1353
+ overflow: hidden;
1354
+ }
1355
+
1356
+ #product-P {
1357
+ margin-left: 2px;
1358
+ width: 220px;
1359
+ }
1360
+
1361
+ #product-int-div {
1362
+ position: absolute;
1363
+ top: 168px;
1364
+ left: 2px;
1365
+ width: 65px;
1366
+ }
1367
+
1368
+ #product-no-slack-div {
1369
+ position: absolute;
1370
+ top: 168px;
1371
+ left: 72px;
1372
+ width: 80px;
1373
+ }
1374
+
1375
+ #product-no-links-div {
1376
+ position: absolute;
1377
+ top: 168px;
1378
+ left: 150px;
1379
+ width: 120px;
1380
+ }
1381
+
1382
+
1383
+ /* NOTE: actors, datasets and products have import/export toggle boxes */
1384
+ #actor-io {
1385
+ position: absolute;
1386
+ top: 21px;
1387
+ right: 6px;
1388
+ font-size: 18px;
1389
+ color: Silver;
1390
+ cursor: pointer;
1391
+ }
1392
+
1393
+ #dataset-io {
1394
+ position: absolute;
1395
+ bottom: -3px;
1396
+ right: 4px;
1397
+ font-size: 18px;
1398
+ color: Silver;
1399
+ cursor: pointer;
1400
+ }
1401
+
1402
+ #product-io {
1403
+ position: absolute;
1404
+ bottom: -1px;
1405
+ right: 2px;
1406
+ font-size: 18px;
1407
+ color: Silver;
1408
+ cursor: pointer;
1409
+ }
1410
+
1411
+ #actor-export,
1412
+ #dataset-export,
1413
+ #product-export {
1414
+ position: absolute;
1415
+ bottom: 10px;
1416
+ right: 4.5px;
1417
+ font-size: 12px;
1418
+ font-weight: bold;
1419
+ display: none;
1420
+ }
1421
+
1422
+ #actor-import,
1423
+ #dataset-import,
1424
+ #product-import {
1425
+ position: absolute;
1426
+ bottom: 9px;
1427
+ right: 4.5px;
1428
+ font-size: 12px;
1429
+ font-weight: bold;
1430
+ display: none;
1431
+ }
1432
+
1433
+ /* styles for the CLONE dialog */
1434
+ #clone-dlg {
1435
+ width: 255px;
1436
+ height: min-content;
1437
+ }
1438
+
1439
+ #clone-count {
1440
+ font-weight: normal;
1441
+ font-size: 11px;
1442
+ }
1443
+
1444
+ #clone-prefix,
1445
+ #clone-actor {
1446
+ width: 210px;
1447
+ font-size: 12px;
1448
+ }
1449
+
1450
+ /* styles for the REPLACE dialog */
1451
+ #replace-dlg {
1452
+ width: 375px;
1453
+ height: min-content;
1454
+ }
1455
+
1456
+ #replace-product-name {
1457
+ display: inline-block;
1458
+ vertical-align: top;
1459
+ max-width: 280px;
1460
+ font-weight: lighter;
1461
+ font-style: italic;
1462
+ white-space: nowrap;
1463
+ overflow: hidden;
1464
+ text-overflow: ellipsis;
1465
+ }
1466
+
1467
+ #replace-product-name.is-data {
1468
+ text-decoration: underline dotted 2px;
1469
+ }
1470
+
1471
+ #replace-by-name {
1472
+ font-size: 12px;
1473
+ max-width: 235px;
1474
+ }
1475
+
1476
+ #replace-option {
1477
+ display: inline-block;
1478
+ width: 65px;
1479
+ margin: 2px 0 0 6px;
1480
+ }
1481
+
1482
+ #replace-local {
1483
+ margin-bottom: -3px;
1484
+ }
1485
+
1486
+ /* styles for the LINK properties dialog */
1487
+ #link-dlg {
1488
+ width: 425px;
1489
+ height: min-content;
1490
+ }
1491
+
1492
+ #link-from-name,
1493
+ #link-to-name {
1494
+ display: inline-block;
1495
+ max-width: 143px;
1496
+ margin-left: 2px;
1497
+ margin-right: 2px;
1498
+ white-space: nowrap;
1499
+ overflow: hidden;
1500
+ text-overflow: ellipsis;
1501
+ vertical-align: sub;
1502
+ font-weight: normal;
1503
+ font-style: italic;
1504
+ }
1505
+
1506
+ #link-multiplier-row.off {
1507
+ display: none;
1508
+ }
1509
+
1510
+ #link-multiplier {
1511
+ margin-left: 2px;
1512
+ margin-bottom: 2px;
1513
+ font-size: 9pt;
1514
+ min-height: 20px;
1515
+ max-width: 358px;
1516
+ }
1517
+
1518
+ #link-R {
1519
+ width: 135px;
1520
+ margin: 0 0 2px 0;
1521
+ }
1522
+
1523
+ #link-D {
1524
+ width: 135px;
1525
+ margin: 0 0 2px 0;
1526
+ }
1527
+
1528
+ #link-output-row {
1529
+ border-collapse: collapse;
1530
+ }
1531
+
1532
+ #link-output-soc {
1533
+ display: inline-block;
1534
+ margin-left: 20px;
1535
+ }
1536
+
1537
+ #link-share-of-cost {
1538
+ width: 40px;
1539
+ margin: 0 2px 2px 2px;
1540
+ }
1541
+
1542
+ /* styles for the EXPRESSION EDITOR */
1543
+ #expression-modal {
1544
+ z-index: 115;
1545
+ }
1546
+
1547
+ #expression-dlg {
1548
+ width: 545px;
1549
+ height: 325px;
1550
+ }
1551
+
1552
+ #expression-property {
1553
+ display: inline-block;
1554
+ vertical-align: top;
1555
+ max-width: calc(100% - 185px);
1556
+ font-weight: normal;
1557
+ font-style: italic;
1558
+ white-space: nowrap;
1559
+ overflow: hidden;
1560
+ text-overflow: ellipsis;
1561
+ }
1562
+
1563
+ #expression-text {
1564
+ width: calc(100% - 4px);
1565
+ height: calc(100% - 70px);
1566
+ margin: 1px 2px;
1567
+ font: 12px monospace;
1568
+ overflow-y: hidden;
1569
+ }
1570
+
1571
+ #variable-bar {
1572
+ width: calc(100% - 4px);
1573
+ margin: 2px 2px 1px 2px;
1574
+ }
1575
+
1576
+ #variable-obj {
1577
+ width: 80px;
1578
+ font-size: 12px;
1579
+ }
1580
+
1581
+ #variable-name {
1582
+ width: calc(100% - 210px);
1583
+ font-size: 12px;
1584
+ }
1585
+
1586
+ #variable-attr {
1587
+ width: 65px;
1588
+ font-size: 12px;
1589
+ }
1590
+
1591
+ #variable-insert {
1592
+ width: 55px;
1593
+ font-size: 12px;
1594
+ }
1595
+
1596
+ #expression-status {
1597
+ position: absolute;
1598
+ border: solid 1px #e2d8e8;
1599
+ bottom: 0;
1600
+ width: 536px;
1601
+ margin: 2px;
1602
+ padding: 2px;
1603
+ }
1604
+
1605
+ #expression-info {
1606
+ display: none;
1607
+ position: absolute;
1608
+ border: solid 1px #e2d8e8;
1609
+ background-color: #fafcfe;
1610
+ top: 22px;
1611
+ left: 2px;
1612
+ width: calc(100% - 9px);
1613
+ height: calc(100% - 29px);
1614
+ padding: 2px;
1615
+ font-family: Serif;
1616
+ font-size: 13px;
1617
+ }
1618
+
1619
+ #expression-info h3 {
1620
+ margin: 0;
1621
+ }
1622
+
1623
+ #expression-info h4 {
1624
+ margin: 6px 0px 3px 0px;
1625
+ }
1626
+
1627
+ #expression-info p {
1628
+ margin: 0px 0px 3px 0px;
1629
+ }
1630
+
1631
+ #expression-info code {
1632
+ margin: 0px 2px 0px 2px;
1633
+ }
1634
+
1635
+ #diagram-menu {
1636
+ display: none;
1637
+ position: fixed;
1638
+ left: 380px;
1639
+ top: 40px;
1640
+ border: solid 1px #e2d8e8;
1641
+ background-color: #f4f0f2;
1642
+ }
1643
+
1644
+ div.menu-item {
1645
+ padding: 2px 4px;
1646
+ cursor: pointer;
1647
+ }
1648
+
1649
+ div.menu-item:hover {
1650
+ background-color: #bfc0e2;
1651
+ }
1652
+
1653
+ /* the CONSTRAINT DIALOG allows definition/editing of a constraint */
1654
+ #constraint-dlg {
1655
+ width: 362px;
1656
+ height: 436px;
1657
+ }
1658
+
1659
+ #ce-button-bar {
1660
+ margin-top: 1px;
1661
+ margin-left: 2px;
1662
+ }
1663
+
1664
+ #ce-container {
1665
+ position: absolute;
1666
+ top: 45px;
1667
+ left: 20px;
1668
+ }
1669
+
1670
+ #ce-y-label {
1671
+ position: absolute;
1672
+ bottom: 75px;
1673
+ left: 8px;
1674
+ height: 300px;
1675
+ max-width: 16px;
1676
+ text-align: center;
1677
+ writing-mode: vertical-rl;
1678
+ text-orientation: mixed;
1679
+ transform: rotate(180deg);
1680
+ white-space: nowrap;
1681
+ }
1682
+
1683
+ #ce-x-label {
1684
+ position: absolute;
1685
+ top: 374px;
1686
+ left: 45px;
1687
+ width: 300px;
1688
+ text-align: center;
1689
+ }
1690
+
1691
+ #ce-pos-x {
1692
+ position: absolute;
1693
+ top: 393px;
1694
+ left: 4px;
1695
+ width: 54px;
1696
+ }
1697
+
1698
+ #ce-pos-y {
1699
+ position: absolute;
1700
+ top: 393px;
1701
+ left: 55px;
1702
+ width: 54px;
1703
+ }
1704
+
1705
+ #ce-point {
1706
+ position: absolute;
1707
+ top: 393px;
1708
+ left: 160px;
1709
+ width: 75px;
1710
+ text-align: center;
1711
+ }
1712
+
1713
+ #ce-equation {
1714
+ position: absolute;
1715
+ top: 393px;
1716
+ right: 4px;
1717
+ width: 125px;
1718
+ text-align: right;
1719
+ }
1720
+
1721
+ #ce {
1722
+ width: 330px;
1723
+ height: 320px;
1724
+ transform-origin: top left;
1725
+ }
1726
+
1727
+ #ce-from-name,
1728
+ #ce-to-name {
1729
+ display: inline-block;
1730
+ max-width: 190px;
1731
+ white-space: nowrap;
1732
+ overflow: hidden;
1733
+ text-overflow: ellipsis;
1734
+ font-weight: 700;
1735
+ }
1736
+
1737
+ #ce-from-name {
1738
+ vertical-align: bottom;
1739
+ }
1740
+
1741
+ #del-point-btn.disab,
1742
+ #chart-delete-variable-btn.disab {
1743
+ filter: grayscale(100%) brightness(150%) contrast(100%);
1744
+ }
1745
+
1746
+ #bl-type {
1747
+ height: 20px;
1748
+ font-size: 12px;
1749
+ margin: 1px 6px 0 6px;
1750
+ }
1751
+
1752
+ #bl-selectors {
1753
+ font-size: 12px;
1754
+ width: 126px;
1755
+ }
1756
+
1757
+ #ce-bottom-div {
1758
+ position: absolute;
1759
+ bottom: 4px;
1760
+ left: 4px;
1761
+ width: calc(100% - 9px);
1762
+ height: 22px;
1763
+ border-top: 1px solid silver;
1764
+ }
1765
+
1766
+ #ce-no-slack-div {
1767
+ position: absolute;
1768
+ left: -2px;
1769
+ bottom: -1px;
1770
+ width: 100px;
1771
+ }
1772
+
1773
+ #ce-no-slack-lbl {
1774
+ display: inline-block;
1775
+ vertical-align: top;
1776
+ padding-top: 4px;
1777
+ }
1778
+
1779
+ #ce-soc-direct {
1780
+ height: 19px;
1781
+ font-size: 12px;
1782
+ }
1783
+
1784
+ #ce-share-of-cost {
1785
+ width: 45px;
1786
+ max-height: 18px;
1787
+ margin: 3px 1px 0 3px;
1788
+ }
1789
+
1790
+ #ce-soc {
1791
+ position: absolute;
1792
+ right: 0px;
1793
+ }
1794
+
1795
+ /* NOTE: The following dialogs are not modal, but "stay-on-top",
1796
+ i.e., windows that remain open (until dismissed) and above
1797
+ the main window, and they are draggable and resizable.
1798
+ The z-indices are lower (5-50) than those of modal dialogs. */
1799
+
1800
+ /* all resizable dialogs have a striped triangle at the bottom right */
1801
+ div.resizer {
1802
+ position: absolute;
1803
+ bottom: 0px;
1804
+ right: 0px;
1805
+ height: 12px;
1806
+ width: 12px;
1807
+ cursor: se-resize;
1808
+ background-image: url(images/resize.png);
1809
+ background-size: contain;
1810
+ }
1811
+
1812
+ /* draggable dialogs can be moved by dragging their header */
1813
+ div.dragger {
1814
+ cursor: move;
1815
+ }
1816
+
1817
+ /* the DATASET DIALOG displays the dataset manager */
1818
+ #dataset-dlg {
1819
+ display: none;
1820
+ z-index: 5;
1821
+ margin: 0;
1822
+ width: 450px;
1823
+ height: 300px;
1824
+ min-width: 400px;
1825
+ min-height: 160px;
1826
+ max-height: 99vh;
1827
+ max-width: 99vw;
1828
+ }
1829
+
1830
+ #dataset-buttons,
1831
+ #equation-buttons {
1832
+ position: absolute;
1833
+ width: 40%;
1834
+ top: 21px;
1835
+ left: 1px;
1836
+ }
1837
+
1838
+ #dataset-buttons > img.btn,
1839
+ #equation-buttons > img.btn {
1840
+ height: 20px;
1841
+ width: 20px;
1842
+ }
1843
+
1844
+ #dataset-header,
1845
+ #equation-header {
1846
+ position: absolute;
1847
+ top: 44px;
1848
+ left: 2px;
1849
+ font-weight: 600;
1850
+ }
1851
+
1852
+ div.sdsn {
1853
+ display: inline-block;
1854
+ vertical-align: top;
1855
+ font-style: italic;
1856
+ width: calc(100% - 115px);
1857
+ white-space: nowrap;
1858
+ overflow: hidden;
1859
+ text-overflow: ellipsis;
1860
+ }
1861
+
1862
+ td.it {
1863
+ font-style: italic;
1864
+ }
1865
+
1866
+ td.io {
1867
+ width: 12px;
1868
+ }
1869
+
1870
+ div.io-box {
1871
+ width: 10px;
1872
+ height: 10px;
1873
+ border: 1.5px solid gray;
1874
+ box-shadow: 1.3px 1.3px gray;
1875
+ color: #e0e0e0;
1876
+ }
1877
+
1878
+ #ds-filter-btn {
1879
+ height: 12px;
1880
+ width: 12px;
1881
+ }
1882
+
1883
+ #ds-filter-bar {
1884
+ position: absolute;
1885
+ top: 60px;
1886
+ left: 2px;
1887
+ width: calc(40% - 4px);
1888
+ display: none;
1889
+ }
1890
+
1891
+ #ds-filter-text {
1892
+ max-height: 16px;
1893
+ width: calc(100% - 1px);
1894
+ font-size: 10px;
1895
+ }
1896
+
1897
+ #dataset-scroll-area {
1898
+ position: absolute;
1899
+ top: 60px;
1900
+ left: 2px;
1901
+ width: calc(40% - 4px);
1902
+ height: calc(100% - 122px);
1903
+ overflow-y: auto;
1904
+ border-top: 1px solid Silver;
1905
+ }
1906
+
1907
+ #dataset-table,
1908
+ #dataset-modif-table,
1909
+ #equation-table,
1910
+ #experiment-table,
1911
+ #experiment-dim-table,
1912
+ #experiment-chart-table,
1913
+ #xp-clusters-table,
1914
+ #modules-table,
1915
+ #parameter-table,
1916
+ #finder-table,
1917
+ #finder-item-table,
1918
+ #finder-expression-table,
1919
+ #restore-table {
1920
+ width: 100%;
1921
+ max-width: 100%;
1922
+ border-collapse: collapse;
1923
+ line-height: 16px;
1924
+ background-color: white;
1925
+ border: 1px solid Silver;
1926
+ border-top: none;
1927
+ }
1928
+
1929
+ #dataset-properties {
1930
+ position: absolute;
1931
+ bottom: 2px;
1932
+ left: 2px;
1933
+ width: 40%;
1934
+ }
1935
+
1936
+ #dataset-outcome {
1937
+ position: absolute;
1938
+ bottom: 0px;
1939
+ right: 25px;
1940
+ width: 16px;
1941
+ height: 16px;
1942
+ cursor: pointer;
1943
+ }
1944
+
1945
+ #dataset-outcome.not-selected {
1946
+ filter: saturate(0) contrast(50%) brightness(170%);
1947
+ }
1948
+
1949
+ #dataset-separator {
1950
+ position: absolute;
1951
+ top: 22px;
1952
+ left: calc(40%);
1953
+ height: calc(100% - 24px);
1954
+ width: 3px;
1955
+ border-left: 1.5px Silver ridge;
1956
+ }
1957
+
1958
+ #dataset-modif-header {
1959
+ position: absolute;
1960
+ top: 22px;
1961
+ left: calc(40% + 4px);
1962
+ white-space: nowrap;
1963
+ overflow: hidden;
1964
+ text-overflow: ellipsis;
1965
+ }
1966
+
1967
+ #dataset-modif-ds-name {
1968
+ position: absolute;
1969
+ top: 22px;
1970
+ left: calc(40% + 70px);
1971
+ font-style: italic;
1972
+ width: calc(60% - 74px);
1973
+ white-space: nowrap;
1974
+ overflow: hidden;
1975
+ text-overflow: ellipsis;
1976
+ }
1977
+
1978
+ #dataset-modif-titles {
1979
+ position: absolute;
1980
+ top: 44px;
1981
+ left: calc(40% + 4px);
1982
+ font-weight: 600;
1983
+ }
1984
+
1985
+ #dataset-modif-scroll-area {
1986
+ position: absolute;
1987
+ top: 60px;
1988
+ left: calc(40% + 4px);
1989
+ width: calc(60% - 6px);
1990
+ height: calc(100% - 122px);
1991
+ overflow-y: auto;
1992
+ border-top: 1px solid Silver;
1993
+ }
1994
+
1995
+ #dataset-modif-buttons {
1996
+ position: absolute;
1997
+ bottom: 1px;
1998
+ left: calc(40% + 3px);
1999
+ }
2000
+
2001
+ #dataset-modif-buttons > img.btn {
2002
+ height: 20px;
2003
+ width: 20px;
2004
+ }
2005
+
2006
+ tr.module,
2007
+ tr.dataset,
2008
+ tr.experiment,
2009
+ tr.variable {
2010
+ overflow: hidden;
2011
+ white-space: nowrap;
2012
+ text-overflow: ellipsis;
2013
+ }
2014
+
2015
+ tr.module:hover,
2016
+ tr.dataset:hover,
2017
+ tr.dataset-modif:hover,
2018
+ tr.experiment:hover,
2019
+ tr.variable:hover {
2020
+ background-color: #dfe0ff;
2021
+ }
2022
+
2023
+ tr.sel-set {
2024
+ background-color: #eff0ff;
2025
+ }
2026
+
2027
+ td.outcome:before {
2028
+ content: ' \25C8';
2029
+ }
2030
+
2031
+ td.array:before {
2032
+ content: ' \2637';
2033
+ }
2034
+
2035
+ td.blackbox:before {
2036
+ content: ' \25FC';
2037
+ }
2038
+
2039
+ td.blackbox.array:before {
2040
+ content: ' \25FC\2637';
2041
+ }
2042
+
2043
+ td.blackbox.outcome:before {
2044
+ content: ' \25FC\25C8';
2045
+ }
2046
+
2047
+ td.dataset-selector {
2048
+ min-width: 80px;
2049
+ max-width: 80px;
2050
+ width: 80px;
2051
+ white-space: nowrap;
2052
+ overflow: hidden;
2053
+ text-overflow: ellipsis;
2054
+ }
2055
+
2056
+ td.equation-selector {
2057
+ min-width: 120px;
2058
+ max-width: 240px;
2059
+ white-space: nowrap;
2060
+ overflow: hidden;
2061
+ text-overflow: ellipsis;
2062
+ }
2063
+
2064
+ td.wildcard {
2065
+ font-weight: bold;
2066
+ color: #900040;
2067
+ }
2068
+
2069
+ td.dataset-expression,
2070
+ td.equation-expression {
2071
+ border-left: solid 1px Silver;
2072
+ white-space: nowrap;
2073
+ overflow: hidden;
2074
+ text-overflow: ellipsis;
2075
+ }
2076
+
2077
+ td.equation-expression {
2078
+ min-width: 60%;
2079
+ }
2080
+
2081
+ #dataset-blackbox {
2082
+ position: absolute;
2083
+ bottom: 6px;
2084
+ right: 45px;
2085
+ width: 16px;
2086
+ height: 16px;
2087
+ font-size: 19px;
2088
+ cursor: pointer;
2089
+ color: #e0e0e0;
2090
+ }
2091
+
2092
+ #dataset-blackbox.off {
2093
+ color: #e0e0e0;
2094
+ }
2095
+
2096
+ #dataset-blackbox.on {
2097
+ color: #403848;
2098
+ }
2099
+
2100
+ /* the EQUATION DIALOG displays the equation manager */
2101
+ /* NOTE: much the same as the dataset manager, so few "own" styles */
2102
+ #equation-dlg {
2103
+ display: none;
2104
+ z-index: 10;
2105
+ margin: 0;
2106
+ width: 400px;
2107
+ height: 235px;
2108
+ min-width: 300px;
2109
+ min-height: 120px;
2110
+ max-height: 99vh;
2111
+ max-width: 99vw;
2112
+ }
2113
+
2114
+ #equation-scroll-area {
2115
+ position: absolute;
2116
+ top: 45px;
2117
+ left: 2px;
2118
+ width: calc(100% - 4px);
2119
+ height: calc(100% - 60px);
2120
+ overflow-y: auto;
2121
+ border-top: 1px solid Silver;
2122
+ }
2123
+
2124
+ /* NOTE: Rename equation modal must be above Edit variable modal */
2125
+ #rename-equation-modal {
2126
+ z-index: 110;
2127
+ }
2128
+
2129
+ #new-dataset-dlg,
2130
+ #rename-dataset-dlg,
2131
+ #new-equation-dlg,
2132
+ #rename-equation-dlg {
2133
+ width: 240px;
2134
+ height: 45px;
2135
+ }
2136
+
2137
+ #new-dataset-name,
2138
+ #rename-dataset-name,
2139
+ #new-equation-name,
2140
+ #rename-equation-name {
2141
+ position: absolute;
2142
+ bottom: 2px;
2143
+ left: 2px;
2144
+ width: calc(100% - 6px);
2145
+ }
2146
+
2147
+ #new-selector-dlg,
2148
+ #rename-selector-dlg {
2149
+ width: 215px;
2150
+ height: 45px;
2151
+ }
2152
+
2153
+ #new-selector-name,
2154
+ #rename-selector-name {
2155
+ position: absolute;
2156
+ bottom: 2px;
2157
+ left: 2px;
2158
+ width: 102px;
2159
+ }
2160
+
2161
+ #new-selector-label,
2162
+ #rename-selector-label {
2163
+ position: absolute;
2164
+ left: 110px;
2165
+ bottom: 5px;
2166
+ }
2167
+
2168
+ /* SERIES modal dialog */
2169
+ #series-dlg {
2170
+ width: 156px;
2171
+ height: 282px;
2172
+ }
2173
+
2174
+ #series-default-lbl {
2175
+ position: absolute;
2176
+ top: 25px;
2177
+ left: 2px;
2178
+ }
2179
+
2180
+ #series-default {
2181
+ position: absolute;
2182
+ top: 24px;
2183
+ left: 79px;
2184
+ width: 73px;
2185
+ font-size: 12px;
2186
+ margin-bottom: 2px;
2187
+ }
2188
+
2189
+ #series-periodic {
2190
+ position: absolute;
2191
+ top: 45px;
2192
+ left: 0px;
2193
+ }
2194
+
2195
+ #series-periodic-lbl {
2196
+ position: absolute;
2197
+ top: 47px;
2198
+ left: 22px;
2199
+ }
2200
+
2201
+ #series-array {
2202
+ position: absolute;
2203
+ top: 45px;
2204
+ left: 90px;
2205
+ }
2206
+
2207
+ #series-array-lbl {
2208
+ position: absolute;
2209
+ top: 47px;
2210
+ left: 112px;
2211
+ }
2212
+
2213
+ #series-no-time-msg {
2214
+ position: absolute;
2215
+ top: 66px;
2216
+ left: 1px;
2217
+ width: calc(100% - 2px);
2218
+ height: 27px;
2219
+ z-index: 1;
2220
+ background-color: inherit;
2221
+ font-style: italic;
2222
+ padding-top: 15px;
2223
+ text-align: center;
2224
+ display: none;
2225
+ }
2226
+
2227
+ #series-time-step-lbl {
2228
+ position: absolute;
2229
+ top: 68px;
2230
+ left: 2px;
2231
+ }
2232
+
2233
+ #series-time-scale {
2234
+ position: absolute;
2235
+ top: 67px;
2236
+ left: 60px;
2237
+ width: 43px;
2238
+ font-size: 12px;
2239
+ margin-bottom: 2px;
2240
+ }
2241
+
2242
+ #series-time-unit {
2243
+ position: absolute;
2244
+ top: 67px;
2245
+ left: 108px;
2246
+ height: 19px;
2247
+ width: 45px;
2248
+ font-size: 12px;
2249
+ }
2250
+
2251
+ #series-method-lbl {
2252
+ position: absolute;
2253
+ top: 90px;
2254
+ left: 2px;
2255
+ }
2256
+
2257
+ #series-method {
2258
+ position: absolute;
2259
+ top: 88px;
2260
+ left: 49px;
2261
+ height: 19px;
2262
+ width: 105px;
2263
+ font-size: 11px;
2264
+ }
2265
+
2266
+ #series-remote {
2267
+ position: absolute;
2268
+ top: 110px;
2269
+ left: 2px;
2270
+ }
2271
+
2272
+ #series-url {
2273
+ width: 150px;
2274
+ font-size: 12px;
2275
+ }
2276
+
2277
+ #series-data-lbl {
2278
+ position: absolute;
2279
+ top: 129px;
2280
+ left: 2px;
2281
+ }
2282
+
2283
+ #series-data {
2284
+ width: 150px;
2285
+ height: 120px;
2286
+ margin: 125px 3px;
2287
+ }
2288
+
2289
+ #series-line {
2290
+ position: absolute;
2291
+ bottom: 2px;
2292
+ left: 2px;
2293
+ font-size: 10px;
2294
+ }
2295
+
2296
+ /* the CHART dialog displays the Chart Manager */
2297
+ #chart-dlg {
2298
+ display: none;
2299
+ z-index: 15;
2300
+ margin: 0;
2301
+ width: 570px;
2302
+ height: 255px;
2303
+ min-width: 455px;
2304
+ min-height: 180px;
2305
+ max-height: 99vh;
2306
+ max-width: 99vw;
2307
+ }
2308
+
2309
+ #chart-experiment-info {
2310
+ display: inline-block;
2311
+ vertical-align: bottom;
2312
+ margin-left: 10px;
2313
+ max-width: calc(100% - 120px);
2314
+ white-space: nowrap;
2315
+ overflow: hidden;
2316
+ text-overflow: ellipsis;
2317
+ color: white;
2318
+ text-shadow: 0.5px 0.5px 0px gray;
2319
+ }
2320
+
2321
+ #chart-control-panel {
2322
+ position: absolute;
2323
+ bottom: 0px;
2324
+ left: 1px;
2325
+ width: 203px;
2326
+ height: calc(100% - 25px);
2327
+ padding: 2px;
2328
+ }
2329
+
2330
+ #chart-selector {
2331
+ position: absolute;
2332
+ top: 23px;
2333
+ left: 1px;
2334
+ width: 201px;
2335
+ font-size: 12px;
2336
+ }
2337
+
2338
+ #chart-buttons {
2339
+ position: absolute;
2340
+ top: 1px;
2341
+ left: 1px;
2342
+ }
2343
+
2344
+ #chart-buttons > img.btn,
2345
+ #change-equation-btns > img.btn {
2346
+ height: 20px;
2347
+ width: 20px;
2348
+ }
2349
+
2350
+ #chart-histogram {
2351
+ position: absolute;
2352
+ top: 46px;
2353
+ left: -1px;
2354
+ }
2355
+
2356
+ #chart-histogram-lbl {
2357
+ position: absolute;
2358
+ top: 49px;
2359
+ left: 21px;
2360
+ }
2361
+
2362
+ #chart-histogram-options {
2363
+ position: absolute;
2364
+ top: 46px;
2365
+ left: 100px;
2366
+ }
2367
+
2368
+ #histogram-bins {
2369
+ font-size: 12px;
2370
+ height: 20px;
2371
+ width: 50px;
2372
+ }
2373
+
2374
+ #chart-title {
2375
+ position: absolute;
2376
+ top: 68px;
2377
+ left: -1px;
2378
+ }
2379
+
2380
+ #chart-title-lbl {
2381
+ position: absolute;
2382
+ top: 71px;
2383
+ left: 21px;
2384
+ }
2385
+
2386
+ #chart-legend-lbl {
2387
+ position: absolute;
2388
+ top: 71px;
2389
+ left: 90px;
2390
+ }
2391
+
2392
+ #chart-legend {
2393
+ position: absolute;
2394
+ top: 68px;
2395
+ left: 134px;
2396
+ width: 68px;
2397
+ font-size: 12px;
2398
+ }
2399
+
2400
+ #chart-variables-header {
2401
+ position: absolute;
2402
+ top: 93px;
2403
+ }
2404
+
2405
+ #chart-variable-buttons {
2406
+ width: 146px;
2407
+ display: inline-block;
2408
+ position: absolute;
2409
+ left: 60px;
2410
+ top: -2px;
2411
+ }
2412
+
2413
+ #chart-variable-buttons > img.btn {
2414
+ height: 18px;
2415
+ width: 18px;
2416
+ }
2417
+
2418
+ #chart-variables {
2419
+ position: absolute;
2420
+ top: 113px;
2421
+ width: 200px;
2422
+ height: calc(100% - 115px);
2423
+ overflow-y: auto;
2424
+ }
2425
+
2426
+ #chart-variables-table {
2427
+ width: 100%;
2428
+ border-collapse: collapse;
2429
+ line-height: 12px;
2430
+ background-color: white;
2431
+ border: 1px solid Silver;
2432
+ }
2433
+
2434
+ td.v-box {
2435
+ width: 20px;
2436
+ }
2437
+
2438
+ td.v-name {
2439
+ white-space: nowrap;
2440
+ overflow: hidden;
2441
+ text-overflow: ellipsis;
2442
+ }
2443
+
2444
+ img.v-btn {
2445
+ height: 18px;
2446
+ width: 18px;
2447
+ cursor: pointer;
2448
+ filter: brightness(85%);
2449
+ }
2450
+
2451
+ img.v-btn:hover {
2452
+ filter: brightness(110%);
2453
+ }
2454
+
2455
+ img.v-disab {
2456
+ cursor: default;
2457
+ pointer-events: none;
2458
+ filter: saturate(10%) brightness(200%) contrast(70%);
2459
+ }
2460
+
2461
+ #chart-display-panel {
2462
+ position: absolute;
2463
+ width: calc(100% - 212px);
2464
+ bottom: 2px;
2465
+ left: 205px;
2466
+ height: calc(100% - 25px);
2467
+ border-left: 1.5px Silver ridge;
2468
+ }
2469
+
2470
+ #chart-svg-scroller {
2471
+ height: calc(100% - 24px);
2472
+ width: 100%;
2473
+ border: 1px solid Silver;
2474
+ margin-left: 2px;
2475
+ overflow-x: hidden;
2476
+ overflow-y: hidden;
2477
+ }
2478
+
2479
+ #chart-svg-container {
2480
+ height: 100%;
2481
+ /* width will be affected by the "stretch factor" */
2482
+ width: 100%;
2483
+ }
2484
+
2485
+ #chart-svg {
2486
+ height: 100%;
2487
+ width: 100%;
2488
+ background-color: white;
2489
+ }
2490
+
2491
+ #chart-table-panel {
2492
+ width: 100%;
2493
+ height: calc(100% - 24px);
2494
+ overflow: auto;
2495
+ }
2496
+
2497
+ #no-chart-data {
2498
+ display: inline-block;
2499
+ font-style: italic;
2500
+ padding-top: 40px;
2501
+ text-align: center;
2502
+ width: 100%;
2503
+ }
2504
+
2505
+ #chart-table {
2506
+ border: solid 1px Silver;
2507
+ background-color: white;
2508
+ border-collapse: collapse;
2509
+ margin: 2px;
2510
+ max-width: calc(100% - 2px);
2511
+ text-align: right;
2512
+ }
2513
+
2514
+ #chart-table th {
2515
+ border: solid 1px Silver;
2516
+ padding-left: 3px;
2517
+ max-width: 50px;
2518
+ background-color: #e4e4e8;
2519
+ text-align: center;
2520
+ padding: 2px 5px;
2521
+ }
2522
+
2523
+ #chart-table th:first-of-type {
2524
+ text-align: left;
2525
+ max-width: none;
2526
+ }
2527
+
2528
+ #chart-table td {
2529
+ border: solid 1px Silver;
2530
+ text-align: right;
2531
+ padding-left: 3px;
2532
+ max-width: 50px;
2533
+ padding: 2px 5px;
2534
+ }
2535
+
2536
+ #chart-table td:first-of-type {
2537
+ text-align: left;
2538
+ max-width: none;
2539
+ }
2540
+
2541
+ #chart-display-buttons {
2542
+ position: absolute;
2543
+ bottom: -1px;
2544
+ left: 20px;
2545
+ }
2546
+
2547
+ #table-only-buttons,
2548
+ #chart-only-buttons {
2549
+ display: inline-block;
2550
+ }
2551
+
2552
+ #chart-display-buttons > img.btn,
2553
+ #table-only-buttons > img.btn,
2554
+ #chart-only-buttons > img.btn {
2555
+ height: 20px;
2556
+ width: 20px;
2557
+ margin-left: 4px;
2558
+ }
2559
+
2560
+ #chart-time-step {
2561
+ position: absolute;
2562
+ bottom: 3px;
2563
+ right: 3px;
2564
+ width: 50px;
2565
+ font-size: 11px;
2566
+ }
2567
+
2568
+ #chart-toggle-chevron,
2569
+ #sa-toggle-chevron {
2570
+ font-size: 16px;
2571
+ color: grey;
2572
+ position: absolute;
2573
+ bottom: 3px;
2574
+ left: 1px;
2575
+ cursor: pointer;
2576
+ }
2577
+
2578
+ #variable-dlg {
2579
+ width: 215px;
2580
+ height: 148px;
2581
+ }
2582
+
2583
+ #variable-dlg-name {
2584
+ display: inline-block;
2585
+ width: 165px;
2586
+ white-space: nowrap;
2587
+ overflow: hidden;
2588
+ text-overflow: ellipsis;
2589
+ }
2590
+
2591
+ #variable-color {
2592
+ display: inline-block;
2593
+ width: 15px;
2594
+ height: 15px;
2595
+ border: 1px solid Black;
2596
+ background-color: #c00000;
2597
+ }
2598
+
2599
+ #variable-scale {
2600
+ display: inline-block;
2601
+ width: 40px;
2602
+ margin-left: 2px;
2603
+ }
2604
+
2605
+ #variable-width {
2606
+ display: inline-block;
2607
+ width: 28px;
2608
+ margin-left: 2px;
2609
+ }
2610
+
2611
+ #variable-buttons > img.btn {
2612
+ height: 20px;
2613
+ width: 20px;
2614
+ }
2615
+
2616
+ #change-equation-btns {
2617
+ position: absolute;
2618
+ left: 3px;
2619
+ bottom: 3px;
2620
+ display: none;
2621
+ }
2622
+
2623
+ #color-picker {
2624
+ position: absolute;
2625
+ top: 26px;
2626
+ left: 120px;
2627
+ }
2628
+
2629
+ #add-variable-dlg,
2630
+ #add-sa-variable-dlg {
2631
+ width: 450px;
2632
+ height: 46px;
2633
+ }
2634
+
2635
+ #add-variable-obj,
2636
+ #add-sa-variable-obj {
2637
+ position: absolute;
2638
+ top: 22px;
2639
+ left: 2px;
2640
+ font-size: 12px;
2641
+ width: 80px;
2642
+ height: 22px;
2643
+ }
2644
+
2645
+ #add-variable-name,
2646
+ #add-sa-variable-name {
2647
+ position: absolute;
2648
+ top: 22px;
2649
+ left: 84px;
2650
+ width: 297px;
2651
+ font-size: 12px;
2652
+ height: 22px;
2653
+ }
2654
+
2655
+ #add-variable-attr,
2656
+ #add-sa-variable-attr {
2657
+ position: absolute;
2658
+ top: 22px;
2659
+ right: 2px;
2660
+ width: 55px;
2661
+ font-size: 12px;
2662
+ height: 22px;
2663
+ }
2664
+
2665
+ #rename-chart-dlg {
2666
+ width: 350px;
2667
+ height: 44px;
2668
+ }
2669
+
2670
+ #new-chart-title {
2671
+ margin: 2px;
2672
+ width: calc(100% - 6px);
2673
+ }
2674
+
2675
+ /* the SENSITIVITY DIALOG displays the sensitivity analysis */
2676
+ #sensitivity-dlg {
2677
+ display: none;
2678
+ z-index: 15;
2679
+ margin: 0;
2680
+ width: 500px;
2681
+ height: 265px;
2682
+ min-width: 380px;
2683
+ min-height: 220px;
2684
+ max-height: 99vh;
2685
+ max-width: 99vw;
2686
+ }
2687
+
2688
+ #sensitivity-control-panel {
2689
+ position: absolute;
2690
+ width: 40%;
2691
+ height: calc(100% - 22px);
2692
+ top: 21px;
2693
+ left: 1px;
2694
+ }
2695
+
2696
+ #sa-base {
2697
+ position: absolute;
2698
+ top: 3px;
2699
+ left: 2px;
2700
+ width: calc(100% - 2px);
2701
+ }
2702
+
2703
+ #sa-base-selectors {
2704
+ position: absolute;
2705
+ left: 34px;
2706
+ top: -1px;
2707
+ width: calc(100% - 37px);
2708
+ height: 16px !important;
2709
+ font-size: 12px;
2710
+ background-color: inherit;
2711
+ }
2712
+
2713
+ td.sa-ds-sel {
2714
+ cursor: pointer;
2715
+ }
2716
+
2717
+ td.sa-ds-sel:hover {
2718
+ text-decoration: underline solid #b00090;
2719
+ text-decoration-thickness: 1.5px;
2720
+ }
2721
+
2722
+ #sa-delta {
2723
+ position: absolute;
2724
+ top: 22px;
2725
+ left: 2px;
2726
+ width: calc(100% - 2px);
2727
+ }
2728
+
2729
+ #sensitivity-delta {
2730
+ position: absolute;
2731
+ left: 34px;
2732
+ top: -1px;
2733
+ width: 35px;
2734
+ height: 16px !important;
2735
+ font-size: 12px;
2736
+ padding-left: 2px;
2737
+ background-color: inherit;
2738
+ }
2739
+
2740
+ #sa-percent {
2741
+ position: absolute;
2742
+ left: 75px;
2743
+ }
2744
+
2745
+ #sa-p-header {
2746
+ position: absolute;
2747
+ top: 43px;
2748
+ left: 2px;
2749
+ }
2750
+
2751
+ #sa-p-btns,
2752
+ #sa-o-btns {
2753
+ position: absolute;
2754
+ top: -2px;
2755
+ left: 72px;
2756
+ width: 90px;
2757
+ display: inline-block;
2758
+ }
2759
+
2760
+ #sa-p-scroll-area {
2761
+ position: absolute;
2762
+ top: 59px;
2763
+ left: 2px;
2764
+ width: calc(100% - 4px);
2765
+ height: calc(50% - 41px);
2766
+ overflow-y: auto;
2767
+ border-top: 1px solid Silver;
2768
+ }
2769
+
2770
+ #sa-p-table {
2771
+ width: 100%;
2772
+ border-collapse: collapse;
2773
+ line-height: 16px;
2774
+ background-color: white;
2775
+ border: 1px solid Silver;
2776
+ border-top: none;
2777
+ }
2778
+
2779
+ #sa-o-header {
2780
+ position: absolute;
2781
+ top: calc(50% + 23px);
2782
+ left: 2px;
2783
+ }
2784
+
2785
+ #sa-o-scroll-area {
2786
+ position: absolute;
2787
+ top: calc(50% + 39px);
2788
+ left: 2px;
2789
+ width: calc(100% - 4px);
2790
+ height: calc(50% - 41px);
2791
+ overflow-y: auto;
2792
+ border-top: 1px solid Silver;
2793
+ }
2794
+
2795
+ #sa-o-table {
2796
+ width: 100%;
2797
+ border-collapse: collapse;
2798
+ line-height: 16px;
2799
+ background-color: white;
2800
+ border: 1px solid Silver;
2801
+ border-top: none;
2802
+ }
2803
+
2804
+ #sa-p-btns > img.v-btn,
2805
+ #sa-o-btns > img.v-btn {
2806
+ height: 16px;
2807
+ width: 16px;
2808
+ }
2809
+
2810
+ #sensitivity-display-panel {
2811
+ position: absolute;
2812
+ left: calc(40% + 2px);
2813
+ top: 23px;
2814
+ width: calc(60% - 5px);
2815
+ height: calc(100% - 25px);
2816
+ border-left: 1.5px Silver ridge;
2817
+ }
2818
+
2819
+ #sa-display-top-bar {
2820
+ position: absolute;
2821
+ top: 0px;
2822
+ left: 1px;
2823
+ width: 100%;
2824
+ height: 21px;
2825
+ }
2826
+
2827
+ #sa-control-buttons {
2828
+ position: absolute;
2829
+ width: 50px;
2830
+ top: 0px;
2831
+ left: 1px;
2832
+ }
2833
+
2834
+ #sa-progress {
2835
+ position: absolute;
2836
+ width: calc(100% - 160px);
2837
+ height: 100%;
2838
+ top: 2px;
2839
+ left: 50px;
2840
+ }
2841
+
2842
+ #sa-statistic {
2843
+ position: absolute;
2844
+ top: 2px;
2845
+ right: 2px;
2846
+ }
2847
+
2848
+ #sa-scroll-area {
2849
+ position: absolute;
2850
+ left: 1px;
2851
+ top: 23px;
2852
+ width: calc(100% - 2px);
2853
+ height: calc(100% - 45px);
2854
+ overflow: auto;
2855
+ }
2856
+
2857
+ #sa-table {
2858
+ border-collapse: collapse;
2859
+ position: relative;
2860
+ left: 2px;
2861
+ top: 2px;
2862
+ }
2863
+
2864
+ tr.sa-p-row:hover > td {
2865
+ filter: brightness(85%);
2866
+ }
2867
+
2868
+ tr.sa-p-sel > td:first-child {
2869
+ background-color: #00b0ff;
2870
+ }
2871
+
2872
+ tr.sa-p-sel > td:not(:first-child) {
2873
+ filter: brightness(90%);
2874
+ }
2875
+
2876
+ tr.sa-p-sel:hover > td:not(:first-child) {
2877
+ filter: brightness(85%);
2878
+ }
2879
+
2880
+ td.sa-col-hdr {
2881
+ background-color: #ffd800;
2882
+ min-width: 40px;
2883
+ text-align: center;
2884
+ border: 0.5px solid silver;
2885
+ }
2886
+
2887
+ td.sa-row-hdr {
2888
+ background-color: #a0c8ff;
2889
+ max-width: 190px;
2890
+ white-space: nowrap;
2891
+ overflow: hidden;
2892
+ text-overflow: ellipsis;
2893
+ border: 0.5px solid silver;
2894
+ padding-right: 5px;
2895
+ }
2896
+
2897
+ td.sa-plus {
2898
+ background-color: #8080f0 !important;
2899
+ color: white;
2900
+ border: 0.5px solid silver;
2901
+ max-width: 50px;
2902
+ }
2903
+
2904
+ td.sa-minus {
2905
+ background-color: #f08080 !important;
2906
+ color: white;
2907
+ border: 0.5px solid silver;
2908
+ max-width: 50px;
2909
+ }
2910
+
2911
+ td.sa-data {
2912
+ border: 0.5px solid silver;
2913
+ background-color: white;
2914
+ text-align: right;
2915
+ }
2916
+
2917
+ td.sa-brd {
2918
+ font-weight: bold;
2919
+ }
2920
+
2921
+ td.sa-not-run {
2922
+ background-color: #e0e0e0;
2923
+ }
2924
+
2925
+
2926
+ #sa-bottom-bar {
2927
+ position: absolute;
2928
+ bottom: 2px;
2929
+ left: 12px;
2930
+ }
2931
+
2932
+ #sa-abs-rel {
2933
+ display: inline-block;
2934
+ width: 12px;
2935
+ height: 12px;
2936
+ border: 1.5px solid gray;
2937
+ color: #400040;
2938
+ background-color: white;
2939
+ font-size: 10px;
2940
+ text-align: center;
2941
+ cursor: pointer;
2942
+ }
2943
+
2944
+ #sa-abs-rel:hover {
2945
+ background-color: #f0e0ff;
2946
+ }
2947
+
2948
+ #sa-outcome-name {
2949
+ position: absolute;
2950
+ bottom: 1px;
2951
+ left: 135px;
2952
+ max-width: calc(100% - 145px);
2953
+ font-size: 10px;
2954
+ white-space: nowrap;
2955
+ overflow: hidden;
2956
+ text-overflow: ellipsis;
2957
+ color: #806000;
2958
+ }
2959
+
2960
+ /* the EXPERIMENT DIALOG displays the experiment manager */
2961
+ #experiment-dlg {
2962
+ display: none;
2963
+ z-index: 20;
2964
+ margin: 0;
2965
+ width: 400px;
2966
+ height: 275px;
2967
+ min-width: 400px;
2968
+ min-height: 250px;
2969
+ max-height: 99vh;
2970
+ max-width: 99vw;
2971
+ }
2972
+
2973
+ #experiment-buttons {
2974
+ position: absolute;
2975
+ width: 40%;
2976
+ top: 21px;
2977
+ left: 1px;
2978
+ }
2979
+
2980
+ #sa-control-buttons > img.btn,
2981
+ #viewer-buttons > img.btn,
2982
+ #experiment-buttons > img.btn,
2983
+ #experiment-params-buttons > img.btn {
2984
+ height: 20px;
2985
+ width: 20px;
2986
+ }
2987
+
2988
+ #experiment-header {
2989
+ position: absolute;
2990
+ top: 44px;
2991
+ left: 2px;
2992
+ font-weight: 600;
2993
+ }
2994
+
2995
+ #experiment-scroll-area {
2996
+ position: absolute;
2997
+ top: 60px;
2998
+ left: 2px;
2999
+ width: calc(40% - 4px);
3000
+ height: calc(100% - 92px);
3001
+ overflow-y: auto;
3002
+ border-top: 1px solid Silver;
3003
+ }
3004
+
3005
+ #experiment-properties {
3006
+ position: absolute;
3007
+ bottom: 2px;
3008
+ left: 2px;
3009
+ }
3010
+
3011
+ #sensitivity-separator,
3012
+ #experiment-separator {
3013
+ position: absolute;
3014
+ top: 22px;
3015
+ left: calc(40%);
3016
+ height: calc(100% - 24px);
3017
+ width: 3px;
3018
+ border-left: 1.5px Silver ridge;
3019
+ }
3020
+
3021
+ #experiment-default-message {
3022
+ position: absolute;
3023
+ top: 22px;
3024
+ left: calc(40% + 4px);
3025
+ margin: 50px 10px;
3026
+ }
3027
+
3028
+ #experiment-params-header {
3029
+ position: absolute;
3030
+ top: 22px;
3031
+ left: calc(40% + 4px);
3032
+ font-style: italic;
3033
+ white-space: nowrap;
3034
+ overflow: hidden;
3035
+ text-overflow: ellipsis;
3036
+ }
3037
+
3038
+ #experiment-d-header {
3039
+ position: absolute;
3040
+ top: 40px;
3041
+ left: calc(40% + 4px);
3042
+ margin-right: 4px;
3043
+ }
3044
+
3045
+ #experiment-d-btns {
3046
+ position: absolute;
3047
+ top: -2px;
3048
+ left: 72px;
3049
+ width: 140px;
3050
+ }
3051
+
3052
+ /* enhance brightness for dark v-btn buttons */
3053
+ #sa-p-down-btn:hover,
3054
+ #sa-o-down-btn:hover,
3055
+ #xp-d-down-btn:hover,
3056
+ #xp-d-settings-btn:hover {
3057
+ filter: brightness(200%);
3058
+ }
3059
+
3060
+ #experiment-d-scroll-area {
3061
+ position: absolute;
3062
+ top: 60px;
3063
+ left: calc(40% + 4px);
3064
+ width: calc(60% - 6px);
3065
+ height: calc(50% - 40px);
3066
+ overflow-y: auto;
3067
+ border-top: 1px solid Silver;
3068
+ }
3069
+
3070
+ #experiment-c-header {
3071
+ position: absolute;
3072
+ top: calc(55% + 10px);
3073
+ left: calc(40% + 4px);
3074
+ margin-right: 4px;
3075
+ }
3076
+
3077
+ #xp-c-add-btn {
3078
+ position: absolute;
3079
+ top: -2px;
3080
+ left: 45px;
3081
+ }
3082
+
3083
+ #xp-c-delete-btn {
3084
+ position: absolute;
3085
+ top: -2px;
3086
+ left: 75px;
3087
+ }
3088
+
3089
+ #experiment-c-scroll-area {
3090
+ position: absolute;
3091
+ top: calc(55% + 30px);
3092
+ left: calc(40% + 4px);
3093
+ width: calc(60% - 6px);
3094
+ height: calc(40% - 40px);
3095
+ overflow-y: auto;
3096
+ border-top: 1px solid Silver;
3097
+ }
3098
+
3099
+ #experiment-filter {
3100
+ position: absolute;
3101
+ bottom: 3px;
3102
+ left: calc(40% + 4px);
3103
+ width: calc(60% - 41px);
3104
+ }
3105
+
3106
+ #experiment-exclude {
3107
+ width: calc(100% - 50px);
3108
+ height: 16px !important;
3109
+ font-size: 12px;
3110
+ background-color: inherit;
3111
+ }
3112
+
3113
+ #xp-ignore-btn {
3114
+ position: absolute;
3115
+ right: 18px;
3116
+ bottom: 1px;
3117
+ height: 18px;
3118
+ width: 18px;
3119
+ }
3120
+
3121
+ #xp-ignore-count {
3122
+ position: absolute;
3123
+ right: 14px;
3124
+ bottom: 3px;
3125
+ height: 16px;
3126
+ font-size: 9px;
3127
+ color: #806070;
3128
+ }
3129
+
3130
+ #experiment-viewer {
3131
+ position: absolute;
3132
+ top: 22px;
3133
+ left: 2px;
3134
+ height: calc(100% - 24px);
3135
+ width: calc(100% - 4px);
3136
+ }
3137
+
3138
+ #sensitivity-buttons,
3139
+ #viewer-buttons {
3140
+ display: inline-block;
3141
+ }
3142
+
3143
+ #viewer-selectors {
3144
+ position: absolute;
3145
+ right: 2px;
3146
+ top: 2px;
3147
+ width: calc(100% - 95px);
3148
+ }
3149
+
3150
+ #viewer-variable {
3151
+ font-size: 10px;
3152
+ max-width: calc(100% - 160px);
3153
+ }
3154
+
3155
+ #sensitivity-statistic,
3156
+ #viewer-statistic {
3157
+ width: 50px;
3158
+ font-size: 10px;
3159
+ }
3160
+
3161
+ #viewer-scale {
3162
+ width: 75px;
3163
+ font-size: 10px;
3164
+ }
3165
+
3166
+ #viewer-bar {
3167
+ white-space: nowrap;
3168
+ }
3169
+
3170
+ #viewer-title {
3171
+ display: inline-block;
3172
+ vertical-align: middle;
3173
+ margin-left: 2px;
3174
+ font-weight: 600;
3175
+ font-style: italic;
3176
+ white-space: nowrap;
3177
+ overflow: hidden;
3178
+ text-overflow: ellipsis;
3179
+ }
3180
+
3181
+ #sensitivity-progress,
3182
+ #viewer-progress {
3183
+ display: inline-block;
3184
+ vertical-align: middle;
3185
+ margin-left: 10px;
3186
+ font-size: 10px;
3187
+ }
3188
+
3189
+ span.x-checked {
3190
+ color: #00d000;
3191
+ font-weight: bold;
3192
+ }
3193
+
3194
+ #viewer-scroll-area {
3195
+ width: calc(100% - 2px);
3196
+ height: calc(100% - 64px);
3197
+ overflow: auto;
3198
+ }
3199
+ #viewer-table {
3200
+ border-collapse: collapse;
3201
+ position: relative;
3202
+ left: 2px;
3203
+ top: 2px;
3204
+ }
3205
+
3206
+ th.conf-ttl,
3207
+ th.scen-h-ttl {
3208
+ min-width: 15px;
3209
+ min-height: 10px;
3210
+ font-weight: normal;
3211
+ font-style: italic;
3212
+ background-color: #f4f0f2;
3213
+ }
3214
+
3215
+ th.conf-ttl {
3216
+ border-bottom: 2px solid #ffa050;
3217
+ }
3218
+
3219
+ th.scen-h-ttl {
3220
+ border-bottom: 2px solid #1858b0;
3221
+ }
3222
+
3223
+ th.conf-hdr,
3224
+ th.scen-hdr {
3225
+ border: 1px solid Silver;
3226
+ min-width: 15px;
3227
+ min-height: 10px;
3228
+ vertical-align: middle;
3229
+ }
3230
+
3231
+ th.scen-hdr {
3232
+ text-align: left;
3233
+ }
3234
+
3235
+ th.leaf-conf {
3236
+ border-bottom: 1.5px solid Silver;
3237
+ cursor: pointer;
3238
+ }
3239
+
3240
+ th.leaf-conf:hover {
3241
+ box-shadow: 0px 0px 0px 2px rgba(96,64,0,0.5) inset;
3242
+ }
3243
+
3244
+ th.sel-leaf {
3245
+ box-shadow: 0px 0px 0px 2px Orange inset;
3246
+ }
3247
+
3248
+ th.scen-v-ttl {
3249
+ border-right: 2px solid #1858b0;
3250
+ max-width: 14px;
3251
+ overflow: visible;
3252
+ font-weight: normal;
3253
+ font-style: italic;
3254
+ background-color: #f4f0f2;
3255
+ }
3256
+
3257
+ div.v-rot {
3258
+ position: relative;
3259
+ left: -10px;
3260
+ top: 0;
3261
+ text-align: center;
3262
+ white-space: nowrap !important;
3263
+ float: left;
3264
+ min-width: 400%;
3265
+ margin-left: -150%;
3266
+ transform: rotate(-90deg);
3267
+ transform-origin: center center 0;
3268
+ font-weight: normal;
3269
+ font-style: italic;
3270
+ }
3271
+
3272
+ td.data-cell {
3273
+ border: 1px solid Silver;
3274
+ min-width: 40px;
3275
+ min-height: 12px;
3276
+ background-color: white;
3277
+ text-align: right;
3278
+ }
3279
+
3280
+ td.data-cell:hover {
3281
+ cursor: pointer;
3282
+ box-shadow: Black 0px 0px 0px 2px inset;
3283
+ font-weight: bold;
3284
+ }
3285
+
3286
+ td.not-run {
3287
+ background-color: #e0e0ec;
3288
+ color: white;
3289
+ font-size: 10px;
3290
+ text-align: center;
3291
+ cursor: default;
3292
+ pointer-events: none !important;
3293
+ }
3294
+
3295
+ td.in-chart {
3296
+ box-shadow: gray -0.5px -0.5px 1px 1.5px inset;
3297
+ font-weight: bold;
3298
+ }
3299
+
3300
+ #viewer-spinners {
3301
+ position: absolute;
3302
+ bottom: 2px;
3303
+ left: 2px;
3304
+ }
3305
+
3306
+ div.spinner {
3307
+ display: inline-block;
3308
+ border: 1px solid Silver;
3309
+ border-radius: 3px;
3310
+ font-size: 10px;
3311
+ margin-right: 6px;
3312
+ }
3313
+
3314
+ div.spin-min,
3315
+ div.spin-plus {
3316
+ display: inline-block;
3317
+ cursor: pointer;
3318
+ background-color: Silver;
3319
+ color: Black;
3320
+ padding: 0 1px;
3321
+ }
3322
+
3323
+ div.spin-min:hover,
3324
+ div.spin-plus:hover {
3325
+ background-color: #808080;
3326
+ color: white;
3327
+ }
3328
+
3329
+ div.spin-val {
3330
+ display: inline-block;
3331
+ width: 12px;
3332
+ max-width: 12px;
3333
+ overflow: hidden;
3334
+ text-align: center;
3335
+ vertical-align: bottom;
3336
+ }
3337
+
3338
+ div.no-spin {
3339
+ background-color: #e0e0e0;
3340
+ color: Silver;
3341
+ pointer-events: none;
3342
+ }
3343
+
3344
+ #xp-config-spinner {
3345
+ border-width: 1.5px;
3346
+ border-color: #f4c400;
3347
+ }
3348
+
3349
+ #xp-scen-spinner {
3350
+ border-width: 1.5px;
3351
+ border-color: #2484e0;
3352
+ }
3353
+
3354
+ div.color-scale {
3355
+ display:inline-block;
3356
+ vertical-align: bottom;
3357
+ width: 14px;
3358
+ height: 14px;
3359
+ border: 1px solid Silver;
3360
+ margin-left: 4px;
3361
+ cursor: pointer;
3362
+ }
3363
+
3364
+ div.color-scale:hover {
3365
+ border-color: rgba(0,0,0,0.5);
3366
+ box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.5) inset;
3367
+ }
3368
+
3369
+ div.sel-cs {
3370
+ border-color: Black;
3371
+ box-shadow: 0px 0px 0px 1.5px Black inset;
3372
+ }
3373
+
3374
+ div.blue-to-red {
3375
+ background: linear-gradient(180deg, #2e86de 0%, #fff8ff 50%, #ee5253 100%);
3376
+ }
3377
+
3378
+ div.red-to-blue {
3379
+ background: linear-gradient(180deg, #ee5253 0%, #fff8ff 50%, #2e86de 100%);
3380
+ }
3381
+
3382
+ div.green-to-red {
3383
+ background: linear-gradient(180deg, #10ac84 0%, #feca57 50%, #ee5253 100%);
3384
+ }
3385
+
3386
+ div.red-to-green {
3387
+ background: linear-gradient(180deg, #ee5253 0%, #feca57 50%, #10ac84 100%);
3388
+ }
3389
+
3390
+ div.no-colors {
3391
+ background: #fafafa;
3392
+ }
3393
+
3394
+ #sa-copy-btn,
3395
+ #sa-copy-data-btn,
3396
+ #xv-copy-btn,
3397
+ #xv-chart-btn {
3398
+ display: inline-block;
3399
+ vertical-align: bottom;
3400
+ width: 19px;
3401
+ height: 19px;
3402
+ margin-left: 5px;
3403
+ margin-bottom: -2px;
3404
+ }
3405
+
3406
+ #xp-new-dlg {
3407
+ width: 240px;
3408
+ height: 45px;
3409
+ }
3410
+
3411
+ #xp-new-name {
3412
+ position: absolute;
3413
+ bottom: 2px;
3414
+ left: 2px;
3415
+ width: calc(100% - 6px);
3416
+ }
3417
+
3418
+ #xp-rename-dlg {
3419
+ width: 240px;
3420
+ height: 45px;
3421
+ }
3422
+
3423
+ #xp-rename-name {
3424
+ position: absolute;
3425
+ bottom: 2px;
3426
+ left: 2px;
3427
+ width: calc(100% - 6px);
3428
+ }
3429
+
3430
+ #xp-parameter-dlg {
3431
+ width: 270px;
3432
+ height: 45px;
3433
+ }
3434
+
3435
+ #xp-parameter-select {
3436
+ position: absolute;
3437
+ bottom: 2px;
3438
+ left: 2px;
3439
+ width: calc(100% - 6px);
3440
+ }
3441
+
3442
+ /* the EDIT SETTINGS DIMENSIONS dialog allows editing these dimensions */
3443
+ /* NOTE: many styles in common with the EDIT ACTOR DIMENSIONS dialog */
3444
+ #xp-settings-dlg {
3445
+ width: 270px;
3446
+ height: 236px;
3447
+ }
3448
+
3449
+ #xp-actor-s-header,
3450
+ #xp-settings-s-header,
3451
+ #xp-settings-d-header {
3452
+ margin: 2px;
3453
+ }
3454
+
3455
+ #xp-actor-s-header > img,
3456
+ #xp-settings-s-header > img,
3457
+ #xp-settings-d-header > img {
3458
+ margin-left: 5px;
3459
+ margin-bottom: -1px;
3460
+ vertical-align: bottom;
3461
+ }
3462
+
3463
+ #xp-settings-s-scroll-area,
3464
+ #xp-settings-d-scroll-area {
3465
+ width: 266px;
3466
+ margin: 2px;
3467
+ height: 80px;
3468
+ overflow: auto;
3469
+ }
3470
+
3471
+ #xp-actor-dimension-table,
3472
+ #xp-settings-s-table,
3473
+ #xp-settings-d-table {
3474
+ background-color: white;
3475
+ border-collapse: collapse;
3476
+ border: 1px solid Silver;
3477
+ width: 100%;
3478
+ }
3479
+
3480
+ #xp-actor-dimension-table > tbody > tr:hover,
3481
+ #xp-settings-s-table > tbody > tr:hover,
3482
+ #xp-settings-d-table > tbody > tr:hover,
3483
+ #xp-clusters-table > tbody > tr:hover {
3484
+ background-color: #dfe0ff;
3485
+ }
3486
+
3487
+ #xp-actor-dimension-table > tbody > tr > td,
3488
+ #xp-settings-s-table > tbody > tr > td,
3489
+ #xp-clusters-table > tbody > tr > td {
3490
+ border: 1px solid Silver;
3491
+ }
3492
+
3493
+ #xp-settings-selector-dlg {
3494
+ width: 370px;
3495
+ height: 45px;
3496
+ }
3497
+
3498
+ #xp-actor-selector-code,
3499
+ #xp-settings-selector-code {
3500
+ width: 80px;
3501
+ }
3502
+
3503
+ #xp-settings-selector-string {
3504
+ width: 182px;
3505
+ font-family: monospace;
3506
+ }
3507
+
3508
+ #xp-settings-dimension-dlg {
3509
+ width: 295px;
3510
+ height: 45px;
3511
+ }
3512
+
3513
+ #xp-settings-dimension-string {
3514
+ width: 234px;
3515
+ }
3516
+
3517
+ span.sd-clear {
3518
+ font-size: 10px;
3519
+ font-style: italic;
3520
+ font-weight: normal;
3521
+ margin-left: 5px;
3522
+ }
3523
+
3524
+ /* the ACTOR DIMENSION dialog allows editing this dimension */
3525
+ #xp-actor-dimension-dlg {
3526
+ width: 150px;
3527
+ height: 160px;
3528
+ }
3529
+
3530
+ #xp-actor-dimension-scroll-area {
3531
+ width: calc(100% - 4px);
3532
+ margin: 2px;
3533
+ height: calc(100% - 40px);
3534
+ overflow: auto;
3535
+ }
3536
+
3537
+ #xp-actor-selector-dlg {
3538
+ width: 255px;
3539
+ height: 68px;
3540
+ }
3541
+
3542
+ #xp-actor-selector-rounds {
3543
+ width: 150px;
3544
+ font-family: monospace;
3545
+ }
3546
+
3547
+ #xp-clusters-dlg {
3548
+ width: 408px;
3549
+ height: min-content;
3550
+ }
3551
+
3552
+ #xp-clusters-select {
3553
+ width: 380px;
3554
+ font-size: 12px;
3555
+ margin: 2px;
3556
+ }
3557
+
3558
+ #xp-clusters-add-btn {
3559
+ position: absolute;
3560
+ top: 23px;
3561
+ left: 386px;
3562
+ height: 18px;
3563
+ width: 18px;
3564
+ }
3565
+
3566
+ #xp-clusters-no-list {
3567
+ width: 398px;
3568
+ text-align: center;
3569
+ font-style: italic;
3570
+ padding: 2px;
3571
+ margin: 2px;
3572
+ border: 1px solid silver;
3573
+ }
3574
+ #xp-clusters-list {
3575
+ margin: 2px;
3576
+ }
3577
+
3578
+ #xp-clusters-scroll-hdr {
3579
+ font-weight: bold;
3580
+ }
3581
+
3582
+ #xp-clusters-name-hdr {
3583
+ width: 300px;
3584
+ display: inline-block;
3585
+ }
3586
+
3587
+ #xp-clusters-selectors-hdr {
3588
+ width: 100px;
3589
+ display: inline-block;
3590
+ }
3591
+
3592
+ #xp-clusters-scroll {
3593
+ width: 100%;
3594
+ max-height: 250px;
3595
+ overflow-x: hidden;
3596
+ overflow-y: auto;
3597
+ border-top: 1px solid Silver;
3598
+ }
3599
+
3600
+ #xp-clusters-table > tbody > tr > td:last-child {
3601
+ width: 100px;
3602
+ max-width: 100px;
3603
+ }
3604
+
3605
+ #xp-clusters-selectors-div {
3606
+ margin: 2px;
3607
+ width: calc(100% - 4px);
3608
+ }
3609
+
3610
+ #xp-clusters-selectors {
3611
+ width: 318px;
3612
+ height: 16px !important;
3613
+ font-size: 12px;
3614
+ }
3615
+
3616
+ #xp-clusters-delete-btn {
3617
+ position: absolute;
3618
+ bottom: 2px;
3619
+ right: 2px;
3620
+ height: 18px;
3621
+ width: 18px;
3622
+ }
3623
+
3624
+
3625
+ /* the REPOSITORY DIALOG displays the repository browser */
3626
+ #repository-dlg {
3627
+ display: none;
3628
+ z-index: 30;
3629
+ margin: 0;
3630
+ width: 300px;
3631
+ height: 300px;
3632
+ min-width: 275px;
3633
+ min-height: 200px;
3634
+ max-height: 99vh;
3635
+ max-width: 99vw;
3636
+ }
3637
+
3638
+ #repository-not-implemented {
3639
+ position: absolute;
3640
+ top: 22px;
3641
+ left: 2px;
3642
+ width: calc(100% - 4px);
3643
+ height: calc(100% - 24px);
3644
+ text-align: center;
3645
+ display: none;
3646
+ }
3647
+
3648
+ #repository-pane {
3649
+ position: absolute;
3650
+ top: 21px;
3651
+ left: 1px;
3652
+ width: calc(100% - 2px);
3653
+ height: calc(100% - 24px);
3654
+ display: block;
3655
+ }
3656
+
3657
+ #repository-buttons {
3658
+ position: absolute;
3659
+ top: 1px;
3660
+ left: 1px;
3661
+ }
3662
+
3663
+ #repository-buttons > img.btn {
3664
+ height: 20px;
3665
+ width: 20px;
3666
+ }
3667
+
3668
+ #repo-remove-btn.disab,
3669
+ #delete-round-btn.v-disab {
3670
+ filter: grayscale(100%) brightness(150%) contrast(80%);
3671
+ }
3672
+
3673
+ #repo-include-btn.disab {
3674
+ filter: grayscale(100%) brightness(300%) contrast(80%);
3675
+ }
3676
+
3677
+ #repository-selector {
3678
+ position: absolute;
3679
+ left: 2px;
3680
+ top: 26px;
3681
+ width: calc(100% - 4px);
3682
+ }
3683
+
3684
+ #modules-header {
3685
+ position: absolute;
3686
+ top: 48px;
3687
+ left: 2px;
3688
+ font-weight: 600;
3689
+ }
3690
+
3691
+ #modules-scroll-area,
3692
+ #parameter-scroll-area {
3693
+ position: absolute;
3694
+ top: 64px;
3695
+ left: 2px;
3696
+ width: calc(100% - 4px);
3697
+ height: calc(100% - 81px);
3698
+ overflow-y: auto;
3699
+ border-top: 1px solid Silver;
3700
+ }
3701
+
3702
+ #modules-count {
3703
+ position: absolute;
3704
+ bottom: 0px;
3705
+ left: 2px;
3706
+ }
3707
+
3708
+ #add-repository-dlg {
3709
+ width: 280px;
3710
+ height: min-content;
3711
+ }
3712
+
3713
+ #access-repository-dlg {
3714
+ width: 276px;
3715
+ height: min-content;
3716
+ }
3717
+
3718
+ #access-repository-name {
3719
+ display: inline-block;
3720
+ font-style: italic;
3721
+ max-width: 130px;
3722
+ overflow: hidden;
3723
+ text-overflow: ellipsis;
3724
+ white-space: nowrap;
3725
+ margin-bottom: -3px;
3726
+ }
3727
+
3728
+ #store-in-repository-dlg,
3729
+ #store-bb-in-repository-dlg {
3730
+ width: 320px;
3731
+ height: 111px;
3732
+ }
3733
+
3734
+ #include-dlg {
3735
+ width: 320px;
3736
+ height: min-content;
3737
+ }
3738
+
3739
+ #include-name {
3740
+ font-family: monospace;
3741
+ max-width: 135px;
3742
+ display: inline-block;
3743
+ overflow: clip;
3744
+ white-space: nowrap;
3745
+ text-overflow: ellipsis;
3746
+ }
3747
+
3748
+ #include-prefix {
3749
+ width: calc(100% - 50px);
3750
+ font-size: 12px;
3751
+ }
3752
+
3753
+ #include-actor {
3754
+ width: calc(100% - 50px);
3755
+ font-size: 12px;
3756
+ margin-left: 9px;
3757
+ }
3758
+
3759
+ #include-scroll-area {
3760
+ margin: 2px;
3761
+ height: min-content;
3762
+ max-height: 350px !important;
3763
+ width: calc(100% - 4px);
3764
+ border-top: none;
3765
+ overflow-x: hidden;
3766
+ overflow-y: auto;
3767
+ }
3768
+
3769
+ tr.i-param {
3770
+ font-style: italic;
3771
+ border: 1px solid Silver;
3772
+ }
3773
+
3774
+ tr.o-param {
3775
+ font-weight: bold;
3776
+ border: 1px solid Silver;
3777
+ }
3778
+
3779
+ tr.no-param {
3780
+ font-weight: bold;
3781
+ border: 1px solid Red;
3782
+ color: Red;
3783
+ }
3784
+
3785
+ select.i-param {
3786
+ font-size: 11px;
3787
+ margin: 2px 0 0 2px;
3788
+ max-width: calc(100% - 15px);
3789
+ }
3790
+
3791
+ #confirm-delete-from-repo-dlg {
3792
+ width: 270px;
3793
+ height: 120px;
3794
+ }
3795
+
3796
+ #confirm-delete-from-repo-name {
3797
+ word-break: keep-all;
3798
+ white-space: nowrap;
3799
+ font-weight: bold;
3800
+ }
3801
+
3802
+ #confirm-delete-from-repo-mod-name {
3803
+ word-break: keep-all;
3804
+ white-space: nowrap;
3805
+ font-family: monospace;
3806
+ }
3807
+
3808
+ /* the FINDER DIALOG allows lookup of occurrences of entities */
3809
+ #finder-dlg {
3810
+ display: none;
3811
+ z-index: 40;
3812
+ margin: 0;
3813
+ width: 450px;
3814
+ height: 335px;
3815
+ min-width: 400px;
3816
+ min-height: 200px;
3817
+ max-height: 99vh;
3818
+ max-width: 99vw;
3819
+ opacity: 0.9;
3820
+ }
3821
+
3822
+ #finder-entity-imgs {
3823
+ display: inline-block;
3824
+ }
3825
+
3826
+ #finder-entity-imgs > img {
3827
+ height: 14px;
3828
+ width: 14px;
3829
+ margin-left: 3px;
3830
+ margin-bottom: -2px;
3831
+ }
3832
+
3833
+ #finder-filter-bar {
3834
+ position: absolute;
3835
+ top: 23px;
3836
+ left: 2px;
3837
+ width: calc(50% - 4px);
3838
+ }
3839
+
3840
+ #finder-filter-text {
3841
+ max-height: 16px;
3842
+ width: calc(100% - 1px);
3843
+ font-size: 12px;
3844
+ }
3845
+
3846
+ #finder-scroll-area {
3847
+ position: absolute;
3848
+ top: 43px;
3849
+ left: 2px;
3850
+ width: calc(50% - 4px);
3851
+ height: calc(100% - 62px);
3852
+ overflow-y: auto;
3853
+ border-top: 1px solid Silver;
3854
+ }
3855
+
3856
+ img.finder {
3857
+ height: 14px;
3858
+ width: 14px;
3859
+ margin-right: 2px;
3860
+ margin-bottom: -2px;
3861
+ }
3862
+
3863
+ #finder-status {
3864
+ position: absolute;
3865
+ bottom: 2px;
3866
+ left: 2px;
3867
+ width: 50%;
3868
+ }
3869
+
3870
+ #finder-copy-btn {
3871
+ position: absolute;
3872
+ height: 16px;
3873
+ width: 16px;
3874
+ bottom: 1px;
3875
+ right: calc(50% + 1px);
3876
+ display: none; /* NOTE: button is initially invisible */
3877
+ }
3878
+
3879
+ #finder-separator {
3880
+ position: absolute;
3881
+ top: 22px;
3882
+ left: calc(50%);
3883
+ height: calc(100% - 24px);
3884
+ width: 3px;
3885
+ border-left: 1.5px Silver ridge;
3886
+ }
3887
+
3888
+ #finder-item-header {
3889
+ position: absolute;
3890
+ top: 23px;
3891
+ left: calc(50% + 4px);
3892
+ width: calc(50% - 6px);
3893
+ white-space: nowrap;
3894
+ overflow: hidden;
3895
+ text-overflow: ellipsis;
3896
+ }
3897
+
3898
+ #finder-item-scroll-area {
3899
+ position: absolute;
3900
+ top: 43px;
3901
+ left: calc(50% + 4px);
3902
+ width: calc(50% - 6px);
3903
+ height: calc(50% - 20px);
3904
+ overflow-y: auto;
3905
+ border-top: 1px solid Silver;
3906
+ }
3907
+
3908
+ #finder-expression-hdr {
3909
+ position: absolute;
3910
+ top: calc(50% + 23px);
3911
+ left: calc(50% + 4px);
3912
+ }
3913
+
3914
+ #finder-expression-scroll-area {
3915
+ position: absolute;
3916
+ top: calc(50% + 38px);
3917
+ left: calc(50% + 4px);
3918
+ width: calc(50% - 6px);
3919
+ height: calc(50% - 48px);
3920
+ overflow-y: auto;
3921
+ border-top: 1px solid Silver;
3922
+ }
3923
+
3924
+
3925
+ /* the MONITOR DIALOG displays solver progress and messages */
3926
+ #monitor-dlg {
3927
+ display: none;
3928
+ z-index: 35;
3929
+ margin: 0;
3930
+ width: 680px;
3931
+ height: 250px;
3932
+ min-width: 250px;
3933
+ min-height: 150px;
3934
+ max-height: 99vh;
3935
+ max-width: 99vw;
3936
+ }
3937
+
3938
+ #monitor-tabs {
3939
+ width: calc(100% - 5px);
3940
+ }
3941
+
3942
+ #monitor-clear-btn {
3943
+ color: #603000;
3944
+ background-color: white;
3945
+ border: 1px solid #603000;
3946
+ box-shadow: inset #ffd0b0 0 0 8px 2px;
3947
+ }
3948
+
3949
+ #monitor-clear-btn:hover {
3950
+ box-shadow: inset #f0c0a0 0 0 11px 2px;
3951
+ }
3952
+
3953
+ #monitor-msg,
3954
+ #monitor-vbl,
3955
+ #monitor-eqs,
3956
+ #monitor-trc {
3957
+ margin: 2px;
3958
+ padding-top: 3px;
3959
+ width: calc(100% - 5px);
3960
+ height: calc(100% - 64px);
3961
+ font: 12px monospace;
3962
+ border: 1px solid Black;
3963
+ }
3964
+
3965
+ #monitor-blocks {
3966
+ position: absolute;
3967
+ bottom: 4px;
3968
+ left: 2px;
3969
+ }
3970
+
3971
+ #monitor-timer {
3972
+ position: absolute;
3973
+ bottom: 4px;
3974
+ left: 64px;
3975
+ min-width: 43px;
3976
+ text-align: right;
3977
+ }
3978
+
3979
+ #monitor-progress {
3980
+ position: absolute;
3981
+ bottom: 4px;
3982
+ left: 110px;
3983
+ height: 10px;
3984
+ border: 1px solid #dadada;
3985
+ border-radius: 5px;
3986
+ width: calc(100% - 140px);
3987
+ }
3988
+
3989
+ #monitor-progress-bar {
3990
+ height: 100%;
3991
+ width: 0%;
3992
+ box-shadow: inset 0 0 5px 0px #006000;
3993
+ border-radius: 5px;
3994
+ }
3995
+
3996
+ div.progress-block {
3997
+ background-color: rgba(0, 224, 0, 0.55);
3998
+ height: 9px;
3999
+ display: inline-block;
4000
+ vertical-align: top;
4001
+ margin-top: 0.5px;
4002
+ cursor: pointer;
4003
+ }
4004
+
4005
+ div.progress-block:hover {
4006
+ box-shadow: inset 0 0 0 1.8px #404040;
4007
+ }
4008
+
4009
+ div.progress-block:first-child {
4010
+ border-radius: 5px 0 0 5px;
4011
+ }
4012
+
4013
+ div.progress-block:last-child {
4014
+ border-radius: 0 5px 5px 0;
4015
+ }
4016
+
4017
+ div.progress-block:first-child:last-child {
4018
+ border-radius: 5px;
4019
+ }
4020
+
4021
+ div.even-pb {
4022
+ filter: brightness(120%);
4023
+ }
4024
+
4025
+ div.sel-pb {
4026
+ filter: saturate(15%) brightness(50%) contrast(150%);
4027
+ }
4028
+
4029
+ div.error-pb {
4030
+ background-color: rgba(210, 0, 0, 0.7);
4031
+ min-width: 1%;
4032
+ }
4033
+
4034
+ /* tab panes */
4035
+ /* NOTE: tabs appear "button style" to look the same across browsers */
4036
+ div.tabs {
4037
+ margin: 3px 2px -1px 2px;
4038
+ }
4039
+
4040
+ div.tab {
4041
+ color: gray;
4042
+ border: 1px solid gray;
4043
+ border-radius: 4px;
4044
+ display: inline-block;
4045
+ padding-left: 2px;
4046
+ padding-right: 2px;
4047
+ margin-bottom: 2px;
4048
+ cursor: pointer;
4049
+ }
4050
+
4051
+ div.tab:hover {
4052
+ background-color: #fefafc;
4053
+ }
4054
+
4055
+ div.sel-tab {
4056
+ color: Black;
4057
+ background-color: white;
4058
+ border: 1px solid Black;
4059
+ box-shadow: inset #bfc0e2 0 0 7px 2px;
4060
+ }
4061
+
4062
+ /* the CHANNEL DIALOG configures and activates the receiver */
4063
+ #channel-dlg {
4064
+ width: 258px;
4065
+ height: 102px;
4066
+ }
4067
+
4068
+ #channel-path,
4069
+ #channel-callback {
4070
+ width: 250px;
4071
+ font-size: 12px;
4072
+ margin-top: 2px;
4073
+ margin-bottom: 2px;
4074
+ }
4075
+
4076
+ /* the DOCUMENTATION DIALOG displays comments and Linny-R reference */
4077
+ #documentation-dlg {
4078
+ display: none;
4079
+ z-index: 150; /* should be highest of all dialogs (even modal ones) */
4080
+ margin: 0;
4081
+ width: 395px;
4082
+ height: 195px;
4083
+ min-width: 340px;
4084
+ min-height: 150px;
4085
+ max-height: 99vh;
4086
+ max-width: 99vw;
4087
+ opacity: 0.9;
4088
+ }
4089
+
4090
+ #docu-item-title {
4091
+ display: inline-block;
4092
+ max-width: calc(100% - 22px);
4093
+ white-space: nowrap;
4094
+ overflow: hidden;
4095
+ text-overflow: ellipsis;
4096
+ }
4097
+
4098
+ #docu-container {
4099
+ margin: 2px;
4100
+ width: calc(100% - 4px);
4101
+ height: calc(100% - 45px);
4102
+ }
4103
+
4104
+ #docu-viewer {
4105
+ height: 100%;
4106
+ overflow-y: auto;
4107
+ font-family: serif;
4108
+ font-size: 10pt;
4109
+ background-color: rgba(251, 253, 254, 0.5);
4110
+ }
4111
+
4112
+ #docu-viewer p {
4113
+ margin: 0 0 3px 0;
4114
+ }
4115
+
4116
+ #docu-viewer h1 {
4117
+ font-size: 160%;
4118
+ margin: 0 0 7px 0;
4119
+ }
4120
+
4121
+ #docu-viewer h2 {
4122
+ font-size: 130%;
4123
+ margin: 0 0 5px 0;
4124
+ }
4125
+
4126
+ #docu-viewer h3 {
4127
+ font-size: 110%;
4128
+ margin: 0 0 3px 0;
4129
+ }
4130
+
4131
+ #docu-viewer ins {
4132
+ color: Blue;
4133
+ }
4134
+
4135
+ #docu-viewer del {
4136
+ color: Red;
4137
+ }
4138
+
4139
+ #docu-viewer cite {
4140
+ font-style: normal;
4141
+ background-color: Yellow;
4142
+ }
4143
+
4144
+ #docu-viewer ul {
4145
+ padding-left: 14px;
4146
+ margin: 6px 0;
4147
+ }
4148
+
4149
+ #docu-viewer ol {
4150
+ padding-left: 21px;
4151
+ margin: 6px 0;
4152
+ }
4153
+
4154
+ #docu-viewer span.dsx {
4155
+ margin-left: 6px;
4156
+ font-size: 10pt;
4157
+ font-family: monospace;
4158
+ white-space: nowrap;
4159
+ }
4160
+
4161
+ td.markup {
4162
+ width: 50%;
4163
+ font-size: 8.5pt;
4164
+ font-family: monospace;
4165
+ vertical-align: top;
4166
+ padding-top: 5px;
4167
+ border-top: 1px dashed Silver;
4168
+ }
4169
+
4170
+ td.markdown {
4171
+ width: calc(50% - 8px);
4172
+ padding-left: 8px;
4173
+ padding-top: 3px;
4174
+ vertical-align: top;
4175
+ border-top: 1px dashed Silver;
4176
+ }
4177
+
4178
+ #docu-editor {
4179
+ display: none;
4180
+ height: 100%;
4181
+ width: 100%;
4182
+ }
4183
+
4184
+ #docu-edit-btn {
4185
+ position: absolute;
4186
+ left: 1px;
4187
+ bottom: 1px;
4188
+ width: 15px;
4189
+ height: 15px;
4190
+ }
4191
+
4192
+ #docu-model-info-btn {
4193
+ position: absolute;
4194
+ left: 30px;
4195
+ bottom: 1px;
4196
+ width: 15px;
4197
+ height: 15px;
4198
+ }
4199
+
4200
+ #docu-copy-btn {
4201
+ position: absolute;
4202
+ left: 50px;
4203
+ bottom: 1px;
4204
+ width: 15px;
4205
+ height: 15px;
4206
+ }
4207
+
4208
+ #compare-btn {
4209
+ position: absolute;
4210
+ left: 70px;
4211
+ bottom: 1px;
4212
+ width: 15px;
4213
+ height: 15px;
4214
+ }
4215
+
4216
+ #docu-save-btn {
4217
+ position: absolute;
4218
+ left: 1px;
4219
+ bottom: 1px;
4220
+ width: 15px;
4221
+ height: 15px;
4222
+ display: none;
4223
+ }
4224
+
4225
+ #docu-cancel-btn {
4226
+ position: absolute;
4227
+ left: 20px;
4228
+ bottom: 1px;
4229
+ width: 15px;
4230
+ height: 15px;
4231
+ filter: brightness(85%);
4232
+ display: none;
4233
+ }
4234
+
4235
+ #docu-info-btn {
4236
+ position: absolute;
4237
+ left: 40px;
4238
+ bottom: 0.5px;
4239
+ width: 16.5px;
4240
+ height: 16.5px;
4241
+ display: none;
4242
+ }
4243
+
4244
+ #docu-resume-btn {
4245
+ position: absolute;
4246
+ left: 2px;
4247
+ bottom: 1px;
4248
+ width: 15px;
4249
+ height: 15px;
4250
+ display: none;
4251
+ }
4252
+
4253
+ #docu-symbols {
4254
+ font-size: 10px;
4255
+ position: absolute;
4256
+ right: 20px;
4257
+ bottom: 2px;
4258
+ }
4259
+
4260
+ div.docu-sym {
4261
+ display: inline-block;
4262
+ cursor: pointer;
4263
+ border-radius: 3px;
4264
+ min-width: 11px;
4265
+ text-align: center;
4266
+ vertical-align: middle;
4267
+ }
4268
+
4269
+ div.docu-sym:hover {
4270
+ background-color: #bfc0e2;
4271
+ }
4272
+
4273
+ #docu-message-hint {
4274
+ font-size: 10px;
4275
+ font-style: italic;
4276
+ position: absolute;
4277
+ right: 20px;
4278
+ bottom: 3px;
4279
+ }
4280
+
4281
+ /* the CALL STACK modal displays the VM call stack */
4282
+ #call-stack-dlg {
4283
+ width: 300px;
4284
+ height: 250px;
4285
+ }
4286
+
4287
+ #call-stack-error {
4288
+ display: inline-block;
4289
+ }
4290
+
4291
+ #call-stack-table {
4292
+ width: calc(100% - 9px);
4293
+ height: calc(100% - 26px);
4294
+ margin: 2px;
4295
+ padding-left: 4px;
4296
+ border: solid 1px Silver;
4297
+ background-color: White;
4298
+ overflow: auto;
4299
+ }
4300
+
4301
+ div.call-stack-vbl {
4302
+ white-space: nowrap;
4303
+ overflow: hidden;
4304
+ text-overflow: ellipsis;
4305
+ /* cursor: pointer; */
4306
+ }
4307
+
4308
+ /*
4309
+ div.call-stack-vbl:hover {
4310
+ background-color: #f8f0f4;
4311
+ }
4312
+ */
4313
+
4314
+ div.call-stack-expr {
4315
+ font-family: monospace;
4316
+ font-size: 12px;
4317
+ overflow-x: hidden;
4318
+ overflow-y: auto;
4319
+ }
4320
+
4321
+ /* the CHECK UPDATE modal asks for permission to update the software */
4322
+ #check-update-dlg {
4323
+ width: 245px;
4324
+ height: 150px;
4325
+ }
4326
+
4327
+ #confirm-delete-from-repo-msg,
4328
+ #check-update-msg {
4329
+ width: calc(100% - 8px);
4330
+ height: calc(100% - 55px);
4331
+ margin: 3px;
4332
+ overflow: auto;
4333
+ }
4334
+
4335
+ #confirm-move-buttons,
4336
+ #confirm-delete-from-repo-buttons,
4337
+ #check-update-buttons {
4338
+ width: calc(100% - 8px);
4339
+ height: 23px;
4340
+ font-size: 16px;
4341
+ }
4342
+
4343
+ #confirm-move-buttons > img,
4344
+ #confirm-delete-from-repo-buttons > img,
4345
+ #check-update-buttons > img,
4346
+ #check-update-restart-btn > img,
4347
+ #check-update-reload-btn > img {
4348
+ float: none;
4349
+ height: 23px;
4350
+ width: 23px;
4351
+ vertical-align: middle;
4352
+ }
4353
+
4354
+ /* Linny-R logo icon animation in 60 frames */
4355
+
4356
+ #fr00 {
4357
+ visibility: hidden;
4358
+ animation: 3s show infinite;
4359
+ animation-delay: 0.05s;
4360
+ }
4361
+
4362
+ #fr01 {
4363
+ visibility: hidden;
4364
+ animation: 3s show infinite;
4365
+ animation-delay: 0.1s;
4366
+ }
4367
+
4368
+ #fr02 {
4369
+ visibility: hidden;
4370
+ animation: 3s show infinite;
4371
+ animation-delay: 0.15s;
4372
+ }
4373
+
4374
+ #fr03 {
4375
+ visibility: hidden;
4376
+ animation: 3s show infinite;
4377
+ animation-delay: 0.2s;
4378
+ }
4379
+
4380
+ #fr04 {
4381
+ visibility: hidden;
4382
+ animation: 3s show infinite;
4383
+ animation-delay: 0.25s;
4384
+ }
4385
+
4386
+ #fr05 {
4387
+ visibility: hidden;
4388
+ animation: 3s show infinite;
4389
+ animation-delay: 0.3s;
4390
+ }
4391
+
4392
+ #fr06 {
4393
+ visibility: hidden;
4394
+ animation: 3s show infinite;
4395
+ animation-delay: 0.35s;
4396
+ }
4397
+
4398
+ #fr07 {
4399
+ visibility: hidden;
4400
+ animation: 3s show infinite;
4401
+ animation-delay: 0.4s;
4402
+ }
4403
+
4404
+ #fr08 {
4405
+ visibility: hidden;
4406
+ animation: 3s show infinite;
4407
+ animation-delay: 0.45s;
4408
+ }
4409
+
4410
+ #fr09 {
4411
+ visibility: hidden;
4412
+ animation: 3s show infinite;
4413
+ animation-delay: 0.5s;
4414
+ }
4415
+
4416
+ #fr10 {
4417
+ visibility: hidden;
4418
+ animation: 3s show infinite;
4419
+ animation-delay: 0.55s;
4420
+ }
4421
+
4422
+ #fr11 {
4423
+ visibility: hidden;
4424
+ animation: 3s show infinite;
4425
+ animation-delay: 0.6s;
4426
+ }
4427
+
4428
+ #fr12 {
4429
+ visibility: hidden;
4430
+ animation: 3s show infinite;
4431
+ animation-delay: 0.65s;
4432
+ }
4433
+
4434
+ #fr13 {
4435
+ visibility: hidden;
4436
+ animation: 3s show infinite;
4437
+ animation-delay: 0.7s;
4438
+ }
4439
+
4440
+ #fr14 {
4441
+ visibility: hidden;
4442
+ animation: 3s show infinite;
4443
+ animation-delay: 0.75s;
4444
+ }
4445
+
4446
+ #fr15 {
4447
+ visibility: hidden;
4448
+ animation: 3s show infinite;
4449
+ animation-delay: 0.8s;
4450
+ }
4451
+
4452
+ #fr16 {
4453
+ visibility: hidden;
4454
+ animation: 3s show infinite;
4455
+ animation-delay: 0.85s;
4456
+ }
4457
+
4458
+ #fr17 {
4459
+ visibility: hidden;
4460
+ animation: 3s show infinite;
4461
+ animation-delay: 0.9s;
4462
+ }
4463
+
4464
+ #fr18 {
4465
+ visibility: hidden;
4466
+ animation: 3s show infinite;
4467
+ animation-delay: 0.95s;
4468
+ }
4469
+
4470
+ #fr19 {
4471
+ visibility: hidden;
4472
+ animation: 3s show infinite;
4473
+ animation-delay: 1s;
4474
+ }
4475
+
4476
+ #fr20 {
4477
+ visibility: hidden;
4478
+ animation: 3s show infinite;
4479
+ animation-delay: 1.05s;
4480
+ }
4481
+
4482
+ #fr21 {
4483
+ visibility: hidden;
4484
+ animation: 3s show infinite;
4485
+ animation-delay: 1.1s;
4486
+ }
4487
+
4488
+ #fr22 {
4489
+ visibility: hidden;
4490
+ animation: 3s show infinite;
4491
+ animation-delay: 1.15s;
4492
+ }
4493
+
4494
+ #fr23 {
4495
+ visibility: hidden;
4496
+ animation: 3s show infinite;
4497
+ animation-delay: 1.2s;
4498
+ }
4499
+
4500
+ #fr24 {
4501
+ visibility: hidden;
4502
+ animation: 3s show infinite;
4503
+ animation-delay: 1.25s;
4504
+ }
4505
+
4506
+ #fr25 {
4507
+ visibility: hidden;
4508
+ animation: 3s show infinite;
4509
+ animation-delay: 1.3s;
4510
+ }
4511
+
4512
+ #fr26 {
4513
+ visibility: hidden;
4514
+ animation: 3s show infinite;
4515
+ animation-delay: 1.35s;
4516
+ }
4517
+
4518
+ #fr27 {
4519
+ visibility: hidden;
4520
+ animation: 3s show infinite;
4521
+ animation-delay: 1.4s;
4522
+ }
4523
+
4524
+ #fr28 {
4525
+ visibility: hidden;
4526
+ animation: 3s show infinite;
4527
+ animation-delay: 1.45s;
4528
+ }
4529
+
4530
+ #fr29 {
4531
+ visibility: hidden;
4532
+ animation: 3s show infinite;
4533
+ animation-delay: 1.5s;
4534
+ }
4535
+
4536
+ #fr30 {
4537
+ visibility: hidden;
4538
+ animation: 3s show infinite;
4539
+ animation-delay: 1.55s;
4540
+ }
4541
+
4542
+ #fr31 {
4543
+ visibility: hidden;
4544
+ animation: 3s show infinite;
4545
+ animation-delay: 1.6s;
4546
+ }
4547
+
4548
+ #fr32 {
4549
+ visibility: hidden;
4550
+ animation: 3s show infinite;
4551
+ animation-delay: 1.65s;
4552
+ }
4553
+
4554
+ #fr33 {
4555
+ visibility: hidden;
4556
+ animation: 3s show infinite;
4557
+ animation-delay: 1.7s;
4558
+ }
4559
+
4560
+ #fr34 {
4561
+ visibility: hidden;
4562
+ animation: 3s show infinite;
4563
+ animation-delay: 1.75s;
4564
+ }
4565
+
4566
+ #fr35 {
4567
+ visibility: hidden;
4568
+ animation: 3s show infinite;
4569
+ animation-delay: 1.8s;
4570
+ }
4571
+
4572
+ #fr36 {
4573
+ visibility: hidden;
4574
+ animation: 3s show infinite;
4575
+ animation-delay: 1.85s;
4576
+ }
4577
+
4578
+ #fr37 {
4579
+ visibility: hidden;
4580
+ animation: 3s show infinite;
4581
+ animation-delay: 1.9s;
4582
+ }
4583
+
4584
+ #fr38 {
4585
+ visibility: hidden;
4586
+ animation: 3s show infinite;
4587
+ animation-delay: 1.95s;
4588
+ }
4589
+
4590
+ #fr39 {
4591
+ visibility: hidden;
4592
+ animation: 3s show infinite;
4593
+ animation-delay: 2s;
4594
+ }
4595
+
4596
+ #fr40 {
4597
+ visibility: hidden;
4598
+ animation: 3s show infinite;
4599
+ animation-delay: 2.05s;
4600
+ }
4601
+
4602
+ #fr41 {
4603
+ visibility: hidden;
4604
+ animation: 3s show infinite;
4605
+ animation-delay: 2.1s;
4606
+ }
4607
+
4608
+ #fr42 {
4609
+ visibility: hidden;
4610
+ animation: 3s show infinite;
4611
+ animation-delay: 2.15s;
4612
+ }
4613
+
4614
+ #fr43 {
4615
+ visibility: hidden;
4616
+ animation: 3s show infinite;
4617
+ animation-delay: 2.2s;
4618
+ }
4619
+
4620
+ #fr44 {
4621
+ visibility: hidden;
4622
+ animation: 3s show infinite;
4623
+ animation-delay: 2.25s;
4624
+ }
4625
+
4626
+ #fr45 {
4627
+ visibility: hidden;
4628
+ animation: 3s show infinite;
4629
+ animation-delay: 2.3s;
4630
+ }
4631
+
4632
+ #fr46 {
4633
+ visibility: hidden;
4634
+ animation: 3s show infinite;
4635
+ animation-delay: 2.35s;
4636
+ }
4637
+
4638
+ #fr47 {
4639
+ visibility: hidden;
4640
+ animation: 3s show infinite;
4641
+ animation-delay: 2.4s;
4642
+ }
4643
+
4644
+ #fr48 {
4645
+ visibility: hidden;
4646
+ animation: 3s show infinite;
4647
+ animation-delay: 2.45s;
4648
+ }
4649
+
4650
+ #fr49 {
4651
+ visibility: hidden;
4652
+ animation: 3s show infinite;
4653
+ animation-delay: 2.5s;
4654
+ }
4655
+
4656
+ #fr50 {
4657
+ visibility: hidden;
4658
+ animation: 3s show infinite;
4659
+ animation-delay: 2.55s;
4660
+ }
4661
+
4662
+ #fr51 {
4663
+ visibility: hidden;
4664
+ animation: 3s show infinite;
4665
+ animation-delay: 2.6s;
4666
+ }
4667
+
4668
+ #fr52 {
4669
+ visibility: hidden;
4670
+ animation: 3s show infinite;
4671
+ animation-delay: 2.65s;
4672
+ }
4673
+
4674
+ #fr53 {
4675
+ visibility: hidden;
4676
+ animation: 3s show infinite;
4677
+ animation-delay: 2.7s;
4678
+ }
4679
+
4680
+ #fr54 {
4681
+ visibility: hidden;
4682
+ animation: 3s show infinite;
4683
+ animation-delay: 2.75s;
4684
+ }
4685
+
4686
+ #fr55 {
4687
+ visibility: hidden;
4688
+ animation: 3s show infinite;
4689
+ animation-delay: 2.8s;
4690
+ }
4691
+
4692
+ #fr56 {
4693
+ visibility: hidden;
4694
+ animation: 3s show infinite;
4695
+ animation-delay: 2.85s;
4696
+ }
4697
+
4698
+ #fr57 {
4699
+ visibility: hidden;
4700
+ animation: 3s show infinite;
4701
+ animation-delay: 2.9s;
4702
+ }
4703
+
4704
+ #fr58 {
4705
+ visibility: hidden;
4706
+ animation: 3s show infinite;
4707
+ animation-delay: 2.95s;
4708
+ }
4709
+
4710
+ #fr59 {
4711
+ visibility: hidden;
4712
+ animation: 3s show infinite;
4713
+ animation-delay: 3s;
4714
+ }
4715
+
4716
+ @keyframes show {
4717
+ 0% { visibility: visible;}
4718
+ 1.666% { visibility: visible; }
4719
+ 1.667% { visibility: hidden; }
4720
+ 100% { visibility: hidden; }
4721
+ }
4722
+