diff --git a/app/app.vue b/app/app.vue
index 816ddc2..cc0e8d9 100644
--- a/app/app.vue
+++ b/app/app.vue
@@ -1,15 +1,27 @@
diff --git a/app/assets/css/main.css b/app/assets/css/main.css
index 00480d5..72d1bf6 100644
--- a/app/assets/css/main.css
+++ b/app/assets/css/main.css
@@ -231,6 +231,73 @@ body {
color: #557562;
}
+.manager-dock-shell {
+ position: fixed;
+ inset-inline: 0;
+ bottom: 0;
+ z-index: 45;
+ display: flex;
+ justify-content: center;
+ padding: 0 1rem calc(env(safe-area-inset-bottom, 0px) + 1rem);
+ pointer-events: none;
+}
+
+.manager-dock {
+ pointer-events: auto;
+ display: grid;
+ width: min(100%, 26rem);
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 0.5rem;
+ border-radius: 1.75rem;
+ background: rgba(255, 255, 255, 0.92);
+ box-shadow:
+ 0 18px 40px rgba(18, 56, 36, 0.14),
+ 0 4px 12px rgba(18, 56, 36, 0.08);
+ padding: 0.65rem;
+ -webkit-backdrop-filter: blur(18px) saturate(180%);
+ backdrop-filter: blur(18px) saturate(180%);
+}
+
+.manager-dock__item {
+ display: flex;
+ min-width: 0;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 0.35rem;
+ border-radius: 1.2rem;
+ padding: 0.85rem 0.6rem;
+ color: #5e7a69;
+ transition:
+ background-color 0.18s ease,
+ color 0.18s ease,
+ transform 0.18s ease;
+}
+
+.manager-dock__item:hover {
+ background: #f3faf6;
+ color: #123824;
+}
+
+.manager-dock__item--active {
+ background: #123824;
+ color: #fff;
+ transform: translateY(-1px);
+}
+
+.manager-dock__icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.manager-dock__label {
+ font-size: 0.72rem;
+ font-weight: 800;
+ letter-spacing: 0.02em;
+ text-align: center;
+}
+
.fregat-header-glass {
background: transparent;
}
diff --git a/app/components/ui/AppHeader.vue b/app/components/ui/AppHeader.vue
index 4164761..90b7160 100644
--- a/app/components/ui/AppHeader.vue
+++ b/app/components/ui/AppHeader.vue
@@ -1,8 +1,4 @@
+
+
+
+