Files

639 lines
26 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="theme-color" content="#0c0b14" />
<title>Invest Copilot</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg-deep: #0c0b14;
--bg-surface: #131220;
--bg-raised: #1a1930;
--bg-hover: #222140;
--border-subtle: rgba(255,255,255,0.06);
--border-default: rgba(255,255,255,0.10);
--text-primary: #f1f0f7;
--text-secondary: #8b87a3;
--text-tertiary: #5c5878;
--accent-start: #6366f1;
--accent-end: #a855f7;
--positive: #34d399;
--positive-dim: rgba(52,211,153,0.10);
--negative: #f87171;
--negative-dim: rgba(248,113,113,0.10);
--warning: #fbbf24;
--warning-dim: rgba(251,191,36,0.10);
--gradient-accent: linear-gradient(135deg, #6366f1, #a855f7);
--gradient-positive: linear-gradient(135deg, #34d399, #22d3ee);
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--radius-full: 9999px;
}
html { font-size: 16px; }
body {
font-family: 'Inter', -apple-system, sans-serif;
background: var(--bg-deep);
color: var(--text-primary);
line-height: 1.5;
min-height: 100vh;
min-height: 100dvh;
padding-bottom: 76px;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
.mono { font-family: 'JetBrains Mono', monospace; }
/* Header */
.header {
padding: 16px 20px 12px;
display: flex;
align-items: center;
justify-content: space-between;
}
.header__left { display: flex; align-items: center; gap: 12px; }
.header__logo {
width: 36px; height: 36px;
background: var(--gradient-accent);
border-radius: var(--radius-sm);
display: flex; align-items: center; justify-content: center;
box-shadow: 0 0 16px rgba(99,102,241,0.3);
}
.header__logo svg { width: 20px; height: 20px; }
.header__title { font-size: 1.125rem; font-weight: 700; letter-spacing: -0.01em; }
.header__actions { display: flex; gap: 8px; }
.header__btn {
width: 40px; height: 40px;
border-radius: var(--radius-sm);
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
display: flex; align-items: center; justify-content: center;
color: var(--text-secondary);
}
.header__btn svg { width: 18px; height: 18px; }
.header__btn .dot {
position: absolute; top: 6px; right: 6px;
width: 7px; height: 7px;
background: var(--negative);
border-radius: 50%;
border: 2px solid var(--bg-surface);
}
/* Search */
.search {
margin: 0 20px 20px;
position: relative;
}
.search__input {
width: 100%;
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
padding: 12px 16px 12px 42px;
color: var(--text-primary);
font-size: 0.875rem;
font-family: 'Inter', sans-serif;
outline: none;
-webkit-appearance: none;
}
.search__input::placeholder { color: var(--text-tertiary); }
.search__input:focus { border-color: var(--accent-start); }
.search__icon {
position: absolute; left: 14px; top: 50%;
transform: translateY(-50%);
width: 16px; height: 16px;
color: var(--text-tertiary);
}
/* Content */
.content {
padding: 0 20px;
display: flex;
flex-direction: column;
gap: 20px;
}
/* Hero Card */
.hero-card {
background: linear-gradient(135deg, rgba(99,102,241,0.08), rgba(168,85,247,0.08));
border: 1px solid rgba(99,102,241,0.15);
border-radius: var(--radius-lg);
padding: 24px 20px;
text-align: center;
}
.hero-card__label { font-size: 0.75rem; color: var(--text-secondary); font-weight: 500; margin-bottom: 4px; }
.hero-card__value {
font-size: 2.25rem;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1;
margin-bottom: 6px;
}
.hero-card__change {
display: inline-flex; align-items: center; gap: 5px;
padding: 5px 12px;
border-radius: var(--radius-full);
font-size: 0.8125rem;
font-weight: 600;
font-family: 'JetBrains Mono', monospace;
background: var(--positive-dim);
color: var(--positive);
}
.hero-card__change svg { width: 13px; height: 13px; }
.hero-card__meta {
display: flex; justify-content: center; gap: 28px; margin-top: 16px;
}
.hero-card__meta-item { text-align: center; }
.hero-card__meta-val { font-size: 0.875rem; font-weight: 600; font-family: 'JetBrains Mono', monospace; }
.hero-card__meta-label { font-size: 0.625rem; color: var(--text-tertiary); margin-top: 1px; }
/* Quick Actions */
.quick-actions {
display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.quick-action {
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
padding: 16px 12px;
text-align: center;
transition: transform 100ms, background 150ms;
-webkit-tap-highlight-color: transparent;
}
.quick-action:active { transform: scale(0.96); background: var(--bg-raised); }
.quick-action__icon {
width: 40px; height: 40px;
border-radius: var(--radius-sm);
display: flex; align-items: center; justify-content: center;
margin: 0 auto 8px;
}
.quick-action__icon svg { width: 18px; height: 18px; }
.quick-action__icon--accent { background: rgba(99,102,241,0.12); color: var(--accent-start); }
.quick-action__icon--positive { background: var(--positive-dim); color: var(--positive); }
.quick-action__icon--warning { background: var(--warning-dim); color: var(--warning); }
.quick-action__label { font-size: 0.6875rem; font-weight: 500; color: var(--text-secondary); }
/* Mini Chart */
.chart-card {
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-lg);
padding: 16px;
}
.chart-card__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.chart-card__title { font-size: 0.875rem; font-weight: 600; }
.chart-card__badge {
font-size: 0.625rem;
padding: 3px 10px;
border-radius: var(--radius-full);
background: var(--bg-raised);
color: var(--text-secondary);
font-weight: 500;
}
.chart-card__svg { width: 100%; height: 120px; }
.chart-card__svg line.grid { stroke: var(--border-subtle); stroke-width: 0.5; stroke-dasharray: 4 4; }
.chart-card__svg text { fill: var(--text-tertiary); font-size: 9px; font-family: 'JetBrains Mono', monospace; }
.chart-card__svg .area-fill { fill: url(#mChartGrad); opacity: 0.3; }
.chart-card__svg .chart-line { fill: none; stroke: url(#mLineGrad); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* Section */
.section-header { display: flex; justify-content: space-between; align-items: center; }
.section-title { font-size: 0.9375rem; font-weight: 600; }
.section-link { font-size: 0.6875rem; color: var(--accent-start); font-weight: 500; }
/* Watchlist */
.watchlist { display: flex; flex-direction: column; gap: 8px; }
.watchlist-item {
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
padding: 14px;
display: flex; align-items: center; gap: 12px;
transition: background 150ms;
-webkit-tap-highlight-color: transparent;
}
.watchlist-item:active { background: var(--bg-raised); }
.watchlist-item__icon {
width: 36px; height: 36px;
border-radius: var(--radius-sm);
display: flex; align-items: center; justify-content: center;
font-size: 0.6875rem; font-weight: 700;
font-family: 'JetBrains Mono', monospace;
flex-shrink: 0;
}
.watchlist-item__icon--green { background: var(--positive-dim); color: var(--positive); }
.watchlist-item__icon--accent { background: rgba(99,102,241,0.12); color: var(--accent-start); }
.watchlist-item__icon--purple { background: rgba(168,85,247,0.12); color: var(--accent-end); }
.watchlist-item__info { flex: 1; min-width: 0; }
.watchlist-item__name { font-size: 0.8125rem; font-weight: 600; }
.watchlist-item__ticker { font-size: 0.625rem; color: var(--text-tertiary); font-family: 'JetBrains Mono', monospace; }
.watchlist-item__price { text-align: right; flex-shrink: 0; }
.watchlist-item__price-val { font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; font-weight: 600; }
.change-pill {
display: inline-flex; align-items: center; gap: 2px;
padding: 2px 6px;
border-radius: var(--radius-full);
font-size: 0.625rem;
font-weight: 600;
font-family: 'JetBrains Mono', monospace;
}
.change-pill--positive { background: var(--positive-dim); color: var(--positive); }
.change-pill--negative { background: var(--negative-dim); color: var(--negative); }
.change-pill svg { width: 8px; height: 8px; }
/* Heatmap scroll */
.heatmap-scroll {
display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px;
-webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.heatmap-scroll::-webkit-scrollbar { display: none; }
.heatmap-cell {
min-width: 80px;
border-radius: var(--radius-sm);
padding: 14px;
display: flex; flex-direction: column;
align-items: center; justify-content: center; gap: 2px;
flex-shrink: 0;
transition: transform 100ms;
}
.heatmap-cell:active { transform: scale(0.95); }
.heatmap-cell .label { font-size: 0.6875rem; font-weight: 700; font-family: 'JetBrains Mono', monospace; }
.heatmap-cell .value { font-size: 0.75rem; font-weight: 600; font-family: 'JetBrains Mono', monospace; }
.heatmap-cell--strong-pos { background: rgba(52,211,153,0.15); color: var(--positive); }
.heatmap-cell--pos { background: rgba(52,211,153,0.08); color: var(--positive); }
.heatmap-cell--neutral { background: rgba(255,255,255,0.03); color: var(--text-secondary); }
.heatmap-cell--neg { background: rgba(248,113,113,0.08); color: var(--negative); }
.heatmap-cell--strong-neg { background: rgba(248,113,113,0.15); color: var(--negative); }
/* Alerts */
.alert-item {
display: flex; align-items: flex-start; gap: 10px;
padding: 12px 14px;
border-radius: var(--radius-sm);
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
transition: all 150ms;
}
.alert-item--unread { border-left: 3px solid var(--accent-start); }
.alert-item__dot {
width: 8px; height: 8px; border-radius: 50%; margin-top: 4px; flex-shrink: 0;
}
.alert-item__dot--accent { background: var(--accent-start); box-shadow: 0 0 6px rgba(99,102,241,0.4); }
.alert-item__dot--warning { background: var(--warning); }
.alert-item__dot--positive { background: var(--positive); }
.alert-item__content { flex: 1; }
.alert-item__title { font-size: 0.75rem; font-weight: 500; line-height: 1.3; }
.alert-item__time { font-size: 0.5625rem; color: var(--text-tertiary); font-family: 'JetBrains Mono', monospace; white-space: nowrap; margin-top: 2px; }
/* Bottom Nav */
.bottom-nav {
position: fixed; bottom: 0; left: 0; right: 0;
background: rgba(19,18,32,0.95);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-top: 1px solid var(--border-subtle);
padding: 8px 0;
padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
z-index: 100;
}
.bottom-nav__items { display: flex; justify-content: space-around; }
.bottom-nav__item {
display: flex; flex-direction: column; align-items: center; gap: 3px;
padding: 6px 16px;
color: var(--text-tertiary);
font-size: 0.5625rem; font-weight: 500;
transition: color 150ms;
}
.bottom-nav__item svg { width: 22px; height: 22px; }
.bottom-nav__item--active { color: var(--accent-start); }
.bottom-nav__item:active { opacity: 0.6; }
/* Gradient defs */
svg defs linearGradient { display: block; }
</style>
</head>
<body>
<!-- Header -->
<header class="header">
<div class="header__left">
<div class="header__logo">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2">
<polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/>
<polyline points="16 7 22 7 22 13"/>
</svg>
</div>
<span class="header__title">Invest Copilot</span>
</div>
<div class="header__actions">
<button class="header__btn" style="position:relative" aria-label="Notifications">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
<path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
<span class="dot"></span>
</button>
</div>
</header>
<!-- Search -->
<div class="search">
<svg class="search__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
</svg>
<input class="search__input" type="text" placeholder="Search AAPL, NVDA, QQQ..." />
</div>
<!-- Content -->
<div class="content">
<!-- Hero -->
<div class="hero-card">
<div class="hero-card__label">Portfolio Value</div>
<div class="hero-card__value">$147,832</div>
<div class="hero-card__change">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="18 15 12 9 6 15"/></svg>
+$2,341 (1.61%)
</div>
<div class="hero-card__meta">
<div class="hero-card__meta-item">
<div class="hero-card__meta-val" style="color:var(--positive)">+$1,204</div>
<div class="hero-card__meta-label">Today</div>
</div>
<div class="hero-card__meta-item">
<div class="hero-card__meta-val">12</div>
<div class="hero-card__meta-label">Positions</div>
</div>
<div class="hero-card__meta-item">
<div class="hero-card__meta-val" style="color:var(--warning)">3</div>
<div class="hero-card__meta-label">Alerts</div>
</div>
</div>
</div>
<!-- Quick Actions -->
<div class="quick-actions">
<div class="quick-action">
<div class="quick-action__icon quick-action__icon--accent">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/>
</svg>
</div>
<span class="quick-action__label">Watchlist</span>
</div>
<div class="quick-action">
<div class="quick-action__icon quick-action__icon--positive">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<polyline points="23 6 13.5 15.5 8.5 10.5 1 18"/>
<polyline points="17 6 23 6 23 12"/>
</svg>
</div>
<span class="quick-action__label">Stocks</span>
</div>
<div class="quick-action">
<div class="quick-action__icon quick-action__icon--warning">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<rect x="3" y="3" width="18" height="18" rx="2"/>
<line x1="3" y1="9" x2="21" y2="9"/>
<line x1="9" y1="21" x2="9" y2="9"/>
</svg>
</div>
<span class="quick-action__label">Sectors</span>
</div>
</div>
<!-- Chart -->
<div class="chart-card">
<div class="chart-card__header">
<span class="chart-card__title">Portfolio</span>
<span class="chart-card__badge">3M</span>
</div>
<svg class="chart-card__svg" viewBox="0 0 320 120" preserveAspectRatio="none">
<defs>
<linearGradient id="mLineGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#6366f1"/>
<stop offset="100%" style="stop-color:#a855f7"/>
</linearGradient>
<linearGradient id="mChartGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#6366f1;stop-opacity:0.3"/>
<stop offset="100%" style="stop-color:#6366f1;stop-opacity:0"/>
</linearGradient>
</defs>
<line class="grid" x1="0" y1="30" x2="320" y2="30"/>
<line class="grid" x1="0" y1="60" x2="320" y2="60"/>
<line class="grid" x1="0" y1="90" x2="320" y2="90"/>
<text x="8" y="26">155K</text>
<text x="8" y="56">145K</text>
<text x="8" y="86">135K</text>
<path class="area-fill" d="M0,70 L40,64 80,58 120,52 160,44 200,40 240,34 280,30 320,24 L320,120 L0,120 Z"/>
<path class="chart-line" d="M0,70 L40,64 80,58 120,52 160,44 200,40 240,34 280,30 320,24"/>
<circle cx="320" cy="24" r="3" fill="#6366f1" stroke="#131220" stroke-width="2"/>
<text x="290" y="116">Sep 26</text>
<text x="8" y="116">May 26</text>
</svg>
</div>
<!-- Watchlist -->
<div>
<div class="section-header">
<span class="section-title">Watchlist</span>
<a href="#" class="section-link">View All →</a>
</div>
<div class="watchlist">
<div class="watchlist-item">
<div class="watchlist-item__icon watchlist-item__icon--green">A</div>
<div class="watchlist-item__info">
<div class="watchlist-item__name">Apple</div>
<div class="watchlist-item__ticker">AAPL</div>
</div>
<div class="watchlist-item__price">
<div class="watchlist-item__price-val">$189.43</div>
<span class="change-pill change-pill--positive">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="18 15 12 9 6 15"/></svg>
+2.4%
</span>
</div>
</div>
<div class="watchlist-item">
<div class="watchlist-item__icon watchlist-item__icon--accent">M</div>
<div class="watchlist-item__info">
<div class="watchlist-item__name">Microsoft</div>
<div class="watchlist-item__ticker">MSFT</div>
</div>
<div class="watchlist-item__price">
<div class="watchlist-item__price-val">$412.88</div>
<span class="change-pill change-pill--positive">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="18 15 12 9 6 15"/></svg>
+1.1%
</span>
</div>
</div>
<div class="watchlist-item">
<div class="watchlist-item__icon watchlist-item__icon--purple">N</div>
<div class="watchlist-item__info">
<div class="watchlist-item__name">NVIDIA</div>
<div class="watchlist-item__ticker">NVDA</div>
</div>
<div class="watchlist-item__price">
<div class="watchlist-item__price-val">$121.88</div>
<span class="change-pill change-pill--negative">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
−0.3%
</span>
</div>
</div>
<div class="watchlist-item">
<div class="watchlist-item__icon watchlist-item__icon--accent">G</div>
<div class="watchlist-item__info">
<div class="watchlist-item__name">Alphabet</div>
<div class="watchlist-item__ticker">GOOGL</div>
</div>
<div class="watchlist-item__price">
<div class="watchlist-item__price-val">$141.26</div>
<span class="change-pill change-pill--negative">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
−0.8%
</span>
</div>
</div>
<div class="watchlist-item">
<div class="watchlist-item__icon watchlist-item__icon--green">M</div>
<div class="watchlist-item__info">
<div class="watchlist-item__name">Meta</div>
<div class="watchlist-item__ticker">META</div>
</div>
<div class="watchlist-item__price">
<div class="watchlist-item__price-val">$502.30</div>
<span class="change-pill change-pill--positive">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="18 15 12 9 6 15"/></svg>
+0.5%
</span>
</div>
</div>
</div>
</div>
<!-- Sector Heatmap -->
<div>
<div class="section-header">
<span class="section-title">Sectors</span>
<a href="#" class="section-link">View All →</a>
</div>
<div class="heatmap-scroll">
<div class="heatmap-cell heatmap-cell--strong-pos">
<span class="label">XLK</span>
<span class="value">+8.2%</span>
</div>
<div class="heatmap-cell heatmap-cell--pos">
<span class="label">XLF</span>
<span class="value">+3.1%</span>
</div>
<div class="heatmap-cell heatmap-cell--pos">
<span class="label">XLY</span>
<span class="value">+2.8%</span>
</div>
<div class="heatmap-cell heatmap-cell--pos">
<span class="label">XLI</span>
<span class="value">+2.4%</span>
</div>
<div class="heatmap-cell heatmap-cell--pos">
<span class="label">XLV</span>
<span class="value">+1.5%</span>
</div>
<div class="heatmap-cell heatmap-cell--neutral">
<span class="label">XLP</span>
<span class="value">+0.3%</span>
</div>
<div class="heatmap-cell heatmap-cell--neg">
<span class="label">XLU</span>
<span class="value">−0.2%</span>
</div>
<div class="heatmap-cell heatmap-cell--neg">
<span class="label">XLE</span>
<span class="value">−1.8%</span>
</div>
<div class="heatmap-cell heatmap-cell--strong-neg">
<span class="label">XLR</span>
<span class="value">−3.4%</span>
</div>
</div>
</div>
<!-- Alerts -->
<div>
<div class="section-header">
<span class="section-title">Alerts</span>
<a href="#" class="section-link">View All →</a>
</div>
<div class="alert-list" style="display:flex;flex-direction:column;gap:8px;margin-top:12px;">
<div class="alert-item alert-item--unread">
<div class="alert-item__dot alert-item__dot--negative" style="background:var(--negative)"></div>
<div class="alert-item__content">
<div class="alert-item__title">NVDA below 200-day MA</div>
<div class="alert-item__time">14:27 · Today</div>
</div>
</div>
<div class="alert-item alert-item--unread">
<div class="alert-item__dot alert-item__dot--warning"></div>
<div class="alert-item__content">
<div class="alert-item__title">Sector rotation: Tech → Energy</div>
<div class="alert-item__time">13:45 · Today</div>
</div>
</div>
<div class="alert-item">
<div class="alert-item__dot alert-item__dot--positive"></div>
<div class="alert-item__content">
<div class="alert-item__title">AAPL insider buy — 5,000 shares</div>
<div class="alert-item__time">11:20 · Today</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bottom Nav -->
<nav class="bottom-nav">
<div class="bottom-nav__items">
<a href="#" class="bottom-nav__item bottom-nav__item--active">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<rect x="3" y="3" width="7" height="7" rx="1"/>
<rect x="14" y="3" width="7" height="7" rx="1"/>
<rect x="3" y="14" width="7" height="7" rx="1"/>
<rect x="14" y="14" width="7" height="7" rx="1"/>
</svg>
Home
</a>
<a href="#" class="bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
</svg>
Search
</a>
<a href="#" class="bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/>
</svg>
Watchlists
</a>
<a href="#" class="bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
<path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
Alerts
</a>
<a href="#" class="bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>
</svg>
Settings
</a>
</div>
</nav>
</body>
</html>