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 @@ + +