diff --git a/src/OberleisteApp.jsx b/src/OberleisteApp.jsx
index 8e77759..859fb5d 100644
--- a/src/OberleisteApp.jsx
+++ b/src/OberleisteApp.jsx
@@ -418,7 +418,7 @@ export default function OberleisteApp() {
title={`Ansicht ${v.label}`}
style={{
height: BAR_H, padding: '0 10px',
- background: isActive ? 'var(--accent)' : 'var(--bg-item)',
+ background: isActive ? 'var(--accent)' : 'var(--bg-input)',
color: isActive ? 'var(--bg-panel)' : 'var(--text-primary)',
border: '1px solid var(--border)',
borderLeft: isFirst ? '1px solid var(--border)' : 'none',
@@ -557,78 +557,91 @@ export default function OberleisteApp() {
- {/* ====== MASSSTAB ====== */}
- {/* Live-Zoom Chip — pill, accent wenn Massstab anwendbar */}
+ {/* ====== MASSSTAB 2-Reihen ======
+ Oben: Buttons (%, fit, center, print/edit)
+ Unten: Live-Zoom-Chip + Dropdown
+ */}
- {isPerspective ? '—' : fmtScale(scaleVal)}
-
- {customMode ? (
- setDraft(e.target.value)}
- onKeyDown={(e) => {
- if (e.key === 'Enter') applyDraft()
- else if (e.key === 'Escape') cancelDraft()
- }}
- onBlur={applyDraft}
- style={{
- height: BAR_H, width: 100,
- background: 'var(--bg-item)',
- color: 'var(--text-primary)',
- border: '1px solid var(--border)',
+ display: 'flex', flexDirection: 'column', gap: 4,
+ flexShrink: 0,
+ }}>
+ {/* Reihe 1: Buttons */}
+
+
+
+
+ setShowLineweights(!state.showLineweights)}
+ title={state.showLineweights
+ ? 'Print-View aktiv — klick zum Ausschalten'
+ : 'Strichstärken anzeigen (Print-View)'}
+ />
+
+ {/* Reihe 2: Live-Zoom + Dropdown */}
+
+
- ) : (
-
applyDropdown(v)}
- disabled={isPerspective}
- width={140}
- title="Gesetzter Massstab"
- >
-
- {PRESETS.map(p => (
-
- ))}
- {appliedScale != null && !PRESETS.some(p => p.value === appliedScale) && (
-
+ fontFamily: 'DM Mono, monospace', fontSize: 11, fontWeight: 600,
+ minWidth: 60, justifyContent: 'center', flexShrink: 0,
+ }} title="Live-Zoom">
+ {isPerspective ? '—' : fmtScale(scaleVal)}
+
+ {customMode ? (
+ setDraft(e.target.value)}
+ onKeyDown={(e) => {
+ if (e.key === 'Enter') applyDraft()
+ else if (e.key === 'Escape') cancelDraft()
+ }}
+ onBlur={applyDraft}
+ style={{
+ height: BAR_H, width: 100,
+ background: 'var(--bg-input)',
+ color: 'var(--text-primary)',
+ border: '1px solid var(--border)',
+ borderRadius: 999,
+ padding: '0 12px', fontSize: 11,
+ fontFamily: 'DM Mono, monospace',
+ outline: 'none',
+ }}
+ title="Massstab eingeben (Enter = uebernehmen, Esc = abbrechen)"
+ />
+ ) : (
+ applyDropdown(v)}
+ disabled={isPerspective}
+ width={140}
+ title="Gesetzter Massstab"
+ >
+
+ {PRESETS.map(p => (
+
+ ))}
+ {appliedScale != null && !PRESETS.some(p => p.value === appliedScale) && (
+
+ )}
+
+
)}
-
-
- )}
-
-
-
- setShowLineweights(!state.showLineweights)}
- title={state.showLineweights
- ? 'Print-View aktiv — klick zum Ausschalten'
- : 'Strichstärken anzeigen (Print-View)'}
- />
+
+
{/* Snap-Toggles (Ortho/Grid/OSnap) sind in Rhinos eigener Footer-Bar
schon vorhanden — hier rausgenommen um Doppelung zu vermeiden. */}