apps/cellar/static/styles.css 3.4 K raw
1
/* cellar — app-specific styles.
2
 * Shared reset / tokens / components come from /assets/darkmatter.css.
3
 */
4
5
textarea {
6
  min-height: 120px;
7
}
8
9
input[type="file"] {
10
  border: none;
11
  padding: 0;
12
  font-size: 12px;
13
}
14
15
button:disabled {
16
  opacity: 0.3;
17
  cursor: not-allowed;
18
}
19
20
/* Wine list (public) */
21
22
.wine-list {
23
  display: flex;
24
  flex-direction: column;
25
  width: 100%;
26
}
27
28
.wine-card {
29
  display: flex;
30
  align-items: center;
31
  gap: 1rem;
32
  padding: 12px 0;
33
  border-bottom: 1px solid #333;
34
  text-decoration: none;
35
}
36
37
.wine-card:hover {
38
  opacity: 0.7;
39
}
40
41
.wine-pentagon {
42
  flex-shrink: 0;
43
  width: 80px;
44
  height: 80px;
45
}
46
47
.wine-info {
48
  display: flex;
49
  flex-direction: column;
50
  gap: 2px;
51
}
52
53
.wine-name {
54
  font-size: 16px;
55
}
56
57
.wine-meta {
58
  font-size: 12px;
59
  opacity: 0.5;
60
}
61
62
/* Wine detail (public) */
63
64
.wine-detail {
65
  display: flex;
66
  flex-direction: column;
67
  gap: 1.5rem;
68
  width: 100%;
69
  padding-bottom: 4rem;
70
}
71
72
.wine-detail-top {
73
  display: grid;
74
  grid-template-columns: 1fr 1fr;
75
  gap: 1.5rem;
76
  align-items: center;
77
}
78
79
@media (max-width: 480px) {
80
  .wine-detail-top {
81
    grid-template-columns: 1fr;
82
  }
83
  .wine-image {
84
    max-height: none;
85
    width: 100%;
86
  }
87
}
88
89
.wine-image-wrap {
90
  width: 100%;
91
}
92
93
.wine-image {
94
  width: 100%;
95
  object-fit: cover;
96
  border-radius: 4px;
97
}
98
99
.wine-detail-name {
100
  font-size: 24px;
101
  font-weight: 700;
102
  letter-spacing: -0.5px;
103
}
104
105
.wine-detail-meta {
106
  display: flex;
107
  flex-direction: column;
108
  gap: 0.25rem;
109
}
110
111
.meta-row {
112
  display: flex;
113
  gap: 0.75rem;
114
  font-size: 14px;
115
}
116
117
.meta-label {
118
  font-size: 12px;
119
  opacity: 0.5;
120
}
121
122
.wine-detail-chart {
123
  display: flex;
124
  flex-direction: column;
125
  align-items: center;
126
  gap: 1rem;
127
  padding: 0.75rem;
128
}
129
130
.wine-detail-notes {
131
  display: flex;
132
  flex-direction: column;
133
  gap: 0.25rem;
134
}
135
136
.wine-detail-notes p {
137
  white-space: pre-wrap;
138
}
139
140
/* Admin list */
141
142
.admin-list {
143
  display: flex;
144
  flex-direction: column;
145
  width: 100%;
146
}
147
148
.admin-item {
149
  display: flex;
150
  justify-content: space-between;
151
  align-items: center;
152
  padding: 8px 0;
153
  border-bottom: 1px solid #333;
154
}
155
156
.admin-item-info {
157
  display: flex;
158
  flex-direction: column;
159
  gap: 2px;
160
}
161
162
.admin-item-name {
163
  font-size: 16px;
164
}
165
166
.admin-item-meta {
167
  font-size: 12px;
168
  opacity: 0.5;
169
}
170
171
.admin-actions {
172
  display: flex;
173
  gap: 1rem;
174
  font-size: 12px;
175
}
176
177
/* Score inputs */
178
179
.image-upload-row {
180
  display: flex;
181
  align-items: center;
182
  gap: 0.75rem;
183
}
184
185
.score-group {
186
  display: flex;
187
  flex-direction: column;
188
  gap: 0.5rem;
189
  margin-top: 0.5rem;
190
}
191
192
.score-section-label {
193
  font-size: 11px;
194
  opacity: 0.4;
195
  text-transform: uppercase;
196
  letter-spacing: 1px;
197
  margin-top: 0.75rem;
198
}
199
200
.score-section-label:first-child {
201
  margin-top: 0;
202
}
203
204
.score-row {
205
  display: flex;
206
  align-items: center;
207
  gap: 0.75rem;
208
}
209
210
.score-row label {
211
  width: 80px;
212
  flex-shrink: 0;
213
}
214
215
.score-row input[type="range"] {
216
  flex: 1;
217
  -webkit-appearance: none;
218
  appearance: none;
219
  height: 2px;
220
  background: #555;
221
  border: none;
222
  padding: 0;
223
}
224
225
.score-row input[type="range"]::-webkit-slider-thumb {
226
  -webkit-appearance: none;
227
  appearance: none;
228
  width: 14px;
229
  height: 14px;
230
  background: #ffffff;
231
  border: none;
232
  border-radius: 0;
233
  cursor: pointer;
234
}
235
236
.score-row input[type="range"]::-moz-range-thumb {
237
  width: 14px;
238
  height: 14px;
239
  background: #ffffff;
240
  border: none;
241
  border-radius: 0;
242
  cursor: pointer;
243
}
244
245
.score-value {
246
  width: 16px;
247
  text-align: center;
248
  font-size: 12px;
249
  opacity: 0.7;
250
}