@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');
.material-symbols-outlined {
font-family: 'Material Symbols Outlined';
font-weight: normal;
font-style: normal;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
-webkit-font-feature-settings: 'liga';
-webkit-font-smoothing: antialiased;
user-select: none;
font-variation-settings: 'FILL' 0, 'wght' 400, 'opsz' 20;
}
:root {
/* Native OS-Controls (selects, scrollbars) sollen dem aktuellen Theme
folgen. Wert wird im prefers-color-scheme: dark Block ueberschrieben. */
color-scheme: light;
/* === LIGHT MODE (RAPPORT cream + olive + deep green) === */
--bg-base: #e0dbd4;
--bg-panel: #e0dbd4;
--bg-section: #e0dbd4;
--bg-item: #e0dbd4;
--bg-item-hover: #d4cfc8;
--bg-input: #ece8e2;
--bg-dialog: #e4dfd7;
--bg-overlay: rgba(26, 26, 24, 0.36);
--border: #c8c2ba;
--border-light: #d4cfc8;
--border-focus: #2f5d54;
--text-primary: #1a1a18;
--text-secondary:#555550;
--text-muted: #8a8580;
--text-label: #1a1a18;
/* Petrol-Gruen (von Rapport-HTML uebernommen) */
--accent: #2f5d54;
--accent-light: #4a8a7c;
--accent-dim: #e6efed;
--accent-border: rgba(47, 93, 84, 0.35);
/* Active-Marker (aktives Geschoss / aktive Ebene) — saturiertes Petrol */
--active: #1a655a;
--active-light: #2f8275;
--active-dim: rgba(26, 101, 90, 0.10);
--warn: #b5621e;
--warn-light: #d47a30;
--warn-dim: #fdf0e8;
--danger: #8a1a1a;
--danger-light: #b03030;
--overlay-hover: rgba(26, 26, 24, 0.05);
--overlay-active:rgba(26, 26, 24, 0.10);
--r: 4px;
--r-lg: 8px;
--shadow-1: 0 1px 2px rgba(26,26,24,0.08);
--shadow-2: 0 2px 8px rgba(26,26,24,0.12);
--shadow-3: 0 6px 24px rgba(26,26,24,0.18);
--select-arrow: url("data:image/svg+xml;utf8,");
--font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'DM Mono', 'SF Mono', monospace;
}
/* === DARK MODE (Rhino-tonig) === */
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
--bg-base: #2a2a2a;
--bg-panel: #2a2a2a;
--bg-section: #2a2a2a;
--bg-item: #2a2a2a;
--bg-item-hover: #353535;
--bg-input: #1f1f1f;
--bg-dialog: #2c2c2c;
--bg-overlay: rgba(0,0,0,0.55);
--border: #4a4a4a;
--border-light: #3d3d3d;
--border-focus: #5fa896;
--text-primary: #e8e8e8;
--text-secondary:#a8a8a8;
--text-muted: #707070;
--text-label: #c8c8c8;
/* Petrol-Gruen (von Rapport-HTML uebernommen) */
--accent: #5fa896;
--accent-light: #6db5a4;
--accent-dim: rgba(95, 168, 150, 0.15);
--accent-border: rgba(95, 168, 150, 0.4);
/* Active-Marker — saturiertes Petrol, distinct vom accent */
--active: #7dc8b8;
--active-light: #8ad1bf;
--active-dim: rgba(125, 200, 184, 0.16);
--warn: #d48030;
--warn-light: #e09040;
--warn-dim: rgba(212, 128, 48, 0.18);
--danger: #c85050;
--danger-light: #d86060;
--overlay-hover: rgba(255,255,255,0.06);
--overlay-active:rgba(255,255,255,0.10);
--shadow-1: 0 1px 2px rgba(0,0,0,0.30);
--shadow-2: 0 2px 8px rgba(0,0,0,0.40);
--shadow-3: 0 6px 24px rgba(0,0,0,0.55);
--select-arrow: url("data:image/svg+xml;utf8,");
}
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: var(--font);
font-size: 12px;
background: var(--bg-base);
color: var(--text-primary);
-webkit-font-smoothing: antialiased;
letter-spacing: 0.01em;
}
#root { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }
button {
font-family: var(--font);
cursor: pointer;
border: none;
outline: none;
background: none;
color: inherit;
position: relative;
transition:
background 0.18s cubic-bezier(0.4, 0, 0.2, 1),
color 0.14s cubic-bezier(0.4, 0, 0.2, 1),
border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1),
box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
input, select {
font-family: var(--font-mono);
font-size: 11px;
background: var(--bg-input);
color: var(--text-primary);
border: 1px solid var(--border);
border-radius: 999px;
padding: 4px 12px;
outline: none;
transition: border-color 0.16s, background 0.16s, box-shadow 0.16s;
}
input:hover {
border-color: var(--accent);
background: var(--bg-item-hover);
}
input:focus, select:focus {
border-color: var(--accent);
box-shadow: 0 0 0 2px var(--accent-dim);
}
input[type="number"]::-webkit-inner-spin-button { opacity: 0.3; }
/* Checkboxes + Color-Picker: kein Pill — native rendering. */
input[type="checkbox"], input[type="radio"], input[type="color"],
input[type="file"], input[type="range"] {
border-radius: 0;
padding: 0;
background: transparent;
}
input[type="checkbox"]:hover, input[type="radio"]:hover,
input[type="color"]:hover, input[type="file"]:hover,
input[type="range"]:hover {
background: transparent;
border-color: var(--border);
}
/* Pill-shaped select */
select {
appearance: none;
-webkit-appearance: none;
background-color: var(--bg-item);
background-image: var(--select-arrow);
background-repeat: no-repeat;
background-position: right 10px center;
padding: 5px 26px 5px 14px;
border-radius: 999px;
border: 1px solid var(--border);
font-family: var(--font);
font-weight: 500;
font-size: 10px;
letter-spacing: 0.04em;
cursor: pointer;
color: var(--text-primary);
}
select:hover {
background-color: var(--bg-item-hover);
border-color: var(--text-muted);
}
/* Opt-out: System-native Chrome (Oberleiste). Setzt die globalen
pill/appearance:none Overrides zurueck und ueberlaesst WebKit das
Rendering — Standard-macOS-Combobox + Native-Popup-Menue. Gilt auch
fuer