@jesec/flood 0.0.0-master.83e789c → 0.0.0-master.84305da
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +710 -103
- package/README.md +126 -46
- package/SECURITY.md +27 -0
- package/dist/assets/icon_128x128.png +0 -0
- package/dist/assets/icon_192x192.png +0 -0
- package/dist/assets/icon_256x256.png +0 -0
- package/dist/assets/icon_384x384.png +0 -0
- package/dist/assets/icon_512x512.png +0 -0
- package/dist/assets/icon_96x96.png +0 -0
- package/dist/assets/icon_maskable.png +0 -0
- package/dist/assets/icon_maskable_180x180.png +0 -0
- package/dist/assets/index.html +1 -1
- package/dist/assets/manifest.json +35 -7
- package/dist/assets/static/css/main.968c780bfc4b52a705a5.css +2 -0
- package/dist/assets/static/css/main.968c780bfc4b52a705a5.css.map +1 -0
- package/dist/assets/static/js/179.43c61c39.chunk.js +2 -0
- package/dist/assets/static/js/179.43c61c39.chunk.js.map +1 -0
- package/dist/assets/static/js/525.57b74c72.chunk.js +2 -0
- package/dist/assets/static/js/525.57b74c72.chunk.js.map +1 -0
- package/dist/assets/static/js/579.c74a7ebb.chunk.js +2 -0
- package/dist/assets/static/js/579.c74a7ebb.chunk.js.map +1 -0
- package/dist/assets/static/js/704.2754d905.chunk.js +2 -0
- package/dist/assets/static/js/704.2754d905.chunk.js.map +1 -0
- package/dist/assets/static/js/flag0.390f4d80.chunk.js +2 -0
- package/dist/assets/static/js/flag0.390f4d80.chunk.js.map +1 -0
- package/dist/assets/static/js/flag1.c2493006.chunk.js +1 -0
- package/dist/assets/static/js/flag2.55e1234c.chunk.js +1 -0
- package/dist/assets/static/js/flag3.f007a894.chunk.js +1 -0
- package/dist/assets/static/js/i18n0.ec6ce9de.chunk.js +2 -0
- package/dist/assets/static/js/i18n0.ec6ce9de.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n1.024a1e0a.chunk.js +2 -0
- package/dist/assets/static/js/i18n1.024a1e0a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n10.b180a8fe.chunk.js +2 -0
- package/dist/assets/static/js/i18n10.b180a8fe.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n11.cc9e4457.chunk.js +2 -0
- package/dist/assets/static/js/i18n11.cc9e4457.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n12.434bfc84.chunk.js +2 -0
- package/dist/assets/static/js/i18n12.434bfc84.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n13.4e1bcc7d.chunk.js +2 -0
- package/dist/assets/static/js/i18n13.4e1bcc7d.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n14.bd0e0339.chunk.js +2 -0
- package/dist/assets/static/js/i18n14.bd0e0339.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n15.9bccd290.chunk.js +2 -0
- package/dist/assets/static/js/i18n15.9bccd290.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n16.72597f50.chunk.js +2 -0
- package/dist/assets/static/js/i18n16.72597f50.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n17.a512a8ea.chunk.js +2 -0
- package/dist/assets/static/js/i18n17.a512a8ea.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n18.7f743233.chunk.js +2 -0
- package/dist/assets/static/js/i18n18.7f743233.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n19.39cd469a.chunk.js +2 -0
- package/dist/assets/static/js/i18n19.39cd469a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n2.79e0d92e.chunk.js +2 -0
- package/dist/assets/static/js/i18n2.79e0d92e.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n20.3abdb6e8.chunk.js +2 -0
- package/dist/assets/static/js/i18n20.3abdb6e8.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n21.50abaf1d.chunk.js +2 -0
- package/dist/assets/static/js/i18n21.50abaf1d.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n22.1b255305.chunk.js +2 -0
- package/dist/assets/static/js/i18n22.1b255305.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n23.bed06736.chunk.js +2 -0
- package/dist/assets/static/js/i18n23.bed06736.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n24.3c9dd350.chunk.js +2 -0
- package/dist/assets/static/js/i18n24.3c9dd350.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n25.bd8904ad.chunk.js +2 -0
- package/dist/assets/static/js/i18n25.bd8904ad.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n26.6b4d29ff.chunk.js +2 -0
- package/dist/assets/static/js/i18n26.6b4d29ff.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n27.aef61718.chunk.js +2 -0
- package/dist/assets/static/js/i18n27.aef61718.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n28.c7adecad.chunk.js +2 -0
- package/dist/assets/static/js/i18n28.c7adecad.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n3.0dd26c81.chunk.js +2 -0
- package/dist/assets/static/js/i18n3.0dd26c81.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n4.aa48660a.chunk.js +2 -0
- package/dist/assets/static/js/i18n4.aa48660a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n5.5d0467c6.chunk.js +2 -0
- package/dist/assets/static/js/i18n5.5d0467c6.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n6.95586fce.chunk.js +2 -0
- package/dist/assets/static/js/i18n6.95586fce.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n8.c41df595.chunk.js +2 -0
- package/dist/assets/static/js/i18n8.c41df595.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n9.7a446f59.chunk.js +2 -0
- package/dist/assets/static/js/i18n9.7a446f59.chunk.js.map +1 -0
- package/dist/assets/static/js/main.8378636b.js +2 -0
- package/dist/assets/static/js/main.8378636b.js.map +1 -0
- package/dist/assets/static/media/ad.1b24595d.png +0 -0
- package/dist/assets/static/media/ae.4dd8f55e.png +0 -0
- package/dist/assets/static/media/af.4ce660eb.png +0 -0
- package/dist/assets/static/media/ag.fd9409e4.png +0 -0
- package/dist/assets/static/media/al.a297aacf.png +0 -0
- package/dist/assets/static/media/am.c84ee0cf.png +0 -0
- package/dist/assets/static/media/ao.a7c9214e.png +0 -0
- package/dist/assets/static/media/ar.7e57ef92.png +0 -0
- package/dist/assets/static/media/at.5aa9728a.png +0 -0
- package/dist/assets/static/media/au.155b51d8.png +0 -0
- package/dist/assets/static/media/az.63afef5b.png +0 -0
- package/dist/assets/static/media/ba.5ce8f273.png +0 -0
- package/dist/assets/static/media/bb.f369fc62.png +0 -0
- package/dist/assets/static/media/bd.516278fc.png +0 -0
- package/dist/assets/static/media/be.08ec4a8d.png +0 -0
- package/dist/assets/static/media/bf.50bfcb31.png +0 -0
- package/dist/assets/static/media/bg.d9346b96.png +0 -0
- package/dist/assets/static/media/bh.f06d5914.png +0 -0
- package/dist/assets/static/media/bi.4923e3a3.png +0 -0
- package/dist/assets/static/media/bj.019fa79b.png +0 -0
- package/dist/assets/static/media/bn.077671e2.png +0 -0
- package/dist/assets/static/media/bo.8fb15fc6.png +0 -0
- package/dist/assets/static/media/br.ec051f0c.png +0 -0
- package/dist/assets/static/media/bs.a74a126f.png +0 -0
- package/dist/assets/static/media/bt.4217b804.png +0 -0
- package/dist/assets/static/media/bw.21fe1567.png +0 -0
- package/dist/assets/static/media/by.d247fe16.png +0 -0
- package/dist/assets/static/media/bz.98ec59f6.png +0 -0
- package/dist/assets/static/media/ca.25743e11.png +0 -0
- package/dist/assets/static/media/cd.a5bfda53.png +0 -0
- package/dist/assets/static/media/cf.de7d5d92.png +0 -0
- package/dist/assets/static/media/cg.a47b626b.png +0 -0
- package/dist/assets/static/media/ch.445f47a1.png +0 -0
- package/dist/assets/static/media/ci.a6009c5b.png +0 -0
- package/dist/assets/static/media/cl.de1d715e.png +0 -0
- package/dist/assets/static/media/cm.3ce8a86a.png +0 -0
- package/dist/assets/static/media/cn.e6a26073.png +0 -0
- package/dist/assets/static/media/co.e9244faa.png +0 -0
- package/dist/assets/static/media/cr.c895e035.png +0 -0
- package/dist/assets/static/media/cu.e486c055.png +0 -0
- package/dist/assets/static/media/cv.a9585acf.png +0 -0
- package/dist/assets/static/media/cw.df13039d.png +0 -0
- package/dist/assets/static/media/cy.b31f43a9.png +0 -0
- package/dist/assets/static/media/cz.8ec5948b.png +0 -0
- package/dist/assets/static/media/de.d12f391a.png +0 -0
- package/dist/assets/static/media/dj.154c3580.png +0 -0
- package/dist/assets/static/media/dk.da382fe2.png +0 -0
- package/dist/assets/static/media/dm.f452e6cd.png +0 -0
- package/dist/assets/static/media/do.c6bd7637.png +0 -0
- package/dist/assets/static/media/dz.672a69c0.png +0 -0
- package/dist/assets/static/media/ec.349d9bd7.png +0 -0
- package/dist/assets/static/media/ee.2396205f.png +0 -0
- package/dist/assets/static/media/eg.ccbf3f45.png +0 -0
- package/dist/assets/static/media/eh.af65674a.png +0 -0
- package/dist/assets/static/media/er.21afb638.png +0 -0
- package/dist/assets/static/media/es.2a6eaee4.png +0 -0
- package/dist/assets/static/media/et.8beb65c8.png +0 -0
- package/dist/assets/static/media/fi.331f70fd.png +0 -0
- package/dist/assets/static/media/fj.7724d800.png +0 -0
- package/dist/assets/static/media/fm.eeaf71e9.png +0 -0
- package/dist/assets/static/media/fr.5d5ab008.png +0 -0
- package/dist/assets/static/media/ga.77ed474c.png +0 -0
- package/dist/assets/static/media/gb.e00065bf.png +0 -0
- package/dist/assets/static/media/gd.b4522267.png +0 -0
- package/dist/assets/static/media/ge.91a7654d.png +0 -0
- package/dist/assets/static/media/gh.4759f92f.png +0 -0
- package/dist/assets/static/media/gm.81cd9f75.png +0 -0
- package/dist/assets/static/media/gn.9f3d376e.png +0 -0
- package/dist/assets/static/media/gq.e8ad58be.png +0 -0
- package/dist/assets/static/media/gr.26f3ac0b.png +0 -0
- package/dist/assets/static/media/gt.9d81c52e.png +0 -0
- package/dist/assets/static/media/gw.dc906982.png +0 -0
- package/dist/assets/static/media/gy.a4f62b6c.png +0 -0
- package/dist/assets/static/media/hk.56555c3f.png +0 -0
- package/dist/assets/static/media/hn.64ee6aad.png +0 -0
- package/dist/assets/static/media/hr.93ebecd3.png +0 -0
- package/dist/assets/static/media/ht.42ca1596.png +0 -0
- package/dist/assets/static/media/hu.bb30f05d.png +0 -0
- package/dist/assets/static/media/id.2cb49f2d.png +0 -0
- package/dist/assets/static/media/ie.b4dd1f19.png +0 -0
- package/dist/assets/static/media/il.cd1d1faf.png +0 -0
- package/dist/assets/static/media/in.2df03847.png +0 -0
- package/dist/assets/static/media/iq.a9b670ab.png +0 -0
- package/dist/assets/static/media/ir.9a3de085.png +0 -0
- package/dist/assets/static/media/is.d88f4fc9.png +0 -0
- package/dist/assets/static/media/it.b73713e3.png +0 -0
- package/dist/assets/static/media/je.0353f56a.png +0 -0
- package/dist/assets/static/media/jm.20330ef4.png +0 -0
- package/dist/assets/static/media/jo.eb66f1d1.png +0 -0
- package/dist/assets/static/media/jp.63e382ae.png +0 -0
- package/dist/assets/static/media/ke.ab2e43b8.png +0 -0
- package/dist/assets/static/media/kg.2c47c2af.png +0 -0
- package/dist/assets/static/media/kh.4732c810.png +0 -0
- package/dist/assets/static/media/ki.5fba09fd.png +0 -0
- package/dist/assets/static/media/km.7bbed3e9.png +0 -0
- package/dist/assets/static/media/kn.a9595a16.png +0 -0
- package/dist/assets/static/media/kp.8a4dc30a.png +0 -0
- package/dist/assets/static/media/kr.5273be1d.png +0 -0
- package/dist/assets/static/media/ks.99f78645.png +0 -0
- package/dist/assets/static/media/kw.af3521bc.png +0 -0
- package/dist/assets/static/media/kz.ea47ef79.png +0 -0
- package/dist/assets/static/media/la.78a598d7.png +0 -0
- package/dist/assets/static/media/lb.7a7c15a9.png +0 -0
- package/dist/assets/static/media/lc.6083a4ff.png +0 -0
- package/dist/assets/static/media/li.61c564a4.png +0 -0
- package/dist/assets/static/media/lk.6fa85802.png +0 -0
- package/dist/assets/static/media/lr.8063f7db.png +0 -0
- package/dist/assets/static/media/ls.901ddb71.png +0 -0
- package/dist/assets/static/media/lt.9209ace3.png +0 -0
- package/dist/assets/static/media/lu.c9872bc1.png +0 -0
- package/dist/assets/static/media/lv.7bcacf0a.png +0 -0
- package/dist/assets/static/media/ly.2830aa63.png +0 -0
- package/dist/assets/static/media/ma.ce5f697b.png +0 -0
- package/dist/assets/static/media/mc.4bd5d57a.png +0 -0
- package/dist/assets/static/media/md.fb4b5bdf.png +0 -0
- package/dist/assets/static/media/me.1f1d1772.png +0 -0
- package/dist/assets/static/media/mg.89101bd2.png +0 -0
- package/dist/assets/static/media/mh.ff11dff7.png +0 -0
- package/dist/assets/static/media/mk.8420e604.png +0 -0
- package/dist/assets/static/media/ml.4db47c66.png +0 -0
- package/dist/assets/static/media/mm.8e4ac30a.png +0 -0
- package/dist/assets/static/media/mn.dc1daa04.png +0 -0
- package/dist/assets/static/media/mr.7cbca6d0.png +0 -0
- package/dist/assets/static/media/mt.28a4b863.png +0 -0
- package/dist/assets/static/media/mu.d93db6c7.png +0 -0
- package/dist/assets/static/media/mv.7d026bf1.png +0 -0
- package/dist/assets/static/media/mw.960cd4fb.png +0 -0
- package/dist/assets/static/media/mx.39b78eb2.png +0 -0
- package/dist/assets/static/media/my.916a8392.png +0 -0
- package/dist/assets/static/media/mz.facb4ea3.png +0 -0
- package/dist/assets/static/media/na.472666a9.png +0 -0
- package/dist/assets/static/media/ne.d774701f.png +0 -0
- package/dist/assets/static/media/ng.7b06a49f.png +0 -0
- package/dist/assets/static/media/ni.7140131c.png +0 -0
- package/dist/assets/static/media/nl.4c04aa96.png +0 -0
- package/dist/assets/static/media/no.c19eb00d.png +0 -0
- package/dist/assets/static/media/np.54fb4f2f.png +0 -0
- package/dist/assets/static/media/nr.7527cc38.png +0 -0
- package/dist/assets/static/media/nz.738be05b.png +0 -0
- package/dist/assets/static/media/om.b25e0a17.png +0 -0
- package/dist/assets/static/media/pa.b28a9059.png +0 -0
- package/dist/assets/static/media/pe.c1fc1d96.png +0 -0
- package/dist/assets/static/media/pg.380115db.png +0 -0
- package/dist/assets/static/media/ph.02199ddc.png +0 -0
- package/dist/assets/static/media/pk.094f9517.png +0 -0
- package/dist/assets/static/media/pl.41521283.png +0 -0
- package/dist/assets/static/media/pt.1f82dc04.png +0 -0
- package/dist/assets/static/media/pw.a26c2316.png +0 -0
- package/dist/assets/static/media/py.926c65ed.png +0 -0
- package/dist/assets/static/media/qa.c6a3c20e.png +0 -0
- package/dist/assets/static/media/ro.a36876c9.png +0 -0
- package/dist/assets/static/media/rs.c6629de8.png +0 -0
- package/dist/assets/static/media/ru.a9b948c1.png +0 -0
- package/dist/assets/static/media/rw.e8aecba0.png +0 -0
- package/dist/assets/static/media/sa.859049c8.png +0 -0
- package/dist/assets/static/media/sb.4ad27b27.png +0 -0
- package/dist/assets/static/media/sc.3293efde.png +0 -0
- package/dist/assets/static/media/sd.19c94faa.png +0 -0
- package/dist/assets/static/media/se.195b3f93.png +0 -0
- package/dist/assets/static/media/sg.19d81907.png +0 -0
- package/dist/assets/static/media/si.367c5443.png +0 -0
- package/dist/assets/static/media/sk.4e5b8a39.png +0 -0
- package/dist/assets/static/media/sl.4b174b1c.png +0 -0
- package/dist/assets/static/media/sm.2cba3dac.png +0 -0
- package/dist/assets/static/media/sn.a4c1041d.png +0 -0
- package/dist/assets/static/media/so.b455e3bf.png +0 -0
- package/dist/assets/static/media/sr.5adc1c00.png +0 -0
- package/dist/assets/static/media/st.5ae44155.png +0 -0
- package/dist/assets/static/media/sv.43aa6cdf.png +0 -0
- package/dist/assets/static/media/sy.0fbd24f7.png +0 -0
- package/dist/assets/static/media/sz.ff204912.png +0 -0
- package/dist/assets/static/media/td.c7aa2a4e.png +0 -0
- package/dist/assets/static/media/tg.857c3bec.png +0 -0
- package/dist/assets/static/media/th.683600c7.png +0 -0
- package/dist/assets/static/media/tj.d20c5570.png +0 -0
- package/dist/assets/static/media/tl.5edd8ea7.png +0 -0
- package/dist/assets/static/media/tm.15960215.png +0 -0
- package/dist/assets/static/media/tn.40df718e.png +0 -0
- package/dist/assets/static/media/to.c3b054df.png +0 -0
- package/dist/assets/static/media/tr.adeace6d.png +0 -0
- package/dist/assets/static/media/tt.839bd7f1.png +0 -0
- package/dist/assets/static/media/tv.628cae3e.png +0 -0
- package/dist/assets/static/media/tw.4e885914.png +0 -0
- package/dist/assets/static/media/tz.b2f0dc37.png +0 -0
- package/dist/assets/static/media/ua.6b103313.png +0 -0
- package/dist/assets/static/media/ug.c84042fc.png +0 -0
- package/dist/assets/static/media/us.8523c31d.png +0 -0
- package/dist/assets/static/media/uy.a943f85e.png +0 -0
- package/dist/assets/static/media/uz.25552673.png +0 -0
- package/dist/assets/static/media/va.a29e1b53.png +0 -0
- package/dist/assets/static/media/vc.7480bd37.png +0 -0
- package/dist/assets/static/media/ve.fd4273c2.png +0 -0
- package/dist/assets/static/media/vn.7d2eff1b.png +0 -0
- package/dist/assets/static/media/vu.48b64cf3.png +0 -0
- package/dist/assets/static/media/ws.f3d9202f.png +0 -0
- package/dist/assets/static/media/ye.311a0e50.png +0 -0
- package/dist/assets/static/media/za.090a856f.png +0 -0
- package/dist/assets/static/media/zm.8371e197.png +0 -0
- package/dist/assets/static/media/zw.a6809447.png +0 -0
- package/dist/index.js +131685 -0
- package/package.json +222 -151
- package/dist/assets/android-chrome-192x192.png +0 -0
- package/dist/assets/android-chrome-512x512.png +0 -0
- package/dist/assets/apple-touch-icon.png +0 -0
- package/dist/assets/asset-manifest.json +0 -57
- package/dist/assets/browserconfig.xml +0 -9
- package/dist/assets/favicon-16x16.png +0 -0
- package/dist/assets/favicon-32x32.png +0 -0
- package/dist/assets/mstile-144x144.png +0 -0
- package/dist/assets/mstile-150x150.png +0 -0
- package/dist/assets/mstile-310x150.png +0 -0
- package/dist/assets/mstile-310x310.png +0 -0
- package/dist/assets/mstile-70x70.png +0 -0
- package/dist/assets/static/css/main.e5c088b6b6f679087a82.css +0 -1
- package/dist/assets/static/js/0.0a556a75.chunk.js +0 -1
- package/dist/assets/static/js/1.14dd2d0c.chunk.js +0 -1
- package/dist/assets/static/js/10.d4eef924.chunk.js +0 -1
- package/dist/assets/static/js/11.53cd515d.chunk.js +0 -1
- package/dist/assets/static/js/12.ce0f8a4e.chunk.js +0 -1
- package/dist/assets/static/js/13.9ca96920.chunk.js +0 -1
- package/dist/assets/static/js/14.588e3d0c.chunk.js +0 -1
- package/dist/assets/static/js/15.f28d64ab.chunk.js +0 -1
- package/dist/assets/static/js/16.53dd87df.chunk.js +0 -1
- package/dist/assets/static/js/17.b764e125.chunk.js +0 -1
- package/dist/assets/static/js/18.9b7e5575.chunk.js +0 -1
- package/dist/assets/static/js/2.8fafb9ff.chunk.js +0 -1
- package/dist/assets/static/js/20.64809e35.chunk.js +0 -1
- package/dist/assets/static/js/21.f3058669.chunk.js +0 -1
- package/dist/assets/static/js/22.dcfb4883.chunk.js +0 -1
- package/dist/assets/static/js/23.840a4201.chunk.js +0 -1
- package/dist/assets/static/js/24.0a173a0d.chunk.js +0 -1
- package/dist/assets/static/js/25.e4c2217e.chunk.js +0 -1
- package/dist/assets/static/js/26.5f03f1a3.chunk.js +0 -1
- package/dist/assets/static/js/27.5127408d.chunk.js +0 -1
- package/dist/assets/static/js/28.ebac4379.chunk.js +0 -1
- package/dist/assets/static/js/29.de46849d.chunk.js +0 -1
- package/dist/assets/static/js/3.c219b8a8.chunk.js +0 -1
- package/dist/assets/static/js/30.ff543e93.chunk.js +0 -1
- package/dist/assets/static/js/31.1f1ad44f.chunk.js +0 -1
- package/dist/assets/static/js/32.b4c28098.chunk.js +0 -1
- package/dist/assets/static/js/33.3febffaf.chunk.js +0 -1
- package/dist/assets/static/js/34.2e764e96.chunk.js +0 -1
- package/dist/assets/static/js/35.92c40bb9.chunk.js +0 -1
- package/dist/assets/static/js/36.27afe215.chunk.js +0 -1
- package/dist/assets/static/js/37.6d94e34b.chunk.js +0 -1
- package/dist/assets/static/js/38.107b5aa9.chunk.js +0 -1
- package/dist/assets/static/js/39.112b724b.chunk.js +0 -1
- package/dist/assets/static/js/4.19d26f13.chunk.js +0 -1
- package/dist/assets/static/js/40.44aa79f5.chunk.js +0 -1
- package/dist/assets/static/js/41.fb69cc30.chunk.js +0 -1
- package/dist/assets/static/js/42.906cc1ff.chunk.js +0 -1
- package/dist/assets/static/js/43.135e1560.chunk.js +0 -1
- package/dist/assets/static/js/44.a3d23bab.chunk.js +0 -1
- package/dist/assets/static/js/45.f025dffe.chunk.js +0 -1
- package/dist/assets/static/js/46.3ea25c9e.chunk.js +0 -1
- package/dist/assets/static/js/47.5a213255.chunk.js +0 -1
- package/dist/assets/static/js/48.ce4bfe23.chunk.js +0 -1
- package/dist/assets/static/js/49.857650de.chunk.js +0 -1
- package/dist/assets/static/js/5.dc5232a2.chunk.js +0 -1
- package/dist/assets/static/js/50.2a5fd558.chunk.js +0 -1
- package/dist/assets/static/js/6.210f5d48.chunk.js +0 -1
- package/dist/assets/static/js/7.29af7904.chunk.js +0 -1
- package/dist/assets/static/js/8.efcd70d8.chunk.js +0 -1
- package/dist/assets/static/js/9.23e24017.chunk.js +0 -1
- package/dist/assets/static/js/main.c8ce60de.js +0 -1
- package/dist/assets/static/media/ABOUT.d02918c9.md +0 -13
- package/dist/assets/static/media/Roboto-500.64e69384.woff +0 -0
- package/dist/assets/static/media/Roboto-500.7f8f0146.eot +0 -0
- package/dist/assets/static/media/Roboto-500.916656a2.ttf +0 -0
- package/dist/assets/static/media/Roboto-500.abd255e8.svg +0 -305
- package/dist/assets/static/media/Roboto-700.8d11d1e1.ttf +0 -0
- package/dist/assets/static/media/Roboto-700.9c9c164e.svg +0 -310
- package/dist/assets/static/media/Roboto-700.c65552c8.eot +0 -0
- package/dist/assets/static/media/Roboto-700.ee82bda2.woff +0 -0
- package/dist/assets/static/media/Roboto-700italic.1dc5bfed.eot +0 -0
- package/dist/assets/static/media/Roboto-700italic.686da014.woff +0 -0
- package/dist/assets/static/media/Roboto-700italic.896656dc.ttf +0 -0
- package/dist/assets/static/media/Roboto-700italic.cacb9681.svg +0 -325
- package/dist/assets/static/media/Roboto-italic.09ed2f27.svg +0 -323
- package/dist/assets/static/media/Roboto-italic.c1421604.woff +0 -0
- package/dist/assets/static/media/Roboto-italic.c38ecad2.ttf +0 -0
- package/dist/assets/static/media/Roboto-italic.f7677a07.eot +0 -0
- package/dist/assets/static/media/Roboto-regular.5107f918.eot +0 -0
- package/dist/assets/static/media/Roboto-regular.6a307cf2.woff +0 -0
- package/dist/assets/static/media/Roboto-regular.81dc9b21.ttf +0 -0
- package/dist/assets/static/media/Roboto-regular.bcf2ba9e.svg +0 -308
- package/dist/config.js +0 -173
- package/dist/server/app.js +0 -79
- package/dist/server/bin/enforce-prerequisites.js +0 -55
- package/dist/server/bin/migrations/fix-is-admin-flag.js +0 -41
- package/dist/server/bin/migrations/per-user-rtorrent-instances.js +0 -67
- package/dist/server/bin/migrations/run.js +0 -10
- package/dist/server/bin/start.js +0 -18
- package/dist/server/bin/web-server.js +0 -94
- package/dist/server/config/passport.js +0 -32
- package/dist/server/constants/clientGatewayServiceEvents.js +0 -15
- package/dist/server/constants/diskUsageServiceEvents.js +0 -8
- package/dist/server/constants/fileListPropMap.js +0 -29
- package/dist/server/constants/historyServiceEvents.js +0 -18
- package/dist/server/constants/notificationServiceEvents.js +0 -8
- package/dist/server/constants/taxonomyServiceEvents.js +0 -8
- package/dist/server/constants/torrentListPropMap.js +0 -200
- package/dist/server/constants/torrentServiceEvents.js +0 -8
- package/dist/server/constants/transferSummaryPropMap.js +0 -28
- package/dist/server/middleware/appendUserServices.js +0 -10
- package/dist/server/middleware/booleanCoerce.js +0 -9
- package/dist/server/middleware/clientActivityStream.js +0 -124
- package/dist/server/middleware/eventStream.js +0 -25
- package/dist/server/middleware/requireAdmin.js +0 -8
- package/dist/server/models/ClientRequest.js +0 -310
- package/dist/server/models/Feed.js +0 -65
- package/dist/server/models/Filesystem.js +0 -44
- package/dist/server/models/HistoryEra.js +0 -168
- package/dist/server/models/ServerEvent.js +0 -27
- package/dist/server/models/TemporaryStorage.js +0 -20
- package/dist/server/models/Users.js +0 -160
- package/dist/server/models/client.js +0 -363
- package/dist/server/models/settings.js +0 -119
- package/dist/server/routes/api.js +0 -69
- package/dist/server/routes/auth.js +0 -184
- package/dist/server/routes/client.js +0 -101
- package/dist/server/services/BaseService.js +0 -24
- package/dist/server/services/clientGatewayService.js +0 -220
- package/dist/server/services/clientRequestManager.js +0 -76
- package/dist/server/services/diskUsageService.js +0 -133
- package/dist/server/services/feedService.js +0 -290
- package/dist/server/services/historyService.js +0 -181
- package/dist/server/services/index.js +0 -108
- package/dist/server/services/notificationService.js +0 -109
- package/dist/server/services/taxonomyService.js +0 -107
- package/dist/server/services/torrentService.js +0 -235
- package/dist/server/util/ajaxUtil.js +0 -19
- package/dist/server/util/clientResponseUtil.js +0 -99
- package/dist/server/util/fileUtil.js +0 -45
- package/dist/server/util/mediainfo.js +0 -34
- package/dist/server/util/methodCallUtil.js +0 -22
- package/dist/server/util/numberUtils.js +0 -7
- package/dist/server/util/rTorrentDeserializer.js +0 -104
- package/dist/server/util/rTorrentPropMap.js +0 -13
- package/dist/server/util/scgiUtil.js +0 -36
- package/dist/server/util/torrentFileUtil.js +0 -23
- package/dist/shared/config/paths.js +0 -41
- package/dist/shared/constants/clientSettingsMap.js +0 -53
- package/dist/shared/constants/diffActionTypes.js +0 -6
- package/dist/shared/constants/historySnapshotTypes.js +0 -11
- package/dist/shared/constants/serverEventTypes.js +0 -18
- package/dist/shared/constants/torrentFilePropsMap.js +0 -6
- package/dist/shared/constants/torrentPeerPropsMap.js +0 -32
- package/dist/shared/constants/torrentStatusMap.js +0 -17
- package/dist/shared/constants/torrentTrackerPropsMap.js +0 -6
- package/dist/shared/util/formatUtil.js +0 -33
- package/dist/shared/util/objectUtil.js +0 -56
- package/dist/shared/util/regEx.js +0 -7
- /package/dist/assets/{safari-pinned-tab.svg → icon.svg} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/main.968c780bfc4b52a705a5.css","mappings":"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","sources":["client/src/sass/style.scss","node_modules/ress/dist/ress.min.css","client/src/sass/ui/components/button.scss","client/src/sass/tools/_colors.scss","client/src/sass/ui/config/variables.scss","client/src/sass/ui/components/context-menu.scss","client/src/sass/ui/config/border-radius.scss","client/src/sass/ui/components/container.scss","client/src/sass/ui/components/error.scss","client/src/sass/ui/config/spacing.scss","client/src/sass/ui/components/form.scss","client/src/sass/ui/config/font-size.scss","client/src/sass/ui/components/element-addon.scss","client/src/sass/ui/components/icon.scss","client/src/sass/ui/components/input.scss","client/src/sass/ui/components/overlay.scss","client/src/sass/ui/components/panel.scss","client/src/sass/tools/_themes.scss","client/src/sass/ui/components/portal.scss","client/src/sass/ui/components/section.scss","client/src/sass/ui/components/select.scss","client/src/sass/tools/_reset.scss","client/src/sass/base/_animations.scss","client/src/sass/base/_font-families.scss","client/src/sass/base/_layout.scss","client/src/sass/base/_main.scss","client/src/sass/base/_typography.scss","client/src/sass/components/_action-bar.scss","client/src/sass/components/_app-wrapper.scss","client/src/sass/components/_alerts.scss","client/src/sass/components/_attached-panel.scss","client/src/sass/components/_badge.scss","client/src/sass/components/_base-menu.scss","client/src/sass/components/_client-stats.scss","client/src/sass/components/_connection-status.scss","client/src/sass/components/_dependency-list.scss","client/src/sass/components/_directory-tree.scss","client/src/sass/components/_dropdown.scss","client/src/sass/components/_dropzone.scss","client/src/sass/components/_duration.scss","client/src/sass/components/_floating-action.scss","client/src/sass/components/_icons.scss","client/src/sass/components/_interactive-list.scss","client/src/sass/components/_loading-indicator.scss","client/src/sass/components/_mediainfo.scss","client/src/sass/components/_modals.scss","client/src/sass/components/_notifications.scss","client/src/sass/components/_peers-list.scss","client/src/sass/components/_priority-meter.scss","client/src/sass/components/_progress-bar.scss","client/src/sass/components/_scrollbars.scss","client/src/sass/components/_search.scss","client/src/sass/components/_sidebar.scss","client/src/sass/components/_sidebar-filter.scss","client/src/sass/components/_sort-dropdown.scss","client/src/sass/components/_sortable-list.scss","client/src/sass/components/_table.scss","client/src/sass/components/_tags.scss","client/src/sass/components/_textbox-repeater.scss","client/src/sass/components/_toolbar.scss","client/src/sass/components/_tooltip.scss","client/src/sass/components/_torrent-details-panel.scss","client/src/sass/components/_torrents.scss","client/src/sass/components/_torrent.scss","client/src/sass/components/_transfer-data.scss","client/src/sass/views/_login.scss","client/src/sass/views/_feeds.scss","client/src/sass/panda.css"],"sourcesContent":["// Must match Panda's layers: reset, base, tokens, recipes, utilities\n// third-party layer for vendor styles (higher priority than reset, lower than base)\n@layer reset, third-party, base, tokens, recipes, utilities;\n\n// Import ress in the reset layer\n@layer reset {\n @import '~ress';\n}\n\n@import 'tools/themes';\n\n// Global styles in base layer\n@layer base {\n @import 'ui/index';\n\n @import 'tools/variables';\n @import 'tools/reset';\n\n @import 'base/animations';\n @import 'base/font-families';\n @import 'base/layout';\n @import 'base/main';\n @import 'base/typography';\n\n @import 'components/action-bar';\n @import 'components/app-wrapper';\n @import 'components/alerts';\n @import 'components/attached-panel';\n @import 'components/badge';\n @import 'components/base-menu';\n @import 'components/client-stats';\n @import 'components/connection-status';\n @import 'components/dependency-list';\n @import 'components/directory-tree';\n @import 'components/dropdown';\n @import 'components/dropzone';\n @import 'components/duration';\n @import 'components/floating-action';\n @import 'components/icons';\n @import 'components/interactive-list';\n @import 'components/loading-indicator';\n @import 'components/mediainfo';\n @import 'components/modals';\n @import 'components/notifications';\n @import 'components/peers-list';\n @import 'components/priority-meter';\n @import 'components/progress-bar';\n @import 'components/scrollbars';\n @import 'components/search';\n @import 'components/sidebar';\n @import 'components/sidebar-filter';\n @import 'components/sort-dropdown';\n @import 'components/sortable-list';\n @import 'components/table';\n @import 'components/tags';\n @import 'components/textbox-repeater';\n @import 'components/toolbar';\n @import 'components/tooltip';\n @import 'components/torrent-details-panel';\n @import 'components/torrents';\n @import 'components/torrent';\n @import 'components/transfer-data';\n\n @import 'views/login';\n @import 'views/feeds';\n}\n","/*!\n * ress.css • v4.0.0\n * MIT License\n * github.com/filipelinhares/ress\n */html{box-sizing:border-box;-webkit-text-size-adjust:100%;word-break:normal;-moz-tab-size:4;tab-size:4}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0;color:inherit}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}input{border-radius:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer;color:inherit}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}","@use 'sass:color';\n\n@use '../../tools/colors';\n\n@use '../config/variables.scss';\n@use '../config/speed.scss';\n\n@function button--text-shadow($color) {\n @return 0 1px 0 color.adjust($color, $lightness: -5%), 0 1px 2px rgba(color.adjust($color, $lightness: -10%), 0.8);\n}\n\n@function button--svg-shadow($color) {\n @return drop-shadow(0 1px 0 color.adjust($color, $lightness: -5%))\n drop-shadow(0 1px 2px rgba(color.adjust($color, $lightness: -10%), 0.8));\n}\n\n.button {\n border: variables.$form--element--border-width solid currentColor;\n cursor: pointer;\n color: colors.$white;\n font-weight: 500;\n line-height: 1.5;\n position: relative;\n user-select: none;\n\n &:active {\n color: rgba(colors.$white, 0.8);\n }\n\n &--primary {\n background: colors.$blue;\n border-color: colors.$blue--hard;\n box-shadow: form--element--box-shadow(colors.$blue);\n text-shadow: button--text-shadow(colors.$blue--hard);\n\n &:focus-visible,\n &:hover {\n background: colors.$blue--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--box-shadow--active(colors.$blue--hard);\n }\n\n &:active {\n background: colors.$blue--hard;\n border-color: color.adjust(colors.$blue--hard, $lightness: -5%);\n box-shadow: form--element--box-shadow--active(colors.$blue--hard);\n }\n\n .inverse & {\n border-color: colors.$blue;\n\n &:focus,\n &:hover {\n background: colors.$blue--light;\n border-color: colors.$blue--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--inverse--box-shadow--active(colors.$blue--light);\n }\n\n &:active {\n background: colors.$blue;\n border-color: colors.$blue;\n }\n }\n\n svg {\n filter: button--svg-shadow(colors.$blue--hard);\n }\n }\n\n &--secondary {\n background: colors.$green;\n border-color: colors.$green--hard;\n box-shadow: form--element--box-shadow(colors.$green);\n text-shadow: button--text-shadow(colors.$green--hard);\n\n &:focus-visible,\n &:hover {\n background: colors.$green--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--box-shadow--active(colors.$green);\n }\n\n &:active {\n background: colors.$green--hard;\n border-color: color.adjust(colors.$green--hard, $lightness: -5%);\n }\n\n .inverse & {\n border-color: colors.$green;\n\n &:focus,\n &:hover {\n background: colors.$green--light;\n border-color: colors.$green--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--inverse--box-shadow--active(colors.$green--light);\n }\n\n &:active {\n background: colors.$green;\n border-color: colors.$green;\n }\n }\n\n svg {\n filter: button--svg-shadow(colors.$green--hard);\n }\n }\n\n &--tertiary {\n background: colors.$grey;\n border-color: colors.$grey--harder;\n box-shadow: form--element--box-shadow(colors.$grey);\n text-shadow: button--text-shadow(colors.$grey--hard);\n\n &:focus-visible,\n &:hover {\n background: colors.$grey--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--box-shadow--active(colors.$grey);\n }\n\n &:active {\n background: colors.$grey--hard;\n border-color: color.adjust(colors.$grey--hard, $lightness: -5%);\n }\n\n .inverse & {\n border-color: colors.$grey;\n\n &:focus,\n &:hover {\n background: colors.$grey--light;\n border-color: colors.$grey--light;\n }\n\n &:active,\n &:focus {\n box-shadow: form--element--inverse--box-shadow--active(colors.$grey--light);\n }\n\n &:active {\n background: colors.$grey;\n border-color: colors.$grey;\n }\n }\n\n svg {\n filter: button--svg-shadow(colors.$grey--hard);\n }\n }\n\n &--quaternary {\n background: colors.$white;\n border-color: colors.$grey--lighter;\n box-shadow: form--element--box-shadow(colors.$grey--lighter);\n color: colors.$grey;\n\n &:focus-visible,\n &:hover {\n border-color: colors.$medium-grey;\n color: colors.$grey--hard;\n }\n\n &:active,\n &:focus {\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n color: color.adjust(colors.$blue--darker, $saturation: -25%);\n }\n\n &:active {\n background-color: colors.$blue--soft;\n }\n\n .inverse & {\n background: variables.$input--inverse--background;\n border-color: variables.$input--inverse--border;\n box-shadow: variables.$form--element--inverse--box-shadow;\n color: variables.$input--inverse--foreground;\n\n &:focus,\n &:hover {\n border-color: variables.$input--inverse--border--hover;\n color: variables.$input--inverse--foreground--hover;\n }\n\n &:active,\n &:focus {\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n color: variables.$input--inverse--foreground--active;\n }\n\n &:active {\n background-color: rgba(colors.$blue--soft, 0.15);\n }\n }\n\n svg {\n filter: button--svg-shadow(colors.$grey--lighter);\n }\n }\n\n // TODO: Investiate this darker border.\n // &--primary,\n // &--secondary,\n // &--tertiary {\n\n // .inverse & {\n // // border: 1px solid transparent;\n // // box-shadow:\n // // 0 0 0 1px rgba($input--inverse--border, 0.5),\n // // 0 0 0 2px rgba($input--inverse--border, 0.2);\n\n // &:active,\n // &:focus {\n // box-shadow:\n // 0 0 0 1px rgba($input--inverse--border, 0.2),\n // 0 0 0 2px rgba($input--inverse--border, 0.7);\n // }\n // }\n // }\n\n &--is-disabled {\n box-shadow: form--element--box-shadow(colors.$blue);\n color: colors.$grey--light;\n text-shadow: none;\n\n &,\n &:hover,\n &:focus,\n &:active {\n background: colors.$light-grey;\n border-color: colors.$light-grey--hard;\n box-shadow: none;\n cursor: not-allowed;\n }\n }\n\n &__content {\n align-items: center;\n display: flex;\n opacity: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity speed.$speed--x-fast;\n white-space: nowrap;\n }\n\n .icon {\n fill: currentColor;\n\n &--clipboard {\n width: 15px;\n }\n\n &--loading {\n left: 50%;\n opacity: 0;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n transition: opacity speed.$speed--fast;\n }\n }\n\n &--is-loading {\n .button {\n &__content {\n opacity: 0;\n }\n }\n\n .icon {\n &--loading {\n opacity: 1;\n }\n }\n }\n}\n","@use 'sass:color';\n\n@function harden($color, $modifier: 1) {\n @return color.adjust($color, $lightness: - (6% * $modifier));\n}\n\n$white: #fff;\n$black: #000;\n\n$red: #f34570;\n$red--alpha--light: rgba($red, 0.1);\n$red--alpha--medium: rgba($red, 0.2);\n\n$blue: #349cf4;\n$blue--light: color.adjust($blue, $lightness: 7%);\n$blue--lighter: color.adjust($blue, $lightness: 40%);\n$blue--soft: rgba($blue, 0.05);\n$blue--hard: harden($blue, 1.5);\n$blue--darker: color.adjust($blue, $lightness: -20%);\n\n$light-blue: #e9eef2;\n$dark-blue: #1d2938;\n\n$green: #39ce83;\n$green--light: color.adjust($green, $lightness: 7%);\n$green--hard: harden($green, 1.3);\n$green--darker: color.adjust(#39ce83, $lightness: -4%);\n\n$medium-grey: #abbac7;\n$medium-grey--lighter: #b9c7d3;\n$medium-grey--soft: rgba($medium-grey, 0.15);\n\n$grey: #8899a8;\n$grey--soft: rgba($grey, 0.15);\n$grey--light: color.adjust($grey, $lightness: 7%);\n$grey--lighter: color.adjust($grey, $lightness: 25%);\n$grey--hard: harden($grey, 1.75);\n$grey--harder: harden($grey, 1);\n\n$dark-grey: #34516c;\n$dark-grey--light: color.adjust($dark-grey, $lightness: 7%);\n$darker-grey: #1d2938;\n$darkest-grey: #28303b;\n$darkest-grey--hard: #293341;\n$darkest-grey--darker: #202d3c;\n\n$light-grey: #e9eef2;\n$light-grey--lighter: #f8f9fb;\n$light-grey--soft: rgba($light-grey, 0.15);\n$light-grey--hard: harden($light-grey);\n\n$another-grey: #3a4553;\n\n$background: $dark-blue;\n$foreground: #53718a;\n\n$sidebar--background: $darkest-grey--hard;\n$sidebar--foreground: #526780;\n$main-content--background: $light-blue;\n\n$textbox--background: #242b36;\n$textbox--foreground: #5e728c;\n$textbox--border: #1a2028;\n$textbox--fulfilled--background: $textbox--background;\n$textbox--placeholder: #424d5e;\n$textbox--selection--foreground: #1a2028;\n$textbox--selection--background: $blue--lighter;\n$textbox--active--background: $textbox--background;\n$textbox--active--border: $blue;\n$textbox--active--foreground: $blue;\n$textbox--active--placeholder: $textbox--placeholder;\n\n$table--heading--color: #abbac7;\n\n$action--foreground--hover: $blue;\n$action--background--hover: rgba(#333e4a, 0.05);\n$action--border--hover: rgba(#333e4a, 0.15);\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../../tools/colors';\n\n@use './border-radius.scss';\n@use './spacing.scss';\n\n// Forms\n$form--element--border-radius: border-radius.$border-radius--medium;\n$form--element--border-width: 1px;\n$form--element--height: 34px;\n$form--element--padding--x: spacing.$spacing--small + spacing.$spacing--xx-small;\n$form--element--padding--y: 0;\n$form__row--margin--vertical: spacing.$spacing--medium;\n\n// Checkboxes & Radio buttons\n$toggle-input--height: spacing.$spacing--large;\n$toggle-input--width: spacing.$spacing--large;\n\n// Select\n$select--indicator--width: $form--element--padding--x * 2 + spacing.$spacing--small;\n$select--button--padding-right: $select--indicator--width + spacing.$spacing--x-small;\n\n// Input Elements\n$input--background: colors.$white;\n$input--border: colors.$grey--lighter;\n$input--border--hover: colors.$medium-grey;\n$form--element--box-shadow: form--element--box-shadow(colors.$grey--lighter);\n$input--foreground: colors.$grey;\n$input--foreground--hover: colors.$grey--hard;\n$input--foreground--placeholder: rgba(colors.$medium-grey, 0.5);\n$input--foreground--placeholder--hover: rgba(colors.$grey--light, 0.6);\n\n// Inverse input Elements\n$input--inverse--background: colors.$darkest-grey--hard;\n$input--inverse--border: colors.$darkest-grey--darker;\n$input--inverse--border--hover: color.adjust(colors.$darkest-grey--darker, $lightness: -5%);\n$form--element--inverse--box-shadow: form--element--box-shadow(colors.$darkest-grey--hard);\n$input--inverse--foreground: colors.$grey;\n$input--inverse--foreground--hover: colors.$grey--lighter;\n$input--inverse--foreground--active: colors.$blue--lighter;\n$input--inverse--foreground--placeholder--active: rgba(color.adjust(colors.$blue, $lightness: 15%), 0.5);\n$input--inverse--foreground--placeholder: rgba(colors.$medium-grey, 0.25);\n$input--inverse--foreground--placeholder--hover: rgba(colors.$medium-grey, 0.4);\n\n$input--addon--width: $form--element--padding--x * 2 + spacing.$spacing--small + $form--element--border-width;\n$input--addon--padding--right: $input--addon--width + math.div($form--element--padding--x, 2);\n$input--addon--padding--left: $input--addon--width + math.div($form--element--padding--x, 2);\n$input--two-addons--padding--right: $input--addon--width * 2 + math.div($form--element--padding--x, 2);\n$input--two-addons--padding--left: $input--addon--width * 2 + math.div($form--element--padding--x, 2);\n\n// Button\n$button--addon--width: $input--addon--width;\n$button--has-addon--padding--right: $input--addon--padding--right;\n$button--has-addon--padding--left: $input--addon--padding--left;\n$button--has-two-addons--padding--right: $input--two-addons--padding--right;\n$button--has-two-addons--padding--left: $input--two-addons--padding--left;\n\n$font-family--monospace: monaco, Consolas, 'Lucida Console', monospace;\n","@use '../../tools/colors';\n\n@use '../config/font-size.scss';\n@use '../config/spacing.scss';\n@use '../config/speed.scss';\n@use '../config/variables.scss';\n\n.context-menu {\n font-size: font-size.$font-size--small;\n height: 100vh;\n left: 0;\n width: 100vw;\n position: absolute;\n top: 0;\n\n &--enter {\n .context-menu {\n &__items {\n opacity: 0;\n transform: translateY(2rem * -1);\n\n &--is-up {\n transform: translateY(2rem);\n }\n }\n }\n\n &--active {\n .context-menu {\n &__items {\n opacity: 1;\n transform: translateY(0);\n }\n }\n }\n }\n\n &--exit {\n .context-menu {\n &__items {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n &--active {\n .context-menu {\n &__items {\n opacity: 0;\n transform: translateY(20px * -1);\n\n &--is-up {\n transform: translateY(20px);\n }\n }\n }\n }\n }\n\n &__items {\n background: colors.$white;\n border-radius: variables.$form--element--border-radius;\n box-shadow: form--element--box-shadow(colors.$darkest-grey, 0.05, 0.1), 0 0 0 1px rgba(colors.$darkest-grey, 0.1);\n max-width: 200px;\n overflow-x: hidden;\n overflow-y: auto;\n position: fixed;\n transform-origin: 50% -5px;\n transition: opacity speed.$speed--xx-fast, transform speed.$speed--xx-fast;\n z-index: 101;\n\n &,\n &__padding-surrogate {\n padding: spacing.$spacing--small 0;\n }\n\n &--is-up {\n transform-origin: 50% calc(100% + 5px);\n }\n\n &--match-trigger-width {\n max-width: none;\n }\n\n &--no-padding {\n padding: 0;\n }\n\n &--no-scrolling {\n overflow: hidden;\n }\n }\n}\n","@use './spacing.scss';\n\n$border-radius--large: spacing.$spacing--small;\n$border-radius--medium: spacing.$spacing--xx-small + 1;\n$border-radius--small: spacing.$spacing--xx-small;\n",".container {\n max-width: 900px;\n}\n","@use 'sass:math';\n\n@use '../../tools/colors';\n\n@use '../config/border-radius.scss';\n@use '../config/speed.scss';\n@use '../config/variables.scss';\n\n.error {\n background: colors.$red;\n border-radius: border-radius.$border-radius--small;\n color: #fff;\n padding: math.div(variables.$form--element--padding--x * 2, 3) variables.$form--element--padding--x;\n transition: opacity speed.$speed--x-fast;\n\n &--is-loading {\n opacity: 0.25;\n }\n\n .inverse & {\n color: #fff;\n border: none;\n background: colors.$red;\n }\n}\n","@use 'sass:math';\n\n$spacing: 12px;\n\n$spacing--xx-small: math.div($spacing, 4);\n$spacing--x-small: math.div($spacing * 2, 4);\n$spacing--small: math.div($spacing * 3, 4);\n$spacing--medium: math.div($spacing * 5, 4);\n$spacing--large: math.div($spacing * 6, 4);\n$spacing--x-large: math.div($spacing * 7, 4);\n$spacing--xx-large: math.div($spacing * 8, 4);\n$spacing--xxx-large: math.div($spacing * 12, 4);\n\n// Specifics\n$app-panel--padding--x: $spacing--large;\n$app-panel--padding--y: $spacing--xx-large;\n\n$app--heading--padding--x: $app-panel--padding--x;\n$app--heading--padding--y: $spacing--x-small;\n\n$app--sidebar--item--padding--x: $app-panel--padding--x;\n$app--sidebar--item--padding--y: $spacing--small;\n","@use 'sass:math';\n\n@use '../../tools/colors';\n\n@use '../config/border-radius.scss';\n@use '../config/font-size.scss';\n@use '../config/spacing.scss';\n@use '../config/speed.scss';\n@use '../config/variables.scss';\n\n.input,\n.button {\n appearance: none;\n border-radius: variables.$form--element--border-radius;\n font-size: font-size.$font-size--small;\n height: variables.$form--element--height;\n outline: none;\n padding: variables.$form--element--padding--y variables.$form--element--padding--x;\n transition: all speed.$speed--x-fast;\n\n &:focus,\n &:active {\n transition: all speed.$speed--xx-fast;\n }\n}\n\n.form {\n &__row {\n display: flex;\n margin-bottom: variables.$form__row--margin--vertical;\n width: 100%;\n\n &:last-child,\n &--no-margin {\n margin-bottom: 0;\n }\n\n &--group {\n flex-direction: column;\n }\n\n &--align {\n &--start {\n align-items: flex-start;\n }\n\n &--center {\n align-items: center;\n }\n\n &--end {\n align-items: flex-end;\n }\n }\n\n &--justify {\n &--start {\n justify-content: flex-start;\n }\n\n &--center {\n justify-content: center;\n }\n\n &--end {\n justify-content: flex-end;\n }\n }\n\n &__item {\n flex: 0 0 auto;\n margin: 0 spacing.$spacing--x-small;\n min-width: 1px;\n position: relative;\n width: auto;\n\n &:first-child,\n &.is-first {\n margin-left: 0;\n }\n\n &:last-child,\n &.is-last {\n margin-right: 0;\n }\n\n &--grow {\n flex-grow: 1;\n }\n\n &--shrink {\n flex-shrink: 1;\n }\n\n &--one-eighth {\n width: 12.5%;\n }\n\n &--one-quarter {\n width: 25%;\n }\n\n &--three-eighths {\n width: 37.5%;\n }\n\n &--one-half {\n width: 50%;\n }\n\n &--five-eighths {\n width: 62.5%;\n }\n\n &--three-quarters {\n width: 75%;\n }\n\n &--seven-eighths {\n width: 87.5%;\n }\n\n .button,\n .checkbox,\n .form__element__wrapper,\n .input,\n .error,\n .radio {\n width: 100%;\n }\n\n .error {\n background: colors.$red--alpha--light;\n border: 1px solid colors.$red--alpha--medium;\n border-radius: border-radius.$border-radius--small;\n color: colors.$red;\n padding: math.div(variables.$form--element--padding--x * 2, 3) variables.$form--element--padding--x;\n transition: opacity speed.$speed--x-fast;\n\n &--is-loading {\n opacity: 0.4;\n }\n }\n }\n }\n\n &__element {\n &__label {\n display: block;\n font-size: font-size.$font-size--x-small;\n line-height: 1rem;\n margin-bottom: spacing.$spacing--xx-small;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &__wrapper {\n position: relative;\n }\n\n &--label-offset {\n margin-top: calc(#{spacing.$spacing--xx-small} + 1rem);\n }\n\n &--match-textbox-height {\n height: variables.$form--element--height;\n }\n }\n}\n","@use 'sass:math';\n\n$base-font-size: 16px;\n\n$font-size--xx-large: (1 + math.div(3, 8)) + 0rem;\n$font-size--x-large: (1 + math.div(1, 4)) + 0rem;\n$font-size--large: (1 + math.div(1, 8)) + 0rem;\n$font-size--medium: 1rem;\n$font-size--small: math.div(7, 8) + 0rem;\n$font-size--x-small: math.div(3, 4) + 0rem;\n$font-size--xx-small: math.div(5, 8) + 0rem;\n","@use '../../tools/colors';\n\n@use '../config/speed.scss';\n@use '../config/variables.scss';\n\n@use './icon.scss';\n\n.form {\n &__element {\n &--has-addon {\n &--placed-before {\n padding-left: variables.$button--has-addon--padding--left;\n\n &.form__element--has-addon--count-2 {\n padding-left: variables.$button--has-two-addons--padding--left;\n }\n }\n\n &--placed-after {\n padding-right: variables.$button--has-addon--padding--right;\n\n &.form__element--has-addon--count-2 {\n padding-right: variables.$button--has-two-addons--padding--right;\n }\n }\n }\n\n &__addon {\n border-width: 0;\n border-style: solid;\n border-color: colors.$grey--soft;\n bottom: 0;\n pointer-events: none;\n position: absolute;\n transition: all speed.$speed--x-fast;\n top: 0;\n\n .inverse & {\n border-color: colors.$darkest-grey--darker;\n }\n\n .form__element:focus ~ &,\n .form__element:active ~ & {\n border-color: rgba(colors.$blue, 0.15);\n transition: all speed.$speed--xx-fast;\n\n .icon {\n fill: colors.$blue;\n transition: all speed.$speed--xx-fast;\n\n &--stroke {\n fill: none;\n stroke: colors.$blue;\n }\n }\n }\n\n .icon {\n @extend .icon--small;\n fill: colors.$grey;\n position: absolute;\n left: 50%;\n top: 50%;\n transform-origin: 50% 50%;\n transform: translate(-50%, -50%);\n transition: all speed.$speed--x-fast;\n\n &--stroke {\n fill: none;\n stroke: colors.$grey;\n }\n }\n\n &--placed-before {\n border-right-width: 1px;\n left: 0;\n\n &.form__element__addon--index-2 {\n left: variables.$button--addon--width;\n }\n }\n\n &--placed-after {\n border-left-width: 1px;\n right: 0;\n\n &.form__element__addon--index-2 {\n right: variables.$button--addon--width;\n }\n }\n\n &--is-icon {\n width: variables.$button--addon--width;\n }\n\n &--is-interactive {\n cursor: pointer;\n pointer-events: auto;\n\n &:focus,\n &:hover {\n .icon {\n fill: colors.$blue;\n transition: all speed.$speed--xx-fast;\n }\n }\n }\n }\n }\n}\n","@keyframes rotateAroundMidpoint {\n 0% {\n transform: rotate(0);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.icon {\n position: relative;\n\n &--small {\n height: 18px;\n width: 18px;\n }\n\n &--large {\n height: 24px;\n width: 24px;\n }\n\n &__element {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n &--loading {\n &--ring {\n stroke: currentColor;\n }\n }\n\n &__ring-slice {\n animation: 1s linear infinite forwards rotateAroundMidpoint;\n }\n}\n","@use 'sass:color';\n\n@use '../../tools/colors';\n\n@use '../config/spacing.scss';\n@use '../config/speed.scss';\n@use '../config/variables.scss';\n\n.input {\n background: variables.$input--background;\n color: variables.$input--foreground;\n border: variables.$form--element--border-width solid variables.$input--border;\n box-shadow: variables.$form--element--box-shadow;\n\n &::placeholder {\n color: variables.$input--foreground--placeholder;\n transition: color speed.$speed--xx-fast;\n }\n\n &:hover {\n border-color: variables.$input--border--hover;\n color: variables.$input--foreground--hover;\n\n &::placeholder {\n color: variables.$input--foreground--placeholder--hover;\n }\n }\n\n &:active,\n &:focus {\n background-color: colors.$blue--soft;\n color: color.adjust(colors.$blue--darker, $saturation: -25%);\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n\n &::placeholder {\n color: rgba(colors.$blue--light, 0.5);\n }\n }\n\n .inverse & {\n background: variables.$input--inverse--background;\n border: variables.$form--element--border-width solid variables.$input--inverse--border;\n box-shadow: variables.$form--element--inverse--box-shadow;\n color: variables.$input--inverse--foreground;\n\n &::placeholder {\n color: variables.$input--inverse--foreground--placeholder;\n }\n\n &:hover {\n border-color: variables.$input--inverse--border--hover;\n color: variables.$input--inverse--foreground--hover;\n\n &::placeholder {\n color: variables.$input--inverse--foreground--placeholder--hover;\n }\n }\n\n &:active,\n &:focus {\n background-color: rgba(colors.$blue--soft, 0.15);\n color: variables.$input--inverse--foreground--active;\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n\n &::placeholder {\n color: variables.$input--inverse--foreground--placeholder--active;\n }\n }\n }\n\n &--hidden {\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n z-index: -1;\n }\n}\n\n.toggle-input {\n align-items: center;\n cursor: pointer;\n display: flex;\n outline: none;\n padding: variables.$form--element--padding--y 0 variables.$form--element--padding--y variables.$toggle-input--width +\n spacing.$spacing--x-small;\n position: relative;\n transition: all speed.$speed--x-fast;\n user-select: none;\n\n &:hover {\n transition: all speed.$speed--xx-fast;\n\n .toggle-input {\n &__indicator {\n border-color: variables.$input--border--hover;\n\n .inverse & {\n border-color: variables.$input--inverse--border--hover;\n }\n\n &,\n &__icon {\n transition: all speed.$speed--xx-fast;\n }\n\n &__icon {\n &,\n .icon {\n display: block;\n }\n }\n }\n }\n }\n\n &:focus,\n &:active {\n color: colors.$blue;\n\n .toggle-input {\n &__indicator {\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n\n .inverse & {\n border-color: colors.$blue;\n box-shadow: form--element--box-shadow--active(colors.$blue);\n }\n\n &,\n &__icon {\n transition: all speed.$speed--xx-fast;\n\n .icon {\n fill: colors.$blue;\n }\n }\n }\n }\n }\n\n &:active,\n &--is-active {\n .toggle-input {\n &__indicator {\n background-color: rgba(colors.$blue, 0.1);\n color: rgba(colors.$blue, 0.8);\n\n .inverse & {\n background-color: rgba(colors.$blue, 0.1);\n color: rgba(colors.$blue, 0.8);\n }\n\n &__icon {\n opacity: 0.25;\n }\n }\n }\n }\n\n &__element {\n position: absolute;\n visibility: hidden;\n\n &:checked {\n & + .toggle-input {\n &__indicator {\n .toggle-input {\n &__indicator {\n &__icon {\n opacity: 1;\n }\n }\n }\n }\n }\n }\n }\n\n &__indicator {\n background: variables.$input--background;\n border: variables.$form--element--border-width solid variables.$input--border;\n box-shadow: variables.$form--element--box-shadow;\n display: inline-block;\n height: variables.$toggle-input--height;\n left: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n transition: all speed.$speed--x-fast;\n width: variables.$toggle-input--width;\n\n &__icon {\n opacity: 0;\n transition: all speed.$speed--x-fast;\n\n &,\n .icon {\n height: 100%;\n width: 100%;\n }\n\n .icon {\n fill: colors.$grey;\n transition: all speed.$speed--x-fast;\n }\n }\n\n .inverse & {\n background: variables.$input--inverse--background;\n border: variables.$form--element--border-width solid variables.$input--inverse--border;\n box-shadow: variables.$form--element--inverse--box-shadow;\n }\n }\n\n &.checkbox {\n .toggle-input {\n &__indicator {\n border-radius: variables.$form--element--border-radius;\n }\n }\n }\n\n &.radio {\n .toggle-input {\n &__indicator {\n border-radius: 100%;\n }\n }\n }\n}\n","@use '../../tools/colors';\n\n.overlay {\n background: rgba(colors.$darker-grey, 0.95);\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 100;\n\n &--transparent {\n background: transparent;\n }\n\n &--no-interaction {\n pointer-events: none;\n }\n}\n","@use '../../tools/colors';\n@use '../../tools/themes';\n\n@use '../config/border-radius.scss';\n@use '../config/spacing.scss';\n\n$panel--spacing--horizontal--medium: spacing.$spacing--x-large;\n$panel--spacing--vertical--medium: spacing.$spacing--medium;\n\n$panel--spacing--horizontal--large: spacing.$spacing--xxx-large;\n$panel--spacing--vertical--large: spacing.$spacing--xx-large;\n\n.panel {\n @include themes.theme('background', 'panel--background');\n @include themes.theme('border', 'panel--border');\n border-radius: border-radius.$border-radius--medium;\n box-shadow: panel--box-shadow(colors.$grey--lighter);\n @include themes.theme('color', 'panel--foreground');\n overflow: hidden;\n\n &--medium {\n .panel {\n &__content {\n padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium;\n }\n\n &__header {\n padding: $panel--spacing--vertical--medium $panel--spacing--horizontal--medium 0\n $panel--spacing--horizontal--medium;\n\n &--has-border {\n padding-bottom: $panel--spacing--vertical--medium;\n }\n }\n\n &__footer {\n padding: 0 $panel--spacing--horizontal--medium $panel--spacing--vertical--medium\n $panel--spacing--horizontal--medium;\n\n &--has-border {\n padding-top: $panel--spacing--vertical--medium;\n }\n }\n }\n }\n\n &--large {\n .panel {\n &__content {\n padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large;\n }\n\n &__header {\n padding: $panel--spacing--vertical--large $panel--spacing--horizontal--large 0\n $panel--spacing--horizontal--large;\n\n &--has-border {\n padding-bottom: $panel--spacing--vertical--large;\n }\n }\n\n &__footer {\n padding: 0 $panel--spacing--horizontal--large $panel--spacing--vertical--large\n $panel--spacing--horizontal--large;\n\n &--has-border {\n padding-top: $panel--spacing--vertical--large;\n }\n }\n }\n }\n\n &__header {\n &--has-border {\n border-bottom: 1px solid colors.$grey--soft;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .h1,\n .h2,\n .h3,\n .h4,\n .h5,\n .h6 {\n margin: 0;\n }\n }\n\n &__content {\n &--has-border {\n &--top {\n border-top: 1px solid colors.$grey--soft;\n }\n\n &--bottom {\n border-bottom: 1px solid colors.$grey--soft;\n }\n }\n }\n\n &__footer {\n &--has-border {\n border-top: 1px solid colors.$grey--soft;\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:string';\n\n@use 'colors';\n@use 'colors-dark';\n\n@mixin themeProperty($theme, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties) {\n @if $additionalPropertiesPositionIsFront {\n #{$property}: string.unquote($additionalProperties + ' ' + map.get($theme, $color));\n } @else {\n #{$property}: string.unquote(map.get($theme, $color) + ' ' + $additionalProperties);\n }\n}\n\n@mixin theme($property, $color, $additionalPropertiesPositionIsFront: false, $additionalProperties: '') {\n $light: map.get($themes, 'light');\n $dark: map.get($themes, 'dark');\n\n @include themeProperty($light, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties);\n\n .dark & {\n @include themeProperty($dark, $property, $color, $additionalPropertiesPositionIsFront, $additionalProperties);\n }\n}\n\n$themes: (\n light: (\n action--foreground: #8899a8,\n action--foreground--hover: colors.$action--foreground--hover,\n action--background--hover: colors.$action--background--hover,\n action--border--hover: (\n 1px 0 colors.$action--border--hover,\n -1px 0 colors.$action--border--hover,\n ),\n auth-form--background: colors.$light-blue,\n loading--background: colors.$light-blue,\n torrent-view--background: #e9eef2,\n torrent-list--background: #fff,\n torrent-list--border: -1px 0 0 0 rgba(colors.$sidebar--background, 0.15),\n torrents-list--alert--foreground: rgba(#8899a8, 0.5),\n table--heading--background: rgba(#f6f8fa, 0.6),\n table--heading--color: colors.$table--heading--color,\n table--heading--color--hover: color.adjust(colors.$table--heading--color, $lightness: -10%),\n table--heading--color--active: color.adjust(colors.$table--heading--color, $lightness: -30%),\n table--heading--color--active--hover: color.adjust(colors.$table--heading--color, $lightness: -40%),\n table--heading--resize--indicator--background: rgba(color.adjust(#f6f8fa, $lightness: -10%), 0.75),\n table--heading--border: 0 1px 0 rgba(#1d2938, 0.1),\n table--heading--border--horizontal: 1px solid rgba(#1d2938, 0.08),\n torrent--primary--font-weight: 500,\n torrent--primary--foreground: color.adjust(color.adjust(colors.$grey, $lightness: -20%), $saturation: 10%),\n torrent--primary--foreground--error: colors.$red,\n torrent--primary--foreground--error--stopped: rgba(colors.$red, 0.6),\n torrent--primary--foreground--error--stopped--selected: rgba(colors.$white, 0.6),\n torrent--primary--foreground--stopped: rgba(colors.$grey, 0.8),\n torrent--primary--foreground--selected: colors.$white,\n torrent--primary--foreground--selected--stopped: rgba(colors.$white, 0.6),\n torrent--primary--foreground--selected--error: colors.$white,\n torrent--secondary--foreground: #8899a8,\n torrent--secondary--foreground--stopped: #c3ccd3,\n torrent--secondary--foreground--selected: colors.$white,\n torrent--secondary--foreground--selected--stopped: rgba(colors.$white, 0.6),\n torrent--tertiary--foreground: #8899a8,\n torrent--tertiary--foreground--stopped: #c3ccd3,\n torrent--tertiary--foreground--selected: rgba(colors.$white, 0.9),\n torrent--tertiary--foreground--selected--stopped: rgba(colors.$white, 0.5),\n torrent--background--hover: #f6f8fa,\n torrent--background--selected: colors.$blue,\n torrent--background--error: colors.$red,\n torrent--border: 1px solid #e9eef2,\n torrent--border--selected: color.adjust(colors.$blue, $lightness: -3%),\n torrent--border--selected--error: color.adjust(colors.$red, $lightness: -3%),\n torrent--speed--foreground--selected--has-error: colors.$white,\n torrent--speed--foreground--selected: colors.$white,\n torrent--tags--background: #dce2e6,\n torrent--tags--foreground: #6f7d87,\n torrent--tags--background--selected: #4ea3ea,\n torrent--tags--background--selected--has-error: #ed7994,\n torrent--tags--foreground--selected: colors.$white,\n torrent--tags--foreground--has-error: #fbe8ec,\n more-info--background: colors.$white,\n more-info--background--hover: colors.$white,\n more-info--box-shadow: (\n 0 0 30px rgba(#1a2f3d, 0.11),\n 0 0 0 1px rgba(#1a2f3d, 0.07),\n ),\n more-info--box-shadow--hover: (\n 0 0 30px rgba(#1a2f3d, 0.2),\n 0 0 0 1px rgba(#1a2f3d, 0.1),\n ),\n panel--background: colors.$white,\n panel--border: 1px solid colors.$grey--lighter,\n panel--foreground: inherit,\n progress-bar--fill: colors.$green,\n progress-bar--fill--checking: #8899a8,\n progress-bar--fill--completed: colors.$blue,\n progress-bar--fill--error: #e95779,\n progress-bar--fill--error--stopped: #f2acbc,\n progress-bar--fill--selected: #fff,\n progress-bar--fill--selected--stopped: #5daaeb,\n progress-bar--fill--stopped: #e7ebee,\n progress-bar--track--background: rgba(colors.$green, 0.15),\n progress-bar--track--background--completed: rgba(colors.$blue, 0.15),\n progress-bar--track--background--error: rgba(#e95779, 0.15),\n progress-bar--track--background--error--stopped: rgba(#f2acbc, 0.15),\n progress-bar--track--background--selected: rgba(#fff, 0.15),\n progress-bar--track--background--selected--stopped: rgba(#fff, 0.15),\n progress-bar--track--background--stopped: rgba(#e7ebee, 0.35),\n sidebar--background: colors.$sidebar--background,\n sidebar--foreground: colors.$sidebar--foreground,\n sidebar--border: 1px 0 rgba(color.adjust(colors.$sidebar--foreground, $lightness: -40%), 0.3),\n sidebar-filter--foreground: colors.$sidebar--foreground,\n sidebar-filter--foreground--fill: rgba(colors.$sidebar--foreground, 0.5),\n sidebar-filter--foreground--header: rgba(colors.$sidebar--foreground, 0.5),\n sidebar-filter--foreground--active: colors.$blue,\n sidebar-filter--foreground--hover: color.adjust(colors.$sidebar--foreground, $lightness: 15%),\n sidebar--icon-button--fill: colors.$sidebar--foreground,\n sidebar--icon-button--fill--hover: colors.$blue,\n sidebar--icon-button--foreground: rgba(colors.$sidebar--foreground, 0.7),\n sidebar--icon-button--foreground--hover: colors.$blue,\n sidebar-filter--count--foreground: color.adjust(colors.$darkest-grey--hard, $lightness: -5%),\n sidebar-filter--count--foreground--active: color.adjust(colors.$darkest-grey--hard, $lightness: -5%),\n sidebar-filter--count--background: color.adjust(colors.$darkest-grey--hard, $lightness: 20%),\n sidebar-filter--count--background--active: colors.$blue,\n ),\n dark: (\n action--foreground: colors-dark.$md-grey-500,\n action--foreground--hover: colors.$action--foreground--hover,\n action--background--hover: color.adjust(colors-dark.$md-surface-dark-e08, $lightness: 4%),\n action--border--hover: (\n 0px,\n 0px,\n ),\n auth-form--background: colors.$background,\n loading--background: colors.$background,\n torrent-view--background: colors-dark.$md-surface-dark-e08,\n torrent-list--background: colors-dark.$md-surface-dark,\n torrent-list--border: -1px 0 0 0 rgba(colors.$sidebar--background, 0.15),\n torrents-list--alert--foreground: rgba(#8899a8, 0.5),\n table--heading--background: colors-dark.$md-surface-dark-e01,\n table--heading--color: colors-dark.$md-text-disabled-dark,\n table--heading--color--hover: colors-dark.$md-text-secondary-dark,\n table--heading--color--active: colors-dark.$md-text-primary-dark,\n table--heading--color--active--hover: colors.$white,\n table--heading--resize--indicator--background: colors-dark.$md-text-secondary-dark,\n table--heading--border: 0 1px 0 colors-dark.$md-text-dividers-dark,\n table--heading--border--horizontal: 1px solid colors-dark.$md-text-dividers-dark,\n torrent--primary--font-weight: 400,\n torrent--primary--foreground: colors-dark.$md-text-primary-dark,\n torrent--primary--foreground--error: colors.$red,\n torrent--primary--foreground--error--stopped: rgba(colors.$red, 0.6),\n torrent--primary--foreground--error--stopped--selected: rgba(colors.$white, 0.6),\n torrent--primary--foreground--stopped: rgba(colors.$grey, 0.8),\n torrent--primary--foreground--selected: colors.$white,\n torrent--primary--foreground--selected--stopped: rgba(colors.$white, 0.6),\n torrent--primary--foreground--selected--error: colors.$white,\n torrent--secondary--foreground: colors-dark.$md-text-secondary-dark,\n torrent--secondary--foreground--stopped: colors-dark.$md-text-disabled-dark,\n torrent--secondary--foreground--selected: colors.$white,\n torrent--secondary--foreground--selected--stopped: rgba(colors.$white, 0.6),\n torrent--tertiary--foreground: colors-dark.$md-text-secondary-dark,\n torrent--tertiary--foreground--stopped: #c3ccd3,\n torrent--tertiary--foreground--selected: rgba(colors.$white, 0.9),\n torrent--tertiary--foreground--selected--stopped: rgba(colors.$white, 0.5),\n torrent--background--hover: #f6f8fa,\n torrent--background--selected: colors.$blue,\n torrent--background--error: colors.$red,\n torrent--border: 1px solid colors-dark.$md-text-dividers-dark,\n torrent--border--selected: color.adjust(colors.$blue, $lightness: -3%),\n torrent--border--selected--error: color.adjust(colors.$red, $lightness: -3%),\n torrent--speed--foreground--selected--has-error: colors.$white,\n torrent--speed--foreground--selected: colors.$white,\n torrent--tags--background: colors-dark.$md-surface-dark-e06,\n torrent--tags--foreground: colors-dark.$md-text-secondary-dark,\n torrent--tags--background--selected: #4ea3ea,\n torrent--tags--background--selected--has-error: #ed7994,\n torrent--tags--foreground--selected: colors.$white,\n torrent--tags--foreground--has-error: #fbe8ec,\n more-info--background: colors.$white,\n more-info--background--hover: colors.$white,\n more-info--box-shadow: (\n 0 0 30px rgba(#1a2f3d, 0.11),\n 0 0 0 1px rgba(#1a2f3d, 0.07),\n ),\n more-info--box-shadow--hover: (\n 0 0 30px rgba(#1a2f3d, 0.2),\n 0 0 0 1px rgba(#1a2f3d, 0.1),\n ),\n panel--background: colors.$another-grey,\n panel--border: 1px solid colors.$dark-grey--light,\n panel--foreground: color.adjust(#6c7e92, $lightness: 6%),\n progress-bar--fill: colors.$green,\n progress-bar--fill--checking: #8899a8,\n progress-bar--fill--completed: colors.$blue,\n progress-bar--fill--error: #e95779,\n progress-bar--fill--error--stopped: #f2acbc,\n progress-bar--fill--selected: #fff,\n progress-bar--fill--selected--stopped: colors-dark.$md-text-secondary-dark,\n progress-bar--fill--stopped: colors-dark.$md-text-disabled-dark,\n progress-bar--track--background: rgba(colors.$green, 0.15),\n progress-bar--track--background--completed: rgba(colors.$blue, 0.15),\n progress-bar--track--background--error: rgba(#e95779, 0.15),\n progress-bar--track--background--error--stopped: rgba(#f2acbc, 0.15),\n progress-bar--track--background--selected: rgba(#fff, 0.15),\n progress-bar--track--background--selected--stopped: colors-dark.$md-text-dividers-dark,\n progress-bar--track--background--stopped: colors-dark.$md-text-dividers-dark,\n sidebar--background: colors-dark.$md-surface-dark,\n sidebar--foreground: colors-dark.$md-text-secondary-dark,\n sidebar--border: 1px 0 colors-dark.$md-text-dividers-dark,\n sidebar-filter--foreground: colors-dark.$md-text-disabled-dark,\n sidebar-filter--foreground--fill: colors-dark.$md-text-dividers-dark,\n sidebar-filter--foreground--header: colors-dark.$md-text-primary-dark,\n sidebar-filter--foreground--active: colors.$blue,\n sidebar-filter--foreground--hover: colors-dark.$md-text-secondary-dark,\n sidebar--icon-button--fill: colors-dark.$md-grey-500,\n sidebar--icon-button--fill--hover: colors.$blue,\n sidebar--icon-button--foreground: colors-dark.$md-grey-400,\n sidebar--icon-button--foreground--hover: colors.$blue,\n sidebar-filter--count--foreground: colors-dark.$md-text-secondary-dark,\n sidebar-filter--count--foreground--active: color.adjust(colors.$darkest-grey--hard, $lightness: -5%),\n sidebar-filter--count--background: colors-dark.$md-surface-dark-e06,\n sidebar-filter--count--background--active: colors.$blue,\n ),\n);\n",".portal {\n overflow: hidden;\n position: relative;\n z-index: 1000;\n}\n","@use '../../tools/colors';\n\n@use '../config/spacing.scss';\n\n.section {\n margin-bottom: spacing.$spacing--xxx-large;\n\n &__heading {\n margin-bottom: spacing.$spacing;\n margin-top: 0;\n }\n\n &.inverse {\n background: colors.$another-grey;\n }\n\n &.padded {\n padding: spacing.$spacing--large spacing.$spacing--x-large;\n }\n}\n","@use '../../tools/colors';\n\n@use '../config/spacing.scss';\n@use '../config/speed.scss';\n\n.select {\n position: relative;\n\n &__button {\n position: relative;\n text-align: left;\n\n &:focus-visible,\n &:hover {\n .select {\n &__indicator {\n .icon {\n fill: colors.$grey--hard;\n }\n }\n }\n }\n\n &:focus,\n &:active {\n .select {\n &__indicator {\n .icon {\n fill: colors.$blue;\n transition: all speed.$speed--xx-fast;\n }\n }\n }\n }\n\n .icon {\n display: none;\n }\n\n .select {\n &__item {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__item {\n cursor: pointer;\n padding: spacing.$spacing--x-small spacing.$spacing--small;\n position: relative;\n transition: all speed.$speed--xx-fast;\n z-index: 1;\n\n .context-menu__items & {\n &:focus-visible,\n &:hover {\n background: colors.$light-grey--lighter;\n }\n }\n\n .icon {\n fill: colors.$grey;\n height: 14px;\n right: spacing.$spacing--small;\n opacity: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-60%);\n transition: all speed.$speed--xx-fast;\n width: 14px;\n }\n\n &--is-selected {\n color: colors.$blue;\n font-weight: 500;\n\n .icon {\n fill: colors.$blue;\n opacity: 1;\n }\n }\n }\n\n &--is-open {\n .select {\n &__indicator {\n .icon {\n transform: translate(-50%, -50%) rotate(180deg);\n }\n }\n }\n }\n}\n","th {\n font-weight: inherit;\n text-align: left;\n}\n","@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-out {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n","@font-face {\n font-family: 'Roboto';\n font-weight: 400;\n font-style: normal;\n src: local('Roboto-regular'), url('../fonts/Roboto-regular/Roboto-regular.woff2') format('woff2');\n}\n\n@font-face {\n font-family: 'Roboto';\n font-weight: 500;\n font-style: normal;\n src: local('Roboto-500'), url('../fonts/Roboto-500/Roboto-500.woff2') format('woff2');\n}\n\n@font-face {\n font-family: 'Roboto';\n font-weight: 700;\n font-style: normal;\n src: local('Roboto-700'), url('../fonts/Roboto-700/Roboto-700.woff2') format('woff2');\n}\n\n@font-face {\n font-family: 'Roboto';\n font-weight: 400;\n font-style: italic;\n src: local('Roboto-italic'), url('../fonts/Roboto-italic/Roboto-italic.woff2') format('woff2');\n}\n\n@font-face {\n font-family: 'Roboto';\n font-weight: 700;\n font-style: italic;\n src: local('Roboto Bold Italic'), url('../fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2');\n}\n","@use '../tools/variables';\n\nhtml,\nbody {\n height: 100%;\n overflow: hidden;\n}\n\n.container {\n height: 100%;\n width: 100%;\n}\n\n#app,\n.application,\n.application__view {\n height: 100%;\n width: 100%;\n}\n\n.application {\n &,\n &__view {\n align-content: center;\n align-items: center;\n display: flex;\n flex: 1;\n justify-content: center;\n height: 100%;\n width: 100%;\n\n &--sidebar-alternative-state {\n .application__sidebar {\n display: none;\n }\n\n @media (max-width: 720px) {\n .application__sidebar {\n display: flex;\n transform: translateX(120px);\n z-index: unset;\n }\n\n .application__content {\n transform: translateX(120px);\n\n .modal {\n transform: translateX(-240px);\n }\n\n .context-menu__items {\n transform: translateX(-240px);\n }\n\n .alerts__list {\n transform: translateX(-240px);\n }\n\n .table__heading__resize-line {\n left: -240px;\n }\n }\n }\n }\n }\n\n &__content {\n align-items: center;\n display: flex;\n flex: 1 0 auto;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n position: relative;\n min-width: 60px;\n transition: transform 0.2s;\n\n @media (max-width: 720px) {\n width: 100vw;\n transform: translateX(-120px);\n }\n }\n\n &__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n\n &--torrent-list {\n transition: transform 0.5s;\n z-index: 2;\n\n &.is-open {\n transform: translateX(variables.$torrent-details--width);\n }\n }\n\n &--torrent-details {\n right: 100% - variables.$torrent-details--width;\n width: variables.$torrent-details--width;\n z-index: 1;\n }\n }\n}\n","@use '../tools/colors';\n\nbody {\n background: colors.$background;\n}\n\nul {\n list-style: none;\n}\n","@use '../tools/colors';\n@use '../tools/variables';\n\n@use '../ui/config/font-size.scss';\n@use '../ui/config/spacing.scss';\n\nhtml {\n font-size: font-size.$base-font-size;\n}\n\nbody {\n -webkit-font-smoothing: antialiased;\n color: colors.$foreground;\n font-family: variables.$font-family;\n font-size: font-size.$font-size--medium;\n font-weight: 400;\n line-height: 1.25;\n text-rendering: optimizeLegibility;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n color: colors.$dark-grey;\n\n .inverse & {\n color: colors.$white;\n }\n}\n\nh1,\n.h1 {\n font-size: font-size.$font-size--xx-large;\n font-weight: 700;\n margin: spacing.$spacing--x-large 0;\n}\n\nh2,\n.h2 {\n font-size: font-size.$font-size--x-large;\n font-weight: 500;\n margin: spacing.$spacing--large 0;\n}\n\nh3,\n.h3 {\n font-size: font-size.$font-size--large;\n font-weight: 400;\n margin: spacing.$spacing--medium 0;\n}\n\nh4,\n.h4 {\n font-size: font-size.$font-size--small;\n font-weight: 500;\n margin: spacing.$spacing 0;\n}\n\nh5,\n.h5 {\n font-size: font-size.$font-size--x-small;\n font-weight: 400;\n margin: spacing.$spacing--small 0;\n}\n\nh6,\n.h6 {\n font-size: font-size.$font-size--xx-small;\n font-weight: 400;\n margin: spacing.$spacing--x-small 0;\n}\n\na {\n color: inherit;\n}\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8;\n}\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n}\n\np {\n margin-bottom: spacing.$spacing--medium;\n}\n\n.copy {\n &--lead {\n font-size: font-size.$font-size--medium;\n line-height: 1.5rem;\n font-weight: 300;\n }\n}\n","@use '../tools/colors';\n@use '../tools/themes';\n\n$action-bar--background: transparent;\n$action-bar--foreground: #1b1a1c;\n$action-bar--group--border: rgba(#7a8080, 0.15);\n\n$torrent-list--border: rgba(colors.$sidebar--background, 0.15);\n\n.action-bar {\n background: $action-bar--background;\n border-bottom: 1px solid $torrent-list--border;\n color: $action-bar--foreground;\n display: flex;\n height: 60px;\n position: relative;\n\n -webkit-user-select: none;\n -webkit-touch-callout: none;\n\n @media (max-width: 515px) {\n height: 45px;\n }\n\n &--is-condensed {\n height: 30px;\n }\n\n &__item {\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &--sort-torrents {\n flex: 1 0 auto;\n display: flex;\n align-items: center;\n\n .dropdown {\n &__content {\n min-width: 250px;\n }\n }\n\n .action-bar--is-condensed & {\n display: none;\n }\n }\n\n &--torrent-operations {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n margin-left: auto;\n\n .dropdown {\n display: flex;\n height: 60px;\n\n @media (max-width: 515px) {\n height: 45px;\n }\n\n &__content {\n min-width: 430px;\n right: 4px;\n }\n }\n }\n }\n\n &__group {\n display: flex;\n font-size: 0;\n padding: 0 15px;\n\n @media (max-width: 515px) {\n padding: 0 10px;\n }\n\n .action-bar--is-condensed & {\n padding: 0 10px;\n }\n\n &--has-divider {\n position: relative;\n\n &:before {\n background: $action-bar--group--border;\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px;\n }\n }\n }\n}\n\n.actions {\n list-style: none;\n}\n\n.action {\n box-shadow: 1px 0 transparent, -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s;\n\n &:focus-visible,\n &:hover {\n @include themes.theme('background', 'action--background--hover');\n @include themes.theme('box-shadow', 'action--border--hover');\n\n .icon {\n @include themes.theme('fill', 'action--foreground--hover');\n }\n }\n\n @media (max-width: 515px) {\n height: 45px;\n width: 46px;\n\n .icon {\n height: 18px;\n width: 18px;\n }\n }\n\n .action-bar--is-condensed & {\n height: 30px;\n width: 46px;\n\n .icon {\n height: 18px;\n width: 18px;\n }\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden;\n }\n\n .icon {\n @include themes.theme('fill', 'action--foreground');\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 25px;\n }\n}\n","@use '../tools/colors';\n@use '../tools/themes';\n\n.application {\n &__loading-overlay {\n align-items: center;\n @include themes.theme('background', 'loading--background');\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 1;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n\n &-exit {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &__entry-barrier {\n max-width: 500px;\n width: 100%;\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n$alert--background: rgba(colors.$sidebar--background, 0.95);\n$alert--foreground: #8fa2b2;\n\n.alerts {\n &__list {\n background: $alert--background;\n border-radius: 3px;\n bottom: math.div(variables.$spacing-unit * 1, 5);\n color: $alert--foreground;\n font-size: 0.85rem;\n padding: math.div(variables.$spacing-unit * 2, 5) math.div(variables.$spacing-unit * 3, 5);\n position: fixed;\n right: math.div(variables.$spacing-unit * 1, 5);\n transition: opacity 0.25s;\n width: 250px;\n z-index: 99;\n\n -webkit-user-select: none;\n -webkit-touch-callout: none;\n\n &-exit {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n\n &-enter {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n }\n}\n\n.alert {\n display: flex;\n\n &.is-success {\n .icon {\n fill: colors.$green;\n }\n\n .alert {\n &__count {\n color: colors.$green;\n }\n }\n }\n\n &.is-error {\n .icon {\n fill: colors.$red;\n }\n\n .alert {\n &__count {\n color: colors.$red;\n }\n }\n }\n\n & + .alert {\n margin-top: math.div(variables.$spacing-unit * 2, 5);\n }\n\n &__content {\n flex: 1 1 auto;\n }\n\n &__count {\n font-weight: 700;\n }\n\n .icon {\n align-self: center;\n display: inline-block;\n fill: currentColor;\n flex: 0 0 auto;\n height: 20px;\n margin-right: math.div(variables.$spacing-unit * 1, 4);\n width: 20px;\n vertical-align: middle;\n }\n}\n","$attached-panel--background: #242b36;\n$attached-panel--foreground: #5e728c;\n\n$attached-panel--border: #1a2028;\n$attached-panel--border-radius: 4px;\n\n$attached-panel--padding--vertical: 10px;\n$attached-panel--padding--horizontal: 15px;\n\n$attached-panel--shadow: #05080a;\n\n.attached-panel {\n background: $attached-panel--background;\n border: 1px solid $attached-panel--border;\n border-radius: 0 0 $attached-panel--border-radius $attached-panel--border-radius;\n border-top-width: 0;\n color: $attached-panel--foreground;\n position: fixed;\n transition: opacity 0.25s;\n z-index: 100;\n\n &__content {\n padding: $attached-panel--padding--vertical $attached-panel--padding--horizontal;\n }\n\n &__wrapper {\n position: relative;\n }\n\n &-enter {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-exit {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n}\n\n.textbox {\n &--has-attached-panel {\n &--is-open {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n}\n","@use '../tools/themes';\n\n.badge {\n @include themes.theme('background', 'sidebar-filter--count--background');\n border-radius: 100px;\n @include themes.theme('color', 'sidebar-filter--count--foreground');\n display: inline-block;\n font-size: 0.75rem;\n font-weight: 700;\n line-height: 1;\n margin-left: 10px;\n padding: 2px 5px;\n transition: background 0.25s;\n vertical-align: middle;\n}\n","@use 'sass:color';\n\n@use '../tools/colors';\n\n$menu--background: rgba(#fff, 0.98);\n$menu--container--border: rgba(colors.$sidebar--background, 0.075);\n$menu--container--shadow: rgba(colors.$sidebar--background, 0.15);\n$menu--label: #abbac7;\n$menu--value: #8899a8;\n$menu--value--active: #4e6a7c;\n$menu--header--border: rgba(colors.$sidebar--background, 0.05);\n$menu--item--background--hover: rgba(colors.$main-content--background, 0.4);\n$menu--item--foreground: #526780;\n$menu--item--foreground--hover: color.adjust($menu--item--foreground, $lightness: -10%);\n$menu--item--secondary--foreground: color.adjust($menu--item--foreground, $lightness: 20%);\n$menu--item--foreground--active: colors.$blue;\n$menu--item--separator--background: $menu--container--border;\n\n.menu {\n background: $menu--background;\n border-radius: 3px;\n box-shadow: 0 0 0 1px $menu--container--border, 0 1px 4px $menu--container--shadow,\n 0 3px 15px $menu--container--shadow;\n color: $menu--item--foreground;\n text-align: left;\n\n &__item {\n > button {\n height: 100%;\n width: 100%;\n text-align: left;\n font-size: 0.9em;\n padding: 5px 15px;\n &:disabled {\n pointer-events: none;\n }\n }\n\n &__label {\n &--primary {\n &.has-action {\n display: flex;\n\n .menu {\n &__item {\n &__label {\n flex: 1 1 auto;\n\n &__action {\n flex: 0 0 auto;\n }\n }\n }\n }\n }\n }\n\n &--secondary {\n color: $menu--item--secondary--foreground;\n display: block;\n font-size: 0.85em;\n }\n }\n\n &--separator {\n background: $menu--item--separator--background;\n height: 1px;\n margin: 5px 0;\n padding: 0;\n }\n\n &.is-selectable {\n display: block;\n transition: background 0.25s, color 0.25s;\n\n > button {\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &:focus-within,\n &:hover {\n background: $menu--item--background--hover;\n color: $menu--item--foreground--hover;\n }\n\n &.is-selected {\n color: $menu--item--foreground--active;\n }\n }\n }\n\n &-enter {\n animation: fade-in 0.25s both;\n }\n\n &-exit {\n animation: fade-out 0.25s both;\n }\n}\n","@use 'sass:math';\n\n@use '../tools/themes';\n@use '../tools/variables';\n\n$client-stats--speed--fill--top--opacity: 0.2;\n$client-stats--speed--fill--bottom--opacity: 0;\n$client-stats--speed--stroke--opacity: 0.5;\n$client-stats--speed--stroke--width: 2px;\n\n$client-stats--download--primary--foreground: #39ce83;\n$client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75);\n$client-stats--download--graph--stroke: #39ce83;\n$client-stats--download--graph--fill--top: #2bae6c;\n$client-stats--download--graph--fill--bottom: #2bae6c;\n\n$client-stats--upload--primary--foreground: #349cf4;\n$client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75);\n$client-stats--upload--graph--stroke: #349cf4;\n$client-stats--upload--graph--fill--top: #2387d9;\n$client-stats--upload--graph--fill--bottom: #2387d9;\n\n$client-stats--timestamp--foreground: #526780;\n\n.client-stats {\n display: flex;\n height: 200px;\n flex-direction: column;\n position: relative;\n\n &__rates {\n align-items: center;\n display: flex;\n flex: 0 0 50px;\n padding: 0 0 0 math.div(variables.$spacing-unit * 2, 5);\n pointer-events: none;\n position: relative;\n }\n\n &__rate {\n display: flex;\n flex: 1 1 50%;\n\n &--download {\n color: $client-stats--download--primary--foreground;\n\n .client-stats {\n &__rate {\n &__data {\n &--limit {\n background: $client-stats--download--primary--foreground;\n }\n }\n }\n }\n\n .icon {\n fill: $client-stats--download--secondary--foreground;\n }\n }\n\n &--upload {\n color: $client-stats--upload--primary--foreground;\n\n .client-stats {\n &__rate {\n &__data {\n &--limit {\n background: $client-stats--upload--primary--foreground;\n }\n }\n }\n }\n\n .icon {\n fill: $client-stats--upload--secondary--foreground;\n }\n }\n\n &__icon {\n flex: 0 0 20px;\n padding-top: 1px;\n\n .icon {\n display: block;\n margin-left: -1px;\n opacity: 0.5;\n width: 20px;\n }\n }\n\n &__data {\n user-select: none;\n\n &--secondary,\n &--timestamp {\n font-size: 0.8em;\n font-weight: 400;\n letter-spacing: -0.01em;\n opacity: 0;\n transition: opacity 0.25s;\n }\n\n &--primary {\n font-size: 1.5em;\n font-weight: 100;\n letter-spacing: -0.02em;\n line-height: 1;\n white-space: nowrap;\n\n .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em;\n }\n }\n\n &--secondary {\n display: flex;\n align-items: center;\n font-style: italic;\n\n &.is-visible {\n opacity: 1;\n }\n }\n\n &--limit {\n align-items: center;\n display: inline-flex;\n @include themes.theme('color', 'sidebar--background');\n border-radius: 2px;\n font-size: 0.8em;\n font-style: normal;\n font-weight: 600;\n height: 13px;\n margin-left: math.div(variables.$spacing-unit * 1, 5);\n padding: math.div(variables.$spacing-unit * 1, 6);\n\n .icon {\n fill: currentColor;\n height: 12px;\n }\n\n .unit {\n font-weight: 400;\n }\n }\n\n &--timestamp {\n color: $client-stats--timestamp--foreground;\n bottom: 0;\n font-style: italic;\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n\n &.is-visible {\n opacity: 1;\n }\n }\n }\n }\n\n &__graph {\n flex: 0 0 150px;\n }\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.graph {\n &__gradient {\n &--bottom {\n stop-opacity: $client-stats--speed--fill--bottom--opacity;\n\n &--upload {\n stop-color: $client-stats--upload--graph--fill--bottom;\n }\n\n &--download {\n stop-color: $client-stats--download--graph--fill--bottom;\n }\n }\n\n &--top {\n stop-opacity: $client-stats--speed--fill--top--opacity;\n\n &--upload {\n stop-color: $client-stats--upload--graph--fill--top;\n }\n\n &--download {\n stop-color: $client-stats--download--graph--fill--top;\n }\n }\n }\n\n &__area {\n transform: translateY(math.div($client-stats--speed--stroke--width, -2));\n }\n\n &__line {\n fill: none;\n opacity: $client-stats--speed--stroke--opacity;\n stroke-width: $client-stats--speed--stroke--width;\n\n &--upload {\n stroke: $client-stats--upload--graph--stroke;\n }\n\n &--download {\n stroke: $client-stats--download--graph--stroke;\n }\n }\n\n &__circle {\n fill: currentColor;\n opacity: 0;\n transition: opacity 0.2s;\n\n &--upload {\n fill: $client-stats--upload--primary--foreground;\n }\n\n &--download {\n fill: $client-stats--download--primary--foreground;\n }\n }\n}\n","@use '../tools/colors';\n\n.connection-status {\n display: flex;\n align-items: center;\n\n &__icon {\n fill: colors.$green--darker;\n height: 15px;\n margin-right: 5px;\n width: 15px;\n }\n\n &__copy {\n color: colors.$dark-grey--light;\n font-size: 14px;\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n.dependency-list {\n margin-top: variables.$spacing-unit;\n width: auto;\n\n &__dependency {\n color: colors.$foreground;\n display: flex;\n opacity: 0.5;\n transition: opacity 0.25s;\n white-space: nowrap;\n\n &__icon {\n fill: colors.$green;\n flex: 0 0 math.div(variables.$spacing-unit * 2, 5);\n height: math.div(variables.$spacing-unit * 2, 5);\n margin-right: math.div(variables.$spacing-unit * 1, 5);\n opacity: 0;\n transition: opacity 0.25s;\n width: math.div(variables.$spacing-unit * 2, 5);\n\n .icon {\n height: 10px;\n width: 10px;\n }\n }\n\n &--satisfied {\n opacity: 1;\n\n .dependency-list {\n &__dependency {\n &__icon {\n opacity: 1;\n }\n }\n }\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n@use '../ui/config/spacing.scss';\n\n$selection-toolbar--height: variables.$spacing-unit * 1.5;\n\n.directory-tree {\n flex: 1 1 100%;\n order: 1;\n overflow: auto;\n user-select: none;\n z-index: 0;\n\n &__wrapper {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n\n &--toolbar-visible {\n .directory-tree {\n &__selection-toolbar {\n transform: translateY(0);\n }\n }\n\n .modal__content {\n &--nested-scroll {\n &__content {\n margin-bottom: $selection-toolbar--height;\n }\n }\n }\n }\n }\n\n &__selection-toolbar {\n align-items: center;\n background: colors.$another-grey;\n bottom: 0;\n display: flex;\n flex: 0 0 $selection-toolbar--height;\n justify-content: space-between;\n min-height: $selection-toolbar--height;\n padding: spacing.$spacing--small;\n order: 2;\n position: absolute;\n transform: translateY(100%);\n transition: transform 0.25s;\n width: 100%;\n z-index: 1;\n\n @media (max-width: 720px) {\n position: fixed;\n }\n\n &__item {\n flex: 0 0 auto;\n }\n\n &__item-count {\n color: colors.$blue;\n font-weight: bold;\n }\n\n .button {\n line-height: inherit;\n padding: math.div(variables.$spacing-unit * 1, 5);\n\n &--download {\n margin-left: auto;\n margin-right: math.div(variables.$spacing-unit * 2, 5);\n }\n }\n\n .dropdown {\n &__items {\n font-size: 1.1em;\n padding-bottom: 0;\n }\n\n &__trigger {\n .dropdown {\n &__button {\n padding-top: 5px;\n padding-bottom: 5px;\n }\n }\n }\n\n &__value {\n padding: 0;\n }\n }\n }\n\n &__parent-directory {\n margin-left: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .icon {\n &--disk {\n height: 14px;\n margin-right: 8px;\n vertical-align: middle;\n width: 14px;\n }\n }\n\n .directory-tree {\n &__checkbox {\n .checkbox {\n &__decoy {\n height: 18px;\n width: 18px;\n }\n }\n }\n }\n }\n\n &__tree {\n .directory-tree__tree {\n padding-left: 0;\n }\n }\n\n &__node {\n cursor: default;\n padding: 1px 0 1px 8px;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n &:hover > .file__label .directory-tree {\n &__checkbox {\n .directory-tree {\n &__checkbox {\n &__item {\n &--icon {\n opacity: 0;\n }\n\n &--checkbox {\n opacity: 1;\n\n .checkbox {\n &__decoy {\n &:after {\n opacity: 1;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n &--selected .directory-tree {\n &__checkbox {\n .directory-tree {\n &__checkbox {\n &__item {\n &--icon {\n opacity: 0.75;\n }\n\n &--checkbox {\n opacity: 1;\n }\n }\n }\n }\n }\n }\n\n &--directory {\n cursor: pointer;\n }\n\n &--group {\n margin-left: 0;\n padding-left: 12px;\n position: relative;\n }\n\n &--file-list {\n margin-bottom: 3px;\n padding-left: 0;\n }\n\n .file {\n align-items: center;\n display: flex;\n width: auto;\n\n .icon {\n &--file {\n transition: fill 0.25s;\n }\n }\n\n &__detail {\n flex: 1 1 auto;\n padding-right: math.div(variables.$spacing-unit * 1, 4);\n\n &--secondary {\n flex: 0 0 auto;\n font-size: 0.7rem;\n text-align: right;\n transition: color 0.25s;\n }\n\n &--priority {\n .icon {\n height: auto;\n margin-right: 0;\n width: 16px;\n }\n }\n\n &--clipboard {\n outline: none;\n .icon {\n fill: currentColor;\n height: auto;\n margin-top: 2px;\n width: 12px;\n }\n }\n\n &:last-child {\n padding-right: 0;\n }\n }\n }\n }\n\n &__checkbox {\n margin-right: 6px;\n position: relative;\n\n &,\n .form__element,\n .form__row__item {\n height: 18px;\n width: 18px;\n }\n\n .form__element {\n left: 50%;\n padding: 0;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &__item {\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 0.25s;\n width: 100%;\n\n & > .icon {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &--checkbox {\n z-index: 2;\n\n .checkbox {\n &__decoy {\n height: 16px;\n margin-right: 0;\n width: 16px;\n }\n }\n }\n\n &--icon {\n opacity: 1;\n z-index: 1;\n\n .icon {\n &.icon--folder {\n margin: -1px 0 0 1px;\n }\n }\n }\n }\n }\n\n & > .directory-tree {\n &__tree {\n & > .directory-tree {\n &__node {\n padding-left: 0;\n }\n }\n }\n }\n\n .icon {\n &--file,\n &--folder {\n height: 14px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 14px;\n }\n }\n}\n\n.directory-tree {\n &__node {\n .file {\n &__label {\n align-items: center;\n display: flex;\n min-width: 1px;\n }\n\n &__checkbox {\n flex: 0 0 auto;\n }\n\n &__name {\n flex: 1 1 auto;\n min-width: 1px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/variables';\n\n@use './base-menu';\n\n$dropdown--background: base-menu.$menu--background;\n\n$dropdown--button--padding--bottom: 7px;\n$dropdown--button--padding--left: 15px;\n$dropdown--button--padding--right: 15px;\n$dropdown--button--padding--top: 12px;\n\n$dropdown--arrow--margin: 8px;\n$dropdown--arrow--width: 8px;\n\n$dropdown--container--border: base-menu.$menu--container--border;\n$dropdown--container--shadow: base-menu.$menu--container--shadow;\n\n$dropdown--label: base-menu.$menu--label;\n\n$dropdown--value: base-menu.$menu--value;\n$dropdown--value--active: base-menu.$menu--value--active;\n\n$dropdown--header--border: base-menu.$menu--header--border;\n\n$dropdown--item--foreground: base-menu.$menu--item--foreground;\n$dropdown--item--background--hover: base-menu.$menu--item--background--hover;\n$dropdown--item--foreground--hover: base-menu.$menu--item--foreground--hover;\n$dropdown--item--foreground--active: base-menu.$menu--item--foreground--active;\n\n.dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n transition: z-index 0.25s;\n z-index: 2;\n\n &__button,\n &__trigger {\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: background 0.25s, border 0.25s, color 0.25s;\n white-space: nowrap;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &__button {\n display: block;\n padding: $dropdown--button--padding--top $dropdown--button--padding--right + $dropdown--arrow--width +\n $dropdown--arrow--margin $dropdown--button--padding--bottom $dropdown--button--padding--left;\n text-align: left;\n width: auto;\n\n .dropdown--direction-up & {\n padding-bottom: $dropdown--button--padding--bottom;\n padding-top: $dropdown--button--padding--bottom;\n }\n }\n\n &__content {\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 0;\n white-space: nowrap;\n z-index: 2;\n\n &__container {\n padding: 25px 30px;\n }\n\n .dropdown--direction-up & {\n bottom: 0;\n top: auto;\n }\n }\n\n &__label {\n color: $dropdown--label;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase;\n\n > button {\n font-size: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n line-height: inherit;\n text-transform: inherit;\n }\n\n .dropdown__button & {\n cursor: pointer;\n }\n }\n\n &__value {\n color: $dropdown--value;\n transition: color 0.25s;\n\n @media (max-width: 515px) {\n max-width: 15vw;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &:after {\n border-top: 5px solid $dropdown--value;\n border-left: math.div($dropdown--arrow--width, 2) solid transparent;\n border-right: math.div($dropdown--arrow--width, 2) solid transparent;\n content: '';\n right: $dropdown--button--padding--right;\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n vertical-align: middle;\n }\n }\n\n &__header {\n position: relative;\n\n &:after {\n background: $dropdown--header--border;\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%;\n }\n }\n\n &__items {\n display: flex;\n padding: 10px 0;\n }\n\n &__item {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &__list {\n flex: 1;\n max-width: 100%;\n }\n\n &--align-right & {\n left: auto;\n right: 0;\n }\n\n &--match-button-width {\n .dropdown {\n &__content {\n max-width: 100%;\n }\n }\n }\n\n &--width-small {\n min-width: variables.$spacing-unit * 5;\n }\n\n &.is-expanded {\n z-index: 10;\n\n .dropdown {\n &__header {\n .dropdown {\n &__value {\n color: $dropdown--value--active;\n }\n }\n }\n }\n }\n}\n","@use 'sass:color';\n\n@use '../tools/colors';\n@use '../tools/themes';\n@use '../tools/variables';\n\n@use '../ui/config/font-size.scss';\n@use '../ui/config/variables.scss' as config-variables;\n\n$dropzone--background: colors.$textbox--background;\n$dropzone--foreground: colors.$textbox--foreground;\n$dropzone--foreground--dragging: colors.$blue;\n$dropzone--border: colors.$textbox--border;\n$dropzone--border--hover: color.adjust($dropzone--border, $lightness: -20%);\n$dropzone--border--dragging: colors.$blue;\n$dropzone--browse--foreground: colors.$blue;\n$dropzone--icon--fill: rgba($dropzone--foreground, 0.5);\n$dropzone--icon--fill--hover: colors.$blue;\n$dropzone--icon--fill--dragging: colors.$blue;\n\n$dropzone--file--foreground: $dropzone--foreground;\n\n.dropzone {\n position: relative;\n text-align: center;\n transition: border 0.25s, color 0.25s;\n width: 100%;\n z-index: 2;\n\n &:hover {\n border-color: config-variables.$input--inverse--border--hover;\n\n .dropzone__icon {\n .icon {\n fill: $dropzone--icon--fill--hover;\n }\n }\n }\n\n &--is-dragging {\n &,\n &:hover {\n border-color: $dropzone--border--dragging;\n color: $dropzone--foreground--dragging;\n\n .dropzone__icon {\n .icon {\n fill: $dropzone--icon--fill--dragging;\n }\n }\n }\n }\n\n &__icon {\n .icon {\n &--files {\n fill: $dropzone--icon--fill;\n height: 64px;\n transition: fill 0.25s;\n width: 64px;\n\n &__file {\n &--right,\n &--left {\n fill-opacity: 0.5;\n }\n }\n }\n }\n }\n\n &__copy {\n cursor: pointer;\n flex: 1;\n font-size: font-size.$font-size--x-small;\n padding: variables.$spacing-unit;\n width: 100%;\n }\n\n &__browse-button {\n color: $dropzone--browse--foreground;\n text-decoration: underline;\n }\n\n &__selected-files {\n font-size: font-size.$font-size--small;\n margin-bottom: -1px;\n position: relative;\n width: 100%;\n z-index: 1;\n\n &.interactive-list {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n & + .dropzone {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n &__file {\n .icon {\n &--file {\n display: inline-block;\n height: 14px;\n margin-right: 4px;\n opacity: 0.5;\n width: 14px;\n\n &.icon {\n fill: currentColor;\n }\n }\n }\n\n &:hover {\n .icon {\n &--file {\n opacity: 0.5;\n }\n }\n }\n }\n }\n\n &--with-overlay {\n text-align: inherit;\n border: none;\n\n .dropzone__overlay {\n position: absolute;\n visibility: hidden;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n @include themes.theme('background', 'torrent-list--background');\n z-index: 2;\n text-align: center;\n opacity: 0;\n transition: opacity 250ms ease-in, visibility 1ms linear 250ms;\n }\n\n &.dropzone--is-dragging .dropzone__overlay {\n top: 0;\n opacity: 1;\n visibility: visible;\n transition: opacity 250ms ease-in;\n }\n\n .dropzone__copy {\n position: absolute;\n top: 50%;\n height: 150px;\n margin-top: -75px;\n }\n }\n}\n",".duration {\n &--segment {\n margin-right: 0.25em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n","@use 'sass:color';\n\n$textbox-repeater--button--background: #3e4959;\n$textbox-repeater--button--background--hover: color.adjust($textbox-repeater--button--background, $lightness: 7%);\n$textbox-repeater--button--border: rgba(#0f151b, 0.2);\n$textbox-repeater--button--border--hover: rgba(#0f151b, 0.4);\n$textbox-repeater--button--foreground: rgba(#12191f, 0.7);\n$textbox-repeater--button--foreground--hover: #12191f;\n\n.floating-action {\n &__button {\n background: $textbox-repeater--button--background;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border;\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 6px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background: $textbox-repeater--button--background--hover;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border--hover;\n\n .icon {\n fill: $textbox-repeater--button--foreground--hover;\n }\n }\n\n .icon {\n height: 8px;\n fill: $textbox-repeater--button--foreground;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px;\n }\n\n &--search {\n .icon {\n height: 15px;\n width: 15px;\n }\n }\n }\n\n &__group {\n &--on-textbox {\n display: flex;\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%;\n }\n }\n}\n","@use '../tools/colors';\n\n@keyframes loading-indicator-dots-pulse {\n 0% {\n fill-opacity: 0.2;\n }\n\n 100% {\n fill-opacity: 0.8;\n }\n}\n\n@keyframes spinner-spin {\n 0% {\n transform: rotate(0);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.icon {\n &--eta {\n .icon {\n &__ring {\n fill-opacity: 1;\n }\n }\n }\n\n &--information {\n &__fill {\n fill-opacity: 0.05;\n }\n\n &__ring {\n fill-opacity: 0.6;\n }\n }\n\n &--limits {\n .limits {\n &__bars {\n &--top {\n fill-opacity: 0.4;\n }\n\n &--middle {\n fill-opacity: 1;\n }\n\n &--bottom {\n fill-opacity: 1;\n }\n }\n }\n }\n\n &--loading-indicator {\n .loading-indicator {\n &--dots {\n &__dot {\n animation: loading-indicator-dots-pulse 0.6s linear alternate infinite;\n fill: colors.$white;\n\n &--center {\n animation-delay: 0.2s;\n }\n\n &--right {\n animation-delay: 0.4s;\n }\n }\n }\n }\n }\n\n &--spinner {\n animation: spinner-spin 1.25s linear infinite;\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables' as tools-variables;\n\n@use '../ui/config/speed.scss';\n@use '../ui/config/variables.scss';\n@use '../ui/config/border-radius.scss';\n@use '../ui/config/spacing.scss';\n\n$interactive-list--padding--vertical: 0;\n$interactive-list--padding--horizontal: 0;\n\n$interactive-list--item--foreground: colors.$textbox--foreground;\n\n$interactive-list--item--detail--tertiary--foreground: color.adjust(\n $interactive-list--item--foreground,\n $lightness: -10%\n);\n\n$interactive-list--item--icon--fill: rgba($interactive-list--item--foreground, 0.5);\n$interactive-list--item--icon--fill--hover: #fff;\n\n$interactive-list--item--padding--horizontal: variables.$form--element--padding--x;\n$interactive-list--item--padding--vertical: math.div(tools-variables.$spacing-unit * 3, 10);\n\n$interactive-list--detail-list--item--padding--horizontal: math.div(tools-variables.$spacing-unit * 1, 5);\n$interactive-list--detail-list--item--padding--vertical: 0;\n\n.interactive-list {\n appearance: none;\n outline: none;\n background: variables.$input--inverse--background;\n border: variables.$form--element--border-width solid variables.$input--inverse--border;\n border-radius: variables.$form--element--border-radius;\n box-shadow: variables.$form--element--inverse--box-shadow;\n color: variables.$input--inverse--foreground;\n display: block;\n height: auto;\n padding: $interactive-list--padding--vertical $interactive-list--padding--horizontal;\n transition: all speed.$speed--x-fast;\n width: 100%;\n\n &::placeholder {\n color: colors.$textbox--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n\n &::selection {\n color: colors.$textbox--selection--foreground;\n background: colors.$textbox--selection--background;\n }\n\n &:focus {\n background: colors.$textbox--active--background;\n border-color: colors.$textbox--active--border;\n color: colors.$textbox--active--foreground;\n\n &::placeholder {\n color: colors.$textbox--active--placeholder;\n }\n }\n\n &--loading {\n height: 60px;\n }\n\n &__item {\n border-bottom: 1px solid color.adjust(variables.$input--inverse--background, $lightness: -3%);\n display: flex;\n overflow: hidden;\n padding: $interactive-list--item--padding--vertical $interactive-list--item--padding--horizontal;\n text-overflow: ellipsis;\n transition: background speed.$speed--x-fast;\n white-space: nowrap;\n width: 100%;\n\n &:last-child {\n border-bottom: none;\n }\n\n &--stacked-content {\n align-items: center;\n\n .interactive-list {\n &__label {\n align-items: stretch;\n flex-direction: column;\n }\n }\n }\n }\n\n &__label {\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__tag {\n flex: 0 0 auto;\n\n &.tag {\n color: color.adjust(colors.$darkest-grey--hard, $lightness: 50%);\n margin-right: 0;\n padding-bottom: math.div(spacing.$spacing--xx-small, 2);\n padding-top: math.div(spacing.$spacing--xx-small, 2);\n }\n }\n }\n\n &__loading-indicator {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: opacity 0.25s;\n width: 100%;\n\n .icon {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &-enter {\n opacity: 0;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-exit {\n opacity: 1;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &__icon {\n border-radius: border-radius.$border-radius--small;\n flex: 0 0 auto;\n height: spacing.$spacing--large;\n position: relative;\n width: spacing.$spacing--large;\n\n .icon {\n height: 12px;\n width: 12px;\n fill: $interactive-list--item--icon--fill;\n transition: fill speed.$speed--x-fast;\n }\n\n &--action {\n transition: background speed.$speed--xx-fast;\n\n &:focus {\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &:focus-visible,\n &:hover {\n background: colors.$darkest-grey--hard;\n\n .icon {\n filter: drop-shadow(0 1px 0 rgba(colors.$darkest-grey, 0.8));\n fill: $interactive-list--item--icon--fill--hover;\n }\n }\n\n &--warning {\n &:focus-visible,\n &:hover {\n background: colors.$red;\n }\n }\n\n & + .interactive-list__icon--action {\n margin-left: spacing.$spacing--x-small;\n }\n }\n }\n\n &__detail {\n &--primary {\n font-weight: 700;\n }\n\n &--tertiary {\n color: $interactive-list--item--detail--tertiary--foreground;\n }\n }\n\n &__detail-list {\n display: flex;\n flex: 1 1 auto;\n max-width: 100%;\n\n &__item {\n flex: 0 0 auto;\n max-width: 100%;\n padding: $interactive-list--detail-list--item--padding--vertical\n $interactive-list--detail-list--item--padding--horizontal;\n\n &:first-child {\n padding-left: 0;\n }\n\n &:last-child {\n padding-right: 0;\n }\n\n &--overflow {\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n","@use '../tools/colors';\n\n$loading-indicator--bar--background: #e9eef2;\n$loading-indicator--bar--background--inverse: rgba(#38586d, 0.7);\n$loading-indicator--tick--background: rgba(colors.$blue, 0.75);\n$loading-indicator--tick--background--inverse: rgba(colors.$blue, 0.75);\n\n@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n transform: translateX(400%);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.loading-indicator {\n width: 32px;\n height: 19px; // 3 * 3px bar height + 2 * 5px margin\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n &.is-inverse {\n .loading-indicator {\n &__bar {\n background: $loading-indicator--bar--background--inverse;\n\n &:after {\n background: $loading-indicator--tick--background--inverse;\n }\n }\n }\n }\n\n &__bar {\n background: $loading-indicator--bar--background;\n border-radius: 10px;\n height: 3px;\n overflow: hidden;\n width: 100%;\n\n &:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: $loading-indicator--tick--background;\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%;\n }\n\n &--2 {\n &:after {\n animation-delay: 0.5s;\n }\n }\n\n &--3 {\n &:after {\n animation-delay: 1s;\n }\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/variables';\n\n.mediainfo {\n display: flex;\n flex-direction: column;\n overflow: auto;\n\n &__toolbar {\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n padding-bottom: math.div(variables.$spacing-unit * 2, 5);\n position: relative;\n\n .tooltip__wrapper {\n bottom: 0;\n position: absolute;\n right: 0;\n }\n }\n\n &__copy-button {\n &.tooltip {\n &__wrapper {\n position: absolute;\n right: 0;\n top: 0;\n }\n }\n\n .icon {\n fill: currentColor;\n height: 16px;\n width: 16px;\n }\n }\n\n &__output {\n flex: 1 1 auto;\n width: max-content;\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n$modal--background: colors.$another-grey;\n\n$modal--heading--foreground: #e6f0ff;\n\n$modal--sub-heading--foreground: color.adjust(\n color.adjust($modal--heading--foreground, $lightness: -15%),\n $saturation: -15%\n);\n\n$modal--transition--duration: 0.2s;\n$modal--transition--scale: 0.85;\n\n$modal--body--foreground: color.adjust(#6c7e92, $lightness: 6%);\n\n$modal--tab--foreground: #abc2e2;\n$modal--tab--foreground--active: colors.$blue--lighter;\n$modal--tab--border--active: colors.$blue--lighter;\n\n$modal--overlay--base: #0b1014;\n$modal--overlay: rgba($modal--overlay--base, 0.95);\n\n$modal--content--shadow: #05080a;\n\n$modal--border: #363e48;\n$modal--border-radius: 3px;\n$modal--padding--horizontal: variables.$spacing-unit;\n$modal--padding--vertical: math.div($modal--padding--horizontal * 4, 5);\n\n$modal--content--padding--top: math.div(variables.$spacing-unit * 4, 5);\n$modal--content--padding--right: variables.$spacing-unit;\n$modal--content--padding--bottom: math.div(variables.$spacing-unit * 4, 5);\n$modal--content--padding--left: variables.$spacing-unit;\n\n$modal--actions--margin--top: variables.$spacing-unit;\n\n$modal--tabs--margin--top: math.div(variables.$spacing-unit * 1, 5);\n$modal--tabs--margin--right: math.div(variables.$spacing-unit * -1, 5);\n$modal--tabs--margin--bottom: 0;\n$modal--tabs--margin--left: math.div(variables.$spacing-unit * -1, 5);\n\n$modal--vertical--tabs--margin--top: math.div(variables.$spacing-unit * 1, 5);\n$modal--vertical--tabs--margin--right: 0;\n$modal--vertical--tabs--margin--bottom: 0;\n$modal--vertical--tabs--margin--left: $modal--padding--horizontal * -1;\n\n$modal--tabs--padding--top: math.div(variables.$spacing-unit * 1, 5);\n$modal--tabs--padding--right: math.div(variables.$spacing-unit * 1, 5);\n$modal--tabs--padding--bottom: math.div(variables.$spacing-unit * 2, 5);\n$modal--tabs--padding--left: math.div(variables.$spacing-unit * 1, 5);\n\n$modal--tabs--padding--vertical--top: math.div(variables.$spacing-unit * 1, 5);\n$modal--tabs--padding--vertical--right: math.div(variables.$spacing-unit * 2, 5);\n$modal--tabs--padding--vertical--bottom: math.div(variables.$spacing-unit * 1, 5);\n$modal--tabs--padding--vertical--left: $modal--padding--horizontal;\n\n.modal {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity $modal--transition--duration;\n width: 100%;\n z-index: 100;\n\n &__overlay {\n background: $modal--overlay;\n height: 100%;\n width: 100%;\n }\n\n &--align-center {\n text-align: center;\n }\n\n &__tabs {\n color: $modal--tab--foreground;\n font-size: 0.85rem;\n font-weight: 500;\n margin: $modal--tabs--margin--top $modal--tabs--margin--right $modal--tabs--margin--bottom\n $modal--tabs--margin--left;\n\n .modal {\n &__tab {\n display: inline-block;\n margin-right: math.div(variables.$spacing-unit * 2, 5);\n position: relative;\n\n > button {\n padding: $modal--tabs--padding--top $modal--tabs--padding--right $modal--tabs--padding--bottom\n $modal--tabs--padding--left;\n }\n\n &:after {\n bottom: 0;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n right: 0;\n transition: background 0.25s;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n &.is-active {\n color: $modal--tab--foreground--active;\n font-weight: 700;\n\n &:after {\n background: $modal--tab--border--active;\n }\n }\n }\n }\n }\n\n &__header {\n border-radius: $modal--border-radius $modal--border-radius 0 0;\n color: $modal--heading--foreground;\n box-shadow: inset 0 -1px 0 $modal--border;\n flex: 0 0 auto;\n font-size: 1.25em;\n font-weight: 500;\n overflow: hidden;\n padding: $modal--padding--vertical $modal--padding--horizontal;\n\n &.has-tabs {\n .modal--tabs-in-header & {\n padding-bottom: 0;\n }\n }\n }\n\n &__content {\n flex: 1 1 auto;\n padding: $modal--content--padding--top $modal--content--padding--right $modal--content--padding--bottom\n $modal--content--padding--left;\n position: relative;\n\n &__wrapper {\n background: $modal--background;\n border-radius: $modal--border-radius;\n box-shadow: 0 0 256px rgba($modal--content--shadow, 0.1), 0 2px 4px rgba($modal--content--shadow, 0.5),\n 0 2px 8px rgba($modal--content--shadow, 0.1), 0 4px 32px rgba($modal--content--shadow, 0.3);\n display: flex;\n flex-direction: column;\n height: auto;\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: hidden;\n position: absolute;\n top: 10%;\n transition: transform $modal--transition--duration;\n transform: translate(-50%, 0);\n transform-origin: 50% 50%;\n min-width: 500px;\n\n @media (max-width: 720px) {\n max-width: 100%;\n height: 80%;\n width: 100%;\n top: unset;\n bottom: 0%;\n min-width: unset;\n }\n }\n\n &--nested-scroll {\n overflow: hidden !important;\n padding: 0;\n position: relative;\n\n &__header {\n padding-left: $modal--content--padding--left;\n padding-right: $modal--content--padding--right;\n }\n\n &__content {\n padding: $modal--content--padding--top $modal--content--padding--right $modal--content--padding--bottom\n $modal--content--padding--left;\n }\n }\n }\n\n &__body {\n color: $modal--body--foreground;\n flex: 1 1 auto;\n font-size: 0.9em;\n overflow: auto;\n overflow-x: hidden;\n\n .modal--tabs-in-body & {\n overflow: hidden;\n }\n }\n\n &__footer {\n flex: 0 0 auto;\n padding: 0 $modal--padding--horizontal $modal--padding--vertical $modal--padding--horizontal;\n\n .modal {\n &__actions {\n margin-top: 0;\n }\n }\n }\n\n &__actions {\n margin-top: $modal--actions--margin--top;\n }\n\n &__button-group {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n\n .modal--align-center & {\n justify-content: center;\n }\n }\n\n &__animation-enter {\n opacity: 0;\n\n .modal {\n &__content {\n &__wrapper {\n transform: translate(-50%, 0) scale($modal--transition--scale);\n }\n }\n }\n }\n\n &__animation-enter-active {\n opacity: 1;\n\n .modal {\n &__content {\n &__wrapper {\n transform: translate(-50%, 0) scale(1, 1);\n }\n }\n }\n }\n\n &__animation-exit {\n opacity: 1;\n pointer-events: none;\n\n .modal {\n &__content {\n &__wrapper {\n transform: translate(-50%, 0) scale(1, 1);\n }\n }\n }\n }\n\n &__animation-exit-active {\n opacity: 0;\n\n .modal {\n &__content {\n &__wrapper {\n transform: translate(-50%, 0) scale($modal--transition--scale);\n }\n }\n }\n }\n\n &--vertical {\n &.modal {\n &--tabs-in-header {\n flex-direction: row;\n\n .modal {\n &__header {\n border-radius: $modal--border-radius 0 0 $modal--border-radius;\n flex-basis: 175px;\n box-shadow: inset -1px 0 0 $modal--border;\n padding-bottom: $modal--padding--horizontal;\n padding-right: 0;\n max-width: 175px;\n }\n\n &__content {\n flex: 1 0 auto;\n\n & + .modal__footer {\n margin-top: math.div(variables.$spacing-unit * 3, 5);\n }\n }\n }\n }\n\n &--tabs-in-body {\n .modal {\n &__body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n }\n\n &__content {\n overflow: auto;\n overflow-x: hidden;\n }\n\n &__tabs {\n flex: 0 0 135px;\n box-shadow: inset -1px 0 $modal--border;\n margin: 0;\n padding-top: $modal--padding--vertical;\n }\n }\n }\n }\n\n .modal {\n &__tabs {\n margin: $modal--vertical--tabs--margin--top $modal--vertical--tabs--margin--right\n $modal--vertical--tabs--margin--bottom $modal--vertical--tabs--margin--left;\n\n .modal {\n &__tab {\n display: block;\n margin-right: 0;\n\n > button {\n width: 100%;\n padding: $modal--tabs--padding--vertical--top $modal--tabs--padding--vertical--right\n $modal--tabs--padding--vertical--bottom $modal--tabs--padding--vertical--left;\n text-align: left;\n }\n\n &:after {\n bottom: 0;\n content: '';\n height: auto;\n left: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: background 0.25s;\n width: 1px;\n }\n }\n }\n }\n\n &__body {\n display: flex;\n flex-direction: column;\n }\n\n &__content {\n display: flex;\n flex-direction: column;\n }\n\n &__actions {\n flex: 0 0 auto;\n }\n }\n }\n\n &--size {\n &-large {\n width: 850px;\n\n &.modal {\n &__content {\n &__wrapper {\n bottom: 10%;\n\n @media (max-width: 720px) {\n bottom: 0%;\n }\n }\n }\n }\n }\n }\n\n .form {\n &__section {\n &__heading {\n color: $modal--heading--foreground;\n font-size: 0.925em;\n font-weight: 500;\n }\n\n &__sub-heading {\n color: $modal--sub-heading--foreground;\n font-size: 0.875em;\n }\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n$notification--sub-heading--color: color.adjust(color.adjust(#7189a8, $lightness: 5%), $saturation: 5%);\n\n.notifications {\n &--empty {\n text-align: center;\n }\n\n &--is-loading {\n .notifications {\n &__list {\n opacity: 0.25;\n }\n\n &__loading-indicator {\n opacity: 1;\n }\n }\n }\n\n &__badge {\n background: colors.$blue;\n border-radius: 30px;\n color: colors.$dark-blue;\n font-size: 0.5rem;\n font-weight: 700;\n left: 18px;\n line-height: 9px;\n padding: 0 math.div(variables.$spacing-unit * 1, 10);\n position: absolute;\n top: 6px;\n vertical-align: baseline;\n }\n\n &__list {\n min-height: 30px;\n opacity: 1;\n position: relative;\n transition: opacity 0.25s;\n white-space: normal;\n word-wrap: break-word;\n\n &__item {\n margin-bottom: math.div(variables.$spacing-unit * 3, 10);\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n &__loading-indicator {\n left: 50%;\n opacity: 0;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n transition: opacity 0.5s;\n\n .icon {\n height: 24px;\n width: 24px;\n\n .loading-indicator {\n &--dots {\n &__dot {\n fill: currentColor;\n }\n }\n }\n }\n }\n\n &__toolbar {\n .toolbar {\n &__item {\n &--button {\n flex-basis: 33.33%;\n }\n }\n }\n }\n}\n\n.notification {\n &__heading {\n color: #495d76;\n font-size: 0.75rem;\n }\n\n &__category {\n color: colors.$blue;\n font-weight: 600;\n }\n\n &__message {\n &__sub-heading {\n color: $notification--sub-heading--color;\n font-style: italic;\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n.peers-list {\n &__flag {\n display: inline-block;\n height: 10px;\n overflow: hidden;\n margin-right: math.div(variables.$spacing-unit * 1, 5);\n position: relative;\n width: 20px;\n vertical-align: baseline;\n\n &__image {\n height: 10px;\n left: 50%;\n position: absolute;\n top: 0;\n transform: translateX(-50%);\n width: auto;\n z-index: 2;\n }\n\n &__text {\n font-size: 0.8em;\n font-weight: bold;\n left: 50%;\n margin-top: 1px;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n }\n }\n\n &__encryption {\n .icon {\n fill: colors.$green;\n height: 12px;\n width: 12px;\n }\n }\n\n &__incoming {\n .icon {\n fill: colors.$green;\n height: 12px;\n width: 12px;\n }\n }\n}\n","@use '../tools/colors';\n\n$priority-meter--track--level-0--background: rgba(#436076, 0.2);\n$priority-meter--bar--level-0--background: #436076;\n$priority-meter--track--level-1--background: rgba(colors.$blue, 0.2);\n$priority-meter--bar--level-1--background: colors.$blue;\n$priority-meter--track--level-2--background: rgba(colors.$green, 0.2);\n$priority-meter--bar--level-2--background: colors.$green;\n$priority-meter--track--level-3--background: rgba(colors.$red, 0.2);\n$priority-meter--bar--level-3--background: colors.$red;\n\n.priority-meter {\n height: 8px;\n position: relative;\n\n &__wrapper {\n cursor: pointer;\n display: inline-block;\n padding: 5px;\n user-select: none;\n vertical-align: middle;\n }\n\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n }\n\n &:before {\n height: 2px;\n left: 0;\n top: 3px;\n transition: background 0.25s;\n width: 100%;\n }\n\n &:after {\n height: 100%;\n top: 0;\n transition: background 0.25s, left 0.25s;\n width: 2px;\n }\n\n &--max-2 {\n width: 18px;\n\n &.priority-meter {\n &--level-0 {\n &:before {\n background: $priority-meter--track--level-0--background;\n }\n\n &:after {\n left: 0;\n background: $priority-meter--bar--level-0--background;\n }\n }\n\n &--level-1 {\n &:before {\n background: $priority-meter--track--level-1--background;\n }\n\n &:after {\n left: 8px;\n background: $priority-meter--bar--level-1--background;\n }\n }\n\n &--level-2 {\n &:before {\n background: $priority-meter--track--level-2--background;\n }\n\n &:after {\n background: $priority-meter--bar--level-2--background;\n left: 16px;\n }\n }\n }\n }\n\n &--max-3 {\n width: 26px;\n\n &.priority-meter {\n &--level-0 {\n &:before {\n background: $priority-meter--track--level-0--background;\n }\n\n &:after {\n left: 0;\n background: $priority-meter--bar--level-0--background;\n }\n }\n\n &--level-1 {\n &:before {\n background: $priority-meter--track--level-1--background;\n }\n\n &:after {\n left: 8px;\n background: $priority-meter--bar--level-1--background;\n }\n }\n\n &--level-2 {\n &:before {\n background: $priority-meter--track--level-2--background;\n }\n\n &:after {\n background: $priority-meter--bar--level-2--background;\n left: 16px;\n }\n }\n\n &--level-3 {\n &:before {\n background: $priority-meter--track--level-3--background;\n }\n\n &:after {\n background: $priority-meter--bar--level-3--background;\n left: 24px;\n }\n }\n }\n }\n}\n","@use '../tools/colors';\n@use '../tools/themes';\n\n@keyframes candy-stripe {\n 0% {\n background-position: 0 0;\n }\n\n 100% {\n background-position: 4px 0;\n }\n}\n\n$progress-bar--height: 3px;\n\n.progress-bar {\n align-items: center;\n display: flex;\n width: 100%;\n z-index: 1;\n\n &__icon {\n flex: 0 0 auto;\n padding-right: 5px;\n\n .icon {\n color: colors.$green;\n display: block;\n fill: currentColor;\n height: 12px;\n transition: opacity 0.15s;\n width: 12px;\n\n .torrent--is-seeding & {\n @include themes.theme('color', 'progress-bar--fill--completed');\n }\n\n .torrent--is-stopped & {\n @include themes.theme('color', 'progress-bar--fill--stopped');\n }\n\n .torrent--has-error & {\n @include themes.theme('color', 'progress-bar--fill--error');\n }\n\n .torrent--is-checking & {\n @include themes.theme('color', 'progress-bar--fill--checking');\n }\n\n .torrent--is-selected & {\n @include themes.theme('color', 'progress-bar--fill--selected');\n }\n\n .torrent--is-selected.torrent--is-stopped & {\n @include themes.theme('color', 'progress-bar--fill--selected--stopped');\n }\n\n .torrent--has-error.torrent--is-stopped & {\n @include themes.theme('color', 'progress-bar--fill--error--stopped');\n }\n }\n }\n\n &__fill {\n @include themes.theme('background', 'progress-bar--fill');\n display: block;\n height: $progress-bar--height;\n width: 100%;\n\n .torrent--is-seeding & {\n @include themes.theme('background', 'progress-bar--fill--completed');\n }\n\n .torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--fill--stopped');\n }\n\n .torrent--has-error & {\n @include themes.theme('background', 'progress-bar--fill--error');\n }\n\n .torrent--is-checking & {\n @include themes.theme('background', 'progress-bar--fill--checking');\n }\n\n .torrent--is-selected & {\n @include themes.theme('background', 'progress-bar--fill--selected');\n }\n\n .torrent--is-selected.torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--fill--selected--stopped');\n }\n\n .torrent--has-error.torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--fill--error--stopped');\n }\n\n &__wrapper {\n @include themes.theme('background', 'progress-bar--track--background');\n flex: 1 1 auto;\n position: relative;\n height: $progress-bar--height;\n\n .torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--track--background--stopped');\n }\n\n .torrent--has-error & {\n @include themes.theme('background', 'progress-bar--track--background--error');\n }\n\n .torrent--is-selected & {\n @include themes.theme('background', 'progress-bar--track--background--selected');\n }\n\n .torrent--has-error.torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--track--background--error--stopped');\n }\n\n .torrent--is-selected.torrent--is-stopped & {\n @include themes.theme('background', 'progress-bar--track--background--selected--stopped');\n opacity: 1;\n }\n\n .torrent--is-checking & {\n animation: candy-stripe 0.25s linear infinite;\n background-color: transparent !important;\n background-image: linear-gradient(\n -45deg,\n rgba(rgba(#8899a8, 0.15), 0) 0,\n rgba(rgba(#8899a8, 0.15), 0) 25%,\n rgba(rgba(#8899a8, 0.15), 0.5) 25%,\n rgba(rgba(#8899a8, 0.15), 0.5) 50%,\n rgba(rgba(#8899a8, 0.15), 0) 50%,\n rgba(rgba(#8899a8, 0.15), 0) 75%,\n rgba(rgba(#8899a8, 0.15), 0.5) 75%,\n rgba(rgba(#8899a8, 0.15), 0.5) 100%\n );\n background-size: 4px 4px !important;\n height: $progress-bar--height;\n top: 0;\n }\n\n .torrent--is-selected.torrent--is-checking & {\n background-image: linear-gradient(\n -45deg,\n rgba(#fff, 0) 0,\n rgba(#fff, 0) 25%,\n rgba(#fff, 0.5) 25%,\n rgba(#fff, 0.5) 50%,\n rgba(#fff, 0) 50%,\n rgba(#fff, 0) 75%,\n rgba(#fff, 0.5) 75%,\n rgba(#fff, 0.5) 100%\n );\n }\n }\n }\n}\n","@use 'sass:color';\n\n* {\n scrollbar-width: thin;\n}\n\n::-webkit-scrollbar {\n height: 6px;\n width: 6px;\n}\n\n::-webkit-scrollbar-corner {\n background: none;\n}\n\n::-webkit-scrollbar-track {\n opacity: 0;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: #8d8d8d;\n}\n\n::-webkit-scrollbar-thumb:hover {\n border-radius: 4px;\n background: color.adjust(#8d8d8d, $lightness: 10%);\n}\n\n.os-theme-thin > .os-scrollbar-horizontal {\n right: 14px;\n height: 14px;\n padding: 0px 6px;\n}\n\n.os-theme-thin > .os-scrollbar-vertical {\n bottom: 14px;\n width: 14px;\n padding: 6px 0px;\n}\n\n.os-theme-thin.os-host-rtl > .os-scrollbar-horizontal {\n left: 14px;\n right: 0;\n}\n\n.os-theme-thin > .os-scrollbar-corner {\n height: 14px;\n width: 14px;\n background-color: transparent;\n}\n\n.os-theme-thin > .os-scrollbar > .os-scrollbar-track {\n background: transparent;\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track:before,\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track:before {\n content: '';\n display: block;\n position: absolute;\n background: rgba(255, 255, 255, 0.15);\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track:before,\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle:before {\n left: 0;\n right: 0;\n height: 2px;\n top: 50%;\n margin-top: -1px;\n}\n\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track:before,\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle:before {\n top: 0;\n bottom: 0;\n width: 2px;\n left: 50%;\n margin-left: -1px;\n}\n\n.os-theme-thin > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle:before {\n content: '';\n display: block;\n position: absolute;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 10px;\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle:hover:before,\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle.active:before {\n height: 4px;\n margin-top: -2px;\n}\n\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle:hover:before,\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle.active:before {\n width: 4px;\n margin-left: -2px;\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle:hover:before,\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle:hover:before {\n background: rgba(255, 255, 255, 0.7);\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle.active:before,\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle.active:before {\n background: #fff;\n}\n\n.os-theme-thin > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle {\n height: 100%;\n min-width: 30px;\n}\n\n.os-theme-thin > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle {\n width: 100%;\n min-height: 30px;\n}\n\n.os-theme-thin.os-host-transition > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle:before {\n transition: height 0.3s, margin-top 0.3s, background 0.2s;\n}\n\n.os-theme-thin.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle:before {\n transition: width 0.3s, margin-left 0.3s, background 0.2s;\n}\n","@use '../tools/colors';\n\n$search-torrents--base: #091824;\n$search-torrents--background: rgba($search-torrents--base, 0.3);\n$search-torrents--background--active: rgba(colors.$blue, 0.25);\n$search-torrents--border: rgba($search-torrents--background, 0.4);\n$search-torrents--border--active: rgba(colors.$blue, 0.3);\n$search-torrents--foreground: colors.$sidebar--foreground;\n$search-torrents--foreground--active: colors.$blue;\n$search-torrents--placeholder: rgba(colors.$sidebar--foreground, 0.4);\n$search-torrents--placeholder--active: rgba(colors.$blue, 0.4);\n\n$search-torrents--icon--foreground: colors.$sidebar--foreground;\n$search-torrents--icon--foreground--active: colors.$blue;\n\n.search {\n position: relative;\n\n .icon {\n fill: $search-torrents--icon--foreground;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n pointer-events: none;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px;\n\n &--close {\n left: auto;\n right: 17px;\n }\n }\n\n .button {\n border-radius: 0;\n border: 0;\n height: 100%;\n position: absolute;\n right: 0;\n width: 30px;\n\n .icon {\n position: absolute;\n height: 10px;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 10px;\n }\n }\n\n .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid $search-torrents--border;\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: $search-torrents--background;\n box-shadow: none;\n color: $search-torrents--foreground;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $search-torrents--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n }\n\n &.is-in-use {\n .icon {\n fill: $search-torrents--icon--foreground--active;\n opacity: 1;\n }\n\n .textbox {\n background: $search-torrents--background--active;\n border-bottom: 1px solid $search-torrents--border--active;\n border-top: 1px solid $search-torrents--border--active;\n color: $search-torrents--foreground--active;\n padding-right: 45px;\n\n &::placeholder {\n color: $search-torrents--placeholder--active;\n }\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/themes';\n@use '../tools/variables';\n\n.os-theme-thin {\n &.os-scrollbar {\n .os-scrollbar-track {\n background: transparent;\n }\n\n .os-scrollbar-track:before {\n content: '';\n display: block;\n position: absolute;\n background: rgba(255, 255, 255, 0.15);\n }\n\n .os-scrollbar-handle:before {\n content: '';\n display: block;\n position: absolute;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 10px;\n }\n\n .os-scrollbar-handle:hover:before,\n .os-scrollbar-handle.active:before {\n background: #fff;\n }\n }\n\n &.os-scrollbar-horizontal {\n right: 14px;\n height: 14px;\n padding: 0px 6px;\n\n &.os-scrollbar-rtl {\n left: 14px;\n right: 0;\n }\n\n .os-scrollbar-track:before,\n .os-scrollbar-handle:before {\n left: 0;\n right: 0;\n height: 2px;\n top: 50%;\n margin-top: -1px;\n }\n\n .os-scrollbar-handle:hover:before,\n .os-scrollbar-handle.active:before {\n height: 4px;\n margin-top: -2px;\n }\n\n .os-scrollbar-handle {\n height: 100%;\n min-width: 30px;\n }\n }\n\n &.os-scrollbar-vertical {\n bottom: 14px;\n width: 14px;\n padding: 6px 0px;\n\n .os-scrollbar-track:before,\n .os-scrollbar-handle:before {\n top: 0;\n bottom: 0;\n width: 2px;\n left: 50%;\n margin-left: -1px;\n }\n\n .os-scrollbar-handle:hover:before,\n .os-scrollbar-handle.active:before {\n width: 4px;\n margin-left: -2px;\n }\n\n .os-scrollbar-handle {\n width: 100%;\n min-height: 30px;\n }\n }\n}\n\n.application {\n &__sidebar {\n @include themes.theme('background', 'sidebar--background');\n @include themes.theme('box-shadow', 'sidebar--border');\n @include themes.theme('color', 'sidebar--foreground');\n flex: 1;\n min-width: 240px;\n max-width: 250px;\n height: 100%;\n position: relative;\n z-index: 2;\n transition: transform 0.2s;\n\n @media (max-width: 720px) {\n transform: translateX(-120px);\n }\n }\n}\n\n.sidebar {\n &__icon-button {\n @include themes.theme('color', 'sidebar--icon-button--foreground');\n display: block;\n font-size: 0.8em;\n line-height: 1;\n padding: math.div(variables.$spacing-unit * 2, 5);\n position: relative;\n transition: color 0.25s;\n\n &:focus-visible,\n &:hover {\n @include themes.theme('color', 'sidebar--icon-button--foreground--hover');\n\n .icon {\n @include themes.theme('fill', 'sidebar--icon-button--fill--hover');\n }\n }\n\n &--interactive {\n cursor: pointer;\n }\n\n .icon {\n @include themes.theme('fill', 'sidebar--icon-button--fill');\n height: 13px;\n transition: fill 0.25s;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 13px;\n }\n }\n\n &__action {\n &--last {\n margin-left: auto;\n }\n }\n\n &__actions {\n min-height: max-content;\n display: flex;\n padding: math.div(variables.$spacing-unit * 1, 5);\n justify-content: flex-start;\n }\n\n &__diskusage {\n .progress-bar__icon {\n display: none;\n }\n .progress-bar__fill__wrapper {\n @include themes.theme('background', 'sidebar-filter--foreground--fill');\n }\n .progress-bar__fill {\n @include themes.theme('background', 'sidebar-filter--foreground');\n }\n }\n}\n\n.diskuage__size-avail {\n margin-left: 1em;\n}\n\n.diskusage__text-row {\n display: flex;\n justify-content: space-between;\n}\n\n.diskusage {\n &__item {\n width: 100%;\n }\n\n &__details-list {\n display: flex;\n\n &__item {\n & + .diskusage__details-list__item {\n margin-left: 10px;\n }\n }\n\n &__label {\n color: colors.$dark-grey;\n display: block;\n font-size: 0.9em;\n font-weight: 600;\n }\n }\n}\n\n.dropdown {\n &--speed-limits {\n .dropdown {\n &__content {\n min-width: 180px;\n\n .sidebar {\n &__icon-button {\n padding: math.div(variables.$spacing-unit * 2, 5);\n\n .icon {\n margin-right: math.div(variables.$spacing-unit * 1, 5);\n }\n }\n }\n }\n\n &__items {\n font-size: 0.9em;\n }\n }\n }\n}\n","@use '../tools/themes';\n\n.sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0;\n\n & + .sidebar-filter {\n padding-top: 0;\n }\n\n &__expander,\n &__item {\n @include themes.theme('color', 'sidebar-filter--foreground');\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n text-align: start;\n transition: color 0.25s;\n display: flex;\n align-items: center;\n width: 100%;\n\n &:focus-visible,\n &:hover {\n @include themes.theme('color', 'sidebar-filter--foreground--hover');\n\n .icon {\n @include themes.theme('fill', 'sidebar-filter--foreground--hover');\n }\n }\n\n &.is-active {\n @include themes.theme('color', 'sidebar-filter--foreground--active');\n font-weight: 700;\n\n .badge {\n @include themes.theme('background', 'sidebar-filter--count--background--active');\n @include themes.theme('color', 'sidebar-filter--count--foreground--active');\n }\n\n .icon {\n @include themes.theme('fill', 'sidebar-filter--foreground--active');\n }\n }\n\n &--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n\n &,\n &:focus-visible,\n &:hover {\n @include themes.theme('color', 'sidebar-filter--foreground--header');\n }\n }\n\n .name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100px;\n }\n\n .icon {\n display: inline-block;\n @include themes.theme('fill', 'sidebar-filter--foreground');\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto;\n }\n\n .size {\n margin-left: auto;\n white-space: nowrap;\n }\n }\n\n &__expander {\n display: block;\n width: 14px;\n padding: 0 0 0 20px;\n\n &.expanded svg {\n transform: rotate(90deg);\n }\n }\n\n &__nested {\n margin-left: 8px;\n }\n\n .badge {\n @include themes.theme('background', 'sidebar-filter--count--background');\n @include themes.theme('color', 'sidebar-filter--count--foreground');\n }\n}\n",".sort-dropdown {\n &__item {\n align-items: center;\n display: flex;\n }\n\n &__indicator {\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 5px solid currentColor;\n display: inline-block;\n margin-left: auto;\n transition: transform 0.25s;\n vertical-align: middle;\n\n &--asc {\n transform: rotate(180deg);\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n@use '../ui/config/variables.scss' as config-variables;\n\n$sortable-list--item--background: config-variables.$input--inverse--background;\n$sortable-list--item--background--hover: color.adjust(\n color.adjust($sortable-list--item--background, $lightness: -2%),\n $saturation: 3%\n);\n$sortable-list--item--background--dragging: color.adjust(\n color.adjust($sortable-list--item--background, $lightness: 2%),\n $saturation: -1%\n);\n$sortable-list--item--background--preview: color.adjust(\n color.adjust($sortable-list--item--background, $lightness: -3%),\n $saturation: 3%\n);\n$sortable-list--item--border: color.adjust(\n color.adjust($sortable-list--item--background, $lightness: -4%),\n $saturation: 5%\n);\n$sortable-list--item--border--preview: color.adjust($sortable-list--item--border, $lightness: -3%);\n\n.sortable-list {\n box-shadow: config-variables.$form--element--inverse--box-shadow;\n flex: 1 1 auto;\n font-size: 0.9em;\n position: relative;\n\n &__item {\n align-items: center;\n background: $sortable-list--item--background;\n border: 1px solid $sortable-list--item--border;\n cursor: move;\n display: flex;\n height: 30px;\n padding: 0 math.div(variables.$spacing-unit * 1, 5);\n\n &:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n\n &:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n }\n\n &--is-dragging {\n background: $sortable-list--item--background--dragging;\n opacity: 0.6;\n position: relative;\n z-index: 1;\n\n label {\n opacity: 0.25;\n }\n }\n\n &--is-locked {\n cursor: default;\n opacity: 0.4;\n }\n\n &--is-preview {\n background: $sortable-list--item--background--preview;\n border: 1px solid $sortable-list--item--border--preview;\n border-radius: 0;\n color: colors.$white;\n font-weight: 500;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n & + .sortable-list {\n &__item {\n margin-top: -1px;\n }\n }\n\n .toggle-input {\n &__indicator {\n background: color.adjust(config-variables.$input--inverse--background, $lightness: -5%);\n border-color: color.adjust(config-variables.$input--inverse--background, $lightness: -8%);\n }\n }\n\n .icon {\n fill: currentColor;\n\n &--error,\n &--lock {\n height: 12px;\n width: 12px;\n }\n\n &--error {\n fill: colors.$red;\n }\n }\n }\n\n &__content {\n flex: 0 0 auto;\n margin-left: math.div(variables.$spacing-unit * 1, 5);\n\n &:first-child {\n margin-left: 0;\n }\n\n &__wrapper {\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n }\n\n &--primary {\n flex: 1 1 auto;\n user-select: none;\n }\n\n &--secondary {\n align-items: center;\n font-size: 0.9em;\n\n &,\n &.tooltip__wrapper {\n display: flex;\n }\n\n &__copy {\n opacity: 0.5;\n }\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/themes';\n\n$table--heading--resize--handle--width: 9px;\n$table--heading--resize--indicator--width: 1px;\n\n.table {\n &__row {\n &--heading {\n @include themes.theme('background', 'table--heading--background');\n @include themes.theme('box-shadow', 'table--heading--border');\n @include themes.theme('color', 'table--heading--color');\n display: flex;\n height: 24px;\n min-height: 24px;\n overflow: hidden;\n font-size: 12px;\n white-space: nowrap;\n z-index: 1;\n }\n }\n\n &__heading {\n align-items: center;\n @include themes.theme('border-right', 'table--heading--border--horizontal');\n cursor: pointer;\n display: flex;\n flex: 0 0 auto;\n position: relative;\n transition: color 0.15s;\n touch-action: none;\n\n &:last-child {\n border-right: none;\n }\n\n &:focus-visible,\n &:hover {\n @include themes.theme('color', 'table--heading--color--hover');\n }\n\n &:after {\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 5px solid currentColor;\n content: '';\n margin-top: -3px;\n opacity: 0;\n position: absolute;\n right: 3px;\n top: 50%;\n transition: opacity 0.2s, transform 0.2s;\n }\n\n &--is-sorted {\n @include themes.theme('color', 'table--heading--color--active');\n font-weight: 700;\n\n &:focus-visible,\n &:hover {\n @include themes.theme('color', 'table--heading--color--active--hover');\n }\n\n &:after {\n opacity: 0.5;\n }\n }\n\n &--direction {\n &--asc {\n &:after {\n transform: rotate(180deg);\n }\n }\n }\n\n &--fill {\n flex: 1 1 auto;\n min-width: 0;\n\n &.table {\n &__heading {\n border: none;\n margin: 0;\n padding: 0;\n }\n }\n }\n\n &__handle {\n bottom: 0;\n cursor: col-resize;\n opacity: 0;\n position: absolute;\n right: math.div($table--heading--resize--handle--width, -2);\n top: 0;\n transition: opacity 0.125s;\n width: $table--heading--resize--handle--width;\n z-index: 2;\n\n &:after {\n @include themes.theme('background', 'table--heading--resize--indicator--background');\n bottom: 0;\n content: '';\n left: math.div($table--heading--resize--handle--width - $table--heading--resize--indicator--width, 2);\n cursor: col-resize;\n position: absolute;\n top: 0;\n transition: opacity 0.125s;\n width: $table--heading--resize--indicator--width;\n z-index: 10;\n }\n\n &:focus-visible,\n &:hover {\n opacity: 1;\n }\n }\n\n &__label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &__resize-line {\n @include themes.theme('background', 'table--heading--resize--indicator--background');\n bottom: 0;\n left: 0;\n opacity: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.125s;\n will-change: opacity, transform;\n width: $table--heading--resize--indicator--width;\n }\n\n &__column-fill {\n @include themes.theme('background', 'table--heading--resize--indicator--background');\n bottom: 0;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 0.125s;\n will-change: opacity, transform;\n width: 30px;\n }\n }\n\n &__cell {\n padding: 0 8px;\n }\n}\n","@use 'sass:math';\n\n@use '../tools/variables';\n\n$tag--background: rgba(#4a596d, 0.75);\n$tag--foreground: #1a2028;\n\n.tag {\n background: $tag--background;\n border-radius: 30px;\n color: $tag--foreground;\n display: inline-block;\n font-size: 0.9em;\n margin-right: math.div(variables.$spacing-unit * 1, 5);\n padding: 0 math.div(variables.$spacing-unit * 2, 5);\n white-space: nowrap;\n}\n",".textbox-repeater {\n .icon {\n height: 12px;\n width: 12px;\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n.toolbar {\n display: flex;\n flex-direction: row;\n position: relative;\n width: 100%;\n\n &--dark {\n &.toolbar {\n &--bottom {\n border-top: 1px solid colors.$dark-blue;\n }\n\n &--top {\n border-bottom: 1px solid colors.$dark-blue;\n }\n }\n\n .toolbar {\n &__item {\n &--button {\n color: color.adjust(colors.$foreground, $lightness: -10%);\n\n &:hover {\n color: color.adjust(colors.$foreground, $lightness: 10%);\n\n .icon {\n fill: color.adjust(colors.$foreground, $lightness: 10%);\n }\n }\n }\n\n .icon {\n display: inline-block;\n fill: color.adjust(colors.$foreground, $lightness: -15%);\n height: 10px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 10px;\n }\n }\n }\n }\n\n &__item {\n user-select: none;\n\n &--button {\n flex: 1 1 auto;\n font-size: 0.65rem;\n opacity: 1;\n position: relative;\n text-align: center;\n transition: color 0.25s, opacity 0.25s, visibility 0.25s;\n visibility: visible;\n z-index: 1;\n\n > button {\n font-size: inherit;\n text-align: inherit;\n\n &:focus {\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &:focus-visible {\n outline: dashed;\n }\n }\n\n &.is-disabled {\n cursor: default;\n opacity: 0;\n visibility: hidden;\n }\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n\n .icon {\n margin-left: math.div(variables.$spacing-unit * 1, 5);\n margin-right: 0;\n }\n }\n\n .icon {\n margin-bottom: 2px;\n margin-right: math.div(variables.$spacing-unit * 1, 5);\n }\n }\n\n &--centered {\n display: inline-block;\n left: 50%;\n padding: inherit;\n position: absolute;\n text-align: center;\n top: 0;\n transform: translateX(-50%);\n white-space: nowrap;\n width: auto;\n z-index: 2;\n }\n\n &--label {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/variables';\n\n$tooltip-background: #0f151c;\n$tooltip-background--error: colors.$red;\n$tooltip-foreground: color.adjust(#7189a8, $lightness: 3%);\n$tooltip-foreground--error: #fff;\n$tooltip-link-foreground: #92aac9;\n\n$tooltip-border-radius: 3px;\n$tooltip-font-size: 0.8rem;\n$tooltip-line-height: 1rem;\n\n$tooltip-padding-vertical: math.div(variables.$spacing-unit * 3, 10);\n$tooltip-padding-horizontal: math.div(variables.$spacing-unit * 1, 2);\n\n$tooltip-arrow-border-width: 7px;\n$tooltip-arrow-offset: 8px;\n\n$tooltip-anchor-offset: $tooltip-arrow-offset + $tooltip-arrow-border-width;\n\n.tooltip {\n max-width: 600px;\n opacity: 0;\n pointer-events: none;\n position: fixed;\n transition: opacity 0.3s, visibility 0.3s;\n visibility: hidden;\n z-index: 1000;\n\n &__wrapper {\n display: inline-block;\n position: relative;\n }\n\n &__content {\n background: $tooltip-background;\n border-radius: $tooltip-border-radius;\n color: $tooltip-foreground;\n font-size: $tooltip-font-size;\n line-height: $tooltip-line-height;\n padding: $tooltip-padding-vertical $tooltip-padding-horizontal;\n position: relative;\n user-select: none;\n\n &--no-padding {\n padding: 0;\n }\n\n &--padding-surrogate {\n padding: $tooltip-padding-vertical $tooltip-padding-horizontal;\n }\n\n &:after {\n border-color: $tooltip-background;\n border-style: solid;\n border-width: $tooltip-arrow-border-width;\n content: '';\n position: absolute;\n }\n }\n\n &.is-open {\n opacity: 1;\n visibility: visible;\n\n &.is-interactive {\n pointer-events: auto;\n }\n }\n\n &--no-wrap {\n white-space: nowrap;\n }\n\n &--position {\n &--bottom,\n &--top {\n &.tooltip {\n &--anchor {\n &--center {\n transform: translateX(-50%);\n\n .tooltip {\n &__content {\n &:after {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n }\n }\n\n &--start {\n &.tooltip {\n &--align {\n &--center {\n transform: translateX($tooltip-anchor-offset * -1);\n }\n }\n }\n\n .tooltip {\n &__content {\n &:after {\n left: $tooltip-arrow-offset;\n }\n }\n }\n }\n\n &--end {\n transform: translateX(calc(-100% + #{$tooltip-anchor-offset}));\n\n .tooltip {\n &__content {\n &:after {\n right: $tooltip-arrow-offset;\n }\n }\n }\n }\n }\n }\n }\n\n &--bottom {\n padding-top: $tooltip-arrow-border-width;\n\n .tooltip {\n &__content {\n &:after {\n border-left-color: transparent;\n border-right-color: transparent;\n border-top: none;\n bottom: 100%;\n }\n }\n }\n }\n\n &--top {\n padding-bottom: $tooltip-arrow-border-width;\n\n .tooltip {\n &__content {\n &:after {\n border-bottom: none;\n border-left-color: transparent;\n border-right-color: transparent;\n top: 100%;\n }\n }\n }\n }\n\n &--left,\n &--right {\n &.tooltip {\n &--anchor {\n &--center {\n top: 50%;\n transform: translateY(-50%);\n\n .tooltip {\n &__content {\n &:after {\n top: 50%;\n transform: translateY(-50%);\n }\n }\n }\n }\n\n &--start {\n transform: translateY($tooltip-anchor-offset * -1);\n\n .tooltip {\n &__content {\n &:after {\n top: $tooltip-arrow-offset;\n }\n }\n }\n }\n\n &--end {\n transform: translateY(calc(-100% + #{$tooltip-anchor-offset}));\n\n .tooltip {\n &__content {\n &:after {\n bottom: $tooltip-arrow-offset;\n }\n }\n }\n }\n }\n }\n }\n\n &--left {\n padding-right: $tooltip-arrow-border-width;\n\n .tooltip {\n &__content {\n &:after {\n border-bottom-color: transparent;\n border-right: none;\n border-top-color: transparent;\n left: 100%;\n }\n }\n }\n }\n\n &--right {\n padding-left: $tooltip-arrow-border-width;\n\n .tooltip {\n &__content {\n &:after {\n border-bottom-color: transparent;\n border-left: none;\n border-top-color: transparent;\n right: 100%;\n }\n }\n }\n }\n }\n\n &--is-error {\n .tooltip {\n &__content {\n background: $tooltip-background--error;\n color: $tooltip-foreground--error;\n\n &:after {\n border-top-color: $tooltip-background--error;\n }\n }\n }\n }\n\n a {\n color: $tooltip-link-foreground;\n text-decoration: underline;\n\n &:active {\n text-decoration: underline;\n }\n\n &:focus-visible,\n &:hover {\n color: $tooltip-link-foreground;\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:math';\n\n@use '../tools/variables';\n@use '../tools/colors';\n\n@use '../ui/config/spacing.scss';\n\n@use './modals';\n\n$torrent-details--header--secondary--foreground: modals.$modal--body--foreground;\n\n$torrent-details--table--foreground: modals.$modal--body--foreground;\n$torrent-details--table--header: rgba(modals.$modal--body--foreground, 0.5);\n$torrent-details--table--header--count--background: rgba(modals.$modal--body--foreground, 0.2);\n$torrent-details--table--header--count--foreground: modals.$modal--body--foreground;\n\n$torrent-details--header--icon--default--fill: rgba(#4d6f87, 0.5);\n$torrent-details--header--progress-bar--fill: modals.$modal--body--foreground;\n\n$torrent-details--detail--heading--foreground: color.adjust(modals.$modal--body--foreground, $lightness: 20%);\n$torrent-details--detail--label--foreground: color.adjust(modals.$modal--body--foreground, $lightness: 2%);\n\n$directory-tree--foreground: modals.$modal--body--foreground;\n$directory-tree--directory--foreground: modals.$modal--body--foreground;\n$directory-tree--directory--foreground--open: color.adjust($directory-tree--directory--foreground, $lightness: 10%);\n\n$directory-tree--group--extension: rgba(#6c7e92, 0.1);\n\n$directory-tree--icon--file: rgba(modals.$modal--body--foreground, 0.4);\n$directory-tree--icon--folder: rgba(modals.$modal--body--foreground, 0.4);\n$directory-tree--icon--folder--open: $directory-tree--icon--folder;\n\n$directory-tree--file-details--foreground: rgba(modals.$modal--body--foreground, 0.7);\n$directory-tree--file-details--hover--foreground: rgba(modals.$modal--body--foreground, 0.8);\n\n$torrent-details--directory-tree--file--hover--background: #2f3844;\n$torrent-details--directory-tree--file--hover--foreground: #8799ad;\n$torrent-details--directory-tree--file--hover--border: #515f6f;\n\n$torrent-details--directory-tree--file--selected--background: rgba(colors.$blue, 0.1);\n$torrent-details--directory-tree--file--selected--foreground: rgba(color.adjust(colors.$blue, $lightness: 5%), 0.9);\n$torrent-details--directory-tree--file--selected--hover--background: rgba(colors.$blue, 0.2);\n$torrent-details--directory-tree--file--selected--hover--foreground: colors.$blue;\n$torrent-details--directory-tree--file--selected--border: rgba(colors.$blue, 0.25);\n\n$torrent-details--directory-tree--parent-directory--foreground: rgba(modals.$modal--body--foreground, 0.6);\n$torrent-details--directory-tree--parent-directory--icon--fill: rgba(modals.$modal--body--foreground, 0.5);\n\n$torrent-details--tags--background: #515f6f;\n$torrent-details--tags--foreground: #1a2028;\n\n.torrent-details {\n &__heading {\n color: inherit;\n font-size: inherit;\n font-weight: inherit;\n margin-top: 0;\n margin-bottom: spacing.$spacing--x-small;\n overflow-wrap: break-word;\n }\n\n &__sub-heading {\n display: flex;\n flex-wrap: wrap;\n font-weight: 400;\n margin-bottom: math.div(variables.$spacing-unit * 1, 5);\n\n &__secondary {\n color: $torrent-details--header--secondary--foreground;\n display: flex;\n font-size: 0.85rem;\n flex: 1 0 auto;\n\n &:first-child {\n justify-content: flex-start;\n }\n\n &:last-child {\n justify-content: flex-end;\n }\n }\n\n &__tertiary {\n flex: 0 0 auto;\n margin-right: 1em;\n\n .icon {\n fill: $torrent-details--header--icon--default--fill;\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px;\n }\n\n .priority-meter {\n display: inline-block;\n margin-top: -1px;\n margin-right: 6px;\n vertical-align: middle;\n\n &__wrapper {\n margin-top: -3px;\n padding: 0;\n }\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &__header {\n &.is-completed,\n &.is-stopped {\n .progress-bar {\n &__icon {\n .icon {\n fill: $torrent-details--header--progress-bar--fill;\n }\n }\n\n &__fill {\n background: $torrent-details--header--progress-bar--fill;\n\n &__wrapper {\n &:after {\n background: $torrent-details--header--progress-bar--fill;\n }\n }\n }\n }\n }\n }\n\n &__action {\n transition: color 0.25s;\n\n .icon {\n transition: fill 0.25s;\n }\n\n &:focus {\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &:focus-visible {\n outline: dashed;\n }\n\n &.is-active {\n color: colors.$blue;\n\n .icon {\n fill: colors.$blue;\n }\n }\n }\n\n &__table {\n color: $torrent-details--table--foreground;\n width: 100%;\n\n &__heading {\n &--primary {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &--secondary {\n color: $torrent-details--table--header;\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n }\n\n &--tertiary {\n color: $torrent-details--detail--heading--foreground;\n font-weight: 700;\n }\n }\n }\n\n &__section {\n font-size: 0.8rem;\n\n &__heading,\n &__null-data {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.15em;\n margin-bottom: math.div(variables.$spacing-unit * 1, 10);\n }\n\n &--file-tree {\n margin-left: -8px;\n\n .directory-tree {\n &__node {\n color: $directory-tree--foreground;\n position: relative;\n transition: background 0.25s, border 0.25s, color 0.25s;\n\n &--group {\n &:after {\n background: $directory-tree--group--extension;\n }\n }\n\n &--directory {\n color: $directory-tree--directory--foreground;\n\n &.is-expanded {\n color: $directory-tree--directory--foreground--open;\n font-weight: 500;\n\n .icon {\n &--folder {\n fill: $directory-tree--icon--folder--open;\n }\n }\n }\n\n .icon {\n &--folder {\n fill: $directory-tree--icon--folder;\n }\n }\n }\n\n &--selectable {\n position: relative;\n\n // &:after {\n // background: $torrent-details--directory-tree--file--hover--border;\n // bottom: 0;\n // content: '';\n // height: auto;\n // left: -2px;\n // opacity: 0;\n // position: absolute;\n // top: 0;\n // transition: opacity 0.25s;\n // width: 2px;\n // }\n\n &:hover {\n // background: $torrent-details--directory-tree--file--hover--background;\n color: $torrent-details--directory-tree--file--hover--foreground;\n\n &:after {\n opacity: 0.6;\n }\n\n .file {\n &__detail {\n &--size,\n &--priority {\n color: $directory-tree--file-details--hover--foreground;\n }\n }\n }\n\n .icon {\n &--file {\n fill: $torrent-details--directory-tree--file--hover--foreground;\n }\n }\n }\n }\n\n .file {\n width: auto;\n\n &__detail {\n &--size,\n &--priority {\n color: currentColor;\n }\n }\n }\n }\n\n .icon {\n fill: $directory-tree--icon--file;\n }\n\n &__parent-directory {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n\n .icon {\n &--disk {\n fill: $torrent-details--directory-tree--parent-directory--icon--fill;\n }\n }\n }\n }\n\n .icon {\n &--file {\n fill: $directory-tree--icon--file;\n }\n }\n }\n\n .badge {\n background: $torrent-details--table--header--count--background;\n color: $torrent-details--table--header--count--foreground;\n }\n }\n\n &__detail {\n &--hash {\n .torrent-details__detail__value {\n word-break: break-all;\n }\n }\n\n &--tags {\n .tag {\n background: $torrent-details--tags--background;\n color: $torrent-details--tags--foreground;\n }\n }\n\n & + .torrent-details__table__heading {\n .torrent-details__table__heading--tertiary {\n padding-top: 10px;\n }\n }\n\n &__label,\n &__value {\n vertical-align: top;\n\n .not-available {\n font-style: italic;\n }\n }\n\n &__label {\n color: $torrent-details--detail--label--foreground;\n font-weight: 500;\n padding-right: math.div(variables.$spacing-unit * 3, 5);\n white-space: nowrap;\n }\n }\n\n &__trackers {\n &--url {\n overflow-wrap: anywhere;\n text-wrap: balance;\n }\n }\n}\n","@use 'sass:math';\n\n@use '../tools/themes';\n@use '../tools/variables';\n\n@use './action-bar';\n\n.torrents {\n @include themes.theme('background', 'torrent-list--background');\n @include themes.theme('box-shadow', 'torrent-list--border');\n display: flex;\n flex: 1 1 0px;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &__alert {\n @include themes.theme('color', 'torrents-list--alert--foreground');\n text-align: center;\n\n &__wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: math.div(variables.$spacing-unit * 1, 3);\n // bottom: 0;\n // left: $torrent-list--offset;\n // position: absolute;\n // right: 0;\n // top: 0;\n }\n\n &__action {\n margin-top: math.div(variables.$spacing-unit * 1, 5);\n }\n }\n}\n\n.torrent {\n &__list {\n &__scrollbars {\n &--horizontal {\n left: 0;\n position: absolute !important;\n top: 0;\n }\n\n &--vertical {\n flex: 1 1 auto;\n height: auto !important;\n }\n }\n\n &__viewport {\n overflow-y: overlay !important;\n }\n\n &__wrapper {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n height: 100%;\n width: 100%;\n justify-content: center;\n list-style: none;\n opacity: 1;\n overflow: hidden;\n position: relative;\n transition: opacity 1s;\n user-select: none;\n -webkit-user-select: none;\n -webkit-touch-callout: none;\n z-index: 2;\n }\n\n &--loading {\n &-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-exit {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &--empty {\n opacity: 0;\n }\n }\n}\n\n.view {\n &--torrent-list {\n @include themes.theme('background', 'torrent-view--background');\n box-shadow: -1px 0 action-bar.$torrent-list--border;\n display: flex;\n flex-direction: column;\n flex: 0 1 100%;\n }\n}\n","@use 'sass:math';\n\n@use '../tools/colors';\n@use '../tools/themes';\n@use '../tools/variables';\n\n@use './floating-action';\n\n$more-info--border: floating-action.$textbox-repeater--button--border;\n\n.torrent {\n cursor: default;\n position: relative;\n\n &:after {\n background: transparent;\n content: '';\n height: 100%;\n position: absolute;\n left: 0;\n opacity: 0;\n top: 0;\n width: 100%;\n z-index: -1;\n }\n\n &:focus {\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n &:focus-visible {\n outline: dashed;\n }\n\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground');\n\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground');\n @include themes.theme('font-weight', 'torrent--primary--font-weight');\n }\n\n &--tags {\n .torrent {\n &__tag {\n display: inline-block;\n margin-right: math.div(variables.$spacing-unit * 3, 10);\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n .tag {\n @include themes.theme('background', 'torrent--tags--background');\n @include themes.theme('color', 'torrent--tags--foreground');\n }\n }\n\n &__icon {\n &--checkmark {\n &.icon {\n opacity: 1;\n }\n }\n }\n\n .icon {\n fill: currentColor;\n height: 12px;\n margin-right: 5px;\n width: 12px;\n }\n }\n\n &__details {\n &__section {\n &--secondary {\n @include themes.theme('color', 'torrent--secondary--foreground');\n }\n\n &--tertiary {\n @include themes.theme('color', 'torrent--tertiary--foreground');\n }\n }\n }\n\n &--is-stopped {\n .torrent {\n &__details {\n &__section {\n &--secondary {\n @include themes.theme('color', 'torrent--secondary--foreground--stopped');\n }\n\n &--tertiary {\n @include themes.theme('color', 'torrent--tertiary--foreground--stopped');\n }\n }\n }\n\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground--stopped');\n\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--stopped');\n font-weight: 400;\n }\n\n &--tags {\n opacity: 0.5;\n }\n }\n }\n }\n\n &--has-error {\n &.torrent {\n &--is-stopped {\n .torrent {\n &__detail {\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--error--stopped');\n }\n }\n }\n }\n }\n\n .torrent {\n &__detail {\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--error');\n }\n }\n }\n\n &:after {\n @include themes.theme('background', 'torrent--background--error');\n }\n }\n\n &--is-downloading {\n &--actively {\n .torrent {\n &__detail {\n &--downRate {\n color: colors.$green;\n font-weight: 500;\n }\n }\n }\n\n .torrent-details {\n &__sub-heading {\n &__tertiary {\n &--download {\n color: colors.$green;\n\n .icon {\n fill: colors.$green;\n }\n }\n }\n }\n }\n }\n }\n\n &--is-uploading {\n &--actively {\n .torrent {\n &__detail {\n &--upRate {\n color: colors.$blue;\n font-weight: 500;\n }\n }\n }\n\n .torrent-details {\n &__sub-heading {\n &__tertiary {\n &--upload {\n color: colors.$blue;\n\n .icon {\n fill: colors.$blue;\n }\n }\n }\n }\n }\n }\n }\n\n &--is-selected {\n &.torrent {\n &--has-error {\n .torrent {\n &__detail {\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--selected--error');\n }\n\n &--tags {\n .tag {\n @include themes.theme('background', 'torrent--tags--background--selected--has-error');\n @include themes.theme('color', 'torrent--tags--foreground--has-error');\n }\n }\n\n &--downRate,\n &--upRate {\n @include themes.theme('color', 'torrent--speed--foreground--selected--has-error');\n }\n }\n }\n\n &,\n &:hover {\n &:after {\n @include themes.theme('background', 'torrent--background--error');\n }\n }\n }\n\n &--is-stopped {\n &.torrent {\n &--has-error {\n .torrent {\n &__detail {\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--error--stopped--selected');\n }\n }\n }\n }\n }\n\n .torrent {\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground--selected--stopped');\n\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--selected--stopped');\n }\n\n &--downRate,\n &--upRate {\n @include themes.theme('color', 'torrent--tertiary--foreground--selected--stopped');\n }\n\n &--tags {\n opacity: 0.6;\n }\n }\n\n &__details {\n &__section {\n &--secondary {\n @include themes.theme('color', 'torrent--secondary--foreground--selected--stopped');\n }\n\n &--tertiary {\n @include themes.theme('color', 'torrent--tertiary--foreground--selected--stopped');\n }\n }\n }\n }\n }\n }\n\n &,\n &:hover {\n &:after {\n @include themes.theme('background', 'torrent--background--selected');\n opacity: 1;\n }\n }\n\n .torrent {\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground--selected');\n\n &--name {\n @include themes.theme('color', 'torrent--primary--foreground--selected');\n }\n\n &--downRate,\n &--upRate {\n @include themes.theme('color', 'torrent--speed--foreground--selected');\n }\n\n &--tags {\n .tag {\n @include themes.theme('background', 'torrent--tags--background--selected');\n @include themes.theme('color', 'torrent--tags--foreground--selected');\n }\n }\n }\n\n &__details {\n &__section {\n &--secondary {\n @include themes.theme('color', 'torrent--secondary--foreground--selected');\n }\n\n &--tertiary {\n @include themes.theme('color', 'torrent--tertiary--foreground--selected');\n }\n }\n }\n }\n }\n\n &--is-expanded {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n padding: 0 20px;\n height: 70px;\n\n &.torrent {\n &--is-downloading {\n &--actively {\n .torrent {\n &__detail {\n &--eta {\n margin-right: 10px;\n opacity: 1;\n width: auto;\n }\n }\n }\n }\n }\n }\n\n .torrent {\n &__details {\n &__section {\n display: flex;\n\n &--tertiary,\n &--quaternary {\n margin-left: -2px;\n }\n\n &--primary {\n flex: 1 1 auto;\n }\n\n &--tertiary {\n font-size: 0.7em;\n }\n\n &--secondary {\n flex: 0 0 auto;\n font-size: 0.75em;\n font-weight: 500;\n\n .icon {\n height: 12px;\n width: 12px;\n }\n\n .torrent {\n &__detail {\n width: auto;\n }\n }\n }\n }\n }\n\n &__detail {\n flex: 0 0 auto;\n margin-right: 10px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &--name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &--eta {\n margin-right: 0;\n opacity: 0;\n transition: opacity 1s;\n width: 0;\n }\n\n &--percentComplete {\n width: 90px;\n }\n\n &--upTotal {\n width: 55px;\n }\n\n &--sizeBytes,\n &--freeDiskSpace {\n width: 55px;\n }\n\n &--added,\n &--creationDate {\n width: 80px;\n }\n\n &--isPrivate {\n text-overflow: clip;\n width: 25px;\n }\n\n &--peers {\n width: 70px;\n }\n\n &--ratio {\n width: 50px;\n }\n\n &--seeds {\n width: 70px;\n }\n\n &--directory {\n width: auto;\n max-width: 300px;\n }\n\n &--tags {\n &:last-child {\n margin-left: auto;\n width: auto;\n }\n\n .torrent {\n &__tags {\n margin-right: 0;\n }\n\n &__tag {\n &:last-child {\n margin-right: 0;\n }\n }\n }\n }\n\n .icon {\n display: inline-block;\n height: 10px;\n margin-bottom: -1px;\n margin-right: 3px;\n opacity: 0.3;\n width: 10px;\n vertical-align: baseline;\n }\n }\n }\n }\n\n &--is-condensed {\n align-items: center;\n @include themes.theme('border-top', 'torrent--border');\n display: flex;\n height: 30px;\n min-width: max-content;\n max-width: 100%;\n padding: 0;\n\n &:nth-child(0n + 1) {\n border-top: none;\n }\n\n &.torrent {\n &--is-stopped {\n .torrent {\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground--stopped');\n }\n }\n }\n\n &--is-selected {\n &,\n & + .torrent {\n @include themes.theme('border-color', 'torrent--border--selected');\n }\n\n &.torrent {\n &--has-error {\n &,\n & + .torrent {\n @include themes.theme('border-color', 'torrent--border--selected--error');\n }\n }\n\n &--is-stopped {\n .torrent {\n &__detail {\n @include themes.theme('color', 'torrent--tertiary--foreground--selected--stopped');\n }\n }\n }\n }\n\n .torrent {\n &__detail {\n @include themes.theme('color', 'torrent--secondary--foreground--selected');\n }\n }\n }\n }\n\n .torrent {\n &__detail {\n flex: 0 0 auto;\n font-size: 0.8em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100px;\n\n &--name {\n font-size: 0.9em;\n }\n\n &--percentComplete {\n .icon {\n opacity: 1;\n }\n }\n }\n }\n\n .progress-bar {\n &__icon {\n .icon {\n margin-right: 0;\n }\n }\n }\n }\n\n &__more-info {\n @include themes.theme('background', 'more-info--background');\n border-radius: 32px 0 0 32px;\n @include themes.theme('box-shadow', 'more-info--box-shadow');\n height: 32px;\n margin-top: -16px;\n position: absolute;\n opacity: 0;\n pointer-events: none;\n right: -5px;\n top: 50%;\n transform: translateX(15px);\n transition: background 0.15s, box-shadow 0.15s, opacity 0.15s, transform 0.15s;\n width: 32px;\n z-index: 1;\n\n .icon {\n fill: rgba(colors.$foreground, 0.5);\n position: absolute;\n height: 16px;\n left: 16px;\n width: 16px;\n }\n\n &:hover {\n @include themes.theme('background', 'more-info--background--hover');\n @include themes.theme('box-shadow', 'more-info--box-shadow--hover');\n\n .icon {\n fill: colors.$blue;\n }\n }\n }\n}\n","@use '../tools/colors';\n\n$transfer-data--download: colors.$green;\n$transfer-data--upload: colors.$blue;\n\n.transfer-data {\n &--download {\n color: $transfer-data--download;\n\n .icon {\n fill: $transfer-data--download;\n }\n }\n\n &--upload {\n color: $transfer-data--upload;\n\n .icon {\n fill: $transfer-data--upload;\n }\n }\n}\n","@use '../tools/colors';\n@use '../tools/themes';\n@use '../tools/variables';\n\n$authentication--form--border: #d4dbe0;\n$authentication--form--padding: variables.$spacing-unit * 1.25;\n\n$authentication--textbox--background: #122430;\n$authentication--textbox--border: #e9edef;\n$authentication--textbox--placeholder: #c1c9cf;\n\n$authentication--header--foreground: colors.$white;\n$authentication--label--foreground: #3a5567;\n\n.application {\n &__view {\n &--auth-form {\n @include themes.theme('background', 'auth-form--background');\n }\n }\n}\n\n.form {\n &--authentication {\n max-width: 350px;\n width: 100%;\n\n .form {\n &__wrapper {\n background: colors.$white;\n border: 1px solid $authentication--form--border;\n padding: $authentication--form--padding;\n }\n\n &__header {\n background: colors.$blue;\n margin: $authentication--form--padding * -1 $authentication--form--padding * -1 0 $authentication--form--padding *\n -1;\n padding: $authentication--form--padding * 0.75 $authentication--form--padding;\n\n h1 {\n color: $authentication--header--foreground;\n font-size: 1.4em;\n font-weight: 400;\n line-height: 1;\n }\n\n & + .form__row {\n margin-top: $authentication--form--padding;\n }\n }\n\n &--header {\n }\n\n &__label {\n color: $authentication--label--foreground;\n }\n\n &__row {\n &--error {\n color: colors.$red;\n font-size: 0.75em;\n }\n }\n\n &__actions {\n text-align: right;\n\n .button {\n box-shadow: none;\n }\n }\n }\n\n .textbox {\n background: transparent;\n border-bottom: 1px solid $authentication--textbox--border;\n\n &:active,\n &:focus {\n border-bottom: 1px solid colors.$blue;\n }\n\n &::placeholder {\n color: $authentication--textbox--placeholder;\n font-style: normal;\n }\n }\n }\n}\n",".feed-list {\n &__feed-label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","@layer reset, third-party, base, tokens, recipes, utilities;\n"],"names":[],"sourceRoot":""}
|