/* Lightweight local fallback for the Bootstrap Icons names used in the demo. */
.bi{display:inline-block;font-style:normal;font-weight:500;line-height:1;text-align:center;width:1em}.bi:before{display:inline-block}
.bi-house:before{content:"⌂"}.bi-calendar2-check:before,.bi-calendar3:before{content:"▣"}.bi-people:before{content:"◎"}.bi-person-badge:before{content:"♙"}.bi-wallet2:before{content:"◇"}.bi-cash-stack:before,.bi-cash:before{content:"▤"}.bi-file-earmark-bar-graph:before,.bi-receipt:before{content:"▥"}.bi-gear:before{content:"⚙"}.bi-list:before{content:"☰"}.bi-geo-alt:before{content:"⌖"}.bi-chevron-down:before{content:"⌄"}.bi-chevron-right:before{content:"›"}.bi-graph-up:before{content:"↗"}.bi-currency-dollar:before{content:"$"}.bi-download:before{content:"⇩"}.bi-pie-chart:before{content:"◔"}.bi-shield-check:before{content:"◇"}.bi-plus-lg:before{content:"+"}.bi-pencil:before{content:"✎"}.bi-clock:before{content:"◷"}.bi-x-circle:before{content:"⊗"}.bi-plus-circle:before{content:"⊕"}.bi-dash-circle:before{content:"⊖"}.bi-calculator:before{content:"▦"}.bi-info-circle:before{content:"ⓘ"}

/* v3: thematic line icons for the left navigation */
.nav-icon:before{content:""!important;display:inline-block;width:1.08em;height:1.08em;background:currentColor;-webkit-mask:var(--nav-mask) center/contain no-repeat;mask:var(--nav-mask) center/contain no-repeat;vertical-align:-.12em}
.nav-icon.bi-house{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 12 4l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E")}
.nav-icon.bi-clipboard-check{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='4' width='14' height='17' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M9 4V2h6v2M8 13l2.5 2.5L16 10' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-calendar-week{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18M7 14h2M11 14h2M15 14h2M7 18h2M11 18h2M15 18h2' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E")}
.nav-icon.bi-people{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17' cy='9' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3 20c.3-4 2.5-6 6-6s5.7 2 6 6M15 15c3-.5 5.5 1.2 6 4' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-person-badge{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3.5 19c.6-3.3 2.4-5 5.5-5s4.9 1.7 5.5 5M16 5h5v8h-5zM17.5 8h2' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-person-heart{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='8' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M2.5 19c.5-3.5 2.4-5.2 5.5-5.2 2.2 0 3.8.8 4.7 2.4M17.5 20s-4-2.4-4-5a2.3 2.3 0 0 1 4-1.6 2.3 2.3 0 0 1 4 1.6c0 2.6-4 5-4 5z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-wallet2{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='18' height='14' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M4 8l12-4M16 11h5v5h-5a2.5 2.5 0 0 1 0-5z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-cash-stack{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='18' height='12' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='12' cy='12' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-boxes{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-clock-calendar{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='13' r='6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M9 10v3l2 1M15 5h6v6M17 3v4M20 3v4' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-file-earmark-bar-graph{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h10l4 4v14H5zM15 3v5h5M8 17v-4M12 17V9M16 17v-6' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-globe2{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3 12h18M12 3c3 3 4 6 4 9s-1 6-4 9c-3-3-4-6-4-9s1-6 4-9z' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E")}
.nav-icon.bi-gear{--nav-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M19 12l2-1-2-4-2 1a8 8 0 0 0-2-1l-.4-2h-5L9 7a8 8 0 0 0-2 1L5 7l-2 4 2 1a8 8 0 0 0 0 2l-2 1 2 4 2-1a8 8 0 0 0 2 1l.5 2h5l.5-2a8 8 0 0 0 2-1l2 1 2-4-2-1a8 8 0 0 0 0-2z' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E")}
/* additional compact UI glyphs outside the navigation */
.bi-translate:not(.nav-icon):before{content:"文"}.bi-cash-coin:not(.nav-icon):before{content:"¤"}.bi-person:not(.nav-icon):before{content:"○"}.bi-building:not(.nav-icon):before{content:"▥"}.bi-box-arrow-right:not(.nav-icon):before{content:"↪"}.bi-credit-card:not(.nav-icon):before{content:"▭"}.bi-qr-code:not(.nav-icon):before{content:"▦"}.bi-eye:not(.nav-icon):before{content:"◉"}.bi-search:not(.nav-icon):before{content:"⌕"}.bi-chevron-left:not(.nav-icon):before{content:"‹"}.bi-globe2:not(.nav-icon):before{content:"◎"}

/* v4 refined dashboard and contact glyphs */
.kpi .bi:before,.metric-icon .bi:before,.contact-icon .bi:before{content:""!important;display:block;width:1.08em;height:1.08em;background:currentColor;-webkit-mask:var(--bo-icon) center/contain no-repeat;mask:var(--bo-icon) center/contain no-repeat}
.bi-revenue{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 19V5M4 19h16M7 15l4-4 3 2 5-6M16 7h3v3' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.bi-booking{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18M8 15l2 2 5-5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-specialist{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17' cy='9' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3 20c.4-4 2.5-6 6-6s5.6 2 6 6M16 15c2.5-.3 4.5 1.2 5 4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-payroll{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h10l3 3v15H6zM16 3v4h4' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M9 12h6M9 16h4M12 9v9' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-profit{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M12 6v12M15 8.5h-4.5a2 2 0 0 0 0 4H13a2 2 0 0 1 0 4H9' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E")}
.bi-phone{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 3.5 9 7.8 7.4 9.4c1.6 3.2 4 5.6 7.2 7.2l1.6-1.6 4.3 2.5-.7 3c-.2.8-.9 1.4-1.8 1.3C9.2 20.9 3.1 14.8 2.2 6c-.1-.9.5-1.6 1.3-1.8z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E")}
.bi-whatsapp{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a9 9 0 0 0-7.7 13.7L3 21l4.5-1.2A9 9 0 1 0 12 3z' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M8.2 7.8c.4 3.8 4.1 7.6 8 8l1.1-2.1-2.4-1.2-1 1c-1.6-.7-2.7-1.8-3.4-3.4l1-1L10.3 6.7z' fill='none' stroke='black' stroke-width='1.45' stroke-linejoin='round'/%3E%3C/svg%3E")}
.bi-telegram{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 20.5 4 17 20l-5.1-4-3 2.6.5-4.1z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='m9.4 14.5 8.2-7' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E")}
.bi-search2{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m15.5 15.5 5 5' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-person-plus:before{content:"+♙"}.bi-play-circle:before{content:"▷"}


/* v6 — refined dashboard KPI icons */
.bi-revenue-today{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='3' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7 9h4M7 13h3M15 15l2-2 2 1.5M17 13v-3' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.bi-appointments-today{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='3' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='15.5' r='3' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 14v1.7l1.3.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-team-active{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M3 20c.4-4 2.4-6 6-6s5.6 2 6 6' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Ccircle cx='17.5' cy='8.5' r='2.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M15.8 14.5c2.8-.4 4.8 1.1 5.2 4M18.7 3.3v2.2M17.6 4.4h2.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-payroll-today{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='18' height='12' rx='2.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='12' r='2.4' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M6 9h.01M18 15h.01M8 20h8' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}
.bi-net-profit{--bo-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='8' cy='16.5' rx='4.5' ry='2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M3.5 16.5v2.3c0 1.1 2 2 4.5 2s4.5-.9 4.5-2v-2.3M5 13.5c.7-.5 1.8-.8 3-.8 1.1 0 2 .2 2.8.6' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M13 12l3-3 2 1.5L21 6M18 6h3v3' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* v6 — real payment-method pictograms: cash, card and QR */
.payment .bi:before{content:""!important;display:block;width:1.05em;height:1.05em;background:currentColor;-webkit-mask:var(--payment-icon) center/contain no-repeat;mask:var(--payment-icon) center/contain no-repeat}
.payment .bi-cash{--payment-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='18' height='12' rx='2' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='12' r='2.4' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M6 9h.01M18 15h.01' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")}
.payment .bi-credit-card{--payment-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M3 9h18M7 15h4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E")}
.payment .bi-qr-code{--payment-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 14h2v3h-2zM14 18h3v2h-3zM19 19h1v1h-1z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E")}
