File size: 3,009 Bytes
3ae7fa7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eecdb88
 
 
 
3ae7fa7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/* Page-specific styles for /feedback. The bulk of the look comes from
   mobile.css (imported first): .step / .panel / .controls / .primary /
   .form-error / hero-* are all reused so this form matches the /m flow.
   This file only adds what the step CSS doesn't already cover: the two
   control types unique to this form (textarea + file), the link-styled
   primary button on the success screen, and the success screen itself. */

/* Slightly more breathing room between questions than the shared
   .controls default (14px) β€” this form reads as a vertical
   questionnaire, so the questions want clearer separation. */
.step-feedback .controls {
  gap: 22px;
}

/* Textarea + file input inside .controls β€” mobile.css styles
   input[type="text"|"email"] and select, but not these two. */
.controls textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 14px;
  /* β‰₯16px keeps iOS Safari from auto-zooming on focus. */
  font-size: 1rem;
  line-height: 1.4;
  font-family: inherit;
  background: white;
  color: var(--ink);
  resize: vertical;
  min-height: 72px;
}

.controls input[type="file"] {
  width: 100%;
  font-size: 1rem;
  /* Hide the native status text ("No file chosen" / the picked filename) β€”
     it's redundant next to the labelled button. The button keeps its own
     color (set on ::file-selector-button below), so it stays visible. */
  color: transparent;
}

/* Enlarge the native "Choose File" button β€” iOS Safari renders it small
   by default. Both selectors cover Safari (-webkit-) and the standard. */
.controls input[type="file"]::-webkit-file-upload-button,
.controls input[type="file"]::file-selector-button {
  font-size: 1rem;
  padding: 10px 16px;
  margin-right: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: white;
  color: var(--accent);
  cursor: pointer;
}

/* Inline per-field validation error β€” sits directly under the offending
   control (injected by feedback.js). Bottom-of-form errors are invisible
   on mobile once the field is focused and the keyboard covers them, so
   the message lives next to the field instead. */
.field-error {
  display: block;
  margin-top: 2px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent);
}

/* Red ring on the control flagged invalid, so the field itself reads as
   the error target, not just the text below it. */
.controls input[aria-invalid="true"],
.controls select[aria-invalid="true"] {
  border-color: var(--accent);
}

/* --- Success screen --------------------------------------------- */

.fb-success {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.fb-success-inner {
  text-align: center;
  max-width: 36ch;
  margin: 0 auto;
}

.fb-success .hero-sub {
  margin: 0 auto 20px;
}

.fb-success-check {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: #d8f1de;
  color: #1f6b34;
  font-size: 34px;
  line-height: 64px;
  font-weight: 700;
}