@@ -514,10 +671,7 @@ export default function App() {
style={{
...styles.row,
background: getRowBg(e.status),
- animation:
- pulseId === e.entry_id
- ? "rowPulse 220ms ease-out"
- : "none",
+ animation: pulseId === e.entry_id ? "rowPulse 220ms ease-out" : "none",
}}
>
-
+
{getStatusSymbol(e.status)}
-
@@ -559,14 +722,11 @@ const styles = {
minHeight: "100dvh",
margin: 0,
padding: 0,
- background:
- `
+ background: `
radial-gradient(circle at 12% 18%, rgba(120,80,30,0.18), rgba(0,0,0,0) 38%),
radial-gradient(circle at 85% 22%, rgba(120,80,30,0.12), rgba(0,0,0,0) 42%),
radial-gradient(circle at 35% 82%, rgba(120,80,30,0.10), rgba(0,0,0,0) 45%),
radial-gradient(circle at 70% 75%, rgba(90,60,25,0.10), rgba(0,0,0,0) 40%),
-
- /* subtile Papier-Noise (Pattern) */
repeating-linear-gradient(
0deg,
rgba(255,255,255,0.03),
@@ -574,10 +734,8 @@ const styles = {
rgba(0,0,0,0.02) 2px,
rgba(0,0,0,0.02) 3px
),
-
- /* Grundfarbe Pergament */
linear-gradient(180deg, #f1e2c2, #e3c996)
- `,
+ `,
backgroundAttachment: "fixed",
},
shell: {
@@ -586,15 +744,7 @@ const styles = {
maxWidth: 620,
margin: "0 auto",
},
- title: {
- fontWeight: 1000,
- fontFamily: '"Cinzel Decorative", "IM Fell English", system-ui',
- letterSpacing: 0.5,
- fontSize: 22,
- color: "#20140c",
- marginBottom: 12,
- textShadow: "0 1px 0 rgba(255,255,255,0.35)",
- },
+
topBar: {
display: "flex",
justifyContent: "space-between",
@@ -607,6 +757,7 @@ const styles = {
boxShadow: "0 6px 18px rgba(0,0,0,0.10)",
backdropFilter: "blur(4px)",
},
+
card: {
borderRadius: 16,
overflow: "hidden",
@@ -615,6 +766,7 @@ const styles = {
boxShadow: "0 10px 24px rgba(0,0,0,0.12)",
transition: "transform 180ms ease, box-shadow 180ms ease",
},
+
sectionHeader: {
padding: "10px 12px",
fontWeight: 1000,
@@ -625,6 +777,7 @@ const styles = {
borderBottom: "1px solid rgba(0,0,0,0.25)",
textTransform: "uppercase",
},
+
row: {
display: "grid",
gridTemplateColumns: "1fr 46px 56px",
@@ -634,17 +787,20 @@ const styles = {
borderBottom: "1px solid rgba(0,0,0,0.10)",
background: "rgba(255,255,255,0.22)",
},
+
name: {
cursor: "pointer",
userSelect: "none",
color: "#20140c",
fontWeight: 700,
},
+
statusCell: {
textAlign: "center",
fontWeight: 1100,
fontSize: 18,
},
+
tagBtn: {
padding: "8px 0",
fontWeight: 1000,
@@ -653,6 +809,7 @@ const styles = {
background: "linear-gradient(180deg, rgba(255,255,255,0.55), rgba(0,0,0,0.06))",
cursor: "pointer",
},
+
helpBtn: {
padding: "10px 12px",
borderRadius: 12,
@@ -662,6 +819,7 @@ const styles = {
cursor: "pointer",
whiteSpace: "nowrap",
},
+
input: {
width: "100%",
padding: 10,
@@ -669,7 +827,9 @@ const styles = {
border: "1px solid rgba(0,0,0,0.25)",
background: "rgba(255,255,255,0.55)",
outline: "none",
+ fontSize: 16, // ✅ iOS: verhindert Zoom
},
+
primaryBtn: {
padding: "10px 12px",
borderRadius: 12,
@@ -679,6 +839,7 @@ const styles = {
cursor: "pointer",
transition: "transform 140ms ease, box-shadow 140ms ease",
},
+
secondaryBtn: {
padding: "10px 12px",
borderRadius: 12,
@@ -688,6 +849,7 @@ const styles = {
cursor: "pointer",
transition: "transform 140ms ease, box-shadow 140ms ease",
},
+
adminWrap: {
marginTop: 14,
padding: 12,
@@ -710,6 +872,7 @@ const styles = {
background: "rgba(255,255,255,0.55)",
border: "1px solid rgba(0,0,0,0.10)",
},
+
modalOverlay: {
position: "fixed",
inset: 0,
@@ -749,6 +912,7 @@ const styles = {
lineHeight: "38px",
textAlign: "center",
},
+
// Help modal content
helpBody: {
marginTop: 10,
@@ -805,6 +969,8 @@ const styles = {
height: 1,
background: "rgba(0,0,0,0.12)",
},
+
+ // ===== Login =====
loginPage: {
minHeight: "100dvh",
display: "flex",
@@ -813,9 +979,7 @@ const styles = {
position: "relative",
overflow: "hidden",
padding: 20,
- // Hintergrund bleibt Pergament
- background:
- `
+ background: `
radial-gradient(circle at 12% 18%, rgba(120,80,30,0.18), rgba(0,0,0,0) 38%),
radial-gradient(circle at 85% 22%, rgba(120,80,30,0.12), rgba(0,0,0,0) 42%),
radial-gradient(circle at 35% 82%, rgba(120,80,30,0.10), rgba(0,0,0,0) 45%),
@@ -827,7 +991,7 @@ const styles = {
rgba(0,0,0,0.02) 3px
),
linear-gradient(180deg, #f1e2c2, #e3c996)
- `,
+ `,
},
loginCard: {
width: "100%",
@@ -837,13 +1001,9 @@ const styles = {
position: "relative",
zIndex: 2,
border: "1px solid rgba(0,0,0,0.25)",
-
- background:
- "linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.40))",
-
+ background: "linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.40))",
boxShadow: "0 18px 55px rgba(0,0,0,0.35)",
backdropFilter: "blur(8px)",
-
animation: "popIn 240ms ease-out",
},
loginTitle: {
@@ -861,12 +1021,25 @@ const styles = {
fontSize: 15,
lineHeight: 1.4,
},
+ loginFieldWrap: {
+ width: "100%",
+ display: "flex",
+ justifyContent: "center",
+ },
+ loginInput: {
+ width: "100%",
+ padding: 10,
+ borderRadius: 12,
+ border: "1px solid rgba(0,0,0,0.25)",
+ background: "rgba(255,255,255,0.55)",
+ outline: "none",
+ fontSize: 16, // ✅ iOS: verhindert Zoom
+ },
loginBtn: {
padding: "12px 14px",
borderRadius: 14,
border: "1px solid rgba(0,0,0,0.30)",
- background:
- "linear-gradient(180deg, #f6e2b3, #caa45a)",
+ background: "linear-gradient(180deg, #f6e2b3, #caa45a)",
fontWeight: 1000,
fontSize: 16,
cursor: "pointer",
@@ -879,6 +1052,7 @@ const styles = {
textAlign: "center",
lineHeight: 1.35,
},
+
candleGlowLayer: {
position: "absolute",
inset: 0,
@@ -891,23 +1065,33 @@ const styles = {
animation: "candleGlow 3.8s ease-in-out infinite",
mixBlendMode: "multiply",
},
- pwWrap: {
- position: "relative",
+
+ inputRow: {
+ display: "flex",
+ alignItems: "stretch",
+ width: "100%",
+ },
+ inputInRow: {
+ flex: 1,
+ padding: 10,
+ borderRadius: "12px 0 0 12px",
+ border: "1px solid rgba(0,0,0,0.25)",
+ background: "rgba(255,255,255,0.55)",
+ outline: "none",
+ minWidth: 0, // ✅ wichtig für mobile overflow
+ fontSize: 16, // ✅ iOS: verhindert Zoom
},
pwToggleBtn: {
- position: "absolute",
- right: 8,
- top: "50%",
- transform: "translateY(-50%)",
- width: 40,
- height: 40,
- borderRadius: 12,
- border: "1px solid rgba(0,0,0,0.22)",
- background: "linear-gradient(180deg, rgba(255,255,255,0.85), rgba(0,0,0,0.06))",
- cursor: "pointer",
- fontSize: 16,
- display: "flex",
+ width: 48,
+ display: "flex", // ✅ Emoji sauber zentrieren
alignItems: "center",
justifyContent: "center",
+ borderRadius: "0 12px 12px 0",
+ border: "1px solid rgba(0,0,0,0.25)",
+ borderLeft: "none",
+ background: "linear-gradient(180deg, rgba(255,255,255,0.85), rgba(0,0,0,0.06))",
+ cursor: "pointer",
+ fontWeight: 900,
+ padding: 0,
},
};