.fib,.fi{background-size:contain;background-position:50%;background-repeat:no-repeat}.fi{position:relative;display:inline-block;width:1.333333em;line-height:1em}.fi:before{content:" "}.fi.fis{width:1em}.fi-xx{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-xx'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23adb5bd'%20stroke-width='1.1'%20d='M.5.5h638.9v478.9H.5z'/%3e%3cpath%20fill='none'%20stroke='%23adb5bd'%20stroke-width='1.1'%20d='m.5.5%20639%20479m0-479-639%20479'/%3e%3c/svg%3e")}.fi-xx.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-xx'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23adb5bd'%20d='M.5.5h511v511H.5z'/%3e%3cpath%20fill='none'%20stroke='%23adb5bd'%20d='m.5.5%20511%20511m0-511-511%20511'/%3e%3c/svg%3e")}.fi-ad{background-image:url(/_astro/ad.B18i8NGa.svg)}.fi-ad.fis{background-image:url(/_astro/ad.Blhdm5jl.svg)}.fi-ae{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ae'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300732f'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20320h640v160H0z'/%3e%3cpath%20fill='red'%20d='M0%200h220v480H0z'/%3e%3c/svg%3e")}.fi-ae.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ae'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300732f'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20341.3h512V512H0z'/%3e%3cpath%20fill='red'%20d='M0%200h180v512H0z'/%3e%3c/svg%3e")}.fi-af{background-image:url(/_astro/af.C77Rf6cE.svg)}.fi-af.fis{background-image:url(/_astro/af.Bc2fqp73.svg)}.fi-ag{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ag'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='ag-a'%3e%3cpath%20fill-opacity='.7'%20d='M-79.7%200H603v512H-79.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23ag-a)'%20transform='translate(74.7)scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M-79.7%200H603v512H-79.7z'/%3e%3cpath%20fill='%23000001'%20d='M-79.6%200H603v204.8H-79.7z'/%3e%3cpath%20fill='%230072c6'%20d='M21.3%20203.2h480v112h-480z'/%3e%3cpath%20fill='%23ce1126'%20d='M603%20.1V512H261.6L603%200zM-79.7.1V512h341.3L-79.7%200z'/%3e%3cpath%20fill='%23fcd116'%20d='M440.4%20203.3%20364%20184l64.9-49-79.7%2011.4%2041-69.5-70.7%2041L332.3%2037l-47.9%2063.8-19.3-74-21.7%2076.3-47.8-65%2013.7%2083.2L138.5%2078l41%2069.5-77.4-12.5%2063.8%2047.8L86%20203.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ag.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ag'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='ag-a'%3e%3cpath%20fill='%2325ff01'%20d='M109%2047.6h464.8v464.9H109z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23ag-a)'%20transform='translate(-120%20-52.4)scale(1.1014)'%3e%3cpath%20fill='%23fff'%20d='M0%2047.6h693V512H0z'/%3e%3cpath%20fill='%23000001'%20d='M109%2047.6h464.8v186.1H109z'/%3e%3cpath%20fill='%230072c6'%20d='M128.3%20232.1h435.8v103.5H128.3z'/%3e%3cpath%20fill='%23ce1126'%20d='M692.5%2049.2v463.3H347zm-691.3%200v463.3h345.7z'/%3e%3cpath%20fill='%23fcd116'%20d='m508.8%20232.2-69.3-17.6%2059-44.4-72.5%2010.3%2037.3-63-64.1%2037.2%2011.3-73.5-43.4%2058-17.6-67.3-19.6%2069.3-43.4-59%2012.4%2075.6-64.1-39.3%2037.2%2063-70.3-11.3%2057.9%2043.4-72.4%2018.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ai{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ai'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='ai-b'%20fill='%23f90'%20d='M271%2087c1.5%203.6%206.5%207.6%207.8%209.6-1.7%202-2%201.8-1.8%205.4%203-3.1%203-3.5%205-3%204.2%204.2.8%2013.3-2.8%2015.3-3.4%202.1-2.8%200-8%202.6%202.3%202%205.1-.3%207.4.3%201.2%201.5-.6%204.1.4%206.7%202-.2%201.8-4.3%202.2-5.8%201.5-5.4%2010.4-9.1%2010.8-14.1%201.9-.9%203.7-.3%206%201-1.1-4.6-4.9-4.6-5.9-6-2.4-3.7-4.5-7.8-9.6-9-3.8-.7-3.5.3-6-1.4-1.6-1.2-6.3-3.4-5.5-1.6'/%3e%3c/defs%3e%3cclipPath%20id='ai-a'%3e%3cpath%20d='M0%200v120h373.3v120H320zm320%200H160v280H0v-40z'/%3e%3c/clipPath%3e%3cpath%20fill='%23012169'%20d='M0%200h640v480H0z'/%3e%3cpath%20stroke='%23fff'%20stroke-width='50'%20d='m0%200%20320%20240m0-240L0%20240'/%3e%3cpath%20stroke='%23c8102e'%20stroke-width='30'%20d='m0%200%20320%20240m0-240L0%20240'%20clip-path='url(%23ai-a)'/%3e%3cpath%20stroke='%23fff'%20stroke-width='75'%20d='M160%200v280M0%20120h373.3'/%3e%3cpath%20stroke='%23c8102e'%20stroke-width='50'%20d='M160%200v280M0%20120h373.3'/%3e%3cpath%20fill='%23012169'%20d='M0%20240h320V0h106.7v320H0z'/%3e%3cpath%20fill='%23fff'%20d='M424%20191.8c0%2090.4%209.7%20121.5%2029.3%20142.5a179%20179%200%200%200%2035%2030%20180%20180%200%200%200%2035-30c19.5-21%2029.3-52.1%2029.3-142.5-14.2%206.5-22.3%209.7-34%209.5a78%2078%200%200%201-30.3-9.5%2078%2078%200%200%201-30.3%209.5c-11.7.2-19.8-3-34-9.5'/%3e%3cg%20transform='matrix(1.96%200%200%202.002%20-40.8%2062.9)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cg%20transform='matrix(-.916%20-1.77%201.733%20-.935%20563.4%20829)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cg%20transform='matrix(-1.01%201.716%20-1.68%20-1.031%20925.4%20-103.2)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cpath%20fill='%239cf'%20d='M440%20315.1a78%2078%200%200%200%2013.3%2019.2%20179%20179%200%200%200%2035%2030%20180%20180%200%200%200%2035-30%2078%2078%200%200%200%2013.2-19.2z'/%3e%3cpath%20fill='%23fdc301'%20d='M421.2%20188.2c0%2094.2%2010.2%20126.6%2030.6%20148.5a187%20187%200%200%200%2036.5%2031.1%20186%20186%200%200%200%2036.4-31.1c20.4-21.9%2030.6-54.3%2030.6-148.5-14.8%206.8-23.3%2010.1-35.5%2010-11-.3-22.6-5.7-31.5-10-9%204.3-20.6%209.7-31.5%2010-12.3.1-20.7-3.2-35.6-10m4%205c14%206.5%2022%209.6%2033.5%209.4a76%2076%200%200%200%2029.6-9.4c8.4%204%2019.3%209.2%2029.6%209.4%2011.5.2%2019.4-3%2033.4-9.4%200%2089-9.6%20119.6-28.8%20140.2a176%20176%200%200%201-34.2%2029.4%20176%20176%200%200%201-34.3-29.4c-19.2-20.6-28.7-51.3-28.7-140.2z'/%3e%3c/svg%3e")}.fi-ai.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ai'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cpath%20id='ai-b'%20fill='%23f90'%20d='M271%2087c1.5%203.6%206.5%207.6%207.8%209.6-1.7%202-2%201.8-1.8%205.4%203-3.1%203-3.5%205-3%204.2%204.2.8%2013.3-2.8%2015.3-3.4%202.1-2.8%200-8%202.6%202.3%202%205.1-.3%207.4.3%201.2%201.5-.6%204.1.4%206.7%202-.2%201.8-4.3%202.2-5.8%201.5-5.4%2010.4-9.1%2010.8-14.1%201.9-.9%203.7-.3%206%201-1.1-4.6-4.9-4.6-5.9-6-2.4-3.7-4.5-7.8-9.6-9-3.8-.7-3.5.3-6-1.4-1.6-1.2-6.3-3.4-5.5-1.6'/%3e%3c/defs%3e%3cclipPath%20id='ai-a'%3e%3cpath%20d='M0%200v128h298.7v128H256zm256%200H128v298.7H0V256z'/%3e%3c/clipPath%3e%3cpath%20fill='%23012169'%20d='M0%200h512v512H0z'/%3e%3cpath%20stroke='%23fff'%20stroke-width='50'%20d='m0%200%20256%20256m0-256L0%20256'/%3e%3cpath%20stroke='%23c8102e'%20stroke-width='30'%20d='m0%200%20256%20256m0-256L0%20256'%20clip-path='url(%23ai-a)'/%3e%3cpath%20stroke='%23fff'%20stroke-width='75'%20d='M128%200v298.7M0%20128h298.7'/%3e%3cpath%20stroke='%23c8102e'%20stroke-width='50'%20d='M128%200v298.7M0%20128h298.7'/%3e%3cpath%20fill='%23012169'%20d='M0%20256h256V0h85.3v341.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M323.6%20224.1c0%2090.4%209.8%20121.5%2029.4%20142.5a179%20179%200%200%200%2035%2030%20180%20180%200%200%200%2035-30c19.5-21%2029.3-52.1%2029.3-142.5-14.2%206.5-22.3%209.7-34%209.5a78%2078%200%200%201-30.3-9.5%2078%2078%200%200%201-30.3%209.5c-11.7.2-19.8-3-34-9.5z'/%3e%3cg%20transform='matrix(1.96%200%200%202.002%20-141.1%2095.2)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cg%20transform='matrix(-.916%20-1.77%201.733%20-.935%20463.1%20861.4)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cg%20transform='matrix(-1.01%201.716%20-1.68%20-1.031%20825%20-71)'%3e%3cuse%20xlink:href='%23ai-b'/%3e%3ccircle%20cx='281.3'%20cy='91.1'%20r='.8'%20fill='%23fff'%20fill-rule='evenodd'/%3e%3c/g%3e%3cpath%20fill='%239cf'%20d='M339.8%20347.4a78%2078%200%200%200%2013.2%2019.2%20179%20179%200%200%200%2035%2030%20180%20180%200%200%200%2035-30%2078%2078%200%200%200%2013.2-19.2z'/%3e%3cpath%20fill='%23fdc301'%20d='M321%20220.5c0%2094.2%2010.1%20126.6%2030.5%20148.5a187%20187%200%200%200%2036.5%2031%20186%20186%200%200%200%2036.4-31.1C444.8%20347%20455%20314.7%20455%20220.5c-14.8%206.8-23.3%2010.1-35.5%2010-11-.3-22.6-5.7-31.5-10-9%204.3-20.6%209.7-31.5%2010-12.3.1-20.7-3.2-35.6-10zm4%205c13.9%206.5%2021.9%209.6%2033.4%209.4a76%2076%200%200%200%2029.6-9.4c8.4%204%2019.3%209.2%2029.6%209.4%2011.5.2%2019.4-3%2033.4-9.4%200%2089-9.6%20119.6-28.8%20140.2a176%20176%200%200%201-34.2%2029.4%20176%20176%200%200%201-34.3-29.4c-19.2-20.6-28.7-51.3-28.7-140.2'/%3e%3c/svg%3e")}.fi-al{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-al'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='red'%20d='M0%200h640v480H0z'/%3e%3cpath%20id='al-a'%20fill='%23000001'%20d='M272%2093.3c-4.6%200-12.3%201.5-12.2%205-13-2.1-14.3%203.2-13.5%208q2-2.9%203.9-3.1%202.5-.3%205.4%201.4a22%2022%200%200%201%204.8%204.1c-4.6%201.1-8.2.4-11.8-.2a17%2017%200%200%201-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7%202.3%202.1%204%205.6%205.8%2010%206.6%202.1.3%205.3%201%208.9%201s7.6-.5%209.8%200c-1.3.8-2.8%202.3-5.8%202.8s-7.5-1.8-10.3-2.4c.3%202.3%203.3%204.5%209.1%205.7%209.6%202%2017.5%203.6%2022.8%206.5a37%2037%200%200%201%2010.9%209.2c4.7%205.5%205%209.8%205.2%2010.8%201%208.8-2.1%2013.8-7.9%2015.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12%20.5-2.2%203.1-8.3.9-9.5a274%20274%200%200%200-32.3-15.1c-2.5-1-4.5%202.4-5.3%203.8a50%2050%200%200%201-36-23.7c-4.2-7.6-11.3%200-10.1%207.3%201.9%208%208%2013.8%2015.4%2018s17%208.2%2026.5%208c5.2%201%205.1%207.6-1%208.9-12.1%200-21.8-.2-30.9-9-6.9-6.3-10.7%201.2-8.8%205.4%203.4%2013.1%2022.1%2016.8%2041%2012.6%207.4-1.2%203%206.6%201%206.7-8%205.7-22.1%2011.2-34.6%200-5.7-4.4-9.6-.8-7.4%205.5%205.5%2016.5%2026.7%2013%2041.2%205%203.7-2.1%207.1%202.7%202.6%206.4-18.1%2012.6-27.1%2012.8-35.3%208-10.2-4.1-11%207.2-5%2011%206.7%204%2023.8%201%2036.4-7%205.4-4%205.6%202.3%202.2%204.8-14.9%2012.9-20.8%2016.3-36.3%2014.2-7.7-.6-7.6%208.9-1.6%2012.6%208.3%205.1%2024.5-3.3%2037-13.8%205.3-2.8%206.2%201.8%203.6%207.3a54%2054%200%200%201-21.8%2018c-7%202.7-13.6%202.3-18.3.7-5.8-2-6.5%204-3.3%209.4%201.9%203.3%209.8%204.3%2018.4%201.3s17.8-10.2%2024.1-18.5c5.5-4.9%204.9%201.6%202.3%206.2-12.6%2020-24.2%2027.4-39.5%2026.2-6.7-1.2-8.3%204-4%209%207.6%206.2%2017%206%2025.4-.2%207.3-7%2021.4-22.4%2028.8-30.6%205.2-4.1%206.9%200%205.3%208.4-1.4%204.8-4.8%2010-14.3%2013.6-6.5%203.7-1.6%208.8%203.2%209%202.7%200%208.1-3.2%2012.3-7.8%205.4-6.2%205.8-10.3%208.8-19.9%202.8-4.6%207.9-2.4%207.9%202.4-2.5%209.6-4.5%2011.3-9.5%2015.2-4.7%204.5%203.3%206%206%204.1%207.8-5.2%2010.6-12%2013.2-18.2%202-4.4%207.4-2.3%204.8%205-6%2017.4-16%2024.2-33.3%2027.8-1.7.3-2.8%201.3-2.2%203.3l7%207c-10.7%203.2-19.4%205-30.2%208l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6%201%204.2%200%206%201.2%207.7%203.1%202.2%205.7%207.2%206.3%2012.3%204.7%203.3%202.7%205%204.9%208.4%207.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8%204.4%203.4-1.4%205.6-1.8%207.1-.3%206.3%203.7%2010.4%202.9%2013.5%200l17.5%201.1c-2.2%202-5.2%203-7.5%204.8-9-2.6-13.8%201-15.4%208.3a17%2017%200%200%200-1.2%209.3q1.1-4.6%204.9-7c8%202%2011-1.3%2011.5-6.1%204-3.2%209.8-3.9%2013.7-7.1%204.6%201.4%206.8%202.3%2011.4%203.8q2.4%207.5%2011.3%205.6c7%20.2%205.8%203.2%206.4%205.5%202-3.3%201.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3%2011-3.5%2018.8-4.3%2029.8-7.8l7.7%206.8q2.3%201.5%203.8%200c6.9-10%2010-18.7%2016.3-25.3%202.5-2.8%205.6-6.4%209-7.3%201.7-.5%203.8-.2%205.2%201.3%201.3%201.4%202.4%204.1%202%208.2-.7%205.7-2.1%207.6-3.7%2011s-3.6%205.6-5.7%208.3c-4%205.3-9.4%208.4-12.6%2010.5-6.4%204.1-9%202.3-14%202-6.4.7-8%203.8-2.8%208.1%204.8%202.6%209.2%202.9%2012.8%202.2%203-.6%206.6-4.5%209.2-6.6%202.8-3.3%207.6.6%204.3%204.5-5.9%207-11.7%2011.6-19%2011.5-7.7%201-6.2%205.3-1.2%207.4%209.2%203.7%2017.4-3.3%2021.6-8%203.2-3.5%205.5-3.6%205%201.9-3.3%209.9-7.6%2013.7-14.8%2014.2-5.8-.6-5.9%204-1.6%207%209.6%206.6%2016.6-4.8%2019.9-11.6%202.3-6.2%205.9-3.3%206.3%201.8%200%206.9-3%2012.4-11.3%2019.4%206.3%2010.1%2013.7%2020.4%2020%2030.5l19.2-214L320%20139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4s3-.8%204.5-1c-4-4.1-7.6-5.4-15.3-7.6%201.9-.8%203.7-.4%209.3-.6a30%2030%200%200%200-13.5-10.2c4.2-3%205-3.2%209.2-6.7a86%2086%200%200%201-19.5-3.8%2037%2037%200%200%200-12-3.4zm.8%208.4c3.8%200%206.1%201.3%206.1%202.9s-2.3%202.9-6.1%202.9-6.2-1.5-6.2-3c0-1.6%202.4-2.8%206.2-2.8'/%3e%3cuse%20xlink:href='%23al-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3c/svg%3e")}.fi-al.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-al'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='red'%20d='M0%200h512v512H0z'/%3e%3cpath%20id='al-a'%20fill='%23000001'%20d='M204.9%2099.5c-5%200-13.2%201.6-13%205.4-14-2.3-15.4%203.4-14.6%208.5q2.3-3%204.2-3.3%202.8-.4%205.8%201.5a23%2023%200%200%201%205%204.4c-4.8%201.1-8.6.4-12.4-.3a18%2018%200%200%201-6.1-2.5c-1.6-1.1-2.1-2.1-4.6-4.7-2.9-3-6-2.1-5%202.5%202.2%204.3%206%206.3%2010.7%207%202.2.4%205.6%201.2%209.4%201.2s8.1-.5%2010.5%200c-1.4.8-3%202.4-6.2%203s-8-2-11-2.6c.4%202.5%203.5%204.8%209.7%206%2010.2%202.2%2018.7%204%2024.3%207s9.1%206.8%2011.6%209.8c5%206%205.3%2010.5%205.6%2011.5%201%209.5-2.2%2014.8-8.4%2016.4-3%20.8-8.5-.7-10.5-3-2-2.4-4-6.4-3.4-12.7.5-2.5%203.4-9%201-10.3a292%20292%200%200%200-34.4-16c-2.7-1.1-5%202.5-5.8%204A54%2054%200%200%201%20129%20107c-4.6-8.1-12.1%200-10.9%207.7%202.1%208.6%208.6%2014.8%2016.5%2019.2%208%204.5%2018.1%208.8%2028.3%208.6%205.5%201%205.5%208.2-1.1%209.5-13%200-23.2-.2-32.9-9.6-7.4-6.7-11.5%201.3-9.4%205.8%203.6%2014%2023.6%2018%2043.8%2013.4%207.8-1.3%203.1%207%20.9%207.2-8.4%206-23.5%2012-36.8-.1-6.1-4.7-10.2-.7-8%206%206%2017.5%2028.5%2013.8%2044%205.2%204-2.2%207.6%203%202.7%206.9-19.2%2013.4-28.9%2013.6-37.6%208.4-10.8-4.3-11.8%207.8-5.3%2011.8%207.2%204.4%2025.4%201%2038.9-7.4%205.7-4.2%206%202.4%202.3%205-15.9%2013.8-22.2%2017.5-38.8%2015.2-8.2-.6-8%209.5-1.6%2013.5%208.8%205.4%2026.1-3.6%2039.5-14.7%205.6-3%206.6%202%203.8%207.8a57%2057%200%200%201-23.3%2019.2%2029%2029%200%200%201-19.5.7c-6.2-2.2-7%204.2-3.6%2010%202%203.5%2010.6%204.7%2019.7%201.4%209.2-3.2%2019-10.8%2025.7-19.8%206-5.1%205.2%201.8%202.5%206.7-13.5%2021.3-25.9%2029.2-42.1%2027.9-7.3-1.2-8.9%204.4-4.3%209.6%208%206.7%2018.2%206.4%2027-.2a751%20751%200%200%200%2030.8-32.6c5.5-4.4%207.3%200%205.7%209-1.5%205.1-5.2%2010.5-15.3%2014.5-7%204-1.8%209.4%203.4%209.5%202.9%200%208.7-3.3%2013-8.3%205.9-6.5%206.2-11%209.5-21.1%203-5%208.4-2.7%208.4%202.5-2.6%2010.2-4.8%2012-10%2016.2-5.1%204.7%203.4%206.3%206.3%204.4%208.3-5.6%2011.3-12.8%2014.1-19.4%202-4.8%207.8-2.5%205.1%205.3-6.4%2018.5-17%2025.8-35.5%2029.6-1.9.3-3%201.4-2.4%203.6l7.5%207.5c-11.5%203.3-20.8%205.2-32.2%208.5L142%20300.6c-1.5-3.4-2.2-8.7-10.4-5-5.7-2.6-8.2-1.6-11.4%201%204.5.1%206.5%201.3%208.3%203.4%202.3%206%207.6%206.6%2013%205%203.5%202.9%205.4%205.2%209%208.2l-17.8-.6c-6.3-6.7-11.3-6.3-15.8-1-3.5.5-5%20.5-7.3%204.7%203.7-1.5%206-2%207.7-.3%206.6%203.9%2011%203%2014.3%200l18.7%201.1c-2.3%202-5.6%203.1-8%205.2-9.7-2.8-14.7%201-16.4%208.8a18%2018%200%200%200-1.4%2010c1-3.2%202.5-5.9%205.3-7.6%208.6%202.2%2011.8-1.3%2012.3-6.5%204.2-3.4%2010.5-4.1%2014.6-7.6%204.9%201.6%207.2%202.6%2012.1%204.1q2.5%208%2012%206c7.7.3%206.3%203.4%207%205.9%202-3.6%202-7-2.8-10.3-1.7-4.6-5.5-6.7-10.4-4-4.7-1.3-5.9-3.2-10.5-4.6%2011.7-3.7%2020-4.5%2031.8-8.3%203%202.8%205.2%204.8%208.2%207.2q2.5%201.6%204%200c7.3-10.6%2010.6-20%2017.4-27%202.6-2.9%206-6.8%209.6-7.8%201.8-.4%204-.2%205.5%201.4%201.4%201.6%202.6%204.4%202%208.7-.6%206.2-2%208.2-3.8%2011.8s-3.9%206-6%208.8c-4.4%205.7-10.1%209-13.5%2011.2-6.8%204.4-9.7%202.5-15%202.2-6.7.8-8.5%204.1-3%208.7a21%2021%200%200%200%2013.7%202.3c3.3-.6%207-4.8%209.8-7%203-3.6%208.1.6%204.7%204.7-6.3%207.5-12.6%2012.4-20.3%2012.3-8.2%201-6.7%205.7-1.3%207.9%209.8%204%2018.6-3.5%2023-8.5%203.5-3.7%206-3.9%205.3%202-3.4%2010.5-8.1%2014.6-15.7%2015.1-6.2-.5-6.3%204.2-1.7%207.5%2010.3%207%2017.7-5%2021.2-12.4%202.5-6.6%206.3-3.5%206.7%202%200%207.3-3.2%2013.2-12%2020.7%206.7%2010.7%2014.5%2021.7%2021.3%2032.5l20.5-228.2-20.5-36c-2.1-2-9.3-10.5-11.2-11.7-.7-.7-1.1-1.2-.1-1.6s3.2-.8%204.8-1c-4.4-4.4-8-5.8-16.3-8.2%202-.8%204-.3%209.9-.6a32%2032%200%200%200-14.4-11c4.5-3%205.3-3.3%209.8-7-7.7-.6-14.3-2-20.8-4a41%2041%200%200%200-12.8-3.7m.7%209c4%200%206.6%201.4%206.6%203s-2.5%203.1-6.6%203.1-6.6-1.5-6.6-3.2%202.6-3%206.6-3z'/%3e%3cuse%20xlink:href='%23al-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3c/svg%3e")}.fi-am{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-am'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23d90012'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%230033a0'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23f2a800'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-am.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-am'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23d90012'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%230033a0'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23f2a800'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-ao{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ao'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h640v243.6H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20236.4h640V480H0z'/%3e%3c/g%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='M228.7%20148.2c165.2%2043.3%2059%20255.6-71.3%20167.2l-8.8%2013.6c76.7%2054.6%20152.6%2010.6%20174-46.4%2022.2-58.8-7.6-141.5-92.6-150z'/%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='m170%20330.8%2021.7%2010.1-10.2%2021.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9%2022.3-8.6%208.7%2022.3-22.3%208.7zm-26-29.1%2017.1-16.9%2016.9%2017-17%2016.9zm-26.2-39.8%2022.4%208.4-8.5%2022.4-22.4-8.4zM316%20270l22.3%208.9-9%2022.2-22.2-8.9zm-69.9%2070%2022-9.3%209.5%2022-22%209.4zm-39.5%202.8h24v24h-24zm41.3-116-20.3-15-20.3%2014.6%208-23-20.3-15h24.5l8.5-22.6%207.8%2022.7%2024.7-.3-19.6%2015.3z'/%3e%3cpath%20fill='%23fe0'%20fill-rule='evenodd'%20d='M336%20346.4c-1.2.4-6.2%2012.4-9.7%2018.2l3.7%201c13.6%204.8%2020.4%209.2%2026.2%2017.5a8%208%200%200%200%2010.2.7s2.8-1%206.4-5c3-4.5%202.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M365.3%20372.8a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.6%200zm-21.4-13.6a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.7%200m10.9%207a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.7%200'/%3e%3cpath%20fill='%23fe0'%20fill-rule='evenodd'%20d='M324.5%20363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9%201.2-2.3%202.8-1.8%203.4-.5%201.5%208%206%2016.3%2011.4%2021.5A5288%205288%200%200%201%20334%20345.6c-3.4%205.8-6%2012.3-9.5%2018z'/%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='m297.2%20305.5%2017.8%2016-16%2017.8-17.8-16z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='3'%20d='m331.5%20348.8-125-75.5m109.6%2058.1L274%20304.1m18.2%2042.7L249.3%20322'/%3e%3c/svg%3e")}.fi-ao.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ao'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h512v259.8H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20252.2h512V512H0z'/%3e%3c/g%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='M228.7%20148.2c165.2%2043.3%2059%20255.6-71.3%20167.2l-8.8%2013.6c76.7%2054.6%20152.6%2010.6%20174-46.4%2022.2-58.8-7.6-141.5-92.6-150z'/%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='m170%20330.8%2021.7%2010.1-10.2%2021.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9%2022.3-8.6%208.7%2022.3-22.3%208.7zm-26-29.1%2017.1-16.9%2016.9%2017-17%2016.9zm-26.2-39.8%2022.4%208.4-8.5%2022.4-22.4-8.4zM316%20270l22.3%208.9-9%2022.2-22.2-8.9zm-69.9%2070%2022-9.3%209.5%2022-22%209.4zm-39.5%202.8h24v24h-24zm41.3-116-20.3-15-20.3%2014.6%208-23-20.3-15h24.5l8.5-22.6%207.8%2022.7%2024.7-.3-19.6%2015.3z'/%3e%3cpath%20fill='%23fe0'%20fill-rule='evenodd'%20d='M336%20346.4c-1.2.4-6.2%2012.4-9.7%2018.2l3.7%201c13.6%204.8%2020.4%209.2%2026.2%2017.5a8%208%200%200%200%2010.2.7s2.8-1%206.4-5c3-4.5%202.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M365.3%20372.8a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.6%200zm-21.4-13.6a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.7%200m10.9%207a4.3%204.3%200%201%201-8.7%200%204.3%204.3%200%200%201%208.7%200'/%3e%3cpath%20fill='%23fe0'%20fill-rule='evenodd'%20d='M324.5%20363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9%201.2-2.3%202.8-1.8%203.4-.5%201.5%208%206%2016.3%2011.4%2021.5A5288%205288%200%200%201%20334%20345.6c-3.4%205.8-6%2012.3-9.5%2018z'/%3e%3cpath%20fill='%23ffec00'%20fill-rule='evenodd'%20d='m297.2%20305.5%2017.8%2016-16%2017.8-17.8-16z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='3'%20d='m331.5%20348.8-125-75.5m109.6%2058.1L274%20304.1m18.2%2042.7L249.3%20322'/%3e%3c/svg%3e")}.fi-aq{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-aq'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%233a7dce'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M157.7%20230.8c-3.5-7.8-3.5-7.8-3.5-15.6-1.8%200-2%20.3-3%200-1.1-.3-1.5%207.2-4.8%205.8-.5-.8%202.4-6.2-.7-8.5-1-.7.2-5.2-.2-7.2%200%200-4%202.4-7-5.8-1.5-2.2-3.5%202-3.5%202s.9%202.4-.7%203c-2.2-1.8-3.9-.8-6.7-3.4s.6-5.4-4.8-7.5c3.5-9.8%203.5-7.9%2012.2-11.8-5.2-4-5.2-4-8.7-9.8-5.2-2-7-4-12.2-7.8-7-9.9-10.5-29.5-10.5-43.2%204.4-4.6%2010.5%2015.7%2019.2%2021.6l12.2%205.9c7%203.9%208.7%207.8%2014%2011.7l15.6%206c7%205.8%2010.5%2013.6%2015.7%2015.6%205.7%200%206.8-3.7%208.6-3.9%2010.3-.6%2015.5-2%2017.5-5.5%202.1-2.8%207%201.6%2021-4.3l-1.7-7.9s3.7-3.4%208.7-2c-.1-3.5-.5-13%204.5-17.4-3-3.5%201.8-9%202-10.7-1.4-8.6%201.4-8.7%202-11.3.6-2.5-2.4-1.7-1.6-5.2.9-3.5%206-4.3%206.6-7.2.7-2.9-1.1-14.3-1.3-16.8%209.4-2.8%2012.4-11.4%2015.7-7.8C264%2070%20265.8%2066%20276.3%2066c1.4-3.6-3.9-6.7-1.8-7.9%203.5-.5%206.1-.2%2010.2%205.7%201.3%202%201.6-2.7%202.9-3.2s4.4-.5%204.9-2.8c.5-2.4%201.2-5.6%203-9.5%201.4-3.2%202.5%201.3%203.8%207.5%207.4.3%2024%202.1%2031%204.3%205.2%201.5%208.7-1.5%2013.7-2.2%203.7%204.2%207.2%201%209.2%2010%202.7%204.8%207.3.4%208.3%201.8%205.8%2018.1%2025.8%205.9%2027.4%206.2%202.5%200%205.6%208%207.7%207.9%203.2-.6%202.3-3.1%205.2-2.1-.8%206.8%205.6%2014.6%205.6%2019.7%200%200%201.5.9%203-.6%201.4-1.6%202.7-5.4%204-5.3%203%20.5%2022%206%2025.8%207.9%201.7%203.5%203.3%205.3%206.8%204.7%202.8%202.1.8%205%202.4%205.1%203.5-2%204.7-4%208.2-2.1%203.5%202%207%205.9%208.7%209.8%200%202-1.8%209.8%200%2021.6.9%203.9%209.7%2032.3%209.7%2035.2%200%204-2.7%206-4.5%209.9%207%205.9%200%2015.7-3.5%2021.6%2026.2%205.9%2014%2017.6%2034.9%2011.7-5.2%2013.8-3.4%2012.7%201.8%2026.4-10.4%207.8-.2%2010.2-7.1%2020-.5.7%204.1%208.6%2010.5%208.6-1.7%2015.6-7%209.8-5.2%2033.3-13.7-.3-8.2%2017.6-17.4%2015.7.5%2011.2%205.2%2012.2%203.4%2023.5-7%202-7%202-10.4%207.9l-5.2-2c-1.8%209.8-5.3%2011.8%200%2021.6%200%200-6.8.2-8.8%200-.1%203.4%203%204.3%203.5%207.8-.2%201.4-9.9%207.6-17.4%207.9-2%204.8%205.2%2010%204.8%2012.4-8.2%201.8-11.8%2013-11.8%2013s4.2%202%203.5%204c-2.2-1.8-3.5-2-7-2-1.7.5-6%200-10%207.7-4.5%201.6-6.6%201-10%206-1.5-4.7-3.7.1-6.3%202-2.7%201.8-6.2%206.5-6.7%206.3.1-1.4%201.6-6.3%201.6-6.3L399%20437c-.7.1-.5-5.7-2.2-5.5s-6.4%207.3-8%207.5-2.1-2.2-3.5-2-4%207.5-5%207.7c-1%20.1-5-4.5-8.3-3.8-17.1%206.8-19.9-13.4-22.5-2-3.6-2.2-3-1-6.7.1-2.3.7-2.5-3.4-4.6-3.4-4.1.2-4%204.6-6.2%203.3-1.8-9.2-13-7.6-14-11.5s4.8-4%206.6-6.8c1.4-4-1.5-5.6%204.3-9.4%207.5-5.7%206.8-19.8%204.9-25.3%200%200-5.9-17.7-7-17.7-3.5-1-3.5%206.5-8.6%208.6-10.5%204-29-9.9-32.2-9.9-2.9%200-16.5%203.6-16-4-2%207.4-9.5%201.7-10%201.7-7%200-4.3%206.1-9%205.9-2.1-.8-23.6-2.3-23.6-2.3v4l-26.1-11.8c-10.5-4-5.3-13.7-22.7-7.8v-11.8h-8.7c3.5-23.6%200-11.8-1.8-33.4l-7%202c-7-10.6%209.8-8.6-5.2-15.7%200%200%20.3-11.7-3.5-7.8-.7.5%201.8%205.8%201.8%205.8-14-2-17.4-5.8-17.4-21.5%200%200%2011.4%201.8%2010.4%200-1.6-3-3.7-22-3.4-23.4-.1-2.6%2010.7-9%208.6-15.2%201.4-.6%205.3-.7%205.3-.7'/%3e%3cpath%20fill='none'%20stroke='%23fff'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='M595.5%20297.6q-.9%202%20.1%203.6c1.1-1.7.2-2.4%200-3.6zm-476-149.4s-3-.4-2.4%202.3c1-2%202.3-2.2%202.4-2.3zm-.3-6.4c-1.7%200-3.8-.2-3%202.5%201-2.1%203-2.4%203-2.5zm12.7%2036.3s2.6-.2%202%202.5c-1-2-2-2.4-2-2.5z'%20transform='scale(.86021%20.96774)'/%3e%3c/svg%3e")}.fi-aq.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-aq'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%233a7dce'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M107.7%20240.9c-3.5-7.9-3.5-7.9-3.5-15.7-1.8%200-2.1.4-3.1%200-1-.3-1.4%207.3-4.7%205.8-.5-.7%202.4-6.2-.8-8.4-1-.8.3-5.3-.2-7.2%200%200-4%202.3-7-5.9-1.4-2.1-3.4%202-3.4%202s.9%202.5-.7%203c-2.3-1.8-3.9-.8-6.7-3.3s.6-5.4-4.8-7.6c3.5-9.8%203.5-7.8%2012.2-11.8-5.2-3.9-5.2-3.9-8.7-9.8-5.3-2-7-3.9-12.2-7.8-7-9.8-10.5-29.4-10.5-43.2%204.4-4.6%2010.5%2015.7%2019.2%2021.6l12.2%205.9c7%204%208.7%207.8%2014%2011.8l15.6%205.9c7%205.8%2010.5%2013.7%2015.7%2015.6%205.7%200%206.8-3.6%208.6-3.9%2010.2-.5%2015.5-2%2017.5-5.5%202-2.8%207%201.6%2021-4.3l-1.8-7.8s3.8-3.5%208.8-2c-.2-3.6-.5-13.1%204.4-17.5-3-3.5-1-6-1-6s2.8-3%203.2-4.6c-1.5-8.7%201.2-8.8%201.9-11.3.6-2.6-2.4-1.7-1.6-5.2.9-3.5%206-4.4%206.6-7.3.7-2.8-1.5-4.3-1.3-5%201-2.7.1-9.2%200-11.7%209.3-2.9%2012.4-11.4%2015.7-7.9%201.7-11.8%203.5-15.7%2014-15.7%201.4-3.6-3.9-6.7-1.8-7.8%203.5-.5%206.1-.3%2010.2%205.7%201.3%201.9%201.5-2.8%202.8-3.3%201.4-.5%204.5-.5%205-2.8.4-2.4%201.1-5.5%202.9-9.4%201.5-3.2%202.6%201.2%204%207.4%207.3.3%2023.9%202.2%2030.9%204.3%205.2%201.6%208.7-1.5%2013.7-2.1%203.7%204.2%207.2%201%209.1%2010%202.8%204.7%207.3.3%208.3%201.8%205.9%2018%2026%205.8%2027.4%206.1%202.6%200%205.7%208.1%207.7%208%203.3-.7%202.4-3.2%205.2-2.2-.7%206.8%205.7%2014.7%205.7%2019.7%200%200%201.5.9%203-.6%201.4-1.5%202.7-5.4%204-5.3%203%20.5%204.3%201%207.8%201.6%209.4%203.7%2014.3%204.5%2018%206.3%201.6%203.6%203.3%205.4%206.8%204.7%202.8%202.2.7%205%202.4%205.2%203.5-2%204.7-4.1%208.1-2.2%203.5%202%207%206%208.8%209.8%200%202-1.8%209.8%200%2021.6.8%204%201.3%207%205%2013.8-1%206.9%204.7%2018.5%204.7%2021.5%200%203.9-2.8%206-4.5%209.8%207%206%200%2015.7-3.5%2021.6%2026.2%205.9%2014%2017.7%2034.9%2011.8-5.3%2013.7-3.4%2012.6%201.8%2026.3-10.4%207.9-.2%2010.3-7.2%2020-.4.7%204.2%208.6%2010.6%208.6-1.7%2015.7-7%209.8-5.2%2033.3-13.8-.3-8.2%2017.6-17.5%2015.7.6%2011.3%205.3%2012.2%203.5%2023.6-7%202-7%202-10.4%207.8l-5.3-2c-1.7%209.9-5.2%2011.8%200%2021.6%200%200-6.7.3-8.7%200-.1%203.4%203%204.3%203.5%207.9-.3%201.4-10%207.6-17.4%207.8-2%204.9%205.2%2010%204.8%2012.5-8.2%201.7-11.8%2013-11.8%2013s4.2%202%203.5%204c-2.3-1.9-3.5-2-7-2-1.7.5-6-.1-10%207.6-4.5%201.7-6.6%201-10%206.1-1.5-4.8-3.7%200-6.3%202-2.7%201.8-6.2%206.4-6.7%206.2.1-1.3%201.6-6.2%201.6-6.2l-8.7%202h-1c-.8.1-.6-5.7-2.2-5.5s-6.4%207.3-8%207.6-2.1-2.3-3.5-2c-1.4.1-4.1%207.4-5%207.6s-5-4.4-8.3-3.8c-17.2%206.8-19.9-13.4-22.6-2-3.6-2.1-3-.9-6.6.2-2.3.7-2.5-3.5-4.6-3.4-4.2.1-4%204.5-6.2%203.2-1.8-9.2-13-7.5-14.1-11.5-.9-4%204.8-4%206.7-6.8%201.4-4-1.5-5.5%204.3-9.4%207.4-5.7%203.1-7.8%204.4-12.1%202.4-6.2%202.4-7.7.4-13.2%200%200-5.8-17.6-7-17.6-3.4-1.1-3.4%206.5-8.5%208.6-10.5%203.9-29-10-32.2-10-3%20.1-16.5%203.7-16-4-2%207.5-9.6%201.8-10%201.8-7%200-4.3%206-9%205.8-2.1-.8-23.6-2.2-23.6-2.2v4l-14-8-12.2-3.9c-10.4-3.9-5.2-13.7-22.6-7.8v-11.8h-8.7c3.4-23.5%200-11.7-1.8-33.3l-7%202c-7-10.7%209.7-8.6-5.2-15.8%200%200%20.3-11.7-3.5-7.8-.7.5%201.8%205.9%201.8%205.9-14-2-17.5-5.9-17.5-21.6%200%200%2011.5%201.9%2010.5%200-1.6-3-3.8-22-3.4-23.3-.2-2.6%2010.7-9.1%208.6-15.3%201.3-.6%205.3-.6%205.3-.6'/%3e%3cpath%20fill='none'%20stroke='%23fff'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='M595.5%20297.6q-.9%202%20.1%203.6c1.1-1.7.2-2.4%200-3.6zm-476-149.4s-3-.4-2.4%202.3c1-2%202.3-2.2%202.4-2.3zm-.3-6.4c-1.7%200-3.8-.2-3%202.5%201-2.1%203-2.4%203-2.5zm12.7%2036.3s2.6-.2%202%202.5c-1-2-2-2.4-2-2.5z'%20transform='matrix(.86021%200%200%20.96774%20-50%2010)'/%3e%3c/svg%3e")}.fi-ar{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ar'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2374acdf'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cg%20id='ar-c'%20transform='translate(-64)scale(.96)'%3e%3cpath%20id='ar-a'%20fill='%23f6b40e'%20stroke='%2385340a'%20stroke-width='1.1'%20d='m396.8%20251.3%2028.5%2062s.5%201.2%201.3.9c.8-.4.3-1.6.3-1.6l-23.7-64m-.7%2024.2c-.4%209.4%205.4%2014.6%204.7%2023s3.8%2013.2%205%2016.5c1%203.3-1.2%205.2-.3%205.7%201%20.5%203-2.1%202.4-6.8s-4.2-6-3.4-16.3-4.2-12.7-3-22'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(22.5%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(45%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(67.5%20400%20250)'/%3e%3cpath%20id='ar-b'%20fill='%2385340a'%20d='M404.3%20274.4c.5%209%205.6%2013%204.6%2021.3%202.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8%2019.5%2042.6-16.3-43.9'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(22.5%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(45%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(67.5%20400%20250)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(90%20320%20240)'/%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(180%20320%20240)'/%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(-90%20320%20240)'/%3e%3ccircle%20cx='320'%20cy='240'%20r='26.7'%20fill='%23f6b40e'%20stroke='%2385340a'%20stroke-width='1.4'/%3e%3cpath%20id='ar-h'%20fill='%23843511'%20stroke-width='1'%20d='M329%20234.3c-1.7%200-3.5.8-4.5%202.4%202%201.9%206.6%202%209.7-.2a7%207%200%200%200-5.1-2.2zm0%20.4c1.8%200%203.5.8%203.7%201.6-2%202.3-5.3%202-7.4.4q1.6-2%203.8-2z'/%3e%3cuse%20xlink:href='%23ar-d'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640.2%200)'/%3e%3cuse%20xlink:href='%23ar-e'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640.2%200)'/%3e%3cuse%20xlink:href='%23ar-f'%20width='100%25'%20height='100%25'%20transform='translate(18.1)'/%3e%3cuse%20xlink:href='%23ar-g'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640.2%200)'/%3e%3cpath%20fill='%2385340a'%20d='M316%20243.7a1.8%201.8%200%201%200%201.8%202.9%204%204%200%200%200%202.2.6h.2q1%200%202.3-.6.5.7%201.5.7a1.8%201.8%200%200%200%20.3-3.6q.8.3.8%201.2a1.2%201.2%200%200%201-2.4%200%203%203%200%200%201-2.6%201.7%203%203%200%200%201-2.5-1.7q-.1%201.1-1.3%201.2-1-.1-1.2-1.2c-.2-1.1.3-1%20.8-1.2zm2%205.4c-2.1%200-3%202-4.8%203.1%201-.4%201.8-1.2%203.3-2s2.6.2%203.5.2%202-1%203.5-.2l3.3%202c-1.9-1.2-2.7-3-4.8-3q-.7%200-2%20.6z'/%3e%3cpath%20fill='%2385340a'%20d='M317.2%20251.6q-1.1%200-3.4.6c3.7-.8%204.5.5%206.2.5%201.6%200%202.5-1.3%206.1-.5-4-1.2-4.9-.4-6.1-.4-.8%200-1.4-.3-2.8-.2'/%3e%3cpath%20fill='%2385340a'%20d='M314%20252.2h-.8c4.3.5%202.3%203%206.8%203s2.5-2.5%206.8-3c-4.5-.4-3.1%202.3-6.8%202.3-3.5%200-2.4-2.3-6-2.3'/%3e%3cpath%20fill='%2385340a'%20d='M323.7%20258.9a3.7%203.7%200%200%200-7.4%200%203.8%203.8%200%200%201%207.4%200'/%3e%3cpath%20id='ar-e'%20fill='%2385340a'%20stroke-width='1'%20d='M303.4%20234.3c4.7-4.1%2010.7-4.8%2014-1.7a8%208%200%200%201%201.5%203.4q.6%203.6-2.1%207.5l.8.4q2.4-4.7%201.6-9.4l-.6-2.3c-4.5-3.7-10.7-4-15.2%202z'/%3e%3cpath%20id='ar-d'%20fill='%2385340a'%20stroke-width='1'%20d='M310.8%20233c2.7%200%203.3.6%204.5%201.7%201.2%201%201.9.8%202%201%20.3.2%200%20.8-.3.6q-.7-.2-2.5-1.6c-1.8-1.4-2.5-1-3.7-1-3.7%200-5.7%203-6.1%202.8-.5-.2%202-3.5%206.1-3.5'/%3e%3cuse%20xlink:href='%23ar-h'%20width='100%25'%20height='100%25'%20transform='translate(-18.4)'/%3e%3ccircle%20id='ar-f'%20cx='310.9'%20cy='236.3'%20r='1.8'%20fill='%2385340a'%20stroke-width='1'/%3e%3cpath%20id='ar-g'%20fill='%2385340a'%20stroke-width='1'%20d='M305.9%20237.5c3.5%202.7%207%202.5%209%201.3%202-1.3%202-1.7%201.6-1.7s-.8.4-2.4%201.3c-1.7.8-4.1.8-8.2-.9'/%3e%3c/svg%3e")}.fi-ar.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ar'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2374acdf'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.7H0z'/%3e%3cg%20id='ar-c'%20transform='translate(-153.6)scale(1.024)'%3e%3cpath%20id='ar-a'%20fill='%23f6b40e'%20stroke='%2385340a'%20stroke-width='1.1'%20d='m396.8%20251.3%2028.5%2062s.5%201.2%201.3.9c.8-.4.3-1.6.3-1.6l-23.7-64m-.7%2024.2c-.4%209.4%205.4%2014.6%204.7%2023s3.8%2013.2%205%2016.5c1%203.3-1.2%205.2-.3%205.7%201%20.5%203-2.1%202.4-6.8s-4.2-6-3.4-16.3-4.2-12.7-3-22'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(22.5%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(45%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-a'%20width='100%25'%20height='100%25'%20transform='rotate(67.5%20400%20250)'/%3e%3cpath%20id='ar-b'%20fill='%2385340a'%20d='M404.3%20274.4c.5%209%205.6%2013%204.6%2021.3%202.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8%2019.5%2042.6-16.3-43.9'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(22.5%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(45%20400%20250)'/%3e%3cuse%20xlink:href='%23ar-b'%20width='100%25'%20height='100%25'%20transform='rotate(67.5%20400%20250)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(90%20256%20256)'/%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(180%20256%20256)'/%3e%3cuse%20xlink:href='%23ar-c'%20width='100%25'%20height='100%25'%20transform='rotate(-90%20256%20256)'/%3e%3ccircle%20cx='256'%20cy='256'%20r='28.4'%20fill='%23f6b40e'%20stroke='%2385340a'%20stroke-width='1.5'/%3e%3cpath%20id='ar-h'%20fill='%23843511'%20stroke-width='1'%20d='M265.7%20250q-3.1%200-4.9%202.5c2.2%202%207%202.2%2010.3-.2a8%208%200%200%200-5.4-2.4zm0%20.4c1.9%200%203.6.8%203.9%201.7-2.2%202.4-5.7%202.2-7.9.4q1.6-2.2%204-2.1'/%3e%3cuse%20xlink:href='%23ar-d'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512.3%200)'/%3e%3cuse%20xlink:href='%23ar-e'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512.3%200)'/%3e%3cuse%20xlink:href='%23ar-f'%20width='100%25'%20height='100%25'%20transform='translate(19.3)'/%3e%3cuse%20xlink:href='%23ar-g'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512.3%200)'/%3e%3cpath%20fill='%2385340a'%20d='M251.6%20260a2%202%200%201%200%202%203q1.4.8%202.4.6h.3c.5%200%201.6%200%202.3-.6q.6.8%201.6.8a2%202%200%200%200%20.4-3.9q.8.3.9%201.3a1.3%201.3%200%200%201-2.7%200%203%203%200%200%201-2.7%201.8%203%203%200%200%201-2.7-1.8q-.1%201.2-1.3%201.3a1.3%201.3%200%200%201-.4-2.6zm2.2%205.8c-2.2%200-3%202-5%203.3l3.5-2.2c1.5-.9%202.8.2%203.7.2s2.2-1.1%203.7-.2q2%201.4%203.5%202.2c-2-1.4-2.8-3.3-5-3.3a6%206%200%200%200-2.2.6q-1.6-.6-2.2-.6'/%3e%3cpath%20fill='%2385340a'%20d='M253%20268.3q-1.2%200-3.6.8c4-1%204.8.4%206.6.4s2.6-1.3%206.6-.4c-4.4-1.4-5.3-.5-6.6-.5-.9%200-1.5-.3-3-.3'/%3e%3cpath%20fill='%2385340a'%20d='M249.6%20269h-.8c4.6.5%202.4%203.1%207.2%203.1s2.6-2.6%207.2-3c-4.8-.5-3.3%202.4-7.2%202.4-3.7%200-2.6-2.5-6.4-2.5'/%3e%3cpath%20fill='%2385340a'%20d='M260%20276.1a4%204%200%200%200-8%200%204%204%200%200%201%208%200'/%3e%3cpath%20id='ar-e'%20fill='%2385340a'%20stroke-width='1'%20d='M238.3%20249.9c5-4.4%2011.4-5%2014.9-1.8a9%209%200%200%201%201.6%203.7q.7%203.8-2.3%208%20.5%200%201%20.4%202.6-5.1%201.7-10l-.7-2.5c-4.8-4-11.4-4.4-16.2%202.2'/%3e%3cpath%20id='ar-d'%20fill='%2385340a'%20stroke-width='1'%20d='M246.2%20248.6c2.8%200%203.5.6%204.8%201.7s2%20.9%202.2%201.1%200%20.9-.4.7q-.7-.3-2.7-1.8c-1.3-1-2.6-1-4-1-3.8%200-6%203.2-6.5%203s2.2-3.7%206.6-3.7'/%3e%3cuse%20xlink:href='%23ar-h'%20width='100%25'%20height='100%25'%20transform='translate(-19.6)'/%3e%3ccircle%20id='ar-f'%20cx='246.3'%20cy='252.1'%20r='2'%20fill='%2385340a'%20stroke-width='1'/%3e%3cpath%20id='ar-g'%20fill='%2385340a'%20stroke-width='1'%20d='M241%20253.4c3.7%202.8%207.4%202.6%209.6%201.3s2.2-1.8%201.7-1.8c-.4%200-.9.5-2.6%201.4s-4.4.8-8.8-1z'/%3e%3c/svg%3e")}.fi-as{background-image:url(/_astro/as.Dekqy8Of.svg)}.fi-as.fis{background-image:url(/_astro/as.BTEVCXG-.svg)}.fi-at{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-at'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%200h640v160H0zm0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-at.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-at'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%200h512v170.7H0zm0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-au{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-au'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300008B'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='red'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23fff'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='red'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3cpath%20fill='%23fff'%20d='m527%20396.7-20.5%202.6%202.2%2020.5-14.8-14.4-14.7%2014.5%202-20.5-20.5-2.4%2017.3-11.2-10.9-17.5%2019.6%206.5%206.9-19.5%207.1%2019.4%2019.5-6.7-10.7%2017.6zm-3.7-117.2%202.7-13-9.8-9%2013.2-1.5%205.5-12.1%205.5%2012.1%2013.2%201.5-9.8%209%202.7%2013-11.6-6.6zm-104.1-60-20.3%202.2%201.8%2020.3-14.4-14.5-14.8%2014.1%202.4-20.3-20.2-2.7%2017.3-10.8-10.5-17.5%2019.3%206.8L387%20178l6.7%2019.3%2019.4-6.3-10.9%2017.3%2017.1%2011.2ZM623%20186.7l-20.9%202.7%202.3%2020.9-15.1-14.7-15%2014.8%202.1-21-20.9-2.4%2017.7-11.5-11.1-17.9%2020%206.7%207-19.8%207.2%2019.8%2019.9-6.9-11%2018zm-96.1-83.5-20.7%202.3%201.9%2020.8-14.7-14.8-15.1%2014.4%202.4-20.7-20.7-2.8%2017.7-11L467%2073.5l19.7%206.9%207.3-19.5%206.8%2019.7%2019.8-6.5-11.1%2017.6zM234%20385.7l-45.8%205.4%204.6%2045.9-32.8-32.4-33%2032.2%204.9-45.9-45.8-5.8%2038.9-24.8-24-39.4%2043.6%2015%2015.8-43.4%2015.5%2043.5%2043.7-14.7-24.3%2039.2%2038.8%2025.1Z'/%3e%3c/svg%3e")}.fi-au.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-au'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300008B'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M256%200v32l-95%2096%2095%2093.5V256h-33.5L127%20162l-93%2094H0v-34l93-93.5L0%2037V0h31l96%2094%2093-94z'/%3e%3cpath%20fill='red'%20d='m92%20162%205.5%2017L21%20256H0v-1.5zm62-6%2027%204%2075%2073.5V256zM256%200l-96%2098-2-22%2075-76zM0%20.5%2096.5%2095%2067%2091%200%2024.5z'/%3e%3cpath%20fill='%23fff'%20d='M88%200v256h80V0zM0%2088v80h256V88z'/%3e%3cpath%20fill='red'%20d='M0%20104v48h256v-48zM104%200v256h48V0z'/%3e%3cpath%20fill='%23fff'%20d='m202%20402.8-45.8%205.4%204.6%2045.9-32.8-32.4-33%2032.2%204.9-45.9-45.8-5.8L93%20377.4%2069%20338l43.6%2015%2015.8-43.4%2015.5%2043.5%2043.7-14.7-24.3%2039.2%2038.8%2025.1Zm222.7%208-20.5%202.6%202.2%2020.5-14.8-14.4-14.7%2014.5%202-20.5-20.5-2.4%2017.3-11.2-10.9-17.5%2019.6%206.5%206.9-19.5%207.1%2019.4%2019.5-6.7-10.7%2017.6zM415%20293.6l2.7-13-9.8-9%2013.2-1.5%205.5-12.1%205.5%2012.1%2013.2%201.5-9.8%209%202.7%2013-11.6-6.6zm-84.1-60-20.3%202.2%201.8%2020.3-14.4-14.5-14.8%2014.1%202.4-20.3-20.2-2.7%2017.3-10.8-10.5-17.5%2019.3%206.8%207.2-19.1%206.7%2019.3%2019.4-6.3-10.9%2017.3zm175.8-32.8-20.9%202.7%202.3%2020.9-15.1-14.7-15%2014.8%202.1-21-20.9-2.4%2017.7-11.5-11.1-17.9%2020%206.7%207-19.8%207.2%2019.8%2019.9-6.9-11%2018zm-82.1-83.5-20.7%202.3%201.9%2020.8-14.7-14.8L376%20140l2.4-20.7-20.7-2.8%2017.7-11-10.7-17.9%2019.7%206.9%207.3-19.5%206.8%2019.7%2019.8-6.5-11.1%2017.6z'/%3e%3c/svg%3e")}.fi-aw{background-image:url(/_astro/aw.W0PWLK5p.svg)}.fi-aw.fis{background-image:url(/_astro/aw.CLCX8uk5.svg)}.fi-ax{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ax'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='ax-a'%3e%3cpath%20fill-opacity='.7'%20d='M106.3%200h1133.3v850H106.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ax-a)'%20transform='matrix(.56472%200%200%20.56482%20-60%20-.1)'%3e%3cpath%20fill='%230053a5'%20d='M0%200h1300v850H0z'/%3e%3cg%20fill='%23ffce00'%3e%3cpath%20d='M400%200h250v850H400z'/%3e%3cpath%20d='M0%20300h1300v250H0z'/%3e%3c/g%3e%3cg%20fill='%23d21034'%3e%3cpath%20d='M475%200h100v850H475z'/%3e%3cpath%20d='M0%20375h1300v100H0z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-ax.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ax'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='ax-a'%3e%3cpath%20fill-opacity='.7'%20d='M166%200h850v850H166z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ax-a)'%20transform='translate(-100)scale(.6024)'%3e%3cpath%20fill='%230053a5'%20d='M0%200h1300v850H0z'/%3e%3cg%20fill='%23ffce00'%3e%3cpath%20d='M400%200h250v850H400z'/%3e%3cpath%20d='M0%20300h1300v250H0z'/%3e%3c/g%3e%3cg%20fill='%23d21034'%3e%3cpath%20d='M475%200h100v850H475z'/%3e%3cpath%20d='M0%20375h1300v100H0z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-az{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-az'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%233f9c35'%20d='M.1%200h640v480H.1z'/%3e%3cpath%20fill='%23ed2939'%20d='M.1%200h640v320H.1z'/%3e%3cpath%20fill='%2300b9e4'%20d='M.1%200h640v160H.1z'/%3e%3ccircle%20cx='304'%20cy='240'%20r='72'%20fill='%23fff'/%3e%3ccircle%20cx='320'%20cy='240'%20r='60'%20fill='%23ed2939'/%3e%3cpath%20fill='%23fff'%20d='m384%20200%207.7%2021.5%2020.6-9.8-9.8%2020.7L424%20240l-21.5%207.7%209.8%2020.6-20.6-9.8L384%20280l-7.7-21.5-20.6%209.8%209.8-20.6L344%20240l21.5-7.7-9.8-20.6%2020.6%209.8z'/%3e%3c/svg%3e")}.fi-az.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-az'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%233f9c35'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23ed2939'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%2300b9e4'%20d='M0%200h512v170.7H0z'/%3e%3ccircle%20cx='238.8'%20cy='256'%20r='76.8'%20fill='%23fff'/%3e%3ccircle%20cx='255.9'%20cy='256'%20r='64'%20fill='%23ed2939'/%3e%3cpath%20fill='%23fff'%20d='m324.2%20213.3%208.1%2023%2022-10.5-10.4%2022%2023%208.2-23%208.2%2010.4%2022-22-10.5-8.1%2023-8.2-23-22%2010.5%2010.5-22-23-8.2%2023-8.2-10.5-22%2022%2010.5z'/%3e%3c/svg%3e")}.fi-ba{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ba'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='ba-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23ba-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%23009'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3cpath%20fill='%23FC0'%20d='m56.5%200%20511%20512.3V.3z'/%3e%3cpath%20fill='%23FFF'%20d='M439.9%20481.5%20412%20461.2l-28.6%2020.2%2010.8-33.2-28.2-20.5h35l10.8-33.2%2010.7%2033.3h35l-28%2020.7zm81.3%2010.4-35-.1-10.7-33.3-10.8%2033.2h-35l28.2%2020.5-10.8%2033.2%2028.6-20.2%2028%2020.3-10.5-33zM365.6%20384.7l28-20.7-35-.1-10.7-33.2-10.8%2033.2-35-.1%2028.2%2020.5-10.8%2033.3%2028.6-20.3%2028%2020.4zm-64.3-64.5%2028-20.6-35-.1-10.7-33.3-10.9%2033.2h-34.9l28.2%2020.5-10.8%2033.2%2028.6-20.2%2027.9%2020.3zm-63.7-63.6%2028-20.7h-35L220%20202.5l-10.8%2033.2h-35l28.2%2020.4-10.8%2033.3%2028.6-20.3%2028%2020.4-10.5-33zm-64.4-64.3%2028-20.6-35-.1-10.7-33.3-10.9%2033.2h-34.9L138%20192l-10.8%2033.2%2028.6-20.2%2027.9%2020.3-10.4-33zm-63.6-63.9%2027.9-20.7h-35L91.9%2074.3%2081%20107.6H46L74.4%20128l-10.9%2033.2L92.1%20141l27.8%2020.4zm-64-64%2027.9-20.7h-35L27.9%2010.3%2017%2043.6h-35L10.4%2064l-11%2033.3L28.1%2077l27.8%2020.4zm-64-64L9.4-20.3h-35l-10.7-33.3L-47-20.4h-35L-53.7%200l-10.8%2033.2L-35.9%2013l27.8%2020.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ba.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ba'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='ba-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23ba-a)'%3e%3cpath%20fill='%23009'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fc0'%20d='m77%200%20437%20437V0z'/%3e%3cpath%20fill='%23FFF'%20d='m461.4%20470.4-26.1-19.1-26.9%2019%2010.2-31.2-26.4-19.2h32.7l10.2-31%2010%2031.1%2032.8.1-26.2%2019.4zm76.7%2010.4h-32.7l-10-31.2-10.2%2031.1h-32.8l26.4%2019.2-10.1%2031.2%2026.8-19%2026.2%2019-9.8-30.9zM391.8%20379.6l26.2-19.4h-32.7L375.2%20329%20365%20360h-32.7l26.4%2019.3-10.1%2031.1%2026.8-19%2026.1%2019.1zm-60.3-60.4%2026.2-19.4-32.8-.1-10-31.2-10.2%2031.2-32.7-.1%2026.4%2019.2-10.2%2031.2%2026.9-19%2026.1%2019.1zm-59.7-59.7%2026.2-19.4h-32.7l-10.1-31.2L245%20240h-32.7l26.4%2019.2-10.1%2031.2%2026.8-19%2026.1%2019zm-60.4-60.3%2026.2-19.3-32.8-.1-10-31.2-10.2%2031.2-32.7-.1%2026.4%2019.2-10.2%2031.2%2026.9-19%2026.1%2019-9.7-30.8zm-59.7-59.9L178%20120l-32.7-.1-10-31.2-10.3%2031.1H92.2l26.4%2019.2-10.1%2031.2%2026.8-19%2026.1%2019zm-60-60L118%2060l-32.7-.1-10-31.2L65%2059.8H32.2L58.6%2079l-10.1%2031.2%2026.8-19%2026.2%2019zm-60-60L58%200%2025.2-.1l-10-31.2L4.8-.2h-32.7L-1.4%2019l-10.1%2031.2%2026.8-19%2026.1%2019z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bb{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-bb'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300267f'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23ffc726'%20d='M213.3%200h213.4v480H213.3z'/%3e%3cpath%20id='bb-a'%20fill='%23000001'%20d='M319.8%20135.5c-7%2019-14%2038.6-29.2%2053.7%204.7-1.6%2013-3%2018.2-2.8v79.5l-22.4%203.3c-.8%200-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12%20.8%200%209.5%203.6%208.2%201.9a85%2085%200%200%200-46.4-24c-1.5-.3-2.4.5-1%202.2%2022.4%2034.6%2041.3%2075.5%2041.1%20124%208.8%200%2030-5.2%2038.7-5.2v56.1H320l2.5-156.7z'/%3e%3cuse%20xlink:href='%23bb-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20639.5%200)'/%3e%3c/svg%3e")}.fi-bb.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-bb'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300267f'%20d='M0-.2h512V512H0z'/%3e%3cpath%20fill='%23ffc726'%20d='M170.7-.2h170.6V512H170.7z'/%3e%3cpath%20id='bb-a'%20fill='%23000001'%20d='M256%20173.3c-5.5%2015.1-11.2%2030.9-23.3%2043a52%2052%200%200%201%2014.6-2.3v63.6l-18%202.7q-1-.1-.9-2.4a244%20244%200%200%200-11.7-53.6c-.4-2.3-7.2-11.3-2-9.7.7%200%207.7%203%206.6%201.6a68%2068%200%200%200-37.1-19.2c-1.2-.3-2%20.3-.9%201.7%2018%2027.7%2033.1%2060.4%2033%2099.2%207%200%2024-4.1%2031-4.1v44.9h8.8l2-125.4z'/%3e%3cuse%20xlink:href='%23bb-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3c/svg%3e")}.fi-bd{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bd'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23006a4e'%20d='M0%200h640v480H0z'/%3e%3ccircle%20cx='280'%20cy='240'%20r='160'%20fill='%23f42a41'/%3e%3c/svg%3e")}.fi-bd.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bd'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23006a4e'%20d='M0%200h512v512H0z'/%3e%3ccircle%20cx='230'%20cy='256'%20r='170.7'%20fill='%23f42a41'/%3e%3c/svg%3e")}.fi-be{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-be'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ffd90c'%20d='M213.3%200h213.4v480H213.3z'/%3e%3cpath%20fill='%23f31830'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-be.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-be'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ffd90c'%20d='M170.7%200h170.6v512H170.7z'/%3e%3cpath%20fill='%23f31830'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bf'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23de0000'%20d='M640%20479.6H.4V0H640z'/%3e%3cpath%20fill='%2335a100'%20d='M639.6%20480H0V240.2h639.6z'/%3e%3cpath%20fill='%23fff300'%20d='m254.6%20276.2-106-72.4h131L320%2086.6%20360.4%20204l131-.1-106%2072.4%2040.5%20117.3-106-72.6L214%20393.4'/%3e%3c/g%3e%3c/svg%3e")}.fi-bf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bf'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23de0000'%20d='M512%20511.6H.5V0H512z'/%3e%3cpath%20fill='%2335a100'%20d='M511.8%20512H0V256.2h511.7z'/%3e%3c/g%3e%3cpath%20fill='%23fff300'%20fill-rule='evenodd'%20d='m389%20223.8-82.9%2056.5%2031.7%2091.6-82.7-56.7-82.8%2056.7%2031.7-91.6-82.8-56.6%20102.3.2%2031.6-91.7%2031.5%2091.6'/%3e%3c/svg%3e")}.fi-bg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bg'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%2300966e'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23d62612'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-bg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bg'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%2300966e'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23d62612'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-bh{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bh'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0'/%3e%3cpath%20fill='%23ce1126'%20d='M640%200H96l110.7%2048L96%2096l110.7%2048L96%20192l110.7%2048L96%20288l110.7%2048L96%20384l110.7%2048L96%20480h544'/%3e%3c/svg%3e")}.fi-bh.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bh'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0'/%3e%3cpath%20fill='%23ce1126'%20d='M512%200H102.4l83.4%2051.2-83.4%2051.2%2083.4%2051.2-83.4%2051.2%2083.4%2051.2-83.4%2051.2%2083.4%2051.2-83.4%2051.2%2083.4%2051.2-83.4%2051.2H512'/%3e%3c/svg%3e")}.fi-bi{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bi'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='bi-a'%3e%3cpath%20fill-opacity='.7'%20d='M-90.5%200H592v512H-90.5z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23bi-a)'%20transform='translate(84.9)scale(.9375)'%3e%3cpath%20fill='%2318b637'%20d='m-178%200%20428.8%20256L-178%20512zm857.6%200L250.8%20256l428.8%20256z'/%3e%3cpath%20fill='%23cf0921'%20d='m-178%200%20428.8%20256L679.6%200zm0%20512%20428.8-256%20428.8%20256z'/%3e%3cpath%20fill='%23fff'%20d='M679.6%200h-79.9L-178%20464.3V512h79.9L679.6%2047.7z'/%3e%3cpath%20fill='%23fff'%20d='M398.9%20256a148%20148%200%201%201-296.1%200%20148%20148%200%200%201%20296%200z'/%3e%3cpath%20fill='%23fff'%20d='M-178%200v47.7L599.7%20512h79.9v-47.7L-98.1%200z'/%3e%3cpath%20fill='%23cf0921'%20stroke='%2318b637'%20stroke-width='3.9'%20d='m280%20200.2-19.3.3-10%2016.4-9.9-16.4-19.2-.4%209.3-16.9-9.2-16.8%2019.2-.4%2010-16.4%209.9%2016.5%2019.2.4-9.3%2016.8zm-64.6%20111.6-19.2.3-10%2016.4-9.9-16.4-19.2-.4%209.3-16.9-9.2-16.8%2019.2-.4%2010-16.4%209.9%2016.5%2019.2.4-9.3%2016.8zm130.6%200-19.2.3-10%2016.4-10-16.4-19.1-.4%209.3-16.9-9.3-16.8%2019.2-.4%2010-16.4%2010%2016.5%2019.2.4-9.4%2016.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bi.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bi'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='bi-a'%3e%3cpath%20fill='gray'%20d='M60.8%20337h175v175h-175z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23bi-a)'%20transform='translate(-178%20-986)scale(2.9257)'%3e%3cpath%20fill='%2318b637'%20d='m0%20337%20146.6%2087.5L0%20512zm293.1%200-146.5%2087.5L293%20512z'/%3e%3cpath%20fill='%23cf0921'%20d='m0%20337%20146.6%2087.5L293%20337zm0%20175%20146.6-87.5L293%20512z'/%3e%3cpath%20fill='%23fff'%20d='M293.1%20337h-27.3L0%20495.7V512h27.3l265.8-158.7z'/%3e%3cpath%20fill='%23fff'%20d='M197.2%20424.5a50.6%2050.6%200%201%201-101.2%200%2050.6%2050.6%200%200%201%20101.2%200'/%3e%3cpath%20fill='%23fff'%20d='M0%20337v16.3L265.8%20512h27.3v-16.3L27.3%20337z'/%3e%3cpath%20fill='%23cf0921'%20stroke='%2318b637'%20stroke-width='1pt'%20d='m156.5%20405.4-6.6.1-3.4%205.6-3.4-5.6-6.5-.1%203.2-5.8-3.2-5.7%206.6-.2%203.4-5.6%203.4%205.7h6.5l-3.1%205.8zm-22%2038.2h-6.6l-3.4%205.7-3.4-5.6-6.6-.2%203.2-5.7-3.1-5.8%206.5-.1%203.4-5.6%203.4%205.6%206.6.2-3.2%205.7zm44.6%200h-6.6l-3.4%205.7-3.4-5.6-6.5-.2%203.1-5.7-3.1-5.8%206.6-.1%203.4-5.6%203.4%205.6%206.5.2-3.2%205.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bj{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bj'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='bj-a'%3e%3cpath%20fill='gray'%20d='M67.6-154h666v666h-666z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23bj-a)'%20transform='matrix(.961%200%200%20.7207%20-65%20111)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23319400'%20d='M0-154h333v666H0z'/%3e%3cpath%20fill='%23ffd600'%20d='M333-154h666v333H333z'/%3e%3cpath%20fill='%23de2110'%20d='M333%20179h666v333H333z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-bj.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bj'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='bj-a'%3e%3cpath%20fill='gray'%20d='M67.6-154h666v666h-666z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23bj-a)'%20transform='translate(-52%20118.4)scale(.7688)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23319400'%20d='M0-154h333v666H0z'/%3e%3cpath%20fill='%23ffd600'%20d='M333-154h666v333H333z'/%3e%3cpath%20fill='%23de2110'%20d='M333%20179h666v333H333z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-bl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bl'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-bl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bl'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2300267f'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23f31830'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bm{background-image:url(/_astro/bm.BeYgB2z9.svg)}.fi-bm.fis{background-image:url(/_astro/bm.DvNWWcPM.svg)}.fi-bn{background-image:url(/_astro/bn.B6T3O78g.svg)}.fi-bn.fis{background-image:url(/_astro/bn.CPQcA8Ol.svg)}.fi-bo{background-image:url(/_astro/bo.CcUiMqkJ.svg)}.fi-bo.fis{background-image:url(/_astro/bo.Dry0C6UA.svg)}.fi-bq{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bq'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2321468b'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%23ae1c28'%20d='M0%200h640v160H0z'/%3e%3c/svg%3e")}.fi-bq.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bq'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2321468b'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%23ae1c28'%20d='M0%200h512v170.7H0z'/%3e%3c/svg%3e")}.fi-br{background-image:url(/_astro/br.Cu5YU29T.svg)}.fi-br.fis{background-image:url(/_astro/br.Dr5rMAMb.svg)}.fi-bs{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bs'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='bs-a'%3e%3cpath%20fill-opacity='.7'%20d='M-12%200h640v480H-12z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23bs-a)'%20transform='translate(12)'%3e%3cpath%20fill='%23fff'%20d='M968.5%20480h-979V1.8h979z'/%3e%3cpath%20fill='%23ffe900'%20d='M968.5%20344.5h-979V143.3h979z'/%3e%3cpath%20fill='%2308ced6'%20d='M968.5%20480h-979V320.6h979zm0-318.7h-979V2h979z'/%3e%3cpath%20fill='%23000001'%20d='M-11%200c2.3%200%20391.8%20236.8%20391.8%20236.8L-12%20479.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bs.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bs'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='bs-a'%3e%3cpath%20fill-opacity='.7'%20d='M56.6%2026.4H537v480.3H56.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23bs-a)'%20transform='matrix(1.066%200%200%201.067%20-60.4%20-28.1)'%3e%3cpath%20fill='%23fff'%20d='M990%20506.2H9.4V27.6H990z'/%3e%3cpath%20fill='%23ffe900'%20d='M990%20370.6H9.4V169.2H990z'/%3e%3cpath%20fill='%2308ced6'%20d='M990%20506.2H9.4V346.7H990zm0-319H9.4V27.9H990z'/%3e%3cpath%20fill='%23000001'%20d='M9%2025.9c2.1%200%20392.3%20237%20392.3%20237L7.8%20505.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bt{background-image:url(/_astro/bt.BTo4qm10.svg)}.fi-bt.fis{background-image:url(/_astro/bt.SxWnbWW0.svg)}.fi-bv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bv'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='bv-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23bv-a)'%3e%3cpath%20fill='%23fff'%20d='M-28%200h699.7v512H-28z'/%3e%3cpath%20fill='%23d72828'%20d='M-53-77.8h218.7v276.2H-53zM289.4-.6h381v199h-381zM-27.6%20320h190.4v190.3H-27.6zm319.6%202.1h378.3v188.2H292z'/%3e%3cpath%20fill='%23003897'%20d='M196.7-25.4H261v535.7h-64.5z'/%3e%3cpath%20fill='%23003897'%20d='M-27.6%20224.8h698v63.5h-698z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bv'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='bv-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23bv-a)'%3e%3cpath%20fill='%23fff'%20d='M-68%200h699.7v512H-68z'/%3e%3cpath%20fill='%23d72828'%20d='M-93-77.8h218.7v276.2H-93zM249.4-.6h381v199h-381zM-67.6%20320h190.4v190.3H-67.5zm319.6%202.1h378.3v188.2H252z'/%3e%3cpath%20fill='%23003897'%20d='M156.7-25.4H221v535.7h-64.5z'/%3e%3cpath%20fill='%23003897'%20d='M-67.5%20224.8h697.8v63.5H-67.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bw'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2300cbff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20186h640v108H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-bw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-bw'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2300cbff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20192h512v128H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20212.7h512V299H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-by{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20id='flag-icons-by'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='by-a'%3e%3cpath%20d='M0%200h200v608h8v284l-8%208H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cpath%20fill='%23ce1720'%20d='M0%200h640v480H0Z'/%3e%3cg%20fill='%23fff'%20clip-path='url(%23by-a)'%20transform='matrix(.52885%200%200%20.53333%205%200)'%3e%3cg%20id='by-c'%3e%3cpath%20id='by-b'%20d='M36%200v14h-9v14H16v16H8v13H-8V24H8V6H-8V0Zm26%2077v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20Zm-17-1h10V58H45ZM19%20183h8v-18h-8zm54%200h8v-18h-8ZM-8%20305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8Z'/%3e%3cuse%20xlink:href='%23by-b'%20transform='matrix(-1%200%200%201%20200%200)'/%3e%3cpath%20d='M96%200v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0Zm-2%20274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4%2058v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4%2046v27h8v-27z'/%3e%3c/g%3e%3cuse%20xlink:href='%23by-c'%20transform='matrix(1%200%200%20-1%200%20900)'/%3e%3cpath%20d='M-8%20408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8Zm216%200v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14ZM62%20459h8v-18h-8zm76%200v-18h-8v18zm-42-59h8v-18h-8zm0%20100v18h8v-18Zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46Zm50%209v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z'/%3e%3c/g%3e%3cpath%20fill='%23007c30'%20d='M110%20320h530v160H110Z'/%3e%3c/svg%3e")}.fi-by.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20id='flag-icons-by'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='by-a'%3e%3cpath%20d='M0%200h200v608h8v284l-8%208H0Z'/%3e%3c/clipPath%3e%3c/defs%3e%3cpath%20fill='%23ce1720'%20d='M0%200h512v512H0Z'/%3e%3cg%20fill='%23fff'%20clip-path='url(%23by-a)'%20transform='matrix(.5625%200%200%20.56889%205%200)'%3e%3cg%20id='by-c'%3e%3cpath%20id='by-b'%20d='M36%200v14h-9v14H16v16H8v13H-8V24H8V6H-8V0Zm26%2077v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20Zm-17-1h10V58H45ZM19%20183h8v-18h-8zm54%200h8v-18h-8ZM-8%20305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8Z'/%3e%3cuse%20xlink:href='%23by-b'%20transform='matrix(-1%200%200%201%20200%200)'/%3e%3cpath%20d='M96%200v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0Zm-2%20274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4%2058v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4%2046v27h8v-27z'/%3e%3c/g%3e%3cuse%20xlink:href='%23by-c'%20transform='matrix(1%200%200%20-1%200%20900)'/%3e%3cpath%20d='M-8%20408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8Zm216%200v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14ZM62%20459h8v-18h-8zm76%200v-18h-8v18zm-42-59h8v-18h-8zm0%20100v18h8v-18Zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46Zm50%209v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z'/%3e%3c/g%3e%3cpath%20fill='%23007c30'%20d='M117.3%20341.3h395V512h-395z'/%3e%3c/svg%3e")}.fi-bz{background-image:url(/_astro/bz.BCKHR4_q.svg)}.fi-bz.fis{background-image:url(/_astro/bz.CoBdB-p8.svg)}.fi-ca{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ca'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M150.1%200h339.7v480H150z'/%3e%3cpath%20fill='%23d52b1e'%20d='M-19.7%200h169.8v480H-19.7zm509.5%200h169.8v480H489.9zM201%20232l-13.3%204.4%2061.4%2054c4.7%2013.7-1.6%2017.8-5.6%2025l66.6-8.4-1.6%2067%2013.9-.3-3.1-66.6%2066.7%208c-4.1-8.7-7.8-13.3-4-27.2l61.3-51-10.7-4c-8.8-6.8%203.8-32.6%205.6-48.9%200%200-35.7%2012.3-38%205.8l-9.2-17.5-32.6%2035.8c-3.5.9-5-.5-5.9-3.5l15-74.8-23.8%2013.4q-3.2%201.3-5.2-2.2l-23-46-23.6%2047.8q-2.8%202.5-5%20.7L264%20130.8l13.7%2074.1c-1.1%203-3.7%203.8-6.7%202.2l-31.2-35.3c-4%206.5-6.8%2017.1-12.2%2019.5s-23.5-4.5-35.6-7c4.2%2014.8%2017%2039.6%209%2047.7'/%3e%3c/svg%3e")}.fi-ca.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ca'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M81.1%200h362.3v512H81.1z'/%3e%3cpath%20fill='%23d52b1e'%20d='M-100%200H81.1v512H-100zm543.4%200h181.1v512H443.4zM135.3%20247.4l-14%204.8%2065.4%2057.5c5%2014.8-1.7%2019.1-6%2026.9l71-9-1.8%2071.5%2014.8-.5-3.3-70.9%2071.2%208.4c-4.4-9.3-8.3-14.2-4.3-29l65.4-54.5-11.4-4.1c-9.4-7.3%204-34.8%206-52.2%200%200-38.1%2013.1-40.6%206.2l-9.9-18.5-34.6%2038c-3.8%201-5.4-.6-6.3-3.8l16-79.7-25.4%2014.3q-3.3%201.3-5.6-2.4l-24.5-49-25.2%2050.9q-3%202.7-5.4.8l-24.2-13.6%2014.5%2079.2c-1.1%203-3.9%204-7.1%202.3l-33.3-37.8c-4.3%207-7.3%2018.4-13%2021-5.7%202.3-25-4.9-37.9-7.7%204.4%2015.9%2018.2%2042.3%209.5%2051z'/%3e%3c/svg%3e")}.fi-cc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cc'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='cc-a'%20d='m0-360%2069.4%20215.8%20212-80.3L156-35.6%20351%2080.1%20125%2099.8l31.1%20224.6L0%20160l-156.2%20164.3%2031.1-224.5L-351%2080l195-115.7-125.5-188.9%20212%2080.3z'/%3e%3cpath%20id='cc-b'%20d='M0-210%2054.9-75.5l144.8%2010.6-111%2093.8%2034.7%20141L0%2093.3-123.4%20170l34.6-141-111-93.8%20145-10.6z'/%3e%3c/defs%3e%3cpath%20fill='green'%20d='M0%200h640v480H0z'/%3e%3ccircle%20cx='320'%20cy='240'%20r='66.7'%20fill='%23ffe000'/%3e%3ccircle%20cx='340.8'%20cy='240'%20r='54.9'%20fill='green'/%3e%3ccircle%20cx='109.8'%20cy='173.3'%20r='69.8'%20fill='%23ffe000'/%3e%3cpath%20fill='%23802000'%20stroke='%237b3100'%20stroke-width='1.5'%20d='M105%20226h17.5s.7-1.6-.2-2.4c-1-.8-4.7-1-3.7-3.8%202-5.8%202.4-4%203.7-17.8a739%20739%200%200%200%202-35.5h-2.6s.5%206.7-1%2015.5c-1.4%208.8-1.9%209.5-3.5%2016.3a64%2064%200%200%201-3.3%2011.2c-1.4%204-1.6%204.1-3.8%207.8-2.3%203.6-1.5%202.2-2.7%204.4-.7%201.1-1.4.8-1.9%201.6s-.5%202.7-.5%202.7z'/%3e%3cpath%20fill='green'%20d='M118.3%20122.5a23%2023%200%200%201-1.2%209.2%2027%2027%200%200%200-2.3%209.8c-1.8.6-3.7-3.9-5.5-1.2%201.3%203.7%204.4%206.6%206.4%209.9.4%201%203.4%203.7%201.6%204.3-4.3-1.5-5.4-7-8-10.3a19%2019%200%200%200-15.5-10c-2.5.1-10.4-.5-8.4%203.7%203%202%206.8%203.4%209.8%205.7%202.3.2%206.3%204%206.1%205.4-4-1.6-5.8-3.5-10-5.2-5.8-2.2-13.7-.9-17%204.8-.5%201.5-1.4%205.8.5%206.3%202.2-3.4%205.3-7.3%209.9-6.2%203.6.3-4%206.7-1.1%205.4%201-.4%203-1.8%204.6-2%201.5%200%202.3%201%203.4%201.2%202.3.3%203%201.2%202.7%201.8s-1%200-3.3.8c-1.1.4-1.7%201.4-3%201.9s-4.2.5-5.2%200c-3.7-1.5-9.7-1.3-10.8%203.3%200%202-1.8-.2-2.6.7-.7%202.2-.8%204.4-4%204.2-2%202-4%204.2-6.6%205.7%201.5%203.4%207.3-3.4%207-.5-2.5%203.5%201.4%204.2%203%201.5%202.9-3%206.5-6.7%2010.7-3.6%202%201.9%203.2-1%204.7-1%201%202.5%202.1.2%203.2-.5%201.7-.2%201.2%202.2%203.2.7%204.1-2.7%209.1-.4%2013.1-3%204.3-2%20.6%201.5-.5%202.9-1.9%203.6-.3%208.4-4.3%2010.6-1.7%204.3%201.9%2010-1.7%2013.2-.5%202%204.6%201.8%206%202.6%202.6%200%200-5.8%202.5-6.6%203.4%202%203.2-3.8%202.5-5.6.4-4%20.6-8.6%202.6-12.3%202.2-4.5%204.2%201.9%201.8%203.7-1.4%204.1-3.4%209.4-.3%2013.3%201%20.2%201.7%202.4%202.8%203%201.2.7%202.8-.1%203-2.1%201.6-6%20.8-12.4%203-18.3%201.5-1.8%203.6-.3%204.5%201.4%203%203.5%205.1%207.8%208.7%2010.7a15%2015%200%200%201%207.8%207.3c0%202.6%207.4%203%205.2%200-2.1-2.7-.7-5.6%201.4-7.5%201.2.3.9-1.8%200-1-1.5-.3-1.6-3%20.4-1.7%203.5%201.1-.2-2.5-1.5-2.6-2.9-1.8-6.2-3.8-7.6-7%203.8%200%207.7%202.1%2011.5.9%203.1-1.6%206.2%200%207.3%202.8%202.4-.4%201.4-2.8%200-3.6%201.7-.7%203-2.2.8-3.5-1-1.4%201.5-4-1.7-3.8.1-2.5-.8-4.7-3.5-5.6-2.7-2.2-10.6%203.4-10.3-1.7-.8-2.8%203.2-.4%204.3-1.8%201.1-3-5.5-2.6-3.3-5%201.4-.8%208.1-2.1%202.9-3.1a8%208%200%200%201-7-1.1c-1.9%203.1-7.2-1.8-6.3%203.8-.7%202.1-5.5%207.6-6.8%203.4%201-3.3%206.8-4.3%205-8.8-.3-2.7-2.6.5-3.6.3-.6-1.7%201.6-3.8%203.2-4.2%203%202.4%203-3%206-2.5%202.1-.5-.7-1.4-1.3-1.8.6-1.5%203.9-2.3.7-3.7-2.9-2-5%202.1-7.3%202.3-2.2-2.5%202-3.7%203.2-5%20.1-1-2.4-.3-1.7-1.2.7-1.1%205.2-1.2%203-3a15%2015%200%200%200-10.2.6c-2%20.6-2.5%205-4.2%204.8-.7-2%20.3-5.8-2.4-6.3m15%2042.3c2.4-.4%200%203.7-1%203.6%200-1.4-3.6-1.3-1.3-2.6a7%207%200%200%201%202.3-1'/%3e%3cg%20fill='%23ffe000'%20transform='translate(0%2080)scale(.0635)'%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='7560'%20y='4200'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='6300'%20y='2205'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='7560'%20y='840'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='8680'%20y='1869'/%3e%3cuse%20xlink:href='%23cc-b'%20width='100%25'%20height='100%25'%20x='8064'%20y='2730'/%3e%3c/g%3e%3c/svg%3e")}.fi-cc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cc'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cpath%20id='cc-a'%20d='m0-360%2069.4%20215.8%20212-80.3L156-35.6%20351%2080.1%20125%2099.8l31.1%20224.6L0%20160l-156.2%20164.3%2031.1-224.5L-351%2080l195-115.7-125.5-188.9%20212%2080.3z'/%3e%3cpath%20id='cc-b'%20d='M0-210%2054.9-75.5l144.8%2010.6-111%2093.8%2034.7%20141L0%2093.3-123.4%20170l34.6-141-111-93.8%20145-10.6z'/%3e%3c/defs%3e%3cpath%20fill='green'%20d='M0%200h512v512H0z'/%3e%3ccircle%20cx='268.2'%20cy='250.4'%20r='61.2'%20fill='%23ffe000'/%3e%3ccircle%20cx='287.3'%20cy='250.4'%20r='50.4'%20fill='green'/%3e%3ccircle%20cx='75.2'%20cy='189.2'%20r='64.2'%20fill='%23ffe000'/%3e%3cpath%20fill='%23802000'%20stroke='%237b3100'%20stroke-width='1.4'%20d='M70.7%20237.6h16s.8-1.5-.1-2.2-4.3-1-3.4-3.5c2-5.4%202.2-3.7%203.4-16.4s1.7-32.6%201.7-32.6H86s.5%206.2-.9%2014.3c-1.3%208-1.7%208.7-3.2%2015-1.4%206.1-1.7%206.6-3%2010.3-1.3%203.6-1.5%203.7-3.5%207l-2.5%204.2c-.6%201-1.3.7-1.7%201.4-.4.8-.5%202.5-.5%202.5z'/%3e%3cpath%20fill='green'%20d='M83%20142.5c0%202.5-.2%205.7-1.2%208.4-1%203-2.2%206-2.1%209-1.7.7-3.4-3.5-5-1%201.2%203.3%204%206%205.9%209%20.3%201%203%203.5%201.5%204-4-1.3-5-6.4-7.5-9.5a18%2018%200%200%200-14.2-9c-2.3%200-9.6-.6-7.7%203.2%202.8%202%206.3%203.2%209%205.3%202.1.2%205.8%203.6%205.6%205-3.6-1.5-5.3-3.3-9.2-4.8-5.3-2-12.6-.9-15.5%204.4-.6%201.4-1.4%205.3.3%205.7%202-3.1%205-6.6%209.2-5.7%203.3.3-3.8%206.3-1%205%20.8-.3%202.8-1.6%204.1-1.7%201.4-.2%202.2.8%203.2%201%202.1.3%202.7%201.1%202.5%201.6s-1%20.1-3%20.8c-1%20.3-1.6%201.3-2.9%201.7s-3.8.4-4.7%200c-3.4-1.4-8.9-1.1-10%203%200%202-1.6-.1-2.3.7-.6%202-.8%204-3.8%203.9-1.8%201.9-3.6%203.9-6%205.2%201.4%203.1%206.8-3.1%206.5-.5-2.3%203.2%201.2%203.9%202.8%201.4%202.6-2.8%205.9-6.1%209.8-3.3%201.9%201.7%203-1%204.3-.8.9%202.2%202%200%203-.5%201.5-.2%201%202%203%20.6%203.7-2.5%208.3-.4%2012-2.8%203.8-1.8.5%201.4-.6%202.7-1.7%203.3-.2%207.7-4%209.7-1.4%204%201.8%209.2-1.5%2012.1-.5%201.9%204.3%201.7%205.6%202.4%202.4.1%200-5.3%202.2-6%203.1%201.9%203-3.5%202.4-5.2.3-3.7.5-7.8%202.3-11.3%202-4.1%203.9%201.7%201.6%203.4-1.2%203.8-3%208.7-.2%2012.2.9.2%201.5%202.2%202.6%202.8%201%20.7%202.5-.1%202.8-2%201.4-5.4.7-11.4%202.7-16.7%201.3-1.7%203.3-.3%204.1%201.2%202.8%203.2%204.7%207.2%208%209.9a14%2014%200%200%201%207.2%206.7c0%202.4%206.8%202.7%204.8%200-2-2.5-.7-5.2%201.3-6.9%201%20.3.7-1.6%200-.9-1.4-.3-1.5-2.8.3-1.6%203.2%201-.2-2.3-1.3-2.4-2.7-1.6-5.7-3.5-7-6.4%203.4%200%207%202%2010.5.8%202.9-1.5%205.7.1%206.7%202.6%202.2-.4%201.3-2.5%200-3.3%201.6-.6%202.7-2%20.8-3.2-1-1.4%201.4-3.6-1.6-3.5.1-2.3-.8-4.3-3.2-5.1-2.5-2.1-9.7%203-9.5-1.7-.7-2.5%203-.3%204-1.6%201-2.7-5-2.4-3-4.5%201.2-.8%207.4-2%202.6-3a8%208%200%200%201-6.4-1c-1.7%203-6.7-1.6-5.8%203.6-.7%202-5%207-6.3%203.1%201-3%206.3-4%204.6-8-.2-2.6-2.3.4-3.3.2-.5-1.6%201.5-3.5%203-3.9%202.7%202.2%202.8-2.7%205.5-2.3%202-.4-.7-1.2-1.2-1.6.5-1.4%203.5-2.2.6-3.4-2.6-2-4.5%202-6.6%202.1-2-2.3%201.8-3.4%202.9-4.6%200-1-2.3-.3-1.6-1%20.6-1.2%204.8-1.3%202.8-2.9-2.9-1-6.6-.7-9.4.5-1.8.6-2.3%204.6-3.8%204.4-.8-1.7.2-5.2-2.2-5.8zm13.7%2038.9c2.3-.4%200%203.3-1%203.3.1-1.3-3.2-1.2-1.1-2.4z'/%3e%3cg%20fill='%23ffe000'%20transform='translate(-25.8%20103.5)scale(.05833)'%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='7560'%20y='4200'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='6300'%20y='2205'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='7560'%20y='840'/%3e%3cuse%20xlink:href='%23cc-a'%20width='100%25'%20height='100%25'%20x='8680'%20y='1869'/%3e%3cuse%20xlink:href='%23cc-b'%20width='100%25'%20height='100%25'%20x='8064'%20y='2730'/%3e%3c/g%3e%3c/svg%3e")}.fi-cd{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cd'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23007fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23f7d618'%20d='M28.8%2096H96l20.8-67.2L137.6%2096h67.2l-54.4%2041.6%2020.8%2067.2-54.4-41.6-54.4%2041.6%2020.8-67.2zM600%200%200%20360v120h40l600-360V0z'/%3e%3cpath%20fill='%23ce1021'%20d='M640%200%200%20384v96L640%2096z'/%3e%3c/svg%3e")}.fi-cd.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cd'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cd-a'%3e%3cpath%20fill='%23fff'%20d='M0-88h600v600H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23cd-a)'%20transform='translate(0%2075.1)scale(.853)'%3e%3cpath%20fill='%23007fff'%20d='M0-88h800v600H0z'/%3e%3cpath%20fill='%23f7d618'%20d='M36%2032h84l26-84%2026%2084h84l-68%2052%2026%2084-68-52-68%2052%2026-84zM750-88%200%20362v150h50L800%2062V-88z'/%3e%3cpath%20fill='%23ce1021'%20d='M800-88%200%20392v120L800%2032z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cf'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cf-a'%3e%3cpath%20fill-opacity='.7'%20d='M-12.4%2032h640v480h-640z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cf-a)'%20transform='translate(12.4%20-32)'%3e%3cpath%20fill='%2300f'%20d='M-52%2032h719.3v119H-52z'/%3e%3cpath%20fill='%23ff0'%20d='M-52%20391.6h719.3V512H-52z'/%3e%3cpath%20fill='%23009a00'%20d='M-52%20271.3h719.3v120.3H-52z'/%3e%3cpath%20fill='%23fff'%20d='M-52%20151h719.3v120.3H-52z'/%3e%3cpath%20fill='red'%20d='M247.7%2032.5h119.9V512H247.7z'/%3e%3cpath%20fill='%23ff0'%20d='m99.3%20137.7-31.5-21.8-31.3%2022L47.4%20101%2016.9%2078l38.2-1%2012.5-36.3L80.3%2077l38.1.7L88.2%20101'/%3e%3c/g%3e%3c/svg%3e")}.fi-cf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cf'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cf-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cf-a)'%3e%3cpath%20fill='%2300f'%20d='M-52-.5h768v127H-52z'/%3e%3cpath%20fill='%23ff0'%20d='M-52%20383.5h768V512H-52z'/%3e%3cpath%20fill='%23009a00'%20d='M-52%20255h768v128.5H-52z'/%3e%3cpath%20fill='%23fff'%20d='M-52%20126.5h768V255H-52z'/%3e%3cpath%20fill='red'%20d='M268%200h128v512H268z'/%3e%3cpath%20fill='%23ff0'%20d='M109.5%20112.3%2075.9%2089.1l-33.4%2023.4%2011.6-39.2-32.5-24.6%2040.7-1L75.7%208.8l13.5%2038.6%2040.8.8L97.6%2073'/%3e%3c/g%3e%3c/svg%3e")}.fi-cg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cg'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cg-a'%3e%3cpath%20fill-opacity='.7'%20d='M-79.5%2032h640v480h-640z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23cg-a)'%20transform='translate(79.5%20-32)'%3e%3cpath%20fill='%23ff0'%20d='M-119.5%2032h720v480h-720z'/%3e%3cpath%20fill='%2300ca00'%20d='M-119.5%2032v480l480-480z'/%3e%3cpath%20fill='red'%20d='M120.5%20512h480V32z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cg'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cg-a'%3e%3cpath%20fill-opacity='.7'%20d='M115.7%200h496.1v496h-496z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23cg-a)'%20transform='translate(-119.5)scale(1.032)'%3e%3cpath%20fill='%23ff0'%20d='M0%200h744v496H0z'/%3e%3cpath%20fill='%2300ca00'%20d='M0%200v496L496%200z'/%3e%3cpath%20fill='red'%20d='M248%20496h496V0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ch{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ch'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h640v480H0z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='M170%20195h300v90H170z'/%3e%3cpath%20d='M275%2090h90v300h-90z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-ch.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ch'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h512v512H0z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='M96%20208h320v96H96z'/%3e%3cpath%20d='M208%2096h96v320h-96z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-ci{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ci'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2300cd00'%20d='M426.8%200H640v480H426.8z'/%3e%3cpath%20fill='%23ff9a00'%20d='M0%200h212.9v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M212.9%200h214v480h-214z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ci.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ci'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2300cd00'%20d='M341.5%200H512v512H341.5z'/%3e%3cpath%20fill='%23ff9a00'%20d='M0%200h170.3v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M170.3%200h171.2v512H170.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ck{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ck'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23006'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='m471.6%20213%205.2-16.7-14-10.6%2017.6-.2%206-16.5%205.6%2016.5%2017.7.5-14.1%2010.5%205%2016.7-14.5-10m27.1%2013%2010.4-13.9-9.7-14.8%2016.7%205.8%2011-13.5v17.6l16.4%206.4-16.8%205-.8%2017.5-10.2-14.4m-98.4%2015-.7-17.5-16.8-5.2L431%20198v-17.4l10.9%2013.5%2016.8-5.6-9.8%2014.7%2010.3%2014-17-4.5m-39.6%2040.9-7.4-15.8-17.4%201.8%2012.8-12.3L384%20211l15.2%208.2%2013.3-11.8-3.4%2017.4%2014.9%208.9-17.3%202.5M389%20291.8l-13.3-11.1-15%209.2%206.4-16.7-12.9-11.6%2017.3.7%207-16.4%204.3%2017.2%2017.2%201.5-14.6%209.8m3.2%2060.4-16.5-4.8-10.1%2014.5-.7-17.9-16.4-5.5%2016.1-6.2v-18l10.7%2014.1%2016.4-5.6-9.6%2015m29.5%2050.8-17%202.4-3.5%2017.4-7.8-16-17.1%201.6%2012.2-12.3-7.1-16.4%2015.3%208.5%2012.8-11.8L393%20362m45%2038-15.1%208.2%202.6%2017.6-12.7-12.4-15.6%207.6%207.3-15.9-12.3-12.9%2017.3%202.6%208-15.5%203.4%2017.4m53.8%209-8.3%2015.3%2011.7%2013.2-17.4-3.3-8.9%2015-2.4-17.3-17.2-4%2015.8-7.4-1.7-17.5%2012.2%2012.8m57.4-13.1-.5%2017.4%2016.3%206.4-17%205-1.2%2017.5-10-14.3-17%204.4%2010.8-13.9-9.4-14.7%2016.6%205.7M559%20209.8l12%2012.6%2015.9-7.4-8.3%2015.8%2011.5%2013.1-17-2.8-9%2015.5L562%20239l-17-3.5%2015.7-8m34.2%2021%205.5%2016.6%2017.5.3-14.2%2010.7%204.7%2016.8-14.1-10-14.6%2010.1%205.4-16.8-13.8-10.6%2017.6-.4m19.5%2033.2-2%2017.4%2015.7%207.7-17.3%203.6-2.7%2017.3-8.7-15.1-17.4%202.9%2012-13-8.1-15.5%2016%207.2m3%2039.8-7.8%2015.6L603%20379l-17.4-2.7-8.4%2015.3-3-17.3-17.4-3.3%2015.6-8-2.3-17.4%2012.6%2012.3m-9.8%2039.1-14.7%209.2%203.8%2017.3-13.5-11.5-15%208.6%206.3-16.3-13.1-12.1%2017.4%201.5%207-16%204.4%2017.2'/%3e%3cpath%20fill='%23006'%20d='M0%200h320v240H0z'/%3e%3cpath%20fill='%23fff'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='%23c8102e'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23fff'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3c/svg%3e")}.fi-ck.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ck'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23006'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='m344.8%20250.1%205.7-18.3-15.4-11.7%2019.4-.2%206.5-18.1%206.3%2018.1%2019.4.6-15.6%2011.4%205.6%2018.4-15.9-11m29.7%2014.4%2011.4-15.3-10.6-16.3%2018.4%206.4%2012-14.8V233l18%207.1-18.4%205.5-.9%2019.2-11.3-15.8m-108%2016.5-.8-19.2-18.4-5.7%2018.2-7v-19.1l12%2014.9%2018.4-6.2-10.8%2016.1%2011.4%2015.4-18.6-5m-43.6%2045-8-17.4-19.2%202%2014-13.5-7.2-17.7%2016.7%209%2014.6-13-3.7%2019.1%2016.3%209.7-19%202.8m-19.2%2061-14.6-12.1-16.5%2010%207-18.3-14-12.8%2018.9.9%207.7-18%204.7%2018.8%2018.9%201.7-16%2010.8m3.5%2066.3-18.2-5.3-11%2016-.8-19.7-18-6%2017.7-6.9v-19.7l11.7%2015.5%2018-6.1-10.5%2016.3m32.4%2055.9-18.7%202.6-3.8%2019.1L244%20428l-18.8%201.8%2013.5-13.5-7.9-18%2016.9%209.3%2014-13-3%2019.3m49.4%2041.7-16.7%209%203%2019.3-14.1-13.6-17%208.3%208-17.4-13.5-14.1%2019%202.8%208.7-17%203.7%2019m59.1%2010-9%2016.8%2012.8%2014.5-19.1-3.6-9.8%2016.4-2.7-19-18.9-4.4%2017.4-8.2-1.9-19%2013.5%2013.9m63-14.4-.7%2019.2%2018%207-18.6%205.6-1.3%2019.1-11-15.7-18.8%204.9%2011.9-15.4-10.3-16.1%2018.3%206.2m59.8-223.2%2013.1%2013.9%2017.5-8.1-9%2017.4L475%20284l-18.7-3-9.8%2017-2.5-19.3-18.6-4%2017.2-8.7m37.6%2023.1%206%2018.3%2019.1.3-15.5%2011.7L495%20338l-15.6-11-16%2011.1%206-18.5-15.2-11.6%2019.3-.5m21.4%2036.5-2.2%2019%2017.3%208.6-19%204-3%2019-9.5-16.7-19.1%203.2%2013-14.3-8.8-17%2017.7%207.9m3.2%2043.7-8.5%2017.1%2013.3%2014-19.1-2.8-9.3%2016.7-3.3-18.9-19-3.7%2017-8.8-2.5-19%2014%2013.5m-10.9%2043-16.1%2010%204.1%2019-14.8-12.6-16.5%209.4%207-18-14.4-13.2%2019.1%201.6%207.7-17.6%204.9%2019'/%3e%3cpath%20fill='%23006'%20d='M0-.5h256v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M256-.5v32l-95%2096%2095%2093.5v34.5h-33.5l-95.5-94-93%2094H0v-34L93%20128%200%2036.5v-37h31l96%2094%2093-94z'/%3e%3cpath%20fill='%23c8102e'%20d='m92%20161.5%205.5%2017-76.5%2077H0V254zm62-6%2027%204%2075%2073.5v22.5zM256-.5l-96%2098-2-22%2075-76zM0%200l96.5%2094.5-29.5-4L0%2024z'/%3e%3cpath%20fill='%23fff'%20d='M88-.5v256h80V-.5zm-88%2088v80h256v-80z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%20103.5v48h256v-48zM104-.5v256h48V-.5z'/%3e%3c/svg%3e")}.fi-cl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cl'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cl-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cl-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M256%200h512v256H256z'/%3e%3cpath%20fill='%230039a6'%20d='M0%200h256v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M167.8%20191.7%20128.2%20162l-39.5%2030%2014.7-48.8L64%20113.1l48.7-.5L127.8%2064l15.5%2048.5%2048.7.1-39.2%2030.4z'/%3e%3cpath%20fill='%23d52b1e'%20d='M0%20256h768v256H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cl'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cl-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h708.7v708.7H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cl-a)'%20transform='scale(.722)'%3e%3cpath%20fill='%23fff'%20d='M354.3%200H1063v354.3H354.3z'/%3e%3cpath%20fill='%230039a6'%20d='M0%200h354.3v354.3H0z'/%3e%3cpath%20fill='%23fff'%20d='m232.3%20265.3-55-41.1-54.5%2041.5%2020.3-67.5-54.5-41.7%2067.4-.6%2021-67.3%2021.3%2067.2h67.5L211.4%20198z'/%3e%3cpath%20fill='%23d52b1e'%20d='M0%20354.3h1063v354.4H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cm'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23007a5e'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M213.3%200h213.4v480H213.3z'/%3e%3cpath%20fill='%23fcd116'%20d='M426.7%200H640v480H426.7z'/%3e%3cg%20fill='%23fcd116'%20transform='translate(320%20240)scale(7.1111)'%3e%3cg%20id='cm-b'%3e%3cpath%20id='cm-a'%20d='M0-8-2.5-.4%201.3.9z'/%3e%3cuse%20xlink:href='%23cm-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3c/g%3e%3c/svg%3e")}.fi-cm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cm'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23007a5e'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M170.7%200h170.6v512H170.7z'/%3e%3cpath%20fill='%23fcd116'%20d='M341.3%200H512v512H341.3z'/%3e%3cg%20fill='%23fcd116'%20transform='translate(256%20256)scale(5.6889)'%3e%3cg%20id='cm-b'%3e%3cpath%20id='cm-a'%20d='M0-8-2.5-.4%201.3.9z'/%3e%3cuse%20xlink:href='%23cm-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23cm-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3c/g%3e%3c/svg%3e")}.fi-cn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cn'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='cn-a'%20fill='%23ff0'%20d='M-.6.8%200-1%20.6.8-1-.3h2z'/%3e%3c/defs%3e%3cpath%20fill='%23ee1c25'%20d='M0%200h640v480H0z'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(71.9991%200%200%2072%20120%20120)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(-12.33562%20-20.5871%2020.58684%20-12.33577%20240.3%2048)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(-3.38573%20-23.75998%2023.75968%20-3.38578%20288%2095.8)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(6.5991%20-23.0749%2023.0746%206.59919%20288%20168)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(14.9991%20-18.73557%2018.73533%2014.99929%20240%20216)'/%3e%3c/svg%3e")}.fi-cn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cn'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cpath%20id='cn-a'%20fill='%23ff0'%20d='M1-.3-.7.8%200-1%20.6.8-1-.3z'/%3e%3c/defs%3e%3cpath%20fill='%23ee1c25'%20d='M0%200h512v512H0z'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='translate(128%20128)scale(76.8)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='rotate(-121%20142.6%20-47)scale(25.5827)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='rotate(-98.1%20198%20-82)scale(25.6)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='rotate(-74%20272.4%20-114)scale(25.6137)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(16%20-19.968%2019.968%2016%20256%20230.4)'/%3e%3c/svg%3e")}.fi-co{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-co'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23ffe800'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%2300148e'%20d='M0%20240h640v240H0z'/%3e%3cpath%20fill='%23da0010'%20d='M0%20360h640v120H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-co.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-co'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23ffe800'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2300148e'%20d='M0%20256h512v256H0z'/%3e%3cpath%20fill='%23da0010'%20d='M0%20384h512v128H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cr'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230000b4'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%2075.4h640v322.3H0z'/%3e%3cpath%20fill='%23d90000'%20d='M0%20157.7h640v157.7H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cr'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230000b4'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%2080.5h512v343.7H0z'/%3e%3cpath%20fill='%23d90000'%20d='M0%20168.2h512v168.2H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cu'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cu-a'%3e%3cpath%20fill-opacity='.7'%20d='M-32%200h682.7v512H-32z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cu-a)'%20transform='translate(30)scale(.94)'%3e%3cpath%20fill='%23002a8f'%20d='M-32%200h768v512H-32z'/%3e%3cpath%20fill='%23fff'%20d='M-32%20102.4h768v102.4H-32zm0%20204.8h768v102.4H-32z'/%3e%3cpath%20fill='%23cb1515'%20d='m-32%200%20440.7%20255.7L-32%20511z'/%3e%3cpath%20fill='%23fff'%20d='M161.8%20325.5%20114.3%20290l-47.2%2035.8%2017.6-58.1-47.2-36%2058.3-.4%2018.1-58%2018.5%2057.8%2058.3.1-46.9%2036.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cu'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cu-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cu-a)'%3e%3cpath%20fill='%23002a8f'%20d='M-32%200h768v512H-32z'/%3e%3cpath%20fill='%23fff'%20d='M-32%20102.4h768v102.4H-32zm0%20204.8h768v102.4H-32z'/%3e%3cpath%20fill='%23cb1515'%20d='m-32%200%20440.7%20255.7L-32%20511z'/%3e%3cpath%20fill='%23fff'%20d='M161.8%20325.5%20114.3%20290l-47.2%2035.8%2017.6-58.1-47.2-36%2058.3-.4%2018.1-58%2018.5%2057.8%2058.3.1-46.9%2036.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cv'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cv-a'%3e%3cpath%20fill-opacity='.7'%20d='M-123.4%200h682.6v512h-682.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cv-a)'%20transform='translate(115.7)scale(.94)'%3e%3cpath%20fill='%23fff'%20d='M-123.4%20233H723v206h-846.5z'/%3e%3cpath%20fill='%23081873'%20d='M-122.8%200h846v256.6h-846zm.3%20385.9h852.1V512h-852.1z'/%3e%3cpath%20fill='%23de3929'%20d='M-122.5%20302.6h846v39.6h-846z'/%3e%3cpath%20fill='%23ffce08'%20d='m131%20399.2%206.6%2020.4H159l-17.4%2012.7%206.6%2020.5L131%20440l-17.4%2012.7%206.7-20.5-17.4-12.7h21.5M317%20250.4l6.7%2020.5H345l-17.4%2012.6%206.6%2020.5-17.4-12.7-17.4%2012.7%206.6-20.5-17.4-12.6h21.6m-222%2064.4%206.6%2020.5h21.5L99%20368.6l6.7%2020.4-17.4-12.6L70.9%20389l6.6-20.4-17.4-12.7h21.5M317%20329.5l6.7%2020.4H345l-17.4%2012.7%206.6%2020.4-17.4-12.6-17.4%2012.7%206.6-20.5-17.4-12.7h21.6m-40.5-161.7%206.7%2020.4H298l-17.4%2012.7%206.6%2020.5-17.4-12.7-17.4%2012.7%206.7-20.5-17.5-12.7h21.6m-64.5-45.2%206.7%2020.5h21.5l-17.4%2012.6%206.6%2020.5-17.4-12.6-17.4%2012.6%206.7-20.5-17.4-12.6H192m-64.5%202.9%206.7%2020.5h21.5l-17.4%2012.6%206.7%2020.5-17.5-12.7-17.4%2012.7%206.7-20.5-17.4-12.6H121m-34.8%2043.2%206.6%2020.5h21.6l-17.5%2012.6%206.7%2020.5-17.4-12.7-17.4%2012.7%206.6-20.5L58%20271h21.5m119.2%20149.4%206.7%2020.5h21.5l-17.4%2012.6%206.7%2020.5-17.5-12.7-17.4%2012.7%206.7-20.5-17.4-12.6H192m82.2-41.7%206.6%2020.4h21.5L285%20432.3l6.7%2020.5-17.4-12.7-17.5%2012.7%206.7-20.5-17.4-12.7h21.5'/%3e%3c/g%3e%3c/svg%3e")}.fi-cv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cv'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cv-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23cv-a)'%3e%3cpath%20fill='%23fff'%20d='M-123.4%20233H723v206h-846.5z'/%3e%3cpath%20fill='%23081873'%20d='M-122.8%200h846v256.6h-846zm.3%20385.9h852.1V512h-852.1z'/%3e%3cpath%20fill='%23de3929'%20d='M-122.5%20302.6h846v39.6h-846z'/%3e%3cpath%20fill='%23ffce08'%20d='m131%20399.2%206.6%2020.4H159l-17.4%2012.7%206.6%2020.5L131%20440l-17.4%2012.7%206.7-20.5-17.4-12.7h21.5M317%20250.4l6.7%2020.5H345l-17.4%2012.6%206.6%2020.5-17.4-12.7-17.4%2012.7%206.6-20.5-17.4-12.6h21.6m-222%2064.4%206.6%2020.5h21.5L99%20368.6l6.7%2020.4-17.4-12.6L70.9%20389l6.6-20.4-17.4-12.7h21.5M317%20329.5l6.7%2020.4H345l-17.4%2012.7%206.6%2020.4-17.4-12.6-17.4%2012.7%206.6-20.5-17.4-12.7h21.6m-40.5-161.7%206.7%2020.4H298l-17.4%2012.7%206.6%2020.5-17.4-12.7-17.4%2012.7%206.7-20.5-17.5-12.7h21.6m-64.5-45.2%206.7%2020.5h21.5l-17.4%2012.6%206.6%2020.5-17.4-12.6-17.4%2012.6%206.7-20.5-17.4-12.6H192m-64.5%202.9%206.7%2020.5h21.5l-17.4%2012.6%206.7%2020.5-17.5-12.7-17.4%2012.7%206.7-20.5-17.4-12.6H121m-34.8%2043.2%206.6%2020.5h21.6l-17.5%2012.6%206.7%2020.5-17.4-12.7-17.4%2012.7%206.6-20.5L58%20271h21.5m119.2%20149.4%206.7%2020.5h21.5l-17.4%2012.6%206.7%2020.5-17.5-12.7-17.4%2012.7%206.7-20.5-17.4-12.6H192m82.2-41.7%206.6%2020.4h21.5L285%20432.3l6.7%2020.5-17.4-12.7-17.5%2012.7%206.7-20.5-17.4-12.7h21.5'/%3e%3c/g%3e%3c/svg%3e")}.fi-cw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cw'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='cw-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3cpath%20id='cw-b'%20d='m0-1%20.2.7H1L.3%200l.2.7L0%20.4l-.6.4.2-.7-.5-.4h.7z'/%3e%3c/defs%3e%3cg%20clip-path='url(%23cw-a)'%20transform='scale(.94)'%3e%3cpath%20fill='%23002b7f'%20d='M0%200h768v512H0z'/%3e%3cpath%20fill='%23f9e814'%20d='M0%20320h768v64H0z'/%3e%3cuse%20xlink:href='%23cw-b'%20width='13500'%20height='9000'%20x='2'%20y='2'%20fill='%23fff'%20transform='scale(42.67)'/%3e%3cuse%20xlink:href='%23cw-b'%20width='13500'%20height='9000'%20x='3'%20y='3'%20fill='%23fff'%20transform='scale(56.9)'/%3e%3c/g%3e%3c/svg%3e")}.fi-cw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cw'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='cw-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h9000v9000H0z'/%3e%3c/clipPath%3e%3cpath%20id='cw-b'%20d='m0-1%20.2.7H1L.3%200l.2.7L0%20.4l-.6.4.2-.7-.5-.4h.7z'/%3e%3c/defs%3e%3cg%20clip-path='url(%23cw-a)'%20transform='scale(.057)'%3e%3cpath%20fill='%23002b7f'%20d='M0%200h13500v9000H0z'/%3e%3cpath%20fill='%23f9e814'%20d='M0%205625h13500v1125H0z'/%3e%3cuse%20xlink:href='%23cw-b'%20width='13500'%20height='9000'%20x='2'%20y='2'%20fill='%23fff'%20transform='scale(750)'/%3e%3cuse%20xlink:href='%23cw-b'%20width='13500'%20height='9000'%20x='3'%20y='3'%20fill='%23fff'%20transform='scale(1000)'/%3e%3c/g%3e%3c/svg%3e")}.fi-cx{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cx'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230021ad'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%231c8a42'%20d='M0%200h640v480z'/%3e%3ccircle%20cx='320'%20cy='240'%20r='57.8'%20fill='%23ffc639'/%3e%3cpath%20fill='%231c8a42'%20d='M284.7%20214c4%205.5%2010%2014.6%2014.8%2012.2%203.7%200%205.7.3%206.2%202.8a37%2037%200%200%200%2033-14.3s.8%200%20.5-4.5c0-2%202.8-1.6%202.8-1%20.4%201%20.4%201.7.9%201.8%201-.4%202.7-3%204-4.6q.3-1%20.2-2.4c.7-1.7%202.4-1.3%202.8-.4l.6%201.6c1.8%201.2%205%200%205.2%200%20.3-1.4%201.2-1.2%201.2-1.2%201.2-.3.7-.2%201.5.2-.7%207.7%201.5%208%201.3%2012%20.1%204.4-1.3%205.6-1.3%207.3.4%202%207%202.1%204.6%203.9-2%201%200%203-3%203.8-8.8%204.5-10.4%208.3-10.4%208.3s-2.2%204.2-2.5%204.2c-1.5%202.8-3.3%201.2-4.4%202.6-.5%201.7-1%205.5%200%207.4.5%202.7%200%204.2-.7%206.9-.6%205.6-2.8%206.5-3.1%208.4-1%202.2.2%2012-.8%2012-6.5.2-11.5-1.2-14.1-1.7%202.5-10.9%201.5-20.4%201.5-21.4-.6-7.8-11.6-5.9-13.3-7-1.4-.2-2.3-1.3-2.7-1.8-1.6-.2-2.2-.6-3.7-.7-.8.4-.3.8-2%201.3-4.5.5-6.4-3.8-6.4-3.8.2-1.5-9.9.3-15.3-1-2.3%201.3-3.3%205-5.1%205.4%200%201.1-3-1-3.6-2-.2-3.4%202.8-4.8%202.8-4.8%202.4-1.7%203.8-2%205-3.1.5-2.9.2-5%201.5-7.1%201-1.7%202.5-1%203.5-1.6%201.1-.8%201.6-5.6.6-7l-4.7-4.2c-1.4-4.1%201.7-6.8%202.6-6.5'/%3e%3cpath%20fill='%23ffc639'%20d='M561.9%20142.4c-2.6-10.3-26-32.7-43.7-46.9-4.2-2.8-7-1.1-6.4%203%202.2%203.6%203.8%207.6%206%2011.3.6%202.5%201.8%204.2%202.4%206.6%200%200%20.2%204.2.6%204.6%205.4%206%206.2%2011.1%206.2%2011.1a49%2049%200%200%200%2011.5%2015.6c6.2%203.9%201.6%2016%201.8%2022.5%200%204-2.9%203.6-5.5%203-20.1-18.5-40.1-18.5-57.8-23.9-6.8-.7-7%202.6-4.7%204.4a129%20129%200%200%200%2039.1%2029.6l7.7%204.8%208.8%207.3c6.8%204.4%207.3%208.4%207.3%208.8.2%208.2-4.2%2014.6-5.5%2017.2-2.3%208.7-7%2010.2-7%2010.2-37.6%2025.4-57.4%2032-118.4%2024.1-1-.4-6.8.5%200%203%2015.5%205.2%2053.7%2013.5%2090.6-4%209-6.2%2014.8-4.2%2021.3-8a287%20287%200%200%201%2028.3-15.4c8.3-4.5%2031.3-9.4%2036.6-13.8%206.1-.5%2012.4-1.3%2012.8-6.5%202-1.3%205-.3%207.2-4.6%204.8-.9%204-2.6%204-2.6-1.2-3.4-5.8-4.8-9-7.3-4.8-1.6-8-2-11.5-.4l-3.3%201.5s-5.1-.7-5.1-1.1c-11.4-.6-10.3-38.3-14.3-54z'/%3e%3cpath%20fill='%231c8a42'%20d='M588.6%20204.2a2.8%201.8%2016%201%201-5.4-1.7%202.8%201.8%2016%200%201%205.4%201.7'/%3e%3cg%20fill='%23fff'%20transform='matrix(.64%200%200%20.64%200%2080)'%3e%3cpath%20id='cx-a'%20d='m188.2%20191-12.8-12-12.9%2011.8%201.4-17.4-17.3-2.8%2014.5-9.8-8.6-15.2%2016.7%205.3%206.5-16.2L182%20151l16.7-5-8.8%2015%2014.4%2010-17.3%202.5z'/%3e%3cpath%20d='m233.4%20335.5-13.8-9.1-13.4%209.6%204.8-15.5-13.6-9.5%2016.6-.4%205-15.5%205.6%2015.3%2016.7-.1L228%20320l5.3%2015.4z'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='2.5'%20y='269.1'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='-112.1'%20y='123.2'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='108.4'%20y='85'/%3e%3c/g%3e%3c/svg%3e")}.fi-cx.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cx'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230021ad'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%231c8a42'%20d='M0%200h512v512z'/%3e%3ccircle%20cx='256'%20cy='256'%20r='61.7'%20fill='%23ffc639'/%3e%3cpath%20fill='%231c8a42'%20d='M218.3%20228.3c4.3%205.8%2010.6%2015.5%2015.8%2013%204%200%206%20.3%206.6%203A40%2040%200%200%200%20276%20229s.8%200%20.5-4.8c0-2.2%203-1.7%203-1%20.4%201%20.3%201.8.9%201.8%201.2-.4%202.9-3.1%204.3-4.8q.3-1.2.2-2.6c.8-1.8%202.6-1.4%203-.4l.7%201.7c1.8%201.2%205.2%200%205.5%200%20.3-1.5%201.3-1.3%201.3-1.3%201.2-.3.7-.2%201.6.2-.8%208.2%201.6%208.6%201.4%2012.8%200%204.7-1.4%206-1.4%207.8.4%202.2%207.3%202.3%205%204.1-2.2%201.2%200%203.3-3.3%204.1-9.4%204.8-11.2%208.9-11.2%208.9s-2.3%204.4-2.6%204.4c-1.6%203-3.5%201.4-4.7%202.8-.5%201.8-1.1%205.9%200%208%20.5%202.8%200%204.4-.8%207.3-.6%206-3%206.9-3.3%209-1%202.2.3%2012.8-.8%2012.8-7%20.1-12.3-1.3-15-1.9%202.6-11.6%201.6-21.8%201.6-22.8-.7-8.3-12.4-6.3-14.2-7.4-1.5-.3-2.4-1.5-3-2-1.6-.2-2.2-.6-3.9-.8-.8.4-.3.9-2.2%201.4-4.6.6-6.7-4-6.7-4%20.2-1.6-10.5.3-16.4-1-2.4%201.3-3.4%205.2-5.4%205.7%200%201.2-3.2-1-3.9-2.2%200-3.5%203.1-5%203.1-5%202.5-1.9%204-2.2%205.3-3.4.6-3%20.3-5.3%201.6-7.6%201-1.7%202.7-1%203.8-1.7%201.2-.8%201.7-6%20.6-7.3l-5-4.5c-1.6-4.5%201.8-7.3%202.7-7'/%3e%3cpath%20fill='%23ffc639'%20d='M452.3%2063.7c-2.8-11-27.9-34.8-46.6-50-4.5-3-7.4-1.2-6.9%203.1%202.4%204%204.1%208.2%206.5%2012.1.6%202.6%201.9%204.4%202.5%207%200%200%20.2%204.5.6%205a25%2025%200%200%201%206.6%2011.8%2052%2052%200%200%200%2012.3%2016.6c6.6%204.2%201.8%2017.1%202%2024%200%204.3-3.2%203.8-5.9%203.3-21.5-19.8-42.8-19.8-61.6-25.5-7.4-.8-7.5%202.7-5.1%204.6%2013.1%2014%2025.5%2023.6%2041.7%2031.6l8.2%205.1%209.4%207.8c7.2%204.7%207.8%209%207.8%209.4.2%208.8-4.5%2015.6-5.8%2018.3-2.5%209.3-7.5%2011-7.5%2011-40.1%2027-61.2%2034-126.4%2025.7-1-.5-7.2.5%200%203.1%2016.6%205.5%2057.3%2014.4%2096.7-4.3%209.5-6.6%2015.9-4.4%2022.7-8.4%2011.3-7%2027.3-15.6%2030.3-16.5%208.7-4.7%2033.3-10%2039-14.7%206.5-.5%2013.2-1.4%2013.7-7%202.1-1.3%205.2-.3%207.5-4.9%205.2-.9%204.3-2.7%204.3-2.7-1.3-3.7-6-5.2-9.5-7.8-5.1-1.7-8.6-2.2-12.3-.4l-3.5%201.6s-5.5-.8-5.5-1.2c-12.1-.7-11-41-15.2-57.7'/%3e%3cpath%20fill='%231c8a42'%20d='M542.5%20217.8a3%201.9%2016%201%201-5.8-1.8%203%201.9%2016%200%201%205.8%201.8'/%3e%3cg%20fill='%23fff'%20transform='translate(-11.8%20182.4)scale(.68267)'%3e%3cpath%20id='cx-a'%20d='m188.2%20191-12.8-12-12.9%2011.8%201.4-17.4-17.3-2.8%2014.5-9.8-8.6-15.2%2016.7%205.3%206.5-16.2L182%20151l16.7-5-8.8%2015%2014.4%2010-17.3%202.5z'/%3e%3cpath%20d='m233.4%20335.5-13.8-9.1-13.4%209.6%204.8-15.5-13.6-9.5%2016.6-.4%205-15.5%205.6%2015.3%2016.7-.1L228%20320l5.3%2015.4z'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='2.5'%20y='269.1'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='-112.1'%20y='123.2'/%3e%3cuse%20xlink:href='%23cx-a'%20width='100%25'%20height='100%25'%20x='108.4'%20y='85'/%3e%3c/g%3e%3c/svg%3e")}.fi-cy{background-image:url(/_astro/cy.bZuP8hmf.svg)}.fi-cy.fis{background-image:url(/_astro/cy.DJKnEFYW.svg)}.fi-cz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cz'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v240H0z'/%3e%3cpath%20fill='%23d7141a'%20d='M0%20240h640v240H0z'/%3e%3cpath%20fill='%2311457e'%20d='M360%20240%200%200v480z'/%3e%3c/svg%3e")}.fi-cz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cz'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v256H0z'/%3e%3cpath%20fill='%23d7141a'%20d='M0%20256h512v256H0z'/%3e%3cpath%20fill='%2311457e'%20d='M300%20256%200%2056v400z'/%3e%3c/svg%3e")}.fi-de{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-de'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fc0'%20d='M0%20320h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='red'%20d='M0%20160h640v160H0z'/%3e%3c/svg%3e")}.fi-de.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-de'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fc0'%20d='M0%20341.3h512V512H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='red'%20d='M0%20170.7h512v170.6H0z'/%3e%3c/svg%3e")}.fi-dj{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dj'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='dj-a'%3e%3cpath%20fill-opacity='.7'%20d='M-40%200h682.7v512H-40z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23dj-a)'%20transform='translate(37.5)scale(.94)'%3e%3cpath%20fill='%230c0'%20d='M-40%200h768v512H-40z'/%3e%3cpath%20fill='%2369f'%20d='M-40%200h768v256H-40z'/%3e%3cpath%20fill='%23fffefe'%20d='m-40%200%20382.7%20255.7L-40%20511z'/%3e%3cpath%20fill='red'%20d='M119.8%20292%2089%20270l-30.7%2022.4L69.7%20256l-30.6-22.5%2037.9-.3%2011.7-36.3%2012%2036.2h37.9l-30.5%2022.7%2011.7%2036.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-dj.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dj'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='dj-a'%3e%3cpath%20fill-opacity='.7'%20d='M55.4%200H764v708.7H55.4z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23dj-a)'%20transform='translate(-40)scale(.722)'%3e%3cpath%20fill='%230c0'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%2369f'%20d='M0%200h1063v354.3H0z'/%3e%3cpath%20fill='%23fffefe'%20d='m0%200%20529.7%20353.9L0%20707.3z'/%3e%3cpath%20fill='red'%20d='m221.2%20404.3-42.7-30.8-42.4%2031%2015.8-50.3-42.4-31.2%2052.4-.4%2016.3-50.2%2016.6%2050%2052.4.2-42.1%2031.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-dk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dk'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23c8102e'%20d='M0%200h640.1v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M205.7%200h68.6v480h-68.6z'/%3e%3cpath%20fill='%23fff'%20d='M0%20205.7h640.1v68.6H0z'/%3e%3c/svg%3e")}.fi-dk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dk'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23c8102e'%20d='M0%200h512.1v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M144%200h73.1v512H144z'/%3e%3cpath%20fill='%23fff'%20d='M0%20219.4h512.1v73.2H0z'/%3e%3c/svg%3e")}.fi-dm{background-image:url(/_astro/dm.Cbhezfe1.svg)}.fi-dm.fis{background-image:url(/_astro/dm.DPPHwW2M.svg)}.fi-do{background-image:url(/_astro/do.B86d445t.svg)}.fi-do.fis{background-image:url(/_astro/do.DeRnbj4d.svg)}.fi-dz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dz'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M320%200h320v480H320z'/%3e%3cpath%20fill='%23006233'%20d='M0%200h320v480H0z'/%3e%3cpath%20fill='%23d21034'%20d='M424%20180a120%20120%200%201%200%200%20120%2096%2096%200%201%201%200-120m4%2060-108-35.2%2067.2%2092V183.2l-67.2%2092z'/%3e%3c/svg%3e")}.fi-dz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-dz'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M256%200h256v512H256z'/%3e%3cpath%20fill='%23006233'%20d='M0%200h256v512H0z'/%3e%3cpath%20fill='%23d21034'%20d='M367%20192a128%20128%200%201%200%200%20128%20102.4%20102.4%200%201%201%200-128m4.2%2064L256%20218.4l71.7%2098.2V195.4L256%20293.6z'/%3e%3c/svg%3e")}.fi-ec{background-image:url(/_astro/ec.CaVOFQ3t.svg)}.fi-ec.fis{background-image:url(/_astro/ec.cwfBJlvF.svg)}.fi-ee{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ee'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%231791ff'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-ee.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ee'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%231791ff'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-eg{background-image:url(/_astro/eg.YC70hswZ.svg)}.fi-eg.fis{background-image:url(/_astro/eg.DwOkwyQ0.svg)}.fi-eh{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-eh'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='eh-a'%3e%3cpath%20fill-opacity='.7'%20d='M-158.7%200H524v512h-682.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23eh-a)'%20transform='translate(148.8)scale(.94)'%3e%3cpath%20fill='%23000001'%20d='M-158.3%200h680.9v255.3h-680.9z'/%3e%3cpath%20fill='%23007a3d'%20d='M-158.3%20255.3h680.9v255.3h-680.9z'/%3e%3cpath%20fill='%23fff'%20d='M-158.3%20148.9h680.9v212.8h-680.9z'/%3e%3cpath%20fill='%23c4111b'%20d='m-158.3%200%20340.4%20255.3-340.4%20255.3Z'/%3e%3ccircle%20cx='352.3'%20cy='255.3'%20r='68.1'%20fill='%23c4111b'/%3e%3ccircle%20cx='377.9'%20cy='255.3'%20r='68.1'%20fill='%23fff'/%3e%3cpath%20fill='%23c4111b'%20d='m334%20296.5%2029.1-20.7%2028.8%2021-10.8-34%2029-20.9-35.7-.2-11-34-11.2%2033.9-35.7-.2%2028.7%2021.2-11.1%2034z'/%3e%3c/g%3e%3c/svg%3e")}.fi-eh.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-eh'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23000001'%20d='M0%200h512v256H0z'/%3e%3cpath%20fill='%23007a3d'%20d='M0%20256h512v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20149.3h512v213.3H0z'/%3e%3cpath%20fill='%23c4111b'%20d='m0%200%20256%20256L0%20512Z'/%3e%3cg%20stroke-width='1.7'%20transform='translate(-135%20-6.5)scale(1.02539)'%3e%3ccircle%20cx='512'%20cy='256'%20r='68.3'%20fill='%23c4111b'/%3e%3ccircle%20cx='537.6'%20cy='256'%20r='68.3'%20fill='%23fff'/%3e%3cpath%20fill='%23c4111b'%20d='m493.7%20297.3%2029-20.8%2029%2021.2-10.8-34.2%2029-21-35.8-.2-11-34-11.3%2033.9-35.7-.1%2028.7%2021.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-er{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-er'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23be0027'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23b4d7f4'%20d='m0%20480%20640-.3V240z'/%3e%3cpath%20fill='%23239e46'%20d='m0%200%20640%20.3V240z'/%3e%3cpath%20fill='%23f3e295'%20d='M186.2%20360.4c-10.7%203-16.8%2011.3-16.7%2019.1l52.8-.2c.4-8.4-6.5-16.2-17-19.3%2051.6-1%2096.4-20.4%20104.6-32.8-8-3.5-17.4%202.1-24%20.8%2015.7-7.3%2063-37.9%2055.3-70.7-6%2018.2-24%2033.3-31.8%2037.4%2017.7-26.8%2041.8-54.8%2020.9-76.4%201%2012.5-8%2026.3-12%2027.4%2010.3-28.4%2020-64-2.1-87.4%202.9%208.5%201.7%2032.4-2.3%2033.5-1.2-19.3-4.5-59.8-24.8-59.3%206.4%205.8%209.2%2021.4%209.4%2037.2a58%2058%200%200%200-21.1-27%20118%20118%200%200%200-41.5-42.2c1.8%2012.7%203.3%2022.7%2021%2035.9-9.2-.6-18.4-18.1-28.3-18.6-7.9-.4-14%207.1-26.9%202.8%201.4%204.2%207.4%206.1%208.7%209.2-2.8%202-9.3-.3-14.7-3%207.5%2010%2019%2016%2028.8%2014%2011.7-2.2%2024.2-1%2036.2%205.8a63%2063%200%200%201-22.5.6c6.9%207%2011.5%2011.7%2023.6%2011.6%2010.7%200%2016.4-5.8%2019.1-2.2%206.8%208%2011.3%2016%2017%2025.4-12.5%201.3-8.7-14.1-22.6-22-7.9%2016%209%2035.2%2020.3%2043.2a65%2065%200%200%200%207.1%2031.5c3.5%206.5%208%2013.2%206.3%2027.9-6.9-5-13.5-21.8-11-35.1-8.6%202.3-12%2017.4-8%2025%203%205.7%205%2016.8%201.6%2021.7-3.4%204.6-3.7%204-3.7%2014%20.1%205.8-3.2%2012.8-8.5%2017.7a36%2036%200%200%200%201.1-15.8c-4.2%207.2-14.9%2014.6-18.2%2022.4s-4.1%2021.2-20%2024.3c-20.6%204-27.7%207.6-40.8%2013-1.5-10%202.9-31%2011.3-29.7%208.1%201.4%2033-8.6%2024-29.5-1.7%206.6-7.5%2013-13.9%2013.3%206.9-8.8%2019-18%2013.1-32.8a43%2043%200%200%201-16.3%2018c8.4-16%201-21-9-7.6-3.8%205.1-6.1%2015.4-8.5%2028.5-4-10.6-3.7-24.6-8.4-36-4.8-12.3%206.5-15.5%2011.8-14.5%2013%203.5%2034.9%203.5%2033.3-18.1-5.7%207.3-15.5%209.5-26.2%207%2012-8.8%2021.4-25.3%208-34a31%2031%200%200%201-16.9%2024.1%2051%2051%200%200%201-.3-24.8c-5.2%205.6-9%2017-12.1%2030.2-.3-13%202.2-22.3%204-29.3%202.8-10.1%209.6-3.5%2020-2.8%2010.2.6%2024-5%2021.4-18.7-3.4%205.5-10.5%207.6-17.7%207%208.7-5.3%2023.8-14.6%2015.5-29-3.5%205.4-4.6%2010-14.7%2011.7%202.6-6%203-14.7%2011-18-14-2.9-22%206.3-26.2%2020.7-1.6-10-3.6-13.6-4-21%207.6-8.3%208.4-24.8-8-28.4a35%2035%200%200%200%201.2%2017.4c-7.7-4.6-18.5-7.1-25.8-.7%205%205.3%2012.5%2010%2024.2%204.2-2.8%209-10%207.5-19.8%204%206%2011.3%2013.6%2013.3%2022%2012%204.4%2011.6%204.6%2020.4-8.3%2037.2.6-10.4-.1-18.2-8.4-26.7-7.2-7-13%20.3-1.8%2015.8-6.8-5-14.4-15-16.7-25.1-2.2%2012.4-.2%2027.1%206.7%2035.4-3.3%203.5-7-.4-12.5-9%202%2027.4%2013.7%2032.7%2029.4%2026.6.4%2015%20.4%2028.9%201.3%2047-9.1-13.2-20.7-23-27.1-25.4-2%207.3%205.5%2017%209.8%2022.3-6.5-1.4-20.5-12-20.5-12-1.4%2012.1%2014.3%2023.4%2024.5%2028.4-12-.5-17.3-5-25-12.4.2%2033.8%2036.6%2027.9%2043.5%2022.7l3%2052.5c-10.3-1.8-9.5-5-18.3-5.7-24.5-1-43.9-29.4-50.3-50.3-1.9%203.4-.4%207-2.1%2011.3-4-10.3-9-23.6-15.9-29.8%201.8%206%202%2012.1%201.4%2023.3-2.4-7.2-4.5-9.5-4.7-18%20.1-6.5%206.3-11.3%206-20.5-.3-6.7-6.4-21.3-7.3-32.5-3%2011.6-4.8%2023.8-9.4%2031%202.3-12.4%201.6-21%205.4-29.3%204.4-8.7%208.1-16.6%205.2-25.4-2.8%203.4-1.9%206.5-9%2014.8-1.5-9%209.2-23.5%2019.6-29.3%207.3-3.8%2016.5-17.6%2010.5-27-6.9%205-10%2011.6-19.7%2023%207-27%2025-34.2%2046.5-34.3%204.7%200%2014.3-1.7%2017-8-6%202.3-13.2%202.6-19.6%201.4%204.7-6.9%2014.4-6%2023.6-6%207.1%200%2018.3-1%2022.8-11.2a51%2051%200%200%201-31%201.9c13.7-7%2035-7.8%2046-17.1-12.5-9.3-43.7%202.2-63.4%2015.7%205.5-5%2014.2-14%2019-21.2-10.8-5.2-38%2025-47.4%2043-9%205-12.5%2013-16%2018.5%204.7-16.1%205.2-27.8%209.2-41C80%20138%2092.6%20194.6%2086%20208.2c.8-15%20.1-34.1-6-44-9.4%207.2-10.2%2049.5-1.4%2084.7-3.2-9.4-9.2-18.2-11.1-29.7-14%2025.4%208.2%2055.5%2026.7%2079.2-14-7.3-27.7-22.9-36.8-36%202.5%2045.6%2050%2055%2057.4%2066.2-10-4.7-29.1-13.9-37.3-4.2a99%2099%200%200%201%2032.3%2012.1c12.4%2015.4%2035.7%2022.2%2076.4%2023.9'/%3e%3c/g%3e%3c/svg%3e")}.fi-er.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-er'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='er-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23er-a)'%3e%3cpath%20fill='%23be0027'%20d='M-48%200h591.5v512H-48z'/%3e%3cpath%20fill='%23b4d7f4'%20d='m-48%20512%20591.5-.3V256z'/%3e%3cpath%20fill='%23239e46'%20d='m-48%200%20591.5.3V256z'/%3e%3cpath%20fill='%23f3e295'%20d='M148.8%20351.4c-8.7%202.4-13.7%209.2-13.6%2015.6l42.8-.2c.4-6.9-5.2-13.2-13.8-15.7%2042-.8%2078.4-16.6%2085-26.6-6.5-2.9-14.1%201.7-19.5.6%2012.8-5.9%2051.2-30.8%2045-57.4a62%2062%200%200%201-25.8%2030.3c14.3-21.8%2034-44.5%2017-62%20.8%2010.2-6.6%2021.4-9.8%2022.2%208.3-23%2016.3-52-1.8-71%202.4%206.9%201.5%2026.3-1.8%2027.2-1-15.7-3.7-48.6-20.2-48.1%205.3%204.6%207.5%2017.4%207.7%2030.2-3.8-8.8-8-15.4-17.2-22a96%2096%200%200%200-33.7-34.3%2036%2036%200%200%200%2017.1%2029.2c-7.5-.5-15-14.7-23-15.1-6.4-.3-11.4%205.8-21.9%202.3%201.2%203.4%206%205%207%207.5-2.1%201.5-7.5-.2-11.9-2.5%206.1%208.2%2015.5%2013%2023.5%2011.4%209.5-1.8%2019.7-.8%2029.4%204.7a52%2052%200%200%201-18.4.5c5.7%205.7%209.4%209.5%2019.2%209.4%208.8%200%2013.4-4.6%2015.6-1.8%205.5%206.5%209.2%2013%2013.8%2020.6-10.2%201.2-7.1-11.4-18.4-17.9-6.3%2013.2%207.3%2028.7%2016.6%2035.2%200%209.9%201.5%2018%205.7%2025.6%202.8%205.3%206.5%2010.7%205.1%2022.7-5.5-4-11-17.7-9-28.5-7%201.9-9.6%2014-6.4%2020.2%202.5%204.7%204.1%2013.7%201.3%2017.7-2.8%203.7-3%203.3-3%2011.3%200%204.8-2.6%2010.5-7%2014.4%201-3.3%202-9.2%201-12.8-3.5%205.9-12.1%2011.9-14.8%2018.2s-3.4%2017.2-16.3%2019.7c-16.7%203.3-22.5%206.2-33.2%2010.6-1.2-8.1%202.4-25.1%209.2-24.1%206.7%201.2%2026.8-7%2019.6-24-1.4%205.4-6.2%2010.6-11.3%2010.9%205.5-7.2%2015.4-14.7%2010.6-26.7a35%2035%200%200%201-13.3%2014.7c6.9-13.1.8-17-7.3-6.3-3%204.2-5%2012.6-6.9%2023.2-3.2-8.6-3-20-6.8-29.2-4-10%205.3-12.7%209.6-11.9%2010.6%202.9%2028.4%202.9%2027-14.7-4.5%206-12.6%207.8-21.3%205.7%209.8-7.2%2017.5-20.5%206.6-27.5a25%2025%200%200%201-13.7%2019.5%2041%2041%200%200%201-.3-20.1c-4.3%204.5-7.4%2013.8-9.9%2024.5a82%2082%200%200%201%203.3-23.8c2.2-8.3%207.8-2.9%2016.3-2.3%208.2.5%2019.5-4%2017.4-15.2-2.8%204.4-8.6%206.1-14.5%205.7%207.1-4.3%2019.4-12%2012.7-23.6-2.9%204.4-3.8%208.2-12%209.6%202.1-5%202.5-12%208.9-14.7-11.4-2.3-17.9%205.2-21.2%2016.8-1.4-8-3-11-3.3-17%206.2-6.8%206.8-20.2-6.5-23.1-.8%206.8-.5%208.5%201%2014-6.3-3.6-15-5.7-21-.4%204%204.3%2010.2%208%2019.7%203.4-2.3%207.3-8.1%206-16.1%203.2%204.9%209.2%2011%2010.9%2017.9%209.8%203.5%209.4%203.7%2016.5-6.7%2030.2.4-8.5-.2-14.8-7-21.7-5.7-5.7-10.4.3-1.4%2012.9A39%2039%200%200%201%20127%20200c-1.8%2010.1-.2%2022%205.4%2028.8-2.7%202.8-5.7-.3-10.1-7.2%201.6%2022.2%2011.1%2026.4%2023.9%2021.5.3%2012.2.3%2023.5%201%2038.2a61%2061%200%200%200-22-20.6c-1.7%206%204.5%2013.7%208%2018-5.3-1-16.7-9.7-16.7-9.7-1.2%209.9%2011.6%2019%2019.9%2023.1-9.7-.4-14-4-20.3-10%20.1%2027.4%2029.7%2022.6%2035.3%2018.4l2.5%2042.6c-8.4-1.4-7.7-4-14.9-4.6-19.9-.8-35.7-23.9-40.9-40.9-1.5%202.8-.3%205.7-1.7%209.2-3.2-8.4-7.3-19.1-12.9-24.1%201.4%204.8%201.6%209.8%201.1%2018.8-1.9-5.9-3.7-7.7-3.8-14.6.1-5.3%205.1-9.2%204.9-16.7-.2-5.4-5.2-17.2-6-26.4-2.4%209.5-3.9%2019.4-7.6%2025.2%201.9-10%201.3-17%204.4-23.7%203.6-7.2%206.6-13.5%204.2-20.7-2.3%202.8-1.5%205.3-7.2%2012-1.3-7.3%207.4-19%2015.8-23.8%206-3%2013.4-14.3%208.6-22-5.6%204-8.1%209.5-16%2018.7%205.6-22%2020.2-27.7%2037.7-27.8%204%200%2011.7-1.4%2014-6.5-5%201.9-10.9%202.1-16%201%203.7-5.4%2011.7-4.7%2019.1-4.8%205.8%200%2014.9-.8%2018.6-9a42%2042%200%200%201-25.2%201.5c11.1-5.8%2028.5-6.4%2037.4-14-10.2-7.5-35.6%201.9-51.6%2012.9%204.5-4.1%2011.6-11.4%2015.5-17.3-8.8-4.2-31%2020.4-38.6%2035-7.2%204-10.1%2010.5-13%2015%204-13.1%204.3-22.6%207.5-33.3-24.8%208.5-14.5%2054.5-19.9%2065.5.6-12.2.1-27.8-4.9-35.8-7.6%205.8-8.3%2040.2-1%2068.9-2.7-7.7-7.6-14.9-9.1-24.2-11.4%2020.7%206.6%2045%2021.6%2064.3a96%2096%200%200%201-29.8-29.2c2%2037%2040.7%2044.7%2046.7%2053.8-8.2-3.8-23.7-11.3-30.4-3.4a80%2080%200%200%201%2026.3%209.9c10%2012.5%2029%2018%2062%2019.4'/%3e%3c/g%3e%3c/svg%3e")}.fi-es{background-image:url(/_astro/es.d5m8M5h8.svg)}.fi-es.fis{background-image:url(/_astro/es.BuSGTZm_.svg)}.fi-et{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-et'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='et-a'%3e%3cpath%20fill-opacity='.7'%20d='M-61.3%200h682.7v512H-61.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23et-a)'%20transform='translate(57.5)scale(.94)'%3e%3cpath%20fill='%23ffc621'%20d='M-238%203.5H800v498H-238z'/%3e%3cpath%20fill='%23ef2118'%20d='M-240%20342.5H799.3V512H-240z'/%3e%3cpath%20fill='%23298c08'%20d='M-238%200H800v180H-238z'/%3e%3ccircle%20cx='534.2'%20cy='353'%20r='199.7'%20fill='%23006bc6'%20transform='matrix(.54%200%200%20.54%20-25.8%2074)'/%3e%3cpath%20fill='%23ffc621'%20d='m214.3%20188.2-6.5%204.5%2023.5%2033%206.3-4zm29.4%2078-9.7-6.8%204-12.7-48.1.7-14-10.7%2065.7-.7%2012.2-36.9%206.6%2015zm76.5-70.7-6.3-4.8-24.3%2032.4%205.6%204.7zM254.8%20247l3.5-11.2h13.3L256.4%20190l6-16.5%2020.5%2062.4%2038.8.5-12.2%2010.7zm90.6%2051.2%202.7-7.4-38.3-13.3-2.8%207zm-69.1-46.4%2011.7-.1%204.1%2012.6%2038.8-28.5%2017.6.6-53.1%2038.7%2011.5%2037.2-14-8.4zm-19.8%20102%207.9.2.3-40.5-7.4-.5zm22-80.3%203.8%2011.1-10.7%208%2039.4%2027.7%205%2016.8-53.6-38-31.5%2022.7%203.5-16%2044-32.3zm-103.3%2013%202.3%207.5%2038.7-12.2-2-7.2zm83.2-4-9.4%207.1-10.8-7.7-14.2%2046-14.4%2010%2019.5-62.7-31.4-23%2016.3-1.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-et.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-et'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='et-a'%3e%3cpath%20fill-opacity='.7'%20d='M229.3%206.3h489.3v489.3H229.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23et-a)'%20transform='translate(-240%20-6.6)scale(1.046)'%3e%3cpath%20fill='%23ffc621'%20d='M2%209.7h991.8v475.9H1.9z'/%3e%3cpath%20fill='%23ef2118'%20d='M0%20333.6h993.2v162H0z'/%3e%3cpath%20fill='%23298c08'%20d='M2%206.3h991.8v172H2z'/%3e%3ccircle%20cx='534.2'%20cy='353'%20r='199.7'%20fill='%23006bc6'%20transform='translate(204.7%2077)scale(.515)'/%3e%3cpath%20fill='%23ffc621'%20d='m434%20186.2-6%204.3%2022.4%2031.6%206-3.9zm28.2%2074.5-9.2-6.5%203.8-12-46%20.6-13.3-10.2%2062.7-.7%2011.7-35.3L478%20211l-16%2049.8zm73.1-67.6-6-4.5-23.3%2031%205.5%204.5zm-62.5%2049.3%203.3-10.7h12.7L474.3%20188l5.7-15.8%2019.6%2059.7%2037.2.4-11.7%2010.3zm86.6%2049%202.5-7.2-36.6-12.6-2.6%206.5%2036.7%2013.2zm-66-44.4%2011.2-.2%204%2012.1%2037-27.2%2016.7.6-50.7%2037%2011%2035.5-13.4-8-15.9-49.8zm-19%2097.5%207.6.1.3-38.7-7-.4-.8%2039zm21-76.8%203.7%2010.6L489%20286l37.6%2026.5%204.8%2016-51.2-36.2-30.1%2021.7%203.3-15.2%2042.1-31zm-98.7%2012.4%202.3%207.2%2036.9-11.7-1.8-6.8zm79.6-3.8-9%206.8-10.4-7.4-13.5%2044-13.8%209.5%2018.7-60-30-21.8%2015.5-1.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-fi{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fi'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23002f6c'%20d='M0%20174.5h640v131H0z'/%3e%3cpath%20fill='%23002f6c'%20d='M175.5%200h130.9v480h-131z'/%3e%3c/svg%3e")}.fi-fi.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fi'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23002f6c'%20d='M0%20186.2h512v139.6H0z'/%3e%3cpath%20fill='%23002f6c'%20d='M123.2%200h139.6v512H123.1z'/%3e%3c/svg%3e")}.fi-fj{background-image:url(/_astro/fj.DEAVMg38.svg)}.fi-fj.fis{background-image:url(/_astro/fj.u3dAPoew.svg)}.fi-fk{background-image:url(/_astro/fk.nuUF_Ak3.svg)}.fi-fk.fis{background-image:url(/_astro/fk.B-RvQ4Hz.svg)}.fi-fm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fm'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='fm-a'%3e%3cpath%20fill-opacity='.7'%20d='M-81.3%200h682.6v512H-81.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23fm-a)'%20transform='translate(76.3)scale(.94)'%3e%3cpath%20fill='%236797d6'%20d='M-252%200H772v512H-252z'/%3e%3cpath%20fill='%23fff'%20d='m259.8%20123-32.4%2022.2%2012.4-35.9-32.5-22.2h40.1l12.4-35.9%2012.4%2036h40l-32.4%2022.1%2012.4%2035.9M259.8%20390l-32.4-22.2%2012.4%2036-32.5%2022.1h40.1l12.4%2035.9%2012.4-36%2040%20.1-32.4-22.2%2012.4-35.9m-188.4-92.4L79.3%20306l1.4-38-37.5-11.7%2038.4-11.7%201.3-38%2022.3%2030.8%2038.4-11.8-24.6%2030.7%2022.4%2030.7m274.2-11.7%2024.6%2030.7-1.4-38%2037.5-11.7-38.4-11.7-1.3-38-22.3%2030.8-38.4-11.8%2024.6%2030.7-22.4%2030.7'/%3e%3c/g%3e%3c/svg%3e")}.fi-fm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fm'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='fm-a'%3e%3cpath%20fill-opacity='.7'%20d='M244.2%200h496v496h-496z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23fm-a)'%20transform='translate(-252)scale(1.032)'%3e%3cpath%20fill='%236797d6'%20d='M0%200h992.1v496H0z'/%3e%3cpath%20fill='%23fff'%20d='M507.9%2084.5h38.8l-31.5%2021.4%2012%2034.8-31.3-21.5-31.5%2021.5%2012-34.8L445%2084.4h39l12-34.7m12%20363h38.8l-31.5-21.5%2012-34.8-31.3%2021.5-31.5-21.5%2012%2034.8-31.4%2021.5H484l12%2034.7M346%20230.1l37.2-11.4-23.9%2029.8%2021.7%2029.7-36.3-11.4-23.8%2029.8%201.4-36.8-36.4-11.4%2037.2-11.3%201.3-36.8m321%2029.8-37.1-11.4%2023.8%2029.7-21.7%2029.8%2036.4-11.4%2023.7%2029.8-1.3-36.8%2036.4-11.4-37.2-11.3-1.3-36.8'/%3e%3c/g%3e%3c/svg%3e")}.fi-fo{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fo'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='fo-a'%3e%3cpath%20fill-opacity='.7'%20d='M-78%2032h640v480H-78z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='0'%20clip-path='url(%23fo-a)'%20transform='translate(78%20-32)'%3e%3cpath%20fill='%23fff'%20d='M-78%2032h663.9v480H-78z'/%3e%3cpath%20fill='%23003897'%20d='M-76%20218.7h185.9V32H216v186.7h371.8v106.6H216V512H109.9V325.3h-186z'/%3e%3cpath%20fill='%23d72828'%20d='M-76%20245.3h212.4V32h53.1v213.3H588v53.4H189.5V512h-53V298.7H-76z'/%3e%3c/g%3e%3c/svg%3e")}.fi-fo.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fo'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='fo-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='0'%20clip-path='url(%23fo-a)'%3e%3cpath%20fill='%23fff'%20d='M-78%200h708.2v512H-78z'/%3e%3cpath%20fill='%23003897'%20d='M-75.9%20199.1h198.3V0h113.3v199.1h396.6V313H235.7v199H122.4V312.9H-76z'/%3e%3cpath%20fill='%23d72828'%20d='M-75.9%20227.6h226.6V0h56.7v227.6h424.9v56.9h-425V512h-56.6V284.4H-75.9z'/%3e%3c/g%3e%3c/svg%3e")}.fi-fr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fr'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-fr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fr'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-ga{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ga'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23ffe700'%20d='M640%20480H0V0h640z'/%3e%3cpath%20fill='%2336a100'%20d='M640%20160H0V0h640z'/%3e%3cpath%20fill='%23006dbc'%20d='M640%20480H0V320h640z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ga.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ga'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23ffe700'%20d='M512%20512H0V0h512z'/%3e%3cpath%20fill='%2336a100'%20d='M512%20170.7H0V0h512z'/%3e%3cpath%20fill='%23006dbc'%20d='M512%20512H0V341.3h512z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gb{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23012169'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23FFF'%20d='m75%200%20244%20181L562%200h78v62L400%20241l240%20178v61h-80L320%20301%2081%20480H0v-60l239-178L0%2064V0z'/%3e%3cpath%20fill='%23C8102E'%20d='m424%20281%20216%20159v40L369%20281zm-184%2020%206%2035L54%20480H0zM640%200v3L391%20191l2-44L590%200zM0%200l239%20176h-60L0%2042z'/%3e%3cpath%20fill='%23FFF'%20d='M241%200v480h160V0zM0%20160v160h640V160z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%20193v96h640v-96zM273%200v480h96V0z'/%3e%3c/svg%3e")}.fi-gb.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23012169'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23FFF'%20d='M512%200v64L322%20256l190%20187v69h-67L254%20324%2068%20512H0v-68l186-187L0%2074V0h62l192%20188L440%200z'/%3e%3cpath%20fill='%23C8102E'%20d='m184%20324%2011%2034L42%20512H0v-3zm124-12%2054%208%20150%20147v45zM512%200%20320%20196l-4-44L466%200zM0%201l193%20189-59-8L0%2049z'/%3e%3cpath%20fill='%23FFF'%20d='M176%200v512h160V0zM0%20176v160h512V176z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%20208v96h512v-96zM208%200v512h96V0z'/%3e%3c/svg%3e")}.fi-gd{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gd'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cg%20id='gd-c'%3e%3cg%20id='gd-b'%3e%3cpath%20id='gd-a'%20fill='%23fcd116'%20d='M0-1v1h.5'%20transform='rotate(18%200%20-1)'/%3e%3cuse%20xlink:href='%23gd-a'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23gd-b'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23gd-b'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23gd-b'%20transform='rotate(216)'/%3e%3cuse%20xlink:href='%23gd-b'%20transform='rotate(288)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23ce1126'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23007a5e'%20d='M67.2%2067.2h505.6v345.6H67.2z'/%3e%3cpath%20fill='%23fcd116'%20d='M67.2%2067.3h505.6L67.2%20412.9h505.6z'/%3e%3ccircle%20cx='319.9'%20cy='240.1'%20r='57.6'%20fill='%23ce1126'/%3e%3cuse%20xlink:href='%23gd-c'%20width='100%25'%20height='100%25'%20transform='translate(320%20240)scale(52.8)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='-100'%20transform='translate(-30.3)'/%3e%3cuse%20xlink:href='%23gd-c'%20id='gd-d'%20width='100%25'%20height='100%25'%20transform='translate(320%2033.6)scale(31.2)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='100'%20transform='translate(30.3)'/%3e%3cpath%20fill='%23ce1126'%20d='M102.3%20240.7a80%2080%200%200%200%2033.5%2033.2%20111%20111%200%200%200-11.3-45z'/%3e%3cpath%20fill='%23fcd116'%20d='M90.1%20194.7c10.4%2021.7-27.1%2073.7%2035.5%2085.9a63%2063%200%200%201-10.9-41.9%2070%2070%200%200%201%2032.5%2030.8c16.4-59.5-42-55.8-57.1-74.8'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='-100'%20transform='translate(-30.3%20414.6)'/%3e%3cuse%20xlink:href='%23gd-c'%20width='100%25'%20height='100%25'%20transform='translate(320%20448.2)scale(31.2)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='100'%20transform='translate(30.3%20414.6)'/%3e%3c/svg%3e")}.fi-gd.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gd'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cg%20id='gd-c'%3e%3cg%20id='gd-b'%3e%3cpath%20id='gd-a'%20fill='%23fcd116'%20d='M0-1v1h.5'%20transform='rotate(18%200%20-1)'/%3e%3cuse%20xlink:href='%23gd-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23gd-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23gd-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23gd-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23gd-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23ce1126'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23007a5e'%20d='M71.7%2071.7h368.6v368.6H71.7z'/%3e%3cpath%20fill='%23fcd116'%20d='M71.7%2071.7h368.6L71.7%20440.4h368.6z'/%3e%3ccircle%20cx='255.9'%20cy='256.1'%20r='61.4'%20fill='%23ce1126'/%3e%3cuse%20xlink:href='%23gd-c'%20width='100%25'%20height='100%25'%20transform='translate(256%20256)scale(56.32)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='-100'%20transform='translate(-16.4%20-.1)'/%3e%3cuse%20xlink:href='%23gd-c'%20id='gd-d'%20width='100%25'%20height='100%25'%20transform='translate(256%2035.9)scale(33.28)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='100'%20transform='translate(16.4)'/%3e%3cpath%20fill='%23ce1126'%20d='M99.8%20256.8c7.7%2014.3%2022.6%2029.8%2035.7%2035.3.2-14.5-5-33.2-12-48z'/%3e%3cpath%20fill='%23fcd116'%20d='M86.8%20207.6c11.1%2023.3-29%2078.7%2037.8%2091.7a68%2068%200%200%201-11.5-44.7%2076%2076%200%200%201%2034.6%2032.8c17.5-63.4-44.8-59.5-61-79.8z'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='-100'%20transform='translate(-16.4%20442)'/%3e%3cuse%20xlink:href='%23gd-c'%20width='100%25'%20height='100%25'%20transform='translate(256%20478)scale(33.28)'/%3e%3cuse%20xlink:href='%23gd-d'%20width='100%25'%20height='100%25'%20x='100'%20transform='translate(16.4%20442.2)'/%3e%3c/svg%3e")}.fi-ge{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ge'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='red'%20d='M272%200h96v480h-96z'/%3e%3cpath%20fill='red'%20d='M0%20192h640v96H0z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20d='M146.8%20373.1c1-16.8%204-31.1%204-31.1s-9.8%201-14.8%201-14.8-1-14.8-1%203%2014.3%204%2031.2c-16.9-1-31.2-4-31.2-4s1%207.4%201%2014.8-1%2014.8-1%2014.8%2014.3-3%2031.2-4c-1%2016.9-4%2031.2-4%2031.2s7.4-1%2014.8-1%2014.8%201%2014.8%201-3-14.3-4-31.2c16.9%201%2031.2%204%2031.2%204s-1-9.8-1-14.8%201-14.8%201-14.8-14.3%203-31.1%204zm368-288c1-16.8%204-31.1%204-31.1s-9.8%201-14.8%201-14.8-1-14.8-1%203%2014.3%204%2031.1c-16.9-1-31.2-3.9-31.2-3.9s1%207.4%201%2014.8-1%2014.8-1%2014.8%2014.3-3%2031.2-4c-1%2016.9-4%2031.2-4%2031.2s7.4-1%2014.8-1%2014.8%201%2014.8%201-3-14.3-4-31.1c16.9%201%2031.2%204%2031.2%204s-1-10-1-14.9%201-14.8%201-14.8-14.3%203-31.2%204zm-368%200c1-16.8%204-31.1%204-31.1s-9.8%201-14.8%201-14.8-1-14.8-1%203%2014.3%204%2031.2c-16.9-1-31.2-4-31.2-4s1%207.4%201%2014.8-1%2014.8-1%2014.8%2014.3-3%2031.2-4c-1%2016.9-4%2031.2-4%2031.2s7.4-1%2014.8-1%2014.8%201%2014.8%201-3-14.3-4-31.2c16.9%201%2031.2%204%2031.2%204s-1-9.8-1-14.8%201-14.8%201-14.8-14.3%203-31.1%204zm368%20288c1-16.8%204-31.1%204-31.1s-9.8%201-14.8%201-14.8-1-14.8-1%203%2014.3%204%2031.2c-16.9-1-31.2-4-31.2-4s1%207.4%201%2014.8-1%2014.8-1%2014.8%2014.3-3%2031.2-4c-1%2016.9-4%2031.2-4%2031.2s7.4-1%2014.8-1%2014.8%201%2014.8%201-3-14.3-4-31.2c16.9%201%2031.2%204%2031.2%204s-1-9.8-1-14.8%201-14.8%201-14.8-14.3%203-31.2%204z'/%3e%3c/svg%3e")}.fi-ge.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ge'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='red'%20d='M205%200h102v512H205z'/%3e%3cpath%20fill='red'%20d='M0%20205h512v102H0z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20d='M114.1%20397.9c1.1-18%204.3-33.4%204.3-33.4s-10.6%201-15.9%201-15.9-1-15.9-1%203.2%2015.3%204.3%2033.4c-18-1.1-33.4-4.3-33.4-4.3s1%208%201%2015.9-1%2015.9-1%2015.9%2015.3-3.2%2033.4-4.3c-1.1%2018-4.3%2033.4-4.3%2033.4s8-1%2015.9-1%2015.9%201%2015.9%201-3.2-15.3-4.3-33.4c18%201.1%2033.4%204.3%2033.4%204.3s-1-10.6-1-15.9%201-15.9%201-15.9-15.3%203.2-33.4%204.3m307-307c1.1-18%204.3-33.4%204.3-33.4s-10.6%201-15.9%201-15.9-1-15.9-1%203.2%2015.4%204.3%2033.4c-18-1.1-33.4-4.3-33.4-4.3s1%208%201%2015.9-1%2015.9-1%2015.9%2015.3-3.2%2033.4-4.3c-1.1%2018-4.3%2033.4-4.3%2033.4s8-1%2015.9-1%2015.9%201%2015.9%201-3.2-15.3-4.3-33.4c18%201.1%2033.4%204.3%2033.4%204.3s-1-10.6-1-15.9c0-5.2%201-15.9%201-15.9s-15.4%203.2-33.4%204.3m-307%200c1.1-18%204.3-33.4%204.3-33.4s-10.6%201-15.9%201-15.9-1-15.9-1%203.2%2015.4%204.3%2033.4c-18-1.1-33.4-4.3-33.4-4.3s1%208%201%2015.9-1%2015.9-1%2015.9%2015.3-3.2%2033.4-4.3c-1.1%2018-4.3%2033.4-4.3%2033.4s8-1%2015.9-1%2015.9%201%2015.9%201-3.2-15.3-4.3-33.4c18%201.1%2033.4%204.3%2033.4%204.3s-1-10.6-1-15.9c0-5.2%201-15.9%201-15.9s-15.3%203.2-33.4%204.3m307%20307c1.1-18%204.3-33.4%204.3-33.4s-10.6%201-15.9%201-15.9-1-15.9-1%203.2%2015.3%204.3%2033.4c-18-1.1-33.4-4.3-33.4-4.3s1%208%201%2015.9-1%2015.9-1%2015.9%2015.3-3.2%2033.4-4.3c-1.1%2018-4.3%2033.4-4.3%2033.4s8-1%2015.9-1%2015.9%201%2015.9%201-3.2-15.3-4.3-33.4c18%201.1%2033.4%204.3%2033.4%204.3s-1-10.6-1-15.9%201-15.9%201-15.9-15.4%203.2-33.4%204.3'/%3e%3c/svg%3e")}.fi-gf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gf'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-gf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gf'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-gg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gg'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23e8112d'%20d='M256%200h128v480H256z'/%3e%3cpath%20fill='%23e8112d'%20d='M0%20176h640v128H0z'/%3e%3cpath%20id='gg-a'%20fill='%23f9dd16'%20d='m110%20286.7%2023.3-23.4h210v-46.6h-210L110%20193.3z'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='rotate(90%20320%20240)'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='rotate(-90%20320%20240)'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='rotate(180%20320%20240)'/%3e%3c/svg%3e")}.fi-gg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gg'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23e8112d'%20d='M192%200h128v512H192z'/%3e%3cpath%20fill='%23e8112d'%20d='M0%20187.7h512v136.6H0z'/%3e%3cpath%20id='gg-a'%20fill='%23f9dd16'%20d='m46%20305.8%2023.3-25h210v-49.7h-210L46%20206.2z'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='matrix(0%201.06667%20-.9375%200%20496%20-17)'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='matrix(0%20-1.06667%20.9375%200%2016%20529)'/%3e%3cuse%20xlink:href='%23gg-a'%20width='36'%20height='24'%20transform='rotate(180%20256%20256)'/%3e%3c/svg%3e")}.fi-gh{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gh'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23006b3f'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fcd116'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='m320%20160%2052%20160-136.1-98.9H404L268%20320z'/%3e%3c/svg%3e")}.fi-gh.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gh'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23006b3f'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fcd116'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23000001'%20d='m256%20170.7%2055.5%20170.6L166.3%20236h179.4L200.6%20341.3z'/%3e%3c/svg%3e")}.fi-gi{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gi'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23da000c'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v321.6H0z'/%3e%3cg%20stroke='%23000'%20transform='translate(-160)scale(1.875)'%3e%3cg%20id='gi-a'%20fill='%23da000c'%20stroke-linecap='square'%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M196.6%20116.3h64v44h-64z'/%3e%3cpath%20d='M229.8%20153.9h-39l-8.7%205.7v6h47.7m-16.3-37c5.6%200%2010.2%204.7%2010.2%2010.5v14.7h7.3v-56h-40.3v56h12.6v-14.7c0-5.6%204.5-10.5%2010.2-10.5z'/%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M204.5%2060h18.6v34h-18.6z'/%3e%3cpath%20d='M223%2088.7h-16.2v-5.8h-11.9v5.8h-8v-5.8H182v10.4h41m-36.2%200h35v4.5h-35zm14-45.7V83h6v-9.7c0-3.6%202.5-6.6%206.1-6.8h.4a7%207%200%200%201%206.8%206.8V83h5.7V47.6zm-2.3-4.8v4.8h29.3v-4.8zm-3.7-9.1v9.1h35v-9.1h-5.3v4.7h-6.6v-4.7h-10v4.7h-6.5v-4.7zM182%20159.6h48m31-2.8h-32.4l-9.8%204.7v7H261'/%3e%3cpath%20stroke-linecap='butt'%20d='M218.8%20161.5H262'/%3e%3c/g%3e%3cuse%20xlink:href='%23gi-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3cg%20fill='%23f8d80e'%3e%3cg%20stroke-linecap='round'%3e%3cpath%20stroke-width='.8'%20d='M273.3%20150q-3.9%201.6-7.5%203.8a72%2072%200%200%200-8.9%206q-1.6%201-2.7%202.4c-1%20.8-2%202-1.8%203.5%200%20.6.8-.8%201.4-.9a4%204%200%200%201%203.1-.4q2.1-2%204.4-3.4a77%2077%200%200%201%2013-7.6z'/%3e%3cpath%20d='M260.4%20157.4v3.9m2.4-5.6v3.9m2.4-5.4v3.8m2.5-5.3v4'/%3e%3cpath%20stroke-width='.8'%20d='m238.9%20150.2-1.2%203.3a87%2087%200%200%201%2015.8%208q2.7%201.6%204.8%203.9c.3.8-.5%201.5-1.3%201.2-.7-.2-1.5-.5-2.2%200-1.1.5-2.1%202.2-.5%202.7%202.4%201.6%206.1.9%207.2-1.8.6-1.4.7-3.2-.5-4.4-2-2.3-4.8-4-7.4-5.7a89%2089%200%200%200-14.7-7.2z'/%3e%3cpath%20d='m254%20158-.3%203.4m3.1-1.7-.8%203.3m3.8-1-1.8%202.6m2.7%203.6-2.6-1.4m3.4-1.4-3%20.3m-.8%204-.2-2.6m-1-.3-2.4%201.8m-9.4-15.7v3.1m6.3.3v3.5m-3.2-5.2v3.3'/%3e%3c/g%3e%3cpath%20d='M235.8%20227.6v8h5v-4h6.9v4h5.4v-8zm0%2011v8H253v-8h-5.4v4h-6.9v-4z'/%3e%3cpath%20d='M253%20193.7h5v58h-5z'/%3e%3cpath%20d='M253%20198.7h5v50h-5zm2.6-19.3%2010.6%206.2-10.6%206.2-10.7-6.2zm-14.3%204h-2.7v4.4h2.7l14.3%208.3%2014.2-8.3h2.8v-4.4h-2.8l-14.2-8.3z'/%3e%3cpath%20d='M255.3%20164.3a5%205%200%200%200-4%205.1v11.2a5%205%200%200%200%204.6%204.6%205%205%200%200%200%204.8-2.8l-1.7-1a3%203%200%200%201-3%201.8c-1.6%200-2.9-1.6-2.7-3.1v-11.2a3%203%200%200%201%203-2.6c.6-.2%201.5.7%201.9%200%20.6-.9-.4-1.5-1-2zm5.8%203.9a5%205%200%200%201-1.9%201.6v7.5l2%201.1v-10.2z'/%3e%3c/g%3e%3cg%20fill='%23da000c'%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M240.8%2038.4h29.3v53.2h-29.3z'/%3e%3cpath%20d='M238.8%2038.4v44.5h9.3V69.7c0-3%202-7.3%207.9-7.3s8%204.3%208%207.3V83h9.2V38.4zm15.8%205h2.8v15.2h-2.8zm-8.3%203h3v11.1h-3zm16.5%200h2.9v11.1h-3zM235.6%2032v6.3h40.8V32zm-3.8-7.4V32h48.5v-7.4h-6.1v4h-7v-4h-7.8v4h-6.8v-4h-7.9v4H238v-4zm-9%2073.2v4.6h66.5v-4.6z'/%3e%3cpath%20d='M220%2082.9v15h72v-15h-6.8v5.8H276v-5.8h-12.2v5.8H248v-5.8h-12.2v5.8h-9v-5.8z'/%3e%3cpath%20stroke-linejoin='round'%20d='M228.7%20102.4v54.4h12.8v-20.4c0-9.5%206.4-14%2014.5-14%207.8%200%2014.5%204.5%2014.5%2014v20.4h12.8v-54.4z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-gi.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gi'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23da000c'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v343H0z'/%3e%3cg%20stroke='%23000'%20transform='matrix(2%200%200%202%20-256%200)'%3e%3cg%20id='gi-a'%20fill='%23da000c'%20stroke-linecap='square'%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M196.6%20116.3h64v44h-64z'/%3e%3cpath%20d='M229.8%20153.9h-39l-8.7%205.7v6h47.7m-16.3-37c5.6%200%2010.2%204.7%2010.2%2010.5v14.7h7.3v-56h-40.3v56h12.6v-14.7c0-5.6%204.5-10.5%2010.2-10.5z'/%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M204.5%2060h18.6v34h-18.6z'/%3e%3cpath%20d='M223%2088.7h-16.2v-5.8h-11.9v5.8h-8v-5.8H182v10.4h41m-36.2%200h35v4.5h-35zm14-45.7V83h6v-9.7c0-3.6%202.5-6.6%206.1-6.8h.4a7%207%200%200%201%206.8%206.8V83h5.7V47.6zm-2.3-4.8v4.8h29.3v-4.8zm-3.7-9.1v9.1h35v-9.1h-5.3v4.7h-6.6v-4.7h-10v4.7h-6.5v-4.7zM182%20159.6h48m31-2.8h-32.4l-9.8%204.7v7H261'/%3e%3cpath%20stroke-linecap='butt'%20d='M218.8%20161.5H262'/%3e%3c/g%3e%3cuse%20xlink:href='%23gi-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3cg%20fill='%23f8d80e'%3e%3cg%20stroke-linecap='round'%3e%3cpath%20stroke-width='.8'%20d='M273.3%20150q-3.9%201.6-7.5%203.8a72%2072%200%200%200-8.9%206q-1.6%201-2.7%202.4c-1%20.8-2%202-1.8%203.5%200%20.6.8-.8%201.4-.9a4%204%200%200%201%203.1-.4q2.1-2%204.4-3.4a77%2077%200%200%201%2013-7.6z'/%3e%3cpath%20d='M260.4%20157.4v3.9m2.4-5.6v3.9m2.4-5.4v3.8m2.5-5.3v4'/%3e%3cpath%20stroke-width='.8'%20d='m238.9%20150.2-1.2%203.3a87%2087%200%200%201%2015.8%208q2.7%201.6%204.8%203.9c.3.8-.5%201.5-1.3%201.2-.7-.2-1.5-.5-2.2%200-1.1.5-2.1%202.2-.5%202.7%202.4%201.6%206.1.9%207.2-1.8.6-1.4.7-3.2-.5-4.4-2-2.3-4.8-4-7.4-5.7a89%2089%200%200%200-14.7-7.2z'/%3e%3cpath%20d='m254%20158-.3%203.4m3.1-1.7-.8%203.3m3.8-1-1.8%202.6m2.7%203.6-2.6-1.4m3.4-1.4-3%20.3m-.8%204-.2-2.6m-1-.3-2.4%201.8m-9.4-15.7v3.1m6.3.3v3.5m-3.2-5.2v3.3'/%3e%3c/g%3e%3cpath%20d='M235.8%20227.6v8h5v-4h6.9v4h5.4v-8zm0%2011v8H253v-8h-5.4v4h-6.9v-4z'/%3e%3cpath%20d='M253%20193.7h5v58h-5z'/%3e%3cpath%20d='M253%20198.7h5v50h-5zm2.6-19.3%2010.6%206.2-10.6%206.2-10.7-6.2zm-14.3%204h-2.7v4.4h2.7l14.3%208.3%2014.2-8.3h2.8v-4.4h-2.8l-14.2-8.3z'/%3e%3cpath%20d='M255.3%20164.3a5%205%200%200%200-4%205.1v11.2a5%205%200%200%200%204.6%204.6%205%205%200%200%200%204.8-2.8l-1.7-1a3%203%200%200%201-3%201.8c-1.6%200-2.9-1.6-2.7-3.1v-11.2a3%203%200%200%201%203-2.6c.6-.2%201.5.7%201.9%200%20.6-.9-.4-1.5-1-2zm5.8%203.9a5%205%200%200%201-1.9%201.6v7.5l2%201.1v-10.2z'/%3e%3c/g%3e%3cg%20fill='%23da000c'%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M240.8%2038.4h29.3v53.2h-29.3z'/%3e%3cpath%20d='M238.8%2038.4v44.5h9.3V69.7c0-3%202-7.3%207.9-7.3s8%204.3%208%207.3V83h9.2V38.4zm15.8%205h2.8v15.2h-2.8zm-8.3%203h3v11.1h-3zm16.5%200h2.9v11.1h-3zM235.6%2032v6.3h40.8V32zm-3.8-7.4V32h48.5v-7.4h-6.1v4h-7v-4h-7.8v4h-6.8v-4h-7.9v4H238v-4zm-9%2073.2v4.6h66.5v-4.6z'/%3e%3cpath%20d='M220%2082.9v15h72v-15h-6.8v5.8H276v-5.8h-12.2v5.8H248v-5.8h-12.2v5.8h-9v-5.8z'/%3e%3cpath%20stroke-linejoin='round'%20d='M228.7%20102.4v54.4h12.8v-20.4c0-9.5%206.4-14%2014.5-14%207.8%200%2014.5%204.5%2014.5%2014v20.4h12.8v-54.4z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-gl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gl'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23d00c33'%20d='M0%20240h640v240H0zm80%200a160%20160%200%201%200%20320%200%20160%20160%200%200%200-320%200'/%3e%3c/svg%3e")}.fi-gl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gl'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23d00c33'%20d='M0%20256h512v256H0zm53.3%200a170.7%20170.7%200%201%200%20341.4%200%20170.7%20170.7%200%200%200-341.4%200'/%3e%3c/svg%3e")}.fi-gm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gm'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='gm-a'%3e%3cpath%20fill-opacity='.7'%20d='M0-48h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23gm-a)'%20transform='translate(0%2048)'%3e%3cpath%20fill='red'%20d='M0-128h640V85.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%2085.3h640V121H0z'/%3e%3cpath%20fill='%23009'%20d='M0%20120.9h640V263H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20263.1h640v35.6H0z'/%3e%3cpath%20fill='%23090'%20d='M0%20298.7h640V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gm'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512V199H0z'/%3e%3cpath%20fill='%23009'%20d='M0%20199.1h512V313H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20312.9h512v28.4H0z'/%3e%3cpath%20fill='%23090'%20d='M0%20341.3h512V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gn'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ff0'%20d='M213.3%200h213.4v480H213.3z'/%3e%3cpath%20fill='%23090'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gn'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='red'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ff0'%20d='M170.7%200h170.6v512H170.7z'/%3e%3cpath%20fill='%23090'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gp{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gp'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-gp.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gp'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-gq{background-image:url(/_astro/gq.Cag8QTk2.svg)}.fi-gq.fis{background-image:url(/_astro/gq.CPnMO1hT.svg)}.fi-gr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gr'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%200h640v53.3H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%2053.3h640v53.4H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20106.7h640V160H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20160h640v53.3H0z'/%3e%3cpath%20fill='%230d5eaf'%20d='M0%200h266.7v266.7H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20213.3h640v53.4H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20266.7h640V320H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20320h640v53.3H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20373.3h640v53.4H0z'/%3e%3cg%20fill='%23fff'%20fill-rule='evenodd'%20stroke-width='1.3'%3e%3cpath%20d='M106.7%200H160v266.7h-53.3z'/%3e%3cpath%20d='M0%20106.7h266.7V160H0z'/%3e%3c/g%3e%3cpath%20fill='%230d5eaf'%20d='M0%20426.7h640V480H0z'/%3e%3c/svg%3e")}.fi-gr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gr'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%200h512v57H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%2057h512v57H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20114h512v57H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20171h512v57H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20228h512v56.9H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20284.9h512v57H0z'/%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20341.9h512v57H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20398.9h512v57H0z'/%3e%3cpath%20fill='%230d5eaf'%20d='M0%200h284.9v284.9H0z'/%3e%3cg%20fill='%23fff'%20fill-rule='evenodd'%20stroke-width='1.3'%3e%3cpath%20d='M114%200h57v284.9h-57z'/%3e%3cpath%20d='M0%20114h284.9v57H0z'/%3e%3c/g%3e%3cpath%20fill='%230d5eaf'%20fill-rule='evenodd'%20d='M0%20455h512v57H0z'/%3e%3c/svg%3e")}.fi-gs{background-image:url(/_astro/gs.DiiNa0F5.svg)}.fi-gs.fis{background-image:url(/_astro/gs.DOgYbHsY.svg)}.fi-gt{background-image:url(/_astro/gt.CJo5DI-7.svg)}.fi-gt.fis{background-image:url(/_astro/gt.BLpn5qMn.svg)}.fi-gu{background-image:url(/_astro/gu.Di1JYREk.svg)}.fi-gu.fis{background-image:url(/_astro/gu.SbvrH0uZ.svg)}.fi-gw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gw'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ce1126'%20d='M0%200h220v480H0z'/%3e%3cpath%20fill='%23fcd116'%20d='M220%200h420v240H220z'/%3e%3cpath%20fill='%23009e49'%20d='M220%20240h420v240H220z'/%3e%3cg%20id='gw-b'%20transform='matrix(80%200%200%2080%20110%20240)'%3e%3cpath%20id='gw-a'%20fill='%23000001'%20d='M0-1v1h.5'%20transform='rotate(18%200%20-1)'/%3e%3cuse%20xlink:href='%23gw-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(72%20110%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(144%20110%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144%20110%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72%20110%20240)'/%3e%3c/svg%3e")}.fi-gw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-gw'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ce1126'%20d='M0%200h160v512H0z'/%3e%3cpath%20fill='%23fcd116'%20d='M160%200h352v256H160z'/%3e%3cpath%20fill='%23009e49'%20d='M160%20256h352v256H160z'/%3e%3cg%20transform='translate(-46.2%2072.8)scale(.7886)'%3e%3cg%20id='gw-b'%20transform='matrix(80%200%200%2080%20160%20240)'%3e%3cpath%20id='gw-a'%20fill='%23000001'%20d='M0-1v1h.5'%20transform='rotate(18%200%20-1)'/%3e%3cuse%20xlink:href='%23gw-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(72%20160%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(144%20160%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144%20160%20240)'/%3e%3cuse%20xlink:href='%23gw-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72%20160%20240)'/%3e%3c/g%3e%3c/svg%3e")}.fi-gy{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gy'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23399408'%20d='M2.4%200H640v480H2.4z'/%3e%3cpath%20fill='%23fff'%20d='M.2%200c-.9%200%20619.6%20241.5%20619.6%20241.5L0%20479.8z'/%3e%3cpath%20fill='%23ffde08'%20d='M.3%2020.2c3.4%200%20559%20217.9%20555.9%20220L1.9%20463.2.3%2020.3z'/%3e%3cpath%20fill='%23000001'%20d='M1.9.8c1.8%200%20290.9%20240.9%20290.9%20240.9L1.8%20477z'/%3e%3cpath%20fill='%23de2110'%20d='M.3%2033.9c1.6-15%20260.9%20208.4%20260.9%20208.4L.2%20451.7V33.9z'/%3e%3c/g%3e%3c/svg%3e")}.fi-gy.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gy'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23399408'%20d='M2%200h510v512H2z'/%3e%3cpath%20fill='%23fff'%20d='M.1%200c-.6%200%20495.7%20257.6%20495.7%20257.6L0%20511.7z'/%3e%3cpath%20fill='%23ffde08'%20d='M.2%2021.5C3%2021.5%20447.5%20254%20445%20256.2L1.5%20494.2.2%2021.4z'/%3e%3cpath%20fill='%23000001'%20d='M1.5.8c1.5%200%20232.8%20257%20232.8%20257L1.5%20508.8z'/%3e%3cpath%20fill='%23de2110'%20d='M.2%2036.2C1.6%2020.2%20209%20258.5%20209%20258.5L.2%20481.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-hk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-hk'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23EC1B2E'%20d='M0%200h640v480H0'/%3e%3cpath%20id='hk-a'%20fill='%23fff'%20d='M346.3%20103.1C267%2098%20230.6%20201.9%20305.6%20240.3c-26-22.4-20.6-55.3-10.1-72.4l1.9%201.1c-13.8%2023.5-11.2%2052.7%2011.1%2071-12.7-12.3-9.5-39%2012.1-48.9s23.6-39.3%2016.4-49.1q-14.7-25.6%209.3-38.9M307.9%20164l-4.7%207.4-1.8-8.6-8.6-2.3%207.8-4.3-.6-8.9%206.5%206.1%208.3-3.3-3.7%208.1%205.6%206.8z'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(72%20312.5%20243.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(144%20312.5%20243.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(216%20312.5%20243.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(288%20312.5%20243.5)'/%3e%3c/svg%3e")}.fi-hk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-hk'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23EC1B2E'%20d='M0%200h512v512H0'/%3e%3cpath%20id='hk-a'%20fill='%23fff'%20d='M282.3%20119.2C203%20114%20166.6%20218%20241.6%20256.4%20215.6%20234%20221%20201%20231.5%20184l1.9%201c-13.8%2023.6-11.2%2052.8%2011%2071-12.6-12.2-9.4-39%2012.2-48.8s23.6-39.3%2016.4-49.1q-14.7-25.6%209.3-39zM243.9%20180l-4.7%207.4-1.8-8.6-8.6-2.3%207.8-4.3-.6-9%206.5%206.2%208.3-3.3-3.7%208%205.6%206.9z'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(72%20248.5%20259.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(144%20248.5%20259.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(216%20248.5%20259.5)'/%3e%3cuse%20xlink:href='%23hk-a'%20transform='rotate(288%20248.5%20259.5)'/%3e%3c/svg%3e")}.fi-hm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-hm'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300008B'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='red'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23fff'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='red'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3cpath%20fill='%23fff'%20d='m527%20396.7-20.5%202.6%202.2%2020.5-14.8-14.4-14.7%2014.5%202-20.5-20.5-2.4%2017.3-11.2-10.9-17.5%2019.6%206.5%206.9-19.5%207.1%2019.4%2019.5-6.7-10.7%2017.6zm-3.7-117.2%202.7-13-9.8-9%2013.2-1.5%205.5-12.1%205.5%2012.1%2013.2%201.5-9.8%209%202.7%2013-11.6-6.6zm-104.1-60-20.3%202.2%201.8%2020.3-14.4-14.5-14.8%2014.1%202.4-20.3-20.2-2.7%2017.3-10.8-10.5-17.5%2019.3%206.8L387%20178l6.7%2019.3%2019.4-6.3-10.9%2017.3%2017.1%2011.2ZM623%20186.7l-20.9%202.7%202.3%2020.9-15.1-14.7-15%2014.8%202.1-21-20.9-2.4%2017.7-11.5-11.1-17.9%2020%206.7%207-19.8%207.2%2019.8%2019.9-6.9-11%2018zm-96.1-83.5-20.7%202.3%201.9%2020.8-14.7-14.8-15.1%2014.4%202.4-20.7-20.7-2.8%2017.7-11L467%2073.5l19.7%206.9%207.3-19.5%206.8%2019.7%2019.8-6.5-11.1%2017.6zM234%20385.7l-45.8%205.4%204.6%2045.9-32.8-32.4-33%2032.2%204.9-45.9-45.8-5.8%2038.9-24.8-24-39.4%2043.6%2015%2015.8-43.4%2015.5%2043.5%2043.7-14.7-24.3%2039.2%2038.8%2025.1Z'/%3e%3c/svg%3e")}.fi-hm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-hm'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300008B'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M256%200v32l-95%2096%2095%2093.5V256h-33.5L127%20162l-93%2094H0v-34l93-93.5L0%2037V0h31l96%2094%2093-94z'/%3e%3cpath%20fill='red'%20d='m92%20162%205.5%2017L21%20256H0v-1.5zm62-6%2027%204%2075%2073.5V256zM256%200l-96%2098-2-22%2075-76zM0%20.5%2096.5%2095%2067%2091%200%2024.5z'/%3e%3cpath%20fill='%23fff'%20d='M88%200v256h80V0zM0%2088v80h256V88z'/%3e%3cpath%20fill='red'%20d='M0%20104v48h256v-48zM104%200v256h48V0z'/%3e%3cpath%20fill='%23fff'%20d='m202%20402.8-45.8%205.4%204.6%2045.9-32.8-32.4-33%2032.2%204.9-45.9-45.8-5.8L93%20377.4%2069%20338l43.6%2015%2015.8-43.4%2015.5%2043.5%2043.7-14.7-24.3%2039.2%2038.8%2025.1Zm222.7%208-20.5%202.6%202.2%2020.5-14.8-14.4-14.7%2014.5%202-20.5-20.5-2.4%2017.3-11.2-10.9-17.5%2019.6%206.5%206.9-19.5%207.1%2019.4%2019.5-6.7-10.7%2017.6zM415%20293.6l2.7-13-9.8-9%2013.2-1.5%205.5-12.1%205.5%2012.1%2013.2%201.5-9.8%209%202.7%2013-11.6-6.6zm-84.1-60-20.3%202.2%201.8%2020.3-14.4-14.5-14.8%2014.1%202.4-20.3-20.2-2.7%2017.3-10.8-10.5-17.5%2019.3%206.8%207.2-19.1%206.7%2019.3%2019.4-6.3-10.9%2017.3zm175.8-32.8-20.9%202.7%202.3%2020.9-15.1-14.7-15%2014.8%202.1-21-20.9-2.4%2017.7-11.5-11.1-17.9%2020%206.7%207-19.8%207.2%2019.8%2019.9-6.9-11%2018zm-82.1-83.5-20.7%202.3%201.9%2020.8-14.7-14.8L376%20140l2.4-20.7-20.7-2.8%2017.7-11-10.7-17.9%2019.7%206.9%207.3-19.5%206.8%2019.7%2019.8-6.5-11.1%2017.6z'/%3e%3c/svg%3e")}.fi-hn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-hn'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2318c3df'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cg%20id='hn-c'%20fill='%2318c3df'%20transform='translate(320%20240)scale(26.66665)'%3e%3cg%20id='hn-b'%3e%3cpath%20id='hn-a'%20d='m-.3%200%20.5.1L0-1z'/%3e%3cuse%20xlink:href='%23hn-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(133.3%20-42.7)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(133.3%2037.3)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(-133.3%20-42.7)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(-133.3%2037.3)'/%3e%3c/svg%3e")}.fi-hn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-hn'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2318c3df'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cg%20id='hn-c'%20fill='%2318c3df'%20transform='translate(256%20256)scale(28.44446)'%3e%3cg%20id='hn-b'%3e%3cpath%20id='hn-a'%20d='m0-1-.3%201%20.5.1z'/%3e%3cuse%20xlink:href='%23hn-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23hn-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(142.2%20-45.5)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(142.2%2039.8)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(-142.2%20-45.5)'/%3e%3cuse%20xlink:href='%23hn-c'%20width='100%25'%20height='100%25'%20transform='translate(-142.2%2039.8)'/%3e%3c/svg%3e")}.fi-hr{background-image:url(/_astro/hr.fzLfaANM.svg)}.fi-hr.fis{background-image:url(/_astro/hr.BpiVVBoV.svg)}.fi-ht{background-image:url(/_astro/ht.DIMg4gti.svg)}.fi-ht.fis{background-image:url(/_astro/ht.pweRl6ZP.svg)}.fi-hu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-hu'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M640%20480H0V0h640z'/%3e%3cpath%20fill='%23388d00'%20d='M640%20480H0V320h640z'/%3e%3cpath%20fill='%23d43516'%20d='M640%20160.1H0V.1h640z'/%3e%3c/g%3e%3c/svg%3e")}.fi-hu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-hu'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M512%20512H0V0h512z'/%3e%3cpath%20fill='%23388d00'%20d='M512%20512H0V341.3h512z'/%3e%3cpath%20fill='%23d43516'%20d='M512%20170.8H0V.1h512z'/%3e%3c/g%3e%3c/svg%3e")}.fi-id{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-id'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23e70011'%20d='M0%200h640v240H0Z'/%3e%3cpath%20fill='%23fff'%20d='M0%20240h640v240H0Z'/%3e%3c/svg%3e")}.fi-id.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-id'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23e70011'%20d='M0%200h512v256H0Z'/%3e%3cpath%20fill='%23fff'%20d='M0%20256h512v256H0Z'/%3e%3c/svg%3e")}.fi-ie{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ie'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23009A49'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23FF7900'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ie.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ie'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23009A49'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23FF7900'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-il{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-il'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='il-a'%3e%3cpath%20fill-opacity='.7'%20d='M-87.6%200H595v512H-87.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23il-a)'%20transform='translate(82.1)scale(.94)'%3e%3cpath%20fill='%23fff'%20d='M619.4%20512H-112V0h731.4z'/%3e%3cpath%20fill='%230038b8'%20d='M619.4%20115.2H-112V48h731.4zm0%20350.5H-112v-67.2h731.4zm-483-275%20110.1%20191.6L359%20191.6z'/%3e%3cpath%20fill='%23fff'%20d='m225.8%20317.8%2020.9%2035.5%2021.4-35.3z'/%3e%3cpath%20fill='%230038b8'%20d='M136%20320.6%20246.2%20129l112.4%20190.8z'/%3e%3cpath%20fill='%23fff'%20d='m225.8%20191.6%2020.9-35.5%2021.4%2035.4zM182%20271.1l-21.7%2036%2041-.1-19.3-36zm-21.3-66.5%2041.2.3-19.8%2036.3zm151.2%2067%2020.9%2035.5-41.7-.5zm20.5-67-41.2.3%2019.8%2036.3zm-114.3%200L189.7%20256l28.8%2050.3%2052.8%201.2%2032-51.5-29.6-52z'/%3e%3c/g%3e%3c/svg%3e")}.fi-il.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-il'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='il-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23il-a)'%3e%3cpath%20fill='%23fff'%20d='M619.4%20512H-112V0h731.4z'/%3e%3cpath%20fill='%230038b8'%20d='M619.4%20115.2H-112V48h731.4zm0%20350.5H-112v-67.2h731.4zm-483-275%20110.1%20191.6L359%20191.6z'/%3e%3cpath%20fill='%23fff'%20d='m225.8%20317.8%2020.9%2035.5%2021.4-35.3z'/%3e%3cpath%20fill='%230038b8'%20d='M136%20320.6%20246.2%20129l112.4%20190.8z'/%3e%3cpath%20fill='%23fff'%20d='m225.8%20191.6%2020.9-35.5%2021.4%2035.4zM182%20271.1l-21.7%2036%2041-.1-19.3-36zm-21.3-66.5%2041.2.3-19.8%2036.3zm151.2%2067%2020.9%2035.5-41.7-.5zm20.5-67-41.2.3%2019.8%2036.3zm-114.3%200L189.7%20256l28.8%2050.3%2052.8%201.2%2032-51.5-29.6-52z'/%3e%3c/g%3e%3c/svg%3e")}.fi-im{background-image:url(/_astro/im.-VPIqfkF.svg)}.fi-im.fis{background-image:url(/_astro/im.Dd9p-0-T.svg)}.fi-in{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-in'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23f93'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23128807'%20d='M0%20320h640v160H0z'/%3e%3cg%20transform='matrix(3.2%200%200%203.2%20320%20240)'%3e%3ccircle%20r='20'%20fill='%23008'/%3e%3ccircle%20r='17.5'%20fill='%23fff'/%3e%3ccircle%20r='3.5'%20fill='%23008'/%3e%3cg%20id='in-d'%3e%3cg%20id='in-c'%3e%3cg%20id='in-b'%3e%3cg%20id='in-a'%20fill='%23008'%3e%3ccircle%20r='.9'%20transform='rotate(7.5%20-8.8%20133.5)'/%3e%3cpath%20d='M0%2017.5.6%207%200%202l-.6%205z'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-a'%20width='100%25'%20height='100%25'%20transform='rotate(15)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-b'%20width='100%25'%20height='100%25'%20transform='rotate(30)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-c'%20width='100%25'%20height='100%25'%20transform='rotate(60)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(120)'/%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(-120)'/%3e%3c/g%3e%3c/svg%3e")}.fi-in.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-in'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23f93'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23128807'%20d='M0%20341.3h512V512H0z'/%3e%3cg%20transform='translate(256%20256)scale(3.41333)'%3e%3ccircle%20r='20'%20fill='%23008'/%3e%3ccircle%20r='17.5'%20fill='%23fff'/%3e%3ccircle%20r='3.5'%20fill='%23008'/%3e%3cg%20id='in-d'%3e%3cg%20id='in-c'%3e%3cg%20id='in-b'%3e%3cg%20id='in-a'%20fill='%23008'%3e%3ccircle%20r='.9'%20transform='rotate(7.5%20-8.8%20133.5)'/%3e%3cpath%20d='M0%2017.5.6%207%200%202l-.6%205z'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-a'%20width='100%25'%20height='100%25'%20transform='rotate(15)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-b'%20width='100%25'%20height='100%25'%20transform='rotate(30)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-c'%20width='100%25'%20height='100%25'%20transform='rotate(60)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(120)'/%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(-120)'/%3e%3c/g%3e%3c/svg%3e")}.fi-io{background-image:url(/_astro/io.13HOfeJD.svg)}.fi-io.fis{background-image:url(/_astro/io.BImhNBcd.svg)}.fi-iq{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-iq'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20320h640v160H0z'/%3e%3cg%20fill='%23007a3d'%20transform='translate(-179.3%20-92.8)scale(1.75182)'%3e%3cpath%20d='m325.5%20173.2-1.4-1q-.6-.7%201.2-.2%203.3%201%205.3-.8l1.3-1.1%201.5.7q1.5.8%202%20.7c.7-.2%202.1-2%202-2.6%200-.7.6-.5%201%20.3.6%201.6-.3%203.5-2%203.9q-1%20.3-2.6-.3c-1.4-.5-1.7-.5-2.4%200a5%205%200%200%201-5.9.4m5.8-5.3a8%208%200%200%201-1-4q.1-.9.8-.6c1%20.3%201.2%201%201%203q0%202.7-.8%201.6m-67.6-1.9c-.1%201.3%202.4%204.6%203.5%205.2-.8.3-1.7.2-2.4.5-4%204-18.4%2018-21%2021.4%207.8.2%2016.4-.1%2023.7-.4%200-5.3%205-5.6%208.4-7.5%201.7%202.7%206%202.5%206.6%206.6v17.6H216a9.7%209.7%200%200%201-12.3%207.5c2-2%205.4-2.8%206.6-5.7%201-6.4-2-10.3-4-14a24%2024%200%200%200%207-3.6c-2.3%207%206.2%206.3%2012.4%206.1.2-2.4.1-5.2-1.7-5.6%202.3-.9%202.7-1.2%206.6-4.4v9.6l46.1-.1c0-3%20.8-7.9-1.6-7.9-2.2%200%200%206.2-1.8%206.2h-35.7v-6c1.5-1.6%201.3-1.5%2011.6-11.8%201-1%208.3-7.6%2014.6-13.7zm89.1-.3c2.5%201.4%204.5%203.2%207.5%204-.3%201.3-1.5%201.8-1.8%203.1v27c3.4.7%204.2-1.3%205.8-2.3.4%204.3%203.2%208.5%203%2012h-14.5zm-19.4%2014.5s5.3-4.5%205.3-4.7V199h3.8l-.1-26.3c1.5-1.6%204.6-3.8%205.3-5.4v42h-33.4c-.5-8.7-.6-17.7%209.6-15.8V190c-.3-.6-.9.1-1-.7%201.6-1.6%202.1-2%206.5-5.8l.1%2015.5h3.9zm-12.6%2018.6c.7%201%203.2%201%203-.8-.3-1.5-3.5-1-3%20.8'/%3e%3ccircle%20cx='224'%20cy='214.4'%20r='2'/%3e%3cpath%20d='M287%20165.8c2.5%201.3%204.5%203.2%207.6%204-.4%201.2-1.5%201.7-1.8%203v27c3.4.7%204.1-1.2%205.7-2.3.5%204.3%203.2%208.6%203.1%2012H287z'/%3e%3c/g%3e%3c/svg%3e")}.fi-iq.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-iq'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20341.3h512V512H0z'/%3e%3cg%20fill='%23007a3d'%20transform='translate(-276.6%20-99)scale(1.8686)'%3e%3cpath%20d='m325.5%20173.2-1.4-1q-.6-.7%201.2-.2%203.3%201%205.3-.8l1.3-1.1%201.5.7q1.5.8%202%20.7c.7-.2%202.1-2%202-2.6%200-.7.6-.5%201%20.3.6%201.6-.3%203.5-2%203.9q-1%20.3-2.6-.3c-1.4-.5-1.7-.5-2.4%200a5%205%200%200%201-5.9.4m5.8-5.3a8%208%200%200%201-1-4q.1-.9.8-.6c1%20.3%201.2%201%201%203q0%202.7-.8%201.6m-67.6-1.9c-.1%201.3%202.4%204.6%203.5%205.2-.8.3-1.7.2-2.4.5-4%204-18.4%2018-21%2021.4%207.8.2%2016.4-.1%2023.7-.4%200-5.3%205-5.6%208.4-7.5%201.7%202.7%206%202.5%206.6%206.6v17.6H216a9.7%209.7%200%200%201-12.3%207.5c2-2%205.4-2.8%206.6-5.7%201-6.4-2-10.3-4-14a24%2024%200%200%200%207-3.6c-2.3%207%206.2%206.3%2012.4%206.1.2-2.4.1-5.2-1.7-5.6%202.3-.9%202.7-1.2%206.6-4.4v9.6l46.1-.1c0-3%20.8-7.9-1.6-7.9-2.2%200%200%206.2-1.8%206.2h-35.7v-6c1.5-1.6%201.3-1.5%2011.6-11.8%201-1%208.3-7.6%2014.6-13.7zm89.1-.3c2.5%201.4%204.5%203.2%207.5%204-.3%201.3-1.5%201.8-1.8%203.1v27c3.4.7%204.2-1.3%205.8-2.3.4%204.3%203.2%208.5%203%2012h-14.5zm-19.4%2014.5s5.3-4.5%205.3-4.7V199h3.8l-.1-26.3c1.5-1.6%204.6-3.8%205.3-5.4v42h-33.4c-.5-8.7-.6-17.7%209.6-15.8V190c-.3-.6-.9.1-1-.7%201.6-1.6%202.1-2%206.5-5.8l.1%2015.5h3.9zm-12.6%2018.6c.7%201%203.2%201%203-.8-.3-1.5-3.5-1-3%20.8'/%3e%3ccircle%20cx='224'%20cy='214.4'%20r='2'/%3e%3cpath%20d='M287%20165.8c2.5%201.3%204.5%203.2%207.6%204-.4%201.2-1.5%201.7-1.8%203v27c3.4.7%204.1-1.2%205.7-2.3.5%204.3%203.2%208.6%203.1%2012H287z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ir{background-image:url(/_astro/ir.cCIgaNf6.svg)}.fi-ir.fis{background-image:url(/_astro/ir.Q03Mij62.svg)}.fi-is{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-is'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='is-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='0'%20clip-path='url(%23is-a)'%3e%3cpath%20fill='%23003897'%20d='M0%200h666.7v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20186.7h186.7V0h106.6v186.7h373.4v106.6H293.3V480H186.7V293.3H0z'/%3e%3cpath%20fill='%23d72828'%20d='M0%20213.3h213.3V0h53.4v213.3h400v53.4h-400V480h-53.4V266.7H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-is.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-is'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='is-a'%3e%3cpath%20fill-opacity='.7'%20d='M85.4%200h486v486h-486z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='0'%20clip-path='url(%23is-a)'%20transform='translate(-90)scale(1.0535)'%3e%3cpath%20fill='%23003897'%20d='M0%200h675v486H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20189h189V0h108v189h378v108H297v189H189V297H0z'/%3e%3cpath%20fill='%23d72828'%20d='M0%20216h216V0h54v216h405v54H270v216h-54V270H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-it{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-it'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23009246'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ce2b37'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-it.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-it'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23009246'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ce2b37'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-je{background-image:url(/_astro/je.DyWbhIiC.svg)}.fi-je.fis{background-image:url(/_astro/je.vXe0Dr49.svg)}.fi-jm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jm'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23000001'%20d='m0%200%20320%20240L0%20480zm640%200L320%20240l320%20240z'/%3e%3cpath%20fill='%23090'%20d='m0%200%20320%20240L640%200zm0%20480%20320-240%20320%20240z'/%3e%3cpath%20fill='%23fc0'%20d='M640%200h-59.6L0%20435.3V480h59.6L640%2044.7z'/%3e%3cpath%20fill='%23fc0'%20d='M0%200v44.7L580.4%20480H640v-44.7L59.6%200z'/%3e%3c/g%3e%3c/svg%3e")}.fi-jm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jm'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23000001'%20d='m0%200%20256%20256L0%20512zm512%200L256%20256l256%20256z'/%3e%3cpath%20fill='%23090'%20d='m0%200%20256%20256L512%200zm0%20512%20256-256%20256%20256z'/%3e%3cpath%20fill='%23fc0'%20d='M512%200h-47.7L0%20464.3V512h47.7L512%2047.7z'/%3e%3cpath%20fill='%23fc0'%20d='M0%200v47.7L464.3%20512H512v-47.7L47.7%200z'/%3e%3c/g%3e%3c/svg%3e")}.fi-jo{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jo'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='jo-a'%3e%3cpath%20fill-opacity='.7'%20d='M-117.8%200h682.6v512h-682.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23jo-a)'%20transform='translate(110.5)scale(.9375)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M-117.8%200h1024v170.7h-1024z'/%3e%3cpath%20fill='%23fff'%20d='M-117.8%20170.7h1024v170.6h-1024z'/%3e%3cpath%20fill='%23090'%20d='M-117.8%20341.3h1024V512h-1024z'/%3e%3cpath%20fill='red'%20d='m-117.8%20512%20512-256-512-256z'/%3e%3cpath%20fill='%23fff'%20d='m24.5%20289%205.7-24.9H4.7l23-11-15.9-19.9%2023%2011%205.6-24.8%205.7%2024.9L69%20233.2l-16%2019.9%2023%2011H50.6l5.7%2024.9-15.9-20z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-jo.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jo'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='jo-a'%3e%3cpath%20fill-opacity='.7'%20d='M113.6%200H607v493.5H113.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23jo-a)'%20transform='translate(-117.8)scale(1.0375)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M0%200h987v164.5H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20164.5h987V329H0z'/%3e%3cpath%20fill='%23090'%20d='M0%20329h987v164.5H0z'/%3e%3cpath%20fill='red'%20d='m0%20493.5%20493.5-246.8L0%200z'/%3e%3cpath%20fill='%23fff'%20d='m164.8%20244%2022%2010.6h-24.5l5.5%2024-15.3-19.3-15.3%2019.2%205.5-23.9H118l22.1-10.7-15.3-19.1%2022.1%2010.6%205.5-23.9%205.5%2024%2022-10.7z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-jp{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jp'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='jp-a'%3e%3cpath%20fill-opacity='.7'%20d='M-88%2032h640v480H-88z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23jp-a)'%20transform='translate(88%20-32)'%3e%3cpath%20fill='%23fff'%20d='M-128%2032h720v480h-720z'/%3e%3ccircle%20cx='523.1'%20cy='344.1'%20r='194.9'%20fill='%23bc002d'%20transform='translate(-168.4%208.6)scale(.76554)'/%3e%3c/g%3e%3c/svg%3e")}.fi-jp.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jp'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='jp-a'%3e%3cpath%20fill-opacity='.7'%20d='M177.2%200h708.6v708.7H177.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23jp-a)'%20transform='translate(-128)scale(.72249)'%3e%3cpath%20fill='%23fff'%20d='M0%200h1063v708.7H0z'/%3e%3ccircle%20cx='523.1'%20cy='344.1'%20r='194.9'%20fill='%23bc002d'%20transform='translate(-59.7%20-34.5)scale(1.1302)'/%3e%3c/g%3e%3c/svg%3e")}.fi-ke{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ke'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='ke-a'%20stroke-miterlimit='10'%20d='m-28.6%2047.5%201.8%201%2046.7-81c2.7-.6%204.2-3.2%205.7-5.8%201-1.8%205-8.7%206.7-17.7a58%2058%200%200%200-11.9%2014.7c-1.5%202.6-3%205.2-2.3%207.9z'/%3e%3c/defs%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h640v144H0z'/%3e%3cpath%20fill='%23060'%20d='M0%20336h640v144H0z'/%3e%3cg%20id='ke-b'%20transform='matrix(3%200%200%203%20320%20240)'%3e%3cuse%20xlink:href='%23ke-a'%20width='100%25'%20height='100%25'%20stroke='%23000'/%3e%3cuse%20xlink:href='%23ke-a'%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3c/g%3e%3cuse%20xlink:href='%23ke-b'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3cpath%20fill='%23b00'%20d='M640.5%20168H377c-9-24-39-72-57-72s-48%2048-57%2072H-.2v144H263c9%2024%2039%2072%2057%2072s48-48%2057-72h263.5z'/%3e%3cpath%20id='ke-c'%20d='M377%20312c9-24%2015-48%2015-72s-6-48-15-72c-9%2024-15%2048-15%2072s6%2048%2015%2072'/%3e%3cuse%20xlink:href='%23ke-c'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3cg%20fill='%23fff'%20transform='matrix(3%200%200%203%20320%20240)'%3e%3cellipse%20rx='4'%20ry='6'/%3e%3cpath%20id='ke-d'%20d='M1%205.8s4%208%204%2021-4%2021-4%2021z'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(-1)'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(1%20-1)'/%3e%3c/g%3e%3c/svg%3e")}.fi-ke.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ke'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cpath%20id='ke-a'%20stroke-miterlimit='10'%20d='m-28.6%2047.5%201.8%201%2046.7-81c2.7-.6%204.2-3.2%205.7-5.8%201-1.8%205-8.7%206.7-17.7a58%2058%200%200%200-11.9%2014.7c-1.5%202.6-3%205.2-2.3%207.9z'/%3e%3c/defs%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h512v153.6H0z'/%3e%3cpath%20fill='%23060'%20d='M0%20358.4h512V512H0z'/%3e%3cg%20id='ke-b'%20transform='matrix(3.2%200%200%203.2%20255.8%20256)'%3e%3cuse%20xlink:href='%23ke-a'%20width='100%25'%20height='100%25'%20stroke='%23000'/%3e%3cuse%20xlink:href='%23ke-a'%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3c/g%3e%3cuse%20xlink:href='%23ke-b'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20511.7%200)'/%3e%3cpath%20fill='%23b00'%20d='M255.8%20102.4c-19.2%200-51.2%2051.2-60.8%2076.8H0v153.6h195c9.7%2025.6%2041.7%2076.8%2060.9%2076.8s51.2-51.2%2060.8-76.8H512V179.2H316.6c-9.6-25.6-41.6-76.8-60.8-76.8'/%3e%3cpath%20id='ke-c'%20d='M316.6%20332.8a220%20220%200%200%200%2016-76.8%20220%20220%200%200%200-16-76.8%20220%20220%200%200%200-16%2076.8%20220%20220%200%200%200%2016%2076.8'/%3e%3cuse%20xlink:href='%23ke-c'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20511.7%200)'/%3e%3cg%20fill='%23fff'%20transform='matrix(3.2%200%200%203.2%20255.8%20256)'%3e%3cellipse%20rx='4'%20ry='6'/%3e%3cpath%20id='ke-d'%20d='M1%205.8s4%208%204%2021-4%2021-4%2021z'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(-1)'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3cuse%20xlink:href='%23ke-d'%20width='100%25'%20height='100%25'%20transform='scale(1%20-1)'/%3e%3c/g%3e%3c/svg%3e")}.fi-kg{background-image:url(/_astro/kg.B0FsxZiL.svg)}.fi-kg.fis{background-image:url(/_astro/kg.CjfitMyT.svg)}.fi-kh{background-image:url(/_astro/kh.BeWfuE30.svg)}.fi-kh.fis{background-image:url(/_astro/kh.BBvObpUS.svg)}.fi-ki{background-image:url(/_astro/ki.p_fAQGbS.svg)}.fi-ki.fis{background-image:url(/_astro/ki.fuIMkEYQ.svg)}.fi-km{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-km'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='km-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23km-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23ff0'%20d='M0%200h768.8v128H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20128h768.8v128H0z'/%3e%3cpath%20fill='%23be0027'%20d='M0%20256h768.8v128H0z'/%3e%3cpath%20fill='%233b5aa3'%20d='M0%20384h768.8v128H0z'/%3e%3cpath%20fill='%23239e46'%20d='M0%200v512l381.9-255.3z'/%3e%3cpath%20fill='%23fff'%20d='M157.2%20141.4c-85-4.3-123.9%2063.5-123.8%20115.9-.2%2062%2058.6%20113%20112.8%20110C117%20353.5%2081.2%20314.6%2081%20257c-.3-52.1%2029.5-97.5%2076.3-115.6z'/%3e%3cpath%20fill='%23fff'%20d='m156%20197-12-9.3-14.6%204.6%205.2-14.4-8.8-12.4%2015.2.6%209-12.3%204.3%2014.7%2014.4%204.8-12.6%208.5zm-.3%2052.1-12-9.4-14.6%204.6%205.3-14.3-8.9-12.4%2015.3.5%209-12.2%204.2%2014.6%2014.5%204.9-12.7%208.5zm.2%2052.6-12-9.4-14.5%204.6%205.2-14.3-8.8-12.4%2015.2.5%209-12.2%204.3%2014.6%2014.4%204.8-12.6%208.6zm-.2%2053-12-9.3L129%20350l5.3-14.4-8.9-12.4%2015.3.6%209-12.3%204.2%2014.7%2014.5%204.8-12.7%208.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-km.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-km'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='km-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h416.3v416.3H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23km-a)'%20transform='scale(1.23)'%3e%3cpath%20fill='%23ff0'%20d='M0%200h625v104H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20104h625v104.1H0z'/%3e%3cpath%20fill='%23be0027'%20d='M0%20208.1h625v104H0z'/%3e%3cpath%20fill='%233b5aa3'%20d='M0%20312.2h625v104H0z'/%3e%3cpath%20fill='%23239e46'%20d='M0%200v416.2l310.4-207.5z'/%3e%3cpath%20fill='%23fff'%20d='M127.8%20115c-69.2-3.5-100.7%2051.6-100.6%2094.2-.2%2050.4%2047.6%2092%2091.7%2089.4A100%20100%200%200%201%2065.8%20209a98%2098%200%200%201%2062-94'/%3e%3cpath%20fill='%23fff'%20d='m126.8%20160.2-9.8-7.6-11.8%203.7%204.2-11.6-7.1-10.1%2012.3.4%207.4-10%203.4%2012%2011.8%203.9-10.3%207zm-.2%2042.3-9.8-7.6-11.8%203.7%204.2-11.6-7.2-10.1%2012.4.4%207.4-10%203.4%2012%2011.8%204-10.3%206.9zm.2%2042.8-9.8-7.6-11.8%203.7%204.2-11.7-7.1-10%2012.3.4%207.4-10%203.4%2012%2011.8%203.9-10.3%206.9zm-.2%2043.1-9.8-7.6-11.8%203.7%204.2-11.6-7.2-10.1%2012.4.4%207.4-10%203.4%2012%2011.8%204-10.3%206.9z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kn'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='kn-a'%3e%3cpath%20fill-opacity='.7'%20d='M-80.1%200h682.7v512H-80.1z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kn-a)'%20transform='translate(75.1)scale(.9375)'%3e%3cpath%20fill='%23ffe900'%20d='M-107.8.2h737.6v511.3h-737.6z'/%3e%3cpath%20fill='%2335a100'%20d='m-108.2.2.8%20368.6L466.6%200z'/%3e%3cpath%20fill='%23c70000'%20d='m630.7%20511.5-1.4-383.2-579%20383.5z'/%3e%3cpath%20fill='%23000001'%20d='m-107.9%20396.6.5%20115.4%20125.3-.2%20611.7-410.1L629%201.4%20505.2.2z'/%3e%3cpath%20fill='%23fff'%20d='m380.4%20156.6-9.8-42.2%2033.3%2027%2038-24.6-17.4%2041.3%2033.4%2027-44.2-1.5-17.3%2041.3-9.9-42.2-44.1-1.5zm-275.2%20179-9.9-42.3%2033.3%2027%2038-24.6-17.4%2041.3%2033.4%2027-44.1-1.5-17.4%2041.3-9.8-42.2-44.1-1.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kn'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='kn-a'%3e%3cpath%20fill-opacity='.7'%20d='M151.7-.3h745.1v745H151.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kn-a)'%20transform='translate(-104.2%20.2)scale(.68714)'%3e%3cpath%20fill='%23ffe900'%20d='M-5.3%200h1073.5v744H-5.3z'/%3e%3cpath%20fill='%2335a100'%20d='m-5.8%200%201.2%20536.4L830.7-.4z'/%3e%3cpath%20fill='%23c70000'%20d='m1069.5%20744-1.9-557.7L225%20744.5l844.5-.4z'/%3e%3cpath%20fill='%23000001'%20d='m-5.3%20576.9.7%20167.9%20182.3-.3L1068%20147.6l-1-146L886.9%200z'/%3e%3cpath%20fill='%23fff'%20d='m818%20269-64.2-2.2-25.3%2060.2-14.3-61.5-64.2-2.2%2055.4-35.7L691%20166l48.5%2039.4%2055.3-35.9-25.4%2060.2zM417.5%20529.6l-64.3-2.3-25.2%2060.2-14.3-61.5-64.3-2.2%2055.4-35.8-14.4-61.4%2048.5%2039.4%2055.3-35.9-25.3%2060.1z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kp{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kp'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='kp-a'%3e%3cpath%20fill-opacity='.7'%20d='M5%20.1h682.6V512H5.1z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kp-a)'%20transform='translate(-4.8%20-.1)scale(.93768)'%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20d='M776%20511.5H-76V.5h852z'/%3e%3cpath%20fill='%233e5698'%20d='M776%20419H-76v92.5h852z'/%3e%3cpath%20fill='%23c60000'%20d='M776%20397.6H-76V114.4h852z'/%3e%3cpath%20fill='%233e5698'%20d='M776%20.6H-76V93h852z'/%3e%3cpath%20fill='%23fff'%20d='M328.5%20256c0%2063.5-53%20115-118.6%20115S91.3%20319.5%2091.3%20256s53-114.8%20118.6-114.8%20118.6%2051.4%20118.6%20114.9z'/%3e%3cpath%20fill='%23c40000'%20d='m175.8%20270.6-57-40.7%2071-.2%2022.7-66.4%2021.1%2066.1%2071-.4-57.9%2041.2%2021.3%2066.1-57-40.7-58%2041.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kp.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kp'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='kp-a'%3e%3cpath%20fill-opacity='.7'%20d='M92.2%207.8h593.6v485.5H92.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kp-a)'%20transform='matrix(.86254%200%200%201.0546%20-79.5%20-8.3)'%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='1.1'%20d='M991.8%20492.9H4.2V8.4h987.6z'/%3e%3cpath%20fill='%233e5698'%20d='M991.8%20405.2H4.2V493h987.6z'/%3e%3cpath%20fill='%23c60000'%20d='M991.8%20384.9H4.2V116.4h987.6z'/%3e%3cpath%20fill='%233e5698'%20d='M991.8%208.4H4.2V96h987.6z'/%3e%3cpath%20fill='%23fff'%20d='M473%20250.7c0%2060.1-61.5%20108.9-137.4%20108.9S198%20310.8%20198%20250.6c0-60.1%2061.6-108.9%20137.6-108.9S473%20190.5%20473%20250.7'/%3e%3cpath%20fill='%23c40000'%20d='m402.9%20326.8-66.1-38.6-67.1%2039%2026.3-62.8-66.1-38.5%2082.4-.3%2026.2-63%2024.5%2062.8%2082.4-.4-67.2%2039z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-kr'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='kr-a'%3e%3cpath%20fill-opacity='.7'%20d='M-95.8-.4h682.7v512H-95.8z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kr-a)'%20transform='translate(89.8%20.4)scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M-95.8-.4H587v512H-95.8Z'/%3e%3cg%20transform='rotate(-56.3%20361.6%20-101.3)scale(10.66667)'%3e%3cg%20id='kr-c'%3e%3cpath%20id='kr-b'%20fill='%23000001'%20d='M-6-26H6v2H-6Zm0%203H6v2H-6Zm0%203H6v2H-6Z'/%3e%3cuse%20xlink:href='%23kr-b'%20width='100%25'%20height='100%25'%20y='44'/%3e%3c/g%3e%3cpath%20stroke='%23fff'%20d='M0%2017v10'/%3e%3cpath%20fill='%23cd2e3a'%20d='M0-12a12%2012%200%200%201%200%2024Z'/%3e%3cpath%20fill='%230047a0'%20d='M0-12a12%2012%200%200%200%200%2024A6%206%200%200%200%200%200Z'/%3e%3ccircle%20cy='-6'%20r='6'%20fill='%23cd2e3a'/%3e%3c/g%3e%3cg%20transform='rotate(-123.7%20191.2%2062.2)scale(10.66667)'%3e%3cuse%20xlink:href='%23kr-c'%20width='100%25'%20height='100%25'/%3e%3cpath%20stroke='%23fff'%20d='M0-23.5v3M0%2017v3.5m0%203v3'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-kr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-kr'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%200h512v512H0Z'/%3e%3cg%20fill-rule='evenodd'%20transform='rotate(-56.3%20367.2%20-111.2)scale(9.375)'%3e%3cg%20id='kr-b'%3e%3cpath%20id='kr-a'%20fill='%23000001'%20d='M-6-26H6v2H-6Zm0%203H6v2H-6Zm0%203H6v2H-6Z'/%3e%3cuse%20xlink:href='%23kr-a'%20width='100%25'%20height='100%25'%20y='44'/%3e%3c/g%3e%3cpath%20stroke='%23fff'%20d='M0%2017v10'/%3e%3cpath%20fill='%23cd2e3a'%20d='M0-12a12%2012%200%200%201%200%2024Z'/%3e%3cpath%20fill='%230047a0'%20d='M0-12a12%2012%200%200%200%200%2024A6%206%200%200%200%200%200Z'/%3e%3ccircle%20cy='-6'%20r='6'%20fill='%23cd2e3a'/%3e%3c/g%3e%3cg%20fill-rule='evenodd'%20transform='rotate(-123.7%20196.5%2059.5)scale(9.375)'%3e%3cuse%20xlink:href='%23kr-b'%20width='100%25'%20height='100%25'/%3e%3cpath%20stroke='%23fff'%20d='M0-23.5v3M0%2017v3.5m0%203v3'/%3e%3c/g%3e%3c/svg%3e")}.fi-kw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kw'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='kw-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23kw-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M0%20170.6h1024v170.7H0z'/%3e%3cpath%20fill='%23f31830'%20d='M0%20341.3h1024V512H0z'/%3e%3cpath%20fill='%2300d941'%20d='M0%200h1024v170.7H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200v512l255.4-170.7.6-170.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-kw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-kw'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='kw-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h496v496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23kw-a)'%20transform='scale(1.0321)'%3e%3cpath%20fill='%23fff'%20d='M0%20165.3h992.1v165.4H0z'/%3e%3cpath%20fill='%23f31830'%20d='M0%20330.7h992.1v165.4H0z'/%3e%3cpath%20fill='%2300d941'%20d='M0%200h992.1v165.4H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200v496l247.5-165.3.5-165.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ky{background-image:url(/_astro/ky.Dpsu1myA.svg)}.fi-ky.fis{background-image:url(/_astro/ky.BqaZHuhf.svg)}.fi-kz{background-image:url(/_astro/kz.CwKXYZ8s.svg)}.fi-kz.fis{background-image:url(/_astro/kz.Dkyx6q-p.svg)}.fi-la{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-la'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='la-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23la-a)'%3e%3cpath%20fill='%23ce1126'%20d='M-40%200h720v480H-40z'/%3e%3cpath%20fill='%23002868'%20d='M-40%20119.3h720v241.4H-40z'/%3e%3cpath%20fill='%23fff'%20d='M423.4%20240a103.4%20103.4%200%201%201-206.8%200%20103.4%20103.4%200%201%201%20206.8%200'/%3e%3c/g%3e%3c/svg%3e")}.fi-la.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-la'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='la-a'%3e%3cpath%20fill-opacity='.7'%20d='M177.2%200h708.6v708.7H177.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23la-a)'%20transform='translate(-128)scale(.72249)'%3e%3cpath%20fill='%23ce1126'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%23002868'%20d='M0%20176h1063v356.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M684.2%20354.3a152.7%20152.7%200%201%201-305.4%200%20152.7%20152.7%200%200%201%20305.4%200'/%3e%3c/g%3e%3c/svg%3e")}.fi-lb{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lb'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='lb-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23lb-a)'%20transform='translate(80)scale(.9375)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23EE161F'%20d='M-128%20384h768v128h-768zm0-384h768v128h-768z'/%3e%3cpath%20fill='%23fff'%20d='M-128%20128h768v256h-768z'/%3e%3c/g%3e%3cpath%20fill='%2300A850'%20d='M252.1%20130c-7.8%2015.5-13%2015.5-26%2026-5.2%205.1-13%207.7-2.6%2013-10.5%205.1-15.7%207.7-20.9%2018.1l2.6%202.6s10-4.8%2010.4-2.6c1.8%202.1-13%2010-14.9%2011.3l-11%207c-13.1%2010.3-21%207.7-28.7%2023.3l26-2.6c5.2%2018.2-13%2020.8-26%2028.6l-20.9%2013c5.3%2018.2%2020.9%207.8%2033.9%202.6l2.6%202.6v5.2l-26%2013s-30.8%2017.6-31.3%2018.2c-.2%201%200%205.2%200%205.2%2010.4%202.6%2026%205.2%2036.5%200%2013-5.2%2015.6-10.4%2031.2-10.4a101%20101%200%200%201-52%2020.8v10.4c15.6%200%2026%200%2039-2.6l33.8-10.4c7.8%200%2015.7%207.8%2013%2015.6-7.7%2028.6-39%2023.4-49.4%2046.8L213%20369c10.4-5.2%2020.8-10.3%2033.8-7.7%2015.6%205.2%2015.6%2015.6%2036.4%2020.8l-5.2-13c5.2%202.6%2010.4%202.6%2015.7%205.2%2013%205.2%2015.6%2010.4%2031.2%207.8-13-15.6-15.6-13-26-23.4-10.4-15.6-15.7-39%200-41.6l18.2%205.2c18.2%202.6%2018.2-2.6%2044.2%207.8%2015.7%205.2%2020.9%2013%2039%207.8-7.7-18.2-36.3-31.2-54.6-36.4%2020.9-13%2015.6%205.2%2044.3-2.6v-5.2C369.3%20278%20361.4%20265%20332.8%20265l44.3-5.2v-5.2s-43.7-11.4-44.7-11.9c.3-1.3%201.4-3.3%204.3-4.5%208.3%205.4%2033.3%204.8%2034.8%204.7-.8-6.4-12.7-11.7-23-16.9%200%200-44.7-27.5-44.9-29.9.9-7%2018.3%201.1%2037%206.5-5.2-10.4-15.6-15.6-26-18.2l15.6-2.6c-10.4-23.4-36.4-20.8-52-31.2-10.5-7.8-10.5-13-26.1-20.7z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='3.2'%20d='M224%20303c1.9-6.1%204.4-11.6-7.2-16.9s5.8%2021.1%207.2%2017zm13.7-12.3c-2.3.3-3.6%208.8%201.1%2011.2%205.2.8%201-11.1-1.1-11.2m13.5-1c-2.4.8-2.5%2012.8%206%2010.6%208.6-2.1%200-11.5-6-10.5zM267%20259c1.8-3-.1-15-7.4-10s5%2010.8%207.4%2010m-16-10c2.3-.9%202.5-8.3-4-6.3-6.3%201.9%202.3%207.8%204%206.3m-14.4%202.9s-4.5-6.2-8-4.9c-4.3%204.2%208.3%205%208%204.9M187%20271.7c1.9.2%2016-2.3%2020.9-7.8s-25.1%202.3-25.1%202.4%202.8%204.9%204.2%205.4m141.1-35c.7-1.3-7.5-7.1-12.4-4.8-1.3%204.3%2012.4%205.7%2012.4%204.8m-27.8-14c1.6-2.2-3.5-11.3-13.7-6.2-10.2%205%2010.7%209.8%2013.7%206.3zm-32.1-5.3s2.5-8.2%208.6-6.6c7%205.3-8.3%206.9-8.6%206.6m-6-6.2c-1-2.3-7.3-1-14.6%203.9-7.4%204.7%2016.8%201.4%2014.6-4zm18.7-22.1s6.5-3%208.5%200c2.7%204.3-8.6%200-8.5%200m-5.5-2.9c-1.3-2.6-8.5-2.9-8.3%201-1.2%203%209.4%202.4%208.3-1m-17.2%200c-.7-1.5-11%200-14%206.2%205%202.4%2016.3-2.3%2014-6.2m-22%206.3s-13.4%208.3-14.3%2014.3c.4%205.2%2016.8-9.4%2016.8-9.4s1.4-5.8-2.4-4.9zm-14.9-7.5c.4-1.7%206.7-5.6%207.2-5.3.5%201.7-5.1%206.3-7.2%205.3m4.3%2031.6c.3-2.5-16-2.3-9.9%205.2%205.2%206.3%2011-4.1%209.9-5.2m-15%2010.7c-.8-1.6-2-6-4.2-6.4-1.9%200-11.7%202-12.5%203.6-.4%201.3%204.1%209.4%205.6%209.6%201.8.7%2010.9-6%2011.2-6.8zm88.4%2055.2c.5-1.8%2017.3-7.5%2023-2%206.8%209.3-23.4%205-23%202m46%2010.9c3.7-6.2-11.3-13.6-17.6-6.5%202.2%208.5%2014.6%2011.6%2017.6%206.5'/%3e%3c/g%3e%3c/svg%3e")}.fi-lb.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lb'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='lb-a'%3e%3cpath%20fill-opacity='.7'%20d='M124%200h496v496H124z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23lb-a)'%20transform='translate(-128)scale(1.0321)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23EE161F'%20d='M0%20372h744v124H0zM0%200h744v124H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20124h744v248H0z'/%3e%3c/g%3e%3cpath%20fill='%2300A850'%20d='M368.3%20125.9c-7.6%2015.1-12.7%2015.1-25.3%2025.2-5%205-12.6%207.5-2.5%2012.6-10%205-15.1%207.5-20.2%2017.6l2.6%202.5s9.5-4.7%2010-2.5c1.7%202-12.6%209.7-14.4%2011s-10.8%206.6-10.8%206.6c-12.6%2010.1-20.2%207.6-27.7%2022.7l25.2-2.5c5%2017.6-12.6%2020.1-25.2%2027.7l-20.2%2012.6c5%2017.6%2020.2%207.5%2032.8%202.5l2.5%202.5v5L270%20282s-29.8%2017-30.3%2017.6c-.2%201%200%205%200%205%2010.1%202.6%2025.2%205.1%2035.3%200%2012.6-5%2015.2-10%2030.3-10a97%2097%200%200%201-50.5%2020.2v10c15.2%200%2025.3%200%2037.9-2.5l32.8-10c7.5%200%2015.1%207.5%2012.6%2015-7.6%2027.7-37.8%2022.7-48%2045.4l40.4-15.1c10.1-5%2020.2-10.1%2032.8-7.6%2015.1%205%2015.1%2015.1%2035.3%2020.1l-5-12.5c5%202.5%2010%202.5%2015.1%205%2012.6%205%2015.1%2010%2030.3%207.5-12.6-15-15.2-12.5-25.2-22.6-10.1-15.1-15.2-37.8%200-40.3l17.6%205c17.7%202.6%2017.7-2.5%2042.9%207.6%2015.1%205%2020.2%2012.6%2037.8%207.5-7.5-17.6-35.3-30.2-53-35.2%2020.2-12.6%2015.2%205%2043-2.5v-5c-20.2-15.2-27.8-27.8-55.6-27.8l43-5v-5S447%20235.7%20446%20235.3a6%206%200%200%201%204.1-4.4c8%205.2%2032.3%204.6%2033.7%204.5-.7-6.2-12.2-11.3-22.3-16.3%200%200-43.2-26.7-43.4-29%20.8-6.8%2017.7%201%2035.8%206.3-5-10-15.1-15.1-25.2-17.6l15.1-2.5c-10-22.7-35.3-20.2-50.4-30.3-10.1-7.5-10.1-12.6-25.2-20.1z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='3.1'%20d='M341%20293.6c1.9-6%204.3-11.3-6.9-16.4s5.6%2020.5%207%2016.4zm13.3-12c-2.3.3-3.4%208.6%201%2010.8%205.1.8%201-10.7-1-10.8m13.1-.9c-2.3.7-2.4%2012.4%205.8%2010.3%208.3-2%200-11.2-5.8-10.2zm15.3-29.8c1.8-2.8-.1-14.5-7.2-9.6s5%2010.4%207.2%209.6m-15.5-9.7c2.2-.8%202.4-8-3.8-6-6.2%201.8%202.2%207.5%203.8%206m-14%202.9s-4.3-6-7.7-4.8c-4.2%204%208%204.9%207.7%204.8m-48%2019.1c1.8.2%2015.5-2.2%2020.2-7.5%204.8-5.3-24.3%202.2-24.3%202.3s2.7%204.7%204%205.2zm136.7-33.8c.7-1.3-7.3-7-12-4.7-1.2%204.2%2012%205.5%2012%204.7M415%20215.8c1.5-2.1-3.5-11-13.3-6s10.3%209.5%2013.3%206m-31.1-5.2s2.4-8%208.4-6.4c6.6%205.1-8.1%206.7-8.4%206.4m-5.8-6c-1-2.2-7.1-.9-14.2%203.8-7.1%204.6%2016.3%201.3%2014.2-3.8m18-21.4s6.4-2.9%208.3%200c2.6%204.2-8.3%200-8.2%200zm-5.2-2.8c-1.3-2.5-8.3-2.8-8.1%201-1.2%202.8%209%202.3%208-1zm-16.7%200c-.7-1.5-10.6%200-13.6%206%204.8%202.3%2015.8-2.2%2013.6-6m-21.3%206.1s-13%208-13.9%2013.9c.4%205%2016.3-9.2%2016.3-9.2s1.4-5.6-2.4-4.7m-14.5-7.3c.4-1.6%206.5-5.4%207-5%20.5%201.6-5%206-7%205m4.2%2030.6c.3-2.3-15.6-2.1-9.6%205.1%205%206.1%2010.7-4%209.6-5zM328%20220.3c-.8-1.6-2-5.9-4.2-6.3-1.7%200-11.3%202-12%203.5-.4%201.3%204%209.2%205.4%209.4%201.7.6%2010.5-5.8%2010.8-6.6m85.6%2053.4c.5-1.7%2016.7-7.3%2022.3-2%206.6%209-22.7%204.8-22.3%202m44.6%2010.6c3.5-6-11-13.2-17-6.3%202%208.2%2014.1%2011.2%2017%206.3'/%3e%3c/g%3e%3c/svg%3e")}.fi-lc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lc'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2365cfff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='m318.9%2042%20162.7%20395.3-322.6.9z'/%3e%3cpath%20fill='%23000001'%20d='m319%2096.5%20140.8%20340-279%20.8z'/%3e%3cpath%20fill='%23ffce00'%20d='m318.9%20240.1%20162.7%20197.6-322.6.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-lc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lc'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2365cfff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='m254.8%2044.8%20173.5%20421.6-344%201L254.7%2044.8z'/%3e%3cpath%20fill='%23000001'%20d='m255%20103%20150%20362.6-297.5.8z'/%3e%3cpath%20fill='%23ffce00'%20d='m254.8%20256.1%20173.5%20210.8-344%20.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-li{background-image:url(/_astro/li.CHdhvNcr.svg)}.fi-li.fis{background-image:url(/_astro/li.CMlf0YU8.svg)}.fi-lk{background-image:url(/_astro/lk.DUkgV9Tq.svg)}.fi-lk.fis{background-image:url(/_astro/lk.DSQoDxn_.svg)}.fi-lr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lr'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='lr-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23lr-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M0%200h767.9v512H0z'/%3e%3cpath%20fill='%23006'%20d='M0%200h232.7v232.8H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%20464.9h767.9V512H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%20465.4h767.9V512H0zm0-92.9h767.9v46.2H0zm0-93.2h766V326H0zM232.7%200h535.1v46.5H232.7zm0%20186h535.1v46.8H232.7zm0-92.7h535.1v46.5H232.7z'/%3e%3cpath%20fill='%23fff'%20d='m166.3%20177.5-50.7-31-50.4%2031.3%2018.7-50.9-50.3-31.4%2062.3-.4%2019.3-50.7L135%2095h62.3l-50.1%2031.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-lr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lr'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='lr-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23lr-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h767.9v512H0z'/%3e%3cpath%20fill='%23006'%20d='M0%200h232.7v232.8H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%20464.9h767.9V512H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%20465.4h767.9V512H0zm0-92.9h767.9v46.2H0zm0-93.2h766V326H0zM232.7%200h535.1v46.5H232.7zm0%20186h535.1v46.8H232.7zm0-92.7h535.1v46.5H232.7z'/%3e%3cpath%20fill='%23fff'%20d='m166.3%20177.5-50.7-31-50.4%2031.3%2018.7-50.9-50.3-31.4%2062.3-.4%2019.3-50.7L135%2095h62.3l-50.1%2031.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ls{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ls'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23009543'%20d='M0%20336h640v144H0z'/%3e%3cpath%20fill='%2300209f'%20d='M0%200h640v144H0z'/%3e%3cpath%20stroke='%23000'%20stroke-width='1.6'%20d='M319.6%20153c-2.7%200-5.4%203-5.4%203l.3%2032.4-10.3%2010.7h8.3v18.5l-49%2066-7.2-2.6-12.7%2027s31.3%2019.6%2076.7%2019c49.8-.5%2076.9-19.9%2076.9-19.9l-13-26.6-6.5%202.8-49.6-65.6v-19.1h8.2L325.1%20188v-32.2s-2.7-3-5.5-2.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='8'%20d='M336.7%20230.4h-33.9s-12.2-25.9-10.3-44c2-18.4%2012.6-27.1%2026.6-27.3%2016.6-.1%2025.2%208.1%2027.8%2026.6%202.6%2018.3-10.2%2044.7-10.2%2044.7z'/%3e%3cpath%20fill='%23fff'%20d='M260.5%20292.1c-.6.7-4.7%208.9-4.7%208.9l7-1.5zm4%2010.5-7.4%202.4%208.9%203.5zm3.3-10.3%203.7%2010.9%209-2.6-2.3-5.2zm5.8%2014.8%201.2%204.4%2012%203-4.8-10.2zm13.2-9.3%204.3%2010.2%209-3.5-3-4.5zm6%2013.9%201.4%203.8%2014%202-5.9-9.2-9.6%203.4zm13.4-11%205.2%209.1%2013-4.8-1.4-3.5-16.8-.7zm7.6%2012.4%202.7%204.8%2016.2-.5-6-9-13%204.7zm17.1-12%204.4%207.6%2010.4-5-2.8-4zm17%205.8-10.3%205.1%202.7%204.5%2013.8-2.2zm3.3-8%205.3%206.7%208.7-6.9-3-3zm15.9%203.5-8.3%206.3%202.2%203.9%2011.4-3zm11.4-13%202%202.9-5.7%208.5-5.9-7.6zm3.9%207.3%203.5%207-7%202.4-.6-3.3%204-6z'/%3e%3c/svg%3e")}.fi-ls.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ls'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23009543'%20d='M0%20358.4h512V512H0z'/%3e%3cpath%20fill='%2300209f'%20d='M0%200h512v153.6H0z'/%3e%3cpath%20stroke='%23000'%20stroke-width='1.7'%20d='M257.6%20163.1c-3%200-5.8%203.3-5.8%203.3l.3%2034.5-11%2011.5h9l-.2%2019.7-52.2%2070.4-7.7-2.7-13.5%2028.8s33.4%2020.9%2081.8%2020.3c53.2-.7%2082-21.3%2082-21.3l-13.9-28.4-6.8%203-53-70v-20.4h8.8l-12-11.3.1-34.4s-3-3-5.9-3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='8.5'%20d='M275.8%20245.8h-36.1s-13.1-27.6-11-47c2.2-19.6%2013.4-28.9%2028.4-29%2017.6-.3%2026.8%208.6%2029.6%2028.3%202.8%2019.5-10.9%2047.7-10.9%2047.7z'/%3e%3cpath%20fill='%23fff'%20d='M194.5%20311.6c-.6.8-5%209.4-5%209.4l7.5-1.6zm4.3%2011.2-7.9%202.6%209.5%203.7zm3.6-11%203.9%2011.6%209.6-2.8-2.5-5.5zm6%2015.7%201.4%204.7%2012.8%203.2-5-10.8-9.1%203zm14.2-9.8%204.5%2010.8%209.7-3.7-3.2-4.8zm6.3%2014.7%201.6%204.2%2015%202.1-6.4-9.8zm14.4-11.6%205.5%209.7%2014-5.1-1.6-3.8-18-.8zm8%2013.2%203%205.1%2017.3-.6-6.5-9.6zm18.3-12.8%204.8%208%2011-5.2-3-4.3zm18.1%206.1-11%205.5%203%204.8%2014.7-2.4zm3.6-8.4%205.7%207%209.2-7.2-3.1-3.4zm16.9%203.7-8.9%206.7%202.4%204.1%2012.2-3.1zm12.2-14%202.2%203.2-6.1%209-6.3-8zm4.1%207.9%203.8%207.5-7.5%202.5-.6-3.5z'/%3e%3c/svg%3e")}.fi-lt{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lt'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20transform='scale(.64143%20.96773)'%3e%3crect%20width='1063'%20height='708.7'%20fill='%23006a44'%20rx='0'%20ry='0'%20transform='scale(.93865%20.69686)'/%3e%3crect%20width='1063'%20height='236.2'%20y='475.6'%20fill='%23c1272d'%20rx='0'%20ry='0'%20transform='scale(.93865%20.69686)'/%3e%3cpath%20fill='%23fdb913'%20d='M0%200h997.8v164.6H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-lt.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lt'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20transform='scale(.51314%201.0322)'%3e%3crect%20width='1063'%20height='708.7'%20fill='%23006a44'%20rx='0'%20ry='0'%20transform='scale(.93865%20.69686)'/%3e%3crect%20width='1063'%20height='236.2'%20y='475.6'%20fill='%23c1272d'%20rx='0'%20ry='0'%20transform='scale(.93865%20.69686)'/%3e%3cpath%20fill='%23fdb913'%20d='M0%200h997.8v164.6H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-lu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lu'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ed2939'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%2300a1de'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-lu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lu'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ed2939'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%2300a1de'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-lv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lv'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23981e32'%20d='M0%200h640v192H0zm0%20288h640v192H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-lv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-lv'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23981e32'%20d='M0%200h512v204.8H0zm0%20307.2h512V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ly{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ly'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='ly-a'%3e%3cpath%20d='M166.7-20h666.6v500H166.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ly-a)'%20transform='matrix(.96%200%200%20.96%20-160%2019.2)'%3e%3cpath%20fill='%23239e46'%20d='M0-20h1000v500H0z'/%3e%3cpath%20fill='%23000001'%20d='M0-20h1000v375H0z'/%3e%3cpath%20fill='%23e70013'%20d='M0-20h1000v125H0z'/%3e%3cpath%20fill='%23fff'%20d='M544.2%20185.8a54.3%2054.3%200%201%200%200%2088.4%2062.5%2062.5%200%201%201%200-88.4M530.4%20230l84.1-27.3-52%2071.5v-88.4l52%2071.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ly.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ly'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='ly-a'%3e%3cpath%20d='M250%2012h500v500H250z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ly-a)'%20transform='translate(-256%20-12.3)scale(1.024)'%3e%3cpath%20fill='%23239e46'%20d='M0%2012h1000v500H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%2012h1000v375H0z'/%3e%3cpath%20fill='%23e70013'%20d='M0%2012h1000v125H0z'/%3e%3cpath%20fill='%23fff'%20d='M544.2%20217.8a54.3%2054.3%200%201%200%200%2088.4%2062.5%2062.5%200%201%201%200-88.4M530.4%20262l84.1-27.3-52%2071.5v-88.4l52%2071.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ma{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ma'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23c1272d'%20d='M640%200H0v480h640z'/%3e%3cpath%20fill='none'%20stroke='%23006233'%20stroke-width='11.7'%20d='M320%20179.4%20284.4%20289l93.2-67.6H262.4l93.2%2067.6z'/%3e%3c/svg%3e")}.fi-ma.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ma'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23c1272d'%20d='M512%200H0v512h512z'/%3e%3cpath%20fill='none'%20stroke='%23006233'%20stroke-width='12.5'%20d='m256%20191.4-38%20116.8%2099.4-72.2H194.6l99.3%2072.2z'/%3e%3c/svg%3e")}.fi-mc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mc'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23f31830'%20d='M0%200h640v240H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20240h640v240H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mc'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23f31830'%20d='M0%200h512v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20256h512v256H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-md{background-image:url(/_astro/md.DRlxvNwm.svg)}.fi-md.fis{background-image:url(/_astro/md.DTi94M3M.svg)}.fi-me{background-image:url(/_astro/me.Cv4Gwqah.svg)}.fi-me.fis{background-image:url(/_astro/me.CfGorN3b.svg)}.fi-mf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mf'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-mf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mf'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-mg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mg'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fc3d32'%20d='M213.3%200H640v240H213.3z'/%3e%3cpath%20fill='%23007e3a'%20d='M213.3%20240H640v240H213.3z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h213.3v480H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mg'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fc3d32'%20d='M170.7%200H512v256H170.7z'/%3e%3cpath%20fill='%23007e3a'%20d='M170.7%20256H512v256H170.7z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h170.7v512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mh{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mh'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%233b5aa3'%20d='M0%200h639.9v480H0z'/%3e%3cpath%20fill='%23e2ae57'%20d='M0%20467%20639.9%200v87L0%20480z'/%3e%3cpath%20fill='%23fff'%20d='M22.4%20480%20640%20179.2l-.1-95.5L0%20480zm153-464.8L169%20118l-27-65.6%2010.4%2069.8-41.9-56.4%2027.5%2064.3-55-42.6%2042.8%2053.6-62.1-27.6%2054.4%2041.2-67.7-9%2064%2025.4L14%20180.3l100.6%206.7-63.7%2026.2%2067-9-54.3%2040%2063-27.6-43%2054%2054.6-41.3-27%2062.9%2043.6-54.7-11.8%2068.1%2027.5-63.7%206.2%20100.7%209.7-100.4%2023.7%2064-9-69%2043.4%2054.8-28.6-64%2054.6%2044-43.4-54.9%2064.9%2027-57.4-41.9%2069.9%2011.8-67-25.7%20104.1-6.5-104-9.7%2068.5-22.8-71%209%2058.6-41-66%2026.5%2045.6-55.3-55.6%2043.4%2026.7-66.4-43.1%2056.4%209.3-70.4-25.7%2066.5-9.6-102.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mh.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mh'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%233b5aa3'%20d='M0%200h511.9v512H0z'/%3e%3cpath%20fill='%23fff'%20d='m139%201.2-5.3%2088-23.2-56.1%209%2059.7-35.9-48.2%2023.5%2055-47-36.5L96.7%20109%2043.5%2085.4l46.6%2035.3-58-7.7L87%20134.7l-86%207.9%2086%205.7-54.5%2022.4L90%20163l-46.4%2034.2%2053.8-23.6-36.7%2046.2%2046.7-35.4-23.4%2054%2037.4-46.8-10%2058.3%2023.4-54.5%205.4%2086.1%208.2-85.9%2020.3%2054.9-7.7-59.1%2037.2%2046.8-24.5-54.7%2046.7%2037.6-37-47%2055.4%2023.1-49.1-35.8%2059.8%2010-57.3-22%2089-5.5-89-8.3L251%20116l-60.7%207.6%2050.2-35-56.6%2022.7%2039-47.3-47.5%2037.1%2023-56.8-37%2048.3%208-60.3-22%2056.9-8.2-88z'/%3e%3cpath%20fill='%23e2ae57'%20d='M0%20498.2%20512%200v92.7L0%20512z'/%3e%3cpath%20fill='%23fff'%20d='m18%20512%20494-320.8-.1-101.9L-.1%20512h18z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mk'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23d20000'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23ffe600'%20d='M0%200h96l224%20231.4L544%200h96L0%20480h96l224-231.4L544%20480h96zm640%20192v96L0%20192v96zM280%200l40%20205.7L360%200zm0%20480%2040-205.7L360%20480z'/%3e%3ccircle%20cx='320'%20cy='240'%20r='77.1'%20fill='%23ffe600'%20stroke='%23d20000'%20stroke-width='17.1'/%3e%3c/svg%3e")}.fi-mk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mk'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23d20000'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23ffe600'%20d='M0%200h86.8L256%20246.9%20425.2%200H512L0%20512h86.8L256%20265.1%20425.2%20512H512zm512%20204.8v102.4L0%20204.8v102.4zM204.8%200%20256%20219.4%20307.2%200zm0%20512L256%20292.6%20307.2%20512z'/%3e%3ccircle%20cx='256'%20cy='256'%20r='82.3'%20fill='%23ffe600'%20stroke='%23d20000'%20stroke-width='18.3'/%3e%3c/svg%3e")}.fi-ml{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ml'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='red'%20d='M425.8%200H640v480H425.7z'/%3e%3cpath%20fill='%23009a00'%20d='M0%200h212.9v480H0z'/%3e%3cpath%20fill='%23ff0'%20d='M212.9%200h214v480h-214z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ml.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ml'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='red'%20d='M340.6%200H512v512H340.6z'/%3e%3cpath%20fill='%23009a00'%20d='M0%200h170.3v512H0z'/%3e%3cpath%20fill='%23ff0'%20d='M170.3%200h171.2v512H170.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-mm'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fecb00'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%2334b233'%20d='M0%20160h640v320H0z'/%3e%3cpath%20fill='%23ea2839'%20d='M0%20320h640v160H0z'/%3e%3cg%20transform='translate(320%20256.9)scale(176.87999)'%3e%3cpath%20id='mm-a'%20fill='%23fff'%20d='m0-1%20.3%201h-.6z'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3c/g%3e%3c/svg%3e")}.fi-mm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-mm'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fecb00'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2334b233'%20d='M0%20170.7h512V512H0z'/%3e%3cpath%20fill='%23ea2839'%20d='M0%20341.3h512V512H0z'/%3e%3cpath%20id='mm-a'%20fill='%23fff'%20stroke-width='188.7'%20d='M312.6%20274H199.4L256%2085.3Z'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(-144%20256%20274)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(-72%20256%20274)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(72%20256%20274)'/%3e%3cuse%20xlink:href='%23mm-a'%20width='100%25'%20height='100%25'%20transform='rotate(144%20256%20274)'/%3e%3c/svg%3e")}.fi-mn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='%23ffd900'%20id='flag-icons-mn'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23da2032'%20d='M0%200h640v480H0Z'/%3e%3cpath%20fill='%230066b3'%20d='M213.3%200h213.4v480H213.3Z'/%3e%3ccircle%20cx='106.7'%20cy='181.8'%20r='40'/%3e%3ccircle%20cx='106.7'%20cy='163.6'%20r='43.6'%20fill='%23da2032'/%3e%3ccircle%20cx='106.7'%20cy='170.9'%20r='29.1'/%3e%3cpath%20d='M109.7%2076.4a9%209%200%200%200-5.2%207.5c-.2%202.5.9%205.3%201%207.7%200%204.2-4.3%205.6-4.3%2011.5%200%202%201.9%204.3%201.9%209.6-.4%202.8-2%203.5-3.7%203.7a3.6%203.6%200%200%201-3.6-3.7%204%204%200%200%201%201-2.5l.4-.3c.8-.9%202-1.2%202-3.4%200-1.1-.8-2.2-1.5-4.2s-.2-5.2%201.4-7.1c-2.6%201-4.1%203.4-5%205.6-.8%202.7%200%204.2-1.2%206.5-.7%201.4-1.5%202-2.3%203.2-1%201.4-2%204.4-2%205.9a18.2%2018.2%200%200%200%2036.3%200c0-1.5-1.1-4.5-2-5.9-.9-1.2-1.7-1.8-2.4-3.2-1.2-2.3-.4-3.8-1.3-6.5-.8-2.2-2.3-4.6-4.9-5.6%201.6%202%202%205.2%201.4%207.1-.7%202-1.4%203-1.4%204.2%200%202.2%201.1%202.5%202%203.4l.3.3a4%204%200%200%201%201%202.5%203.6%203.6%200%200%201-3.6%203.7c-2-.3-3.5-1.2-3.7-3.7%200-7%203-7.4%203-12.6%200-7.4-6.6-10.9-6.6-16.3%200-1.8.4-5%203-7.4M26.7%20229H63v174.5H26.7Zm123.6%200h36.4v174.5h-36.4zm-80%200H143l-36.3%2021.8Zm0%2029H143v14.6H70.3Zm0%20101.9H143v14.6H70.3Zm0%2021.8H143l-36.3%2021.8Z'/%3e%3ccircle%20cx='106.7'%20cy='316.4'%20r='36.4'/%3e%3cg%20fill='%23da2032'%20transform='translate(-38.8%2032.7)scale(.72727)'%3e%3ccircle%20cx='200'%20cy='363.5'%20r='10'/%3e%3ccircle%20cx='200'%20cy='416.5'%20r='10'/%3e%3cpath%20d='M200%20334a29.5%2029.5%200%200%201%200%2059%2023.5%2023.5%200%200%200%200%2047v6a29.5%2029.5%200%200%201%200-59%2023.5%2023.5%200%200%200%200-47z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='%23ffd900'%20id='flag-icons-mn'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23da2032'%20d='M0%200h512v512H0Z'/%3e%3cpath%20fill='%230066b3'%20d='M170.7%200h170.6v512H170.7Z'/%3e%3ccircle%20cx='85.3'%20cy='196.6'%20r='35'/%3e%3ccircle%20cx='85.3'%20cy='180.7'%20r='38.2'%20fill='%23da2032'/%3e%3ccircle%20cx='85.3'%20cy='187'%20r='25.5'/%3e%3cpath%20d='M88%20104.3a8%208%200%200%200-4.6%206.6c-.2%202.2.8%204.6.9%206.7%200%203.7-3.8%204.9-3.8%2010.1%200%201.8%201.7%203.8%201.7%208.4-.3%202.5-1.7%203-3.2%203.2a3%203%200%200%201-3.2-3.2%203%203%200%200%201%20.9-2.2l.3-.3c.7-.7%201.7-1%201.7-3%200-1-.6-1.8-1.2-3.6a7%207%200%200%201%201.2-6.2c-2.2.8-3.6%203-4.3%204.9-.7%202.3-.1%203.7-1.1%205.7-.6%201.2-1.4%201.7-2%202.8-.9%201.2-1.8%203.8-1.8%205.1a16%2016%200%200%200%2031.8%200c0-1.3-1-4-1.8-5.1-.7-1-1.5-1.6-2-2.8-1-2-.4-3.4-1.2-5.7-.7-2-2-4-4.3-5a7%207%200%200%201%201.3%206.3c-.7%201.8-1.3%202.7-1.3%203.7%200%201.9%201%202.2%201.7%203l.3.2a3%203%200%200%201%201%202.2%203%203%200%200%201-3.3%203.2q-2.7-.1-3.2-3.2c0-6.1%202.7-6.5%202.7-11%200-6.5-5.8-9.6-5.8-14.3%200-1.6.3-4.3%202.6-6.5M15.3%20237.9h31.9v152.8H15.3Zm108.2%200h31.8v152.8h-31.8zm-70%200h63.7L85.3%20257Zm0%2025.5h63.7V276H53.5Zm0%2089h63.7v12.8H53.5Zm0%2019.2h63.7l-31.9%2019Z'/%3e%3ccircle%20cx='85.3'%20cy='314.3'%20r='31.8'/%3e%3cg%20fill='%23da2032'%20transform='translate(-42%2066.1)scale(.63636)'%3e%3ccircle%20cx='200'%20cy='363.5'%20r='10'/%3e%3ccircle%20cx='200'%20cy='416.5'%20r='10'/%3e%3cpath%20d='M200%20334a29.5%2029.5%200%200%201%200%2059%2023.5%2023.5%200%200%200%200%2047v6a29.5%2029.5%200%200%201%200-59%2023.5%2023.5%200%200%200%200-47z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mo{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-mo'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300785e'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fbd116'%20d='m295%20108.7%2040.5%2029.5L320%2090.5l-15.5%2047.7%2040.6-29.5z'/%3e%3cg%20id='mo-a'%3e%3cpath%20fill='%23fff'%20d='M320%20331.6H217.5l-3.8-4H320a2%202%200%200%201%201.4%202q0%201.4-1.4%202m0-31.3a13%2013%200%200%200%201.2-7.6%2012%2012%200%200%200-1.2-3.8%2082%2082%200%200%201-32.5%2019%2081%2081%200%200%201-23.5%203.5h-63.1l5.8%208h61c20%200%2038.2-7.2%2052.3-19.1m-109.6-24.7a32%2032%200%200%201-9.7%202%2081%2081%200%200%200%2060.8%2027.5%2081%2081%200%200%200%2058.5-25%20441%20441%200%200%200%204.5-58.8%20441%20441%200%200%200-4.5-67.7c-6.6%206-19%2018.7-24.8%2038.3A81%2081%200%200%200%20292%20215a81%2081%200%200%200%2013.7%2045%2081%2081%200%200%201-17-49.5q.1-18.8%207.8-34.7a33%2033%200%200%201-7.5-13%2081%2081%200%200%200-10.5%2040c0%2018%205.9%2034.7%2015.9%2048.1a95%2095%200%200%200-73.4-29.4%2033%2033%200%200%201%206.8%208.9%2095%2095%200%200%201%2068.6%2029.4%2095%2095%200%200%200-61-22.2%2095%2095%200%200%200-36.7%207.3%2081%2081%200%200%200%2082.6%2052.2q-7%201.3-14.4%201.3a81%2081%200%200%201-56.4-22.8zM320%20364.4h-53.1a144%20144%200%200%200%2053.1%2010.1%2011%2011%200%200%200%201.3-5%2011%2011%200%200%200-1.3-5.1m0-24.5h-93.6l7.8%206.2H320a5%205%200%200%200%201.3-3.1%204%204%200%200%200-1.3-3.1m0%2012.5h-76.7a144%20144%200%200%200%2014.4%208H320a8%208%200%200%200%201.2-4.2%208%208%200%200%200-1.2-3.8'/%3e%3cpath%20fill='%23fbd116'%20d='m200.5%20174.8%2025.4%2023.6-6.7-34-14.6%2031.4%2030.3-16.8zm36.9-32%2034.7.6-27.7-21%2010.1%2033.3%2011.3-32.9z'/%3e%3c/g%3e%3cuse%20xlink:href='%23mo-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3c/svg%3e")}.fi-mo.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-mo'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300785e'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fbd116'%20d='M272.5%20147.4%20256%2096.5l-16.5%2051%2043.3-31.5h-53.6z'/%3e%3cg%20id='mo-a'%3e%3cpath%20fill='%23fff'%20d='M256%20353.7H146.7l-4-4.2H256a2%202%200%200%201%201.5%202q0%201.6-1.5%202.2m0-33.4c.6-1.3%201.9-4.3%201.3-8a13%2013%200%200%200-1.3-4.1%2087%2087%200%200%201-34.7%2020.2%2086%2086%200%200%201-25%203.7h-67.4l6.3%208.6h65a86%2086%200%200%200%2055.8-20.4M139.1%20294a34%2034%200%200%201-10.3%202.2%2086%2086%200%200%200%2064.8%2029.3%2086%2086%200%200%200%2062.4-26.6%20470%20470%200%200%200%204.8-62.9%20470%20470%200%200%200-4.8-72.2c-7%206.3-20.2%2020-26.4%2040.9a87%2087%200%200%200-3.6%2024.6%2086%2086%200%200%200%2014.6%2048.1%2086%2086%200%200%201-18-52.9%2086%2086%200%200%201%208.2-37%2035%2035%200%200%201-8-13.8%2086%2086%200%200%200-11.2%2042.6%2086%2086%200%200%200%2017%2051.4%20101%20101%200%200%200-78.3-31.5%2035%2035%200%200%201%207.2%209.5%20101%20101%200%200%201%2073.3%2031.4%20101%20101%200%200%200-65.2-23.6q-20.9%200-39%207.8a87%2087%200%200%200%2088%2055.6%2087%2087%200%200%201-15.4%201.4%2086%2086%200%200%201-60.1-24.3M256%20388.7h-56.6a153%20153%200%200%200%2056.6%2010.8%2012%2012%200%200%200%201.3-5.3%2012%2012%200%200%200-1.3-5.5m0-26.2h-99.9l8.4%206.7H256a5%205%200%200%200%201.4-3.3c0-2-1.2-3.1-1.4-3.4m0%2013.4h-81.8a153%20153%200%200%200%2015.4%208.5H256a8%208%200%200%200%201.2-4.5%208%208%200%200%200-1.2-4'/%3e%3cpath%20fill='%23fbd116'%20d='m155.6%20211.7-7-36.4-15.7%2033.6%2032.4-18-36.8-4.5zm49.3-58.8-29.6-22.3%2010.8%2035.4%2012.1-35-30.3%2021.3z'/%3e%3c/g%3e%3cuse%20xlink:href='%23mo-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3c/svg%3e")}.fi-mp{background-image:url(/_astro/mp.CrOApEqW.svg)}.fi-mp.fis{background-image:url(/_astro/mp.CuaQmCLf.svg)}.fi-mq{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mq'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23231f1e'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%2300a650'%20d='M0%200h640v240H0z'/%3e%3cpath%20fill='%23ef1923'%20d='m0%200%20320%20240L0%20480z'/%3e%3c/svg%3e")}.fi-mq.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mq'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23231f1e'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2300a650'%20d='M0%200h512v256H0z'/%3e%3cpath%20fill='%23ef1923'%20d='M256%20256%200%20512V0z'/%3e%3c/svg%3e")}.fi-mr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mr'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23cd2a3e'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23006233'%20d='M0%2072h640v336H0z'/%3e%3cpath%20fill='%23ffc400'%20d='M470%20154.6a150%20150%200%200%201-300%200%20155%20155%200%200%200-5%2039.2%20155%20155%200%201%200%20310%200%20154%20154%200%200%200-5-39.2'%20class='mr-st1'/%3e%3cpath%20fill='%23ffc400'%20d='m320%2093.8-13.5%2041.5H263l35.3%2025.6-13.5%2041.4%2035.3-25.6%2035.3%2025.6-13.5-41.4%2035.3-25.6h-43.6z'/%3e%3c/svg%3e")}.fi-mr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mr'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23cd2a3e'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23006233'%20d='M0%2076.8h512v358.4H0z'/%3e%3cpath%20fill='%23ffc400'%20d='M416%20164.9a160%20160%200%200%201-320%200%20165%20165%200%200%200-5.4%2041.8A165.4%20165.4%200%201%200%20416%20165z'%20class='mr-st1'/%3e%3cpath%20fill='%23ffc400'%20d='m256%20100-14.4%2044.3h-46.5l37.6%2027.3-14.3%2044.2%2037.6-27.3%2037.6%2027.3-14.4-44.2%2037.7-27.3h-46.5z'/%3e%3c/svg%3e")}.fi-ms{background-image:url(/_astro/ms.DxciGbUu.svg)}.fi-ms.fis{background-image:url(/_astro/ms.B-w7hFKu.svg)}.fi-mt{background-image:url(/_astro/mt.YqzKx9xl.svg)}.fi-mt.fis{background-image:url(/_astro/mt.YDa8zgzO.svg)}.fi-mu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mu'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%2300a04d'%20d='M0%20360h640v120H0z'/%3e%3cpath%20fill='%23151f6d'%20d='M0%20120h640v120H0z'/%3e%3cpath%20fill='%23ee2737'%20d='M0%200h640v120H0z'/%3e%3cpath%20fill='%23ffcd00'%20d='M0%20240h640v120H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mu'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23009f4d'%20d='M0%20384h512v128H0z'/%3e%3cpath%20fill='%23151f6d'%20d='M0%20128h512v128H0z'/%3e%3cpath%20fill='%23ee2737'%20d='M0%200h512v128H0z'/%3e%3cpath%20fill='%23ffcd00'%20d='M0%20256h512v128H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mv'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23d21034'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23007e3a'%20d='M120%20120h400v240H120z'/%3e%3ccircle%20cx='350'%20cy='240'%20r='80'%20fill='%23fff'/%3e%3ccircle%20cx='380'%20cy='240'%20r='80'%20fill='%23007e3a'/%3e%3c/svg%3e")}.fi-mv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mv'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23d21034'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23007e3a'%20d='M128%20128h256v256H128z'/%3e%3ccircle%20cx='288'%20cy='256'%20r='85.3'%20fill='%23fff'/%3e%3cellipse%20cx='308.6'%20cy='256'%20fill='%23007e3a'%20rx='73.9'%20ry='85.3'/%3e%3c/svg%3e")}.fi-mw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mw'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23f41408'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%2321873b'%20d='M0%20320h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23f31509'%20d='M220.5%20141c22.3-49.2%2084.5-72.8%20138.8-52.5a98%2098%200%200%201%2058%2052.5zm-26%206.4a332%20332%200%200%201-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3s3.1-3.6%206.2-3c5.6%201.4%2028.8%207%2050%2016.1m124.6-85.9c-4.2-21-5.2-44-4.8-48C314.7%209.6%20317%209%20319%209s4.7%201.8%204.7%204.7c0%205.3-.1%2027-4.6%2048zm11.6.5a249%20249%200%200%201-.3-48.2c.8-3.9%203.2-4.4%205.1-4.2%202%20.1%204.5%202.1%204.2%205-.5%205.3-2.6%2026.9-9%2047.4m10.4%201.3c-.2-21.3%203-44.3%204.1-48%201.1-3.9%203.6-4.2%205.5-3.9%202%20.3%204.3%202.5%203.8%205.3-1%205.3-5.2%2026.6-13.4%2046.6m11%202.2c1.8-21.2%207.3-43.8%208.8-47.5s4-3.8%205.8-3.4c2%20.5%204%202.8%203.3%205.6-1.6%205.1-7.7%2026-17.8%2045.3zm10.9%203.2c3.9-21%2011.5-43.1%2013.3-46.7%201.9-3.5%204.3-3.5%206.2-2.9%201.8.6%203.7%203.2%202.7%205.8A264%20264%200%200%201%20363%2068.7m10.1%203.8c5.8-20.7%2015.5-42%2017.7-45.5%202.2-3.4%204.6-3.1%206.4-2.3%201.8.7%203.4%203.4%202.1%206-2.5%204.8-12.5%2024.4-26.2%2041.8m10%204.7a263%20263%200%200%201%2022-43.9c2.4-3.2%204.9-2.7%206.6-1.8a4.4%204.4%200%200%201%201.5%206.1c-3%204.6-14.9%2023.4-30.1%2039.6m9.4%205.5c9.7-19.4%2023.3-39%2026.1-42s5.2-2.3%206.8-1.3a4.4%204.4%200%200%201%201%206.2c-3.5%204.4-17.2%2022.1-34%2037zm8.8%206.2c11.6-18.6%2027-37%2030.1-39.7%203-2.8%205.4-2%206.9-.8a4.3%204.3%200%200%201%20.3%206.2c-3.8%204.1-19.1%2020.7-37.3%2034.3m8.3%206.9a284%20284%200%200%201%2033.8-37.2c3.3-2.5%205.5-1.5%206.9-.3a4.3%204.3%200%200%201-.3%206.3c-4.1%203.8-21%2019.1-40.4%2031.2m7.6%207.5A278%20278%200%200%201%20454.4%2069c3.6-2.3%205.7-1.1%207%20.3%201.2%201.3%201.5%204.4-1%206.2a306%20306%200%200%201-43.2%2027.8m6.5%207.8A297%20297%200%200%201%20464%2079.6c3.7-2%205.7-.6%206.8.9%201.2%201.4%201.1%204.5-1.4%206.1-4.8%203-24.3%2015.6-45.7%2024.5m5.9%208.3a307%20307%200%200%201%2043-28.1c4-1.7%205.9-.2%206.9%201.3%201%201.6.6%204.6-2%206a321%20321%200%200%201-48%2020.8zm5.4%209.6a313%20313%200%200%201%2045.8-24.4c4.1-1.4%205.8.3%206.6%201.9.9%201.6.3%204.6-2.6%205.8-5.3%202.2-27%2011.4-49.8%2016.7m4.2%209.2a320%20320%200%200%201%2048-20.8c4.2-1%205.7.8%206.4%202.5.6%201.6-.3%204.6-3.2%205.5-5.5%201.9-28%209.3-51.2%2012.8m3.4%209.8a325%20325%200%200%201%2049.8-16.9c4.2-.6%205.6%201.2%206.1%203%20.5%201.7-.7%204.5-3.7%205.3-5.7%201.3-28.8%207-52.2%208.6M307.8%2062a252%20252%200%200%201-9.7-47.4c0-3.9%202.3-4.8%204.2-5%202-.1%205%201.5%205.2%204.3.5%205.3%202.6%2026.9.4%2048.1zm-11%201.3a251%20251%200%200%201-14.3-46.4c-.4-4%201.8-5%203.7-5.3s5%201%205.6%203.8a263%20263%200%200%201%205%2047.9m-11%202.2A259%20259%200%200%201%20267%2020.3c-.8-3.9%201.3-5.1%203.2-5.6s5%20.6%205.9%203.4c1.5%205.1%207.7%2026%209.6%2047.3zm-10.5%203A264%20264%200%200%201%20252.5%2025c-1.1-3.8.8-5.2%202.6-5.8s5.1.2%206.2%202.8c2%205%2010.2%2025.4%2014%2046.4zM265.2%2072a270%20270%200%200%201-27-41.5c-1.4-3.7.4-5.3%202.2-6s5-.2%206.4%202.4c2.5%204.8%2012.5%2024.5%2018.4%2045.1m-10.3%205a276%20276%200%200%201-31-39.2c-1.7-3.5-.1-5.2%201.6-6.1s5-.6%206.6%201.9c3%204.6%2015%2023.3%2022.8%2043.4m-9.4%205.4A285%20285%200%200%201%20211%2045.7c-2.1-3.4-.7-5.2%201-6.3%201.5-1%205-1%206.7%201.4%203.4%204.3%2017.1%2022%2026.8%2041.5zm-8.7%206a292%20292%200%200%201-37.9-33.9c-2.4-3.2-1.1-5%20.4-6.2a5.5%205.5%200%200%201%206.8.8c3.8%204%2019.2%2020.7%2030.7%2039.3m-8.5%207a299%20299%200%200%201-41-30.7c-2.8-3-1.7-5-.3-6.3a5.5%205.5%200%200%201%206.9.3c4.2%203.7%2021%2019%2034.4%2036.6zm-7.4%207A307%20307%200%200%201%20177.2%2075c-3-2.8-2.1-4.8-.8-6.2%201.2-1.4%204.5-2.1%206.9-.3a292%20292%200%200%201%2037.6%2034zm-7%208.2a313%20313%200%200%201-46.2-23.8c-3.3-2.5-2.6-4.7-1.5-6.1%201.1-1.5%204.3-2.5%206.9-.9%204.8%203.1%2024.3%2015.5%2040.8%2030.8m-6.3%208.8c-22.2-7-44.9-17.6-48.4-19.9-3.6-2.2-3-4.4-2.1-6s4-2.8%206.8-1.4c5%202.7%2025.8%2013.5%2043.7%2027.3m-5.3%209c-22.8-5.3-46.3-14-50.1-16-3.7-2-3.5-4.2-2.6-5.8s3.7-3.1%206.6-2c5.3%202.3%2027%2011.4%2046.1%2023.8m-4.2%209a329%20329%200%200%201-51.4-12.2c-4-1.6-3.8-3.9-3.2-5.5.7-1.7%203.5-3.4%206.4-2.5%205.6%201.9%2028%209.3%2048.2%2020.2'/%3e%3cpath%20fill='%23f31509'%20d='M194.5%20147.4a332%20332%200%200%201-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3s3.1-3.6%206.2-3c5.6%201.4%2028.8%207%2050%2016.1'/%3e%3cpath%20d='M129.4%20141.5h381.2v12.6H129.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mw'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='mw-a'%3e%3cpath%20fill-opacity='.7'%20d='M179.7%200h708.7v708.7H179.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23mw-a)'%20transform='translate(-129.8)scale(.72249)'%3e%3cpath%20fill='%23f41408'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%2321873b'%20d='M0%20472.4h1063v236.3H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h1063v236.2H0z'/%3e%3cpath%20fill='%23f31509'%20d='M401.4%20214a147.3%20147.3%200%200%201%20192.2-80.3%20142%20142%200%200%201%2080.2%2080.3zm-36%209.8a420%20420%200%200%201-72.5-12c-5.6-2-5.9-5.4-5.2-8a7%207%200%200%201%208.5-4.5c7.9%202%2039.9%2010.5%2069.3%2024.5zM538%2092.6c-5.8-32-7.3-67.3-6.7-73.2s3.8-7%206.5-7a7%207%200%200%201%206.5%207c0%208.2-.2%2041.3-6.3%2073.2m16%20.8a428%20428%200%200%201-.5-73.6c1.1-5.9%204.4-6.7%207.1-6.4s6.3%203.3%205.9%207.6c-.7%208-3.7%2041-12.5%2072.4m14.4%202c-.4-32.6%204-67.6%205.7-73.4%201.5-5.8%204.9-6.3%207.6-5.8a7%207%200%200%201%205.2%208c-1.4%208-7.1%2040.6-18.5%2071.1zm15.3%203.3c2.5-32.4%2010-66.9%2012-72.5s5.5-5.8%208.1-5.1a7%207%200%200%201%204.5%208.4c-2.1%207.9-10.6%2039.9-24.6%2069.2m15%204.8A422%20422%200%200%201%20617%2032.3c2.6-5.4%206-5.3%208.6-4.4a7%207%200%200%201%203.7%208.9c-2.8%207.6-14.2%2038.7-30.7%2066.7zm14%205.9c8-31.6%2021.4-64.2%2024.5-69.4%203-5.2%206.4-4.8%208.8-3.6a7%207%200%200%201%203%209c-3.5%207.5-17.4%2037.5-36.3%2064m13.8%207.2a432%20432%200%200%201%2030.4-67c3.4-4.9%206.8-4.2%209.2-2.8a7%207%200%200%201%202%209.3c-4%207-20.5%2035.7-41.6%2060.5m13%208.3a420%20420%200%200%201%2036.2-64c3.8-4.6%207.1-3.6%209.3-2a7%207%200%200%201%201.3%209.4c-4.7%206.7-23.6%2033.8-46.8%2056.6m12.2%209.5c16-28.4%2037.4-56.4%2041.7-60.7%204.2-4.2%207.4-3%209.5-1.2s3.2%206.3.4%209.6c-5.2%206.2-26.4%2031.6-51.6%2052.3m11.5%2010.5a424%20424%200%200%201%2046.7-56.8c4.6-3.8%207.7-2.3%209.6-.4a7%207%200%200%201-.4%209.6%20410%20410%200%200%201-56%2047.6zm10.4%2011.5c20.7-25.1%2046.7-49%2051.6-52.4%205-3.4%207.8-1.6%209.6.4a7%207%200%200%201-1.2%209.5%20422%20422%200%200%201-60%2042.5m9%2011.8a422%20422%200%200%201%2055.8-48c5.2-3%208-.9%209.5%201.4%201.6%202.2%201.6%206.8-2%209.3a416%20416%200%200%201-63.2%2037.3zm8.2%2012.8a422%20422%200%200%201%2059.7-43c5.4-2.5%208-.2%209.4%202.1%201.3%202.3%201%207-2.8%209.2-7%204-35.6%2020.8-66.3%2031.7m7.6%2014.6a432%20432%200%200%201%2063.4-37.3c5.6-2%208%20.5%209.1%203a7%207%200%200%201-3.6%208.8%20418%20418%200%200%201-68.9%2025.5m5.8%2014.1a413%20413%200%200%201%2066.3-31.7c5.8-1.5%208%201.2%208.9%203.7s-.3%207-4.4%208.5a413%20413%200%200%201-70.8%2019.5m4.6%2015a421%20421%200%200%201%2069-25.8c5.8-1%207.7%201.8%208.4%204.5a7%207%200%200%201-5%208c-8%202.2-39.9%2010.7-72.4%2013.2zM522.4%2093.1A421%20421%200%200%201%20508.9%2021c0-6%203.1-7.3%205.8-7.6a7%207%200%200%201%207.1%206.5c.8%208%203.7%2041%20.6%2073.4zm-15.4%202a419%20419%200%200%201-19.7-70.8c-.5-6%202.5-7.6%205.1-8.1a7%207%200%200%201%207.7%205.8c1.4%208%207.2%2040.6%206.9%2073.1m-15.3%203.4a422%20422%200%200%201-25.9-68.9c-1-5.9%201.9-7.8%204.5-8.5a7%207%200%200%201%208%205.1c2.2%207.9%2010.8%2039.8%2013.4%2072.3m-14.4%204.5a420%20420%200%200%201-31.6-66.4c-1.5-5.8%201.2-8%203.7-8.9a7%207%200%200%201%208.5%204.4c2.8%207.7%2014.1%2038.7%2019.4%2070.9m-14%205.7A420%20420%200%200%201%20426%2045.4c-2-5.7.4-8%202.9-9.1a7%207%200%200%201%208.9%203.6c3.4%207.4%2017.3%2037.4%2025.4%2069zm-14.2%207.4a420%20420%200%200%201-42.8-59.9c-2.5-5.4-.3-8%202-9.3a7%207%200%200%201%209.2%202.8c4.1%207%2020.7%2035.7%2031.6%2066.4m-13%208.2a422%20422%200%200%201-47.8-56c-3-5.2-1-8%201.3-9.5a7%207%200%200%201%209.4%202c4.7%206.7%2023.6%2033.8%2037.1%2063.5m-12.1%209a419%20419%200%200%201-52.4-51.6c-3.4-4.9-1.6-7.8.5-9.5a7%207%200%200%201%209.5%201.2c5.2%206.2%2026.4%2031.6%2042.4%2060zM412.2%20144a422%20422%200%200%201-56.8-46.8c-3.8-4.6-2.3-7.7-.4-9.6a7%207%200%200%201%209.6.4c5.8%205.8%2029.2%2029.1%2047.6%2056M402%20154.9a421%20421%200%200%201-60.5-41.8c-4.2-4.2-2.9-7.4-1.1-9.5a7%207%200%200%201%209.5-.4c6.3%205.2%2031.5%2026.5%2052.1%2051.7m-9.7%2012.5a421%20421%200%200%201-64-36.3c-4.6-3.9-3.6-7.2-2-9.4a7%207%200%200%201%209.5-1.3%20423%20423%200%200%201%2056.5%2047m-8.7%2013.4a421%20421%200%200%201-67-30.3c-5-3.5-4.3-6.8-2.9-9.2a7%207%200%200%201%209.3-2.1c7.1%204%2035.8%2020.5%2060.6%2041.6m-7.3%2013.7c-31.5-8-64.2-21.4-69.4-24.4-5.1-3-4.8-6.4-3.6-8.8a7%207%200%200%201%209.1-3c7.4%203.4%2037.4%2017.4%2064%2036.2zm-5.8%2013.8a415%20415%200%200%201-71.2-18.6c-5.4-2.5-5.3-6-4.4-8.5%201-2.5%204.8-5.2%208.9-3.7%207.6%202.8%2038.7%2014.2%2066.7%2030.8'/%3e%3cpath%20fill='%23f31509'%20d='M365.5%20223.8c-32.5-2.5-67-9.9-72.6-12s-5.9-5.4-5.2-8a7%207%200%200%201%208.5-4.5c7.9%202%2039.9%2010.5%2069.3%2024.5'/%3e%3cpath%20d='M275.3%20214.7H803V234H275.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mx{background-image:url(/_astro/mx.Cc8Ccfe8.svg)}.fi-mx.fis{background-image:url(/_astro/mx.CvCwYHGF.svg)}.fi-my{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-my'%20viewBox='0%200%20640%20480'%3e%3cg%20clip-path='url(%23my-a)'%3e%3cpath%20fill='%23C00'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%200h640v34.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%2034.3h640v34.3H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%2068.6h640v34.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20102.9h640V137H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20137.1h640v34.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20171.4h640v34.3H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20205.7h640V240H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20240h640v34.3H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20274.3h640v34.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20308.6h640v34.3H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20342.9h640V377H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20377.1h640v34.3H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20411.4h640v34.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20445.7h640V480H0z'/%3e%3cpath%20fill='%23006'%20d='M0%20.5h320v274.3H0z'/%3e%3cpath%20fill='%23FC0'%20d='m207.5%2073.8%206%2040.7%2023-34-12.4%2039.2%2035.5-20.8-28.1%2030%2041-3.2-38.3%2014.8%2038.3%2014.8-41-3.2%2028.1%2030-35.5-20.8%2012.3%2039.3-23-34.1-6%2040.7-5.9-40.7-23%2034%2012.4-39.2-35.5%2020.8%2028-30-41%203.2%2038.4-14.8-38.3-14.8%2041%203.2-28.1-30%2035.5%2020.8-12.4-39.3%2023%2034.1zm-33.3%201.7a71%2071%200%200%200-100%2065%2071%2071%200%200%200%20100%2065%2080%2080%200%200%201-83.2%206.2%2080%2080%200%200%201-43.4-71.2%2080%2080%200%200%201%20126.6-65'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='my-a'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e")}.fi-my.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-my'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23C00'%20d='M0%200h512v36.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%2036.6h512V73H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%2073.1h512v36.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20109.7h512v36.6H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20146.3h512v36.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20182.9h512v36.5H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20219.4h512V256H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20256h512v36.6H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20292.6h512V329H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20329.1h512v36.6H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20365.7h512v36.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20402.3h512v36.6H0z'/%3e%3cpath%20fill='%23C00'%20d='M0%20438.9h512v36.5H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20475.4h512V512H0z'/%3e%3cpath%20fill='%23006'%20d='M0%200h256v292.6H0z'/%3e%3cpath%20fill='%23FC0'%20d='m166%2093%204.8%2032.5%2018.4-27.2-10%2031.3%2028.5-16.6-22.5%2024%2032.8-2.6-30.7%2011.9L218%20158l-32.8-2.5%2022.5%2024-28.4-16.7%209.8%2031.5-18.4-27.3-4.8%2032.5-4.7-32.5-18.4%2027.2%209.9-31.4-28.4%2016.7%2022.4-24-32.8%202.5%2030.7-11.8-30.6-11.9%2032.8%202.6-22.5-24%2028.4%2016.6-10-31.4%2018.5%2027.3%204.8-32.6Zm-26.7%201.3a57%2057%200%200%200-73%2024.9%2057%2057%200%200%200%2045.5%2083.8%2057%2057%200%200%200%2027.5-4.7%2064%2064%200%201%201%200-104'/%3e%3c/svg%3e")}.fi-mz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mz'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='mz-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23mz-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23009a00'%20fill-rule='evenodd'%20d='M0%200h768v160H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20160h768v16H0z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M0%20176h768v160H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20336h768v16H0z'/%3e%3cpath%20fill='%23ffca00'%20fill-rule='evenodd'%20d='M0%20352h768v160H0z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20d='M0%200v512l336-256z'/%3e%3cpath%20fill='%23ffca00'%20fill-rule='evenodd'%20d='m198.5%20333-51.2-37.5L96.1%20333l19.9-60.3-51.5-37.1%2063.5.2%2019.3-60.4%2019.4%2060.5%2063.5-.3-51.5%2037.1z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='M102.8%20290.9h37c3%203.3%209.5%204.7%2015.8%200%2011.6-6.4%2034%200%2034%200l4.4-4.7-10.7-35.2-3.9-4.2s-8.3-5-24-3.3-21.2-.5-21.2-.5-13.7%201.6-17.6%203.6l-4.4%204.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='M110.3%20281.8s35.2-4.4%2045.4%209.1c-5.7%204-10.8%204.3-16.2.3.8-1.5%2012.6-13.8%2042.7-9.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='1.2'%20d='m148%20246.6-.3%2038.8m31.7-38.3L186%20278'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='m117%20246.6-3.7%2016'/%3e%3cpath%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='m78.9%20295.1%208.6%2010.2q1.5.9%202.9%200l12.8-15.4%205.4-6.7q1.3-1.6%201-3l10.4-9.3%202.2.2c-1-.2-1.7-.7-1-1.8l2.4-1.8%201.8%202.3s-2.6%203.4-2.9%203.4h-2.8l-5.4%204.9%202.4%202%203.5%209.8%204.4-3.1-2.8-10%206.1-6.7-2.3-3.6%201.6-2s21.3%2013.4%2029.6%209.8c.2%200%20.5-9.6.5-9.6s-22.2-2.3-22.7-6.7%205-5%205-5l-2.4-3.2.5-1.8%203.9%204.8%208.7-7.4%2051.5%2058.6c2.8-1.1%203.4-1.8%203.6-4.6L155%20241.5l3.8-4.1c.8-.9%201-1.2%201-2.6l6-5.1a7%207%200%200%201%203.8%203L186%20219c.4.4%201.7.8%202.6.4l26.9-25.9-29.3%2020.7-1-.7c0-.9%201-1%200-2.6-1.2-1.4-2.9%201.3-3.1%201.3s-4.3-1.4-5.2-3.2l-.2%204.7-7.5%207-5.7-.3-8.2%208-1%203%201.3%202.7s-4.4%203.8-4.4%203.6c0-.3-.9-1.2-1-1.3l3.8-3.4.5-2.3-1.2-2c-.4.3-5.2%205.4-5.5%204.8l-14-15.5.8-2.9-8.7-9.5c-3.2-1.1-8.3-1.3-9.3%205.7-.8%201.6-7.4.2-7.4.2l-3.6.8L85.2%20241l11.3%2013.6%2023.2-29.3.7-8.3%204.8%205.4q2.5.5%204.7-.5l13.7%2015.3-2.3%202.3%202%202.2%202.4-1.6.9%201.3-3.1%202.1c-1.8-1.2-3.6-2.7-3.5-5l-7.7%206.4-.3%201.2-22.9%2019-2%20.3-.5%206%2014.9-12.4v-1.8l1.5%201.3%2011.6-9.3s.8%201%20.5%201-10.3%209.3-10.3%209.3l-.2%201-1.8%201.6-1-.8-14%2012.4h-2l-7.7%207.7c-2%20.2-3.7.4-5.4%201.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-mz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-mz'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='mz-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h496v496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23mz-a)'%20transform='scale(1.0321)'%3e%3cpath%20fill='%23009a00'%20fill-rule='evenodd'%20d='M0%200h744v155H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20155h744v15.5H0z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M0%20170.5h744v155H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M0%20325.5h744V341H0z'/%3e%3cpath%20fill='%23ffca00'%20fill-rule='evenodd'%20d='M0%20341h744v155H0z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20d='M0%200v496l325.6-248z'/%3e%3cpath%20fill='%23ffca00'%20fill-rule='evenodd'%20d='m192.3%20322.6-49.6-36.3-49.5%2036.3%2019.2-58.4-50-36%2061.6.3%2018.7-58.5%2018.8%2058.5%2061.5-.3-50%2036z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='M99.6%20281.9h35.8c2.9%203.2%209.3%204.5%2015.4%200%2011.2-6.2%2032.9%200%2032.9%200l4.3-4.6-10.4-34.1-3.8-4s-8-4.8-23.2-3.2-20.5-.6-20.5-.6-13.4%201.6-17.1%203.6l-4.3%204.3-9%2038.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='M106.8%20273s34.2-4.2%2044%208.9c-5.5%203.8-10.4%204-15.7.2.9-1.4%2012.3-13.3%2041.4-9.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='1.1'%20d='m143.4%20238.9-.3%2037.6m30.7-37%206.4%2029.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='m113.3%20239-3.5%2015.4'/%3e%3cpath%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.1'%20d='m76.4%20286%208.4%209.8q1.5.9%202.8%200l12.4-15%205.3-6.4a4%204%200%200%200%201-3l10-9q1%20.3%202%20.3c-.9-.3-1.6-.7-.8-1.8l2.2-1.7%201.8%202.2s-2.5%203.3-2.8%203.3H116l-5.3%204.7%202.3%202%203.5%209.5%204.2-3-2.7-9.7%206-6.5-2.3-3.5%201.5-2s20.7%2013%2028.7%209.5c.2.1.5-9.3.5-9.3s-21.5-2.2-22-6.4%204.8-4.8%204.8-4.8l-2.3-3.2.5-1.8%203.8%204.8%208.4-7.3%2049.9%2056.9c2.7-1.1%203.3-1.8%203.5-4.5L150%20234l3.8-4c.7-.8%201-1.2%201-2.5l5.7-5a7%207%200%200%201%203.7%203l15.8-13.3c.4.4%201.7.8%202.5.3l26-25-28.3%2020-1-.7c0-.8%201-1%200-2.5-1.1-1.3-2.8%201.3-3%201.3s-4.1-1.4-5-3.1l-.2%204.6-7.3%206.7-5.5-.2-8%207.7-1%203%201.3%202.5s-4.2%203.7-4.2%203.5-.9-1.1-1-1.3l3.7-3.2.5-2.3-1.2-1.9c-.4.3-5%205.2-5.3%204.7L129.7%20211l.7-2.8-8.5-9.2c-3-1-8-1.2-9%205.5-.7%201.6-7.2.2-7.2.2l-3.4.8-19.7%2027.9%2011%2013.2%2022.4-28.4.6-8%204.7%205.2q2.4.4%204.5-.5l13.3%2014.8-2.2%202.2%202%202.2%202.2-1.6%201%201.3-3%202c-1.9-1.1-3.6-2.6-3.4-4.9l-7.5%206.2-.3%201.3-22.2%2018.4-2%20.3-.5%205.7%2014.5-12v-1.7l1.5%201.2%2011.2-9s.8%201%20.5%201-10%209-10%209l-.2%201-1.7%201.5-1-.7-13.5%2012h-2l-7.5%207.4c-1.9.2-3.6.4-5.2%201.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-na{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-na'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='na-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23na-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%233662a2'%20d='m-26.4.2.8%20345.6L512.5%200z'/%3e%3cpath%20fill='%2338a100'%20d='M666.4%20479.6%20665%20120.3%20122.3%20479.8l544-.2z'/%3e%3cpath%20fill='%23c70000'%20d='m-26%20371.8.4%20108.2%20117.5-.1L665.4%2095.4l-.7-94.1-116-1L-26%20371.7z'/%3e%3cpath%20fill='%23ffe700'%20d='m219.6%20172-21.8-13.2-12.6%2022.1-12.2-22.2-22%2012.9.6-25.4-25.4.2%2013.2-21.8-22.1-12.5%2022.2-12.3-12.8-22%2025.4.6-.1-25.5%2021.7%2013.2L186.3%2044l12.2%2022.2%2022-12.9-.6%2025.4%2025.4-.2-13.2%2021.8%2022.1%2012.5-22.2%2012.3%2012.8%2022-25.4-.6z'/%3e%3cpath%20fill='%233662a2'%20d='M232.4%20112.4c0%2025.6-20.9%2046.3-46.6%2046.3s-46.6-20.7-46.6-46.3%2020.8-46.2%2046.6-46.2%2046.6%2020.7%2046.6%2046.2'/%3e%3cpath%20fill='%23ffe700'%20d='M222.3%20112.4a36.5%2036.5%200%201%201-73%200%2036.5%2036.5%200%200%201%2073%200'/%3e%3c/g%3e%3c/svg%3e")}.fi-na.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-na'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='na-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23na-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%233662a2'%20d='m-108.2.2.8%20368.6L466.6%200z'/%3e%3cpath%20fill='%2338a100'%20d='m630.7%20511.5-1.4-383.2-579%20383.5z'/%3e%3cpath%20fill='%23c70000'%20d='m-107.9%20396.6.5%20115.4%20125.3-.2%20611.7-410.1L629%201.4%20505.2.2z'/%3e%3cpath%20fill='%23ffe700'%20d='m154%20183.4-23.1-14-13.4%2023.6-13-23.8L81%20183l.6-27.1-27%20.2%2014-23.2L45%20119.5l23.8-13L55%2083l27%20.6-.1-27.1%2023.2%2014%2013.4-23.6%2013%2023.7L155.2%2057l-.6%2027%2027-.1-14%2023.2%2023.6%2013.3-23.8%2013.1%2013.7%2023.4-27-.5z'/%3e%3cpath%20fill='%233662a2'%20d='M167.8%20120c0%2027.2-22.3%2049.3-49.8%2049.3s-49.7-22.1-49.7-49.4%2022.3-49.3%2049.8-49.3%2049.7%2022%2049.7%2049.3z'/%3e%3cpath%20fill='%23ffe700'%20d='M157%20120a39%2039%200%201%201-77.9%200%2039%2039%200%200%201%2077.9%200'/%3e%3c/g%3e%3c/svg%3e")}.fi-nc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nc'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23009543'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23ed4135'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%230035ad'%20d='M0%200h640v160H0z'/%3e%3ccircle%20cx='240'%20cy='240'%20r='157.3'%20fill='%23fae600'%20stroke='%23000'%20stroke-width='5.3'/%3e%3cpath%20stroke='%23000'%20stroke-width='6.4'%20d='M213.3%20263.5h53.3M213.3%20224h53.3M240%2083.2V352'/%3e%3cpath%20fill='%23000001'%20d='M176.6%20384.4c64.2%2026.3%20124.4%201.7%20124.4%201.7s-22.7-24.6-34.3-34.2c-11.4-9.4-44.8-9-56.2%200a489%20489%200%200%200-33.9%2032.5'/%3e%3cellipse%20cx='240'%20cy='312.5'%20fill='%23000001'%20rx='17.6'%20ry='25.6'/%3e%3cellipse%20cx='240'%20cy='243.7'%20fill='%23000001'%20rx='21.3'%20ry='13.5'/%3e%3ccircle%20cx='240'%20cy='181.3'%20r='21.3'%20fill='%23000001'/%3e%3cpath%20fill='%23000001'%20d='M265.6%20101.9s1.8%203-2%2010c-18.6%2033.5-37.3%2034.2-40.8%2037.1-4%203.2-5.6%203-5.6%203%20.3-2.9.5-14.6.7-15.7%202.9-15.7%2026.5-15.5%2045-31.5%202.9-2.5%202.7-3%202.7-3zm-62.4%2072s4.3%2012%204.8%2024c1%2019.2%2019.4%2019.7%2032%2019.7v-10.7c-9.5%200-17.7-1.4-24.5-15.4a123%20123%200%200%200-12.3-17.6m-.5%20154.6s6.7-8.3%2014.6-27.7c4-10.1%2013.8-16%2022.7-16v-15c-20.3%200-30%207.5-31%2018.6a329%20329%200%200%201-6.3%2040.1'/%3e%3cpath%20d='M276.8%20173.9s-4.3%2012-4.8%2024c-1%2019.2-19.4%2019.7-32%2019.7V207c9.5%200%2017.7-1.4%2024.5-15.5q5.4-9.3%2012.3-17.6m.5%20154.7s-6.7-8.4-14.6-27.8c-4-10.1-13.8-16-22.7-16V270c20.3%200%2030%207.5%2031%2018.6a329%20329%200%200%200%206.3%2040'/%3e%3c/svg%3e")}.fi-nc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nc'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23009543'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23ed4135'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%230035ad'%20d='M0%200h512v170.7H0z'/%3e%3ccircle%20cx='225.6'%20cy='256'%20r='167.8'%20fill='%23fae600'%20stroke='%23000'%20stroke-width='5.7'/%3e%3cpath%20stroke='%23000'%20stroke-width='6.8'%20d='M197.2%20281h56.9m-56.9-42h56.9M225.6%2088.6v286.8'/%3e%3cpath%20fill='%23000001'%20d='M158%20410c68.6%2028%20132.8%201.8%20132.8%201.8s-24.3-26.2-36.7-36.5c-12.1-10-47.8-9.6-60%200-10%208-39.2%2037.5-36%2034.8z'/%3e%3cellipse%20cx='225.6'%20cy='333.4'%20fill='%23000001'%20rx='18.8'%20ry='27.3'/%3e%3cellipse%20cx='225.6'%20cy='260'%20fill='%23000001'%20rx='22.8'%20ry='14.4'/%3e%3ccircle%20cx='225.6'%20cy='193.4'%20r='22.8'%20fill='%23000001'/%3e%3cpath%20fill='%23000001'%20d='M253%20108.7s2%203.2-2.2%2010.7c-19.9%2035.7-39.7%2036.5-43.5%2039.5-4.2%203.4-6%203.2-6%203.2.4-3%20.6-15.6.8-16.8%203-16.6%2028.3-16.4%2048-33.5%203-2.7%202.8-3.2%202.8-3.2zm-66.6%2076.8s4.5%2012.7%205.1%2025.6c1.1%2020.4%2020.7%2021%2034.1%2021v-11.4c-10%200-18.9-1.4-26.1-16.5a131%20131%200%200%200-13.1-18.7m-.6%20165s7.2-9%2015.6-29.6a27%2027%200%200%201%2024.2-17.1v-16c-21.6%200-32%208-33%2019.9-2.4%2024-6.8%2042.7-6.8%2042.7zm79.2-165s-4.6%2012.7-5.2%2025.6c-1.1%2020.5-20.7%2021-34.1%2021v-11.3c10.1%200%2018.9-1.5%2026.2-16.5q5.8-10%2013-18.8zm.5%20165s-7.1-8.9-15.6-29.6a27%2027%200%200%200-24.2-17v-16c21.6%200%2032%208%2033.1%2019.8a351%20351%200%200%200%206.7%2042.8'/%3e%3c/svg%3e")}.fi-ne{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ne'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230db02b'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%23e05206'%20d='M0%200h640v160H0z'/%3e%3ccircle%20cx='320'%20cy='240'%20r='68'%20fill='%23e05206'/%3e%3c/svg%3e")}.fi-ne.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ne'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230db02b'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%23e05206'%20d='M0%200h512v170.7H0z'/%3e%3ccircle%20cx='256'%20cy='256'%20r='72.5'%20fill='%23e05206'/%3e%3c/svg%3e")}.fi-nf{background-image:url(/_astro/nf.Dl00mlk2.svg)}.fi-nf.fis{background-image:url(/_astro/nf.DGrQb42O.svg)}.fi-ng{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ng'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23008753'%20d='M426.6%200H640v480H426.6zM0%200h213.3v480H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ng.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ng'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23008753'%20d='M341.3%200H512v512H341.3zM0%200h170.7v512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ni{background-image:url(/_astro/ni.CcFCSQxm.svg)}.fi-ni.fis{background-image:url(/_astro/ni.BX2WCaNt.svg)}.fi-nl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nl'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ae1c28'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%2321468b'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-nl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nl'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ae1c28'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%2321468b'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-no{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-no'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ed2939'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M180%200h120v480H180z'/%3e%3cpath%20fill='%23fff'%20d='M0%20180h640v120H0z'/%3e%3cpath%20fill='%23002664'%20d='M210%200h60v480h-60z'/%3e%3cpath%20fill='%23002664'%20d='M0%20210h640v60H0z'/%3e%3c/svg%3e")}.fi-no.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-no'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ed2939'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M128%200h128v512H128z'/%3e%3cpath%20fill='%23fff'%20d='M0%20192h512v128H0z'/%3e%3cpath%20fill='%23002664'%20d='M160%200h64v512h-64z'/%3e%3cpath%20fill='%23002664'%20d='M0%20224h512v64H0z'/%3e%3c/svg%3e")}.fi-np{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-np'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='np-a'%3e%3cpath%20fill-opacity='.7'%20d='M0-16h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23np-a)'%20transform='translate(0%2015)scale(.9375)'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23ce0000'%20stroke='%23000063'%20stroke-width='13.8'%20d='M6.5%20489.5h378.8L137.4%20238.1l257.3.3L6.6-9.5v499z'/%3e%3cpath%20fill='%23fff'%20d='m180.7%20355.8-27%209%2021.2%2019.8-28.5-1.8%2011.7%2026.2-25.5-12.3.5%2028.6-18.8-20.9-10.7%2026.6-9.2-26.3-20.3%2020.6%201.8-27.7L49%20409l12.6-25-29.3.6%2021.5-18.3-27.3-10.5%2027-9L32.2%20327l28.4%201.8L49%20302.6l25.6%2012.3-.5-28.6%2018.8%2020.9%2010.7-26.6%209.1%2026.3%2020.4-20.6-1.9%2027.7%2027-11.4-12.7%2025%2029.4-.6-21.5%2018.3zm-32.4-184.7-11.3%208.4%205.6%204.6a94%2094%200%200%200%2030.7-36c1.8%2021.3-17.7%2069-68.7%2069.5a70.6%2070.6%200%200%201-71.5-70.3c10%2018.2%2016.2%2027%2032%2036.5l4.7-4.4-10.6-8.9%2013.7-3.6-7.4-12.4%2014.4%201-1.8-14.4%2012.6%207.4%204-13.5%209%2010.8%208.5-10.3%204.6%2014%2011.8-8.2-1.5%2014.3%2014.2-1.7-6.7%2013.2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-np.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-np'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='np-b'%3e%3cpath%20fill-opacity='.7'%20d='M0-16h512v512H0z'/%3e%3c/clipPath%3e%3cclipPath%20id='np-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23np-a)'%3e%3cg%20clip-path='url(%23np-b)'%20transform='translate(0%2016)'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23ce0000'%20stroke='%23000063'%20stroke-width='13'%20d='M6.5%20489.5h378.8L137.4%20238.1l257.3.3L6.6-9.5v499z'/%3e%3cpath%20fill='%23fff'%20d='m180.7%20355.8-27%209%2021.2%2019.8-28.5-1.8%2011.7%2026.2-25.5-12.3.5%2028.6-18.8-20.9-10.7%2026.6-9.2-26.3-20.3%2020.6%201.8-27.7L49%20409l12.6-25-29.3.6%2021.5-18.3-27.3-10.5%2027-9L32.2%20327l28.4%201.8L49%20302.6l25.6%2012.3-.5-28.6%2018.8%2020.9%2010.7-26.6%209.1%2026.3%2020.4-20.6-1.9%2027.7%2027-11.4-12.7%2025%2029.4-.6-21.5%2018.3zm-32.4-184.7-11.3%208.4%205.6%204.6a94%2094%200%200%200%2030.7-36c1.8%2021.3-17.7%2069-68.7%2069.5a70.6%2070.6%200%200%201-71.5-70.3c10%2018.2%2016.2%2027%2032%2036.5l4.7-4.4-10.6-8.9%2013.7-3.6-7.4-12.4%2014.4%201-1.8-14.4%2012.6%207.4%204-13.5%209%2010.8%208.5-10.3%204.6%2014%2011.8-8.2-1.5%2014.3%2014.2-1.7-6.7%2013.2z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-nr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nr'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='nr-a'%3e%3cpath%20fill-opacity='.7'%20d='M-54.7%200H628v512H-54.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23nr-a)'%20transform='translate(51.3)scale(.9375)'%3e%3cpath%20fill='%23002170'%20d='M-140%200H884v512H-140z'/%3e%3cpath%20fill='%23ffb20d'%20d='M-140%20234.1H884V278H-140z'/%3e%3cpath%20fill='%23fff'%20d='m161.8%20438-33-33-10.5%2045.4-12-45-31.9%2034%2012.1-45L42%20407.9l33-33-45.4-10.6%2045-12-34-31.8%2045%2012L72%20288l33%2033%2010.6-45.4%2012%2045%2031.8-34-12%2045%2044.5-13.5-33%2033%2045.4%2010.5-45%2012%2034%2032-45-12.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-nr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nr'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='nr-a'%3e%3cpath%20fill-opacity='.7'%20d='M135.6%200h496.1v496h-496z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23nr-a)'%20transform='translate(-140)scale(1.0321)'%3e%3cpath%20fill='%23002170'%20d='M0%200h992.1v496H0z'/%3e%3cpath%20fill='%23ffb20d'%20d='M0%20226.8h992.1v42.4H0z'/%3e%3cpath%20fill='%23fff'%20d='m292.4%20424.4-31.9-32-10.2%2044-11.7-43.7-30.9%2033%2011.8-43.6-43.2%2013%2032-31.8-44-10.3%2043.6-11.6-33-31%2043.6%2011.8-13-43.2%2031.8%2032%2010.3-44%2011.7%2043.6%2030.8-32.9-11.7%2043.6%2043.2-13-32%2031.8%2044%2010.3L290%20362l33%2030.9-43.7-11.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-nu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nu'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fedd00'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23012169'%20d='M0%200h320v240H0z'/%3e%3cpath%20fill='%23fff'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='%23c8102e'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23fff'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3ccircle%20cx='160'%20cy='120'%20r='40.8'%20fill='%23012169'/%3e%3cpath%20fill='%23fedd00'%20d='m160%2079.2%2024%2073.8-62.8-45.6h77.6L136%20153M66.7%2098.3l14%2043.4L43.9%20115h45.7l-37%2026.8m200.7-43.5%2014.1%2043.4-36.9-26.8h45.7l-37%2026.8M160%20178.3l14.1%2043.4-37-26.8h45.7l-37%2026.8M160%2018.3l14.1%2043.4-37-26.8h45.7l-37%2026.8'/%3e%3c/svg%3e")}.fi-nu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nu'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fedd00'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23012169'%20d='M0%200h256v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M256%200v32l-95%2096%2095%2093.5V256h-33.5L127%20162l-93%2094H0v-34l93-93.5L0%2037V0h31l96%2094%2093-94z'/%3e%3cpath%20fill='%23c8102e'%20d='m92%20162%205.5%2017L21%20256H0v-1.5zm62-6%2027%204%2075%2073.5V256zM256%200l-96%2098-2-22%2075-76zM0%20.5%2096.5%2095%2067%2091%200%2024.5z'/%3e%3cpath%20fill='%23fff'%20d='M88%200v256h80V0zM0%2088v80h256V88z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%20104v48h256v-48zM104%200v256h48V0z'/%3e%3ccircle%20cx='128'%20cy='128'%20r='43.6'%20fill='%23012169'/%3e%3cpath%20fill='%23fedd00'%20d='m128%2084.4%2025.6%2078.8-67-48.7h82.8l-67%2048.7m-49.1-58.3%2015%2046.3L29%20122.6h48.7l-39.4%2028.6m164.4-46.3%2015%2046.3-39.4-28.6H227l-39.4%2028.6m-59.6%2039%2015%2046.3-39.3-28.6h48.6L113%20236.5m15-217L143%2066l-39.3-28.7h48.6L113%2066'/%3e%3c/svg%3e")}.fi-nz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-nz'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cg%20id='nz-b'%3e%3cg%20id='nz-a'%3e%3cpath%20d='M0-.3v.5l1-.5z'/%3e%3cpath%20d='M.2.3%200-.1l1-.2z'/%3e%3c/g%3e%3cuse%20xlink:href='%23nz-a'%20transform='scale(-1%201)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='rotate(72%200%200)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='rotate(-72%200%200)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='scale(-1%201)rotate(72)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%2300247d'%20fill-rule='evenodd'%20d='M0%200h640v480H0z'/%3e%3cg%20transform='translate(-111%2036.1)scale(.66825)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='translate(900%20120)scale(45.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='matrix(30%200%200%2030%20900%20120)'/%3e%3c/g%3e%3cg%20transform='rotate(82%20525.2%20114.6)scale(.66825)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='rotate(-82%20519%20-457.7)scale(40.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='rotate(-82%20519%20-457.7)scale(25)'/%3e%3c/g%3e%3cg%20transform='rotate(82%20525.2%20114.6)scale(.66825)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='rotate(-82%20668.6%20-327.7)scale(45.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='rotate(-82%20668.6%20-327.7)scale(30)'/%3e%3c/g%3e%3cg%20transform='translate(-111%2036.1)scale(.66825)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='translate(900%20480)scale(50.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='matrix(35%200%200%2035%20900%20480)'/%3e%3c/g%3e%3cpath%20fill='%23012169'%20d='M0%200h320v240H0z'/%3e%3cpath%20fill='%23fff'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='%23c8102e'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23fff'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3c/svg%3e")}.fi-nz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-nz'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cg%20id='nz-b'%3e%3cg%20id='nz-a'%3e%3cpath%20d='M0-.3v.5l1-.5z'/%3e%3cpath%20d='M.2.3%200-.1l1-.2z'/%3e%3c/g%3e%3cuse%20xlink:href='%23nz-a'%20transform='scale(-1%201)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='rotate(72%200%200)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='rotate(-72%200%200)'/%3e%3cuse%20xlink:href='%23nz-a'%20transform='scale(-1%201)rotate(72)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%2300247d'%20fill-rule='evenodd'%20d='M0%200h512v512H0z'/%3e%3cg%20transform='translate(-148.7%2090.5)scale(.60566)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='translate(900%20120)scale(45.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='matrix(30%200%200%2030%20900%20120)'/%3e%3c/g%3e%3cg%20transform='rotate(82%20418.7%20105.1)scale(.60566)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='rotate(-82%20519%20-457.7)scale(40.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='rotate(-82%20519%20-457.7)scale(25)'/%3e%3c/g%3e%3cg%20transform='rotate(82%20418.7%20105.1)scale(.60566)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='rotate(-82%20668.6%20-327.7)scale(45.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='rotate(-82%20668.6%20-327.7)scale(30)'/%3e%3c/g%3e%3cg%20transform='translate(-148.7%2090.5)scale(.60566)'%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23fff'%20transform='translate(900%20480)scale(50.4)'/%3e%3cuse%20xlink:href='%23nz-b'%20width='100%25'%20height='100%25'%20fill='%23cc142b'%20transform='matrix(35%200%200%2035%20900%20480)'/%3e%3c/g%3e%3cpath%20fill='%23012169'%20d='M0%200h256v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M256%200v32l-95%2096%2095%2093.5V256h-33.5L127%20162l-93%2094H0v-34l93-93.5L0%2037V0h31l96%2094%2093-94z'/%3e%3cpath%20fill='%23c8102e'%20d='m92%20162%205.5%2017L21%20256H0v-1.5zm62-6%2027%204%2075%2073.5V256zM256%200l-96%2098-2-22%2075-76zM0%20.5%2096.5%2095%2067%2091%200%2024.5z'/%3e%3cpath%20fill='%23fff'%20d='M88%200v256h80V0zM0%2088v80h256V88z'/%3e%3cpath%20fill='%23c8102e'%20d='M0%20104v48h256v-48zM104%200v256h48V0z'/%3e%3c/svg%3e")}.fi-om{background-image:url(/_astro/om.DcqxRdQL.svg)}.fi-om.fis{background-image:url(/_astro/om.nN8zP2Bu.svg)}.fi-pa{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pa'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='pa-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23pa-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M92.5%200h477.2v480H92.4z'/%3e%3cpath%20fill='%23db0000'%20fill-rule='evenodd'%20d='M323%203.6h358v221.7H323z'/%3e%3cpath%20fill='%230000ab'%20fill-rule='evenodd'%20d='M3.2%20225.3h319.9V480H3.2zm211.6-47.6-42-29.4-41.7%2029.6%2015.5-48L105%20100l51.6-.4%2016-48%2016.3%2047.9h51.6l-41.5%2030%2015.9%2048z'/%3e%3cpath%20fill='%23d80000'%20fill-rule='evenodd'%20d='m516.9%20413.9-42.4-27.7-42.1%2028%2015.6-45.6-42-28%2052-.5%2016.2-45.4%2016.4%2045.3h52l-41.8%2028.5%2016%2045.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pa.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pa'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pa-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23pa-a)'%3e%3cpath%20fill='%23fff'%20d='M-26-25h592.5v596H-26z'/%3e%3cpath%20fill='%23db0000'%20d='M255.3-20.4h312.1v275.2h-312z'/%3e%3cpath%20fill='%230000ab'%20d='M-54.5%20254.8h309.9V571H-54.5zM179%20181.6l-46.5-29.2-46.2%2029.5%2017.2-48-46.2-29.6%2057.1-.4%2017.7-47.8%2018.1%2047.7h57.1l-45.9%2030z'/%3e%3cpath%20fill='%23d80000'%20d='m435.2%20449-46.4-29.2-46.3%2029.5%2017.2-48-46.2-29.5%2057.2-.4%2017.7-47.8%2018%2047.7h57.2l-46%2030z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pe{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pe'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23D91023'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M213.3%200h213.4v480H213.3z'/%3e%3c/svg%3e")}.fi-pe.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pe'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23D91023'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M170.7%200h170.6v512H170.7z'/%3e%3c/svg%3e")}.fi-pf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pf'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='pf-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23pf-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M80%200h480v480H80z'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-width='2pt'%20d='M277.3%20340.8s10.8-8.8%2021.4-8.8%2013.4%207.3%2020.8%207.9c7.3.6%2013.4-7.3%2022.5-7.6s20.5%206.4%2020.5%206.4l-39.8%2012-45.4-10zm-22.9-13%20135.4.7s-11.7-12.7-25.5-13c-13.8-.2-10%206-20.5%206.8-10.6.9-13.2-6.4-22.9-6.2s-15.2%206.2-22.5%206.5-16.7-7.3-22.3-7-25.5%208.7-25.5%208.7l3.8%203.6zm-17.3-16%20167%20.5c2.7-3.8-8.2-12.9-18.1-13.7-8.2.3-14%208.5-20.8%208.8s-14.4-8.5-22-8.2-15.5%208.2-23.1%208.2-13.2-8.5-22.9-8.5-14%209.3-21.4%208.8-13.8-9.4-20.8-9.4-18.7%2010.5-21%2010c-2.4-.7%202.9%204.3%203.1%203.4z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='m301.3%20218.9%2038.4%2010.2v-54.8c-17.6%201-32.2-33.4-1.2-35.7-30.5-4.4-34%203.5-37.5%2012z'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-linecap='round'%20stroke-width='5'%20d='m277%20258.7%2086.7.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='4'%20d='m281.1%20238%2010.3%2013.7m-10.3%200%2011.1-13.5M287%20237l-.3%208.5m10.8-7.6%2010.3%2013.8m-10.3%200%2011.1-13.5m-5.2-1.2-.3%208.5m11.1-7.6%2010.3%2013.8m-10.3%200%2011.1-13.5m-5.2-1.2-.3%208.5m11.7-7.6%2010.2%2013.8m-10.2%200%2011.1-13.5m-5.3-1.2-.2%208.5m11-7.6%2010.3%2013.8m-10.2%200%2011.1-13.5M354%20237l-.3%208.5'/%3e%3cpath%20fill='%23ef7d08'%20fill-rule='evenodd'%20d='m218.7%20259.6%2036.9.3v-23.1l-42.2-2.1zm-1.8-32%2039.3%203.9-.3-16.4-38.4-15.3-.6%2027.9zm8-32.7%2030.1%2014.6%204.3-4.5s-2.8-1.9-2.6-3.7c0-1.7%202.8-2%202.8-4%200-1.7-3-2-3.1-3.7-.2-2%202.4-4%202.4-4l-27.2-23.7-6.8%2029zm198%2065h-39l-.3-22.6%2042.8-3.2zM384.2%20232l46.3-5.6-10-26.7-36.6%2015.6zm33.7-39.6L384.5%20210c-.5-2-.9-3.8-3.2-5.3%200%200%202-1.2%202-3.2s-2.6-2.4-2.6-3.5%202.4-2.2%202.6-4.9c-.3-1.8-2.6-4.4-2.2-4.9l26-19.8zm-72.4%2039.1%2016.7-.7.3-6.7zm-51-.5-17.5-.5v-7l17.6%207.5zm0-2-17.5-9v-11.8s-2%20.3-1.8-2c.1-4.9%2012.9%208.9%2019.4%2013.4zm51-1.1v-7.7s15.8-14.2%2019.1-16.9c0%203-1.8%205.2-1.8%205.2v11.2zM243%20163.8l17.8%2019.7c.4-1.8%204.5-2.1%208.6-1.8s7.3-.3%207.3%202.6-2%202.5-2%204.6%203%201.9%203%204.5-2.2%202.1-2.2%204.1c0%201.7%202.4%201.8%202.4%201.8l16.6%2016.1v-17.2l-34.2-53.7zm27.4-20.4%2023.3%2047.5s.2-43.8%204.1-46.1l-6.5-12zm101%201.9-26%2046.2V172s2.2-3.2-1.2-3-7.5-.2-7.5-.2l10.4-36.6zM398%20165c-.3.5-17.5%2018-17.5%2018-.8-2-6-1-11-1s-5.6%201.6-5.3%202.9c.5%203.3%202.2.8%202.2%204%200%203.1-2.4%202-2.7%204.2.3%202.7%203.8%202%201.7%204l-19.9%2019.2v-18.2l37.1-57.6z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='M309.8%20268.4c-8.3%2013.8-30.6%209.7-35.9%200-1.5-.4-.6-59.5-.6-59.5s-2.5-1.1-2.6-3%203.4-2%203.4-4.3-3.6-1.4-3.7-3.8c0-2.2%203.9-2%203.7-4-.2-2.4-4.3-2-4.5-4.2%200-1.7%203-3.2%203.8-4h-2.8l-6.4.1c-4.6%200%200%201%200%203.6%200%201.7-2.3%202.9-2.5%204.3-.1%201.6%203.2%202.6%203.3%204.5%200%201.6-3.3%201.7-3.2%203.3.2%202.5%203%203.1%202.9%204.7%200%201.5-3.6%202.1-3.7%203.3.2%202.4.6%2060.8.6%2060.8%205.7%2029.8%2038.8%2037.3%2048.2-1.8zm21.9%200c8.3%2013.8%2030.6%209.7%2035.8%200%201.6-.4.7-59.5.7-59.5s2.5-1.1%202.6-3-3.2-2-3.2-4.3%203.4-1.4%203.4-3.8c0-2.2-3.5-2-3.3-4.2s3-2%203.1-4.2c.1-1.9-1.7-3-2.6-3.8h2.7l6.4.1c4.5%200%200%201%200%203.6%200%201.7%202.3%202.9%202.5%204.3%200%201.6-3.2%202.6-3.3%204.5%200%201.6%203.3%201.7%203.2%203.3-.2%202.5-3%203.1-3%204.7.1%201.5%203.7%202.1%203.7%203.3l-.5%2060.8c-5.7%2029.8-38.9%2037.3-48.2-1.8z'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-width='2pt'%20d='M301.7%20295.6H339c.3-.3-8.4-13-18.6-12-11.5.3-19.3%2012-18.7%2012zm118.9-1h-51s6.6-3.8%208.4-7.4c3.3%201.8%202.4%203.6%209%203.9s12.9-7.5%2019.2-7.2%2014.4%2011%2014.4%2010.8zm-201%200h51s-6.6-3.8-8.4-7.4c-3.3%201.8-2.4%203.6-9%203.9s-13-7.5-19.2-7.2c-6.3.3-14.4%2011-14.4%2010.8zm3.8-16%2036.3.3s-2.3-5-2.6-11.1c-9.4-3.2-17%207-23.8%207.3-6.7.3-13.7-7.3-13.7-7.3zm194%200-36.4.3s2.3-5%202.6-11.1c9.4-3.2%2017%207%2023.8%207.3%206.7.3%2013.7-7.3%2013.7-7.3zM311%20279l18.4-.5s.3-5.6-9.3-5.6-8.8%206.4-9.1%206.1zm-11.2-7.9a17%2017%200%200%200%208.2-7.6l-12.6.3s-5.8%203.5-8.7%207.3zm40.8%200a17%2017%200%200%201-8.2-7.6l12.6.3s5.8%203.5%208.7%207.3z'/%3e%3cpath%20fill='%23de2010'%20fill-rule='evenodd'%20d='M-40%20360h720v120H-40zm0-360h720v120H-40z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pf'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pf-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23pf-a)'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'%20style='width:0'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-width='2pt'%20d='M210.4%20363.5s11.6-9.4%2022.8-9.4%2014.4%207.8%2022.2%208.4%2014.4-7.8%2024-8c9.8-.4%2022%206.8%2022%206.8L258.9%20374l-48.5-10.6zm-24.3-13.8%20144.3.7s-12.5-13.5-27.2-13.8-10.6%206.3-21.8%207.2-14.1-6.9-24.4-6.6-16.3%206.6-24%206.9c-7.9.3-17.9-7.8-23.8-7.5S182%20346%20182%20346zm-18.5-17.2%20178.1.7c2.9-4.1-8.7-13.8-19.3-14.7-8.8.3-15%209-22.2%209.3s-15.3-9-23.5-8.7c-8%20.3-16.5%208.8-24.6%208.8s-14.1-9.1-24.4-9.1-15%2010-22.8%209.4c-7.9-.7-14.7-10-22.2-10s-20%2011.2-22.5%2010.6%203.1%204.7%203.4%203.7z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='m236%20233.5%2041%2011V186c-18.8%201-34.4-35.6-1.3-38.1-32.4-4.8-36.2%203.7-40%2012.7z'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-linecap='round'%20stroke-width='5'%20d='m210.1%20276%2092.5.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='4'%20d='m214.5%20253.8%2011%2014.7m-11%200%2011.9-14.4m-5.6-1.3-.4%209.1m11.6-8.1%2011%2014.7m-11%200%2011.9-14.4m-5.6-1.3-.4%209.1m12-8.1%2010.8%2014.7m-10.9%200%2011.9-14.4m-5.6-1.3-.3%209.1m12.4-8.1%2011%2014.7m-11%200%2012-14.4m-5.7-1.3-.3%209.1m11.9-8.1%2010.9%2014.7m-11%200%2012-14.4m-5.7-1.3-.3%209.1'/%3e%3cpath%20fill='%23ef7d08'%20fill-rule='evenodd'%20d='m148%20277%2039.3.2v-24.7l-45-2.1%205.6%2026.5zm-2-34.1%2042%204-.4-17.5-41-16.2zm8.5-35%2032.2%2015.6%204.6-4.8s-3-2-2.8-4c0-1.8%203-2.1%203-4.2%200-1.9-3.3-2.1-3.3-4-.3-2%202.6-4.3%202.6-4.3L161.7%20177zm211.2%2069.3h-41.5l-.3-24%2045.6-3.5zm-41.2-29.7%2049.4-6-10.7-28.3-39%2016.5zm36-42.1L324.7%20224c-.5-2-1-4-3.4-5.6%200%200%202.2-1.3%202.2-3.5s-2.9-2.5-2.9-3.7%202.6-2.4%202.8-5.2c-.3-2-2.8-4.6-2.3-5.2l27.7-21.2%2011.5%2025.7zM283.1%20247l17.9-.8.3-7.2zm-54.3-.6L210%20246v-7.5zm-.1-2.2-18.7-9.6v-12.5s-2.2.3-1.9-2.2c.1-5.2%2013.8%209.5%2020.7%2014.3zm54.4-1.1V235s16.8-15.2%2020.4-18c0%203.1-2%205.5-2%205.5v12zM174%20174.7l18.9%2021c.5-2%204.8-2.2%209.2-2%204.4.4%207.9-.2%207.9%203%200%203-2.3%202.6-2.3%204.8s3.4%202%203.4%204.8-2.4%202.2-2.5%204.4c0%201.8%202.6%202%202.6%202l17.7%2017.1v-18.4l-36.5-57.3zm29-21.7%2024.8%2050.7s.3-46.8%204.4-49.3l-7-12.8zm107.7%202-27.6%2049.3v-20.8s2.3-3.5-1.3-3.2-8.1-.3-8.1-.3l11.1-39zm28.4%2021.1c-.3.6-18.7%2019.2-18.7%2019.2-.8-2.2-6.4-1.1-11.6-1.1-5.3%200-6%201.7-5.8%203%20.6%203.7%202.4%201%202.4%204.4%200%203.3-2.6%202-2.8%204.5.2%202.8%204%202.1%201.8%204.3l-21.3%2020.4v-19.4l39.6-61.5z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='2.5'%20d='M245.1%20286.3c-8.9%2014.7-32.7%2010.4-38.2%200-1.7-.4-.7-63.5-.7-63.5s-2.7-1.2-2.8-3.1%203.6-2.1%203.6-4.6-3.8-1.6-3.9-4c0-2.5%204.1-2.2%204-4.4-.3-2.5-4.6-2.1-4.8-4.5-.2-1.8%203-3.4%204-4.2h-9.9c-4.8%200%20.1%201.1%200%204%200%201.8-2.4%203-2.6%204.6%200%201.6%203.4%202.7%203.5%204.7%200%201.7-3.5%201.9-3.4%203.5.3%202.7%203.1%203.3%203.1%205%200%201.6-3.9%202.3-3.9%203.6l.6%2064.8c6%2031.8%2041.4%2039.8%2051.4-2zm23.3%200c9%2014.7%2032.7%2010.4%2038.3%200%201.7-.4.7-63.5.7-63.5s2.7-1.2%202.8-3.1-3.4-2.1-3.4-4.6%203.6-1.6%203.7-4c0-2.5-3.8-2.3-3.6-4.6.2-2.5%203.1-2.2%203.3-4.5.1-2-1.9-3.2-2.8-4h9.7c4.9%200%200%201.1%200%204%200%201.8%202.5%203%202.7%204.6%200%201.6-3.5%202.7-3.5%204.7%200%201.7%203.5%201.9%203.3%203.5-.2%202.7-3%203.3-3%205%200%201.6%203.9%202.3%203.9%203.6-.2%202.6-.6%2064.8-.6%2064.8-6.1%2031.8-41.4%2039.8-51.5-2z'/%3e%3cpath%20fill='%23083d9c'%20fill-rule='evenodd'%20stroke='%23083d9c'%20stroke-width='2pt'%20d='M236.5%20315.3h39.8c.3-.3-9-13.8-20-12.8-12.2.3-20.5%2012.8-19.8%2012.8zm126.8-1h-54.4s7-4.1%209-8c3.5%202%202.5%203.9%209.5%204.2s13.8-8%2020.5-7.7%2015.4%2011.8%2015.4%2011.5zm-214.4%200h54.4s-7-4.1-9-8c-3.5%202-2.5%203.9-9.6%204.2s-13.7-8-20.5-7.7c-6.7.3-15.3%2011.8-15.3%2011.5zm4-17%2038.8.2s-2.5-5.3-2.8-11.8c-10-3.5-18.2%207.5-25.3%207.8s-14.7-7.8-14.7-7.8l4%2011.5zm207%200-38.8.2s2.5-5.3%202.8-11.8c10-3.5%2018.1%207.5%2025.3%207.8s14.7-7.8%2014.7-7.8l-4%2011.5zm-113.5.2%2019.7-.6s.3-6-10-6-9.4%207-9.7%206.6zm-12-8.4c3.5-1.9%206.7-3.8%208.8-8.1l-13.4.3s-6.2%203.7-9.4%207.8zm43.5%200a18%2018%200%200%201-8.7-8.1l13.4.3s6.3%203.7%209.4%207.8z'/%3e%3cpath%20fill='%23de2010'%20fill-rule='evenodd'%20d='M-128%20384h768v128h-768zm0-384h768v128h-768z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pg'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23000001'%20d='m1.6%200-.5%20480h640z'/%3e%3cpath%20fill='red'%20d='m640.6%20480%20.5-480H1.1z'/%3e%3c/g%3e%3cpath%20fill='%23fc0'%20stroke='%23fc0'%20stroke-width='1.1'%20d='m178%2054-3.8-.2c-1.2-2.8-4.5-3.8-6.6-2.6L156%2051l7.1%203.1C165%2059%20171%2060%20171%2060c-.6%208.8-8.9-1.1-15.9%203.9-5%203-5%206.5-7.7%2012.3-.9%201.6-4.4%205.8-4.4%205.8l5.9-.5L147%2084l7-1-1.5%201.4c1%20.2%208-1.7%208-1.7L160%2085l8-2.9s1.6%201.3%203%201.9l1-4%204%201%201-4c6%208%208%2016%2019%2018l-1-4%208.7%204%20.9-1.7c4.8%203.4%208.7%203.3%2011.4%203.7l-2-5%202%201-3-8%203%201-4-6%201.5-1-.5-3c6%202%2014%205%2015%2012%201%2011-11%2014-19%2013%206%205%2017%203%2022-2%202-2%203-5%204-8%201%203%203%207%203%2011-1%209-13%2012-21%2013%209%205%2025-1%2026-14%200-11-7-16-10-21l-1-5.4%203%201.4s-1.8-3.3-2-4c0%200-3.1-8.5-4.2-10.4l2.2.4-8.2-10.3%202.3-.2S215.6%2044%20213%2043l3-1c-6-3-13-1-19%203l1-3-1.8.2v-3.5L198%2036l-3-1%202-5-3%201%201-5s-2.2%201-3.6.9l1.6-3.4c-1-1.5%200-4.5%200-4.5-7%201-8%202-12%208-6%2011-4%2016-3%2027z'%20transform='matrix(2.21989%200%200%202.21194%201.1%200)'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='red'%20stroke-width='1.4'%20d='M215.8%2070.4c.5.9%206.2%203.6%2010.4%206-1.1-4.6-9.4-5.6-10.4-6z'%20transform='matrix(2.21989%200%200%202.21194%201.1%200)'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='m175%20399-14.2-9-19%209.1%204.3-16.2-14.5-15.1%2016.7-1%2010-18.4%206.1%2015.5%2020.7%203.8-13%2010.6zm36.2-79-6.6-3-6.3%203.6%201-7.2-5.4-4.9%207.1-1.3%203-6.6%203.5%206.4%207.2.8-5%205.2zm32-45.2-14.5-7-13.9%207.8%202.3-15.7-11.8-10.8%2015.7-2.8%206.6-14.4%207.6%2014%2015.8%201.8-11%2011.5zm-65.8-63-17-8.5-16.5%209.1%202.8-18.6-13.8-13%2018.7-3%208-17%208.7%2016.7%2018.8%202.3-13.3%2013.4zm-60.8%2065.4-17-10-17%2010.3%204.3-19.3-15.1-13%2019.7-1.8%207.7-18.3%207.9%2018.2%2019.8%201.6-14.9%2013z'/%3e%3c/svg%3e")}.fi-pg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pg'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pg-a'%3e%3cpath%20fill-opacity='.7'%20d='M81.4%200h496v496h-496z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23pg-a)'%20transform='translate(-84)scale(1.0321)'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23000001'%20d='M.5%200%200%20496h659z'/%3e%3cpath%20fill='red'%20d='M658.5%20496%20659%200H0z'/%3e%3c/g%3e%3cpath%20fill='%23fc0'%20stroke='%23fc0'%20stroke-width='2.3'%20d='m406.9%20123.4-8.8-.4c-2.7-6.4-10.3-8.8-15-6-4.2.3-26.5-.4-26.5-.4l16.3%207.1c4%2010.9%2018%2013.5%2018%2013.5-1.2%2020-20.3-2.6-36.3%208.8-11.4%206.9-11.6%2015-17.8%2028.3a119%20119%200%200%201-10%2013.1l13.5-1-4.3%205.6%2016-2.3s-2.1%201.8-3.4%203.2c2.4.5%2018.3-3.7%2018.3-3.7l-1.1%205.1c8.1-3.3%2018.2-6.6%2018.2-6.6s3.6%203%206.9%204.3l2.3-9.1%209.1%202.3%202.3-9.2c13.7%2018.3%2018.3%2036.6%2043.4%2041.2l-2.3-9.2c7%203%2020%209.4%2020%209.4l2-4.2c10.9%207.8%2020%207.7%2026%208.5l-4.5-11.4%204.6%202.3-6.9-18.3%206.9%202.3-9.2-13.7%203.4-2.3-1-6.9c13.6%204.6%2032%2011.5%2034.2%2027.5%202.3%2025.1-25.2%2032-43.4%2029.7%2013.7%2011.4%2038.8%206.8%2050.3-4.6a47%2047%200%200%200%209.1-18.3c2.3%206.9%206.9%2016%206.9%2025.2-2.3%2020.5-29.8%2027.4-48%2029.7%2020.5%2011.4%2057.1-2.3%2059.4-32%200-25.2-16-36.6-22.9-48l-2.3-12.3c1%20.2%206.9%203.2%206.9%203.2s-4-7.6-4.6-9.2c0%200-7.1-19.4-9.7-23.7.4-.3%205.2.8%205.2.8l-18.8-23.5%205.3-.6S493%20100.5%20487%2098.3l6.9-2.3c-13.8-6.8-29.8-2.3-43.5%206.9l2.3-6.9-4.2.4v-7.8l4.2-6.3-6.8-2.3%204.5-11.4-6.8%202.3%202.3-11.5s-5.2%202.4-8.3%202c.1.3%203.7-7.7%203.7-7.7-2.2-3.4%200-10.3%200-10.3-16%202.3-18.3%204.6-27.4%2018.3-13.8%2025.2-9.2%2036.6-6.9%2061.7z'/%3e%3cpath%20fill='red'%20fill-rule='evenodd'%20stroke='red'%20stroke-width='3'%20d='M493.3%20161c1.2%202%2014.1%208.2%2023.9%2013.8-2.6-10.6-21.7-12.9-24-13.8z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='m179%20412.4-14.6-9.3-19.5%209.4%204.4-16.7-15-15.7%2017.3-1%2010.3-19%206.3%2016%2021.2%203.9-13.3%2011zm37.3-81.6-6.8-3.2-6.4%203.7%201-7.4-5.6-5%207.4-1.4%203-6.8%203.6%206.6%207.4.8-5.2%205.4zm32.9-46.8-14.8-7.2-14.4%208%202.3-16.2-12.1-11.2%2016.2-2.8%206.8-15%207.8%2014.6%2016.3%201.8-11.3%2012zm-67.7-65-17.4-8.8-17%209.4%202.8-19.2-14.2-13.4%2019.2-3.1%208.3-17.7%209%2017.3%2019.3%202.4-13.7%2014zM119%20286.5l-17.6-10.4-17.5%2010.7%204.5-20-15.6-13.3%2020.4-2%207.9-18.9%208%2018.8%2020.5%201.7-15.3%2013.5z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ph{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ph'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230038a8'%20d='M0%200h640v240H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%20240h640v240H0z'/%3e%3cpath%20fill='%23fff'%20d='M415.7%20240%200%20480V0'/%3e%3cpath%20fill='%23fcd116'%20d='M26.7%2042.4%2041%2055l16.6-9.2-7.4%2017.5%2014%2013-19-1.6-8.1%2017.2-4.3-18.5L14%2071l16.3-10zm323.8%20172.3.4%2019%2018%206.3-18%206.2-.4%2019-11.5-15.1-18.2%205.5%2010.8-15.6-10.8-15.6%2018.2%205.5zM37.2%20388.1l8%2017.2%2019-1.6-13.9%2013%207.4%2017.5-16.6-9.1-14.4%2012.4%203.6-18.7L14%20409l18.9-2.4zm114.2-249-6.2%206.2%203.1%2047-3%20.3-5.7-42.9-5.1%205%207.6%2038.4a48%2048%200%200%200-17.2%207.1l-21.7-32.4H96l26.4%2034.3-2.4%202-31.1-35.5h-8.8v8.8l35.4%2031-2%202.5-34.3-26.3v7.1l32.5%2021.7q-5.2%207.8-7.1%2017.2L66.3%20223l-5.1%205%2042.9%205.7q-.3%201.6-.3%203.1l-47-3-6.2%206.2%206.2%206.2%2047-3.1.3%203.1-42.9%205.7%205%205%2038.4-7.6a48%2048%200%200%200%207.1%2017.2l-32.5%2021.7v7.2l34.3-26.3%202%202.4-35.4%2031v8.8H89l31-35.4%202.5%202L96%20312.2h7.2l21.7-32.5q7.8%205.2%2017.2%207.1l-7.6%2038.4%205%205%205.7-42.9q1.5.3%203.1.3l-3%2047%206.1%206.2%206.3-6.2-3.1-47%203-.3%205.7%2043%205.1-5.1-7.6-38.4a48%2048%200%200%200%2017.2-7.1l21.7%2032.5h7.2l-26.4-34.3%202.4-2%2031.1%2035.4h8.8v-8.8l-35.4-31%202-2.4%2034.3%2026.3v-7.2l-32.5-21.7q5.2-7.8%207.1-17.2l38.3%207.6%205.1-5-42.9-5.7q.3-1.5.3-3.1l47%203%206.2-6.1-6.2-6.2-47%203-.3-3%2042.9-5.7-5-5-38.4%207.5a48%2048%200%200%200-7.1-17.2l32.5-21.7v-7.1l-34.3%2026.3-2-2.4%2035.4-31v-8.9H214l-31%2035.5-2.5-2%2026.4-34.3h-7.2L178%20200.2q-7.8-5.2-17.2-7.1l7.6-38.3-5-5-5.7%2042.8-3.1-.3%203-47z'/%3e%3c/svg%3e")}.fi-ph.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ph'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230038a8'%20d='M0%200h512v256H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%20256h512v256H0z'/%3e%3cpath%20fill='%23fff'%20d='M443.4%20256%200%20512V0'/%3e%3cpath%20fill='%23fcd116'%20d='m25.2%2044.4%2015.4%2013.3%2017.9-9.8-8%2018.7%2015%2014L45%2078.9l-8.6%2018.4-4.7-19.8-20.2-2.6L29%2064.4zM372.1%20229l.4%2020.3%2019.3%206.7-19.3%206.7-.4%2020.3-12.3-16.2-19.5%206L352%20256l-11.7-16.7%2019.5%205.9zM36.5%20414.7l8.6%2018.4%2020.3-1.7-14.8%2014%207.9%2018.7-17.9-9.8-15.4%2013.3%203.9-20-17.5-10.5%2020.2-2.6zM158.9%20148l-6.6%206.6%203.2%2050.3-3.3.3-6-45.9-5.5%205.4%208.2%2041a51%2051%200%200%200-18.4%207.7l-23.3-34.8h-7.7l28.2%2036.8-2.5%202.1-33.3-38h-9.4v9.5l38%2033.3-2.2%202.5-36.8-28.2v7.7l34.8%2023.3a51%2051%200%200%200-7.6%2018.4l-41-8.2-5.5%205.5%2046%206-.4%203.4-50.3-3.3-6.7%206.6%206.7%206.6%2050.3-3.2.3%203.3-45.9%206%205.4%205.5%2041-8.2a51%2051%200%200%200%207.7%2018.4l-34.8%2023.3v7.7l36.8-28.2%202.1%202.5-38%2033.3v9.4H92l33.3-38%202.5%202.2-28.2%2036.8h7.7l23.3-34.8a51%2051%200%200%200%2018.4%207.6l-8.2%2041%205.5%205.5%206-46%203.3.4-3.2%2050.3%206.6%206.7%206.6-6.7-3.2-50.3%203.3-.3%206%2045.9%205.5-5.4-8.2-41a51%2051%200%200%200%2018.4-7.7l23.3%2034.8h7.7L190%20296.6l2.5-2.1%2033.3%2038h9.4V323l-38-33.3%202.2-2.5%2036.8%2028.2v-7.7l-34.8-23.3A51%2051%200%200%200%20209%20266l41%208.2%205.5-5.5-46-6%20.4-3.3%2050.3%203.2%206.7-6.6-6.7-6.6-50.3%203.3q0-1.8-.3-3.4l45.9-6-5.4-5.5-41%208.2a51%2051%200%200%200-7.7-18.4l34.8-23.3v-7.7l-36.8%2028.2-2.1-2.5%2038-33.3v-9.4h-9.5l-33.3%2038-2.5-2.2%2028.2-36.8h-7.7l-23.3%2034.8a51%2051%200%200%200-18.4-7.6l8.2-41-5.5-5.5-6%2046-3.3-.4%203.2-50.3z'/%3e%3c/svg%3e")}.fi-pk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pk'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='pk-a'%3e%3cpath%20fill-opacity='.7'%20d='M-52.3%200h682.6v512H-52.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23pk-a)'%20transform='translate(49)scale(.9375)'%3e%3cpath%20fill='%230c590b'%20d='M-95%200h768v512H-95z'/%3e%3cpath%20fill='%23fff'%20d='M-95%200H97.5v512H-95z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='m403.7%20225.4-31.2-6.6-16.4%2027.3-3.4-31.6-31-7.2%2029-13-2.7-31.7%2021.4%2023.6%2029.3-12.4-15.9%2027.6%2021%2024z'/%3e%3cpath%20d='M415.4%20306a121%20121%200%200%201-161.3%2059.4%20122%20122%200%200%201-59.5-162.1A119%20119%200%200%201%20266%20139a156%20156%200%200%200-11.8%2010.9A112.3%20112.3%200%200%200%20415.5%20306z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-pk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pk'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pk-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23pk-a)'%3e%3cpath%20fill='%230c590b'%20d='M-95%200h768v512H-95z'/%3e%3cpath%20fill='%23fff'%20d='M-95%200H97.5v512H-95z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='m403.7%20225.4-31.2-6.6-16.4%2027.3-3.4-31.6-31-7.2%2029-13-2.7-31.7%2021.4%2023.6%2029.3-12.4-15.9%2027.6%2021%2024z'/%3e%3cpath%20d='M415.4%20306a121%20121%200%200%201-161.3%2059.4%20122%20122%200%200%201-59.5-162.1A119%20119%200%200%201%20266%20139a156%20156%200%200%200-11.8%2010.9A112.3%20112.3%200%200%200%20415.5%20306z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-pl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pl'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M640%20480H0V0h640z'/%3e%3cpath%20fill='%23dc143c'%20d='M640%20480H0V240h640z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pl'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23fff'%20d='M512%20512H0V0h512z'/%3e%3cpath%20fill='%23dc143c'%20d='M512%20512H0V256h512z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pm{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pm'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-pm.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pm'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-pn{background-image:url(/_astro/pn.DgxdtieE.svg)}.fi-pn.fis{background-image:url(/_astro/pn.BPAlH32D.svg)}.fi-pr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pr'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='pr-a'%3e%3cpath%20fill-opacity='.7'%20d='M-37.3%200h682.7v512H-37.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23pr-a)'%20transform='translate(35)scale(.9375)'%3e%3cpath%20fill='%23ed0000'%20d='M-37.3%200h768v512h-768z'/%3e%3cpath%20fill='%23fff'%20d='M-37.3%20102.4h768v102.4h-768zm0%20204.8h768v102.4h-768z'/%3e%3cpath%20fill='%230050f0'%20d='m-37.3%200%20440.7%20255.7L-37.3%20511z'/%3e%3cpath%20fill='%23fff'%20d='M156.4%20325.5%20109%20290l-47.2%2035.8%2017.6-58.1-47.2-36%2058.3-.4%2018.1-58%2018.5%2057.8%2058.3.1-46.9%2036.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pr'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pr-a'%3e%3cpath%20fill-opacity='.7'%20d='M51.6%200h708.7v708.7H51.6z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23pr-a)'%20transform='translate(-37.3)scale(.72249)'%3e%3cpath%20fill='%23ed0000'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20141.7h1063v141.8H0zm0%20283.5h1063v141.7H0z'/%3e%3cpath%20fill='%230050f0'%20d='m0%200%20610%20353.9L0%20707.3z'/%3e%3cpath%20fill='%23fff'%20d='m268.2%20450.5-65.7-49-65.3%2049.5%2024.3-80.5-65.3-49.7%2080.7-.7%2025-80.2%2025.6%2080%2080.7.1-64.9%2050.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ps{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20id='flag-icons-ps'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23009639'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v320H0z'/%3e%3cpath%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23ed2e38'%20d='m0%200%20320%20240L0%20480Z'/%3e%3c/svg%3e")}.fi-ps.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20id='flag-icons-ps'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23009639'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23ed2e38'%20d='m0%200%20341.3%20256L0%20512Z'/%3e%3c/svg%3e")}.fi-pt{background-image:url(/_astro/pt.DZ2ADgIR.svg)}.fi-pt.fis{background-image:url(/_astro/pt.BTevY6N2.svg)}.fi-pw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pw'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='pw-a'%3e%3cpath%20fill-opacity='.7'%20d='M-70.3%200h640v480h-640z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23pw-a)'%20transform='translate(70.3)'%3e%3cpath%20fill='%234aadd6'%20d='M-173.4%200h846.3v480h-846.3z'/%3e%3cpath%20fill='%23ffde00'%20d='M335.6%20232.1a135.9%20130.1%200%201%201-271.7%200%20135.9%20130.1%200%201%201%20271.7%200'/%3e%3c/g%3e%3c/svg%3e")}.fi-pw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-pw'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='pw-a'%3e%3cpath%20fill-opacity='.7'%20d='M61.7%204.2h170.8V175H61.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23pw-a)'%20transform='translate(-185%20-12.5)scale(2.9973)'%3e%3cpath%20fill='%234aadd6'%20d='M0%204.2h301.2V175H0z'/%3e%3cpath%20fill='%23ffde00'%20d='M185.9%2086.8a52%2052%200%200%201-53%2050.8%2052%2052%200%200%201-53.2-50.8c0-28%2023.8-50.8%2053.1-50.8s53%2022.7%2053%2050.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-py{background-image:url(/_astro/py.mNzh0mZC.svg)}.fi-py.fis{background-image:url(/_astro/py.BKi5dxWt.svg)}.fi-qa{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-qa'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%238d1b3d'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200v480h158.4l97.8-26.7-97.8-26.6%2097.7-26.7-97.7-26.7%2097.7-26.6-97.7-26.7%2097.8-26.7-97.8-26.6%2097.7-26.7-97.7-26.7%2097.7-26.6-97.7-26.7%2097.8-26.7-97.8-26.6L256.1%2080l-97.7-26.7%2097.8-26.6L158.3%200z'/%3e%3c/svg%3e")}.fi-qa.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-qa'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%238d1b3d'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200v512h113l104.2-28.4L113%20455l104.2-28.4L113%20398.2l104.2-28.4L113%20341.3%20217.2%20313%20113%20284.4%20217.2%20256%20113%20227.6%20217.2%20199%20113%20170.7l104.2-28.5L113%20113.8l104.2-28.5L113%2057l104.2-28.4L113%200z'/%3e%3c/svg%3e")}.fi-re{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-re'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-re.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-re'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2300267f'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23f31830'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ro{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ro'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%2300319c'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ffde00'%20d='M213.3%200h213.4v480H213.3z'/%3e%3cpath%20fill='%23de2110'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ro.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ro'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%2300319c'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ffde00'%20d='M170.7%200h170.6v512H170.7z'/%3e%3cpath%20fill='%23de2110'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-rs{background-image:url(/_astro/rs.BfwKwXtn.svg)}.fi-rs.fis{background-image:url(/_astro/rs.CnTO3ehk.svg)}.fi-ru{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ru'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%230039a6'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23d52b1e'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e")}.fi-ru.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ru'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%230039a6'%20d='M0%20170.7h512v170.6H0z'/%3e%3cpath%20fill='%23d52b1e'%20d='M0%20341.3h512V512H0z'/%3e%3c/svg%3e")}.fi-rw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-rw'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2320603d'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fad201'%20d='M0%200h640v360H0z'/%3e%3cpath%20fill='%2300a1de'%20d='M0%200h640v240H0z'/%3e%3cg%20transform='translate(511%20125.4)scale(.66667)'%3e%3cg%20id='rw-b'%3e%3cpath%20id='rw-a'%20fill='%23e5be01'%20d='M116.1%200%2035.7%204.7l76.4%2025.4-78.8-16.3L100.6%2058l-72-36.2L82%2082.1%2021.9%2028.6l36.2%2072-44.3-67.3L30%20112%204.7%2035.7%200%20116.1-1-1z'/%3e%3cuse%20xlink:href='%23rw-a'%20width='100%25'%20height='100%25'%20transform='scale(1%20-1)'/%3e%3c/g%3e%3cuse%20xlink:href='%23rw-b'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3ccircle%20r='34.3'%20fill='%23e5be01'%20stroke='%2300a1de'%20stroke-width='3.4'/%3e%3c/g%3e%3c/svg%3e")}.fi-rw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-rw'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2320603d'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fad201'%20d='M0%200h512v384H0z'/%3e%3cpath%20fill='%2300a1de'%20d='M0%200h512v256H0z'/%3e%3cg%20transform='translate(374.4%20133.8)scale(.7111)'%3e%3cg%20id='rw-b'%3e%3cpath%20id='rw-a'%20fill='%23e5be01'%20d='M116.1%200%2035.7%204.7l76.4%2025.4-78.8-16.3L100.6%2058l-72-36.2L82%2082.1%2021.9%2028.6l36.2%2072-44.3-67.3L30%20112%204.7%2035.7%200%20116.1-1-1z'/%3e%3cuse%20xlink:href='%23rw-a'%20width='100%25'%20height='100%25'%20transform='scale(1%20-1)'/%3e%3c/g%3e%3cuse%20xlink:href='%23rw-b'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3ccircle%20r='34.3'%20fill='%23e5be01'%20stroke='%2300a1de'%20stroke-width='3.4'/%3e%3c/g%3e%3c/svg%3e")}.fi-sa{background-image:url(/_astro/sa.Dh79zbT9.svg)}.fi-sa.fis{background-image:url(/_astro/sa.DnlyVVKx.svg)}.fi-sb{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sb'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='sb-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23sb-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%230000d6'%20d='M0%20507.2%20987.4%200H0z'/%3e%3cpath%20fill='%23006000'%20d='M1024%200%2027.2%20512H1024z'/%3e%3cpath%20fill='%23fc0'%20d='M1024%200h-54.9L0%20485.4V512h54.9L1024%2027.6z'/%3e%3cpath%20fill='%23fff'%20d='m71.4%209.1%2011.8%2034.5h38.5L90.6%2064.7l11.9%2034.4L71.4%2078%2040.3%2099.2l11.9-34.4-31.1-21.3h38.4zm191.1%200%2011.9%2034.5h38.5l-31.2%2021.2%2012%2034.4L262.4%2078l-31%2021.3%2011.9-34.4-31.2-21.3h38.5zm0%20144.5%2011.9%2034.5h38.5l-31.2%2021.2%2012%2034.4-31.2-21.3-31%2021.3%2011.9-34.4-31.2-21.3h38.5zm-95-71.4%2011.9%2034.4h38.4l-31%2021.3%2011.8%2034.4-31-21.3-31.2%2021.3%2012-34.4-31.2-21.3h38.5zm-96.1%2071.4%2011.8%2034.5h38.5l-31.1%2021.2%2011.9%2034.4-31.1-21.3-31.1%2021.3%2012-34.4L21%20188h38.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sb.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sb'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='sb-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h496v496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23sb-a)'%20transform='scale(1.0321)'%3e%3cpath%20fill='%230000d6'%20d='M0%20491.4%20956.7%200H0z'/%3e%3cpath%20fill='%23006000'%20d='M992.1%200%2026.3%20496h965.8z'/%3e%3cpath%20fill='%23fc0'%20d='M992.2%200H939L0%20470.3V496h53.1l939-469.4V0z'/%3e%3cpath%20fill='%23fff'%20d='m39%2096.1%2011.6-33.3-30.2-20.6h37.3L69.2%208.8l11.5%2033.4h37.2L87.8%2062.8%2099.3%2096%2069.2%2075.5zm185.2%200%2011.6-33.3-30.2-20.6h37.3l11.5-33.4%2011.5%2033.4H303l-30%2020.6L284.5%2096l-30.1-20.6zm0%20140%2011.6-33.3-30.2-20.6h37.3l11.5-33.4%2011.5%2033.4H303l-30%2020.6%2011.6%2033.3-30.1-20.6zm-92-69.2%2011.5-33.3-30.1-20.6h37.2l11.5-33.3%2011.5%2033.3h37.3l-30.2%2020.6%2011.5%2033.3-30-20.6zM39%20236.1l11.6-33.3-30.2-20.6h37.3l11.5-33.4%2011.5%2033.4h37.2l-30.1%2020.6L99.3%20236l-30.1-20.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sc'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0Z'/%3e%3cpath%20fill='%23d92223'%20d='M0%20480V0h640v160z'/%3e%3cpath%20fill='%23fcd955'%20d='M0%20480V0h426.7z'/%3e%3cpath%20fill='%23003d88'%20d='M0%20480V0h213.3z'/%3e%3cpath%20fill='%23007a39'%20d='m0%20480%20640-160v160z'/%3e%3c/svg%3e")}.fi-sc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sc'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0Z'/%3e%3cpath%20fill='%23d92223'%20d='M0%20512V0h512v170.7z'/%3e%3cpath%20fill='%23fcd955'%20d='M0%20512V0h341.3z'/%3e%3cpath%20fill='%23003d88'%20d='M0%20512V0h170.7z'/%3e%3cpath%20fill='%23007a39'%20d='m0%20512%20512-170.7V512Z'/%3e%3c/svg%3e")}.fi-sd{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sd'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='sd-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23sd-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23000001'%20d='M0%20341.3h1024V512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20170.6h1024v170.7H0z'/%3e%3cpath%20fill='red'%20d='M0%200h1024.8v170.7H0z'/%3e%3cpath%20fill='%23009a00'%20d='M0%200v512l341.3-256z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sd.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sd'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='sd-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h496v496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23sd-a)'%20transform='scale(1.0321)'%3e%3cpath%20fill='%23000001'%20d='M0%20330.7h992.1v165.4H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20165.3h992.1v165.4H0z'/%3e%3cpath%20fill='red'%20d='M0%200h992.9v165.4H0z'/%3e%3cpath%20fill='%23009a00'%20d='M0%200v496l330.7-248z'/%3e%3c/g%3e%3c/svg%3e")}.fi-se{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-se'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23005293'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fecb00'%20d='M176%200v192H0v96h176v192h96V288h368v-96H272V0z'/%3e%3c/svg%3e")}.fi-se.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-se'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23005293'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fecb00'%20d='M134%200v204.8H0v102.4h134V512h102.4V307.2H512V204.8H236.4V0z'/%3e%3c/svg%3e")}.fi-sg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sg'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='sg-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23sg-a)'%3e%3cpath%20fill='%23fff'%20d='M-20%200h720v480H-20z'/%3e%3cpath%20fill='%23df0000'%20d='M-20%200h720v240H-20z'/%3e%3cpath%20fill='%23fff'%20d='M146%2040.2a84.4%2084.4%200%200%200%20.8%20165.2%2086%2086%200%200%201-106.6-59%2086%2086%200%200%201%2059-106c16-4.6%2030.8-4.7%2046.9-.2z'/%3e%3cpath%20fill='%23fff'%20d='m133%20110%204.9%2015-13-9.2-12.8%209.4%204.7-15.2-12.8-9.3%2015.9-.2%205-15%205%2015h15.8zm17.5%2052%205%2015.1-13-9.2-12.9%209.3%204.8-15.1-12.8-9.4%2015.9-.1%204.9-15.1%205%2015h16zm58.5-.4%204.9%2015.2-13-9.3-12.8%209.3%204.7-15.1-12.8-9.3%2015.9-.2%205-15%205%2015h15.8zm17.4-51.6%204.9%2015.1-13-9.2-12.8%209.3%204.8-15.1-12.9-9.4%2016-.1%204.8-15.1%205%2015h16zm-46.3-34.3%205%2015.2-13-9.3-12.9%209.4%204.8-15.2-12.8-9.4%2015.8-.1%205-15.1%205%2015h16z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sg'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='sg-a'%3e%3cpath%20fill-opacity='.7'%20d='M27.7%200h708.6v708.7H27.7z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23sg-a)'%20transform='translate(-20)scale(.72249)'%3e%3cpath%20fill='%23fff'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%23df0000'%20d='M0%200h1063v354.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M245.2%2059.4a124.6%20124.6%200%200%200%201.1%20243.9%20126.9%20126.9%200%201%201-1.1-243.9'/%3e%3cpath%20fill='%23fff'%20d='m202%20162.4-18.9-13.8%2023.5-.2%207.2-22.3%207.5%2022.3h23.4l-18.8%2014%207.2%2022.3L214%20171l-19%2013.8zm26%2076.9-19-13.8%2023.5-.2%207.3-22.3%207.4%2022.2h23.5l-19%2014%207.3%2022.3-19-13.6-19%2013.8zm86.3-.6-19-13.8%2023.4-.2%207.3-22.3%207.4%2022.3H357l-18.9%2014%207.3%2022.3-19.1-13.7-19%2013.8zm25.7-76.2-19-13.8%2023.5-.2%207.2-22.3%207.5%2022.2h23.4l-18.8%2014%207.2%2022.3-19.1-13.6-19%2013.8zM271.7%20112l-19-13.8%2023.5-.2%207.3-22.3%207.4%2022.3h23.5l-19%2014%207.3%2022.2-19-13.6-19%2013.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sh{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sh'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23012169'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23FFF'%20d='m75%200%20244%20181L562%200h78v62L400%20241l240%20178v61h-80L320%20301%2081%20480H0v-60l239-178L0%2064V0z'/%3e%3cpath%20fill='%23C8102E'%20d='m424%20281%20216%20159v40L369%20281zm-184%2020%206%2035L54%20480H0zM640%200v3L391%20191l2-44L590%200zM0%200l239%20176h-60L0%2042z'/%3e%3cpath%20fill='%23FFF'%20d='M241%200v480h160V0zM0%20160v160h640V160z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%20193v96h640v-96zM273%200v480h96V0z'/%3e%3c/svg%3e")}.fi-sh.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sh'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23012169'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23FFF'%20d='M512%200v64L322%20256l190%20187v69h-67L254%20324%2068%20512H0v-68l186-187L0%2074V0h62l192%20188L440%200z'/%3e%3cpath%20fill='%23C8102E'%20d='m184%20324%2011%2034L42%20512H0v-3zm124-12%2054%208%20150%20147v45zM512%200%20320%20196l-4-44L466%200zM0%201l193%20189-59-8L0%2049z'/%3e%3cpath%20fill='%23FFF'%20d='M176%200v512h160V0zM0%20176v160h512V176z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%20208v96h512v-96zM208%200v512h96V0z'/%3e%3c/svg%3e")}.fi-si{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-si'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='si-a'%3e%3cpath%20fill-opacity='.7'%20d='M-15%200h682.6v512H-15.1z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23si-a)'%20transform='translate(14.1)scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M-62%200H962v512H-62z'/%3e%3cpath%20fill='%23d50000'%20d='M-62%20341.3H962V512H-62z'/%3e%3cpath%20fill='%230000bf'%20d='M-62%20170.7H962v170.6H-62z'/%3e%3cpath%20fill='%23d50000'%20d='M228.4%2093c-4%2061.6-6.4%2095.4-15.7%20111-10.2%2016.8-20%2029.1-59.7%2044-39.6-14.9-49.4-27.2-59.6-44-9.4-15.6-11.7-49.4-15.7-111l5.8-2c11.8-3.6%2020.6-6.5%2027.1-7.8%209.3-2%2017.3-4.2%2042.3-4.7%2025%20.4%2033%202.8%2042.3%204.8q9.7%202.1%2027.3%207.7z'/%3e%3cpath%20fill='%230000bf'%20d='M222.6%2091c-3.8%2061.5-7%2089.7-12%20103.2-9.6%2023.2-24.8%2035.9-57.6%2048-32.8-12.1-48-24.8-57.7-48-5-13.6-8-41.7-11.8-103.3q17.4-5.6%2027.1-7.7c9.3-2%2017.3-4.3%2042.3-4.7%2025%20.4%2033%202.7%2042.3%204.7a284%20284%200%200%201%2027.4%207.7z'/%3e%3cpath%20fill='%23ffdf00'%20d='m153%20109.8%201.5%203.7%207%201-4.5%202.7%204.3%202.9-6.3%201-2%203.4-2-3.5-6-.8%204-3-4.2-2.7%206.7-1z'/%3e%3cpath%20fill='%23fff'%20d='m208.3%20179.6-3.9-3-2.7-4.6-5.4-4.7-2.9-4.7-5.4-4.9-2.6-4.7-3-2.3-1.8-1.9-5%204.3-2.6%204.7-3.3%203-3.7-2.9-2.7-4.8-10.3-18.3-10.3%2018.3-2.7%204.8-3.7%202.9-3.3-3-2.7-4.7-4.9-4.3-1.9%201.8-2.9%202.4-2.6%204.7-5.4%204.9-2.9%204.7-5.4%204.7-2.7%204.6-3.9%203a66%2066%200%200%200%2018.6%2036.3%20107%20107%200%200%200%2036.6%2020.5%20104%20104%200%200%200%2036.8-20.5c5.8-6%2016.6-19.3%2018.6-36.3'/%3e%3cpath%20fill='%23ffdf00'%20d='m169.4%2083.9%201.6%203.7%207%201-4.6%202.7%204.4%202.9-6.3%201-2%203.4-2-3.5-6-.8%204-3-4.2-2.7%206.6-1zm-33%200%201.6%203.7%207%20.9-4.5%202.7%204.3%202.9-6.3%201-2%203.4-2-3.4-6-.9%204-3-4.2-2.7%206.7-1z'/%3e%3cpath%20fill='%230000bf'%20d='M199.7%20203h-7.4l-7-.5-8.3-4h-9.4l-8.1%204-6.5.6-6.4-.6-8.1-4H129l-8.4%204-6.9.6-7.6-.1-3.6-6.2.1-.2%2011.2%201.9%206.9-.5%208.3-4.1h9.4l8.2%204%206.4.6%206.5-.6%208.1-4h9.4l8.4%204%206.9.6%2010.8-2%20.2.4zm-86.4%209.5%207.4-.5%208.3-4h9.4l8.2%204%206.4.5%206.4-.5%208.2-4h9.4l8.3%204%207.5.5%204.8-6h-.1l-5.2%201.4-6.9-.5-8.3-4h-9.4l-8.2%204-6.4.6-6.5-.6-8.1-4H129l-8.4%204-6.9.6-5-1.3v.2l4.5%205.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-si.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-si'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='si-a'%3e%3cpath%20fill-opacity='.7'%20d='M60.2%200h497.3v497.3H60.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23si-a)'%20transform='translate(-62)scale(1.0295)'%3e%3cpath%20fill='%23fff'%20d='M0%200h994.7v497.3H0z'/%3e%3cpath%20fill='%23d50000'%20d='M0%20331.6h994.7v165.7H0z'/%3e%3cpath%20fill='%230000bf'%20d='M0%20165.8h994.7v165.8H0z'/%3e%3cpath%20fill='%23d50000'%20d='M282%2090.3c-3.9%2059.9-6.1%2092.7-15.2%20107.9-9.9%2016.3-19.5%2028.2-58%2042.6-38.4-14.4-48-26.3-57.9-42.6-9-15.2-11.3-48-15.2-107.9l5.7-1.9c11.4-3.5%2020-6.3%2026.3-7.5%209-2%2016.7-4.1%2041-4.6%2024.3.4%2032%202.7%2041%204.6q9.6%202.1%2026.6%207.5z'/%3e%3cpath%20fill='%230000bf'%20d='M276.4%2088.3c-3.7%2059.8-6.7%2087.2-11.6%20100.3-9.3%2022.6-24.1%2035-56%2046.7-31.8-11.8-46.6-24.1-56-46.7-4.8-13.1-7.9-40.4-11.4-100.3q16.8-5.4%2026.3-7.5c9-1.9%2016.7-4.2%2041-4.6%2024.3.4%2032.1%202.7%2041.1%204.6q9.6%202.1%2026.6%207.5'/%3e%3cpath%20fill='%23ffdf00'%20d='m208.8%20106.6%201.5%203.7%206.7.9-4.3%202.6%204.2%202.8-6.1%201-1.9%203.3-2-3.4-6-.8%204-2.9-4-2.6%206.4-1z'/%3e%3cpath%20fill='%23fff'%20d='m262.5%20174.5-3.7-3-2.7-4.4-5.2-4.6-2.8-4.6-5.2-4.7-2.6-4.6-2.8-2.3-1.9-1.7-4.7%204.1-2.6%204.6-3.3%202.9-3.5-2.8-2.7-4.7-10-17.7-10%2017.7-2.6%204.7-3.6%202.8-3.2-3-2.6-4.5-4.7-4.1-1.9%201.7-2.8%202.3-2.6%204.6-5.2%204.7-2.8%204.6-5.3%204.6-2.6%204.4-3.7%203a64%2064%200%200%200%2018%2035.2c6.4%206.1%2019.5%2014.4%2035.5%2019.9a101%20101%200%200%200%2035.7-20%2064%2064%200%200%200%2018.1-35.1'/%3e%3cpath%20fill='%23ffdf00'%20d='m224.8%2081.5%201.5%203.6%206.7%201-4.3%202.5%204.2%202.9-6.1%201-1.9%203.3-2-3.4-5.9-.8%204-3-4.1-2.5%206.4-1zm-32%200%201.5%203.5%206.7%201-4.3%202.6%204.2%202.8-6.1%201-1.9%203.3-2.1-3.4-5.8-.8%204-2.9-4.1-2.6%206.4-1%201.5-3.6z'/%3e%3cpath%20fill='%230000bf'%20d='M254.2%20197.2H247l-6.7-.5-8.1-4-9.2.1-7.9%203.9-6.2.5-6.3-.5-7.9-3.9h-9.1l-8.1%204-6.7.4h-7.4l-3.5-6%20.1-.2%2010.9%201.8%206.6-.5%208.1-4h9.2l8%204%206.2.5%206.2-.6%208-3.8h9l8.2%203.9%206.7.5%2010.5-1.9.2.3zm-84%209.3%207.2-.5%208.1-4h9.1l8%203.9%206.2.6%206.2-.6%208-3.9h9.1l8.1%204%207.3.5%204.7-5.8-.2-.2-5%201.5-6.7-.5-8.1-4h-9.1l-8%204-6.2.5-6.2-.5-8-4h-9.1l-8.1%204-6.7.5-5-1.2v.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sj{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sj'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ef2b2d'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M180%200h120v480H180z'/%3e%3cpath%20fill='%23fff'%20d='M0%20180h640v120H0z'/%3e%3cpath%20fill='%23002868'%20d='M210%200h60v480h-60z'/%3e%3cpath%20fill='%23002868'%20d='M0%20210h640v60H0z'/%3e%3c/svg%3e")}.fi-sj.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sj'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ef2b2d'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M128%200h128v512H128z'/%3e%3cpath%20fill='%23fff'%20d='M0%20192h512v128H0z'/%3e%3cpath%20fill='%23002868'%20d='M160%200h64v512h-64z'/%3e%3cpath%20fill='%23002868'%20d='M0%20224h512v64H0z'/%3e%3c/svg%3e")}.fi-sk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sk'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ee1c25'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%230b4ea2'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M233%20370.8c-43-20.7-104.6-61.9-104.6-143.2%200-81.4%204-118.4%204-118.4h201.3s3.9%2037%203.9%20118.4S276%20350%20233%20370.8'/%3e%3cpath%20fill='%23ee1c25'%20d='M233%20360c-39.5-19-96-56.8-96-131.4s3.6-108.6%203.6-108.6h184.8s3.5%2034%203.5%20108.6C329%20303.3%20272.5%20341%20233%20360'/%3e%3cpath%20fill='%23fff'%20d='M241.4%20209c10.7.2%2031.6.6%2050.1-5.6%200%200-.4%206.7-.4%2014.4s.5%2014.4.5%2014.4c-17-5.7-38.1-5.8-50.2-5.7v41.2h-16.8v-41.2c-12-.1-33.1%200-50.1%205.7%200%200%20.5-6.7.5-14.4s-.5-14.4-.5-14.4c18.5%206.2%2039.4%205.8%2050%205.6v-25.9c-9.7%200-23.7.4-39.6%205.7%200%200%20.5-6.6.5-14.4%200-7.7-.5-14.4-.5-14.4%2015.9%205.3%2029.9%205.8%2039.6%205.7-.5-16.4-5.3-37-5.3-37s9.9.7%2013.8.7%2013.8-.7%2013.8-.7-4.8%2020.6-5.3%2037c9.7.1%2023.7-.4%2039.6-5.7%200%200-.5%206.7-.5%2014.4s.5%2014.4.5%2014.4a119%20119%200%200%200-39.7-5.7v26z'/%3e%3cpath%20fill='%230b4ea2'%20d='M233%20263.3c-19.9%200-30.5%2027.5-30.5%2027.5s-6-13-22.2-13c-11%200-19%209.7-24.2%2018.8%2020%2031.7%2051.9%2051.3%2076.9%2063.4%2025-12%2057-31.7%2076.9-63.4-5.2-9-13.2-18.8-24.2-18.8-16.2%200-22.2%2013-22.2%2013S253%20263.3%20233%20263.3'/%3e%3c/svg%3e")}.fi-sk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sk'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23ee1c25'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%230b4ea2'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23fff'%20d='M203.2%20395.5c-45.9-22-111.5-66-111.5-152.8s4.1-126.2%204.1-126.2h214.8s4.2%2039.4%204.2%20126.2S249%20373.4%20203.2%20395.5'/%3e%3cpath%20fill='%23ee1c25'%20d='M203.2%20384c-42.1-20.3-102.3-60.5-102.3-140.2s3.8-115.8%203.8-115.8h197s3.8%2036.2%203.8%20115.8-60.2%20120-102.3%20140.2'/%3e%3cpath%20fill='%23fff'%20d='M212.2%20223c11.4.2%2033.7.6%2053.5-6%200%200-.6%207-.6%2015.3s.6%2015.3.6%2015.3a172%20172%200%200%200-53.5-6v44h-18v-44a172%20172%200%200%200-53.5%206s.6-7%20.6-15.3-.6-15.3-.6-15.3c19.9%206.6%2042.1%206.2%2053.5%206v-27.7a128%20128%200%200%200-42.3%206.1s.5-7%20.5-15.3-.5-15.4-.5-15.4c17%205.7%2031.9%206.2%2042.2%206-.5-17.4-5.6-39.4-5.6-39.4s10.5.8%2014.7.8%2014.7-.8%2014.7-.8-5.1%2022-5.7%2039.5a126%20126%200%200%200%2042.3-6s-.5%207-.5%2015.3.5%2015.3.5%2015.3c-17-5.7-31.9-6.1-42.3-6z'/%3e%3cpath%20fill='%230b4ea2'%20d='M203.2%20280.8c-21.2%200-32.6%2029.4-32.6%2029.4s-6.3-14-23.6-14c-11.7%200-20.3%2010.5-25.8%2020.2%2021.3%2033.8%2055.3%2054.7%2082%2067.6%2026.7-12.9%2060.7-33.8%2082-67.7-5.5-9.6-14.1-20-25.8-20-17.3%200-23.6%2014-23.6%2014s-11.4-29.5-32.6-29.5'/%3e%3c/svg%3e")}.fi-sl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sl'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%230000cd'%20d='M0%20320.3h640V480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160.7h640v159.6H0z'/%3e%3cpath%20fill='%2300cd00'%20d='M0%200h640v160.7H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sl'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='sl-a'%3e%3crect%20width='384'%20height='512'%20rx='4.6'%20ry='7.6'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23sl-a)'%20transform='scale(1.33333%201)'%3e%3cpath%20fill='%230000cd'%20d='M0%20341.7h512V512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20171.4h512v170.3H0z'/%3e%3cpath%20fill='%2300cd00'%20d='M0%200h512v171.4H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sm{background-image:url(/_astro/sm.DGBIRFB_.svg)}.fi-sm.fis{background-image:url(/_astro/sm.BKrUHzrq.svg)}.fi-sn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sn'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230b7226'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ff0'%20d='M213.3%200h213.3v480H213.3z'/%3e%3cpath%20fill='%23bc0000'%20d='M426.6%200H640v480H426.6z'/%3e%3c/g%3e%3cpath%20fill='%230b7226'%20d='M342%20218.8h71.8l-56.6%2043.6%2020.7%2069.3-56.6-43.6-56.6%2041.6%2020.7-67.3-56.6-43.6h69.8l22.7-71.3z'/%3e%3c/svg%3e")}.fi-sn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sn'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230b7226'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23ff0'%20d='M170.7%200h170.6v512H170.7z'/%3e%3cpath%20fill='%23bc0000'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3cpath%20fill='%230b7226'%20d='m197%20351.7%2022-71.7-60.4-46.5h74.5l24.2-76%2022.1%2076H356L295.6%20280l22.1%2074-60.3-46.5z'/%3e%3c/svg%3e")}.fi-so{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-so'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='so-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23so-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%2340a6ff'%20d='M-128%200h768v512h-768z'/%3e%3cpath%20fill='%23fff'%20d='M336.5%20381.2%20254%20327.7l-82.1%2054%2030.5-87.7-82-54.2L222%20239l31.4-87.5%2032.1%2087.3%20101.4.1-81.5%2054.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-so.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-so'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='so-a'%3e%3cpath%20fill-opacity='.7'%20d='M177.2%200h708.6v708.7H177.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23so-a)'%20transform='translate(-128)scale(.72249)'%3e%3cpath%20fill='%2340a6ff'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%23fff'%20d='m643%20527.6-114.3-74-113.6%2074.8%2042.3-121.5-113.5-75%20140.4-1%2043.5-121.1%2044.5%20120.8%20140.3.1-112.9%2075.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-sr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sr'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23377e3f'%20d='M.1%200h640v480H.1z'/%3e%3cpath%20fill='%23fff'%20d='M.1%2096h640v288H.1z'/%3e%3cpath%20fill='%23b40a2d'%20d='M.1%20144h640v192H.1z'/%3e%3cpath%20fill='%23ecc81d'%20d='m320%20153.2%2056.4%20173.6-147.7-107.3h182.6L263.6%20326.8z'/%3e%3c/svg%3e")}.fi-sr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sr'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23377e3f'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20102.4h512v307.2H0z'/%3e%3cpath%20fill='%23b40a2d'%20d='M0%20153.6h512v204.8H0z'/%3e%3cpath%20fill='%23ecc81d'%20d='m255.9%20163.4%2060.2%20185.2-157.6-114.5h194.8L195.7%20348.6z'/%3e%3c/svg%3e")}.fi-ss{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ss'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23078930'%20d='M0%20336h640v144H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20144h640v192H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h640v144H0z'/%3e%3cpath%20fill='%23da121a'%20d='M0%20168h640v144H0z'/%3e%3cpath%20fill='%230f47af'%20d='m0%200%20415.7%20240L0%20480z'/%3e%3cpath%20fill='%23fcdd09'%20d='M200.7%20194.8%2061.7%20240l139%2045.1L114.9%20167v146z'/%3e%3c/svg%3e")}.fi-ss.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ss'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23078930'%20d='M0%20358.4h512V512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20153.6h512v204.8H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h512v153.6H0z'/%3e%3cpath%20fill='%23da121a'%20d='M0%20179.2h512v153.6H0z'/%3e%3cpath%20fill='%230f47af'%20d='m0%200%20433%20256L0%20512z'/%3e%3cpath%20fill='%23fcdd09'%20d='M209%20207.8%2064.4%20256l144.8%2048.1-89.5-126v155.8z'/%3e%3c/svg%3e")}.fi-st{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-st'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2312ad2b'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23ffce00'%20d='M0%20137.1h640V343H0z'/%3e%3cpath%20fill='%23d21034'%20d='M0%200v480l240-240'/%3e%3cg%20id='st-c'%20transform='translate(351.6%20240)scale(.34286)'%3e%3cg%20id='st-b'%3e%3cpath%20id='st-a'%20fill='%23000001'%20d='M0-200V0h100'%20transform='rotate(18%200%20-200)'/%3e%3cuse%20xlink:href='%23st-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23st-c'%20width='100%25'%20height='100%25'%20x='700'%20transform='translate(-523.2)'/%3e%3c/svg%3e")}.fi-st.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-st'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2312ad2b'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23ffce00'%20d='M0%20146.3h512v219.4H0z'/%3e%3cpath%20fill='%23d21034'%20d='M0%200v512l192-256'/%3e%3cg%20id='st-c'%20transform='translate(276.9%20261.5)scale(.33167)'%3e%3cg%20id='st-b'%3e%3cpath%20id='st-a'%20fill='%23000001'%20d='M0-200V0h100'%20transform='rotate(18%200%20-200)'/%3e%3cuse%20xlink:href='%23st-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(-144)'/%3e%3cuse%20xlink:href='%23st-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23st-c'%20width='100%25'%20height='100%25'%20x='700'%20transform='translate(-550.9)'/%3e%3c/svg%3e")}.fi-sv{background-image:url(/_astro/sv.CJIHhYwF.svg)}.fi-sv.fis{background-image:url(/_astro/sv.RZ39q5hO.svg)}.fi-sx{background-image:url(/_astro/sx.nDhIaDNb.svg)}.fi-sx.fis{background-image:url(/_astro/sx.RKKs0ph6.svg)}.fi-sy{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20id='flag-icons-sy'%20viewBox='0%200%20640%20480'%3e%3cpath%20d='M0%200h640v480H0Z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v320H0Z'/%3e%3cpath%20fill='%23007a3d'%20d='M0%200h640v160H0Z'/%3e%3cpath%20fill='%23ce1126'%20d='m101%20300%2039-120%2039%20120-102-74.2h126M461%20300l39-120%2039%20120-102-74.2h126M281%20300l39-120%2039%20120-102.1-74.2h126.2'/%3e%3c/svg%3e")}.fi-sy.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20id='flag-icons-sy'%20viewBox='0%200%20512%20512'%3e%3cpath%20d='M0%200h512v512H0Z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v341.3H0Z'/%3e%3cpath%20fill='%23007a3d'%20d='M0%200h512v170.7H0Z'/%3e%3cpath%20fill='%23ce1126'%20d='M26.3%20317.9%2067.2%20192%20108%20317.9%201%20240h132.4m270.5%2077.8L445%20192l40.8%20125.9-107-77.8H511m-295.9%2077.8L256%20192l40.9%20125.9-107-77.8h132.3'/%3e%3c/svg%3e")}.fi-sz{background-image:url(/_astro/sz.qxMwa2gs.svg)}.fi-sz.fis{background-image:url(/_astro/sz.D39eIL5d.svg)}.fi-tc{background-image:url(/_astro/tc.dtelpZmc.svg)}.fi-tc.fis{background-image:url(/_astro/tc.CJHJmJj1.svg)}.fi-td{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-td'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23002664'%20d='M0%200h214v480H0z'/%3e%3cpath%20fill='%23c60c30'%20d='M426%200h214v480H426z'/%3e%3cpath%20fill='%23fecb00'%20d='M214%200h212v480H214z'/%3e%3c/g%3e%3c/svg%3e")}.fi-td.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-td'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23002664'%20d='M0%200h171.2v512H0z'/%3e%3cpath%20fill='%23c60c30'%20d='M340.8%200H512v512H340.8z'/%3e%3cpath%20fill='%23fecb00'%20d='M171.2%200h169.6v512H171.2z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-tf'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='tf-a'%20fill='%23fff'%20d='m0-21%2012.3%2038L-20-6.5h40L-12.3%2017z'/%3e%3c/defs%3e%3cpath%20fill='%23002395'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h292.8v196.8H0z'/%3e%3cpath%20fill='%23002395'%20d='M0%200h96v192H0z'/%3e%3cpath%20fill='%23ed2939'%20d='M192%200h96v192h-96z'/%3e%3cpath%20fill='%23fff'%20d='m426%20219.6%2015.4%2024.6h44V330l-33-51.6-44.4%2070.8h21.6l22.8-40.8%2046.8%2084%2046.8-84%2022.8%2040.8h21.6L546%20278.4%20513%20330v-47.4h19.8l14.7-23.4H513v-15h44l15.4-24.6zm51.6%20105h-48v16.8h48zm91.2%200h-48v16.8h48z'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='416'%20y='362'%20transform='scale(1.2)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='371'%20y='328'%20transform='scale(1.2)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='461'%20y='328'%20transform='scale(1.2)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='333'%20y='227'%20transform='scale(1.2)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='499'%20y='227'%20transform='scale(1.2)'/%3e%3c/svg%3e")}.fi-tf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-tf'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cpath%20id='tf-a'%20fill='%23fff'%20d='m0-21%2012.3%2038L-20-6.5h40L-12.3%2017z'/%3e%3c/defs%3e%3cpath%20fill='%23002395'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h312.3v210H0z'/%3e%3cpath%20fill='%23002395'%20d='M0%200h102.4v204.8H0z'/%3e%3cpath%20fill='%23ed2939'%20d='M204.8%200h102.4v204.8H204.8z'/%3e%3cpath%20fill='%23fff'%20d='m282.4%20234.2%2016.5%2026.3h46.9V352l-35.3-55-47.3%2075.5h23l24.4-43.5%2049.9%2089.6%2049.9-89.6%2024.3%2043.5h23L410.5%20297l-35.2%2055v-50.6h21.1l15.7-25h-36.8v-16h46.9l16.5-26.2zm55%20112h-51.2v18h51.2zm97.3%200h-51.2v18h51.2z'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='416'%20y='362'%20transform='translate(-172)scale(1.28)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='371'%20y='328'%20transform='translate(-172)scale(1.28)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='461'%20y='328'%20transform='translate(-172)scale(1.28)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='333'%20y='227'%20transform='translate(-172)scale(1.28)'/%3e%3cuse%20xlink:href='%23tf-a'%20width='100%25'%20height='100%25'%20x='499'%20y='227'%20transform='translate(-172)scale(1.28)'/%3e%3c/svg%3e")}.fi-tg{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tg'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='tg-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23tg-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23ffe300'%20d='M0%200h767.6v512H0z'/%3e%3cpath%20fill='%23118600'%20d='M0%20208.1h767.6V311H0zM0%20.2h767.6v102.9H0z'/%3e%3cpath%20fill='%23d80000'%20d='M0%20.3h306.5v310.6H0z'/%3e%3cpath%20fill='%23fff'%20d='M134.4%20128.4c0-.8%2018.9-53%2018.9-53l17%2052.2s57.4%201.7%2057.4.8-45.3%2034.3-45.3%2034.3%2021.4%2060%2020.5%2058.2-49.6-36-49.6-36-49.7%2034.3-48.8%2034.3c.8%200%2018.8-56.5%2018.8-56.5l-44.5-33.4z'/%3e%3cpath%20fill='%23118600'%20d='M0%20409.2h767.6V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tg.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tg'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='tg-a'%3e%3cpath%20fill-opacity='.7'%20d='M0-.2h496.3V496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23tg-a)'%20transform='translate(0%20.3)scale(1.0316)'%3e%3cpath%20fill='%23ffe300'%20d='M0-.2h744V496H0z'/%3e%3cpath%20fill='%23118600'%20d='M0%20201.5h744v99.7H0zM0%200h744v99.7H0z'/%3e%3cpath%20fill='%23d80000'%20d='M0%200h297.1v301.2H0z'/%3e%3cpath%20fill='%23fff'%20d='M130.3%20124.3c0-.9%2018.3-51.5%2018.3-51.5l16.6%2050.6s55.6%201.7%2055.6.8-44%2033.2-44%2033.2%2020.7%2058.1%2019.9%2056.5-48.1-34.9-48.1-34.9-48.2%2033.2-47.3%2033.2%2018.2-54.7%2018.2-54.7L76.4%20125z'/%3e%3cpath%20fill='%23118600'%20d='M0%20396.4h744v99.7H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-th{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-th'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23f4f5f8'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%232d2a4a'%20d='M0%20162.5h640v160H0z'/%3e%3cpath%20fill='%23a51931'%20d='M0%200h640v82.5H0zm0%20400h640v80H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-th.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-th'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23f4f5f8'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%232d2a4a'%20d='M0%20173.4h512V344H0z'/%3e%3cpath%20fill='%23a51931'%20d='M0%200h512v88H0zm0%20426.7h512V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tj{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-tj'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23060'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h640v342.9H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%200h640v137.1H0z'/%3e%3cpath%20fill='%23f8c300'%20d='M300.8%20233.6a8.6%208.6%200%200%201%2016%204V272h6.4v-34.3a8.6%208.6%200%200%201%2016-4%2020.2%2020.2%200%201%200-38.4%200'/%3e%3cpath%20fill='%23fff'%20d='M305.4%20224.7a14%2014%200%200%201%2014.6%206.5%2014%2014%200%200%201%2014.6-6.5%2014.7%2014.7%200%200%200-29.2%200'/%3e%3cpath%20id='tj-a'%20fill='%23f8c300'%20d='M316.8%20258.3a26%2026%200%200%201-43.8%2016.6%2027%2027%200%200%201-41%2012c2.5%2025%2040%2019.9%2042.8-4.4%2011.7%2020.7%2037.6%2014.7%2045.2-10.6z'/%3e%3cuse%20xlink:href='%23tj-a'%20width='100%25'%20height='100%25'%20fill='%23f8c300'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3cpath%20id='tj-b'%20fill='%23f8c300'%20d='M291.8%20302.6c-5.3%2011.3-15.7%2013.2-24.8%204.1%200%200%203.6-2.6%207.6-3.3-.8-3.1.7-7.5%202.9-9.8a15%2015%200%200%201%206.1%208.1c5.5-.7%208.2%201%208.2%201z'/%3e%3cuse%20xlink:href='%23tj-b'%20width='100%25'%20height='100%25'%20fill='%23f8c300'%20transform='rotate(9.4%20320%20551.3)'/%3e%3cuse%20xlink:href='%23tj-b'%20width='100%25'%20height='100%25'%20fill='%23f8c300'%20transform='rotate(18.7%20320%20551.3)'/%3e%3cpath%20fill='none'%20stroke='%23f8c300'%20stroke-width='11'%20d='M253.5%20327.8a233%20233%200%200%201%20133%200'/%3e%3cg%20fill='%23f8c300'%20transform='translate(320%20164.6)scale(.68571)'%3e%3cpath%20id='tj-c'%20d='m301930%20415571-790463-574305h977066l-790463%20574305L0-513674z'%20transform='scale(.00005)'/%3e%3c/g%3e%3cg%20id='tj-d'%20fill='%23f8c300'%20transform='translate(320%20260.6)scale(.68571)'%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-70%20-121.2)'/%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-121.2%20-70)'/%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-140)'/%3e%3c/g%3e%3cuse%20xlink:href='%23tj-d'%20width='100%25'%20height='100%25'%20fill='%23f8c300'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3c/svg%3e")}.fi-tj.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-tj'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23060'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h512v365.7H0z'/%3e%3cpath%20fill='%23c00'%20d='M0%200h512v146.3H0z'/%3e%3cg%20fill='%23f8c300'%20transform='translate(-256)scale(.73143)'%3e%3cpath%20d='M672%20340.7a12.5%2012.5%200%200%201%2023.3%205.9v50h9.4v-50a12.5%2012.5%200%200%201%2023.3-5.9%2029.5%2029.5%200%201%200-56%200'/%3e%3cpath%20fill='%23fff'%20d='M678.7%20327.6a20%2020%200%200%201%2021.3%209.6%2020%2020%200%200%201%2021.3-9.6%2021.5%2021.5%200%200%200-42.6%200'/%3e%3cpath%20id='tj-a'%20d='M695.3%20376.6a38%2038%200%200%201-63.8%2024.3%2039.5%2039.5%200%200%201-59.8%2017.5c3.7%2036.4%2058.3%2029%2062.3-6.4%2017.2%2030.1%2055%2021.5%2066-15.4z'/%3e%3cuse%20xlink:href='%23tj-a'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%201400%200)'/%3e%3cpath%20id='tj-b'%20d='M658.8%20441.3c-7.6%2016.5-22.8%2019.3-36.1%206%200%200%205.3-3.8%2011-4.8a18%2018%200%200%201%204.3-14.3%2022%2022%200%200%201%209%2011.8c8-1%2011.8%201.3%2011.8%201.3'/%3e%3cuse%20xlink:href='%23tj-b'%20width='100%25'%20height='100%25'%20transform='rotate(9.4%20700%20804)'/%3e%3cuse%20xlink:href='%23tj-b'%20width='100%25'%20height='100%25'%20transform='rotate(18.7%20700%20804)'/%3e%3cpath%20fill='none'%20stroke='%23f8c300'%20stroke-width='16'%20d='M603%20478a340%20340%200%200%201%20194%200'/%3e%3cg%20transform='translate(700%20380)'%3e%3cg%20transform='translate(0%20-140)'%3e%3cpath%20id='tj-c'%20d='m488533-158734-790463%20574305L0-513674l301930%20929245-790463-574305z'%20transform='scale(.00005)'/%3e%3c/g%3e%3cg%20id='tj-d'%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-70%20-121.2)'/%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-121.2%20-70)'/%3e%3cuse%20xlink:href='%23tj-c'%20width='100%25'%20height='100%25'%20transform='translate(-140)'/%3e%3c/g%3e%3cuse%20xlink:href='%23tj-d'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-tk{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tk'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%2300247d'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fed100'%20d='M108.1%20354.6c-6.7-.1%2062.8-37%20120.9-84.4%2076.2-62.1%20240.3-161.4%20288.6-177.6%205-1.7-10.3%208.6-12.3%2011.9-51.5%2061-10.4%20176%2054%20233.9%2019.4%2014.8%2018.4%2015.6%2054.3%2017v3.4zm-4.2%206.7s-4.9%203.5-4.9%206.1c0%202.9%205.5%206.7%205.5%206.7l498.5%205.5%209.2-6.1-12.8-7.9z'/%3e%3cpath%20fill='%23fff'%20d='m106.8%20109.1-4%2012.2%2010.4-7.5%2010.3%207.5-3.9-12.2%2010.3-7.5h-12.8l-3.9-12.2-4%2012.2H96.4zm78.1%2057.4%208.6-6.3h-10.7l-3.3-10.1-3.3%2010.1h-10.6l8.6%206.3-3.3%2010.1%208.6-6.3%208.7%206.3zm-145.2%2013-4-12.2-3.9%2012.2H19l10.3%207.5-3.9%2012.2%2010.3-7.5%2010.4%207.5-4-12.2%2010.4-7.5zm78.1%20122.3-4.6-14.2-4.6%2014.2h-15l12.1%208.7-4.6%2014.3%2012.1-8.8%2012.1%208.8-4.7-14.3%2012.1-8.7z'/%3e%3c/svg%3e")}.fi-tk.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tk'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%2300247d'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fed100'%20d='M90.7%20384.2c-5.3%200%2050-29.5%2096.4-67.2%2060.7-49.5%20191.5-128.7%20230-141.5%204-1.3-8.2%206.8-9.8%209.5-41.1%2048.6-8.3%20140.3%2043%20186.4%2015.4%2011.8%2014.6%2012.4%2043.2%2013.6v2.7zm-3.3%205.4s-3.9%202.8-3.9%204.9c0%202.3%204.4%205.4%204.4%205.4l397.3%204.4%207.3-4.9-10.2-6.3z'/%3e%3cpath%20fill='%23fff'%20d='m105.5%20116.6-4%2012.1%2010.4-7.5%2010.3%207.5-4-12.1%2010.4-7.5h-12.8l-3.9-12.2-4%2012.2H95.2zm77.8%2057.1%208.6-6.2h-10.6l-3.3-10.1-3.3%2010.1h-10.6l8.6%206.2-3.3%2010.1%208.6-6.2%208.6%206.2zm-144.7%2013-3.9-12.1-4%2012.1H18l10.3%207.5-4%2012.1%2010.4-7.5%2010.3%207.5-3.9-12.1%2010.3-7.5zm77.9%20121.9-4.6-14.2-4.6%2014.2H92.4l12%208.7-4.6%2014.2%2012.1-8.8%2012%208.8-4.6-14.2%2012-8.7z'/%3e%3c/svg%3e")}.fi-tl{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tl'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='tl-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h682.7v512H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23tl-a)'%20transform='scale(.9375)'%3e%3cpath%20fill='%23cb000f'%20d='M0%200h1031.2v512H0z'/%3e%3cpath%20fill='%23f8c00c'%20d='M0%200c3.2%200%20512%20256.7%20512%20256.7L0%20512z'/%3e%3cpath%20fill='%23000001'%20d='M0%200c2.1%200%20340.6%20256.7%20340.6%20256.7L0%20512z'/%3e%3cpath%20fill='%23fff'%20d='M187.7%20298.2%20127%20284.7l-31%2052.8-5-59.7-60.7-13.3%2054.9-24.9-3.3-59.3%2040.2%2043.4%2055.4-25.3-28.9%2054%2039.2%2045.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tl.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tl'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='tl-a'%3e%3cpath%20fill-opacity='.7'%20d='M0%200h496v496H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23tl-a)'%20transform='scale(1.0321)'%3e%3cpath%20fill='%23cb000f'%20d='M0%200h999v496H0z'/%3e%3cpath%20fill='%23f8c00c'%20d='M0%200c3.1%200%20496%20248.7%20496%20248.7L0%20496.1z'/%3e%3cpath%20fill='%23000001'%20d='M0%200c2%200%20330%20248.7%20330%20248.7L0%20496.1z'/%3e%3cpath%20fill='%23fff'%20d='m181.9%20288.9-59-13L93%20327l-5-57.8-58.8-13%2053.1-24-3.2-57.5%2039%2042%2053.6-24.4-28%2052.2%2038%2044.4z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tm{background-image:url(/_astro/tm.C_WSgUcv.svg)}.fi-tm.fis{background-image:url(/_astro/tm.DGBJvQay.svg)}.fi-tn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tn'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23e70013'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M320%20119.2a1%201%200%200%200-1%20240.3%201%201%200%200%200%201-240.3M392%20293a90%2090%200%201%201%200-107%2072%2072%200%201%200%200%20107m-4.7-21.7-37.4-12.1-23.1%2031.8v-39.3l-37.4-12.2%2037.4-12.2V188l23.1%2031.8%2037.4-12.1-23.1%2031.8z'/%3e%3c/svg%3e")}.fi-tn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tn'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23e70013'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M256%20135a1%201%200%200%200-1%20240%201%201%200%200%200%200-241zm72%20174a90%2090%200%201%201%200-107%2072%2072%200%201%200%200%20107m-4.7-21.7-37.4-12.1-23.1%2031.8v-39.3l-37.3-12.2%2037.3-12.2v-39.4l23.1%2031.9%2037.4-12.1-23.1%2031.8z'/%3e%3c/svg%3e")}.fi-to{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-to'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23c10000'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h250v200.3H0z'/%3e%3cg%20fill='%23c10000'%3e%3cpath%20d='M102.8%2031.2h39.9v139.6h-39.8z'/%3e%3cpath%20d='M192.6%2081v40H53V81z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-to.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-to'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23c10000'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h218.3v175H0z'/%3e%3cg%20fill='%23c10000'%3e%3cpath%20d='M89.8%2027.3h34.8v121.9H89.8z'/%3e%3cpath%20d='M168.2%2070.8v34.8H46.3V70.8z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-tr{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tr'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23e30a17'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M407%20247.5c0%2066.2-54.6%20119.9-122%20119.9s-122-53.7-122-120%2054.6-119.8%20122-119.8%20122%2053.7%20122%20119.9'/%3e%3cpath%20fill='%23e30a17'%20d='M413%20247.5c0%2053-43.6%2095.9-97.5%2095.9s-97.6-43-97.6-96%2043.7-95.8%2097.6-95.8%2097.6%2042.9%2097.6%2095.9z'/%3e%3cpath%20fill='%23fff'%20d='m430.7%20191.5-1%2044.3-41.3%2011.2%2040.8%2014.5-1%2040.7%2026.5-31.8%2040.2%2014-23.2-34.1%2028.3-33.9-43.5%2012-25.8-37z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tr.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tr'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23e30a17'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M348.8%20264c0%2070.6-58.3%20127.9-130.1%20127.9s-130.1-57.3-130.1-128%2058.2-127.8%20130-127.8S348.9%20193.3%20348.9%20264z'/%3e%3cpath%20fill='%23e30a17'%20d='M355.3%20264c0%2056.5-46.6%20102.3-104.1%20102.3s-104-45.8-104-102.3%2046.5-102.3%20104-102.3%20104%2045.8%20104%20102.3z'/%3e%3cpath%20fill='%23fff'%20d='m374.1%20204.2-1%2047.3-44.2%2012%2043.5%2015.5-1%2043.3%2028.3-33.8%2042.9%2014.8-24.8-36.3%2030.2-36.1-46.4%2012.8z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tt{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tt'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23e00000'%20fill-rule='evenodd'%20d='M463.7%20480%200%201v478.8zM176.3%200%20640%20479V.2z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M27.7.2h118.6l468.2%20479.3H492.2z'/%3e%3c/svg%3e")}.fi-tt.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tt'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'%20style='width:0'/%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23e00000'%20d='M371%20512%200%201v510.7zM141%200l371%20511V.2z'/%3e%3cpath%20fill='%23000001'%20d='M22.2.2h94.9l374.5%20511.3h-97.9z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tv'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23009fca'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff40d'%20fill-rule='evenodd'%20d='M593.3%20122.7H621l-22.3%2015.2%208.5%2024.7-22.3-15.3-22.2%2015.3%208.5-24.7-22.3-15.2h27.5l8.5-24.7zm-69.2%20196.8h27.6l-22.3%2015.2%208.5%2024.7-22.3-15.3-22.3%2015.3%208.6-24.7-22.3-15.2H507l8.5-24.7zm69.2-44.6H621l-22.3%2015.2%208.5%2024.7-22.3-15.3-22.2%2015.3%208.5-24.7-22.3-15.2h27.5l8.5-24.7zM295.8%20417.7h27.6L301%20432.8l8.6%2024.6-22.3-15.2-22.3%2015.2%208.6-24.6-22.4-15.3h27.6l8.5-24.6zm62.6-76.5h-27.6l22.3-15.3-8.5-24.6%2022.3%2015.2%2022.3-15.2-8.6%2024.6%2022.3%2015.3h-27.5l-8.5%2024.6zm81.3-112.5H412l22.3-15.2-8.5-24.7%2022.3%2015.3%2022.3-15.3-8.6%2024.7%2022.3%2015.2h-27.5l-8.5%2024.7zm68.3-23.3h-27.6l22.4-15.3-8.6-24.6%2022.3%2015.2%2022.3-15.2-8.6%2024.6%2022.4%2015.3H525l-8.5%2024.6zM439.7%20400H412l22.3-15.2L426%20360l22.3%2015.2%2022.3-15.2-8.6%2024.7%2022.3%2015.2h-27.5l-8.5%2024.7zm-81.3%2019.9h-27.6l22.3-15.2-8.5-24.7%2022.3%2015.2%2022.3-15.2-8.6%2024.6L403%20420h-27.5l-8.5%2024.7z'/%3e%3cpath%20fill='%23012169'%20d='M0%200h320v240H0z'/%3e%3cpath%20fill='%23FFF'%20d='m37.5%200%20122%2090.5L281%200h39v31l-120%2089.5%20120%2089V240h-40l-120-89.5L40.5%20240H0v-30l119.5-89L0%2032V0z'/%3e%3cpath%20fill='%23C8102E'%20d='M212%20140.5%20320%20220v20l-135.5-99.5zm-92%2010%203%2017.5-96%2072H0zM320%200v1.5l-124.5%2094%201-22L295%200zM0%200l119.5%2088h-30L0%2021z'/%3e%3cpath%20fill='%23FFF'%20d='M120.5%200v240h80V0zM0%2080v80h320V80z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%2096.5v48h320v-48zM136.5%200v240h48V0z'/%3e%3c/svg%3e")}.fi-tv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tv'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23009fca'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff40d'%20fill-rule='evenodd'%20d='m478%20226.3%207.1%2020.4-18.4-12.6-18.5%2012.6%207.1-20.4-18.5-12.6h22.9l7-20.4%207%2020.4h22.8zm-57.2%20162.8%207%2020.4-18.4-12.7-18.4%2012.7%207-20.4-18.4-12.7h22.8l7-20.4%207%2020.5h22.9zm57.3-36.9%207%2020.4-18.4-12.6-18.5%2012.6%207.1-20.4-18.5-12.6h22.9l7-20.4%207%2020.4h22.8zm-246.2%20118%207.1%2020.5-18.4-12.7-18.5%2012.7%207.1-20.4-18.5-12.6h22.8l7-20.4%207.1%2020.4h22.8zm43.1-88.4-7-20.4%2018.4%2012.6%2018.4-12.6-7%2020.4%2018.4%2012.6h-22.8l-7%2020.4-7-20.4h-22.8zm67.3-93-7.1-20.4%2018.4%2012.6%2018.5-12.6-7%2020.4%2018.4%2012.6h-22.8l-7%2020.4-7-20.4h-22.9zm56.5-19.3-7-20.4%2018.4%2012.6%2018.4-12.6-7%2020.4%2018.4%2012.6h-22.8l-7%2020.4-7-20.4h-22.9zm-56.5%20161-7.1-20.4%2018.4%2012.6%2018.5-12.6-7%2020.4%2018.4%2012.6h-22.8l-7%2020.4-7-20.4h-22.9zM275%20446.9l-7-20.4%2018.4%2012.6%2018.4-12.6-7%2020.4%2018.4%2012.6h-22.8l-7%2020.4-7-20.4h-22.8z'/%3e%3cpath%20fill='%23012169'%20d='M0%200h256v256H0z'/%3e%3cpath%20fill='%23FFF'%20d='M256%200v32l-95%2096%2095%2093.5V256h-33.5L127%20162l-93%2094H0v-34l93-93.5L0%2037V0h31l96%2094%2093-94z'/%3e%3cpath%20fill='%23C8102E'%20d='m92%20162%205.5%2017L21%20256H0v-1.5zm62-6%2027%204%2075%2073.5V256zM256%200l-96%2098-2-22%2075-76zM0%20.5%2096.5%2095%2067%2091%200%2024.5z'/%3e%3cpath%20fill='%23FFF'%20d='M88%200v256h80V0zM0%2088v80h256V88z'/%3e%3cpath%20fill='%23C8102E'%20d='M0%20104v48h256v-48zM104%200v256h48V0z'/%3e%3c/svg%3e")}.fi-tw{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tw'%20viewBox='0%200%20640%20480'%3e%3cclipPath%20id='tw-a'%3e%3cpath%20d='M0%200h640v480H0z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23tw-a)'%3e%3cpath%20fill='red'%20d='M0%200h720v480H0z'/%3e%3cpath%20fill='%23000095'%20d='M0%200h360v240H0z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='m154%20126.9-2.5%209.6%209.4%202.6-1.8-7.1zm46.9%205.1-1.8%207.1%209.4-2.6-2.5-9.6zm-41.8-24-5.1%205.1%201.9%206.9z'/%3e%3cpath%20d='m155.9%20120-1.9%206.9%205.1%205.1z'/%3e%3cpath%20d='m154%20113.1-6.9%206.9%206.9%206.9%201.9-6.9zm14%2027.8%205.1%205.1%206.9-1.9zm18.9%205.1%209.6%202.5%202.6-9.4-7.1%201.8z'/%3e%3cpath%20d='m192%20140.9%207.1-1.8%201.8-7.1zm-31.1-1.8%202.6%209.4%209.6-2.5-5.1-5.1zm19.1%205%206.9%201.9%205.1-5.1z'/%3e%3cpath%20d='m173.1%20146%206.9%206.9%206.9-6.9-6.9-1.9zm-12.2-45.1-9.4%202.6%202.5%209.6%205.1-5.1zm-1.8%2031.1%201.8%207.1%207.1%201.8zm45-12%201.9-6.9-5.1-5.1z'/%3e%3cpath%20d='m168%2099.1-7.1%201.8-1.8%207.1zm32.9%208.9-1.8-7.1-7.1-1.8zm5.1%2018.9%206.9-6.9-6.9-6.9-1.9%206.9z'/%3e%3cpath%20d='m200.9%20108-8.9-8.9-12-3.2-12%203.2-8.9%208.9-3.2%2012%203.2%2012%208.9%208.9%2012%203.2%2012-3.2%208.9-8.9%203.2-12z'/%3e%3cpath%20d='m200.9%20132%205.1-5.1-1.9-6.9zm5.1-18.9%202.5-9.6-9.4-2.6%201.8%207.1zm-6.9-12.2-2.6-9.4-9.6%202.5%205.1%205.1zm-26-6.9-9.6-2.5-2.6%209.4%207.1-1.8zm6.9%201.9-6.9-1.9-5.1%205.1z'/%3e%3cpath%20d='m186.9%2094-6.9-6.9-6.9%206.9%206.9%201.9z'/%3e%3cpath%20d='m192%2099.1-5.1-5.1-6.9%201.9zM173.1%20146l-9.6%202.5%204.5%2016.6%2012-12.2zm-5.1%2019.1%2012%2044.9%2012-44.9-12-12.2zm-7.1-26-9.4-2.6-4.4%2016.4%2016.4-4.4z'/%3e%3cpath%20d='m147.1%20152.9-12%2045.1%2032.9-32.9-4.5-16.6zm-12-20.9L102%20165.1l45.1-12.2%204.4-16.4z'/%3e%3cpath%20d='m154%20126.9-6.9-6.9-12%2012%2016.4%204.5zm0-13.8-2.5-9.6-16.4%204.5%2012%2012z'/%3e%3cpath%20d='M135.1%20108%2090%20120l45.1%2012%2012-12zm90%2024-16.6%204.5%204.4%2016.4%2045.1%2012.2z'/%3e%3cpath%20d='m199.1%20139.1-2.6%209.4%2016.4%204.4-4.4-16.4zm-12.2%206.9-6.9%206.9%2012%2012.2%204.5-16.6zm19.1-19.1%202.5%209.6%2016.6-4.5-12.2-12z'/%3e%3cpath%20d='m192%20165.1%2033.1%2032.9-12.2-45.1-16.4-4.4zm7.1-64.2%209.4%202.6%204.4-16.4-16.4%204.4z'/%3e%3cpath%20d='M225.1%20108%20258%2075.1l-45.1%2012-4.4%2016.4zm-12.2-20.9L225.1%2042%20192%2075.1l4.5%2016.4zm12.2%2044.9%2044.9-12-44.9-12-12.2%2012z'/%3e%3cpath%20d='m206%20113.1%206.9%206.9%2012.2-12-16.6-4.5zm-38-38L135.1%2042l12%2045.1%2016.4%204.4z'/%3e%3cpath%20d='m160.9%20100.9%202.6-9.4-16.4-4.4%204.4%2016.4z'/%3e%3cpath%20d='m147.1%2087.1-45.1-12%2033.1%2032.9%2016.4-4.5zm39.8%206.9%209.6-2.5-4.5-16.4-12%2012z'/%3e%3cpath%20d='M192%2075.1%20180%2030l-12%2045.1%2012%2012z'/%3e%3cpath%20d='m173.1%2094%206.9-6.9-12-12-4.5%2016.4z'/%3e%3c/g%3e%3ccircle%20cx='180'%20cy='120'%20r='51.1'%20fill='%23000095'/%3e%3ccircle%20cx='180'%20cy='120'%20r='45.1'%20fill='%23fff'/%3e%3c/g%3e%3c/svg%3e")}.fi-tw.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tw'%20viewBox='0%200%20512%20512'%3e%3cclipPath%20id='tw-a'%3e%3cpath%20d='M0%200h512v512H0z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23tw-a)'%3e%3cpath%20fill='red'%20d='M0%200h768v512H0z'/%3e%3cpath%20fill='%23000095'%20d='M0%200h384v256H0z'/%3e%3cg%20fill='%23fff'%3e%3cpath%20d='m164.3%20135.4-2.7%2010.2%2010.1%202.7-2-7.4zm50%205.5-2%207.4%2010.1-2.7-2.7-10.2zm-44.6-25.8-5.4%205.5%202%207.4z'/%3e%3cpath%20d='m166.3%20128-2%207.4%205.4%205.5z'/%3e%3cpath%20d='m164.3%20120.6-7.4%207.4%207.4%207.4%202-7.4zm14.8%2029.7%205.5%205.4%207.4-2zm20.3%205.4%2010.2%202.7%202.7-10.1-7.4%202z'/%3e%3cpath%20d='m204.9%20150.3%207.4-2%202-7.4zm-33.2-2%202.7%2010.1%2010.2-2.7-5.5-5.4zm20.3%205.4%207.4%202%205.5-5.4z'/%3e%3cpath%20d='m184.6%20155.7%207.4%207.4%207.4-7.4-7.4-2zm-12.9-48-10.1%202.7%202.7%2010.2%205.4-5.5zm-2%2033.2%202%207.4%207.4%202zm48-12.9%202-7.4-5.4-5.5z'/%3e%3cpath%20d='m179.1%20105.7-7.4%202-2%207.4zm35.2%209.4-2-7.4-7.4-2zm5.4%2020.3%207.4-7.4-7.4-7.4-2%207.4z'/%3e%3cpath%20d='m214.3%20115.1-9.4-9.4-12.9-3.4-12.9%203.4-9.4%209.4-3.4%2012.9%203.4%2012.9%209.4%209.4%2012.9%203.4%2012.9-3.4%209.4-9.4%203.4-12.9z'/%3e%3cpath%20d='m214.3%20140.9%205.4-5.5-2-7.4zm5.4-20.3%202.7-10.2-10.1-2.7%202%207.4zm-7.4-12.9-2.7-10.1-10.2%202.7%205.5%205.4zm-27.7-7.4-10.2-2.7-2.7%2010.1%207.4-2z'/%3e%3cpath%20d='m192%20102.3-7.4-2-5.5%205.4z'/%3e%3cpath%20d='m199.4%20100.3-7.4-7.4-7.4%207.4%207.4%202z'/%3e%3cpath%20d='m204.9%20105.7-5.5-5.4-7.4%202zm-20.3%2050-10.2%202.7%204.7%2017.6%2012.9-12.9zm-5.5%2020.3%2012.9%2048%2012.9-48-12.9-12.9zm-7.4-27.7-10.1-2.7-4.7%2017.5%2017.5-4.7z'/%3e%3cpath%20d='m156.9%20163.1-12.9%2048%2035.1-35.1-4.7-17.6zM144%20140.9%20108.9%20176l48-12.9%204.7-17.5z'/%3e%3cpath%20d='m164.3%20135.4-7.4-7.4-12.9%2012.9%2017.6%204.7zm0-14.8-2.7-10.2-17.6%204.7%2012.9%2012.9z'/%3e%3cpath%20d='M144%20115.1%2096%20128l48%2012.9%2012.9-12.9zm96%2025.8-17.6%204.7%204.7%2017.5%2048%2012.9z'/%3e%3cpath%20d='m212.3%20148.3-2.7%2010.1%2017.5%204.7-4.7-17.5zm-12.9%207.4-7.4%207.4%2012.9%2012.9%204.7-17.6zm20.3-20.3%202.7%2010.2%2017.6-4.7-12.9-12.9zM204.9%20176l35.1%2035.1-12.9-48-17.5-4.7zm7.4-68.3%2010.1%202.7%204.7-17.5-17.5%204.7zm27.7%207.4L275.1%2080l-48%2012.9-4.7%2017.5zm-12.9-22.2%2012.9-48L204.9%2080l4.7%2017.6zm12.9%2048%2048-12.9-48-12.9-12.9%2012.9z'/%3e%3cpath%20d='m219.7%20120.6%207.4%207.4%2012.9-12.9-17.6-4.7zM179.1%2080%20144%2044.9l12.9%2048%2017.5%204.7zm-7.4%2027.7%202.7-10.1-17.5-4.7%204.7%2017.5z'/%3e%3cpath%20d='m156.9%2092.9-48-12.9%2035.1%2035.1%2017.6-4.7zm42.5%207.4%2010.2-2.7-4.7-17.6L192%2092.9z'/%3e%3cpath%20d='M204.9%2080%20192%2032l-12.9%2048L192%2092.9z'/%3e%3cpath%20d='m184.6%20100.3%207.4-7.4L179.1%2080l-4.7%2017.6z'/%3e%3c/g%3e%3ccircle%20cx='192'%20cy='128'%20r='54.4'%20fill='%23000095'/%3e%3ccircle%20cx='192'%20cy='128'%20r='48'%20fill='%23fff'/%3e%3c/g%3e%3c/svg%3e")}.fi-tz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tz'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='tz-a'%3e%3cpath%20fill-opacity='.7'%20d='M10%200h160v120H10z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23tz-a)'%20transform='matrix(4%200%200%204%20-40%200)'%3e%3cpath%20fill='%2309f'%20d='M0%200h180v120H0z'/%3e%3cpath%20fill='%23090'%20d='M0%200h180L0%20120z'/%3e%3cpath%20fill='%23000001'%20d='M0%20120h40l140-95V0h-40L0%2095z'/%3e%3cpath%20fill='%23ff0'%20d='M0%2091.5%20137.2%200h13.5L0%20100.5zM29.3%20120%20180%2019.5v9L42.8%20120z'/%3e%3c/g%3e%3c/svg%3e")}.fi-tz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tz'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='tz-a'%3e%3cpath%20fill-opacity='.7'%20d='M102.9%200h496v496H103z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23tz-a)'%20transform='translate(-106.2)scale(1.0321)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%2309f'%20d='M0%200h744.1v496H0z'/%3e%3cpath%20fill='%23090'%20d='M0%200h744.1L0%20496z'/%3e%3cpath%20fill='%23000001'%20d='M0%20496h165.4L744%20103.4V0H578.7L0%20392.7v103.4z'/%3e%3cpath%20fill='%23ff0'%20d='M0%20378%20567%200h56L0%20415.3v-37.2zm121.1%20118%20623-415.3V118L177%20496z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-ua{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ua'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='gold'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%230057b8'%20d='M0%200h640v240H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ua.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ua'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='gold'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%230057b8'%20d='M0%200h512v256H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ug{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ug'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='ug-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ug-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20d='M-128%20341.4h768v85.3h-768z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M-128%20256h768v85.3h-768z'/%3e%3cpath%20fill='%23de3908'%20fill-rule='evenodd'%20d='M-128%20170.7h768V256h-768z'/%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20d='M-128%2085.4h768v85.3h-768z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M-128%200h768v85.3h-768z'/%3e%3cpath%20fill='%23fffdff'%20fill-rule='evenodd'%20stroke='%23000'%20d='M335.7%20256a79.7%2079.7%200%201%201-159.4%200%2079.7%2079.7%200%200%201%20159.4%200z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20d='m242%20194.9-5.2-9.5c2-2%205.3-3.6%2010.7-3.6l-.6%2010.5z'/%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20stroke='%23000'%20d='m247%20192.3.7-10.5s10.7-.6%2016.5%206.4l-5.7%208.2z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20d='m258.6%20196.3%205.3-8.2c3.5%203.7%205%206.3%205.5%2010.3.1.1-8.3%202.1-8.3%202z'/%3e%3cpath%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.9'%20d='M244.6%20331.1s9.9-11.3%2029.1-8.9c-2.9-4.7-12.3-4.1-12.3-4.1s-2.8-22-.6-23.2%2012%20.1%2012%20.1c1.2%200%203.4-3.4%201.6-5.6s-6.8-10.5-4.7-12.2%2013.4%201%2013.4%201l-32-41s-3.3-15.5%203.3-23c7.9-6.5%207-13.6%206.8-13.5-1.1-7.2-12-12.3-19.4-5.7-4.3%205.2-1.4%209.2-1.4%209.2s-11.5%203.1-11.9%205.1%2012.9-.3%2012.9-.3l-1.3%209.1s-26%2023.6-6%2044l.6-.8s7%208.6%2014.3%2010.5c7%207%206.3%206%206.3%206s1.3%2011.1%200%2013.3c-1.7-.5-19.3-1.2-21.9-.2-2.4.8-11.4.3-9.2%2015.1l3.3-7.5s-.3%205.3%201.9%207.2c-.4-5.6%202.1-9.4%202.1-9.4s.4%206.2%201.8%207c1.4%201%201.4-10%209-9%207.4.9%2012.9.6%2012.9.6s2.5%2021.4%201.7%2023.4c-5.4-1.3-18.4.5-19.2%203.8%207.6-.5%2011.1.4%2011.1.4s-6.1%205.5-4.2%208.6'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.9'%20d='M247.6%20214.8s-18.9%2020.8-10.7%2036.7c.4-2.2.2-3.6.5-3.5-.5-.3%202.3%201.9%202.1%201.5%200-1.2-.8-3.7-.8-3.7l2.5.7-1.5-2.8%203.7.4s-1.3-3.4-.9-3.4l3%20.2c-5.4-9.6-.3-17.6%202.1-26.2z'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20d='M254.2%20196.9s1%207.2-3%209.2c-.5.5-3%201.3-2.6%202.8.4%202%201.5%201.6%203%201.2%204.1-.7%208.9-9.4%202.6-13.2z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M247.2%20203a1.5%201.5%200%201%201-3%200%201.5%201.5%200%200%201%203%200'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20d='M241.1%20209c-1%20.9-6.2%206.3-1%208.3%205.3-1.4%203.8-2.4%205-3.6%200-2.5-2.6-3.1-4-4.6z'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.9'%20d='M252.6%20260.5c-.3%201.2-1.5%205.6.1%209%204.6-2%206.7-1.4%208.2-.4-3.7-3-5.2-4.3-8.3-8.6'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.9'%20d='m260.4%20281.1.2%2010.2s3.6.6%205.2%200%200-7-5.4-10.2'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%23000'%20d='M286%20282.4s-6.5-15.8-23.2-19.8-14.5-21.8-13.2-22.9c.8-1.5%201.3-3.9%206.1-1.6s27%2013.4%2030.2%2014%20.4%2030.7.2%2030.3z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.9'%20d='M270.2%20262.5c-.3.2%2022.3%2013.4%2015.5%2024.7%206.4-4.3%204.4-11.7%204.4-11.7s5.2%2013.7-7.6%2020.4c1.4%201.2%202.3%201%202.3%201l-2.2%202.1s-1%201.7%207.6-2.5c-2.3%201.9-2.5%203.3-2.5%203.3s.6%201.8%206.2-3.1c-4.5%204.9-5.5%207.4-5.5%207.3%2012.3-1%2039-41-8.4-52.7l2.1%202.2z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.9'%20d='M271.2%20258.6c3%202.2%204.1%203%204.5%204-2.8-.6-5.3-.4-5.3-.4s-6.1-5.8-7.2-6.3c-.8%200-5.6-3-5.6-3-2.3-1.2-4.5-9.3%204.2-7a93%2093%200%200%200%2010.3%204.6l10.7%203.4%206.2%206.9s-11-5.4-12.4-5.5c3%202.4%204.7%205.8%204.7%205.8-3.5-1-6.5-2-10.1-2.5'/%3e%3cpath%20fill='none'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-width='.9'%20d='M228.4%20209.9s10.5-2.6%2011.8-2.2'/%3e%3cpath%20fill='%23de3908'%20fill-rule='evenodd'%20d='M-128%20426.7h768V512h-768z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ug.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ug'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='ug-a'%3e%3cpath%20fill-opacity='.7'%20d='M124%200h496v496H124z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23ug-a)'%20transform='translate(-128)scale(1.0321)'%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20d='M0%20330.7h744v82.7H0z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M0%20248h744v82.7H0z'/%3e%3cpath%20fill='%23de3908'%20fill-rule='evenodd'%20d='M0%20165.4h744V248H0z'/%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20d='M0%2082.7h744v82.7H0z'/%3e%3cpath%20fill='%23000001'%20fill-rule='evenodd'%20d='M0%200h744v82.7H0z'/%3e%3cpath%20fill='%23fffdff'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='M449.3%20248a77.2%2077.2%200%201%201-154.5%200%2077.2%2077.2%200%200%201%20154.5%200z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='m358.4%20188.8-5-9.2c2-2%205.2-3.4%2010.4-3.4l-.5%2010z'/%3e%3cpath%20fill='%23ffe700'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='m363.3%20186.4.6-10.2s10.4-.6%2016%206.1l-5.5%208z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='m374.6%20190.2%205.1-8c3.4%203.6%204.8%206.2%205.4%2010%200%20.2-8.1%202-8.1%202z'/%3e%3cpath%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.8'%20d='M361%20320.9s9.6-11%2028.2-8.7c-2.8-4.5-11.9-4-11.9-4s-2.8-21.4-.6-22.4%2011.5%200%2011.5%200c1.3%200%203.4-3.3%201.7-5.4s-6.6-10.2-4.6-11.8%2013%20.9%2013%20.9l-31-39.8s-3.2-15%203.2-22.1c7.6-6.4%206.8-13.2%206.6-13.1-1-7-11.6-12-18.8-5.6-4.2%205.1-1.4%209-1.4%209s-11%203-11.5%205c-.4%201.8%2012.5-.4%2012.5-.4l-1.2%208.8s-25.2%2023-6%2042.7c.3%200%20.7-.9.7-.9s6.8%208.4%2013.9%2010.2c6.7%206.9%206%205.8%206%205.8s1.4%2010.8.1%2013a93%2093%200%200%200-21.2-.2c-2.3.7-11.1.3-9%2014.6l3.2-7.3s-.2%205.2%201.9%207c-.4-5.4%202-9.1%202-9.1s.4%206%201.8%206.8c1.3%201%201.3-9.6%208.6-8.8%207.3%201%2012.6.7%2012.6.7s2.4%2020.6%201.6%2022.6c-5.2-1.3-17.8.5-18.6%203.7%207.4-.5%2010.8.4%2010.8.4s-6%205.3-4.1%208.4'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.8'%20d='M364%20208s-18.4%2020.2-10.5%2035.7c.5-2.2.3-3.5.5-3.4-.4-.3%202.3%201.8%202%201.4.2-1.1-.7-3.5-.7-3.5l2.4.6-1.4-2.7%203.5.5s-1.2-3.4-.8-3.4l2.9.2c-5.2-9.3-.3-17%202-25.3z'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20stroke-width='.9'%20d='M370.3%20190.8s1%207-2.8%209c-.6.4-3%201.2-2.7%202.6.5%201.9%201.5%201.5%203%201.2%204-.7%208.6-9.2%202.5-12.8z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20d='M363.5%20196.7a1.5%201.5%200%201%201-3%200%201.5%201.5%200%200%201%203%200'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='M357.6%20202.5c-1%20.8-6%206.1-1%208%205.2-1.4%203.7-2.3%204.9-3.5%200-2.3-2.6-3-3.9-4.5z'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%239ca69c'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.8'%20d='M368.7%20252.4c-.3%201.2-1.4%205.4.2%208.6%204.4-1.8%206.4-1.3%207.9-.3-3.6-3-5-4.1-8.1-8.3'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.8'%20d='m376.3%20272.4.2%209.8s3.5.7%205%200c1.6-.6%200-6.8-5.2-9.8'/%3e%3cpath%20fill='%239ca69c'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-width='.9'%20d='M401.2%20273.6s-6.4-15.3-22.5-19.2-14.1-21-12.8-22.1c.7-1.5%201.2-3.8%205.9-1.6s26.1%2013%2029.2%2013.5.4%2029.8.2%2029.4z'/%3e%3cpath%20fill='%23de3108'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.8'%20d='M385.8%20254.4c-.3.1%2021.6%2012.9%2015%2023.9%206.3-4.1%204.2-11.4%204.2-11.4s5.1%2013.3-7.3%2019.8c1.4%201.2%202.2.9%202.2.9l-2%202.1s-1%201.6%207.3-2.4c-2.3%201.8-2.5%203.1-2.5%203.1s.7%201.8%206.1-3a30%2030%200%200%200-5.4%207.2c12-1.1%2037.8-39.7-8.1-51.1l2%202.2z'/%3e%3cpath%20fill='%23fff'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.8'%20d='M386.7%20250.6c3%202%204%202.8%204.4%203.8-2.7-.6-5.2-.4-5.2-.4s-5.8-5.6-6.9-6c-.8%200-5.4-3-5.4-3-2.3-1.1-4.4-9%204-6.7%208.8%204.1%2010%204.4%2010%204.4L398%20246l6%206.7s-10.7-5.3-12-5.4c3%202.4%204.6%205.6%204.6%205.6-3.4-1-6.3-1.8-9.9-2.3'/%3e%3cpath%20fill='none'%20stroke='%23fff'%20stroke-linecap='round'%20stroke-width='.8'%20d='M345.3%20203.3s10.2-2.4%2011.4-2'/%3e%3cpath%20fill='%23de3908'%20fill-rule='evenodd'%20d='M0%20413.4h744v82.7H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-um{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-um'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23bd3d44'%20d='M0%200h640v480H0'/%3e%3cpath%20stroke='%23fff'%20stroke-width='37'%20d='M0%2055.3h640M0%20129h640M0%20203h640M0%20277h640M0%20351h640M0%20425h640'/%3e%3cpath%20fill='%23192f5d'%20d='M0%200h364.8v258.5H0'/%3e%3cmarker%20id='um-a'%20markerHeight='30'%20markerWidth='30'%3e%3cpath%20fill='%23fff'%20d='m14%200%209%2027L0%2010h28L5%2027z'/%3e%3c/marker%3e%3cpath%20fill='none'%20marker-mid='url(%23um-a)'%20d='m0%200%2016%2011h61%2061%2061%2061%2060L47%2037h61%2061%2060%2061L16%2063h61%2061%2061%2061%2060L47%2089h61%2061%2060%2061L16%20115h61%2061%2061%2061%2060L47%20141h61%2061%2060%2061L16%20166h61%2061%2061%2061%2060L47%20192h61%2061%2060%2061L16%20218h61%2061%2061%2061%2060z'/%3e%3c/svg%3e")}.fi-um.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-um'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23bd3d44'%20d='M0%200h512v512H0'/%3e%3cpath%20stroke='%23fff'%20stroke-width='40'%20d='M0%2058h512M0%20137h512M0%20216h512M0%20295h512M0%20374h512M0%20453h512'/%3e%3cpath%20fill='%23192f5d'%20d='M0%200h390v275H0z'/%3e%3cmarker%20id='um-a'%20markerHeight='30'%20markerWidth='30'%3e%3cpath%20fill='%23fff'%20d='m15%200%209.3%2028.6L0%2011h30L5.7%2028.6'/%3e%3c/marker%3e%3cpath%20fill='none'%20marker-mid='url(%23um-a)'%20d='m0%200%2018%2011h65%2065%2065%2065%2066L51%2039h65%2065%2065%2065L18%2066h65%2065%2065%2065%2066L51%2094h65%2065%2065%2065L18%20121h65%2065%2065%2065%2066L51%20149h65%2065%2065%2065L18%20177h65%2065%2065%2065%2066L51%20205h65%2065%2065%2065L18%20232h65%2065%2065%2065%2066z'/%3e%3c/svg%3e")}.fi-us{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-us'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23bd3d44'%20d='M0%200h640v480H0'/%3e%3cpath%20stroke='%23fff'%20stroke-width='37'%20d='M0%2055.3h640M0%20129h640M0%20203h640M0%20277h640M0%20351h640M0%20425h640'/%3e%3cpath%20fill='%23192f5d'%20d='M0%200h364.8v258.5H0'/%3e%3cmarker%20id='us-a'%20markerHeight='30'%20markerWidth='30'%3e%3cpath%20fill='%23fff'%20d='m14%200%209%2027L0%2010h28L5%2027z'/%3e%3c/marker%3e%3cpath%20fill='none'%20marker-mid='url(%23us-a)'%20d='m0%200%2016%2011h61%2061%2061%2061%2060L47%2037h61%2061%2060%2061L16%2063h61%2061%2061%2061%2060L47%2089h61%2061%2060%2061L16%20115h61%2061%2061%2061%2060L47%20141h61%2061%2060%2061L16%20166h61%2061%2061%2061%2060L47%20192h61%2061%2060%2061L16%20218h61%2061%2061%2061%2060z'/%3e%3c/svg%3e")}.fi-us.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-us'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23bd3d44'%20d='M0%200h512v512H0'/%3e%3cpath%20stroke='%23fff'%20stroke-width='40'%20d='M0%2058h512M0%20137h512M0%20216h512M0%20295h512M0%20374h512M0%20453h512'/%3e%3cpath%20fill='%23192f5d'%20d='M0%200h390v275H0z'/%3e%3cmarker%20id='us-a'%20markerHeight='30'%20markerWidth='30'%3e%3cpath%20fill='%23fff'%20d='m15%200%209.3%2028.6L0%2011h30L5.7%2028.6'/%3e%3c/marker%3e%3cpath%20fill='none'%20marker-mid='url(%23us-a)'%20d='m0%200%2018%2011h65%2065%2065%2065%2066L51%2039h65%2065%2065%2065L18%2066h65%2065%2065%2065%2066L51%2094h65%2065%2065%2065L18%20121h65%2065%2065%2065%2066L51%20149h65%2065%2065%2065L18%20177h65%2065%2065%2065%2066L51%20205h65%2065%2065%2065L18%20232h65%2065%2065%2065%2066z'/%3e%3c/svg%3e")}.fi-uy{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-uy'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%230038a8'%20d='M266%2053.3h374v53.4H266zm0%20106.7h374v53.3H266zM0%20266.7h640V320H0zm0%20106.6h640v53.4H0z'/%3e%3cg%20fill='%23fcd116'%20stroke='%23000'%20stroke-miterlimit='20'%20stroke-width='.6'%20transform='translate(133.3%20133.3)scale(2.93333)'%3e%3cg%20id='uy-c'%3e%3cg%20id='uy-b'%3e%3cg%20id='uy-a'%3e%3cpath%20stroke-linecap='square'%20d='m-2%208.9%203%204.5c-12.4%209-4.9%2014.2-13.6%2017%205.4-5.2-.9-5.7%203.7-16.8'/%3e%3cpath%20fill='none'%20d='M-4.2%2010.2c-6.8%2011.2-2.4%2017.4-8.4%2020.3'/%3e%3cpath%20d='M0%200h6L0%2033-6%200h6v33'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-a'%20width='100%25'%20height='100%25'%20transform='rotate(45)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-b'%20width='100%25'%20height='100%25'%20transform='rotate(90)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-c'%20width='100%25'%20height='100%25'%20transform='scale(-1)'/%3e%3ccircle%20r='11'/%3e%3c/g%3e%3cg%20transform='translate(133.3%20133.3)scale(.29333)'%3e%3cg%20id='uy-d'%3e%3cpath%20d='M81-44c-7%208-11-6-36-6S16-35%2012-38s21-21%2029-22%2031%207%2040%2016m-29%209c7%206%201%2019-6%2019S26-28%2032-36'/%3e%3cpath%20d='M19-26c1-12%2011-14%2027-14s23%2012%2029%2015c-7%200-13-10-29-10s-16%200-27%2010m3%202c4-6%209%206%2020%206s17-3%2024-8-10%2012-21%2012-26-6-23-10'/%3e%3cpath%20d='M56-17c13-7%205-17%200-19%202%202%2010%2012%200%2019M0%2043c6%200%208-2%2016-2s27%2011%2038%207c-23%209-14%203-54%203h-5m63%206c-4-7-3-5-11-16%208%206%2010%209%2011%2016M0%2067c25%200%2021-5%2054-19-24%203-29%2011-54%2011h-5m5-29c7%200%209-5%2017-5s19%203%2024%207c1%201-3-8-11-9S25%209%2016%207c0%204%203%203%204%209%200%205-9%205-11%200%202%208-4%208-9%208'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-d'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3cpath%20d='M0%2076c-5%200-18%203%200%203s5-3%200-3'/%3e%3c/g%3e%3c/svg%3e")}.fi-uy.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-uy'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%230038a8'%20d='M284%2056.9h228v56.9H284zm0%20113.8h228v56.9H284zM0%20284.4h512v57H0zm0%20113.8h512v57H0z'/%3e%3cg%20fill='%23fcd116'%20stroke='%23000'%20stroke-miterlimit='20'%20stroke-width='.6'%20transform='translate(142.2%20142.2)scale(3.12889)'%3e%3cg%20id='uy-c'%3e%3cg%20id='uy-b'%3e%3cg%20id='uy-a'%3e%3cpath%20stroke-linecap='square'%20d='m-2%208.9%203%204.5c-12.4%209-4.9%2014.2-13.6%2017%205.4-5.2-.9-5.7%203.7-16.8'/%3e%3cpath%20fill='none'%20d='M-4.2%2010.2c-6.8%2011.2-2.4%2017.4-8.4%2020.3'/%3e%3cpath%20d='M0%200h6L0%2033-6%200h6v33'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-a'%20width='100%25'%20height='100%25'%20transform='rotate(45)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-b'%20width='100%25'%20height='100%25'%20transform='rotate(90)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-c'%20width='100%25'%20height='100%25'%20transform='scale(-1)'/%3e%3ccircle%20r='11'/%3e%3c/g%3e%3cg%20transform='translate(142.2%20142.2)scale(.31289)'%3e%3cg%20id='uy-d'%3e%3cpath%20d='M81-44c-7%208-11-6-36-6S16-35%2012-38s21-21%2029-22%2031%207%2040%2016m-29%209c7%206%201%2019-6%2019S26-28%2032-36'/%3e%3cpath%20d='M19-26c1-12%2011-14%2027-14s23%2012%2029%2015c-7%200-13-10-29-10s-16%200-27%2010m3%202c4-6%209%206%2020%206s17-3%2024-8-10%2012-21%2012-26-6-23-10'/%3e%3cpath%20d='M56-17c13-7%205-17%200-19%202%202%2010%2012%200%2019M0%2043c6%200%208-2%2016-2s27%2011%2038%207c-23%209-14%203-54%203h-5m63%206c-4-7-3-5-11-16%208%206%2010%209%2011%2016M0%2067c25%200%2021-5%2054-19-24%203-29%2011-54%2011h-5m5-29c7%200%209-5%2017-5s19%203%2024%207c1%201-3-8-11-9S25%209%2016%207c0%204%203%203%204%209%200%205-9%205-11%200%202%208-4%208-9%208'/%3e%3c/g%3e%3cuse%20xlink:href='%23uy-d'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3cpath%20d='M0%2076c-5%200-18%203%200%203s5-3%200-3'/%3e%3c/g%3e%3c/svg%3e")}.fi-uz{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-uz'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%231eb53a'%20d='M0%20320h640v160H0z'/%3e%3cpath%20fill='%230099b5'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%20153.6h640v172.8H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20163.2h640v153.6H0z'/%3e%3ccircle%20cx='134.4'%20cy='76.8'%20r='57.6'%20fill='%23fff'/%3e%3ccircle%20cx='153.6'%20cy='76.8'%20r='57.6'%20fill='%230099b5'/%3e%3cg%20fill='%23fff'%20transform='translate(261.1%20122.9)scale(1.92)'%3e%3cg%20id='uz-e'%3e%3cg%20id='uz-d'%3e%3cg%20id='uz-c'%3e%3cg%20id='uz-b'%3e%3cpath%20id='uz-a'%20d='M0-6-1.9-.3%201%20.7'/%3e%3cuse%20xlink:href='%23uz-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23uz-c'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20y='-24'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20y='-48'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-e'%20width='100%25'%20height='100%25'%20x='24'/%3e%3cuse%20xlink:href='%23uz-e'%20width='100%25'%20height='100%25'%20x='48'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-48'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-24'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-24'%20y='-24'/%3e%3c/g%3e%3c/svg%3e")}.fi-uz.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-uz'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%231eb53a'%20d='M0%20341.3h512V512H0z'/%3e%3cpath%20fill='%230099b5'%20d='M0%200h512v170.7H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%20163.8h512v184.4H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20174h512v164H0z'/%3e%3ccircle%20cx='143.4'%20cy='81.9'%20r='61.4'%20fill='%23fff'/%3e%3ccircle%20cx='163.8'%20cy='81.9'%20r='61.4'%20fill='%230099b5'/%3e%3cg%20fill='%23fff'%20transform='translate(278.5%20131)scale(2.048)'%3e%3cg%20id='uz-e'%3e%3cg%20id='uz-d'%3e%3cg%20id='uz-c'%3e%3cg%20id='uz-b'%3e%3cpath%20id='uz-a'%20d='M0-6-1.9-.3%201%20.7'/%3e%3cuse%20xlink:href='%23uz-a'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-b'%20width='100%25'%20height='100%25'%20transform='rotate(72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-b'%20width='100%25'%20height='100%25'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23uz-c'%20width='100%25'%20height='100%25'%20transform='rotate(144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20y='-24'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20y='-48'/%3e%3c/g%3e%3cuse%20xlink:href='%23uz-e'%20width='100%25'%20height='100%25'%20x='24'/%3e%3cuse%20xlink:href='%23uz-e'%20width='100%25'%20height='100%25'%20x='48'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-48'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-24'/%3e%3cuse%20xlink:href='%23uz-d'%20width='100%25'%20height='100%25'%20x='-24'%20y='-24'/%3e%3c/g%3e%3c/svg%3e")}.fi-va{background-image:url(/_astro/va.B9-hqIE-.svg)}.fi-va.fis{background-image:url(/_astro/va.s7kyhqIM.svg)}.fi-vc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-vc'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23f4f100'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23199a00'%20d='M490%200h150v480H490z'/%3e%3cpath%20fill='%230058aa'%20d='M0%200h150v480H0z'/%3e%3cpath%20fill='%23199a00'%20d='m259.3%20130-46.4%2071.3%2044.7%2074.4%2043.8-73.7zm121.2%200-46.3%2071.3%2044.7%2074.4%2043.8-73.7zm-61.2%2097.3-46.4%2071.4%2044.8%2074.4%2043.8-73.7-42.2-72z'/%3e%3c/g%3e%3c/svg%3e")}.fi-vc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-vc'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23f4f100'%20d='M0%200h510.4v512H0z'/%3e%3cpath%20fill='%23199a00'%20d='M385.6%200H512v512H385.6z'/%3e%3cpath%20fill='%230058aa'%20d='M0%200h126.4v512H0z'/%3e%3c/g%3e%3cpath%20fill='%23199a00'%20fill-rule='evenodd'%20d='m191.2%20138.6-49.5%2076.2%2047.8%2079.3%2046.7-78.6zm129.4%200L271%20214.8l47.7%2079.3%2046.8-78.6-45-76.9zm-65.4%20103.9-49.4%2076.1%2047.7%2079.4%2046.7-78.7z'/%3e%3c/svg%3e")}.fi-ve{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ve'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cg%20id='ve-d'%20transform='translate(0%20-36)'%3e%3cg%20id='ve-c'%3e%3cg%20id='ve-b'%3e%3cpath%20id='ve-a'%20fill='%23fff'%20d='M0-5-1.5-.2l2.8.9z'/%3e%3cuse%20xlink:href='%23ve-a'%20width='180'%20height='120'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-b'%20width='180'%20height='120'%20transform='rotate(72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-b'%20width='180'%20height='120'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23ve-c'%20width='180'%20height='120'%20transform='rotate(144)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23cf142b'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%2300247d'%20d='M0%200h640v320H0z'/%3e%3cpath%20fill='%23fc0'%20d='M0%200h640v160H0z'/%3e%3cg%20id='ve-f'%20transform='matrix(4%200%200%204%20320%20336)'%3e%3cg%20id='ve-e'%3e%3cuse%20xlink:href='%23ve-d'%20width='180'%20height='120'%20transform='rotate(10)'/%3e%3cuse%20xlink:href='%23ve-d'%20width='180'%20height='120'%20transform='rotate(30)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-e'%20width='180'%20height='120'%20transform='rotate(40)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-f'%20width='180'%20height='120'%20transform='rotate(-80%20320%20336)'/%3e%3c/svg%3e")}.fi-ve.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-ve'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cg%20id='ve-d'%20transform='translate(0%20-36)'%3e%3cg%20id='ve-c'%3e%3cg%20id='ve-b'%3e%3cpath%20id='ve-a'%20fill='%23fff'%20d='M0-5-1.5-.2l2.8.9z'/%3e%3cuse%20xlink:href='%23ve-a'%20width='180'%20height='120'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-b'%20width='180'%20height='120'%20transform='rotate(72)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-b'%20width='180'%20height='120'%20transform='rotate(-72)'/%3e%3cuse%20xlink:href='%23ve-c'%20width='180'%20height='120'%20transform='rotate(144)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23cf142b'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%2300247d'%20d='M0%200h512v341.3H0z'/%3e%3cpath%20fill='%23fc0'%20d='M0%200h512v170.7H0z'/%3e%3cg%20id='ve-f'%20transform='translate(256.3%20358.4)scale(4.265)'%3e%3cg%20id='ve-e'%3e%3cuse%20xlink:href='%23ve-d'%20width='180'%20height='120'%20transform='rotate(10)'/%3e%3cuse%20xlink:href='%23ve-d'%20width='180'%20height='120'%20transform='rotate(30)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-e'%20width='180'%20height='120'%20transform='rotate(40)'/%3e%3c/g%3e%3cuse%20xlink:href='%23ve-f'%20width='180'%20height='120'%20transform='rotate(-80%20256.3%20358.4)'/%3e%3c/svg%3e")}.fi-vg{background-image:url(/_astro/vg.C7xY6pic.svg)}.fi-vg.fis{background-image:url(/_astro/vg.ClZ-0KpG.svg)}.fi-vi{background-image:url(/_astro/vi.BC_zcciE.svg)}.fi-vi.fis{background-image:url(/_astro/vi.BSdsyIxY.svg)}.fi-vn{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-vn'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='vn-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23vn-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%23da251d'%20d='M-128%200h768v512h-768z'/%3e%3cpath%20fill='%23ff0'%20d='M349.6%20381%20260%20314.3l-89%2067.3L204%20272l-89-67.7%20110.1-1%2034.2-109.4L294%20203l110.1.1-88.5%2068.4%2033.9%20109.6z'/%3e%3c/g%3e%3c/svg%3e")}.fi-vn.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-vn'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='vn-a'%3e%3cpath%20fill-opacity='.7'%20d='M177.2%200h708.6v708.7H177.2z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23vn-a)'%20transform='translate(-128)scale(.72249)'%3e%3cpath%20fill='%23da251d'%20d='M0%200h1063v708.7H0z'/%3e%3cpath%20fill='%23ff0'%20d='m661%20527.5-124-92.6-123.3%2093.5%2045.9-152-123.2-93.8%20152.4-1.3L536%20129.8%20584.3%20281l152.4.2-122.5%2094.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-vu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-vu'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='vu-a'%3e%3cpath%20d='M0%200v475l420-195h480v-85H420Z'/%3e%3c/clipPath%3e%3c/defs%3e%3cpath%20fill='%23009543'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23d21034'%20d='M0%200h640v240H0z'/%3e%3cg%20clip-path='url(%23vu-a)'%20transform='scale(.71111%201.01053)'%3e%3cpath%20stroke='%23fdce12'%20stroke-width='110'%20d='m0%200%20420%20195h480v85H420L0%20475'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='60'%20d='m0%200%20420%20195h480m0%2085H420L0%20475'/%3e%3c/g%3e%3cg%20fill='%23fdce12'%20transform='translate(-22)scale(1.01053)'%3e%3cpath%20d='M106.9%20283v27c23.5%200%2069.7-18%2069.7-76.1s-49.3-68.9-64-68.9-60.3%2010.6-60.3%2058c0%2047.6%2044.7%2052%2053.5%2052s41.8-8%2038-43.6a35.5%2035.5%200%200%201-35.4%2031.5c-24%200-39-17.8-39-35.4s14.6-41.2%2039.9-41.2%2043.8%2022.5%2043.8%2045.1-17.8%2051.5-46.2%2051.5z'/%3e%3cg%20id='vu-b'%3e%3cpath%20stroke='%23fdce12'%20stroke-width='.8'%20d='m86.2%20247.7%201.4%201s11.2-25.5%2041.1-43.6c-3.8%202-23.8%2012-42.5%2042.6z'/%3e%3cpath%20d='M89.1%20243.3s-3.4-7-.4-10.2%201.7%208.3%201.7%208.3l1.3-1.9s-2-8.6.2-10.4%201.2%208.3%201.2%208.3l1.4-1.8s-1.5-8.4.7-10%20.9%208%20.9%208l1.6-2s-1.2-8%201.5-9.9.3%207.6.3%207.6l1.8-2s-.8-7.3%201.5-9c2.3-1.6.4%207%20.4%207l1.6-1.8s-.5-6.8%201.7-8.4.2%206.5.2%206.5l1.7-1.6s-.4-6.9%202.4-8.2-.5%206.4-.5%206.4l2-1.6s.5-8%202.9-8.7c2.4-.8-1%207-1%207l1.7-1.4s.9-6.8%203.5-7.6c2.7-.9-1.6%206.2-1.6%206.2l1.7-1.3s1.9-6.8%204.4-7.6c2.4-.7-2.6%206.5-2.6%206.5l1.7-1.2s2.7-6.2%205-6.6c2.1-.4-2.6%205.1-2.6%205.1l2.1-1.2s3.5-6.4%204.8-4.5-5%204.9-5%204.9l-2%201.2s7.5-3.6%208.4-1.8-10.3%203-10.3%203l-1.8%201.2s7.5-2%206.6-.1-8.4%201.5-8.4%201.5l-1.7%201.2s7.5-1.8%206.5%200c-1%201.6-8.3%201.5-8.3%201.5l-1.8%201.5s7.3-2%206.2.3-9.4%202.1-9.4%202.1l-2%202s7.7-2.7%207-.6c-.6%202-9.4%203-9.4%203l-2%202s8.3-2.7%205.8-.2c-2.4%202.6-8.5%203.2-8.5%203.2l-2.3%203s8.2-5%207-2.2-9.2%204.7-9.2%204.7l-1.6%202s7.4-4.3%206.6-2c-.7%202.5-8.6%205-8.6%205l-1.3%201.8s8.7-5.2%208-2.5c-.8%202.6-9.1%204.5-9.1%204.5l-1%201.7s8-4.7%208-2.4c.2%202.2-9.4%204.4-9.4%204.4z'/%3e%3c/g%3e%3cuse%20xlink:href='%23vu-b'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20220%200)'/%3e%3c/g%3e%3c/svg%3e")}.fi-vu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-vu'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='vu-a'%3e%3cpath%20d='M0%200v475l420-195h480v-85H420Z'/%3e%3c/clipPath%3e%3c/defs%3e%3cpath%20fill='%23009543'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23d21034'%20d='M0%200h512v256H0z'/%3e%3cg%20clip-path='url(%23vu-a)'%20transform='scale(.56889%201.0779)'%3e%3cpath%20stroke='%23fdce12'%20stroke-width='110'%20d='m0%200%20420%20195h480v85H420L0%20475'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='60'%20d='m0%200%20420%20195h480m0%2085H420L0%20475'/%3e%3c/g%3e%3cg%20fill='%23fdce12'%20transform='translate(-35.6%2026.7)scale(.96552)'%3e%3cpath%20d='M106.9%20283v27c23.5%200%2069.7-18%2069.7-76.1s-49.3-68.9-64-68.9-60.3%2010.6-60.3%2058c0%2047.6%2044.7%2052%2053.5%2052s41.8-8%2038-43.6a35.5%2035.5%200%200%201-35.4%2031.5c-24%200-39-17.8-39-35.4s14.6-41.2%2039.9-41.2%2043.8%2022.5%2043.8%2045.1-17.8%2051.5-46.2%2051.5z'/%3e%3cg%20id='vu-b'%3e%3cpath%20stroke='%23fdce12'%20stroke-width='.8'%20d='m86.2%20247.7%201.4%201s11.2-25.5%2041.1-43.6c-3.8%202-23.8%2012-42.5%2042.6z'/%3e%3cpath%20d='M89.1%20243.3s-3.4-7-.4-10.2%201.7%208.3%201.7%208.3l1.3-1.9s-2-8.6.2-10.4%201.2%208.3%201.2%208.3l1.4-1.8s-1.5-8.4.7-10%20.9%208%20.9%208l1.6-2s-1.2-8%201.5-9.9.3%207.6.3%207.6l1.8-2s-.8-7.3%201.5-9c2.3-1.6.4%207%20.4%207l1.6-1.8s-.5-6.8%201.7-8.4.2%206.5.2%206.5l1.7-1.6s-.4-6.9%202.4-8.2-.5%206.4-.5%206.4l2-1.6s.5-8%202.9-8.7c2.4-.8-1%207-1%207l1.7-1.4s.9-6.8%203.5-7.6c2.7-.9-1.6%206.2-1.6%206.2l1.7-1.3s1.9-6.8%204.4-7.6c2.4-.7-2.6%206.5-2.6%206.5l1.7-1.2s2.7-6.2%205-6.6c2.1-.4-2.6%205.1-2.6%205.1l2.1-1.2s3.5-6.4%204.8-4.5-5%204.9-5%204.9l-2%201.2s7.5-3.6%208.4-1.8-10.3%203-10.3%203l-1.8%201.2s7.5-2%206.6-.1-8.4%201.5-8.4%201.5l-1.7%201.2s7.5-1.8%206.5%200c-1%201.6-8.3%201.5-8.3%201.5l-1.8%201.5s7.3-2%206.2.3-9.4%202.1-9.4%202.1l-2%202s7.7-2.7%207-.6c-.6%202-9.4%203-9.4%203l-2%202s8.3-2.7%205.8-.2c-2.4%202.6-8.5%203.2-8.5%203.2l-2.3%203s8.2-5%207-2.2-9.2%204.7-9.2%204.7l-1.6%202s7.4-4.3%206.6-2c-.7%202.5-8.6%205-8.6%205l-1.3%201.8s8.7-5.2%208-2.5c-.8%202.6-9.1%204.5-9.1%204.5l-1%201.7s8-4.7%208-2.4c.2%202.2-9.4%204.4-9.4%204.4z'/%3e%3c/g%3e%3cuse%20xlink:href='%23vu-b'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20220%200)'/%3e%3c/g%3e%3c/svg%3e")}.fi-wf{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-wf'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-wf.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-wf'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-ws{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ws'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23ce1126'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23002b7f'%20d='M0%200h320v240H0z'/%3e%3cpath%20fill='%23fff'%20d='m180%20229.3-20.7-14-19.9%2014.1%206.5-24.9-19-15.2%2024.5-1.5%208.1-23.6%208.8%2024%2024%20.7-19%2016.3zm-3.6-165.6L159.8%2053l-16%2010.4%204.4-20-14.6-12.7%2019.4-1.6%207.2-18.6%207.4%2018.7%2019.1%201.7L172%2044.3zm-73%2059.5-16-11-16.7%2011%205.2-19.4L60.8%2091%2080%2090l7-19%206.8%2018.9%2019.6%201.1-15%2012.5zM250%20110l-15.4-10-15%2010%204.4-18.3-14-11.8%2018.3-1.5%206.3-17.2%207%2017.4%2017.7%201-13.7%2012.3zm-43.1%2043.4-10.3-6.4-10.3%206.6%202.7-12.3-9.2-8.3%2012-1%204.6-11.6%204.9%2011.6%2011.9%201-9.1%208.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ws.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ws'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23ce1126'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23002b7f'%20d='M0%200h256v256H0z'/%3e%3cpath%20fill='%23fff'%20d='m147%20231.4-19.6-13.3-18.9%2013.5%206-23.5-18-14.7%2023.2-1.3%207.7-22.4%208.5%2022.8%2022.8.5-18.2%2015.5zm-3.4-156.8-15.6-10-15.4%2010%204.2-19-13.7-12.1%2018.3-1.6%206.8-17.5%207.1%2017.7%2018%201.4-14%2012.5zM74.3%20131l-15.2-10.8-15.4%2010.4%204.6-18.3L34%20100.2l18.2-.8%206.7-18.1%206.6%2017.8%2018.3%201.1-14.3%2012zm139-12.7-14.7-9.5-14.3%209.7%204-17.4-13-11.2%2017.3-1.4%206-16.4%206.6%2016.6%2016.8%201-13.2%2011.6zm-41.1%2041.3-9.7-6.2-9.6%206.2%202.5-11.6-8.7-7.7%2011.4-1%204.4-11%204.5%2011%2011.2%201-8.5%207.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ye{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ye'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v472.8H0z'/%3e%3cpath%20fill='%23f10600'%20d='M0%200h640v157.4H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20322.6h640V480H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ye.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ye'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v504.3H0z'/%3e%3cpath%20fill='%23f10600'%20d='M0%200h512v167.9H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%20344.1h512V512H0z'/%3e%3c/g%3e%3c/svg%3e")}.fi-yt{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-yt'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e")}.fi-yt.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-yt'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/svg%3e")}.fi-za{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-za'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='za-a'%3e%3cpath%20fill-opacity='.7'%20d='M-71.9%200h682.7v512H-71.9z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23za-a)'%20transform='translate(67.4)scale(.93748)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M-71.9%20407.8V104.4L154%20256.1z'/%3e%3cpath%20fill='%23000c8a'%20d='m82.2%20512.1%20253.6-170.6H696V512H82.2z'/%3e%3cpath%20fill='%23e1392d'%20d='M66%200h630v170.8H335.7S69.3-1.7%2066%200'/%3e%3cpath%20fill='%23ffb915'%20d='M-71.9%2064v40.4L154%20256-72%20407.8v40.3l284.5-192z'/%3e%3cpath%20fill='%23007847'%20d='M-71.9%2064V0h95l301.2%20204h371.8v104.2H324.3L23%20512h-94.9v-63.9l284.4-192L-71.8%2064z'/%3e%3cpath%20fill='%23fff'%20d='M23%200h59.2l253.6%20170.7H696V204H324.3zm0%20512.1h59.2l253.6-170.6H696v-33.2H324.3L23%20512z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-za.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-za'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cclipPath%20id='za-a'%3e%3cpath%20fill-opacity='.7'%20d='M70.1%200h499.6v499.6H70.1z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23za-a)'%20transform='translate(-71.9)scale(1.0248)'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23000001'%20d='M0%20397.9v-296l220.4%20147.9z'/%3e%3cpath%20fill='%23000c8a'%20d='m150.4%20499.7%20247.4-166.5h351.6v166.5z'/%3e%3cpath%20fill='%23e1392d'%20d='M134.5%200h615v166.6H397.7S137.8-1.6%20134.5%200'/%3e%3cpath%20fill='%23ffb915'%20d='M0%2062.5v39.3l220.4%20148L0%20397.8v39.4l277.6-187.4z'/%3e%3cpath%20fill='%23007847'%20d='M0%2062.5V0h92.6l294%20199h362.8v101.7H386.6l-294%20198.9H0v-62.4l277.6-187.4z'/%3e%3cpath%20fill='%23fff'%20d='M92.6%200h57.8l247.4%20166.6h351.6V199H386.6zm0%20499.7h57.8l247.4-166.5h351.6v-32.4H386.6z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e")}.fi-zm{background-image:url(/_astro/zm.BmsW91ne.svg)}.fi-zm.fis{background-image:url(/_astro/zm.D8B-0kdx.svg)}.fi-zw{background-image:url(/_astro/zw.U0m7oJ5e.svg)}.fi-zw.fis{background-image:url(/_astro/zw.CSuuaw9K.svg)}.fi-arab{background-image:url(/_astro/arab.C4CYPgyC.svg)}.fi-arab.fis{background-image:url(/_astro/arab.C-KgnQEz.svg)}.fi-asean{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20id='flag-icons-asean'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230039a6'%20d='M0%200h640v480H0z'/%3e%3ccircle%20cx='320'%20cy='240'%20r='144'%20fill='%23fff'/%3e%3ccircle%20cx='320'%20cy='240'%20r='137.3'%20fill='%23ed2939'/%3e%3cuse%20xlink:href='%23asean-a'%20transform='matrix(-1%200%200%201%20640%200)'/%3e%3cg%20id='asean-a'%20fill='%23f9e300'%3e%3cpath%20d='M357%20240c24-14.4%2035-43.2%2035-72h-11v1c0%209.6-1.5%2044.6-27.9%2071a106%20106%200%200%201%2027.9%2071v1h11c0-28.8-11.5-57.6-35-72'/%3e%3cpath%20d='M377.6%20169v-1h-11.5v1.4c0%209.6-2%2043.2-20.7%2070.6%2019.2%2027.4%2020.7%2061%2020.7%2070.6v1.4h11.5v-1c0-9.6-2.4-44.6-27.8-71a106%20106%200%200%200%2027.8-71'/%3e%3cpath%20d='m341.1%20240%201-1a130%20130%200%200%200%2020.1-69.6V168h-10.5v2c0%2010-1.5%2042.2-14.4%2070a182%20182%200%200%201%2014.4%2070v2h10.5v-1.4c0-9.6-1-39.9-20.1-69.6'/%3e%3cpath%20d='M333.4%20240a178%20178%200%200%200%2014.4-72h-11v3.4c0%2012-1%2041.2-7.2%2068.6a336%20336%200%200%201%207.2%2068.6v3.4h10.6v-2c0-10-1-43.1-13.5-69.5'/%3e%3cpath%20d='M325.8%20240a331%20331%200%200%200%206.7-68.6V168h-10.6v144h10.6v-3.4c0-11.5%200-41.2-6.7-68.1'/%3e%3c/g%3e%3c/svg%3e")}.fi-asean.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20id='flag-icons-asean'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230039a6'%20d='M0%200h512v512H0z'/%3e%3ccircle%20cx='256'%20cy='256'%20r='153.6'%20fill='%23fff'/%3e%3ccircle%20cx='256'%20cy='256'%20r='146.4'%20fill='%23ed2939'/%3e%3cuse%20xlink:href='%23asean-a'%20transform='matrix(-1%200%200%201%20512%200)'/%3e%3cg%20id='asean-a'%20fill='%23f9e300'%3e%3cpath%20d='M295.4%20256c25.6-15.4%2037.4-46%2037.4-76.8H321v1c0%2010.3-1.5%2047.6-29.7%2075.8a113%20113%200%200%201%2029.7%2075.8v1h11.8c0-30.7-12.3-61.4-37.4-76.8'/%3e%3cpath%20d='M317.4%20180.2v-1h-12.2v1.5c0%2010.3-2.1%2046.1-22%2075.3%2020.4%2029.2%2022%2065%2022%2075.3v1.5h12.2v-1c0-10.3-2.5-47.6-29.7-75.8a113%20113%200%200%200%2029.7-75.8'/%3e%3cpath%20d='m278.5%20256%201-1a138%20138%200%200%200%2021.6-74.3v-1.5h-11.3v2c0%2010.8-1.5%2045.1-15.4%2074.8a195%20195%200%200%201%2015.4%2074.8v2H301v-1.5c0-10.3-1-42.5-21.5-74.3'/%3e%3cpath%20d='M270.3%20256a189%20189%200%200%200%2015.4-76.8h-11.8v3.6c0%2012.8-1%2044-7.7%2073.2a358%20358%200%200%201%207.7%2073.2v3.6h11.3v-2c0-10.8-1-46.1-14.4-74.3'/%3e%3cpath%20d='M262.1%20256a353%20353%200%200%200%207.2-73.2v-3.6H258v153.6h11.3v-3.6c0-12.3%200-44-7.2-72.7'/%3e%3c/g%3e%3c/svg%3e")}.fi-cefta{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cefta'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23039'%20d='M0%200h640v480H0z'/%3e%3ccircle%20cx='320'%20cy='249.8'%20r='30.4'%20fill='none'%20stroke='%23fc0'%20stroke-width='27.5'/%3e%3ccircle%20cx='320'%20cy='249.8'%20r='88.3'%20fill='none'%20stroke='%23fc0'%20stroke-width='27.5'/%3e%3cpath%20fill='%23039'%20d='m404.7%20165.1%2084.7%2084.7-84.7%2084.7-84.7-84.7z'/%3e%3cpath%20fill='%23fc0'%20d='M175.7%20236.1h59.2v27.5h-59.2zm259.1%200h88.3v27.5h-88.3zM363%20187.4l38.8-38.8%2019.4%2019.5-38.7%2038.7zM306.3%2048.6h27.5v107.1h-27.5z'/%3e%3ccircle%20cx='225.1'%20cy='159.6'%20r='13.7'%20fill='%23fc0'/%3e%3ccircle%20cx='144.3'%20cy='249.8'%20r='13.7'%20fill='%23fc0'/%3e%3ccircle%20cx='320'%20cy='381.4'%20r='13.7'%20fill='%23fc0'/%3e%3ccircle%20cx='320'%20cy='425.5'%20r='13.7'%20fill='%23fc0'/%3e%3ccircle%20cx='408.3'%20cy='249.8'%20r='13.7'%20fill='%23fc0'/%3e%3cpath%20fill='%23fc0'%20d='m208.3%20341.5%2019.5-19.4%2019.4%2019.4-19.4%2019.5zm204.7%2021%2019.5-19.5%2019.5%2019.5-19.5%2019.4z'/%3e%3c/svg%3e")}.fi-cefta.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cefta'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23039'%20d='M0%200h512v512H0z'/%3e%3ccircle%20cx='256'%20cy='266.5'%20r='32.5'%20fill='none'%20stroke='%23fc0'%20stroke-width='29.3'/%3e%3ccircle%20cx='256'%20cy='266.5'%20r='94.2'%20fill='none'%20stroke='%23fc0'%20stroke-width='29.3'/%3e%3cpath%20fill='%23039'%20d='m346.3%20176.1%2090.3%2090.3-90.3%2090.3-90.3-90.3z'/%3e%3cpath%20fill='%23fc0'%20d='M102.1%20251.8h63.2v29.3h-63.2zm276.4%200h94.2v29.3h-94.2zm-76.6-51.9%2041.3-41.3%2020.7%2020.7-41.3%2041.3zM241.3%2051.8h29.3V166h-29.3z'/%3e%3ccircle%20cx='154.8'%20cy='170.3'%20r='14.7'%20fill='%23fc0'/%3e%3ccircle%20cx='68.6'%20cy='266.5'%20r='14.7'%20fill='%23fc0'/%3e%3ccircle%20cx='256'%20cy='406.8'%20r='14.7'%20fill='%23fc0'/%3e%3ccircle%20cx='256'%20cy='453.9'%20r='14.7'%20fill='%23fc0'/%3e%3ccircle%20cx='350.2'%20cy='266.5'%20r='14.7'%20fill='%23fc0'/%3e%3cpath%20fill='%23fc0'%20d='m136.9%20364.3%2020.7-20.7%2020.7%2020.7-20.7%2020.7zm218.5%2022.3L376%20366l20.7%2020.7-20.7%2020.8z'/%3e%3c/svg%3e")}.fi-cp{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cp'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-cp.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-cp'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-dg{background-image:url(/_astro/dg.CJPJrjiZ.svg)}.fi-dg.fis{background-image:url(/_astro/dg.DqkWLbnk.svg)}.fi-eac{background-image:url(/_astro/eac.CwGQsyAM.svg)}.fi-eac.fis{background-image:url(/_astro/eac.h4QKADRE.svg)}.fi-es-ct{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-es-ct'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fcdd09'%20d='M0%200h640v480H0z'/%3e%3cpath%20stroke='%23da121a'%20stroke-width='60'%20d='M0%2090h810m0%20120H0m0%20120h810m0%20120H0'%20transform='scale(.79012%20.88889)'/%3e%3c/svg%3e")}.fi-es-ct.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-es-ct'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fcdd09'%20d='M0%200h512v512H0z'/%3e%3cpath%20stroke='%23da121a'%20stroke-width='60'%20d='M0%2090h810m0%20120H0m0%20120h810m0%20120H0'%20transform='scale(.6321%20.94815)'/%3e%3c/svg%3e")}.fi-es-ga{background-image:url(/_astro/es-ga.D9xG2hYr.svg)}.fi-es-ga.fis{background-image:url(/_astro/es-ga.DXhVZ333.svg)}.fi-es-pv{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-es-pv'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23D52B1E'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23009B48'%20d='M0%200h53.1l133.4%20100.1%20133.5%20100L586.9%200H640v39.9l-133.4%20100L373.2%20240%20640%20440.2V480h-53.1L453.5%20380%20320%20279.9%2053.1%20480H0v-39.8l133.4-100.1L266.8%20240%200%2039.9v-20z'/%3e%3cpath%20fill='%23FFF'%20d='M288.1%200h63.8v208.1H640v63.8H351.9V480h-63.8V271.9H0v-63.8h288.1v-104z'/%3e%3c/svg%3e")}.fi-es-pv.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-es-pv'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23d52b1e'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23009b48'%20d='M0%200h42.5l106.7%20106.7L256%20213.4%20469.5%200H512v42.5L405.3%20149.2%20298.6%20256%20512%20469.5V512h-42.5L362.8%20405.3%20256%20298.6%2042.5%20512H0v-42.5l106.7-106.7L213.4%20256%200%2042.5V21.3z'/%3e%3cpath%20fill='%23fff'%20d='M221.9%200h68.2v221.9H512v68.2H290.1V512h-68.2V290.1H0v-68.2h221.9v-111z'/%3e%3c/svg%3e")}.fi-eu{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-eu'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cg%20id='eu-d'%3e%3cg%20id='eu-b'%3e%3cpath%20id='eu-a'%20d='m0-1-.3%201%20.5.1z'/%3e%3cuse%20xlink:href='%23eu-a'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cg%20id='eu-c'%3e%3cuse%20xlink:href='%23eu-b'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23eu-b'%20transform='rotate(144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23eu-c'%20transform='scale(-1%201)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23039'%20d='M0%200h640v480H0z'/%3e%3cg%20fill='%23fc0'%20transform='translate(320%20242.3)scale(23.7037)'%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20y='-6'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20y='6'/%3e%3cg%20id='eu-e'%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20x='-6'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(-144%20-2.3%20-2.1)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(144%20-2.1%20-2.3)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(72%20-4.7%20-2)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(72%20-5%20.5)'/%3e%3c/g%3e%3cuse%20xlink:href='%23eu-e'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3c/svg%3e")}.fi-eu.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-eu'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cg%20id='eu-d'%3e%3cg%20id='eu-b'%3e%3cpath%20id='eu-a'%20d='m0-1-.3%201%20.5.1z'/%3e%3cuse%20xlink:href='%23eu-a'%20transform='scale(-1%201)'/%3e%3c/g%3e%3cg%20id='eu-c'%3e%3cuse%20xlink:href='%23eu-b'%20transform='rotate(72)'/%3e%3cuse%20xlink:href='%23eu-b'%20transform='rotate(144)'/%3e%3c/g%3e%3cuse%20xlink:href='%23eu-c'%20transform='scale(-1%201)'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='%23039'%20d='M0%200h512v512H0z'/%3e%3cg%20fill='%23fc0'%20transform='translate(256%20258.4)scale(25.28395)'%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20y='-6'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20y='6'/%3e%3cg%20id='eu-e'%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20x='-6'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(-144%20-2.3%20-2.1)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(144%20-2.1%20-2.3)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(72%20-4.7%20-2)'/%3e%3cuse%20xlink:href='%23eu-d'%20width='100%25'%20height='100%25'%20transform='rotate(72%20-5%20.5)'/%3e%3c/g%3e%3cuse%20xlink:href='%23eu-e'%20width='100%25'%20height='100%25'%20transform='scale(-1%201)'/%3e%3c/g%3e%3c/svg%3e")}.fi-gb-eng{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb-eng'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23ce1124'%20d='M281.6%200h76.8v480h-76.8z'/%3e%3cpath%20fill='%23ce1124'%20d='M0%20201.6h640v76.8H0z'/%3e%3c/svg%3e")}.fi-gb-eng.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb-eng'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23fff'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23ce1124'%20d='M215%200h82v512h-82z'/%3e%3cpath%20fill='%23ce1124'%20d='M0%20215h512v82H0z'/%3e%3c/svg%3e")}.fi-gb-nir{background-image:url(/_astro/gb-nir.D4gikpNq.svg)}.fi-gb-nir.fis{background-image:url(/_astro/gb-nir.vEp1ZXy6.svg)}.fi-gb-sct{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb-sct'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230065bd'%20d='M0%200h640v480H0z'/%3e%3cpath%20stroke='%23fff'%20stroke-width='.6'%20d='m0%200%205%203M0%203l5-3'%20transform='scale(128%20160)'/%3e%3c/svg%3e")}.fi-gb-sct.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-gb-sct'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%230065bd'%20d='M0%200h512v512H0z'/%3e%3cpath%20stroke='%23fff'%20stroke-width='.6'%20d='m0%200%205%203M0%203l5-3'%20transform='scale(102.4%20170.66667)'/%3e%3c/svg%3e")}.fi-gb-wls{background-image:url(/_astro/gb-wls.Bxz9hxvX.svg)}.fi-gb-wls.fis{background-image:url(/_astro/gb-wls.CK0XlKT-.svg)}.fi-ic{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ic'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230768a9'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23fc0'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")}.fi-ic.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ic'%20viewBox='0%200%20512%20512'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%230768a9'%20d='M0%200h512v512H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%200h170.7v512H0z'/%3e%3cpath%20fill='%23fc0'%20d='M341.3%200H512v512H341.3z'/%3e%3c/g%3e%3c/svg%3e")}.fi-pc{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-pc'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23003da5'%20d='M0%200h640v480H0z'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(164.3%20311.5%20242.2)'/%3e%3cpath%20id='pc-a'%20fill='%23fff'%20fill-opacity='1'%20fill-rule='nonzero'%20stroke='none'%20stroke-width='.7'%20d='m472.9%20262.8-8.4%201.5-1.1%208.5-4.1-7.5-8.4%201.6%205.8-6.2-4-7.5%207.7%203.6%205.8-6.2-1%208.5z'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-10.3%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-30.9%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-20.6%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-51.5%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-72.1%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-61.8%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-41.2%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-92.7%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-113.3%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-103%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-133.9%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-154.5%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-144.2%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-123.6%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-82.4%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-175.1%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(174.6%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(143.7%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(123.1%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(133.4%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(154%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-164.8%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(112.8%20311.5%20242.2)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(102.5%20311.5%20242.2)'/%3e%3cpath%20fill='none'%20stroke='%2300aec7'%20stroke-width='13.7'%20d='M444.9%20313A151%20151%200%200%201%20293%20392'/%3e%3cpath%20fill='%23fff'%20d='M474.3%20288.5S449%20277.2%20398%20277s-105.2%2013.9-135.1%2013.5c-30-.3-38.8-.3-56.7-3.7%200%200%2027%209%2055.8%2011.6%2028.7%202.7%2095.2-10.4%20128.4-12.5%2034-2.1%2060.4-2.1%2083.8%202.6'/%3e%3cpath%20fill='%2300aec7'%20d='M275%20303.2s19.2%201%2056-3c37-4%2063-9.4%2092.1-10.2s61.2%204.4%2068%206.1c0%200-48.5-1.3-68.8%201.6s-73%209.5-100.7%2010.2-37.3-3.2-46.6-4.7m-80.5-27.8s51%2013.6%2097.2%204.7c52.3-10.2%2083-10%20106.4-10%2023.4-.2%2047.9%205.7%2047.9%205.7s-96-100.2-196.5-153.3c0%200-7.5%2084.5-55%20152.9'/%3e%3cpath%20fill='%23fff'%20d='M274.2%20197.5s-1.4-5.3-8.3-4.5c0%200%204.4-2%206.4-1%202%201.1%202.4%201.4%202%205.5m-16.8-9.4s1.5-.5%202.2-.3c0%200%201%203.3%203.2%204.5%200%200-3.8-.3-5.4-4.2m22.2%205a13%2013%200%200%200-8.7-4.8c-1.8%200-6%203.5-6%203.5-1-2-.5-3.4-.5-3.4%202%20.2%203.7%201%203.7%201-.8-2.6-2-3.8-2-3.8%204-1%208.8%202.5%208.8%202.5a17%2017%200%200%200-11-6.8c-1.2-.1-2.7%201.6-2.7%201.6-7.8%200-9.9%204.3-9.9%204.3%203.3%205.1%2010%206.3%2010%206.3-11.8-1.3-11.5%208-11.5%208l10.9-5.7c-4.2%2024.1-21%2035-22.4%2036.3-1.4%201.4-.5%203%201.5%203.2%201.1%200%202.5%201%206.2-3.4a65%2065%200%200%200%2016.4-35.4l.2.2c1.2%202.9.4%205.4.6%207.3s4.4%206%204.4%206%202.3-4.5%202-7.1c-.5-2.7-5.5-7.6-5.5-7.6%207.8-1.5%208.2%2011.6%208.2%2011.6%203-3.5%202.4-7.3%202.4-7.3s6.3-4.6%204.9-6.4'/%3e%3c/svg%3e")}.fi-pc.fis{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-pc'%20viewBox='0%200%20512%20512'%3e%3cpath%20fill='%23003da5'%20d='M0%200h512v512H0z'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(164.3%20247%20258.3)'/%3e%3cpath%20id='pc-a'%20fill='%23fff'%20fill-opacity='1'%20fill-rule='nonzero'%20stroke='none'%20stroke-width='.7'%20d='m419%20280.3-8.9%201.7-1.1%209-4.4-8-9%201.7%206.3-6.6-4.4-8%208.2%203.9%206.3-6.7-1.2%209z'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-10.3%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-30.9%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-20.6%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-51.5%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-72.1%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-61.8%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-41.2%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-92.7%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-113.3%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-103%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-133.9%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-154.5%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-144.2%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-123.6%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-82.4%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-175.1%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(174.6%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(143.7%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(123.1%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(133.4%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(154%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(-164.8%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(112.8%20247%20258.3)'/%3e%3cuse%20xlink:href='%23pc-a'%20width='1000'%20height='700'%20transform='rotate(102.5%20247%20258.3)'/%3e%3cpath%20fill='none'%20stroke='%2300aec7'%20stroke-width='14.6'%20d='M389.2%20334a161%20161%200%200%201-161.9%2084.2'/%3e%3cpath%20fill='%23fff'%20d='M420.6%20307.7s-26.9-12-81.3-12.2-112.2%2014.8-144.1%2014.4c-32-.4-41.4-.4-60.5-4%200%200%2028.9%209.6%2059.5%2012.4s101.6-11.1%20137-13.4c36.2-2.2%2064.4-2.2%2089.4%202.8'/%3e%3cpath%20fill='%2300aec7'%20d='M208%20323.4s20.5%201%2059.8-3.2%2067.2-10%2098.2-10.8%2065.3%204.6%2072.5%206.5c0%200-51.7-1.4-73.4%201.7s-77.8%2010.1-107.4%2010.8-39.7-3.3-49.7-5m-85.9-29.6s54.4%2014.5%20103.8%205c55.7-10.9%2088.5-10.7%20113.4-10.8s51%206.2%2051%206.2S288%20187.3%20180.9%20130.7c0%200-8%2090.1-58.7%20163'/%3e%3cpath%20fill='%23fff'%20d='M207.2%20210.7s-1.5-5.7-9-4.9c0%200%204.8-2%207-1%202%201.2%202.5%201.5%202%205.9m-17.9-10s1.7-.6%202.3-.3c0%200%201.2%203.4%203.5%204.7%200%200-4-.3-5.8-4.5M213%20206a13%2013%200%200%200-9.3-5.1c-1.8%200-6.3%203.6-6.3%203.6-1.1-2-.6-3.6-.6-3.6%202.2.3%204%201%204%201a9%209%200%200%200-2.2-3.9c4.3-1.1%209.4%202.6%209.4%202.6a18%2018%200%200%200-11.8-7.3c-1.2%200-2.8%201.8-2.8%201.8-8.3%200-10.5%204.6-10.5%204.6%203.4%205.4%2010.6%206.7%2010.6%206.7-12.6-1.4-12.3%208.4-12.3%208.4l11.6-6c-4.4%2025.8-22.4%2037.3-23.9%2038.8-1.4%201.5-.5%203.1%201.7%203.3%201.1.2%202.6%201.1%206.6-3.5a70%2070%200%200%200%2017.5-37.8l.2.2c1.2%203%20.4%205.8.6%207.8.3%202%204.7%206.3%204.7%206.3s2.4-4.7%202-7.5-5.8-8.1-5.8-8.1c8.4-1.5%208.9%2012.4%208.9%2012.4%203.2-3.8%202.5-7.8%202.5-7.8s6.7-4.9%205.2-6.9'/%3e%3c/svg%3e")}.fi-sh-ac{background-image:url(/_astro/sh-ac.FjwY7RYr.svg)}.fi-sh-ac.fis{background-image:url(/_astro/sh-ac.D-aE2xRW.svg)}.fi-sh-hl{background-image:url(/_astro/sh-hl.CqtQPzWZ.svg)}.fi-sh-hl.fis{background-image:url(/_astro/sh-hl.CgxUDvtv.svg)}.fi-sh-ta{background-image:url(/_astro/sh-ta.CPJublpi.svg)}.fi-sh-ta.fis{background-image:url(/_astro/sh-ta.BFo5zkKU.svg)}.fi-un{background-image:url(/_astro/un.Bqg4Cbbh.svg)}.fi-un.fis{background-image:url(/_astro/un.DabL4p35.svg)}.fi-xk{background-image:url(/_astro/xk.Bj15g7cp.svg)}.fi-xk.fis{background-image:url(/_astro/xk.Cdz2uTvR.svg)}
/* ==========================================================================
   UI-SYSTEM — clean design layer for the owner app area
   ==========================================================================

   Loaded AFTER app.css and scoped to `.app-v2` (the redesigned owner
   pages) so it doesn't affect teacher's "My Classes Dashboard".

   Design principles applied here:
     • ONE accent color = indigo #0f0069. Everything else is neutral.
     • Semantic colors (green / red / amber) are only used as small
       text pills — never as large filled surfaces.
     • No colored top-accent bars on cards; no loud gradient hero
       banners; no chunky pill tabs.
     • Underline tabs (Stripe/Preply style).
     • Comfortable spacing: 24px gutters, 32px sections.
     • Inter type scale with a strong hierarchy of 4 sizes.

   Sections in this file:
     1. Design tokens              — variables
     2. Page shell                 — .ui-page, .ui-page-header
     3. Tabs                       — .ui-tabs
     4. Cards                      — .ui-card
     5. KPI cards                  — .ui-kpi
     6. Tables                     — .ui-table
     7. Buttons                    — .ui-btn
     8. Badges / pills             — .ui-badge
     9. Forms                      — .ui-input, .ui-select
    10. Empty / loading / error    — .ui-empty
    11. Utilities                  — .ui-grid-*, .ui-stack
    12. Legacy overrides           — kill hero banners + chunky tabs
                                     under .app-v2
   ========================================================================== */


/* ==========================================================================
   1. Design tokens
   ========================================================================== */
:root {
  /* Type scale — Inter — used ONLY inside .app-v2 pages */
  --ui-font-page-title: 22px;
  --ui-font-section-title: 15px;
  --ui-font-eyebrow: 11px;
  --ui-font-body: 14px;
  --ui-font-small: 13px;
  --ui-font-micro: 12px;
  --ui-font-kpi: 26px;

  /* Weights */
  --ui-w-regular: 400;
  --ui-w-medium: 500;
  --ui-w-semibold: 600;
  --ui-w-bold: 700;

  /* Spacing */
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-space-8: 32px;
  --ui-space-10: 40px;
  --ui-space-12: 48px;

  /* Radius */
  --ui-radius-sm: 6px;
  --ui-radius-md: 10px;
  --ui-radius-lg: 12px;
  --ui-radius-pill: 999px;

  /* Elevation — deliberately very subtle */
  --ui-shadow-none: 0 0 0 0 rgba(0, 0, 0, 0);
  --ui-shadow-1: 0 1px 2px rgba(15, 23, 42, 0.04);
  --ui-shadow-2: 0 2px 6px rgba(15, 23, 42, 0.06);
  --ui-shadow-hover: 0 6px 16px rgba(15, 23, 42, 0.08);

  /* Colors — semantic tokens */
  --ui-fg: #0b1020;           /* near-black for headlines */
  --ui-fg-2: #2b3244;         /* body text */
  --ui-fg-3: #5b657a;         /* meta / labels */
  --ui-fg-4: #8a94a6;         /* placeholder / muted */

  --ui-bg: #ffffff;
  --ui-bg-2: #f8f9fc;         /* page background (very slight tint) */
  --ui-bg-3: #f1f3f8;         /* subtle surface (hover, chips) */

  --ui-border: #eaecf2;       /* hairline */
  --ui-border-strong: #d9dce6;

  --ui-accent: #0f0069;       /* indigo — THE only accent */
  --ui-accent-2: #1a0c8a;
  --ui-accent-bg: #f3f1ff;    /* tinted background for active states */

  --ui-success: #059669;
  --ui-success-bg: #ecfdf5;
  --ui-warning: #b45309;
  --ui-warning-bg: #fffbeb;
  --ui-danger: #b91c1c;
  --ui-danger-bg: #fef2f2;
  --ui-info: #1d4ed8;
  --ui-info-bg: #eff6ff;

  /* Motion */
  --ui-t-fast: 120ms;
  --ui-t-med: 180ms;
  --ui-ease: cubic-bezier(0.2, 0.6, 0.2, 1);
}


/* ==========================================================================
   2. Page shell — the outer wrapper used by every v2 owner page
   ==========================================================================
   Structure:
     <div class="ui-page">
       <div class="ui-page-header">
         <div>
           <div class="ui-page-eyebrow">School management</div>
           <h1 class="ui-page-title">Other costs</h1>
           <p class="ui-page-subtitle">Track expenses…</p>
         </div>
         <div class="ui-page-actions"> [buttons] </div>
       </div>
       ... content ...
     </div>
*/

.ui-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--ui-fg-2);
  font-size: var(--ui-font-body);
  line-height: 1.5;
}

.ui-page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-6);
  padding: var(--ui-space-2) 0 var(--ui-space-6) 0;
  border-bottom: 1px solid var(--ui-border);
  margin-bottom: var(--ui-space-8);
}

.ui-page-eyebrow {
  font-size: var(--ui-font-eyebrow);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.ui-page-title {
  font-size: var(--ui-font-page-title);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.25;
}

.ui-page-subtitle {
  font-size: var(--ui-font-body);
  color: var(--ui-fg-3);
  margin: 6px 0 0 0;
  max-width: 640px;
}

.ui-page-actions {
  display: flex;
  gap: var(--ui-space-2);
  flex-shrink: 0;
}

/* Section title inside a page (below the header) */
.ui-section {
  margin: 0 0 var(--ui-space-6) 0;
}

.ui-section-title {
  font-size: var(--ui-font-section-title);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  margin: 0 0 var(--ui-space-4) 0;
  letter-spacing: -0.005em;
}

.ui-section-eyebrow {
  font-size: var(--ui-font-eyebrow);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}


/* ==========================================================================
   3. Tabs — underline style (Stripe / Preply)
   ==========================================================================
   <div class="ui-tabs" role="tablist">
     <button class="ui-tab" aria-selected="true">All</button>
     <button class="ui-tab">Leads</button>
   </div>
*/

.ui-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--ui-border);
  margin-bottom: var(--ui-space-6);
  overflow-x: auto;
  scrollbar-width: none;
}
.ui-tabs::-webkit-scrollbar { display: none; }

.ui-tab {
  appearance: none;
  background: transparent;
  border: none;
  padding: var(--ui-space-3) var(--ui-space-4);
  font-family: inherit;
  font-size: var(--ui-font-body);
  font-weight: var(--ui-w-medium);
  color: var(--ui-fg-3);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition:
    color var(--ui-t-fast) var(--ui-ease),
    border-color var(--ui-t-fast) var(--ui-ease);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ui-tab:hover {
  color: var(--ui-fg);
}

.ui-tab[aria-selected="true"] {
  color: var(--ui-accent);
  border-bottom-color: var(--ui-accent);
  font-weight: var(--ui-w-semibold);
}

.ui-tab-count {
  background: var(--ui-bg-3);
  color: var(--ui-fg-3);
  font-size: var(--ui-font-micro);
  font-weight: var(--ui-w-semibold);
  padding: 1px 8px;
  border-radius: var(--ui-radius-pill);
  min-width: 20px;
  text-align: center;
}
.ui-tab[aria-selected="true"] .ui-tab-count {
  background: var(--ui-accent-bg);
  color: var(--ui-accent);
}


/* ==========================================================================
   4. Cards
   ==========================================================================
*/

.ui-card {
  background: var(--ui-bg);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-6);
  transition: box-shadow var(--ui-t-med) var(--ui-ease),
              transform var(--ui-t-med) var(--ui-ease);
}

.ui-card--interactive {
  cursor: pointer;
}
.ui-card--interactive:hover {
  box-shadow: var(--ui-shadow-hover);
  transform: translateY(-1px);
}

.ui-card--compact {
  padding: var(--ui-space-4);
}

.ui-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-4);
}

.ui-card__title {
  font-size: var(--ui-font-section-title);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  margin: 0;
  line-height: 1.3;
}

.ui-card__subtitle {
  font-size: var(--ui-font-small);
  color: var(--ui-fg-3);
  margin: 4px 0 0 0;
}


/* ==========================================================================
   5. KPI cards — clean, unified, ONE accent
   ==========================================================================
*/

.ui-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-4);
  margin-bottom: var(--ui-space-8);
}

@media (max-width: 960px) {
  .ui-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .ui-kpi-grid { grid-template-columns: 1fr; }
}

.ui-kpi {
  background: var(--ui-bg);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-5);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 96px;
}

.ui-kpi__label {
  font-size: var(--ui-font-micro);
  color: var(--ui-fg-3);
  font-weight: var(--ui-w-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ui-kpi__value {
  font-size: var(--ui-font-kpi);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.ui-kpi__hint {
  font-size: var(--ui-font-micro);
  color: var(--ui-fg-3);
}

.ui-kpi__hint--positive { color: var(--ui-success); }
.ui-kpi__hint--negative { color: var(--ui-danger); }
.ui-kpi__hint--warning  { color: var(--ui-warning); }


/* ==========================================================================
   6. Tables — comfortable density, no zebra
   ==========================================================================
*/

.ui-table-wrap {
  background: var(--ui-bg);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  overflow: hidden;
}

.ui-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ui-font-body);
}

.ui-table thead th {
  text-align: left;
  padding: 12px 16px;
  font-size: var(--ui-font-micro);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg-3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--ui-bg-2);
  border-bottom: 1px solid var(--ui-border);
  white-space: nowrap;
}

.ui-table tbody td {
  padding: 14px 16px;
  color: var(--ui-fg-2);
  border-bottom: 1px solid var(--ui-border);
  vertical-align: middle;
}

.ui-table tbody tr:last-child td {
  border-bottom: none;
}

.ui-table tbody tr:hover td {
  background: var(--ui-bg-2);
}

.ui-table td .ui-cell-strong {
  color: var(--ui-fg);
  font-weight: var(--ui-w-semibold);
}

.ui-table td .ui-cell-meta {
  color: var(--ui-fg-3);
  font-size: var(--ui-font-small);
}


/* ==========================================================================
   7. Buttons
   ==========================================================================
*/

.ui-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: inherit;
  font-size: var(--ui-font-body);
  font-weight: var(--ui-w-medium);
  padding: 8px 14px;
  border-radius: var(--ui-radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--ui-t-fast) var(--ui-ease),
              border-color var(--ui-t-fast) var(--ui-ease),
              color var(--ui-t-fast) var(--ui-ease);
  white-space: nowrap;
  line-height: 1;
}

.ui-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ui-btn--sm { padding: 6px 10px; font-size: var(--ui-font-small); }
.ui-btn--lg { padding: 10px 18px; font-size: 15px; }

.ui-btn--primary {
  background: var(--ui-accent);
  color: white;
  border-color: var(--ui-accent);
}
.ui-btn--primary:hover { background: var(--ui-accent-2); border-color: var(--ui-accent-2); }

.ui-btn--secondary {
  background: var(--ui-bg);
  color: var(--ui-fg);
  border-color: var(--ui-border-strong);
}
.ui-btn--secondary:hover { background: var(--ui-bg-2); border-color: var(--ui-fg-4); }

.ui-btn--ghost {
  background: transparent;
  color: var(--ui-fg-2);
  border-color: transparent;
  padding: 6px 10px;
}
.ui-btn--ghost:hover { background: var(--ui-bg-3); color: var(--ui-fg); }

.ui-btn--danger {
  background: var(--ui-bg);
  color: var(--ui-danger);
  border-color: var(--ui-border-strong);
}
.ui-btn--danger:hover { background: var(--ui-danger-bg); border-color: var(--ui-danger); }


/* ==========================================================================
   8. Badges / pills — small status indicators only
   ==========================================================================
*/

.ui-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: var(--ui-radius-sm);
  font-size: var(--ui-font-micro);
  font-weight: var(--ui-w-semibold);
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.ui-badge--neutral  { background: var(--ui-bg-3);       color: var(--ui-fg-2); }
.ui-badge--success  { background: var(--ui-success-bg); color: var(--ui-success); }
.ui-badge--warning  { background: var(--ui-warning-bg); color: var(--ui-warning); }
.ui-badge--danger   { background: var(--ui-danger-bg);  color: var(--ui-danger); }
.ui-badge--info     { background: var(--ui-info-bg);    color: var(--ui-info); }
.ui-badge--accent   { background: var(--ui-accent-bg);  color: var(--ui-accent); }


/* ==========================================================================
   9. Forms
   ==========================================================================
*/

.ui-label {
  display: block;
  font-size: var(--ui-font-micro);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg-3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}

.ui-input,
.ui-select,
.ui-textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--ui-border-strong);
  border-radius: var(--ui-radius-md);
  background: var(--ui-bg);
  font-family: inherit;
  font-size: var(--ui-font-body);
  color: var(--ui-fg);
  transition: border-color var(--ui-t-fast) var(--ui-ease),
              box-shadow var(--ui-t-fast) var(--ui-ease);
}

.ui-input:focus,
.ui-select:focus,
.ui-textarea:focus {
  outline: none;
  border-color: var(--ui-accent);
  box-shadow: 0 0 0 3px rgba(15, 0, 105, 0.10);
}

.ui-input::placeholder { color: var(--ui-fg-4); }

.ui-textarea { resize: vertical; min-height: 80px; line-height: 1.5; }


/* ==========================================================================
   10. Empty / loading / error states
   ==========================================================================
*/

.ui-empty {
  padding: var(--ui-space-10) var(--ui-space-6);
  text-align: center;
  color: var(--ui-fg-3);
}
.ui-empty__icon {
  font-size: 32px;
  margin-bottom: var(--ui-space-3);
  opacity: 0.5;
}
.ui-empty__title {
  font-size: 15px;
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  margin-bottom: 4px;
}
.ui-empty__hint {
  font-size: var(--ui-font-small);
  color: var(--ui-fg-3);
  max-width: 380px;
  margin: 0 auto;
}

.ui-loading {
  padding: var(--ui-space-10);
  text-align: center;
  color: var(--ui-fg-3);
  font-size: var(--ui-font-small);
}

.ui-error {
  padding: var(--ui-space-4);
  background: var(--ui-danger-bg);
  color: var(--ui-danger);
  border: 1px solid #fecaca;
  border-radius: var(--ui-radius-md);
  font-size: var(--ui-font-small);
  margin-bottom: var(--ui-space-4);
}


/* ==========================================================================
   11. Utility grids and stacks
   ========================================================================== */

.ui-stack     { display: flex; flex-direction: column; gap: var(--ui-space-4); }
.ui-stack-sm  { display: flex; flex-direction: column; gap: var(--ui-space-2); }
.ui-stack-lg  { display: flex; flex-direction: column; gap: var(--ui-space-6); }

.ui-row       { display: flex; align-items: center; gap: var(--ui-space-3); }
.ui-row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--ui-space-3); }

.ui-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ui-space-4); }
.ui-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-space-4); }

@media (max-width: 720px) {
  .ui-grid-2, .ui-grid-3 { grid-template-columns: 1fr; }
}


/* ==========================================================================
   12. Legacy overrides — kill the loud legacy visuals inside .app-v2
   ==========================================================================
   These rules only apply to pages wrapped in .app-v2. They override
   the heavy gradient hero banners, chunky pill tabs, and colored KPI
   accents that were making the app look busy. Everything outside
   .app-v2 (including the teacher dashboard) stays untouched.
*/

/* Kill the loud gradient hero banner on v2 pages */
.app-v2 .app-welcome-banner {
  background: var(--ui-bg) !important;
  color: var(--ui-fg) !important;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  padding: var(--ui-space-6) !important;
  box-shadow: none !important;
  margin-bottom: var(--ui-space-6) !important;
}
.app-v2 .app-welcome-banner::before,
.app-v2 .app-welcome-banner::after { display: none !important; }
.app-v2 .app-welcome-banner * { color: inherit !important; text-shadow: none !important; }
.app-v2 .app-welcome-banner .app-welcome-eyebrow {
  color: var(--ui-fg-3) !important;
  background: transparent !important;
}

/* Old .sched-tabs pills → underline tabs inside .app-v2 */
.app-v2 .sched-tabs-row {
  margin-bottom: var(--ui-space-6) !important;
}
.app-v2 .sched-tabs {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--ui-border) !important;
  gap: 4px !important;
  box-shadow: none !important;
}
.app-v2 .sched-tab {
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  color: var(--ui-fg-3) !important;
  font-weight: var(--ui-w-medium) !important;
  font-size: var(--ui-font-body) !important;
  box-shadow: none !important;
  margin-bottom: -1px !important;
}
.app-v2 .sched-tab:hover {
  color: var(--ui-fg) !important;
  background: transparent !important;
}
.app-v2 .sched-tab[aria-selected="true"] {
  color: var(--ui-accent) !important;
  border-bottom-color: var(--ui-accent) !important;
  font-weight: var(--ui-w-semibold) !important;
  background: transparent !important;
}
/* Hide the emoji tab icons — cleaner without them */
.app-v2 .sched-tab-icon { display: none !important; }

/* Kill colored top accent bars on legacy KPI cards */
.app-v2 .app-stat-card--premium::before { display: none !important; }
.app-v2 .app-stat-card--premium {
  border-radius: var(--ui-radius-lg) !important;
  border: 1px solid var(--ui-border) !important;
  box-shadow: none !important;
  padding: var(--ui-space-5) !important;
}
.app-v2 .app-stat-card--premium:hover {
  box-shadow: var(--ui-shadow-hover) !important;
  transform: none !important;
}
.app-v2 .app-stat-number { font-size: var(--ui-font-kpi) !important; font-weight: var(--ui-w-semibold) !important; color: var(--ui-fg) !important; letter-spacing: -0.02em !important; }
.app-v2 .app-stat-label  { color: var(--ui-fg-3) !important; font-size: var(--ui-font-micro) !important; text-transform: uppercase; letter-spacing: 0.05em !important; font-weight: var(--ui-w-medium) !important; }

/* Legacy .app-card--premium → unified card */
.app-v2 .app-card,
.app-v2 .app-card--premium {
  background: var(--ui-bg) !important;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  box-shadow: none !important;
}

/* Section eyebrows: strip emojis and re-style */
.app-v2 .app-section-eyebrow {
  color: var(--ui-fg-3) !important;
  font-size: var(--ui-font-eyebrow) !important;
  letter-spacing: 0.08em !important;
  font-weight: var(--ui-w-semibold) !important;
  text-transform: uppercase !important;
}

/* Content padding tweak so the .app-content page-level padding is
   comfortable without being wasteful */
.app-v2 {
  padding-top: var(--ui-space-2);
}

/* Payroll classes cleanup */
.app-v2 .payroll-kpi {
  background: var(--ui-bg) !important;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  box-shadow: none !important;
  padding: var(--ui-space-5) !important;
}
.app-v2 .payroll-kpi--indigo,
.app-v2 .payroll-kpi--green,
.app-v2 .payroll-kpi--amber {
  background: var(--ui-bg) !important;
}
.app-v2 .payroll-kpi-value { color: var(--ui-fg) !important; font-size: var(--ui-font-kpi) !important; font-weight: var(--ui-w-semibold) !important; }
.app-v2 .payroll-kpi-label { color: var(--ui-fg-3) !important; font-size: var(--ui-font-micro) !important; text-transform: uppercase; letter-spacing: 0.05em; }
.app-v2 .payroll-kpi--indigo .payroll-kpi-value { color: var(--ui-accent) !important; }

.app-v2 .payroll-table thead th {
  background: var(--ui-bg-2) !important;
  color: var(--ui-fg-3) !important;
  font-size: var(--ui-font-micro) !important;
  font-weight: var(--ui-w-semibold) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}
.app-v2 .payroll-table tbody td {
  color: var(--ui-fg-2) !important;
  border-bottom: 1px solid var(--ui-border) !important;
}
.app-v2 .payroll-row-btn {
  border-radius: var(--ui-radius-md) !important;
  font-weight: var(--ui-w-medium) !important;
}
.app-v2 .payroll-row-btn--primary {
  background: var(--ui-accent) !important;
  color: white !important;
  border-color: var(--ui-accent) !important;
}


/* ==========================================================================
   13. Sidebar — subtle refresh (does NOT change teacher dashboard behavior,
       we only refresh the visual weight — spacing/colors)
   ==========================================================================
*/

.app-sidebar {
  background: var(--ui-bg) !important;
  border-right: 1px solid var(--ui-border) !important;
}

.app-sidebar-item {
  color: var(--ui-fg-2) !important;
  font-size: var(--ui-font-body) !important;
  font-weight: var(--ui-w-medium) !important;
  border-radius: var(--ui-radius-md) !important;
  padding: 8px 12px !important;
  gap: 10px !important;
}

.app-sidebar-item:hover {
  background: var(--ui-bg-3) !important;
  color: var(--ui-fg) !important;
}

.app-sidebar-item--active {
  background: var(--ui-accent-bg) !important;
  color: var(--ui-accent) !important;
  font-weight: var(--ui-w-semibold) !important;
}

.app-sidebar-item svg,
.app-sidebar-item img {
  width: 18px !important;
  height: 18px !important;
  opacity: 0.9;
}

.app-sidebar-section-label {
  color: var(--ui-fg-4) !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  font-weight: var(--ui-w-semibold) !important;
  text-transform: uppercase !important;
}

/* Topbar refresh */
.app-topbar {
  background: var(--ui-bg) !important;
  border-bottom: 1px solid var(--ui-border) !important;
}


/* ==========================================================================
   13.5. SIDEBAR — GREEN THEME (brand deep-green surface)
   ==========================================================================
   The whole left sidebar is painted in the ASISTEACH brand deep-green
   (#0e503f). Everything inside — text, icons, active pill, badges —
   is retuned so it stays clearly readable on the green background.

   Rule of thumb:
     • text/icons  → white (or slightly translucent white for hierarchy)
     • active/CTA  → brand yellow (#fbe840) — highest contrast on green
     • soft states → white with low alpha (hover/focus overlays)

   Placement — this block MUST live in ui-system.css (unlayered), NOT in
   app.css (which is imported into @layer(base)). Per the CSS cascade
   rules, unlayered normal declarations beat layered ones regardless of
   `!important`, so putting the theme here removes the need for
   !important on every rule and lets these rules cleanly override the
   sidebar refresh block above (section 13) simply by coming later in
   the same file.

   The technique used everywhere below: rescope the `--ui-*` variables
   inside `.app-sidebar`. Because the section-13 rules read those
   variables at run time, redefining them on `.app-sidebar` cascades to
   every rule inside the sidebar — including the ones marked
   `!important` — without touching a single !important ourselves.
   Anything OUTSIDE the sidebar (topbar, dashboards, cards, etc.) keeps
   the original palette because the root-level variables are unchanged.

   To revert the sidebar to the original white theme, remove or comment
   out this whole block.
*/

.app-sidebar {
  /* Rescope every ui-system variable that touches the sidebar.
     WHITE THEME: sidebar is a plain white surface with brand-green
     text/icons and a soft-green tint on active/hover states. Every
     rule below in section 13.5 that used `rgba(255, 255, 255, …)`
     overlays has been swapped for `rgba(14, 80, 63, …)` so hover/
     active pills stay visible on the white background. */
  --ui-bg:        #FFFFFF;                  /* surface */
  --ui-bg-2:      rgba(14, 80, 63, 0.04);   /* soft hover surface */
  --ui-bg-3:      rgba(14, 80, 63, 0.06);   /* item hover */
  --ui-fg:        #0e503f;                  /* strong text */
  --ui-fg-2:      rgba(14, 80, 63, 0.85);   /* default nav text */
  --ui-fg-3:      rgba(14, 80, 63, 0.65);   /* secondary text */
  --ui-fg-4:      rgba(14, 80, 63, 0.55);   /* section labels */
  --ui-border:    rgba(14, 80, 63, 0.10);   /* right edge */
  --ui-accent:    #0e503f;                  /* active label + accents */
  --ui-accent-bg: rgba(14, 80, 63, 0.10);   /* active pill */
}

/* The "ASISTEACH" wordmark has an inline `color` in Sidebar.tsx — we
   override it here with !important so we don't need to touch the
   component. */
.app-sidebar-logo a span {
  color: #0e503f !important;
}
.app-sidebar-logo {
  border-bottom: 1px solid rgba(14, 80, 63, 0.10);
}
.app-sidebar-close-btn {
  color: rgba(14, 80, 63, 0.72);
}
.app-sidebar-close-btn:hover {
  color: #0e503f;
  background: rgba(14, 80, 63, 0.06);
}

/* Active row gets a coloured left accent bar. Reads `--ui-accent` so
   it automatically picks up either the sidebar-default yellow OR the
   section colour when inside a `.app-sidebar-tab-group[data-nav-key]`
   wrapper. `!important` here because the base app.css rule for the
   `--active` border-left is layered and cannot otherwise beat it. */
.app-sidebar-item--active {
  border-left: 4px solid var(--ui-accent) !important;
}

/* Chevrons + "in-tab" (parent row that contains the current page).
   `--in-tab` reads `--ui-accent` so it takes the section colour when
   inside a per-section tab-group wrapper. */
.app-sidebar-item svg.app-sidebar-chev {
  color: rgba(14, 80, 63, 0.5);
}
.app-sidebar-item--in-tab {
  color: var(--ui-accent);
}
.app-sidebar-item--in-tab .app-sidebar-chev {
  color: var(--ui-accent);
}

/* Sub-item active state background — the text colour already comes
   from the base `.app-sidebar-item--active { color: var(--ui-accent) }`
   in section 13, so we only need to soften the pill background here. */
.app-sidebar-children .app-sidebar-item--active {
  background: rgba(14, 80, 63, 0.10);
}

/* Locked (CRM-only) rows — dimmed grey so they read as unavailable
   on the new white surface. */
.app-sidebar-item--locked {
  color: rgba(14, 80, 63, 0.40);
}
.app-sidebar-item--locked:hover {
  background: rgba(14, 80, 63, 0.04);
  color: rgba(14, 80, 63, 0.65);
}
.app-sidebar-lock {
  color: rgba(14, 80, 63, 0.40);
}

/* Badges — on the white sidebar, use a brand-green pill with white
   text so the "new" / "AI" chips remain punchy and readable. */
.app-sidebar-badge--green {
  background: #0e503f;
  color: #FFFFFF;
}
.app-sidebar-badge--ai {
  background: #0e503f;
  color: #FFFFFF;
}

/* Live pulse dot — shift to mint so it stays visible on the darker
   surface while keeping the "living" feel. */
.app-sidebar-live-dot {
  background: #a7f3d0;
}
@keyframes app-sidebar-live-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(167, 243, 208, 0.7);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(167, 243, 208, 0);
  }
}

/* Footer + user row (personal mode).
   The bottom footer block stays on the brand deep-green surface
   even though the top of the sidebar is now white — "My profile",
   "Settings", the "?" help button and the "S Sofia" user chip keep
   the original white-on-green treatment. `background: #0e503f`
   here paints the footer + everything nested inside (including
   `.app-sidebar-user`, which is a child element). */
.app-sidebar-footer {
  background: #0e503f;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  /* Re-rescope the ui-* vars back to the WHITE-ON-GREEN palette
     inside the footer. The parent `.app-sidebar` rescope now paints
     the top of the sidebar white (dark-green text on white). Since
     `.app-sidebar-item { color: var(--ui-fg-2) !important }` reads
     the current variable value at render time, letting the parent
     vars leak into the footer would render "My profile" and
     "Settings" as dark-green-on-green → invisible. Redefining the
     vars on the footer restores the original white-on-green
     treatment for every child element inside the strip. */
  --ui-bg-2:      rgba(255, 255, 255, 0.06);
  --ui-bg-3:      rgba(255, 255, 255, 0.08);
  --ui-fg:        #FFFFFF;
  --ui-fg-2:      rgba(255, 255, 255, 0.85);
  --ui-fg-3:      rgba(255, 255, 255, 0.65);
  --ui-fg-4:      rgba(255, 255, 255, 0.55);
  --ui-accent-bg: rgba(255, 255, 255, 0.14);
  /* Force the active-state text colour to stay white on the green
     footer. Without this, `.app-sidebar-item--active { color:
     var(--ui-accent) }` inherits the parent's deep-green accent and
     "My profile" / "Settings" turn dark-green on the green strip
     (unreadable) the moment the user is on either page. */
  --ui-accent:    #FFFFFF;
}
.app-sidebar-user-btn:hover {
  background: rgba(255, 255, 255, 0.08);
}
.app-sidebar-user-name {
  color: #FFFFFF;
}
.app-sidebar-user-chev {
  color: rgba(255, 255, 255, 0.65);
}
/* Icon chips inside the footer keep the WHITE circle (instead of the
   soft slate chip used in the white top part of the sidebar) so the
   My Profile / Settings SVGs read clearly on the green surface. */
.app-sidebar-footer .app-sidebar-item svg:not(.app-sidebar-chev) {
  background: #FFFFFF;
}
/* NOTE — the popover menu (`.app-sidebar-user-menu`) keeps its white
   background on purpose: it's a floating dropdown, and a white card
   with dark text is the most readable + matches every other dropdown
   in the app. */

/* ---- School-mode overrides ----
   Retune the "purple accents on white" school-mode look so it works
   on the green surface: purples become soft-white, the green active
   pill becomes a soft-yellow pill, and the red "?" help button in the
   user row gets a warm pink tint so it stays legible on green. */
/* Parent tab row: the label colour is picked per-section further down
   via `.app-sidebar-tab-group[data-nav-key="…"]` (which redefines
   `--ui-accent`). Hover keeps a soft white overlay for touch feedback. */
.app-sidebar--school .app-sidebar-item--tab:hover {
  background: rgba(14, 80, 63, 0.05);
}
.app-sidebar--school .app-sidebar-item--tab svg:not(.app-sidebar-chev) {
  color: rgba(14, 80, 63, 0.9);
}
/* Note: per-section colour tinting for the 4 school tabs (Teachers /
   Students / Statistics / School management) lives further down in
   the `.app-sidebar-tab-group[data-nav-key="…"]` block — it uses
   CSS custom properties (`--section-fg`, `--section-active-bg`) so
   every child row inherits the parent's accent colour. */
.app-sidebar--school .app-sidebar-item--tab .app-sidebar-chev {
  color: rgba(14, 80, 63, 0.55);
}
.app-sidebar--school .app-sidebar-children .app-sidebar-item:hover {
  background: rgba(14, 80, 63, 0.05);
  color: #0e503f;
}
.app-sidebar--school .app-sidebar-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}
.app-sidebar--school .app-sidebar-user {
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}
.app-sidebar--school .app-sidebar-footer > .app-sidebar-item {
  color: rgba(255, 255, 255, 0.85);
}
.app-sidebar--school .app-sidebar-footer > .app-sidebar-item svg {
  color: rgba(255, 255, 255, 0.85);
}
.app-sidebar--school .app-sidebar-footer > .app-sidebar-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
}
.app-sidebar--school .app-sidebar-footer > .app-sidebar-item--active {
  background: rgba(251, 232, 64, 0.18);
  color: #fbe840;
}
.app-sidebar--school .app-sidebar-user-name {
  color: #FFFFFF;
}
.app-sidebar--school .app-sidebar-user-btn:hover .app-sidebar-user-name {
  color: #FFFFFF;
}
/* Soft cream avatar chip with deep-green initial — reads well on
   both the old green sidebar and the new white one. */
.app-sidebar--school .app-sidebar-user-avatar {
  background: #fef3c7 !important;
  color: #0e503f !important;
}
/* Warm pink "?" help button — stays as the eye-catching CTA in the
   still-green footer strip. */
.app-sidebar-help-btn {
  color: #ffcbd1;
}
.app-sidebar-help-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
}

/* ---- Icon "chips" ----
   Every nav-row icon sits inside a small SOLID white circle. Turns
   each outlined icon into a readable chip on the deep-green surface
   (before this, the thin white outlines were fighting the background).

   How it works:
   - We give the <svg> itself a white background + border-radius: 50%
     + padding to grow the circle a bit beyond the icon.
   - box-sizing: content-box so `width/height` still apply to the icon
     glyph, and padding stretches the circle around it.
   - Icon COLOUR is set per-item further down using [data-nav-key]
     selectors, so each menu row gets its own distinctive brand
     accent (indigo / teal / amber / coral …) — giving the sidebar
     a colourful, playful feel while the chip stays clean white.
   - `!important` is needed on width/height because the section-13
     rule above sets them to 18px with !important. */
.app-sidebar-item svg:not(.app-sidebar-chev) {
  width: 16px !important;
  height: 16px !important;
  padding: 6px;
  /* Soft slate chip — reads clearly on the new white sidebar without
     stealing attention from the label. */
  background: #f1f5f9;
  /* Default icon colour — brand deep green. Individual rows override
     below to give the sidebar a colourful, playful palette. */
  color: #0e503f;
  border-radius: 50%;
  box-sizing: content-box;
  opacity: 1;
  flex-shrink: 0;
}
/* Emoji-style raster icons (colourful PNGs) get their OWN sizing:
   the emoji fills its bounding box tightly, so we give it slightly
   more surface (22px) and less padding (3px) than the stroke SVG
   icons. Same soft slate chip as the SVG icons for consistency. */
.app-sidebar-item img {
  width: 22px !important;
  height: 22px !important;
  padding: 3px;
  background: #f1f5f9;
  border-radius: 50%;
  box-sizing: content-box;
  opacity: 1;
  flex-shrink: 0;
  object-fit: contain;
}

/* ---- Colourful icon palette (one accent per nav row) ----
   Each row shows a small white chip; the icon inside picks a
   distinct brand-friendly colour so the sidebar reads at a glance.
   My-profile / Settings still use SVG icons and pick their own hue.
   The 4 school-mode rows (Teachers / Students / Statistics /
   School management) use full-colour emoji <img> icons, so the
   `color:` rule doesn't tint them — the whole SECTION's accent
   colour lives further down in `.app-sidebar-tab-group[data-nav-key…]`. */
.app-sidebar-item[data-nav-key="my-profile"]        svg:not(.app-sidebar-chev) { color: #0f0069; } /* indigo */
.app-sidebar-item[data-nav-key="settings"]          svg:not(.app-sidebar-chev) { color: #7c3aed; } /* purple */

/* ---- Per-section accent colours (school-mode 4 tabs) ----
   Each SCHOOL_SECTIONS parent (Teachers / Students / Statistics /
   School management) gets its OWN accent colour applied to both the
   parent row label AND every child row (Profiles, Schedule, Payroll
   etc.). The colours here are the light/vivid variants tuned for
   readability on the deep-green sidebar; the pages themselves reuse
   the "pure" brand versions via the `.page-<key>` classes below.

   How it works: each `.app-sidebar-tab-group[data-nav-key="…"]`
   REDEFINES `--ui-accent` and `--ui-accent-bg` inside its scope.
   Because sidebar rules like `.app-sidebar-item--active { color:
   var(--ui-accent) !important }` read those variables at run time,
   the section's colour cascades to every rule inside it — INCLUDING
   the ones marked `!important` — without needing to touch a single
   `!important` here. This is the same technique used by section
   13.5 above (which redefines `--ui-accent` on `.app-sidebar` to
   the sidebar-yellow default).

   Brand mapping — DARK variants for the new WHITE sidebar surface
   (the old light/sidebar variants have been dropped since they
   would vanish against the white background):
     • Teachers          → brand indigo  (#0f0069)
     • Students          → amber-700     (#a16207 — bright brand
                                          yellow is unreadable on white)
     • Statistics        → slate-600     (#475569)
     • School management → brand green   (#0e503f) */
/* Per-section colour tints. The `-bg` values are DELIBERATELY quiet
 * so that the ACTIVE sub-item pill reads as "gently highlighted"
 * rather than "someone left the cursor here" (which the previous
 * bright yellow gave off). Text colour still carries the section
 * identity. */
.app-sidebar-tab-group[data-nav-key="teachers"]          { --ui-accent: #0f0069; --ui-accent-bg: rgba(15, 0, 105, 0.08);  }
.app-sidebar-tab-group[data-nav-key="students"]          { --ui-accent: #a16207; --ui-accent-bg: rgba(161, 98, 7, 0.09);  }
.app-sidebar-tab-group[data-nav-key="statistics"]        { --ui-accent: #475569; --ui-accent-bg: rgba(71, 85, 105, 0.09); }
.app-sidebar-tab-group[data-nav-key="school-management"] { --ui-accent: #0e503f; --ui-accent-bg: rgba(14, 80, 63, 0.09);  }

/* Parent tab row + children (non-active) inherit the section colour
   via `--ui-accent`. The active child already gets `color:
   var(--ui-accent) !important` from the base `.app-sidebar-item--active`
   rule (section 13) so we don't need to restate it here. */
.app-sidebar-tab-group .app-sidebar-item--tab,
.app-sidebar-tab-group .app-sidebar-children .app-sidebar-item {
  color: var(--ui-accent);
}

/* Per-page main accent colour override.
   Wrap the page's root element with one of these classes to re-tint
   every element that reads `--ui-accent` (buttons, links, tabs, KPI
   accents, etc.) with the section's own brand colour. */
.page-teachers            { --ui-accent: #0f0069; --ui-accent-2: #1a0c8a; --ui-accent-bg: #eef1ff; }
.page-students            { --ui-accent: #a16207; --ui-accent-2: #854d0e; --ui-accent-bg: #fef9c3; } /* yellow readable on white */
.page-statistics          { --ui-accent: #475569; --ui-accent-2: #334155; --ui-accent-bg: #f1f5f9; } /* grey */
.page-school-management   { --ui-accent: #0e503f; --ui-accent-2: #0a3d2f; --ui-accent-bg: #dcfce7; }

/* ---- Per-section TOP BAR colour ----
   The full-width app top bar (`.app-topbar`, with hamburger menu +
   page title "Team" / "Students" / …) takes the section's brand
   colour so users immediately see which section they're in. The
   `body.app-section-<key>` class is set by AppLayout when a page
   declares `section="…"` as a prop.

   We use the section's PURE brand hue (not the sidebar-light variant)
   so the bar reads as a solid confident band. Text inside the bar
   is forced to a legible colour on that hue. */
body.app-section-teachers          .app-topbar { background: #0f0069 !important; color: #FFFFFF; }
body.app-section-students          .app-topbar { background: #fdd504 !important; color: #0e503f; }
/* Statistics topbar: WHITE with slate-grey text. The former dark
   slate fill was too heavy above the light content and read as a
   regression next to the other sections' airier bars. Keeps the
   grey section identity via the text colour + sidebar tint. */
body.app-section-statistics        .app-topbar { background: #FFFFFF !important; color: #334155; }
body.app-section-statistics        .app-topbar > button:hover { background: rgba(51, 65, 85, 0.10) !important; }
/* School management: WHITE topbar with brand-green text (per user
   request — the green surface is reserved for the sidebar footer +
   the "My Classes" active pill, so the section topbar stays clean
   white here to avoid a same-green clash between the topbar and
   the sidebar's own green footer strip). */
body.app-section-school-management .app-topbar { background: #FFFFFF !important; color: #0e503f; }

/* Force topbar text (page title) + hamburger icon to inherit the bar's
   own text colour, overriding any darker defaults from earlier rules. */
body[class*="app-section-"] .app-topbar :is(h1, h2, h3, h4, button, svg) {
  color: inherit !important;
}
/* Hamburger button hover: a soft white tint that reads on any bar hue. */
body[class*="app-section-"] .app-topbar > button:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}
/* Yellow topbar (Students) uses a dark hamburger tint so it stays
   visible on the bright background. */
body.app-section-students .app-topbar > button:hover {
  background: rgba(14, 80, 63, 0.12) !important;
}
/* White topbar (School management) — same rule: dark tint so the
   hamburger hover is visible on the light background. */
body.app-section-school-management .app-topbar > button:hover {
  background: rgba(14, 80, 63, 0.12) !important;
}

/* Breathing room between the hamburger menu button and the page title
   ("Team", "Students", …) so the title doesn't hug the icon. Only
   applied inside a section-tinted topbar. */
body[class*="app-section-"] .app-topbar > :is(h1, h2, h3, h4) {
  margin-left: 16px !important;
}

/* ---- Per-section MODE SWITCHER tint ----
   The ModeSwitcher pill (School ⇄ My Classes) reads a small set of
   CSS custom properties for its background, border, active fill and
   text colours (see ModeSwitcher.tsx).

   Design rule (per user request):
     • Container  → WHITE pill with a soft grey frame (reads on any
                    coloured topbar background)
     • Inactive   → dark-grey text for readability on the white pill
     • Active fill→ THE SECTION'S BRAND COLOUR (matches the topbar
                    background, so the active button visually "belongs"
                    to the current section)
     • Active text→ white (or brand green on the yellow fill so it
                    stays readable) */
/* NOTE — CSS vars alone are too fragile here because the ModeSwitcher
   is an `astro-island` React component with inline `style={{ … }}`;
   var inheritance through the island wrapper is unreliable in Astro
   dev builds. So we override the switcher's inline styles directly
   with `!important` on the specific elements. Blunt but rock-solid. */

/* Container pill: white bg, soft grey frame — same on every section. */
body[class*="app-section-"] .app-topbar-mode-switcher [role="group"] {
  background: #FFFFFF !important;
  border-color: #e2e8f0 !important;
}
/* Active button ("School"): filled with the section's brand colour so
   it matches the topbar background. White text on top. */
body[class*="app-section-"] .app-topbar-mode-switcher button[aria-pressed="true"] {
  color: #FFFFFF !important;
}
body.app-section-teachers          .app-topbar-mode-switcher button[aria-pressed="true"] { background: #0f0069 !important; }
body.app-section-statistics        .app-topbar-mode-switcher button[aria-pressed="true"] { background: #64748b !important; }
body.app-section-school-management .app-topbar-mode-switcher button[aria-pressed="true"] { background: #0e503f !important; }
/* Yellow (Students) → brand green text on the yellow fill for contrast. */
body.app-section-students .app-topbar-mode-switcher button[aria-pressed="true"] {
  background: #fdd504 !important;
  color: #0e503f !important;
}
/* Inactive "School" button: slate-grey text on the white pill. Note the
   `:not([aria-label*="Classes"])` guard keeps the "My Classes" button
   free to use its own always-green tint below. */
body[class*="app-section-"] .app-topbar-mode-switcher button[aria-pressed="false"] {
  color: #64748b !important;
}
/* "My Classes" button: ALWAYS brand-green text, active or not, on any
   section. The React side passes `textColor="#0e503f"` too, but this
   CSS rule pins it in place even if any future prop changes. */
body[class*="app-section-"] .app-topbar-mode-switcher button:last-of-type {
  color: #0e503f !important;
}
/* Active "My Classes" button: brand-green fill with white text on
   every section topbar. Higher specificity than the per-section
   `button[aria-pressed="true"] { background: <section> }` rules and
   the `button:last-of-type { color: green }` rule right above, so
   both are overridden when the user has selected the My Classes
   view — regardless of which section (Teachers / Students / …)
   they're currently browsing. */
body[class*="app-section-"] .app-topbar-mode-switcher button:last-of-type[aria-pressed="true"] {
  background: #0e503f !important;
  color: #FFFFFF !important;
}


/* ==========================================================================
   14. Mode switcher subtler
   ==========================================================================
*/
.app-topbar-mode-switcher {
  filter: none;
}


/* ==========================================================================
   15. School dashboard (home) — identity header, KPI link, team & schedule
   ========================================================================== */

/* --- Identity header (logo + school name + welcome) --- */
.dash-identity {
  display: flex;
  align-items: center;
  gap: var(--ui-space-6);
  padding: var(--ui-space-6) var(--ui-space-6);
  background: var(--ui-bg);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  margin-bottom: var(--ui-space-6);
}
.dash-identity-text {
  flex: 1;
  min-width: 220px;
}
.dash-identity-text .ui-page-title { margin-top: 2px; }

/* Text-over-photo readability
   ---------------------------
   The previous approach used a full-width scrim + a huge blurred
   text-shadow to make the text stand out. The problem: on a mid-tone
   photo the 12px white halo bleeds around each small letter and
   VISUALLY blends with the dark text, so the eye reads it as grey
   even though `color:` on the element is dark navy (confirmed via
   getComputedStyle). Three rounds of tuning couldn't fix that —
   it's a fundamental limit of blurred shadows on small text.

   New approach: give the text its own semi-opaque "glass" card
   directly behind it. The card provides real contrast so we don't
   need any text-shadow; `backdrop-filter: blur()` keeps the photo
   softly visible through the card so the background image still
   feels present.

     - Dark bg (custom uploads + preset 4): dark glass, white text.
     - Light bg (all other presets):        light glass, dark navy text.
*/
.dash-identity--dark-bg .dash-identity-text,
.dash-identity--light-bg .dash-identity-text {
  padding: 14px 18px;
  border-radius: var(--ui-radius-lg);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  /* Small self-margin so the glass card doesn't touch the banner's
     inner padding, which reads more intentional. */
  margin: 4px 0;
}
.dash-identity--dark-bg .dash-identity-text {
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.dash-identity--light-bg .dash-identity-text {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(0, 0, 0, 0.05);
}
/* Text colours now do the whole job — no text-shadow needed because
   the glass card already gives us the contrast. These class rules
   beat the wrapper's inline `color:` (bannerConfig.textColor) because
   `color:` on a child element is a direct declaration, not inheritance. */
.dash-identity--dark-bg .ui-page-eyebrow,
.dash-identity--dark-bg .ui-page-title,
.dash-identity--dark-bg .ui-page-subtitle {
  color: #ffffff;
  text-shadow: none;
}
.dash-identity--dark-bg .ui-page-eyebrow { font-weight: 700; }
.dash-identity--dark-bg .ui-page-subtitle { font-weight: 500; }
.dash-identity--light-bg .ui-page-eyebrow,
.dash-identity--light-bg .ui-page-title,
.dash-identity--light-bg .ui-page-subtitle {
  color: #0a0a1a;
  text-shadow: none;
}
.dash-identity--light-bg .ui-page-eyebrow { font-weight: 700; }
.dash-identity--light-bg .ui-page-subtitle { font-weight: 500; }

/* --- KPI as a link (whole card clickable) --- */
.ui-kpi--link {
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--ui-t-med) var(--ui-ease),
              transform var(--ui-t-med) var(--ui-ease),
              border-color var(--ui-t-med) var(--ui-ease);
}
.ui-kpi--link:hover {
  box-shadow: var(--ui-shadow-hover);
  border-color: var(--ui-fg-4);
  transform: translateY(-1px);
}

/* --- Shared dashboard swatch palette ---
 * A single source of truth for the 5 dashboard chip colours (used by
 * both the KPI icon chips and the team avatars). Each colour has a bg
 * + fg pair so contrast stays legible in every context. Change one
 * swatch here and it propagates to every chip that uses it. */
.app-v2 {
  --swatch-yellow-bg: var(--color-brand-yellow-400);
  --swatch-yellow-fg: var(--color-brand-indigo-500);
  --swatch-green-bg:  var(--color-brand-green-500);
  --swatch-green-fg:  #ffffff;
  --swatch-plum-bg:   var(--color-brand-indigo-500);
  --swatch-plum-fg:   #ffffff;
  --swatch-orange-bg: #f97316;
  --swatch-orange-fg: #ffffff;
  --swatch-teal-bg:   #14b8a6;
  --swatch-teal-fg:   #ffffff;
}

/* --- Decorated KPI card (SchoolDashboard v2) ---
 * Adds a coloured icon-chip on the right side of the KPI card so each
 * metric has its own visual identity (revenue = yellow, teachers = green,
 * students = plum, profit = orange). Without this, the 4 cards were
 * visually identical white boxes ("plain / boring" per user feedback).
 * We keep the original stack of label / value / hint on the left; the
 * icon sits on the right, aligned to the top of the card so tall values
 * (e.g. "€1,234") don't push it around. */
.ui-kpi--decorated {
  flex-direction: row;
  align-items: flex-start;
  gap: var(--ui-space-3);
}
.ui-kpi--decorated .ui-kpi__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.ui-kpi__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--ui-radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* Colour + background come from the modifier classes below.
   * Defaults are a soft neutral so an un-modified chip stays readable. */
  background: var(--color-neutral-100);
  color: var(--color-neutral-500);
}
/* Colour variants for the KPI icon chip — share the same swatch
 * variables as the avatar rules below, so the two chip families stay
 * visually consistent. */
.ui-kpi__icon--yellow { background: var(--swatch-yellow-bg); color: var(--swatch-yellow-fg); }
.ui-kpi__icon--green  { background: var(--swatch-green-bg);  color: var(--swatch-green-fg);  }
.ui-kpi__icon--plum   { background: var(--swatch-plum-bg);   color: var(--swatch-plum-fg);   }
.ui-kpi__icon--orange { background: var(--swatch-orange-bg); color: var(--swatch-orange-fg); }
/* --art: for raster/emoji-style icons that already carry their own
 * colour. No background chip — just render the artwork cleanly. */
.ui-kpi__icon--art    { background: transparent; }
.ui-kpi__icon--art img { display: block; }

/* --- Two-column team + today grid on dashboard --- */
.dash-two-col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-6);
}

/* --- Inline link (see all / manage / full calendar) --- */
.dash-inline-link {
  font-size: var(--ui-font-small);
  color: var(--ui-fg-3);
  text-decoration: none;
  font-weight: var(--ui-w-medium);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color var(--ui-t-fast) var(--ui-ease);
}
.dash-inline-link:hover { color: var(--ui-accent); }

/* --- People list (team members on the dashboard) --- */
.dash-people-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dash-people-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  text-decoration: none;
  color: inherit;
  transition: background var(--ui-t-fast) var(--ui-ease);
}
.dash-people-row:hover { background: var(--ui-bg-2); }
.dash-avatar {
  width: 40px; height: 40px;
  border-radius: var(--ui-radius-pill);
  background: var(--ui-accent-bg);
  color: var(--ui-accent);
  font-weight: var(--ui-w-semibold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}
/* Deterministic colour variants for the team-member avatars on the
 * dashboard. `avatarColorClassFor(seed)` in SchoolDashboard picks one
 * of these 5 based on a hash of the name, so the same teacher always
 * gets the same colour but the list overall looks varied (not a wall
 * of identical brand-indigo circles). Shares the same swatch palette
 * as the KPI icon chips (defined above), so tuning a colour there
 * flows through to the avatars automatically. */
.dash-avatar--yellow { background: var(--swatch-yellow-bg); color: var(--swatch-yellow-fg); }
.dash-avatar--green  { background: var(--swatch-green-bg);  color: var(--swatch-green-fg);  }
.dash-avatar--plum   { background: var(--swatch-plum-bg);   color: var(--swatch-plum-fg);   }
.dash-avatar--orange { background: var(--swatch-orange-bg); color: var(--swatch-orange-fg); }
.dash-avatar--teal   { background: var(--swatch-teal-bg);   color: var(--swatch-teal-fg);   }
.dash-people-name { flex: 1; min-width: 0; }
.dash-people-primary {
  font-size: var(--ui-font-body);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dash-people-meta {
  font-size: var(--ui-font-micro);
  color: var(--ui-fg-3);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dash-people-stats {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  color: var(--ui-fg-3);
}
.dash-mini-stat { text-align: right; }
.dash-mini-stat__num {
  font-size: 15px;
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
  line-height: 1;
}
.dash-mini-stat__lbl {
  font-size: 10px;
  color: var(--ui-fg-4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 2px;
}

/* --- Schedule list (today's lessons) --- */
.dash-schedule-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.dash-schedule-row {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  border-radius: var(--ui-radius-md);
  background: var(--ui-bg-2);
}
.dash-time-pill {
  font-size: var(--ui-font-micro);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-accent);
  background: var(--ui-accent-bg);
  padding: 4px 8px;
  border-radius: var(--ui-radius-sm);
  flex-shrink: 0;
}
.dash-schedule-meta { flex: 1; min-width: 0; }
.dash-schedule-title {
  font-size: var(--ui-font-body);
  font-weight: var(--ui-w-semibold);
  color: var(--ui-fg);
}
.dash-schedule-title a {
  color: var(--ui-fg);
  text-decoration: none;
}
.dash-schedule-title a:hover { color: var(--ui-accent); }
.dash-schedule-teacher {
  font-weight: var(--ui-w-regular);
  color: var(--ui-fg-3);
}
.dash-schedule-sub {
  font-size: var(--ui-font-small);
  color: var(--ui-fg-3);
  margin-top: 2px;
}

/* Illustrative icon-chip prepended above the empty-state text so the
 * card doesn't feel bare when there's nothing to show. Used on the
 * dashboard's "Nothing scheduled today" card. Different from
 * `.ui-empty__icon` (which sizes an emoji/font glyph): this one wraps a
 * stroked SVG icon inside a soft-tinted circle. */
.ui-empty__icon-chip {
  width: 56px;
  height: 56px;
  border-radius: var(--ui-radius-pill);
  background: var(--color-brand-yellow-100);
  color: var(--color-brand-yellow-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px auto;
}


/* ==========================================================================
   16. Modal cleanups inside .app-v2 (record payment, edit payout, etc.)
   ========================================================================== */

.app-v2 .modal-content,
.app-v2 .modal-body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}


/* ==========================================================================
   17. Payment cards used by the "Payments to follow up" attention card
       and the school-management cards. Softens the loud left-accent bar
       and orange tint into a clean informational card.
   ========================================================================== */

.app-v2 .app-payments-need-attention,
.app-v2 .app-payments-attention-card {
  background: var(--ui-bg) !important;
  border: 1px solid var(--ui-border) !important;
  border-left: 3px solid var(--ui-warning) !important;
  border-radius: var(--ui-radius-lg) !important;
  box-shadow: none !important;
}


/* ==========================================================================
   18. Legacy `.page-header` (shared component used inside TeamManagement,
       MoneyPage, InsightsPage, etc.). The wrapper pages already show a
       clean `.ui-page-header`, so the inner one is redundant.

       Strategy:
         • Strip the loud dark-purple gradient, dot pattern, shadow, radius.
         • Hide the redundant title/eyebrow/subtitle (already in outer).
         • Keep the ACTIONS row + STATS row + TABS row, but restyle them
           so they blend with the clean page (KPIs become the same
           unified white cards, buttons become the standard `.ui-btn`).
   ========================================================================== */

.app-v2 .page-header {
  background: transparent !important;
  color: var(--ui-fg) !important;
  padding: 0 !important;
  margin: 0 0 var(--ui-space-6) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.app-v2 .page-header::before { display: none !important; }

/* Hide the inner title stack — the outer .ui-page-header already shows it. */
.app-v2 .page-header-titles { display: none !important; }

/* Actions bar keeps its spot on the right but sits on the clean page. */
.app-v2 .page-header-row--top {
  justify-content: flex-end !important;
  margin-bottom: var(--ui-space-4) !important;
}

/* Buttons in the header become standard indigo/ghost buttons. */
.app-v2 .page-header-btn {
  border-radius: var(--ui-radius-md) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 8px 14px !important;
  box-shadow: none !important;
  transition: background 0.15s ease, color 0.15s ease !important;
}
.app-v2 .page-header-btn--primary {
  background: var(--ui-accent) !important;
  color: #fff !important;
}
.app-v2 .page-header-btn--primary:hover {
  background: var(--ui-accent-hover, #1a0e94) !important;
  transform: none !important;
}
.app-v2 .page-header-btn--ghost {
  background: var(--ui-bg) !important;
  color: var(--ui-fg) !important;
  border: 1px solid var(--ui-border) !important;
}
.app-v2 .page-header-btn--ghost:hover {
  background: var(--ui-bg-muted) !important;
}

/* Stats strip becomes a clean KPI grid (same look as `.ui-kpi-grid`). */
.app-v2 .page-header-stats {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap: var(--ui-space-4) !important;
  margin-top: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  list-style: none !important;
}
.app-v2 .page-header-stat {
  background: var(--ui-bg) !important;
  border: 1px solid var(--ui-border) !important;
  border-radius: var(--ui-radius-lg) !important;
  padding: var(--ui-space-4) var(--ui-space-5) !important;
  box-shadow: none !important;
  color: var(--ui-fg) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
.app-v2 .page-header-stat:hover {
  border-color: var(--ui-accent) !important;
  background: var(--ui-bg) !important;
  transform: none !important;
}
.app-v2 .page-header-stat--highlight,
.app-v2 .page-header-stat--link {
  background: var(--ui-bg) !important;
  color: var(--ui-fg) !important;
}
.app-v2 .page-header-stat-icon {
  display: none !important;  /* remove the emoji icons — too noisy */
}
.app-v2 .page-header-stat-number {
  font-size: var(--ui-font-kpi) !important;
  font-weight: 700 !important;
  color: var(--ui-fg) !important;
  letter-spacing: -0.01em !important;
}
.app-v2 .page-header-stat-label {
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--ui-fg-muted) !important;
}
.app-v2 .page-header-stat-link {
  color: inherit !important;
  text-decoration: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

/* Header tabs (rarely used now that we ship `.ui-tabs`, but be defensive). */
.app-v2 .page-header-tabs {
  background: transparent !important;
  border-bottom: 1px solid var(--ui-border) !important;
  padding: 0 !important;
  margin-top: var(--ui-space-4) !important;
  gap: 24px !important;
}
.app-v2 .page-header-tab {
  color: var(--ui-fg-muted) !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 10px 0 !important;
  font-weight: 500 !important;
}
.app-v2 .page-header-tab--active {
  color: var(--ui-accent) !important;
  border-bottom-color: var(--ui-accent) !important;
  background: transparent !important;
}
.app-v2 .page-header-tab-icon { display: none !important; }


/* ==========================================================================
   19. Student card colored stat boxes (rate/sessions-left).
       These are inline-styled with hard-coded #fef3c7 / #dcfce7 / #fee2e2.
       We neutralize the boxes to a single unified soft tile, but keep the
       "sessions left" red tint when it's critical (that's genuine signal).
   ========================================================================== */

/* Yellow "Rate" tile → clean neutral tile with accent number. */
.app-v2 [style*="background: #fef3c7"],
.app-v2 [style*="background: rgb(254, 243, 199)"] {
  background: var(--ui-accent-bg, #f3f1ff) !important;
  color: var(--ui-accent) !important;
}
/* Blue "Next lesson" tile → same neutral treatment. */
.app-v2 [style*="background: #e0f2fe"],
.app-v2 [style*="background: rgb(224, 242, 254)"] {
  background: var(--ui-bg-muted) !important;
  color: var(--ui-fg) !important;
}
/* Green "Sessions left" tile → keep a subtle success tint, muted. */
.app-v2 [style*="background: #dcfce7"],
.app-v2 [style*="background: rgb(220, 252, 231)"] {
  background: rgba(22, 163, 74, 0.08) !important;
  color: #166534 !important;
}
/* Red "Sessions left (critical)" tile → keep visible warning. */
.app-v2 [style*="background: #fee2e2"],
.app-v2 [style*="background: rgb(254, 226, 226)"] {
  background: rgba(220, 38, 38, 0.08) !important;
  color: #991b1b !important;
}


/* Small button variant for CTAs in list rows. */
.app-v2 .ui-btn--sm {
  padding: 6px 12px !important;
  font-size: 13px !important;
}


/* ==========================================================================
   21. Card headers with subtitle.
   ========================================================================== */

.app-v2 .ui-card__subtitle {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--ui-fg-muted);
  line-height: 1.45;
  max-width: 60ch;
}


/* ==========================================================================
   22. Account pages — My profile (/app/my-area) + Preferences (/app/preferences)
   ==========================================================================
   The two pages that live behind the sidebar footer ("My profile" and
   "Settings") share the same visual language: a coloured header banner
   with a bright yellow accent circle, followed by stacked white panels
   holding form fields, toggles, or integration rows.

   Classes are prefixed `.acct-*` so they never collide with the older
   `.app-*` / `.ui-*` conventions used across the school-mode dashboards.
   Both React components (MyProfilePage.tsx and PreferencesPage.tsx)
   rely on this block.

   Colour variants for the header:
     .acct-header--green  → My Profile
     .acct-header--indigo → Preferences (Settings)
*/

.acct-page { max-width: 880px; margin: 0 auto; padding: 8px 4px 40px; }

/* ---- Coloured header banner with a big yellow off-page circle ---- */
.acct-header {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  padding: 28px 32px;
  margin-bottom: 20px;
  color: #FFFFFF;
}
.acct-header::after {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 160px;
  height: 160px;
  background: #fdd504; /* brand yellow */
  border-radius: 50%;
}
.acct-header--green  { background: #0e503f; }
.acct-header--indigo { background: #0f0069; }
.acct-header .acct-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 4px;
  position: relative; /* stay above the ::after circle */
}
.acct-header h1 {
  color: #FFFFFF;
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 700;
  position: relative;
}
.acct-header p {
  color: rgba(255, 255, 255, 0.85);
  max-width: 600px;
  margin: 0;
  font-size: 14px;
  position: relative;
}

/* ---- White panel / card ---- */
.acct-panel {
  background: #FFFFFF;
  border: 1px solid #e2e4e0;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 20px;
}
.acct-panel-title {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 4px;
  color: #1c231f;
}
.acct-panel-sub {
  font-size: 12.5px;
  color: #6b756f;
  margin: 0 0 16px;
}

/* ---- Two-column form grid + field ---- */
.acct-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acct-field { display: flex; flex-direction: column; gap: 5px; }
.acct-field label { font-size: 12px; font-weight: 600; color: #6b756f; }
.acct-field input,
.acct-field select {
  font-family: inherit;
  font-size: 14px;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid #e2e4e0;
  color: #1c231f;
  background: #FFFFFF;
}
.acct-field input:disabled { background: #f5f6f4; color: #6b756f; }

/* ---- Row with a label on the left and an action on the right ----
   Used by security rows (Password / 2FA) and notification toggles. */
.acct-row-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #e2e4e0;
  gap: 12px;
}
.acct-row-between:last-child { border-bottom: none; }
.acct-row-label { font-size: 14px; font-weight: 600; color: #1c231f; }
.acct-row-sub { font-size: 12px; color: #6b756f; margin-top: 1px; }

/* ---- Toggle switch ----
   Off = grey pill, On = brand-green pill. Pure CSS, no JS. Toggle state
   is driven by the `.acct-toggle--on` class from the React component. */
.acct-toggle {
  width: 40px;
  height: 22px;
  border-radius: 20px;
  background: #e2e4e0;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
  border: none;
  padding: 0;
  transition: background 0.15s ease;
}
.acct-toggle::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #FFFFFF;
  top: 3px;
  left: 3px;
  transition: left 0.15s ease;
}
.acct-toggle--on { background: #0e503f; }
.acct-toggle--on::after { left: 21px; }

/* ---- Icon + label row used by Delivery channels and Integrations ---- */
.acct-channel-row,
.acct-integration-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #e2e4e0;
}
.acct-channel-row:last-child,
.acct-integration-row:last-child { border-bottom: none; }
.acct-channel-icon,
.acct-integration-icon { font-size: 20px; width: 26px; text-align: center; }
.acct-channel-name,
.acct-integration-name { font-weight: 600; font-size: 13.5px; color: #1c231f; }
.acct-integration-sub { font-size: 11.5px; color: #6b756f; }

/* ---- Connected / Not-connected pill badges ---- */
.acct-status {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 9px;
  border-radius: 20px;
  white-space: nowrap;
}
.acct-status--connected { color: #0e503f; background: #e6efec; }
.acct-status--not { color: #9aa39d; background: #f1f2ef; }

/* ---- Locked integrations (Telegram / WhatsApp — not wired yet) ----
   Whole row is visually muted so users understand it's not clickable.
   The `.acct-locked-note` badge on the right replaces the usual
   "Not connected" pill + Connect button with a padlock and label. */
.acct-integration-row--locked,
.acct-channel-row--locked {
  opacity: 0.55;
  filter: grayscale(0.6);
}
.acct-integration-row--locked .acct-integration-name,
.acct-channel-row--locked .acct-channel-name { color: #6b756f; }

.acct-locked-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  color: #6b756f;
  background: #f1f2ef;
  border: 1px solid #e2e4e0;
  white-space: nowrap;
}

/* ---- Account-page buttons ----
   The account screens were written using the generic `.btn` / `.btn-primary`
   classes, but `buttons.css` is not one of the stylesheets AppLayout loads,
   so those classes resolved to nothing and every button on this page
   rendered as bare bold text. These are the real thing, scoped `.acct-*`
   like the rest of this block.

   Palette and geometry follow specs/design/specs.md: indigo primary,
   white outline secondary, 8px button radius. */
.acct-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  /* Secondary is the default: white body, indigo outline and label. */
  background: #ffffff;
  color: #0f0069;
  border: 1.5px solid #0f0069;
}
.acct-btn:hover:not(:disabled) { background: #ecebf7; }
.acct-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.acct-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(15, 0, 105, 0.2);
}

.acct-btn--primary {
  background: #0f0069;
  color: #ffffff;
  border-color: #0f0069;
}
.acct-btn--primary:hover:not(:disabled) { background: #0c0053; border-color: #0c0053; }

/* Row of actions on the right of an integration row. Wraps rather than
   running off the card: with two buttons side by side, "Update existing
   events" was overflowing the panel on a phone. */
.acct-btn-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  flex-shrink: 0;
}
@media (max-width: 640px) {
  /* Below this width the icon + text block and the actions cannot share
     a line at a readable size, so the actions drop to their own full
     row and stretch. */
  .acct-row-between--stack { flex-direction: column; align-items: stretch; }
  .acct-row-between--stack .acct-btn-row { justify-content: stretch; }
  .acct-row-between--stack .acct-btn { flex: 1 1 auto; }
}

/* ---- "Template — not live yet" tag ---- */
.acct-tag-template {
  font-size: 10.5px;
  font-weight: 700;
  color: #0f0069;
  background: #ecebf7;
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ---- "You also teach at this school" mint banner ---- */
.acct-teach-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #e6efec;
  border-radius: 14px;
  padding: 18px 20px;
}
.acct-teach-banner .acct-teach-title { font-weight: 700; font-size: 14px; color: #0e503f; margin-bottom: 2px; }
.acct-teach-banner .acct-teach-sub { font-size: 12.5px; color: #6b756f; }

/* ---- Subscription plan card (indigo gradient) ---- */
.acct-plan-card {
  background: linear-gradient(135deg, #0f0069, #1a0a8f);
  color: #FFFFFF;
  border-radius: 14px;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.acct-plan-card .acct-plan-name { font-size: 17px; font-weight: 700; }
.acct-plan-card .acct-plan-sub { font-size: 12.5px; color: rgba(255, 255, 255, 0.75); margin-top: 2px; }
.acct-plan-card .acct-plan-price { font-size: 22px; font-weight: 800; }
.acct-plan-card .btn { background: #FFFFFF; color: #0f0069; border: none; }
.acct-plan-card .btn:hover { background: rgba(255, 255, 255, 0.9); }
.acct-usage-bar { background: rgba(255, 255, 255, 0.2); border-radius: 20px; height: 8px; overflow: hidden; margin-top: 8px; width: 200px; }
.acct-usage-fill { background: #fdd504; height: 100%; border-radius: 20px; }

/* ---- Avatar chip (initial in a soft coloured disc) ---- */
.acct-avatar-lg {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #ecebf7;
  color: #0f0069;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 22px;
  flex-shrink: 0;
}
.acct-avatar-edit {
  font-size: 12px;
  color: #0f0069;
  font-weight: 600;
  cursor: pointer;
  margin-top: 4px;
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
}
.acct-avatar-edit:hover { text-decoration: underline; }

/* ---- Small save-status text next to a Save button ---- */
.acct-save-status {
  font-size: 12.5px;
  font-weight: 500;
  margin-left: 12px;
}
.acct-save-status--success { color: #16a34a; }
.acct-save-status--error   { color: #dc2626; }
/* Muted variant used for the "Changes are saved automatically" hint
   next to the autosave-driven School Settings form. Softer than the
   success/error variants so it fades into the background when idle. */
.acct-save-status--muted   { color: #9aa39d; }

/* ---- Field variants used by the School Settings tab ---------------
   `.acct-field--full` spans the whole two-column grid (used for
   address, website, IBAN, social hint) and `.acct-field-hint` is a
   soft grey help line that sits under an input. */
.acct-field--full { grid-column: 1 / -1; }
.acct-field-hint  { font-size: 11px; color: #9aa39d; }

/* Compact number input sitting on the right side of an .acct-row-between.
   Keeps the layout tight so the number picker doesn't stretch to fill. */
.acct-cancel-notice-field { display: inline-block; }
.acct-cancel-notice-field input {
  width: 110px;
  padding: 8px 10px;
  border: 1px solid #d0d7d3;
  border-radius: 8px;
  font-size: 14px;
  text-align: center;
  background: #ffffff;
}
.acct-cancel-notice-field input:focus {
  outline: none;
  border-color: #0f4c3d;
  box-shadow: 0 0 0 3px rgba(15, 76, 61, 0.15);
}

/* ---- Panel title with a small pill trailer (School Settings) --- */
.acct-panel-title { display: flex; align-items: center; gap: 8px; }

/* ---- "Used on payment reports & other PDFs" blue pill ---------
   Sits inline with the panel title on the General settings card. */
.acct-doc-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 500;
  color: #0f0069;
  background: #ecebf7;
  padding: 4px 10px;
  border-radius: 20px;
  margin-left: auto;
}

/* ---- Logo row (School Settings → General settings) --------------
   The 56×56 rounded square shows either the initials (green square,
   yellow letter) or the uploaded logo (cover-cropped). */
.acct-logo-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.acct-logo-box {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: #0e503f;
  color: #fdd504;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 20px;
  flex-shrink: 0;
}

/* ---- Permission chips (School Settings → Default teacher
   permissions). Off = white pill w/ border, on = mint tint w/
   brand-green text. */
.acct-perm-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.acct-perm-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 7px 12px;
  border-radius: 20px;
  border: 1px solid #e2e4e0;
  background: #ffffff;
  color: #1c231f;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.acct-perm-chip:hover { background: #f5f6f4; }
.acct-perm-chip--on {
  background: #e6efec;
  color: #0e503f;
  border-color: transparent;
}
.acct-perm-chip--on:hover { background: #d7e5df; }

/* ---- Save row (Save changes button + status) ---------------- */
.acct-save-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 4px 0 24px;
}

/* ---- Danger zone panel (red-tinted card) ------------------- */
.acct-danger-panel {
  background: #fdf6f6;
  border: 1px solid #e7c9c9;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 20px;
}
.acct-danger-panel .acct-panel-title { color: #a33232; }
.acct-danger-panel .acct-row-between { border-color: #f0dede; }

/* ---- Danger button variant ---------------------------------
   Ghost button that reads red, used only inside the danger zone. */
.btn-danger-outline {
  color: #a33232 !important;
  border-color: #e7c9c9 !important;
  background: #ffffff !important;
}
.btn-danger-outline:hover { background: #fbeeee !important; }

/* ---- Responsive: stack the field grid on narrow screens ---- */
@media (max-width: 640px) {
  .acct-field-grid { grid-template-columns: 1fr; }
  .acct-header { padding: 22px 24px; }
  /* Shrink the big yellow decorative circle on mobile: at 160px it
     covered the title text on iPhone-SE-sized screens. 80px keeps the
     brand accent visible in the corner without eating the copy. */
  .acct-header::after {
    width: 80px;
    height: 80px;
    top: -30px;
    right: -30px;
  }
  .acct-panel { padding: 20px; }
  .acct-plan-card { flex-direction: column; align-items: flex-start; }
  .acct-doc-note { margin-left: 0; margin-top: 4px; }
  .acct-panel-title { flex-wrap: wrap; }
}



/* ==========================================================================
   99. PHONE LEGIBILITY — the app interior
   ==========================================================================
   Companion to the `@media (max-width: 640px)` blocks in typo.css and
   colors.css. Those retune the GLOBAL `--font-weight-*` / `--color-text-*`
   tokens, which is enough for the landing page — but every screen inside
   the app is painted from the `--ui-*` tokens defined in section 1, and
   those were never part of that override. Result: the marketing site got
   readable on a phone while the product itself stayed thin and grey.

   The complaint is stroke width, not contrast. At 13-14px with weight
   400-500, Inter draws stems roughly one device pixel wide; the screen
   anti-aliases them into a pale smear that reads as "grey text" even
   when the measured contrast ratio is fine. Fix = heavier + slightly
   larger + darker, in that order of importance.

   THREE separate scopes redefine `--ui-fg-*`, and they do NOT all move
   in the same direction:
     1. `:root`               dark text on white  → go DARKER
     2. `.app-sidebar`        dark green on white → go DARKER
     3. `.app-sidebar-footer` WHITE on deep green → go LIGHTER
   Darkening (3) along with the rest would paint "My profile" and
   "Settings" near-black on a #0e503f strip, i.e. invisible. This is the
   same trap that bit the `.form-label--dark` optional marker.
   ========================================================================== */
@media (max-width: 640px) {
  :root {
    /* Weights. The single biggest lever — a 500 reads on a phone where
       a 400 dissolves.

       IT IS A FLOOR, NOT A SHIFT. `--ui-w-medium` was lifted here too
       in the first pass (500 -> 600), and the user's verdict on the
       result was "it looks like they are all in bold". Once 500 is the
       lightest weight on the page, raising 500 to 600 buys no
       legibility at all — it only erases the contrast between plain
       text and emphasis, so every label and button reads as shouting.
       Only the weight that genuinely dissolves is raised, and only as
       far as 500. Same rule in typo.css and in the generator. */
    --ui-w-regular: 500;

    /* NO SIZE OVERRIDES HERE ANY MORE. This block used to bump the four
       `--ui-font-*` tokens by 1px each. Sizes are now decided in exactly
       one place — the generated `mobile-typography.css`, which lifts
       these same tokens if and only if they fall below 13px. Two
       sources meant every retune had to be made twice, and the second
       one was always forgotten. */

    /* Colours. `--ui-fg-3` is the one the user actually pointed at: it
       paints every page subtitle ("Everyone currently learning at your
       school…"), every field label and every table meta column. */
    --ui-fg-2: #141a29;        /* was #2b3244 */
    --ui-fg-3: #2b3244;        /* was #5b657a */
    --ui-fg-4: #5b657a;        /* was #8a94a6 */
  }

  /* Sidebar drawer — dark-green text on a white surface. Same
     direction as :root, expressed as alpha because that is how the
     green theme in section 13.5 writes them. */
  .app-sidebar {
    --ui-fg-2: #0e503f;
    --ui-fg-3: rgba(14, 80, 63, 0.88);
    --ui-fg-4: rgba(14, 80, 63, 0.78);
  }

  /* Section captions ("MY SCHOOL", "TEACHING") were 10px uppercase at
     55% alpha — the faintest text anywhere in the product. Size is left
     to the generator (10px -> 12px); only the alpha problem is solved
     here, and with semibold rather than bold — these are quiet
     signposts between groups of links, not headlines. */
  .app-sidebar-section-label {
    font-weight: var(--ui-w-semibold) !important;
  }

  /* Footer strip — white on deep green. Opposite direction: raise the
     alpha towards opaque white instead of darkening. */
  .app-sidebar-footer {
    --ui-fg-2: #ffffff;
    --ui-fg-3: rgba(255, 255, 255, 0.88);
    --ui-fg-4: rgba(255, 255, 255, 0.78);
  }
}
/**
 * team-profiles.css — Scoped styles for the redesigned "Team profiles" tab.
 *
 * Everything here is namespaced under `.team-profiles-v2` so it can't leak
 * into other pages. Palette is intentionally close to the HTML mockup the
 * user provided — deep school-green as the primary accent, indigo (project
 * `--color-primary`) as the secondary link color.
 *
 * Layout:
 *   .team-profiles-v2                       — root wrapper
 *   .tp-panel                                — the single big card holding everything
 *   .tp-header                               — title + subtitle + action buttons
 *   .tp-stat-grid / .tp-stat-card            — 4 KPI tiles
 *   .tp-card-grid                            — auto-fit grid of teacher cards
 *   .tp-teacher-card                         — one teacher card (avatar + name + rate + languages)
 *   .tp-detail-panel                         — inline-expanded panel below its card
 *   .tp-info-grid / .tp-info-card            — 2-column info cards (languages / status)
 *   .tp-rate-table                           — per-duration rate table
 */

.team-profiles-v2 {
  /* ------- Palette (mockup) ------- */
  --tp-green: #0e503f;
  --tp-green-hover: #0c4234;
  --tp-green-light: #e6efec;
  --tp-blue: var(--color-primary, #0f0069);
  --tp-blue-light: #ecebf7;

  --tp-bg: #f5f6f4;
  --tp-surface: #ffffff;
  --tp-surface-muted: #f1f2ef;
  --tp-border: #e2e4e0;
  --tp-text-primary: #1c231f;
  --tp-text-secondary: #6b756f;
  --tp-text-muted: #9aa39d;

  --tp-radius: 10px;
  --tp-radius-lg: 14px;
}

/* ---------- Container panel ---------- */
.team-profiles-v2 .tp-panel {
  background: var(--tp-surface);
  border: 1px solid var(--tp-border);
  border-radius: var(--tp-radius-lg);
  padding: 1.5rem;
  color: var(--tp-text-primary);
}

/* ---------- Header row ---------- */
.team-profiles-v2 .tp-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.team-profiles-v2 .tp-header h2 {
  font-size: 20px;
  margin: 0 0 4px;
  color: var(--tp-text-primary);
}
.team-profiles-v2 .tp-header p {
  font-size: 13px;
  color: var(--tp-text-secondary);
  margin: 0;
}
.team-profiles-v2 .tp-header-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

/* ---------- Shared buttons ---------- */
.team-profiles-v2 .tp-btn {
  font-size: 13px;
  font-weight: 600;
  padding: 9px 15px;
  border-radius: var(--tp-radius);
  border: 1px solid var(--tp-border);
  background: var(--tp-surface);
  color: var(--tp-text-primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.15s ease, border-color 0.15s ease;
  line-height: 1;
}
.team-profiles-v2 .tp-btn:hover { background: var(--tp-surface-muted); }
.team-profiles-v2 .tp-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.team-profiles-v2 .tp-btn--primary {
  background: var(--tp-green);
  border-color: var(--tp-green);
  color: #fff;
}
.team-profiles-v2 .tp-btn--primary:hover { background: var(--tp-green-hover); }
.team-profiles-v2 .tp-btn--icon {
  padding: 9px;
  width: 36px;
  justify-content: center;
}

/* ---------- Badges ---------- */
.team-profiles-v2 .tp-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  white-space: nowrap;
}
.team-profiles-v2 .tp-badge--owner {
  background: var(--tp-blue-light);
  color: var(--tp-blue);
}
.team-profiles-v2 .tp-badge--active {
  background: var(--tp-green-light);
  color: var(--tp-green);
}

/* ---------- Avatar ---------- */
.team-profiles-v2 .tp-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 15px;
  color: #fff;
  flex-shrink: 0;
}

/* ---------- Stat cards (KPIs) ---------- */
.team-profiles-v2 .tp-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 1.75rem;
}
.team-profiles-v2 .tp-stat-card {
  background: var(--tp-surface-muted);
  border-radius: var(--tp-radius);
  padding: 1rem;
  text-align: center;
}
.team-profiles-v2 .tp-stat-num {
  font-size: 24px;
  font-weight: 700;
  color: var(--tp-green);
  line-height: 1.2;
}
.team-profiles-v2 .tp-stat-label {
  font-size: 11px;
  color: var(--tp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 2px;
}

/* ---------- Teacher card grid ---------- */
.team-profiles-v2 .tp-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.team-profiles-v2 .tp-teacher-card {
  border: 1px solid var(--tp-border);
  border-radius: var(--tp-radius-lg);
  padding: 1rem;
  position: relative;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  background: var(--tp-surface);
}
.team-profiles-v2 .tp-teacher-card:hover {
  border-color: var(--tp-green);
  box-shadow: 0 2px 8px rgba(14, 80, 63, 0.08);
}
.team-profiles-v2 .tp-teacher-card.is-open {
  border-color: var(--tp-green);
  box-shadow: 0 2px 8px rgba(14, 80, 63, 0.10);
}

.team-profiles-v2 .tp-card-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.team-profiles-v2 .tp-card-name {
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.team-profiles-v2 .tp-card-rate {
  font-size: 12px;
  color: var(--tp-text-secondary);
}
.team-profiles-v2 .tp-card-langs {
  font-size: 12px;
  color: var(--tp-text-secondary);
  margin-bottom: 14px;
  min-height: 18px;
}
.team-profiles-v2 .tp-card-actions {
  display: flex;
  gap: 8px;
}
.team-profiles-v2 .tp-card-actions .tp-btn { flex: 1; justify-content: center; }
.team-profiles-v2 .tp-card-actions .tp-btn--icon { flex: 0 0 auto; }

.team-profiles-v2 .tp-chevron {
  margin-left: auto;
  color: var(--tp-text-muted);
  font-size: 16px;
  transition: transform 0.2s ease;
  line-height: 1;
  user-select: none;
}
.team-profiles-v2 .tp-chevron.is-open {
  transform: rotate(180deg);
  color: var(--tp-green);
}

/* ---------- Inline expanded panel ---------- */
.team-profiles-v2 .tp-detail-panel {
  grid-column: 1 / -1;
  background: var(--tp-surface-muted);
  border: 1px solid var(--tp-border);
  border-radius: var(--tp-radius-lg);
  padding: 1.25rem;
  margin-top: -4px;
  animation: tp-reveal 0.18s ease;
}
@keyframes tp-reveal {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.team-profiles-v2 .tp-detail-top {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 14px;
  gap: 8px;
  flex-wrap: wrap;
}

/* ---------- Info cards inside detail panel ---------- */
.team-profiles-v2 .tp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 1.25rem;
}
.team-profiles-v2 .tp-info-card {
  background: var(--tp-surface);
  border-radius: var(--tp-radius);
  padding: 1rem;
}
.team-profiles-v2 .tp-eyebrow {
  font-size: 11px;
  color: var(--tp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}
.team-profiles-v2 .tp-info-value {
  font-size: 15px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.team-profiles-v2 .tp-info-sub {
  font-size: 12px;
  color: var(--tp-text-secondary);
  margin-top: 2px;
}
.team-profiles-v2 .tp-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--tp-green);
  display: inline-block;
}

/* ---------- Rate table ---------- */
.team-profiles-v2 .tp-rate-section {
  margin-bottom: 14px;
}
/* Header row above the rate table — section title on the left, optional
   currency picker on the right. Kept as a flex row so the picker aligns
   cleanly with the eyebrow baseline. */
.team-profiles-v2 .tp-rate-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
/* When the eyebrow lives inside .tp-rate-header its own margin-bottom
   is redundant (the flex row already spaces things). */
.team-profiles-v2 .tp-rate-header .tp-eyebrow {
  margin-bottom: 0;
}
/* Small "Currency" label rendered next to the CurrencySelect trigger —
   same visual weight as an eyebrow so the two blocks read as siblings. */
.team-profiles-v2 .tp-rate-currency {
  display: flex;
  align-items: center;
  gap: 6px;
}
.team-profiles-v2 .tp-rate-currency-label {
  font-size: 11px;
  color: var(--tp-text-muted);
}
.team-profiles-v2 .tp-rate-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--tp-surface);
  border-radius: var(--tp-radius);
  overflow: hidden;
  margin-bottom: 10px;
  table-layout: fixed;
}
.team-profiles-v2 .tp-rate-table th {
  text-align: left;
  font-size: 11px;
  color: var(--tp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  padding: 10px 14px;
  border-bottom: 1px solid var(--tp-border);
  background: var(--tp-surface);
}
.team-profiles-v2 .tp-rate-table td {
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  border-bottom: 1px solid var(--tp-border);
  vertical-align: middle;
}
.team-profiles-v2 .tp-rate-table tr:last-child td { border-bottom: none; }
.team-profiles-v2 .tp-rate-table td.tp-unset {
  color: var(--tp-text-muted);
  font-weight: 500;
}
.team-profiles-v2 .tp-rate-table td.tp-actions {
  width: 92px;
  text-align: right;
  color: var(--tp-text-muted);
  font-weight: 400;
  white-space: nowrap;
}
.team-profiles-v2 .tp-rate-table td.tp-actions button {
  background: transparent;
  border: 0;
  padding: 4px 6px;
  border-radius: 6px;
  color: var(--tp-text-muted);
  cursor: pointer;
  font-size: 14px;
}
.team-profiles-v2 .tp-rate-table td.tp-actions button:hover {
  background: var(--tp-surface-muted);
  color: var(--tp-text-primary);
}
.team-profiles-v2 .tp-rate-table th:first-child,
.team-profiles-v2 .tp-rate-table td:first-child {
  color: var(--tp-text-primary);
  font-weight: 600;
  width: 30%;
}
.team-profiles-v2 .tp-rate-input {
  width: 100%;
  border: 1px solid var(--tp-border);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 13px;
  font-weight: 600;
  background: #fff;
  color: var(--tp-text-primary);
}
.team-profiles-v2 .tp-rate-input:focus {
  outline: none;
  border-color: var(--tp-green);
  box-shadow: 0 0 0 2px rgba(14, 80, 63, 0.15);
}

.team-profiles-v2 .tp-btn-add-length {
  background: transparent;
  border: 1px dashed var(--tp-border);
  color: var(--tp-blue);
  font-weight: 600;
}
.team-profiles-v2 .tp-btn-add-length:hover {
  background: var(--tp-blue-light);
  border-color: var(--tp-blue);
}

/* ---------- Quick links strip ---------- */
.team-profiles-v2 .tp-quick-links {
  border-top: 1px solid var(--tp-border);
  padding-top: 14px;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.team-profiles-v2 .tp-quick-links a {
  color: var(--tp-blue);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}
.team-profiles-v2 .tp-quick-links a:hover { text-decoration: underline; }

/* ---------- Empty state ---------- */
.team-profiles-v2 .tp-empty {
  padding: 40px;
  text-align: center;
  color: var(--tp-text-muted);
  font-size: 14px;
  background: var(--tp-surface-muted);
  border-radius: var(--tp-radius-lg);
}

/* ---------- Simple dropdown menu (…) ---------- */
.team-profiles-v2 .tp-menu-wrap {
  position: relative;
}
.team-profiles-v2 .tp-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  background: #fff;
  border: 1px solid var(--tp-border);
  border-radius: var(--tp-radius);
  box-shadow: 0 6px 24px rgba(28, 35, 31, 0.12);
  min-width: 180px;
  z-index: 10;
  padding: 4px;
}
.team-profiles-v2 .tp-menu button {
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  font-size: 13px;
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  color: var(--tp-text-primary);
}
.team-profiles-v2 .tp-menu button:hover { background: var(--tp-surface-muted); }
.team-profiles-v2 .tp-menu button.is-danger { color: #dc2626; }

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
  .team-profiles-v2 .tp-stat-grid,
  .team-profiles-v2 .tp-info-grid { grid-template-columns: 1fr 1fr; }
  .team-profiles-v2 .tp-header { flex-direction: column; gap: 12px; }
  .team-profiles-v2 .tp-header-actions { width: 100%; }
  .team-profiles-v2 .tp-header-actions .tp-btn { flex: 1; }
  .team-profiles-v2 .tp-rate-table th:first-child,
  .team-profiles-v2 .tp-rate-table td:first-child { width: 34%; }
  .team-profiles-v2 .tp-rate-table td.tp-actions { width: 64px; }
}
/*
 * school-schedule.css — scoped styles for the Team → Schedule tab.
 *
 * Everything here lives under `.school-schedule` so it can't leak into
 * other pages that use the generic <Calendar> component. Palette
 * follows the mockup Sofia provided: green = individual, yellow =
 * group, muted grey = cancelled, a per-teacher HSL dot for identity.
 */

.school-schedule {
  --ss-green: #0e503f;
  --ss-green-dark: #0c4234;
  --ss-green-light: #e6efec;
  --ss-yellow: #a8860b;
  --ss-yellow-bg: #fdd504;
  --ss-blue: #0f0069;
  --ss-blue-light: #ecebf7;
  --ss-bg: #f5f6f4;
  --ss-surface: #ffffff;
  --ss-surface-muted: #f1f2ef;
  --ss-border: #e2e4e0;
  --ss-text: #1c231f;
  --ss-text-secondary: #6b756f;
  --ss-text-muted: #9aa39d;
  --ss-radius: 10px;
  --ss-radius-lg: 14px;

  color: var(--ss-text);
  font-family: var(--font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto, sans-serif);
}

/* ---------- Sticky header stack ----------
   Wraps timezone-bar + toolbar + legend so they stay pinned at the
   top of the viewport while the calendar body scrolls under them.
   The `top` offset matches the app-topbar-height (falls back sensibly
   if the ResizeObserver hasn't populated the shared var yet). The
   inner CSS variable `--ss-header-stack-height` is set from JS
   (SchoolScheduleView useEffect) so the calendar's own sticky
   day-headers can offset themselves below this block. */
.school-schedule .ss-sticky-header {
  position: sticky;
  top: var(--app-header-stack-height, var(--app-topbar-height, 64px));
  z-index: 10;
  /* Solid background so the calendar scrolling underneath doesn't
     bleed through the pinned filters. Matches the app page tint. */
  background: var(--ui-bg-2, #f8f9fc);
  /* Flex-column with `gap` owns the spacing between tz/toolbar/legend
     instead of overriding each child's legacy margin-bottom. Adding
     a fourth row later doesn't need any extra CSS selectors. */
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 6px;
  /* Slight breathing room so day-headers don't kiss the legend when
     they stick against it. */
  padding-bottom: 6px;
}
/* Neutralise legacy bottom margins that the three children carry from
   their standalone (non-wrapped) styles — `gap` above is the single
   source of truth for spacing inside the sticky block. */
.school-schedule .ss-sticky-header > * {
  margin-bottom: 0;
}
/* `.ss-tz` is `display: inline-flex` and would otherwise stretch to
   the full column width inside our flex-column wrapper. Keep it
   pill-sized like the mockup by shrinking it back to its content. */
.school-schedule .ss-sticky-header > .ss-tz {
  align-self: flex-start;
}

/* ---------- Timezone bar ---------- */
.school-schedule .ss-tz {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ss-blue-light);
  color: var(--ss-blue);
  padding: 9px 14px;
  border-radius: var(--ss-radius);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 14px;
}
.school-schedule .ss-tz strong { font-weight: 700; }

/* ---------- Buttons + selects ---------- */
.school-schedule .ss-btn {
  font-size: 13px;
  font-weight: 600;
  padding: 8px 13px;
  border-radius: var(--ss-radius);
  border: 1px solid var(--ss-border);
  background: var(--ss-surface);
  color: var(--ss-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.2;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.school-schedule .ss-btn:hover { background: var(--ss-surface-muted); }
.school-schedule .ss-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.school-schedule .ss-btn-primary {
  background: var(--ss-green);
  border-color: var(--ss-green);
  color: #fff;
}
.school-schedule .ss-btn-primary:hover { background: var(--ss-green-dark); border-color: var(--ss-green-dark); }
.school-schedule .ss-select {
  font-size: 13px;
  padding: 8px 12px;
  border-radius: var(--ss-radius);
  border: 1px solid var(--ss-border);
  background: var(--ss-surface);
  color: var(--ss-text);
  cursor: pointer;
}

/* ---------- Toolbar ---------- */
.school-schedule .ss-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.school-schedule .ss-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}
.school-schedule .ss-date-range {
  font-size: 16px;
  font-weight: 700;
  min-width: 190px;
  text-align: center;
  color: var(--ss-text);
}
.school-schedule .ss-view-toggle {
  display: flex;
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  overflow: hidden;
}
.school-schedule .ss-view-toggle button {
  border: none;
  background: var(--ss-surface);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  cursor: pointer;
  color: var(--ss-text-secondary);
}
.school-schedule .ss-view-toggle button.active {
  background: var(--ss-green);
  color: #fff;
}
.school-schedule .ss-toolbar-right {
  margin-left: auto;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* ---------- Legend ---------- */
.school-schedule .ss-legend {
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 12.5px;
  color: var(--ss-text-secondary);
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.school-schedule .ss-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.school-schedule .ss-swatch {
  width: 11px;
  height: 11px;
  border-radius: 3px;
  display: inline-block;
}
.school-schedule .ss-sw-individual { background: var(--ss-green); }
.school-schedule .ss-sw-group { background: var(--ss-yellow-bg); }
.school-schedule .ss-sw-cancelled { background: var(--ss-text-muted); opacity: 0.5; }
.school-schedule .ss-teacher-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}

/* ---------- Layout ---------- */
.school-schedule .ss-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.school-schedule .ss-calendar-col {
  flex: 1;
  min-width: 0;
}
.school-schedule .ss-side-panel {
  width: 280px;
  flex-shrink: 0;
  background: var(--ss-surface);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius-lg);
  padding: 1.1rem;
  position: sticky;
  top: 20px;
}
@media (max-width: 900px) {
  .school-schedule .ss-layout { flex-direction: column; }
  .school-schedule .ss-side-panel {
    width: 100%;
    position: static;
  }
}

/* ---------- Calendar (day/week time-grid) ----------
   `overflow: clip` visually clips content to the rounded corners
   (like `overflow: hidden`) but does NOT establish a scroll container,
   so `.ss-cal-head` can stick to the OUTER page scroll instead of
   sticking within `.ss-calendar` itself. */
.school-schedule .ss-calendar {
  background: var(--ss-surface);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius-lg);
  overflow: clip;
}
/* Day headers stick just below the sticky header stack (timezone bar
   + toolbar + legend) as the page scrolls, so the user always sees
   which day column they're looking at without the headers hiding
   behind the pinned filters. */
.school-schedule .ss-cal-head {
  display: grid;
  border-bottom: 1px solid var(--ss-border);
  background: var(--ss-surface-muted);
  position: sticky;
  /* Offset = app topbar (or the full sticky-banner stack if the
     yellow "confirm your email" banner is visible) + the height of
     our own sticky header block (published as --ss-header-stack-height
     by SchoolScheduleView's ResizeObserver). Falls back to 0 for
     first paint before the observer fires. */
  top: calc(
    var(--app-header-stack-height, var(--app-topbar-height, 64px))
    + var(--ss-header-stack-height, 0px)
  );
  z-index: 5;
}
.school-schedule .ss-cal-day {
  text-align: center;
  padding: 10px 4px;
  font-size: 11px;
  color: var(--ss-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.school-schedule .ss-cal-dayname { font-size: 11px; color: var(--ss-text-muted); }
.school-schedule .ss-cal-daynum {
  font-size: 16px;
  font-weight: 700;
  color: var(--ss-text);
  margin-top: 2px;
}
.school-schedule .ss-cal-day.today .ss-cal-daynum {
  background: var(--ss-blue);
  color: #fff;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2px auto 0;
}
/* No inner scroll on the calendar body — the whole page scrolls as
   one. `.ss-calendar` uses `overflow: clip` (not `hidden`) so the
   sticky day-headers below anchor to the outer page scroll, not to
   this wrapper. Keeping the class present as an inert wrapper so
   the two consumers (SchoolScheduleView, StudentScheduleView) can
   keep referencing it without a JSX change. */
.school-schedule .ss-cal-scroll {
  /* intentionally empty — no max-height, no overflow */
}

/* Flex-based body: fixed 56px hour rail + N stretchy day columns.
   Each day column is `position: relative` so absolutely-positioned
   lessons land inside their own day, not the whole grid. */
.school-schedule .ss-cal-body-flex {
  display: flex;
  align-items: stretch;
  position: relative;
}
.school-schedule .ss-hour-rail {
  width: 56px;
  flex-shrink: 0;
  border-right: 1px solid var(--ss-border);
  background: var(--ss-surface);
}
.school-schedule .ss-hour-label-flex {
  font-size: 11px;
  color: var(--ss-text-muted);
  padding: 0 8px 0 6px;
  text-align: right;
  transform: translateY(-6px);
  box-sizing: border-box;
}
.school-schedule .ss-day-col {
  flex: 1;
  min-width: 0;
  position: relative;
  border-left: 1px solid var(--ss-border);
  background: var(--ss-surface);
}
.school-schedule .ss-day-col.first { border-left: none; }
.school-schedule .ss-day-col.today { background: #fafcfb; }
.school-schedule .ss-hour-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 1px solid var(--ss-border);
  pointer-events: none;
}
.school-schedule .ss-now-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 2px solid #d0342c;
  z-index: 3;
  pointer-events: none;
}
.school-schedule .ss-now-line::before {
  content: '';
  position: absolute;
  left: -4px;
  top: -5px;
  width: 8px;
  height: 8px;
  background: #d0342c;
  border-radius: 50%;
}

/* Lesson blocks */
.school-schedule .ss-lesson {
  position: absolute;
  left: 3px;
  right: 3px;
  border-radius: 6px;
  padding: 4px 6px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  overflow: hidden;
  cursor: pointer;
  border: none;
  text-align: left;
  font-family: inherit;
  line-height: 1.3;
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: transform 0.08s ease, box-shadow 0.12s ease;
  z-index: 2;
}
.school-schedule .ss-lesson:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.school-schedule .ss-lesson-individual { background: var(--ss-green); }
.school-schedule .ss-lesson-group { background: var(--ss-yellow); }
.school-schedule .ss-lesson.cancelled {
  background: var(--ss-text-muted);
  opacity: 0.55;
  text-decoration: line-through;
}
.school-schedule .ss-lesson.compact .ss-lesson-sub { display: none; }
.school-schedule .ss-lesson-top {
  display: flex;
  align-items: center;
  gap: 4px;
}
.school-schedule .ss-lesson-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  flex-shrink: 0;
}
.school-schedule .ss-lesson-who {
  font-size: 11.5px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* "17:30 · 60 min" — one line, always.
 *
 * It used to be allowed to wrap, which is harmless in a desktop column
 * but not on a phone: seven days share 390px, so a column is ~43px wide
 * and the line broke into four. The tile is only as tall as the lesson
 * is long (56px for an hour), so `overflow: hidden` sliced the last line
 * through the middle — the School-schedule half of the "cut" reported on
 * 2026-09-11. Measured then: tiles asking for 76-92px inside 56px.
 * An ellipsis is honest; half a row of letters is not. */
.school-schedule .ss-lesson-sub {
  font-size: 10.5px;
  font-weight: 500;
  opacity: 0.9;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Same guarantee as `.cal-event > *` in app.css: a line of text is never
   squeezed below its own height, so it can never be sliced in half. */
.school-schedule .ss-lesson > * {
  flex-shrink: 0;
}


/* ---------- Month view ----------
   Same sticky-header treatment as the week view: `overflow: clip`
   preserves rounded-corner clipping without creating a scroll container,
   so `.ss-month-head` can stick to the page scroll. */
.school-schedule .ss-month {
  background: var(--ss-surface);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius-lg);
  overflow: clip;
}
.school-schedule .ss-month-head {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: var(--ss-surface-muted);
  border-bottom: 1px solid var(--ss-border);
  position: sticky;
  /* Offset = app topbar (or the full sticky-banner stack if the
     yellow "confirm your email" banner is visible) + the height of
     our own sticky header block (published as --ss-header-stack-height
     by SchoolScheduleView's ResizeObserver). Falls back to 0 for
     first paint before the observer fires. */
  top: calc(
    var(--app-header-stack-height, var(--app-topbar-height, 64px))
    + var(--ss-header-stack-height, 0px)
  );
  z-index: 5;
}
.school-schedule .ss-month-dayname {
  text-align: center;
  padding: 10px 4px;
  font-size: 11px;
  color: var(--ss-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
}
.school-schedule .ss-month-body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.school-schedule .ss-month-cell {
  min-height: 100px;
  padding: 6px 8px;
  border-left: 1px solid var(--ss-border);
  border-top: 1px solid var(--ss-border);
  cursor: pointer;
  transition: background 0.1s ease;
}
.school-schedule .ss-month-cell:hover { background: var(--ss-surface-muted); }
.school-schedule .ss-month-cell:nth-child(7n+1) { border-left: none; }
.school-schedule .ss-month-cell.out { background: #fafbf9; color: var(--ss-text-muted); }
.school-schedule .ss-month-cell.today .ss-month-num {
  background: var(--ss-blue);
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.school-schedule .ss-month-num {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 4px;
  display: inline-block;
}
.school-schedule .ss-month-chips {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.school-schedule .ss-month-chip {
  font-size: 10.5px;
  font-weight: 600;
  color: #fff;
  border: none;
  border-radius: 4px;
  /* Slightly taller padding so the round teacher-initial dot has
     breathing room inside the chip. */
  padding: 3px 6px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  /* Row layout: [dot] [name — flex-grows and truncates] [time] */
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  line-height: 1.2;
}
.school-schedule .ss-month-chip.ss-lesson-individual { background: var(--ss-green); }
.school-schedule .ss-month-chip.ss-lesson-group { background: var(--ss-yellow); }
.school-schedule .ss-month-chip.cancelled {
  background: var(--ss-text-muted);
  opacity: 0.5;
  text-decoration: line-through;
}
/* Month chips reuse the shared `.ss-lesson-dot` (day/week grid and
   legend) — we just shrink it and add a subtle ring so the coloured
   circle stays readable when its hue is close to the chip's own
   green/yellow background. */
.school-schedule .ss-month-chip .ss-lesson-dot {
  width: 14px;
  height: 14px;
  font-size: 8.5px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}
/* Student / group name: takes the remaining width, ellipsises when
   the cell is too narrow (typical on Saturday/Sunday columns). */
.school-schedule .ss-month-chip-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}
/* Time kept as a secondary cue — smaller and slightly faded so the
   name reads first. Hidden if the cell is really narrow so the name
   stays fully visible (name > time in usefulness). */
.school-schedule .ss-month-chip-time {
  flex-shrink: 0;
  font-size: 9.5px;
  font-weight: 500;
  opacity: 0.85;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 720px) {
  .school-schedule .ss-month-chip-time { display: none; }
}
.school-schedule .ss-month-more {
  font-size: 10.5px;
  color: var(--ss-text-secondary);
  padding: 2px 5px;
}

/* ---------- Side panel content ---------- */
.school-schedule .ss-panel-teacher {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.school-schedule .ss-panel-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  flex-shrink: 0;
}
.school-schedule .ss-panel-name { font-weight: 700; font-size: 14px; }
.school-schedule .ss-panel-sub { font-size: 11.5px; color: var(--ss-text-secondary); }

.school-schedule .ss-panel-section { margin-bottom: 16px; }
.school-schedule .ss-panel-eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ss-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}

.school-schedule .ss-stat-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.school-schedule .ss-stat-line .k { font-size: 12.5px; color: var(--ss-text-secondary); }
.school-schedule .ss-stat-line .v { font-size: 13.5px; font-weight: 700; }
.school-schedule .ss-stat-line .v.accent { color: var(--ss-green); }

.school-schedule .ss-split-bar {
  display: flex;
  height: 8px;
  border-radius: 6px;
  overflow: hidden;
  margin: 8px 0 6px;
  background: var(--ss-surface-muted);
}
.school-schedule .ss-split-bar .ind { background: var(--ss-green); }
.school-schedule .ss-split-bar .grp { background: var(--ss-yellow-bg); }
.school-schedule .ss-split-legend {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--ss-text-secondary);
}

.school-schedule .ss-free-slot {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 6px 8px;
  background: var(--ss-surface-muted);
  border-radius: 6px;
  margin-bottom: 5px;
}
.school-schedule .ss-free-slot .d { font-weight: 600; }
.school-schedule .ss-free-slot .t { color: var(--ss-green); font-weight: 600; }

.school-schedule .ss-panel-empty {
  font-size: 12px;
  color: var(--ss-text-secondary);
  padding: 6px 8px;
  background: var(--ss-surface-muted);
  border-radius: 6px;
}

.school-schedule .ss-panel-cta {
  width: 100%;
  justify-content: center;
  margin-top: 4px;
}

/* ---------- Loading state ---------- */
.school-schedule .ss-loading {
  padding: 40px;
  text-align: center;
  color: var(--ss-text-secondary);
  background: var(--ss-surface);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius-lg);
}

/* ---------- Schedule modal body ---------- */
.school-schedule .ss-modal-hint {
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--ss-blue-light);
  color: var(--ss-blue);
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 16px;
}
.school-schedule .ss-modal-row { margin-bottom: 16px; }
.school-schedule .ss-modal-label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ss-text);
}
.school-schedule .ss-modal-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--ss-border);
  background: var(--ss-surface);
  font-family: inherit;
  font-size: 14px;
  color: var(--ss-text);
}
.school-schedule .ss-modal-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.school-schedule .ss-type-toggle { display: flex; gap: 8px; }
.school-schedule .ss-type-toggle button {
  flex: 1;
  padding: 10px 12px;
  border-radius: 8px;
  border: 2px solid var(--ss-border);
  background: var(--ss-surface);
  color: var(--ss-text);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.12s ease;
}
.school-schedule .ss-type-toggle button.active {
  border-color: var(--ss-green);
  background: var(--ss-green-light);
  color: var(--ss-green);
}
.school-schedule .ss-type-toggle button.grp.active {
  border-color: var(--ss-yellow-bg);
  background: #fff8d1;
  color: var(--ss-yellow);
}
.school-schedule .ss-modal-error {
  padding: 10px 14px;
  border-radius: 8px;
  background: #fdecec;
  color: #b3261e;
  font-size: 13px;
  margin-bottom: 12px;
}
/* Timezone warning shown in the schedule modal when the student lives
   in a different IANA zone than the school. */
.school-schedule .ss-tz-warn {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff4d6;
  color: #7a5a00;
  font-size: 13px;
  margin-bottom: 12px;
  border-left: 4px solid #d4a017;
}
.school-schedule .ss-tz-warn-icon {
  font-size: 15px;
  line-height: 1.2;
  flex-shrink: 0;
}
.school-schedule .ss-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 10px;
}

/* ---------- Interactive header (jump to day view) ---------- */
.school-schedule .ss-cal-day.clickable {
  cursor: pointer;
  transition: background 0.1s ease;
}
.school-schedule .ss-cal-day.clickable:hover {
  background: #eef2ee;
}

/* ---------- Click-and-drag slot selection ---------- */
.school-schedule .ss-day-col.pickable {
  cursor: crosshair;
}
.school-schedule .ss-drag-preview {
  position: absolute;
  left: 3px;
  right: 3px;
  background: rgba(15, 0, 105, 0.12);
  border: 1.5px dashed var(--ss-blue);
  border-radius: 6px;
  z-index: 5;
  pointer-events: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 3px;
}
.school-schedule .ss-drag-preview-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ss-blue);
  background: #fff;
  border: 1px solid var(--ss-blue);
  border-radius: 4px;
  padding: 1px 6px;
}

/* ---------- Multi-teacher aggregation chip ---------- */
.school-schedule .ss-agg-chip {
  position: absolute;
  left: 3px;
  right: 3px;
  background: var(--ss-surface);
  border: 1.5px solid var(--ss-blue);
  border-radius: 6px;
  padding: 5px 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  font-family: inherit;
  z-index: 2;
  transition: background 0.1s ease;
}
.school-schedule .ss-agg-chip:hover {
  background: #ecebf7;
}
.school-schedule .ss-dot-stack {
  display: flex;
  flex-shrink: 0;
}
.school-schedule .ss-dot-stack .ss-lesson-dot {
  margin-left: -5px;
  border: 1.5px solid var(--ss-surface);
}
.school-schedule .ss-dot-stack .ss-lesson-dot:first-child {
  margin-left: 0;
}
.school-schedule .ss-agg-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--ss-blue);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- Aggregation popover ---------- */
.school-schedule .ss-agg-popover {
  position: absolute;
  width: 260px;
  background: var(--ss-surface);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius-lg);
  box-shadow: 0 12px 32px rgba(15, 0, 105, 0.18);
  z-index: 30;
  overflow: hidden;
}
.school-schedule .ss-agg-popover-head {
  padding: 10px 14px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ss-text);
  border-bottom: 1px solid var(--ss-border);
  background: var(--ss-surface-muted);
}
.school-schedule .ss-agg-popover-list {
  max-height: 260px;
  overflow-y: auto;
}
.school-schedule .ss-agg-popover-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--ss-border);
  font-size: 12.5px;
  width: 100%;
  background: transparent;
  border-left: none;
  border-right: none;
  border-top: none;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
.school-schedule .ss-agg-popover-item:last-child {
  border-bottom: none;
}
.school-schedule .ss-agg-popover-item:hover {
  background: var(--ss-surface-muted);
}
.school-schedule .ss-agg-popover-item.cancelled {
  opacity: 0.5;
}
.school-schedule .ss-agg-popover-item.cancelled .name {
  text-decoration: line-through;
}
.school-schedule .ss-agg-popover-who {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.school-schedule .ss-agg-popover-who .name {
  font-weight: 600;
  color: var(--ss-text);
  font-size: 12.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.school-schedule .ss-agg-popover-who .meta {
  font-size: 11px;
  color: var(--ss-text-secondary);
}
.school-schedule .ss-agg-type-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  flex-shrink: 0;
}
.school-schedule .ss-agg-type-tag.individual {
  background: var(--ss-green-bg, #e6efec);
  color: var(--ss-green);
}
.school-schedule .ss-agg-type-tag.group {
  background: #fbf0c8;
  color: #8a6d00;
}

/*
 * student-schedule.css — additions and colour overrides for the
 * Students → Schedule tab.
 *
 * The component uses BOTH `.school-schedule` and `.student-schedule`
 * classes, so it inherits the entire base calendar/toolbar/modal
 * layout from `school-schedule.css`. This file only:
 *
 *   1. Re-tints the palette to match the student mockup:
 *        - Individual lessons  = brand blue  (#0f0069)
 *        - Group lessons       = brand green (#0e503f)
 *        - Cancelled           = muted grey (inherited)
 *        - Rescheduled         = dashed warm outline (NEW state)
 *   2. Adds swatch + "Rescheduled" legend styling.
 *   3. Adds the student/group side-panel additions: type chips,
 *      2-cell stat grid, per-teacher enrollments list, TZ note.
 *
 * All selectors are scoped under `.school-schedule.student-schedule`
 * so nothing here can leak into the teacher schedule view.
 */

.school-schedule.student-schedule {
  /* Semantic colour tokens used by the palette below. Renaming the
     hex here is enough to swap the whole page's identity. */
  --stds-blue: #0f0069;
  --stds-blue-dark: #0a0055;
  --stds-blue-light: #ecebf7;
  --stds-green: #0e503f;
  --stds-green-dark: #0c4234;
  --stds-green-light: #e6efec;
  /* Warm dashed outline used for "reschedule requested but not yet
     handled" lessons — visually distinct from cancelled without
     shouting like a red error would. */
  --stds-resched: #d97706;
  --stds-resched-bg: #fff3e0;
}

/* ================================================================
 * Palette overrides
 * ================================================================ */

/* Primary CTA (+ Schedule Lesson, + Schedule with X, active toggle).
   Base `.ss-btn-primary` used a green surface — students use blue. */
.school-schedule.student-schedule .ss-btn-primary {
  background: var(--stds-blue);
  border-color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-btn-primary:hover {
  background: var(--stds-blue-dark);
  border-color: var(--stds-blue-dark);
}
/* Active view-toggle button uses the same blue accent so Day/Week/
   Month clearly reads as "you're on this section". */
.school-schedule.student-schedule .ss-view-toggle button.active {
  background: var(--stds-blue);
}

/* Lesson colouring — blue = individual, green = group. */
.school-schedule.student-schedule .ss-lesson-individual,
.school-schedule.student-schedule .ss-month-chip.ss-lesson-individual {
  background: var(--stds-blue);
}
.school-schedule.student-schedule .ss-lesson-group,
.school-schedule.student-schedule .ss-month-chip.ss-lesson-group {
  background: var(--stds-green);
}

/* Individual/Group swatches in the legend follow the same palette. */
.school-schedule.student-schedule .ss-sw-individual { background: var(--stds-blue); }
.school-schedule.student-schedule .ss-sw-group { background: var(--stds-green); }

/* Type toggle in the schedule modal (Individual | Group). Base
   `.ss-type-toggle button.active` was green — students want blue for
   individual, green for group (the same palette as the tiles). */
.school-schedule.student-schedule .ss-type-toggle button.active {
  border-color: var(--stds-blue);
  background: var(--stds-blue-light);
  color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-type-toggle button.grp.active {
  border-color: var(--stds-green);
  background: var(--stds-green-light);
  color: var(--stds-green);
}

/* Aggregation chip + popover accents. */
.school-schedule.student-schedule .ss-agg-chip {
  border-color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-agg-label {
  color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-agg-type-tag.individual {
  background: var(--stds-blue-light);
  color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-agg-type-tag.group {
  background: var(--stds-green-light);
  color: var(--stds-green);
}

/* "Today" pill in the day/week header and month cell also uses
   the section's blue accent. */
.school-schedule.student-schedule .ss-cal-day.today .ss-cal-daynum,
.school-schedule.student-schedule .ss-month-cell.today .ss-month-num {
  background: var(--stds-blue);
}

/* Timezone pill is already blue in the base — keep it. */

/* ================================================================
 * "Rescheduled" state — new visual not present in the teacher view.
 *
 * Applied when the lesson has `reschedule_requested_at != null`.
 * The block keeps its kind colour as a background but shows a
 * warm dashed outline so it stands out at a glance without hiding
 * information (unlike Cancelled which strikes through).
 * ================================================================ */
.school-schedule.student-schedule .ss-lesson.rescheduled {
  outline: 2px dashed var(--stds-resched);
  outline-offset: -2px;
}
.school-schedule.student-schedule .ss-month-chip.rescheduled {
  outline: 1.5px dashed var(--stds-resched);
  outline-offset: -1.5px;
}
/* Legend swatch — hollow with a dashed warm border to match. */
.school-schedule.student-schedule .ss-sw-rescheduled {
  background: var(--stds-resched-bg);
  outline: 1.5px dashed var(--stds-resched);
  outline-offset: -1.5px;
}

/* ================================================================
 * Side panel additions (student + group flavours)
 * ================================================================ */

/* Student panel avatar (blue circle w/ initial). */
.school-schedule.student-schedule .ss-panel-avatar--student {
  background: var(--stds-blue);
}
/* Group panel avatar (green circle w/ initial). */
.school-schedule.student-schedule .ss-panel-avatar--group {
  background: var(--stds-green);
}

/* Type-filter chip row (All / Individual / Group). Positioned right
   under the avatar so the eye moves top-to-bottom naturally. */
.school-schedule.student-schedule .ss-chip-row {
  display: flex;
  gap: 6px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.school-schedule.student-schedule .ss-chip {
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid var(--ss-border);
  background: var(--ss-surface);
  color: var(--ss-text-secondary);
  cursor: pointer;
  transition: background 0.1s ease, color 0.1s ease, border-color 0.1s ease;
}
.school-schedule.student-schedule .ss-chip:hover {
  background: var(--ss-surface-muted);
}
.school-schedule.student-schedule .ss-chip.active {
  background: var(--stds-blue);
  border-color: var(--stds-blue);
  color: #fff;
}

/* Stats — 2-cell grid so "Lessons" and "Unpaid" sit side by side. */
.school-schedule.student-schedule .ss-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.school-schedule.student-schedule .ss-stat-cell {
  background: var(--ss-surface-muted);
  border-radius: 8px;
  padding: 10px 12px;
}
.school-schedule.student-schedule .ss-stat-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--ss-text);
  line-height: 1.1;
}
/* When the "Unpaid" count is > 0 we surface it in the warm colour
   so the owner spots it immediately. */
.school-schedule.student-schedule .ss-stat-num.warn {
  color: var(--stds-resched);
}
.school-schedule.student-schedule .ss-stat-lab {
  font-size: 11px;
  color: var(--ss-text-secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 2px;
}

/* Enrollments list — one row per teacher the student has lessons
   with, showing individual + group counts. */
.school-schedule.student-schedule .ss-enroll-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--ss-border);
  font-size: 12.5px;
}
.school-schedule.student-schedule .ss-enroll-row:last-child {
  border-bottom: none;
}
.school-schedule.student-schedule .ss-enroll-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}
.school-schedule.student-schedule .ss-enroll-name {
  font-weight: 600;
  color: var(--ss-text);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.school-schedule.student-schedule .ss-enroll-count {
  display: inline-flex;
  gap: 4px;
  flex-shrink: 0;
}
.school-schedule.student-schedule .ss-enroll-count .ind,
.school-schedule.student-schedule .ss-enroll-count .grp {
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
}
.school-schedule.student-schedule .ss-enroll-count .ind {
  background: var(--stds-blue-light);
  color: var(--stds-blue);
}
.school-schedule.student-schedule .ss-enroll-count .grp {
  background: var(--stds-green-light);
  color: var(--stds-green);
}

/* Small TZ note under the stats — shown only when the student is
   in a different IANA zone than the viewer. */
.school-schedule.student-schedule .ss-tz-note {
  font-size: 11.5px;
  color: var(--ss-text-secondary);
  padding: 8px 10px;
  background: var(--stds-blue-light);
  color: var(--stds-blue);
  border-radius: 8px;
  margin-bottom: 12px;
  line-height: 1.4;
}
/* ============================================================
   school-payroll.css — SCOPED styles for the Team → Payroll tab.
   ------------------------------------------------------------
   Every rule below is gated by `.school-payroll` so nothing here
   leaks to other pages. The class-name prefix is `sp-` to make
   the JSX easy to read and easy to grep.

   Palette (copied from the payroll mockup):
     brand green   #0e503f
     brand yellow  #fdd504
     brand blue    #0f0069
     warn          #a15c00
     danger        #a33232

   The header (blue banner) is already rendered by TeachersPage
   via `.ui-page-header` so we don't render one here.
   ============================================================ */

/* Tighten the shared page header on the Payroll subview specifically —
   the global default in ui-system.css uses --ui-space-8 (~40px) below
   the header, which leaves an awkward chunk of blank space between the
   subtitle and the first stat card. On this dense cockpit-style tab
   ~14px is plenty. Also trim the header's own bottom padding. */
.page-teachers:has(.school-payroll) .ui-page-header {
  margin-bottom: 14px;
  padding-bottom: 12px;
}
.page-teachers:has(.school-payroll) .ui-page-subtitle {
  margin-top: 4px;
}

.school-payroll {
  --sp-brand-green:       #0e503f;
  --sp-brand-green-light: #e6efec;
  --sp-brand-yellow:      #fdd504;
  --sp-brand-blue:        #0f0069;
  --sp-brand-blue-light:  #ecebf7;
  --sp-warn:              #a15c00;
  --sp-warn-light:        #fbeed9;
  --sp-danger:            #a33232;
  --sp-danger-light:      #f6e6e6;
  /* Muted indigo used for the "N scheduled" hint (upcoming lessons).
     Kept in the palette so the row + drawer stay in sync automatically. */
  --sp-info:              #3949ab;
  --sp-surface:           #ffffff;
  --sp-surface-muted:     #f1f2ef;
  --sp-border:            #e2e4e0;
  --sp-text:              #1c231f;
  --sp-text-secondary:    #6b756f;
  --sp-text-muted:        #9aa39d;
  --sp-radius:            10px;
  --sp-radius-lg:         14px;

  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ---------- Period panel ---------- */
.school-payroll .sp-period-panel {
  background: var(--sp-surface);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-lg);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.school-payroll .sp-chip-row {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}
.school-payroll .sp-chip {
  padding: 8px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
  background: var(--sp-surface);
  border: 1px solid var(--sp-border);
  color: var(--sp-text);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.school-payroll .sp-chip:hover {
  background: var(--sp-surface-muted);
}
.school-payroll .sp-chip.is-active {
  background: var(--sp-brand-green);
  border-color: var(--sp-brand-green);
  color: #fff;
}
.school-payroll .sp-date-fields {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 6px;
  flex-wrap: wrap;
}
.school-payroll .sp-date-fields label {
  font-size: 12px;
  color: var(--sp-text-secondary);
}
.school-payroll .sp-date-input {
  font-size: 13px;
  padding: 7px 10px;
  border-radius: var(--sp-radius);
  border: 1px solid var(--sp-border);
  color: var(--sp-text);
  background: #fff;
}
.school-payroll .sp-period-current {
  margin-left: auto;
  font-size: 13px;
  color: var(--sp-text-secondary);
}
.school-payroll .sp-period-current strong {
  color: var(--sp-text);
}

/* ---------- Buttons ---------- */
.school-payroll .sp-btn {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 15px;
  border-radius: var(--sp-radius);
  border: 1px solid var(--sp-border);
  background: var(--sp-surface);
  color: var(--sp-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.1;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.school-payroll .sp-btn:hover {
  background: var(--sp-surface-muted);
}
.school-payroll .sp-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.school-payroll .sp-btn-primary {
  background: var(--sp-brand-green);
  border-color: var(--sp-brand-green);
  color: #fff;
}
.school-payroll .sp-btn-primary:hover {
  background: #0c4234;
}
.school-payroll .sp-btn-icon {
  padding: 8px;
  width: 34px;
  height: 34px;
  justify-content: center;
  border-radius: var(--sp-radius);
}

/* ---------- KPI stat cards ---------- */
.school-payroll .sp-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.school-payroll .sp-stat-card {
  background: var(--sp-surface);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-lg);
  padding: 16px 18px;
}
.school-payroll .sp-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sp-text-muted);
  margin: 0 0 8px;
}
.school-payroll .sp-stat-num {
  font-size: 26px;
  font-weight: 700;
  color: var(--sp-text);
  line-height: 1.1;
}
.school-payroll .sp-stat-num.is-accent {
  color: var(--sp-brand-green);
}
.school-payroll .sp-stat-sub {
  font-size: 12px;
  color: var(--sp-text-muted);
  margin-top: 4px;
}
/* Small amber warning under the KPI card when teachers use several
   currencies — the summed number in the card is not currency-converted. */
.school-payroll .sp-stat-warn {
  margin-top: 8px;
  padding: 6px 8px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--sp-warn);
  background: #fff8e6;
  border: 1px solid #f2d68a;
  border-radius: 6px;
}

/* ---------- Loading / error / empty states ---------- */
.school-payroll .sp-state {
  padding: 26px 22px;
  background: var(--sp-surface);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-lg);
  text-align: center;
  color: var(--sp-text-secondary);
  font-size: 13px;
}
.school-payroll .sp-state.is-error {
  color: #b91c1c;
  background: #fef2f2;
  border-color: #fecaca;
}
.school-payroll .sp-state .sp-state-emoji {
  font-size: 32px;
  margin-bottom: 6px;
}
.school-payroll .sp-state .sp-state-title {
  font-weight: 600;
  color: var(--sp-text);
  margin-top: 4px;
}

/* ---------- Main table ---------- */
.school-payroll .sp-table-wrap {
  background: var(--sp-surface);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius-lg);
  overflow: hidden;
}
.school-payroll .sp-table {
  width: 100%;
  border-collapse: collapse;
  /* Fixed layout so column widths are decided by the percentage rules
     below, NOT by content. Without this, the auto layout could end up
     with the "Lessons" header narrower than the multi-line
     confirmed/unconfirmed/scheduled stack in the body, making the
     header labels look shifted to the left of their columns — that's
     the "shifted to the left" bug users reported. */
  table-layout: fixed;
}
/* Explicit column widths — with `table-layout: fixed`, headers and
   body cells sit in exactly the same columns regardless of content.
   The "Status" column (paid / unpaid pill) is intentionally narrow so
   the Teacher column can stay wide enough for the avatar + long
   names + email on two lines. */
.school-payroll .sp-table thead th:nth-child(1),
.school-payroll .sp-table tbody td:nth-child(1) { width: 34%; }   /* Teacher */
.school-payroll .sp-table thead th:nth-child(2),
.school-payroll .sp-table tbody td:nth-child(2) { width: 20%; }   /* Lessons */
.school-payroll .sp-table thead th:nth-child(3),
.school-payroll .sp-table tbody td:nth-child(3) { width: 20%; }   /* Owed this period */
.school-payroll .sp-table thead th:nth-child(4),
.school-payroll .sp-table tbody td:nth-child(4) { width: 12%; }   /* Status (paid / unpaid) */
.school-payroll .sp-table thead th:nth-child(5),
.school-payroll .sp-table tbody td:nth-child(5) { width: 14%; }   /* Actions */

.school-payroll .sp-table thead th {
  text-align: left;
  font-size: 11px;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  padding: 12px 16px;
  border-bottom: 1px solid var(--sp-border);
  background: var(--sp-surface-muted);
  white-space: nowrap;
}
/* Nudge the first header ("Teacher") to align with the teacher NAME
   below it instead of with the avatar's left edge — otherwise the
   header column reads as "shifted to the left" of the visible name
   which was the exact bug users reported. Avatar (34px) + gap (10px)
   = ~44px, minus the 16px cell padding = 28px extra left padding. */
.school-payroll .sp-table thead th:first-child {
  padding-left: 44px;
}
.school-payroll .sp-table tbody td {
  padding: 14px 16px;
  font-size: 14px;
  border-bottom: 1px solid var(--sp-border);
  vertical-align: middle;
  color: var(--sp-text);
}
.school-payroll .sp-table tbody tr:last-child td {
  border-bottom: none;
}
.school-payroll .sp-table tbody tr.sp-row {
  cursor: pointer;
  transition: background 0.12s ease;
}
.school-payroll .sp-table tbody tr.sp-row:hover {
  background: var(--sp-surface-muted);
}

/* Teacher cell (avatar + name + email) */
.school-payroll .sp-teacher-cell {
  display: flex;
  align-items: center;
  gap: 10px;
}
.school-payroll .sp-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  flex-shrink: 0;
}
.school-payroll .sp-teacher-name {
  font-weight: 600;
  color: var(--sp-text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.school-payroll .sp-teacher-email {
  font-size: 12px;
  color: var(--sp-text-secondary);
}

/* Lessons cell (confirmed / unconfirmed split) */
.school-payroll .sp-lessons-confirmed {
  font-weight: 600;
  color: var(--sp-brand-green);
}
.school-payroll .sp-lessons-unconfirmed {
  color: var(--sp-text-muted);
  font-size: 12px;
}
.school-payroll .sp-lessons-unconfirmed.is-warn {
  color: var(--sp-warn);
  font-weight: 500;
}
/* Upcoming / in-progress lessons — informational only, muted blue
   so the eye reads it as "coming up" not "needs attention". */
.school-payroll .sp-lessons-scheduled {
  color: var(--sp-info);
  font-size: 12px;
  font-weight: 500;
}

/* Owed cell */
.school-payroll .sp-owed-amount {
  font-weight: 700;
  font-size: 15px;
  color: var(--sp-text);
}

/* Paid / Unpaid pill — the "Status" column and the drawer's
   payment-summary total row both use these. Green = fully paid for
   the selected period, red = still owe money. */
.school-payroll .sp-paid-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 20px;
  font-weight: 600;
  font-size: 12.5px;
  line-height: 1.2;
  white-space: nowrap;
}
.school-payroll .sp-paid-pill.is-paid {
  background: var(--sp-brand-green-light);
  color: var(--sp-brand-green);
}
.school-payroll .sp-paid-pill.is-unpaid {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}
/* Overpaid — a THIRD state, deliberately blue rather than green or
   red. The teacher is not "owed" (red) and not merely "settled"
   (green): the school is ahead, and that is a fact the owner asked to
   be able to see rather than infer from a minus sign. */
.school-payroll .sp-paid-pill.is-overpaid {
  background: #dbeafe;
  color: #1e40af;
}
.school-payroll .sp-paid-unknown {
  color: var(--sp-text-muted);
  font-size: 13px;
}
/* Status column body cell — keep it left-aligned; the pill defines
   its own visual weight. */
.school-payroll .sp-status-td {
  text-align: left;
}

/* Numeric (money) columns — both header text and cell contents
   right-aligned so the digits line up cleanly under the column
   name. Without this, the header sits at the left of the cell
   while the amounts sit at the right, and the columns look
   visibly shifted. IMPORTANT: `.sp-table thead th` has specificity
   (0,3,1) with a `text-align: left`, which is HIGHER than a bare
   `.sp-num-th` — so we scope the numeric/action header rules with
   the same `thead th` prefix to beat it. Same story on the tbody
   side to make sure nothing else overrides it either. */
.school-payroll .sp-table thead th.sp-num-th,
.school-payroll .sp-table tbody td.sp-num-td {
  text-align: right;
}

/* Actions cell — right-aligned header AND body so the buttons and
   the "Actions" label line up above/below each other in the same
   column. Same `thead th` specificity trick as above. */
.school-payroll .sp-table thead th.sp-actions-th,
.school-payroll .sp-table tbody td.sp-actions-td {
  text-align: right;
}
.school-payroll .sp-actions-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}

/* Row-menu popup for the ⋯ button. Small floating panel anchored
   below the trigger; closes when clicked outside via a document
   listener registered in TeacherPayrollView. */
.school-payroll .sp-row-menu-wrap {
  position: relative;
  display: inline-block;
}
.school-payroll .sp-row-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 180px;
  background: #fff;
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius);
  box-shadow: 0 6px 22px rgba(15, 0, 105, 0.10);
  z-index: 5;
  padding: 4px;
  text-align: left;
}
.school-payroll .sp-row-menu button {
  display: block;
  width: 100%;
  padding: 8px 12px;
  background: transparent;
  border: none;
  font-size: 13px;
  color: var(--sp-text);
  cursor: pointer;
  border-radius: 6px;
  text-align: left;
  font-family: inherit;
}
.school-payroll .sp-row-menu button:hover {
  background: var(--sp-surface-muted);
}

/* ============================================================
   Right-side drawer (per-teacher detail)
   ============================================================ */

.school-payroll .sp-overlay {
  position: fixed;
  inset: 0;
  background: rgba(28, 35, 31, 0.45);
  /* Above the app sidebar (which sits around z-index 100) so the
     backdrop clearly indicates the modal-like context. */
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.school-payroll .sp-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}
.school-payroll .sp-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: 520px;
  max-width: 92vw;
  background: var(--sp-surface);
  box-shadow: -8px 0 30px rgba(15, 0, 105, 0.12);
  /* One above the overlay. */
  z-index: 201;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
}
.school-payroll .sp-drawer.is-open {
  transform: translateX(0);
}

.school-payroll .sp-drawer-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 22px;
  border-bottom: 1px solid var(--sp-border);
  flex-shrink: 0;
}
.school-payroll .sp-drawer-header .sp-avatar {
  width: 42px;
  height: 42px;
  font-size: 15px;
}
.school-payroll .sp-drawer-header h2 {
  font-size: 16px;
  margin: 0;
  color: var(--sp-text);
}
.school-payroll .sp-drawer-header p {
  font-size: 12px;
  color: var(--sp-text-secondary);
  margin: 2px 0 0;
}
.school-payroll .sp-drawer-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: var(--sp-text-muted);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  line-height: 1;
}
.school-payroll .sp-drawer-close:hover {
  background: var(--sp-surface-muted);
}

.school-payroll .sp-drawer-body {
  padding: 18px 22px 26px;
  overflow-y: auto;
  flex: 1;
}

/* Summary grid at the top of the drawer
   (Confirmed / Unconfirmed / Scheduled / Cancelled). Four tiles now
   that scheduled lessons are surfaced too. */
.school-payroll .sp-drawer-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 20px;
}
.school-payroll .sp-drawer-summary .sp-sum-item {
  background: var(--sp-surface-muted);
  border-radius: var(--sp-radius);
  padding: 10px 12px;
  text-align: center;
}
.school-payroll .sp-drawer-summary .sp-sum-n {
  font-size: 20px;
  font-weight: 700;
  color: var(--sp-text);
  line-height: 1.1;
}
.school-payroll .sp-drawer-summary .sp-sum-l {
  font-size: 10.5px;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 4px;
}
.school-payroll .sp-drawer-summary .is-confirmed .sp-sum-n  { color: var(--sp-brand-green); }
.school-payroll .sp-drawer-summary .is-cancelled .sp-sum-n  { color: var(--sp-danger); }
.school-payroll .sp-drawer-summary .is-unconfirmed .sp-sum-n{ color: var(--sp-warn); }
/* Upcoming tile — muted indigo, same family as the row's
   "N scheduled" line so it reads as "coming up" at a glance. */
.school-payroll .sp-drawer-summary .is-scheduled .sp-sum-n  { color: var(--sp-info); }

/* Section titles inside the drawer */
.school-payroll .sp-section-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 20px 0 8px;
}
.school-payroll .sp-section-title:first-child {
  margin-top: 0;
}

/* "Payout details" info card — replaces the mockup's fake "rules & reminders". */
.school-payroll .sp-rules-card {
  background: var(--sp-brand-green-light);
  border-radius: var(--sp-radius-lg);
  padding: 14px 16px;
  margin-bottom: 18px;
}
.school-payroll .sp-rules-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  margin-bottom: 8px;
}
.school-payroll .sp-rules-row:last-child {
  margin-bottom: 0;
}
.school-payroll .sp-rules-row .sp-k {
  color: var(--sp-text-secondary);
  flex-shrink: 0;
}
.school-payroll .sp-rules-row .sp-v {
  font-weight: 600;
  color: var(--sp-brand-green);
  text-align: right;
  word-break: break-word;
  white-space: pre-wrap;
}
.school-payroll .sp-rules-row .sp-v.is-muted {
  color: var(--sp-text-muted);
  font-weight: 500;
  font-style: italic;
}
.school-payroll .sp-rules-edit-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: var(--sp-brand-green);
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(14, 80, 63, 0.15);
}
.school-payroll .sp-rules-edit {
  margin-left: auto;
  font-size: 12px;
  color: var(--sp-brand-blue);
  cursor: pointer;
  font-weight: 600;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
}
.school-payroll .sp-rules-edit:hover {
  text-decoration: underline;
}

/* Lesson history table inside the drawer */
.school-payroll .sp-lesson-table {
  width: 100%;
  border-collapse: collapse;
}
.school-payroll .sp-lesson-table thead th {
  text-align: left;
  font-size: 10.5px;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  padding: 8px 6px;
  border-bottom: 1px solid var(--sp-border);
}
.school-payroll .sp-lesson-table tbody td {
  padding: 9px 6px;
  font-size: 13px;
  border-bottom: 1px solid var(--sp-border);
  vertical-align: top;
  color: var(--sp-text);
}
.school-payroll .sp-lesson-table tbody tr:last-child td {
  border-bottom: none;
}
.school-payroll .sp-lesson-table td.sp-num {
  text-align: right;
  white-space: nowrap;
}
.school-payroll .sp-lesson-empty {
  padding: 16px 6px;
  text-align: center;
  color: var(--sp-text-muted);
  font-size: 13px;
}
.school-payroll .sp-reason-note {
  font-size: 11.5px;
  color: var(--sp-text-muted);
  margin-top: 2px;
}

/* Status pills — same 4 shapes as the mockup */
.school-payroll .sp-status-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
}
.school-payroll .sp-status-pill.is-confirmed   { background: var(--sp-brand-green-light); color: var(--sp-brand-green); }
.school-payroll .sp-status-pill.is-unconfirmed { background: var(--sp-warn-light);        color: var(--sp-warn); }
.school-payroll .sp-status-pill.is-cancelled   { background: var(--sp-danger-light);      color: var(--sp-danger); }
.school-payroll .sp-status-pill.is-other       { background: var(--sp-surface-muted);     color: var(--sp-text-secondary); }

/* ---------- Payments received (drawer) ----------
   A compact summary block + one or two tables (school payments,
   student payments). Everything mirrors what the payroll PDF prints. */
.school-payroll .sp-pay-summary {
  background: var(--sp-surface-muted);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-radius);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.school-payroll .sp-pay-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  padding: 3px 0;
}
.school-payroll .sp-pay-row .sp-k {
  color: var(--sp-text-secondary);
}
.school-payroll .sp-pay-row .sp-v {
  font-weight: 600;
  color: var(--sp-text);
}
.school-payroll .sp-pay-row.is-total {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px dashed var(--sp-border);
  font-size: 14px;
}
.school-payroll .sp-pay-row.is-total .sp-v {
  color: var(--sp-brand-green);
}
/* Each source block (school payments / student payments) gets a
   small title above its table. */
.school-payroll .sp-pay-block {
  margin-bottom: 14px;
}
.school-payroll .sp-pay-block-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--sp-text);
  margin: 4px 0 6px;
}
.school-payroll .sp-notes-cell {
  color: var(--sp-text-secondary);
  font-size: 12.5px;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- Collapsible section title row ----------
   Section title turns into a chevron button so the owner can
   collapse the lesson history table. The "Include in report"
   checkbox sits on the same row so both controls stay together. */
.school-payroll .sp-section-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 20px 0 8px;
  flex-wrap: wrap;
}
.school-payroll .sp-collapse-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.school-payroll .sp-collapse-btn:hover {
  color: var(--sp-text);
}
.school-payroll .sp-collapse-chevron {
  display: inline-block;
  width: 12px;
  text-align: center;
  font-size: 12px;
  color: var(--sp-text-muted);
}
.school-payroll .sp-lesson-count {
  color: var(--sp-text-muted);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  font-size: 11px;
  margin-left: 4px;
}
.school-payroll .sp-include-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--sp-text-secondary);
  cursor: pointer;
  user-select: none;
}
.school-payroll .sp-include-toggle input {
  cursor: pointer;
}

/* Drawer footer with Send report + Record payment. */
.school-payroll .sp-drawer-footer {
  display: flex;
  gap: 8px;
  padding: 14px 22px;
  border-top: 1px solid var(--sp-border);
  flex-shrink: 0;
}
.school-payroll .sp-drawer-footer .sp-btn {
  flex: 1;
  justify-content: center;
}

/* ---------- Responsive ---------- */
@media (max-width: 720px) {
  .school-payroll .sp-stat-grid {
    grid-template-columns: 1fr;
  }
  .school-payroll .sp-period-current {
    margin-left: 0;
    width: 100%;
  }
  .school-payroll .sp-actions-cell {
    flex-wrap: wrap;
    gap: 6px;
  }
  .school-payroll .sp-drawer {
    width: 100vw;
  }
}

/* ============================================================
   Extra money — bonuses, expenses to refund, deductions.
   ------------------------------------------------------------
   These lines change what the school OWES a teacher without any
   lesson explaining them, so every one of them has to carry its
   reason on screen. The table therefore has a two-line "What for"
   cell (kind badge + free-text reason) rather than a single label.
   ============================================================ */

/* Inside a section-title-row the title must not add its own margin
   on top of the row's — otherwise the gap above "Extra money"
   doubles compared with every other section heading. */
.school-payroll .sp-section-title-row .sp-section-title {
  margin: 0;
}

/* Small button used for the "+ Add" action next to a section title. */
.school-payroll .sp-btn-sm {
  padding: 4px 10px;
  font-size: 12px;
}

/* Kind badge — reads the direction at a glance without needing the
   amount's sign. Green adds, red takes away, blue is "not earned yet". */
.school-payroll .sp-extra-kind {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  margin-right: 6px;
}
.school-payroll .sp-extra-kind.is-bonus {
  background: var(--sp-brand-green-light);
  color: var(--sp-brand-green);
}
.school-payroll .sp-extra-kind.is-expense {
  background: var(--sp-warn-light);
  color: var(--sp-warn);
}
.school-payroll .sp-extra-kind.is-deduction {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}
.school-payroll .sp-extra-kind.is-advance {
  background: #dbeafe;
  color: #1e40af;
}

/* Amounts carry an explicit + or − so a deduction cannot be misread
   as one more thing the school owes. */
.school-payroll .sp-extra-amount {
  font-weight: 600;
  color: var(--sp-brand-green);
}
.school-payroll .sp-extra-amount.is-negative {
  color: var(--sp-danger);
}
.school-payroll .sp-extra-table tfoot td {
  border-top: 1px solid var(--sp-border);
  padding-top: 8px;
  font-weight: 700;
  font-size: 12.5px;
}
.school-payroll .sp-extra-actions {
  text-align: right;
  white-space: nowrap;
}
/* Edit / Remove: text links, not buttons — they must not compete
   with "Record payment" for attention. */
.school-payroll .sp-extra-link {
  background: none;
  border: none;
  padding: 2px 4px;
  font-family: inherit;
  font-size: 11.5px;
  color: var(--sp-text-secondary);
  cursor: pointer;
  text-decoration: underline;
}
.school-payroll .sp-extra-link:hover {
  color: var(--sp-text);
}
.school-payroll .sp-extra-link.is-danger:hover {
  color: var(--sp-danger);
}

/* The row's "Owed this period" cell breaks the total into
   lessons + extra whenever extra money is part of it. */
.school-payroll .sp-owed-split {
  font-size: 11px;
  font-weight: 500;
  color: var(--sp-text-muted);
  margin-top: 2px;
  white-space: nowrap;
}
.school-payroll .sp-owed-split .is-positive {
  color: var(--sp-brand-green);
}
.school-payroll .sp-owed-split .is-negative {
  color: var(--sp-danger);
}
/*
 * students-v2.css — dedicated stylesheet for the Students section rebuild.
 *
 * These styles power `StudentsListV2` (the "All students" grid page) and
 * `StudentProfileV2` (the per-student profile page). Every class is
 * namespaced with `.sv2-` so nothing here can leak into other parts of
 * the app.
 *
 * The mockup uses the same brand palette as the rest of the site
 * (--color-brand-indigo-500 / --color-brand-green-500 / --color-brand-yellow),
 * plus three lighter tints (green / blue / yellow) used for the info
 * panels on the profile page. These tints are declared locally so
 * touching them doesn't affect other pages.
 *
 * ---------------------------------------------------------------------
 * 2026-09-21 — WARM SURFACE PASS ("make it look like the booking page")
 * ---------------------------------------------------------------------
 * The owner pointed at the public "Book a lesson" page (/book/<token>,
 * `PublicBookPage.tsx`) and asked for this screen to wear the same look.
 * That page's surface set, copied here one-to-one so the two screens
 * cannot drift apart:
 *
 *     page ......... #faf6ee   (cream, `pageWrapStyle`)
 *     card ......... #ffffff, radius 20, shadow
 *                    0 16px 40px -20px rgba(15, 0, 105, 0.18)
 *     soft panel ... #faf7ef with a #efe8d3 hairline
 *     eyebrow ...... 12px, uppercase, 0.9px tracking, #0f0069 at 0.7
 *     title ........ Fredoka 28/800 in #0f0069
 *     body copy .... Poppins (Fredoka is titles only over there)
 *
 * ONLY the surface changes. No markup was restructured, no handler and
 * no filter/permission rule was touched — the buttons on this page do
 * exactly what they did before.
 *
 * NOT copied on purpose: the yellow top bar stays yellow. It is not a
 * Students-page decision, it is the school-section colour code set in
 * `ui-system.css` (`body.app-section-students .app-topbar`), shared
 * with every screen in this section.
 */

.sv2 {
  /* Local design tokens — mirror the mockup one-to-one so we can point
     at the mockup and see the same values in code. */
  --sv2-brand-green:        #0e503f;
  --sv2-brand-green-light:  #e6efec;
  --sv2-brand-yellow:       #fdd504;
  --sv2-brand-yellow-light: #fbf0c8;
  --sv2-brand-blue:         #0f0069;
  --sv2-brand-blue-light:   #ecebf7;

  /* Warm surface set, lifted from the booking page (see header note).
     The old cold greys (#f5f6f4 / #f1f2ef / #e2e4e0) sat under a yellow
     top bar and read as two unrelated palettes stacked on each other. */
  --sv2-bg:            #faf6ee;
  --sv2-surface:       #ffffff;
  --sv2-surface-muted: #faf7ef;
  --sv2-border:        #efe8d3;
  --sv2-text:          #1c231f;
  --sv2-text-secondary:#6b756f;
  --sv2-text-muted:    #9aa39d;

  /* The booking card's shadow, scaled down for list rows: a card here is
     70px tall, not 900px, so the same 40px blur would smear. */
  --sv2-shadow:        0 10px 26px -20px rgba(15, 0, 105, 0.22);
  --sv2-shadow-hover:  0 14px 32px -18px rgba(15, 0, 105, 0.30);

  --sv2-danger:        #a33232;
  --sv2-danger-light:  #f6e6e6;
  --sv2-warn:          #a15c00;
  --sv2-warn-light:    #fbeed9;

  /* Softer corners, matching the booking card (20) and its inner
     panels (12). */
  --sv2-radius:    12px;
  --sv2-radius-lg: 16px;

  /* Poppins for running text. The booking page keeps Fredoka for titles
     only, and that contrast is most of what makes it feel calm; this
     page used to set Fredoka on EVERY word, badges and prices included.
     Names keep Fredoka — see `.sv2-student-name`. */
  font-family: var(--font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif);
  color: var(--sv2-text);
}

/* The cream page surface. Scoped to the body class AppLayout already
   sets for this section (`section="students"`), so no other screen can
   pick it up, and `.app-main` rather than `.sv2` because the content
   column is inset by `--app-content-padding` — painting `.sv2` would
   leave a grey frame around the cream. */
body.app-section-students .app-main {
  background: #faf6ee;
}

/* Inset for the profile's "loading" / "not found" message states.
 * A class, not an inline style: an inline `padding` on a tag whose only
 * class is the shared `sv2` container makes gen-mobile-compact.mjs emit
 * `.sv2 { padding: … !important }` for every students screen on phones.
 * See the comment in StudentProfileV2.tsx. */
.sv2-message-pad {
  padding: 40px;
}

/* -------------------------------------------------------------------
 * PAGE HEADER (title + subtitle + primary actions)
 * ------------------------------------------------------------------- */
.sv2-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.5rem;
  gap: 16px;
  flex-wrap: wrap;
}
/* Eyebrow + title = the booking page's header block ("BOOK A LESSON"
   over the student's name), same sizes and the same navy. */
.sv2-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: var(--sv2-brand-blue);
  opacity: 0.7;
  margin: 0 0 6px;
}
.sv2-header h1 {
  font-family: var(--font-primary, inherit);
  font-size: 28px;
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 6px;
  color: var(--sv2-brand-blue);
}
.sv2-header p.sv2-subtitle {
  font-size: 13.5px;
  color: var(--sv2-text-secondary);
  margin: 0;
  max-width: 520px;
}
.sv2-header-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

/* -------------------------------------------------------------------
 * BUTTONS — small local set so the Students page doesn't inherit any
 * quirky button styling from elsewhere. Matches the mockup exactly.
 * ------------------------------------------------------------------- */
.sv2-btn {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 15px;
  border-radius: var(--sv2-radius);
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  color: var(--sv2-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.sv2-btn:hover:not(:disabled) { background: var(--sv2-surface-muted); }
.sv2-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.sv2-btn--primary {
  background: var(--sv2-brand-green);
  border-color: var(--sv2-brand-green);
  color: #fff;
}
.sv2-btn--primary:hover:not(:disabled) { background: #0c4234; }
/* Blue variant of the primary button — used for "+ New group" so it reads as
   a second, distinct primary action next to the green "+ Add a student". */
.sv2-btn--primary-blue {
  background: var(--sv2-brand-blue);
  border-color: var(--sv2-brand-blue);
  color: #fff;
}
.sv2-btn--primary-blue:hover:not(:disabled) { filter: brightness(0.9); }
/* Extra-bold modifier — applied to the two "call to action" buttons in the
   Students header ("+ Add a student" and "+ New group") so they visually
   pop out from the other secondary buttons. */
.sv2-btn--bold { font-weight: 800; }
.sv2-btn--ai {
  border-color: var(--sv2-brand-blue);
  color: var(--sv2-brand-blue);
}
.sv2-btn--icon {
  padding: 9px;
  width: 36px;
  justify-content: center;
}
.sv2-ai-tag {
  font-size: 9.5px;
  font-weight: 800;
  background: var(--sv2-brand-blue);
  color: #fff;
  padding: 1px 5px;
  border-radius: 5px;
  margin-left: 2px;
}

/* -------------------------------------------------------------------
 * SUB-TABS (Enrolled / Intake forms / Archived) — underlined tabs
 * with a small count pill.
 * ------------------------------------------------------------------- */
.sv2-sub-tabs {
  display: flex;
  gap: 22px;
  border-bottom: 1px solid var(--sv2-border);
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.sv2-sub-tab {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 9px 0;
  border: none;
  background: none;
  color: var(--sv2-text-secondary);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.sv2-sub-tab.is-active {
  color: var(--sv2-brand-green);
  border-bottom-color: var(--sv2-brand-green);
}
.sv2-count-pill {
  font-size: 11px;
  font-weight: 700;
  background: var(--sv2-surface-muted);
  color: var(--sv2-text-secondary);
  padding: 1px 7px;
  border-radius: 20px;
}
.sv2-sub-tab.is-active .sv2-count-pill {
  background: var(--sv2-brand-green);
  color: #fff;
}

/* -------------------------------------------------------------------
 * FILTER CHIPS (All / Groups / Individual) — separate row above search
 * ------------------------------------------------------------------- */
.sv2-filter-row {
  display: flex;
  gap: 8px;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.sv2-filter-chip {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 20px;
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  color: var(--sv2-text-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sv2-filter-chip.is-active {
  background: var(--sv2-brand-green-light);
  border-color: transparent;
  color: var(--sv2-brand-green);
}
.sv2-filter-chip .sv2-n {
  font-size: 11px;
  opacity: 0.75;
}

/* -------------------------------------------------------------------
 * SEARCH ROW (search box + level + teacher + sort selects)
 * ------------------------------------------------------------------- */
.sv2-search-row {
  display: flex;
  gap: 10px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

/* The toolbar's ⚙, + and 👥+ exist in the markup at every width, but on
   a computer the header already carries "+ Add a student", "+ New group"
   and every filter side by side — so they only appear on phones,
   switched on by mobile-redesign.css.

   ⛔ A NEW `.sv2-phone-*` BUTTON MUST BE ADDED HERE TOO, or it shows up
   twice on a laptop: once as itself and once as the header button it
   stands in for. */
.sv2-phone-filters-btn,
.sv2-phone-add-btn,
.sv2-phone-group-btn { display: none; }

.sv2-search-box {
  flex: 1;
  min-width: 180px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--sv2-surface);
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius);
  padding: 9px 14px;
}
/* The drawn magnifier. Muted so the placeholder text stays the thing
   you read first. */
.sv2-search-icon {
  flex: 0 0 auto;
  color: var(--sv2-text-muted);
}
.sv2-search-box input {
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13.5px;
  width: 100%;
  outline: none;
  color: var(--sv2-text);
}
.sv2-select {
  font-family: inherit;
  font-size: 13px;
  padding: 9px 12px;
  border-radius: var(--sv2-radius);
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  color: var(--sv2-text);
  cursor: pointer;
}

/* -------------------------------------------------------------------
 * EMPTY STATE (shown when filters return nothing)
 * ------------------------------------------------------------------- */
.sv2-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--sv2-text-muted);
  font-size: 14px;
  border: 1px dashed var(--sv2-border);
  border-radius: var(--sv2-radius-lg);
  grid-column: 1 / -1;
}

/* -------------------------------------------------------------------
 * STUDENT CARD GRID
 * ------------------------------------------------------------------- */
.sv2-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.sv2-card {
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius-lg);
  padding: 1rem;
  position: relative;
  background: var(--sv2-surface);
  transition: box-shadow 0.15s ease;
  text-decoration: none;
  color: inherit;
  display: block;
  /* White rows floating on the cream page, like the booking card. */
  box-shadow: var(--sv2-shadow);
}
.sv2-card:hover {
  box-shadow: var(--sv2-shadow-hover);
}

/* Card top: flag + name + icons */
.sv2-card-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.sv2-flag-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  font-size: 20px;
  line-height: 1;
}
.sv2-learn-badge {
  position: absolute;
  bottom: -4px;
  right: -5px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--sv2-brand-green);
  border: 1.5px solid var(--sv2-surface);
  font-size: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #fff;
}
/* "+N" pill overlayed on the flag's top-right corner when the student
 * is also learning additional languages. Small, high-contrast, keeps
 * the flag itself readable. */
.sv2-multi-badge {
  position: absolute;
  top: -6px;
  right: -10px;
  min-width: 16px;
  height: 14px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--sv2-brand-green);
  color: #fff;
  border: 1.5px solid var(--sv2-surface);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.3px;
}
.sv2-student-name {
  /* The one title on a card — so it keeps Fredoka while the badges and
     the rate around it moved to Poppins (see the `.sv2` font note). */
  font-family: var(--font-primary, inherit);
  font-weight: 700;
  font-size: 14.5px;
  flex: 1;
  color: var(--sv2-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sv2-card-icons {
  display: flex;
  gap: 4px;
}
.sv2-icon-btn {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  cursor: pointer;
  color: var(--sv2-text-secondary);
  padding: 0;
}
.sv2-icon-btn:hover { background: var(--sv2-surface-muted); }

/* Badges row */
.sv2-badge-row {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.sv2-badge {
  font-size: 10.5px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
}
.sv2-badge--individual {
  background: var(--sv2-brand-blue-light);
  color: var(--sv2-brand-blue);
}
.sv2-badge--group {
  background: var(--sv2-brand-green-light);
  color: var(--sv2-brand-green);
}
.sv2-badge--level {
  background: var(--sv2-surface-muted);
  color: var(--sv2-text);
  border: 1px solid var(--sv2-border);
}
/* Native-language chip sitting alongside the type / level badges.
 * Slightly lighter styling to visually separate it from the pure
 * category badges, and includes a small flag on the left. */
.sv2-badge--native {
  background: var(--sv2-surface-muted);
  color: var(--sv2-text-secondary);
  font-weight: 600;
  gap: 4px;
}

/* Language tags — kept for other callers; the card no longer uses them. */
.sv2-lang-tags {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.sv2-lang-tag {
  font-size: 11px;
  font-weight: 600;
  padding: 4px 9px;
  border-radius: 20px;
  background: var(--sv2-surface-muted);
  color: var(--sv2-text-secondary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Teacher chip on the card */
.sv2-teacher-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--sv2-text-secondary);
  margin-bottom: 12px;
}
.sv2-teacher-chip--assigned {
  cursor: pointer;
  padding: 5px 8px;
  margin: 0 -8px 12px;
  border-radius: 8px;
}
.sv2-teacher-chip--assigned:hover { background: var(--sv2-surface-muted); }
.sv2-teacher-chip--assigned .sv2-change-hint {
  margin-left: auto;
  font-size: 11px;
  color: var(--sv2-brand-blue);
  font-weight: 600;
  opacity: 0;
}
.sv2-teacher-chip--assigned:hover .sv2-change-hint { opacity: 1; }
.sv2-teacher-chip--unassigned {
  color: var(--sv2-warn);
  background: var(--sv2-warn-light);
  padding: 5px 9px;
  border-radius: 20px;
  width: fit-content;
  font-weight: 600;
}
/* Button variant of the unassigned chip — same visuals, but clickable.
   Used when we want the chip itself to open the assign-teacher popover. */
.sv2-teacher-chip--btn {
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: filter 120ms ease;
}
.sv2-teacher-chip--btn:hover { filter: brightness(0.96); }
.sv2-teacher-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

/* Value box on the card (rate or sessions left) */
.sv2-value-box {
  border-radius: var(--sv2-radius);
  padding: 0.7rem 0.9rem;
}
.sv2-value-box .sv2-value-lbl {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 3px;
}
.sv2-value-box .sv2-value-val {
  font-size: 15px;
  font-weight: 700;
}
.sv2-value-box--rate {
  background: var(--sv2-brand-green-light);
}
.sv2-value-box--rate .sv2-value-lbl,
.sv2-value-box--rate .sv2-value-val {
  color: var(--sv2-brand-green);
}
.sv2-value-box--sessions {
  background: var(--sv2-brand-blue-light);
}
.sv2-value-box--sessions .sv2-value-lbl,
.sv2-value-box--sessions .sv2-value-val {
  color: var(--sv2-brand-blue);
}
.sv2-progress-track {
  background: rgba(15, 0, 105, 0.12);
  border-radius: 20px;
  height: 5px;
  margin-top: 6px;
  overflow: hidden;
}
.sv2-progress-fill {
  background: var(--sv2-brand-blue);
  height: 100%;
  border-radius: 20px;
}

/* -------------------------------------------------------------------
 * GROUP CARD — members list inside a group card
 *
 * Rendered instead of the sv2-value-box (rate/sessions). Shows a
 * compact list of every student that belongs to this group, each
 * linking to their own profile.
 * ------------------------------------------------------------------- */
.sv2-group-students {
  border-top: 1px solid var(--sv2-border);
  padding-top: 8px;
  margin-top: 4px;
}
.sv2-group-students-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--sv2-text-muted, #6b756f);
  margin-bottom: 6px;
}
.sv2-group-student {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 6px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--sv2-text);
  text-decoration: none;
  margin: 0 -6px;
}
.sv2-group-student:hover {
  background: var(--sv2-surface-muted);
}
.sv2-group-student-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--sv2-brand-blue, #0f0069);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-transform: uppercase;
}
.sv2-group-student-name {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sv2-group-student-level {
  font-size: 11px;
  font-weight: 600;
  color: var(--sv2-text-muted, #6b756f);
  padding: 2px 6px;
  border-radius: 10px;
  background: var(--sv2-surface-muted);
  flex-shrink: 0;
}

/* -------------------------------------------------------------------
 * POPOVERS (assign / archive confirm / schedule)
 * ------------------------------------------------------------------- */
.sv2-popover {
  position: absolute;
  top: 42px;
  right: 8px;
  width: 210px;
  background: var(--sv2-surface);
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius);
  box-shadow: 0 8px 24px rgba(15, 0, 105, 0.12);
  z-index: 10;
  overflow: hidden;
  text-align: left;
}
.sv2-popover-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--sv2-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 9px 12px 6px;
}
.sv2-popover-item {
  padding: 8px 12px;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--sv2-text);
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font-family: inherit;
}
.sv2-popover-item:hover { background: var(--sv2-surface-muted); }
/* Divider between the teacher list and the move-pool action inside
 * the assign popover. Kept subtle so it doesn't compete with hover. */
.sv2-popover-divider {
  height: 1px;
  background: var(--sv2-border, #e5e7e6);
  margin: 4px 0;
}
/* Danger variant of a popover item — used by "Archive" / "Delete"
 * rows at the bottom of the kebab (⋮) menu on student and group
 * cards. Red text draws the eye so a destructive action never
 * looks accidental; the hover keeps the same brand tint scheme
 * as the neutral rows above. */
.sv2-popover-item--danger {
  color: var(--sv2-danger);
}
.sv2-popover-item--danger:hover {
  background: var(--sv2-danger-light);
}
.sv2-popover-confirm { padding: 10px 12px; font-size: 13px; }
.sv2-popover-confirm p { margin: 0 0 10px; color: var(--sv2-text-secondary); }
.sv2-popover-actions { display: flex; gap: 6px; }
.sv2-popover-actions button {
  flex: 1;
  font-size: 12px;
  padding: 6px 0;
  border-radius: 6px;
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  cursor: pointer;
  font-family: inherit;
}
.sv2-popover-actions button.sv2-danger {
  background: var(--sv2-danger);
  border-color: var(--sv2-danger);
  color: #fff;
}

/* -------------------------------------------------------------------
 * TOAST (bottom-center transient notification)
 * ------------------------------------------------------------------- */
.sv2-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--sv2-brand-green);
  color: #fff;
  padding: 10px 18px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(14, 80, 63, 0.3);
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 50;
  pointer-events: none;
}
.sv2-toast.is-show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ===================================================================
 * STUDENT PROFILE PAGE
 * =================================================================== */

.sv2-back-link {
  font-size: 13px;
  color: var(--sv2-text-secondary);
  margin-bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  font-family: inherit;
  padding: 0;
  text-decoration: none;
}
.sv2-back-link:hover { color: var(--sv2-brand-green); }

.sv2-profile-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.25rem;
  gap: 16px;
  flex-wrap: wrap;
}
.sv2-profile-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.sv2-profile-title h1 {
  font-size: 22px;
  margin: 0;
  color: var(--sv2-text);
}
.sv2-profile-title .sv2-badge {
  cursor: pointer;
  position: relative;
  font-size: 11px;
  padding: 3px 10px;
}
/* Nationality flag chip that sits before the student's name in the
   profile header. font-size drives the flag's width (flag-icons uses
   em units). A thin ring + rounded corners make it read as a proper
   chip rather than a stray image. */
.sv2-nationality-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 24px;
  font-size: 24px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.10);
  background: var(--sv2-panel, #f5f6fa);
  flex-shrink: 0;
}
.sv2-nationality-flag .fi {
  border-radius: 0;
  line-height: 1;
}
.sv2-profile-actions {
  display: flex;
  gap: 8px;
  position: relative;
  flex-wrap: wrap;
}

/* Dropdown menu (⋯ button) */
.sv2-menu {
  position: absolute;
  top: 42px;
  right: 0;
  width: 200px;
  background: var(--sv2-surface);
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius);
  box-shadow: 0 8px 24px rgba(15, 0, 105, 0.10);
  z-index: 5;
  overflow: hidden;
  text-align: left;
}
.sv2-menu-item {
  padding: 9px 13px;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--sv2-border);
  cursor: pointer;
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  font-family: inherit;
  color: var(--sv2-text);
}
.sv2-menu-item:last-child { border-bottom: none; }
.sv2-menu-item:hover { background: var(--sv2-surface-muted); }

/* Level dropdown attached to the level badge */
.sv2-level-menu {
  position: absolute;
  top: 26px;
  left: 0;
  background: var(--sv2-surface);
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius);
  box-shadow: 0 8px 24px rgba(15, 0, 105, 0.10);
  z-index: 6;
  overflow: hidden;
}
.sv2-level-menu-item {
  padding: 6px 14px;
  font-size: 12.5px;
  cursor: pointer;
  white-space: nowrap;
  color: var(--sv2-text);
}
.sv2-level-menu-item:hover { background: var(--sv2-surface-muted); }

/* Top-level profile tabs (Overview / Lessons / Homework / Payments) */
.sv2-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--sv2-border);
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.sv2-tab {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 16px;
  border: none;
  background: none;
  color: var(--sv2-text-secondary);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.sv2-tab.is-active {
  color: var(--sv2-brand-green);
  border-bottom-color: var(--sv2-brand-green);
}

/* ============================================================
 * Overview two-column layout
 * ============================================================
 * The Overview tab is split into a main column (stats, enrollment,
 * payment status, payment terms, history link) and a right sidebar
 * that holds the coloured Contact / Languages / Timezone panels
 * stacked vertically.
 *
 * Implementation notes:
 *  - We use CSS grid with an explicit 2-column template. The main
 *    column is `minmax(0, 1fr)` (fills the remaining width, safely
 *    shrinks) and the sidebar is a fixed 340px so long emails / handles
 *    don't ever squeeze the enrollment card in the main column.
 *  - Two `sv2-overview-main` divs are used on purpose (top for stats,
 *    bottom for everything after the sidebar in source order). Both
 *    are placed on column 1 by the rules below, so they simply stack.
 *    The single `sv2-overview-side` spans all rows on column 2.
 *  - On tablets / phones the whole grid collapses to a single column
 *    (see @media block at the bottom of this file), so the JSX order
 *    stays reader-friendly: stats → sidebar panels → enrollment → …
 */
.sv2-overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  align-items: start;
}
.sv2-overview-main {
  grid-column: 1;
  min-width: 0;              /* allows the main column to shrink cleanly */
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.sv2-overview-side {
  grid-column: 2;
  /* Span exactly the 2 `.sv2-overview-main` blocks on col 1
   * (main-top with stats + main-bottom with enrollments/payments).
   *
   * IMPORTANT: earlier this was `1 / span 99` which forced the grid
   * to create 99 implicit row tracks. Combined with the parent's
   * `gap: 24px`, each of the ~97 empty rows added 24px of gap,
   * resulting in ~2400px of blank scrollable space below the profile.
   * With `span 2` the layout stops at the last real content row. */
  grid-row: 1 / span 2;
  min-width: 0;
}

/* Stat cards on the Overview tab */
.sv2-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 1.5rem;
}
/* 2-card variant used at the top of the redesigned Overview.
 * We drop the bottom margin because the parent flex container in
 * sv2-overview-main already owns the vertical rhythm (gap: 1.25rem). */
.sv2-stat-grid.sv2-stat-grid--2 {
  grid-template-columns: 1fr 1fr;
  margin-bottom: 0;
}
.sv2-stat-card {
  background: var(--sv2-surface);
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius-lg);
  padding: 1.1rem 1.25rem;
}
.sv2-stat-card .sv2-stat-num {
  font-size: 24px;
  font-weight: 700;
  color: var(--sv2-text);
}
.sv2-stat-card .sv2-stat-num.is-warn {
  color: var(--sv2-warn);
}
.sv2-stat-card .sv2-stat-label {
  font-size: 12px;
  color: var(--sv2-text-secondary);
  margin-top: 2px;
}

/* Colored info panels (Contact / Languages / Timezone) */
.sv2-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-bottom: 1.5rem;
}
/* Sidebar stacking variant used inside `.sv2-overview-side`: the
 * three coloured panels stack vertically instead of sitting side by
 * side. Bottom margin drops to zero because the sidebar column has
 * no siblings underneath. */
.sv2-info-grid.sv2-info-grid--stack {
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 0;
}
.sv2-info-panel {
  border-radius: var(--sv2-radius-lg);
  padding: 1.1rem 1.2rem;
}
.sv2-info-panel--contact   { background: var(--sv2-brand-blue-light); }
.sv2-info-panel--languages { background: var(--sv2-brand-green-light); }
.sv2-info-panel--timezone  { background: var(--sv2-brand-yellow-light); }
/* The "Talking points" panel that used to sit here was removed on
   2026-10-10: the chips on the student record's identity card ARE the
   picker now (`record/TalkingPointsField.tsx`, styled by `.sr-tp*` in
   student-record.css). */
.sv2-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 13.5px;
  margin-bottom: 12px;
}
.sv2-info-panel--contact   .sv2-info-head { color: var(--sv2-brand-blue); }
.sv2-info-panel--languages .sv2-info-head { color: var(--sv2-brand-green); }
.sv2-info-panel--timezone  .sv2-info-head { color: var(--sv2-warn); }

.sv2-field-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.sv2-field-item:last-child { border-bottom: none; }
.sv2-field-icon {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
  color: #fff;
}
.sv2-info-panel--contact   .sv2-field-icon { background: var(--sv2-brand-blue); }
.sv2-info-panel--languages .sv2-field-icon { background: var(--sv2-brand-green); }
.sv2-info-panel--timezone  .sv2-field-icon { background: #8a6d00; }
/* The LABEL is the half that yields. It is our own word — short, and the
   reader already has the icon and the panel heading for context. */
.sv2-field-item .sv2-k {
  font-size: 13px;
  opacity: 0.7;
  flex: 0 1 auto;
  min-width: 0;
}

/* The VALUE is the student's own data, so it is never truncated.

   This used to be `max-width: 60%` + `white-space: nowrap` +
   `text-overflow: ellipsis`, which silently ate the end of anything
   longer than half the row: "Ukrainian" rendered as "Ukraini…",
   "German" as "Germ…", "Pick one" as "Pick o…". These panels sit in a
   narrow sidebar, so it happened to ordinary values constantly, and a
   teacher cannot tell a clipped value from a wrong one.

   It now takes the room it needs and wraps to a second line rather than
   hiding characters. */
.sv2-field-item .sv2-v {
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 5px;
  padding: 2px 5px;
  margin: -2px -5px;
  text-align: right;
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  background: none;
  border: none;
  font-family: inherit;
  color: inherit;
}
.sv2-field-item .sv2-v:hover { background: rgba(255, 255, 255, 0.6); }
.sv2-field-item .sv2-v.is-muted { opacity: 0.55; font-weight: 500; }
.sv2-field-item .sv2-v.is-note {
  font-weight: 400;
  font-size: 11.5px;
  cursor: default;
  opacity: 0.75;
  line-height: 1.4;
  text-align: left;
  flex: 1;
  max-width: none;
  white-space: normal;
}

/* Inline edit input inside a colored info panel */
.sv2-cell-input,
.sv2-cell-select {
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  border: none;
  border-bottom: 2px solid currentColor;
  background: transparent;
  color: inherit;
  padding: 1px 2px;
  max-width: 160px;
}
.sv2-cell-input:focus,
.sv2-cell-select:focus { outline: none; }

/* Enrollments block */
.sv2-col-title {
  font-weight: 700;
  font-size: 12.5px;
  color: var(--sv2-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin: 0 0 10px;
}
.sv2-enr-tab-bar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  align-items: center;
}
.sv2-enr-tab {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px 7px 8px;
  border-radius: 20px;
  border: 1.5px solid var(--sv2-border);
  background: var(--sv2-surface);
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sv2-text-secondary);
  font-family: inherit;
}
.sv2-enr-tab.is-active {
  border-color: var(--sv2-brand-green);
  background: var(--sv2-brand-green-light);
  color: var(--sv2-brand-green);
}
.sv2-enr-tab .sv2-type-mark {
  font-size: 10px;
  opacity: 0.7;
}
.sv2-enr-panel {
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius-lg);
  padding: 1.2rem 1.3rem;
  background: var(--sv2-surface);
}
.sv2-enr-panel-top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.sv2-enr-teacher {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 20px;
  color: var(--sv2-text);
}
.sv2-enr-teacher .sv2-teacher-dot {
  width: 22px;
  height: 22px;
  font-size: 10px;
}
.sv2-enr-fields {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
}
.sv2-enr-field .sv2-k {
  font-size: 11px;
  color: var(--sv2-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 5px;
}
/* The subscription fee, shown in the rate slot while a plan is running.
   Same weight and size as an editable rate so the eye reads it as "her
   price", but not a control — the plan is edited in Payment terms, where
   its start date and period live too. */
.sv2-enr-plan {
  font-size: 16px;
  font-weight: 700;
  color: var(--sv2-brand-green);
}

/* The dormant per-class rate, demoted to a footnote. It is the sentence
   that answers "then what is the 30 for?" without giving that number the
   prominence that caused the confusion in the first place. */
.sv2-enr-plan-note {
  margin-top: 3px;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--sv2-text-secondary);
  max-width: 34ch;
}

.sv2-enr-field .sv2-v {
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 5px;
  padding: 2px 5px;
  margin: -2px -5px;
  display: inline-block;
  background: none;
  border: none;
  font-family: inherit;
  color: var(--sv2-text);
}
.sv2-enr-field .sv2-v:hover {
  background: var(--sv2-brand-green-light);
  color: var(--sv2-brand-green);
}
.sv2-enr-field .sv2-rate-value {
  color: var(--sv2-brand-green);
}
.sv2-enr-field .sv2-dual-time {
  line-height: 1.4;
  cursor: default;
}
.sv2-enr-field .sv2-dual-time small {
  display: block;
  font-weight: 400;
  color: var(--sv2-text-muted);
  font-size: 11px;
}
.sv2-length-select {
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  cursor: pointer;
}

.sv2-payments-link {
  color: var(--sv2-brand-blue);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  margin-top: 1.25rem;
}
.sv2-payments-link:hover { text-decoration: underline; }

/* ============================================================
 * Payment terms card
 * ============================================================
 * Yellow-tinted panel that sits under the Enrollments block. Three
 * rows of pill toggles let the teacher/admin pick the payment type,
 * billing cadence, and billing timing. Uses the school defaults
 * (Organization.default_*) as a fallback shown as "selected" with an
 * "from school default" tag; when both are empty we paint the row
 * amber to prompt the user. */

.sv2-payment-terms {
  margin-top: 1.5rem;
  padding: 1.25rem 1.25rem 1.1rem;
  border-radius: var(--sv2-radius-lg);
  border: 1px solid #f5e6a6;                /* soft yellow border */
  background: var(--sv2-brand-yellow-light);/* #fbf0c8 */
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.sv2-payment-terms-header {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 0.15rem;
}
.sv2-payment-terms-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--sv2-text);
}
.sv2-payment-terms-sub {
  font-size: 12.5px;
  color: var(--sv2-text-secondary);
}

/* One row inside the card = label on the left, pill group on the right.
   On narrow screens the label stacks on top of the pills. */
.sv2-pt-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 0.5rem 0.75rem;
  border-radius: var(--sv2-radius);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease;
}
/* Amber "please choose" state — used when neither student nor school
   has picked a value for this row. */
.sv2-pt-row--prompt {
  background: #fff4dc;
  border-color: #f0c473;
}

.sv2-pt-row-label {
  min-width: 130px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--sv2-text);
  font-size: 14px;
  font-weight: 600;
}
.sv2-pt-inherited-tag {
  font-size: 11px;
  font-weight: 500;
  color: var(--sv2-text-muted);
  text-transform: none;
  letter-spacing: 0;
}
.sv2-pt-prompt-tag {
  font-size: 11px;
  font-weight: 700;
  color: var(--sv2-warn);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Pill group — one button per option. Rounded, white background,
   dark-green fill for the selected pill (matches the brand). */
.sv2-pt-pills {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}
.sv2-pt-pill {
  appearance: none;
  border: 1px solid var(--sv2-border);
  background: #ffffff;
  color: var(--sv2-text);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.sv2-pt-pill:hover {
  background: var(--sv2-surface-muted);
}
.sv2-pt-pill.is-active {
  background: var(--sv2-brand-green);
  border-color: var(--sv2-brand-green);
  color: #ffffff;
}
.sv2-pt-pill.is-active:hover {
  /* Slight darken on hover so the user can still tell it's clickable. */
  background: #0a3d30;
}

/* Compact numeric input for the "Cancellation notice (h)" row — same
   height/feel as the pills so the row visually matches its neighbours. */
.sv2-pt-notice-input {
  appearance: none;
  border: 1px solid var(--sv2-border);
  background: #ffffff;
  color: var(--sv2-text);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 8px;
  width: 90px;
  text-align: center;
}
.sv2-pt-notice-input:focus {
  outline: none;
  border-color: var(--sv2-brand-green);
  box-shadow: 0 0 0 3px rgba(15, 76, 61, 0.15);
}

/* ---- Subscription plan editor ----------------------------------
   Appears inside the Payment terms card, right under the payment-type
   pills, as soon as "Subscription" is picked. A white panel so the four
   inputs read as one thing to fill in rather than four loose fields
   floating on the yellow. */
.sv2-subplan {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.9rem 1rem 1rem;
  border-radius: var(--sv2-radius);
  background: #ffffff;
  border: 1px solid #f0c473;
}
.sv2-subplan-head {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sv2-subplan-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--sv2-text);
}
.sv2-subplan-hint {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--sv2-text-secondary);
}
/* Two columns on a laptop, one on a phone — the fields are short and
   pair up naturally (price + start date, rhythm + classes). */
.sv2-subplan-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem 0.9rem;
}
@media (max-width: 640px) {
  .sv2-subplan-grid { grid-template-columns: 1fr; }
}
.sv2-subplan-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sv2-text-secondary);
}
.sv2-subplan-field input,
.sv2-subplan-field select {
  appearance: none;
  width: 100%;
  border: 1px solid var(--sv2-border);
  background: #ffffff;
  color: var(--sv2-text);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 7px 10px;
  border-radius: 8px;
}
.sv2-subplan-field input:focus,
.sv2-subplan-field select:focus {
  outline: none;
  border-color: var(--sv2-brand-green);
  box-shadow: 0 0 0 3px rgba(15, 76, 61, 0.15);
}
/* "Renews every [2] [month(s)]" — the number is narrow, the unit takes
   the rest, so the two read as one sentence. */
.sv2-subplan-every {
  display: flex;
  gap: 0.5rem;
}
.sv2-subplan-every input { width: 72px; flex: 0 0 auto; }
.sv2-subplan-every select { flex: 1 1 auto; }

.sv2-subplan-error {
  margin: 0;
  font-size: 12.5px;
  font-weight: 600;
  color: #b42318;
}
.sv2-subplan-save {
  align-self: flex-start;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--sv2-brand-green);
}
.sv2-subplan-save:hover { filter: brightness(1.1); }

/* Responsive collapse for narrow screens.
 *
 * At <= 1100px the sidebar starts to squeeze the main enrollment card
 * (rate / frequency / next-lesson pills all wrap awkwardly), so we
 * collapse the 2-column overview to a single column and let everything
 * stack in JSX source order (stats → contact / languages / timezone →
 * enrollment → payment status → payment terms → link). */
@media (max-width: 1100px) {
  .sv2-overview-layout {
    grid-template-columns: 1fr;
  }
  .sv2-overview-side {
    grid-column: 1;
    grid-row: auto;          /* revert the "span every row" rule */
  }
  .sv2-info-grid.sv2-info-grid--stack {
    /* Reflow to 3 columns again when it becomes a full-width block. */
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media (max-width: 900px) {
  .sv2-info-grid { grid-template-columns: 1fr; }
  .sv2-info-grid.sv2-info-grid--stack { grid-template-columns: 1fr; }
  .sv2-stat-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 500px) {
  .sv2-stat-grid { grid-template-columns: 1fr; }
  .sv2-stat-grid.sv2-stat-grid--2 { grid-template-columns: 1fr; }
}

/* ============================================================
 * Intake review workflow — banner + red-flag markers
 * ============================================================
 * Shown at the very top of the profile when `is_intake_pending`
 * is true (i.e. the student came in via the public /intake form
 * and hasn't been approved yet). The banner explains what's
 * needed, lists the still-empty commercial fields (price,
 * currency, payment terms…) and offers an "Approve student"
 * CTA that flips the flag on the server.
 *
 * Empty commercial fields on the same page are wrapped with the
 * .sv2-needs-review-cell class which paints a soft red border
 * and label so the teacher spots them at a glance. */

.sv2-intake-banner {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 16px;
  margin-bottom: 18px;
  background: var(--sv2-warn-light);
  border: 1px solid #e9c579;
  border-left: 4px solid var(--sv2-warn);
  border-radius: var(--sv2-radius);
  color: var(--sv2-text);
}
.sv2-intake-banner-icon {
  font-size: 22px;
  line-height: 1.1;
  flex-shrink: 0;
}
.sv2-intake-banner-body { flex: 1; min-width: 0; }
.sv2-intake-banner-title {
  font-weight: 700;
  font-size: 14px;
  color: var(--sv2-warn);
  margin: 0 0 4px;
}
.sv2-intake-banner-text {
  font-size: 13px;
  color: var(--sv2-text-secondary);
  margin: 0 0 8px;
  line-height: 1.4;
}
.sv2-intake-missing {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}
.sv2-intake-missing-chip {
  display: inline-block;
  background: #ffffff;
  border: 1px solid var(--sv2-danger);
  color: var(--sv2-danger);
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
}
.sv2-intake-approve-btn {
  padding: 9px 16px;
  border-radius: 8px;
  background: var(--sv2-brand-green);
  color: #ffffff;
  font-weight: 600;
  font-size: 13px;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}
.sv2-intake-approve-btn:hover { filter: brightness(1.08); }
.sv2-intake-approve-btn:disabled {
  opacity: 0.6;
  cursor: default;
}

/* Applied to any commercial field that's still empty while the
 * student is intake-pending. Paints a soft red frame + label so
 * the teacher spots what's left to fill in. */
.sv2-needs-review-cell {
  position: relative;
  padding: 6px 8px;
  border: 1px dashed var(--sv2-danger);
  border-radius: 8px;
  background: var(--sv2-danger-light);
}
.sv2-needs-review-cell .sv2-k {
  color: var(--sv2-danger);
}
.sv2-needs-review-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--sv2-danger);
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  vertical-align: middle;
}

/* -------------------------------------------------------------------
 * FOLDER NAVIGATION (Windows / Google Drive style)
 *
 * Replaces the old horizontal "folder-chip filter" bar with real
 * clickable folder tiles that live INSIDE the grid, plus a small
 * breadcrumb bar that appears when the user has drilled into one.
 *
 * The look mimics a lightweight file-manager: a folder is a big tile
 * with a folder icon, its name, and a member count. Clicking a tile
 * filters the list to that folder only; the breadcrumb takes you
 * back to the root (all folders).
 * ------------------------------------------------------------------- */

/* Breadcrumb bar shown when the user is inside a folder. Contains the
 * "back to All folders" button, the current folder name, and any
 * folder-level actions (rename / add students / …). */
.sv2-folder-crumb {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius);
  background: var(--sv2-surface-muted);
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.sv2-folder-crumb-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--sv2-brand-green);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 6px;
}
.sv2-folder-crumb-back:hover { background: rgba(14, 80, 63, 0.08); }
.sv2-folder-crumb-sep { color: var(--color-text-muted); font-size: 13px; }
.sv2-folder-crumb-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--sv2-text);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sv2-folder-crumb-count {
  font-size: 12px;
  color: var(--sv2-text-secondary, #6b756f);
  font-weight: 500;
}
/* Right-side spacer + action area */
.sv2-folder-crumb-spacer { flex: 1; }

/* A single folder tile inside the grid. Uses the same rounded card
 * chrome as student cards for visual consistency, but with a folder
 * icon, name, count, and an inline "+" affordance in the corner. */
.sv2-folder-tile {
  border: 1px solid var(--sv2-border);
  border-radius: var(--sv2-radius-lg);
  padding: 18px 16px;
  background: var(--sv2-surface);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
  min-height: 118px;
}
.sv2-folder-tile:hover {
  box-shadow: 0 4px 14px rgba(15, 0, 105, 0.08);
  border-color: #cbd5e1;
}
.sv2-folder-tile-icon {
  font-size: 34px;
  line-height: 1;
}
.sv2-folder-tile-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--sv2-text);
  word-break: break-word;
}
.sv2-folder-tile-count {
  font-size: 12.5px;
  color: var(--sv2-text-secondary, #6b756f);
}
/* Little "+" button in the top-right of the tile — opens the "add
 * students to this folder" picker without leaving the root view. */
.sv2-folder-tile-add {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid var(--sv2-border);
  background: var(--sv2-surface);
  color: var(--sv2-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.sv2-folder-tile-add:hover {
  background: var(--sv2-brand-green);
  color: #fff;
  border-color: var(--sv2-brand-green);
}
/* Drag-over state — highlighted with a dashed green outline so the
 * owner sees the tile is a valid drop target while dragging a
 * student card. */
.sv2-folder-tile.is-drop-target {
  outline: 1px dashed #94a3b8;
  outline-offset: 2px;
}
.sv2-folder-tile.is-drop-hover {
  outline: 2px dashed #0e503f;
  outline-offset: 2px;
  background: #dcfce7;
}

/* Section header shown above the folder tiles ("Folders") and above
 * the loose-students list ("Students not in a folder") when at root. */
.sv2-section-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sv2-text-secondary, #6b756f);
  margin: 4px 0 10px;
}

/* -------------------------------------------------------------------
 * MOBILE — on iPhone-SE-sized screens the action row (Send onboarding
 * form + School folders + Add student + New group) had one button
 * spilling off the right edge because the buttons don't wrap eagerly
 * enough inside a horizontal flex. Force each action button to take
 * the full row width so they stack cleanly and stay fully tappable.
 * ------------------------------------------------------------------- */
@media (max-width: 640px) {
  .sv2-header-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .sv2-header-actions .sv2-btn {
    width: 100%;
    justify-content: center;
  }
}

/* -------------------------------------------------------------------
 * PriceChangeDialog (.pcd-*) — "the price went up, from which day?"
 *
 * Lives inside a ModalCard, so it only styles the BODY: the lead
 * sentence, the date row with its two shortcut chips, the plain-English
 * explanation of what the chosen day will do, and the history timeline.
 *
 * The visual priority is deliberate: the date row is the only control
 * that matters, so it gets the weight, while the history below is quiet
 * reference material the teacher glances at, not something to act on.
 * ------------------------------------------------------------------- */

.pcd-lead {
  margin: 0 0 18px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--sv2-text, #1a2420);
}

.pcd-label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sv2-text-secondary, #6b756f);
}

/* Date input + the two shortcut chips. Wraps on narrow screens so the
 * chips drop under the input instead of squeezing it unreadably. */
.pcd-date-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.pcd-date {
  flex: 0 0 auto;
  min-width: 160px;
  font-size: 15px;
}

/* "1st of this month" / "Today" — the two answers teachers actually
 * give. Selected state mirrors whatever is in the date input, so the
 * chip is a readout as well as a shortcut. */
.pcd-chip {
  padding: 7px 12px;
  border: 1px solid var(--sv2-border, #dbe3df);
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: var(--sv2-text-secondary, #6b756f);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.pcd-chip:hover {
  border-color: #0e503f;
  color: #0e503f;
}
.pcd-chip--on {
  background: #dcfce7;
  border-color: #15803d;
  color: #15803d;
}

/* Plain-English consequence of the chosen day. This is the sentence
 * that stops a teacher accidentally re-pricing a finished month. */
.pcd-explain {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--sv2-surface-muted, #f4f7f5);
  font-size: 13px;
  line-height: 1.5;
  color: var(--sv2-text-secondary, #6b756f);
}

/* ---- History timeline ---- */
.pcd-history {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--sv2-border, #dbe3df);
}

.pcd-history-title {
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sv2-text-secondary, #6b756f);
}

.pcd-history-empty {
  font-size: 13px;
  color: var(--sv2-text-secondary, #6b756f);
}

/* Failures are shown, never swallowed: a teacher choosing a billing
 * date needs to know the list they are looking at is incomplete. */
.pcd-history-err {
  padding: 8px 10px;
  border-radius: 8px;
  background: #fef2f2;
  color: #b91c1c;
  font-size: 13px;
}

.pcd-history-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--sv2-border-soft, #eef2f0);
  font-size: 13px;
}
.pcd-history-row:last-child {
  border-bottom: none;
}

.pcd-history-price {
  min-width: 64px;
  font-weight: 700;
  color: var(--sv2-text, #1a2420);
  font-variant-numeric: tabular-nums;
}

.pcd-history-range {
  color: var(--sv2-text-secondary, #6b756f);
}

/* Marks the window that is currently in force. */
.pcd-history-now {
  margin-left: auto;
  padding: 2px 8px;
  border-radius: 999px;
  background: #dcfce7;
  color: #15803d;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
/**
 * Students → Payments tab — scoped visual layer.
 *
 * All classes are namespaced with `.sp-` so the file is safe to load
 * globally. It relies only on the `--ui-*` design tokens defined in
 * `ui-system.css`, which guarantees the tab stays visually consistent
 * with the rest of the redesigned app pages.
 *
 * Structure of the tab (top → bottom):
 *   .sp-tab
 *     .sp-stats          — 4 stat cards row
 *       .sp-stat-card
 *         .sp-stat-eyebrow
 *         .sp-stat-value
 *     .sp-filters        — status filter chips
 *       .sp-filter-chip
 *     .sp-teachers       — teacher blocks
 *       .sp-teacher-block
 *         .sp-teacher-header
 *           .sp-teacher-avatar
 *           .sp-teacher-name
 *           .sp-teacher-count
 *         .sp-table
 *           .sp-row.sp-row--head
 *           .sp-row.sp-row--student
 *           .sp-row.sp-row--group
 *             .sp-cell
 *               .sp-status
 *   .sp-invoice-popover  — floating card anchored under the row
 */

/* ============================================================
 * 1. Root
 * ============================================================ */

.sp-tab {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-bottom: 4rem;
}

.sp-loading,
.sp-error,
.sp-empty {
  padding: 2rem;
  text-align: center;
  color: var(--ui-fg-3);
  background: var(--ui-bg-2);
  border: 1px dashed var(--ui-border, #e6e8ef);
  border-radius: 12px;
}
.sp-error { color: #b91c1c; border-color: #fca5a5; background: #fef2f2; }

/* ============================================================
 * 2. Stat cards
 * ============================================================ */

.sp-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.sp-stat-card {
  background: var(--ui-bg);
  border: 1px solid var(--ui-border, #e6e8ef);
  border-radius: 14px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 84px;
  transition: box-shadow 120ms ease;
}
.sp-stat-card:hover {
  box-shadow: 0 4px 12px rgba(15, 0, 105, 0.06);
}

.sp-stat-eyebrow {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ui-fg-3);
  font-weight: 600;
}

.sp-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ui-fg);
  line-height: 1.15;
}

.sp-stat-card--good   .sp-stat-value { color: #058a4f; }
.sp-stat-card--bad    .sp-stat-value { color: #b91c1c; }
.sp-stat-card--warn   .sp-stat-value { color: #b45309; }

@media (max-width: 900px) {
  .sp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
 * 3. Filter chips
 * ============================================================ */

.sp-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sp-filter-chip {
  background: var(--ui-bg-3);
  color: var(--ui-fg-3);
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.sp-filter-chip:hover {
  color: var(--ui-fg);
}
.sp-filter-chip.is-active {
  background: var(--ui-accent-bg);
  color: var(--ui-accent);
  border-color: var(--ui-accent);
}

/* ============================================================
 * 4. Per-teacher blocks
 * ============================================================ */

.sp-teachers {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.sp-teacher-block {
  background: var(--ui-bg);
  border: 1px solid var(--ui-border, #e6e8ef);
  border-radius: 14px;
  overflow: hidden;
}

.sp-teacher-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--ui-bg-2);
  border-bottom: 1px solid var(--ui-border, #e6e8ef);
}

.sp-teacher-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ui-accent-bg);
  color: var(--ui-accent);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.sp-teacher-name {
  font-weight: 600;
  color: var(--ui-fg);
}

.sp-teacher-count {
  margin-left: auto;
  font-size: 0.85rem;
  color: var(--ui-fg-3);
}

/* ============================================================
 * 5. Table (CSS-grid based so rows stay perfectly aligned)
 * ============================================================ */

/* NOTE: `.sp-*` classes are also used by the School → Team → Payroll page
   (styles in `school-payroll.css`, which uses `sp-` for "school-payroll").
   To keep this file's rules from leaking into the Payroll table — where
   `.sp-row` is a `<tr>` inside a real HTML `<table>` and MUST stay as a
   table-row — we scope every layout-affecting rule below under `.sp-tab`,
   this file's root class. Without this scoping, `.sp-row { display: grid }`
   below breaks the Payroll `<tr>`s (headers no longer align with body
   columns because the row switches to CSS grid). */
.sp-tab .sp-table {
  display: flex;
  flex-direction: column;
}

.sp-tab .sp-row {
  display: grid;
  grid-template-columns:
    minmax(180px, 2fr)   /* Student */
    minmax(120px, 1fr)   /* Plan */
    minmax(100px, 1fr)   /* Period */
    minmax(140px, 1fr)   /* Amount */
    minmax(90px, auto)   /* Status */
    minmax(180px, auto); /* Actions */
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--ui-border, #e6e8ef);
  position: relative; /* anchor for .sp-invoice-popover */
  font-size: 0.9rem;
}
.sp-tab .sp-row:last-child { border-bottom: none; }

.sp-tab .sp-row--head {
  background: var(--ui-bg-2);
  color: var(--ui-fg-3);
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding-top: 8px;
  padding-bottom: 8px;
}

.sp-tab .sp-row--student:hover {
  background: var(--ui-bg-2);
}

.sp-tab .sp-row--member {
  background: var(--ui-bg-2);
  padding-left: 42px;
  border-left: 3px solid var(--ui-accent-bg);
}

.sp-tab .sp-row--group {
  background: var(--ui-bg-3);
  font-weight: 500;
}

/* ---- Cells ---- */

.sp-cell {
  min-width: 0; /* allow ellipsis */
}

.sp-cell--name .sp-name-primary {
  font-weight: 600;
  color: var(--ui-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sp-cell--name .sp-name-secondary {
  font-size: 0.75rem;
  color: var(--ui-fg-3);
  margin-top: 2px;
}

.sp-cell--plan {
  color: var(--ui-fg-2);
  font-size: 0.85rem;
}
.sp-cadence-tag {
  color: var(--ui-fg-3);
  font-weight: 400;
}

.sp-cell--period {
  color: var(--ui-fg-3);
  font-size: 0.85rem;
}

.sp-cell--amount {
  text-align: right;
}
.sp-amount-due {
  font-weight: 700;
  color: var(--ui-fg);
}
.sp-amount-owed {
  font-size: 0.75rem;
  color: #b91c1c;
  margin-top: 2px;
}
.sp-amount-paid {
  font-size: 0.75rem;
  color: #058a4f;
  margin-top: 2px;
}

.sp-cell--status {
  text-align: center;
}

/* ---- Status pill ---- */

.sp-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sp-status--overdue  { background: #fee2e2; color: #b91c1c; }
.sp-status--followup { background: #fef3c7; color: #b45309; }
.sp-status--paid     { background: #d1fae5; color: #058a4f; }
.sp-status--noterms  { background: var(--ui-bg-3); color: var(--ui-fg-3); }
.sp-status--muted    { background: transparent; color: var(--ui-fg-4); }

/* ---- Actions ---- */

.sp-cell--actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.sp-action-btn {
  background: var(--ui-accent);
  color: white;
  border: none;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease;
}
.sp-action-btn:hover { background: var(--ui-accent-2); }

.sp-action-link {
  color: var(--ui-accent);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
}
.sp-action-link:hover { text-decoration: underline; }

/* ---- Group toggle button (caret + group name) ---- */

.sp-group-toggle {
  background: transparent;
  border: none;
  color: var(--ui-fg);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  font-size: inherit;
}
.sp-caret {
  display: inline-block;
  font-size: 0.7rem;
  transition: transform 120ms ease;
  color: var(--ui-fg-3);
}
.sp-caret.is-open { transform: rotate(90deg); }

.sp-group-count {
  color: var(--ui-fg-3);
  font-weight: 400;
  font-size: 0.85rem;
}

/* Compact layout on narrow screens — scoped under `.sp-tab` for the
   same reason as the base rules above (avoid leaking into the Payroll
   table on the School → Team → Payroll page). */
@media (max-width: 900px) {
  .sp-tab .sp-row {
    grid-template-columns: 1fr auto;
    grid-auto-flow: dense;
  }
  .sp-tab .sp-row--head { display: none; }
  .sp-tab .sp-cell--plan,
  .sp-tab .sp-cell--period { grid-column: 1 / -1; font-size: 0.75rem; }
  .sp-tab .sp-cell--amount { text-align: right; }
  .sp-tab .sp-cell--actions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* ============================================================
 * 6. Invoice popover
 * ============================================================ */

/* Popover is rendered via a React portal to <body> with `position: fixed`
   and inline coordinates from SendInvoicePopover. This escapes the
   ancestor `.sp-teacher-block { overflow: hidden }` (needed for its
   rounded corners) that was previously clipping the popover completely
   and making "Send invoice" appear to do nothing. Only visual chrome
   is defined below — positioning comes from the inline style. */
.sp-invoice-popover {
  z-index: 1000;
  width: 340px;
  background: var(--ui-bg);
  border: 1px solid var(--ui-border, #e6e8ef);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(15, 0, 105, 0.14);
  padding: 0;
  overflow: hidden;
}

.sp-invoice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid var(--ui-border, #e6e8ef);
  background: var(--ui-bg-2);
  color: var(--ui-fg);
  font-size: 0.9rem;
}

.sp-invoice-close {
  background: transparent;
  border: none;
  color: var(--ui-fg-3);
  font-size: 1.2rem;
  cursor: pointer;
  line-height: 1;
  padding: 0 4px;
}
.sp-invoice-close:hover { color: var(--ui-fg); }

.sp-invoice-body {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sp-invoice-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  color: var(--ui-fg-3);
  font-weight: 600;
  letter-spacing: 0.05em;
}

.sp-invoice-url {
  background: var(--ui-bg-3);
  border-radius: 6px;
  padding: 8px 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  color: var(--ui-fg-2);
  word-break: break-all;
}

.sp-invoice-hint {
  color: var(--ui-fg-3);
  font-size: 0.85rem;
  margin: 0;
}

.sp-invoice-error {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fca5a5;
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 0.8rem;
}

.sp-invoice-actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
}

.sp-invoice-btn {
  padding: 8px 6px;
  border-radius: 8px;
  border: none;
  font-weight: 600;
  font-size: 0.8rem;
  cursor: pointer;
  transition: opacity 120ms ease;
}
.sp-invoice-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.sp-invoice-btn--primary  { background: var(--ui-accent); color: white; }
.sp-invoice-btn--primary:hover:not(:disabled) { background: var(--ui-accent-2); }

.sp-invoice-btn--whatsapp { background: #25d366; color: white; }
.sp-invoice-btn--whatsapp:hover:not(:disabled) { background: #1fb257; }

.sp-invoice-btn--telegram { background: #229ed9; color: white; }
.sp-invoice-btn--telegram:hover:not(:disabled) { background: #1a86ba; }

.sp-invoice-rotate {
  background: transparent;
  border: 1px solid var(--ui-border, #e6e8ef);
  color: var(--ui-fg-3);
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 0.75rem;
  cursor: pointer;
  align-self: flex-start;
}
.sp-invoice-rotate:hover:not(:disabled) { color: var(--ui-fg); }
.sp-invoice-rotate:disabled { opacity: 0.5; cursor: not-allowed; }


/* ============================================================
 * Clickable student rows
 * ============================================================
 *
 * Rows in the Payments tab open the PaymentDrawer when clicked. We
 * add a subtle hover cue (row background + cursor) so the whole thing
 * clearly reads as tappable. Inner buttons/links keep their own
 * cursor via their existing rules — the .sp-row--clickable rule only
 * applies to the row surface.
 */
.sp-tab .sp-row--clickable {
  cursor: pointer;
  transition: background-color 120ms ease;
}
.sp-tab .sp-row--clickable:hover {
  background: rgba(15, 0, 105, 0.035);  /* faint indigo tint */
}
.sp-tab .sp-row--clickable:focus-visible {
  outline: 2px solid var(--ui-accent, #0f0069);
  outline-offset: -2px;
  background: rgba(15, 0, 105, 0.05);
}


/* ============================================================
 * PaymentDrawer — right-side slide-in panel
 * ============================================================
 *
 * Layout tree:
 *   .pd-backdrop        — dim overlay behind the drawer
 *   .pd-drawer          — 460 px panel glued to the right edge
 *     .pd-header
 *       .pd-avatar
 *       .pd-header-text
 *         .pd-name-row (h2 + native flag)
 *         .pd-subtitle
 *       .pd-close
 *     .pd-stat-grid     — 3 stat blocks
 *       .pd-stat
 *     .pd-history
 *       .pd-section-title
 *       .pd-history-list
 *         .pd-history-item
 *     .pd-footer
 *       .pd-btn.pd-btn--primary
 *       .pd-btn.pd-btn--secondary
 */

.pd-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  z-index: 900;
  animation: pd-fade-in 160ms ease;
}
@keyframes pd-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.pd-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(460px, 100vw);
  background: var(--ui-bg, #ffffff);
  border-left: 1px solid var(--ui-border, #e6e8ef);
  box-shadow: -12px 0 32px rgba(15, 23, 42, 0.12);
  z-index: 901;
  display: flex;
  flex-direction: column;
  animation: pd-slide-in 220ms cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
}
@keyframes pd-slide-in {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}

/* ---- Header ---- */
.pd-header {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 18px 20px 16px;
  border-bottom: 1px solid var(--ui-border, #eef0f5);
  flex-shrink: 0;
}
.pd-avatar {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: linear-gradient(135deg, #4c1d95, #0f0069);
  color: #ffffff;
  font-weight: 700;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pd-header-text {
  min-width: 0; /* let text truncate cleanly */
}
.pd-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.pd-name {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--ui-fg, #111);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pd-native-flag {
  font-size: 18px;   /* controls the flag size via em */
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.pd-subtitle {
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--ui-fg-3, #6b7280);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pd-close {
  background: transparent;
  border: none;
  color: var(--ui-fg-3, #6b7280);
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease, color 120ms ease;
}
.pd-close:hover { background: rgba(0, 0, 0, 0.05); color: var(--ui-fg, #111); }

/* ---- Body-level loading / error ---- */
.pd-loading,
.pd-error,
.pd-empty {
  padding: 24px 20px;
  color: var(--ui-fg-3, #6b7280);
  font-size: 13px;
}
.pd-error { color: #b91c1c; }

/* ---- Stat grid ---- */
.pd-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 16px 20px 8px;
}
.pd-stat {
  background: var(--ui-bg-2, #f8f9fc);
  border: 1px solid var(--ui-border, #eef0f5);
  border-radius: 12px;
  padding: 12px 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.pd-stat-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.pd-stat-icon--paid {
  background: rgba(16, 185, 129, 0.12);
  color: #059669;
}
.pd-stat-icon--neutral {
  background: rgba(15, 0, 105, 0.10);
  color: #0f0069;
}
.pd-stat-icon--bad {
  background: rgba(220, 38, 38, 0.10);
  color: #b91c1c;
}
.pd-stat-eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--ui-fg-3, #6b7280);
  font-weight: 600;
}
.pd-stat-value {
  font-size: 20px;
  font-weight: 700;
  color: var(--ui-fg, #111);
  line-height: 1.15;
}
.pd-stat-value.is-warn { color: #b91c1c; }
.pd-stat-sub {
  font-size: 11.5px;
  color: var(--ui-fg-3, #9aa3b2);
}

/* ---- History section ---- */
.pd-history {
  padding: 8px 20px 8px;
  overflow: auto;
  flex-grow: 1;
  min-height: 0;
}
.pd-section-title {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ui-fg-3, #6b7280);
  margin: 8px 0 10px;
  font-weight: 700;
}
.pd-history-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.pd-history-item {
  display: grid;
  /* Last track is the delete control. Reserved on every row (payments
     leave it empty) so the amounts keep a single alignment. */
  grid-template-columns: 56px 1fr auto auto 26px;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--ui-border, #eef0f5);
  font-size: 13px;
}
.pd-history-item:last-child { border-bottom: none; }
.pd-history-actions {
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}
.pd-history-item--credit {
  /* Payments-received are subtly highlighted so the eye picks out
     incoming money vs outgoing lesson debts. */
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.05), transparent);
  border-radius: 6px;
  padding-left: 8px;
  margin-left: -8px;
}
/* ---- A payment line opens its own correction form when clicked ----
   The teacher spots a mistyped amount while reading this list, so the
   fix lives on the line she is already looking at. */
.pd-history-item--editable { cursor: pointer; }
.pd-history-item--editable:hover,
.pd-history-item--editable:focus-visible {
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.14), rgba(16, 185, 129, 0.03));
  outline: none;
}
.pd-history-item--editable:focus-visible {
  box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.45);
}
/* Always visible, never hover-only: a hint that needs a mouse pointer
   to appear does not exist at all on a touch screen. */
.pd-history-edit-hint {
  color: #059669;
  opacity: 0.5;
  transition: opacity 0.12s ease;
}
.pd-history-item--editable:hover .pd-history-edit-hint,
.pd-history-item--editable:focus-visible .pd-history-edit-hint {
  opacity: 1;
}
.pd-history-date {
  color: var(--ui-fg-3, #6b7280);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.pd-history-body {
  min-width: 0;
}
.pd-history-desc {
  color: var(--ui-fg, #111);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pd-history-period {
  font-size: 11.5px;
  color: var(--ui-fg-3, #9aa3b2);
  text-transform: capitalize;
}
.pd-history-amount {
  font-weight: 700;
  color: var(--ui-fg, #111);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pd-history-item--credit .pd-history-amount { color: #059669; }

.pd-pill {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.pd-pill--paid {
  background: rgba(16, 185, 129, 0.12);
  color: #059669;
}
.pd-pill--unpaid {
  background: rgba(220, 38, 38, 0.10);
  color: #b91c1c;
}

/* ---- Footer ---- */
.pd-footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--ui-border, #eef0f5);
  background: var(--ui-bg, #fff);
  flex-shrink: 0;
}
.pd-btn {
  padding: 10px 14px;
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 10px;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background 120ms ease,
    border-color 120ms ease,
    color 120ms ease,
    box-shadow 120ms ease;
}
.pd-btn--primary {
  background: #059669;
  color: #ffffff;
  border-color: #059669;
}
.pd-btn--primary:hover {
  background: #047857;
  border-color: #047857;
  box-shadow: 0 4px 12px rgba(5, 150, 105, 0.25);
}
.pd-btn--secondary {
  background: var(--ui-bg, #fff);
  color: var(--ui-fg, #111);
  border-color: var(--ui-border, #cfd4de);
}
.pd-btn--secondary:hover {
  background: var(--ui-bg-2, #f5f6fa);
  border-color: var(--ui-fg-3, #9aa3b2);
}

/* ---- Responsive: full-width drawer on narrow viewports ---- */
@media (max-width: 640px) {
  .pd-drawer {
    width: 100vw;
    border-left: none;
  }
  .pd-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .pd-stat { padding: 10px 8px 8px; }
  .pd-stat-value { font-size: 17px; }
}
/* ==========================================================================
   student-payment.css — the student profile's money block.

   Built from the owner's mockup:
       specs/design/references/payment-page-hierarchy.html

   The hierarchy the mockup argues for, top to bottom:

     1. A dark STATUS card — the one thing the teacher opens this page to
        find out ("does she owe me money?"). It is the only coloured
        surface on the page, so the eye lands on it first.
     2. A quiet one-line link to the full transaction history.
     3. A COLLAPSED terms card — the settings. Terms are changed a couple
        of times a year, so they are a summary line plus "Edit terms",
        not four rows of controls shouting for attention.

   Palette is the project's own (see specs/design/specs.md):
     navy #0f0069 (gradient to #241493), yellow #fdd504, coral #e0562f,
     deep green #0e503f, line #e2e4e0.
   ========================================================================== */

/* The tokens are declared on EVERY top-level block of this design, not
   only on the `.sp2` wrapper.

   The status card is used in two places: inside `.sp2` on the student
   Overview tab, and on its own at the top of the Payments tab (for a
   student AND for a group). While the tokens lived only on `.sp2`, that
   second use resolved `var(--sp2-navy)` to nothing — the card lost its
   navy background but kept `color: #fff`, i.e. white text on white. It
   read as "the card was never built".

   Declaring them per block keeps each piece liftable on its own, which
   is the property that quietly broke. */
.sp2,
.sp2-status,
.sp2-histrow,
.sp2-terms {
  --sp2-navy: #0f0069;
  --sp2-navy-2: #241493;
  --sp2-yellow: #fdd504;
  --sp2-coral: #e0562f;
  --sp2-green: #0e503f;
  --sp2-gray: #8b929a;
  --sp2-line: #e2e4e0;
  --sp2-gray-bg: #f1f2ef;
}

.sp2 {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ==========================================================================
   1. STATUS CARD — navy, the loudest thing on the page.
   ========================================================================== */

.sp2-status {
  background: linear-gradient(135deg, var(--sp2-navy), var(--sp2-navy-2));
  border-radius: 20px;
  padding: 24px;
  color: #fff;
}

.sp2-status-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

/* The label above the big number: "Balance" / "Current period". */
.sp2-status-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 6px;
}

/* The answer itself. Yellow when money is owed — on this navy the
   yellow is the project's "look here" colour. */
.sp2-status-big {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.sp2-status-big.is-due { color: var(--sp2-yellow); }

/* One sentence of context under the number ("Unpaid since 12 Aug"). */
.sp2-status-context {
  margin-top: 6px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}

.sp2-status-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.sp2-btn {
  border-radius: 10px;
  padding: 9px 16px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: filter 0.15s ease, background 0.15s ease;
}

/* Secondary: a ghost button, readable but not competing. */
.sp2-btn-ghost {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}
.sp2-btn-ghost:hover { background: rgba(255, 255, 255, 0.2); }

/* Primary: brand yellow on navy — the highest-contrast pair we have. */
.sp2-btn-primary {
  background: var(--sp2-yellow);
  color: #1a1a1a;
}
.sp2-btn-primary:hover { filter: brightness(1.06); }

/* ---- The three mini stats along the bottom of the card ---- */
.sp2-minis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 20px;
}
@media (max-width: 560px) {
  .sp2-minis { grid-template-columns: 1fr; }
}

.sp2-mini {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 12px 14px;
}

.sp2-mini-k {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 4px;
}

.sp2-mini-v {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
}

/* ==========================================================================
   2. HISTORY LINK ROW — deliberately quiet.
   ========================================================================== */

.sp2-histrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 16px;
  background: var(--sp2-gray-bg);
  border-radius: 12px;
  font-size: 13px;
  color: var(--sp2-gray);
}

.sp2-histrow a {
  color: var(--sp2-navy);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.sp2-histrow a:hover { text-decoration: underline; }

/* ==========================================================================
   3. TERMS CARD — collapsed by default.
   ========================================================================== */

.sp2-terms {
  background: #fff;
  border: 1px solid var(--sp2-line);
  border-radius: 16px;
  padding: 18px 20px;
}

.sp2-terms-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sp2-terms-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sp2-gray);
}

/* "Edit terms" / "Cancel" — a link, not a button: changing terms is a
   rare act and should not look like the page's main job. */
.sp2-terms-toggle {
  background: none;
  border: none;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--sp2-navy);
  cursor: pointer;
}
.sp2-terms-toggle:hover { text-decoration: underline; }

/* ---- Collapsed: one line that reads like a sentence ---- */
.sp2-terms-summary {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 15px;
  color: #1a1a1a;
}
.sp2-terms-summary b { font-weight: 700; }

/* Small grey facts hanging off the summary ("30 EUR per class"). */
.sp2-tag {
  background: var(--sp2-gray-bg);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 12px;
  color: #565c63;
  white-space: nowrap;
}

/* "from Wednesday Class →" — who decided the headline terms. A link,
   because the answer to "why is she billed 60?" lives on the group
   page, and the teacher should not have to go hunting for it. */
.sp2-terms-src {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sp2-navy);
  white-space: nowrap;
}

/* The payer's OWN rate, once something else is billing her. Quieter
   than the headline and prefixed with what it is FOR, so a 15-per-class
   figure can never again be read as the price of a class that a
   subscription has already paid for.

   Quieter, but never faint. Small grey type has already been reported
   as unreadable on the owner's phone once, and the cause was contrast,
   not size — so this reuses the greys the rest of the card is built
   from (#565c63 / #6c737b, both about 4.6:1 on white) rather than
   dropping to a lighter tint that would only read on a desktop. */
.sp2-terms-default {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #565c63;
}
.sp2-terms-default b { font-weight: 600; color: #565c63; }
.sp2-terms-default-lbl {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6c737b;
}

/* Nothing chosen yet — say so in coral rather than showing a blank. */
.sp2-terms-empty {
  color: var(--sp2-coral);
  font-weight: 600;
}

/* ---- Expanded ---- */
.sp2-terms-body { margin-top: 16px; }

/* The three type buttons. A row of equal choices, not pills of
   different weight: picking one is the first decision. */
.sp2-typerow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
@media (max-width: 560px) {
  .sp2-typerow { grid-template-columns: 1fr; }
}

.sp2-typebtn {
  border: 1px solid var(--sp2-line);
  background: #fff;
  border-radius: 12px;
  padding: 12px 10px;
  font-size: 14px;
  font-weight: 600;
  color: #565c63;
  cursor: pointer;
  transition: all 0.15s ease;
}
.sp2-typebtn:hover { border-color: var(--sp2-navy); color: var(--sp2-navy); }
.sp2-typebtn.is-active {
  background: var(--sp2-navy);
  border-color: var(--sp2-navy);
  color: #fff;
}

/* ---- Fields ---- */
.sp2-fields {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sp2-fieldrow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 560px) {
  .sp2-fieldrow { grid-template-columns: 1fr; }
}

.sp2-field { display: flex; flex-direction: column; gap: 6px; }

.sp2-field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #3a3f45;
}

/* A coral dot marks a field the money engine cannot work without.
   Kept as a dot rather than "*" so it reads as a status, not as
   punctuation the teacher has to decode. */
.sp2-req {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sp2-coral);
  flex: 0 0 auto;
}

.sp2-field input,
.sp2-field select {
  width: 100%;
  border: 1px solid var(--sp2-line);
  border-radius: 10px;
  padding: 9px 11px;
  font-size: 14px;
  font-family: inherit;
  color: #1a1a1a;
  background: #fff;
}
.sp2-field input:focus,
.sp2-field select:focus {
  outline: none;
  border-color: var(--sp2-navy);
  box-shadow: 0 0 0 3px rgba(15, 0, 105, 0.1);
}

/* "Renews every [2] [Months]" — a number and a unit on one line. */
.sp2-every { display: flex; gap: 8px; }
.sp2-every input { width: 80px; flex: 0 0 auto; }
.sp2-every select { flex: 1 1 auto; }

.sp2-hint {
  font-size: 12px;
  color: var(--sp2-gray);
}

/* An explanation the teacher needs in order NOT to look for a control
   that isn't there (see the subscription / prepaid notes). */
.sp2-note {
  background: var(--sp2-gray-bg);
  border-radius: 10px;
  padding: 11px 13px;
  font-size: 12.5px;
  line-height: 1.5;
  color: #565c63;
}

/* The same note, but about the GROUP: "these terms bill all N members",
   or on a student "your group lessons are billed by <group>".

   It sits OUTSIDE the collapsible editor, directly under the summary,
   because it is true whether or not the teacher is editing — and a
   teacher who only reads the collapsed line is exactly the one who must
   not miss that a second price is in play. Tinted rather than grey so it
   reads as a fact about this payer, not as an aside. */
.sp2-note--group {
  margin-top: 12px;
  background: #eef0ff;
  color: #3a3f66;
}
.sp2-note--group a {
  color: var(--sp2-navy);
  font-weight: 600;
  white-space: nowrap;
}

/* The group page frames the card itself, so the wrapper must not add a
   second column gap on top of the one `.sp2-terms` already owns. */
.sp2--bare { gap: 0; }

.sp2-error {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--sp2-coral);
}

.sp2-terms-foot {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
}

/* Save is green: it commits, and green is the project's "done" colour. */
.sp2-save {
  background: var(--sp2-green);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.sp2-save:hover { filter: brightness(1.15); }

/* ==========================================================================
   States
   ========================================================================== */

.sp2-loading,
.sp2-failed {
  border: 1px solid var(--sp2-line);
  border-radius: 16px;
  padding: 20px;
  font-size: 14px;
  color: var(--sp2-gray);
}
.sp2-failed { color: var(--sp2-coral); }
/* =========================================================================
 * StudentIntakeAnswers — "What <student> told us"
 * =========================================================================
 *
 * One panel, rendered on two very different pages: the student's profile
 * (light card grid, `sv2-*`) and the Lessons Studio workspace (`ls-v2-*`).
 * It therefore styles itself completely and inherits nothing from either,
 * which is why the class prefix is its own (`sia-`) and why every value
 * below is a token from specs/design/specs.md rather than a local
 * variable belonging to one of the two hosts.
 *
 * Loaded globally from `layouts/AppLayout.astro` — both host pages use
 * that layout, and duplicating the import per page is how stylesheets
 * silently go missing on the third page that adopts the component.
 *
 * Typography floor (specs/design/specs.md, "Phone typography"): nothing
 * here drops below 15px on a phone and nothing renders at weight 400.
 * Every grey is a `--color-text*` token, never a literal hex — only the
 * tokens pick up the MOBILE TEXT CONTRAST override in colors.css, and a
 * hard-coded #8888a4 stays pale on a phone forever. That is the exact
 * mistake that made the platform look greyer than the landing page.
 * ========================================================================= */

.sia-panel {
  background: #fff;
  border: 1px solid #e6e6ef;
  border-radius: 14px;
  padding: 20px 22px;
  margin-top: 20px;
  /* The project's BODY face, named explicitly so the panel stays
     identical on the Studio page, which sets its own mood font stack
     (`--lm-font-*`). The token is global and the Studio does not
     override it, so this still does its job — it used to hard-code
     'Inter' and so silently stopped following the house font. */
  font-family: var(--font-body), system-ui, sans-serif;
  color: var(--color-text);
}

/* ---- header: title + "25 answers · 31 August" + Hide/Read ---- */

.sia-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.sia-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: #0f0069;
  letter-spacing: -0.01em;
}

/* The proof-of-life line. This is the piece that was missing: a teacher
   glancing at the page must be able to tell, without clicking, that the
   form came back and how much of it. */
.sia-stamp {
  font-size: 15px;
  font-weight: 600;
  color: #0e503f;
  background: #e8f3ef;
  border-radius: 999px;
  padding: 3px 10px;
}

.sia-toggle {
  margin-left: auto;
  border: 1px solid #d8d8e6;
  background: #fff;
  border-radius: 8px;
  padding: 5px 14px;
  font-size: 15px;
  font-weight: 600;
  color: #0f0069;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.sia-toggle:hover {
  background: #f4f4fb;
  border-color: #0f0069;
}

/* ---- "these answers are actually used" reassurance ---- */

.sia-uses {
  margin: 14px 0 0;
  padding: 10px 14px;
  background: #f7f6ff;
  border-left: 3px solid #0f0069;
  border-radius: 0 8px 8px 0;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text-light);
}

/* ---- one step of the form ---- */

.sia-section {
  margin-top: 22px;
}

.sia-section-title {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  border-bottom: 1px solid #eeeef5;
  padding-bottom: 6px;
}

.sia-item {
  margin-bottom: 14px;
}

/* The question, as the student was asked it. Deliberately quieter than
   the answer: the teacher is here to read the answer. */
.sia-q {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-muted);
  margin-bottom: 3px;
}

.sia-a {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-text);
}

/* Free text — the student's own words, and the reason this panel is
   worth opening at all. Given the visual weight of a real quotation so
   it never reads as one more row in a table. */
.sia-quote {
  margin: 4px 0 0;
  padding: 8px 0 8px 14px;
  border-left: 3px solid #fbe840;
  font-size: 16px;
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  color: var(--color-text);
}

/* Multi-choice answers as chips: six ticked topics read instantly as six
   things, where a comma-separated sentence reads as one blob. */
.sia-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.sia-chip {
  font-size: 15px;
  font-weight: 500;
  color: #0e503f;
  background: #eef6f3;
  border: 1px solid #d3e7e0;
  border-radius: 999px;
  padding: 3px 11px;
}

/* ---- nobody has asked them yet ---- */

.sia-empty {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}

.sia-empty p {
  margin: 0 0 10px;
}

/* The button IS the instruction.
 *
 * The first version of this state spent three lines telling the teacher
 * to go to another page and click something there. This is that click,
 * brought here. It is the panel's only call to action, so it is a solid
 * button (the deep blue of the title) rather than the outlined pill used
 * by Hide/Read, which is a mere view toggle. */
.sia-ask-btn {
  border: 1px solid #0f0069;
  background: #0f0069;
  color: #fff;
  border-radius: 8px;
  padding: 8px 16px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.sia-ask-btn:hover {
  background: #1a0f8a;
  border-color: #1a0f8a;
}

.sia-ask-btn:focus-visible {
  outline: 2px solid #fbe840;
  outline-offset: 2px;
}

.sia-muted {
  color: var(--color-text-muted);
  font-size: 15px;
  font-weight: 500;
  margin: 0;
}

.sia-error {
  color: #c0392b;
  font-size: 15px;
  font-weight: 600;
  margin: 0;
}

/* =========================================================================
 * COMPACT MODE — the same answers inside the Lessons Studio profile card.
 * =========================================================================
 *
 * The reading layout above gives each answer three lines (label, then
 * value, with air around it). Twenty answers is then most of a screen,
 * and the card it now lives in has two other sections to show. The
 * owner, 2026-09-03: "my concern — space! ... but if teacher wants to
 * see the whole answer then we can redirect person to student's
 * profile".
 *
 * So: one line per answer, question left and answer right, and long free
 * text clamped with an ellipsis. The clamp is only honest because the
 * link at the foot of the block goes to the page that shows all of it —
 * never clamp without that link.
 *
 * Type sizes do NOT shrink here. Density comes from removing vertical
 * space, not from making the text smaller: this panel is read on phones
 * too, and 11px grey labels are the exact thing the phone typography
 * rule exists to stop. */

.sia-panel.is-compact {
  border: none;
  border-radius: 0;
  padding: 0;
  margin-top: 0;
}

.sia-panel.is-compact .sia-section {
  margin-top: 12px;
}

/* One answer: question on the left, answer on the right. */
.sia-c-item {
  display: flex;
  gap: 12px;
  align-items: baseline;
  padding: 5px 0;
  border-bottom: 1px solid #f1f1f6;
}
.sia-c-item:last-child {
  border-bottom: none;
}

.sia-c-q {
  flex: 0 0 40%;
  max-width: 40%;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text-muted);
  line-height: 1.45;
}

.sia-c-a {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.45;
  /* Clamp to one line. The full text is on the `title` attribute and,
     properly, one click away at the foot of the block. */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sia-c-a.is-quote {
  font-style: italic;
  font-weight: 500;
}

.sia-c-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  white-space: normal;
}

.sia-c-chip {
  font-size: 13px;
  font-weight: 600;
  background: #f1f2ef;
  color: var(--color-text);
  padding: 2px 8px;
  border-radius: 6px;
}

/* The way out of the clamp. */
.sia-c-full {
  display: inline-block;
  margin-top: 12px;
  font-size: 15px;
  font-weight: 700;
  color: #0f0069;
  text-decoration: none;
}
.sia-c-full:hover {
  text-decoration: underline;
}

/* ---- phone ----
 * Only the box shrinks. Per the typography rules every text size above
 * is already at or over the 15px floor, so nothing here reduces type. */
@media (max-width: 640px) {
  .sia-panel {
    padding: 16px;
    border-radius: 12px;
  }

  .sia-panel.is-compact {
    padding: 0;
  }

  .sia-toggle {
    margin-left: 0;
  }

  /* Two columns of 40/60 on a 360px screen leaves ~140px for a question
     like "Which language do you want to learn?". Stack instead, and drop
     the one-line clamp with it — there is no width left to clamp to. */
  .sia-c-item {
    flex-direction: column;
    gap: 2px;
    padding: 7px 0;
  }
  .sia-c-q,
  .sia-c-a {
    flex: 1 1 auto;
    max-width: 100%;
    white-space: normal;
  }
}
/**
 * School Payments screen (/app/students#payments) — scoped visual layer.
 * ==================================================================
 * Namespace: `.spx-*` ("school payments eXperience"). Safe to load
 * globally; nothing here leaks outside the tab.
 *
 * Palette + type follow the ASISTEACH brand and the reference mock the
 * user supplied:
 *   navy    #0f0069  brand indigo — headings, primary buttons
 *   green   #0e503f  money received, "paid"
 *   coral   #e0562f  money owed, "overdue"
 *   yellow  #fdd504  groups, "collected"
 *   purple  #8b7ce0  accents
 * TYPEFACE — this screen uses the SAME face as the rest of the app:
 * Inter, via the `--font-primary` / `--font-body` tokens in typo.css.
 * It used to declare Fredoka + Poppins of its own, which made the
 * Payments tab visibly foreign next to the Students list it opens from;
 * the school owner reported it as "a distinct font comparing to the rest
 * of the platform". The `--spx-display` / `--spx-body` names are kept so
 * the weight and letter-spacing distinction between figures and body
 * copy still reads, but both now resolve to the platform face.
 * Do not reintroduce a screen-local font family here.
 *
 * Reading order of this file mirrors the screen:
 *   1. tokens + root        5. tiles
 *   2. stat cards           6. detail panel
 *   3. pills + search       7. invoice popover
 *   4. teacher table        8. responsive
 */

.spx-tab {
  /* ---- palette ---- */
  --spx-navy:      #0f0069;
  --spx-green:     #0e503f;
  --spx-coral:     #e0562f;
  --spx-yellow:    #fdd504;
  --spx-purple:    #8b7ce0;
  --spx-gray:      #8b929a;

  --spx-line:      #e2e4e0;
  --spx-gray-bg:   #f1f2ef;
  --spx-green-bg:  #e6efec;
  --spx-coral-bg:  #fbe3db;
  --spx-yellow-bg: #fdf3d3;
  --spx-navy-bg:   #e9e6f7;
  --spx-purple-bg: #ece9fb;

  /* ---- type ----
     Both point at the platform face (see the header comment). The
     fallback chain is spelled out so the tab still renders in Inter if
     it is ever mounted somewhere typo.css has not loaded. */
  --spx-display: var(--font-primary, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  --spx-body: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);

  font-family: var(--spx-body);
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 4rem;
}

/* Status / error / empty placeholders --------------------------------- */

.spx-loading,
.spx-detail-loading,
.spx-detail-empty,
.spx-detail-placeholder {
  padding: 28px;
  text-align: center;
  color: var(--spx-gray);
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  font-size: 14px;
}

.spx-error,
.spx-detail-error {
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--spx-coral-bg, #fbe3db);
  color: #a33417;
  font-size: 14px;
  font-weight: 500;
}

/* ==================================================================
 * 2. Stat cards — four solid colour blocks
 * ================================================================== */

.spx-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.spx-stat {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 108px;
}

/* The oversized emoji sits in the top-right corner, tilted and
   semi-transparent, so it decorates without competing with the number. */
.spx-stat-icon {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 34px;
  line-height: 1;
  transform: rotate(8deg);
  opacity: 0.55;
  pointer-events: none;
}

.spx-stat-label {
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  opacity: 0.86;
  /* Reserve room so a long label never runs under the emoji. */
  padding-right: 42px;
}

.spx-stat-value {
  font-family: var(--spx-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.1;
  margin-top: auto;
}

.spx-stat--navy   { background: var(--spx-navy);   color: #fff; }
.spx-stat--green  { background: var(--spx-green);  color: #fff; }
.spx-stat--coral  { background: var(--spx-coral);  color: #fff; }
/* Yellow is far too bright for white text — use the navy ink instead. */
.spx-stat--yellow { background: var(--spx-yellow); color: var(--spx-navy); }

/* ==================================================================
 * 3. Filter pills + search
 * ================================================================== */

.spx-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

/* The teacher picker and the search box travel together at the right
   end of the filter row, so the row stays ONE band of controls. The
   teacher filter is deliberately a closed <select> and not a second
   row of chips: the house rule from the owner's own Leads mockup is
   "one closed dropdown, never a chip bar", and a second row of buttons
   under the status pills reads as competing navigation. */
.spx-filter-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.spx-teacher-filter { display: inline-flex; }

.spx-teacher-filter select {
  appearance: none;
  /* A chevron drawn in the background, so the control keeps the same
     pill shape as the search box beside it. */
  background: #fff
    url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%238b929a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat right 15px center;
  border: 1px solid var(--spx-line);
  border-radius: 999px;
  padding: 0 36px 0 16px;
  height: 38px;
  font-family: var(--spx-body);
  font-size: 13.5px;
  font-weight: 500;
  color: #22262e;
  cursor: pointer;
}
.spx-teacher-filter select:focus-visible {
  outline: 0;
  border-color: var(--spx-navy);
}

/* A label only a screen reader reads. The teacher picker needs a name,
   and printing "Filter by teacher" next to a control that already says
   "All teachers" is the kind of duplicated text the owner has asked to
   be rid of twice. */
.spx-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.spx-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.spx-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--spx-line);
  background: #fff;
  color: #3d4450;
  border-radius: 999px;
  padding: 7px 8px 7px 15px;
  font-family: var(--spx-body);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}

.spx-pill:hover { border-color: #c9ccd4; background: var(--spx-gray-bg); }

/* The count badge inherits the pill's colour scheme so an active pill
   reads as one solid object rather than two glued chips. */
.spx-pill-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--spx-gray-bg);
  color: #5b626d;
  font-family: var(--spx-display);
  font-size: 12px;
  font-weight: 600;
}

.spx-pill.is-active {
  background: var(--spx-navy);
  border-color: var(--spx-navy);
  color: #fff;
}
.spx-pill.is-active .spx-pill-count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

/* Each status pill keeps a hint of its own colour when active, so the
   filter you are in matches the colour of the rows it shows. */
.spx-pill--overdue.is-active   { background: var(--spx-coral);  border-color: var(--spx-coral); }
.spx-pill--follow_up.is-active { background: #b45309;           border-color: #b45309; }
.spx-pill--paid.is-active      { background: var(--spx-green);  border-color: var(--spx-green); }

.spx-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--spx-line);
  border-radius: 999px;
  padding: 0 16px;
  height: 38px;
  min-width: 240px;
  color: var(--spx-gray);
}
.spx-search:focus-within { border-color: var(--spx-navy); }

.spx-search input {
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--spx-body);
  font-size: 13.5px;
  color: #22262e;
  width: 100%;
}
.spx-search input::placeholder { color: var(--spx-gray); }

/* ==================================================================
 * Status pills — shared by the tiles, the roster and the detail panel
 * ================================================================== */

.spx-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 11px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}

.spx-status--overdue  { background: var(--spx-coral-bg);  color: #a33417; }
.spx-status--followup { background: var(--spx-yellow-bg); color: #8a6a04; }
.spx-status--paid     { background: var(--spx-green-bg);  color: var(--spx-green); }
.spx-status--noterms  { background: var(--spx-purple-bg); color: #5a4bb5; }
.spx-status--muted    { background: var(--spx-gray-bg);   color: var(--spx-gray); }

/* ==================================================================
 * 3b. "Students who left still owe you" band
 * ------------------------------------------------------------------
 * The owner asked for leavers who have not paid to be "pointed out
 * with exclamation sign somewhere on top and be able to be resolved
 * fast". So: one card above the class list, one row per person, both
 * resolutions in the row.
 *
 * COLOUR. Coral INK on the pale coral tint, never a solid coral slab.
 * The palette rule from specs/design is that coral marks money owed in
 * text and hairlines (the row stripe on the phone payments list), and
 * that a mockup's coral fill is not to be copied. A full orange banner
 * would also shout louder than the four stat cards it sits under.
 * ================================================================== */

.spx-left-owing {
  background: var(--spx-coral-bg);
  border: 1px solid #f0c3b2;
  border-radius: 18px;
  padding: 15px 18px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.spx-left-owing-head {
  display: flex;
  align-items: center;
  gap: 9px;
}

.spx-left-owing-icon { flex: 0 0 auto; color: #a33417; }

.spx-left-owing-title {
  margin: 0;
  font-family: var(--spx-display);
  font-size: 15px;
  font-weight: 600;
  color: #a33417;
}
/* The amount is the one thing to read twice. */
.spx-left-owing-title strong { font-weight: 700; }

/* An explanation sits BELOW the thing it explains and is smaller than
   the controls — the owner's standing size rule. */
.spx-left-owing-note {
  margin: 0 0 6px 27px;
  font-family: var(--spx-body);
  font-size: 11.5px;
  font-weight: 500;
  color: #8a4f38;
}

.spx-left-owing-error { margin: 0 0 8px; }

.spx-left-owing-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Each person is a white card on the tint, so the row's own buttons
   have something to sit on. */
.spx-left-owing-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid #f2d2c6;
  border-radius: 13px;
  padding: 10px 13px;
}

.spx-left-owing-who {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 190px;
}

.spx-left-owing-name {
  font-family: var(--spx-display);
  font-size: 14px;
  font-weight: 700;
  color: #22262e;
}

.spx-left-owing-meta {
  font-family: var(--spx-body);
  font-size: 11.5px;
  font-weight: 500;
  color: var(--spx-gray);
}

.spx-left-owing-amount {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  font-family: var(--spx-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--spx-coral);
  white-space: nowrap;
}

.spx-left-owing-classes {
  font-family: var(--spx-body);
  font-size: 11px;
  font-weight: 500;
  color: var(--spx-gray);
}

.spx-left-owing-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.spx-left-owing-ask {
  font-family: var(--spx-body);
  font-size: 12px;
  font-weight: 600;
  color: #a33417;
}

.spx-left-owing-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1.5px solid var(--spx-line);
  background: #fff;
  color: #3d4450;
  border-radius: 9px;
  padding: 7px 12px;
  font-family: var(--spx-body);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}
.spx-left-owing-btn:not(:disabled):hover {
  border-color: #c9ccd4;
  background: var(--spx-gray-bg);
}
.spx-left-owing-btn:disabled { opacity: 0.6; cursor: default; }

/* "They paid…" is the action that ends well, so it is the solid one. */
.spx-left-owing-btn--primary {
  background: var(--spx-navy);
  border-color: var(--spx-navy);
  color: #fff;
}
.spx-left-owing-btn--primary:not(:disabled):hover {
  background: #1b0f8a;
  border-color: #1b0f8a;
  color: #fff;
}

/* Confirming a write-off: coral, because it is the one button here
   that abandons money. */
.spx-left-owing-btn--danger {
  background: var(--spx-coral);
  border-color: var(--spx-coral);
  color: #fff;
}
.spx-left-owing-btn--danger:not(:disabled):hover {
  background: #c2461f;
  border-color: #c2461f;
  color: #fff;
}

/* ==================================================================
 * 4. The class list — tiles + detail, side by side
 * ================================================================== */

/* The screen's only view since 2026-10-09. It used to be reachable
   only after clicking a row in a table of teachers, which made the
   Payments screen read as a payroll screen; the teacher is now a label
   on each tile and the dropdown in `.spx-filter-tools`. */
.spx-classes-view { display: flex; flex-direction: column; gap: 16px; }

/* The tile column is 400px, not the 320px it was when these tiles held
   student names. They hold CLASS names now, and a real one is "A1
   Group A Spanish Conversation Lab" — at 320px, two to a row, that wraps
   onto three cramped lines and the tiles in a row end up different
   heights. 400px gives each tile ~190px and two lines. */
.spx-layout {
  display: grid;
  grid-template-columns: 400px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.spx-tile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  /* Tiles in the same row line up even when one class is called
     "B2" and the next "A1 Group A Spanish Conversation Lab". */
  align-items: stretch;
}

.spx-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  padding: 13px 12px 14px;
  background: #fff;
  border: 1px solid var(--spx-line);
  border-radius: 15px;
  cursor: pointer;
  text-align: left;
  font-family: var(--spx-body);
  transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}
.spx-tile:hover {
  border-color: #c9ccd4;
  box-shadow: 0 4px 12px rgba(15, 0, 105, 0.07);
}
.spx-tile.is-active {
  border-color: var(--spx-navy);
  box-shadow: 0 0 0 2px rgba(15, 0, 105, 0.12);
}

/* Small coloured dot in the corner = "this one needs your attention". */
.spx-tile-dot {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.spx-tile-dot.is-overdue  { background: var(--spx-coral); }
.spx-tile-dot.is-followup { background: #e0a92f; }

.spx-tile-flag {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--spx-gray-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  overflow: hidden;
}
.spx-tile-flag--group { background: var(--spx-yellow-bg); color: #8a6a04; }

.spx-tile-name {
  font-weight: 500;
  font-size: 13.5px;
  color: #22262e;
  line-height: 1.25;
  /* Long names must not blow the 2-column grid apart. */
  overflow-wrap: anywhere;
}

.spx-tile-type {
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 10.5px;
  font-weight: 600;
}
.spx-tile-type--individual { background: var(--spx-purple-bg); color: #5a4bb5; }
.spx-tile-type--group      { background: var(--spx-yellow-bg); color: #8a6a04; }

.spx-tile-balance {
  font-family: var(--spx-display);
  font-size: 13px;
  font-weight: 600;
  color: var(--spx-green);
}
.spx-tile-balance.is-owed { color: var(--spx-coral); }

.spx-tile--more {
  align-items: center;
  justify-content: center;
  border-style: dashed;
  color: var(--spx-navy);
  font-weight: 500;
  font-size: 13px;
  min-height: 92px;
}

/* ==================================================================
 * 6. Detail panel
 * ================================================================== */

.spx-detail,
.spx-detail-placeholder {
  background: #fff;
  border: 1px solid var(--spx-line);
  border-radius: 18px;
  padding: 20px 22px 24px;
}

.spx-detail-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 320px;
  max-width: 380px;
  margin: 0 auto;
  line-height: 1.5;
}
.spx-placeholder-icon { font-size: 34px; }

.spx-detail-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--spx-line);
}

.spx-detail-flag {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--spx-gray-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  overflow: hidden;
}
.spx-detail-flag--group { background: var(--spx-yellow-bg); color: #8a6a04; }

.spx-detail-id { flex: 1 1 auto; min-width: 0; }

.spx-detail-name {
  font-family: var(--spx-display);
  font-size: 21px;
  font-weight: 600;
  color: var(--spx-navy);
  margin: 0 0 2px;
  line-height: 1.2;
}

.spx-detail-meta {
  margin: 0;
  font-size: 12.5px;
  color: var(--spx-gray);
}

/* ---- buttons ---- */

.spx-btn {
  border: 0;
  border-radius: 999px;
  padding: 10px 20px;
  font-family: var(--spx-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: filter 120ms ease;
}
.spx-btn:hover { filter: brightness(1.1); }

.spx-btn--invoice { background: var(--spx-navy);  color: #fff; }
.spx-btn--record  { background: var(--spx-green); color: #fff; }

/* ---- balance strip ---- */

.spx-balance-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.spx-balance-strip--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.spx-balance-box {
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-start;
  padding: 13px 15px;
  border-radius: 14px;
  background: var(--spx-gray-bg);
}
/* "is-alert" = there is money outstanding / lessons unpaid. */
.spx-balance-box.is-alert { background: var(--spx-coral-bg); }

.spx-balance-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6b727c;
}

.spx-balance-value {
  font-family: var(--spx-display);
  font-size: 22px;
  font-weight: 600;
  color: #22262e;
  line-height: 1.15;
}

.spx-balance-sub { font-size: 11.5px; color: var(--spx-gray); }

/* ---- record-payment call to action ---- */

.spx-record-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 15px 17px;
  border-radius: 14px;
  background: var(--spx-green-bg);
}

.spx-record-title {
  display: block;
  font-family: var(--spx-display);
  font-size: 15px;
  font-weight: 600;
  color: var(--spx-green);
}

.spx-record-sub { margin: 2px 0 0; font-size: 12.5px; color: #4c5a55; }

/* ---- history ---- */

.spx-history { margin-top: 22px; }

/* A long-standing student can accumulate a hundred lessons. Cap the
   list and let it scroll on its own so the panel never grows into a
   3000px page where the balance strip and the "Record payment" button
   have scrolled out of reach. */
.spx-history-scroll {
  max-height: 440px;
  overflow-y: auto;
  /* Room for the scrollbar so the amounts aren't hidden under it. */
  padding-right: 8px;
}

.spx-history-label {
  font-family: var(--spx-body);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b727c;
  margin: 0 0 10px;
}

.spx-history-month {
  font-family: var(--spx-display);
  font-size: 13px;
  font-weight: 600;
  color: var(--spx-navy);
  padding: 12px 0 6px;
}

.spx-history-row {
  display: grid;
  /* Last column holds the delete control. Reserved on EVERY row (even
     payments, which have none) so the amounts stay aligned. */
  grid-template-columns: 62px minmax(0, 1fr) auto auto 26px;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--spx-line);
}
.spx-history-row:last-child { border-bottom: 0; }

/* The delete control is pushed to the right edge of its cell. When the
   teacher clicks the bin, the confirm buttons need room, so the cell is
   allowed to grow out of its 26px track. */
.spx-history-actions {
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}

/* ---- A payment row IS the button: click it to fix the amount ----
   The pencil is only the hint that says so. It used to be the button
   itself, which made a 14px icon the sole target on a line the teacher
   reads as one object. */
.spx-history-row.is-editable { cursor: pointer; }
.spx-history-row.is-editable:hover,
.spx-history-row.is-editable:focus-visible {
  background: var(--spx-line);
  border-radius: 8px;
  outline: none;
}
.spx-history-row.is-editable:focus-visible {
  box-shadow: 0 0 0 2px var(--spx-navy);
}

/* Pencil on a payment row — "this amount is wrong, fix it". Quiet grey
   until the row is hovered: a correction is rare, and the history is
   read far more often than it is edited. Always PRESENT though, never
   hover-only — an affordance that needs a mouse pointer to exist does
   not exist at all on a touch screen. Shares the 26px track with the
   lesson bin beside it so neither shifts the grid. */
.spx-history-edit {
  color: var(--spx-gray);
  opacity: 0.55;
  flex-shrink: 0;
  transition: color 120ms, opacity 120ms;
}
.spx-history-row.is-editable:hover .spx-history-edit,
.spx-history-row.is-editable:focus-visible .spx-history-edit {
  color: var(--spx-navy);
  opacity: 1;
}

.spx-history-date { font-size: 12px; color: var(--spx-gray); }
.spx-history-title { font-size: 13.5px; color: #22262e; }
.spx-history-sub { font-size: 11.5px; color: var(--spx-gray); }

.spx-history-amount {
  font-family: var(--spx-display);
  font-size: 14.5px;
  font-weight: 600;
  color: #22262e;
  white-space: nowrap;
}
/* Money IN is green; a lesson (money owed) stays neutral ink. */
.spx-history-row.is-credit .spx-history-amount { color: var(--spx-green); }

.spx-history-tag {
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 10.5px;
  font-weight: 600;
  white-space: nowrap;
}
.spx-history-tag.is-paid   { background: var(--spx-green-bg); color: var(--spx-green); }
.spx-history-tag.is-unpaid { background: var(--spx-coral-bg); color: #a33417; }

/* ---- group roster ---- */

.spx-members { display: flex; flex-direction: column; }

.spx-member-row {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 6px;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--spx-line);
  cursor: pointer;
  text-align: left;
  font-family: var(--spx-body);
  border-radius: 8px;
}
.spx-member-row:hover { background: #fafbf9; }
.spx-member-row:last-child { border-bottom: 0; }

.spx-member-flag {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--spx-gray-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  overflow: hidden;
}

.spx-member-name { font-size: 13.5px; color: #22262e; }

.spx-member-amount {
  font-family: var(--spx-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--spx-green);
}
.spx-member-amount.is-owed { color: var(--spx-coral); }

/* ==================================================================
 * 7. Send-invoice popover
 * ------------------------------------------------------------------
 * Rendered through a portal into <body>, so it lives OUTSIDE `.spx-tab`
 * and cannot inherit the custom properties declared there. Every colour
 * below is therefore written literally on purpose.
 * ================================================================== */

.spx-invoice-popover {
  z-index: 1200;
  width: 340px;
  background: #fff;
  border: 1px solid #e2e4e0;
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(15, 0, 105, 0.18);
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  overflow: hidden;
}

.spx-invoice-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 16px;
  background: #f1f2ef;
  border-bottom: 1px solid #e2e4e0;
  font-size: 13.5px;
  color: #0f0069;
}

.spx-invoice-close {
  background: none;
  border: 0;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #8b929a;
  padding: 0 2px;
}

.spx-invoice-body { padding: 14px 16px 16px; }

.spx-invoice-label {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b727c;
  margin-bottom: 5px;
}

.spx-invoice-url {
  background: #f1f2ef;
  border-radius: 9px;
  padding: 8px 10px;
  font-size: 11.5px;
  color: #3d4450;
  word-break: break-all;
  margin-bottom: 12px;
}

.spx-invoice-hint {
  margin: 0 0 12px;
  font-size: 12.5px;
  line-height: 1.45;
  color: #5b626d;
}

.spx-invoice-error {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 9px;
  background: #fbe3db;
  color: #a33417;
  font-size: 12px;
}

.spx-invoice-actions { display: flex; gap: 7px; }

.spx-invoice-btn {
  flex: 1 1 0;
  border: 0;
  border-radius: 999px;
  padding: 9px 6px;
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
}
.spx-invoice-btn:disabled { opacity: 0.6; cursor: default; }

.spx-invoice-btn--primary  { background: #0f0069; }
.spx-invoice-btn--whatsapp { background: #25d366; }
.spx-invoice-btn--telegram { background: #2aabee; }

.spx-invoice-rotate {
  margin-top: 10px;
  width: 100%;
  background: none;
  border: 1px solid #e2e4e0;
  border-radius: 999px;
  padding: 8px;
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  font-size: 12px;
  color: #6b727c;
  cursor: pointer;
}
.spx-invoice-rotate:hover { border-color: #c9ccd4; color: #3d4450; }

/* ---- What the invoice covers ------------------------------------
 * A plain list of rows: the label on the left, the money on the right,
 * the selected one filled in. No radio dots, no dropdown, no date
 * fields — the teacher reads four lines and clicks one.
 *
 * The list only renders when it offers a real choice (see
 * SendInvoicePopover), so an ordinary "just send her the bill" stays a
 * single button click exactly as before.
 * ------------------------------------------------------------------ */
.spx-invoice-periods {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 12px;
}

.spx-invoice-period {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  border: 0;
  background: none;
  border-radius: 9px;
  padding: 8px 10px;
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  font-size: 12.5px;
  color: #5b626d;
  text-align: left;
  cursor: pointer;
}
.spx-invoice-period:hover { background: #f5f6f3; }

.spx-invoice-period em {
  font-style: normal;
  font-variant-numeric: tabular-nums;
  color: #6b727c;
}

/* Selected: filled, not merely outlined — on a small white card an
 * outline reads as "disabled" rather than "chosen". */
.spx-invoice-period.is-on {
  background: #0f0069;
  color: #fff;
  font-weight: 600;
}
.spx-invoice-period.is-on:hover { background: #0f0069; }
.spx-invoice-period.is-on em { color: rgba(255, 255, 255, 0.82); }

/* ==================================================================
 * 8. Responsive
 * ================================================================== */

/* Tablet — the tile column and the detail panel stop fitting side by
   side, so the tiles become a full-width strip above the detail. */
@media (max-width: 1100px) {
  .spx-layout { grid-template-columns: 1fr; }
  .spx-tile-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }

  /* Once the panel sits BELOW the tiles instead of beside them, an
     empty one is a tall grey box between the list and the bottom of
     the page. The owner's phone pass already settled this for the
     other Payments screen — "empty detail panel hidden" — and the
     placeholder's own words ("on the left") are wrong here anyway. */
  .spx-detail-column:not(:has(.spx-detail)) { display: none; }
}

@media (max-width: 900px) {
  .spx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spx-filter-row { align-items: stretch; }
  .spx-filter-tools { width: 100%; }
  .spx-search { min-width: 0; width: 100%; flex: 1 1 160px; }
}

@media (max-width: 640px) {
  .spx-stats { grid-template-columns: 1fr; }
  .spx-stat { min-height: 88px; padding: 15px 17px 16px; }
  .spx-stat-value { font-size: 24px; }

  .spx-detail { padding: 16px 15px 20px; }
  .spx-balance-strip { grid-template-columns: 1fr; }
  .spx-record-cta { flex-direction: column; align-items: stretch; }
  .spx-btn--record { width: 100%; }

  /* Header stacks so a long name + the invoice button both fit. */
  .spx-detail-header { flex-wrap: wrap; }
  .spx-btn--invoice { width: 100%; }

  /* The date column is the first thing to go on a phone; the amount and
     the paid/unpaid tag matter far more. */
  .spx-history-row { grid-template-columns: 54px minmax(0, 1fr) auto 26px; }
  /* Tag drops to a second line; the delete control stays on the first,
     pinned to the right of the amount. */
  .spx-history-tag { grid-column: 2 / 4; justify-self: start; }

  /* Leavers' band on a phone: name + amount keep the first line (the
     two facts you scan), and the two buttons take the full width
     below, side by side. The amount un-sticks from the right edge so
     it cannot be pushed off it by a long name. */
  .spx-left-owing { padding: 14px 13px 15px; }
  .spx-left-owing-note { margin-left: 0; }
  .spx-left-owing-who { flex: 1 1 100px; }
  .spx-left-owing-actions { width: 100%; }
  .spx-left-owing-btn { flex: 1 1 0; justify-content: center; }
  /* The confirm question needs the whole line to itself, or it squeezes
     "Yes, write it off" down to two unreadable words. */
  .spx-left-owing-ask { flex: 1 0 100%; }
}
/* ==================================================================
 * DeleteLessonButton
 * ==================================================================
 * Shared by every list that bills a lesson (school payments detail
 * panel, payment drawer, student Payments tab), so the control looks
 * and behaves identically wherever the teacher spots a wrong charge.
 *
 * Visual intent: nearly invisible until wanted. The bin sits greyed
 * out at the end of the row and only turns red on hover, so a list of
 * twenty lessons does not read as twenty delete buttons.
 * ================================================================== */

/* Positioning anchor for the floating confirmation. `is-asking` lifts
   the whole control above neighbouring rows so the little card is not
   clipped by the next line. */
.dlb {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.dlb.is-asking {
  z-index: 5;
}

.dlb-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #b9bec7;
  cursor: pointer;
  transition: background 0.14s ease, color 0.14s ease;
}

.dlb-trigger:hover,
.dlb-trigger:focus-visible {
  background: rgba(220, 38, 38, 0.09);
  color: #dc2626;
}

/* ---- Confirmation state: "Delete this lesson? [Delete] [Keep]" ----
   A small card pinned to the right edge of the row. It floats over the
   row rather than inside it, so it never squashes or overlaps the
   amount and the Paid/Unpaid tag. */

.dlb-confirm {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  padding: 5px 7px;
  border: 1px solid var(--ui-border, #e3e6ec);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(16, 24, 40, 0.14);
}

.dlb-question {
  font-size: 11.5px;
  font-weight: 600;
  color: #5b6270;
  padding-right: 2px;
}

.dlb-yes,
.dlb-no {
  border-radius: 7px;
  padding: 4px 9px;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: filter 0.14s ease;
}

.dlb-yes {
  border: 1px solid #dc2626;
  background: #dc2626;
  color: #fff;
}

.dlb-no {
  border: 1px solid var(--ui-border, #e3e6ec);
  background: #fff;
  color: #5b6270;
}

.dlb-yes:hover:not(:disabled),
.dlb-no:hover:not(:disabled) {
  filter: brightness(0.95);
}

.dlb-yes:disabled,
.dlb-no:disabled {
  opacity: 0.6;
  cursor: default;
}

/* On a phone the row is too narrow for the question text — the two
   buttons alone are unambiguous once you have tapped the bin. */
@media (max-width: 700px) {
  .dlb-question { display: none; }
}

/* A failed delete must be readable, not swallowed. */
.dlb-error {
  font-size: 11px;
  color: #b91c1c;
  max-width: 180px;
  white-space: normal;
}
/*
 * money-total.css — a total that is in more than one currency.
 *
 * ASISTEACH has no exchange rates and deliberately never will, so every
 * money total the API returns is a LIST of {currency, amount} pairs.
 * `components/app/money/MoneyTotal.tsx` renders that list; these rules
 * lay it out.
 *
 * Loaded app-wide from AppLayout.astro rather than injected per screen:
 * the component is used on the dashboard KPI tiles and on the payments
 * page, and two copies of the same rules is how they drift apart.
 *
 * The single-currency case (the overwhelming majority) renders as a bare
 * <span> with none of these classes, so existing layouts sized for one
 * big number are completely untouched.
 */

.money-total--multi {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  /* Tight leading: two currencies have to read as ONE total, not as two
     unrelated facts that happen to sit near each other. */
  line-height: 1.1;
  gap: 1px;
}

/* Every line after the first is the smaller sibling of the headline
   figure. Same colour on purpose — neither is the "real" total, they are
   both real — but the biggest number still leads the eye.
   `em`, not `px`, so this works inside a 34px KPI tile and inside a 13px
   table cell without a second rule. */
.money-total--multi .money-total-line:not(:first-child) {
  font-size: 0.72em;
  opacity: 0.85;
}
/* ==================================================================
 * Drag-to-reschedule — shared across the three time-grid calendars
 * ==================================================================
 * Deliberately generic class names (`lsdrag-*`) with no dependency on
 * the `ss-` or `cal-` prefixes, so /app/calendar, /app/team and
 * /app/students all feel like the same gesture.
 * ================================================================== */

/* ---- The lesson card, at rest ----------------------------------
   A "grab" cursor is the only affordance that reliably says
   "this can be moved" without adding visual noise to a busy week. */
.lsdrag-able {
  cursor: grab;
}

.lsdrag-able:active {
  cursor: grabbing;
}

/* ---- The original card while its copy is in the air ------------
   Faded rather than hidden: keeping it visible is what lets the
   teacher compare the old slot with the proposed one. */
.lsdrag-source {
  opacity: 0.32;
  cursor: grabbing;
  /* Pointer events off so the card cannot steal the mousemove or
     re-trigger its own hover styling mid-drag. */
  pointer-events: none;
}

/* ---- The card whose move is being saved ------------------------
   A brief pulse. It is honest about the fact that the new time is not
   confirmed yet, so a server refusal never feels like the app undid
   something the teacher had already been shown as done. */
.lsdrag-saving {
  animation: lsdrag-pulse 0.9s ease-in-out infinite;
  pointer-events: none;
}

@keyframes lsdrag-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.55; }
}

/* ---- The drop ghost --------------------------------------------
   Dashed outline + translucent fill, so the grid lines and any lesson
   underneath stay readable — that underlying card is exactly what the
   teacher must see before letting go. */
.lsdrag-ghost {
  position: absolute;
  left: 3px;
  right: 3px;
  z-index: 6;
  border: 2px dashed var(--brand-600, #2563eb);
  border-radius: 9px;
  background: rgba(37, 99, 235, 0.13);
  pointer-events: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
}

/* Hovering over its own slot: nothing would change, so drop the accent
   colour and let it read as neutral. */
.lsdrag-ghost.is-unchanged {
  border-color: #9aa2b1;
  background: rgba(154, 162, 177, 0.13);
}

.lsdrag-ghost-label {
  margin-top: 2px;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--brand-600, #2563eb);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}

.lsdrag-ghost.is-unchanged .lsdrag-ghost-label {
  background: #6b7280;
}

/* ---- The phone form of the same chip -----------------------------
   Hidden on a desktop, where the full "16:30 – 17:30" fits and the day
   header sits permanently above the column.

   A phone is the opposite on both counts. Its day column is 100px, so
   the ghost inside it is 94px and "11:00 – 12:00" (104px of text at a
   legible size, measured) was being cut to "11:00 – 12:…". And the week
   there is a sideways scroller (`.cal-week` in mobile-redesign.css)
   whose header gave up being sticky, which dragging now walks along
   under the finger — so the column she is over is frequently unlabelled
   on screen. The compact chip answers both: it names the DAY and drops
   the end time, which a drag never changes anyway. */
.lsdrag-ghost-compact {
  display: none;
}

@media (max-width: 640px) {
  .lsdrag-ghost-label {
    display: none;
  }

  .lsdrag-ghost-compact {
    display: inline-block;
    max-width: 100%;
    margin-top: 2px;
    padding: 1px 5px;
    border-radius: 999px;
    background: var(--brand-600, #2563eb);
    color: #fff;
    /* 11px rather than the desktop 10.5px: she reads this at arm's
       length, in motion, with her own finger over part of the card. */
    font-size: 11px;
    font-weight: 700;
    /* Two lines, tight: "Sun 4" above "11:00". */
    line-height: 1.25;
    text-align: center;
    white-space: pre-line;
  }

  .lsdrag-ghost.is-unchanged .lsdrag-ghost-compact {
    background: #6b7280;
  }
}

/* ---- Result toast ----------------------------------------------
   Fixed to the viewport, not the grid: the grids scroll, and a
   confirmation you have to scroll to find is not a confirmation. */
.lsdrag-toast {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  z-index: 4000;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: min(92vw, 480px);
  padding: 10px 12px 10px 16px;
  border-radius: 12px;
  background: #111827;
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 12px 34px rgba(16, 24, 40, 0.3);
  animation: lsdrag-toast-in 0.18s ease-out;
}

@keyframes lsdrag-toast-in {
  from { opacity: 0; transform: translate(-50%, 10px); }
  to   { opacity: 1; transform: translate(-50%, 0); }
}

/* A refusal ("that slot is taken") is not a failure of the app, but it
   does need to stand out from a plain confirmation. */
.lsdrag-toast.is-error {
  background: #7f1d1d;
}

.lsdrag-toast-msg {
  flex: 1;
  line-height: 1.35;
}

.lsdrag-toast-undo {
  flex: none;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 8px;
  padding: 5px 12px;
  background: transparent;
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.14s ease;
}

.lsdrag-toast-undo:hover {
  background: rgba(255, 255, 255, 0.14);
}

.lsdrag-toast-close {
  flex: none;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.62);
  font-size: 18px;
  line-height: 1;
  padding: 0 2px;
  cursor: pointer;
}

.lsdrag-toast-close:hover {
  color: #fff;
}

/* ---- Touch devices ---------------------------------------------
   Dragging used to be a MOUSE-ONLY gesture: the hook listened for
   `mousedown`, which a finger never fires, so on a phone the feature
   silently did not exist. It is now driven by pointer events and works
   with a finger — hold a lesson for a moment and it lifts.

   `touch-action: none` is the load-bearing line, and it is not
   cosmetic. A browser decides whether a touch belongs to it (scrolling)
   or to the page WHEN THE FINGER LANDS, from this property alone. Left
   at the default, it claims the gesture and starts scrolling before our
   first `pointermove` arrives, and no preventDefault() can win it back
   afterwards — the lesson would simply never follow the finger.

   The trade-off is deliberate and worth naming: a swipe that STARTS on
   top of a lesson card no longer scrolls the grid. Swiping from the
   hour gutter, the day headers or any empty part of the grid still
   does, and those make up most of the surface. This is the same
   compromise Google Calendar makes.

   Only cards that can actually move carry `lsdrag-able`, so a completed
   or cancelled lesson keeps normal scrolling behaviour. */
.lsdrag-able {
  touch-action: none;
}

@media (hover: none) {
  /* No `grab` cursor on a touch screen — there is no cursor. The card
     still reacts to a hold; the affordance is the lift, not the arrow. */
  .lsdrag-able { cursor: pointer; }

  /* Stop iOS turning a long press into "copy / share this link" or a
     text selection, which would fire on top of our own long press. */
  .lsdrag-able {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
  }

  /* ---- …and the same for the GRID the card sits on --------------
     Putting it on the card alone was not enough, and the owner sent a
     photo proving it (2026-09-07): half the week painted blue, with
     iOS's two selection handles sitting in the hour gutter and between
     Tuesday and Wednesday.

     A selection does not have to START where the finger landed. Our
     card refuses to be selected, so iOS anchors its long press on the
     nearest thing that will be — an hour label, a day header, another
     lesson's title — and then drags that selection across everything
     the finger passes over. Refusing on the card only moved the
     anchor; it never removed it.

     So the whole time grid opts out. Nothing in it is prose: hour
     labels and lesson names, and on a phone the only thing selecting
     them ever achieves is this. Both grid families are listed because
     they share no common class. */
  .cal-week-body,
  .ss-hour-rail,
  .ss-day-col {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
  }
}

/* ---- While a lesson is actually in the air ----------------------
   Belt and braces over the rule above, and deliberately NOT limited to
   touch. `useLessonDrag` puts this class on <html> the moment a drag
   arms and takes it off when it ends, which covers the two holes CSS
   alone leaves: a selection that had already begun BEFORE the drag
   started, and anything the finger travels over that lives outside the
   grid (the day list above it, the page behind it).

   `*` with `!important` is safe here precisely because it lasts only
   while a lesson is being dragged — a state with no text entry in it. */
html.lsdrag-dragging,
html.lsdrag-dragging * {
  -webkit-touch-callout: none !important;
  -webkit-user-select: none !important;
  user-select: none !important;
}

/* ---- The lift, on touch ----------------------------------------
   On a mouse the pointer itself shows something is happening. A finger
   covers the card, so the feedback has to be bigger than a cursor
   change: the source card scales up slightly and casts a shadow, which
   reads as "picked up" even with a thumb on top of it. */
@media (hover: none) {
  .lsdrag-source {
    /* Less transparent than on desktop — under a thumb, 0.32 opacity
       plus a finger shadow is effectively invisible. */
    opacity: 0.5;
    transform: scale(1.04);
    box-shadow: 0 8px 22px rgba(16, 24, 40, 0.35);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
  }
}
/**
 * time-off.css — teacher absences (sick leave, holidays, part-days).
 *
 * Two screens share this file because they share a vocabulary:
 *   - Calendar → Time off        (the teacher's own list)
 *   - Teachers → Time off        (the owner's queue + month strip)
 *
 * Colour is used as MEANING here, not decoration: each reason has one
 * hue, used identically on the pills, the cells and the legend. A
 * striped cell always means "only part of the day", everywhere.
 */

/* One hue per reason, defined once. */
:root {
  --off-sick: #ef4444;
  --off-sick-soft: #fee2e2;
  --off-holiday: #0ea5e9;
  --off-holiday-soft: #e0f2fe;
  --off-public: #a855f7;
  --off-public-soft: #f3e8ff;
  --off-personal: #f59e0b;
  --off-personal-soft: #fef3c7;
}

/* ---------------- Shared header ---------------- */

.timeoff-head {
  margin-bottom: 16px;
  gap: 12px 24px;
  flex-wrap: wrap;
  /* Top-aligned: the subtitle wraps to two lines and the button should
     stay level with the heading rather than float to the middle of it. */
  align-items: flex-start;
}

.timeoff-sub {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--text-secondary, #64748b);
  max-width: 60ch;
}

/* ---------------- The list of absences ---------------- */

.timeoff-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.timeoff-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: 12px;
  background: #fff;
}

/* Past absences stay readable but stop competing for attention. */
.timeoff-row.is-past {
  opacity: 0.55;
}

/* The reason emoji, in the white circle used across the product. */
.timeoff-row-icon {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--border-color, #e2e8f0);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  line-height: 1;
}

.timeoff-row-main {
  flex: 1 1 auto;
  min-width: 0;
}

.timeoff-row-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  font-size: 14px;
}

.timeoff-row-dates {
  color: var(--text-secondary, #64748b);
}

/* "3 days" — quieter than the dates, but still findable. */
.timeoff-row-length {
  font-size: 12px;
  color: var(--text-tertiary, #94a3b8);
}

.timeoff-row-note {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--text-secondary, #64748b);
}

/* A refusal without its reason is the thing teachers complain about,
   so the reason is given the same weight as the refusal itself. */
.timeoff-row-decision {
  margin: 6px 0 0;
  font-size: 13px;
  color: #b91c1c;
  background: var(--off-sick-soft);
  border-radius: 8px;
  padding: 6px 10px;
}

.timeoff-confirm,
.timeoff-decide,
.timeoff-refuse {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.timeoff-decide,
.timeoff-refuse {
  margin-top: 8px;
}

.timeoff-refuse .ui-input {
  flex: 1 1 220px;
  min-width: 180px;
}

.timeoff-toggle-past {
  margin-top: 12px;
  background: none;
  border: none;
  padding: 0;
  font-size: 13px;
  color: var(--brand-primary, #2563eb);
  cursor: pointer;
  text-decoration: underline;
}

/* ---------------- Empty state ---------------- */

.timeoff-empty-icon {
  font-size: 34px;
  margin-bottom: 6px;
}

.timeoff-empty-hint {
  font-size: 13px;
  color: var(--text-secondary, #64748b);
  max-width: 46ch;
  margin: 6px auto 0;
}

/* ---------------- The booking form ---------------- */

.timeoff-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.timeoff-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Four big targets rather than a dropdown: choosing the reason is the
   one decision in this form, so it should not be hidden behind a click. */
.timeoff-kinds {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.timeoff-kind {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 6px;
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  font-size: 12px;
  text-align: center;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.timeoff-kind:hover {
  border-color: var(--brand-primary, #2563eb);
}

.timeoff-kind.is-active {
  border-color: var(--brand-primary, #2563eb);
  background: var(--brand-soft, #eff6ff);
  box-shadow: 0 0 0 1px var(--brand-primary, #2563eb) inset;
}

.timeoff-kind-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--border-color, #e2e8f0);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}

.timeoff-kind-label {
  line-height: 1.2;
}

.timeoff-hint {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--text-secondary, #64748b);
}

.timeoff-optional {
  font-weight: 400;
  color: var(--text-tertiary, #94a3b8);
}

.timeoff-partday {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-secondary, #64748b);
  cursor: pointer;
}

/* ---------------- The "saved" panel ---------------- */

.timeoff-done {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.timeoff-done-line {
  margin: 0;
  font-size: 14px;
}

.timeoff-done-clear {
  margin: 0;
  font-size: 14px;
  color: #15803d;
}

.timeoff-clash {
  border: 1px solid var(--off-personal);
  background: var(--off-personal-soft);
  border-radius: 12px;
  padding: 12px 14px;
}

.timeoff-clash-title {
  margin: 0;
  font-size: 14px;
}

.timeoff-clash-hint {
  margin: 4px 0 8px;
  font-size: 13px;
  color: #92400e;
}

.timeoff-clash-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 180px;
  overflow-y: auto;
}

.timeoff-clash-item {
  display: flex;
  gap: 10px;
  font-size: 13px;
}

.timeoff-clash-when {
  font-variant-numeric: tabular-nums;
  color: #92400e;
  white-space: nowrap;
}

/* ---------------- Owner: the month strip ---------------- */

.timeoff-team {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.timeoff-month-nav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.timeoff-month-label {
  font-size: 15px;
  font-weight: 600;
  min-width: 150px;
  text-align: center;
}

.timeoff-pending {
  border-left: 3px solid var(--off-personal);
}

/* A request for next month is invisible on this month's strip, so it
   gets said in words rather than left to be discovered. */
.timeoff-elsewhere {
  font-size: 13px;
  color: var(--text-secondary, #64748b);
  padding: 8px 12px;
  background: var(--off-personal-soft);
  border-radius: 8px;
}

/* The strip scrolls sideways on a narrow screen rather than squeezing
   31 columns into 320px and becoming unreadable. */
.timeoff-strip-wrap {
  overflow-x: auto;
  margin-top: 12px;
}

.timeoff-strip {
  border-collapse: separate;
  border-spacing: 2px;
  font-size: 11px;
}

/* The name column stays put while the days scroll under it. */
.timeoff-strip-name {
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
  text-align: left;
  font-weight: 600;
  font-size: 13px;
  padding-right: 12px;
  white-space: nowrap;
  min-width: 120px;
}

.timeoff-strip-day {
  width: 22px;
  font-weight: 500;
  color: var(--text-tertiary, #94a3b8);
  line-height: 1.1;
}

.timeoff-strip-dow,
.timeoff-strip-num {
  display: block;
}

.timeoff-strip-num {
  font-variant-numeric: tabular-nums;
  color: var(--text-secondary, #64748b);
}

.timeoff-strip-day.is-weekend {
  color: #cbd5e1;
}

.timeoff-strip-total {
  padding-left: 10px;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  color: var(--text-secondary, #64748b);
  text-align: center;
}

.timeoff-cell {
  width: 22px;
  height: 26px;
  border-radius: 5px;
  background: #f1f5f9;
  text-align: center;
  vertical-align: middle;
}

.timeoff-cell.is-weekend {
  background: #f8fafc;
}

.timeoff-cell-mark {
  font-size: 11px;
  line-height: 1;
}

/* One hue per reason, matching the legend exactly. */
.timeoff-cell.kind-sick           { background: var(--off-sick-soft);     box-shadow: inset 0 0 0 1px var(--off-sick); }
.timeoff-cell.kind-holiday        { background: var(--off-holiday-soft);  box-shadow: inset 0 0 0 1px var(--off-holiday); }
.timeoff-cell.kind-public_holiday { background: var(--off-public-soft);   box-shadow: inset 0 0 0 1px var(--off-public); }
.timeoff-cell.kind-personal       { background: var(--off-personal-soft); box-shadow: inset 0 0 0 1px var(--off-personal); }

/* Waiting for an answer: dashed, so "asked for" never looks like
   "granted" at a glance. */
.timeoff-cell.status-pending {
  outline: 1px dashed var(--text-tertiary, #94a3b8);
  outline-offset: -2px;
}

/* Part of a day only — striped, because the teacher IS working that day. */
.timeoff-cell.is-partial {
  background-image: repeating-linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.85) 0 3px,
    transparent 3px 6px
  );
}

.timeoff-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 14px;
  font-size: 12px;
  color: var(--text-secondary, #64748b);
}

.timeoff-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.timeoff-legend-swatch {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background: #f1f5f9;
  display: inline-block;
}

.timeoff-legend-swatch.kind-sick           { background: var(--off-sick-soft);     box-shadow: inset 0 0 0 1px var(--off-sick); }
.timeoff-legend-swatch.kind-holiday        { background: var(--off-holiday-soft);  box-shadow: inset 0 0 0 1px var(--off-holiday); }
.timeoff-legend-swatch.kind-public_holiday { background: var(--off-public-soft);   box-shadow: inset 0 0 0 1px var(--off-public); }
.timeoff-legend-swatch.kind-personal       { background: var(--off-personal-soft); box-shadow: inset 0 0 0 1px var(--off-personal); }

.timeoff-legend-swatch.is-partial-demo {
  background: #e2e8f0;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.9) 0 3px,
    transparent 3px 6px
  );
}

/* ---------------- Narrow screens ---------------- */

@media (max-width: 640px) {
  .timeoff-kinds {
    grid-template-columns: repeat(2, 1fr);
  }

  .timeoff-row {
    flex-wrap: wrap;
  }

  .timeoff-month-label {
    min-width: 0;
  }
}
/* ============================================================
   schedule-guide.css — the "Explore this page" guide on
   /app/calendar: the avatar doorway at the top of the left rail,
   and the panel it opens.

   Prefix: `sg-`.

   Design notes
   ------------
   - It borrows the Schedule rail's own vocabulary (14px radii, the
     #eef2ff indigo wash, 1px #e5e7eb borders) so the panel reads as
     part of the page rather than a bolted-on tour.
   - Phone typography rule (specs/design/specs.md): body copy never
     below 15px and never weight 400 under 640px. The @media block at
     the bottom enforces both — do not "tidy" it away.
   ============================================================ */

/* ------------------------------------------------------------
   1. THE DOORWAY — Asia's portrait + two lines, sitting at the top
   of the left rail between the greeting and the yellow CTA.

   The balance to hold here is delicate: it has to be inviting
   enough that a teacher notices a person is offering to help, and
   quiet enough that it never out-shouts "＋ Schedule lesson"
   directly below it. So it gets the soft indigo wash (visible) but
   no fill-colour button and no shadow (not a primary action).
   ------------------------------------------------------------ */
/* The geometry is tight on purpose: the desktop rail is a fixed 240px
   column, which leaves the text about 125px once the portrait, the gaps
   and the chevron are paid for. That is just enough for the longest
   label we ship ("Explorer cette page"). Widen the padding or the
   avatar and the French and Spanish labels start wrapping. */
.sg-open {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 9px 8px 8px;
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  background: linear-gradient(180deg, #f7f8ff 0%, #eef2ff 100%);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}
.sg-open:hover {
  border-color: #a5b4fc;
  background: linear-gradient(180deg, #eef2ff 0%, #e4e9ff 100%);
}

/* The portrait. `object-fit: cover` matters: the source asset is not
   square, and letterboxing a face reads as a broken image. */
.sg-open-avatar {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  object-fit: cover;
  background: #ffffff;
  border: 1.5px solid #ffffff;
  box-shadow: 0 1px 3px rgba(67, 56, 202, 0.18);
}

.sg-open-text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.sg-open-label {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-text, #111827);
}
.sg-open-sub {
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-primary-700, #4338ca);
}

/* Hover cue. With no chevron to slide, the portrait itself leans in
   very slightly — enough to say "this is a control", not enough to
   jump. */
.sg-open:hover .sg-open-avatar { transform: scale(1.04); }
.sg-open-avatar { transition: transform 120ms ease; }

/* ------------------------------------------------------------
   3. THE PANEL — rendered inside the shared <Modal size="lg">, so
   the scroll container and padding already exist; everything here
   is content layout only.
   ------------------------------------------------------------ */
.sg-body {
  display: flex;
  flex-direction: column;
  gap: 26px;
  /* Stop a wheel that bottoms out inside the panel from scrolling the
     calendar behind it (see the scroll-lock notes in Modal.tsx). */
  overscroll-behavior: contain;
}

/* ---- The short version ---- */
.sg-summary {
  padding: 16px 18px;
  border: 1px solid #c7d2fe;
  border-radius: 14px;
  background: #f5f7ff;
}
.sg-summary-title {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text, #111827);
}
.sg-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* Counter-reset is unnecessary: the numbers are real spans, because
     a CSS counter would be invisible to a screen reader here. */
}
.sg-summary-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.sg-summary-num {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--color-primary-700, #4338ca);
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
.sg-summary-text {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text, #111827);
}
.sg-summary-text strong { font-weight: 700; }

.sg-summary-escape {
  margin: 12px 0 0;
  padding-top: 11px;
  border-top: 1px solid #dbe1fb;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text-muted, #6b7280);
}

/* ---- A reference section ---- */
.sg-section { display: block; }

.sg-eyebrow {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary-700, #4338ca);
}
.sg-section-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text, #111827);
}
.sg-section-intro {
  margin: 6px 0 0;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text-muted, #6b7280);
}

/* ---- The cards inside a section ---- */
.sg-cards {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sg-card {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 14px 15px;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 12px;
  background: #ffffff;
}
.sg-card-icon {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #eef2ff;
  font-size: 18px;
  line-height: 1;
}
.sg-card-body {
  min-width: 0;
  flex: 1 1 auto;
}
.sg-card-title {
  margin: 0 0 5px;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text, #111827);
}
.sg-card-what {
  margin: 0;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text, #111827);
}
/* The "when you'd use it" line is supporting detail — one step down in
   colour, never in weight (see the phone typography rule). */
.sg-card-when {
  margin: 5px 0 0;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text-muted, #6b7280);
}
.sg-card-action {
  margin-top: 10px;
  padding: 7px 12px;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  background: #ffffff;
  color: var(--color-primary-700, #4338ca);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background 120ms ease;
}
.sg-card-action:hover { background: #eef2ff; }

/* The closing "Got it" button. It reuses .sg-card-action's box and
   only repaints it as a filled primary — deliberately NOT the global
   `.btn btn-primary`, because buttons.css is not loaded inside
   /app/*, so those classes render as an unstyled button here. */
.sg-done {
  margin-top: 0;
  padding: 9px 18px;
  border-color: var(--color-primary-700, #4338ca);
  background: var(--color-primary-700, #4338ca);
  color: #ffffff;
}
.sg-done:hover { background: var(--color-primary-800, #3730a3); }

/* ---- Footer ---- */
.sg-footnote {
  margin: 0;
  padding-top: 16px;
  border-top: 1px solid var(--color-border, #e5e7eb);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--color-text-muted, #6b7280);
}
.sg-footer {
  display: flex;
  justify-content: flex-end;
}

/* ------------------------------------------------------------
   4. PHONE — body copy floors at 15px / weight 500.
   ------------------------------------------------------------ */
@media (max-width: 640px) {
  /* The doorway keeps its two lines but both clear the 15px floor;
     the portrait shrinks a little to buy that width back. */
  .sg-open { padding: 10px; gap: 10px; }
  .sg-open-avatar { width: 36px; height: 36px; }
  .sg-open-label { font-size: 15px; }
  .sg-open-sub { font-size: 13px; }

  .sg-summary-text,
  .sg-summary-escape,
  .sg-section-intro,
  .sg-card-what,
  .sg-card-when,
  .sg-card-action,
  .sg-footnote {
    font-size: 15px;
  }
  .sg-card-title { font-size: 15.5px; }
  .sg-section-title { font-size: 18px; }

  /* The icon tile eats width a phone does not have to spare. */
  .sg-card { gap: 11px; padding: 13px; }
  .sg-card-icon { width: 32px; height: 32px; font-size: 16px; }
}
/**
 * Notes — the school's shared notebook.
 *
 * Two columns: a rail of notebooks that never moves, and a grid of
 * cards that does. The rail is the "organised way" the whole feature
 * was asked for, so it keeps a fixed width and stays legible even when
 * a school ends up with fifteen folders.
 *
 * Colours are per-notebook and drawn as a left spine on the rail item,
 * exactly one hue per notebook so the eye can learn them.
 */

.notes-view {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

/* ------------------------------------------------ the notebook rail */

.notes-rail {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 14px;
  position: sticky;
  top: 12px;
}

.notes-rail-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-left: 3px solid transparent;
  border-radius: 8px;
  background: transparent;
  font: inherit;
  font-size: 0.875rem;
  color: var(--color-text, #1b1b2f);
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease;
}

.notes-rail-item:hover { background: #f5f5fb; }

.notes-rail-item.is-active {
  background: #eeeefb;
  font-weight: 600;
}

/* One hue per notebook, shown as a spine so the name stays black and
   readable — a coloured label at 14px is not. */
.notes-rail-item--indigo.is-active { border-left-color: #4f46e5; }
.notes-rail-item--green.is-active  { border-left-color: #16a34a; }
.notes-rail-item--amber.is-active  { border-left-color: #d97706; }
.notes-rail-item--rose.is-active   { border-left-color: #e11d48; }
.notes-rail-item--sky.is-active    { border-left-color: #0284c7; }
.notes-rail-item--slate.is-active  { border-left-color: #64748b; }

.notes-rail-emoji { font-size: 1rem; line-height: 1; }

.notes-rail-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notes-rail-shared { font-size: 0.7rem; opacity: 0.7; }

.notes-rail-count {
  font-size: 0.75rem;
  color: var(--color-text-muted, #6b6b7f);
  font-variant-numeric: tabular-nums;
}

.notes-rail-divider {
  height: 1px;
  margin: 8px 4px;
  background: var(--color-border, #e3e3ee);
}

.notes-rail-add {
  margin-top: 6px;
  padding: 8px 10px;
  border: 1px dashed var(--color-border, #d8d8e6);
  border-radius: 8px;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b6b7f);
  cursor: pointer;
}

.notes-rail-add:hover {
  border-color: #4f46e5;
  color: #4f46e5;
}

/* --------------------------------------------------- the notes area */

.notes-main {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.notes-toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.notes-search {
  flex: 1;
  min-width: 200px;
  padding: 9px 14px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 10px;
  font: inherit;
  font-size: 0.875rem;
  background: #fff;
}

.notes-search:focus {
  outline: none;
  border-color: #4f46e5;
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12);
}

.notes-toolbar-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.notes-danger { color: #dc2626; }

/* -------------------------------- the school owner's box, always first
 *
 * A teacher's screen holds two different kinds of writing: their own,
 * and instructions from the person running the school. This box is the
 * second kind, and it is styled as a distinct panel — tinted background,
 * indigo edge, its own heading — so it reads as "from someone else" at a
 * glance rather than blending into the teacher's own cards.
 */

.notes-owner-box {
  border: 1px solid #c7d2fe;
  border-left: 4px solid #4f46e5;
  border-radius: 14px;
  background: linear-gradient(180deg, #f4f4ff 0%, #fbfbff 100%);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.notes-owner-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.notes-owner-crest {
  font-size: 1.375rem;
  line-height: 1.2;
}

.notes-owner-heading { flex: 1; min-width: 0; }

.notes-owner-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: #312e81;
}

.notes-owner-sub {
  margin: 3px 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #4b5563;
}

.notes-owner-count {
  flex: 0 0 auto;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #4f46e5;
  background: #e0e7ff;
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}

.notes-owner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

/* Read-only cards: no buttons, so the whole card is the click target. */
.notes-card--owner {
  min-height: 0;
  cursor: pointer;
  border-color: #dcdcfa;
  transition: box-shadow 0.12s ease, transform 0.12s ease;
}

.notes-card--owner:hover {
  box-shadow: 0 4px 14px rgba(79, 70, 229, 0.14);
  transform: translateY(-1px);
}

.notes-card--owner:focus-visible {
  outline: 2px solid #4f46e5;
  outline-offset: 2px;
}

/* Sits before .notes-card-when, which keeps its margin-left:auto and so
   stays pinned to the right edge of the footer. */
.notes-owner-lock {
  font-weight: 600;
  color: #4f46e5;
  white-space: nowrap;
}

/* Heading over the reader's own cards, shown only when the owner box is
   above them and the two piles need telling apart. */
.notes-section-title {
  margin: 4px 0 -4px;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted, #6b6b7f);
}

/* Banner at the top of the note modal when you are only a reader. */
.notes-readonly-banner {
  margin: 0;
  padding: 9px 12px;
  border-radius: 10px;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #312e81;
}

/* ------------------------------------------------------- note cards */

.notes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.notes-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 14px;
  min-height: 160px;
}

/* A pinned note earns a warm left edge — visible without shouting. */
.notes-card.is-pinned {
  border-left: 3px solid #f59e0b;
  background: #fffdf7;
}

.notes-card-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.notes-card-title {
  flex: 1;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-text, #1b1b2f);
  word-break: break-word;
}

.notes-pin {
  border: none;
  background: transparent;
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.3;
  padding: 2px;
}

.notes-pin:hover { opacity: 0.7; }
.notes-pin.is-on { opacity: 1; }

.notes-card-body {
  flex: 1;
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-text-muted, #56566b);
  word-break: break-word;
}

.notes-card-blank { opacity: 0.5; }

.notes-card-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-size: 0.6875rem;
  color: var(--color-text-muted, #6b6b7f);
}

.notes-vis {
  padding: 2px 7px;
  border-radius: 999px;
  font-weight: 600;
  white-space: nowrap;
}

.notes-vis--private { background: #f1f1f6; color: #56566b; }
.notes-vis--school  { background: #e0f2fe; color: #0369a1; }

.notes-card-book,
.notes-card-author {
  white-space: nowrap;
}

.notes-card-when { margin-left: auto; white-space: nowrap; }

.notes-card-actions {
  display: flex;
  gap: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--color-border, #f0f0f5);
}

.notes-readonly {
  font-size: 0.75rem;
  color: var(--color-text-muted, #8b8b9f);
  font-style: italic;
}

/* ------------------------------------------------------- the forms */

.notes-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.notes-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 0;
}

.notes-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* The title reads like a title, not like a form field — this is a
   writing surface, and it should feel like one. */
.notes-title-input {
  border: none;
  border-bottom: 1px solid var(--color-border, #e3e3ee);
  padding: 4px 0 8px;
  font: inherit;
  font-size: 1.125rem;
  font-weight: 600;
  background: transparent;
}

.notes-title-input:focus {
  outline: none;
  border-bottom-color: #4f46e5;
}

.notes-body-input {
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 10px;
  padding: 12px;
  font: inherit;
  font-size: 0.875rem;
  line-height: 1.6;
  resize: vertical;
  background: #fff;
}

.notes-body-input:focus {
  outline: none;
  border-color: #4f46e5;
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12);
}

.notes-pin-toggle {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8125rem;
  color: var(--color-text-muted, #56566b);
  cursor: pointer;
}

.notes-hint-inline { font-style: italic; opacity: 0.8; }

.notes-emoji-row,
.notes-color-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.notes-emoji {
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 9px;
  background: #fff;
  font-size: 1rem;
  cursor: pointer;
}

.notes-emoji.is-active {
  border-color: #4f46e5;
  box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.18);
}

.notes-color {
  width: 28px;
  height: 28px;
  border: 2px solid transparent;
  border-radius: 50%;
  cursor: pointer;
}

.notes-color.is-active {
  border-color: #1b1b2f;
  transform: scale(1.08);
}

.notes-color--indigo { background: #4f46e5; }
.notes-color--green  { background: #16a34a; }
.notes-color--amber  { background: #d97706; }
.notes-color--rose   { background: #e11d48; }
.notes-color--sky    { background: #0284c7; }
.notes-color--slate  { background: #64748b; }

/* ----------------------------------------------------------- mobile */

@media (max-width: 860px) {
  .notes-view { grid-template-columns: 1fr; }

  /* On a phone the rail becomes a horizontal strip of chips — still
     every notebook, just scrolled sideways instead of down. */
  .notes-rail {
    position: static;
    flex-direction: row;
    overflow-x: auto;
    gap: 6px;
  }

  .notes-rail-item {
    width: auto;
    flex: 0 0 auto;
    border-left: none;
    border-bottom: 3px solid transparent;
  }

  .notes-rail-item--indigo.is-active { border-bottom-color: #4f46e5; }
  .notes-rail-item--green.is-active  { border-bottom-color: #16a34a; }
  .notes-rail-item--amber.is-active  { border-bottom-color: #d97706; }
  .notes-rail-item--rose.is-active   { border-bottom-color: #e11d48; }
  .notes-rail-item--sky.is-active    { border-bottom-color: #0284c7; }
  .notes-rail-item--slate.is-active  { border-bottom-color: #64748b; }

  .notes-rail-divider { display: none; }
  .notes-rail-add { margin-top: 0; flex: 0 0 auto; white-space: nowrap; }
  .notes-form-row { grid-template-columns: 1fr; }

  /* One column on a phone, and the count chip drops below the title
     rather than squeezing it to two words per line. */
  .notes-owner-box { padding: 14px; }
  .notes-owner-grid { grid-template-columns: 1fr; }
  .notes-owner-head { flex-wrap: wrap; }
  .notes-owner-count { order: 3; margin-left: 34px; }
}
/**
 * Resources — the school's shelf of teaching material.
 *
 * Everything is namespaced under `.res-*`, so this file is safe to load
 * globally from AppLayout.astro.
 *
 * Layout intent: a search bar you cannot miss, a thin row of filters, a
 * storage bar that is always visible, then a responsive grid of cards.
 * Nothing is hidden behind a tab — the whole point of the screen is
 * that a teacher can see what the school owns in one glance.
 */

.res-page {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ------------------------------------------------------- the toolbar */

.res-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.res-search {
  flex: 1 1 260px;
  min-width: 0;
  padding: 10px 14px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-size: 0.9375rem;
  color: var(--color-text, #1b1b2f);
}

.res-search:focus {
  outline: none;
  border-color: #4f46e5;
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12);
}

.res-toolbar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* ------------------------------------------------------- the filters */

.res-filters {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.res-chips,
.res-selects {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.res-chip {
  padding: 6px 12px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 999px;
  background: #fff;
  font: inherit;
  /* 13px floor: anything smaller is unreadable on a phone and iOS zooms
     the whole page when a control below 16px takes focus. */
  font-size: 0.8125rem;
  color: var(--color-text, #1b1b2f);
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}

.res-chip:hover { background: #f5f5fb; }

.res-chip.is-on {
  background: #eeeefb;
  border-color: #4f46e5;
  font-weight: 600;
}

.res-select {
  padding: 6px 10px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 0.8125rem;
  color: var(--color-text, #1b1b2f);
  cursor: pointer;
}

/* --------------------------------------------------- the storage bar */

.res-storage {
  padding: 12px 14px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 12px;
  background: #fbfbff;
}

.res-storage-track {
  height: 6px;
  border-radius: 999px;
  background: #e8e8f4;
  overflow: hidden;
}

.res-storage-fill {
  height: 100%;
  border-radius: 999px;
  background: #4f46e5;
  transition: width 0.3s ease;
}

/* Amber, not red: nearly full is a nudge to tidy up, not a failure. */
.res-storage-fill.is-full { background: #d97706; }

.res-storage-text {
  margin: 8px 0 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted, #5b5b76);
}

.res-storage-tip { color: #7a7a94; }

/* ---------------------------------------------------------- the grid */

.res-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  align-items: start;
}

.res-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 14px;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.res-card:hover {
  border-color: #cfcfe8;
  box-shadow: 0 6px 18px rgba(27, 27, 47, 0.06);
}

.res-card-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.res-card-icon { font-size: 1.125rem; line-height: 1.3; }

.res-card-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-text, #1b1b2f);
  /* Two lines then ellipsis: a long title must not push the Open button
     off the bottom of a card sitting next to short ones. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.res-card-source {
  margin: 0;
  font-size: 0.75rem;
  color: #7a7a94;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.res-card-note {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--color-text-muted, #5b5b76);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.res-card-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.res-tag {
  padding: 2px 8px;
  border-radius: 999px;
  background: #f1f1fa;
  font-size: 0.75rem;
  color: #4b4b66;
}

.res-card-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 0.75rem;
  color: #7a7a94;
}

.res-vis { font-weight: 600; }
.res-vis--private { color: #5b5b76; }
.res-vis--school { color: #0f766e; }

.res-card-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.res-danger { color: #b91c1c; }

.res-empty { line-height: 1.6; }

/* --------------------------------------------------------- the form */

.res-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.res-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  flex: 1;
}

.res-field-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.res-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #1b1b2f);
}

.res-input {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 9px;
  background: #fff;
  font: inherit;
  /* 16px on the text inputs: below that, iOS Safari zooms the page in
     when the field takes focus and the modal jumps. */
  font-size: 1rem;
  color: var(--color-text, #1b1b2f);
}

.res-input:focus {
  outline: none;
  border-color: #4f46e5;
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12);
}

.res-textarea { resize: vertical; min-height: 58px; }

.res-file { font-size: 0.875rem; }

.res-picked {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f766e;
}

.res-hint {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #7a7a94;
}

.res-editing-what {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f5f5fb;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-text-muted, #5b5b76);
}

.res-visibility {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: none;
}

.res-radio {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px 11px;
  border: 1px solid var(--color-border, #e3e3ee);
  border-radius: 10px;
  cursor: pointer;
}

.res-radio.is-disabled { opacity: 0.55; cursor: not-allowed; }

.res-radio span { display: flex; flex-direction: column; gap: 1px; }
.res-radio strong { font-size: 0.875rem; font-weight: 600; }
.res-radio em {
  font-style: normal;
  font-size: 0.8125rem;
  color: #7a7a94;
}

.res-error {
  padding: 10px 12px;
  border-radius: 10px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #991b1b;
}

.res-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

/* -------------------------------------------------------- narrow screens */

@media (max-width: 640px) {
  .res-toolbar-actions { width: 100%; }
  .res-toolbar-actions .ui-btn { flex: 1; }
  .res-selects { width: 100%; }
  .res-select { flex: 1 1 45%; }
  .res-grid { grid-template-columns: 1fr; }
}
/* ==========================================================================
   GlobalBackButton — always-visible "back one step" soft square
   ==========================================================================

   Placement
   ---------
   Rendered as the FIRST flex child of `.app-topbar` (see AppLayout.astro),
   immediately to the LEFT of the sidebar hamburger. It inherits the
   topbar's vertical centring and the 16 px `gap`, so no fixed positioning.

   Visual style
   ------------
   Matches `#sidebar-toggle-btn` (see app.css): a 36×36 rounded outlined
   square with a 1.5 px border. Border and icon both use `currentColor`
   so they inherit the topbar's per-section text colour set by the
   `body.app-section-*` rules in ui-system.css. That way the button stays
   legible on the dark-indigo Teachers topbar, the yellow Students topbar,
   the white Statistics topbar, etc., without any per-section overrides.

   Hover
   -----
   Uses a CSS custom property `--gb-hover-bg` so the same `:hover` rule
   is declared only once. The fallback is a low-opacity white overlay;
   in browsers that support `color-mix` we override the property to a
   tint of `currentColor`, which reads well on any background because
   it stays in the button's own hue.
   ========================================================================== */

.global-back-btn {
  --gb-hover-bg: rgba(255, 255, 255, 0.12);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  /* Same size as the sidebar hamburger for perfect visual pairing. */
  width: 36px;
  height: 36px;
  padding: 0;

  background: transparent;
  border: 1.5px solid currentColor;
  border-radius: 8px;
  cursor: pointer;

  /* Default colour matches the hamburger's default (brand green). On
     sectioned pages, `body[class*="app-section-"] .app-topbar :is(...)`
     in ui-system.css overrides this with `color: inherit !important` so
     the button picks up whatever text colour the section defines. */
  color: #0e503f;

  /* Never let the button shrink when the topbar is tight. */
  flex-shrink: 0;

  /* Transition specific properties, not the `background` shorthand,
     so the browser doesn't have to interpolate 8 sub-properties. */
  transition:
    color 0.15s ease,
    background-color 0.15s ease,
    border-color 0.15s ease,
    transform 0.05s ease;
}

/* In browsers that support `color-mix`, blend currentColor with
   transparent so the hover overlay always harmonises with the icon
   colour (dark on light topbars, light on dark topbars). */
@supports (background: color-mix(in srgb, currentColor 10%, transparent)) {
  .global-back-btn {
    --gb-hover-bg: color-mix(in srgb, currentColor 10%, transparent);
  }
}

.global-back-btn:hover {
  background-color: var(--gb-hover-bg);
}

.global-back-btn:active {
  transform: translateY(1px);
}

.global-back-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.global-back-btn svg {
  width: 20px;
  height: 20px;
}
/**
 * Requests inbox — the "N requests need a time confirmed" list.
 *
 * Built from the owner's mockup: one dense row per request, closed by
 * default, showing WHO / the best time / Confirm. The coloured left bar
 * is the traffic light (green = everyone who answered can make it,
 * amber = only some, grey = that time is gone).
 *
 * All class names are prefixed `req-` so nothing here can leak into the
 * calendar next door.
 */

.req-inbox {
  max-width: 900px;
}

/* ---------- page head ---------- */

.req-head {
  margin-bottom: 20px;
}

.req-title {
  margin: 0 0 4px;
  font-family: var(--font-primary);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-text, #1a1a2e);
}

.req-sub {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-muted, #787887);
}

.req-error {
  padding: 10px 14px;
  margin-bottom: 12px;
  border-radius: 8px;
  background: var(--color-error-50, #fef2f2);
  border: 1px solid var(--color-error-200, #fecaca);
  color: var(--color-error-700, #b91c1c);
  font-size: 13px;
}

/* ---------- section labels (Individual / Groups) ---------- */

.req-section {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 22px 0 10px;
  font-family: var(--font-primary);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted, #787887);
}

.req-section:first-of-type {
  margin-top: 0;
}

.req-section-count {
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--color-border, #e7e5df);
  color: var(--color-text, #1a1a2e);
  font-size: 10.5px;
  letter-spacing: 0;
}

/* ---------- the rows ---------- */

.req-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.req-row {
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e7e5df);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 0, 105, 0.04);
}

.req-main {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 14px 4px 0;
  border-left: 5px solid var(--color-border, #e7e5df);
}

/* The traffic light. */
.req-row--full .req-main { border-left-color: #0e503f; }
.req-row--partial .req-main { border-left-color: #d69a2d; }
.req-row--gone .req-main { border-left-color: #b6b3ad; }

/* The whole left part is one big button that folds the row open. */
.req-expand {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: 0;
  padding: 13px 8px 13px 16px;
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.req-expand:hover { background: var(--color-surface-soft, #fafaf8); }

/* The pending (one-time) row has nothing to unfold. */
.req-expand--static { cursor: default; }
.req-expand--static:hover { background: none; }

/* ---- who ---- */

.req-who {
  flex: 0 0 270px;
  min-width: 0;
  display: block;
}

.req-name-line {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.req-name {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.req-pill {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 700;
}

.req-pill--individual { background: #e0e7ff; color: #3730a3; }
.req-pill--group { background: #dcfce7; color: #166534; }

.req-meta {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  color: var(--color-text-muted, #787887);
}

/* ---- the proposed time ---- */

.req-match {
  flex: 1;
  min-width: 0;
  display: block;
}

.req-match-top {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.req-date {
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(15, 0, 105, 0.07);
  color: var(--color-brand-indigo-700, #0f0069);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
}

.req-time {
  font-size: 14px;
  font-weight: 700;
}

/* "you're busy: Marc" — said before the click, not after. */
.req-taken-pill {
  padding: 2px 9px;
  border-radius: 999px;
  background: #fdeceb;
  color: #a33a22;
  font-size: 10.5px;
  font-weight: 700;
}

.req-match-bottom {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
  min-height: 22px;
}

/* The face-circles that used to sit here are gone: the calendar under
   the row now says who voted, and repeating them was noise. Only
   PendingRow still uses `.req-match-bottom`, for its one-line note. */

.req-more-note {
  font-size: 11.5px;
  color: var(--color-text-muted, #787887);
  white-space: nowrap;
}

/* ---- actions ---- */

.req-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.req-confirm { white-space: nowrap; }

.req-chevron {
  width: 20px;
  text-align: center;
  font-size: 11px;
  color: var(--color-text-muted, #787887);
  transition: transform 0.15s;
}

.req-row.is-open .req-chevron { transform: rotate(180deg); }

/* The class's comments are no longer a chip + yellow panel here: the
   owner's calendar mockup puts them permanently under the grid, drawn
   by `.rvc-comments` in request-calendar.css. */

/* ---------- unfolded detail ---------- */

.req-detail {
  /* Only a small indent. Lining these up under the middle column looked
     tidy in the mockup, whose page was 900px wide — inside the real card
     it squeezed the "you are busy then (Elena)" reason down to nothing
     and wrapped every button onto two lines. */
  padding: 2px 16px 14px 24px;
}

/* The times themselves are a calendar now, drawn by
   RequestVoteCalendar — see request-calendar.css. Every rule that used
   to paint one line per time went with the list it belonged to. */

.req-use {
  flex-shrink: 0;
  white-space: nowrap;
  padding: 3px 10px;
  border: none;
  background: none;
  color: var(--color-brand-indigo-700, #0f0069);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.req-use:disabled {
  color: var(--color-text-muted, #9a9aa5);
  cursor: not-allowed;
}

/* The mockup's footer: who still owes an answer on the left, the way
   out on the right, separated from the card by one rule. */
.req-missing {
  margin: 0 auto 0 0;
  font-size: 12px;
  color: var(--color-text-muted, #787887);
}

.req-detail-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #ece9e2;
}

.req-decline-ask {
  margin-right: auto;
  font-size: 12.5px;
  color: var(--color-text, #1a1a2e);
}

/* A plain underlined link in the mockup — dismissing a request is a
   last resort, not a button competing with Confirm. */
.req-decline {
  padding: 4px 2px;
  border: none;
  background: none;
  color: var(--color-text-muted, #8b8d9a);
  font-size: 12px;
  font-weight: 500;
  text-decoration: underline;
  cursor: pointer;
}

.req-decline--confirm {
  padding: 4px 10px;
  border: 1px solid #f0b4b4;
  border-radius: 8px;
  background: #fef2f2;
  color: #b91c1c;
  font-weight: 600;
  text-decoration: none;
}

.req-decline:disabled { opacity: 0.5; cursor: not-allowed; }

/* ---------- phones ---------- */

@media (max-width: 760px) {
  .req-expand {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
  }
  .req-who { flex: 1 1 auto; width: 100%; }
  .req-main { flex-wrap: wrap; padding-right: 12px; }
  .req-actions { width: 100%; justify-content: flex-end; padding: 0 0 12px 12px; }
  .req-detail { padding-left: 12px; }
}
/**
 * The vote calendar inside a request — built from the owner's mockup
 * `specs/design/references/scheduling-calendar.html` (2026-09-27, after
 * *"the design is so bad... can you build it like in mock-up?"*).
 *
 * The mockup's shape, kept faithfully:
 *   - a real bordered calendar: cream header band, 1px rules between
 *     every cell, rounded and clipped at the outside;
 *   - one tile per voted time showing a BIG count over "of N";
 *   - exactly three colours, explained by a legend above the grid:
 *     solid green = the winning time, pale green = also proposed,
 *     grey = no longer possible;
 *   - who voted lives in a dark tooltip, not in the tile;
 *   - comments become a permanent list under the calendar.
 *
 * Every class is prefixed `rvc-` so nothing here can leak into the
 * calendar page next door.
 */

.rvc {
  --rvc-green: #0e503f;
  --rvc-green-bg: #eef6f1;
  --rvc-line: #ece9e2;
  --rvc-head-bg: #fbfaf7;
  --rvc-past-bg: #f1f0eb;
  --rvc-muted: #8b8d9a;
}

/* ---------- legend ---------- */

.rvc-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-bottom: 14px;
  font-size: 11px;
  color: var(--rvc-muted);
}

.rvc-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.rvc-sw {
  width: 12px;
  height: 12px;
  border-radius: 4px;
  flex-shrink: 0;
}

.rvc-sw--win { background: var(--rvc-green); }
.rvc-sw--live { background: var(--rvc-green-bg); }
.rvc-sw--past { background: var(--rvc-past-bg); }

/* ---------- the calendar ---------- */

/**
 * Six or seven day columns do not fit a phone, so the calendar scrolls
 * sideways — but a scroll container CLIPS the tooltips that sit inside
 * it. The vertical padding gives a tooltip room to live in, and the
 * matching negative margin takes that room back out of the layout.
 */
.rvc-scroll {
  overflow-x: auto;
  padding: 96px 0;
  margin: -96px 0;
}

.rvc-cal {
  border: 1px solid var(--rvc-line);
  border-radius: 14px;
  /* No overflow here: the header and the last row round their own
     outer corners instead, so tooltips are never clipped. */
}

.rvc-grid {
  display: grid;
  /* Columns are set inline: 56px for the time gutter, then one per day.
     A day never goes below 64px or six columns turn into slivers. */
  min-width: 100%;
}

.rvc-corner,
.rvc-day {
  background: var(--rvc-head-bg);
  border-bottom: 1px solid var(--rvc-line);
  border-right: 1px solid var(--rvc-line);
}

.rvc-corner { border-top-left-radius: 13px; }
.rvc-day:last-child {
  border-right: none;
  border-top-right-radius: 13px;
}

.rvc-day {
  text-align: center;
  padding: 9px 4px;
}

.rvc-dow {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--rvc-muted);
}

.rvc-dd {
  display: block;
  margin-top: 1px;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 13px;
  color: var(--color-text, #1c1f2b);
}

/* Today is the teacher's anchor in the week. */
.rvc-day.is-today .rvc-dd { color: var(--rvc-green); }

.rvc-time {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--rvc-line);
  border-bottom: 1px solid var(--rvc-line);
  font-size: 10.5px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--rvc-muted);
}

.rvc-cell {
  position: relative;
  padding: 8px;
  border-right: 1px solid var(--rvc-line);
  border-bottom: 1px solid var(--rvc-line);
}

.rvc-cell:last-child { border-right: none; }

/* The last row drops its bottom rule so the card's own border is the
   only line at the very bottom, and rounds the box's lower corners
   (the component tags it, because a nth-child rule cannot know how
   many day columns there are). */
.rvc-time.is-last,
.rvc-cell.is-last { border-bottom: none; }
.rvc-time.is-last { border-bottom-left-radius: 13px; }
.rvc-cell.is-last:last-child { border-bottom-right-radius: 13px; }

/* ---------- one voted time ---------- */

.rvc-slot {
  display: block;
  width: 100%;
  padding: 8px 4px;
  border: none;
  border-radius: 9px;
  text-align: center;
  font: inherit;
  cursor: pointer;
}

.rvc-slot--win { background: var(--rvc-green); }
.rvc-slot--live { background: var(--rvc-green-bg); }
.rvc-slot--past { background: var(--rvc-past-bg); }

.rvc-cnt {
  display: block;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 14px;
  color: var(--rvc-green);
}

.rvc-of {
  display: block;
  font-size: 8.5px;
  color: var(--rvc-muted);
}

.rvc-slot--win .rvc-cnt { color: #fff; }
.rvc-slot--win .rvc-of { color: rgba(255, 255, 255, 0.75); }

/* No longer bookable — never removed, because the class voted for it. */
.rvc-slot--past .rvc-cnt { color: #9a9ba3; text-decoration: line-through; }

.rvc-slot:focus-visible {
  outline: 2px solid var(--color-brand-indigo-500, #0f0069);
  outline-offset: 2px;
}

/* ---------- who voted, on tap ---------- */

.rvc-tip {
  position: absolute;
  bottom: calc(100% - 4px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: max-content;
  /* The mockup keeps this on one line. Six first names on a phone would
     run off the card, so it wraps at a readable width instead. */
  max-width: 220px;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--color-text, #1c1f2b);
  color: #fff;
  font-size: 11px;
  line-height: 1.5;
  text-align: left;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.rvc-tip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--color-text, #1c1f2b);
}

/* The top row has nothing above it but the day names, so its tooltip
   drops below the tile instead of covering them. */
.rvc-tip--below {
  bottom: auto;
  top: calc(100% - 4px);
}

.rvc-tip--below::after {
  top: auto;
  bottom: 100%;
  border-top-color: transparent;
  border-bottom-color: var(--color-text, #1c1f2b);
}

/* The first and last columns pin their tooltip to the inside edge, or
   half of it hangs off the calendar. */
.rvc-tip--start { left: 0; transform: none; }
.rvc-tip--start::after { left: 26px; }
.rvc-tip--end { left: auto; right: 0; transform: none; }
.rvc-tip--end::after { left: auto; right: 26px; }

.rvc-tip b {
  font-weight: 600;
  color: #7fd8c4;
}

.rvc-tip-line + .rvc-tip-line { margin-top: 4px; }

.rvc-tip-gone { color: #ffb8a0; }

/* Booking still takes a second, deliberate click: the grid is for
   looking, this button is for deciding. */
.rvc-tip-use {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 5px 10px;
  border: none;
  border-radius: 7px;
  background: #fdd504;
  color: #1c1f2b;
  font-family: var(--font-primary);
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
}

.rvc-tip-use:disabled {
  background: #4a4c58;
  color: #9a9ba3;
  cursor: not-allowed;
}

/* ---------- comments ---------- */

.rvc-comments {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--rvc-line);
}

.rvc-comments h3 {
  margin: 0 0 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--rvc-muted);
}

.rvc-crow {
  display: flex;
  gap: 10px;
  padding: 8px 0;
}

.rvc-av {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f0efe9;
  color: #6b6d7a;
  font-size: 10px;
  font-weight: 700;
}

.rvc-ctxt {
  font-size: 12px;
  line-height: 1.5;
}

.rvc-ctxt b { font-weight: 600; }
.rvc-quote { color: #6a5a2e; font-style: italic; }

/* ---------- phone ---------- */

@media (max-width: 640px) {
  .rvc-legend { font-size: 10.5px; gap: 4px 12px; }
  .rvc-ctxt { font-size: 11.5px; }
  .rvc-tip { max-width: 180px; }
}
/* ==========================================================================
   Leads CRM — scoped styles for the Students → Leads tab.
   ==========================================================================

   Everything is namespaced under `.leads-page` so it can't leak into
   the rest of the app. Structure mirrors the owner's own mockup at
   specs/design/references/leads-functional-rebuild.html 1:1:

     .leads-page
       ├─ .leads-topbar          → one title, tabs on the right
       ├─ .status-filter         → ONE closed dropdown, not a chip bar
       ├─ .leads-toolbar         → search box + "Add lead" primary button
       ├─ .leads-table           → seven fact-only columns
       └─ .trial-drawer          → right-side drawer: everything editable

   The screen deliberately holds NO controls of its own beyond the
   filter and the search box. Every edit — renaming, changing a stage,
   recording a lost reason, deleting — happens after you have opened the
   person, which is why the table has no "Actions" column.

   Colour tokens mirror the brand palette (indigo #0f0069 + green
   #0e503f + supporting warn/danger/purple accents from the mockup).
   ========================================================================== */

.leads-page {
  --lp-bg: #f5f6f4;
  --lp-surface: #ffffff;
  --lp-surface-muted: #f1f2ef;
  --lp-border: #e2e4e0;
  --lp-text: #1c231f;
  --lp-text-secondary: #6b756f;
  --lp-text-muted: #9aa39d;

  --lp-brand-green: #0e503f;
  --lp-brand-green-light: #e6efec;
  --lp-brand-blue: #0f0069;
  --lp-brand-blue-light: #ecebf7;

  --lp-warn: #8a6d00;
  --lp-warn-light: #fbf0c8;
  --lp-danger: #a33232;
  --lp-danger-light: #f6e6e6;
  --lp-purple: #6b21a8;
  --lp-purple-light: #f0e6f9;
  --lp-orange: #b5480a;
  --lp-orange-light: #fde3d0;
  /* "Said yes, waiting for a group" — deliberately close to the
     enrolled green without being it. */
  --lp-teal: #0a6070;
  --lp-teal-light: #dcedf2;

  --lp-radius: 10px;
  --lp-radius-lg: 14px;

  color: var(--lp-text);
  /* 1080px, from the owner's mockup. The table has seven short columns
     and nothing else; stretched across a 1600px screen the eye has to
     travel the width of a desk to get from a name to its status. */
  max-width: 1080px;
}

/* ---------- Topbar ----------
   The two view tabs, and nothing else. There used to be a breadcrumb,
   an H1 and an explanatory paragraph here, all three saying the same
   thing above a page whose own app bar already says "Leads". The
   owner's word for it was "doubled", so the heading is gone too — the
   app bar one row above is the single place this page is named. */

.leads-page .leads-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

/* ---------- Toolbar (search + add) ---------- */

.leads-page .leads-toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  align-items: center;
}
.leads-page .leads-search-box {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--lp-surface);
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius);
  padding: 9px 14px;
  max-width: 280px;
  flex: 1;
}
.leads-page .leads-search-box input {
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13.5px;
  width: 100%;
  outline: none;
  color: var(--lp-text);
}
.leads-page .leads-btn {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: var(--lp-radius);
  border: 1px solid var(--lp-border);
  background: var(--lp-surface);
  color: var(--lp-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.leads-page .leads-btn:hover {
  background: var(--lp-surface-muted);
}
/* Both spellings. The three group-building panels were written with a
   BEM double dash and the rest of the screen with a single one, so half
   the primary buttons in this feature silently rendered as plain grey
   ones. Aliasing costs one selector; hunting the mismatch again does
   not. */
.leads-page .leads-btn-primary,
.leads-page .leads-btn--primary {
  background: var(--lp-brand-green);
  border-color: var(--lp-brand-green);
  color: #fff;
}
.leads-page .leads-btn-primary:hover,
.leads-page .leads-btn--primary:hover {
  background: #0c4234;
}
/* The "Add lead" button sits at the far right of the toolbar, away from
   the search box, so the two are never mistaken for one control. */
.leads-page .leads-toolbar-add { margin-left: auto; }

/* ---------- Moving leads between My School and My Classes ----------

   Only rendered for a school owner who also teaches privately: nobody
   else has a second cabinet to move a lead into. The toggle pushes the
   toolbar's right-hand group along with "Add lead", so it never sits
   next to the search box. */
.leads-page .leads-move-toggle { margin-left: auto; }
.leads-page .leads-move-toggle + .leads-toolbar-add { margin-left: 0; }
/* While picking, the toggle reads "Cancel" and stops looking like an
   invitation. */
.leads-page .leads-move-toggle.active {
  background: var(--lp-surface-muted);
  border-color: var(--lp-text-muted);
}

/* One sentence of plain English above the table, naming both ends of
   the move. Shown only while picking. */
.leads-page .leads-move-hint {
  padding: 9px 14px;
  margin-bottom: 12px;
  border-radius: var(--lp-radius);
  background: var(--lp-surface-muted);
  border: 1px dashed var(--lp-border);
  font-size: 13px;
  color: var(--lp-text-muted);
}
.leads-page .leads-move-hint strong { color: var(--lp-text); font-weight: 700; }

/* The tick column. Narrow, centred, and it only exists while the admin
   is picking — the rest of the time the table has no controls at all. */
.leads-page .lead-pick-cell {
  text-align: center;
  vertical-align: middle;
}
.leads-page .lead-pick-cell input[type='checkbox'],
.leads-page .leads-table thead th input[type='checkbox'] {
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: var(--lp-brand-green);
}
/* A ticked row is tinted so a long selection can be checked at a
   glance without reading every box. */
.leads-page .lead-tr.is-selected,
.leads-page .lead-tr.is-selected:hover {
  background: var(--lp-brand-green-light, rgba(16, 88, 71, .08));
}

/* The confirm bar. Sticky at the bottom so it stays reachable while
   scrolling a long list. */
.leads-page .leads-move-bar {
  position: sticky;
  bottom: 12px;
  z-index: 5;
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--lp-radius-lg);
  background: var(--lp-surface);
  border: 1px solid var(--lp-border);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
}
.leads-page .leads-move-bar .lmb-count {
  font-size: 13px;
  font-weight: 600;
  color: var(--lp-text);
  margin-right: auto;
}
.leads-page .leads-move-bar .leads-btn:disabled {
  opacity: .6;
  cursor: default;
}

/* Something went wrong while loading or saving the list. */
.leads-page .leads-error {
  padding: 10px 14px;
  margin-bottom: 12px;
  border-radius: var(--lp-radius);
  background: var(--lp-danger-light);
  border: 1px solid var(--lp-danger);
  color: var(--lp-danger);
  font-size: 12.5px;
}

/* ---------- Status filter ----------
   ONE closed dropdown showing the current choice, opening to the eight
   stages with a count each. It replaced a permanent row of eight
   coloured chips: those chips were on screen at all times, competing
   with the table for attention, to serve a choice most people make once
   a week. Closed by default is the whole point. */

.leads-page .status-filter {
  position: relative;
  margin-bottom: 16px;
}
.leads-page .sf-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  padding: 9px 15px;
  border-radius: 12px;
  border: 1.5px solid var(--lp-border);
  background: var(--lp-surface);
  color: var(--lp-text);
  cursor: pointer;
}
.leads-page .sf-trigger:hover { border-color: var(--lp-text-muted); }

.leads-page .sf-menu {
  position: absolute;
  top: 44px;
  left: 0;
  z-index: 20;
  width: 232px;
  padding: 6px;
  background: var(--lp-surface);
  border: 1px solid var(--lp-border);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(15, 0, 105, .14);
}
.leads-page .sf-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  text-align: left;
  padding: 8px 10px;
  border: none;
  border-radius: 9px;
  background: none;
  color: var(--lp-text);
  cursor: pointer;
}
.leads-page .sf-item:hover { background: var(--lp-surface-muted); }
.leads-page .sf-item.selected {
  background: var(--lp-brand-blue-light);
  color: var(--lp-brand-blue);
  font-weight: 700;
}
/* The count is pushed to the right edge so the eight numbers line up
   into a column you can read on its own. */
.leads-page .sf-count {
  margin-left: auto;
  font-weight: 700;
  color: var(--lp-text-muted);
}
.leads-page .sf-item.selected .sf-count { color: var(--lp-brand-blue); }

/* A small colour key next to each stage, matching the pill colour used
   in the table, so the menu and the rows teach each other. */
.leads-page .sf-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: none;
}
.leads-page .sf-dot.new       { background: var(--lp-brand-blue); }
.leads-page .sf-dot.contacted { background: var(--lp-purple); }
.leads-page .sf-dot.followup  { background: var(--lp-orange); }
.leads-page .sf-dot.trial     { background: #0369a1; }
.leads-page .sf-dot.confirmed { background: var(--lp-teal); }
.leads-page .sf-dot.enrolled  { background: var(--lp-brand-green); }
.leads-page .sf-dot.lost      { background: var(--lp-danger); }

/* ---------- Table ---------- */

.leads-page .leads-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--lp-surface);
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius-lg);
  overflow: hidden;
}
.leads-page .leads-table thead th {
  text-align: left;
  font-size: 10.5px;
  color: var(--lp-text-muted);
  text-transform: uppercase;
  letter-spacing: .03em;
  font-weight: 700;
  padding: 11px 14px;
  border-bottom: 1px solid var(--lp-border);
  background: var(--lp-surface-muted);
}
.leads-page .leads-table tbody td {
  padding: 11px 14px;
  font-size: 13px;
  border-bottom: 1px solid var(--lp-border);
  vertical-align: top;
}
.leads-page .leads-table tbody tr:last-child td { border-bottom: none; }
.leads-page .muted-cell { color: var(--lp-text-muted); }

/* The whole row opens the person. Every cell carries its own click
   handler rather than the row carrying one, because clicking the Level
   column should land you on the level question and clicking Status on
   the stage picker — one target with seven destinations. */
.leads-page .lead-tr { cursor: pointer; }
.leads-page .lead-tr:hover { background: var(--lp-surface-muted); }
.leads-page .lead-cell { }

/* The name is a real <button> so the row can be reached with Tab, but
   it must not look like one — it is the row's title. */
.leads-page .lead-name {
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--lp-text);
  background: none;
  border: none;
  padding: 0;
  text-align: left;
  cursor: pointer;
}
.leads-page .lead-tr:focus-within .lead-name {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.leads-page .lead-sub {
  font-size: 11px;
  color: var(--lp-text-secondary);
  margin-top: 2px;
}
/* "tested" in green vs "they say" in grey. A teacher's assessment and
   somebody's own guess about themselves are not the same fact, and
   placing a person on the wrong one is how they end up in a room they
   cannot follow. */
.leads-page .lead-sub.is-assessed {
  color: var(--lp-brand-green);
  font-weight: 700;
}

/* An unanswered question. Deliberately quiet: there can be five of
   these on one row and the eye needs to slide over them to the progress
   bar, which is the column that actually counts them. */
.leads-page .cell-todo {
  color: var(--lp-text-muted);
  font-size: 12px;
}

/* ---------- Placement columns: Course / Level / Wants / Ready ----------
   These four columns carry the whole point of the screen: they are the
   answers that decide who can share a room. They are styled to be
   scannable down a column rather than read row by row — colour for the
   course, one bold token for the level, small tags for the shape of
   class, and a plain count for how much is still missing. */

.leads-page .lead-course {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}
/* The course's own colour from the catalogue, so a long list can be
   read by colour before it is read by name. */
.leads-page .lead-course-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: none;
}
.leads-page .lead-level {
  display: inline-block;
  font-weight: 700;
  font-size: 12.5px;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--lp-surface-muted);
  color: var(--lp-text);
}
/* ---------- Type: group or one-to-one ----------
   Two tags that must be told apart from across the room, because they
   are two entirely separate waiting lists. */
.leads-page .type-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 7px;
  white-space: nowrap;
}
.leads-page .type-tag.individual { background: var(--lp-purple-light); color: var(--lp-purple); }
.leads-page .type-tag.group      { background: var(--lp-warn-light);   color: var(--lp-warn); }
.leads-page .type-tag.either     { background: var(--lp-surface-muted); color: var(--lp-text-secondary); }

/* ---------- Progress: how many of the six answers are in ----------
   A 50px bar and "4/6". This column used to be a sentence per row
   ("ask: the level, group or one-to-one +3 more"), which turned twenty
   rows into a wall of text nobody read. The words survive as the
   cell's tooltip. */
.leads-page .lead-progress-cell { white-space: nowrap; }
.leads-page .progress-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}
.leads-page .progress-track {
  width: 50px;
  height: 6px;
  border-radius: 4px;
  background: var(--lp-surface-muted);
  overflow: hidden;
  flex: none;
}
.leads-page .progress-fill {
  height: 100%;
  background: var(--lp-brand-blue);
  transition: width .2s ease;
}
.leads-page .progress-text {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--lp-text-muted);
}
/* Green only when every answer is in — the colour is the signal that
   this person can go on the groups board, so it must not appear a
   question early. */
.leads-page .progress-fill.is-ready { background: var(--lp-brand-green); }
.leads-page .progress-text.is-ready { color: var(--lp-brand-green); }

/* Where a placed lead ended up, under their status pill. */
.leads-page .placed-note {
  font-size: 11px;
  color: var(--lp-brand-green);
  margin-top: 3px;
}

/* ---------- Status: a pill, not a dropdown ----------
   Changing somebody's stage has side effects — enrolling them creates a
   student record — so it is not a thing that should happen from a
   half-second mis-click while scanning a list. The pill reports; the
   drawer decides. */

.leads-page .status-pill {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 9px;
  white-space: nowrap;
}
.leads-page .status-pill.new       { background: var(--lp-brand-blue-light);  color: var(--lp-brand-blue); }
.leads-page .status-pill.contacted { background: var(--lp-purple-light);      color: var(--lp-purple); }
.leads-page .status-pill.followup  { background: var(--lp-warn-light);        color: var(--lp-warn); }
.leads-page .status-pill.trial     { background: #e0f0fb;                     color: #0369a1; }
/* "Said yes" — a teal that reads as almost-green: they have committed,
   but they are not enrolled until a group exists to put them in. */
.leads-page .status-pill.confirmed { background: var(--lp-teal-light);        color: var(--lp-teal); }
/* Enrolled is the only solid pill on the screen. It is the end of the
   journey and the one row you never need to look at again. */
.leads-page .status-pill.enrolled  { background: var(--lp-brand-green);       color: #fff; }
.leads-page .status-pill.lost      { background: var(--lp-danger-light);      color: var(--lp-danger); }

/* ---------- "Contact again on …" ----------
   Under the status pill. Turns red once the date has passed, which is
   the only thing on this table that ever demands attention today. */
.leads-page .next-contact {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  font-weight: 700;
  color: var(--lp-brand-blue);
  margin-top: 4px;
}
.leads-page .next-contact.overdue { color: var(--lp-danger); }

/* ---------- Follow-up tracker (3 dots) ---------- */

.leads-page .fu-tracker { display: flex; gap: 5px; margin-top: 6px; }
.leads-page .fu-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid #e8a26a;
  background: var(--lp-surface);
  color: var(--lp-orange);
  font-size: 10.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.leads-page .fu-dot.done {
  background: var(--lp-orange);
  border-color: var(--lp-orange);
  color: #fff;
}
.leads-page .fu-dot:disabled {
  opacity: .4;
  cursor: not-allowed;
}

/* ---------- Empty state ---------- */

.leads-page .leads-empty {
  text-align: center;
  padding: 3rem;
  color: var(--lp-text-muted);
  border: 1px dashed var(--lp-border);
  border-radius: 14px;
}

/* ---------- The lead drawer (right side, slide-in) ----------
   The screen's ONLY editing surface. There used to be a floating
   popover as well, for lost reasons and contact channels, fired from
   a row — two different ways to edit the same record, one of which
   appeared under the mouse pointer. It is gone. */

/* z-index note: the sticky app topbar sits at 95 and the sidebar at
   ~100. At the old value of 75/76 both of them painted OVER the drawer,
   which chopped off its header and its close button and left the
   sidebar undimmed. 900/901 matches the other drawers in the app
   (Students → Payments) and clears the whole app chrome. */
.trial-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(28, 35, 31, 0.35);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.trial-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.trial-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  /* Phones: 100vh counts the space hidden behind the browser's own
     address bar, which pushed the "Save changes" footer off screen.
     dvh is the visible height. Older browsers keep the line above. */
  height: 100dvh;
  width: 420px;
  max-width: 92vw;
  background: #fff;
  box-shadow: -8px 0 30px rgba(15, 0, 105, 0.14);
  z-index: 901;
  transform: translateX(100%);
  transition: transform .25s ease;
  display: flex;
  flex-direction: column;
}
.trial-drawer.open { transform: translateX(0); }

.trial-drawer .td-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #e2e4e0;
  flex-shrink: 0;
}
.trial-drawer .td-name { font-size: 16px; font-weight: 700; color: #1c231f; }
.trial-drawer .td-sub  { font-size: 12px; color: #6b21a8; font-weight: 600; margin-top: 2px; }
.trial-drawer .td-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: #9aa39d;
  width: 32px;
  height: 32px;
  border-radius: 50%;
}
.trial-drawer .td-close:hover { background: #f1f2ef; }
/* The drawer's own — and, while it is open, the ONLY — scroll area.
   `overscroll-behavior: contain` stops the wheel from "chaining" to the
   page behind once this reaches its top or bottom edge, which is what
   made the two views slide out of sync. */
.trial-drawer .td-body {
  padding: 1.25rem 1.5rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  flex: 1;
}
/* Padding, not margin, so the highlight below can draw a card around
   the question without the text touching its edges. The negative
   margin cancels that padding, keeping the questions exactly where
   they were before the highlight existed. */
.trial-drawer .td-q {
  margin: 0 -10px 0.85rem;
  padding: 10px;
  border-radius: 10px;
  border: 1px solid transparent;
  transition: background 320ms ease, border-color 320ms ease;
}
.trial-drawer .td-label {
  font-size: 12px;
  font-weight: 600;
  color: #6b756f;
  margin-bottom: 8px;
}

/* "This is the box you clicked." Added for two seconds when the
   drawer opens from a table cell, then removed. A tinted card with a
   real border, not a colour change on the text: the teacher is
   arriving mid-form and needs to see WHERE the answer goes, and a
   whole question outlined is visible from the corner of the eye. */
.trial-drawer .td-q-focused {
  background: #eef5f1;
  border-color: #0e503f;
}
@media (prefers-reduced-motion: reduce) {
  .trial-drawer .td-q { transition: none; }
}
.trial-drawer .td-textarea {
  width: 100%;
  min-height: 100px;
  font-family: inherit;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #e2e4e0;
  resize: vertical;
}
/* Plain single-line inputs used by the general-info fields (email,
   phone, target/native language) added to the top of the drawer so the
   teacher can fill in the previously-frozen columns from one place. */
.trial-drawer .td-text-input {
  width: 100%;
  font-family: inherit;
  font-size: 13.5px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid #e2e4e0;
  background: #fff;
  box-sizing: border-box;
}
.trial-drawer .td-text-input:focus {
  outline: none;
  border-color: #0e503f;
}
/* ---------- Placement block ----------
   The six answers you need before anyone can be put in a room:
   course, level, group-or-one-to-one, age group, format, availability.
   Given its own titled band inside the drawer so it reads as one job
   ("qualify this person") rather than six loose fields. */

/* Titled separator between the drawer's bands. */
.trial-drawer .td-section {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 1rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b756f;
}
/* The rule that trails off to the right of the section title. */
.trial-drawer .td-section::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e2e4e0;
}
/* A short note under ONE field, explaining what the answer is for.
   Not a paragraph under a section title — those were long enough that
   the form read as an article with inputs in it. */
.trial-drawer .td-hint {
  font-size: 11px;
  line-height: 1.5;
  color: #8b929a;
  margin-top: 5px;
}
/* An input with a small button beside it (the date + its "Clear"). */
.trial-drawer .td-inline {
  display: flex;
  gap: 8px;
  align-items: center;
}
.trial-drawer .td-inline .td-text-input { flex: 1; }
/* Two questions side by side. Collapses to one column on a phone —
   these are selects with real words in them ("Either is fine"), so
   they need the width. */
.trial-drawer .td-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 560px) {
  .trial-drawer .td-row2 { grid-template-columns: 1fr; }
}
/* Progress line: "4 of 6 answered — still need the course, availability". */
.trial-drawer .td-progress {
  font-size: 12px;
  line-height: 1.5;
  padding: 8px 12px;
  border-radius: 10px;
  margin-bottom: 1rem;
}
.trial-drawer .td-progress.complete {
  background: #eef5f2;
  color: #0e503f;
  border: 1px solid #cfe3da;
}
.trial-drawer .td-progress.incomplete {
  background: #fdf6e6;
  color: #6b5300;
  border: 1px solid #f0e2ba;
}
/* Shown in place of the course picker when the catalogue is empty. */
.trial-drawer .td-empty-hint {
  font-size: 12.5px;
  line-height: 1.55;
  color: #6b756f;
  padding: 10px 12px;
  border: 1px dashed #d5d8d3;
  border-radius: 10px;
  background: #fafbfa;
}
.trial-drawer .td-empty-hint a {
  color: #0e503f;
  font-weight: 600;
}

/* ---------- "After the trial lesson" ----------
   A tinted band, shown ONLY once the person's stage says a trial has
   actually happened (Trial / Said yes / Enrolled). Asking a teacher to
   assess the level of somebody who has not walked through the door yet
   was the loudest complaint about the old panel. The answers are never
   erased when a stage moves back, so a written assessment cannot be
   destroyed by a mis-click on the stage picker. */
.trial-drawer .td-trial-box {
  background: #e0f0fb;
  border-radius: 12px;
  padding: 14px 16px 4px;
  margin: 0 0 1rem;
}
.trial-drawer .td-trial-title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #0369a1;
  margin-bottom: 10px;
}
/* Inside the tinted band the per-question card has no negative margin
   to cancel — it would poke out through the band's rounded edge. */
.trial-drawer .td-trial-box .td-q {
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Yes / No / Maybe. Three buttons rather than a dropdown: it is one tap
   for an answer a teacher gives in the corridor. */
.trial-drawer .td-pills {
  display: flex;
  gap: 8px;
}
.trial-drawer .td-pill {
  flex: 1;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  padding: 9px 0;
  border-radius: 9px;
  border: 1.5px solid #e2e4e0;
  background: #fff;
  color: #6b756f;
  cursor: pointer;
}
.trial-drawer .td-pill:hover { border-color: #9aa39d; }
.trial-drawer .td-pill.active {
  background: #0e503f;
  border-color: #0e503f;
  color: #fff;
}
/* Trial notes are a line or two ("froze on past tenses"), not the
   essay the general notes box invites. */
.trial-drawer .td-textarea--short { min-height: 58px; }

/* ---------- Delete ----------
   Was a bin icon on every row, one slip of the mouse from a customer's
   record. Now it lives at the bottom of the person's own drawer, after
   everything else, and still behind a confirm. */
.trial-drawer .td-delete {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 1.5rem;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 7px 12px;
  border-radius: 9px;
  border: 1px solid #e2e4e0;
  background: none;
  color: #9aa39d;
  cursor: pointer;
}
.trial-drawer .td-delete:hover {
  border-color: #a33232;
  background: #f6e6e6;
  color: #a33232;
}
.trial-drawer .td-delete:disabled { opacity: .5; cursor: not-allowed; }

.trial-drawer .td-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid #e2e4e0;
  flex-shrink: 0;
}
.trial-drawer .td-footer .leads-btn {
  width: 100%;
  justify-content: center;
}

/* ---------- Toast (bottom-center) ---------- */

.leads-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: #0e503f;
  color: #fff;
  padding: 10px 18px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(14, 80, 63, 0.3);
  z-index: 90;
  animation: leads-toast-in .18s ease-out;
}
@keyframes leads-toast-in {
  from { opacity: 0; transform: translate(-50%, 8px); }
  to   { opacity: 1; transform: translate(-50%, 0);   }
}

/* ---------- "Incomplete profile" reminder banner for the enrolled student ---------- */

.leads-page .incomplete-profile-inline {
  font-size: 11px;
  color: var(--lp-warn);
  margin-top: 3px;
  font-style: italic;
}

/* =========================================================================
   View switch — "Everyone waiting" / "Groups to form"
   =========================================================================
   Two readings of the same people, sitting on the title's own line at
   the top right. They are the biggest choice on the screen, so they get
   the only strong colour above the table. */

.leads-page .leads-views {
  display: inline-flex;
  gap: 6px;
}
.leads-page .leads-view-tab {
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 8px 16px;
  border: none;
  border-radius: 14px;
  background: var(--lp-surface-muted);
  color: var(--lp-text-secondary);
  cursor: pointer;
}
.leads-page .leads-view-tab:hover { color: var(--lp-text); }
.leads-page .leads-view-tab.active {
  background: var(--lp-brand-blue);
  color: #fff;
}

/* =========================================================================
   Groups-to-form board
   =========================================================================
   A stack of cards, one per group the school could open. Each card is a
   decision, so it is sized like one: wide enough for a full sentence,
   never narrower than a phone screen. */

.leads-page .lmb-root { display: block; }

.leads-page .lmb-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.leads-page .lmb-intro {
  font-size: 12.5px;
  color: var(--lp-text-secondary);
  max-width: 60ch;
  margin: 0;
}

.leads-page .lmb-error {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--lp-radius);
  background: var(--lp-danger-light);
  border: 1px solid var(--lp-danger);
  color: var(--lp-danger);
  font-size: 13px;
}

/* ---------- The cards ---------- */

.leads-page .lmb-pools {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 14px;
}
.leads-page .lmb-card {
  background: var(--lp-surface);
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius-lg);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
/* A group that can be opened today gets a green edge — it is the only
   card on the board that asks for an action right now. */
.leads-page .lmb-card--ready {
  border-color: var(--lp-brand-green);
  box-shadow: 0 2px 10px rgba(14, 80, 63, .09);
}

.leads-page .lmb-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.leads-page .lmb-card-titles { min-width: 0; }
.leads-page .lmb-card-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 14.5px;
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
}
.leads-page .lmb-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
}
.leads-page .lmb-card-sub {
  font-size: 12px;
  color: var(--lp-text-secondary);
  margin: 3px 0 0;
}
.leads-page .lmb-badge {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  padding: 4px 9px;
  border-radius: 20px;
  white-space: nowrap;
  flex: none;
}
.leads-page .lmb-badge--ready {
  background: var(--lp-brand-green-light);
  color: var(--lp-brand-green);
}

/* ---------- "Can I open it?" ---------- */

.leads-page .lmb-verdict {
  font-size: 13px;
  line-height: 1.45;
}
.leads-page .lmb-verdict-extra { color: var(--lp-text-secondary); }

.leads-page .lmb-bar {
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: var(--lp-surface-muted);
  overflow: hidden;
}
.leads-page .lmb-bar-fill {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: 3px;
}
/* Pending sits behind confirmed on purpose: the pale part is the
   upside, the solid part is the number you are allowed to act on. */
.leads-page .lmb-bar-fill--pending   { background: var(--lp-border); }
.leads-page .lmb-bar-fill--confirmed { background: var(--lp-brand-green); }

/* ---------- "When would it meet?" ---------- */

.leads-page .lmb-when {
  background: var(--lp-surface-muted);
  border-radius: var(--lp-radius);
  padding: 10px 12px;
}
.leads-page .lmb-when-main {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  margin: 0;
}
.leads-page .lmb-when-cost,
.leads-page .lmb-when-alt {
  font-size: 11.5px;
  color: var(--lp-text-secondary);
  margin: 4px 0 0;
}

/* ---------- Small annotations ---------- */

.leads-page .lmb-note {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: var(--lp-text-secondary);
  margin: 0;
}
.leads-page .lmb-note--warn { color: var(--lp-warn); }

/* ---------- Who is in it ---------- */

.leads-page .lmb-members {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  padding-top: 10px;
  border-top: 1px solid var(--lp-border);
}
.leads-page .lmb-members-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--lp-text-muted);
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-right: 3px;
}
.leads-page .lmb-member {
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 9px;
  border-radius: 20px;
  border: 1px dashed var(--lp-border);
  background: none;
  color: var(--lp-text-secondary);
  cursor: pointer;
}
/* Solid outline = has said yes. The dashed ones are the maybes, and the
   difference has to survive a glance across twenty names. */
.leads-page .lmb-member--yes {
  border-style: solid;
  border-color: var(--lp-brand-green);
  background: var(--lp-brand-green-light);
  color: var(--lp-brand-green);
}
.leads-page .lmb-member:hover { border-color: var(--lp-text-secondary); }
.leads-page .lmb-member-flag {
  margin-left: 4px;
  font-weight: 700;
  color: var(--lp-warn);
}

/* ---------- Footnotes under the board ----------
   One line each. Everything they refer to is fixed on the other tab. */

.leads-page .lmb-footnote {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 14px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--lp-text-secondary);
}
.leads-page .lmb-footnote svg { flex: none; position: relative; top: 2px; }

/* One card per row on a phone: these cards are sentences, not tiles. */
@media (max-width: 640px) {
  .leads-page .lmb-pools { grid-template-columns: 1fr; }
  .leads-page .lmb-toolbar { flex-direction: column; }
  .leads-page .leads-views { display: flex; width: 100%; }
  .leads-page .leads-view-tab { flex: 1; }
}
/* ==========================================================================
   Financials — scoped styles for Statistics → Financials tab (owner view).
   ==========================================================================

   Every rule is namespaced under `.financials-page` so nothing here can
   leak into the rest of the app. Mirrors the validated HTML mockup 1:1:

     .financials-page
       ├─ .fp-chip-row         → 3 period chips (this month / last / year)
       ├─ .fp-hero-card        → big green (or red) net-income card
       ├─ .fp-stat-grid        → 5 stat cards (earned / received / payroll / …)
       ├─ .fp-panel            → shared card container (chart + by-teacher)
       │    ├─ .fp-panel-header-row → title + insights FAB + range dropdown
       │    ├─ .fp-series-toggle    → 5 chips to toggle chart series
       │    └─ .fp-chart-wrap       → y-axis + SVG lives here
       ├─ .fp-insights-popover → floating popover (opens on the 💼 FAB)
       └─ .fp-by-teacher       → net-contribution table

   Colour tokens mirror the mockup: brand green, brand blue, warn amber,
   danger red, purple + cyan for the derived series.
   ========================================================================== */

.financials-page {
  --fp-bg: #f5f6f4;
  --fp-surface: #ffffff;
  --fp-surface-muted: #f1f2ef;
  --fp-border: #e2e4e0;
  --fp-text: #1c231f;
  --fp-text-secondary: #6b756f;
  --fp-text-muted: #9aa39d;

  --fp-brand-green: #0e503f;
  --fp-brand-green-light: #e6efec;
  --fp-brand-green-dark: #0c4234;
  --fp-brand-blue: #0f0069;
  --fp-brand-blue-light: #ecebf7;

  --fp-warn: #8a6d00;
  --fp-warn-light: #fbf0c8;
  --fp-danger: #a33232;
  --fp-danger-dark: #7a2424;
  --fp-danger-light: #f6e6e6;
  --fp-purple: #6b21a8;
  --fp-purple-light: #f0e6f9;
  --fp-cyan: #0e7490;
  --fp-cyan-light: #e0f2f4;

  --fp-radius: 10px;
  --fp-radius-lg: 14px;

  color: var(--fp-text);
  max-width: 1200px;
}

/* ---------- Loading / error placeholders ---------- */

.financials-page .fp-loading,
.fp-loading {
  padding: 40px;
  text-align: center;
  color: var(--fp-text-muted);
}

.financials-page .fp-error {
  padding: 14px 18px;
  border-radius: 8px;
  border-left: 4px solid var(--fp-danger);
  background: var(--fp-danger-light);
  color: var(--fp-danger-dark);
  margin-bottom: 16px;
  font-size: 13.5px;
}

/* ---------- Period chips ---------- */

.financials-page .fp-chip-row {
  display: flex;
  gap: 8px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.financials-page .fp-btn-chip {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid var(--fp-border);
  background: var(--fp-surface);
  color: var(--fp-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.financials-page .fp-btn-chip:hover {
  border-color: var(--fp-brand-green);
  color: var(--fp-brand-green);
}
.financials-page .fp-btn-chip.active {
  background: var(--fp-brand-green);
  border-color: var(--fp-brand-green);
  color: #fff;
}

/* ---------- Hero card ---------- */

.financials-page .fp-hero-card {
  background: linear-gradient(135deg, var(--fp-brand-green), var(--fp-brand-green-dark));
  border-radius: var(--fp-radius-lg);
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.25rem;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.financials-page .fp-hero-card.negative {
  background: linear-gradient(135deg, var(--fp-danger), var(--fp-danger-dark));
}

.financials-page .fp-hero-left .fp-hero-label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.8;
  margin-bottom: 6px;
}
.financials-page .fp-hero-left .fp-hero-value {
  font-size: 36px;
  font-weight: 800;
  line-height: 1.1;
}
.financials-page .fp-hero-left .fp-hero-formula {
  font-size: 12.5px;
  opacity: 0.85;
  margin-top: 6px;
}
.financials-page .fp-hero-margin {
  text-align: right;
}
.financials-page .fp-hero-margin .fp-hero-pct {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.1;
}
.financials-page .fp-hero-margin .fp-hero-lbl {
  font-size: 11.5px;
  opacity: 0.8;
}

/* ---------- Stat cards ---------- */

.financials-page .fp-stat-grid {
  display: grid;
  /* Real auto-fit: 5 cards (Earned, Received, Payroll, Other,
     Outstanding) fit on wide desktops; narrower windows naturally
     drop to 4/3/2/1 columns as space runs out. `minmax(190px, 1fr)`
     is the "small but still readable" width for a stat card
     (eyebrow + 22px number + 2-line sub-text). */
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-bottom: 1.5rem;
}

.financials-page .fp-stat-card {
  background: var(--fp-surface);
  border: 1px solid var(--fp-border);
  border-radius: var(--fp-radius-lg);
  padding: 1.1rem 1.25rem;
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.financials-page .fp-stat-card:hover {
  border-color: var(--fp-brand-green);
  box-shadow: 0 4px 12px rgba(14, 80, 63, 0.08);
  transform: translateY(-1px);
}
.financials-page .fp-stat-card .fp-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fp-text-muted);
  margin: 0 0 6px;
}
.financials-page .fp-stat-num {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
}
.financials-page .fp-stat-num.accent { color: var(--fp-brand-green); }
.financials-page .fp-stat-num.blue   { color: var(--fp-brand-blue); }
.financials-page .fp-stat-num.amber  { color: var(--fp-warn); }
.financials-page .fp-stat-num.danger { color: var(--fp-danger); }
.financials-page .fp-stat-sub {
  font-size: 11.5px;
  color: var(--fp-text-muted);
  margin-top: 4px;
  line-height: 1.4;
}

/* Small-screen breakpoints are no longer needed — the `auto-fit` +
   `minmax(190px, 1fr)` grid above naturally re-flows to fewer
   columns as the viewport shrinks. */

/* ---------- Panel (shared card container) ---------- */

.financials-page .fp-panel {
  background: var(--fp-surface);
  border: 1px solid var(--fp-border);
  border-radius: var(--fp-radius-lg);
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}
.financials-page .fp-panel-title {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 4px;
}
.financials-page .fp-panel-sub {
  font-size: 12px;
  color: var(--fp-text-secondary);
  margin: 0 0 14px;
}

.financials-page .fp-panel-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.financials-page .fp-panel-header-row .fp-panel-title { margin-bottom: 4px; }
.financials-page .fp-panel-header-row .fp-panel-sub { margin-bottom: 0; }
.financials-page .fp-panel-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.financials-page .fp-range-label {
  font-size: 12.5px;
  color: var(--fp-text-secondary);
  font-weight: 600;
}
.financials-page .fp-range-select {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--fp-border);
  background: var(--fp-surface);
  color: var(--fp-text);
  cursor: pointer;
}

/* ---------- Insights FAB ---------- */

.financials-page .fp-insights-fab {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--fp-border);
  background: var(--fp-surface);
  font-size: 17px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.financials-page .fp-insights-fab:hover {
  border-color: var(--fp-brand-green);
  transform: translateY(-1px);
}
.financials-page .fp-insights-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  background: var(--fp-danger);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--fp-surface);
  box-sizing: border-box;
}

/* ---------- Series toggle ---------- */

.financials-page .fp-series-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 1.75rem;
  flex-wrap: wrap;
}
.financials-page .fp-series-btn {
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1.5px solid var(--fp-border);
  background: var(--fp-surface);
  color: var(--fp-text-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}
.financials-page .fp-series-btn .fp-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
/* Active pill colours per series — matches the chart line colours. */
.financials-page .fp-series-btn.active.revenue     { background: var(--fp-brand-green-light); border-color: var(--fp-brand-green); color: var(--fp-brand-green); }
.financials-page .fp-series-btn.active.payroll     { background: var(--fp-brand-blue-light);  border-color: var(--fp-brand-blue);  color: var(--fp-brand-blue); }
.financials-page .fp-series-btn.active.expenses    { background: var(--fp-warn-light);        border-color: var(--fp-warn);        color: var(--fp-warn); }
.financials-page .fp-series-btn.active.netFull     { background: var(--fp-purple-light);      border-color: var(--fp-purple);      color: var(--fp-purple); }
.financials-page .fp-series-btn.active.netTeachers { background: var(--fp-cyan-light);        border-color: var(--fp-cyan);        color: var(--fp-cyan); }

/* ---------- Chart ---------- */

.financials-page .fp-chart-wrap {
  display: flex;
  gap: 10px;
  min-height: 220px;
}
.financials-page .fp-chart-yaxis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 220px;
  padding-bottom: 22px;
  font-size: 10.5px;
  color: var(--fp-text-muted);
  text-align: right;
  width: 56px;
  flex-shrink: 0;
}
.financials-page .fp-chart-grid {
  position: relative;
  flex: 1;
  min-width: 0;
}
.financials-page .fp-chart-empty {
  padding: 60px 20px;
  text-align: center;
  color: var(--fp-text-muted);
  font-size: 13px;
}

/* ---------- Insights popover ---------- */

/* Anchored top-right of the viewport so it doesn't get pushed off-screen
   by the panel layout. Uses fixed positioning + high z-index so it
   floats above the chart. */
.financials-page .fp-insights-popover {
  position: fixed;
  top: 120px;
  right: 40px;
  width: 340px;
  max-width: calc(100vw - 32px);
  background: var(--fp-surface);
  border: 1px solid var(--fp-border);
  border-radius: var(--fp-radius-lg);
  box-shadow: 0 16px 40px rgba(15, 0, 105, 0.18);
  z-index: 80;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
}
.financials-page .fp-ip-header {
  display: flex;
  align-items: center;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--fp-border);
  flex-shrink: 0;
}
.financials-page .fp-ip-title {
  font-weight: 700;
  font-size: 14px;
}
.financials-page .fp-ip-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 15px;
  cursor: pointer;
  color: var(--fp-text-muted);
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.financials-page .fp-ip-close:hover {
  background: var(--fp-surface-muted);
}
.financials-page .fp-ip-body {
  padding: 0.9rem 1.2rem 1.1rem;
  overflow-y: auto;
}
.financials-page .fp-ip-empty {
  margin: 0;
  padding: 20px 0;
  color: var(--fp-text-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.financials-page .fp-ip-alert {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--fp-border);
}
.financials-page .fp-ip-alert:last-of-type {
  border-bottom: none;
}
.financials-page .fp-ip-alert-icon {
  font-size: 15px;
  flex-shrink: 0;
  margin-top: 1px;
}
.financials-page .fp-ip-alert-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 3px;
  line-height: 1.3;
}
.financials-page .fp-ip-alert.critical .fp-ip-alert-title { color: var(--fp-danger); }
.financials-page .fp-ip-alert.warning  .fp-ip-alert-title { color: var(--fp-warn); }
.financials-page .fp-ip-alert.ok       .fp-ip-alert-title { color: var(--fp-brand-green); }
.financials-page .fp-ip-alert-sub {
  font-size: 11.5px;
  color: var(--fp-text-secondary);
  line-height: 1.45;
}
.financials-page .fp-ip-alert-sub a {
  color: var(--fp-brand-blue);
  font-weight: 600;
  text-decoration: none;
}
.financials-page .fp-ip-alert-sub a:hover {
  text-decoration: underline;
}
.financials-page .fp-ip-footnote {
  font-size: 10.5px;
  color: var(--fp-text-muted);
  line-height: 1.5;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--fp-border);
}

/* Move popover into the natural flow on small screens so it doesn't
   cover the entire main content on mobile. */
@media (max-width: 700px) {
  .financials-page .fp-insights-popover {
    top: auto;
    bottom: 20px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}

/* ---------- By-teacher table ---------- */

.financials-page .fp-by-teacher {
  width: 100%;
  border-collapse: collapse;
}
.financials-page .fp-by-teacher th {
  text-align: left;
  font-size: 10.5px;
  color: var(--fp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  padding: 8px 6px;
  border-bottom: 1px solid var(--fp-border);
}
.financials-page .fp-by-teacher td {
  padding: 10px 6px;
  font-size: 13px;
  border-bottom: 1px solid var(--fp-border);
}
.financials-page .fp-by-teacher tr:last-child td {
  border-bottom: none;
}
.financials-page .fp-by-teacher th.num-th,
.financials-page .fp-by-teacher td.num-td {
  text-align: right;
}
.financials-page .fp-teacher-name-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.financials-page .fp-dot-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.financials-page .fp-by-teacher .net-pos { color: var(--fp-brand-green); font-weight: 700; }
.financials-page .fp-by-teacher .net-neg { color: var(--fp-danger); font-weight: 700; }
/* ==========================================================================
   Lessons stats — scoped styles for Statistics → Lessons tab (owner view).
   ==========================================================================

   Every rule is namespaced under `.lessons-stats-page`. Mirrors the mockup:

     .lessons-stats-page
       ├─ .lsp-chip-row            → 3 period chips (this month / last / year)
       ├─ .lsp-stat-grid           → 4 stat cards, all clickable
       ├─ .lsp-panel               → shared card container
       │    ├─ .lsp-split-bar          → Individual vs Group horizontal bar
       │    ├─ .lsp-panel-header-row   → chart header (title + insights + range)
       │    ├─ .lsp-series-toggle      → 4 chips to toggle chart series
       │    ├─ .lsp-chart-wrap         → y-axis + SVG
       │    └─ .lsp-disruptor-row      → leaderboard row (rank + avatar + bar)
       ├─ .lsp-insights-popover    → floating popover (from the 💼 FAB)
       └─ .lsp-drawer              → right-side slide-in drill-down list

   Colour tokens match the Financials tab (--brand-green, --brand-blue, etc.)
   so the whole Statistics section stays visually consistent.
   ========================================================================== */

.lessons-stats-page {
  --lsp-bg: #f5f6f4;
  --lsp-surface: #ffffff;
  --lsp-surface-muted: #f1f2ef;
  --lsp-border: #e2e4e0;
  --lsp-text: #1c231f;
  --lsp-text-secondary: #6b756f;
  --lsp-text-muted: #9aa39d;

  --lsp-brand-green: #0e503f;
  --lsp-brand-green-light: #e6efec;
  --lsp-brand-blue: #0f0069;
  --lsp-brand-blue-light: #ecebf7;

  --lsp-warn: #8a6d00;
  --lsp-warn-light: #fbf0c8;
  --lsp-danger: #a33232;
  --lsp-danger-dark: #7a2424;
  --lsp-danger-light: #f6e6e6;
  --lsp-purple: #6b21a8;
  --lsp-purple-light: #f0e6f9;

  --lsp-radius: 10px;
  --lsp-radius-lg: 14px;

  color: var(--lsp-text);
  max-width: 1200px;
}

/* ---------- Loading / error placeholders ---------- */

.lessons-stats-page .lsp-loading,
.lsp-loading {
  padding: 40px;
  text-align: center;
  color: var(--lsp-text-muted);
}

.lessons-stats-page .lsp-error {
  padding: 14px 18px;
  border-radius: 8px;
  border-left: 4px solid var(--lsp-danger);
  background: var(--lsp-danger-light);
  color: var(--lsp-danger-dark);
  margin-bottom: 16px;
  font-size: 13.5px;
}

/* ---------- Period chips ---------- */

.lessons-stats-page .lsp-chip-row {
  display: flex;
  gap: 8px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.lessons-stats-page .lsp-btn-chip {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid var(--lsp-border);
  background: var(--lsp-surface);
  color: var(--lsp-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.lessons-stats-page .lsp-btn-chip:hover {
  border-color: var(--lsp-brand-green);
  color: var(--lsp-brand-green);
}
.lessons-stats-page .lsp-btn-chip.active {
  background: var(--lsp-brand-green);
  border-color: var(--lsp-brand-green);
  color: #fff;
}

.lessons-stats-page .lsp-chip-tail {
  margin-left: auto;
  font-size: 12.5px;
  color: var(--lsp-text-secondary);
}
.lessons-stats-page .lsp-chip-tail strong {
  color: var(--lsp-text);
  font-weight: 700;
}

/* ---------- Stat cards ---------- */

.lessons-stats-page .lsp-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 1.5rem;
}

.lessons-stats-page .lsp-stat-card {
  font-family: inherit;
  text-align: left;
  background: var(--lsp-surface);
  border: 1px solid var(--lsp-border);
  border-radius: var(--lsp-radius-lg);
  padding: 1.1rem 1.25rem;
  color: inherit;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.lessons-stats-page .lsp-stat-card:hover:not(:disabled) {
  border-color: var(--lsp-brand-green);
  box-shadow: 0 4px 12px rgba(14, 80, 63, 0.08);
  transform: translateY(-1px);
}
.lessons-stats-page .lsp-stat-card:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.lessons-stats-page .lsp-stat-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  gap: 8px;
}
.lessons-stats-page .lsp-stat-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lsp-text-muted);
}
.lessons-stats-page .lsp-stat-see {
  font-size: 11px;
  font-weight: 600;
  color: var(--lsp-brand-blue);
  white-space: nowrap;
}
.lessons-stats-page .lsp-stat-card:hover:not(:disabled) .lsp-stat-see {
  text-decoration: underline;
}
.lessons-stats-page .lsp-stat-num {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
}
.lessons-stats-page .lsp-stat-num.accent { color: var(--lsp-brand-green); }
.lessons-stats-page .lsp-stat-num.warn   { color: var(--lsp-warn); }
.lessons-stats-page .lsp-stat-num.danger { color: var(--lsp-danger); }
.lessons-stats-page .lsp-stat-sub {
  font-size: 11.5px;
  color: var(--lsp-text-muted);
  margin-top: 4px;
  line-height: 1.4;
}

@media (max-width: 900px) {
  .lessons-stats-page .lsp-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 500px) {
  .lessons-stats-page .lsp-stat-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Panel (shared card container) ---------- */

.lessons-stats-page .lsp-panel {
  background: var(--lsp-surface);
  border: 1px solid var(--lsp-border);
  border-radius: var(--lsp-radius-lg);
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}
.lessons-stats-page .lsp-panel-title {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 4px;
}
.lessons-stats-page .lsp-panel-sub {
  font-size: 12px;
  color: var(--lsp-text-secondary);
  margin: 0 0 14px;
}

.lessons-stats-page .lsp-panel-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.lessons-stats-page .lsp-panel-header-row .lsp-panel-title { margin-bottom: 4px; }
.lessons-stats-page .lsp-panel-header-row .lsp-panel-sub { margin-bottom: 0; }
.lessons-stats-page .lsp-panel-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.lessons-stats-page .lsp-range-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lessons-stats-page .lsp-range-label {
  font-size: 12.5px;
  color: var(--lsp-text-secondary);
  font-weight: 600;
}
.lessons-stats-page .lsp-range-select {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--lsp-border);
  background: var(--lsp-surface);
  color: var(--lsp-text);
  cursor: pointer;
}

/* ---------- Individual vs Group split bar ---------- */

.lessons-stats-page .lsp-split-bar {
  display: flex;
  height: 34px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--lsp-surface-muted);
  margin-bottom: 10px;
}
.lessons-stats-page .lsp-split-ind,
.lessons-stats-page .lsp-split-grp {
  font-family: inherit;
  border: none;
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: filter 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
}
.lessons-stats-page .lsp-split-ind { background: var(--lsp-brand-green); }
.lessons-stats-page .lsp-split-grp { background: var(--lsp-brand-blue); }
.lessons-stats-page .lsp-split-ind:hover:not(:disabled),
.lessons-stats-page .lsp-split-grp:hover:not(:disabled) {
  filter: brightness(1.1);
}
.lessons-stats-page .lsp-split-ind:disabled,
.lessons-stats-page .lsp-split-grp:disabled { cursor: default; }
.lessons-stats-page .lsp-split-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lsp-text-muted);
  font-size: 12.5px;
}
.lessons-stats-page .lsp-split-legend {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.lessons-stats-page .lsp-split-legend-link {
  font-family: inherit;
  background: none;
  border: none;
  padding: 0;
  font-size: 12.5px;
  color: var(--lsp-text-secondary);
  cursor: pointer;
  text-align: left;
}
.lessons-stats-page .lsp-split-legend-link:hover:not(:disabled) {
  color: var(--lsp-brand-green);
  text-decoration: underline;
}
.lessons-stats-page .lsp-split-legend-link:disabled {
  cursor: default;
  color: var(--lsp-text-muted);
}

/* ---------- Insights FAB ---------- */

.lessons-stats-page .lsp-insights-fab {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--lsp-border);
  background: var(--lsp-surface);
  font-size: 17px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.lessons-stats-page .lsp-insights-fab:hover {
  border-color: var(--lsp-brand-green);
  transform: translateY(-1px);
}
.lessons-stats-page .lsp-insights-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  background: var(--lsp-danger);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--lsp-surface);
  box-sizing: border-box;
}

/* ---------- Series toggle ---------- */

.lessons-stats-page .lsp-series-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.lessons-stats-page .lsp-series-btn {
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1.5px solid var(--lsp-border);
  background: var(--lsp-surface);
  color: var(--lsp-text-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}
.lessons-stats-page .lsp-series-btn .lsp-series-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-series-btn.active.taught      { background: var(--lsp-brand-green-light); border-color: var(--lsp-brand-green); color: var(--lsp-brand-green); }
.lessons-stats-page .lsp-series-btn.active.cancelled   { background: var(--lsp-danger-light);      border-color: var(--lsp-danger);      color: var(--lsp-danger); }
.lessons-stats-page .lsp-series-btn.active.noshow      { background: var(--lsp-warn-light);        border-color: var(--lsp-warn);        color: var(--lsp-warn); }
.lessons-stats-page .lsp-series-btn.active.rescheduled { background: var(--lsp-purple-light);      border-color: var(--lsp-purple);      color: var(--lsp-purple); }

/* ---------- Chart ---------- */

.lessons-stats-page .lsp-chart-wrap {
  display: flex;
  gap: 10px;
  min-height: 220px;
}
.lessons-stats-page .lsp-chart-yaxis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 220px;
  padding-bottom: 22px;
  font-size: 10.5px;
  color: var(--lsp-text-muted);
  text-align: right;
  width: 36px;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-chart-grid {
  position: relative;
  flex: 1;
  min-width: 0;
}
.lessons-stats-page .lsp-chart-empty {
  padding: 60px 20px;
  text-align: center;
  color: var(--lsp-text-muted);
  font-size: 13px;
}

/* ---------- Insights popover ---------- */

.lessons-stats-page .lsp-insights-popover {
  position: fixed;
  top: 120px;
  right: 40px;
  width: 340px;
  max-width: calc(100vw - 32px);
  background: var(--lsp-surface);
  border: 1px solid var(--lsp-border);
  border-radius: var(--lsp-radius-lg);
  box-shadow: 0 16px 40px rgba(15, 0, 105, 0.18);
  z-index: 80;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
}
.lessons-stats-page .lsp-ip-header {
  display: flex;
  align-items: center;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--lsp-border);
  flex-shrink: 0;
}
.lessons-stats-page .lsp-ip-title {
  font-weight: 700;
  font-size: 14px;
}
.lessons-stats-page .lsp-ip-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 15px;
  cursor: pointer;
  color: var(--lsp-text-muted);
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.lessons-stats-page .lsp-ip-close:hover {
  background: var(--lsp-surface-muted);
}
.lessons-stats-page .lsp-ip-body {
  padding: 0.9rem 1.2rem 1.1rem;
  overflow-y: auto;
}
.lessons-stats-page .lsp-ip-empty {
  margin: 0;
  padding: 20px 0;
  color: var(--lsp-text-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.lessons-stats-page .lsp-ip-alert {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--lsp-border);
}
.lessons-stats-page .lsp-ip-alert:last-of-type {
  border-bottom: none;
}
.lessons-stats-page .lsp-ip-alert-icon {
  font-size: 15px;
  flex-shrink: 0;
  margin-top: 1px;
}
.lessons-stats-page .lsp-ip-alert-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 3px;
  line-height: 1.3;
}
.lessons-stats-page .lsp-ip-alert.critical .lsp-ip-alert-title { color: var(--lsp-danger); }
.lessons-stats-page .lsp-ip-alert.warning  .lsp-ip-alert-title { color: var(--lsp-warn); }
.lessons-stats-page .lsp-ip-alert.ok       .lsp-ip-alert-title { color: var(--lsp-brand-green); }
.lessons-stats-page .lsp-ip-alert.neutral  .lsp-ip-alert-title { color: var(--lsp-text); }
.lessons-stats-page .lsp-ip-alert-sub {
  font-size: 11.5px;
  color: var(--lsp-text-secondary);
  line-height: 1.45;
}
.lessons-stats-page .lsp-ip-alert-sub a {
  color: var(--lsp-brand-blue);
  font-weight: 600;
  text-decoration: none;
}
.lessons-stats-page .lsp-ip-alert-sub a:hover {
  text-decoration: underline;
}
.lessons-stats-page .lsp-ip-footnote {
  font-size: 10.5px;
  color: var(--lsp-text-muted);
  line-height: 1.5;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--lsp-border);
}

@media (max-width: 700px) {
  .lessons-stats-page .lsp-insights-popover {
    top: auto;
    bottom: 20px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}

/* ---------- Disruptor leaderboard ---------- */

.lessons-stats-page .lsp-disruptor-row {
  font-family: inherit;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 8px;
  background: transparent;
  border: none;
  border-radius: 8px;
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease;
}
.lessons-stats-page .lsp-disruptor-row + .lsp-disruptor-row {
  border-top: 1px solid var(--lsp-border);
  border-radius: 0;
}
.lessons-stats-page .lsp-disruptor-row:hover {
  background: var(--lsp-surface-muted);
}
.lessons-stats-page .lsp-disruptor-rank {
  font-size: 12px;
  color: var(--lsp-text-muted);
  font-weight: 700;
  width: 20px;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-disruptor-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-disruptor-info {
  flex: 1;
  min-width: 0;
}
.lessons-stats-page .lsp-disruptor-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--lsp-text);
  line-height: 1.2;
}
.lessons-stats-page .lsp-disruptor-breakdown {
  font-size: 11.5px;
  color: var(--lsp-text-muted);
  margin-top: 2px;
}
.lessons-stats-page .lsp-disruptor-bar-track {
  width: 140px;
  height: 8px;
  background: var(--lsp-surface-muted);
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-disruptor-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--lsp-warn), var(--lsp-danger));
  border-radius: 4px;
}
.lessons-stats-page .lsp-disruptor-total {
  font-size: 14px;
  font-weight: 700;
  color: var(--lsp-danger);
  min-width: 28px;
  text-align: right;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-disruptor-empty {
  padding: 24px 12px;
  text-align: center;
  color: var(--lsp-text-muted);
  font-size: 12.5px;
}

@media (max-width: 700px) {
  .lessons-stats-page .lsp-disruptor-bar-track { display: none; }
}

/* ---------- Drill-down drawer ---------- */

/* Full-viewport overlay that dims the app behind the drawer.
   ⚠ Both the overlay AND the drawer are rendered in the DOM at all
   times (the parent doesn't unmount them) — so when the drawer is
   CLOSED we must switch off pointer-events + fade the backdrop, or
   the invisible overlay traps every click and freezes the page. */
.lessons-stats-page .lsp-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 0, 105, 0.28);
  z-index: 90;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.lessons-stats-page .lsp-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.lessons-stats-page .lsp-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 440px;
  max-width: calc(100vw - 32px);
  background: var(--lsp-surface);
  border-left: 1px solid var(--lsp-border);
  box-shadow: -12px 0 40px rgba(15, 0, 105, 0.14);
  z-index: 91;
  display: flex;
  flex-direction: column;
  /* Off-screen by default so it doesn't cover any content while
     closed. Slides in with a smooth transform when .open is added. */
  transform: translateX(100%);
  transition: transform 0.2s ease-out;
  pointer-events: none;
}
.lessons-stats-page .lsp-drawer.open {
  transform: translateX(0);
  pointer-events: auto;
}

.lessons-stats-page .lsp-drawer-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid var(--lsp-border);
  flex-shrink: 0;
}
.lessons-stats-page .lsp-drawer-title {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
}
.lessons-stats-page .lsp-drawer-sub {
  font-size: 12px;
  color: var(--lsp-text-secondary);
  margin: 3px 0 0;
}
.lessons-stats-page .lsp-drawer-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 15px;
  cursor: pointer;
  color: var(--lsp-text-muted);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
}
.lessons-stats-page .lsp-drawer-close:hover {
  background: var(--lsp-surface-muted);
}
.lessons-stats-page .lsp-drawer-body {
  padding: 0.6rem 1.25rem 1.25rem;
  overflow-y: auto;
  flex: 1;
}
.lessons-stats-page .lsp-drawer-empty {
  padding: 40px 12px;
  text-align: center;
  color: var(--lsp-text-muted);
  font-size: 12.5px;
}
.lessons-stats-page .lsp-drawer-item {
  padding: 12px 4px;
  border-bottom: 1px solid var(--lsp-border);
}
.lessons-stats-page .lsp-drawer-item:last-child {
  border-bottom: none;
}
.lessons-stats-page .lsp-drawer-item-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
  margin-bottom: 3px;
}
.lessons-stats-page .lsp-drawer-item-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--lsp-text);
}
.lessons-stats-page .lsp-drawer-item-date {
  font-size: 11.5px;
  color: var(--lsp-text-muted);
  white-space: nowrap;
}
.lessons-stats-page .lsp-drawer-item-meta {
  font-size: 12px;
  color: var(--lsp-text-secondary);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.lessons-stats-page .lsp-drawer-item-reason,
.lessons-stats-page .lsp-drawer-item-reschedule {
  font-size: 12px;
  color: var(--lsp-text-secondary);
  margin-top: 5px;
  padding: 6px 8px;
  background: var(--lsp-surface-muted);
  border-radius: 6px;
  line-height: 1.4;
}
.lessons-stats-page .lsp-drawer-item-reschedule {
  color: var(--lsp-purple);
}

.lessons-stats-page .lsp-type-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.lessons-stats-page .lsp-type-tag.individual {
  background: var(--lsp-brand-green-light);
  color: var(--lsp-brand-green);
}
.lessons-stats-page .lsp-type-tag.group {
  background: var(--lsp-brand-blue-light);
  color: var(--lsp-brand-blue);
}
/* ==========================================================================
   Teachers stats — scoped styles for Statistics → Teachers tab (owner view).
   ==========================================================================

   Every rule is namespaced under `.teachers-stats-page`. Mirrors the mockup:

     .teachers-stats-page
       ├─ .tsp-chip-row              → 3 period chips
       ├─ .tsp-teacher-stats (table) → per-teacher rows
       │    ├─ .tsp-teacher-cell         → avatar dot + name
       │    ├─ .tsp-util-wrap            → mini bar + %
       │    └─ .tsp-conv-pill            → coloured %
       ├─ .tsp-panel                 → shared card container (chart)
       │    ├─ .tsp-panel-header-row     → title + insights FAB + range
       │    ├─ .tsp-series-toggle        → per-teacher chips + metric switch
       │    └─ .tsp-chart-wrap           → y-axis + SVG
       └─ .tsp-insights-popover      → floating popover (from the 💼 FAB)

   Colour tokens match the Financials + Lessons tab, so the whole
   Statistics section stays visually consistent.
   ========================================================================== */

.teachers-stats-page {
  --tsp-bg: #f5f6f4;
  --tsp-surface: #ffffff;
  --tsp-surface-muted: #f1f2ef;
  --tsp-border: #e2e4e0;
  --tsp-text: #1c231f;
  --tsp-text-secondary: #6b756f;
  --tsp-text-muted: #9aa39d;

  --tsp-brand-green: #0e503f;
  --tsp-brand-green-light: #e6efec;
  --tsp-brand-blue: #0f0069;
  --tsp-brand-blue-light: #ecebf7;

  --tsp-warn: #8a6d00;
  --tsp-warn-light: #fbf0c8;
  --tsp-danger: #a33232;
  --tsp-danger-dark: #7a2424;
  --tsp-danger-light: #f6e6e6;

  --tsp-radius: 10px;
  --tsp-radius-lg: 14px;

  color: var(--tsp-text);
  max-width: 1200px;
}

/* ---------- Loading / error placeholders ---------- */

.teachers-stats-page .tsp-loading,
.tsp-loading {
  padding: 40px;
  text-align: center;
  color: var(--tsp-text-muted);
}

.teachers-stats-page .tsp-error {
  padding: 14px 18px;
  border-radius: 8px;
  border-left: 4px solid var(--tsp-danger);
  background: var(--tsp-danger-light);
  color: var(--tsp-danger-dark);
  margin-bottom: 16px;
  font-size: 13.5px;
}

/* ---------- Period chips ---------- */

.teachers-stats-page .tsp-chip-row {
  display: flex;
  gap: 8px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.teachers-stats-page .tsp-btn-chip {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid var(--tsp-border);
  background: var(--tsp-surface);
  color: var(--tsp-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.teachers-stats-page .tsp-btn-chip:hover {
  border-color: var(--tsp-brand-green);
  color: var(--tsp-brand-green);
}
.teachers-stats-page .tsp-btn-chip.active {
  background: var(--tsp-brand-green);
  border-color: var(--tsp-brand-green);
  color: #fff;
}
.teachers-stats-page .tsp-chip-tail {
  margin-left: auto;
  font-size: 12.5px;
  color: var(--tsp-text-secondary);
}
.teachers-stats-page .tsp-chip-tail strong {
  color: var(--tsp-text);
  font-weight: 700;
}

/* ---------- Teacher stats table ---------- */

.teachers-stats-page .tsp-table-wrap {
  background: var(--tsp-surface);
  border: 1px solid var(--tsp-border);
  border-radius: var(--tsp-radius-lg);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.teachers-stats-page .tsp-teacher-stats {
  width: 100%;
  border-collapse: collapse;
}
.teachers-stats-page .tsp-teacher-stats thead th {
  text-align: left;
  font-size: 10.5px;
  color: var(--tsp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  padding: 11px 14px;
  border-bottom: 1px solid var(--tsp-border);
  background: var(--tsp-surface-muted);
}
.teachers-stats-page .tsp-teacher-stats tbody td {
  padding: 13px 14px;
  font-size: 13px;
  border-bottom: 1px solid var(--tsp-border);
  vertical-align: middle;
}
.teachers-stats-page .tsp-teacher-stats tbody tr:last-child td {
  border-bottom: none;
}
.teachers-stats-page .tsp-teacher-stats th.num-th,
.teachers-stats-page .tsp-teacher-stats td.num-td {
  text-align: right;
}

.teachers-stats-page .tsp-table-loading,
.teachers-stats-page .tsp-table-empty {
  padding: 30px 14px !important;
  text-align: center !important;
  color: var(--tsp-text-muted);
  font-size: 13px;
}

.teachers-stats-page .tsp-teacher-cell {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  transition: color 0.12s ease;
}
.teachers-stats-page .tsp-teacher-cell:hover .tsp-teacher-name {
  color: var(--tsp-brand-blue);
  text-decoration: underline;
}
.teachers-stats-page .tsp-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.teachers-stats-page .tsp-teacher-name {
  font-weight: 700;
  font-size: 13.5px;
}

.teachers-stats-page .tsp-revenue-val {
  font-weight: 700;
  color: var(--tsp-brand-green);
  text-decoration: none;
}
.teachers-stats-page .tsp-revenue-val:hover { text-decoration: underline; }
.teachers-stats-page .tsp-hours-val {
  font-weight: 600;
  color: inherit;
  text-decoration: none;
}
.teachers-stats-page .tsp-hours-val:hover {
  color: var(--tsp-brand-blue);
  text-decoration: underline;
}

.teachers-stats-page .tsp-util-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
  text-decoration: none;
  color: inherit;
}
.teachers-stats-page .tsp-util-wrap:hover .tsp-util-pct { text-decoration: underline; }
.teachers-stats-page .tsp-util-track {
  width: 70px;
  height: 8px;
  background: var(--tsp-surface-muted);
  border-radius: 20px;
  overflow: hidden;
}
.teachers-stats-page .tsp-util-fill {
  height: 100%;
  border-radius: 20px;
}
.teachers-stats-page .tsp-util-fill.good { background: var(--tsp-brand-green); }
.teachers-stats-page .tsp-util-fill.low  { background: var(--tsp-warn); }
.teachers-stats-page .tsp-util-pct {
  font-weight: 700;
  font-size: 12.5px;
  width: 34px;
  text-align: right;
}
.teachers-stats-page .tsp-util-pct.low-text { color: var(--tsp-warn); }
.teachers-stats-page .tsp-util-empty {
  color: var(--tsp-text-muted);
  font-size: 13px;
}
.teachers-stats-page .tsp-flag-note {
  font-size: 11px;
  color: var(--tsp-warn);
  margin-top: 4px;
}

.teachers-stats-page .tsp-conv-pill {
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  text-decoration: none;
  display: inline-block;
}
.teachers-stats-page .tsp-conv-pill.high {
  background: var(--tsp-brand-green-light);
  color: var(--tsp-brand-green);
}
.teachers-stats-page .tsp-conv-pill.mid {
  background: var(--tsp-warn-light);
  color: var(--tsp-warn);
}
.teachers-stats-page .tsp-conv-pill:hover { filter: brightness(0.95); }
.teachers-stats-page .tsp-conv-empty {
  color: var(--tsp-text-muted);
  font-size: 13px;
  cursor: help;
}

@media (max-width: 700px) {
  .teachers-stats-page .tsp-teacher-stats thead th,
  .teachers-stats-page .tsp-teacher-stats tbody td {
    padding: 10px 8px;
    font-size: 12.5px;
  }
  .teachers-stats-page .tsp-util-track { width: 46px; }
  .teachers-stats-page .tsp-util-pct { width: 30px; }
}

/* ---------- Panel (chart container) ---------- */

.teachers-stats-page .tsp-panel {
  background: var(--tsp-surface);
  border: 1px solid var(--tsp-border);
  border-radius: var(--tsp-radius-lg);
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}
.teachers-stats-page .tsp-panel-title {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 4px;
}
.teachers-stats-page .tsp-panel-sub {
  font-size: 12px;
  color: var(--tsp-text-secondary);
  margin: 0 0 14px;
}
.teachers-stats-page .tsp-panel-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}
.teachers-stats-page .tsp-panel-header-row .tsp-panel-title { margin-bottom: 4px; }
.teachers-stats-page .tsp-panel-header-row .tsp-panel-sub { margin-bottom: 0; }
.teachers-stats-page .tsp-panel-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.teachers-stats-page .tsp-range-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
}
.teachers-stats-page .tsp-range-label {
  font-size: 12.5px;
  color: var(--tsp-text-secondary);
  font-weight: 600;
}
.teachers-stats-page .tsp-range-select {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--tsp-border);
  background: var(--tsp-surface);
  color: var(--tsp-text);
  cursor: pointer;
}

/* ---------- Insights FAB ---------- */

.teachers-stats-page .tsp-insights-fab {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--tsp-border);
  background: var(--tsp-surface);
  font-size: 17px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.teachers-stats-page .tsp-insights-fab:hover {
  border-color: var(--tsp-brand-green);
  transform: translateY(-1px);
}
.teachers-stats-page .tsp-insights-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  background: var(--tsp-danger);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--tsp-surface);
  box-sizing: border-box;
}

/* ---------- Series toggle (per-teacher chips + metric switch) ---------- */

.teachers-stats-page .tsp-series-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 1.75rem;
  flex-wrap: wrap;
  align-items: center;
}
.teachers-stats-page .tsp-series-btn {
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1.5px solid var(--tsp-border);
  background: var(--tsp-surface);
  color: var(--tsp-text-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: opacity 0.15s ease;
}
.teachers-stats-page .tsp-series-btn:not(.active) { opacity: 0.72; }
.teachers-stats-page .tsp-series-btn:hover { opacity: 1; }
.teachers-stats-page .tsp-series-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.teachers-stats-page .tsp-metric-toggle {
  display: flex;
  gap: 6px;
  margin-left: auto;
}
.teachers-stats-page .tsp-metric-btn {
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 13px;
  border-radius: 8px;
  border: 1px solid var(--tsp-border);
  background: var(--tsp-surface-muted);
  color: var(--tsp-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.teachers-stats-page .tsp-metric-btn:hover {
  border-color: var(--tsp-brand-green);
  color: var(--tsp-brand-green);
}
.teachers-stats-page .tsp-metric-btn.active {
  background: var(--tsp-brand-green);
  border-color: var(--tsp-brand-green);
  color: #fff;
}

/* ---------- Chart ---------- */

.teachers-stats-page .tsp-chart-wrap {
  display: flex;
  gap: 10px;
  min-height: 220px;
}
.teachers-stats-page .tsp-chart-yaxis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 220px;
  padding-bottom: 22px;
  font-size: 10.5px;
  color: var(--tsp-text-muted);
  text-align: right;
  width: 46px;
  flex-shrink: 0;
}
.teachers-stats-page .tsp-chart-grid {
  position: relative;
  flex: 1;
  min-width: 0;
}
.teachers-stats-page .tsp-chart-empty {
  padding: 60px 20px;
  text-align: center;
  color: var(--tsp-text-muted);
  font-size: 13px;
}

/* ---------- Insights popover ---------- */

.teachers-stats-page .tsp-insights-popover {
  position: fixed;
  top: 120px;
  right: 40px;
  width: 340px;
  max-width: calc(100vw - 32px);
  background: var(--tsp-surface);
  border: 1px solid var(--tsp-border);
  border-radius: var(--tsp-radius-lg);
  box-shadow: 0 16px 40px rgba(15, 0, 105, 0.18);
  z-index: 80;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
}
.teachers-stats-page .tsp-ip-header {
  display: flex;
  align-items: center;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--tsp-border);
  flex-shrink: 0;
}
.teachers-stats-page .tsp-ip-title {
  font-weight: 700;
  font-size: 14px;
}
.teachers-stats-page .tsp-ip-close {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 15px;
  cursor: pointer;
  color: var(--tsp-text-muted);
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.teachers-stats-page .tsp-ip-close:hover {
  background: var(--tsp-surface-muted);
}
.teachers-stats-page .tsp-ip-body {
  padding: 0.9rem 1.2rem 1.1rem;
  overflow-y: auto;
}
.teachers-stats-page .tsp-ip-empty {
  margin: 0;
  padding: 20px 0;
  color: var(--tsp-text-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.teachers-stats-page .tsp-ip-alert {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--tsp-border);
}
.teachers-stats-page .tsp-ip-alert:last-of-type {
  border-bottom: none;
}
.teachers-stats-page .tsp-ip-alert-icon {
  font-size: 15px;
  flex-shrink: 0;
  margin-top: 1px;
}
.teachers-stats-page .tsp-ip-alert-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 3px;
  line-height: 1.3;
}
.teachers-stats-page .tsp-ip-alert.critical .tsp-ip-alert-title { color: var(--tsp-danger); }
.teachers-stats-page .tsp-ip-alert.warning  .tsp-ip-alert-title { color: var(--tsp-warn); }
.teachers-stats-page .tsp-ip-alert.ok       .tsp-ip-alert-title { color: var(--tsp-brand-green); }
.teachers-stats-page .tsp-ip-alert.neutral  .tsp-ip-alert-title { color: var(--tsp-text); }
.teachers-stats-page .tsp-ip-alert-sub {
  font-size: 11.5px;
  color: var(--tsp-text-secondary);
  line-height: 1.45;
}
.teachers-stats-page .tsp-ip-alert-sub a {
  color: var(--tsp-brand-blue);
  font-weight: 600;
  text-decoration: none;
}
.teachers-stats-page .tsp-ip-alert-sub a:hover {
  text-decoration: underline;
}
.teachers-stats-page .tsp-ip-footnote {
  font-size: 10.5px;
  color: var(--tsp-text-muted);
  line-height: 1.5;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--tsp-border);
}

@media (max-width: 700px) {
  .teachers-stats-page .tsp-insights-popover {
    top: auto;
    bottom: 20px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}
/* =======================================================================
   reset-password-modal.css — scoped styles for the "Reset teacher
   password" modal used on the Teacher Profile page (TeacherDetailPage).

   Design goals (matches the mockup the user attached):
   - Deep-indigo header band with a yellow lock icon and white title
   - White body with generous 24px padding so nothing touches the edges
   - Clearly visible input boxes (border + focus ring) — the old classes
     (`onboarding-input`, `btn btn-primary`) had no matching CSS on this
     page and rendered as invisible/unstyled controls.
   - Rounded pill buttons: outlined "Cancel" on the left, filled yellow
     "Set new password" primary on the right.

   Colors are pulled from `styles/colors.css` (var(--color-primary),
   var(--color-secondary), var(--color-text*), var(--color-error-*),
   var(--color-success-*)) so a future rebrand only touches one file.

   All classes are namespaced under `.rpm-*` (reset password modal) so
   they cannot collide with any other page.
   ======================================================================= */

/* ---- Overlay + card ---------------------------------------------------- */
.rpm-overlay {
  position: fixed;
  inset: 0;
  /* Deep-indigo tinted dim so the overlay itself carries brand mood.
     We use rgba() literally rather than a variable because CSS custom
     properties cannot be combined with alpha in a single expression
     without extra plumbing. */
  background: rgba(15, 0, 105, 0.55);
  /* Above the sticky topbar-stack (95) and above the generic mc-*
     dialog shell, which moved from 200 to 1300 on 2026-09-07 so a
     dialog can no longer be painted under the drawer that opened it.
     This one has to stay on top of that, hence 1400. */
  z-index: 1400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: rpm-fade-in 160ms ease-out;
}

@keyframes rpm-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.rpm-card {
  width: 100%;
  max-width: 480px;
  background: var(--color-white);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(15, 0, 105, 0.35);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: rpm-pop-in 200ms cubic-bezier(0.2, 0.9, 0.3, 1.15);
}

@keyframes rpm-pop-in {
  from { opacity: 0; transform: translateY(10px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}

/* ---- Header band ------------------------------------------------------- */
/* Deep indigo band, 20px vertical padding for a comfortable "hero" feel */
.rpm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--color-primary);
  padding: 20px 24px;
  color: var(--color-white);
}

.rpm-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0; /* let the title truncate rather than push the close btn */
}

/* Yellow rounded square housing the lock icon */
.rpm-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--color-secondary);
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rpm-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rpm-close {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--color-white);
  width: 32px;
  height: 32px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 120ms ease;
  flex-shrink: 0;
}
.rpm-close:hover  { background: rgba(255, 255, 255, 0.15); }
.rpm-close:focus  { outline: 2px solid var(--color-secondary); outline-offset: 2px; }

/* ---- Body -------------------------------------------------------------- */
.rpm-body {
  padding: 24px 26px 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.rpm-subtitle {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-text-light);
}

.rpm-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rpm-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  letter-spacing: 0.01em;
}

.rpm-input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--color-neutral-200);
  border-radius: 10px;
  background: var(--color-white);
  font-size: 14.5px;
  color: var(--color-text);
  font-family: inherit;
  outline: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
  box-sizing: border-box;
}
.rpm-input::placeholder { color: var(--color-text-muted); }
.rpm-input:focus {
  border-color: var(--color-primary);
  /* Soft indigo halo around the focused field */
  box-shadow: 0 0 0 3px rgba(15, 0, 105, 0.12);
}

/* Inline error / success blocks — pull from the state palette */
.rpm-error {
  padding: 10px 12px;
  background: var(--color-error-100);
  border: 1px solid var(--color-error-200);
  color: var(--color-error-700);
  border-radius: 8px;
  font-size: 13px;
}

.rpm-success {
  padding: 10px 12px;
  background: var(--color-success-100);
  border: 1px solid var(--color-success-300);
  color: var(--color-success-700);
  border-radius: 8px;
  font-size: 13px;
}

/* ---- Actions row ------------------------------------------------------- */
.rpm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.rpm-btn {
  appearance: none;
  cursor: pointer;
  padding: 11px 22px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  transition: transform 120ms ease, background-color 120ms ease,
              border-color 120ms ease, box-shadow 120ms ease;
}
.rpm-btn:disabled { opacity: 0.55; cursor: not-allowed; }

.rpm-btn-secondary {
  background: var(--color-white);
  color: var(--color-primary);
  border: 1.5px solid var(--color-primary);
}
.rpm-btn-secondary:hover:not(:disabled) {
  background: rgba(15, 0, 105, 0.06);
}

.rpm-btn-primary {
  background: var(--color-secondary);
  color: var(--color-text);
  border: 1.5px solid var(--color-secondary);
  /* Yellow glow keeps the CTA anchored visually */
  box-shadow: 0 4px 14px rgba(251, 232, 64, 0.45);
}
.rpm-btn-primary:hover:not(:disabled) {
  background: var(--color-brand-yellow-500);
  border-color: var(--color-brand-yellow-500);
  transform: translateY(-1px);
}

/* ---- Small screens ---------------------------------------------------- */
@media (max-width: 480px) {
  .rpm-card { max-width: 100%; border-radius: 16px; }
  .rpm-header { padding: 16px 18px; }
  .rpm-body { padding: 20px 18px 18px; }
  .rpm-actions { flex-direction: column-reverse; }
  .rpm-btn { width: 100%; }
}
/*
 * Payments page v3 — dedicated CSS for the "My Classes → Payments" tab.
 *
 * All classes are prefixed `ppv3-` so they cannot collide with any
 * other page in the app. Palette + typography follow the design
 * mockup (Fredoka display + Poppins body, navy/green/coral/yellow).
 * We consume the app's CSS variables for the palette (defined in
 * ui-system.css / global.css) so the page inherits the school's brand
 * where the mockup used raw hex values.
 */

/* Local palette — matches the mockup's navy/green/coral/yellow scheme.
 * These are namespaced under .ppv3-page so they do NOT leak into any
 * other component that might also read --navy etc. */
.ppv3-page {
  --ppv3-navy: #0f0069;
  --ppv3-green: #0e503f;
  --ppv3-coral: #e0562f;
  --ppv3-yellow: #fdd504;
  --ppv3-gray: #8b929a;
  --ppv3-gray-bg: #f1f2ef;
  --ppv3-line: #e2e4e0;
  --ppv3-green-bg: #e6efec;
  --ppv3-coral-bg: #fbe3db;
  --ppv3-purple: #8b7ce0;
  --ppv3-purple-bg: #ece9fb;
  --ppv3-yellow-bg: #fdf3d3;
  --ppv3-navy-bg: #e9e6f7;
  /* Deep mustard used for the "EARNED" label so it stays readable
   * on top of the pale yellow tint (the raw yellow #fdd504 vanishes
   * against #fdf3d3). */
  --ppv3-brand-yellow-warn: #8a6d00;

  color: #14171a;
}

/* Period pills (This week / This month / …) */
.ppv3-period-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.ppv3-period-pill {
  font-size: 11.5px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 16px;
  border: 1.5px solid var(--ppv3-line);
  background: #fff;
  color: #4b5259;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ppv3-period-pill:hover { border-color: var(--ppv3-navy); }
.ppv3-period-pill.active {
  background: var(--ppv3-navy);
  color: #fff;
  border-color: var(--ppv3-navy);
}

/* 3 stat cards.
 * The card values (money amounts, "LAST FULL PAYMENT", "24 j" tags)
 * need enough width to render without truncating. We drop to a single
 * column earlier than the layout breakpoint so tablets in portrait
 * and small landscape phones don't cut off the right edge of the
 * third card. */
.ppv3-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}
@media (max-width: 900px) {
  .ppv3-stats-grid { grid-template-columns: 1fr; }
}
/* Each card is fully tinted with the pastel of its accent color:
 * warm yellow for Earned, mint green for Lessons given, lavender
 * for All-time. The border matches the tint (no visible stroke) so
 * the card reads as a single soft chip.
 *
 * The emoji sits inside a WHITE circle in the top-right corner, so
 * the icon pops against the colored surface. */
.ppv3-stat-card {
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--ppv3-line);
}
/* Full-saturation cards — each tile is a solid block of the brand
 * colour. Yellow is light enough to keep dark text; green + navy are
 * dark so their text/emoji circle flip to white for contrast. */
.ppv3-stat-card--earned {
  background: var(--ppv3-yellow);
  border-color: var(--ppv3-yellow);
}
.ppv3-stat-card--lessons {
  background: var(--ppv3-green);
  border-color: var(--ppv3-green);
}
.ppv3-stat-card--alltime {
  background: var(--ppv3-navy);
  border-color: var(--ppv3-navy);
}

/* Old accent bar — kept selector so any leftover markup wouldn't
 * break, but hidden because the whole card is now tinted. */
.ppv3-stat-card-bar { display: none; }

.ppv3-stat-card-body { padding: 18px 20px; position: relative; }

/* White circle badge holding the emoji — always in the top-right. */
.ppv3-stat-icon-box {
  position: absolute;
  top: 14px; right: 16px;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(15, 0, 105, 0.08);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  line-height: 1;
}

/* Label text: tinted to the card's own accent so it feels like it
 * "belongs" to the card, not a generic gray label. */
.ppv3-stat-label {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
/* Yellow card: dark navy label reads well on bright yellow.
 * Green + navy cards: white label for contrast on the dark bg. */
.ppv3-stat-card--earned  .ppv3-stat-label { color: var(--ppv3-navy); }
.ppv3-stat-card--lessons .ppv3-stat-label { color: #ffffff; opacity: 0.9; }
.ppv3-stat-card--alltime .ppv3-stat-label { color: #ffffff; opacity: 0.9; }

/* Main number — strong, colored to match the accent so it reads
 * at a glance from the other side of the room. */
.ppv3-stat-value {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 26px;
  margin-bottom: 6px;
}
/* Main number colour per card. Yellow keeps near-black for punch;
 * green + navy flip to white so the number pops off the dark bg. */
.ppv3-stat-card--earned  .ppv3-stat-value { color: #14171a; }
.ppv3-stat-card--lessons .ppv3-stat-value { color: #ffffff; }
.ppv3-stat-card--alltime .ppv3-stat-value { color: #ffffff; }

/* Footnote — muted but still readable. Colour is per-card so it
 * stays visible on both the light yellow and the dark green/navy. */
.ppv3-stat-note {
  font-size: 11.5px;
}
.ppv3-stat-card--earned  .ppv3-stat-note { color: #52585f; }
.ppv3-stat-card--lessons .ppv3-stat-note { color: #ffffff; opacity: 0.85; }
.ppv3-stat-card--alltime .ppv3-stat-note { color: #ffffff; opacity: 0.85; }

/* "€X paid · €Y unpaid" breakdown line under the Earned number.
 * Sits directly below the ppv3-stat-note in the Earned card only.
 * Kept small and dense — teachers scan it, they don't read it.
 *
 * When there's any unpaid amount, the `.has-unpaid` modifier tints
 * the unpaid span coral so the number the teacher needs to chase
 * jumps out immediately. The paid span stays a muted grey-green.
 * When everything is paid, both spans render neutral. */
.ppv3-stat-breakdown {
  margin-top: 4px;
  font-size: 11.5px;
  font-weight: 500;
  color: #52585f;
  line-height: 1.3;
}
.ppv3-stat-breakdown-paid {
  color: var(--ppv3-mint, #2f7d5b);
}
.ppv3-stat-breakdown-sep {
  color: #b3b8bf;
  padding: 0 2px;
}
.ppv3-stat-breakdown-unpaid {
  color: #52585f;
}
.ppv3-stat-breakdown.has-unpaid .ppv3-stat-breakdown-unpaid {
  color: var(--ppv3-coral, #d84a3a);
  font-weight: 600;
}

/* Two-column layout: tile grid left, detail panel right.
 * `minmax(0, 1fr)` on the right column prevents grid children from
 * pushing the column wider than its share of the viewport (grid
 * items default to min-content, which can overflow horizontally when
 * they contain long words or wide inline elements). Without this,
 * the detail panel's stat cards could push the whole page wider than
 * the viewport on mobile. */
.ppv3-layout {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  /* The parent PageSection is `flush` (no inner padding) so the layout
   * must paint its own breathing room away from the white block's
   * border — otherwise the filter pills and search look glued to the
   * top-left corner. */
  padding: 20px 24px;
}
@media (max-width: 900px) {
  .ppv3-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .ppv3-layout { padding: 14px 16px; }
}

/* Filter row */
.ppv3-filter-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.ppv3-filter-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.ppv3-filter-pill {
  font-size: 11.5px;
  font-weight: 700;
  padding: 7px 12px;
  border-radius: 14px;
  border: 1.5px solid var(--ppv3-line);
  background: #fff;
  color: var(--ppv3-gray);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ppv3-filter-pill.active {
  background: var(--ppv3-navy-bg);
  color: var(--ppv3-navy);
  border-color: var(--ppv3-navy-bg);
}
.ppv3-filter-pill-count {
  font-size: 9px;
  background: var(--ppv3-gray-bg);
  color: var(--ppv3-gray);
  padding: 1px 6px;
  border-radius: 8px;
  font-weight: 800;
}
.ppv3-filter-pill.active .ppv3-filter-pill-count {
  background: var(--ppv3-navy);
  color: #fff;
}
.ppv3-dropdown-row { display: flex; gap: 8px; }
.ppv3-filter-select {
  flex: 1;
  border: 1.5px solid var(--ppv3-line);
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 11.5px;
  font-family: 'Poppins', sans-serif;
  background: #fff;
  color: #4b5259;
  cursor: pointer;
}
.ppv3-search-input {
  border: 1.5px solid var(--ppv3-line);
  border-radius: 14px;
  padding: 9px 13px;
  font-size: 12px;
  font-family: 'Poppins', sans-serif;
  width: 100%;
}

/* The search box and the phone's "more filters" button share a wrapper
   so they can sit on one line below 640px. On a computer that wrapper
   must not exist as far as layout is concerned: `display: contents`
   makes the input a direct child of the filter column again, exactly
   where it sat before the wrapper was introduced. */
.ppv3-search-row { display: contents; }

/* Phone-only control (see mobile-schedule-payments-v3.css). Declared
   `none` here so it never shows on a computer, where the two dropdowns
   it folds away are permanently on screen. */
.ppv3-filter-toggle { display: none; }

/* Phone-only money column on a row. A computer keeps what it has: the
   word "Due" plus the server's coral caption. */
.ppv3-tile-owed,
.ppv3-tile-unpaid { display: none; }

/* Tile grid.
 * `minmax(0, 1fr)` on each column keeps long student names / numbers
 * from pushing the tiles wider than their allotted share, which was
 * causing horizontal overflow on narrow screens. Below 480px we drop
 * to a single column: two tiles side-by-side becomes unreadable when
 * each is under ~150px wide. */
.ppv3-tile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
@media (max-width: 480px) {
  .ppv3-tile-grid { grid-template-columns: minmax(0, 1fr); }
}
.ppv3-tile {
  background: #fff;
  border: 1.5px solid var(--ppv3-line);
  border-radius: 14px;
  padding: 14px 10px;
  text-align: center;
  cursor: pointer;
  position: relative;
  transition: border-color 0.15s, background 0.15s;
}
.ppv3-tile:hover { border-color: var(--ppv3-navy); }
.ppv3-tile.selected {
  border-color: var(--ppv3-green);
  background: var(--ppv3-green-bg);
}
.ppv3-tile-status-dot {
  position: absolute;
  top: 9px; right: 9px;
  width: 8px; height: 8px;
  border-radius: 50%;
}
.ppv3-tile-status-dot.attention { background: var(--ppv3-coral); }
.ppv3-tile-status-dot.paid_up { background: var(--ppv3-green); }
.ppv3-tile-flag {
  width: 38px; height: 38px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px;
  margin: 0 auto 8px;
  background: var(--ppv3-gray-bg);
}
.ppv3-tile-name {
  font-size: 11.5px;
  font-weight: 700;
  margin-bottom: 5px;
  line-height: 1.3;
  word-break: break-word;
}
.ppv3-tile-type {
  font-size: 8px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 7px;
  display: inline-block;
}
.ppv3-tile-type.individual {
  background: var(--ppv3-purple-bg);
  color: var(--ppv3-purple);
}
.ppv3-tile-type.group {
  background: var(--ppv3-yellow-bg);
  color: #8a6d00;
}
/* Inline attention caption — shows the concrete reason
 * ("€60 owed · 3 unpaid") right on the tile so the teacher grasps the
 * flag at a glance. Coral matches the status dot in the top-right
 * corner so the eye chains from dot → reason without hunting. */
.ppv3-tile-note {
  margin-top: 6px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.3;
  padding: 3px 8px;
  border-radius: 8px;
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.ppv3-tile-note.attention {
  background: var(--ppv3-coral-bg);
  color: var(--ppv3-coral);
}

/* Price per class on the row. A PHONE thing only (the owner's
   2026-09-24 mockup scans the list by it — see mobile-fixes-v2.css).
   A computer tile is a centred card with the name under a flag, and
   dropping a price into it changes a screen nobody asked to change. */
.ppv3-tile-rate { display: none; }

/* The dot in a filter pill. It replaced a ⚠️ / ✅ emoji pair, which
   rendered differently on every phone and taught a second symbol for
   something the rows already say with a coloured dot. It lives here
   rather than in the phone stylesheet because the pills exist on both. */
.ppv3-filter-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 5px;
  vertical-align: middle;
  /* Same two colours as `.ppv3-tile-status-dot`. */
  background: var(--ppv3-coral, #e0562f);
}
.ppv3-filter-dot.paid_up { background: var(--ppv3-green, #0e503f); }

/* The balance-box captions ship in two lengths (see `BoxLabel`). A
   computer has room for the long one. */
.ppv3-label-short { display: none; }

/* Detail panel */
.ppv3-detail-panel {
  background: #fff;
  border: 1px solid var(--ppv3-line);
  border-radius: 16px;
  padding: 22px 24px;
  min-height: 480px;
}
.ppv3-detail-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 440px;
  text-align: center;
  color: var(--ppv3-gray);
}
.ppv3-detail-empty-icon { font-size: 30px; margin-bottom: 12px; }
.ppv3-detail-empty-text { font-size: 13px; max-width: 260px; line-height: 1.6; }

/* Student detail header */
.ppv3-detail-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  /* Lets the "Send invoice" button drop onto its own line instead of
     squeezing a long student name on a narrow phone screen. */
  flex-wrap: wrap;
}
/* "Send invoice" block: the button plus its little status caption.
   `margin-left: auto` is what parks it at the far right of the header. */
.ppv3-detail-invoice {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
}
/* The invoice button is the one thing on this screen the teacher is
   meant to hand to the student, so it wears the app's brand blue and a
   lift shadow — a filled primary, not the white outlined "secondary"
   used by the form buttons below it. */
.ppv3-invoice-btn {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 12.5px;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1.5px solid var(--color-brand-indigo-500, #0f0069);
  background: var(--color-brand-indigo-500, #0f0069);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15, 0, 105, 0.28);
  transition: background 0.15s, box-shadow 0.15s, transform 0.15s;
}
.ppv3-invoice-btn:hover:not(:disabled) {
  background: var(--color-brand-indigo-600, #0c0054);
  border-color: var(--color-brand-indigo-600, #0c0054);
  box-shadow: 0 4px 10px rgba(15, 0, 105, 0.34);
  transform: translateY(-1px);
}
.ppv3-invoice-btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 1px 3px rgba(15, 0, 105, 0.3);
}
/* While the link is being minted the button stays blue but flattens,
   so "I clicked and nothing happened" is never the impression. */
.ppv3-invoice-btn:disabled {
  opacity: 0.6;
  cursor: default;
  box-shadow: none;
  transform: none;
}

.ppv3-invoice-toast {
  font-size: 11.5px;
  font-weight: 600;
  text-align: right;
}
.ppv3-invoice-toast.ok { color: var(--ppv3-green); }
.ppv3-invoice-toast.err { color: var(--ppv3-coral); }
.ppv3-detail-avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
  background: var(--ppv3-coral-bg);
}
.ppv3-detail-name {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 16px;
}
.ppv3-detail-rate {
  font-size: 11.5px;
  color: var(--ppv3-gray);
  margin-top: 1px;
}

/* Balance strip */
.ppv3-balance-strip {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
}
.ppv3-balance-box {
  flex: 1;
  background: var(--ppv3-gray-bg);
  border-radius: 12px;
  padding: 14px;
  text-align: center;
}
.ppv3-balance-box.alert { background: var(--ppv3-coral-bg); }
.ppv3-balance-box-num {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 18px;
}
.ppv3-balance-box.alert .ppv3-balance-box-num { color: var(--ppv3-coral); }
.ppv3-balance-box-label {
  font-size: 9.5px;
  color: var(--ppv3-gray);
  text-transform: uppercase;
  margin-top: 3px;
}

/* Inline "record payment" form */
.ppv3-inline-form {
  background: var(--ppv3-gray-bg);
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 20px;
}
.ppv3-inline-form-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 12px;
}
.ppv3-form-row {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.ppv3-form-input {
  border: 1.5px solid var(--ppv3-line);
  border-radius: 9px;
  padding: 9px 11px;
  font-size: 12.5px;
  font-family: 'Poppins', sans-serif;
  background: #fff;
}
.ppv3-form-input.amount { flex: 1; }
.ppv3-form-input.date { width: 150px; }
.ppv3-method-chips {
  display: flex;
  gap: 7px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.ppv3-method-chip {
  font-size: 11.5px;
  font-weight: 700;
  padding: 7px 13px;
  border-radius: 10px;
  border: 1.5px solid var(--ppv3-line);
  background: #fff;
  color: #4b5259;
  cursor: pointer;
}
.ppv3-method-chip.selected {
  background: var(--ppv3-navy);
  color: #fff;
  border-color: var(--ppv3-navy);
}
.ppv3-form-submit {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 12.5px;
  padding: 10px 18px;
  border-radius: 10px;
  border: none;
  background: var(--ppv3-green);
  color: #fff;
  cursor: pointer;
}
.ppv3-form-submit:disabled { opacity: 0.5; cursor: default; }
.ppv3-form-secondary {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 12.5px;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1.5px solid var(--ppv3-line);
  background: #fff;
  color: #14171a;
  cursor: pointer;
}
.ppv3-form-secondary:disabled { opacity: 0.5; cursor: default; }
.ppv3-form-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.ppv3-form-note { width: 100%; margin-top: 8px; }

.ppv3-form-toast {
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}
.ppv3-form-toast.ok {
  background: var(--ppv3-green-bg);
  color: var(--ppv3-green);
}
.ppv3-form-toast.err {
  background: var(--ppv3-coral-bg);
  color: var(--ppv3-coral);
}

/* Monthly ledger rows */
.ppv3-txn-section-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--ppv3-gray);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
/* "Payment history" heading + the "View lessons history" door on the
   same line, so the two screens read as one flow. */
.ppv3-txn-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
/* Bridge link from a charge to the class that produced it. */
.ppv3-lessons-link {
  font-size: 11px;
  font-weight: 700;
  color: var(--ppv3-coral);
  text-decoration: none;
  white-space: nowrap;
}
.ppv3-lessons-link:hover { text-decoration: underline; }
/* Per-month variant: quieter, sits right after the "March 2026" label. */
.ppv3-lessons-link--month {
  margin-left: 8px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ppv3-gray);
}
/* Group header variant: pushed to the far right of the header row. */
.ppv3-lessons-link--header { margin-left: auto; }
.ppv3-month-group { margin-bottom: 16px; }
.ppv3-month-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.ppv3-month-label {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 12.5px;
  color: var(--ppv3-navy);
}
.ppv3-month-summary {
  font-size: 10.5px;
  color: var(--ppv3-gray);
}
.ppv3-lesson-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 2px;
  border-bottom: 1px solid var(--ppv3-gray-bg);
}
.ppv3-lesson-row:last-child { border-bottom: none; }
.ppv3-lesson-date {
  font-size: 10.5px;
  color: var(--ppv3-gray);
  width: 52px;
  flex-shrink: 0;
}
.ppv3-lesson-desc { flex: 1; min-width: 0; }
.ppv3-lesson-title {
  font-size: 12.5px;
  font-weight: 700;
}
.ppv3-lesson-sub {
  font-size: 10px;
  color: var(--ppv3-gray);
  margin-top: 1px;
}
.ppv3-lesson-price {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 12.5px;
  flex-shrink: 0;
}
.ppv3-lesson-price.credit { color: var(--ppv3-green); }
.ppv3-paid-tag {
  font-size: 9.5px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 8px;
  flex-shrink: 0;
}
.ppv3-paid-tag.unpaid { background: var(--ppv3-coral-bg); color: var(--ppv3-coral); }
.ppv3-paid-tag.paid { background: var(--ppv3-green-bg); color: var(--ppv3-green); }

/* ---- A payment line is clickable: it opens the correction form ----
 * Rendered as a real <button> so the keyboard and screen readers get
 * the same door the mouse does. These resets are what stop a button
 * looking like one — the line must read exactly like the lesson lines
 * around it, apart from the pencil and the hover. */
button.ppv3-lesson-row {
  width: 100%;
  font: inherit;
  color: inherit;
  text-align: left;
  background: none;
  border: none;
  border-bottom: 1px solid var(--ppv3-gray-bg);
  cursor: pointer;
}
button.ppv3-lesson-row:last-child { border-bottom: none; }
.ppv3-lesson-row--editable:hover,
.ppv3-lesson-row--editable:focus-visible {
  background: var(--ppv3-gray-bg);
  border-radius: 8px;
  /* Bleeds the highlight into the row's own gutter, so the whole line
     lights up rather than just the strip under the text. */
  box-shadow: 0 0 0 4px var(--ppv3-gray-bg);
  outline: none;
}
/* The pencil is the ONLY thing that says "this line can be corrected",
   so it is always visible — a control that only appears on hover does
   not exist at all on a touch screen. Quiet until the row is hovered. */
.ppv3-lesson-edit {
  flex-shrink: 0;
  color: var(--ppv3-gray);
  opacity: 0.55;
  transition: opacity 0.12s ease, color 0.12s ease;
}
.ppv3-lesson-row--editable:hover .ppv3-lesson-edit,
.ppv3-lesson-row--editable:focus-visible .ppv3-lesson-edit {
  opacity: 1;
  color: var(--ppv3-navy, #0f0069);
}
/* Keeps a lesson line's right edge flush with the payment lines. */
.ppv3-lesson-edit-spacer {
  width: 13px;
  flex-shrink: 0;
}

/* ---- Subscription periods ----
 * The bill for a student who buys TIME rather than classes. Sits above
 * the record-payment form, styled as its own card so it reads as "this
 * is what is owed" and not as one more month in the history. */
.ppv3-periods {
  background: var(--ppv3-white, #fff);
  border: 1px solid var(--ppv3-gray-bg);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
/* No date column here — a period is a stretch of time, so its own label
 * ("15 Sep – 14 Oct") is the date. The 52px gutter the lesson rows use
 * would just be empty space. */
.ppv3-period-row { gap: 12px; }
/* The period containing today: tinted so the teacher can see at a glance
 * which one is running, without reading any dates. */
.ppv3-period-row.current { background: var(--ppv3-yellow-bg); border-radius: 8px; padding-inline: 8px; }
.ppv3-period-current-tag {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--ppv3-gray);
  margin-left: 8px;
}
.ppv3-period-mark-paid {
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 800;
  padding: 5px 12px;
  border-radius: 8px;
  border: 1px solid var(--ppv3-green);
  background: var(--ppv3-green-bg);
  color: var(--ppv3-green);
  cursor: pointer;
  flex-shrink: 0;
  white-space: nowrap;
}
.ppv3-period-mark-paid:hover:not(:disabled) {
  background: var(--ppv3-green);
  color: #fff;
}
.ppv3-period-mark-paid:disabled { opacity: 0.5; cursor: default; }

/* Group roster */
.ppv3-back-to-group {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ppv3-navy);
  cursor: pointer;
  margin-bottom: 14px;
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
  font-family: 'Poppins', sans-serif;
}
.ppv3-group-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.ppv3-group-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: var(--ppv3-yellow-bg);
  display: flex; align-items: center; justify-content: center;
  font-size: 19px;
  flex-shrink: 0;
}
.ppv3-group-name {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 15px;
}
.ppv3-group-meta {
  font-size: 11px;
  color: var(--ppv3-gray);
  margin-top: 1px;
}

.ppv3-group-summary {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
}
.ppv3-group-summary-box {
  flex: 1;
  background: var(--ppv3-gray-bg);
  border-radius: 12px;
  padding: 12px;
  text-align: center;
}
.ppv3-group-summary-box.alert { background: var(--ppv3-coral-bg); }
.ppv3-group-summary-num {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 16px;
}
.ppv3-group-summary-box.alert .ppv3-group-summary-num { color: var(--ppv3-coral); }
.ppv3-group-summary-label {
  font-size: 9px;
  color: var(--ppv3-gray);
  text-transform: uppercase;
  margin-top: 2px;
}

.ppv3-members-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--ppv3-gray);
  text-transform: uppercase;
  margin-bottom: 8px;
  letter-spacing: 0.03em;
}
.ppv3-member-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 8px;
  border-radius: 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--ppv3-gray-bg);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  font-family: 'Poppins', sans-serif;
}
.ppv3-member-row:last-child { border-bottom: none; }
.ppv3-member-row:hover { background: var(--ppv3-gray-bg); }
.ppv3-member-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
  background: var(--ppv3-coral-bg);
}
.ppv3-member-name {
  font-size: 12.5px;
  font-weight: 700;
  flex: 1;
}
.ppv3-member-balance {
  font-family: 'Fredoka', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 12.5px;
}
.ppv3-member-balance.negative { color: var(--ppv3-coral); }
.ppv3-member-balance.positive { color: var(--ppv3-green); }
.ppv3-member-balance.zero { color: var(--ppv3-gray); }
.ppv3-member-chev { color: var(--ppv3-gray); font-size: 13px; }

/* Loading + error inline states */
.ppv3-inline-loading {
  padding: 40px 20px;
  text-align: center;
  color: var(--ppv3-gray);
  font-size: 12px;
}
.ppv3-inline-error {
  padding: 12px 14px;
  background: var(--ppv3-coral-bg);
  color: var(--ppv3-coral);
  border-radius: 10px;
  font-size: 12px;
  margin-bottom: 12px;
}
/* ============================================================
   modal-card.css — Redesigned modal for the three onboarding
   dialogs: Add a teacher / Create a group / Send onboarding form.
   ------------------------------------------------------------
   Scoped under the .mc-* prefix so it never collides with the
   generic <Modal>. Used by ModalCard.tsx.

   Design language (from the three-modals-redesign.html mockup):
   - Rounded 20px card, subtle indigo shadow, white background
   - Header: 40x40 colored icon badge + Fredoka title + close X
   - Divider under header AND above footer
   - Slim 12px labels with an optional coral dot for "required"
   - 10px-radius inputs with 1.5px border and focused indigo ring
   - Small "Fredoka" pill buttons in the footer (14/16px radius)
   ============================================================ */

/* Local palette — mirrors the mockup exactly so a single class list
   can style every modal variant. Values were picked to match the
   codebase's existing indigo/green/yellow/coral so the modals blend
   with the rest of the app. */
.mc-root {
  --mc-navy: #0f0069;
  --mc-green: #0e503f;
  --mc-coral: #e0562f;
  --mc-yellow: #fdd504;
  --mc-gray: #8b929a;
  --mc-gray-bg: #f1f2ef;
  --mc-line: #e2e4e0;

  --mc-green-bg: #e6efec;
  --mc-yellow-bg: #fdf3d3;
  --mc-navy-bg: #e9e6f7;
  /* Coral tint used for the "money going OUT" flow (record a payment
     to a teacher). Same soft peach used in the mockup so incoming vs
     outgoing money stays instantly readable to the owner. */
  --mc-coral-bg: #fbe3db;
  /* Soft red behind the icon of a destructive dialog (cancel a class). */
  --mc-red-bg: #fdecea;

  --mc-fredoka: 'Fredoka', 'Poppins', 'Inter', system-ui, sans-serif;
  --mc-body: 'Poppins', 'Inter', system-ui, sans-serif;
}

/* Backdrop — pinned to the viewport, above EVERY panel this dialog can
   be opened from.
   ------------------------------------------------------------------
   This used to be 200, which is below the app's drawers and panels
   (900/901) and below the send-invoice popovers (1000/1200). A dialog
   opened from one of those was painted UNDERNEATH it: the group's
   payment drawer kept its own footer on top of the form, so "Save
   changes" could be seen but never clicked (2026-09-07). Nothing had
   caught it because the one dialog ever opened from that drawer closed
   the drawer first.

   The house dialog shell must therefore outrank every panel. The app's
   layers, from here up:
       900/901   drawers, side panels, their backdrops
       1000/1200 send-invoice popovers
    →  1300      THIS — any mc-* dialog
       4000      the drag-undo toast (must survive a dialog closing)
       9000/9001 the help FAB and its chat
       10000     combobox panels (so a dropdown INSIDE a dialog opens
                 above it — do not raise this shell past that)
       100000    VerifyEmailBlocker, always the top-most thing. */
.mc-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 0, 105, 0.32);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  z-index: 1300;
}

/* The white card. Max-width mirrors the mockup (420px). We cap
   max-height at 90vh so tall modals still allow the footer to
   remain visible while the body scrolls.
   `dvh` (dynamic viewport height) is used on top of the `vh`
   fallback: on mobile browsers `vh` ignores the address bar, which
   would push the footer off-screen. */
.mc-card {
  background: #fff;
  border-radius: 20px;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  max-height: 90dvh;
  box-shadow: 0 24px 60px rgba(15, 0, 105, 0.22);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: var(--mc-body);
  color: #14171a;
}

/* ---- One dialog, one body font (2026-09-05) ----
 *
 * Owner, of the cancel dialog: *"the titles are with the font that we
 * don't use much… it has to be standardised everywhere"*. Measured, the
 * dialog was painting in THREE families at once: Fredoka on the title
 * and the buttons (correct — the house heading font, see the design
 * specs), Poppins on the labels, and **Inter** on every paragraph.
 *
 * The paragraph was the odd one out, and not only here. `typo.css` has a
 * bare `p { font-family: var(--font-body) }` — Inter. An element rule
 * applied DIRECTLY to the `<p>` always beats a family INHERITED from an
 * ancestor, however specific that ancestor's selector, so `.mc-card`'s
 * `--mc-body` never reached a single paragraph in ANY dialog in the app.
 * `<div>` and `<label>` siblings inherited it correctly, which is why the
 * mismatch went unnoticed for so long: it only shows in prose.
 *
 * `h1`–`h4` in that file are already covered, because every heading in
 * here sets its own family (`.mc-title`). */
.mc-card p {
  font-family: inherit;
}

/* Size overrides — some flows need more room (long forms). */
.mc-card--md { max-width: 520px; }
.mc-card--lg { max-width: 640px; }

/* Header — icon badge on the left, title, close on the right. */
.mc-head {
  padding: 20px 22px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.mc-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.mc-title {
  font-family: var(--mc-fredoka);
  font-weight: 700;
  font-size: 16.5px;
  line-height: 1.2;
  flex: 1;
  color: #14171a;
  margin: 0;
}

.mc-close {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--mc-gray);
  cursor: pointer;
  border: none;
  background: transparent;
  padding: 0;
  flex-shrink: 0;
  transition: background 120ms;
}
.mc-close:hover { background: var(--mc-gray-bg); }

/* Thin dividers around the body. */
.mc-divider {
  height: 1px;
  background: var(--mc-line);
  flex-shrink: 0;
}

/* Scrollable body — takes the leftover height of the card and scrolls
   its own content, keeping header + footer permanently visible.
   `min-height: 0` is REQUIRED: a flex child refuses to shrink below
   its content by default, which would make the body grow past the
   card and get clipped (footer unreachable, no scrollbar). */
.mc-body {
  padding: 18px 22px;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
  /* Momentum scrolling + let the modal keep the gesture on mobile. */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Form-as-shell — used when a <form> wraps the body/divider/footer
   (the submit button must live inside the same <form>). Without this
   the form is an opaque block between the card and the body: the
   card's height limit never reaches `.mc-body`, so nothing scrolls
   and the footer is cut off. Making the form itself a flex column
   that fills the card restores the scrolling chain. */
.mc-form {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

/* Small "explain what this modal does" paragraph under the header. */
.mc-desc {
  font-size: 12.5px;
  color: var(--mc-gray);
  line-height: 1.6;
  margin: 0 0 18px;
}

/* Vertical field stack. */
.mc-field { margin-bottom: 16px; }
.mc-field:last-child { margin-bottom: 0; }

/* Row of side-by-side fields (used for e.g. "Individual rate"
   + "Group rate" in the mockup). */
.mc-field-row {
  display: flex;
  gap: 10px;
}
.mc-field-row .mc-field { flex: 1; }

/* Labels — small, bold, with a coral dot for required or a grey
   "(optional)" tag for the rest. */
.mc-field-label {
  font-size: 12px;
  font-weight: 700;
  color: #14171a;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.mc-field-label .mc-opt {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--mc-gray);
}
.mc-required-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--mc-coral);
  flex-shrink: 0;
}

/* Inputs, selects, textareas — one shared look. */
.mc-input,
.mc-select,
.mc-textarea {
  width: 100%;
  border: 1.5px solid var(--mc-line);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px;
  font-family: var(--mc-body);
  color: #14171a;
  background: #fff;
  box-sizing: border-box;
}
.mc-input::placeholder,
.mc-textarea::placeholder { color: #b3b8bc; }
.mc-input:focus,
.mc-select:focus,
.mc-textarea:focus {
  outline: none;
  border-color: var(--mc-navy);
  box-shadow: 0 0 0 3px rgba(15, 0, 105, 0.08);
}
.mc-textarea {
  resize: vertical;
  min-height: 60px;
}

/* Tiny helper text under an input. */
.mc-field-hint {
  font-size: 10.5px;
  color: var(--mc-gray);
  margin-top: 5px;
  line-height: 1.5;
}

/* Password field — input has right padding so the eye icon
   doesn't overlap the placeholder. */
.mc-pw-wrap {
  position: relative;
}
.mc-pw-wrap .mc-input { padding-right: 36px; }
.mc-pw-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--mc-gray);
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 4px;
  display: inline-flex;
}

/* Footer — right-aligned by default; a spread modifier justifies
   between (used by the "Edit questions / Create link" combo). */
.mc-foot {
  padding: 14px 22px 20px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.mc-foot--spread { justify-content: space-between; }

/* Keeps Cancel + the primary button glued together on the right when a
   footer also carries something on the left (e.g. a Remove link). */
.mc-foot-actions {
  display: inline-flex;
  gap: 10px;
  align-items: center;
}

/* ---- Quiet destructive affordance -------------------------------
   "Remove this payment" and friends: a plain red word, not a button.
   Deleting is a rare correction, so it must be reachable without
   competing for attention with the action the teacher came here for. */
.mc-danger-link {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--mc-fredoka);
  font-size: 12.5px;
  font-weight: 600;
  color: #b42318;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mc-danger-link:hover:not(:disabled) { color: #8a1c12; }
.mc-danger-link:disabled { opacity: 0.5; cursor: not-allowed; }

/* Step two of the removal: the question and its two answers, inline
   where the link was. Nothing is sent until "Yes, remove" is pressed. */
.mc-danger-confirm {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.mc-danger-confirm-q {
  font-family: var(--mc-fredoka);
  font-size: 12.5px;
  font-weight: 600;
  color: #b42318;
}

/* Smaller pill for the two confirm answers, so a three-control cluster
   still fits next to Cancel / Save on a narrow modal. */
.mc-btn-sm {
  padding: 7px 12px;
  font-size: 11.5px;
  border-radius: 12px;
}

/* Buttons — Fredoka, rounded 16px pill. Variants below. */
.mc-btn {
  font-family: var(--mc-fredoka);
  font-weight: 600;
  font-size: 12.5px;
  padding: 10px 18px;
  border-radius: 16px;
  border: none;
  cursor: pointer;
  line-height: 1.2;
  transition: transform 120ms, box-shadow 120ms, opacity 120ms;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.mc-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.mc-btn-ghost {
  background: transparent;
  border: 1.5px solid var(--mc-line);
  color: #14171a;
}
.mc-btn-ghost:hover:not(:disabled) { background: var(--mc-gray-bg); }

.mc-btn-navy {
  background: var(--mc-navy);
  color: #fff;
}
.mc-btn-navy:hover:not(:disabled) { background: #1a0f7a; }

.mc-btn-green {
  background: var(--mc-green);
  color: #fff;
}
.mc-btn-green:hover:not(:disabled) { background: #0c4030; }

/* Destructive confirm — calling a class off, and anything else the
   teacher does not get back with one click. Red so the eye can tell it
   apart from the quiet "Keep lesson" beside it without reading either. */
.mc-btn-red {
  background: #d64545;
  color: #fff;
}
.mc-btn-red:hover:not(:disabled) { background: #b42318; }

/* "Add students to this group" accordion box. */
.mc-add-students-box {
  background: var(--mc-gray-bg);
  border-radius: 14px;
  padding: 6px;
  margin-top: 4px;
}
.mc-accordion-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 10px;
  border-radius: 10px;
  cursor: pointer;
  background: transparent;
  border: none;
  width: 100%;
  text-align: left;
  color: #14171a;
  font-family: var(--mc-body);
  transition: background 120ms;
}
.mc-accordion-row:hover { background: #fff; }
.mc-accordion-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--mc-yellow-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.mc-accordion-icon--green { background: var(--mc-green-bg); }
.mc-accordion-label {
  font-size: 12.5px;
  font-weight: 700;
  flex: 1;
}
.mc-accordion-chev {
  color: var(--mc-gray);
  font-size: 11px;
  transition: transform 120ms;
}
.mc-accordion-chev--open { transform: rotate(90deg); }

/* When a sub-section is expanded, the content sits on white below the
   grey box's row, indented slightly. */
.mc-accordion-content {
  background: #fff;
  border-radius: 10px;
  padding: 12px;
  margin-top: 4px;
}

/* Small blue counter chip next to the accordion label. */
.mc-count-chip {
  background: var(--mc-navy);
  color: #fff;
  border-radius: 10px;
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 600;
  font-family: var(--mc-body);
}

/* Section label above the accordion. */
.mc-box-label {
  font-size: 11.5px;
  font-weight: 700;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #14171a;
}
.mc-box-label .mc-opt {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--mc-gray);
}

/* Big centered icon variant (mockup view 3: onboarding form). */
.mc-link-icon-badge {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--mc-navy-bg);
  color: var(--mc-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 4px auto 14px;
}

/* "✏️ Edit questions" tertiary link (used in the spread footer). */
.mc-edit-questions-link {
  font-family: var(--mc-fredoka);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--mc-navy);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  text-decoration: none;
  background: transparent;
  border: none;
  padding: 6px 4px;
}
.mc-edit-questions-link:hover { text-decoration: underline; }

/* Error / info banners inside the body — carry the same rounded feel. */
.mc-alert {
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12.5px;
  line-height: 1.45;
  margin-bottom: 14px;
}
.mc-alert-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
}
.mc-alert-success {
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #047857;
}
/* Neutral "here is where things stand" strip — no alarm, no
   celebration. Used by "Ask the student" for "waiting for them to
   answer", which is neither good news nor bad. */
.mc-alert-info {
  background: #f4f4fb;
  border: 1px solid #dcdcec;
  color: #2b2b45;
}

/* A read-only URL next to its Copy button. The input stretches, the
   button keeps its natural width, and the row wraps on a narrow phone
   instead of squeezing the URL down to nothing. */
.mc-share-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.mc-share-row .mc-share-url {
  flex: 1 1 240px;
  font-family: ui-monospace, Menlo, Consolas, monospace;
}

/* Success state block (Send onboarding form — after the link is
   minted). Green background, monospace URL. */
.mc-link-block {
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--mc-green-bg);
  border: 1px solid #cfe0d8;
  margin-bottom: 14px;
}
.mc-link-block-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--mc-green);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}
.mc-link-block-url {
  font-size: 12.5px;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  word-break: break-all;
  color: #14171a;
}

/* ============================================================
   Payment-modal extras — additive to the .mc-* system so the
   three payment modals (Payout details / Log direct payment /
   Record payment to teacher) share exactly the same shell as
   the onboarding modals but add a few purpose-built bits:
     - .mc-direction-note   → tinted "who pays whom" banner
     - .mc-section-block    → grouped card-in-card with icon+title
     - .mc-iban-box         → grey rounded box for IBAN / handle
     - .mc-two-col          → 1:1 grid for amount + date rows
     - .mc-btn-coral        → coral pill (outgoing money button)
   ============================================================ */

/* Simple 1:1 grid used to sit "Amount" and "Date" side-by-side
   inside the mc-body without introducing another rule. */
.mc-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
.mc-two-col > .mc-field { margin-bottom: 0; }

/* Direction-note — a tinted info strip that tells the owner
   which way the money flows for this modal. Green for money
   COMING IN (student → teacher), coral for money GOING OUT
   (school → teacher). Uses the same padding/radius as the
   .mc-alert family so the visual weight matches. */
.mc-direction-note {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  background: var(--mc-green-bg);
  border-radius: 12px;
  padding: 11px 14px;
  margin-bottom: 16px;
}
.mc-direction-note--outgoing {
  background: var(--mc-coral-bg);
}
.mc-direction-note-icon {
  font-size: 14px;
  flex-shrink: 0;
  line-height: 1.5;
}
.mc-direction-note-text {
  font-size: 11.5px;
  color: var(--mc-green);
  line-height: 1.5;
}
.mc-direction-note--outgoing .mc-direction-note-text {
  color: var(--mc-coral);
}

/* Section-block — a titled grouping used to give sub-parts of the
   payout-details modal their own header (icon + title + "Private" /
   "Shown on invoices" tag). Not a nested card, just a labelled block
   with a small tinted icon. */
.mc-section-block { margin-bottom: 18px; }
.mc-section-block:last-child { margin-bottom: 0; }
.mc-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.mc-section-icon {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}
.mc-section-title {
  font-family: var(--mc-fredoka);
  font-weight: 700;
  font-size: 12.5px;
  color: #14171a;
}
.mc-section-note {
  font-size: 10.5px;
  color: var(--mc-gray);
  margin-left: auto;
}

/* IBAN-box — read-only grey rounded box that shows a chunk of
   monospace-ish text (bank details, handles). Kept generic so the
   same class can hold multi-line payout instructions. */
.mc-iban-box {
  border: 1.5px solid var(--mc-line);
  border-radius: 12px;
  padding: 12px 14px;
  background: var(--mc-gray-bg);
  font-size: 12.5px;
  color: #14171a;
  line-height: 1.6;
  letter-spacing: 0.3px;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Coral primary button — used for the "record payment to teacher"
   modal so the CTA colour matches its coral header icon. Follows
   the same shape/typography as the other .mc-btn variants. */
.mc-btn-coral {
  background: var(--mc-coral);
  color: #fff;
}
.mc-btn-coral:hover:not(:disabled) { background: #c94b26; }

/* Toggle-pill row — small square-cornered pill buttons used inside
   the modal (paid-to / payment-type pickers). Kept minimal: the pill
   inherits colour from its inline style, this rule only handles
   layout + fallback appearance. */
.mc-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.mc-pill {
  font-family: var(--mc-body);
  font-size: 12px;
  font-weight: 600;
  padding: 7px 12px;
  border-radius: 10px;
  border: 1.5px solid var(--mc-line);
  background: #fff;
  color: var(--mc-gray);
  cursor: pointer;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.mc-pill:hover:not(.mc-pill--active) { background: var(--mc-gray-bg); }
.mc-pill--active {
  background: var(--mc-navy);
  color: #fff;
  border-color: var(--mc-navy);
}
/* Colour variants — used to keep the visual language of the
   original tabs (yellow subscription, green PAYG, blue prepaid). */
.mc-pill--active.mc-pill--yellow {
  background: var(--mc-yellow-bg);
  color: #92400e;
  border-color: #fde68a;
}
.mc-pill--active.mc-pill--green {
  background: var(--mc-green-bg);
  color: var(--mc-green);
  border-color: #cfe0d8;
}
.mc-pill--active.mc-pill--blue {
  background: #dbeafe;
  color: #1e40af;
  border-color: #bfdbfe;
}
.mc-pill--active.mc-pill--purple {
  background: #ede9fe;
  color: #5b21b6;
  border-color: #ddd6fe;
}
.mc-pill--active.mc-pill--indigo {
  background: #e0e7ff;
  color: #3730a3;
  border-color: #c7d2fe;
}

/* Inline checkbox label used at the bottom of the "record payment
   to teacher" modal ("Attach the period"). Keeps the tick + text
   on one row without needing inline styles per call-site. */
.mc-check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: #14171a;
  cursor: pointer;
  padding: 4px 0;
}
.mc-check-row input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
}

/* ============================================================
   Kind picker (.xm-*) — a row of tappable cards used instead of a
   dropdown when the choice CHANGES THE MEANING of the number next
   to it (bonus vs deduction, wages vs advance). A <select> hides
   that decision behind a click; these do not.
   ============================================================ */
.xm-kind-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.xm-kind-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  text-align: left;
  padding: 10px;
  border: 1.5px solid var(--mc-border, #e3e6ea);
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.xm-kind-card:hover {
  border-color: #c8cdd4;
}
.xm-kind-card.is-active {
  border-color: var(--mc-green, #0e503f);
  background: var(--mc-green-bg, #e6efec);
}
/* A deduction is the one option that REMOVES money, so when it is the
   chosen one the card turns red rather than green. */
.xm-kind-card.is-negative.is-active {
  border-color: var(--mc-coral, #a33232);
  background: var(--mc-coral-bg, #fbeaea);
}
.xm-kind-emoji {
  font-size: 16px;
  line-height: 1;
}
.xm-kind-label {
  font-size: 12.5px;
  font-weight: 700;
  color: #14171a;
}
.xm-kind-hint {
  font-size: 11px;
  line-height: 1.35;
  color: var(--color-text-light);
}

/* Live "what this line does to the bill" strip under the form. */
.xm-preview {
  margin-top: 4px;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--mc-green-bg, #e6efec);
  color: var(--mc-green, #0e503f);
  font-size: 12.5px;
}
.xm-preview.is-negative {
  background: var(--mc-coral-bg, #fbeaea);
  color: var(--mc-coral, #a33232);
}

@media (max-width: 560px) {
  .xm-kind-grid {
    grid-template-columns: 1fr;
  }
}
/**
 * ConfirmLessonModal — attendance rows + the note box.
 *
 * Colours and shapes are lifted straight from the owner's mockup
 * (`confirm-lesson-workflow-complete.html`): green = present, coral =
 * absent, navy for the little "visible to admin" badge. They are
 * written as `var(--mc-*, <fallback>)` so the card keeps the same
 * palette as the other ModalCard dialogs and still renders correctly
 * on any page that has not defined them.
 *
 * Prefix is `clm-` so nothing here can leak into the shared `.mc-*`
 * modal shell.
 */

/* Subtitle under the header: "A1 Conversation Lab · 19:00". */
.clm-sub {
  font-size: 11px;
  color: var(--mc-gray, #8b929a);
  margin: -4px 0 14px;
}

.clm-section { margin-bottom: 14px; }
.clm-section:last-child { margin-bottom: 0; }

/* Small uppercase section heading ("Attendance …", "Lesson notes"). */
.clm-label {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--mc-navy, #0f0069);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* "visible to admin" chip beside the notes heading. */
.clm-badge {
  font-size: 8.5px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  color: var(--mc-navy, #0f0069);
  background: var(--mc-navy-bg, #e9e6f7);
  padding: 2px 7px;
  border-radius: 6px;
}

.clm-loading {
  font-size: 11.5px;
  color: var(--mc-gray, #8b929a);
  padding: 6px 2px;
}

/* One student in the attendance list. */
.clm-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  background: var(--mc-gray-bg, #f1f2ef);
  margin-bottom: 6px;
}

.clm-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--mc-purple-bg, #ece9fb);
  color: var(--mc-purple, #8b7ce0);
  font-family: var(--mc-fredoka, inherit);
  font-weight: 700;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.clm-name {
  font-size: 12px;
  font-weight: 700;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clm-toggle { display: flex; gap: 4px; flex-shrink: 0; }

/* Present / Absent pair. Both are quiet until chosen, so the row reads
   as one control rather than two competing buttons. */
.clm-pill {
  font-size: 10px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 8px;
  border: 1.5px solid var(--mc-line, #e2e4e0);
  background: #fff;
  color: var(--mc-gray, #8b929a);
  cursor: pointer;
  transition: background 120ms, border-color 120ms, color 120ms;
}
.clm-pill--present.is-active {
  background: var(--mc-green-bg, #e6efec);
  border-color: var(--mc-green, #0e503f);
  color: var(--mc-green, #0e503f);
}
.clm-pill--absent.is-active {
  background: var(--mc-coral-bg, #fbe3db);
  border-color: var(--mc-coral, #e0562f);
  color: var(--mc-coral, #e0562f);
}

/* Reason box, revealed only once somebody is marked absent. */
.clm-absent-note { margin: -2px 0 8px; }
.clm-absent-note input {
  width: 100%;
  border: 1.5px solid var(--mc-coral, #e0562f);
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 11px;
  font-family: inherit;
}
.clm-absent-note input:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--mc-coral-bg, #fbe3db);
}

.clm-textarea {
  width: 100%;
  border: 1.5px solid var(--mc-line, #e2e4e0);
  border-radius: 10px;
  padding: 9px 11px;
  font-size: 11.5px;
  font-family: inherit;
  min-height: 62px;
  resize: vertical;
}
.clm-textarea:focus {
  outline: none;
  border-color: var(--mc-navy, #0f0069);
}

.clm-error {
  margin-top: 10px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mc-coral, #e0562f);
  background: var(--mc-coral-bg, #fbe3db);
  border-radius: 8px;
  padding: 8px 10px;
}
/**
 * The floating "your lesson is being built / is ready" card.
 *
 * Bottom-right corner, on every app page. All classes are namespaced
 * `.ls-jobcard*` so this sheet is safe to load globally (AppLayout
 * imports it once).
 *
 * Palette follows specs/design/specs.md:
 *   working  → indigo  #0f0069  (the brand's "in progress" colour)
 *   ready    → green   #0e503f  (the brand's positive state)
 *   failed   → warm red #a33232 (same red as the support "Report a bug")
 * White card, 16px radius, soft shadow — same card language as the
 * dashboard stat cards.
 */

.ls-jobcard-stack {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 900; /* above page content, below modals + the offline overlay */
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* The stack must not swallow clicks on the page behind it: only the
     cards themselves are interactive. */
  pointer-events: none;
}

.ls-jobcard {
  pointer-events: auto;
  position: relative;
  width: 300px;
  max-width: calc(100vw - 40px);
  padding: 16px 40px 16px 18px;
  background: #fff;
  border: 1px solid var(--color-neutral-200, #e5e7eb);
  border-left: 4px solid var(--ls-jobcard-accent);
  border-radius: 16px;
  /* Deep, soft indigo shadow — the card floats above the page rather
     than sitting on it. Mirrors the redesign mockup's `.toast`. */
  box-shadow: 0 20px 50px rgba(15, 0, 105, 0.25);
  font-family: Inter, system-ui, sans-serif;
  animation: ls-jobcard-in 0.28s ease-out;
}

/* One custom property per state keeps the three variants to a single
   declaration each instead of repeating the whole block. */
.ls-jobcard--running { --ls-jobcard-accent: var(--color-brand-indigo, #0f0069); }
.ls-jobcard--done    { --ls-jobcard-accent: var(--color-brand-green-500, #0e503f); }
.ls-jobcard--failed  { --ls-jobcard-accent: #a33232; }

@keyframes ls-jobcard-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ls-jobcard-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  /* Fredoka, like every other card heading in the studio — the notice
     should feel like it came from the same product, not from the OS. */
  font-family: 'Fredoka', 'Poppins', Inter, system-ui, sans-serif;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ls-jobcard-accent);
}

.ls-jobcard-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--color-neutral-400, #9ca3af);
  font-size: 0.8rem;
  line-height: 1;
  cursor: pointer;
}

.ls-jobcard-close:hover {
  background: var(--color-neutral-100, #f3f4f6);
  color: var(--color-neutral-700, #374151);
}

.ls-jobcard-close:disabled { opacity: 0.5; cursor: default; }

/* ---- running ------------------------------------------------------ */

.ls-jobcard-spinner {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  border: 2.5px solid rgba(15, 0, 105, 0.16);
  border-top-color: var(--color-brand-indigo, #0f0069);
  border-radius: 50%;
  animation: ls-jobcard-spin 0.8s linear infinite;
}

@keyframes ls-jobcard-spin { to { transform: rotate(360deg); } }

.ls-jobcard-step {
  margin: 10px 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-neutral-700, #374151);
}

.ls-jobcard-count { color: var(--color-neutral-400, #9ca3af); }

.ls-jobcard-bar {
  margin-top: 8px;
  height: 6px;
  border-radius: 999px;
  background: var(--color-neutral-150, #eceef1);
  overflow: hidden;
}

.ls-jobcard-bar-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--color-brand-indigo, #0f0069);
  /* Long, eased transition: the bar moves in real steps of ~17%, and a
     snap would read as a glitch rather than progress. */
  transition: width 0.6s ease;
}

/* The INDETERMINATE state: nothing is countable yet, so the block
   travels instead of the track standing empty. See
   `lessons-studio.css` (.ls-generating-bar-sweep) for the full
   reasoning — these two must stay in step. */
.ls-jobcard-bar-sweep {
  display: block;
  height: 100%;
  width: 38%;
  border-radius: 999px;
  background: var(--color-brand-indigo, #0f0069);
  animation: ls-jobcard-bar-sweep 1.6s ease-in-out infinite;
}
@keyframes ls-jobcard-bar-sweep {
  from { transform: translateX(-100%); }
  to { transform: translateX(263%); }
}

.ls-jobcard-note {
  margin: 8px 0 0;
  font-size: 0.74rem;
  color: var(--color-neutral-500, #6b7280);
}

/* ---- done --------------------------------------------------------- */

.ls-jobcard-lesson {
  margin: 6px 0 0;
  font-size: 0.82rem;
  font-style: italic;
  color: var(--color-neutral-700, #374151);
}

.ls-jobcard-open {
  margin-top: 12px;
  width: 100%;
  padding: 10px 14px;
  border: none;
  border-radius: 12px;
  background: var(--color-brand-green-500, #0e503f);
  color: #fff;
  font-family: 'Fredoka', 'Poppins', Inter, system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}

.ls-jobcard-open:hover { background: #0a3b2e; }

/* ---- failed ------------------------------------------------------- */

.ls-jobcard-error {
  margin: 8px 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--color-neutral-700, #374151);
}

/* ---- small screens ------------------------------------------------ */

@media (max-width: 480px) {
  .ls-jobcard-stack {
    right: 12px;
    left: 12px;
    bottom: 12px;
  }
  .ls-jobcard { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .ls-jobcard { animation: none; }
  .ls-jobcard-spinner { animation-duration: 2.4s; }
  .ls-jobcard-bar-fill { transition: none; }
  /* Slowed, not stopped — a frozen bar is the bug this exists to fix. */
  .ls-jobcard-bar-sweep { animation-duration: 4s; }
}
/* ==========================================================================
   MOBILE LEGIBILITY — page-scoped colour palettes
   ==========================================================================
   User report (2026-08-24, phone screenshots): "the text is too thin,
   that's why it looks also grey — very badly visible, both the landing
   page and the platform".

   The fix landed in three waves, because this codebase has THREE
   independent typography systems and each one had to be found the hard
   way:

     1. typo.css / colors.css   `--font-weight-*`, `--color-text-*`
                                -> the landing page and shared chrome
     2. ui-system.css §99       `--ui-*`
                                -> the app shell, sidebar, generic cards
     3. THIS FILE               `--fp-*`, `--lp-*`, `--lsp-*`, `--v2-*`,
                                `--sp-*`, `--ss-*`, `--sv2-*`, `--tsp-*`,
                                `--tp-*`
                                -> the nine redesigned product screens

   Wave 3 exists because each redesigned screen ships its own cloned
   palette, scoped to a page-level class rather than `:root`. They all
   copy the same two greys:

       --<prefix>-text-secondary: #6b756f     subtitles, meta, labels
       --<prefix>-text-muted:     #9aa39d     placeholders, captions

   A `:root` override cannot reach them (a page-class selector is more
   specific), and an override placed in ui-system.css cannot either
   (these files are imported AFTER it in AppLayout.astro, same layer,
   so they win on source order). Hence a dedicated file, imported LAST.

   WHY ONLY COLOUR HERE
   --------------------
   These nine files contain ~345 `font-size` declarations at 13.5px or
   below, driving dense tables, chips and badges. Enlarging them wholesale
   overflows those layouts on a 360px screen. Weight and size are handled
   centrally in waves 1 and 2 where the tokens allow it; here we move the
   one variable that is both safe and squarely responsible for the
   "grey" complaint.

   WHY THE SELECTORS ARE DOUBLED (`.sv2.sv2`)
   ------------------------------------------
   Being imported last is NOT enough. Astro emits several of these
   stylesheets more than once (the dev server's module graph re-lists
   them, and the production bundler is free to reorder), so a
   same-specificity rule can silently lose. Repeating the class lifts
   specificity from (0,1,0) to (0,2,0) and makes the override
   deterministic in dev and in the built bundle alike. The `!important`
   on the subtitle rules is there for the same reason — the originals
   are written as `.sv2-header p.sv2-subtitle`, i.e. (0,2,1).

   All nine palettes paint dark text on a white/near-white surface
   (`--<prefix>-surface: #ffffff`), so darkening is correct for every one
   of them. Contrast that with the sidebar footer in ui-system.css §99,
   which is white-on-deep-green and had to move the OPPOSITE way — always
   check the surface before shifting a text token.
   ========================================================================== */

@media (max-width: 640px) {
  /* #6b756f -> #39443e : same hue, roughly 4.4:1 -> 8.3:1 on white.
     #9aa39d -> #6b756f : the old "secondary" value becomes the new
     "muted", which keeps the two tiers visually distinct instead of
     collapsing them into one flat colour. */

  .financials-page.financials-page {
    --fp-text-secondary: #39443e;
    --fp-text-muted: #6b756f;
  }

  .leads-page.leads-page {
    --lp-text-secondary: #39443e;
    --lp-text-muted: #6b756f;
  }

  .lessons-stats-page.lessons-stats-page {
    --lsp-text-secondary: #39443e;
    --lsp-text-muted: #6b756f;
  }

  /* Lessons Studio uses a slightly cooler muted grey (#8b929a). */
  .ls-v2.ls-v2 {
    --v2-text-secondary: #39443e;
    --v2-text-muted: #6b756f;
  }

  .school-payroll.school-payroll {
    --sp-text-secondary: #39443e;
    --sp-text-muted: #6b756f;
  }

  .school-schedule.school-schedule {
    --ss-text-secondary: #39443e;
    --ss-text-muted: #6b756f;
  }

  .sv2.sv2 {
    --sv2-text-secondary: #39443e;
    --sv2-text-muted: #6b756f;
  }

  .teachers-stats-page.teachers-stats-page {
    --tsp-text-secondary: #39443e;
    --tsp-text-muted: #6b756f;
  }

  .team-profiles-v2.team-profiles-v2 {
    --tp-text-secondary: #39443e;
    --tp-text-muted: #6b756f;
  }

  /* Every redesigned screen opens with an eyebrow + title + subtitle
     trio, and the subtitle is the line the user photographed ("Everyone
     currently learning at your school…").

     WEIGHT ONLY — the 14.5px size bump that used to be here is gone.
     These subtitles are 13.5px by design, which is above the 13px floor
     the generator works to; nothing was wrong with their size. They
     read grey because of their colour, which the palette overrides
     above already fix. 500 is the weight floor this whole fix works to,
     so what is left here is insurance against a screen declaring 400.

     The eyebrow rule that sat below this one is GONE for the same
     reason. It forced `.sv2-eyebrow` and its seven siblings to 700 —
     but these are small, uppercase, letter-spaced labels, so at 700
     they became the loudest thing on the screen, louder than the title
     they introduce. That is a large part of why the user said "it looks
     like they are all in bold". Their own design weight is left alone. */
  .sv2-subtitle,
  .fp-subtitle,
  .lp-subtitle,
  .lsp-subtitle,
  .sp-subtitle,
  .ss-subtitle,
  .tsp-subtitle,
  .tp-subtitle {
    font-weight: 500 !important;
  }

  /* ------------------------------------------------------------------
     WAVE 4 — the dashboard (`--dv2-*`) and the sidebar

     Found by auditing the rendered page rather than the stylesheets:
     a script walked every visible text node on `/app` at 390px and
     printed the ones below 14px or below weight 500. That surfaced two
     families the three waves above had all missed.
     ------------------------------------------------------------------ */

  /* 1. The dashboard grey.

     `dashboard-v2.css` declares one grey, `--dv2-gray: #8b929a`, and
     every one of its nine uses is a `color:` — the hour gutter, the
     weekday headers, the "scroll for earlier hours" hint and the "No
     lessons scheduled for today." line. Darkening the token therefore
     fixes all four at once with no risk to borders or backgrounds.

     #8b929a is 2.9:1 on white, which is BELOW WCAG AA for body text.
     #5c646c is 5.9:1. This is the one place in the whole fix where
     contrast really was the problem as well as stroke width.

     THE SPECIFICITY HERE IS NOT DECORATION. When a teacher picks a
     banner photo, `lib/bannerPalette` writes a themed palette and
     `body.dv2-themed .dashboard-v2` re-points --dv2-gray at it. That
     selector scores (0,2,1). A plain `.dashboard-v2` (0,1,0) would lose
     to it, so themed dashboards would have stayed pale grey while
     default ones went dark — the sort of half-fix that is worse than
     none. Tripling the class gives (0,3,0), which wins outright.
     Overriding the themed tone on phones is deliberate: legibility
     beats colour harmony on a 390px screen. */
  .dashboard-v2.dashboard-v2.dashboard-v2,
  .dv2-popover.dv2-popover.dv2-popover,
  .dv2-bells.dv2-bells.dv2-bells {
    --dv2-gray: #5c646c;
  }

  /* 2. Four dashboard lines that were also simply too small: the hour
     gutter (9px), the weekday headers (10px), the "scroll for earlier
     hours" hint (11px) and the "No lessons scheduled for today." line.

     THEIR SIZES ARE NO LONGER SET HERE. They were, with four hand-written
     values, and that was a duplicate of what the generator already does
     from the same source numbers — so every retune had to be made twice
     and this copy was always the one left behind. `mobile-typography.css`
     is layered and these rules are not, and a LAYERED `!important` beats
     an unlayered one, so these were losing silently anyway.

     Only the weight floor stays, and only where the source declares
     below 500. */
  .dv2-empty {
    font-weight: 500 !important;
  }

  /* 2b. The school identity card: bells stop sitting ON the eyebrow.
     ------------------------------------------------------------------
     `.dv2-bells--on-hero` is docked `position: absolute; top: 16px;
     right: 20px` inside the identity card. On a desktop the card is wide
     enough that the bells and the "SCHOOL OVERVIEW" line never meet. On a
     phone the eyebrow runs straight underneath them and the two are
     painted on top of each other — the user photographed it reading
     "SCHOOL OVE 💳 N 🌱 🌴".

     Rather than shrink the text back down, let the card wrap and give the
     bells their own full-width row above the logo and the school name.
     `order: -1` keeps them visually first; they are already first in the
     DOM, so the tab order does not change.

     Scoped to `.dash-identity` so the teacher dashboard hero, which docks
     the same component over a photo with plenty of room, is untouched. */
  .dash-identity {
    flex-wrap: wrap;
  }

  .dash-identity .dv2-bells.dv2-bells--on-hero {
    position: static;
    order: -1;
    width: 100%;
    justify-content: flex-end;
  }

  /* 3. The sidebar nav labels are NOT fixed here — see the note below.
     ------------------------------------------------------------------
     THE SIDEBAR OVERRIDE CANNOT LIVE IN THIS FILE.

     The sizes it has to beat are written in app.css, which global.css
     pulls into `@layer base`. This file is unlayered. The CSS cascade
     treats `!important` in a LAYER as stronger than `!important`
     outside every layer, and it does so BEFORE it ever looks at
     specificity — so `.app-sidebar.app-sidebar .app-sidebar-nav
     .app-sidebar-item { font-size: 14px !important }` (0,4,0) still
     loses to app.css's (0,3,0). Measured, not assumed: the rule was
     live in the served CSS and the label still computed to 12.5px.

     Nothing above has this problem, because the nine page palettes and
     dashboard-v2.css are unlayered like this file.

     The sidebar fix therefore sits at the bottom of app.css, inside the
     same layer, where ordinary specificity applies again.
     ------------------------------------------------------------------ */
}
/* ==================================================================
 * MOBILE REDESIGN — phones only (≤640px)
 * ==================================================================
 * Built from three HTML mockups the owner supplied on 2026-09-07
 * ("mobile-flagship-redesign", "mobile-batch4-pages",
 * "mobile-schedule-week").
 *
 * THE RULES THIS FILE IS BUILT UNDER — decided by the owner, so do not
 * quietly relax any of them:
 *
 *   1. PHONES ONLY. Every rule lives inside `@media (max-width: 640px)`.
 *      A computer must render exactly what it rendered before.
 *   2. KEEP THE PALETTE. The mockups introduce a coral (#e0562f) and a
 *      warmer yellow (#ffd602). Both were rejected, TWICE — re-use the
 *      existing navy / green / lemon-yellow tokens instead and invent no
 *      new colour. Copy the mockups' LAYOUT, not their ink.
 *   3. EVERY FEATURE KEEPS A DOOR. Blocks may be folded away, merged or
 *      dropped from a phone screen, but no control may become
 *      unreachable. Where a mockup deletes one, it moves behind the ⚙,
 *      into a tile, or onto the screen that owns it.
 *
 * ⛔ THERE USED TO BE A FOURTH RULE — "NO LOGIC CHANGES, reflow only".
 * THE OWNER LIFTED IT ON 2026-09-09, and that was the whole point:
 *
 *     "rebuild it exactly like in the reference mockups… but obv the
 *      logic behind each button and feature should stay"
 *
 * Three releases of phone work had shipped with almost no visible effect,
 * because that rule made this a stylesheet-only problem and the mockups
 * are not a stylesheet change. They DELETE blocks, MERGE controls and
 * REORDER pages: "Pending reschedulings" has to become a tile reading
 * "Reschedules", and no CSS can rewrite a word. Reaching the mockups
 * needs the components — see SchedulePage.tsx and StudentsListV2.tsx.
 *
 * The app has been on Fredoka + Poppins product-wide since 56cd7c81, so
 * the old "keep Inter" rule is gone as well. This file still declares no
 * `font-family`; that belongs to typo.css.
 *
 * WHY A SEPARATE FILE, AND WHY LAST
 * ---------------------------------
 * `mobile-compact.css` is GENERATED by `scripts/gen-mobile-compact.mjs`
 * and is overwritten on every run — hand edits there are lost. This file
 * is hand-written and is imported after it (and after
 * mobile-legibility.css) in AppLayout.astro, so it wins same-specificity
 * conflicts by source order without needing `!important` everywhere.
 *
 * `!important` is used only where the generated stylesheet already
 * shouts, since there is no other way to answer it.
 *
 * BREAKPOINT
 * ----------
 * 640px, matching every other phone rule in the codebase
 * (mobile-typography.css, mobile-compact.css, the colour-contrast bump
 * in colors.css). Picking a different number here would create screens
 * that are half-compacted.
 * ================================================================== */

@media (max-width: 640px) {

/* ==================================================================
 * 1. STUDENTS — one toolbar, and a card you can actually stack
 * ==================================================================
 * Mockup note: "4 stacked buttons + 3 filter rows became one toolbar.
 * Cards dropped from ~350px to ~70px — the same 6 students now fit in
 * one screen instead of three."
 *
 * The card was a VERTICAL stack: flag+name, then badges, then the
 * teacher chip, then a big tinted rate box. Four full-width bands for
 * one student. Below it becomes a row: the rate lifts out of the flow
 * into the top-right corner (the card is already `position: relative`),
 * and the three remaining bands tighten up.
 *
 * Nothing is hidden. The mockup's compact card quietly dropped the
 * teacher chip; we keep it, shrunk, because "who teaches this student"
 * is exactly the kind of thing an owner scans a list for.
 * ================================================================== */

/* ---- Page chrome: a toolbar, not a title block ----
   The mockup opens the screen with search + ⚙ + and goes straight to
   the chips and the cards. Production instead opened with roughly 430px
   of chrome above the first student: an eyebrow, an H1, a sentence, four
   full-width buttons, a "include my school students" pill and three
   tabs — and only then the toolbar, whose own dropdowns overflowed the
   right edge.

   Nothing here is deleted. The blocks stay exactly where they are in the
   markup and are folded away behind the ⚙, which unfolds them in place
   (`.sv2--phone-filters-open`). That is why this needed a component
   change: a stylesheet can hide a control, but only the component can
   give the teacher a way to get it back. */
.sv2 {
  display: flex;
  flex-direction: column;
}

/* Pull the toolbar and the chips above everything else. Every other
   child keeps its document order, since the default `order` is 0. */
.sv2-search-row {
  order: -2;
  margin-bottom: 10px;
  gap: 7px;
  flex-wrap: nowrap;
  align-items: center;
}

.sv2-filter-row { order: -1; }

.sv2-search-box { flex: 1 1 auto; min-width: 0; }

/* The eyebrow, the H1 and the sentence under it. The top bar already
   says "Students" one centimetre higher up, so this block is pure
   repetition on a phone — it stays hidden even when the panel opens. */
.sv2-header > div:first-child { display: none; }

/* Folded away by default … */
.sv2-header,
.sv2-sub-tabs,
.sv2-search-row .sv2-select {
  display: none;
}

/* … `!important` only here, because this label carries its display in an
   inline style attribute and nothing else can answer that. */
.sv2-include-school { display: none !important; }

/* … and unfolded, in place, by the ⚙. */
.sv2--phone-filters-open .sv2-header { display: block; }
.sv2--phone-filters-open .sv2-sub-tabs { display: flex; }
.sv2--phone-filters-open .sv2-search-row .sv2-select { display: block; }
.sv2--phone-filters-open .sv2-include-school { display: inline-flex !important; }

/* Open, the selects need their own line — they cannot share the
   toolbar's single non-wrapping row with the search box. */
.sv2--phone-filters-open .sv2-search-row {
  flex-wrap: wrap;
}

.sv2--phone-filters-open .sv2-search-row .sv2-select {
  flex: 1 1 45%;
  min-width: 0;
}

/* The three toolbar buttons. Square, so they read as icons next to the
   search field rather than as competing text buttons. */
.sv2-phone-filters-btn,
.sv2-phone-add-btn,
.sv2-phone-group-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  /* 38px clears the 36px tap-target floor the phone stylesheets use. */
  width: 38px;
  height: 38px;
  border-radius: 10px;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.sv2-phone-filters-btn {
  border: 1px solid var(--sv2-border, #e2e4e0);
  background: var(--sv2-surface, #ffffff);
  color: var(--sv2-text, #1c231f);
}

/* Unmistakably "this panel is open", so the extra rows below have a
   visible cause. */
.sv2-phone-filters-btn.is-open {
  border-color: var(--sv2-brand-blue, #0f0069);
  background: var(--sv2-brand-blue-light, #ecebf7);
}

/* The primary action wears the app's own green, as it does on desktop. */
.sv2-phone-add-btn {
  border: 1px solid var(--sv2-brand-green, #0e503f);
  background: var(--sv2-brand-green, #0e503f);
  color: #ffffff;
  font-size: 20px;
  font-weight: 700;
}

/* "New class" — the app's blue, the same pairing the desktop header
   uses (green student / blue class) so the two actions are telling the
   same story on both screens.

   ⛔ IT IS A SEPARATE BUTTON, NOT A MENU ON THE GREEN "+".
   Hiding it one tap deeper is how it got lost in the first place: the
   desktop button was always rendered, just parked inside the filters
   panel nobody opens looking for a create action. */
.sv2-phone-group-btn {
  border: 1px solid var(--sv2-brand-blue, #0f0069);
  background: var(--sv2-brand-blue, #0f0069);
  color: #ffffff;
}

/* One student per row — a 260px minimum on a 390px screen was already
   one column, but the gap was sized for a desktop grid. */
.sv2-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.sv2-card {
  padding: 9px 12px;
  border-radius: 12px;
}

/* ---- Two lines, and each one has exactly one job ----
   Line 1: flag + NAME, with a narrow strip on the right for the rate.
   Line 2: the badges, with a narrow strip on the right for the actions.
   Everything else is pulled out of the flow into those two strips.

   Two earlier attempts are worth recording, because both looked
   reasonable and both were wrong:
     - Rate top-right AND the three action buttons on line 1 left the
       name ~140px, so four students out of five read "Aiko Yam…",
       "Camille L…". A list of names you cannot read is not a list.
     - Moving the rate down to the badge line freed the name, but the
       76px it took away from the badges made "Individual · B1 · Native
       Japanese" WRAP, and the card grew from 87px to 143px — taller
       than the version we were trying to shrink.
   Splitting the two right-hand strips across the two lines is what
   finally fits both. */
.sv2-card-top {
  margin-bottom: 4px;
  /* Gap lives in the escape hatch at the end of this file: the generated
     sheet shouts 4.6px here and nothing unlayered can answer it.
     Historic note, 13px not 7px: the green 🎓 badge is positioned at
     `right: -5px` of the flag, so it hangs 5px OUTSIDE the flag's box and
     ate most of the gap. At 7px the badge sat hard against the first
     letter and the two read as one smudged glyph. The gap has to clear
     the badge, not the flag. */
  gap: 13px;
  padding-right: 64px;
}

.sv2-badge-row {
  margin-bottom: 0;
  gap: 4px;
  padding-right: 90px;
  /* Never wrap: a second badge line is what made the card tall. If a
     student collects more chips than fit, they scroll. */
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  min-height: 26px;
  align-items: center;
}

.sv2-badge-row::-webkit-scrollbar { display: none; }
.sv2-badge-row > * { flex: 0 0 auto; }

/* The three row actions (schedule / add / menu) move off the name's
   line and into the badge line's right-hand strip. */
.sv2-card-icons {
  position: absolute;
  bottom: 6px;
  right: 12px;
  gap: 3px;
  /* The badge row beneath scrolls sideways, so a long badge
     ("Native French") slides straight under this pinned cluster and the
     two render on top of each other. The gutter cannot help — the row
     scrolls past it by design. An opaque backdrop is what makes a
     pinned overlay legible above moving content. */
  background: #fff;
  padding-left: 6px;
  border-radius: 8px;
}

/* Both the rate and the icons live in the card's right-hand strip, so
   everything on the left must stop before it reaches them. The badge
   row reserves its own gutter above; these are the two lines that were
   still sliding underneath the icons — the name, and the group card's
   "No students yet in this group." */
.sv2-card-top {
  padding-right: 96px;
}

/* `!important` because this element carries an inline `padding: 6px 0`
   from the component, and an inline style beats a normal stylesheet
   rule. Without the marker the line sat straight under the icons with
   `padding-right: 0`. */
.sv2-group-empty {
  padding-right: 90px !important;
}

/* The two little badges that sit on the flag — "learns with us" at the
   bottom-right, "in several groups" at the top-right — are pinned to
   the SAME corner. On a desktop flag there is room between them; once
   the phone rules shrink the flag they land on top of each other, and
   two overlapping emoji just read as a smudge. Send the upper one to
   the opposite side so the pair sits diagonally. */
.sv2-multi-badge {
  right: auto;
  left: -8px;
}

.sv2-icon-btn {
  width: 26px;
  height: 26px;
  font-size: 12px;
}

/* The teacher line: same information, one notch quieter, and no longer
   reserving 12px of empty space beneath itself. */
.sv2-teacher-chip,
.sv2-teacher-chip--assigned {
  margin: 3px 0 0;
  padding: 0;
  font-size: 11px;
  gap: 5px;
}

.sv2-teacher-dot {
  width: 15px;
  height: 15px;
  font-size: 8px;
}

/* The hover-only "change" hint is unreachable on a touch screen, and it
   was reserving width for a word nobody can ever see. */
.sv2-teacher-chip--assigned .sv2-change-hint {
  display: none;
}

/* The rate / sessions box: out of the flow, into the TOP-right corner,
   level with the name.
   Losing the tinted background is deliberate: a filled block that size
   in a corner reads as a button, and it is not one. The colour survives
   in the number itself. */
.sv2-value-box {
  position: absolute;
  top: 8px;
  right: 12px;
  padding: 0;
  background: none;
  text-align: right;
  /* Was 62px, which fitted "€30 / class" in Inter with a few pixels to
     spare. The house body font became POPPINS on 2026-09-07, and
     Poppins sets the same string at the same size about 38% wider
     (measured with canvas measureText at 13.5px: Inter 58px, Poppins
     80px), so the value spilled left across the level and language
     pills. Widened to fit, and the badge row below now reserves the
     same gutter so the two cannot meet again. */
  max-width: 92px;
}

/* The "RATE" caption is dropped on a phone. It was stacked ABOVE the
   amount, making the box ~39px tall in a 71px card, which drove the
   amount straight down into the icon cluster pinned to the same corner
   (measured: value t28-48, icons t26-62 — a full overlap, present with
   Inter too and merely made obvious by the wider Poppins). A green
   "€30 / class" in the corner does not need to be told it is a rate. */
.sv2-value-box .sv2-value-lbl {
  display: none;
}

.sv2-value-box .sv2-value-val {
  font-size: 13.5px;
  white-space: nowrap;
}

/* The little progress bar under a sessions balance would collide with
   the badge row now that the box is only 70px wide and floating. */
.sv2-value-box .sv2-progress-track {
  display: none;
}

/* ---- The toolbar ------------------------------------------------
   Three separate wrapping rows (actions / filter chips / search +
   selects) stacked into most of a screen before a single student
   appeared. They become three SINGLE-LINE rows that scroll sideways —
   which keeps every control reachable without a redesign of the
   controls themselves. */
.sv2-header-actions,
.sv2-filter-row {
  /* `flex-direction: row` is NOT redundant here. students-v2.css has its
     own `@media (max-width: 640px)` block (near its end) that sets
     `flex-direction: column` on `.sv2-header-actions` — that is what
     turned four buttons into four full-width bands filling the screen
     before a single student appeared. Setting only `flex-wrap` changed
     nothing visible, because a column has no sideways wrapping to
     suppress. Same trap for the button width just below. */
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  overflow-x: auto;
  /* Room for the scrollbar on the platforms that draw one, so it never
     sits on top of the buttons. */
  padding-bottom: 2px;
  /* Hide the bar itself — the row is obviously scrollable from the
     clipped chip at its edge. */
  scrollbar-width: none;
}

.sv2-header-actions .sv2-btn {
  width: auto;
  white-space: nowrap;
}

.sv2-header-actions::-webkit-scrollbar,
.sv2-filter-row::-webkit-scrollbar,
.sv2-search-row::-webkit-scrollbar {
  display: none;
}

.sv2-header-actions > *,
.sv2-filter-row > * {
  flex: 0 0 auto;
}

.sv2-filter-row {
  margin-bottom: 10px;
  gap: 6px;
}

.sv2-filter-chip {
  padding: 6px 11px;
  font-size: 12.5px;
}

/* Search keeps the full width it needs to be usable; the three selects
   ride along on the same line and scroll. */
.sv2-search-row {
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  margin-bottom: 12px;
  scrollbar-width: none;
}

.sv2-search-box {
  flex: 1 0 150px;
  padding: 7px 11px;
}

.sv2-select {
  flex: 0 0 auto;
  padding: 7px 9px;
  font-size: 12.5px;
}

/* The sub-tabs (Enrolled / Intake forms / Archived) were spaced for a
   desktop row and pushed "Archived" off the screen. */
.sv2-sub-tabs {
  gap: 14px;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
}

.sv2-sub-tabs::-webkit-scrollbar { display: none; }

.sv2-sub-tab {
  flex: 0 0 auto;
  font-size: 13px;
}

/* ==================================================================
 * 2. LEADS — a 7-column table is not a phone screen
 * ==================================================================
 * Mockup note: "The old screen was a 6-column desktop table clipped at
 * the edge of the phone. Same data, reflowed as cards — nothing is cut
 * off, nothing needs horizontal scrolling."
 *
 * This is done in pure CSS. Every `<td>` already carries a `data-field`
 * attribute (LeadsList.tsx uses it to open the drawer on the right
 * field), so the column headings can be re-created as `::before` labels
 * without touching the markup at all — no React change, no risk to the
 * click handlers, and the table stays a table for screen readers.
 * ================================================================== */

/* ---- The toolbar ----
   Four controls on one non-wrapping row: a status dropdown, a search
   box, "Move to My School" and "Add lead". At 390px that ran 205px past
   the right edge, so "Add lead" was completely off screen — while the
   empty state underneath said, in as many words, 'click "Add lead" to
   create your first one'.

   The mockup's answer is the same toolbar it uses on Students: a search
   field, then small square buttons. So the two wordy buttons keep their
   icons and drop their labels, which buys back about 250px and lets all
   four fit. Their names survive as `title` / `aria-label`. */
.leads-toolbar {
  gap: 8px;
  flex-wrap: nowrap;
}

.leads-search-box {
  flex: 1 1 auto;
  min-width: 0;
}

.leads-btn-label {
  display: none;
}

/* Without their labels these are icon buttons, so make them square
   rather than leaving them padded for text that is no longer there. */
.leads-toolbar .leads-btn {
  flex: 0 0 auto;
  /* 38px clears the 36px tap-target floor the phone stylesheets use. */
  width: 38px;
  height: 38px;
  padding: 0;
  justify-content: center;
}

/* The status dropdown keeps its words — it is the only control whose
   current VALUE ("All statuses", "Trial booked") has to be readable
   without opening it — but it may not push the others off the edge. */
.leads-toolbar .status-filter {
  flex: 0 1 auto;
  min-width: 0;
}

.leads-toolbar .sf-trigger {
  max-width: 130px;
}

.leads-toolbar .sf-trigger > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leads-page .leads-table,
.leads-page .leads-table tbody,
.leads-page .leads-table tr,
.leads-page .leads-table td {
  display: block;
  width: auto;
}

/* The header row's only job was to label the columns. Each cell now
   carries its own label, so the row is redundant — and `display: none`
   on a `<thead>` is safe here because the labels are reproduced below,
   so nothing is lost to a screen reader either. */
.leads-page .leads-table thead {
  display: none;
}

.leads-page .leads-table {
  border: none;
  background: none;
  overflow: visible;
}

/* One lead = one card.
   Every cell is placed EXPLICITLY rather than left to auto-flow. The
   first version used `order` plus a negative margin to lift the status
   badge up onto the name's line; it worked, but left a band of dead
   space under the badge and made each card ~375px tall — twelve leads
   came to 4,500px of scrolling. Naming the four rows costs six lines
   and takes the guesswork out. */
.leads-page .leads-table tbody tr.lead-tr {
  background: var(--lp-surface, #fff);
  border: 1px solid var(--lp-border, #e7e5df);
  border-radius: 13px;
  padding: 11px 13px;
  margin-bottom: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px 12px;
  align-items: start;
}

.leads-page .leads-table tbody td.lead-cell {
  padding: 0;
  border-bottom: none;
  font-size: 12.5px;
  min-width: 0;
  line-height: 1.35;
}

/* Row 1 — the title line: who they are, and how far they have got. */
.leads-page .leads-table td[data-field='name'] {
  grid-column: 1;
  grid-row: 1;
}

.leads-page .leads-table td[data-field='name'] .lead-name {
  font-size: 14.5px;
  font-weight: 700;
}

.leads-page .leads-table td[data-field='status'] {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  text-align: right;
}

/* Rows 2–3 — the four placement facts, two per line. */
.leads-page .leads-table td[data-field='programme_id']  { grid-column: 1; grid-row: 2; }
.leads-page .leads-table td[data-field='desired_level'] { grid-column: 2; grid-row: 2; }
.leads-page .leads-table td[data-field='class_mode']    { grid-column: 1; grid-row: 3; }
.leads-page .leads-table td[data-field='class_format']  { grid-column: 2; grid-row: 3; }

/* Row 4 — how much of the placement questionnaire is answered. */
.leads-page .leads-table td[data-field='progress'] {
  grid-column: 1 / -1;
  grid-row: 4;
}

/* ---- The re-created column headings ----
   One rule per column because CSS cannot map an attribute value onto a
   different string. Keep this list in sync with the `<th>`s in
   LeadsList.tsx — if a column is renamed there and not here, the label
   silently goes stale. */
.leads-page .leads-table td[data-field]::before {
  display: block;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--lp-text-muted, #b3b2ba);
  margin-bottom: 2px;
}

.leads-page .leads-table td[data-field='programme_id']::before { content: 'Course'; }
.leads-page .leads-table td[data-field='desired_level']::before { content: 'Level'; }
.leads-page .leads-table td[data-field='class_mode']::before { content: 'Type'; }
.leads-page .leads-table td[data-field='class_format']::before { content: 'Mode'; }
.leads-page .leads-table td[data-field='progress']::before { content: 'Progress'; }
/* Name and status are the card's title and badge — labelling them
   would be stating the obvious twice. */
.leads-page .leads-table td[data-field='name']::before,
.leads-page .leads-table td[data-field='status']::before { content: none; }

/* The tick column, only present while moving leads between cabinets.
   It carries no `data-field`, so it needs its own explicit slot or it
   auto-places into whichever cell happens to be free and shoves a real
   field out of the layout. */
.leads-page .leads-table td.lead-pick-cell {
  grid-column: 1 / -1;
  grid-row: 5;
}

/* The toolbar above the table gets the same single-line treatment as
   Students, for the same reason. */
.leads-page .leads-toolbar {
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  scrollbar-width: none;
}

.leads-page .leads-toolbar::-webkit-scrollbar { display: none; }
.leads-page .leads-toolbar > * { flex: 0 0 auto; }
.leads-page .leads-search-box { flex: 1 0 140px; max-width: none; }

/* ==================================================================
 * 3. LESSONS STUDIO — the generate button stops being a full-width bar
 * ==================================================================
 * Mockup note: "Cards shrank from ~260px … to ~90px — the generate
 * action is now an icon button, not a full-width bar repeated on every
 * card."
 *
 * The button keeps its label in the DOM (it is what a screen reader
 * announces, and what the desktop shows); on a phone the label is
 * clipped to zero width and the button collapses to a square in the
 * card's top-right corner. The pointer target stays 34px, comfortably
 * above the 24px minimum.
 * ================================================================== */

.ls-v2-card {
  padding: 11px 12px;
  border-radius: 12px;
  position: relative;
}

.ls-v2-card-top {
  margin-bottom: 6px;
  /* Space for the generate square AND the kebab menu. */
  padding-right: 72px;
}

.ls-v2-avatar {
  width: 30px;
  height: 30px;
  font-size: 12px;
}

.ls-v2-card-name { font-size: 14px; }

.ls-v2-card-badges {
  margin-bottom: 6px;
  gap: 4px;
}

/* Last topic + stats collapse into one quiet two-line block instead of
   two bands separated by a rule and 20px of margin. */
.ls-v2-card-lasttopic {
  padding-top: 7px;
  margin-bottom: 3px;
}

.ls-v2-card-stats {
  margin-bottom: 0;
}

/* The former full-width bar. `margin-top: auto` (which pinned it to the
   bottom of a flex column) has to be cancelled explicitly or it fights
   the absolute positioning. */
/* ⛔ `!important` is NOT decoration here. This file is imported by
   AppLayout, but `lessons-studio.css` is imported by the PAGE
   (`pages/app/lessons-studio/index.astro`), which loads AFTER the
   layout. So at equal specificity the page's `width: 100%` and
   `padding: 8px 0` won, and the button stayed a full-width green bar
   drawn straight across the card's title — measured at 357px wide when
   it should be 34px. Everything below that the page file also declares
   has to be marked, or the collapse silently does not happen.
   (`position`, `top`, `right`, `height` and `overflow` are NOT in the
   page file, so they applied fine and needed no marker.) */
.ls-v2-quick-btn {
  position: absolute;
  top: 10px;
  right: 42px;
  width: 34px !important;
  height: 34px;
  margin-top: 0 !important;
  padding: 0 !important;
  border-radius: 9px !important;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hide the WORDS, keep the button and its ✨.
   This used to be `font-size: 0` plus a `::before { content: '✨' }`,
   and it did not work: the generated phone stylesheet sets a font-size
   on this button with `!important` from inside `@layer base`, and an
   important declaration in a layer beats an unlayered one — so the words
   came back at full size inside a 34px box and rendered as two clipped
   half-lines, "Gener/nex".

   The label is now its own element in the markup, so `display` does the
   job. The generator never touches `display`, and the accessible name
   lives on the button's own `aria-label`. */
.ls-v2-quick-label {
  display: none;
}

.ls-v2-quick-btn > span[aria-hidden] {
  font-size: 15px;
  line-height: 1;
}

/* ---- The page chrome ----
   The mockup opens on the toolbar, exactly as Students does: a search
   field, the All / Students / Groups chips, then the cards. Production
   spent ~200px first on an eyebrow, a title, a two-line description and
   two full-width buttons — and then overflowed anyway, because the
   search box and the sort dropdown share one 386px row on a 390px
   screen.

   The heading goes (the top bar already says "Lessons Studio"). The two
   buttons stay: they are the only doors to the teaching style and to a
   new workspace. They are simply put on one line with the sort control,
   which is what the space bought pays for. */
.ls-v2-eyebrow,
.ls-v2-title,
.ls-v2-sub {
  display: none;
}

.ls-v2-toolbar-right {
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.ls-v2-search {
  flex: 1 1 100%;
  min-width: 0;
}

.ls-v2-sort {
  flex: 1 1 auto;
  min-width: 0;
}

.ls-v2-header-actions {
  gap: 8px;
}

.ls-v2-header-actions .ls-v2-btn {
  flex: 1 1 0;
  min-width: 0;
}

/* ==================================================================
 * 4. RESOURCES — the three stacked dropdowns
 * ==================================================================
 * Mockup note: "Three stacked dropdowns (language / level / trains)
 * folded behind one filter button, matching every other list page."
 *
 * They are folded onto ONE SCROLLING LINE rather than behind a button.
 * A button would have to open a panel that does not exist yet, and
 * building that panel is new behaviour — which this pass is not allowed
 * to introduce. One line costs the same vertical space as a collapsed
 * button and keeps every filter one tap away instead of two.
 * ================================================================== */

.res-filters {
  display: block;
}

.res-chips,
.res-selects {
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  scrollbar-width: none;
}

.res-chips::-webkit-scrollbar,
.res-selects::-webkit-scrollbar { display: none; }

.res-chips > *,
.res-selects > * { flex: 0 0 auto; }

.res-chips { margin-bottom: 6px; }

.res-select {
  /* 13px is the floor the original file documents: below 16px iOS zooms
     on focus, and the existing code accepts that trade for a select but
     not below 13px legibility. Left exactly where it was. */
  padding: 6px 8px;
}

/* ==================================================================
 * 5. PAYMENTS — left-aligned rows, one line of filters, a clean input
 * ==================================================================
 * Mockup notes: "the student list below moves from centered blocks
 * (harder to scan) to the same left-aligned row component used on
 * Students"; "the amount field's broken overlapping spinner is replaced
 * with a plain clean input"; and on the detail screen, "'Select a
 * student on the left' removed — mobile navigates in, there's no 'left'
 * here."
 * ================================================================== */

/* ---- The page's own title block ----
   Eyebrow, "Payments", and a sentence explaining the page — 125px of it,
   directly under a top bar that already says "Payments". The mockup opens
   on the money instead. Scoped to this page rather than to `.page-header`
   generally, because that class is shared with screens this pass has not
   looked at. */
.app-finance-page > .page-header {
  display: none;
}

/* ---- "Period analytics" ----
   The section header is a two-column desktop shape: a title column on
   the left and its controls on the right. At 390px that gave the title
   103px and the six range buttons 215px, so the buttons broke into three
   ragged rows of two and three, and the caption next to them turned into
   a five-line paragraph. Stacked, the title gets the full width and the
   buttons get one line they can scroll. */
.ppv3-page .page-section-header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.ppv3-page .page-section-actions {
  width: 100%;
}

.ppv3-period-pills {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  /* Hide the scrollbar but keep the scrolling — a visible bar on a phone
     just eats a row of pixels. */
  scrollbar-width: none;
  /* The row is edge-to-edge, so let the last pill reach the edge too
     rather than stopping short of it. */
  padding-bottom: 2px;
}

.ppv3-period-pills::-webkit-scrollbar { display: none; }
.ppv3-period-pills > * { flex: 0 0 auto; }

/* ---- The three headline figures ----
   The mockup gives all-time earnings a full-width card of its own and
   sets the two monthly figures side by side beneath it. Stacked, the
   three cards cost 356px to say three numbers. */
.ppv3-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.ppv3-stat-card--alltime {
  /* First and full width, as the mockup draws it. */
  order: -1;
  grid-column: 1 / -1;
}

/* A centred block forces the eye back to the middle on every row. Names
   are read down a left edge. */
.ppv3-tile {
  text-align: left;
  padding: 10px 12px;
  border-radius: 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.ppv3-tile-flag { grid-row: 1 / span 2; }

/* The name owns the whole first line, out to the right edge.
   Sharing that line with the money note left it ~154px and truncated
   most of the list to "Rafael …", "Camille…", "Aiko Ya…" — the same
   mistake the Students card made, for the same reason. */
.ppv3-tile-name {
  grid-column: 2 / -1;
  grid-row: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ppv3-tile-type {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
}

/* The money note drops to the second line, opposite the type badge —
   still on the right edge, where every amount in the app lives. */
.ppv3-tile-note {
  grid-column: 3;
  grid-row: 2;
  text-align: right;
  white-space: nowrap;
  align-self: center;
}

.ppv3-tile-status-dot {
  /* Was pinned to a centred card's corner; on a row it reads better as
     a marker on the left edge, next to the flag. */
  top: 10px;
  left: 6px;
  right: auto;
}

/* Two dropdowns stacked is two bands of chrome above the list. */
.ppv3-dropdown-row {
  gap: 6px;
}

.ppv3-filter-select {
  min-width: 0;
  padding: 7px 8px;
}

/* ---- The amount field ----
   `<input type="number">` draws a native up/down spinner that, in a
   12px-tall field, overlaps the value being typed. Hiding the spinner
   is the whole fix: the keyboard on a phone is numeric anyway, so the
   arrows were never the way anybody entered an amount. */
.ppv3-form-input.amount {
  appearance: textfield;
  -moz-appearance: textfield;
}

/* ---- The details open UNDER the person, not after the list ----
   Owner, 2026-09-09: "The details of recording payment and memory should
   open under the person that was selected, not in the end of the list".

   It was worse than untidy: the panel rendered after the WHOLE list, so
   tapping somebody near the top put the answer several screens further
   down, with nothing on it to say whose it was.

   The list is a two-column grid, so the panel has to span both columns
   or it would sit in one half. The markup change that puts it here is in
   PaymentsTileGrid.tsx (`inlineDetail`) — no stylesheet can move a node
   from the end of a list into the middle of it. */
.ppv3-tile-detail {
  grid-column: 1 / -1;
  margin: -2px 0 8px;
}

/* On a computer the panel is a card of its own. Inside the list it reads
   as a continuation of the row above, so it drops the outer frame and
   keeps one left edge tying it to the person it belongs to. */
.ppv3-tile-detail .ppv3-detail-panel {
  border: none;
  border-left: 3px solid var(--ppv3-navy, #0f0069);
  border-radius: 0 10px 10px 0;
  padding: 12px;
}

/* ---- Amount and date stack ----
   The row is `display: flex` with no wrap: the amount is `flex: 1` and
   the date is a fixed 150px. Inside the detail panel, which is ~304px
   wide on a phone, that does not fit — and it could not shrink either,
   because a flex item will not go below its intrinsic width without an
   explicit `min-width: 0`, and a native date input's intrinsic width is
   large. The date field was running 119px past the right edge.

   One field per line. Nothing is lost, and a date input is the last
   control that should be squeezed — its native picker is unusable at
   half width. */
.ppv3-form-row {
  flex-wrap: wrap;
}

.ppv3-form-row .ppv3-form-input {
  flex: 1 1 100%;
  min-width: 0;
  width: 100%;
}

.ppv3-form-input.amount::-webkit-outer-spin-button,
.ppv3-form-input.amount::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
}

/* ---- "Select a student on the left" ----
   There is no "left" on a phone: the list and the detail are the same
   column, one under the other.

   The WHOLE empty panel goes, not just the sentence. Hiding only the
   text was the first attempt and it was worse than doing nothing — it
   left a tall empty bordered box with a lone 👆 floating in it, which
   reads as a screen that failed to load. There is genuinely nothing to
   show until a student is picked, and the panel reappears the moment
   one is.

   Nothing is deleted from the component: on a computer the sentence is
   still true, still visible, and still points at a real left column. */
.ppv3-detail-empty {
  display: none;
}

/* …but hiding the SENTENCE alone left its container behind: a 304x312
   empty bordered box under the last student, which reads as a panel that
   failed to load. Hide the panel itself whenever the only thing in it is
   that placeholder. `:has()` keeps this tied to the real condition — the
   moment a student IS selected the panel has content instead, and it
   comes straight back. */
.ppv3-detail-panel:has(.ppv3-detail-empty) {
  display: none;
}

/* The little round icon is pinned to the card's top-right corner, so a
   two-word title ran underneath it and "LESSONS GIVEN" lost its N.
   Now the text stops before the icon starts. */
.ppv3-stat-card-body {
  padding-right: 34px;
}

/* ==================================================================
 * 6. SCHEDULE — a week grid wide enough to read
 * ==================================================================
 * Mockup note: "The week grid now scrolls horizontally so each day
 * column is wide enough for real text: no more 'Ces/ar' wrapping."
 *
 * Seven columns across 390px leaves ~46px each, which is narrower than
 * most first names — hence "Ces/ar", "Das/ha". Fixed 100px columns and
 * a sideways scroll give every name room; the hour gutter is pinned to
 * the left edge so you never lose track of what time you are looking
 * at.
 *
 * ⚠ The sticky day-header gives up its stickiness here. `position:
 * sticky; top: …` resolves against the nearest scroll container, and
 * making `.cal-week` one moves that anchor from the page to the grid.
 * Keeping both would need a DOM change; on a phone, being able to READ
 * the day column is worth more than the header following you down.
 * ================================================================== */

.cal-week {
  /* `overflow: clip` (the desktop value) exists so the header can stick
     to the PAGE. We trade that for a horizontal scroller. */
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  /* Land on a day boundary rather than mid-column. `proximity` rather
     than `mandatory`: mandatory fights a deliberate small nudge. */
  scroll-snap-type: x proximity;
  /* Load-bearing, and the reason the grid first opened already scrolled
     44px to the right with Monday tucked under the hour gutter — the
     header read "ION 7" instead of "MON 7" and today's lessons were
     sliced down the middle.
     `scroll-snap-align: start` on a day column means "align this column
     with the START of the scrollport", and the scrollport starts at
     x = 0, which is underneath the sticky 44px hour column. Declaring
     that the usable area begins 44px in makes "start" mean "just right
     of the hours" — what a reader means by it. */
  scroll-padding-left: 44px;
}

.cal-week-header,
.cal-week-body {
  /* 44px gutter + 7 real columns. `min-content` on the track keeps the
     two grids in exact lockstep, which is what stops the day names
     drifting away from their columns as you scroll. */
  grid-template-columns: 44px repeat(7, 100px);
  width: max-content;
  min-width: 100%;
}

/* Not sticky any more (see the warning above) — say so explicitly
   rather than letting it resolve to something surprising. */
.cal-week-header {
  position: static;
}

/* Keep the hours visible while the days scroll past them. */
.cal-week-hours,
.cal-week-corner {
  position: sticky;
  left: 0;
  z-index: 4;
  background: var(--color-white, #fff);
}

.cal-week-corner {
  background: var(--color-neutral-50, #f7f7fb);
}

.cal-week-day-col {
  scroll-snap-align: start;
}

.cal-week-day-header {
  padding: 8px 4px 10px;
}

/* ---- The rail above the grid ----
   The mockup replaces the whole rail with one compact grid of icon
   tiles. Everything the rail used to spend ~350px of phone screen on —
   the greeting, the "Explore this page" card, the big yellow CTA, six
   full-width text rows and the colour legend — becomes eight small tiles
   about 130px tall in total, so the calendar itself is visible without
   scrolling.

   An earlier pass tried to reach this with CSS alone, by pairing the six
   rows into a 2-column grid. It could not: the labels are sentences
   ("Pending reschedulings"), so they had to be clipped with an ellipsis
   and the screen still read as a wall of text — "Pending resched…". The
   tiles carry SHORT labels of their own (`schedule.tile.*`), which is a
   markup change, and that is why this needed the component and not just
   a stylesheet. */
.sched-rail-greeting,
.sched-rail-cta,
.sched-rail-section,
.sg-open {
  display: none;
}

.sched-tiles {
  display: grid;
  /* Four per row: eight actions land in two tidy rows with no horizontal
     scrolling, which a teacher would have to discover. */
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 2px 0 10px;
}

.sched-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  /* Tall enough for a TWO-line label at the 12px legibility floor. The
     first version set 62px against a 10.5px label, which broke that
     floor — mobile-legibility.spec.ts caught all eight tiles. The floor
     is not negotiable: the owner has reported unreadable phone text
     twice, and 12px is where this font stops resolving into visible
     stems at phone density. */
  min-height: 74px;
  padding: 9px 2px 8px;
  border: 1px solid var(--color-border, #e7e5df);
  border-radius: 12px;
  background: var(--color-surface, #ffffff);
  color: var(--color-text, #1a1a2e);
  font: inherit;
  cursor: pointer;
}

.sched-tile-icon {
  font-size: 17px;
  line-height: 1;
}

.sched-tile-label {
  /* 12px is the phone legibility floor, not a design preference — see
     the min-height note above. A tile is ~84px wide, so a label may take
     two lines; the grid row stretches to the tallest tile so the row
     still reads as even. The labels are authored short per language
     (`schedule.tile.*`) to keep that to two. */
  font-size: 12px;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  hyphens: auto;
}

/* The primary action wears the app's own navy, not the mockup's coral —
   the owner keeps her existing palette. */
.sched-tile--primary {
  background: var(--color-primary-900, #0f0069);
  border-color: var(--color-primary-900, #0f0069);
  color: #ffffff;
}

.sched-tile--active {
  border-color: var(--color-primary-900, #0f0069);
  background: #eef2ff;
}

/* Count bubble, pinned to the tile's corner rather than sitting in the
   flow — a tile is too narrow to hold a label and a number side by side. */
.sched-tile-badge {
  position: absolute;
  top: 3px;
  right: 3px;
  min-width: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--color-primary-900, #0f0069);
  color: #ffffff;
  /* 11px, not the 9.5px this started at: a count nobody can read is not
     a count. It sits just under the 12px prose floor because a two-digit
     number has no x-height or descenders to lose — the same reason
     uppercase labels are allowed to stop at 12 (see the note in
     gen-mobile-typography.mjs). */
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

/* Now that a column is 100px instead of 46px, the event card can show a
   real name instead of two clipped syllables. */
.cal-event {
  padding: 4px 6px 4px 8px;
  border-radius: 7px;
}

/* One line, with an ellipsis if it truly does not fit.

   The desktop rule clamps the name to TWO lines, which assumes the card
   is tall enough for two. A 60-minute lesson on a phone is not: the
   second line was being sliced through the middle by the card's own
   `overflow: hidden`, so "Camille Laurent" rendered as "Camille" plus
   the top halves of the letters below it — which reads as a rendering
   fault rather than a truncation. One clean line is honest, and at the
   current column width most names fit it whole anyway. */
.cal-event-who {
  -webkit-line-clamp: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: normal;
  font-size: 11.5px;
}

/* ==================================================================
 * 7. SETTINGS & MY PROFILE
 * ==================================================================
 * Mockup note: "compacted every locked feature to one line instead of a
 * paragraph, and fixed the Danger Zone bug where the button and warning
 * text overlapped."
 * ================================================================== */

/* A locked integration is a row you cannot use. It does not deserve
   three lines of a phone screen explaining itself. */
.acct-integration-row--locked {
  padding-top: 8px;
  padding-bottom: 8px;
}

.acct-locked-note {
  font-size: 11px;
  padding: 2px 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* ---- Label-and-button rows (`.acct-row-between`) ----
   Mockup note: "fixed the Danger Zone bug where the button and warning
   text overlapped."

   The overlap had TWO causes, and only fixing one of them leaves it
   looking broken:

   1. The buttons were dead. Every one of them used the generic `.btn` /
      `.btn-primary`, and `buttons.css` is not among the stylesheets
      AppLayout loads — measured in the browser, they all computed to
      `padding: 0` with a transparent background. A button with no
      padding is not a button, it is a run of text sitting next to
      another run of text, which is exactly what "overlapping" looked
      like. Fixed at the source by moving those pages onto the live
      `.acct-btn` classes (ui-system.css has documented this trap since
      the account screens were written).

   2. The row is `display: flex; justify-content: space-between`. Even
      with a real button, 390px is not enough for a three-line warning
      and a 168px button side by side. Below, they stack, and the
      button takes the full width — the right target size for the most
      destructive control on the page. */
.acct-row-between {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.acct-row-between .acct-btn,
.acct-row-between .acct-toggle,
.acct-row-between .acct-locked-note {
  align-self: flex-start;
}

/* The danger-zone action is the one that should be unmissable and
   deliberate, so it spans the row rather than hugging its label. */
.acct-danger-panel .acct-row-between .acct-btn {
  width: 100%;
  justify-content: center;
}

/* The "You also teach lessons" banner is the same shape under a
   different class name, and it needs the same treatment: side by side
   at 390px its paragraph was squeezed into a ~110px column and set one
   or two words per line. */
.acct-teach-banner {
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

.acct-teach-banner .acct-btn {
  align-self: flex-start;
}

/* ==================================================================
 * 8. NOTES — the one pill that was the wrong colour
 * ==================================================================
 * Mockup note: "the 'My Classes' pill … was green here instead of
 * yellow everywhere else. Standardized to yellow like every other
 * screen."
 *
 * Scoped to the notes page so a green pill that is legitimately green
 * somewhere else is not repainted by accident.
 * ================================================================== */

.notes-page .app-sidebar-badge--green,
.notes-view .app-sidebar-badge--green {
  background: var(--color-brand-yellow-400, #fbe840);
  color: var(--color-brand-indigo-500, #0f0069);
}

/* ==================================================================
 * 9. STUDENT PROFILE — the Lessons tab
 * ==================================================================
 * Mockup note: "Same bug as Leads: a raw desktop table with the last
 * column ('MORE') clipped off-screen, and dates wrapping to 3 lines.
 * Reflowed as cards — same information, nothing cut off."
 *
 * Measured before touching it: the table was 431px wide inside a 390px
 * screen, i.e. 82px of it simply unreachable.
 *
 * Same treatment as Leads, with one difference — that table already had
 * a `data-field` on every cell, this one had nothing, so a `data-col`
 * hook was added to the component purely so the labels can be rebuilt
 * here. Keep the two lists in step.
 * ================================================================== */

.lh-tbl,
.lh-tbl tbody,
.lh-tbl tr,
.lh-tbl td {
  display: block;
  width: auto;
}

/* The headings are re-created per cell below, so the row of them is
   redundant rather than lost. */
.lh-tbl thead { display: none; }

.lh-tbl { border: none; background: none; }

/* One lesson = one card, laid out explicitly.
   Row 1: the lesson number + date, and its status on the right.
   Row 2: duration and money.
   Row 3: the teacher's note, full width. */
.lh-tbl tbody tr {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 6px 10px;
  align-items: start;
  padding: 11px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--color-neutral-200, #e7e5df);
  border-radius: 12px;
  background: var(--color-white, #fff);
}

.lh-tbl tbody td {
  padding: 0;
  border: none;
  min-width: 0;
}

.lh-num-col { grid-column: 1; grid-row: 1; }

.lh-tbl td[data-col='date'] {
  grid-column: 2;
  grid-row: 1;
  font-weight: 600;
  /* The reason dates were setting on three lines: a 60px column. With
     the full width there is no reason to break at all. */
  white-space: nowrap;
}

.lh-tbl td[data-col='status'],
.lh-tbl td[data-col='students'] {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}

.lh-tbl td[data-col='duration'] { grid-column: 2; grid-row: 2; }

.lh-tbl td[data-col='money'] {
  grid-column: 3;
  grid-row: 2;
  justify-self: end;
  text-align: right;
}

.lh-tbl td[data-col='note'] {
  grid-column: 1 / -1;
  grid-row: 3;
  font-size: 12px;
  line-height: 1.4;
}

/* The bin sits with the card rather than in a column of its own — a
   whole column for one icon is what pushed the table past the edge. */
.lh-actions-col {
  position: absolute;
  top: 8px;
  right: 8px;
}

/* Keep the note clear of the bin. */
.lh-tbl tbody tr { padding-right: 40px; }

/* ---- The rebuilt column headings ----
   One rule per column: CSS cannot map an attribute value onto a
   different string. Keep in step with the `<th>`s in
   LessonsHistoryTab.tsx. Date and status are self-evident and are left
   unlabelled; a date that says "Date" above it is noise. */
.lh-tbl td[data-col='duration']::before,
.lh-tbl td[data-col='money']::before,
.lh-tbl td[data-col='note']::before {
  display: block;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-text-muted, #8888a4);
  margin-bottom: 1px;
}

.lh-tbl td[data-col='duration']::before { content: 'Duration'; }
.lh-tbl td[data-col='money']::before { content: 'Money'; }
.lh-tbl td[data-col='note']::before { content: 'Teacher\2019s note'; }

/* ==================================================================
 * 10. STUDENT PROFILE — the Payments tab
 * ==================================================================
 * Mockup note: "'Individual · Sofiia · 1h 30' was wrapping across 3
 * lines in one cramped column. Now a clean two-line row per lesson."
 *
 * Two lines exactly, as asked:
 *   line 1  date ................................. amount
 *   line 2  what the class was ................... paid / unpaid
 * ================================================================== */

.ptv2-tbl,
.ptv2-tbl tbody,
.ptv2-tbl tr,
.ptv2-tbl td {
  display: block;
  width: auto;
}

.ptv2-tbl thead { display: none; }
.ptv2-tbl { border: none; background: none; }

.ptv2-tbl tbody tr {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 4px 10px;
  align-items: center;
  padding: 10px 34px 10px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--color-neutral-200, #e7e5df);
  border-radius: 12px;
  background: var(--color-white, #fff);
}

.ptv2-tbl tbody td {
  padding: 0;
  border: none;
  min-width: 0;
}

/* ⛔ Every cell is placed BY NAME, never by position.
   Two different tables share `.ptv2-tbl`: "Lessons to pay" is
   `count | period | what | amount`, "Lessons paid" is
   `# | date | what | amount | status | actions`. The first version
   placed cells with `:nth-child` and `.ptv2-muted`, which put the
   period and the description in the same grid slot — the date range
   printed on top of the amount. Names cannot collide like that. */

.ptv2-num-col { grid-column: 1; grid-row: 1 / span 2; }

/* Line 1, left: what identifies the row. */
.ptv2-tbl tbody td[data-col='date'],
.ptv2-tbl tbody td[data-col='period'] {
  grid-column: 2;
  grid-row: 1;
  font-weight: 600;
}

/* A single date never needs to wrap; a RANGE ("18 Jun – 7 Sep") does. */
.ptv2-tbl tbody td[data-col='date'] { white-space: nowrap; }

/* Line 1, right: the money. */
.ptv2-tbl tbody td[data-col='amount'] {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  text-align: right;
  white-space: nowrap;
}

/* Line 2, left: "Individual · Sofia · 1 hour" — the line the mockup
   caught wrapping over three lines in a cramped column. It now has the
   full width of the card. */
.ptv2-tbl tbody td[data-col='what'] {
  grid-column: 2 / -1;
  grid-row: 2;
  font-size: 12px;
  line-height: 1.4;
}

/* …unless there is a status pill to sit beside, in which case the
   description gives the right-hand end back to it. */
.ptv2-tbl tbody tr:has(td[data-col='status']) td[data-col='what'] {
  grid-column: 2;
}

.ptv2-tbl tbody td[data-col='status'] {
  grid-column: 3;
  grid-row: 2;
  justify-self: end;
}

/* The lesson count on the outstanding row reads as a quantity, so say
   so — "21" alone in a corner is a mystery. */
.ptv2-tbl tbody td[data-col='count'] {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  font-weight: 700;
  text-align: center;
  min-width: 26px;
}

.ptv2-actions-col {
  position: absolute;
  top: 8px;
  right: 6px;
}

/* ==================================================================
 * 11. GROUP PROFILE — the Members list
 * ==================================================================
 * Mockup note: "Real layout bug: the 'A1 · Joined Jun 8, 2026' meta
 * text was floating disconnected above the member's name instead of
 * sitting under it. Fixed the stack, and made 'leave date' and
 * remove/reactivate proper equal-weight buttons instead of a stray
 * dashed line and a lone icon."
 *
 * The mockup was right and worth checking rather than assuming: reading
 * the JSX suggests the meta already sits under the name (it is the
 * second child), but `.gd-member-name` is `display: flex` with
 * `align-items: center`, so the name and the meta are laid out SIDE BY
 * SIDE and the shorter meta is centred against the taller name — which
 * is what "floating above" looks like. Measured in the browser: the
 * meta's top was above the name's.
 *
 * ⛔ What is NOT here, deliberately: the mockup's headline feature —
 * "Members split into Active and Inactive tabs" and "a new Archive
 * action" — is ALREADY BUILT. Both tabs render (with counts) and the
 * Archive button already sits next to Reactivate. Rebuilding either
 * would have been new logic on top of working logic.
 * ================================================================== */

/* The two `.gd-member-name` rules that lived here (stack the meta under
   the name; keep the avatar beside it) were REMOVED on 2026-09-07 — not
   because they were wrong, they fixed a real bug, but because the
   members list was then rebuilt from the owner's own mockup
   (mobile-group-members-redesign.html) and `.gd-member-name` no longer
   exists. The row is now `.gd-member-top` > `.gd-member-idlink` >
   `.gd-member-id`, which stacks the meta under the name by construction.
   CSS aimed at a deleted class is a trap for whoever reads it next.
   See "Group members list" in specs/design/specs.md. */

/* The "stray dashed line": the actions strip carried a dashed top
   border that read as a torn edge rather than a divider. The row is
   already a card with its own border; it needs no second one.

   Scoped through `.gd-member-row` on purpose. The dashed rule lives in
   GroupDetailPage.tsx's own inline <style>, inside its own
   `@media (max-width: 700px)`. A component's inline styles are injected
   after the layout's stylesheets, so at equal specificity theirs wins on
   source order and a bare `.gd-member-actions` here changed nothing.
   Two classes beat one, whatever the order. */
.gd-member-row .gd-member-actions {
  border-top: none;
  padding-top: 2px;
  gap: 6px;
  flex-wrap: wrap;
}

/* "a lone icon" — the remove × was a bare glyph next to real buttons,
   so the row had two different kinds of control. Give it the same
   height and outline as its neighbours and they read as peers. */
.gd-icon-btn {
  min-height: 30px;
  min-width: 30px;
  border: 1px solid var(--color-neutral-200, #e7e5df);
  border-radius: 8px;
  background: var(--color-white, #fff);
}

/* ==================================================================
 * 12. DASHBOARD — four coloured tiles, not a column of white boxes
 * ==================================================================
 * Built from mobile-flagship-redesign.html, screen 3 ("Dashboard —
 * aligned to brand colors"). The owner named this one directly:
 * "you really haven't redesigned many pages as in mock-ups… dashboard
 * and etc". She was right — the other eleven sections of this file
 * cover their screens; the dashboard had never been touched.
 *
 * What was wrong: `.ui-kpi-grid` in ui-system.css drops to
 * `grid-template-columns: 1fr` below 520px, so the four headline
 * numbers became four full-width white cards stacked down the page.
 * On a 390px screen you scroll past all four before reaching today's
 * lessons, and nothing carries a brand colour.
 *
 * The mockup puts them in a 2x2 block of SOLID brand colours — navy,
 * coral, green — with one white card for the number that needs a
 * warning under it. Same four figures, same links, a quarter of the
 * height.
 *
 * ⛔ DESKTOP IS UNTOUCHED. Everything here is inside the phone media
 * query; the desktop four-across row is exactly as it was.
 * ================================================================== */

/* ⛔ READ THIS BEFORE EDITING ANYTHING BELOW.
 *
 * THERE ARE TWO DASHBOARDS, and they share no class names:
 *
 *   .ui-kpi*  → SchoolDashboard.tsx        — the "My School" cabinet
 *   .dv2-*    → MyClassesDashboardV2.tsx   — the "My Classes" cabinet
 *
 * The first pass of this section styled ONLY `.ui-kpi`. The owner works
 * in My Classes, so on her phone the dashboard changed by exactly
 * nothing, three releases running, while the code and the screenshots
 * used for review both looked correct. `.ui-kpi` simply does not exist
 * on the screen she was looking at.
 *
 * If you touch one of these two blocks, check whether the other needs
 * the same change, and verify in BOTH cabinets — not just the one your
 * test account happens to open in.
 * ================================================================== */

/* ---- Cabinet A: "My School" (SchoolDashboard) ---- */

.ui-kpi-grid {
  /* Beats the 520px single-column rule in ui-system.css. */
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px;
  margin-bottom: 14px;
}

.ui-kpi {
  min-height: 0;
  padding: 12px;
  border-radius: 14px;
  gap: 2px;
  position: relative;
  overflow: hidden;
}

/* Number first and large, label beneath in small caps — the mockup
   leads with the figure, because the figure is why you looked. */
.ui-kpi .ui-kpi__body {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
  gap: 2px;
  padding-right: 30px; /* keep the value clear of the artwork */
}

.ui-kpi .ui-kpi__value {
  font-size: 25px;
  font-weight: 700;
  line-height: 1.05;
}

.ui-kpi .ui-kpi__label {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.25;
}

.ui-kpi .ui-kpi__hint {
  font-size: 10.5px;
  font-weight: 600;
  /* `column-reverse` would otherwise print the hint at the TOP; put it
     back under the label, where it explains something. */
  order: -1;
  margin-top: 2px;
}

/* --- the three solid tiles ----------------------------------------
   Navy, green, lemon — the app's own three brand colours, and the same
   three the My Classes tiles below use, so the two cabinets do not
   disagree about what the school's colours are.

   The mockup paints the second tile coral (#e0562f). It shipped that
   way once, by mistake: the owner had already rejected that coral and
   asked twice to keep her existing palette. Do not put it back. */
.ui-kpi-grid > .ui-kpi:nth-child(1) { background: #0f0069; border-color: #0f0069; }
.ui-kpi-grid > .ui-kpi:nth-child(2) { background: #0e503f; border-color: #0e503f; }
.ui-kpi-grid > .ui-kpi:nth-child(3) { background: #fdd504; border-color: #fdd504; }

/* The first two are dark, so their text is white. */
.ui-kpi-grid > .ui-kpi:nth-child(-n + 2) :is(.ui-kpi__value, .ui-kpi__label, .ui-kpi__hint) {
  color: #fff;
}

/* The lemon tile is light: white text on it would be unreadable. */
.ui-kpi-grid > .ui-kpi:nth-child(3) :is(.ui-kpi__value, .ui-kpi__label, .ui-kpi__hint) {
  color: #1a1a2e;
}
/* A hint is still supporting text on a dark tile — hold it below full
   white so it does not compete with the number above it. */
.ui-kpi-grid > .ui-kpi:nth-child(-n + 2) .ui-kpi__hint { opacity: 0.72; }

/* The fourth stays white. That is what lets a warning line on it (money
   owed) read as a warning rather than as more decoration. */
.ui-kpi-grid > .ui-kpi:nth-child(4) {
  background: #fff;
  border-color: #e7e5df;
}

/* --- the artwork -------------------------------------------------- */
/* Small, cornered and quiet. At 40px it competed with the number; the
   mockup sets it in a soft circle at about half that. */
.ui-kpi .ui-kpi__icon--art {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  padding: 0;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.16);
}
.ui-kpi-grid > .ui-kpi:nth-child(4) .ui-kpi__icon--art { background: #f4f3ef; }
.ui-kpi .ui-kpi__icon--art img { width: 16px; height: 16px; }

/* ==================================================================
 * Cabinet B: "My Classes" (MyClassesDashboardV2) — the screen the
 * owner's mockup was actually drawn from.
 * ==================================================================
 * Mockup order: hero, four tiles, today's schedule, recent notes,
 * three quick-action rows. Production matched that only loosely and
 * spent about 1,300px getting there.
 * ================================================================== */

/* Four tiles in a 2x2 block. The desktop rule asks for four columns,
   which on a 390px screen gives four 80px cards. */
.dv2-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.dv2-stat {
  padding: 12px;
  border-radius: 14px;
}

/* "COLLECTED THIS MONTH" and "LESSONS THIS WEEK" were each taking two
   lines at 11px, which is what made the tiles 120px tall. */
.dv2-stat-label {
  font-size: 9.5px;
  letter-spacing: 0.04em;
  line-height: 1.25;
  margin-top: 1px;
}

.dv2-stat-sub {
  font-size: 10px;
  margin-top: 3px;
}

/* ---- Today's schedule ----
   The row is time + avatar + name/status + actions. On a phone the
   actions were winning: a confirmed lesson shows a "✓ Confirmed" pill
   whose LABEL is as wide as the student's name, which squeezed the
   middle column to 111px and wrapped both the name and its status onto
   two lines each — a 95px row for one lesson. The tick alone says it. */
.dv2-lesson-row {
  padding: 8px 6px;
  gap: 7px;
}

.dv2-confirmed-badge {
  padding: 4px 6px;
}

/* Keep the ✓, drop the word — `display` is used rather than `font-size`
   because the generated phone stylesheet shouts font sizes from inside
   `@layer base`, and no unlayered rule can answer that. It does not
   touch `display`. */
.dv2-confirmed-badge-text {
  display: none;
}

/* One line each. A wrapped name in a list of three lessons costs more
   than the tail of a sentence the teacher can open the lesson to read. */
.dv2-lesson-name,
.dv2-lesson-status {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---- The week grid ----
   Hidden here, and only here. The dashboard's copy is a 300px-tall
   miniature of a screen that has its own sidebar entry, and at phone
   width its columns are ~44px, so every lesson in it read "C…" — it
   cost a third of the screen to say nothing. The real week grid on
   /app/calendar is untouched and is where the mockup expects it.

   The whole SECTION goes, not just the card: hiding `.dv2-cal-card`
   alone left its "🗓️ This week" heading behind, announcing a calendar
   that was no longer there.

   The "Lessons this week" tile links here by anchor. It checks whether
   this element is displayed and goes to /app/calendar when it is not, so
   the tile stays alive — see MyClassesDashboardV2.tsx. */
#dv2-mini-week {
  display: none;
}

/* ---- The cards under the fold ----
   "No recent lesson notes" and "No homework pending review" were each
   drawn as a 132px empty state with a large circular icon, so the two
   of them cost 264px to say that nothing has happened yet. */
.app-empty-state {
  padding: 14px 10px;
  min-height: 0;
}

.app-empty-state svg,
.app-empty-state .app-empty-state-icon {
  width: 26px;
  height: 26px;
}

.app-card-header {
  padding: 10px 12px;
}

.app-card-body {
  padding: 10px 12px;
}

/* ---- Quick actions ----
   The mockup draws these as three plain rows, not as boxed cards. */
.app-quick-action--premium {
  padding: 9px 10px;
  border-radius: 10px;
}

/* ==================================================================
 * 12b. THE BACK ARROW — gone from phones
 * ==================================================================
 * Owner, 2026-09-09: "can you also remove this button in mobile version?
 * it shouldn't be anywhere, they go back to wherever they were just by
 * clicking the menu (the button next to the arrow)".
 *
 * The ‹ is the first child of the topbar, immediately left of the
 * hamburger. On a phone the two sit side by side and read as a pair of
 * near-identical outlined squares, and none of the owner's mockups draw
 * it — the drawer beside it already goes anywhere in one tap.
 *
 * The component still renders and still works on a computer, where the
 * topbar has room for it. Only the phone hides it.
 * ================================================================== */

.global-back-btn {
  display: none;
}

/* ==================================================================
 * 13. MENU DRAWER — the page you are on is a yellow pill
 * ==================================================================
 * mobile-flagship-redesign.html, screen 4 ("Menu drawer — consistent
 * icon treatment").
 *
 * The drawer IS the navigation on a phone — there is no sidebar sitting
 * permanently beside the page — so "where am I?" has to be answerable
 * in one glance. The current marker is a pale lilac wash plus a 4px
 * left edge, which is a DESKTOP signal: it works next to a permanently
 * visible tree, and it disappears in a full-screen list read at arm's
 * length.
 *
 * The mockup makes the current page a solid brand-yellow pill across
 * the full width, with its icon lifted onto a white tile. Nothing else
 * in the drawer is yellow, so it cannot be misread.
 *
 * ⛔ DESKTOP UNTOUCHED — above 640px the lilac wash and the left edge
 * stay exactly as they are.
 * ================================================================== */

/* Two thirds of the screen — the owner's call, 2026-09-21, with a
   screenshot of the narrower drawer: "can we make the bar a bit more
   narrow... like in the screenshot?"

   This REVERSES the full-width rule that used to live here, so the
   argument it was written on is worth keeping rather than deleting:
   the mockup drew the drawer edge-to-edge because the live page behind
   "competes with the menu for attention", and because the owner had
   asked for the back arrow to go (2026-09-09) — "they go back to
   wherever they were just by clicking the menu" — which makes this
   drawer the only way around the app on a phone.

   What the narrower drawer buys back is the grey strip beside it.
   `#app-sidebar-overlay` has a click handler (AppLayout.astro) that
   closes the menu, and at full width that strip was underneath the
   drawer and unreachable: the hamburger was the only way out.

   The 72vw cap is for the narrowest phones (320px), where a flat 260px
   would eat 81% of the screen and leave a strip too thin to aim at. On
   a normal 390px phone this resolves to the 260px the screenshot
   shows. The rows below were re-tuned for a full-width drawer but they
   are fluid, so they simply reflow. */
.app-sidebar {
  width: min(var(--app-sidebar-width), 72vw);
  max-width: none;
}

/* One muted tile per icon, and no tilt.
   The mockup's note for this screen: "icon backgrounds standardized to
   one muted tone instead of a mix of purple/yellow/green squares that
   didn't map to anything." app.css cycles navy/yellow/green tints so the
   rows "read as different stickers", but the colours carry no meaning —
   Schedule is green and Payments is yellow for no reason a teacher could
   name — and at phone size the drawer turns into confetti that competes
   with the one thing that IS meaningful, the yellow current-page pill.

   Specificity is four classes on purpose: the per-row tints are set by
   `… [data-nav-key="…"] .app-sidebar-icon-chip`, which is also four, so
   this ties and wins on source order. Three would silently lose.

   The ACTIVE row keeps its white tile on the yellow pill (app.css) —
   that contrast is the marker, and it is left alone. */
.app-sidebar .app-sidebar-nav .app-sidebar-item .app-sidebar-icon-chip {
  background: var(--color-surface-muted, #f1f2ef);
  color: var(--color-text, #1a1a2e);
  transform: none;
  box-shadow: none;
}

.app-sidebar-item--active,
.app-sidebar-item--active:hover {
  background: #ffd602;
  color: #14171a;
  font-weight: 700;
  /* A 4px edge outside a pill reads as a chip slipping out of its
     slot, so the desktop marker comes off. */
  border-left: none;
  border-radius: 14px;
  margin: 0 8px;
  padding-left: 10px;
}

/* Section headings — MAIN / STUDENTS / TEACHING / ADMIN — are
   signposts, not content. */
.app-sidebar-section-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* ==================================================================
 * 14. STUDENTS CARD — the mockup's card, not a denser version of ours
 * ==================================================================
 * mobile-flagship-redesign.html, screen 1.
 *
 * The owner, after the earlier passes: "what you do for redesign of the
 * mobile version doesn't coincide with mockups at all… I want you to
 * rebuild the way buttons are demonstrated". She is right — until now
 * this file only SHRANK the existing card. The mockup's card carries
 * FEWER things, and that is the whole point of it:
 *
 *     [flag]  Branislav                        €20      ⋮
 *             [Individual] [B1]               /CLASS
 *
 * A flag, a name, two pills, the price, one menu. No native-language
 * badge, no teacher chip, no calendar or plus button. That information
 * is not lost — it is on the student's own page, one tap away — but a
 * list you scan to FIND somebody does not need it, and carrying it is
 * what made every card three crowded lines.
 *
 * Nothing is removed from the page itself: these are display rules, so
 * the DESKTOP card is untouched and every action still lives there.
 * ================================================================== */

/* The two quick actions go; the kebab stays. Everything the calendar
   and plus buttons did is reachable from the student's own page. */
.sv2-card-icons .sv2-icon-btn:not(:last-child) { display: none; }

/* Native language and the teacher line are profile facts, not scanning
   aids. The mockup shows neither. */
.sv2-badge--native,
.sv2-teacher-chip,
.sv2-teacher-chip--assigned,
.sv2-teacher-chip--unassigned { display: none; }

/* With the row emptied, the badges no longer need to scroll sideways —
   they sit under the name, as drawn. */
.sv2-badge-row {
  flex-wrap: wrap;
  overflow-x: visible;
  padding-right: 104px;
}

/* The price becomes the mockup's right-hand column: amount large and
   green, unit small beneath. It is the only number on the card, so it
   can carry the weight. */
.sv2-value-box {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  right: 42px; /* clear of the kebab */
  max-width: 92px;
}
.sv2-value-box .sv2-value-val {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.15;
}

/* One menu button, vertically centred beside the price. The opaque
   backdrop added earlier is no longer needed — nothing scrolls under
   it now that the badge row wraps. */
.sv2-card-icons {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  background: none;
  padding-left: 0;
}

/* The toolbar is a SCROLLING row, which quietly parked the primary
   "+ Add a student" off the right edge — the one button on the screen
   you most need was the only one you could not see without swiping.
   The mockup keeps its green "+" permanently visible at the end of the
   row; the cheapest honest equivalent on a scrolling strip is to bring
   it to the FRONT, so it is the first thing under your thumb. */
.sv2-header-actions .sv2-btn--primary {
  order: -1;
  position: sticky;
  left: 0;
  z-index: 2;
}

} /* end @media (max-width: 640px) */


/* ==================================================================
 * ESCAPE HATCH — the few rules that must beat the GENERATED stylesheet
 * ==================================================================
 * ⛔ READ THIS BEFORE ADDING `!important` ANYWHERE ABOVE. IT WILL NOT
 * WORK, AND IT WILL FAIL SILENTLY.
 *
 * `mobile-compact.css` and `mobile-typography.css` are generated, write
 * `!important` on nearly every declaration, and are imported by
 * global.css INSIDE `@layer base`. This file is imported by
 * AppLayout.astro and is UNLAYERED.
 *
 * The cascade treats unlayered styles as a final layer appended after
 * all the others. For NORMAL declarations the last layer wins, which is
 * why the rules above beat the generated sheets and everything is fine.
 * But importance REVERSES layer order: among `!important` declarations
 * the FIRST layer wins, and unlayered counts as last. So:
 *
 *     a plain rule here            BEATS a plain generated rule      ✔
 *     a plain rule here            LOSES to a shouting generated rule ✘
 *     an `!important` rule here    LOSES to it as well               ✘✘
 *
 * That second failure is the trap. Adding `!important` looks like the
 * obvious fix, changes nothing, and gives no error — three rounds of
 * phone work were partly lost to it.
 *
 * Verify with: node tests/qa-phone-who-wins.mjs <route> <mode> "sel|prop"
 * It prints every matching declaration with its layer, so you can see
 * who actually won instead of guessing.
 *
 * WHEN TO USE THIS BLOCK
 * ----------------------
 * Only when the generated sheet shouts the exact property you need, AND
 * a markup fix is not available. Prefer, in this order:
 *   1. a different property the generator does not touch
 *      (e.g. `display` on a wrapper element — see
 *      `.dv2-confirmed-badge-text`);
 *   2. a change in the component;
 *   3. this block.
 *
 * Do NOT use it to push text below the generated legibility floor. That
 * floor is deliberate — the owner reported grey, unreadable text twice.
 * ================================================================== */

@layer base {
  @media (max-width: 640px) {

    /* The stat card's round icon is pinned to its top-right corner, so
       a two-word title ran underneath it and "LESSONS GIVEN" lost its
       last letter. The generated sheet sets this card's padding to
       14px !important, so nothing unlayered can move it. */
    .ppv3-stat-card-body {
      padding-right: 34px !important;
    }

    /* The student card's flag carries a little green 🎓 badge pinned at
       `right: -5px`, so it hangs outside the flag's box. The generated
       sheet compacts this row's gap to 4.6px !important, which leaves
       roughly nothing between the badge and the first letter of the
       name — the two rendered as one smudged glyph on every card in the
       list. The gap has to clear the badge, not the flag. */
    .sv2-card-top {
      column-gap: 13px !important;
    }

  }
}
