diff --git a/virtweb_frontend/src/routes/auth/LoginRoute.tsx b/virtweb_frontend/src/routes/auth/LoginRoute.tsx
index 6389a5b..dc78647 100644
--- a/virtweb_frontend/src/routes/auth/LoginRoute.tsx
+++ b/virtweb_frontend/src/routes/auth/LoginRoute.tsx
@@ -1,5 +1,5 @@
-import VisibilityIcon from '@mui/icons-material/Visibility';
-import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
+import VisibilityIcon from "@mui/icons-material/Visibility";
+import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
 import {
   Alert,
   CircularProgress,
@@ -36,7 +36,9 @@ export function LoginRoute(): React.ReactElement {
   const canSubmit = username.length > 0 && password.length > 0;
 
   const [showPassword, setShowPassword] = React.useState(false);
-  const handleClickShowPassword = () => { setShowPassword((show) => !show); };
+  const handleClickShowPassword = () => {
+    setShowPassword((show) => !show);
+  };
 
   const handleMouseDownPassword = (
     event: React.MouseEvent<HTMLButtonElement>
@@ -105,12 +107,14 @@ export function LoginRoute(): React.ReactElement {
               label="Username"
               name="username"
               value={username}
-              onChange={(e) => { setUsername(e.target.value); }}
+              onChange={(e) => {
+                setUsername(e.target.value);
+              }}
               autoComplete="username"
               autoFocus
             />
 
-            <FormControl fullWidth variant="outlined">
+            <FormControl required fullWidth variant="outlined">
               <InputLabel htmlFor="password">Password</InputLabel>
               <OutlinedInput
                 required
@@ -120,7 +124,9 @@ export function LoginRoute(): React.ReactElement {
                 type={showPassword ? "text" : "password"}
                 id="password"
                 value={password}
-                onChange={(e) => { setPassword(e.target.value); }}
+                onChange={(e) => {
+                  setPassword(e.target.value);
+                }}
                 autoComplete="current-password"
                 endAdornment={
                   <InputAdornment position="end">
@@ -131,7 +137,11 @@ export function LoginRoute(): React.ReactElement {
                         onMouseDown={handleMouseDownPassword}
                         edge="end"
                       >
-                        {showPassword ? <VisibilityOffIcon /> : <VisibilityIcon />}
+                        {showPassword ? (
+                          <VisibilityOffIcon />
+                        ) : (
+                          <VisibilityIcon />
+                        )}
                       </IconButton>
                     </Tooltip>
                   </InputAdornment>
diff --git a/virtweb_frontend/src/widgets/forms/OEMStringFormWidget.tsx b/virtweb_frontend/src/widgets/forms/OEMStringFormWidget.tsx
index 2763d3d..1d5ba40 100644
--- a/virtweb_frontend/src/widgets/forms/OEMStringFormWidget.tsx
+++ b/virtweb_frontend/src/widgets/forms/OEMStringFormWidget.tsx
@@ -25,6 +25,8 @@ export function OEMStringFormWidget(p: {
     p.onChange?.();
   };
 
+  if (!p.editable && p.vm.oem_strings.length === 0) return <></>;
+
   return (
     <EditSection
       title="SMBIOS OEM Strings"