this repo has no description
1:host { display: block; position: relative; font-family: var(--xo-font, monospace); font-size: var(--xo-font-size, 1em); margin-bottom: var(--xo-margin-bottom, 0.75em) }
2:host([mode="exercise"]) .cm-editor { border-left: 3px solid var(--xo-exercise-border, #4CAF50); }
3:host([mode="exercise"]) .cm-gutters { border-left: none !important; }
4.cm-editor { background: var(--xo-bg, transparent); color: var(--xo-text, inherit); }
5.cm-editor.cm-focused { outline: 1px dotted var(--xo-focus-outline, #AAA) !important }
6.cm-gutters { background: var(--xo-gutter-bg, inherit) !important; color: var(--xo-gutter-text, #6c6c6c) !important; border-right: 1px solid var(--xo-gutter-border, #ddd) !important; }
7.cm-cursor { border-left-color: var(--xo-text, currentColor) !important; }
8.cm-selectionBackground { background: var(--xo-selection, #AAA4) !important; }
9.cm-focused .cm-selectionBackground { background: var(--xo-selection-focused, #AAA6) !important; }
10.cm-tooltip { background: var(--xo-tooltip-bg, #fff) !important; color: var(--xo-tooltip-text, #333) !important; border: 1px solid var(--xo-tooltip-border, #ddd) !important; }
11.cm-tooltip-section {
12 max-width: 400px;
13 height: 1lh;
14 text-overflow: ellipsis; /* not working, because width/height must be px(?) */
15 padding: 0.3em 0.5em;
16 overflow: hidden;
17 color: var(--xo-tooltip-text, #333);
18}
19.cm-lineNumbers { min-width: var(--xo-line-numbers-min-width, 30px) }
20.cm-lineNumbers .cm-gutterElement { padding: var(--xo-gutter-element-padding, 0 3px 0 5px) !important; }
21.cm-content { padding-left: var(--xo-content-padding-left, 0) !important; }
22.cm-activeLine, .cm-activeLineGutter { background: var(--xo-active-line, transparent) !important }
23.cm-focused .cm-activeLine,
24.cm-focused .cm-activeLineGutter
25{
26 background: var(--xo-active-line-focused, #AAA2) !important;
27}
28
29.run_btn {
30 position: absolute; width: 100%; height: 100%; z-index: 999; pointer-events: none;
31}
32.run_btn button {
33 pointer-events: auto;
34 position: absolute; right: 2px; top: 2px;
35 width: 28px; height: 28px;
36 padding: 0; margin: 0;
37 border: 2.5px solid transparent;
38 border-radius: 50%;
39 background-color: var(--xo-btn-icon, currentColor);
40 cursor: pointer;
41 opacity: 0.4;
42 transition: opacity 0.15s ease;
43 box-sizing: border-box;
44 -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='white'/%3E%3C/svg%3E") center / contain no-repeat;
45 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='white'/%3E%3C/svg%3E") center / contain no-repeat;
46}
47.run_btn button::after {
48 content: "";
49 position: absolute;
50 top: 50%; left: 53%;
51 transform: translate(-50%, -50%);
52 width: 0; height: 0;
53 border-style: solid;
54 border-width: 5px 0 5px 8.5px;
55 border-color: transparent transparent transparent var(--xo-btn-play, white);
56}
57.run_btn button:hover { opacity: 0.8; }
58
59/* Running state: spinning arc with stop square */
60.run_btn button.running {
61 background-color: transparent;
62 -webkit-mask: none;
63 mask: none;
64 border-color: var(--xo-btn-spinner-track, rgba(128,128,128,0.15));
65 border-top-color: var(--xo-btn-spinner, #E53935);
66 opacity: 1;
67 animation: xo-spin 0.8s linear infinite;
68}
69.run_btn button.running::after {
70 width: 8px; height: 8px;
71 border: none;
72 left: 50%;
73 background: var(--xo-btn-spinner, #E53935);
74 border-radius: 1px;
75}
76.run_btn button.running:hover { opacity: 0.7; }
77@keyframes xo-spin { to { transform: rotate(360deg); } }
78
79.test-details { position: relative }
80.test-details summary {
81 cursor: pointer;
82 font-size: 0.85em;
83 color: var(--xo-test-summary-text, #666);
84 padding: 0.3em 0.5em;
85 user-select: none;
86}
87.test-details summary:hover { color: var(--xo-test-summary-hover, #333); }
88.test-indicator { font-weight: bold; margin-left: 0.2em; }
89.test-indicator.test-pass { color: var(--xo-test-pass, #4CAF50); }
90.test-indicator.test-fail { color: var(--xo-test-fail, #E53935); }
91.test-indicator.test-error { color: var(--xo-test-error, #FF9800); }
92
93.caml_stdout {
94 background: var(--xo-stdout-bg, #E8F6FF);
95 color: var(--xo-stdout-text, #141A6A);
96 margin: 0;
97 padding: 0.2em 0.2em;
98 padding-left: 0.7em;
99}
100.caml_stderr {
101 background: var(--xo-stderr-bg, #FDEEEE);
102 color: var(--xo-stderr-text, #EB5656);
103 margin: 0;
104 padding: 0.2em 0.2em;
105 padding-left: 0.7em;
106}
107.caml_meta {
108 margin: 0;
109 padding: 0.2em 0.5em;
110 font-style: italic;
111 color: var(--xo-meta-text, #444);
112 padding-bottom: 0.5em;
113 background: var(--xo-meta-bg, #eee);
114}
115.caml_html {
116 margin: 0;
117 padding: 0.2em 0.5em;
118 color: var(--xo-text, black);
119 border: 1px solid transparent;
120 white-space: collapse;
121}
122
123.reset_btn_wrap {
124 position: absolute; left: 0; bottom: 0; z-index: 999;
125 pointer-events: none;
126}
127.reset_exercise_btn {
128 pointer-events: auto;
129 cursor: pointer;
130 font-size: 0.75em;
131 padding: 0.15em 0.5em;
132 background: var(--xo-reset-btn-bg, rgba(0,0,0,0.05));
133 border: 1px solid var(--xo-reset-btn-border, rgba(0,0,0,0.15));
134 color: var(--xo-reset-btn-text, #888);
135 opacity: 0.5;
136 transition: opacity 0.15s;
137}
138.reset_exercise_btn:hover {
139 opacity: 1;
140 background: var(--xo-reset-btn-hover-bg, rgba(0,0,0,0.1));
141 color: var(--xo-reset-btn-hover-text, #333);
142}
143
144table, tr, td, th {
145 border: 1px solid var(--xo-text, black);
146 border-collapse: collapse;
147 padding: 0.2em;
148}