goctests0 commited on
Commit
ca404b1
·
verified ·
1 Parent(s): 744644d

Upload style.css

Browse files
Files changed (1) hide show
  1. static/css/style.css +156 -0
static/css/style.css CHANGED
@@ -1095,6 +1095,162 @@ audio {
1095
  color: var(--color-success);
1096
  }
1097
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1098
  /* Toast confirmation, appears briefly after an action completes */
1099
  .toast {
1100
  position: fixed;
 
1095
  color: var(--color-success);
1096
  }
1097
 
1098
+ /* Waiting-state status timeline: 3 honest steps (submitted / waiting /
1099
+ ready). Only "submitted" and "waiting" are ever shown as reached,
1100
+ because that's genuinely all two states the backend tracks; the app
1101
+ never fabricates an in-between "provider is reviewing" stage. */
1102
+ .status-timeline {
1103
+ display: flex;
1104
+ align-items: flex-start;
1105
+ margin: var(--space-4) 0 var(--space-5);
1106
+ }
1107
+
1108
+ .timeline-step {
1109
+ display: flex;
1110
+ flex-direction: column;
1111
+ align-items: center;
1112
+ flex: 1;
1113
+ min-width: 0;
1114
+ text-align: center;
1115
+ }
1116
+
1117
+ .timeline-dot {
1118
+ width: 16px;
1119
+ height: 16px;
1120
+ border-radius: 50%;
1121
+ background: var(--color-surface);
1122
+ border: 2px solid var(--color-border);
1123
+ margin-bottom: var(--space-2);
1124
+ flex-shrink: 0;
1125
+ }
1126
+
1127
+ .timeline-step.done .timeline-dot {
1128
+ background: var(--color-primary);
1129
+ border-color: var(--color-primary);
1130
+ }
1131
+
1132
+ .timeline-step.current .timeline-dot {
1133
+ border-color: var(--color-primary);
1134
+ box-shadow: 0 0 0 4px var(--color-primary-light);
1135
+ animation: timeline-pulse 1.8s ease-in-out infinite;
1136
+ }
1137
+
1138
+ @keyframes timeline-pulse {
1139
+ 0%, 100% { box-shadow: 0 0 0 4px var(--color-primary-light); }
1140
+ 50% { box-shadow: 0 0 0 7px var(--color-primary-light); }
1141
+ }
1142
+
1143
+ @media (prefers-reduced-motion: reduce) {
1144
+ .timeline-step.current .timeline-dot {
1145
+ animation: none;
1146
+ }
1147
+ }
1148
+
1149
+ .timeline-label {
1150
+ font-size: var(--text-sm);
1151
+ font-weight: 600;
1152
+ color: var(--color-text-secondary);
1153
+ line-height: 1.3;
1154
+ }
1155
+
1156
+ .timeline-step.done .timeline-label,
1157
+ .timeline-step.current .timeline-label {
1158
+ color: var(--color-text);
1159
+ }
1160
+
1161
+ .timeline-connector {
1162
+ flex: 0 0 auto;
1163
+ width: 32px;
1164
+ height: 2px;
1165
+ background: var(--color-border);
1166
+ margin: 7px -4px 0;
1167
+ }
1168
+
1169
+ /* General, clearly-non-personalized safety guidance shown while waiting.
1170
+ Uses the primary-light tint rather than the error/warning colors, since
1171
+ it's reassurance and a standing safety note, not an alert. */
1172
+ .waiting-note {
1173
+ background: var(--color-primary-light);
1174
+ border-left: 3px solid var(--color-primary);
1175
+ border-radius: var(--radius-sm);
1176
+ padding: var(--space-3) var(--space-4);
1177
+ font-size: var(--text-sm);
1178
+ color: var(--color-text);
1179
+ margin-bottom: var(--space-4);
1180
+ }
1181
+
1182
+ .waiting-note strong {
1183
+ color: var(--color-primary-dark);
1184
+ }
1185
+
1186
+ /* Custom audio player, replaces the bare native <audio controls> element
1187
+ so playback matches the rest of the design system instead of looking
1188
+ like a raw, inconsistently-styled browser widget. */
1189
+ .audio-player audio {
1190
+ display: none;
1191
+ }
1192
+
1193
+ .audio-player-controls {
1194
+ display: flex;
1195
+ align-items: center;
1196
+ gap: var(--space-2);
1197
+ }
1198
+
1199
+ .audio-btn {
1200
+ display: inline-flex;
1201
+ align-items: center;
1202
+ justify-content: center;
1203
+ flex-shrink: 0;
1204
+ width: 44px;
1205
+ height: 44px;
1206
+ border-radius: 50%;
1207
+ border: none;
1208
+ background: var(--color-primary);
1209
+ color: var(--color-text-on-primary);
1210
+ cursor: pointer;
1211
+ transition: background 150ms ease, transform 100ms ease;
1212
+ }
1213
+
1214
+ .audio-btn svg {
1215
+ width: 20px;
1216
+ height: 20px;
1217
+ }
1218
+
1219
+ .audio-btn:hover {
1220
+ background: var(--color-primary-dark);
1221
+ }
1222
+
1223
+ .audio-btn:active {
1224
+ transform: scale(0.94);
1225
+ }
1226
+
1227
+ .audio-btn-sm {
1228
+ width: 36px;
1229
+ height: 36px;
1230
+ background: var(--color-primary-light);
1231
+ color: var(--color-primary-dark);
1232
+ }
1233
+
1234
+ .audio-btn-sm:hover {
1235
+ background: #DAE1CD;
1236
+ }
1237
+
1238
+ .audio-time {
1239
+ font-size: var(--text-sm);
1240
+ font-variant-numeric: tabular-nums;
1241
+ color: var(--color-text-secondary);
1242
+ flex-shrink: 0;
1243
+ min-width: 34px;
1244
+ }
1245
+
1246
+ .audio-seek {
1247
+ flex: 1;
1248
+ min-width: 0;
1249
+ height: 4px;
1250
+ accent-color: var(--color-primary);
1251
+ cursor: pointer;
1252
+ }
1253
+
1254
  /* Toast confirmation, appears briefly after an action completes */
1255
  .toast {
1256
  position: fixed;